[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-6156-g094ec9b

Török Edvin edwin at clamav.net
Sun Apr 4 01:04:33 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 4abf05ee8dbfb609c38c4cb609f4cf50916f102b
Author: Török Edvin <edwin at clamav.net>
Date:   Tue Sep 8 11:08:23 2009 +0300

    Add script that removes parts of LLVM that we don't use.

diff --git a/libclamav/c++/llvm/Xcode/LLVM.xcodeproj/project.pbxproj b/libclamav/c++/llvm/Xcode/LLVM.xcodeproj/project.pbxproj
deleted file mode 100644
index e2f40f4..0000000
--- a/libclamav/c++/llvm/Xcode/LLVM.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,3303 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 42;
-	objects = {
-
-/* Begin PBXAggregateTarget section */
-		CF0329BC08D1BE8E0030FD33 /* LLVM full llc */ = {
-			isa = PBXAggregateTarget;
-			buildConfigurationList = CF0329C708D1BEC40030FD33 /* Build configuration list for PBXAggregateTarget "LLVM full llc" */;
-			buildPhases = (
-			);
-			dependencies = (
-				CF0329BE08D1BE970030FD33 /* PBXTargetDependency */,
-				CF0329C008D1BE9B0030FD33 /* PBXTargetDependency */,
-			);
-			name = "LLVM full llc";
-			productName = "LLVM full llc";
-		};
-		CFDF86D00ADE820000D40A3D /* LLVM full llc release */ = {
-			isa = PBXAggregateTarget;
-			buildConfigurationList = CFDF86D50ADE820000D40A3D /* Build configuration list for PBXAggregateTarget "LLVM full llc release" */;
-			buildPhases = (
-			);
-			dependencies = (
-				CFDF86DA0ADE822100D40A3D /* PBXTargetDependency */,
-				CFDF86DC0ADE822100D40A3D /* PBXTargetDependency */,
-			);
-			name = "LLVM full llc release";
-			productName = "LLVM full llc";
-		};
-/* End PBXAggregateTarget section */
-
-/* Begin PBXContainerItemProxy section */
-		CF0329BD08D1BE970030FD33 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = CF0329B608D1BE110030FD33;
-			remoteInfo = "LLVM lib";
-		};
-		CF0329BF08D1BE9B0030FD33 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = CF0329BB08D1BE5D0030FD33;
-			remoteInfo = "LLVM llc";
-		};
-		CFDF86D90ADE822100D40A3D /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = CFDF86BD0ADE819D00D40A3D;
-			remoteInfo = "LLVM lib release";
-		};
-		CFDF86DB0ADE822100D40A3D /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = CFDF86C60ADE81D000D40A3D;
-			remoteInfo = "LLVM llc release";
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
-		354CF6D10CD299440059AF3E /* DeserializeAPInt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeserializeAPInt.cpp; sourceTree = "<group>"; };
-		354CF6D20CD2994D0059AF3E /* SerializeAPInt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SerializeAPInt.cpp; sourceTree = "<group>"; };
-		35A9CDED0CD0F6AF008ABC1D /* Deserialize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Deserialize.h; sourceTree = "<group>"; };
-		35A9CDEE0CD0F6AF008ABC1D /* Serialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Serialization.h; sourceTree = "<group>"; };
-		35A9CDEF0CD0F6AF008ABC1D /* Serialize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Serialize.h; sourceTree = "<group>"; };
-		35A9CDF00CD0F6D5008ABC1D /* Deserialize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Deserialize.cpp; sourceTree = "<group>"; };
-		35A9CDF10CD0F6E1008ABC1D /* Serialize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Serialize.cpp; sourceTree = "<group>"; };
-		35E98A830CBC2ED300C5CDC1 /* DenseSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DenseSet.h; sourceTree = "<group>"; };
-		35E98A840CBC2ED300C5CDC1 /* ImmutableMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImmutableMap.h; sourceTree = "<group>"; };
-		35E98A850CBC2ED300C5CDC1 /* ImmutableSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImmutableSet.h; sourceTree = "<group>"; };
-		754221420D171DFC00DDB61B /* MachineLICM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MachineLICM.cpp; sourceTree = "<group>"; };
-		84115FFE0B66D87400E1293E /* TargetMachOWriterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetMachOWriterInfo.cpp; sourceTree = "<group>"; };
-		84115FFF0B66D89B00E1293E /* PPCMachOWriterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PPCMachOWriterInfo.cpp; sourceTree = "<group>"; };
-		841160000B66D8AC00E1293E /* PPCMachOWriterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PPCMachOWriterInfo.h; sourceTree = "<group>"; };
-		8443EF210B66B62D00959964 /* TargetMachOWriterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetMachOWriterInfo.h; sourceTree = "<group>"; };
-		9F4B0E5E0D0E02580061F270 /* bitreader_ocaml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitreader_ocaml.c; sourceTree = "<group>"; };
-		9F4B0E5F0D0E02580061F270 /* llvm_bitreader.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_bitreader.ml; sourceTree = "<group>"; };
-		9F4B0E600D0E02580061F270 /* llvm_bitreader.mli */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_bitreader.mli; sourceTree = "<group>"; };
-		9F4B0E8C0D0E05ED0061F270 /* BitReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitReader.cpp; sourceTree = "<group>"; };
-		9F4B0E8D0D0E05ED0061F270 /* DeserializeAPFloat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeserializeAPFloat.cpp; sourceTree = "<group>"; };
-		9F502ADB0D1D8CA3007939DF /* executionengine_ocaml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = executionengine_ocaml.c; sourceTree = "<group>"; };
-		9F502ADC0D1D8CA3007939DF /* llvm_executionengine.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_executionengine.ml; sourceTree = "<group>"; };
-		9F502ADD0D1D8CA3007939DF /* llvm_executionengine.mli */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_executionengine.mli; sourceTree = "<group>"; };
-		9F502AEC0D1D8CF8007939DF /* executionengine.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = executionengine.ml; sourceTree = "<group>"; };
-		9F502B090D1D8D8D007939DF /* ExecutionEngineBindings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutionEngineBindings.cpp; sourceTree = "<group>"; };
-		9F5B90CB0D0CE87100CDFDEA /* StringPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringPool.cpp; sourceTree = "<group>"; };
-		9F5B90CE0D0CE89300CDFDEA /* AlignOf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlignOf.h; sourceTree = "<group>"; };
-		9F5B90CF0D0CE89300CDFDEA /* Registry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Registry.h; sourceTree = "<group>"; };
-		9F5B90D00D0CE89300CDFDEA /* StringPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringPool.h; sourceTree = "<group>"; };
-		9F5B90E70D0DF19100CDFDEA /* BitReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitReader.h; sourceTree = "<group>"; };
-		9F68EB010C77AD02004AA152 /* LoopPass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LoopPass.cpp; sourceTree = "<group>"; };
-		9F68EB020C77AD02004AA152 /* MemoryDependenceAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryDependenceAnalysis.cpp; sourceTree = "<group>"; };
-		9F68EB060C77AD2C004AA152 /* BitcodeReader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BitcodeReader.cpp; sourceTree = "<group>"; };
-		9F68EB070C77AD2C004AA152 /* BitcodeReader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BitcodeReader.h; sourceTree = "<group>"; };
-		9F68EB120C77AD2C004AA152 /* BitcodeWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BitcodeWriter.cpp; sourceTree = "<group>"; };
-		9F68EB130C77AD2C004AA152 /* BitcodeWriterPass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BitcodeWriterPass.cpp; sourceTree = "<group>"; };
-		9F68EB250C77AD2C004AA152 /* ValueEnumerator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ValueEnumerator.cpp; sourceTree = "<group>"; };
-		9F68EB260C77AD2C004AA152 /* ValueEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ValueEnumerator.h; sourceTree = "<group>"; };
-		9F6B2CC00D0F6E56000F00FD /* bitreader.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bitreader.ml; sourceTree = "<group>"; };
-		9F70401A0D8D732400FD06FF /* llvm_scalar_opts.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = llvm_scalar_opts.ml; path = transforms/scalar/llvm_scalar_opts.ml; sourceTree = "<group>"; };
-		9F70401B0D8D732400FD06FF /* llvm_scalar_opts.mli */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = llvm_scalar_opts.mli; path = transforms/scalar/llvm_scalar_opts.mli; sourceTree = "<group>"; };
-		9F70401E0D8D735E00FD06FF /* scalar_opts_ocaml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scalar_opts_ocaml.c; path = transforms/scalar/scalar_opts_ocaml.c; sourceTree = "<group>"; };
-		9F7793460C73BC2000551F9C /* CodeGenPrepare.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CodeGenPrepare.cpp; sourceTree = "<group>"; };
-		9F7793470C73BC2000551F9C /* GVN.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GVN.cpp; sourceTree = "<group>"; };
-		9F7793480C73BC2000551F9C /* GVNPRE.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GVNPRE.cpp; sourceTree = "<group>"; };
-		9F7793490C73BC2000551F9C /* LoopIndexSplit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoopIndexSplit.cpp; sourceTree = "<group>"; };
-		9F77934A0C73BC2000551F9C /* LoopRotation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoopRotation.cpp; sourceTree = "<group>"; };
-		9F7793500C73BD1500551F9C /* ELFWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ELFWriter.h; sourceTree = "<group>"; };
-		9F7793510C73BD1500551F9C /* IfConversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IfConversion.cpp; sourceTree = "<group>"; };
-		9F7793520C73BD1500551F9C /* LowerSubregs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LowerSubregs.cpp; sourceTree = "<group>"; };
-		9F7793530C73BD1500551F9C /* MachOWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachOWriter.h; sourceTree = "<group>"; };
-		9F7793540C73BD1500551F9C /* PostRASchedulerList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PostRASchedulerList.cpp; sourceTree = "<group>"; };
-		9F7793550C73BD1500551F9C /* RegAllocBigBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RegAllocBigBlock.cpp; sourceTree = "<group>"; };
-		9F7793560C73BD1500551F9C /* RegisterScavenging.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RegisterScavenging.cpp; sourceTree = "<group>"; };
-		9F7793570C73BD1500551F9C /* SimpleRegisterCoalescing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleRegisterCoalescing.cpp; sourceTree = "<group>"; };
-		9F7793770C73C48A00551F9C /* StripDeadPrototypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StripDeadPrototypes.cpp; sourceTree = "<group>"; };
-		9F7793780C73C49A00551F9C /* BasicInliner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BasicInliner.cpp; sourceTree = "<group>"; };
-		9F7793790C73C49A00551F9C /* CloneLoop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CloneLoop.cpp; sourceTree = "<group>"; };
-		9F77937A0C73C49A00551F9C /* InlineCost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InlineCost.cpp; sourceTree = "<group>"; };
-		9F77937B0C73C4F400551F9C /* AutoUpgrade.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AutoUpgrade.cpp; path = ../lib/VMCore/AutoUpgrade.cpp; sourceTree = SOURCE_ROOT; };
-		9F77937C0C73C4F400551F9C /* ConstantFold.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ConstantFold.cpp; path = ../lib/VMCore/ConstantFold.cpp; sourceTree = SOURCE_ROOT; };
-		9F77937D0C73C4F400551F9C /* ConstantFold.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConstantFold.h; path = ../lib/VMCore/ConstantFold.h; sourceTree = SOURCE_ROOT; };
-		9F77937E0C73C53000551F9C /* ParameterAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParameterAttributes.h; sourceTree = "<group>"; };
-		9F7793800C73C54C00551F9C /* Archive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Archive.h; sourceTree = "<group>"; };
-		9F7793810C73C54C00551F9C /* BitCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitCodes.h; sourceTree = "<group>"; };
-		9F7793820C73C54C00551F9C /* BitstreamReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitstreamReader.h; sourceTree = "<group>"; };
-		9F7793830C73C54C00551F9C /* BitstreamWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitstreamWriter.h; sourceTree = "<group>"; };
-		9F7793840C73C54C00551F9C /* LLVMBitCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLVMBitCodes.h; sourceTree = "<group>"; };
-		9F7793850C73C54C00551F9C /* ReaderWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReaderWriter.h; sourceTree = "<group>"; };
-		9F7793860C73C57100551F9C /* CallingConvLower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallingConvLower.h; sourceTree = "<group>"; };
-		9F7793870C73C57100551F9C /* ELFRelocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ELFRelocation.h; sourceTree = "<group>"; };
-		9F7793880C73C57100551F9C /* FileWriters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileWriters.h; sourceTree = "<group>"; };
-		9F7793890C73C57100551F9C /* MachORelocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachORelocation.h; sourceTree = "<group>"; };
-		9F77938A0C73C57100551F9C /* RegisterScavenging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterScavenging.h; sourceTree = "<group>"; };
-		9F7794140C73CB6100551F9C /* Mips.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mips.h; sourceTree = "<group>"; };
-		9F7794150C73CB6100551F9C /* Mips.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Mips.td; sourceTree = "<group>"; };
-		9F7794160C73CB6100551F9C /* MipsAsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsAsmPrinter.cpp; sourceTree = "<group>"; };
-		9F7794170C73CB6100551F9C /* MipsCallingConv.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MipsCallingConv.td; sourceTree = "<group>"; };
-		9F7794180C73CB6100551F9C /* MipsInstrFormats.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MipsInstrFormats.td; sourceTree = "<group>"; };
-		9F7794190C73CB6100551F9C /* MipsInstrInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsInstrInfo.cpp; sourceTree = "<group>"; };
-		9F77941A0C73CB6100551F9C /* MipsInstrInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipsInstrInfo.h; sourceTree = "<group>"; };
-		9F77941B0C73CB6100551F9C /* MipsInstrInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MipsInstrInfo.td; sourceTree = "<group>"; };
-		9F77941C0C73CB6100551F9C /* MipsISelDAGToDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsISelDAGToDAG.cpp; sourceTree = "<group>"; };
-		9F77941D0C73CB6100551F9C /* MipsISelLowering.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsISelLowering.cpp; sourceTree = "<group>"; };
-		9F77941E0C73CB6100551F9C /* MipsISelLowering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipsISelLowering.h; sourceTree = "<group>"; };
-		9F77941F0C73CB6100551F9C /* MipsMachineFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipsMachineFunction.h; sourceTree = "<group>"; };
-		9F7794200C73CB6100551F9C /* MipsRegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsRegisterInfo.cpp; sourceTree = "<group>"; };
-		9F7794210C73CB6100551F9C /* MipsRegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipsRegisterInfo.h; sourceTree = "<group>"; };
-		9F7794220C73CB6100551F9C /* MipsRegisterInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MipsRegisterInfo.td; sourceTree = "<group>"; };
-		9F7794230C73CB6100551F9C /* MipsSubtarget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsSubtarget.cpp; sourceTree = "<group>"; };
-		9F7794240C73CB6100551F9C /* MipsSubtarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipsSubtarget.h; sourceTree = "<group>"; };
-		9F7794250C73CB6100551F9C /* MipsTargetAsmInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsTargetAsmInfo.cpp; sourceTree = "<group>"; };
-		9F7794260C73CB6100551F9C /* MipsTargetAsmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipsTargetAsmInfo.h; sourceTree = "<group>"; };
-		9F7794270C73CB6100551F9C /* MipsTargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MipsTargetMachine.cpp; sourceTree = "<group>"; };
-		9F7794280C73CB6100551F9C /* MipsTargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipsTargetMachine.h; sourceTree = "<group>"; };
-		9F77942F0C73CB7900551F9C /* MSILWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MSILWriter.cpp; sourceTree = "<group>"; };
-		9F7794300C73CB7900551F9C /* MSILWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSILWriter.h; sourceTree = "<group>"; };
-		9F7794880C73D51000551F9C /* MemoryBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryBuffer.h; sourceTree = "<group>"; };
-		9F7794890C73D51000551F9C /* Streams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Streams.h; sourceTree = "<group>"; };
-		9F7C23E50CB81C2100498408 /* Analysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Analysis.h; sourceTree = "<group>"; };
-		9F7C23E60CB81C2B00498408 /* Analysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Analysis.cpp; sourceTree = "<group>"; };
-		9F7C240C0CB81ECD00498408 /* analysis_ocaml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = analysis_ocaml.c; sourceTree = "<group>"; };
-		9F7C240D0CB81ECD00498408 /* llvm_analysis.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_analysis.ml; sourceTree = "<group>"; };
-		9F7C240E0CB81ECD00498408 /* llvm_analysis.mli */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_analysis.mli; sourceTree = "<group>"; };
-		9F7C2C4F0CB9496C00498408 /* analysis.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = analysis.ml; sourceTree = "<group>"; };
-		9F7C2C520CB9496C00498408 /* bitwriter.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bitwriter.ml; sourceTree = "<group>"; };
-		9F7C2C5D0CB9496C00498408 /* vmcore.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vmcore.ml; sourceTree = "<group>"; };
-		9FA638D90C77B184007F12AE /* AutoUpgrade.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AutoUpgrade.h; sourceTree = "<group>"; };
-		9FA638DA0C77B184007F12AE /* GlobalAlias.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GlobalAlias.h; sourceTree = "<group>"; };
-		9FA638DB0C77B1AB007F12AE /* APInt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = APInt.h; sourceTree = "<group>"; };
-		9FA638DC0C77B1AB007F12AE /* APSInt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = APSInt.h; sourceTree = "<group>"; };
-		9FA638DD0C77B1AB007F12AE /* BitVector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BitVector.h; sourceTree = "<group>"; };
-		9FA638E00C77B1AB007F12AE /* IndexedMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IndexedMap.h; sourceTree = "<group>"; };
-		9FA638E20C77B1AB007F12AE /* SmallPtrSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SmallPtrSet.h; sourceTree = "<group>"; };
-		9FA638E30C77B1AB007F12AE /* SmallSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SmallSet.h; sourceTree = "<group>"; };
-		9FA638E40C77B1AB007F12AE /* StringMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StringMap.h; sourceTree = "<group>"; };
-		9FA638E50C77B203007F12AE /* LoopPass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LoopPass.h; sourceTree = "<group>"; };
-		9FA638E60C77B203007F12AE /* MemoryDependenceAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MemoryDependenceAnalysis.h; sourceTree = "<group>"; };
-		9FA638E70C77B222007F12AE /* Disassembler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Disassembler.h; sourceTree = "<group>"; };
-		9FA638E80C77B231007F12AE /* TargetELFWriterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetELFWriterInfo.h; sourceTree = "<group>"; };
-		9FA638EA0C77B252007F12AE /* InlinerPass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InlinerPass.h; sourceTree = "<group>"; };
-		9FA638EB0C77B26B007F12AE /* BasicInliner.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BasicInliner.h; sourceTree = "<group>"; };
-		9FA638EC0C77B26B007F12AE /* InlineCost.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InlineCost.h; sourceTree = "<group>"; };
-		9FD3E5710CA0116100E54D15 /* bitwriter_ocaml.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = bitwriter_ocaml.c; sourceTree = "<group>"; };
-		9FD3E5720CA0116100E54D15 /* llvm_bitwriter.ml */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvm_bitwriter.ml; sourceTree = "<group>"; };
-		9FD3E5730CA0116100E54D15 /* llvm_bitwriter.mli */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvm_bitwriter.mli; sourceTree = "<group>"; };
-		9FD3E57B0CA0116100E54D15 /* llvm.ml */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvm.ml; sourceTree = "<group>"; };
-		9FD3E57C0CA0116100E54D15 /* llvm.mli */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvm.mli; sourceTree = "<group>"; };
-		9FD3E57D0CA0116100E54D15 /* llvm_ocaml.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = llvm_ocaml.c; sourceTree = "<group>"; };
-		9FD3E58D0CA0125F00E54D15 /* BitWriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BitWriter.h; sourceTree = "<group>"; };
-		9FD3E58E0CA0125F00E54D15 /* Core.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Core.h; sourceTree = "<group>"; };
-		9FD3E5900CA0129D00E54D15 /* Core.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Core.cpp; path = ../lib/VMCore/Core.cpp; sourceTree = SOURCE_ROOT; };
-		9FD3E5920CA012B300E54D15 /* BitWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BitWriter.cpp; sourceTree = "<group>"; };
-		9FE25D900CAB166D005383FC /* APFloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APFloat.h; sourceTree = "<group>"; };
-		9FE25D910CAB166D005383FC /* SparseBitVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SparseBitVector.h; sourceTree = "<group>"; };
-		9FE25D920CAB169F005383FC /* RegisterCoalescer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterCoalescer.h; sourceTree = "<group>"; };
-		9FE25D940CAB16FB005383FC /* RegisterCoalescer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RegisterCoalescer.cpp; sourceTree = "<group>"; };
-		9FE25D950CAB1724005383FC /* APFloat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APFloat.cpp; sourceTree = "<group>"; };
-		9FE25D960CAB1759005383FC /* TargetCallingConv.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TargetCallingConv.td; sourceTree = "<group>"; };
-		9FE4508B0C77A77000C4FEA4 /* ARMCodeEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ARMCodeEmitter.cpp; sourceTree = "<group>"; };
-		9FE4508C0C77A77000C4FEA4 /* ARMGenAsmWriter.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenAsmWriter.inc; sourceTree = "<group>"; };
-		9FE4508D0C77A77000C4FEA4 /* ARMGenDAGISel.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenDAGISel.inc; sourceTree = "<group>"; };
-		9FE4508E0C77A77100C4FEA4 /* ARMGenInstrInfo.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenInstrInfo.inc; sourceTree = "<group>"; };
-		9FE4508F0C77A77100C4FEA4 /* ARMGenInstrNames.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenInstrNames.inc; sourceTree = "<group>"; };
-		9FE450900C77A77100C4FEA4 /* ARMGenRegisterInfo.h.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenRegisterInfo.h.inc; sourceTree = "<group>"; };
-		9FE450910C77A77100C4FEA4 /* ARMGenRegisterInfo.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenRegisterInfo.inc; sourceTree = "<group>"; };
-		9FE450920C77A77100C4FEA4 /* ARMGenRegisterNames.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenRegisterNames.inc; sourceTree = "<group>"; };
-		9FE450930C77A77100C4FEA4 /* ARMGenSubtarget.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = ARMGenSubtarget.inc; sourceTree = "<group>"; };
-		9FE450940C77A77100C4FEA4 /* ARMJITInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ARMJITInfo.cpp; sourceTree = "<group>"; };
-		9FE450950C77A77100C4FEA4 /* ARMJITInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ARMJITInfo.h; sourceTree = "<group>"; };
-		9FE450960C77A77100C4FEA4 /* ARMRelocations.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ARMRelocations.h; sourceTree = "<group>"; };
-		9FE450970C77A77100C4FEA4 /* README-Thumb.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "README-Thumb.txt"; sourceTree = "<group>"; };
-		9FE450980C77A77100C4FEA4 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
-		9FE4509A0C77A79C00C4FEA4 /* PPCCallingConv.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = PPCCallingConv.td; sourceTree = "<group>"; };
-		9FE4509B0C77A79C00C4FEA4 /* PPCGenCallingConv.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = PPCGenCallingConv.inc; sourceTree = "<group>"; };
-		9FE4509C0C77A7BC00C4FEA4 /* README-MMX.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "README-MMX.txt"; sourceTree = "<group>"; };
-		9FE4509D0C77A7BC00C4FEA4 /* X86CallingConv.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = X86CallingConv.td; sourceTree = "<group>"; };
-		9FE4509F0C77A7BC00C4FEA4 /* X86ELFWriterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86ELFWriterInfo.cpp; sourceTree = "<group>"; };
-		9FE450A00C77A7BC00C4FEA4 /* X86ELFWriterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86ELFWriterInfo.h; sourceTree = "<group>"; };
-		9FE450A10C77A7BC00C4FEA4 /* X86GenCallingConv.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.pascal; path = X86GenCallingConv.inc; sourceTree = "<group>"; };
-		9FE450A20C77A7BC00C4FEA4 /* X86InstrFormats.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = X86InstrFormats.td; sourceTree = "<group>"; };
-		9FE450A50C77AAF000C4FEA4 /* Disassembler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Disassembler.cpp; sourceTree = "<group>"; };
-		9FE450A60C77AB3200C4FEA4 /* APInt.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = APInt.cpp; sourceTree = "<group>"; };
-		9FE450A70C77AB3200C4FEA4 /* ConstantRange.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConstantRange.cpp; sourceTree = "<group>"; };
-		9FE450A80C77AB3200C4FEA4 /* MemoryBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MemoryBuffer.cpp; sourceTree = "<group>"; };
-		9FE450A90C77AB3200C4FEA4 /* SmallPtrSet.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SmallPtrSet.cpp; sourceTree = "<group>"; };
-		9FE450AA0C77AB3200C4FEA4 /* StringMap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StringMap.cpp; sourceTree = "<group>"; };
-		9FE450AB0C77AB6100C4FEA4 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
-		9FE450AC0C77AB6E00C4FEA4 /* CallingConvLower.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CallingConvLower.cpp; sourceTree = "<group>"; };
-		9FE450DF0C77ABE400C4FEA4 /* Archive.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Archive.cpp; sourceTree = "<group>"; };
-		9FE450E00C77ABE400C4FEA4 /* ArchiveInternals.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ArchiveInternals.h; sourceTree = "<group>"; };
-		9FE450E10C77ABE400C4FEA4 /* ArchiveReader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ArchiveReader.cpp; sourceTree = "<group>"; };
-		9FE450E20C77ABE400C4FEA4 /* ArchiveWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ArchiveWriter.cpp; sourceTree = "<group>"; };
-		9FEB8C550D1CD1E200EE46BC /* ExecutionEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExecutionEngine.h; sourceTree = "<group>"; };
-		9FEDD5F10D8D73AB009F6DF1 /* Scalar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Scalar.h; sourceTree = "<group>"; };
-		9FEDD5F70D8D797D009F6DF1 /* Scalar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Scalar.cpp; sourceTree = "<group>"; };
-		9FEDD6140D8D7C3B009F6DF1 /* scalar_opts.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = scalar_opts.ml; sourceTree = "<group>"; };
-		9FEDD6B60D8D83D0009F6DF1 /* Target.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Target.cpp; sourceTree = "<group>"; };
-		9FEDD6B80D8D83EC009F6DF1 /* Target.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Target.h; sourceTree = "<group>"; };
-		9FEDD6BB0D8D8408009F6DF1 /* lto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lto.h; sourceTree = "<group>"; };
-		9FEDD6BD0D8D8426009F6DF1 /* target.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = target.ml; sourceTree = "<group>"; };
-		9FEDD6C10D8D844E009F6DF1 /* llvm_target.ml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_target.ml; sourceTree = "<group>"; };
-		9FEDD6C20D8D844E009F6DF1 /* llvm_target.mli */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = llvm_target.mli; sourceTree = "<group>"; };
-		9FEDD6C40D8D844E009F6DF1 /* target_ocaml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = target_ocaml.c; sourceTree = "<group>"; };
-		CF1ACC9709C9DE4400D3C5EB /* IntrinsicInst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IntrinsicInst.cpp; path = ../lib/VMCore/IntrinsicInst.cpp; sourceTree = "<group>"; };
-		CF26835B09178F5500C5F253 /* TargetInstrItineraries.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetInstrItineraries.h; sourceTree = "<group>"; };
-		CF32AF5C0AEE6A4E00D24CD4 /* LLVMTargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LLVMTargetMachine.cpp; sourceTree = "<group>"; };
-		CF33BE160AF62B4200E93805 /* SmallString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmallString.h; sourceTree = "<group>"; };
-		CF341DAD0AB07A8B0099B064 /* AlphaTargetAsmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlphaTargetAsmInfo.h; sourceTree = "<group>"; };
-		CF341DAE0AB07A8B0099B064 /* AlphaTargetAsmInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaTargetAsmInfo.cpp; sourceTree = "<group>"; };
-		CF341E010AB080220099B064 /* PPCTargetAsmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCTargetAsmInfo.h; sourceTree = "<group>"; };
-		CF341E020AB080220099B064 /* PPCTargetAsmInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCTargetAsmInfo.cpp; sourceTree = "<group>"; };
-		CF341E220AB0814B0099B064 /* SparcTargetAsmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SparcTargetAsmInfo.h; sourceTree = "<group>"; };
-		CF341E230AB0814B0099B064 /* SparcTargetAsmInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SparcTargetAsmInfo.cpp; sourceTree = "<group>"; };
-		CF341E320AB082D60099B064 /* X86TargetAsmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X86TargetAsmInfo.h; sourceTree = "<group>"; };
-		CF341E330AB082D60099B064 /* X86TargetAsmInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = X86TargetAsmInfo.cpp; sourceTree = "<group>"; };
-		CF42B6BF0AF24F5300D5D47C /* FoldingSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoldingSet.h; sourceTree = "<group>"; };
-		CF42B6C40AF2512000D5D47C /* FoldingSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FoldingSet.cpp; sourceTree = "<group>"; };
-		CF47BD380AAF40BC00A8B13E /* TargetAsmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetAsmInfo.h; sourceTree = "<group>"; };
-		CF47BD860AAF487E00A8B13E /* TargetAsmInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TargetAsmInfo.cpp; sourceTree = "<group>"; };
-		CF490D14090541D30072DB1C /* TargetSchedule.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TargetSchedule.td; sourceTree = "<group>"; };
-		CF490D15090541D30072DB1C /* TargetSelectionDAG.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TargetSelectionDAG.td; sourceTree = "<group>"; };
-		CF490E2F0907BBF80072DB1C /* SubtargetEmitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SubtargetEmitter.h; sourceTree = "<group>"; };
-		CF490E300907BBF80072DB1C /* SubtargetEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SubtargetEmitter.cpp; sourceTree = "<group>"; };
-		CF4F27E60A7B6E23004359F6 /* MachinePassRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachinePassRegistry.h; sourceTree = "<group>"; };
-		CF4F27F60A7B6FA3004359F6 /* MachinePassRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MachinePassRegistry.cpp; sourceTree = "<group>"; };
-		CF65223409CA39B800C4B521 /* Intrinsics.gen */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Intrinsics.gen; sourceTree = "<group>"; };
-		CF6527D909D1A53400C4B521 /* MachineLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachineLocation.h; sourceTree = "<group>"; };
-		CF6527FA09D1BA3800C4B521 /* DelaySlotFiller.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DelaySlotFiller.cpp; path = ../lib/Target/Sparc/DelaySlotFiller.cpp; sourceTree = SOURCE_ROOT; };
-		CF6527FB09D1BA3800C4B521 /* FPMover.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FPMover.cpp; path = ../lib/Target/Sparc/FPMover.cpp; sourceTree = SOURCE_ROOT; };
-		CF6527FC09D1BA3800C4B521 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = Makefile; path = ../lib/Target/Sparc/Makefile; sourceTree = SOURCE_ROOT; };
-		CF6527FD09D1BA3800C4B521 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.txt; path = ../lib/Target/Sparc/README.txt; sourceTree = SOURCE_ROOT; };
-		CF6527FE09D1BA3800C4B521 /* Sparc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sparc.h; path = ../lib/Target/Sparc/Sparc.h; sourceTree = SOURCE_ROOT; };
-		CF6527FF09D1BA3800C4B521 /* Sparc.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Sparc.td; path = ../lib/Target/Sparc/Sparc.td; sourceTree = SOURCE_ROOT; };
-		CF65280009D1BA3800C4B521 /* SparcAsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SparcAsmPrinter.cpp; path = ../lib/Target/Sparc/SparcAsmPrinter.cpp; sourceTree = SOURCE_ROOT; };
-		CF65280109D1BA3800C4B521 /* SparcGenAsmWriter.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenAsmWriter.inc; path = ../lib/Target/Sparc/SparcGenAsmWriter.inc; sourceTree = SOURCE_ROOT; };
-		CF65280209D1BA3800C4B521 /* SparcGenDAGISel.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenDAGISel.inc; path = ../lib/Target/Sparc/SparcGenDAGISel.inc; sourceTree = SOURCE_ROOT; };
-		CF65280309D1BA3800C4B521 /* SparcGenInstrInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenInstrInfo.inc; path = ../lib/Target/Sparc/SparcGenInstrInfo.inc; sourceTree = SOURCE_ROOT; };
-		CF65280409D1BA3800C4B521 /* SparcGenInstrNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenInstrNames.inc; path = ../lib/Target/Sparc/SparcGenInstrNames.inc; sourceTree = SOURCE_ROOT; };
-		CF65280509D1BA3800C4B521 /* SparcGenRegisterInfo.h.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenRegisterInfo.h.inc; path = ../lib/Target/Sparc/SparcGenRegisterInfo.h.inc; sourceTree = SOURCE_ROOT; };
-		CF65280609D1BA3800C4B521 /* SparcGenRegisterInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenRegisterInfo.inc; path = ../lib/Target/Sparc/SparcGenRegisterInfo.inc; sourceTree = SOURCE_ROOT; };
-		CF65280709D1BA3800C4B521 /* SparcGenRegisterNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenRegisterNames.inc; path = ../lib/Target/Sparc/SparcGenRegisterNames.inc; sourceTree = SOURCE_ROOT; };
-		CF65280809D1BA3800C4B521 /* SparcGenSubtarget.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = SparcGenSubtarget.inc; path = ../lib/Target/Sparc/SparcGenSubtarget.inc; sourceTree = SOURCE_ROOT; };
-		CF65280909D1BA3800C4B521 /* SparcInstrFormats.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = SparcInstrFormats.td; path = ../lib/Target/Sparc/SparcInstrFormats.td; sourceTree = SOURCE_ROOT; };
-		CF65280A09D1BA3800C4B521 /* SparcInstrInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SparcInstrInfo.cpp; path = ../lib/Target/Sparc/SparcInstrInfo.cpp; sourceTree = SOURCE_ROOT; };
-		CF65280B09D1BA3800C4B521 /* SparcInstrInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SparcInstrInfo.h; path = ../lib/Target/Sparc/SparcInstrInfo.h; sourceTree = SOURCE_ROOT; };
-		CF65280C09D1BA3800C4B521 /* SparcInstrInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = SparcInstrInfo.td; path = ../lib/Target/Sparc/SparcInstrInfo.td; sourceTree = SOURCE_ROOT; };
-		CF65280D09D1BA3800C4B521 /* SparcISelDAGToDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SparcISelDAGToDAG.cpp; path = ../lib/Target/Sparc/SparcISelDAGToDAG.cpp; sourceTree = SOURCE_ROOT; };
-		CF65280E09D1BA3800C4B521 /* SparcRegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SparcRegisterInfo.cpp; path = ../lib/Target/Sparc/SparcRegisterInfo.cpp; sourceTree = SOURCE_ROOT; };
-		CF65280F09D1BA3800C4B521 /* SparcRegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SparcRegisterInfo.h; path = ../lib/Target/Sparc/SparcRegisterInfo.h; sourceTree = SOURCE_ROOT; };
-		CF65281009D1BA3800C4B521 /* SparcRegisterInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = SparcRegisterInfo.td; path = ../lib/Target/Sparc/SparcRegisterInfo.td; sourceTree = SOURCE_ROOT; };
-		CF65281109D1BA3800C4B521 /* SparcSubtarget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SparcSubtarget.cpp; path = ../lib/Target/Sparc/SparcSubtarget.cpp; sourceTree = SOURCE_ROOT; };
-		CF65281209D1BA3800C4B521 /* SparcSubtarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SparcSubtarget.h; path = ../lib/Target/Sparc/SparcSubtarget.h; sourceTree = SOURCE_ROOT; };
-		CF65281309D1BA3800C4B521 /* SparcTargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SparcTargetMachine.cpp; path = ../lib/Target/Sparc/SparcTargetMachine.cpp; sourceTree = SOURCE_ROOT; };
-		CF65281409D1BA3800C4B521 /* SparcTargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SparcTargetMachine.h; path = ../lib/Target/Sparc/SparcTargetMachine.h; sourceTree = SOURCE_ROOT; };
-		CF6529A6095B21A8007F884E /* MachineModuleInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MachineModuleInfo.cpp; sourceTree = "<group>"; };
-		CF6B5AFD095C82C300D1EA42 /* DAGCombiner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DAGCombiner.cpp; sourceTree = "<group>"; };
-		CF6F487109505E1500BC9E82 /* MachineModuleInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachineModuleInfo.h; sourceTree = "<group>"; };
-		CF71B60F0AC45EDA0007F57C /* SmallVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmallVector.h; sourceTree = "<group>"; };
-		CF73C0A2098A4FDF00627152 /* InlineAsm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InlineAsm.h; sourceTree = "<group>"; };
-		CF73C0A3098A4FDF00627152 /* TypeSymbolTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeSymbolTable.h; sourceTree = "<group>"; };
-		CF73C0A4098A4FDF00627152 /* ValueSymbolTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ValueSymbolTable.h; sourceTree = "<group>"; };
-		CF73C0A5098A507300627152 /* ConstantFolding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConstantFolding.h; sourceTree = "<group>"; };
-		CF73C0A9098A50FD00627152 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
-		CF73C0AD098A519400627152 /* DataTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataTypes.h; sourceTree = "<group>"; };
-		CF73C0AE098A51AD00627152 /* Alarm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Alarm.h; sourceTree = "<group>"; };
-		CF73C0AF098A51DD00627152 /* RSProfiling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSProfiling.h; sourceTree = "<group>"; };
-		CF73C0B0098A523C00627152 /* ConstantFolding.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConstantFolding.cpp; sourceTree = "<group>"; };
-		CF73C0B7098A546000627152 /* RSProfiling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RSProfiling.cpp; sourceTree = "<group>"; };
-		CF73C0B8098A546000627152 /* RSProfiling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSProfiling.h; sourceTree = "<group>"; };
-		CF73C0B9098A546000627152 /* Reg2Mem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Reg2Mem.cpp; sourceTree = "<group>"; };
-		CF73C0BD098A551F00627152 /* InlineAsm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InlineAsm.cpp; path = ../lib/VMCore/InlineAsm.cpp; sourceTree = SOURCE_ROOT; };
-		CF73C0BE098A551F00627152 /* TypeSymbolTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TypeSymbolTable.cpp; path = ../lib/VMCore/TypeSymbolTable.cpp; sourceTree = SOURCE_ROOT; };
-		CF73C0BF098A551F00627152 /* ValueSymbolTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ValueSymbolTable.cpp; path = ../lib/VMCore/ValueSymbolTable.cpp; sourceTree = SOURCE_ROOT; };
-		CF79495D09B326D4005ADFCA /* Dwarf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Dwarf.cpp; sourceTree = "<group>"; };
-		CF7FFA1F0985081C008B0087 /* ScheduleDAGList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScheduleDAGList.cpp; sourceTree = "<group>"; };
-		CF7FFA2109850864008B0087 /* ScheduleDAG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScheduleDAG.h; sourceTree = "<group>"; };
-		CF8D62FA09C2226F006017BA /* Intrinsics.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Intrinsics.td; sourceTree = "<group>"; };
-		CF8E00490989162500DA2399 /* Dwarf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dwarf.h; sourceTree = "<group>"; };
-		CF8F1B410B64F6D100BB4199 /* RuntimeLibcalls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuntimeLibcalls.h; sourceTree = "<group>"; };
-		CF8F1B420B64F70B00BB4199 /* PassManagers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PassManagers.h; sourceTree = "<group>"; };
-		CF8F1B430B64F74400BB4199 /* Allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Allocator.h; sourceTree = "<group>"; };
-		CF8F1B440B64F74400BB4199 /* Compiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Compiler.h; sourceTree = "<group>"; };
-		CF8F1B460B64F74400BB4199 /* ManagedStatic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ManagedStatic.h; sourceTree = "<group>"; };
-		CF8F1B470B64F74400BB4199 /* OutputBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OutputBuffer.h; sourceTree = "<group>"; };
-		CF8F1B490B64F7AB00BB4199 /* LinkTimeOptimizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkTimeOptimizer.h; sourceTree = "<group>"; };
-		CF8F1B4D0B64F80700BB4199 /* AliasDebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AliasDebugger.cpp; sourceTree = "<group>"; };
-		CF8F1B500B64F86A00BB4199 /* ManagedStatic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ManagedStatic.cpp; sourceTree = "<group>"; };
-		CF8F1B510B64F86A00BB4199 /* Streams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Streams.cpp; sourceTree = "<group>"; };
-		CF8F1B530B64F8C000BB4199 /* IncludeFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IncludeFile.cpp; sourceTree = "<group>"; };
-		CF8F1B540B64F90F00BB4199 /* AlphaBranchSelector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaBranchSelector.cpp; sourceTree = "<group>"; };
-		CF8F1B550B64F90F00BB4199 /* AlphaLLRP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaLLRP.cpp; sourceTree = "<group>"; };
-		CF8F1B560B64F98900BB4199 /* CBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CBackend.cpp; sourceTree = "<group>"; };
-		CF8F1B570B64F9AC00BB4199 /* PPCPredicates.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCPredicates.cpp; sourceTree = "<group>"; };
-		CF8F1B580B64F9AC00BB4199 /* PPCPredicates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCPredicates.h; sourceTree = "<group>"; };
-		CF8F1B590B64F9E100BB4199 /* X86COFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X86COFF.h; sourceTree = "<group>"; };
-		CF8F1B5B0B64FA2F00BB4199 /* PredicateSimplifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PredicateSimplifier.cpp; sourceTree = "<group>"; };
-		CF8F1B5C0B64FA7300BB4199 /* PassManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PassManager.cpp; path = ../lib/VMCore/PassManager.cpp; sourceTree = SOURCE_ROOT; };
-		CF8F1B680B64FADA00BB4199 /* llvm-upgrade.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "llvm-upgrade.cpp"; sourceTree = "<group>"; };
-		CF8F1B720B64FADA00BB4199 /* UpgradeInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UpgradeInternals.h; sourceTree = "<group>"; };
-		CF8F1B750B64FADA00BB4199 /* UpgradeLexer.l */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.lex; path = UpgradeLexer.l; sourceTree = "<group>"; };
-		CF8F1B7C0B64FADA00BB4199 /* UpgradeParser.y */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.yacc; path = UpgradeParser.y; sourceTree = "<group>"; };
-		CF8F1B7F0B64FADA00BB4199 /* CppWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CppWriter.cpp; sourceTree = "<group>"; };
-		CF8F1B800B64FADA00BB4199 /* CppWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CppWriter.h; sourceTree = "<group>"; };
-		CF8F1B870B64FADA00BB4199 /* llvm2cpp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llvm2cpp.cpp; sourceTree = "<group>"; };
-		CF8F1B950B64FB5000BB4199 /* ConfigLexer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigLexer.cpp; sourceTree = "<group>"; };
-		CF8F1B9D0B64FB7F00BB4199 /* lto-c.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "lto-c.cpp"; sourceTree = "<group>"; };
-		CF8F1B9E0B64FB7F00BB4199 /* lto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lto.cpp; sourceTree = "<group>"; };
-		CF8F1BAC0B64FB8000BB4199 /* AnalysisWrappers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AnalysisWrappers.cpp; sourceTree = "<group>"; };
-		CF8F1BB70B64FB8000BB4199 /* GraphPrinters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphPrinters.cpp; sourceTree = "<group>"; };
-		CF8F1BB90B64FB8000BB4199 /* opt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = opt.cpp; sourceTree = "<group>"; };
-		CF8F1BBA0B64FB8000BB4199 /* PrintSCC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PrintSCC.cpp; sourceTree = "<group>"; };
-		CF8F1BC90B64FBD500BB4199 /* CodeGenIntrinsics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodeGenIntrinsics.h; sourceTree = "<group>"; };
-		CF8F1BD10B64FC8A00BB4199 /* ARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARM.h; sourceTree = "<group>"; };
-		CF8F1BD20B64FC8A00BB4199 /* ARM.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ARM.td; sourceTree = "<group>"; };
-		CF8F1BD30B64FC8A00BB4199 /* ARMAddressingModes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMAddressingModes.h; sourceTree = "<group>"; };
-		CF8F1BD40B64FC8A00BB4199 /* ARMAsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMAsmPrinter.cpp; sourceTree = "<group>"; };
-		CF8F1BD50B64FC8A00BB4199 /* ARMConstantIslandPass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMConstantIslandPass.cpp; sourceTree = "<group>"; };
-		CF8F1BD60B64FC8A00BB4199 /* ARMConstantPoolValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMConstantPoolValue.cpp; sourceTree = "<group>"; };
-		CF8F1BD70B64FC8A00BB4199 /* ARMConstantPoolValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMConstantPoolValue.h; sourceTree = "<group>"; };
-		CF8F1BD80B64FC8A00BB4199 /* ARMFrameInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMFrameInfo.h; sourceTree = "<group>"; };
-		CF8F1BD90B64FC8A00BB4199 /* ARMInstrInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMInstrInfo.cpp; sourceTree = "<group>"; };
-		CF8F1BDA0B64FC8A00BB4199 /* ARMInstrInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMInstrInfo.h; sourceTree = "<group>"; };
-		CF8F1BDB0B64FC8A00BB4199 /* ARMInstrInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ARMInstrInfo.td; sourceTree = "<group>"; };
-		CF8F1BDC0B64FC8A00BB4199 /* ARMInstrThumb.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ARMInstrThumb.td; sourceTree = "<group>"; };
-		CF8F1BDD0B64FC8A00BB4199 /* ARMInstrVFP.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ARMInstrVFP.td; sourceTree = "<group>"; };
-		CF8F1BDE0B64FC8A00BB4199 /* ARMISelDAGToDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMISelDAGToDAG.cpp; sourceTree = "<group>"; };
-		CF8F1BDF0B64FC8A00BB4199 /* ARMISelLowering.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMISelLowering.cpp; sourceTree = "<group>"; };
-		CF8F1BE00B64FC8A00BB4199 /* ARMISelLowering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMISelLowering.h; sourceTree = "<group>"; };
-		CF8F1BE10B64FC8A00BB4199 /* ARMLoadStoreOptimizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMLoadStoreOptimizer.cpp; sourceTree = "<group>"; };
-		CF8F1BE20B64FC8A00BB4199 /* ARMMachineFunctionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMMachineFunctionInfo.h; sourceTree = "<group>"; };
-		CF8F1BE30B64FC8A00BB4199 /* ARMRegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMRegisterInfo.cpp; sourceTree = "<group>"; };
-		CF8F1BE40B64FC8A00BB4199 /* ARMRegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMRegisterInfo.h; sourceTree = "<group>"; };
-		CF8F1BE50B64FC8A00BB4199 /* ARMRegisterInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ARMRegisterInfo.td; sourceTree = "<group>"; };
-		CF8F1BE60B64FC8A00BB4199 /* ARMSubtarget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMSubtarget.cpp; sourceTree = "<group>"; };
-		CF8F1BE70B64FC8A00BB4199 /* ARMSubtarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMSubtarget.h; sourceTree = "<group>"; };
-		CF8F1BE80B64FC8A00BB4199 /* ARMTargetAsmInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMTargetAsmInfo.cpp; sourceTree = "<group>"; };
-		CF8F1BE90B64FC8A00BB4199 /* ARMTargetAsmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMTargetAsmInfo.h; sourceTree = "<group>"; };
-		CF8F1BEA0B64FC8A00BB4199 /* ARMTargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMTargetMachine.cpp; sourceTree = "<group>"; };
-		CF8F1BEB0B64FC8A00BB4199 /* ARMTargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMTargetMachine.h; sourceTree = "<group>"; };
-		CF9720260A9F39B9002CEEDD /* LinkAllPasses.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkAllPasses.h; sourceTree = "<group>"; };
-		CF9720270A9F39B9002CEEDD /* LinkTimeOptimizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkTimeOptimizer.h; sourceTree = "<group>"; };
-		CF9720340A9F3A41002CEEDD /* IncludeFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IncludeFile.h; sourceTree = "<group>"; };
-		CF9720350A9F3ADC002CEEDD /* MachOWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MachOWriter.cpp; sourceTree = "<group>"; };
-		CF9720370A9F3B1C002CEEDD /* TargetLowering.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TargetLowering.cpp; sourceTree = "<group>"; };
-		CF97208A0A9F3C6F002CEEDD /* LCSSA.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LCSSA.cpp; sourceTree = "<group>"; };
-		CF97208B0A9F3C6F002CEEDD /* LowerAllocations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LowerAllocations.cpp; sourceTree = "<group>"; };
-		CF97208C0A9F3C6F002CEEDD /* LowerInvoke.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LowerInvoke.cpp; sourceTree = "<group>"; };
-		CF97208E0A9F3C6F002CEEDD /* LowerSwitch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LowerSwitch.cpp; sourceTree = "<group>"; };
-		CF97208F0A9F3C6F002CEEDD /* Mem2Reg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Mem2Reg.cpp; sourceTree = "<group>"; };
-		CF9720900A9F3CA2002CEEDD /* ValueTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ValueTypes.cpp; path = ../lib/VMCore/ValueTypes.cpp; sourceTree = SOURCE_ROOT; };
-		CF9720910A9F3CC7002CEEDD /* FindBugs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FindBugs.cpp; sourceTree = "<group>"; };
-		CF9720920A9F3CC7002CEEDD /* ToolRunner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ToolRunner.cpp; sourceTree = "<group>"; };
-		CF9720930A9F3CC7002CEEDD /* ToolRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ToolRunner.h; sourceTree = "<group>"; };
-		CF9720970A9F3D4D002CEEDD /* IntrinsicEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IntrinsicEmitter.cpp; sourceTree = "<group>"; };
-		CF9720980A9F3D4D002CEEDD /* IntrinsicEmitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntrinsicEmitter.h; sourceTree = "<group>"; };
-		CF9BCD0808C74DE0001E7011 /* SubtargetFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SubtargetFeature.h; sourceTree = "<group>"; };
-		CF9BCD1508C75070001E7011 /* SubtargetFeature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SubtargetFeature.cpp; sourceTree = "<group>"; };
-		CFA702BB0A6FA85F0006009A /* AlphaGenAsmWriter.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenAsmWriter.inc; sourceTree = "<group>"; };
-		CFA702BC0A6FA85F0006009A /* AlphaGenCodeEmitter.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenCodeEmitter.inc; sourceTree = "<group>"; };
-		CFA702BD0A6FA85F0006009A /* AlphaGenDAGISel.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenDAGISel.inc; sourceTree = "<group>"; };
-		CFA702BE0A6FA85F0006009A /* AlphaGenInstrInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenInstrInfo.inc; sourceTree = "<group>"; };
-		CFA702BF0A6FA85F0006009A /* AlphaGenInstrNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenInstrNames.inc; sourceTree = "<group>"; };
-		CFA702C00A6FA85F0006009A /* AlphaGenRegisterInfo.h.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenRegisterInfo.h.inc; sourceTree = "<group>"; };
-		CFA702C10A6FA85F0006009A /* AlphaGenRegisterInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenRegisterInfo.inc; sourceTree = "<group>"; };
-		CFA702C20A6FA85F0006009A /* AlphaGenRegisterNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenRegisterNames.inc; sourceTree = "<group>"; };
-		CFA702C30A6FA85F0006009A /* AlphaGenSubtarget.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = AlphaGenSubtarget.inc; sourceTree = "<group>"; };
-		CFA702CB0A6FA8AD0006009A /* PPCGenAsmWriter.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenAsmWriter.inc; sourceTree = "<group>"; };
-		CFA702CC0A6FA8AD0006009A /* PPCGenCodeEmitter.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenCodeEmitter.inc; sourceTree = "<group>"; };
-		CFA702CD0A6FA8AD0006009A /* PPCGenDAGISel.inc */ = {isa = PBXFileReference; explicitFileType = sourcecode.pascal; fileEncoding = 4; path = PPCGenDAGISel.inc; sourceTree = "<group>"; };
-		CFA702CE0A6FA8AD0006009A /* PPCGenInstrInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenInstrInfo.inc; sourceTree = "<group>"; };
-		CFA702CF0A6FA8AD0006009A /* PPCGenInstrNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenInstrNames.inc; sourceTree = "<group>"; };
-		CFA702D00A6FA8AD0006009A /* PPCGenRegisterInfo.h.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenRegisterInfo.h.inc; sourceTree = "<group>"; };
-		CFA702D10A6FA8AD0006009A /* PPCGenRegisterInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenRegisterInfo.inc; sourceTree = "<group>"; };
-		CFA702D20A6FA8AD0006009A /* PPCGenRegisterNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenRegisterNames.inc; sourceTree = "<group>"; };
-		CFA702D30A6FA8AD0006009A /* PPCGenSubtarget.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = PPCGenSubtarget.inc; sourceTree = "<group>"; };
-		CFA702D40A6FA8DD0006009A /* X86GenAsmWriter.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenAsmWriter.inc; sourceTree = "<group>"; };
-		CFA702D50A6FA8DD0006009A /* X86GenAsmWriter1.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenAsmWriter1.inc; sourceTree = "<group>"; };
-		CFA702D60A6FA8DD0006009A /* X86GenDAGISel.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenDAGISel.inc; sourceTree = "<group>"; };
-		CFA702D70A6FA8DD0006009A /* X86GenInstrInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenInstrInfo.inc; sourceTree = "<group>"; };
-		CFA702D80A6FA8DD0006009A /* X86GenInstrNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenInstrNames.inc; sourceTree = "<group>"; };
-		CFA702D90A6FA8DD0006009A /* X86GenRegisterInfo.h.inc */ = {isa = PBXFileReference; fileEncoding = 4; languageSpecificationIdentifier = c.cpp; lastKnownFileType = sourcecode.pascal; path = X86GenRegisterInfo.h.inc; sourceTree = "<group>"; };
-		CFA702DA0A6FA8DD0006009A /* X86GenRegisterInfo.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenRegisterInfo.inc; sourceTree = "<group>"; };
-		CFA702DB0A6FA8DD0006009A /* X86GenRegisterNames.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenRegisterNames.inc; sourceTree = "<group>"; };
-		CFA702DC0A6FA8DD0006009A /* X86GenSubtarget.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = X86GenSubtarget.inc; sourceTree = "<group>"; };
-		CFABD0A20B09E342003EB061 /* PPCMachineFunctionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCMachineFunctionInfo.h; sourceTree = "<group>"; };
-		CFBD8B1A090E76540020B107 /* AlphaISelDAGToDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaISelDAGToDAG.cpp; sourceTree = "<group>"; };
-		CFBD8B1B090E76540020B107 /* AlphaISelLowering.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaISelLowering.cpp; sourceTree = "<group>"; };
-		CFBD8B1C090E76540020B107 /* AlphaISelLowering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlphaISelLowering.h; sourceTree = "<group>"; };
-		CFBD8B1D090E76540020B107 /* AlphaSubtarget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaSubtarget.cpp; sourceTree = "<group>"; };
-		CFBD8B1E090E76540020B107 /* AlphaSubtarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlphaSubtarget.h; sourceTree = "<group>"; };
-		CFC244570959DEF2009F8C47 /* DwarfWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DwarfWriter.cpp; sourceTree = "<group>"; };
-		CFC244BB0959F24C009F8C47 /* X86ISelDAGToDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = X86ISelDAGToDAG.cpp; sourceTree = "<group>"; };
-		CFC244BC0959F24C009F8C47 /* X86ISelLowering.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = X86ISelLowering.cpp; sourceTree = "<group>"; };
-		CFC244BD0959F24C009F8C47 /* X86ISelLowering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X86ISelLowering.h; sourceTree = "<group>"; };
-		CFD7E4F30A798FC3000C7379 /* LinkAllCodegenComponents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkAllCodegenComponents.h; sourceTree = "<group>"; };
-		CFD99AA80AFE827B0068D19C /* LICENSE.TXT */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LICENSE.TXT; path = ../LICENSE.TXT; sourceTree = SOURCE_ROOT; };
-		CFD99AAD0AFE827B0068D19C /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.txt; path = ../README.txt; sourceTree = SOURCE_ROOT; };
-		CFD99AB70AFE848A0068D19C /* Allocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Allocator.cpp; sourceTree = "<group>"; };
-		CFD99ABA0AFE84D70068D19C /* IncludeFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IncludeFile.cpp; sourceTree = "<group>"; };
-		CFD99ABB0AFE84EF0068D19C /* Alarm.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = Alarm.inc; sourceTree = "<group>"; };
-		CFD99ABE0AFE857A0068D19C /* README-X86-64.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "README-X86-64.txt"; sourceTree = "<group>"; };
-		CFD99ADA0AFE87650068D19C /* lto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lto.cpp; path = lto/lto.cpp; sourceTree = "<group>"; };
-		CFD99ADB0AFE87870068D19C /* AnalysisWrappers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AnalysisWrappers.cpp; path = opt/AnalysisWrappers.cpp; sourceTree = "<group>"; };
-		CFD99ADC0AFE87870068D19C /* GraphPrinters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GraphPrinters.cpp; path = opt/GraphPrinters.cpp; sourceTree = "<group>"; };
-		CFD99ADD0AFE87870068D19C /* opt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = opt.cpp; path = opt/opt.cpp; sourceTree = "<group>"; };
-		CFD99ADE0AFE87870068D19C /* PrintSCC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PrintSCC.cpp; path = opt/PrintSCC.cpp; sourceTree = "<group>"; };
-		CFE21C780A80CC0600D3E908 /* RegAllocRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegAllocRegistry.h; sourceTree = "<group>"; };
-		CFE21C7B0A80CC1C00D3E908 /* SchedulerRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SchedulerRegistry.h; sourceTree = "<group>"; };
-		CFE420FB0A66F67300AB4BF6 /* MachineJumpTableInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachineJumpTableInfo.h; sourceTree = "<group>"; };
-		CFE420FC0A66F67300AB4BF6 /* ValueTypes.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ValueTypes.td; sourceTree = "<group>"; };
-		CFE420FD0A66F67300AB4BF6 /* Interpreter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Interpreter.h; sourceTree = "<group>"; };
-		CFE420FE0A66F67300AB4BF6 /* JIT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JIT.h; sourceTree = "<group>"; };
-		CFE420FF0A66F67300AB4BF6 /* IntrinsicsPowerPC.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IntrinsicsPowerPC.td; sourceTree = "<group>"; };
-		CFE421000A66F67300AB4BF6 /* IntrinsicsX86.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IntrinsicsX86.td; sourceTree = "<group>"; };
-		CFE421010A66F67300AB4BF6 /* LinkAllVMCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkAllVMCore.h; sourceTree = "<group>"; };
-		CFE421060A66F86D00AB4BF6 /* ScheduleDAGRRList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScheduleDAGRRList.cpp; sourceTree = "<group>"; };
-		CFE421070A66F8DC00AB4BF6 /* GraphWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphWriter.cpp; sourceTree = "<group>"; };
-		CFE421090A66F93300AB4BF6 /* Alarm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Alarm.cpp; sourceTree = "<group>"; };
-		CFE4210A0A66F93300AB4BF6 /* Alarm.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; path = Alarm.inc; sourceTree = "<group>"; };
-		CFE4210B0A66F96400AB4BF6 /* AlphaSchedule.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AlphaSchedule.td; sourceTree = "<group>"; };
-		CFE421140A66FA2D00AB4BF6 /* PPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPC.h; sourceTree = "<group>"; };
-		CFE421150A66FA2D00AB4BF6 /* PPC.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPC.td; sourceTree = "<group>"; };
-		CFE421160A66FA2D00AB4BF6 /* PPCAsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCAsmPrinter.cpp; sourceTree = "<group>"; };
-		CFE421170A66FA2D00AB4BF6 /* PPCBranchSelector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCBranchSelector.cpp; sourceTree = "<group>"; };
-		CFE421180A66FA2D00AB4BF6 /* PPCCodeEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCCodeEmitter.cpp; sourceTree = "<group>"; };
-		CFE421190A66FA2D00AB4BF6 /* PPCFrameInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCFrameInfo.h; sourceTree = "<group>"; };
-		CFE4211A0A66FA2D00AB4BF6 /* PPCHazardRecognizers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCHazardRecognizers.cpp; sourceTree = "<group>"; };
-		CFE4211B0A66FA2D00AB4BF6 /* PPCHazardRecognizers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCHazardRecognizers.h; sourceTree = "<group>"; };
-		CFE4211C0A66FA2D00AB4BF6 /* PPCInstr64Bit.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCInstr64Bit.td; sourceTree = "<group>"; };
-		CFE4211D0A66FA2D00AB4BF6 /* PPCInstrAltivec.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCInstrAltivec.td; sourceTree = "<group>"; };
-		CFE4211E0A66FA2D00AB4BF6 /* PPCInstrBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCInstrBuilder.h; sourceTree = "<group>"; };
-		CFE4211F0A66FA2D00AB4BF6 /* PPCInstrFormats.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCInstrFormats.td; sourceTree = "<group>"; };
-		CFE421200A66FA2D00AB4BF6 /* PPCInstrInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCInstrInfo.cpp; sourceTree = "<group>"; };
-		CFE421210A66FA2D00AB4BF6 /* PPCInstrInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCInstrInfo.h; sourceTree = "<group>"; };
-		CFE421220A66FA2D00AB4BF6 /* PPCInstrInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCInstrInfo.td; sourceTree = "<group>"; };
-		CFE421230A66FA2D00AB4BF6 /* PPCISelDAGToDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCISelDAGToDAG.cpp; sourceTree = "<group>"; };
-		CFE421240A66FA2D00AB4BF6 /* PPCISelLowering.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCISelLowering.cpp; sourceTree = "<group>"; };
-		CFE421250A66FA2D00AB4BF6 /* PPCISelLowering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCISelLowering.h; sourceTree = "<group>"; };
-		CFE421260A66FA2D00AB4BF6 /* PPCJITInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCJITInfo.cpp; sourceTree = "<group>"; };
-		CFE421270A66FA2D00AB4BF6 /* PPCJITInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCJITInfo.h; sourceTree = "<group>"; };
-		CFE421280A66FA2D00AB4BF6 /* PPCPerfectShuffle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCPerfectShuffle.h; sourceTree = "<group>"; };
-		CFE421290A66FA2D00AB4BF6 /* PPCRegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCRegisterInfo.cpp; sourceTree = "<group>"; };
-		CFE4212A0A66FA2D00AB4BF6 /* PPCRegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCRegisterInfo.h; sourceTree = "<group>"; };
-		CFE4212B0A66FA2D00AB4BF6 /* PPCRegisterInfo.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCRegisterInfo.td; sourceTree = "<group>"; };
-		CFE4212C0A66FA2D00AB4BF6 /* PPCRelocations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCRelocations.h; sourceTree = "<group>"; };
-		CFE4212D0A66FA2D00AB4BF6 /* PPCSchedule.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCSchedule.td; sourceTree = "<group>"; };
-		CFE4212E0A66FA2D00AB4BF6 /* PPCScheduleG3.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCScheduleG3.td; sourceTree = "<group>"; };
-		CFE4212F0A66FA2D00AB4BF6 /* PPCScheduleG4.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCScheduleG4.td; sourceTree = "<group>"; };
-		CFE421300A66FA2D00AB4BF6 /* PPCScheduleG4Plus.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCScheduleG4Plus.td; sourceTree = "<group>"; };
-		CFE421310A66FA2D00AB4BF6 /* PPCScheduleG5.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PPCScheduleG5.td; sourceTree = "<group>"; };
-		CFE421320A66FA2E00AB4BF6 /* PPCSubtarget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCSubtarget.cpp; sourceTree = "<group>"; };
-		CFE421330A66FA2E00AB4BF6 /* PPCSubtarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCSubtarget.h; sourceTree = "<group>"; };
-		CFE421340A66FA2E00AB4BF6 /* PPCTargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PPCTargetMachine.cpp; sourceTree = "<group>"; };
-		CFE421350A66FA2E00AB4BF6 /* PPCTargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPCTargetMachine.h; sourceTree = "<group>"; };
-		CFE421360A66FA2E00AB4BF6 /* README_ALTIVEC.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README_ALTIVEC.txt; sourceTree = "<group>"; };
-		CFE421370A66FA2E00AB4BF6 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
-		CFE421380A66FA8000AB4BF6 /* README-FPStack.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "README-FPStack.txt"; sourceTree = "<group>"; };
-		CFE421390A66FA8000AB4BF6 /* README-SSE.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "README-SSE.txt"; sourceTree = "<group>"; };
-		CFE4213A0A66FA8000AB4BF6 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
-		CFE4213B0A66FA8000AB4BF6 /* X86MachineFunctionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X86MachineFunctionInfo.h; sourceTree = "<group>"; };
-		CFE4213D0A66FAE100AB4BF6 /* Hello.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Hello.cpp; sourceTree = "<group>"; };
-		CFE4213F0A66FB5E00AB4BF6 /* IndMemRemoval.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IndMemRemoval.cpp; sourceTree = "<group>"; };
-		CFF0DE6309BF6C360031957F /* X86InstrFPStack.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = X86InstrFPStack.td; sourceTree = "<group>"; };
-		CFF0DE6409BF6C360031957F /* X86InstrMMX.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = X86InstrMMX.td; sourceTree = "<group>"; };
-		CFF0DE6509BF6C360031957F /* X86InstrSSE.td */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = X86InstrSSE.td; sourceTree = "<group>"; };
-		CFF8B434097C605F0047F72A /* UniqueVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UniqueVector.h; sourceTree = "<group>"; };
-		DE4DA0390911476D0012D44B /* LoopSimplify.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = LoopSimplify.cpp; path = ../lib/Transforms/Utils/LoopSimplify.cpp; sourceTree = SOURCE_ROOT; };
-		DE4DA03C091147920012D44B /* LiveInterval.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = LiveInterval.h; path = ../include/llvm/CodeGen/LiveInterval.h; sourceTree = SOURCE_ROOT; };
-		DE4DA03D091147920012D44B /* LiveIntervalAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = LiveIntervalAnalysis.h; path = ../include/llvm/CodeGen/LiveIntervalAnalysis.h; sourceTree = SOURCE_ROOT; };
-		DE4DA065091148520012D44B /* SubtargetEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SubtargetEmitter.cpp; path = ../utils/TableGen/SubtargetEmitter.cpp; sourceTree = SOURCE_ROOT; };
-		DE4DA066091148520012D44B /* SubtargetEmitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SubtargetEmitter.h; path = ../utils/TableGen/SubtargetEmitter.h; sourceTree = SOURCE_ROOT; };
-		DE66EC5B08ABE86900323D32 /* AsmWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AsmWriter.cpp; path = ../lib/VMCore/AsmWriter.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC5C08ABE86A00323D32 /* BasicBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = BasicBlock.cpp; path = ../lib/VMCore/BasicBlock.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6008ABE86A00323D32 /* Constants.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Constants.cpp; path = ../lib/VMCore/Constants.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6108ABE86A00323D32 /* Dominators.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Dominators.cpp; path = ../lib/VMCore/Dominators.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6208ABE86A00323D32 /* Function.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Function.cpp; path = ../lib/VMCore/Function.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6308ABE86A00323D32 /* Globals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Globals.cpp; path = ../lib/VMCore/Globals.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6408ABE86A00323D32 /* Instruction.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Instruction.cpp; path = ../lib/VMCore/Instruction.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6508ABE86A00323D32 /* Instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Instructions.cpp; path = ../lib/VMCore/Instructions.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6608ABE86A00323D32 /* LeakDetector.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = LeakDetector.cpp; path = ../lib/VMCore/LeakDetector.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6708ABE86A00323D32 /* Mangler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Mangler.cpp; path = ../lib/VMCore/Mangler.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6808ABE86A00323D32 /* Module.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Module.cpp; path = ../lib/VMCore/Module.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6908ABE86A00323D32 /* ModuleProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ModuleProvider.cpp; path = ../lib/VMCore/ModuleProvider.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6A08ABE86A00323D32 /* Pass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Pass.cpp; path = ../lib/VMCore/Pass.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6D08ABE86A00323D32 /* SymbolTableListTraitsImpl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SymbolTableListTraitsImpl.h; path = ../lib/VMCore/SymbolTableListTraitsImpl.h; sourceTree = SOURCE_ROOT; };
-		DE66EC6E08ABE86A00323D32 /* Type.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Type.cpp; path = ../lib/VMCore/Type.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC6F08ABE86A00323D32 /* Value.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Value.cpp; path = ../lib/VMCore/Value.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC7008ABE86A00323D32 /* Verifier.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Verifier.cpp; path = ../lib/VMCore/Verifier.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC8E08ABEAF000323D32 /* llvmAsmParser.y */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; name = llvmAsmParser.y; path = ../lib/AsmParser/llvmAsmParser.y; sourceTree = SOURCE_ROOT; };
-		DE66EC8F08ABEAF000323D32 /* Parser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Parser.cpp; path = ../lib/AsmParser/Parser.cpp; sourceTree = SOURCE_ROOT; };
-		DE66EC9008ABEAF000323D32 /* ParserInternals.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ParserInternals.h; path = ../lib/AsmParser/ParserInternals.h; sourceTree = SOURCE_ROOT; };
-		DE66ECBE08ABEC0700323D32 /* AliasAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AliasAnalysis.cpp; sourceTree = "<group>"; };
-		DE66ECBF08ABEC0700323D32 /* AliasAnalysisCounter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AliasAnalysisCounter.cpp; sourceTree = "<group>"; };
-		DE66ECC008ABEC0700323D32 /* AliasAnalysisEvaluator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AliasAnalysisEvaluator.cpp; sourceTree = "<group>"; };
-		DE66ECC108ABEC0700323D32 /* AliasSetTracker.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AliasSetTracker.cpp; sourceTree = "<group>"; };
-		DE66ECC208ABEC0700323D32 /* BasicAliasAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BasicAliasAnalysis.cpp; sourceTree = "<group>"; };
-		DE66ECC308ABEC0700323D32 /* CFGPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CFGPrinter.cpp; sourceTree = "<group>"; };
-		DE66ED1708ABEC0800323D32 /* InstCount.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InstCount.cpp; sourceTree = "<group>"; };
-		DE66ED1808ABEC0800323D32 /* Interval.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Interval.cpp; sourceTree = "<group>"; };
-		DE66ED1908ABEC0800323D32 /* IntervalPartition.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IntervalPartition.cpp; sourceTree = "<group>"; };
-		DE66ED1B08ABEC0800323D32 /* Andersens.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Andersens.cpp; sourceTree = "<group>"; };
-		DE66ED1C08ABEC0800323D32 /* CallGraph.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CallGraph.cpp; sourceTree = "<group>"; };
-		DE66ED1D08ABEC0800323D32 /* CallGraphSCCPass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CallGraphSCCPass.cpp; sourceTree = "<group>"; };
-		DE66ED2F08ABEC0800323D32 /* FindUsedTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FindUsedTypes.cpp; sourceTree = "<group>"; };
-		DE66ED3008ABEC0800323D32 /* GlobalsModRef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GlobalsModRef.cpp; sourceTree = "<group>"; };
-		DE66ED3308ABEC0800323D32 /* LoadValueNumbering.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LoadValueNumbering.cpp; sourceTree = "<group>"; };
-		DE66ED3408ABEC0800323D32 /* LoopInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LoopInfo.cpp; sourceTree = "<group>"; };
-		DE66ED3608ABEC0800323D32 /* PostDominators.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PostDominators.cpp; sourceTree = "<group>"; };
-		DE66ED3708ABEC0800323D32 /* ProfileInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ProfileInfo.cpp; sourceTree = "<group>"; };
-		DE66ED3808ABEC0800323D32 /* ProfileInfoLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ProfileInfoLoader.cpp; sourceTree = "<group>"; };
-		DE66ED3908ABEC0800323D32 /* ProfileInfoLoaderPass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ProfileInfoLoaderPass.cpp; sourceTree = "<group>"; };
-		DE66ED3A08ABEC0800323D32 /* ScalarEvolution.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ScalarEvolution.cpp; sourceTree = "<group>"; };
-		DE66ED3B08ABEC0800323D32 /* ScalarEvolutionExpander.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ScalarEvolutionExpander.cpp; sourceTree = "<group>"; };
-		DE66ED3C08ABEC0800323D32 /* Trace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Trace.cpp; sourceTree = "<group>"; };
-		DE66ED3D08ABEC0800323D32 /* ValueNumbering.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ValueNumbering.cpp; sourceTree = "<group>"; };
-		DE66ED3F08ABEC2A00323D32 /* AsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AsmPrinter.cpp; sourceTree = "<group>"; };
-		DE66ED4008ABEC2A00323D32 /* BranchFolding.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BranchFolding.cpp; sourceTree = "<group>"; };
-		DE66ED6F08ABEC2B00323D32 /* ELFWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ELFWriter.cpp; sourceTree = "<group>"; };
-		DE66ED7008ABEC2B00323D32 /* IntrinsicLowering.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IntrinsicLowering.cpp; sourceTree = "<group>"; };
-		DE66ED7108ABEC2B00323D32 /* LiveInterval.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LiveInterval.cpp; sourceTree = "<group>"; };
-		DE66ED7308ABEC2B00323D32 /* LiveIntervalAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LiveIntervalAnalysis.cpp; sourceTree = "<group>"; };
-		DE66ED7508ABEC2B00323D32 /* LiveVariables.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LiveVariables.cpp; sourceTree = "<group>"; };
-		DE66ED7608ABEC2B00323D32 /* MachineBasicBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachineBasicBlock.cpp; sourceTree = "<group>"; };
-		DE66ED7808ABEC2B00323D32 /* MachineFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachineFunction.cpp; sourceTree = "<group>"; };
-		DE66ED7908ABEC2B00323D32 /* MachineInstr.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachineInstr.cpp; sourceTree = "<group>"; };
-		DE66ED7B08ABEC2B00323D32 /* Passes.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Passes.cpp; sourceTree = "<group>"; };
-		DE66ED7C08ABEC2B00323D32 /* PHIElimination.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PHIElimination.cpp; sourceTree = "<group>"; };
-		DE66ED7D08ABEC2B00323D32 /* PhysRegTracker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PhysRegTracker.h; sourceTree = "<group>"; };
-		DE66ED7E08ABEC2B00323D32 /* PrologEpilogInserter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PrologEpilogInserter.cpp; sourceTree = "<group>"; };
-		DE66ED8008ABEC2B00323D32 /* RegAllocLinearScan.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RegAllocLinearScan.cpp; sourceTree = "<group>"; };
-		DE66ED8108ABEC2B00323D32 /* RegAllocLocal.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RegAllocLocal.cpp; sourceTree = "<group>"; };
-		DE66ED8208ABEC2B00323D32 /* RegAllocSimple.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RegAllocSimple.cpp; sourceTree = "<group>"; };
-		DE66ED9008ABEC2B00323D32 /* LegalizeDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LegalizeDAG.cpp; sourceTree = "<group>"; };
-		DE66ED9208ABEC2B00323D32 /* SelectionDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SelectionDAG.cpp; sourceTree = "<group>"; };
-		DE66ED9308ABEC2B00323D32 /* SelectionDAGISel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SelectionDAGISel.cpp; sourceTree = "<group>"; };
-		DE66ED9408ABEC2B00323D32 /* SelectionDAGPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SelectionDAGPrinter.cpp; sourceTree = "<group>"; };
-		DE66ED9508ABEC2B00323D32 /* TwoAddressInstructionPass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TwoAddressInstructionPass.cpp; sourceTree = "<group>"; };
-		DE66ED9608ABEC2B00323D32 /* UnreachableBlockElim.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = UnreachableBlockElim.cpp; sourceTree = "<group>"; };
-		DE66ED9808ABEC2B00323D32 /* VirtRegMap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = VirtRegMap.cpp; sourceTree = "<group>"; };
-		DE66ED9908ABEC2B00323D32 /* VirtRegMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = VirtRegMap.h; sourceTree = "<group>"; };
-		DE66EDB108ABEC7300323D32 /* Debugger.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Debugger.cpp; sourceTree = "<group>"; };
-		DE66EDB508ABEC7300323D32 /* ProgramInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ProgramInfo.cpp; sourceTree = "<group>"; };
-		DE66EDB608ABEC7300323D32 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
-		DE66EDB708ABEC7300323D32 /* RuntimeInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RuntimeInfo.cpp; sourceTree = "<group>"; };
-		DE66EDB808ABEC7300323D32 /* SourceFile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SourceFile.cpp; sourceTree = "<group>"; };
-		DE66EDB908ABEC7300323D32 /* SourceLanguage-CFamily.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = "SourceLanguage-CFamily.cpp"; sourceTree = "<group>"; };
-		DE66EDBA08ABEC7300323D32 /* SourceLanguage-CPlusPlus.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = "SourceLanguage-CPlusPlus.cpp"; sourceTree = "<group>"; };
-		DE66EDBB08ABEC7300323D32 /* SourceLanguage-Unknown.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = "SourceLanguage-Unknown.cpp"; sourceTree = "<group>"; };
-		DE66EDBC08ABEC7300323D32 /* SourceLanguage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SourceLanguage.cpp; sourceTree = "<group>"; };
-		DE66EDC408ABEC9000323D32 /* ExecutionEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutionEngine.cpp; sourceTree = "<group>"; };
-		DE66EDCE08ABEC9000323D32 /* Execution.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Execution.cpp; sourceTree = "<group>"; };
-		DE66EDCF08ABEC9000323D32 /* ExternalFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ExternalFunctions.cpp; sourceTree = "<group>"; };
-		DE66EDD008ABEC9000323D32 /* Interpreter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Interpreter.cpp; sourceTree = "<group>"; };
-		DE66EDD108ABEC9000323D32 /* Interpreter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Interpreter.h; sourceTree = "<group>"; };
-		DE66EDDE08ABEC9100323D32 /* Intercept.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Intercept.cpp; sourceTree = "<group>"; };
-		DE66EDDF08ABEC9100323D32 /* JIT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JIT.cpp; sourceTree = "<group>"; };
-		DE66EDE008ABEC9100323D32 /* JIT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JIT.h; sourceTree = "<group>"; };
-		DE66EDE108ABEC9100323D32 /* JITEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JITEmitter.cpp; sourceTree = "<group>"; };
-		DE66EDE308ABEC9100323D32 /* TargetSelect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetSelect.cpp; sourceTree = "<group>"; };
-		DE66EDF608ABEDD300323D32 /* LinkArchives.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LinkArchives.cpp; sourceTree = "<group>"; };
-		DE66EDF708ABEDD300323D32 /* Linker.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Linker.cpp; sourceTree = "<group>"; };
-		DE66EDF808ABEDD300323D32 /* LinkItems.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LinkItems.cpp; sourceTree = "<group>"; };
-		DE66EDF908ABEDD300323D32 /* LinkModules.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LinkModules.cpp; sourceTree = "<group>"; };
-		DE66EDFC08ABEDE600323D32 /* Annotation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Annotation.cpp; sourceTree = "<group>"; };
-		DE66EE1D08ABEDE600323D32 /* CommandLine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CommandLine.cpp; sourceTree = "<group>"; };
-		DE66EE3D08ABEDE600323D32 /* Debug.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Debug.cpp; sourceTree = "<group>"; };
-		DE66EE3E08ABEDE600323D32 /* FileUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FileUtilities.cpp; sourceTree = "<group>"; };
-		DE66EE3F08ABEDE600323D32 /* IsInf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IsInf.cpp; sourceTree = "<group>"; };
-		DE66EE4008ABEDE600323D32 /* IsNAN.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IsNAN.cpp; sourceTree = "<group>"; };
-		DE66EE4208ABEDE600323D32 /* PluginLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PluginLoader.cpp; sourceTree = "<group>"; };
-		DE66EE4308ABEDE600323D32 /* SlowOperationInformer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SlowOperationInformer.cpp; sourceTree = "<group>"; };
-		DE66EE4408ABEDE600323D32 /* Statistic.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Statistic.cpp; sourceTree = "<group>"; };
-		DE66EE4508ABEDE700323D32 /* StringExtras.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StringExtras.cpp; sourceTree = "<group>"; };
-		DE66EE4608ABEDE700323D32 /* SystemUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SystemUtils.cpp; sourceTree = "<group>"; };
-		DE66EE4708ABEDE700323D32 /* Timer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Timer.cpp; sourceTree = "<group>"; };
-		DE66EE6008ABEE3400323D32 /* DynamicLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DynamicLibrary.cpp; sourceTree = "<group>"; };
-		DE66EE6108ABEE3400323D32 /* LICENSE.TXT */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = LICENSE.TXT; sourceTree = "<group>"; };
-		DE66EE6508ABEE3400323D32 /* MappedFile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MappedFile.cpp; sourceTree = "<group>"; };
-		DE66EE6608ABEE3400323D32 /* Memory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Memory.cpp; sourceTree = "<group>"; };
-		DE66EE6708ABEE3400323D32 /* Mutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Mutex.cpp; sourceTree = "<group>"; };
-		DE66EE6808ABEE3400323D32 /* Path.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Path.cpp; sourceTree = "<group>"; };
-		DE66EE6908ABEE3400323D32 /* Process.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Process.cpp; sourceTree = "<group>"; };
-		DE66EE6A08ABEE3400323D32 /* Program.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Program.cpp; sourceTree = "<group>"; };
-		DE66EE6B08ABEE3400323D32 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
-		DE66EE7C08ABEE3400323D32 /* Signals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Signals.cpp; sourceTree = "<group>"; };
-		DE66EE7D08ABEE3400323D32 /* TimeValue.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TimeValue.cpp; sourceTree = "<group>"; };
-		DE66EE7F08ABEE3500323D32 /* MappedFile.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = MappedFile.inc; sourceTree = "<group>"; };
-		DE66EE8008ABEE3500323D32 /* Memory.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Memory.inc; sourceTree = "<group>"; };
-		DE66EE8108ABEE3500323D32 /* Mutex.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Mutex.inc; sourceTree = "<group>"; };
-		DE66EE8208ABEE3500323D32 /* Path.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Path.inc; sourceTree = "<group>"; };
-		DE66EE8308ABEE3500323D32 /* Process.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Process.inc; sourceTree = "<group>"; };
-		DE66EE8408ABEE3500323D32 /* Program.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Program.inc; sourceTree = "<group>"; };
-		DE66EE8508ABEE3500323D32 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
-		DE66EE8608ABEE3500323D32 /* Signals.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Signals.inc; sourceTree = "<group>"; };
-		DE66EE8908ABEE3500323D32 /* TimeValue.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = TimeValue.inc; sourceTree = "<group>"; };
-		DE66EE8A08ABEE3500323D32 /* Unix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Unix.h; sourceTree = "<group>"; };
-		DE66EE8C08ABEE3500323D32 /* DynamicLibrary.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = DynamicLibrary.inc; sourceTree = "<group>"; };
-		DE66EE8D08ABEE3500323D32 /* MappedFile.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = MappedFile.inc; sourceTree = "<group>"; };
-		DE66EE8E08ABEE3500323D32 /* Memory.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Memory.inc; sourceTree = "<group>"; };
-		DE66EE8F08ABEE3500323D32 /* Mutex.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Mutex.inc; sourceTree = "<group>"; };
-		DE66EE9008ABEE3500323D32 /* Path.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Path.inc; sourceTree = "<group>"; };
-		DE66EE9108ABEE3500323D32 /* Process.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Process.inc; sourceTree = "<group>"; };
-		DE66EE9208ABEE3500323D32 /* Program.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Program.inc; sourceTree = "<group>"; };
-		DE66EE9308ABEE3500323D32 /* Signals.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Signals.inc; sourceTree = "<group>"; };
-		DE66EE9408ABEE3500323D32 /* TimeValue.inc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = TimeValue.inc; sourceTree = "<group>"; };
-		DE66EE9508ABEE3500323D32 /* Win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Win32.h; sourceTree = "<group>"; };
-		DE66EE9808ABEE5E00323D32 /* Alpha.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Alpha.h; sourceTree = "<group>"; };
-		DE66EE9908ABEE5E00323D32 /* Alpha.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Alpha.td; sourceTree = "<group>"; };
-		DE66EE9A08ABEE5E00323D32 /* AlphaAsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaAsmPrinter.cpp; sourceTree = "<group>"; };
-		DE66EE9B08ABEE5E00323D32 /* AlphaCodeEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaCodeEmitter.cpp; sourceTree = "<group>"; };
-		DE66EEA308ABEE5E00323D32 /* AlphaInstrFormats.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = AlphaInstrFormats.td; sourceTree = "<group>"; };
-		DE66EEA408ABEE5E00323D32 /* AlphaInstrInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaInstrInfo.cpp; sourceTree = "<group>"; };
-		DE66EEA508ABEE5E00323D32 /* AlphaInstrInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AlphaInstrInfo.h; sourceTree = "<group>"; };
-		DE66EEA608ABEE5E00323D32 /* AlphaInstrInfo.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = AlphaInstrInfo.td; sourceTree = "<group>"; };
-		DE66EEA908ABEE5E00323D32 /* AlphaJITInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaJITInfo.cpp; sourceTree = "<group>"; };
-		DE66EEAA08ABEE5E00323D32 /* AlphaJITInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AlphaJITInfo.h; sourceTree = "<group>"; };
-		DE66EEAB08ABEE5E00323D32 /* AlphaRegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaRegisterInfo.cpp; sourceTree = "<group>"; };
-		DE66EEAC08ABEE5E00323D32 /* AlphaRegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AlphaRegisterInfo.h; sourceTree = "<group>"; };
-		DE66EEAD08ABEE5E00323D32 /* AlphaRegisterInfo.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = AlphaRegisterInfo.td; sourceTree = "<group>"; };
-		DE66EEAE08ABEE5E00323D32 /* AlphaRelocations.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AlphaRelocations.h; sourceTree = "<group>"; };
-		DE66EEAF08ABEE5E00323D32 /* AlphaTargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AlphaTargetMachine.cpp; sourceTree = "<group>"; };
-		DE66EEB008ABEE5E00323D32 /* AlphaTargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AlphaTargetMachine.h; sourceTree = "<group>"; };
-		DE66EECA08ABEE5E00323D32 /* CTargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CTargetMachine.h; sourceTree = "<group>"; };
-		DE66EF0E08ABEE5E00323D32 /* README */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
-		DE66EF1008ABEE5E00323D32 /* TargetRegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetRegisterInfo.cpp; sourceTree = "<group>"; };
-		DE66F08A08ABEE6000323D32 /* Target.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Target.td; sourceTree = "<group>"; };
-		DE66F08B08ABEE6000323D32 /* TargetData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetData.cpp; sourceTree = "<group>"; };
-		DE66F08C08ABEE6000323D32 /* TargetFrameInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetFrameInfo.cpp; sourceTree = "<group>"; };
-		DE66F08D08ABEE6000323D32 /* TargetInstrInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetInstrInfo.cpp; sourceTree = "<group>"; };
-		DE66F08F08ABEE6000323D32 /* TargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetMachine.cpp; sourceTree = "<group>"; };
-		DE66F09008ABEE6000323D32 /* TargetMachineRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetMachineRegistry.cpp; sourceTree = "<group>"; };
-		DE66F09208ABEE6000323D32 /* TargetSubtarget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TargetSubtarget.cpp; sourceTree = "<group>"; };
-		DE66F0BC08ABEE6000323D32 /* X86.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86.h; sourceTree = "<group>"; };
-		DE66F0BD08ABEE6000323D32 /* X86.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = X86.td; sourceTree = "<group>"; };
-		DE66F0BE08ABEE6000323D32 /* X86AsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86AsmPrinter.cpp; sourceTree = "<group>"; };
-		DE66F0BF08ABEE6000323D32 /* X86AsmPrinter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86AsmPrinter.h; sourceTree = "<group>"; };
-		DE66F0C008ABEE6000323D32 /* X86ATTAsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86ATTAsmPrinter.cpp; sourceTree = "<group>"; };
-		DE66F0C108ABEE6000323D32 /* X86ATTAsmPrinter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86ATTAsmPrinter.h; sourceTree = "<group>"; };
-		DE66F0C208ABEE6000323D32 /* X86CodeEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86CodeEmitter.cpp; sourceTree = "<group>"; };
-		DE66F0C408ABEE6000323D32 /* X86FloatingPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86FloatingPoint.cpp; sourceTree = "<group>"; };
-		DE66F0CC08ABEE6000323D32 /* X86InstrBuilder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86InstrBuilder.h; sourceTree = "<group>"; };
-		DE66F0CD08ABEE6000323D32 /* X86InstrInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86InstrInfo.cpp; sourceTree = "<group>"; };
-		DE66F0CE08ABEE6000323D32 /* X86InstrInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86InstrInfo.h; sourceTree = "<group>"; };
-		DE66F0CF08ABEE6100323D32 /* X86InstrInfo.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = X86InstrInfo.td; sourceTree = "<group>"; };
-		DE66F0D008ABEE6100323D32 /* X86IntelAsmPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86IntelAsmPrinter.cpp; sourceTree = "<group>"; };
-		DE66F0D108ABEE6100323D32 /* X86IntelAsmPrinter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86IntelAsmPrinter.h; sourceTree = "<group>"; };
-		DE66F0D508ABEE6100323D32 /* X86JITInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86JITInfo.cpp; sourceTree = "<group>"; };
-		DE66F0D608ABEE6100323D32 /* X86JITInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86JITInfo.h; sourceTree = "<group>"; };
-		DE66F0D808ABEE6100323D32 /* X86RegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86RegisterInfo.cpp; sourceTree = "<group>"; };
-		DE66F0D908ABEE6100323D32 /* X86RegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86RegisterInfo.h; sourceTree = "<group>"; };
-		DE66F0DA08ABEE6100323D32 /* X86RegisterInfo.td */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = X86RegisterInfo.td; sourceTree = "<group>"; };
-		DE66F0DB08ABEE6100323D32 /* X86Relocations.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86Relocations.h; sourceTree = "<group>"; };
-		DE66F0DC08ABEE6100323D32 /* X86Subtarget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86Subtarget.cpp; sourceTree = "<group>"; };
-		DE66F0DD08ABEE6100323D32 /* X86Subtarget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86Subtarget.h; sourceTree = "<group>"; };
-		DE66F0DE08ABEE6100323D32 /* X86TargetMachine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = X86TargetMachine.cpp; sourceTree = "<group>"; };
-		DE66F0DF08ABEE6100323D32 /* X86TargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = X86TargetMachine.h; sourceTree = "<group>"; };
-		DE66F0EF08ABEFB300323D32 /* BlockProfiling.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BlockProfiling.cpp; sourceTree = "<group>"; };
-		DE66F0FE08ABEFB300323D32 /* EdgeProfiling.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = EdgeProfiling.cpp; sourceTree = "<group>"; };
-		DE66F11B08ABEFB300323D32 /* ProfilingUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ProfilingUtils.cpp; sourceTree = "<group>"; };
-		DE66F11C08ABEFB300323D32 /* ProfilingUtils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ProfilingUtils.h; sourceTree = "<group>"; };
-		DE66F12008ABEFB300323D32 /* ArgumentPromotion.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ArgumentPromotion.cpp; sourceTree = "<group>"; };
-		DE66F12108ABEFB300323D32 /* ConstantMerge.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConstantMerge.cpp; sourceTree = "<group>"; };
-		DE66F12208ABEFB300323D32 /* DeadArgumentElimination.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeadArgumentElimination.cpp; sourceTree = "<group>"; };
-		DE66F12308ABEFB300323D32 /* DeadTypeElimination.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeadTypeElimination.cpp; sourceTree = "<group>"; };
-		DE66F14C08ABEFB400323D32 /* GlobalDCE.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GlobalDCE.cpp; sourceTree = "<group>"; };
-		DE66F14D08ABEFB400323D32 /* GlobalOpt.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GlobalOpt.cpp; sourceTree = "<group>"; };
-		DE66F14E08ABEFB400323D32 /* Inliner.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Inliner.cpp; sourceTree = "<group>"; };
-		DE66F15008ABEFB400323D32 /* InlineSimple.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InlineSimple.cpp; sourceTree = "<group>"; };
-		DE66F15108ABEFB400323D32 /* Internalize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Internalize.cpp; sourceTree = "<group>"; };
-		DE66F15208ABEFB400323D32 /* IPConstantPropagation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IPConstantPropagation.cpp; sourceTree = "<group>"; };
-		DE66F15308ABEFB400323D32 /* LoopExtractor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LoopExtractor.cpp; sourceTree = "<group>"; };
-		DE66F15408ABEFB400323D32 /* LowerSetJmp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LowerSetJmp.cpp; sourceTree = "<group>"; };
-		DE66F15608ABEFB400323D32 /* PruneEH.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PruneEH.cpp; sourceTree = "<group>"; };
-		DE66F15708ABEFB400323D32 /* RaiseAllocations.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RaiseAllocations.cpp; sourceTree = "<group>"; };
-		DE66F15808ABEFB400323D32 /* SimplifyLibCalls.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SimplifyLibCalls.cpp; sourceTree = "<group>"; };
-		DE66F15908ABEFB400323D32 /* StripSymbols.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StripSymbols.cpp; sourceTree = "<group>"; };
-		DE66F15E08ABEFB400323D32 /* ADCE.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ADCE.cpp; sourceTree = "<group>"; };
-		DE66F15F08ABEFB400323D32 /* BasicBlockPlacement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BasicBlockPlacement.cpp; sourceTree = "<group>"; };
-		DE66F16008ABEFB400323D32 /* CondPropagate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CondPropagate.cpp; sourceTree = "<group>"; };
-		DE66F16108ABEFB400323D32 /* ConstantProp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConstantProp.cpp; sourceTree = "<group>"; };
-		DE66F16308ABEFB400323D32 /* DCE.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DCE.cpp; sourceTree = "<group>"; };
-		DE66F16408ABEFB400323D32 /* DeadStoreElimination.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeadStoreElimination.cpp; sourceTree = "<group>"; };
-		DE66F1A308ABEFB400323D32 /* GCSE.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GCSE.cpp; sourceTree = "<group>"; };
-		DE66F1A408ABEFB400323D32 /* IndVarSimplify.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IndVarSimplify.cpp; sourceTree = "<group>"; };
-		DE66F1A508ABEFB400323D32 /* InstructionCombining.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InstructionCombining.cpp; sourceTree = "<group>"; };
-		DE66F1A608ABEFB400323D32 /* LICM.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LICM.cpp; sourceTree = "<group>"; };
-		DE66F1A808ABEFB400323D32 /* LoopStrengthReduce.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LoopStrengthReduce.cpp; sourceTree = "<group>"; };
-		DE66F1A908ABEFB400323D32 /* LoopUnroll.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LoopUnroll.cpp; sourceTree = "<group>"; };
-		DE66F1AA08ABEFB400323D32 /* LoopUnswitch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LoopUnswitch.cpp; sourceTree = "<group>"; };
-		DE66F1B508ABEFB400323D32 /* Reassociate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Reassociate.cpp; sourceTree = "<group>"; };
-		DE66F1B608ABEFB400323D32 /* ScalarReplAggregates.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ScalarReplAggregates.cpp; sourceTree = "<group>"; };
-		DE66F1B708ABEFB400323D32 /* SCCP.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SCCP.cpp; sourceTree = "<group>"; };
-		DE66F1B808ABEFB400323D32 /* SimplifyCFG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SimplifyCFG.cpp; sourceTree = "<group>"; };
-		DE66F1B908ABEFB400323D32 /* TailDuplication.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TailDuplication.cpp; sourceTree = "<group>"; };
-		DE66F1BA08ABEFB400323D32 /* TailRecursionElimination.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TailRecursionElimination.cpp; sourceTree = "<group>"; };
-		DE66F1BE08ABEFB400323D32 /* BasicBlockUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BasicBlockUtils.cpp; sourceTree = "<group>"; };
-		DE66F1BF08ABEFB400323D32 /* BreakCriticalEdges.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BreakCriticalEdges.cpp; sourceTree = "<group>"; };
-		DE66F1C008ABEFB400323D32 /* CloneFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CloneFunction.cpp; sourceTree = "<group>"; };
-		DE66F1C108ABEFB400323D32 /* CloneModule.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CloneModule.cpp; sourceTree = "<group>"; };
-		DE66F1C208ABEFB400323D32 /* CloneTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CloneTrace.cpp; sourceTree = "<group>"; };
-		DE66F1C308ABEFB400323D32 /* CodeExtractor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CodeExtractor.cpp; sourceTree = "<group>"; };
-		DE66F1E008ABEFB400323D32 /* DemoteRegToStack.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DemoteRegToStack.cpp; sourceTree = "<group>"; };
-		DE66F1E108ABEFB400323D32 /* InlineFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InlineFunction.cpp; sourceTree = "<group>"; };
-		DE66F1E208ABEFB400323D32 /* Local.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Local.cpp; sourceTree = "<group>"; };
-		DE66F1E408ABEFB400323D32 /* PromoteMemoryToRegister.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PromoteMemoryToRegister.cpp; sourceTree = "<group>"; };
-		DE66F1E508ABEFB400323D32 /* SimplifyCFG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SimplifyCFG.cpp; sourceTree = "<group>"; };
-		DE66F1E608ABEFB400323D32 /* UnifyFunctionExitNodes.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = UnifyFunctionExitNodes.cpp; sourceTree = "<group>"; };
-		DE66F1E708ABEFB400323D32 /* ValueMapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ValueMapper.cpp; sourceTree = "<group>"; };
-		DE66F1EA08ABF03100323D32 /* AbstractTypeUser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AbstractTypeUser.h; sourceTree = "<group>"; };
-		DE66F1EE08ABF03100323D32 /* DenseMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DenseMap.h; sourceTree = "<group>"; };
-		DE66F1EF08ABF03100323D32 /* DepthFirstIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DepthFirstIterator.h; sourceTree = "<group>"; };
-		DE66F1F008ABF03100323D32 /* EquivalenceClasses.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EquivalenceClasses.h; sourceTree = "<group>"; };
-		DE66F1F108ABF03100323D32 /* GraphTraits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GraphTraits.h; sourceTree = "<group>"; };
-		DE66F1F308ABF03100323D32 /* hash_map.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = hash_map.in; sourceTree = "<group>"; };
-		DE66F1F508ABF03100323D32 /* hash_set.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = hash_set.in; sourceTree = "<group>"; };
-		DE66F1F608ABF03100323D32 /* HashExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HashExtras.h; sourceTree = "<group>"; };
-		DE66F1F708ABF03100323D32 /* ilist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ilist; sourceTree = "<group>"; };
-		DE66F1F908ABF03100323D32 /* iterator.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = iterator.in; sourceTree = "<group>"; };
-		DE66F1FA08ABF03100323D32 /* PostOrderIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PostOrderIterator.h; sourceTree = "<group>"; };
-		DE66F1FB08ABF03100323D32 /* SCCIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SCCIterator.h; sourceTree = "<group>"; };
-		DE66F1FC08ABF03100323D32 /* SetOperations.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SetOperations.h; sourceTree = "<group>"; };
-		DE66F1FD08ABF03100323D32 /* SetVector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SetVector.h; sourceTree = "<group>"; };
-		DE66F1FE08ABF03100323D32 /* Statistic.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Statistic.h; sourceTree = "<group>"; };
-		DE66F1FF08ABF03100323D32 /* STLExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = STLExtras.h; sourceTree = "<group>"; };
-		DE66F20008ABF03100323D32 /* StringExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StringExtras.h; sourceTree = "<group>"; };
-		DE66F20108ABF03100323D32 /* Tree.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Tree.h; sourceTree = "<group>"; };
-		DE66F20208ABF03100323D32 /* VectorExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = VectorExtras.h; sourceTree = "<group>"; };
-		DE66F20408ABF03100323D32 /* AliasAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AliasAnalysis.h; sourceTree = "<group>"; };
-		DE66F20508ABF03100323D32 /* AliasSetTracker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AliasSetTracker.h; sourceTree = "<group>"; };
-		DE66F20608ABF03100323D32 /* CallGraph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CallGraph.h; sourceTree = "<group>"; };
-		DE66F20708ABF03100323D32 /* CFGPrinter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CFGPrinter.h; sourceTree = "<group>"; };
-		DE66F20808ABF03100323D32 /* ConstantsScanner.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConstantsScanner.h; sourceTree = "<group>"; };
-		DE66F20F08ABF03100323D32 /* Dominators.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dominators.h; sourceTree = "<group>"; };
-		DE66F21208ABF03100323D32 /* FindUsedTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FindUsedTypes.h; sourceTree = "<group>"; };
-		DE66F21308ABF03100323D32 /* Interval.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Interval.h; sourceTree = "<group>"; };
-		DE66F21408ABF03100323D32 /* IntervalIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IntervalIterator.h; sourceTree = "<group>"; };
-		DE66F21508ABF03100323D32 /* IntervalPartition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IntervalPartition.h; sourceTree = "<group>"; };
-		DE66F21608ABF03100323D32 /* LoadValueNumbering.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LoadValueNumbering.h; sourceTree = "<group>"; };
-		DE66F21708ABF03100323D32 /* LoopInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LoopInfo.h; sourceTree = "<group>"; };
-		DE66F21808ABF03100323D32 /* Passes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Passes.h; sourceTree = "<group>"; };
-		DE66F21908ABF03100323D32 /* PostDominators.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PostDominators.h; sourceTree = "<group>"; };
-		DE66F21A08ABF03100323D32 /* ProfileInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ProfileInfo.h; sourceTree = "<group>"; };
-		DE66F21B08ABF03100323D32 /* ProfileInfoLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ProfileInfoLoader.h; sourceTree = "<group>"; };
-		DE66F21C08ABF03100323D32 /* ProfileInfoTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ProfileInfoTypes.h; sourceTree = "<group>"; };
-		DE66F21D08ABF03100323D32 /* ScalarEvolution.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ScalarEvolution.h; sourceTree = "<group>"; };
-		DE66F21E08ABF03100323D32 /* ScalarEvolutionExpander.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ScalarEvolutionExpander.h; sourceTree = "<group>"; };
-		DE66F21F08ABF03100323D32 /* ScalarEvolutionExpressions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ScalarEvolutionExpressions.h; sourceTree = "<group>"; };
-		DE66F22008ABF03100323D32 /* Trace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Trace.h; sourceTree = "<group>"; };
-		DE66F22108ABF03100323D32 /* ValueNumbering.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ValueNumbering.h; sourceTree = "<group>"; };
-		DE66F22208ABF03100323D32 /* Verifier.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Verifier.h; sourceTree = "<group>"; };
-		DE66F22308ABF03100323D32 /* Argument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Argument.h; sourceTree = "<group>"; };
-		DE66F22508ABF03100323D32 /* AsmAnnotationWriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AsmAnnotationWriter.h; sourceTree = "<group>"; };
-		DE66F22708ABF03100323D32 /* Parser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Parser.h; sourceTree = "<group>"; };
-		DE66F22808ABF03100323D32 /* PrintModulePass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrintModulePass.h; sourceTree = "<group>"; };
-		DE66F22908ABF03100323D32 /* Writer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Writer.h; sourceTree = "<group>"; };
-		DE66F22A08ABF03100323D32 /* BasicBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BasicBlock.h; sourceTree = "<group>"; };
-		DE66F23308ABF03100323D32 /* CallGraphSCCPass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CallGraphSCCPass.h; sourceTree = "<group>"; };
-		DE66F23408ABF03100323D32 /* CallingConv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CallingConv.h; sourceTree = "<group>"; };
-		DE66F23608ABF03100323D32 /* AsmPrinter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AsmPrinter.h; sourceTree = "<group>"; };
-		DE66F23908ABF03100323D32 /* IntrinsicLowering.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IntrinsicLowering.h; sourceTree = "<group>"; };
-		DE66F23A08ABF03100323D32 /* LiveVariables.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LiveVariables.h; sourceTree = "<group>"; };
-		DE66F23B08ABF03100323D32 /* MachineBasicBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineBasicBlock.h; sourceTree = "<group>"; };
-		DE66F23C08ABF03100323D32 /* MachineCodeEmitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineCodeEmitter.h; sourceTree = "<group>"; };
-		DE66F23D08ABF03100323D32 /* MachineConstantPool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineConstantPool.h; sourceTree = "<group>"; };
-		DE66F23E08ABF03100323D32 /* MachineFrameInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineFrameInfo.h; sourceTree = "<group>"; };
-		DE66F23F08ABF03100323D32 /* MachineFunction.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineFunction.h; sourceTree = "<group>"; };
-		DE66F24008ABF03100323D32 /* MachineFunctionPass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineFunctionPass.h; sourceTree = "<group>"; };
-		DE66F24108ABF03100323D32 /* MachineInstr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineInstr.h; sourceTree = "<group>"; };
-		DE66F24208ABF03100323D32 /* MachineInstrBuilder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineInstrBuilder.h; sourceTree = "<group>"; };
-		DE66F24308ABF03100323D32 /* MachineRelocation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachineRelocation.h; sourceTree = "<group>"; };
-		DE66F24408ABF03100323D32 /* Passes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Passes.h; sourceTree = "<group>"; };
-		DE66F24508ABF03100323D32 /* SchedGraphCommon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SchedGraphCommon.h; sourceTree = "<group>"; };
-		DE66F24608ABF03100323D32 /* SelectionDAG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SelectionDAG.h; sourceTree = "<group>"; };
-		DE66F24708ABF03100323D32 /* SelectionDAGISel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SelectionDAGISel.h; sourceTree = "<group>"; };
-		DE66F24808ABF03100323D32 /* SelectionDAGNodes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SelectionDAGNodes.h; sourceTree = "<group>"; };
-		DE66F24B08ABF03100323D32 /* ValueTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ValueTypes.h; sourceTree = "<group>"; };
-		DE66F24E08ABF03100323D32 /* alloca.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = alloca.h; sourceTree = "<group>"; };
-		DE66F25008ABF03100323D32 /* config.h.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = config.h.in; sourceTree = "<group>"; };
-		DE66F25108ABF03100323D32 /* Constant.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Constant.h; sourceTree = "<group>"; };
-		DE66F25208ABF03100323D32 /* Constants.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Constants.h; sourceTree = "<group>"; };
-		DE66F25408ABF03100323D32 /* Debugger.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Debugger.h; sourceTree = "<group>"; };
-		DE66F25508ABF03100323D32 /* InferiorProcess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InferiorProcess.h; sourceTree = "<group>"; };
-		DE66F25608ABF03100323D32 /* ProgramInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ProgramInfo.h; sourceTree = "<group>"; };
-		DE66F25708ABF03100323D32 /* RuntimeInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RuntimeInfo.h; sourceTree = "<group>"; };
-		DE66F25808ABF03100323D32 /* SourceFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SourceFile.h; sourceTree = "<group>"; };
-		DE66F25908ABF03100323D32 /* SourceLanguage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SourceLanguage.h; sourceTree = "<group>"; };
-		DE66F25A08ABF03100323D32 /* DerivedTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DerivedTypes.h; sourceTree = "<group>"; };
-		DE66F25C08ABF03100323D32 /* ExecutionEngine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ExecutionEngine.h; sourceTree = "<group>"; };
-		DE66F25D08ABF03100323D32 /* GenericValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GenericValue.h; sourceTree = "<group>"; };
-		DE66F25E08ABF03100323D32 /* Function.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Function.h; sourceTree = "<group>"; };
-		DE66F25F08ABF03100323D32 /* GlobalValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GlobalValue.h; sourceTree = "<group>"; };
-		DE66F26008ABF03100323D32 /* GlobalVariable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GlobalVariable.h; sourceTree = "<group>"; };
-		DE66F26108ABF03100323D32 /* InstrTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InstrTypes.h; sourceTree = "<group>"; };
-		DE66F26208ABF03100323D32 /* Instruction.def */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Instruction.def; sourceTree = "<group>"; };
-		DE66F26308ABF03100323D32 /* Instruction.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Instruction.h; sourceTree = "<group>"; };
-		DE66F26408ABF03100323D32 /* Instructions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Instructions.h; sourceTree = "<group>"; };
-		DE66F26508ABF03100323D32 /* IntrinsicInst.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IntrinsicInst.h; sourceTree = "<group>"; };
-		DE66F26608ABF03100323D32 /* Intrinsics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Intrinsics.h; sourceTree = "<group>"; };
-		DE66F26708ABF03100323D32 /* Linker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Linker.h; sourceTree = "<group>"; };
-		DE66F26808ABF03100323D32 /* Module.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Module.h; sourceTree = "<group>"; };
-		DE66F26908ABF03200323D32 /* ModuleProvider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ModuleProvider.h; sourceTree = "<group>"; };
-		DE66F26A08ABF03200323D32 /* Pass.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pass.h; sourceTree = "<group>"; };
-		DE66F26B08ABF03200323D32 /* PassAnalysisSupport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PassAnalysisSupport.h; sourceTree = "<group>"; };
-		DE66F26C08ABF03200323D32 /* PassManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PassManager.h; sourceTree = "<group>"; };
-		DE66F26D08ABF03200323D32 /* PassSupport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PassSupport.h; sourceTree = "<group>"; };
-		DE66F27008ABF03200323D32 /* AIXDataTypesFix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AIXDataTypesFix.h; sourceTree = "<group>"; };
-		DE66F27108ABF03200323D32 /* Annotation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Annotation.h; sourceTree = "<group>"; };
-		DE66F27208ABF03200323D32 /* CallSite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CallSite.h; sourceTree = "<group>"; };
-		DE66F27308ABF03200323D32 /* Casting.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Casting.h; sourceTree = "<group>"; };
-		DE66F27408ABF03200323D32 /* CFG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CFG.h; sourceTree = "<group>"; };
-		DE66F27508ABF03200323D32 /* CommandLine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CommandLine.h; sourceTree = "<group>"; };
-		DE66F27708ABF03200323D32 /* ConstantRange.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConstantRange.h; sourceTree = "<group>"; };
-		DE66F27908ABF03200323D32 /* DataTypes.h.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = DataTypes.h.in; sourceTree = "<group>"; };
-		DE66F27A08ABF03200323D32 /* Debug.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Debug.h; sourceTree = "<group>"; };
-		DE66F27B08ABF03200323D32 /* DOTGraphTraits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOTGraphTraits.h; sourceTree = "<group>"; };
-		DE66F27C08ABF03200323D32 /* DynamicLinker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DynamicLinker.h; sourceTree = "<group>"; };
-		DE66F27D08ABF03200323D32 /* ELF.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ELF.h; sourceTree = "<group>"; };
-		DE66F27E08ABF03200323D32 /* FileUtilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FileUtilities.h; sourceTree = "<group>"; };
-		DE66F27F08ABF03200323D32 /* GetElementPtrTypeIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GetElementPtrTypeIterator.h; sourceTree = "<group>"; };
-		DE66F28008ABF03200323D32 /* GraphWriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GraphWriter.h; sourceTree = "<group>"; };
-		DE66F28108ABF03200323D32 /* InstIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InstIterator.h; sourceTree = "<group>"; };
-		DE66F28208ABF03200323D32 /* InstVisitor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InstVisitor.h; sourceTree = "<group>"; };
-		DE66F28308ABF03200323D32 /* LeakDetector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LeakDetector.h; sourceTree = "<group>"; };
-		DE66F28408ABF03200323D32 /* Mangler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Mangler.h; sourceTree = "<group>"; };
-		DE66F28508ABF03200323D32 /* MathExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MathExtras.h; sourceTree = "<group>"; };
-		DE66F28608ABF03200323D32 /* MutexGuard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MutexGuard.h; sourceTree = "<group>"; };
-		DE66F28708ABF03200323D32 /* PassNameParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PassNameParser.h; sourceTree = "<group>"; };
-		DE66F28808ABF03200323D32 /* PatternMatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PatternMatch.h; sourceTree = "<group>"; };
-		DE66F28908ABF03200323D32 /* PluginLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PluginLoader.h; sourceTree = "<group>"; };
-		DE66F28A08ABF03200323D32 /* SlowOperationInformer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SlowOperationInformer.h; sourceTree = "<group>"; };
-		DE66F28B08ABF03200323D32 /* StableBasicBlockNumbering.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StableBasicBlockNumbering.h; sourceTree = "<group>"; };
-		DE66F28C08ABF03200323D32 /* SystemUtils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SystemUtils.h; sourceTree = "<group>"; };
-		DE66F28E08ABF03200323D32 /* Timer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Timer.h; sourceTree = "<group>"; };
-		DE66F29008ABF03200323D32 /* type_traits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = type_traits.h; sourceTree = "<group>"; };
-		DE66F29308ABF03200323D32 /* SymbolTableListTraits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SymbolTableListTraits.h; sourceTree = "<group>"; };
-		DE66F29508ABF03200323D32 /* DynamicLibrary.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DynamicLibrary.h; sourceTree = "<group>"; };
-		DE66F29608ABF03200323D32 /* LICENSE.TXT */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = LICENSE.TXT; sourceTree = "<group>"; };
-		DE66F29708ABF03200323D32 /* MappedFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MappedFile.h; sourceTree = "<group>"; };
-		DE66F29808ABF03200323D32 /* Memory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Memory.h; sourceTree = "<group>"; };
-		DE66F29908ABF03200323D32 /* Mutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Mutex.h; sourceTree = "<group>"; };
-		DE66F29A08ABF03200323D32 /* Path.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Path.h; sourceTree = "<group>"; };
-		DE66F29B08ABF03200323D32 /* Process.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Process.h; sourceTree = "<group>"; };
-		DE66F29C08ABF03200323D32 /* Program.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Program.h; sourceTree = "<group>"; };
-		DE66F29D08ABF03200323D32 /* Signals.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Signals.h; sourceTree = "<group>"; };
-		DE66F29E08ABF03200323D32 /* TimeValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TimeValue.h; sourceTree = "<group>"; };
-		DE66F2A008ABF03200323D32 /* TargetRegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetRegisterInfo.h; sourceTree = "<group>"; };
-		DE66F2A108ABF03200323D32 /* TargetData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetData.h; sourceTree = "<group>"; };
-		DE66F2A208ABF03200323D32 /* TargetFrameInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetFrameInfo.h; sourceTree = "<group>"; };
-		DE66F2A308ABF03200323D32 /* TargetInstrInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetInstrInfo.h; sourceTree = "<group>"; };
-		DE66F2A408ABF03200323D32 /* TargetJITInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetJITInfo.h; sourceTree = "<group>"; };
-		DE66F2A508ABF03200323D32 /* TargetLowering.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetLowering.h; sourceTree = "<group>"; };
-		DE66F2A608ABF03200323D32 /* TargetMachine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetMachine.h; sourceTree = "<group>"; };
-		DE66F2A708ABF03200323D32 /* TargetMachineRegistry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetMachineRegistry.h; sourceTree = "<group>"; };
-		DE66F2A808ABF03200323D32 /* TargetOptions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetOptions.h; sourceTree = "<group>"; };
-		DE66F2AA08ABF03200323D32 /* TargetSubtarget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TargetSubtarget.h; sourceTree = "<group>"; };
-		DE66F2AC08ABF03200323D32 /* Instrumentation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Instrumentation.h; sourceTree = "<group>"; };
-		DE66F2AD08ABF03200323D32 /* IPO.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IPO.h; sourceTree = "<group>"; };
-		DE66F2AF08ABF03200323D32 /* Scalar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Scalar.h; sourceTree = "<group>"; };
-		DE66F2B108ABF03200323D32 /* BasicBlockUtils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BasicBlockUtils.h; sourceTree = "<group>"; };
-		DE66F2B208ABF03200323D32 /* Cloning.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Cloning.h; sourceTree = "<group>"; };
-		DE66F2B308ABF03200323D32 /* FunctionUtils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FunctionUtils.h; sourceTree = "<group>"; };
-		DE66F2B408ABF03200323D32 /* Local.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Local.h; sourceTree = "<group>"; };
-		DE66F2B508ABF03200323D32 /* PromoteMemToReg.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PromoteMemToReg.h; sourceTree = "<group>"; };
-		DE66F2B608ABF03200323D32 /* UnifyFunctionExitNodes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UnifyFunctionExitNodes.h; sourceTree = "<group>"; };
-		DE66F2B708ABF03200323D32 /* Type.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Type.h; sourceTree = "<group>"; };
-		DE66F2B808ABF03200323D32 /* Use.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Use.h; sourceTree = "<group>"; };
-		DE66F2B908ABF03200323D32 /* User.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
-		DE66F2BA08ABF03200323D32 /* Value.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Value.h; sourceTree = "<group>"; };
-		DE66F2CC08ABF14400323D32 /* BugDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BugDriver.cpp; sourceTree = "<group>"; };
-		DE66F2CD08ABF14400323D32 /* BugDriver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BugDriver.h; sourceTree = "<group>"; };
-		DE66F2CE08ABF14400323D32 /* bugpoint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = bugpoint.cpp; sourceTree = "<group>"; };
-		DE66F2CF08ABF14400323D32 /* CrashDebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CrashDebugger.cpp; sourceTree = "<group>"; };
-		DE66F2E208ABF14400323D32 /* ExecutionDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ExecutionDriver.cpp; sourceTree = "<group>"; };
-		DE66F2E308ABF14400323D32 /* ExtractFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractFunction.cpp; sourceTree = "<group>"; };
-		DE66F2E408ABF14400323D32 /* ListReducer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ListReducer.h; sourceTree = "<group>"; };
-		DE66F2E608ABF14400323D32 /* Miscompilation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Miscompilation.cpp; sourceTree = "<group>"; };
-		DE66F2E708ABF14400323D32 /* OptimizerDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = OptimizerDriver.cpp; sourceTree = "<group>"; };
-		DE66F2E808ABF14400323D32 /* TestPasses.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TestPasses.cpp; sourceTree = "<group>"; };
-		DE66F30008ABF14400323D32 /* llc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = llc.cpp; path = llc/llc.cpp; sourceTree = "<group>"; };
-		DE66F30708ABF14400323D32 /* lli.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = lli.cpp; path = lli/lli.cpp; sourceTree = "<group>"; };
-		DE66F30E08ABF14400323D32 /* llvm-ar.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-ar.cpp"; path = "llvm-ar/llvm-ar.cpp"; sourceTree = "<group>"; };
-		DE66F31508ABF14400323D32 /* llvm-as.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-as.cpp"; path = "llvm-as/llvm-as.cpp"; sourceTree = "<group>"; };
-		DE66F31C08ABF14400323D32 /* llvm-bcanalyzer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-bcanalyzer.cpp"; path = "llvm-bcanalyzer/llvm-bcanalyzer.cpp"; sourceTree = "<group>"; };
-		DE66F31F08ABF14400323D32 /* CLICommand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CLICommand.h; sourceTree = "<group>"; };
-		DE66F32008ABF14400323D32 /* CLIDebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CLIDebugger.cpp; sourceTree = "<group>"; };
-		DE66F32108ABF14400323D32 /* CLIDebugger.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CLIDebugger.h; sourceTree = "<group>"; };
-		DE66F32208ABF14400323D32 /* Commands.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Commands.cpp; sourceTree = "<group>"; };
-		DE66F32B08ABF14400323D32 /* llvm-db.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = "llvm-db.cpp"; sourceTree = "<group>"; };
-		DE66F33208ABF14400323D32 /* llvm-dis.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-dis.cpp"; path = "llvm-dis/llvm-dis.cpp"; sourceTree = "<group>"; };
-		DE66F33908ABF14400323D32 /* llvm-extract.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-extract.cpp"; path = "llvm-extract/llvm-extract.cpp"; sourceTree = "<group>"; };
-		DE66F34208ABF14400323D32 /* llvm-ld.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = "llvm-ld.cpp"; sourceTree = "<group>"; };
-		DE66F34408ABF14400323D32 /* Optimize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Optimize.cpp; sourceTree = "<group>"; };
-		DE66F34A08ABF14400323D32 /* llvm-link.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-link.cpp"; path = "llvm-link/llvm-link.cpp"; sourceTree = "<group>"; };
-		DE66F35108ABF14400323D32 /* llvm-nm.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-nm.cpp"; path = "llvm-nm/llvm-nm.cpp"; sourceTree = "<group>"; };
-		DE66F35808ABF14500323D32 /* llvm-prof.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-prof.cpp"; path = "llvm-prof/llvm-prof.cpp"; sourceTree = "<group>"; };
-		DE66F35F08ABF14500323D32 /* llvm-ranlib.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = "llvm-ranlib.cpp"; path = "llvm-ranlib/llvm-ranlib.cpp"; sourceTree = "<group>"; };
-		DE66F36908ABF14500323D32 /* c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = c; sourceTree = "<group>"; };
-		DE66F36A08ABF14500323D32 /* CompilerDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CompilerDriver.cpp; sourceTree = "<group>"; };
-		DE66F36B08ABF14500323D32 /* CompilerDriver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CompilerDriver.h; sourceTree = "<group>"; };
-		DE66F36D08ABF14500323D32 /* ConfigLexer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConfigLexer.h; sourceTree = "<group>"; };
-		DE66F36E08ABF14500323D32 /* ConfigLexer.l */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.lex; path = ConfigLexer.l; sourceTree = "<group>"; };
-		DE66F36F08ABF14500323D32 /* Configuration.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Configuration.cpp; sourceTree = "<group>"; };
-		DE66F37008ABF14500323D32 /* Configuration.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Configuration.h; sourceTree = "<group>"; };
-		DE66F37108ABF14500323D32 /* cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = cpp; sourceTree = "<group>"; };
-		DE66F37D08ABF14500323D32 /* ll */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ll; sourceTree = "<group>"; };
-		DE66F37E08ABF14500323D32 /* llvmc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llvmc.cpp; sourceTree = "<group>"; };
-		DE66F38C08ABF35300323D32 /* CREDITS.TXT */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = CREDITS.TXT; path = ../CREDITS.TXT; sourceTree = SOURCE_ROOT; };
-		DE66F38F08ABF35C00323D32 /* AliasAnalysis.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = AliasAnalysis.html; sourceTree = "<group>"; };
-		DE66F39008ABF35C00323D32 /* Bugpoint.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = Bugpoint.html; sourceTree = "<group>"; };
-		DE66F39208ABF35C00323D32 /* GCCFEBuildInstrs.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = GCCFEBuildInstrs.html; sourceTree = "<group>"; };
-		DE66F39308ABF35C00323D32 /* CodeGenerator.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = CodeGenerator.html; sourceTree = "<group>"; };
-		DE66F39408ABF35C00323D32 /* CodingStandards.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = CodingStandards.html; sourceTree = "<group>"; };
-		DE66F39808ABF35C00323D32 /* bugpoint.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = bugpoint.pod; sourceTree = "<group>"; };
-		DE66F39E08ABF35C00323D32 /* index.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = index.html; sourceTree = "<group>"; };
-		DE66F39F08ABF35C00323D32 /* llc.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llc.pod; sourceTree = "<group>"; };
-		DE66F3A008ABF35C00323D32 /* lli.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = lli.pod; sourceTree = "<group>"; };
-		DE66F3A108ABF35C00323D32 /* llvm-ar.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-ar.pod"; sourceTree = "<group>"; };
-		DE66F3A208ABF35C00323D32 /* llvm-as.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-as.pod"; sourceTree = "<group>"; };
-		DE66F3A308ABF35C00323D32 /* llvm-bcanalyzer.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-bcanalyzer.pod"; sourceTree = "<group>"; };
-		DE66F3A408ABF35C00323D32 /* llvm-db.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-db.pod"; sourceTree = "<group>"; };
-		DE66F3A508ABF35C00323D32 /* llvm-dis.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-dis.pod"; sourceTree = "<group>"; };
-		DE66F3A608ABF35C00323D32 /* llvm-extract.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-extract.pod"; sourceTree = "<group>"; };
-		DE66F3A708ABF35C00323D32 /* llvm-ld.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-ld.pod"; sourceTree = "<group>"; };
-		DE66F3A808ABF35C00323D32 /* llvm-link.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-link.pod"; sourceTree = "<group>"; };
-		DE66F3A908ABF35C00323D32 /* llvm-nm.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-nm.pod"; sourceTree = "<group>"; };
-		DE66F3AA08ABF35C00323D32 /* llvm-prof.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-prof.pod"; sourceTree = "<group>"; };
-		DE66F3AB08ABF35C00323D32 /* llvm-ranlib.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "llvm-ranlib.pod"; sourceTree = "<group>"; };
-		DE66F3AC08ABF35C00323D32 /* llvmc.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvmc.pod; sourceTree = "<group>"; };
-		DE66F3AD08ABF35C00323D32 /* llvmgcc.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvmgcc.pod; sourceTree = "<group>"; };
-		DE66F3AE08ABF35C00323D32 /* llvmgxx.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvmgxx.pod; sourceTree = "<group>"; };
-		DE66F3AF08ABF35C00323D32 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
-		DE66F3B408ABF35D00323D32 /* manpage.css */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = manpage.css; sourceTree = "<group>"; };
-		DE66F3B508ABF35D00323D32 /* opt.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = opt.pod; sourceTree = "<group>"; };
-		DE66F3B808ABF35D00323D32 /* stkrc.pod */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = stkrc.pod; sourceTree = "<group>"; };
-		DE66F3B908ABF35D00323D32 /* CommandLine.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = CommandLine.html; sourceTree = "<group>"; };
-		DE66F3BA08ABF35D00323D32 /* CompilerDriver.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = CompilerDriver.html; sourceTree = "<group>"; };
-		DE66F3BB08ABF35D00323D32 /* CompilerWriterInfo.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = CompilerWriterInfo.html; sourceTree = "<group>"; };
-		DE66F3BD08ABF35D00323D32 /* doxygen.cfg.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = doxygen.cfg.in; sourceTree = "<group>"; };
-		DE66F3BE08ABF35D00323D32 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = doxygen.css; sourceTree = "<group>"; };
-		DE66F3BF08ABF35D00323D32 /* doxygen.footer */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = doxygen.footer; sourceTree = "<group>"; };
-		DE66F3C008ABF35D00323D32 /* doxygen.header */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = doxygen.header; sourceTree = "<group>"; };
-		DE66F3C108ABF35D00323D32 /* doxygen.intro */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = doxygen.intro; sourceTree = "<group>"; };
-		DE66F3C208ABF35D00323D32 /* ExtendingLLVM.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = ExtendingLLVM.html; sourceTree = "<group>"; };
-		DE66F3C308ABF35D00323D32 /* FAQ.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = FAQ.html; sourceTree = "<group>"; };
-		DE66F3C408ABF35D00323D32 /* GarbageCollection.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = GarbageCollection.html; sourceTree = "<group>"; };
-		DE66F3C508ABF35D00323D32 /* GettingStarted.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = GettingStarted.html; sourceTree = "<group>"; };
-		DE66F3C608ABF35D00323D32 /* GettingStartedVS.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = GettingStartedVS.html; sourceTree = "<group>"; };
-		DE66F3E408ABF35D00323D32 /* HowToSubmitABug.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = HowToSubmitABug.html; sourceTree = "<group>"; };
-		DE66F3E608ABF35D00323D32 /* Debugging.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Debugging.gif; sourceTree = "<group>"; };
-		DE66F3E708ABF35D00323D32 /* libdeps.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = libdeps.gif; sourceTree = "<group>"; };
-		DE66F3E808ABF35D00323D32 /* lines.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = lines.gif; sourceTree = "<group>"; };
-		DE66F3E908ABF35D00323D32 /* objdeps.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = objdeps.gif; sourceTree = "<group>"; };
-		DE66F3EA08ABF35D00323D32 /* venusflytrap.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = venusflytrap.jpg; sourceTree = "<group>"; };
-		DE66F3EB08ABF35D00323D32 /* index.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = index.html; sourceTree = "<group>"; };
-		DE66F3EC08ABF35D00323D32 /* LangRef.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = LangRef.html; sourceTree = "<group>"; };
-		DE66F3ED08ABF35D00323D32 /* Lexicon.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = Lexicon.html; sourceTree = "<group>"; };
-		DE66F3EE08ABF35D00323D32 /* llvm.css */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = llvm.css; sourceTree = "<group>"; };
-		DE66F3F108ABF35D00323D32 /* MakefileGuide.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = MakefileGuide.html; sourceTree = "<group>"; };
-		DE66F3F208ABF35D00323D32 /* ProgrammersManual.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = ProgrammersManual.html; sourceTree = "<group>"; };
-		DE66F3F308ABF35D00323D32 /* Projects.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = Projects.html; sourceTree = "<group>"; };
-		DE66F3F408ABF35D00323D32 /* ReleaseNotes.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = ReleaseNotes.html; sourceTree = "<group>"; };
-		DE66F3F508ABF35D00323D32 /* SourceLevelDebugging.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = SourceLevelDebugging.html; sourceTree = "<group>"; };
-		DE66F3F708ABF35D00323D32 /* SystemLibrary.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = SystemLibrary.html; sourceTree = "<group>"; };
-		DE66F3F808ABF35D00323D32 /* TableGenFundamentals.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = TableGenFundamentals.html; sourceTree = "<group>"; };
-		DE66F3F908ABF35D00323D32 /* TestingGuide.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = TestingGuide.html; sourceTree = "<group>"; };
-		DE66F3FA08ABF35D00323D32 /* UsingLibraries.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = UsingLibraries.html; sourceTree = "<group>"; };
-		DE66F3FB08ABF35D00323D32 /* WritingAnLLVMBackend.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = WritingAnLLVMBackend.html; sourceTree = "<group>"; };
-		DE66F3FC08ABF35D00323D32 /* WritingAnLLVMPass.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = WritingAnLLVMPass.html; sourceTree = "<group>"; };
-		DE66F40E08ABF37000323D32 /* fibonacci.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = fibonacci.cpp; path = Fibonacci/fibonacci.cpp; sourceTree = "<group>"; };
-		DE66F41508ABF37000323D32 /* HowToUseJIT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = HowToUseJIT.cpp; path = HowToUseJIT/HowToUseJIT.cpp; sourceTree = "<group>"; };
-		DE66F41E08ABF37000323D32 /* ModuleMaker.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ModuleMaker.cpp; path = ModuleMaker/ModuleMaker.cpp; sourceTree = "<group>"; };
-		DE66F42608ABF37000323D32 /* ParallelJIT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ParallelJIT.cpp; path = ParallelJIT/ParallelJIT.cpp; sourceTree = "<group>"; };
-		DE694D9F08B51E0C0039C106 /* ScheduleDAG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ScheduleDAG.cpp; sourceTree = "<group>"; };
-		DE81704008CFB44D0093BDEF /* fpcmp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = fpcmp.cpp; path = fpcmp/fpcmp.cpp; sourceTree = "<group>"; };
-		DE81704F08CFB44D0093BDEF /* NightlyTest.gnuplot */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = NightlyTest.gnuplot; sourceTree = "<group>"; };
-		DE81705108CFB44D0093BDEF /* NightlyTestTemplate.html */ = {isa = PBXFileReference; explicitFileType = text.html.documentation; fileEncoding = 30; path = NightlyTestTemplate.html; sourceTree = "<group>"; };
-		DE81705908CFB44D0093BDEF /* AsmWriterEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AsmWriterEmitter.cpp; sourceTree = "<group>"; };
-		DE81705A08CFB44D0093BDEF /* AsmWriterEmitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AsmWriterEmitter.h; sourceTree = "<group>"; };
-		DE81705B08CFB44D0093BDEF /* CodeEmitterGen.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CodeEmitterGen.cpp; sourceTree = "<group>"; };
-		DE81705C08CFB44D0093BDEF /* CodeEmitterGen.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CodeEmitterGen.h; sourceTree = "<group>"; };
-		DE81705D08CFB44D0093BDEF /* CodeGenInstruction.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CodeGenInstruction.h; sourceTree = "<group>"; };
-		DE81705E08CFB44D0093BDEF /* CodeGenRegisters.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CodeGenRegisters.h; sourceTree = "<group>"; };
-		DE81705F08CFB44D0093BDEF /* CodeGenTarget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CodeGenTarget.cpp; sourceTree = "<group>"; };
-		DE81706008CFB44D0093BDEF /* CodeGenTarget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CodeGenTarget.h; sourceTree = "<group>"; };
-		DE81706708CFB44D0093BDEF /* DAGISelEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DAGISelEmitter.cpp; sourceTree = "<group>"; };
-		DE81706808CFB44D0093BDEF /* DAGISelEmitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DAGISelEmitter.h; sourceTree = "<group>"; };
-		DE81708908CFB44D0093BDEF /* InstrInfoEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InstrInfoEmitter.cpp; sourceTree = "<group>"; };
-		DE81708A08CFB44D0093BDEF /* InstrInfoEmitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InstrInfoEmitter.h; sourceTree = "<group>"; };
-		DE81708E08CFB44D0093BDEF /* Record.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Record.cpp; sourceTree = "<group>"; };
-		DE81708F08CFB44D0093BDEF /* Record.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Record.h; sourceTree = "<group>"; };
-		DE81709008CFB44D0093BDEF /* RegisterInfoEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RegisterInfoEmitter.cpp; sourceTree = "<group>"; };
-		DE81709108CFB44D0093BDEF /* RegisterInfoEmitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RegisterInfoEmitter.h; sourceTree = "<group>"; };
-		DE8170AA08CFB44D0093BDEF /* TableGen.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TableGen.cpp; sourceTree = "<group>"; };
-		DE8170AB08CFB44D0093BDEF /* TableGenBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TableGenBackend.cpp; sourceTree = "<group>"; };
-		DE8170AC08CFB44D0093BDEF /* TableGenBackend.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TableGenBackend.h; sourceTree = "<group>"; };
-		DEFAB19D0959E9A100E0AB42 /* DwarfWriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DwarfWriter.h; path = ../include/llvm/CodeGen/DwarfWriter.h; sourceTree = SOURCE_ROOT; };
-		F22627320DAE34D10008F441 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
-		F22627330DAE34D20008F441 /* JITTutorial1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = JITTutorial1.html; sourceTree = "<group>"; };
-		F22627340DAE34D20008F441 /* JITTutorial2-1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "JITTutorial2-1.png"; sourceTree = "<group>"; };
-		F22627350DAE34D20008F441 /* JITTutorial2.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = JITTutorial2.html; sourceTree = "<group>"; };
-		F22627360DAE34D20008F441 /* LangImpl1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl1.html; sourceTree = "<group>"; };
-		F22627370DAE34D20008F441 /* LangImpl2.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl2.html; sourceTree = "<group>"; };
-		F22627380DAE34D20008F441 /* LangImpl3.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl3.html; sourceTree = "<group>"; };
-		F22627390DAE34D20008F441 /* LangImpl4.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl4.html; sourceTree = "<group>"; };
-		F226273A0DAE34D20008F441 /* LangImpl5-cfg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LangImpl5-cfg.png"; sourceTree = "<group>"; };
-		F226273B0DAE34D20008F441 /* LangImpl5.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl5.html; sourceTree = "<group>"; };
-		F226273C0DAE34D20008F441 /* LangImpl6.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl6.html; sourceTree = "<group>"; };
-		F226273D0DAE34D20008F441 /* LangImpl7.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl7.html; sourceTree = "<group>"; };
-		F226273E0DAE34D20008F441 /* LangImpl8.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = LangImpl8.html; sourceTree = "<group>"; };
-		F226273F0DAE34D20008F441 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
-		F22627400DAE34D20008F441 /* OCamlLangImpl1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OCamlLangImpl1.html; sourceTree = "<group>"; };
-		F22627410DAE34D20008F441 /* OCamlLangImpl2.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OCamlLangImpl2.html; sourceTree = "<group>"; };
-		F22627420DAE34D20008F441 /* OCamlLangImpl3.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OCamlLangImpl3.html; sourceTree = "<group>"; };
-		F22627430DAE34D20008F441 /* OCamlLangImpl4.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OCamlLangImpl4.html; sourceTree = "<group>"; };
-		F22627440DAE34D20008F441 /* OCamlLangImpl5.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OCamlLangImpl5.html; sourceTree = "<group>"; };
-		F22627450DAE34D20008F441 /* OCamlLangImpl6.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OCamlLangImpl6.html; sourceTree = "<group>"; };
-		F22627460DAE34D20008F441 /* OCamlLangImpl7.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OCamlLangImpl7.html; sourceTree = "<group>"; };
-		F22761DF0DAD09CD003D8065 /* BrainF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BrainF.cpp; path = BrainF/BrainF.cpp; sourceTree = "<group>"; };
-		F22761E00DAD09CD003D8065 /* BrainF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BrainF.h; path = BrainF/BrainF.h; sourceTree = "<group>"; };
-		F22761E10DAD09CD003D8065 /* BrainFDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BrainFDriver.cpp; path = BrainF/BrainFDriver.cpp; sourceTree = "<group>"; };
-		F27C8CE90DAD2EF900A33844 /* IRBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IRBuilder.h; sourceTree = "<group>"; };
-		F27C8CFF0DAD307700A33844 /* ShadowStackCollector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShadowStackCollector.cpp; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXGroup section */
-		08FB7794FE84155DC02AAC07 /* LLVM */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F1E908ABF03100323D32 /* include/llvm */,
-				CF8F1B480B64F7AB00BB4199 /* include/llvm-c */,
-				DE66ECBD08ABEC0700323D32 /* lib/Analysis */,
-				9FE450DE0C77ABE400C4FEA4 /* lib/Archive */,
-				DE66EC8808ABEAC900323D32 /* lib/AsmParser */,
-				9F68EB030C77AD2C004AA152 /* lib/Bitcode */,
-				DE66ED3E08ABEC2A00323D32 /* lib/CodeGen */,
-				DE66ED9A08ABEC7200323D32 /* lib/Debugger */,
-				DE66EDBF08ABEC8F00323D32 /* lib/ExecutionEngine */,
-				DE66EDEB08ABEDD300323D32 /* lib/Linker */,
-				DE66EDFB08ABEDE600323D32 /* lib/Support */,
-				DE66EE4908ABEE3400323D32 /* lib/System */,
-				DE66EE9608ABEE5D00323D32 /* lib/Target */,
-				DE66F0E108ABEFB300323D32 /* lib/Transforms */,
-				DE66EC7508ABE8EF00323D32 /* lib/VMCore */,
-				DE66F2BD08ABF14400323D32 /* tools */,
-				DE816FAC08CFB44C0093BDEF /* utils */,
-				DE66F38D08ABF35C00323D32 /* docs */,
-				9FD3E56D0CA0116100E54D15 /* bindings */,
-				9F7C2B690CB9496B00498408 /* test */,
-				DE66F3FD08ABF37000323D32 /* examples */,
-				DE66F38C08ABF35300323D32 /* CREDITS.TXT */,
-				CFD99AA80AFE827B0068D19C /* LICENSE.TXT */,
-				CFD99AAD0AFE827B0068D19C /* README.txt */,
-				721CA1750D0B44D200D5004F /* Products */,
-			);
-			name = LLVM;
-			sourceTree = "<group>";
-		};
-		721CA1750D0B44D200D5004F /* Products */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		9F4B0E5D0D0E02580061F270 /* bitreader */ = {
-			isa = PBXGroup;
-			children = (
-				9F4B0E5E0D0E02580061F270 /* bitreader_ocaml.c */,
-				9F4B0E5F0D0E02580061F270 /* llvm_bitreader.ml */,
-				9F4B0E600D0E02580061F270 /* llvm_bitreader.mli */,
-			);
-			path = bitreader;
-			sourceTree = "<group>";
-		};
-		9F502ACD0D1D8CA3007939DF /* executionengine */ = {
-			isa = PBXGroup;
-			children = (
-				9F502ADB0D1D8CA3007939DF /* executionengine_ocaml.c */,
-				9F502ADC0D1D8CA3007939DF /* llvm_executionengine.ml */,
-				9F502ADD0D1D8CA3007939DF /* llvm_executionengine.mli */,
-			);
-			path = executionengine;
-			sourceTree = "<group>";
-		};
-		9F68EB030C77AD2C004AA152 /* lib/Bitcode */ = {
-			isa = PBXGroup;
-			children = (
-				9F68EB050C77AD2C004AA152 /* Reader */,
-				9F68EB110C77AD2C004AA152 /* Writer */,
-			);
-			name = lib/Bitcode;
-			path = ../lib/Bitcode;
-			sourceTree = SOURCE_ROOT;
-		};
-		9F68EB050C77AD2C004AA152 /* Reader */ = {
-			isa = PBXGroup;
-			children = (
-				35A9CDF00CD0F6D5008ABC1D /* Deserialize.cpp */,
-				9F4B0E8D0D0E05ED0061F270 /* DeserializeAPFloat.cpp */,
-				354CF6D10CD299440059AF3E /* DeserializeAPInt.cpp */,
-				9F68EB060C77AD2C004AA152 /* BitcodeReader.cpp */,
-				9F68EB070C77AD2C004AA152 /* BitcodeReader.h */,
-				9F4B0E8C0D0E05ED0061F270 /* BitReader.cpp */,
-			);
-			path = Reader;
-			sourceTree = "<group>";
-		};
-		9F68EB110C77AD2C004AA152 /* Writer */ = {
-			isa = PBXGroup;
-			children = (
-				354CF6D20CD2994D0059AF3E /* SerializeAPInt.cpp */,
-				9FD3E5920CA012B300E54D15 /* BitWriter.cpp */,
-				9F68EB120C77AD2C004AA152 /* BitcodeWriter.cpp */,
-				9F68EB130C77AD2C004AA152 /* BitcodeWriterPass.cpp */,
-				9F68EB250C77AD2C004AA152 /* ValueEnumerator.cpp */,
-				9F68EB260C77AD2C004AA152 /* ValueEnumerator.h */,
-				35A9CDF10CD0F6E1008ABC1D /* Serialize.cpp */,
-			);
-			path = Writer;
-			sourceTree = "<group>";
-		};
-		9F7040170D8D72FF00FD06FF /* transforms */ = {
-			isa = PBXGroup;
-			children = (
-				9F7040190D8D730A00FD06FF /* scalar */,
-			);
-			name = transforms;
-			sourceTree = "<group>";
-		};
-		9F7040190D8D730A00FD06FF /* scalar */ = {
-			isa = PBXGroup;
-			children = (
-				9F70401A0D8D732400FD06FF /* llvm_scalar_opts.ml */,
-				9F70401B0D8D732400FD06FF /* llvm_scalar_opts.mli */,
-				9F70401E0D8D735E00FD06FF /* scalar_opts_ocaml.c */,
-			);
-			name = scalar;
-			sourceTree = "<group>";
-		};
-		9F77937F0C73C54C00551F9C /* Bitcode */ = {
-			isa = PBXGroup;
-			children = (
-				9F7793800C73C54C00551F9C /* Archive.h */,
-				9F7793810C73C54C00551F9C /* BitCodes.h */,
-				9F7793820C73C54C00551F9C /* BitstreamReader.h */,
-				9F7793830C73C54C00551F9C /* BitstreamWriter.h */,
-				9F7793840C73C54C00551F9C /* LLVMBitCodes.h */,
-				9F7793850C73C54C00551F9C /* ReaderWriter.h */,
-				35A9CDEE0CD0F6AF008ABC1D /* Serialization.h */,
-				35A9CDEF0CD0F6AF008ABC1D /* Serialize.h */,
-				35A9CDED0CD0F6AF008ABC1D /* Deserialize.h */,
-			);
-			path = Bitcode;
-			sourceTree = "<group>";
-		};
-		9F7794120C73CB6100551F9C /* Mips */ = {
-			isa = PBXGroup;
-			children = (
-				9F7794140C73CB6100551F9C /* Mips.h */,
-				9F7794150C73CB6100551F9C /* Mips.td */,
-				9F7794160C73CB6100551F9C /* MipsAsmPrinter.cpp */,
-				9F7794170C73CB6100551F9C /* MipsCallingConv.td */,
-				9F7794180C73CB6100551F9C /* MipsInstrFormats.td */,
-				9F7794190C73CB6100551F9C /* MipsInstrInfo.cpp */,
-				9F77941A0C73CB6100551F9C /* MipsInstrInfo.h */,
-				9F77941B0C73CB6100551F9C /* MipsInstrInfo.td */,
-				9F77941C0C73CB6100551F9C /* MipsISelDAGToDAG.cpp */,
-				9F77941D0C73CB6100551F9C /* MipsISelLowering.cpp */,
-				9F77941E0C73CB6100551F9C /* MipsISelLowering.h */,
-				9F77941F0C73CB6100551F9C /* MipsMachineFunction.h */,
-				9F7794200C73CB6100551F9C /* MipsRegisterInfo.cpp */,
-				9F7794210C73CB6100551F9C /* MipsRegisterInfo.h */,
-				9F7794220C73CB6100551F9C /* MipsRegisterInfo.td */,
-				9F7794230C73CB6100551F9C /* MipsSubtarget.cpp */,
-				9F7794240C73CB6100551F9C /* MipsSubtarget.h */,
-				9F7794250C73CB6100551F9C /* MipsTargetAsmInfo.cpp */,
-				9F7794260C73CB6100551F9C /* MipsTargetAsmInfo.h */,
-				9F7794270C73CB6100551F9C /* MipsTargetMachine.cpp */,
-				9F7794280C73CB6100551F9C /* MipsTargetMachine.h */,
-			);
-			path = Mips;
-			sourceTree = "<group>";
-		};
-		9F7794290C73CB7900551F9C /* MSIL */ = {
-			isa = PBXGroup;
-			children = (
-				9F77942F0C73CB7900551F9C /* MSILWriter.cpp */,
-				9F7794300C73CB7900551F9C /* MSILWriter.h */,
-			);
-			path = MSIL;
-			sourceTree = "<group>";
-		};
-		9F7C240B0CB81ECD00498408 /* analysis */ = {
-			isa = PBXGroup;
-			children = (
-				9F7C240C0CB81ECD00498408 /* analysis_ocaml.c */,
-				9F7C240D0CB81ECD00498408 /* llvm_analysis.ml */,
-				9F7C240E0CB81ECD00498408 /* llvm_analysis.mli */,
-			);
-			path = analysis;
-			sourceTree = "<group>";
-		};
-		9F7C2B690CB9496B00498408 /* test */ = {
-			isa = PBXGroup;
-			children = (
-				9F7C2C4B0CB9496C00498408 /* Bindings */,
-			);
-			name = test;
-			path = ../test;
-			sourceTree = SOURCE_ROOT;
-		};
-		9F7C2C4B0CB9496C00498408 /* Bindings */ = {
-			isa = PBXGroup;
-			children = (
-				9F7C2C4C0CB9496C00498408 /* Ocaml */,
-			);
-			path = Bindings;
-			sourceTree = "<group>";
-		};
-		9F7C2C4C0CB9496C00498408 /* Ocaml */ = {
-			isa = PBXGroup;
-			children = (
-				9F7C2C4F0CB9496C00498408 /* analysis.ml */,
-				9F6B2CC00D0F6E56000F00FD /* bitreader.ml */,
-				9F7C2C520CB9496C00498408 /* bitwriter.ml */,
-				9F502AEC0D1D8CF8007939DF /* executionengine.ml */,
-				9FEDD6140D8D7C3B009F6DF1 /* scalar_opts.ml */,
-				9FEDD6BD0D8D8426009F6DF1 /* target.ml */,
-				9F7C2C5D0CB9496C00498408 /* vmcore.ml */,
-			);
-			path = Ocaml;
-			sourceTree = "<group>";
-		};
-		9FA638E90C77B252007F12AE /* IPO */ = {
-			isa = PBXGroup;
-			children = (
-				9FA638EA0C77B252007F12AE /* InlinerPass.h */,
-			);
-			path = IPO;
-			sourceTree = "<group>";
-		};
-		9FD3E56D0CA0116100E54D15 /* bindings */ = {
-			isa = PBXGroup;
-			children = (
-				9FD3E56F0CA0116100E54D15 /* ocaml */,
-			);
-			name = bindings;
-			path = ../bindings;
-			sourceTree = SOURCE_ROOT;
-		};
-		9FD3E56F0CA0116100E54D15 /* ocaml */ = {
-			isa = PBXGroup;
-			children = (
-				9F502ACD0D1D8CA3007939DF /* executionengine */,
-				9F7C240B0CB81ECD00498408 /* analysis */,
-				9F4B0E5D0D0E02580061F270 /* bitreader */,
-				9FD3E5700CA0116100E54D15 /* bitwriter */,
-				9FD3E57A0CA0116100E54D15 /* llvm */,
-				9FEDD6C00D8D844E009F6DF1 /* target */,
-				9F7040170D8D72FF00FD06FF /* transforms */,
-			);
-			path = ocaml;
-			sourceTree = "<group>";
-		};
-		9FD3E5700CA0116100E54D15 /* bitwriter */ = {
-			isa = PBXGroup;
-			children = (
-				9FD3E5710CA0116100E54D15 /* bitwriter_ocaml.c */,
-				9FD3E5720CA0116100E54D15 /* llvm_bitwriter.ml */,
-				9FD3E5730CA0116100E54D15 /* llvm_bitwriter.mli */,
-			);
-			path = bitwriter;
-			sourceTree = "<group>";
-		};
-		9FD3E57A0CA0116100E54D15 /* llvm */ = {
-			isa = PBXGroup;
-			children = (
-				9FD3E57B0CA0116100E54D15 /* llvm.ml */,
-				9FD3E57C0CA0116100E54D15 /* llvm.mli */,
-				9FD3E57D0CA0116100E54D15 /* llvm_ocaml.c */,
-			);
-			path = llvm;
-			sourceTree = "<group>";
-		};
-		9FE450DE0C77ABE400C4FEA4 /* lib/Archive */ = {
-			isa = PBXGroup;
-			children = (
-				9FE450DF0C77ABE400C4FEA4 /* Archive.cpp */,
-				9FE450E00C77ABE400C4FEA4 /* ArchiveInternals.h */,
-				9FE450E10C77ABE400C4FEA4 /* ArchiveReader.cpp */,
-				9FE450E20C77ABE400C4FEA4 /* ArchiveWriter.cpp */,
-			);
-			name = lib/Archive;
-			path = ../lib/Archive;
-			sourceTree = SOURCE_ROOT;
-		};
-		9FEDD5F00D8D73AB009F6DF1 /* Transforms */ = {
-			isa = PBXGroup;
-			children = (
-				9FEDD5F10D8D73AB009F6DF1 /* Scalar.h */,
-			);
-			path = Transforms;
-			sourceTree = "<group>";
-		};
-		9FEDD6C00D8D844E009F6DF1 /* target */ = {
-			isa = PBXGroup;
-			children = (
-				9FEDD6C10D8D844E009F6DF1 /* llvm_target.ml */,
-				9FEDD6C20D8D844E009F6DF1 /* llvm_target.mli */,
-				9FEDD6C40D8D844E009F6DF1 /* target_ocaml.c */,
-			);
-			path = target;
-			sourceTree = "<group>";
-		};
-		CF8F1B480B64F7AB00BB4199 /* include/llvm-c */ = {
-			isa = PBXGroup;
-			children = (
-				9F7C23E50CB81C2100498408 /* Analysis.h */,
-				9F5B90E70D0DF19100CDFDEA /* BitReader.h */,
-				9FD3E58D0CA0125F00E54D15 /* BitWriter.h */,
-				9FD3E58E0CA0125F00E54D15 /* Core.h */,
-				9FEB8C550D1CD1E200EE46BC /* ExecutionEngine.h */,
-				CF8F1B490B64F7AB00BB4199 /* LinkTimeOptimizer.h */,
-				9FEDD6BB0D8D8408009F6DF1 /* lto.h */,
-				9FEDD6B80D8D83EC009F6DF1 /* Target.h */,
-				9FEDD5F00D8D73AB009F6DF1 /* Transforms */,
-			);
-			name = "include/llvm-c";
-			path = "../include/llvm-c";
-			sourceTree = SOURCE_ROOT;
-		};
-		CF8F1B5E0B64FADA00BB4199 /* llvm-upgrade */ = {
-			isa = PBXGroup;
-			children = (
-				CF8F1B680B64FADA00BB4199 /* llvm-upgrade.cpp */,
-				CF8F1B720B64FADA00BB4199 /* UpgradeInternals.h */,
-				CF8F1B750B64FADA00BB4199 /* UpgradeLexer.l */,
-				CF8F1B7C0B64FADA00BB4199 /* UpgradeParser.y */,
-			);
-			path = "llvm-upgrade";
-			sourceTree = "<group>";
-		};
-		CF8F1B7E0B64FADA00BB4199 /* llvm2cpp */ = {
-			isa = PBXGroup;
-			children = (
-				CF8F1B7F0B64FADA00BB4199 /* CppWriter.cpp */,
-				CF8F1B800B64FADA00BB4199 /* CppWriter.h */,
-				CF8F1B870B64FADA00BB4199 /* llvm2cpp.cpp */,
-			);
-			path = llvm2cpp;
-			sourceTree = "<group>";
-		};
-		CF8F1B960B64FB7F00BB4199 /* lto */ = {
-			isa = PBXGroup;
-			children = (
-				CF8F1B9D0B64FB7F00BB4199 /* lto-c.cpp */,
-				CF8F1B9E0B64FB7F00BB4199 /* lto.cpp */,
-			);
-			path = lto;
-			sourceTree = "<group>";
-		};
-		CF8F1BAB0B64FB8000BB4199 /* opt */ = {
-			isa = PBXGroup;
-			children = (
-				CF8F1BAC0B64FB8000BB4199 /* AnalysisWrappers.cpp */,
-				CF8F1BB70B64FB8000BB4199 /* GraphPrinters.cpp */,
-				CF8F1BB90B64FB8000BB4199 /* opt.cpp */,
-				CF8F1BBA0B64FB8000BB4199 /* PrintSCC.cpp */,
-			);
-			path = opt;
-			sourceTree = "<group>";
-		};
-		CF8F1BCF0B64FC8A00BB4199 /* ARM */ = {
-			isa = PBXGroup;
-			children = (
-				9FE4508B0C77A77000C4FEA4 /* ARMCodeEmitter.cpp */,
-				9FE4508C0C77A77000C4FEA4 /* ARMGenAsmWriter.inc */,
-				9FE4508D0C77A77000C4FEA4 /* ARMGenDAGISel.inc */,
-				9FE4508E0C77A77100C4FEA4 /* ARMGenInstrInfo.inc */,
-				9FE4508F0C77A77100C4FEA4 /* ARMGenInstrNames.inc */,
-				9FE450900C77A77100C4FEA4 /* ARMGenRegisterInfo.h.inc */,
-				9FE450910C77A77100C4FEA4 /* ARMGenRegisterInfo.inc */,
-				9FE450920C77A77100C4FEA4 /* ARMGenRegisterNames.inc */,
-				9FE450930C77A77100C4FEA4 /* ARMGenSubtarget.inc */,
-				9FE450940C77A77100C4FEA4 /* ARMJITInfo.cpp */,
-				9FE450950C77A77100C4FEA4 /* ARMJITInfo.h */,
-				9FE450960C77A77100C4FEA4 /* ARMRelocations.h */,
-				9FE450970C77A77100C4FEA4 /* README-Thumb.txt */,
-				9FE450980C77A77100C4FEA4 /* README.txt */,
-				CF8F1BD10B64FC8A00BB4199 /* ARM.h */,
-				CF8F1BD20B64FC8A00BB4199 /* ARM.td */,
-				CF8F1BD30B64FC8A00BB4199 /* ARMAddressingModes.h */,
-				CF8F1BD40B64FC8A00BB4199 /* ARMAsmPrinter.cpp */,
-				CF8F1BD50B64FC8A00BB4199 /* ARMConstantIslandPass.cpp */,
-				CF8F1BD60B64FC8A00BB4199 /* ARMConstantPoolValue.cpp */,
-				CF8F1BD70B64FC8A00BB4199 /* ARMConstantPoolValue.h */,
-				CF8F1BD80B64FC8A00BB4199 /* ARMFrameInfo.h */,
-				CF8F1BD90B64FC8A00BB4199 /* ARMInstrInfo.cpp */,
-				CF8F1BDA0B64FC8A00BB4199 /* ARMInstrInfo.h */,
-				CF8F1BDB0B64FC8A00BB4199 /* ARMInstrInfo.td */,
-				CF8F1BDC0B64FC8A00BB4199 /* ARMInstrThumb.td */,
-				CF8F1BDD0B64FC8A00BB4199 /* ARMInstrVFP.td */,
-				CF8F1BDE0B64FC8A00BB4199 /* ARMISelDAGToDAG.cpp */,
-				CF8F1BDF0B64FC8A00BB4199 /* ARMISelLowering.cpp */,
-				CF8F1BE00B64FC8A00BB4199 /* ARMISelLowering.h */,
-				CF8F1BE10B64FC8A00BB4199 /* ARMLoadStoreOptimizer.cpp */,
-				CF8F1BE20B64FC8A00BB4199 /* ARMMachineFunctionInfo.h */,
-				CF8F1BE30B64FC8A00BB4199 /* ARMRegisterInfo.cpp */,
-				CF8F1BE40B64FC8A00BB4199 /* ARMRegisterInfo.h */,
-				CF8F1BE50B64FC8A00BB4199 /* ARMRegisterInfo.td */,
-				CF8F1BE60B64FC8A00BB4199 /* ARMSubtarget.cpp */,
-				CF8F1BE70B64FC8A00BB4199 /* ARMSubtarget.h */,
-				CF8F1BE80B64FC8A00BB4199 /* ARMTargetAsmInfo.cpp */,
-				CF8F1BE90B64FC8A00BB4199 /* ARMTargetAsmInfo.h */,
-				CF8F1BEA0B64FC8A00BB4199 /* ARMTargetMachine.cpp */,
-				CF8F1BEB0B64FC8A00BB4199 /* ARMTargetMachine.h */,
-			);
-			path = ARM;
-			sourceTree = "<group>";
-		};
-		CFD99ADF0AFE878F0068D19C /* opt */ = {
-			isa = PBXGroup;
-			children = (
-				CFD99ADB0AFE87870068D19C /* AnalysisWrappers.cpp */,
-				CFD99ADC0AFE87870068D19C /* GraphPrinters.cpp */,
-				CFD99ADD0AFE87870068D19C /* opt.cpp */,
-				CFD99ADE0AFE87870068D19C /* PrintSCC.cpp */,
-			);
-			name = opt;
-			sourceTree = "<group>";
-		};
-		CFE4213C0A66FAE100AB4BF6 /* Hello */ = {
-			isa = PBXGroup;
-			children = (
-				CFE4213D0A66FAE100AB4BF6 /* Hello.cpp */,
-			);
-			path = Hello;
-			sourceTree = "<group>";
-		};
-		DE66EC7508ABE8EF00323D32 /* lib/VMCore */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EC5B08ABE86900323D32 /* AsmWriter.cpp */,
-				9F77937B0C73C4F400551F9C /* AutoUpgrade.cpp */,
-				DE66EC5C08ABE86A00323D32 /* BasicBlock.cpp */,
-				9F77937C0C73C4F400551F9C /* ConstantFold.cpp */,
-				9F77937D0C73C4F400551F9C /* ConstantFold.h */,
-				DE66EC6008ABE86A00323D32 /* Constants.cpp */,
-				9FD3E5900CA0129D00E54D15 /* Core.cpp */,
-				DE66EC6108ABE86A00323D32 /* Dominators.cpp */,
-				DE66EC6208ABE86A00323D32 /* Function.cpp */,
-				DE66EC6308ABE86A00323D32 /* Globals.cpp */,
-				CF73C0BD098A551F00627152 /* InlineAsm.cpp */,
-				DE66EC6408ABE86A00323D32 /* Instruction.cpp */,
-				DE66EC6508ABE86A00323D32 /* Instructions.cpp */,
-				CF1ACC9709C9DE4400D3C5EB /* IntrinsicInst.cpp */,
-				DE66EC6608ABE86A00323D32 /* LeakDetector.cpp */,
-				DE66EC6708ABE86A00323D32 /* Mangler.cpp */,
-				DE66EC6808ABE86A00323D32 /* Module.cpp */,
-				DE66EC6908ABE86A00323D32 /* ModuleProvider.cpp */,
-				DE66EC6A08ABE86A00323D32 /* Pass.cpp */,
-				CF8F1B5C0B64FA7300BB4199 /* PassManager.cpp */,
-				DE66EC6D08ABE86A00323D32 /* SymbolTableListTraitsImpl.h */,
-				DE66EC6E08ABE86A00323D32 /* Type.cpp */,
-				CF73C0BE098A551F00627152 /* TypeSymbolTable.cpp */,
-				DE66EC6F08ABE86A00323D32 /* Value.cpp */,
-				CF73C0BF098A551F00627152 /* ValueSymbolTable.cpp */,
-				CF9720900A9F3CA2002CEEDD /* ValueTypes.cpp */,
-				DE66EC7008ABE86A00323D32 /* Verifier.cpp */,
-			);
-			name = lib/VMCore;
-			sourceTree = "<group>";
-		};
-		DE66EC8808ABEAC900323D32 /* lib/AsmParser */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EC8E08ABEAF000323D32 /* llvmAsmParser.y */,
-				DE66EC8F08ABEAF000323D32 /* Parser.cpp */,
-				DE66EC9008ABEAF000323D32 /* ParserInternals.h */,
-			);
-			name = lib/AsmParser;
-			sourceTree = "<group>";
-		};
-		DE66ECBD08ABEC0700323D32 /* lib/Analysis */ = {
-			isa = PBXGroup;
-			children = (
-				DE66ED1A08ABEC0800323D32 /* IPA */,
-				DE66ECBE08ABEC0700323D32 /* AliasAnalysis.cpp */,
-				DE66ECBF08ABEC0700323D32 /* AliasAnalysisCounter.cpp */,
-				DE66ECC008ABEC0700323D32 /* AliasAnalysisEvaluator.cpp */,
-				CF8F1B4D0B64F80700BB4199 /* AliasDebugger.cpp */,
-				DE66ECC108ABEC0700323D32 /* AliasSetTracker.cpp */,
-				9F7C23E60CB81C2B00498408 /* Analysis.cpp */,
-				DE66ECC208ABEC0700323D32 /* BasicAliasAnalysis.cpp */,
-				DE66ECC308ABEC0700323D32 /* CFGPrinter.cpp */,
-				CF73C0B0098A523C00627152 /* ConstantFolding.cpp */,
-				DE66ED1708ABEC0800323D32 /* InstCount.cpp */,
-				DE66ED1808ABEC0800323D32 /* Interval.cpp */,
-				DE66ED1908ABEC0800323D32 /* IntervalPartition.cpp */,
-				DE66ED3308ABEC0800323D32 /* LoadValueNumbering.cpp */,
-				DE66ED3408ABEC0800323D32 /* LoopInfo.cpp */,
-				9F68EB010C77AD02004AA152 /* LoopPass.cpp */,
-				9F68EB020C77AD02004AA152 /* MemoryDependenceAnalysis.cpp */,
-				DE66ED3608ABEC0800323D32 /* PostDominators.cpp */,
-				DE66ED3708ABEC0800323D32 /* ProfileInfo.cpp */,
-				DE66ED3808ABEC0800323D32 /* ProfileInfoLoader.cpp */,
-				DE66ED3908ABEC0800323D32 /* ProfileInfoLoaderPass.cpp */,
-				DE66ED3A08ABEC0800323D32 /* ScalarEvolution.cpp */,
-				DE66ED3B08ABEC0800323D32 /* ScalarEvolutionExpander.cpp */,
-				DE66ED3C08ABEC0800323D32 /* Trace.cpp */,
-				DE66ED3D08ABEC0800323D32 /* ValueNumbering.cpp */,
-			);
-			name = lib/Analysis;
-			path = ../lib/Analysis;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66ED1A08ABEC0800323D32 /* IPA */ = {
-			isa = PBXGroup;
-			children = (
-				DE66ED1B08ABEC0800323D32 /* Andersens.cpp */,
-				DE66ED1C08ABEC0800323D32 /* CallGraph.cpp */,
-				DE66ED1D08ABEC0800323D32 /* CallGraphSCCPass.cpp */,
-				DE66ED2F08ABEC0800323D32 /* FindUsedTypes.cpp */,
-				DE66ED3008ABEC0800323D32 /* GlobalsModRef.cpp */,
-			);
-			path = IPA;
-			sourceTree = "<group>";
-		};
-		DE66ED3E08ABEC2A00323D32 /* lib/CodeGen */ = {
-			isa = PBXGroup;
-			children = (
-				F27C8CFF0DAD307700A33844 /* ShadowStackCollector.cpp */,
-				754221420D171DFC00DDB61B /* MachineLICM.cpp */,
-				9FE450AB0C77AB6100C4FEA4 /* README.txt */,
-				DE66ED8308ABEC2B00323D32 /* SelectionDAG */,
-				DE66ED3F08ABEC2A00323D32 /* AsmPrinter.cpp */,
-				DE66ED4008ABEC2A00323D32 /* BranchFolding.cpp */,
-				CFC244570959DEF2009F8C47 /* DwarfWriter.cpp */,
-				9F7793500C73BD1500551F9C /* ELFWriter.h */,
-				DE66ED6F08ABEC2B00323D32 /* ELFWriter.cpp */,
-				9F7793510C73BD1500551F9C /* IfConversion.cpp */,
-				DE66ED7008ABEC2B00323D32 /* IntrinsicLowering.cpp */,
-				DE66ED7108ABEC2B00323D32 /* LiveInterval.cpp */,
-				DE66ED7308ABEC2B00323D32 /* LiveIntervalAnalysis.cpp */,
-				DE66ED7508ABEC2B00323D32 /* LiveVariables.cpp */,
-				CF32AF5C0AEE6A4E00D24CD4 /* LLVMTargetMachine.cpp */,
-				9F7793520C73BD1500551F9C /* LowerSubregs.cpp */,
-				DE66ED7608ABEC2B00323D32 /* MachineBasicBlock.cpp */,
-				CF6529A6095B21A8007F884E /* MachineModuleInfo.cpp */,
-				DE66ED7808ABEC2B00323D32 /* MachineFunction.cpp */,
-				DE66ED7908ABEC2B00323D32 /* MachineInstr.cpp */,
-				CF4F27F60A7B6FA3004359F6 /* MachinePassRegistry.cpp */,
-				9F7793530C73BD1500551F9C /* MachOWriter.h */,
-				CF9720350A9F3ADC002CEEDD /* MachOWriter.cpp */,
-				DE66ED7B08ABEC2B00323D32 /* Passes.cpp */,
-				DE66ED7C08ABEC2B00323D32 /* PHIElimination.cpp */,
-				9F7793540C73BD1500551F9C /* PostRASchedulerList.cpp */,
-				DE66ED7D08ABEC2B00323D32 /* PhysRegTracker.h */,
-				DE66ED7E08ABEC2B00323D32 /* PrologEpilogInserter.cpp */,
-				9F7793550C73BD1500551F9C /* RegAllocBigBlock.cpp */,
-				DE66ED8008ABEC2B00323D32 /* RegAllocLinearScan.cpp */,
-				DE66ED8108ABEC2B00323D32 /* RegAllocLocal.cpp */,
-				9FE25D940CAB16FB005383FC /* RegisterCoalescer.cpp */,
-				9F7793560C73BD1500551F9C /* RegisterScavenging.cpp */,
-				DE66ED8208ABEC2B00323D32 /* RegAllocSimple.cpp */,
-				9F7793570C73BD1500551F9C /* SimpleRegisterCoalescing.cpp */,
-				DE66ED9508ABEC2B00323D32 /* TwoAddressInstructionPass.cpp */,
-				DE66ED9608ABEC2B00323D32 /* UnreachableBlockElim.cpp */,
-				DE66ED9808ABEC2B00323D32 /* VirtRegMap.cpp */,
-				DE66ED9908ABEC2B00323D32 /* VirtRegMap.h */,
-			);
-			name = lib/CodeGen;
-			path = ../lib/CodeGen;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66ED8308ABEC2B00323D32 /* SelectionDAG */ = {
-			isa = PBXGroup;
-			children = (
-				9FE450AC0C77AB6E00C4FEA4 /* CallingConvLower.cpp */,
-				CF6B5AFD095C82C300D1EA42 /* DAGCombiner.cpp */,
-				DE66ED9008ABEC2B00323D32 /* LegalizeDAG.cpp */,
-				CF7FFA1F0985081C008B0087 /* ScheduleDAGList.cpp */,
-				DE694D9F08B51E0C0039C106 /* ScheduleDAG.cpp */,
-				DE66ED9208ABEC2B00323D32 /* SelectionDAG.cpp */,
-				DE66ED9308ABEC2B00323D32 /* SelectionDAGISel.cpp */,
-				DE66ED9408ABEC2B00323D32 /* SelectionDAGPrinter.cpp */,
-				CFE421060A66F86D00AB4BF6 /* ScheduleDAGRRList.cpp */,
-				CF9720370A9F3B1C002CEEDD /* TargetLowering.cpp */,
-			);
-			path = SelectionDAG;
-			sourceTree = "<group>";
-		};
-		DE66ED9A08ABEC7200323D32 /* lib/Debugger */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EDB108ABEC7300323D32 /* Debugger.cpp */,
-				DE66EDB508ABEC7300323D32 /* ProgramInfo.cpp */,
-				DE66EDB608ABEC7300323D32 /* README.txt */,
-				DE66EDB708ABEC7300323D32 /* RuntimeInfo.cpp */,
-				DE66EDB808ABEC7300323D32 /* SourceFile.cpp */,
-				DE66EDB908ABEC7300323D32 /* SourceLanguage-CFamily.cpp */,
-				DE66EDBA08ABEC7300323D32 /* SourceLanguage-CPlusPlus.cpp */,
-				DE66EDBB08ABEC7300323D32 /* SourceLanguage-Unknown.cpp */,
-				DE66EDBC08ABEC7300323D32 /* SourceLanguage.cpp */,
-			);
-			name = lib/Debugger;
-			path = ../lib/Debugger;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66EDBF08ABEC8F00323D32 /* lib/ExecutionEngine */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EDC508ABEC9000323D32 /* Interpreter */,
-				DE66EDD308ABEC9000323D32 /* JIT */,
-				DE66EDC408ABEC9000323D32 /* ExecutionEngine.cpp */,
-				9F502B090D1D8D8D007939DF /* ExecutionEngineBindings.cpp */,
-			);
-			name = lib/ExecutionEngine;
-			path = ../lib/ExecutionEngine;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66EDC508ABEC9000323D32 /* Interpreter */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EDCE08ABEC9000323D32 /* Execution.cpp */,
-				DE66EDCF08ABEC9000323D32 /* ExternalFunctions.cpp */,
-				DE66EDD008ABEC9000323D32 /* Interpreter.cpp */,
-				DE66EDD108ABEC9000323D32 /* Interpreter.h */,
-			);
-			path = Interpreter;
-			sourceTree = "<group>";
-		};
-		DE66EDD308ABEC9000323D32 /* JIT */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EDDE08ABEC9100323D32 /* Intercept.cpp */,
-				DE66EDDF08ABEC9100323D32 /* JIT.cpp */,
-				DE66EDE008ABEC9100323D32 /* JIT.h */,
-				DE66EDE108ABEC9100323D32 /* JITEmitter.cpp */,
-				DE66EDE308ABEC9100323D32 /* TargetSelect.cpp */,
-			);
-			path = JIT;
-			sourceTree = "<group>";
-		};
-		DE66EDEB08ABEDD300323D32 /* lib/Linker */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EDF608ABEDD300323D32 /* LinkArchives.cpp */,
-				DE66EDF708ABEDD300323D32 /* Linker.cpp */,
-				DE66EDF808ABEDD300323D32 /* LinkItems.cpp */,
-				DE66EDF908ABEDD300323D32 /* LinkModules.cpp */,
-			);
-			name = lib/Linker;
-			path = ../lib/Linker;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66EDFB08ABEDE600323D32 /* lib/Support */ = {
-			isa = PBXGroup;
-			children = (
-				9FE25D950CAB1724005383FC /* APFloat.cpp */,
-				9FE450A60C77AB3200C4FEA4 /* APInt.cpp */,
-				9FE450A70C77AB3200C4FEA4 /* ConstantRange.cpp */,
-				9FE450A80C77AB3200C4FEA4 /* MemoryBuffer.cpp */,
-				9FE450A90C77AB3200C4FEA4 /* SmallPtrSet.cpp */,
-				9FE450AA0C77AB3200C4FEA4 /* StringMap.cpp */,
-				CFD99AB70AFE848A0068D19C /* Allocator.cpp */,
-				DE66EDFC08ABEDE600323D32 /* Annotation.cpp */,
-				DE66EE1D08ABEDE600323D32 /* CommandLine.cpp */,
-				DE66EE3D08ABEDE600323D32 /* Debug.cpp */,
-				CF79495D09B326D4005ADFCA /* Dwarf.cpp */,
-				DE66EE3E08ABEDE600323D32 /* FileUtilities.cpp */,
-				CF42B6C40AF2512000D5D47C /* FoldingSet.cpp */,
-				CFE421070A66F8DC00AB4BF6 /* GraphWriter.cpp */,
-				DE66EE3F08ABEDE600323D32 /* IsInf.cpp */,
-				DE66EE4008ABEDE600323D32 /* IsNAN.cpp */,
-				CF8F1B500B64F86A00BB4199 /* ManagedStatic.cpp */,
-				DE66EE4208ABEDE600323D32 /* PluginLoader.cpp */,
-				DE66EE4308ABEDE600323D32 /* SlowOperationInformer.cpp */,
-				DE66EE4408ABEDE600323D32 /* Statistic.cpp */,
-				CF8F1B510B64F86A00BB4199 /* Streams.cpp */,
-				DE66EE4508ABEDE700323D32 /* StringExtras.cpp */,
-				9F5B90CB0D0CE87100CDFDEA /* StringPool.cpp */,
-				DE66EE4608ABEDE700323D32 /* SystemUtils.cpp */,
-				DE66EE4708ABEDE700323D32 /* Timer.cpp */,
-			);
-			name = lib/Support;
-			path = ../lib/Support;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66EE4908ABEE3400323D32 /* lib/System */ = {
-			isa = PBXGroup;
-			children = (
-				9FE450A50C77AAF000C4FEA4 /* Disassembler.cpp */,
-				DE66EE7E08ABEE3500323D32 /* Unix */,
-				DE66EE8B08ABEE3500323D32 /* Win32 */,
-				CFE421090A66F93300AB4BF6 /* Alarm.cpp */,
-				DE66EE6008ABEE3400323D32 /* DynamicLibrary.cpp */,
-				CF8F1B530B64F8C000BB4199 /* IncludeFile.cpp */,
-				DE66EE6108ABEE3400323D32 /* LICENSE.TXT */,
-				CFD99ABA0AFE84D70068D19C /* IncludeFile.cpp */,
-				DE66EE6508ABEE3400323D32 /* MappedFile.cpp */,
-				DE66EE6608ABEE3400323D32 /* Memory.cpp */,
-				DE66EE6708ABEE3400323D32 /* Mutex.cpp */,
-				DE66EE6808ABEE3400323D32 /* Path.cpp */,
-				DE66EE6908ABEE3400323D32 /* Process.cpp */,
-				DE66EE6A08ABEE3400323D32 /* Program.cpp */,
-				DE66EE6B08ABEE3400323D32 /* README.txt */,
-				DE66EE7C08ABEE3400323D32 /* Signals.cpp */,
-				DE66EE7D08ABEE3400323D32 /* TimeValue.cpp */,
-			);
-			name = lib/System;
-			path = ../lib/System;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66EE7E08ABEE3500323D32 /* Unix */ = {
-			isa = PBXGroup;
-			children = (
-				CFD99ABB0AFE84EF0068D19C /* Alarm.inc */,
-				DE66EE7F08ABEE3500323D32 /* MappedFile.inc */,
-				DE66EE8008ABEE3500323D32 /* Memory.inc */,
-				DE66EE8108ABEE3500323D32 /* Mutex.inc */,
-				DE66EE8208ABEE3500323D32 /* Path.inc */,
-				DE66EE8308ABEE3500323D32 /* Process.inc */,
-				DE66EE8408ABEE3500323D32 /* Program.inc */,
-				DE66EE8508ABEE3500323D32 /* README.txt */,
-				DE66EE8608ABEE3500323D32 /* Signals.inc */,
-				DE66EE8908ABEE3500323D32 /* TimeValue.inc */,
-				DE66EE8A08ABEE3500323D32 /* Unix.h */,
-			);
-			path = Unix;
-			sourceTree = "<group>";
-		};
-		DE66EE8B08ABEE3500323D32 /* Win32 */ = {
-			isa = PBXGroup;
-			children = (
-				CFE4210A0A66F93300AB4BF6 /* Alarm.inc */,
-				DE66EE8C08ABEE3500323D32 /* DynamicLibrary.inc */,
-				DE66EE8D08ABEE3500323D32 /* MappedFile.inc */,
-				DE66EE8E08ABEE3500323D32 /* Memory.inc */,
-				DE66EE8F08ABEE3500323D32 /* Mutex.inc */,
-				DE66EE9008ABEE3500323D32 /* Path.inc */,
-				DE66EE9108ABEE3500323D32 /* Process.inc */,
-				DE66EE9208ABEE3500323D32 /* Program.inc */,
-				DE66EE9308ABEE3500323D32 /* Signals.inc */,
-				DE66EE9408ABEE3500323D32 /* TimeValue.inc */,
-				DE66EE9508ABEE3500323D32 /* Win32.h */,
-			);
-			path = Win32;
-			sourceTree = "<group>";
-		};
-		DE66EE9608ABEE5D00323D32 /* lib/Target */ = {
-			isa = PBXGroup;
-			children = (
-				9F7794290C73CB7900551F9C /* MSIL */,
-				DE66EE9708ABEE5D00323D32 /* Alpha */,
-				CF8F1BCF0B64FC8A00BB4199 /* ARM */,
-				DE66EEC908ABEE5E00323D32 /* CBackend */,
-				9F7794120C73CB6100551F9C /* Mips */,
-				DE66EF1108ABEE5E00323D32 /* PowerPC */,
-				DE66EF7008ABEE5F00323D32 /* Sparc */,
-				DE66F09308ABEE6000323D32 /* X86 */,
-				DE66EF1008ABEE5E00323D32 /* TargetRegisterInfo.cpp */,
-				CF9BCD1508C75070001E7011 /* SubtargetFeature.cpp */,
-				9FEDD6B60D8D83D0009F6DF1 /* Target.cpp */,
-				DE66F08A08ABEE6000323D32 /* Target.td */,
-				CF47BD860AAF487E00A8B13E /* TargetAsmInfo.cpp */,
-				9FE25D960CAB1759005383FC /* TargetCallingConv.td */,
-				DE66F08B08ABEE6000323D32 /* TargetData.cpp */,
-				DE66F08C08ABEE6000323D32 /* TargetFrameInfo.cpp */,
-				DE66F08D08ABEE6000323D32 /* TargetInstrInfo.cpp */,
-				DE66F08F08ABEE6000323D32 /* TargetMachine.cpp */,
-				DE66F09008ABEE6000323D32 /* TargetMachineRegistry.cpp */,
-				84115FFE0B66D87400E1293E /* TargetMachOWriterInfo.cpp */,
-				CF490D14090541D30072DB1C /* TargetSchedule.td */,
-				CF490D15090541D30072DB1C /* TargetSelectionDAG.td */,
-				DE66F09208ABEE6000323D32 /* TargetSubtarget.cpp */,
-			);
-			name = lib/Target;
-			path = ../lib/Target;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66EE9708ABEE5D00323D32 /* Alpha */ = {
-			isa = PBXGroup;
-			children = (
-				DE66EE9808ABEE5E00323D32 /* Alpha.h */,
-				DE66EE9908ABEE5E00323D32 /* Alpha.td */,
-				DE66EE9A08ABEE5E00323D32 /* AlphaAsmPrinter.cpp */,
-				CF8F1B540B64F90F00BB4199 /* AlphaBranchSelector.cpp */,
-				DE66EE9B08ABEE5E00323D32 /* AlphaCodeEmitter.cpp */,
-				CFA702BB0A6FA85F0006009A /* AlphaGenAsmWriter.inc */,
-				CFA702BC0A6FA85F0006009A /* AlphaGenCodeEmitter.inc */,
-				CFA702BD0A6FA85F0006009A /* AlphaGenDAGISel.inc */,
-				CFA702BE0A6FA85F0006009A /* AlphaGenInstrInfo.inc */,
-				CFA702BF0A6FA85F0006009A /* AlphaGenInstrNames.inc */,
-				CFA702C00A6FA85F0006009A /* AlphaGenRegisterInfo.h.inc */,
-				CFA702C10A6FA85F0006009A /* AlphaGenRegisterInfo.inc */,
-				CFA702C20A6FA85F0006009A /* AlphaGenRegisterNames.inc */,
-				CFA702C30A6FA85F0006009A /* AlphaGenSubtarget.inc */,
-				DE66EEA308ABEE5E00323D32 /* AlphaInstrFormats.td */,
-				DE66EEA408ABEE5E00323D32 /* AlphaInstrInfo.cpp */,
-				DE66EEA508ABEE5E00323D32 /* AlphaInstrInfo.h */,
-				DE66EEA608ABEE5E00323D32 /* AlphaInstrInfo.td */,
-				CFBD8B1A090E76540020B107 /* AlphaISelDAGToDAG.cpp */,
-				CFBD8B1B090E76540020B107 /* AlphaISelLowering.cpp */,
-				CFBD8B1C090E76540020B107 /* AlphaISelLowering.h */,
-				DE66EEA908ABEE5E00323D32 /* AlphaJITInfo.cpp */,
-				DE66EEAA08ABEE5E00323D32 /* AlphaJITInfo.h */,
-				CF8F1B550B64F90F00BB4199 /* AlphaLLRP.cpp */,
-				DE66EEAB08ABEE5E00323D32 /* AlphaRegisterInfo.cpp */,
-				DE66EEAC08ABEE5E00323D32 /* AlphaRegisterInfo.h */,
-				DE66EEAD08ABEE5E00323D32 /* AlphaRegisterInfo.td */,
-				DE66EEAE08ABEE5E00323D32 /* AlphaRelocations.h */,
-				CFE4210B0A66F96400AB4BF6 /* AlphaSchedule.td */,
-				CFBD8B1D090E76540020B107 /* AlphaSubtarget.cpp */,
-				CFBD8B1E090E76540020B107 /* AlphaSubtarget.h */,
-				CF341DAE0AB07A8B0099B064 /* AlphaTargetAsmInfo.cpp */,
-				CF341DAD0AB07A8B0099B064 /* AlphaTargetAsmInfo.h */,
-				DE66EEAF08ABEE5E00323D32 /* AlphaTargetMachine.cpp */,
-				DE66EEB008ABEE5E00323D32 /* AlphaTargetMachine.h */,
-			);
-			path = Alpha;
-			sourceTree = "<group>";
-		};
-		DE66EEC908ABEE5E00323D32 /* CBackend */ = {
-			isa = PBXGroup;
-			children = (
-				CF8F1B560B64F98900BB4199 /* CBackend.cpp */,
-				DE66EECA08ABEE5E00323D32 /* CTargetMachine.h */,
-			);
-			path = CBackend;
-			sourceTree = "<group>";
-		};
-		DE66EF1108ABEE5E00323D32 /* PowerPC */ = {
-			isa = PBXGroup;
-			children = (
-				9FE4509A0C77A79C00C4FEA4 /* PPCCallingConv.td */,
-				9FE4509B0C77A79C00C4FEA4 /* PPCGenCallingConv.inc */,
-				841160000B66D8AC00E1293E /* PPCMachOWriterInfo.h */,
-				84115FFF0B66D89B00E1293E /* PPCMachOWriterInfo.cpp */,
-				CFA702CB0A6FA8AD0006009A /* PPCGenAsmWriter.inc */,
-				CFA702CC0A6FA8AD0006009A /* PPCGenCodeEmitter.inc */,
-				CFA702CD0A6FA8AD0006009A /* PPCGenDAGISel.inc */,
-				CFA702CE0A6FA8AD0006009A /* PPCGenInstrInfo.inc */,
-				CFA702CF0A6FA8AD0006009A /* PPCGenInstrNames.inc */,
-				CFA702D00A6FA8AD0006009A /* PPCGenRegisterInfo.h.inc */,
-				CFA702D10A6FA8AD0006009A /* PPCGenRegisterInfo.inc */,
-				CFA702D20A6FA8AD0006009A /* PPCGenRegisterNames.inc */,
-				CFA702D30A6FA8AD0006009A /* PPCGenSubtarget.inc */,
-				CFE421140A66FA2D00AB4BF6 /* PPC.h */,
-				CFE421150A66FA2D00AB4BF6 /* PPC.td */,
-				CFE421160A66FA2D00AB4BF6 /* PPCAsmPrinter.cpp */,
-				CFE421170A66FA2D00AB4BF6 /* PPCBranchSelector.cpp */,
-				CFE421180A66FA2D00AB4BF6 /* PPCCodeEmitter.cpp */,
-				CFE421190A66FA2D00AB4BF6 /* PPCFrameInfo.h */,
-				CFE4211A0A66FA2D00AB4BF6 /* PPCHazardRecognizers.cpp */,
-				CFE4211B0A66FA2D00AB4BF6 /* PPCHazardRecognizers.h */,
-				CFE4211C0A66FA2D00AB4BF6 /* PPCInstr64Bit.td */,
-				CFE4211D0A66FA2D00AB4BF6 /* PPCInstrAltivec.td */,
-				CFE4211E0A66FA2D00AB4BF6 /* PPCInstrBuilder.h */,
-				CFE4211F0A66FA2D00AB4BF6 /* PPCInstrFormats.td */,
-				CFE421200A66FA2D00AB4BF6 /* PPCInstrInfo.cpp */,
-				CFE421210A66FA2D00AB4BF6 /* PPCInstrInfo.h */,
-				CFE421220A66FA2D00AB4BF6 /* PPCInstrInfo.td */,
-				CFE421230A66FA2D00AB4BF6 /* PPCISelDAGToDAG.cpp */,
-				CFE421240A66FA2D00AB4BF6 /* PPCISelLowering.cpp */,
-				CFE421250A66FA2D00AB4BF6 /* PPCISelLowering.h */,
-				CFE421260A66FA2D00AB4BF6 /* PPCJITInfo.cpp */,
-				CFE421270A66FA2D00AB4BF6 /* PPCJITInfo.h */,
-				CFABD0A20B09E342003EB061 /* PPCMachineFunctionInfo.h */,
-				CFE421280A66FA2D00AB4BF6 /* PPCPerfectShuffle.h */,
-				CF8F1B570B64F9AC00BB4199 /* PPCPredicates.cpp */,
-				CF8F1B580B64F9AC00BB4199 /* PPCPredicates.h */,
-				CFE421290A66FA2D00AB4BF6 /* PPCRegisterInfo.cpp */,
-				CFE4212A0A66FA2D00AB4BF6 /* PPCRegisterInfo.h */,
-				CFE4212B0A66FA2D00AB4BF6 /* PPCRegisterInfo.td */,
-				CFE4212C0A66FA2D00AB4BF6 /* PPCRelocations.h */,
-				CFE4212D0A66FA2D00AB4BF6 /* PPCSchedule.td */,
-				CFE4212E0A66FA2D00AB4BF6 /* PPCScheduleG3.td */,
-				CFE4212F0A66FA2D00AB4BF6 /* PPCScheduleG4.td */,
-				CFE421300A66FA2D00AB4BF6 /* PPCScheduleG4Plus.td */,
-				CFE421310A66FA2D00AB4BF6 /* PPCScheduleG5.td */,
-				CFE421320A66FA2E00AB4BF6 /* PPCSubtarget.cpp */,
-				CFE421330A66FA2E00AB4BF6 /* PPCSubtarget.h */,
-				CF341E020AB080220099B064 /* PPCTargetAsmInfo.cpp */,
-				CF341E010AB080220099B064 /* PPCTargetAsmInfo.h */,
-				CFE421340A66FA2E00AB4BF6 /* PPCTargetMachine.cpp */,
-				CFE421350A66FA2E00AB4BF6 /* PPCTargetMachine.h */,
-				CFE421360A66FA2E00AB4BF6 /* README_ALTIVEC.txt */,
-				CFE421370A66FA2E00AB4BF6 /* README.txt */,
-			);
-			path = PowerPC;
-			sourceTree = "<group>";
-		};
-		DE66EF7008ABEE5F00323D32 /* Sparc */ = {
-			isa = PBXGroup;
-			children = (
-				CF65280109D1BA3800C4B521 /* SparcGenAsmWriter.inc */,
-				CF65280209D1BA3800C4B521 /* SparcGenDAGISel.inc */,
-				CF65280309D1BA3800C4B521 /* SparcGenInstrInfo.inc */,
-				CF65280409D1BA3800C4B521 /* SparcGenInstrNames.inc */,
-				CF65280509D1BA3800C4B521 /* SparcGenRegisterInfo.h.inc */,
-				CF65280609D1BA3800C4B521 /* SparcGenRegisterInfo.inc */,
-				CF65280709D1BA3800C4B521 /* SparcGenRegisterNames.inc */,
-				CF65280809D1BA3800C4B521 /* SparcGenSubtarget.inc */,
-				CF6527FA09D1BA3800C4B521 /* DelaySlotFiller.cpp */,
-				CF6527FB09D1BA3800C4B521 /* FPMover.cpp */,
-				CF6527FC09D1BA3800C4B521 /* Makefile */,
-				CF6527FD09D1BA3800C4B521 /* README.txt */,
-				CF6527FE09D1BA3800C4B521 /* Sparc.h */,
-				CF6527FF09D1BA3800C4B521 /* Sparc.td */,
-				CF65280009D1BA3800C4B521 /* SparcAsmPrinter.cpp */,
-				CF65280909D1BA3800C4B521 /* SparcInstrFormats.td */,
-				CF65280A09D1BA3800C4B521 /* SparcInstrInfo.cpp */,
-				CF65280B09D1BA3800C4B521 /* SparcInstrInfo.h */,
-				CF65280C09D1BA3800C4B521 /* SparcInstrInfo.td */,
-				CF65280D09D1BA3800C4B521 /* SparcISelDAGToDAG.cpp */,
-				CF65280E09D1BA3800C4B521 /* SparcRegisterInfo.cpp */,
-				CF65280F09D1BA3800C4B521 /* SparcRegisterInfo.h */,
-				CF65281009D1BA3800C4B521 /* SparcRegisterInfo.td */,
-				CF65281109D1BA3800C4B521 /* SparcSubtarget.cpp */,
-				CF65281209D1BA3800C4B521 /* SparcSubtarget.h */,
-				CF341E230AB0814B0099B064 /* SparcTargetAsmInfo.cpp */,
-				CF341E220AB0814B0099B064 /* SparcTargetAsmInfo.h */,
-				CF65281309D1BA3800C4B521 /* SparcTargetMachine.cpp */,
-				CF65281409D1BA3800C4B521 /* SparcTargetMachine.h */,
-			);
-			path = Sparc;
-			sourceTree = "<group>";
-		};
-		DE66F09308ABEE6000323D32 /* X86 */ = {
-			isa = PBXGroup;
-			children = (
-				9FE4509C0C77A7BC00C4FEA4 /* README-MMX.txt */,
-				9FE4509D0C77A7BC00C4FEA4 /* X86CallingConv.td */,
-				9FE4509F0C77A7BC00C4FEA4 /* X86ELFWriterInfo.cpp */,
-				9FE450A00C77A7BC00C4FEA4 /* X86ELFWriterInfo.h */,
-				9FE450A10C77A7BC00C4FEA4 /* X86GenCallingConv.inc */,
-				9FE450A20C77A7BC00C4FEA4 /* X86InstrFormats.td */,
-				CFA702D40A6FA8DD0006009A /* X86GenAsmWriter.inc */,
-				CFA702D50A6FA8DD0006009A /* X86GenAsmWriter1.inc */,
-				CFA702D60A6FA8DD0006009A /* X86GenDAGISel.inc */,
-				CFA702D70A6FA8DD0006009A /* X86GenInstrInfo.inc */,
-				CFA702D80A6FA8DD0006009A /* X86GenInstrNames.inc */,
-				CFA702D90A6FA8DD0006009A /* X86GenRegisterInfo.h.inc */,
-				CFA702DA0A6FA8DD0006009A /* X86GenRegisterInfo.inc */,
-				CFA702DB0A6FA8DD0006009A /* X86GenRegisterNames.inc */,
-				CFA702DC0A6FA8DD0006009A /* X86GenSubtarget.inc */,
-				CFE421380A66FA8000AB4BF6 /* README-FPStack.txt */,
-				CFE421390A66FA8000AB4BF6 /* README-SSE.txt */,
-				CFD99ABE0AFE857A0068D19C /* README-X86-64.txt */,
-				CFE4213A0A66FA8000AB4BF6 /* README.txt */,
-				CFF0DE6309BF6C360031957F /* X86InstrFPStack.td */,
-				CFF0DE6409BF6C360031957F /* X86InstrMMX.td */,
-				CFF0DE6509BF6C360031957F /* X86InstrSSE.td */,
-				DE66F0BC08ABEE6000323D32 /* X86.h */,
-				DE66F0BD08ABEE6000323D32 /* X86.td */,
-				DE66F0BE08ABEE6000323D32 /* X86AsmPrinter.cpp */,
-				DE66F0BF08ABEE6000323D32 /* X86AsmPrinter.h */,
-				DE66F0C008ABEE6000323D32 /* X86ATTAsmPrinter.cpp */,
-				DE66F0C108ABEE6000323D32 /* X86ATTAsmPrinter.h */,
-				DE66F0C208ABEE6000323D32 /* X86CodeEmitter.cpp */,
-				CF8F1B590B64F9E100BB4199 /* X86COFF.h */,
-				DE66F0C408ABEE6000323D32 /* X86FloatingPoint.cpp */,
-				DE66F0CC08ABEE6000323D32 /* X86InstrBuilder.h */,
-				DE66F0CD08ABEE6000323D32 /* X86InstrInfo.cpp */,
-				DE66F0CE08ABEE6000323D32 /* X86InstrInfo.h */,
-				DE66F0CF08ABEE6100323D32 /* X86InstrInfo.td */,
-				DE66F0D008ABEE6100323D32 /* X86IntelAsmPrinter.cpp */,
-				DE66F0D108ABEE6100323D32 /* X86IntelAsmPrinter.h */,
-				DE66F0D508ABEE6100323D32 /* X86JITInfo.cpp */,
-				DE66F0D608ABEE6100323D32 /* X86JITInfo.h */,
-				CFE4213B0A66FA8000AB4BF6 /* X86MachineFunctionInfo.h */,
-				DE66F0D808ABEE6100323D32 /* X86RegisterInfo.cpp */,
-				DE66F0D908ABEE6100323D32 /* X86RegisterInfo.h */,
-				DE66F0DA08ABEE6100323D32 /* X86RegisterInfo.td */,
-				DE66F0DB08ABEE6100323D32 /* X86Relocations.h */,
-				CFC244BB0959F24C009F8C47 /* X86ISelDAGToDAG.cpp */,
-				CFC244BC0959F24C009F8C47 /* X86ISelLowering.cpp */,
-				CFC244BD0959F24C009F8C47 /* X86ISelLowering.h */,
-				DE66F0DC08ABEE6100323D32 /* X86Subtarget.cpp */,
-				DE66F0DD08ABEE6100323D32 /* X86Subtarget.h */,
-				CF341E330AB082D60099B064 /* X86TargetAsmInfo.cpp */,
-				CF341E320AB082D60099B064 /* X86TargetAsmInfo.h */,
-				DE66F0DE08ABEE6100323D32 /* X86TargetMachine.cpp */,
-				DE66F0DF08ABEE6100323D32 /* X86TargetMachine.h */,
-			);
-			path = X86;
-			sourceTree = "<group>";
-		};
-		DE66F0E108ABEFB300323D32 /* lib/Transforms */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F0EE08ABEFB300323D32 /* Instrumentation */,
-				CFE4213C0A66FAE100AB4BF6 /* Hello */,
-				DE66F11F08ABEFB300323D32 /* IPO */,
-				DE66F15C08ABEFB400323D32 /* Scalar */,
-				DE66F1BD08ABEFB400323D32 /* Utils */,
-			);
-			name = lib/Transforms;
-			path = ../lib/Transforms;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66F0EE08ABEFB300323D32 /* Instrumentation */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F0EF08ABEFB300323D32 /* BlockProfiling.cpp */,
-				DE66F0FE08ABEFB300323D32 /* EdgeProfiling.cpp */,
-				DE66F11B08ABEFB300323D32 /* ProfilingUtils.cpp */,
-				DE66F11C08ABEFB300323D32 /* ProfilingUtils.h */,
-				CF73C0B7098A546000627152 /* RSProfiling.cpp */,
-				CF73C0B8098A546000627152 /* RSProfiling.h */,
-			);
-			path = Instrumentation;
-			sourceTree = "<group>";
-		};
-		DE66F11F08ABEFB300323D32 /* IPO */ = {
-			isa = PBXGroup;
-			children = (
-				9F7793770C73C48A00551F9C /* StripDeadPrototypes.cpp */,
-				DE66F12008ABEFB300323D32 /* ArgumentPromotion.cpp */,
-				DE66F12108ABEFB300323D32 /* ConstantMerge.cpp */,
-				DE66F12208ABEFB300323D32 /* DeadArgumentElimination.cpp */,
-				DE66F12308ABEFB300323D32 /* DeadTypeElimination.cpp */,
-				DE66F14C08ABEFB400323D32 /* GlobalDCE.cpp */,
-				DE66F14D08ABEFB400323D32 /* GlobalOpt.cpp */,
-				CFE4213F0A66FB5E00AB4BF6 /* IndMemRemoval.cpp */,
-				DE66F14E08ABEFB400323D32 /* Inliner.cpp */,
-				DE66F15008ABEFB400323D32 /* InlineSimple.cpp */,
-				DE66F15108ABEFB400323D32 /* Internalize.cpp */,
-				DE66F15208ABEFB400323D32 /* IPConstantPropagation.cpp */,
-				DE66F15308ABEFB400323D32 /* LoopExtractor.cpp */,
-				DE66F15408ABEFB400323D32 /* LowerSetJmp.cpp */,
-				DE66F15608ABEFB400323D32 /* PruneEH.cpp */,
-				DE66F15708ABEFB400323D32 /* RaiseAllocations.cpp */,
-				DE66F15808ABEFB400323D32 /* SimplifyLibCalls.cpp */,
-				DE66F15908ABEFB400323D32 /* StripSymbols.cpp */,
-			);
-			path = IPO;
-			sourceTree = "<group>";
-		};
-		DE66F15C08ABEFB400323D32 /* Scalar */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F15E08ABEFB400323D32 /* ADCE.cpp */,
-				DE66F15F08ABEFB400323D32 /* BasicBlockPlacement.cpp */,
-				9F7793460C73BC2000551F9C /* CodeGenPrepare.cpp */,
-				DE66F16008ABEFB400323D32 /* CondPropagate.cpp */,
-				DE66F16108ABEFB400323D32 /* ConstantProp.cpp */,
-				DE66F16308ABEFB400323D32 /* DCE.cpp */,
-				DE66F16408ABEFB400323D32 /* DeadStoreElimination.cpp */,
-				DE66F1A308ABEFB400323D32 /* GCSE.cpp */,
-				9F7793470C73BC2000551F9C /* GVN.cpp */,
-				9F7793480C73BC2000551F9C /* GVNPRE.cpp */,
-				DE66F1A408ABEFB400323D32 /* IndVarSimplify.cpp */,
-				DE66F1A508ABEFB400323D32 /* InstructionCombining.cpp */,
-				DE66F1A608ABEFB400323D32 /* LICM.cpp */,
-				9F77934A0C73BC2000551F9C /* LoopRotation.cpp */,
-				9F7793490C73BC2000551F9C /* LoopIndexSplit.cpp */,
-				DE66F1A808ABEFB400323D32 /* LoopStrengthReduce.cpp */,
-				DE66F1A908ABEFB400323D32 /* LoopUnroll.cpp */,
-				DE66F1AA08ABEFB400323D32 /* LoopUnswitch.cpp */,
-				CF8F1B5B0B64FA2F00BB4199 /* PredicateSimplifier.cpp */,
-				DE66F1B508ABEFB400323D32 /* Reassociate.cpp */,
-				CF73C0B9098A546000627152 /* Reg2Mem.cpp */,
-				9FEDD5F70D8D797D009F6DF1 /* Scalar.cpp */,
-				DE66F1B608ABEFB400323D32 /* ScalarReplAggregates.cpp */,
-				DE66F1B708ABEFB400323D32 /* SCCP.cpp */,
-				DE66F1B808ABEFB400323D32 /* SimplifyCFG.cpp */,
-				DE66F1B908ABEFB400323D32 /* TailDuplication.cpp */,
-				DE66F1BA08ABEFB400323D32 /* TailRecursionElimination.cpp */,
-			);
-			path = Scalar;
-			sourceTree = "<group>";
-		};
-		DE66F1BD08ABEFB400323D32 /* Utils */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F1BE08ABEFB400323D32 /* BasicBlockUtils.cpp */,
-				9F7793780C73C49A00551F9C /* BasicInliner.cpp */,
-				DE66F1BF08ABEFB400323D32 /* BreakCriticalEdges.cpp */,
-				DE66F1C008ABEFB400323D32 /* CloneFunction.cpp */,
-				9F7793790C73C49A00551F9C /* CloneLoop.cpp */,
-				DE66F1C108ABEFB400323D32 /* CloneModule.cpp */,
-				DE66F1C208ABEFB400323D32 /* CloneTrace.cpp */,
-				DE66F1C308ABEFB400323D32 /* CodeExtractor.cpp */,
-				DE66F1E008ABEFB400323D32 /* DemoteRegToStack.cpp */,
-				9F77937A0C73C49A00551F9C /* InlineCost.cpp */,
-				DE66F1E108ABEFB400323D32 /* InlineFunction.cpp */,
-				CF97208A0A9F3C6F002CEEDD /* LCSSA.cpp */,
-				DE66F1E208ABEFB400323D32 /* Local.cpp */,
-				DE4DA0390911476D0012D44B /* LoopSimplify.cpp */,
-				CF97208B0A9F3C6F002CEEDD /* LowerAllocations.cpp */,
-				CF97208C0A9F3C6F002CEEDD /* LowerInvoke.cpp */,
-				CF97208E0A9F3C6F002CEEDD /* LowerSwitch.cpp */,
-				CF97208F0A9F3C6F002CEEDD /* Mem2Reg.cpp */,
-				DE66F1E408ABEFB400323D32 /* PromoteMemoryToRegister.cpp */,
-				DE66F1E508ABEFB400323D32 /* SimplifyCFG.cpp */,
-				DE66F1E608ABEFB400323D32 /* UnifyFunctionExitNodes.cpp */,
-				DE66F1E708ABEFB400323D32 /* ValueMapper.cpp */,
-			);
-			path = Utils;
-			sourceTree = "<group>";
-		};
-		DE66F1E908ABF03100323D32 /* include/llvm */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F1EB08ABF03100323D32 /* ADT */,
-				DE66F20308ABF03100323D32 /* Analysis */,
-				DE66F22408ABF03100323D32 /* Assembly */,
-				9F77937F0C73C54C00551F9C /* Bitcode */,
-				DE66F23508ABF03100323D32 /* CodeGen */,
-				DE66F24C08ABF03100323D32 /* Config */,
-				DE66F25308ABF03100323D32 /* Debugger */,
-				DE66F25B08ABF03100323D32 /* ExecutionEngine */,
-				DE66F26E08ABF03200323D32 /* Support */,
-				DE66F29408ABF03200323D32 /* System */,
-				DE66F29F08ABF03200323D32 /* Target */,
-				DE66F2AB08ABF03200323D32 /* Transforms */,
-				DE66F1EA08ABF03100323D32 /* AbstractTypeUser.h */,
-				DE66F22308ABF03100323D32 /* Argument.h */,
-				9FA638D90C77B184007F12AE /* AutoUpgrade.h */,
-				DE66F22A08ABF03100323D32 /* BasicBlock.h */,
-				DE66F23308ABF03100323D32 /* CallGraphSCCPass.h */,
-				DE66F23408ABF03100323D32 /* CallingConv.h */,
-				DE66F25108ABF03100323D32 /* Constant.h */,
-				DE66F25208ABF03100323D32 /* Constants.h */,
-				DE66F25A08ABF03100323D32 /* DerivedTypes.h */,
-				DE66F25E08ABF03100323D32 /* Function.h */,
-				9FA638DA0C77B184007F12AE /* GlobalAlias.h */,
-				DE66F25F08ABF03100323D32 /* GlobalValue.h */,
-				DE66F26008ABF03100323D32 /* GlobalVariable.h */,
-				CF73C0A2098A4FDF00627152 /* InlineAsm.h */,
-				DE66F26108ABF03100323D32 /* InstrTypes.h */,
-				DE66F26208ABF03100323D32 /* Instruction.def */,
-				DE66F26308ABF03100323D32 /* Instruction.h */,
-				DE66F26408ABF03100323D32 /* Instructions.h */,
-				DE66F26508ABF03100323D32 /* IntrinsicInst.h */,
-				DE66F26608ABF03100323D32 /* Intrinsics.h */,
-				CF65223409CA39B800C4B521 /* Intrinsics.gen */,
-				CFE420FF0A66F67300AB4BF6 /* IntrinsicsPowerPC.td */,
-				CFE421000A66F67300AB4BF6 /* IntrinsicsX86.td */,
-				CF8D62FA09C2226F006017BA /* Intrinsics.td */,
-				CF9720260A9F39B9002CEEDD /* LinkAllPasses.h */,
-				CFE421010A66F67300AB4BF6 /* LinkAllVMCore.h */,
-				CF9720270A9F39B9002CEEDD /* LinkTimeOptimizer.h */,
-				DE66F26708ABF03100323D32 /* Linker.h */,
-				DE66F26808ABF03100323D32 /* Module.h */,
-				DE66F26908ABF03200323D32 /* ModuleProvider.h */,
-				9F77937E0C73C53000551F9C /* ParameterAttributes.h */,
-				DE66F26A08ABF03200323D32 /* Pass.h */,
-				DE66F26B08ABF03200323D32 /* PassAnalysisSupport.h */,
-				DE66F26C08ABF03200323D32 /* PassManager.h */,
-				CF8F1B420B64F70B00BB4199 /* PassManagers.h */,
-				DE66F26D08ABF03200323D32 /* PassSupport.h */,
-				DE66F29308ABF03200323D32 /* SymbolTableListTraits.h */,
-				DE66F2B708ABF03200323D32 /* Type.h */,
-				CF73C0A3098A4FDF00627152 /* TypeSymbolTable.h */,
-				DE66F2B808ABF03200323D32 /* Use.h */,
-				DE66F2B908ABF03200323D32 /* User.h */,
-				DE66F2BA08ABF03200323D32 /* Value.h */,
-				CF73C0A4098A4FDF00627152 /* ValueSymbolTable.h */,
-			);
-			name = include/llvm;
-			path = ../include/llvm;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66F1EB08ABF03100323D32 /* ADT */ = {
-			isa = PBXGroup;
-			children = (
-				35E98A830CBC2ED300C5CDC1 /* DenseSet.h */,
-				35E98A840CBC2ED300C5CDC1 /* ImmutableMap.h */,
-				35E98A850CBC2ED300C5CDC1 /* ImmutableSet.h */,
-				9FA638DD0C77B1AB007F12AE /* BitVector.h */,
-				DE66F1EE08ABF03100323D32 /* DenseMap.h */,
-				DE66F1EF08ABF03100323D32 /* DepthFirstIterator.h */,
-				DE66F1F008ABF03100323D32 /* EquivalenceClasses.h */,
-				CF42B6BF0AF24F5300D5D47C /* FoldingSet.h */,
-				CF42B6BF0AF24F5300D5D47C /* FoldingSet.h */,
-				DE66F1F108ABF03100323D32 /* GraphTraits.h */,
-				DE66F1F308ABF03100323D32 /* hash_map.in */,
-				DE66F1F508ABF03100323D32 /* hash_set.in */,
-				DE66F1F608ABF03100323D32 /* HashExtras.h */,
-				DE66F1F708ABF03100323D32 /* ilist */,
-				9FA638E00C77B1AB007F12AE /* IndexedMap.h */,
-				9FE25D900CAB166D005383FC /* APFloat.h */,
-				9FA638DB0C77B1AB007F12AE /* APInt.h */,
-				9FA638DC0C77B1AB007F12AE /* APSInt.h */,
-				DE66F1F908ABF03100323D32 /* iterator.in */,
-				DE66F1FA08ABF03100323D32 /* PostOrderIterator.h */,
-				DE66F1FB08ABF03100323D32 /* SCCIterator.h */,
-				DE66F1FC08ABF03100323D32 /* SetOperations.h */,
-				DE66F1FD08ABF03100323D32 /* SetVector.h */,
-				9FA638E20C77B1AB007F12AE /* SmallPtrSet.h */,
-				9FA638E30C77B1AB007F12AE /* SmallSet.h */,
-				CF33BE160AF62B4200E93805 /* SmallString.h */,
-				CF71B60F0AC45EDA0007F57C /* SmallVector.h */,
-				9FE25D910CAB166D005383FC /* SparseBitVector.h */,
-				9FA638E40C77B1AB007F12AE /* StringMap.h */,
-				DE66F1FE08ABF03100323D32 /* Statistic.h */,
-				DE66F1FF08ABF03100323D32 /* STLExtras.h */,
-				DE66F20008ABF03100323D32 /* StringExtras.h */,
-				DE66F20108ABF03100323D32 /* Tree.h */,
-				CFF8B434097C605F0047F72A /* UniqueVector.h */,
-				DE66F20208ABF03100323D32 /* VectorExtras.h */,
-			);
-			path = ADT;
-			sourceTree = "<group>";
-		};
-		DE66F20308ABF03100323D32 /* Analysis */ = {
-			isa = PBXGroup;
-			children = (
-				9FA638E50C77B203007F12AE /* LoopPass.h */,
-				9FA638E60C77B203007F12AE /* MemoryDependenceAnalysis.h */,
-				DE66F20408ABF03100323D32 /* AliasAnalysis.h */,
-				DE66F20508ABF03100323D32 /* AliasSetTracker.h */,
-				DE66F20608ABF03100323D32 /* CallGraph.h */,
-				DE66F20708ABF03100323D32 /* CFGPrinter.h */,
-				CF73C0A5098A507300627152 /* ConstantFolding.h */,
-				DE66F20808ABF03100323D32 /* ConstantsScanner.h */,
-				DE66F20F08ABF03100323D32 /* Dominators.h */,
-				DE66F21208ABF03100323D32 /* FindUsedTypes.h */,
-				DE66F21308ABF03100323D32 /* Interval.h */,
-				DE66F21408ABF03100323D32 /* IntervalIterator.h */,
-				DE66F21508ABF03100323D32 /* IntervalPartition.h */,
-				DE66F21608ABF03100323D32 /* LoadValueNumbering.h */,
-				DE66F21708ABF03100323D32 /* LoopInfo.h */,
-				DE66F21808ABF03100323D32 /* Passes.h */,
-				DE66F21908ABF03100323D32 /* PostDominators.h */,
-				DE66F21A08ABF03100323D32 /* ProfileInfo.h */,
-				DE66F21B08ABF03100323D32 /* ProfileInfoLoader.h */,
-				DE66F21C08ABF03100323D32 /* ProfileInfoTypes.h */,
-				DE66F21D08ABF03100323D32 /* ScalarEvolution.h */,
-				DE66F21E08ABF03100323D32 /* ScalarEvolutionExpander.h */,
-				DE66F21F08ABF03100323D32 /* ScalarEvolutionExpressions.h */,
-				DE66F22008ABF03100323D32 /* Trace.h */,
-				DE66F22108ABF03100323D32 /* ValueNumbering.h */,
-				DE66F22208ABF03100323D32 /* Verifier.h */,
-			);
-			path = Analysis;
-			sourceTree = "<group>";
-		};
-		DE66F22408ABF03100323D32 /* Assembly */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F22508ABF03100323D32 /* AsmAnnotationWriter.h */,
-				DE66F22708ABF03100323D32 /* Parser.h */,
-				DE66F22808ABF03100323D32 /* PrintModulePass.h */,
-				DE66F22908ABF03100323D32 /* Writer.h */,
-			);
-			path = Assembly;
-			sourceTree = "<group>";
-		};
-		DE66F23508ABF03100323D32 /* CodeGen */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F23608ABF03100323D32 /* AsmPrinter.h */,
-				9F7793860C73C57100551F9C /* CallingConvLower.h */,
-				DEFAB19D0959E9A100E0AB42 /* DwarfWriter.h */,
-				9F7793870C73C57100551F9C /* ELFRelocation.h */,
-				9F7793880C73C57100551F9C /* FileWriters.h */,
-				DE66F23908ABF03100323D32 /* IntrinsicLowering.h */,
-				CFD7E4F30A798FC3000C7379 /* LinkAllCodegenComponents.h */,
-				DE4DA03C091147920012D44B /* LiveInterval.h */,
-				DE4DA03D091147920012D44B /* LiveIntervalAnalysis.h */,
-				DE66F23A08ABF03100323D32 /* LiveVariables.h */,
-				DE66F23B08ABF03100323D32 /* MachineBasicBlock.h */,
-				DE66F23C08ABF03100323D32 /* MachineCodeEmitter.h */,
-				DE66F23D08ABF03100323D32 /* MachineConstantPool.h */,
-				CF6F487109505E1500BC9E82 /* MachineModuleInfo.h */,
-				DE66F23E08ABF03100323D32 /* MachineFrameInfo.h */,
-				DE66F23F08ABF03100323D32 /* MachineFunction.h */,
-				DE66F24008ABF03100323D32 /* MachineFunctionPass.h */,
-				DE66F24108ABF03100323D32 /* MachineInstr.h */,
-				DE66F24208ABF03100323D32 /* MachineInstrBuilder.h */,
-				CFE420FB0A66F67300AB4BF6 /* MachineJumpTableInfo.h */,
-				CF6527D909D1A53400C4B521 /* MachineLocation.h */,
-				CF4F27E60A7B6E23004359F6 /* MachinePassRegistry.h */,
-				DE66F24308ABF03100323D32 /* MachineRelocation.h */,
-				9F7793890C73C57100551F9C /* MachORelocation.h */,
-				DE66F24408ABF03100323D32 /* Passes.h */,
-				CFE21C780A80CC0600D3E908 /* RegAllocRegistry.h */,
-				9FE25D920CAB169F005383FC /* RegisterCoalescer.h */,
-				9F77938A0C73C57100551F9C /* RegisterScavenging.h */,
-				CF8F1B410B64F6D100BB4199 /* RuntimeLibcalls.h */,
-				DE66F24508ABF03100323D32 /* SchedGraphCommon.h */,
-				CF7FFA2109850864008B0087 /* ScheduleDAG.h */,
-				CFE21C7B0A80CC1C00D3E908 /* SchedulerRegistry.h */,
-				DE66F24608ABF03100323D32 /* SelectionDAG.h */,
-				DE66F24708ABF03100323D32 /* SelectionDAGISel.h */,
-				DE66F24808ABF03100323D32 /* SelectionDAGNodes.h */,
-				DE66F24B08ABF03100323D32 /* ValueTypes.h */,
-				CFE420FC0A66F67300AB4BF6 /* ValueTypes.td */,
-			);
-			path = CodeGen;
-			sourceTree = "<group>";
-		};
-		DE66F24C08ABF03100323D32 /* Config */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F24E08ABF03100323D32 /* alloca.h */,
-				CF73C0A9098A50FD00627152 /* config.h */,
-				DE66F25008ABF03100323D32 /* config.h.in */,
-			);
-			path = Config;
-			sourceTree = "<group>";
-		};
-		DE66F25308ABF03100323D32 /* Debugger */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F25408ABF03100323D32 /* Debugger.h */,
-				DE66F25508ABF03100323D32 /* InferiorProcess.h */,
-				DE66F25608ABF03100323D32 /* ProgramInfo.h */,
-				DE66F25708ABF03100323D32 /* RuntimeInfo.h */,
-				DE66F25808ABF03100323D32 /* SourceFile.h */,
-				DE66F25908ABF03100323D32 /* SourceLanguage.h */,
-			);
-			path = Debugger;
-			sourceTree = "<group>";
-		};
-		DE66F25B08ABF03100323D32 /* ExecutionEngine */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F25C08ABF03100323D32 /* ExecutionEngine.h */,
-				DE66F25D08ABF03100323D32 /* GenericValue.h */,
-				CFE420FD0A66F67300AB4BF6 /* Interpreter.h */,
-				CFE420FE0A66F67300AB4BF6 /* JIT.h */,
-			);
-			path = ExecutionEngine;
-			sourceTree = "<group>";
-		};
-		DE66F26E08ABF03200323D32 /* Support */ = {
-			isa = PBXGroup;
-			children = (
-				F27C8CE90DAD2EF900A33844 /* IRBuilder.h */,
-				DE66F27008ABF03200323D32 /* AIXDataTypesFix.h */,
-				9F5B90CE0D0CE89300CDFDEA /* AlignOf.h */,
-				CF8F1B430B64F74400BB4199 /* Allocator.h */,
-				DE66F27108ABF03200323D32 /* Annotation.h */,
-				DE66F27208ABF03200323D32 /* CallSite.h */,
-				DE66F27308ABF03200323D32 /* Casting.h */,
-				DE66F27408ABF03200323D32 /* CFG.h */,
-				DE66F27508ABF03200323D32 /* CommandLine.h */,
-				CF8F1B440B64F74400BB4199 /* Compiler.h */,
-				DE66F27708ABF03200323D32 /* ConstantRange.h */,
-				CF73C0AD098A519400627152 /* DataTypes.h */,
-				DE66F27908ABF03200323D32 /* DataTypes.h.in */,
-				DE66F27A08ABF03200323D32 /* Debug.h */,
-				DE66F27B08ABF03200323D32 /* DOTGraphTraits.h */,
-				DE66F27C08ABF03200323D32 /* DynamicLinker.h */,
-				DE66F27D08ABF03200323D32 /* ELF.h */,
-				CF8E00490989162500DA2399 /* Dwarf.h */,
-				DE66F27E08ABF03200323D32 /* FileUtilities.h */,
-				DE66F27F08ABF03200323D32 /* GetElementPtrTypeIterator.h */,
-				DE66F28008ABF03200323D32 /* GraphWriter.h */,
-				DE66F28108ABF03200323D32 /* InstIterator.h */,
-				DE66F28208ABF03200323D32 /* InstVisitor.h */,
-				DE66F28308ABF03200323D32 /* LeakDetector.h */,
-				CF8F1B460B64F74400BB4199 /* ManagedStatic.h */,
-				DE66F28408ABF03200323D32 /* Mangler.h */,
-				DE66F28508ABF03200323D32 /* MathExtras.h */,
-				9F7794880C73D51000551F9C /* MemoryBuffer.h */,
-				DE66F28608ABF03200323D32 /* MutexGuard.h */,
-				CF8F1B470B64F74400BB4199 /* OutputBuffer.h */,
-				DE66F28708ABF03200323D32 /* PassNameParser.h */,
-				DE66F28808ABF03200323D32 /* PatternMatch.h */,
-				DE66F28908ABF03200323D32 /* PluginLoader.h */,
-				9F5B90CF0D0CE89300CDFDEA /* Registry.h */,
-				DE66F28A08ABF03200323D32 /* SlowOperationInformer.h */,
-				DE66F28B08ABF03200323D32 /* StableBasicBlockNumbering.h */,
-				9F7794890C73D51000551F9C /* Streams.h */,
-				9F5B90D00D0CE89300CDFDEA /* StringPool.h */,
-				DE66F28C08ABF03200323D32 /* SystemUtils.h */,
-				DE66F28E08ABF03200323D32 /* Timer.h */,
-				DE66F29008ABF03200323D32 /* type_traits.h */,
-			);
-			path = Support;
-			sourceTree = "<group>";
-		};
-		DE66F29408ABF03200323D32 /* System */ = {
-			isa = PBXGroup;
-			children = (
-				CF73C0AE098A51AD00627152 /* Alarm.h */,
-				9FA638E70C77B222007F12AE /* Disassembler.h */,
-				DE66F29508ABF03200323D32 /* DynamicLibrary.h */,
-				CF9720340A9F3A41002CEEDD /* IncludeFile.h */,
-				DE66F29608ABF03200323D32 /* LICENSE.TXT */,
-				DE66F29708ABF03200323D32 /* MappedFile.h */,
-				DE66F29808ABF03200323D32 /* Memory.h */,
-				DE66F29908ABF03200323D32 /* Mutex.h */,
-				DE66F29A08ABF03200323D32 /* Path.h */,
-				DE66F29B08ABF03200323D32 /* Process.h */,
-				DE66F29C08ABF03200323D32 /* Program.h */,
-				DE66F29D08ABF03200323D32 /* Signals.h */,
-				DE66F29E08ABF03200323D32 /* TimeValue.h */,
-			);
-			path = System;
-			sourceTree = "<group>";
-		};
-		DE66F29F08ABF03200323D32 /* Target */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F2A008ABF03200323D32 /* TargetRegisterInfo.h */,
-				CF9BCD0808C74DE0001E7011 /* SubtargetFeature.h */,
-				CF47BD380AAF40BC00A8B13E /* TargetAsmInfo.h */,
-				DE66F2A108ABF03200323D32 /* TargetData.h */,
-				9FA638E80C77B231007F12AE /* TargetELFWriterInfo.h */,
-				DE66F2A208ABF03200323D32 /* TargetFrameInfo.h */,
-				DE66F2A308ABF03200323D32 /* TargetInstrInfo.h */,
-				CF26835B09178F5500C5F253 /* TargetInstrItineraries.h */,
-				DE66F2A408ABF03200323D32 /* TargetJITInfo.h */,
-				DE66F2A508ABF03200323D32 /* TargetLowering.h */,
-				DE66F2A608ABF03200323D32 /* TargetMachine.h */,
-				DE66F2A708ABF03200323D32 /* TargetMachineRegistry.h */,
-				8443EF210B66B62D00959964 /* TargetMachOWriterInfo.h */,
-				DE66F2A808ABF03200323D32 /* TargetOptions.h */,
-				DE66F2AA08ABF03200323D32 /* TargetSubtarget.h */,
-			);
-			path = Target;
-			sourceTree = "<group>";
-		};
-		DE66F2AB08ABF03200323D32 /* Transforms */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F2AC08ABF03200323D32 /* Instrumentation.h */,
-				9FA638E90C77B252007F12AE /* IPO */,
-				DE66F2AD08ABF03200323D32 /* IPO.h */,
-				CF73C0AF098A51DD00627152 /* RSProfiling.h */,
-				DE66F2AF08ABF03200323D32 /* Scalar.h */,
-				DE66F2B008ABF03200323D32 /* Utils */,
-			);
-			path = Transforms;
-			sourceTree = "<group>";
-		};
-		DE66F2B008ABF03200323D32 /* Utils */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F2B108ABF03200323D32 /* BasicBlockUtils.h */,
-				9FA638EB0C77B26B007F12AE /* BasicInliner.h */,
-				DE66F2B208ABF03200323D32 /* Cloning.h */,
-				DE66F2B308ABF03200323D32 /* FunctionUtils.h */,
-				9FA638EC0C77B26B007F12AE /* InlineCost.h */,
-				DE66F2B408ABF03200323D32 /* Local.h */,
-				DE66F2B508ABF03200323D32 /* PromoteMemToReg.h */,
-				DE66F2B608ABF03200323D32 /* UnifyFunctionExitNodes.h */,
-			);
-			path = Utils;
-			sourceTree = "<group>";
-		};
-		DE66F2BD08ABF14400323D32 /* tools */ = {
-			isa = PBXGroup;
-			children = (
-				CFD99ADF0AFE878F0068D19C /* opt */,
-				DE66F2CB08ABF14400323D32 /* bugpoint */,
-				DE66F2F008ABF14400323D32 /* gccld */,
-				DE66F31E08ABF14400323D32 /* llvm-db */,
-				DE66F33B08ABF14400323D32 /* llvm-ld */,
-				DE66F36808ABF14500323D32 /* llvmc */,
-				CF8F1B5E0B64FADA00BB4199 /* llvm-upgrade */,
-				CF8F1B7E0B64FADA00BB4199 /* llvm2cpp */,
-				CFD99ADA0AFE87650068D19C /* lto.cpp */,
-				DE66F30008ABF14400323D32 /* llc.cpp */,
-				DE66F30708ABF14400323D32 /* lli.cpp */,
-				DE66F30E08ABF14400323D32 /* llvm-ar.cpp */,
-				DE66F31508ABF14400323D32 /* llvm-as.cpp */,
-				DE66F31C08ABF14400323D32 /* llvm-bcanalyzer.cpp */,
-				DE66F33208ABF14400323D32 /* llvm-dis.cpp */,
-				DE66F33908ABF14400323D32 /* llvm-extract.cpp */,
-				DE66F34A08ABF14400323D32 /* llvm-link.cpp */,
-				DE66F35108ABF14400323D32 /* llvm-nm.cpp */,
-				DE66F35808ABF14500323D32 /* llvm-prof.cpp */,
-				DE66F35F08ABF14500323D32 /* llvm-ranlib.cpp */,
-				CF8F1B960B64FB7F00BB4199 /* lto */,
-				CF8F1BAB0B64FB8000BB4199 /* opt */,
-			);
-			name = tools;
-			path = ../tools;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66F2CB08ABF14400323D32 /* bugpoint */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F2CC08ABF14400323D32 /* BugDriver.cpp */,
-				DE66F2CD08ABF14400323D32 /* BugDriver.h */,
-				DE66F2CE08ABF14400323D32 /* bugpoint.cpp */,
-				DE66F2CF08ABF14400323D32 /* CrashDebugger.cpp */,
-				DE66F2E208ABF14400323D32 /* ExecutionDriver.cpp */,
-				DE66F2E308ABF14400323D32 /* ExtractFunction.cpp */,
-				CF9720910A9F3CC7002CEEDD /* FindBugs.cpp */,
-				DE66F2E408ABF14400323D32 /* ListReducer.h */,
-				DE66F2E608ABF14400323D32 /* Miscompilation.cpp */,
-				DE66F2E708ABF14400323D32 /* OptimizerDriver.cpp */,
-				DE66F2E808ABF14400323D32 /* TestPasses.cpp */,
-				CF9720920A9F3CC7002CEEDD /* ToolRunner.cpp */,
-				CF9720930A9F3CC7002CEEDD /* ToolRunner.h */,
-			);
-			path = bugpoint;
-			sourceTree = "<group>";
-		};
-		DE66F2F008ABF14400323D32 /* gccld */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			path = gccld;
-			sourceTree = "<group>";
-		};
-		DE66F31E08ABF14400323D32 /* llvm-db */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F31F08ABF14400323D32 /* CLICommand.h */,
-				DE66F32008ABF14400323D32 /* CLIDebugger.cpp */,
-				DE66F32108ABF14400323D32 /* CLIDebugger.h */,
-				DE66F32208ABF14400323D32 /* Commands.cpp */,
-				DE66F32B08ABF14400323D32 /* llvm-db.cpp */,
-			);
-			path = "llvm-db";
-			sourceTree = "<group>";
-		};
-		DE66F33B08ABF14400323D32 /* llvm-ld */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F34208ABF14400323D32 /* llvm-ld.cpp */,
-				DE66F34408ABF14400323D32 /* Optimize.cpp */,
-			);
-			path = "llvm-ld";
-			sourceTree = "<group>";
-		};
-		DE66F36808ABF14500323D32 /* llvmc */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F36908ABF14500323D32 /* c */,
-				DE66F36A08ABF14500323D32 /* CompilerDriver.cpp */,
-				DE66F36B08ABF14500323D32 /* CompilerDriver.h */,
-				CF8F1B950B64FB5000BB4199 /* ConfigLexer.cpp */,
-				DE66F36D08ABF14500323D32 /* ConfigLexer.h */,
-				DE66F36E08ABF14500323D32 /* ConfigLexer.l */,
-				DE66F36F08ABF14500323D32 /* Configuration.cpp */,
-				DE66F37008ABF14500323D32 /* Configuration.h */,
-				DE66F37108ABF14500323D32 /* cpp */,
-				DE66F37D08ABF14500323D32 /* ll */,
-				DE66F37E08ABF14500323D32 /* llvmc.cpp */,
-			);
-			path = llvmc;
-			sourceTree = "<group>";
-		};
-		DE66F38D08ABF35C00323D32 /* docs */ = {
-			isa = PBXGroup;
-			children = (
-				F22627310DAE34D10008F441 /* tutorial */,
-				DE66F38F08ABF35C00323D32 /* AliasAnalysis.html */,
-				DE66F39008ABF35C00323D32 /* Bugpoint.html */,
-				DE66F39208ABF35C00323D32 /* GCCFEBuildInstrs.html */,
-				DE66F39308ABF35C00323D32 /* CodeGenerator.html */,
-				DE66F39408ABF35C00323D32 /* CodingStandards.html */,
-				DE66F39508ABF35C00323D32 /* CommandGuide */,
-				DE66F3B908ABF35D00323D32 /* CommandLine.html */,
-				DE66F3BA08ABF35D00323D32 /* CompilerDriver.html */,
-				DE66F3BB08ABF35D00323D32 /* CompilerWriterInfo.html */,
-				DE66F3BD08ABF35D00323D32 /* doxygen.cfg.in */,
-				DE66F3BE08ABF35D00323D32 /* doxygen.css */,
-				DE66F3BF08ABF35D00323D32 /* doxygen.footer */,
-				DE66F3C008ABF35D00323D32 /* doxygen.header */,
-				DE66F3C108ABF35D00323D32 /* doxygen.intro */,
-				DE66F3C208ABF35D00323D32 /* ExtendingLLVM.html */,
-				DE66F3C308ABF35D00323D32 /* FAQ.html */,
-				DE66F3C408ABF35D00323D32 /* GarbageCollection.html */,
-				DE66F3C508ABF35D00323D32 /* GettingStarted.html */,
-				DE66F3C608ABF35D00323D32 /* GettingStartedVS.html */,
-				DE66F3E408ABF35D00323D32 /* HowToSubmitABug.html */,
-				DE66F3E508ABF35D00323D32 /* img */,
-				DE66F3EB08ABF35D00323D32 /* index.html */,
-				DE66F3EC08ABF35D00323D32 /* LangRef.html */,
-				DE66F3ED08ABF35D00323D32 /* Lexicon.html */,
-				DE66F3EE08ABF35D00323D32 /* llvm.css */,
-				DE66F3F108ABF35D00323D32 /* MakefileGuide.html */,
-				DE66F3F208ABF35D00323D32 /* ProgrammersManual.html */,
-				DE66F3F308ABF35D00323D32 /* Projects.html */,
-				DE66F3F408ABF35D00323D32 /* ReleaseNotes.html */,
-				DE66F3F508ABF35D00323D32 /* SourceLevelDebugging.html */,
-				DE66F3F708ABF35D00323D32 /* SystemLibrary.html */,
-				DE66F3F808ABF35D00323D32 /* TableGenFundamentals.html */,
-				DE66F3F908ABF35D00323D32 /* TestingGuide.html */,
-				DE66F3FA08ABF35D00323D32 /* UsingLibraries.html */,
-				DE66F3FB08ABF35D00323D32 /* WritingAnLLVMBackend.html */,
-				DE66F3FC08ABF35D00323D32 /* WritingAnLLVMPass.html */,
-			);
-			name = docs;
-			path = ../docs;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE66F39508ABF35C00323D32 /* CommandGuide */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F39808ABF35C00323D32 /* bugpoint.pod */,
-				DE66F39E08ABF35C00323D32 /* index.html */,
-				DE66F39F08ABF35C00323D32 /* llc.pod */,
-				DE66F3A008ABF35C00323D32 /* lli.pod */,
-				DE66F3A108ABF35C00323D32 /* llvm-ar.pod */,
-				DE66F3A208ABF35C00323D32 /* llvm-as.pod */,
-				DE66F3A308ABF35C00323D32 /* llvm-bcanalyzer.pod */,
-				DE66F3A408ABF35C00323D32 /* llvm-db.pod */,
-				DE66F3A508ABF35C00323D32 /* llvm-dis.pod */,
-				DE66F3A608ABF35C00323D32 /* llvm-extract.pod */,
-				DE66F3A708ABF35C00323D32 /* llvm-ld.pod */,
-				DE66F3A808ABF35C00323D32 /* llvm-link.pod */,
-				DE66F3A908ABF35C00323D32 /* llvm-nm.pod */,
-				DE66F3AA08ABF35C00323D32 /* llvm-prof.pod */,
-				DE66F3AB08ABF35C00323D32 /* llvm-ranlib.pod */,
-				DE66F3AC08ABF35C00323D32 /* llvmc.pod */,
-				DE66F3AD08ABF35C00323D32 /* llvmgcc.pod */,
-				DE66F3AE08ABF35C00323D32 /* llvmgxx.pod */,
-				DE66F3AF08ABF35C00323D32 /* Makefile */,
-				DE66F3B408ABF35D00323D32 /* manpage.css */,
-				DE66F3B508ABF35D00323D32 /* opt.pod */,
-				DE66F3B808ABF35D00323D32 /* stkrc.pod */,
-			);
-			path = CommandGuide;
-			sourceTree = "<group>";
-		};
-		DE66F3E508ABF35D00323D32 /* img */ = {
-			isa = PBXGroup;
-			children = (
-				DE66F3E608ABF35D00323D32 /* Debugging.gif */,
-				DE66F3E708ABF35D00323D32 /* libdeps.gif */,
-				DE66F3E808ABF35D00323D32 /* lines.gif */,
-				DE66F3E908ABF35D00323D32 /* objdeps.gif */,
-				DE66F3EA08ABF35D00323D32 /* venusflytrap.jpg */,
-			);
-			path = img;
-			sourceTree = "<group>";
-		};
-		DE66F3FD08ABF37000323D32 /* examples */ = {
-			isa = PBXGroup;
-			children = (
-				F22761DF0DAD09CD003D8065 /* BrainF.cpp */,
-				F22761E00DAD09CD003D8065 /* BrainF.h */,
-				F22761E10DAD09CD003D8065 /* BrainFDriver.cpp */,
-				DE66F40E08ABF37000323D32 /* fibonacci.cpp */,
-				DE66F41508ABF37000323D32 /* HowToUseJIT.cpp */,
-				DE66F41E08ABF37000323D32 /* ModuleMaker.cpp */,
-				DE66F42608ABF37000323D32 /* ParallelJIT.cpp */,
-			);
-			name = examples;
-			path = ../examples;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE816FAC08CFB44C0093BDEF /* utils */ = {
-			isa = PBXGroup;
-			children = (
-				DE81705708CFB44D0093BDEF /* TableGen */,
-				DE81704008CFB44D0093BDEF /* fpcmp.cpp */,
-				DE81704F08CFB44D0093BDEF /* NightlyTest.gnuplot */,
-				DE81705108CFB44D0093BDEF /* NightlyTestTemplate.html */,
-			);
-			name = utils;
-			path = ../utils;
-			sourceTree = SOURCE_ROOT;
-		};
-		DE81705708CFB44D0093BDEF /* TableGen */ = {
-			isa = PBXGroup;
-			children = (
-				DE81705908CFB44D0093BDEF /* AsmWriterEmitter.cpp */,
-				DE81705A08CFB44D0093BDEF /* AsmWriterEmitter.h */,
-				DE81705B08CFB44D0093BDEF /* CodeEmitterGen.cpp */,
-				DE81705C08CFB44D0093BDEF /* CodeEmitterGen.h */,
-				DE81705D08CFB44D0093BDEF /* CodeGenInstruction.h */,
-				CF8F1BC90B64FBD500BB4199 /* CodeGenIntrinsics.h */,
-				DE81705E08CFB44D0093BDEF /* CodeGenRegisters.h */,
-				DE81705F08CFB44D0093BDEF /* CodeGenTarget.cpp */,
-				DE81706008CFB44D0093BDEF /* CodeGenTarget.h */,
-				DE81706708CFB44D0093BDEF /* DAGISelEmitter.cpp */,
-				DE81706808CFB44D0093BDEF /* DAGISelEmitter.h */,
-				CF9720970A9F3D4D002CEEDD /* IntrinsicEmitter.cpp */,
-				CF9720980A9F3D4D002CEEDD /* IntrinsicEmitter.h */,
-				DE81708908CFB44D0093BDEF /* InstrInfoEmitter.cpp */,
-				DE81708A08CFB44D0093BDEF /* InstrInfoEmitter.h */,
-				DE81708E08CFB44D0093BDEF /* Record.cpp */,
-				DE81708F08CFB44D0093BDEF /* Record.h */,
-				DE81709008CFB44D0093BDEF /* RegisterInfoEmitter.cpp */,
-				DE81709108CFB44D0093BDEF /* RegisterInfoEmitter.h */,
-				DE4DA065091148520012D44B /* SubtargetEmitter.cpp */,
-				DE4DA066091148520012D44B /* SubtargetEmitter.h */,
-				DE8170AA08CFB44D0093BDEF /* TableGen.cpp */,
-				DE8170AB08CFB44D0093BDEF /* TableGenBackend.cpp */,
-				DE8170AC08CFB44D0093BDEF /* TableGenBackend.h */,
-				CF490E300907BBF80072DB1C /* SubtargetEmitter.cpp */,
-				CF490E2F0907BBF80072DB1C /* SubtargetEmitter.h */,
-			);
-			path = TableGen;
-			sourceTree = "<group>";
-		};
-		F22627310DAE34D10008F441 /* tutorial */ = {
-			isa = PBXGroup;
-			children = (
-				F22627320DAE34D10008F441 /* index.html */,
-				F22627330DAE34D20008F441 /* JITTutorial1.html */,
-				F22627340DAE34D20008F441 /* JITTutorial2-1.png */,
-				F22627350DAE34D20008F441 /* JITTutorial2.html */,
-				F22627360DAE34D20008F441 /* LangImpl1.html */,
-				F22627370DAE34D20008F441 /* LangImpl2.html */,
-				F22627380DAE34D20008F441 /* LangImpl3.html */,
-				F22627390DAE34D20008F441 /* LangImpl4.html */,
-				F226273A0DAE34D20008F441 /* LangImpl5-cfg.png */,
-				F226273B0DAE34D20008F441 /* LangImpl5.html */,
-				F226273C0DAE34D20008F441 /* LangImpl6.html */,
-				F226273D0DAE34D20008F441 /* LangImpl7.html */,
-				F226273E0DAE34D20008F441 /* LangImpl8.html */,
-				F226273F0DAE34D20008F441 /* Makefile */,
-				F22627400DAE34D20008F441 /* OCamlLangImpl1.html */,
-				F22627410DAE34D20008F441 /* OCamlLangImpl2.html */,
-				F22627420DAE34D20008F441 /* OCamlLangImpl3.html */,
-				F22627430DAE34D20008F441 /* OCamlLangImpl4.html */,
-				F22627440DAE34D20008F441 /* OCamlLangImpl5.html */,
-				F22627450DAE34D20008F441 /* OCamlLangImpl6.html */,
-				F22627460DAE34D20008F441 /* OCamlLangImpl7.html */,
-			);
-			path = tutorial;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXLegacyTarget section */
-		CF0329B608D1BE110030FD33 /* LLVM lib */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(ACTION) -j 2";
-			buildConfigurationList = CF0329B708D1BE530030FD33 /* Build configuration list for PBXLegacyTarget "LLVM lib" */;
-			buildPhases = (
-			);
-			buildToolPath = /usr/bin/make;
-			buildWorkingDirectory = "$(SRCROOT)/../lib";
-			dependencies = (
-			);
-			name = "LLVM lib";
-			passBuildSettingsInEnvironment = 0;
-			productName = "LLVM lib";
-		};
-		CF0329BB08D1BE5D0030FD33 /* LLVM llc */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(ACTION) -j 2";
-			buildConfigurationList = CF0329C308D1BEC40030FD33 /* Build configuration list for PBXLegacyTarget "LLVM llc" */;
-			buildPhases = (
-			);
-			buildToolPath = /usr/bin/make;
-			buildWorkingDirectory = "$(SRCROOT)/../tools/llc";
-			dependencies = (
-			);
-			name = "LLVM llc";
-			passBuildSettingsInEnvironment = 0;
-			productName = "LLVM llc";
-		};
-		CF490E830907CDAB0072DB1C /* LLVM TableGen */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(ACTION) -j 2";
-			buildConfigurationList = CF490E840907CDAB0072DB1C /* Build configuration list for PBXLegacyTarget "LLVM TableGen" */;
-			buildPhases = (
-			);
-			buildToolPath = /usr/bin/make;
-			buildWorkingDirectory = "${SRCROOT}/../utils/TableGen";
-			dependencies = (
-			);
-			name = "LLVM TableGen";
-			passBuildSettingsInEnvironment = 0;
-			productName = "LLVM llc";
-		};
-		CFDF86BD0ADE819D00D40A3D /* LLVM lib release */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(ACTION) -j 2 ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1";
-			buildConfigurationList = CFDF86BE0ADE819D00D40A3D /* Build configuration list for PBXLegacyTarget "LLVM lib release" */;
-			buildPhases = (
-			);
-			buildToolPath = /usr/bin/make;
-			buildWorkingDirectory = "$(SRCROOT)/../lib";
-			dependencies = (
-			);
-			name = "LLVM lib release";
-			passBuildSettingsInEnvironment = 0;
-			productName = "LLVM lib";
-		};
-		CFDF86C60ADE81D000D40A3D /* LLVM llc release */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(ACTION) -j 2 ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1";
-			buildConfigurationList = CFDF86C70ADE81D000D40A3D /* Build configuration list for PBXLegacyTarget "LLVM llc release" */;
-			buildPhases = (
-			);
-			buildToolPath = /usr/bin/make;
-			buildWorkingDirectory = "$(SRCROOT)/../tools/llc";
-			dependencies = (
-			);
-			name = "LLVM llc release";
-			passBuildSettingsInEnvironment = 0;
-			productName = "LLVM llc";
-		};
-		D28A88AD04BDD90700651E21 /* LLVM */ = {
-			isa = PBXLegacyTarget;
-			buildArgumentsString = "$(ACTION) -j 2";
-			buildConfigurationList = DE66EC4C08ABE78900323D32 /* Build configuration list for PBXLegacyTarget "LLVM" */;
-			buildPhases = (
-			);
-			buildToolPath = /usr/bin/make;
-			buildWorkingDirectory = "$(SRCROOT)/../";
-			dependencies = (
-			);
-			name = LLVM;
-			passBuildSettingsInEnvironment = 0;
-			productName = LLVM;
-		};
-/* End PBXLegacyTarget section */
-
-/* Begin PBXProject section */
-		08FB7793FE84155DC02AAC07 /* Project object */ = {
-			isa = PBXProject;
-			buildConfigurationList = DE66EC5008ABE78900323D32 /* Build configuration list for PBXProject "LLVM" */;
-			compatibilityVersion = "Xcode 2.4";
-			hasScannedForEncodings = 1;
-			mainGroup = 08FB7794FE84155DC02AAC07 /* LLVM */;
-			productRefGroup = 721CA1750D0B44D200D5004F /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				D28A88AD04BDD90700651E21 /* LLVM */,
-				CF0329B608D1BE110030FD33 /* LLVM lib */,
-				CF0329BB08D1BE5D0030FD33 /* LLVM llc */,
-				CF0329BC08D1BE8E0030FD33 /* LLVM full llc */,
-				CF490E830907CDAB0072DB1C /* LLVM TableGen */,
-				CFDF86BD0ADE819D00D40A3D /* LLVM lib release */,
-				CFDF86C60ADE81D000D40A3D /* LLVM llc release */,
-				CFDF86D00ADE820000D40A3D /* LLVM full llc release */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXTargetDependency section */
-		CF0329BE08D1BE970030FD33 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = CF0329B608D1BE110030FD33 /* LLVM lib */;
-			targetProxy = CF0329BD08D1BE970030FD33 /* PBXContainerItemProxy */;
-		};
-		CF0329C008D1BE9B0030FD33 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = CF0329BB08D1BE5D0030FD33 /* LLVM llc */;
-			targetProxy = CF0329BF08D1BE9B0030FD33 /* PBXContainerItemProxy */;
-		};
-		CFDF86DA0ADE822100D40A3D /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = CFDF86BD0ADE819D00D40A3D /* LLVM lib release */;
-			targetProxy = CFDF86D90ADE822100D40A3D /* PBXContainerItemProxy */;
-		};
-		CFDF86DC0ADE822100D40A3D /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = CFDF86C60ADE81D000D40A3D /* LLVM llc release */;
-			targetProxy = CFDF86DB0ADE822100D40A3D /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
-		CF0329B808D1BE530030FD33 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM lib";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Debug;
-		};
-		CF0329B908D1BE530030FD33 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM lib";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Release;
-		};
-		CF0329C408D1BEC40030FD33 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Debug;
-		};
-		CF0329C508D1BEC40030FD33 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Release;
-		};
-		CF0329C808D1BEC40030FD33 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM full llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Debug;
-		};
-		CF0329C908D1BEC40030FD33 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM full llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Release;
-		};
-		CF490E850907CDAB0072DB1C /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM TableGen";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Debug;
-		};
-		CF490E860907CDAB0072DB1C /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Release;
-		};
-		CFDF86BF0ADE819D00D40A3D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM lib";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Debug;
-		};
-		CFDF86C00ADE819D00D40A3D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM lib";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Release;
-		};
-		CFDF86C80ADE81D000D40A3D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Debug;
-		};
-		CFDF86C90ADE81D000D40A3D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Release;
-		};
-		CFDF86D60ADE820000D40A3D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM full llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Debug;
-		};
-		CFDF86D70ADE820000D40A3D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				OTHER_REZFLAGS = "";
-				PRODUCT_NAME = "LLVM full llc";
-				SECTORDER_FLAGS = "";
-				WARNING_CFLAGS = (
-					"-Wmost",
-					"-Wno-four-char-constants",
-					"-Wno-unknown-pragmas",
-				);
-			};
-			name = Release;
-		};
-		DE66EC4D08ABE78900323D32 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = NO;
-				DEBUGGING_SYMBOLS = YES;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				OPTIMIZATION_CFLAGS = "-O0";
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				PRODUCT_NAME = LLVM;
-				ZERO_LINK = YES;
-			};
-			name = Debug;
-		};
-		DE66EC4E08ABE78900323D32 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				COPY_PHASE_STRIP = YES;
-				ENABLE_OPTIMIZED = 1;
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				OTHER_CFLAGS = "";
-				OTHER_LDFLAGS = "";
-				PRODUCT_NAME = LLVM;
-				ZERO_LINK = NO;
-			};
-			name = Release;
-		};
-		DE66EC5108ABE78900323D32 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				USER_HEADER_SEARCH_PATHS = "../include/**";
-			};
-			name = Debug;
-		};
-		DE66EC5208ABE78900323D32 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				USER_HEADER_SEARCH_PATHS = "../include/**";
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		CF0329B708D1BE530030FD33 /* Build configuration list for PBXLegacyTarget "LLVM lib" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CF0329B808D1BE530030FD33 /* Debug */,
-				CF0329B908D1BE530030FD33 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		CF0329C308D1BEC40030FD33 /* Build configuration list for PBXLegacyTarget "LLVM llc" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CF0329C408D1BEC40030FD33 /* Debug */,
-				CF0329C508D1BEC40030FD33 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		CF0329C708D1BEC40030FD33 /* Build configuration list for PBXAggregateTarget "LLVM full llc" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CF0329C808D1BEC40030FD33 /* Debug */,
-				CF0329C908D1BEC40030FD33 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		CF490E840907CDAB0072DB1C /* Build configuration list for PBXLegacyTarget "LLVM TableGen" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CF490E850907CDAB0072DB1C /* Debug */,
-				CF490E860907CDAB0072DB1C /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		CFDF86BE0ADE819D00D40A3D /* Build configuration list for PBXLegacyTarget "LLVM lib release" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CFDF86BF0ADE819D00D40A3D /* Debug */,
-				CFDF86C00ADE819D00D40A3D /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		CFDF86C70ADE81D000D40A3D /* Build configuration list for PBXLegacyTarget "LLVM llc release" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CFDF86C80ADE81D000D40A3D /* Debug */,
-				CFDF86C90ADE81D000D40A3D /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		CFDF86D50ADE820000D40A3D /* Build configuration list for PBXAggregateTarget "LLVM full llc release" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				CFDF86D60ADE820000D40A3D /* Debug */,
-				CFDF86D70ADE820000D40A3D /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		DE66EC4C08ABE78900323D32 /* Build configuration list for PBXLegacyTarget "LLVM" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				DE66EC4D08ABE78900323D32 /* Debug */,
-				DE66EC4E08ABE78900323D32 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-		DE66EC5008ABE78900323D32 /* Build configuration list for PBXProject "LLVM" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				DE66EC5108ABE78900323D32 /* Debug */,
-				DE66EC5208ABE78900323D32 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Debug;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
-}
diff --git a/libclamav/c++/llvm/Xcode/README.txt b/libclamav/c++/llvm/Xcode/README.txt
deleted file mode 100644
index 614cd67..0000000
--- a/libclamav/c++/llvm/Xcode/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-Xcode project files for LLVM, for Xcode 2.1
diff --git a/libclamav/c++/llvm/bindings/Makefile b/libclamav/c++/llvm/bindings/Makefile
deleted file mode 100644
index c545b28..0000000
--- a/libclamav/c++/llvm/bindings/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-##===- bindings/Makefile -----------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL := ..
-
-include $(LEVEL)/Makefile.config
-
-PARALLEL_DIRS = $(BINDINGS_TO_BUILD)
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/bindings/README.txt b/libclamav/c++/llvm/bindings/README.txt
deleted file mode 100644
index 7693cb2..0000000
--- a/libclamav/c++/llvm/bindings/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This directory contains bindings for the LLVM compiler infrastructure to allow
-programs written in languages other than C or C++ to take advantage of the LLVM
-infrastructure--for instance, a self-hosted compiler front-end.
diff --git a/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis-binding.ads b/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis-binding.ads
deleted file mode 100644
index c51a503..0000000
--- a/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis-binding.ads
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with llvm;
-with Interfaces.C.Strings;
-
-
-package LLVM_Analysis.Binding is
-
-   function LLVMVerifyModule
-     (M          : in llvm.LLVMModuleRef;
-      Action     : in LLVM_Analysis.LLVMVerifierFailureAction;
-      OutMessage : access Interfaces.C.Strings.chars_ptr)
-      return       Interfaces.C.int;
-
-   function LLVMVerifyFunction
-     (Fn     : in llvm.LLVMValueRef;
-      Action : in LLVM_Analysis.LLVMVerifierFailureAction)
-      return   Interfaces.C.int;
-
-   procedure LLVMViewFunctionCFG (Fn : in llvm.LLVMValueRef);
-
-   procedure LLVMViewFunctionCFGOnly (Fn : in llvm.LLVMValueRef);
-
-private
-
-   pragma Import (C, LLVMVerifyModule, "Ada_LLVMVerifyModule");
-   pragma Import (C, LLVMVerifyFunction, "Ada_LLVMVerifyFunction");
-   pragma Import (C, LLVMViewFunctionCFG, "Ada_LLVMViewFunctionCFG");
-   pragma Import (C, LLVMViewFunctionCFGOnly, "Ada_LLVMViewFunctionCFGOnly");
-
-end LLVM_Analysis.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis.ads b/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis.ads
deleted file mode 100644
index aa7b3f0..0000000
--- a/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis.ads
+++ /dev/null
@@ -1,30 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with Interfaces.C;
-
-
-package LLVM_Analysis is
-
-   -- LLVMVerifierFailureAction
-   --
-   type LLVMVerifierFailureAction is (
-      LLVMAbortProcessAction,
-      LLVMPrintMessageAction,
-      LLVMReturnStatusAction);
-
-   for LLVMVerifierFailureAction use
-     (LLVMAbortProcessAction => 0,
-      LLVMPrintMessageAction => 1,
-      LLVMReturnStatusAction => 2);
-
-   pragma Convention (C, LLVMVerifierFailureAction);
-
-   type LLVMVerifierFailureAction_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_Analysis.LLVMVerifierFailureAction;
-
-   type LLVMVerifierFailureAction_view is access all
-     LLVM_Analysis.LLVMVerifierFailureAction;
-
-end LLVM_Analysis;
diff --git a/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis_wrap.cxx b/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis_wrap.cxx
deleted file mode 100644
index f2a8637..0000000
--- a/libclamav/c++/llvm/bindings/ada/analysis/llvm_analysis_wrap.cxx
+++ /dev/null
@@ -1,369 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_Analysis (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_Analysis(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-#include "llvm-c/Analysis.h"
-//#include "llvm-c/BitReader.h"
-//#include "llvm-c/BitWriter.h"
-//#include "llvm-c/Core.h"
-//#include "llvm-c/ExecutionEngine.h"
-//#include "llvm-c/LinkTimeOptimizer.h"
-//#include "llvm-c/lto.h"
-//#include "llvm-c/Target.h"
-
-
-
-//  struct LLVMCtxt;
-
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport int SWIGSTDCALL Ada_LLVMVerifyModule (
-  void * jarg1
-  ,
-  
-  int jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMVerifierFailureAction arg2 ;
-  char **arg3 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = (LLVMVerifierFailureAction) jarg2; 
-  
-  arg3 = (char **)jarg3; 
-  
-  result = (int)LLVMVerifyModule(arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMVerifyFunction (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMVerifierFailureAction arg2 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMVerifierFailureAction) jarg2; 
-  
-  result = (int)LLVMVerifyFunction(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMViewFunctionCFG (
-  void * jarg1
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  LLVMViewFunctionCFG(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMViewFunctionCFGOnly (
-  void * jarg1
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  LLVMViewFunctionCFGOnly(arg1);
-  
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bit_reader-binding.ads b/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bit_reader-binding.ads
deleted file mode 100644
index 4fcdb4a..0000000
--- a/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bit_reader-binding.ads
+++ /dev/null
@@ -1,52 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with llvm;
-with Interfaces.C.Strings;
-
-
-package LLVM_bit_Reader.Binding is
-
-   function LLVMParseBitcode
-     (MemBuf     : in llvm.LLVMMemoryBufferRef;
-      OutModule  : access llvm.LLVMModuleRef;
-      OutMessage : access Interfaces.C.Strings.chars_ptr)
-      return       Interfaces.C.int;
-
-   function LLVMParseBitcodeInContext
-     (MemBuf     : in llvm.LLVMMemoryBufferRef;
-      ContextRef : in llvm.LLVMContextRef;
-      OutModule  : access llvm.LLVMModuleRef;
-      OutMessage : access Interfaces.C.Strings.chars_ptr)
-      return       Interfaces.C.int;
-
-   function LLVMGetBitcodeModuleProvider
-     (MemBuf     : in llvm.LLVMMemoryBufferRef;
-      OutMP      : access llvm.LLVMModuleProviderRef;
-      OutMessage : access Interfaces.C.Strings.chars_ptr)
-      return       Interfaces.C.int;
-
-   function LLVMGetBitcodeModuleProviderInContext
-     (MemBuf     : in llvm.LLVMMemoryBufferRef;
-      ContextRef : in llvm.LLVMContextRef;
-      OutMP      : access llvm.LLVMModuleProviderRef;
-      OutMessage : access Interfaces.C.Strings.chars_ptr)
-      return       Interfaces.C.int;
-
-private
-
-   pragma Import (C, LLVMParseBitcode, "Ada_LLVMParseBitcode");
-   pragma Import
-     (C,
-      LLVMParseBitcodeInContext,
-      "Ada_LLVMParseBitcodeInContext");
-   pragma Import
-     (C,
-      LLVMGetBitcodeModuleProvider,
-      "Ada_LLVMGetBitcodeModuleProvider");
-   pragma Import
-     (C,
-      LLVMGetBitcodeModuleProviderInContext,
-      "Ada_LLVMGetBitcodeModuleProviderInContext");
-
-end LLVM_bit_Reader.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bit_reader.ads b/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bit_reader.ads
deleted file mode 100644
index 7579dea..0000000
--- a/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bit_reader.ads
+++ /dev/null
@@ -1,6 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-package LLVM_bit_Reader is
-
-end LLVM_bit_Reader;
diff --git a/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bitreader_wrap.cxx b/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bitreader_wrap.cxx
deleted file mode 100644
index b7ecbed..0000000
--- a/libclamav/c++/llvm/bindings/ada/bitreader/llvm_bitreader_wrap.cxx
+++ /dev/null
@@ -1,423 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_bit_Reader (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_bit_Reader(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-//#include "llvm-c/Analysis.h"
-#include "llvm-c/BitReader.h"
-//#include "llvm-c/BitWriter.h"
-//#include "llvm-c/Core.h"
-//#include "llvm-c/ExecutionEngine.h"
-//#include "llvm-c/LinkTimeOptimizer.h"
-//#include "llvm-c/lto.h"
-//#include "llvm-c/Target.h"
-
-
-
-//  struct LLVMCtxt;
-
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport int SWIGSTDCALL Ada_LLVMParseBitcode (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
-  LLVMModuleRef *arg2 = (LLVMModuleRef *) 0 ;
-  char **arg3 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMMemoryBufferRef)jarg1; 
-  
-  arg2 = (LLVMModuleRef *)jarg2; 
-  
-  arg3 = (char **)jarg3; 
-  
-  result = (int)LLVMParseBitcode(arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMParseBitcodeInContext (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  )
-{
-  int jresult ;
-  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
-  LLVMContextRef arg2 = (LLVMContextRef) 0 ;
-  LLVMModuleRef *arg3 = (LLVMModuleRef *) 0 ;
-  char **arg4 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMMemoryBufferRef)jarg1; 
-  
-  arg2 = (LLVMContextRef)jarg2; 
-  
-  arg3 = (LLVMModuleRef *)jarg3; 
-  
-  arg4 = (char **)jarg4; 
-  
-  result = (int)LLVMParseBitcodeInContext(arg1,arg2,arg3,arg4);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMGetBitcodeModuleProvider (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
-  LLVMModuleProviderRef *arg2 = (LLVMModuleProviderRef *) 0 ;
-  char **arg3 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMMemoryBufferRef)jarg1; 
-  
-  arg2 = (LLVMModuleProviderRef *)jarg2; 
-  
-  arg3 = (char **)jarg3; 
-  
-  result = (int)LLVMGetBitcodeModuleProvider(arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMGetBitcodeModuleProviderInContext (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  )
-{
-  int jresult ;
-  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
-  LLVMContextRef arg2 = (LLVMContextRef) 0 ;
-  LLVMModuleProviderRef *arg3 = (LLVMModuleProviderRef *) 0 ;
-  char **arg4 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMMemoryBufferRef)jarg1; 
-  
-  arg2 = (LLVMContextRef)jarg2; 
-  
-  arg3 = (LLVMModuleProviderRef *)jarg3; 
-  
-  arg4 = (char **)jarg4; 
-  
-  result = (int)LLVMGetBitcodeModuleProviderInContext(arg1,arg2,arg3,arg4);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bit_writer-binding.ads b/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bit_writer-binding.ads
deleted file mode 100644
index b5542df..0000000
--- a/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bit_writer-binding.ads
+++ /dev/null
@@ -1,28 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with llvm;
-with Interfaces.C.Strings;
-
-
-package LLVM_bit_Writer.Binding is
-
-   function LLVMWriteBitcodeToFileHandle
-     (M      : in llvm.LLVMModuleRef;
-      Handle : in Interfaces.C.int)
-      return   Interfaces.C.int;
-
-   function LLVMWriteBitcodeToFile
-     (M    : in llvm.LLVMModuleRef;
-      Path : in Interfaces.C.Strings.chars_ptr)
-      return Interfaces.C.int;
-
-private
-
-   pragma Import
-     (C,
-      LLVMWriteBitcodeToFileHandle,
-      "Ada_LLVMWriteBitcodeToFileHandle");
-   pragma Import (C, LLVMWriteBitcodeToFile, "Ada_LLVMWriteBitcodeToFile");
-
-end LLVM_bit_Writer.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bit_writer.ads b/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bit_writer.ads
deleted file mode 100644
index 35b1f38..0000000
--- a/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bit_writer.ads
+++ /dev/null
@@ -1,6 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-package LLVM_bit_Writer is
-
-end LLVM_bit_Writer;
diff --git a/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx b/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx
deleted file mode 100644
index 4abf44f..0000000
--- a/libclamav/c++/llvm/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx
+++ /dev/null
@@ -1,335 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_bit_Writer (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_bit_Writer(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-#include "llvm-c/Analysis.h"
-#include "llvm-c/BitReader.h"
-#include "llvm-c/BitWriter.h"
-#include "llvm-c/Core.h"
-#include "llvm-c/ExecutionEngine.h"
-#include "llvm-c/LinkTimeOptimizer.h"
-#include "llvm-c/lto.h"
-#include "llvm-c/Target.h"
-
-
-
-//  struct LLVMCtxt;
-
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport int SWIGSTDCALL Ada_LLVMWriteBitcodeToFileHandle (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  int jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  int arg2 ;
-  int result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  
-  arg2 = (int) jarg2; 
-  
-  
-  result = (int)LLVMWriteBitcodeToFileHandle(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMWriteBitcodeToFile (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  int jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  int result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (int)LLVMWriteBitcodeToFile(arg1,(char const *)arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ada/executionengine/llvm_execution_engine-binding.ads b/libclamav/c++/llvm/bindings/ada/executionengine/llvm_execution_engine-binding.ads
deleted file mode 100644
index a37c462..0000000
--- a/libclamav/c++/llvm/bindings/ada/executionengine/llvm_execution_engine-binding.ads
+++ /dev/null
@@ -1,192 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with llvm;
-with Interfaces.C.Strings;
-
-
-package LLVM_execution_Engine.Binding is
-
-   procedure LLVMLinkInJIT;
-
-   procedure LLVMLinkInInterpreter;
-
-   function LLVMCreateGenericValueOfInt
-     (Ty       : in llvm.LLVMTypeRef;
-      N        : in Interfaces.C.Extensions.unsigned_long_long;
-      IsSigned : in Interfaces.C.int)
-      return     LLVM_execution_Engine.LLVMGenericValueRef;
-
-   function LLVMCreateGenericValueOfPointer
-     (P    : access Interfaces.C.Extensions.void)
-      return LLVM_execution_Engine.LLVMGenericValueRef;
-
-   function LLVMCreateGenericValueOfFloat
-     (Ty   : in llvm.LLVMTypeRef;
-      N    : in Interfaces.C.double)
-      return LLVM_execution_Engine.LLVMGenericValueRef;
-
-   function LLVMGenericValueIntWidth
-     (GenValRef : in LLVM_execution_Engine.LLVMGenericValueRef)
-      return      Interfaces.C.unsigned;
-
-   function LLVMGenericValueToInt
-     (GenVal   : in LLVM_execution_Engine.LLVMGenericValueRef;
-      IsSigned : in Interfaces.C.int)
-      return     Interfaces.C.Extensions.unsigned_long_long;
-
-   function LLVMGenericValueToPointer
-     (GenVal : in LLVM_execution_Engine.LLVMGenericValueRef)
-      return   access Interfaces.C.Extensions.void;
-
-   function LLVMGenericValueToFloat
-     (TyRef  : in llvm.LLVMTypeRef;
-      GenVal : in LLVM_execution_Engine.LLVMGenericValueRef)
-      return   Interfaces.C.double;
-
-   procedure LLVMDisposeGenericValue
-     (GenVal : in LLVM_execution_Engine.LLVMGenericValueRef);
-
-   function LLVMCreateExecutionEngine
-     (OutEE    : access LLVM_execution_Engine.LLVMExecutionEngineRef;
-      MP       : in llvm.LLVMModuleProviderRef;
-      OutError : access Interfaces.C.Strings.chars_ptr)
-      return     Interfaces.C.int;
-
-   function LLVMCreateInterpreter
-     (OutInterp : access LLVM_execution_Engine.LLVMExecutionEngineRef;
-      MP        : in llvm.LLVMModuleProviderRef;
-      OutError  : access Interfaces.C.Strings.chars_ptr)
-      return      Interfaces.C.int;
-
-   function LLVMCreateJITCompiler
-     (OutJIT   : access LLVM_execution_Engine.LLVMExecutionEngineRef;
-      MP       : in llvm.LLVMModuleProviderRef;
-      OptLevel : in Interfaces.C.unsigned;
-      OutError : access Interfaces.C.Strings.chars_ptr)
-      return     Interfaces.C.int;
-
-   procedure LLVMDisposeExecutionEngine
-     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef);
-
-   procedure LLVMRunStaticConstructors
-     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef);
-
-   procedure LLVMRunStaticDestructors
-     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef);
-
-   function LLVMRunFunctionAsMain
-     (EE   : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      F    : in llvm.LLVMValueRef;
-      ArgC : in Interfaces.C.unsigned;
-      ArgV : access Interfaces.C.Strings.chars_ptr;
-      EnvP : access Interfaces.C.Strings.chars_ptr)
-      return Interfaces.C.int;
-
-   function LLVMRunFunction
-     (EE      : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      F       : in llvm.LLVMValueRef;
-      NumArgs : in Interfaces.C.unsigned;
-      Args    : access LLVM_execution_Engine.LLVMGenericValueRef)
-      return    LLVM_execution_Engine.LLVMGenericValueRef;
-
-   procedure LLVMFreeMachineCodeForFunction
-     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      F  : in llvm.LLVMValueRef);
-
-   procedure LLVMAddModuleProvider
-     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      MP : in llvm.LLVMModuleProviderRef);
-
-   function LLVMRemoveModuleProvider
-     (EE       : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      MP       : in llvm.LLVMModuleProviderRef;
-      OutMod   : access llvm.LLVMModuleRef;
-      OutError : access Interfaces.C.Strings.chars_ptr)
-      return     Interfaces.C.int;
-
-   function LLVMFindFunction
-     (EE    : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      Name  : in Interfaces.C.Strings.chars_ptr;
-      OutFn : access llvm.LLVMValueRef)
-      return  Interfaces.C.int;
-
-   function LLVMGetExecutionEngineTargetData
-     (EE   : in LLVM_execution_Engine.LLVMExecutionEngineRef)
-      return LLVM_execution_Engine.LLVMTargetDataRef;
-
-   procedure LLVMAddGlobalMapping
-     (EE     : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      Global : in llvm.LLVMValueRef;
-      Addr   : access Interfaces.C.Extensions.void);
-
-   function LLVMGetPointerToGlobal
-     (EE     : in LLVM_execution_Engine.LLVMExecutionEngineRef;
-      Global : in llvm.LLVMValueRef)
-      return   access Interfaces.C.Extensions.void;
-
-private
-
-   pragma Import (C, LLVMLinkInJIT, "Ada_LLVMLinkInJIT");
-   pragma Import (C, LLVMLinkInInterpreter, "Ada_LLVMLinkInInterpreter");
-   pragma Import
-     (C,
-      LLVMCreateGenericValueOfInt,
-      "Ada_LLVMCreateGenericValueOfInt");
-   pragma Import
-     (C,
-      LLVMCreateGenericValueOfPointer,
-      "Ada_LLVMCreateGenericValueOfPointer");
-   pragma Import
-     (C,
-      LLVMCreateGenericValueOfFloat,
-      "Ada_LLVMCreateGenericValueOfFloat");
-   pragma Import
-     (C,
-      LLVMGenericValueIntWidth,
-      "Ada_LLVMGenericValueIntWidth");
-   pragma Import (C, LLVMGenericValueToInt, "Ada_LLVMGenericValueToInt");
-   pragma Import
-     (C,
-      LLVMGenericValueToPointer,
-      "Ada_LLVMGenericValueToPointer");
-   pragma Import (C, LLVMGenericValueToFloat, "Ada_LLVMGenericValueToFloat");
-   pragma Import (C, LLVMDisposeGenericValue, "Ada_LLVMDisposeGenericValue");
-   pragma Import
-     (C,
-      LLVMCreateExecutionEngine,
-      "Ada_LLVMCreateExecutionEngine");
-   pragma Import (C, LLVMCreateInterpreter, "Ada_LLVMCreateInterpreter");
-   pragma Import (C, LLVMCreateJITCompiler, "Ada_LLVMCreateJITCompiler");
-   pragma Import
-     (C,
-      LLVMDisposeExecutionEngine,
-      "Ada_LLVMDisposeExecutionEngine");
-   pragma Import
-     (C,
-      LLVMRunStaticConstructors,
-      "Ada_LLVMRunStaticConstructors");
-   pragma Import
-     (C,
-      LLVMRunStaticDestructors,
-      "Ada_LLVMRunStaticDestructors");
-   pragma Import (C, LLVMRunFunctionAsMain, "Ada_LLVMRunFunctionAsMain");
-   pragma Import (C, LLVMRunFunction, "Ada_LLVMRunFunction");
-   pragma Import
-     (C,
-      LLVMFreeMachineCodeForFunction,
-      "Ada_LLVMFreeMachineCodeForFunction");
-   pragma Import (C, LLVMAddModuleProvider, "Ada_LLVMAddModuleProvider");
-   pragma Import
-     (C,
-      LLVMRemoveModuleProvider,
-      "Ada_LLVMRemoveModuleProvider");
-   pragma Import (C, LLVMFindFunction, "Ada_LLVMFindFunction");
-   pragma Import
-     (C,
-      LLVMGetExecutionEngineTargetData,
-      "Ada_LLVMGetExecutionEngineTargetData");
-   pragma Import (C, LLVMAddGlobalMapping, "Ada_LLVMAddGlobalMapping");
-   pragma Import (C, LLVMGetPointerToGlobal, "Ada_LLVMGetPointerToGlobal");
-
-end LLVM_execution_Engine.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/executionengine/llvm_execution_engine.ads b/libclamav/c++/llvm/bindings/ada/executionengine/llvm_execution_engine.ads
deleted file mode 100644
index c766992..0000000
--- a/libclamav/c++/llvm/bindings/ada/executionengine/llvm_execution_engine.ads
+++ /dev/null
@@ -1,90 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with Interfaces.C.Extensions;
-
-
-package LLVM_execution_Engine is
-
-   -- LLVMOpaqueGenericValue
-   --
-   type LLVMOpaqueGenericValue is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueGenericValue_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_execution_Engine.LLVMOpaqueGenericValue;
-
-   type LLVMOpaqueGenericValue_view is access all
-     LLVM_execution_Engine.LLVMOpaqueGenericValue;
-
-   -- LLVMGenericValueRef
-   --
-   type LLVMGenericValueRef is access all
-     LLVM_execution_Engine.LLVMOpaqueGenericValue;
-
-   type LLVMGenericValueRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_execution_Engine.LLVMGenericValueRef;
-
-   type LLVMGenericValueRef_view is access all
-     LLVM_execution_Engine.LLVMGenericValueRef;
-
-   -- LLVMOpaqueExecutionEngine
-   --
-   type LLVMOpaqueExecutionEngine is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueExecutionEngine_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_execution_Engine.LLVMOpaqueExecutionEngine;
-
-   type LLVMOpaqueExecutionEngine_view is access all
-     LLVM_execution_Engine.LLVMOpaqueExecutionEngine;
-
-   -- LLVMExecutionEngineRef
-   --
-   type LLVMExecutionEngineRef is access all
-     LLVM_execution_Engine.LLVMOpaqueExecutionEngine;
-
-   type LLVMExecutionEngineRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_execution_Engine.LLVMExecutionEngineRef;
-
-   type LLVMExecutionEngineRef_view is access all
-     LLVM_execution_Engine.LLVMExecutionEngineRef;
-
-   -- LLVMTargetDataRef
-   --
-   type LLVMTargetDataRef is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMTargetDataRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_execution_Engine.LLVMTargetDataRef;
-
-   type LLVMTargetDataRef_view is access all
-     LLVM_execution_Engine.LLVMTargetDataRef;
-
-   -- GenericValue
-   --
-   type GenericValue is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type GenericValue_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_execution_Engine.GenericValue;
-
-   type GenericValue_view is access all LLVM_execution_Engine.GenericValue;
-
-   -- ExecutionEngine
-   --
-   type ExecutionEngine is new Interfaces.C.Extensions.incomplete_class_def;
-
-   type ExecutionEngine_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_execution_Engine.ExecutionEngine;
-
-   type ExecutionEngine_view is access all
-     LLVM_execution_Engine.ExecutionEngine;
-
-
-end LLVM_execution_Engine;
diff --git a/libclamav/c++/llvm/bindings/ada/executionengine/llvm_executionengine_wrap.cxx b/libclamav/c++/llvm/bindings/ada/executionengine/llvm_executionengine_wrap.cxx
deleted file mode 100644
index b63acac..0000000
--- a/libclamav/c++/llvm/bindings/ada/executionengine/llvm_executionengine_wrap.cxx
+++ /dev/null
@@ -1,924 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_execution_Engine (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_execution_Engine(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-#include "llvm-c/ExecutionEngine.h"
-
-
-
-//  struct LLVMCtxt;
-
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport void SWIGSTDCALL Ada_LLVMLinkInJIT (
-  )
-{
-  LLVMLinkInJIT();
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMLinkInInterpreter (
-  )
-{
-  LLVMLinkInInterpreter();
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateGenericValueOfInt (
-  void * jarg1
-  ,
-  
-  unsigned long long jarg2
-  ,
-  
-  int jarg3
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned long long arg2 ;
-  int arg3 ;
-  LLVMGenericValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  
-  arg2 = (unsigned long long) jarg2; 
-  
-  
-  
-  arg3 = (int) jarg3; 
-  
-  
-  result = (LLVMGenericValueRef)LLVMCreateGenericValueOfInt(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateGenericValueOfPointer (
-  void* jarg1
-  )
-{
-  void * jresult ;
-  void *arg1 = (void *) 0 ;
-  LLVMGenericValueRef result;
-  
-  arg1 = (void *)jarg1; 
-  
-  result = (LLVMGenericValueRef)LLVMCreateGenericValueOfPointer(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateGenericValueOfFloat (
-  void * jarg1
-  ,
-  
-  double jarg2
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  double arg2 ;
-  LLVMGenericValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  
-  arg2 = (double) jarg2; 
-  
-  
-  result = (LLVMGenericValueRef)LLVMCreateGenericValueOfFloat(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGenericValueIntWidth (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMGenericValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMGenericValueIntWidth(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned long long SWIGSTDCALL Ada_LLVMGenericValueToInt (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  unsigned long long jresult ;
-  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
-  int arg2 ;
-  unsigned long long result;
-  
-  arg1 = (LLVMGenericValueRef)jarg1; 
-  
-  
-  arg2 = (int) jarg2; 
-  
-  
-  result = (unsigned long long)LLVMGenericValueToInt(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void* SWIGSTDCALL Ada_LLVMGenericValueToPointer (
-  void * jarg1
-  )
-{
-  void* jresult ;
-  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
-  void *result = 0 ;
-  
-  arg1 = (LLVMGenericValueRef)jarg1; 
-  
-  result = (void *)LLVMGenericValueToPointer(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport double SWIGSTDCALL Ada_LLVMGenericValueToFloat (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  double jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMGenericValueRef arg2 = (LLVMGenericValueRef) 0 ;
-  double result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = (LLVMGenericValueRef)jarg2; 
-  
-  result = (double)LLVMGenericValueToFloat(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeGenericValue (
-  void * jarg1
-  )
-{
-  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
-  
-  arg1 = (LLVMGenericValueRef)jarg1; 
-  
-  LLVMDisposeGenericValue(arg1);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMCreateExecutionEngine (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  LLVMExecutionEngineRef *arg1 = (LLVMExecutionEngineRef *) 0 ;
-  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
-  char **arg3 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMExecutionEngineRef *)jarg1; 
-  
-  arg2 = (LLVMModuleProviderRef)jarg2; 
-  
-  arg3 = (char **)jarg3; 
-  
-  result = (int)LLVMCreateExecutionEngine(arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMCreateInterpreter (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  LLVMExecutionEngineRef *arg1 = (LLVMExecutionEngineRef *) 0 ;
-  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
-  char **arg3 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMExecutionEngineRef *)jarg1; 
-  
-  arg2 = (LLVMModuleProviderRef)jarg2; 
-  
-  arg3 = (char **)jarg3; 
-  
-  result = (int)LLVMCreateInterpreter(arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMCreateJITCompiler (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  ,
-  
-  void * jarg4
-  )
-{
-  int jresult ;
-  LLVMExecutionEngineRef *arg1 = (LLVMExecutionEngineRef *) 0 ;
-  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
-  unsigned int arg3 ;
-  char **arg4 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMExecutionEngineRef *)jarg1; 
-  
-  arg2 = (LLVMModuleProviderRef)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  arg4 = (char **)jarg4; 
-  
-  result = (int)LLVMCreateJITCompiler(arg1,arg2,arg3,arg4);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeExecutionEngine (
-  void * jarg1
-  )
-{
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  LLVMDisposeExecutionEngine(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMRunStaticConstructors (
-  void * jarg1
-  )
-{
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  LLVMRunStaticConstructors(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMRunStaticDestructors (
-  void * jarg1
-  )
-{
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  LLVMRunStaticDestructors(arg1);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMRunFunctionAsMain (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  ,
-  
-  void * jarg4
-  ,
-  
-  void * jarg5
-  )
-{
-  int jresult ;
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  unsigned int arg3 ;
-  char **arg4 = (char **) 0 ;
-  char **arg5 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  arg4 = (char **)jarg4; 
-  
-  arg5 = (char **)jarg5; 
-  
-  result = (int)LLVMRunFunctionAsMain(arg1,arg2,arg3,(char const *const *)arg4,(char const *const *)arg5);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMRunFunction (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  ,
-  
-  void * jarg4
-  )
-{
-  void * jresult ;
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  unsigned int arg3 ;
-  LLVMGenericValueRef *arg4 = (LLVMGenericValueRef *) 0 ;
-  LLVMGenericValueRef result;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  arg4 = (LLVMGenericValueRef *)jarg4; 
-  
-  result = (LLVMGenericValueRef)LLVMRunFunction(arg1,arg2,arg3,arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMFreeMachineCodeForFunction (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  LLVMFreeMachineCodeForFunction(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddModuleProvider (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = (LLVMModuleProviderRef)jarg2; 
-  
-  LLVMAddModuleProvider(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMRemoveModuleProvider (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  )
-{
-  int jresult ;
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
-  LLVMModuleRef *arg3 = (LLVMModuleRef *) 0 ;
-  char **arg4 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = (LLVMModuleProviderRef)jarg2; 
-  
-  arg3 = (LLVMModuleRef *)jarg3; 
-  
-  arg4 = (char **)jarg4; 
-  
-  result = (int)LLVMRemoveModuleProvider(arg1,arg2,arg3,arg4);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMFindFunction (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
-  int result;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  arg3 = (LLVMValueRef *)jarg3; 
-  
-  result = (int)LLVMFindFunction(arg1,(char const *)arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport LLVMTargetDataRef SWIGSTDCALL Ada_LLVMGetExecutionEngineTargetData (
-  void * jarg1
-  )
-{
-  LLVMTargetDataRef jresult ;
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMTargetDataRef result;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  result = LLVMGetExecutionEngineTargetData(arg1);
-  
-  jresult = result; 
-  //jresult = new LLVMTargetDataRef ((LLVMTargetDataRef &) result); 
-  
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddGlobalMapping (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void* jarg3
-  )
-{
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  void *arg3 = (void *) 0 ;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (void *)jarg3; 
-  
-  LLVMAddGlobalMapping(arg1,arg2,arg3);
-  
-  
-}
-
-
-
-DllExport void* SWIGSTDCALL Ada_LLVMGetPointerToGlobal (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void* jresult ;
-  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  void *result = 0 ;
-  
-  arg1 = (LLVMExecutionEngineRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (void *)LLVMGetPointerToGlobal(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ada/llvm.gpr b/libclamav/c++/llvm/bindings/ada/llvm.gpr
deleted file mode 100644
index 8e87af4..0000000
--- a/libclamav/c++/llvm/bindings/ada/llvm.gpr
+++ /dev/null
@@ -1,34 +0,0 @@
-project LLVM is
-
-   for Languages use ("Ada", "C++");
-   for Source_Dirs use (".", "analysis", "bitreader", "bitwriter", "executionengine", "llvm", "target", "transforms");
-   for Object_Dir use "build";
-   for Exec_Dir use ".";
-   for Library_Name use "llvm_ada";
-   for Library_Dir use "lib";
-   for Library_Ali_Dir use "objects";
-
-   package Naming is
-      for Specification_Suffix ("c++") use ".h";
-      for Implementation_Suffix ("c++") use ".cxx";
-   end Naming;
-
-   package Builder is
-      for Default_Switches ("ada") use ("-g");
-   end Builder;
-
-   package Compiler is
-      for Default_Switches ("ada") use ("-gnato", "-fstack-check", "-g", "-gnata", "-gnat05", "-I/usr/local/include");
-      for Default_Switches ("c++") use ("-D__STDC_LIMIT_MACROS", "-D__STDC_CONSTANT_MACROS", "-I../../include", "-g");
-   end Compiler;
-
-   package Binder is
-      for Default_Switches ("ada") use ("-E");
-   end Binder;
-
-   package Linker is
-      for Default_Switches ("c++") use ("-g");
-   end Linker;
-
-end LLVM;
-
diff --git a/libclamav/c++/llvm/bindings/ada/llvm/llvm-binding.ads b/libclamav/c++/llvm/bindings/ada/llvm/llvm-binding.ads
deleted file mode 100644
index c0e48a1..0000000
--- a/libclamav/c++/llvm/bindings/ada/llvm/llvm-binding.ads
+++ /dev/null
@@ -1,1974 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with Interfaces.C.Strings;
-
-
-package llvm.Binding is
-
-   procedure LLVMDisposeMessage
-     (Message : in Interfaces.C.Strings.chars_ptr);
-
-   function LLVMContextCreate return  llvm.LLVMContextRef;
-
-   function LLVMGetGlobalContext return  llvm.LLVMContextRef;
-
-   procedure LLVMContextDispose (C : in llvm.LLVMContextRef);
-
-   function LLVMModuleCreateWithName
-     (ModuleID : in Interfaces.C.Strings.chars_ptr)
-      return     llvm.LLVMModuleRef;
-
-   function LLVMModuleCreateWithNameInContext
-     (ModuleID : in Interfaces.C.Strings.chars_ptr;
-      C        : in llvm.LLVMContextRef)
-      return     llvm.LLVMModuleRef;
-
-   procedure LLVMDisposeModule (M : in llvm.LLVMModuleRef);
-
-   function LLVMGetDataLayout
-     (M    : in llvm.LLVMModuleRef)
-      return Interfaces.C.Strings.chars_ptr;
-
-   procedure LLVMSetDataLayout
-     (M      : in llvm.LLVMModuleRef;
-      Triple : in Interfaces.C.Strings.chars_ptr);
-
-   function LLVMGetTarget
-     (M    : in llvm.LLVMModuleRef)
-      return Interfaces.C.Strings.chars_ptr;
-
-   procedure LLVMSetTarget
-     (M      : in llvm.LLVMModuleRef;
-      Triple : in Interfaces.C.Strings.chars_ptr);
-
-   function LLVMAddTypeName
-     (M    : in llvm.LLVMModuleRef;
-      Name : in Interfaces.C.Strings.chars_ptr;
-      Ty   : in llvm.LLVMTypeRef)
-      return Interfaces.C.int;
-
-   procedure LLVMDeleteTypeName
-     (M    : in llvm.LLVMModuleRef;
-      Name : in Interfaces.C.Strings.chars_ptr);
-
-   function LLVMGetTypeByName
-     (M    : in llvm.LLVMModuleRef;
-      Name : in Interfaces.C.Strings.chars_ptr)
-      return llvm.LLVMTypeRef;
-
-   procedure LLVMDumpModule (M : in llvm.LLVMModuleRef);
-
-   function LLVMGetTypeKind
-     (Ty   : in llvm.LLVMTypeRef)
-      return llvm.LLVMTypeKind;
-
-   function LLVMInt1Type return  llvm.LLVMTypeRef;
-
-   function LLVMInt8Type return  llvm.LLVMTypeRef;
-
-   function LLVMInt16Type return  llvm.LLVMTypeRef;
-
-   function LLVMInt32Type return  llvm.LLVMTypeRef;
-
-   function LLVMInt64Type return  llvm.LLVMTypeRef;
-
-   function LLVMIntType
-     (NumBits : in Interfaces.C.unsigned)
-      return    llvm.LLVMTypeRef;
-
-   function LLVMGetIntTypeWidth
-     (IntegerTy : in llvm.LLVMTypeRef)
-      return      Interfaces.C.unsigned;
-
-   function LLVMFloatType return  llvm.LLVMTypeRef;
-
-   function LLVMDoubleType return  llvm.LLVMTypeRef;
-
-   function LLVMX86FP80Type return  llvm.LLVMTypeRef;
-
-   function LLVMFP128Type return  llvm.LLVMTypeRef;
-
-   function LLVMPPCFP128Type return  llvm.LLVMTypeRef;
-
-   function LLVMFunctionType
-     (ReturnType : in llvm.LLVMTypeRef;
-      ParamTypes : access llvm.LLVMTypeRef;
-      ParamCount : in Interfaces.C.unsigned;
-      IsVarArg   : in Interfaces.C.int)
-      return       llvm.LLVMTypeRef;
-
-   function LLVMIsFunctionVarArg
-     (FunctionTy : in llvm.LLVMTypeRef)
-      return       Interfaces.C.int;
-
-   function LLVMGetReturnType
-     (FunctionTy : in llvm.LLVMTypeRef)
-      return       llvm.LLVMTypeRef;
-
-   function LLVMCountParamTypes
-     (FunctionTy : in llvm.LLVMTypeRef)
-      return       Interfaces.C.unsigned;
-
-   procedure LLVMGetParamTypes
-     (FunctionTy : in llvm.LLVMTypeRef;
-      Dest       : access llvm.LLVMTypeRef);
-
-   function LLVMStructType
-     (ElementTypes : access llvm.LLVMTypeRef;
-      ElementCount : in Interfaces.C.unsigned;
-      Packed       : in Interfaces.C.int)
-      return         llvm.LLVMTypeRef;
-
-   function LLVMCountStructElementTypes
-     (StructTy : in llvm.LLVMTypeRef)
-      return     Interfaces.C.unsigned;
-
-   procedure LLVMGetStructElementTypes
-     (StructTy : in llvm.LLVMTypeRef;
-      Dest     : access llvm.LLVMTypeRef);
-
-   function LLVMIsPackedStruct
-     (StructTy : in llvm.LLVMTypeRef)
-      return     Interfaces.C.int;
-
-   function LLVMArrayType
-     (ElementType  : in llvm.LLVMTypeRef;
-      ElementCount : in Interfaces.C.unsigned)
-      return         llvm.LLVMTypeRef;
-
-   function LLVMPointerType
-     (ElementType  : in llvm.LLVMTypeRef;
-      AddressSpace : in Interfaces.C.unsigned)
-      return         llvm.LLVMTypeRef;
-
-   function LLVMVectorType
-     (ElementType  : in llvm.LLVMTypeRef;
-      ElementCount : in Interfaces.C.unsigned)
-      return         llvm.LLVMTypeRef;
-
-   function LLVMGetElementType
-     (Ty   : in llvm.LLVMTypeRef)
-      return llvm.LLVMTypeRef;
-
-   function LLVMGetArrayLength
-     (ArrayTy : in llvm.LLVMTypeRef)
-      return    Interfaces.C.unsigned;
-
-   function LLVMGetPointerAddressSpace
-     (PointerTy : in llvm.LLVMTypeRef)
-      return      Interfaces.C.unsigned;
-
-   function LLVMGetVectorSize
-     (VectorTy : in llvm.LLVMTypeRef)
-      return     Interfaces.C.unsigned;
-
-   function LLVMVoidType return  llvm.LLVMTypeRef;
-
-   function LLVMLabelType return  llvm.LLVMTypeRef;
-
-   function LLVMOpaqueType return  llvm.LLVMTypeRef;
-
-   function LLVMCreateTypeHandle
-     (PotentiallyAbstractTy : in llvm.LLVMTypeRef)
-      return                  llvm.LLVMTypeHandleRef;
-
-   procedure LLVMRefineType
-     (AbstractTy : in llvm.LLVMTypeRef;
-      ConcreteTy : in llvm.LLVMTypeRef);
-
-   function LLVMResolveTypeHandle
-     (TypeHandle : in llvm.LLVMTypeHandleRef)
-      return       llvm.LLVMTypeRef;
-
-   procedure LLVMDisposeTypeHandle (TypeHandle : in llvm.LLVMTypeHandleRef);
-
-   function LLVMTypeOf (Val : in llvm.LLVMValueRef) return llvm.LLVMTypeRef;
-
-   function LLVMGetValueName
-     (Val  : in llvm.LLVMValueRef)
-      return Interfaces.C.Strings.chars_ptr;
-
-   procedure LLVMSetValueName
-     (Val  : in llvm.LLVMValueRef;
-      Name : in Interfaces.C.Strings.chars_ptr);
-
-   procedure LLVMDumpValue (Val : in llvm.LLVMValueRef);
-
-   function LLVMIsAArgument
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsABasicBlock
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAInlineAsm
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAUser
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstant
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantAggregateZero
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantArray
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantExpr
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantFP
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantInt
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantPointerNull
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantStruct
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAConstantVector
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAGlobalValue
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAFunction
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAGlobalAlias
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAGlobalVariable
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAUndefValue
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAInstruction
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsABinaryOperator
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsACallInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAIntrinsicInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsADbgInfoIntrinsic
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsADbgDeclareInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsADbgFuncStartInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsADbgRegionEndInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsADbgRegionStartInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsADbgStopPointInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAEHSelectorInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAMemIntrinsic
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAMemCpyInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAMemMoveInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAMemSetInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsACmpInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAFCmpInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAICmpInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAExtractElementInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAGetElementPtrInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAInsertElementInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAInsertValueInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAPHINode
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsASelectInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAShuffleVectorInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAStoreInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsATerminatorInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsABranchInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAInvokeInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAReturnInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsASwitchInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAUnreachableInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAUnwindInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAUnaryInstruction
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAAllocationInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAAllocaInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAMallocInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsACastInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsABitCastInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAFPExtInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAFPToSIInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAFPToUIInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAFPTruncInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAIntToPtrInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAPtrToIntInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsASExtInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsASIToFPInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsATruncInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAUIToFPInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAZExtInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAExtractValueInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAFreeInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsALoadInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsAVAArgInst
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMConstNull
-     (Ty   : in llvm.LLVMTypeRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMConstAllOnes
-     (Ty   : in llvm.LLVMTypeRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetUndef
-     (Ty   : in llvm.LLVMTypeRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMIsConstant
-     (Val  : in llvm.LLVMValueRef)
-      return Interfaces.C.int;
-
-   function LLVMIsNull (Val : in llvm.LLVMValueRef) return Interfaces.C.int;
-
-   function LLVMIsUndef
-     (Val  : in llvm.LLVMValueRef)
-      return Interfaces.C.int;
-
-   function LLVMConstPointerNull
-     (Ty   : in llvm.LLVMTypeRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMConstInt
-     (IntTy      : in llvm.LLVMTypeRef;
-      N          : in Interfaces.C.Extensions.unsigned_long_long;
-      SignExtend : in Interfaces.C.int)
-      return       llvm.LLVMValueRef;
-
-   function LLVMConstReal
-     (RealTy : in llvm.LLVMTypeRef;
-      N      : in Interfaces.C.double)
-      return   llvm.LLVMValueRef;
-
-   function LLVMConstRealOfString
-     (RealTy : in llvm.LLVMTypeRef;
-      Text   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMConstString
-     (Str               : in Interfaces.C.Strings.chars_ptr;
-      Length            : in Interfaces.C.unsigned;
-      DontNullTerminate : in Interfaces.C.int)
-      return              llvm.LLVMValueRef;
-
-   function LLVMConstArray
-     (ElementTy    : in llvm.LLVMTypeRef;
-      ConstantVals : access llvm.LLVMValueRef;
-      Length       : in Interfaces.C.unsigned)
-      return         llvm.LLVMValueRef;
-
-   function LLVMConstStruct
-     (ConstantVals : access llvm.LLVMValueRef;
-      Count        : in Interfaces.C.unsigned;
-      packed       : in Interfaces.C.int)
-      return         llvm.LLVMValueRef;
-
-   function LLVMConstVector
-     (ScalarConstantVals : access llvm.LLVMValueRef;
-      Size               : in Interfaces.C.unsigned)
-      return               llvm.LLVMValueRef;
-
-   function LLVMSizeOf (Ty : in llvm.LLVMTypeRef) return llvm.LLVMValueRef;
-
-   function LLVMConstNeg
-     (ConstantVal : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstNot
-     (ConstantVal : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstAdd
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstSub
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstMul
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstUDiv
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstSDiv
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstFDiv
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstURem
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstSRem
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstFRem
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstAnd
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstOr
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstXor
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstICmp
-     (Predicate   : in llvm.LLVMIntPredicate;
-      LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstFCmp
-     (Predicate   : in llvm.LLVMRealPredicate;
-      LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstShl
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstLShr
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstAShr
-     (LHSConstant : in llvm.LLVMValueRef;
-      RHSConstant : in llvm.LLVMValueRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstGEP
-     (ConstantVal     : in llvm.LLVMValueRef;
-      ConstantIndices : access llvm.LLVMValueRef;
-      NumIndices      : in Interfaces.C.unsigned)
-      return            llvm.LLVMValueRef;
-
-   function LLVMConstTrunc
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstSExt
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstZExt
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstFPTrunc
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstFPExt
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstUIToFP
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstSIToFP
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstFPToUI
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstFPToSI
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstPtrToInt
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstIntToPtr
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstBitCast
-     (ConstantVal : in llvm.LLVMValueRef;
-      ToType      : in llvm.LLVMTypeRef)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstSelect
-     (ConstantCondition : in llvm.LLVMValueRef;
-      ConstantIfTrue    : in llvm.LLVMValueRef;
-      ConstantIfFalse   : in llvm.LLVMValueRef)
-      return              llvm.LLVMValueRef;
-
-   function LLVMConstExtractElement
-     (VectorConstant : in llvm.LLVMValueRef;
-      IndexConstant  : in llvm.LLVMValueRef)
-      return           llvm.LLVMValueRef;
-
-   function LLVMConstInsertElement
-     (VectorConstant       : in llvm.LLVMValueRef;
-      ElementValueConstant : in llvm.LLVMValueRef;
-      IndexConstant        : in llvm.LLVMValueRef)
-      return                 llvm.LLVMValueRef;
-
-   function LLVMConstShuffleVector
-     (VectorAConstant : in llvm.LLVMValueRef;
-      VectorBConstant : in llvm.LLVMValueRef;
-      MaskConstant    : in llvm.LLVMValueRef)
-      return            llvm.LLVMValueRef;
-
-   function LLVMConstExtractValue
-     (AggConstant : in llvm.LLVMValueRef;
-      IdxList     : access Interfaces.C.unsigned;
-      NumIdx      : in Interfaces.C.unsigned)
-      return        llvm.LLVMValueRef;
-
-   function LLVMConstInsertValue
-     (AggConstant          : in llvm.LLVMValueRef;
-      ElementValueConstant : in llvm.LLVMValueRef;
-      IdxList              : access Interfaces.C.unsigned;
-      NumIdx               : in Interfaces.C.unsigned)
-      return                 llvm.LLVMValueRef;
-
-   function LLVMConstInlineAsm
-     (Ty             : in llvm.LLVMTypeRef;
-      AsmString      : in Interfaces.C.Strings.chars_ptr;
-      Constraints    : in Interfaces.C.Strings.chars_ptr;
-      HasSideEffects : in Interfaces.C.int)
-      return           llvm.LLVMValueRef;
-
-   function LLVMGetGlobalParent
-     (Global : in llvm.LLVMValueRef)
-      return   llvm.LLVMModuleRef;
-
-   function LLVMIsDeclaration
-     (Global : in llvm.LLVMValueRef)
-      return   Interfaces.C.int;
-
-   function LLVMGetLinkage
-     (Global : in llvm.LLVMValueRef)
-      return   llvm.LLVMLinkage;
-
-   procedure LLVMSetLinkage
-     (Global  : in llvm.LLVMValueRef;
-      Linkage : in llvm.LLVMLinkage);
-
-   function LLVMGetSection
-     (Global : in llvm.LLVMValueRef)
-      return   Interfaces.C.Strings.chars_ptr;
-
-   procedure LLVMSetSection
-     (Global  : in llvm.LLVMValueRef;
-      Section : in Interfaces.C.Strings.chars_ptr);
-
-   function LLVMGetVisibility
-     (Global : in llvm.LLVMValueRef)
-      return   llvm.LLVMVisibility;
-
-   procedure LLVMSetVisibility
-     (Global : in llvm.LLVMValueRef;
-      Viz    : in llvm.LLVMVisibility);
-
-   function LLVMGetAlignment
-     (Global : in llvm.LLVMValueRef)
-      return   Interfaces.C.unsigned;
-
-   procedure LLVMSetAlignment
-     (Global : in llvm.LLVMValueRef;
-      Bytes  : in Interfaces.C.unsigned);
-
-   function LLVMAddGlobal
-     (M    : in llvm.LLVMModuleRef;
-      Ty   : in llvm.LLVMTypeRef;
-      Name : in Interfaces.C.Strings.chars_ptr)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetNamedGlobal
-     (M    : in llvm.LLVMModuleRef;
-      Name : in Interfaces.C.Strings.chars_ptr)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetFirstGlobal
-     (M    : in llvm.LLVMModuleRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetLastGlobal
-     (M    : in llvm.LLVMModuleRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetNextGlobal
-     (GlobalVar : in llvm.LLVMValueRef)
-      return      llvm.LLVMValueRef;
-
-   function LLVMGetPreviousGlobal
-     (GlobalVar : in llvm.LLVMValueRef)
-      return      llvm.LLVMValueRef;
-
-   procedure LLVMDeleteGlobal (GlobalVar : in llvm.LLVMValueRef);
-
-   function LLVMGetInitializer
-     (GlobalVar : in llvm.LLVMValueRef)
-      return      llvm.LLVMValueRef;
-
-   procedure LLVMSetInitializer
-     (GlobalVar   : in llvm.LLVMValueRef;
-      ConstantVal : in llvm.LLVMValueRef);
-
-   function LLVMIsThreadLocal
-     (GlobalVar : in llvm.LLVMValueRef)
-      return      Interfaces.C.int;
-
-   procedure LLVMSetThreadLocal
-     (GlobalVar     : in llvm.LLVMValueRef;
-      IsThreadLocal : in Interfaces.C.int);
-
-   function LLVMIsGlobalConstant
-     (GlobalVar : in llvm.LLVMValueRef)
-      return      Interfaces.C.int;
-
-   procedure LLVMSetGlobalConstant
-     (GlobalVar  : in llvm.LLVMValueRef;
-      IsConstant : in Interfaces.C.int);
-
-   function LLVMAddAlias
-     (M       : in llvm.LLVMModuleRef;
-      Ty      : in llvm.LLVMTypeRef;
-      Aliasee : in llvm.LLVMValueRef;
-      Name    : in Interfaces.C.Strings.chars_ptr)
-      return    llvm.LLVMValueRef;
-
-   function LLVMAddFunction
-     (M          : in llvm.LLVMModuleRef;
-      Name       : in Interfaces.C.Strings.chars_ptr;
-      FunctionTy : in llvm.LLVMTypeRef)
-      return       llvm.LLVMValueRef;
-
-   function LLVMGetNamedFunction
-     (M    : in llvm.LLVMModuleRef;
-      Name : in Interfaces.C.Strings.chars_ptr)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetFirstFunction
-     (M    : in llvm.LLVMModuleRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetLastFunction
-     (M    : in llvm.LLVMModuleRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetNextFunction
-     (Fn   : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetPreviousFunction
-     (Fn   : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   procedure LLVMDeleteFunction (Fn : in llvm.LLVMValueRef);
-
-   function LLVMGetIntrinsicID
-     (Fn   : in llvm.LLVMValueRef)
-      return Interfaces.C.unsigned;
-
-   function LLVMGetFunctionCallConv
-     (Fn   : in llvm.LLVMValueRef)
-      return Interfaces.C.unsigned;
-
-   procedure LLVMSetFunctionCallConv
-     (Fn : in llvm.LLVMValueRef;
-      CC : in Interfaces.C.unsigned);
-
-   function LLVMGetGC
-     (Fn   : in llvm.LLVMValueRef)
-      return Interfaces.C.Strings.chars_ptr;
-
-   procedure LLVMSetGC
-     (Fn   : in llvm.LLVMValueRef;
-      Name : in Interfaces.C.Strings.chars_ptr);
-
-   procedure LLVMAddFunctionAttr
-     (Fn : in llvm.LLVMValueRef;
-      PA : in llvm.LLVMAttribute);
-
-   procedure LLVMRemoveFunctionAttr
-     (Fn : in llvm.LLVMValueRef;
-      PA : in llvm.LLVMAttribute);
-
-   function LLVMCountParams
-     (Fn   : in llvm.LLVMValueRef)
-      return Interfaces.C.unsigned;
-
-   procedure LLVMGetParams
-     (Fn     : in llvm.LLVMValueRef;
-      Params : access llvm.LLVMValueRef);
-
-   function LLVMGetParam
-     (Fn    : in llvm.LLVMValueRef;
-      Index : in Interfaces.C.unsigned)
-      return  llvm.LLVMValueRef;
-
-   function LLVMGetParamParent
-     (Inst : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetFirstParam
-     (Fn   : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetLastParam
-     (Fn   : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetNextParam
-     (Arg  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetPreviousParam
-     (Arg  : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   procedure LLVMAddAttribute
-     (Arg : in llvm.LLVMValueRef;
-      PA  : in llvm.LLVMAttribute);
-
-   procedure LLVMRemoveAttribute
-     (Arg : in llvm.LLVMValueRef;
-      PA  : in llvm.LLVMAttribute);
-
-   procedure LLVMSetParamAlignment
-     (Arg   : in llvm.LLVMValueRef;
-      align : in Interfaces.C.unsigned);
-
-   function LLVMBasicBlockAsValue
-     (BB   : in llvm.LLVMBasicBlockRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMValueIsBasicBlock
-     (Val  : in llvm.LLVMValueRef)
-      return Interfaces.C.int;
-
-   function LLVMValueAsBasicBlock
-     (Val  : in llvm.LLVMValueRef)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMGetBasicBlockParent
-     (BB   : in llvm.LLVMBasicBlockRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMCountBasicBlocks
-     (Fn   : in llvm.LLVMValueRef)
-      return Interfaces.C.unsigned;
-
-   procedure LLVMGetBasicBlocks
-     (Fn          : in llvm.LLVMValueRef;
-      BasicBlocks : access llvm.LLVMBasicBlockRef);
-
-   function LLVMGetFirstBasicBlock
-     (Fn   : in llvm.LLVMValueRef)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMGetLastBasicBlock
-     (Fn   : in llvm.LLVMValueRef)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMGetNextBasicBlock
-     (BB   : in llvm.LLVMBasicBlockRef)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMGetPreviousBasicBlock
-     (BB   : in llvm.LLVMBasicBlockRef)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMGetEntryBasicBlock
-     (Fn   : in llvm.LLVMValueRef)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMAppendBasicBlock
-     (Fn   : in llvm.LLVMValueRef;
-      Name : in Interfaces.C.Strings.chars_ptr)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMInsertBasicBlock
-     (InsertBeforeBB : in llvm.LLVMBasicBlockRef;
-      Name           : in Interfaces.C.Strings.chars_ptr)
-      return           llvm.LLVMBasicBlockRef;
-
-   procedure LLVMDeleteBasicBlock (BB : in llvm.LLVMBasicBlockRef);
-
-   function LLVMGetInstructionParent
-     (Inst : in llvm.LLVMValueRef)
-      return llvm.LLVMBasicBlockRef;
-
-   function LLVMGetFirstInstruction
-     (BB   : in llvm.LLVMBasicBlockRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetLastInstruction
-     (BB   : in llvm.LLVMBasicBlockRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetNextInstruction
-     (Inst : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   function LLVMGetPreviousInstruction
-     (Inst : in llvm.LLVMValueRef)
-      return llvm.LLVMValueRef;
-
-   procedure LLVMSetInstructionCallConv
-     (Instr : in llvm.LLVMValueRef;
-      CC    : in Interfaces.C.unsigned);
-
-   function LLVMGetInstructionCallConv
-     (Instr : in llvm.LLVMValueRef)
-      return  Interfaces.C.unsigned;
-
-   procedure LLVMAddInstrAttribute
-     (Instr : in llvm.LLVMValueRef;
-      index : in Interfaces.C.unsigned;
-      arg_1 : in llvm.LLVMAttribute);
-
-   procedure LLVMRemoveInstrAttribute
-     (Instr : in llvm.LLVMValueRef;
-      index : in Interfaces.C.unsigned;
-      arg_1 : in llvm.LLVMAttribute);
-
-   procedure LLVMSetInstrParamAlignment
-     (Instr : in llvm.LLVMValueRef;
-      index : in Interfaces.C.unsigned;
-      align : in Interfaces.C.unsigned);
-
-   function LLVMIsTailCall
-     (CallInst : in llvm.LLVMValueRef)
-      return     Interfaces.C.int;
-
-   procedure LLVMSetTailCall
-     (CallInst   : in llvm.LLVMValueRef;
-      IsTailCall : in Interfaces.C.int);
-
-   procedure LLVMAddIncoming
-     (PhiNode        : in llvm.LLVMValueRef;
-      IncomingValues : access llvm.LLVMValueRef;
-      IncomingBlocks : access llvm.LLVMBasicBlockRef;
-      Count          : in Interfaces.C.unsigned);
-
-   function LLVMCountIncoming
-     (PhiNode : in llvm.LLVMValueRef)
-      return    Interfaces.C.unsigned;
-
-   function LLVMGetIncomingValue
-     (PhiNode : in llvm.LLVMValueRef;
-      Index   : in Interfaces.C.unsigned)
-      return    llvm.LLVMValueRef;
-
-   function LLVMGetIncomingBlock
-     (PhiNode : in llvm.LLVMValueRef;
-      Index   : in Interfaces.C.unsigned)
-      return    llvm.LLVMBasicBlockRef;
-
-   function LLVMCreateBuilder return  llvm.LLVMBuilderRef;
-
-   procedure LLVMPositionBuilder
-     (Builder : in llvm.LLVMBuilderRef;
-      Block   : in llvm.LLVMBasicBlockRef;
-      Instr   : in llvm.LLVMValueRef);
-
-   procedure LLVMPositionBuilderBefore
-     (Builder : in llvm.LLVMBuilderRef;
-      Instr   : in llvm.LLVMValueRef);
-
-   procedure LLVMPositionBuilderAtEnd
-     (Builder : in llvm.LLVMBuilderRef;
-      Block   : in llvm.LLVMBasicBlockRef);
-
-   function LLVMGetInsertBlock
-     (Builder : in llvm.LLVMBuilderRef)
-      return    llvm.LLVMBasicBlockRef;
-
-   procedure LLVMClearInsertionPosition (Builder : in llvm.LLVMBuilderRef);
-
-   procedure LLVMInsertIntoBuilder
-     (Builder : in llvm.LLVMBuilderRef;
-      Instr   : in llvm.LLVMValueRef);
-
-   procedure LLVMDisposeBuilder (Builder : in llvm.LLVMBuilderRef);
-
-   function LLVMBuildRetVoid
-     (arg_1 : in llvm.LLVMBuilderRef)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildRet
-     (arg_1 : in llvm.LLVMBuilderRef;
-      V     : in llvm.LLVMValueRef)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildBr
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Dest  : in llvm.LLVMBasicBlockRef)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildCondBr
-     (arg_1    : in llvm.LLVMBuilderRef;
-      the_If   : in llvm.LLVMValueRef;
-      the_Then : in llvm.LLVMBasicBlockRef;
-      the_Else : in llvm.LLVMBasicBlockRef)
-      return     llvm.LLVMValueRef;
-
-   function LLVMBuildSwitch
-     (arg_1    : in llvm.LLVMBuilderRef;
-      V        : in llvm.LLVMValueRef;
-      the_Else : in llvm.LLVMBasicBlockRef;
-      NumCases : in Interfaces.C.unsigned)
-      return     llvm.LLVMValueRef;
-
-   function LLVMBuildInvoke
-     (arg_1    : in llvm.LLVMBuilderRef;
-      Fn       : in llvm.LLVMValueRef;
-      Args     : access llvm.LLVMValueRef;
-      NumArgs  : in Interfaces.C.unsigned;
-      the_Then : in llvm.LLVMBasicBlockRef;
-      Catch    : in llvm.LLVMBasicBlockRef;
-      Name     : in Interfaces.C.Strings.chars_ptr)
-      return     llvm.LLVMValueRef;
-
-   function LLVMBuildUnwind
-     (arg_1 : in llvm.LLVMBuilderRef)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildUnreachable
-     (arg_1 : in llvm.LLVMBuilderRef)
-      return  llvm.LLVMValueRef;
-
-   procedure LLVMAddCase
-     (Switch : in llvm.LLVMValueRef;
-      OnVal  : in llvm.LLVMValueRef;
-      Dest   : in llvm.LLVMBasicBlockRef);
-
-   function LLVMBuildAdd
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildSub
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildMul
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildUDiv
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildSDiv
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildFDiv
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildURem
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildSRem
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildFRem
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildShl
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildLShr
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildAShr
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildAnd
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildOr
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildXor
-     (arg_1 : in llvm.LLVMBuilderRef;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildNeg
-     (arg_1 : in llvm.LLVMBuilderRef;
-      V     : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildNot
-     (arg_1 : in llvm.LLVMBuilderRef;
-      V     : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildMalloc
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Ty    : in llvm.LLVMTypeRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildArrayMalloc
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Ty    : in llvm.LLVMTypeRef;
-      Val   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildAlloca
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Ty    : in llvm.LLVMTypeRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildArrayAlloca
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Ty    : in llvm.LLVMTypeRef;
-      Val   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildFree
-     (arg_1      : in llvm.LLVMBuilderRef;
-      PointerVal : in llvm.LLVMValueRef)
-      return       llvm.LLVMValueRef;
-
-   function LLVMBuildLoad
-     (arg_1      : in llvm.LLVMBuilderRef;
-      PointerVal : in llvm.LLVMValueRef;
-      Name       : in Interfaces.C.Strings.chars_ptr)
-      return       llvm.LLVMValueRef;
-
-   function LLVMBuildStore
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Val   : in llvm.LLVMValueRef;
-      Ptr   : in llvm.LLVMValueRef)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildGEP
-     (B          : in llvm.LLVMBuilderRef;
-      Pointer    : in llvm.LLVMValueRef;
-      Indices    : access llvm.LLVMValueRef;
-      NumIndices : in Interfaces.C.unsigned;
-      Name       : in Interfaces.C.Strings.chars_ptr)
-      return       llvm.LLVMValueRef;
-
-   function LLVMBuildTrunc
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildZExt
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildSExt
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildFPToUI
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildFPToSI
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildUIToFP
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildSIToFP
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildFPTrunc
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildFPExt
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildPtrToInt
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildIntToPtr
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildBitCast
-     (arg_1  : in llvm.LLVMBuilderRef;
-      Val    : in llvm.LLVMValueRef;
-      DestTy : in llvm.LLVMTypeRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildICmp
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Op    : in llvm.LLVMIntPredicate;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildFCmp
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Op    : in llvm.LLVMRealPredicate;
-      LHS   : in llvm.LLVMValueRef;
-      RHS   : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildPhi
-     (arg_1 : in llvm.LLVMBuilderRef;
-      Ty    : in llvm.LLVMTypeRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildCall
-     (arg_1   : in llvm.LLVMBuilderRef;
-      Fn      : in llvm.LLVMValueRef;
-      Args    : access llvm.LLVMValueRef;
-      NumArgs : in Interfaces.C.unsigned;
-      Name    : in Interfaces.C.Strings.chars_ptr)
-      return    llvm.LLVMValueRef;
-
-   function LLVMBuildSelect
-     (arg_1    : in llvm.LLVMBuilderRef;
-      the_If   : in llvm.LLVMValueRef;
-      the_Then : in llvm.LLVMValueRef;
-      the_Else : in llvm.LLVMValueRef;
-      Name     : in Interfaces.C.Strings.chars_ptr)
-      return     llvm.LLVMValueRef;
-
-   function LLVMBuildVAArg
-     (arg_1 : in llvm.LLVMBuilderRef;
-      List  : in llvm.LLVMValueRef;
-      Ty    : in llvm.LLVMTypeRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildExtractElement
-     (arg_1  : in llvm.LLVMBuilderRef;
-      VecVal : in llvm.LLVMValueRef;
-      Index  : in llvm.LLVMValueRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildInsertElement
-     (arg_1  : in llvm.LLVMBuilderRef;
-      VecVal : in llvm.LLVMValueRef;
-      EltVal : in llvm.LLVMValueRef;
-      Index  : in llvm.LLVMValueRef;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildShuffleVector
-     (arg_1 : in llvm.LLVMBuilderRef;
-      V1    : in llvm.LLVMValueRef;
-      V2    : in llvm.LLVMValueRef;
-      Mask  : in llvm.LLVMValueRef;
-      Name  : in Interfaces.C.Strings.chars_ptr)
-      return  llvm.LLVMValueRef;
-
-   function LLVMBuildExtractValue
-     (arg_1  : in llvm.LLVMBuilderRef;
-      AggVal : in llvm.LLVMValueRef;
-      Index  : in Interfaces.C.unsigned;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMBuildInsertValue
-     (arg_1  : in llvm.LLVMBuilderRef;
-      AggVal : in llvm.LLVMValueRef;
-      EltVal : in llvm.LLVMValueRef;
-      Index  : in Interfaces.C.unsigned;
-      Name   : in Interfaces.C.Strings.chars_ptr)
-      return   llvm.LLVMValueRef;
-
-   function LLVMCreateModuleProviderForExistingModule
-     (M    : in llvm.LLVMModuleRef)
-      return llvm.LLVMModuleProviderRef;
-
-   procedure LLVMDisposeModuleProvider (MP : in llvm.LLVMModuleProviderRef);
-
-   function LLVMCreateMemoryBufferWithContentsOfFile
-     (Path       : in Interfaces.C.Strings.chars_ptr;
-      OutMemBuf  : access llvm.LLVMMemoryBufferRef;
-      OutMessage : access Interfaces.C.Strings.chars_ptr)
-      return       Interfaces.C.int;
-
-   function LLVMCreateMemoryBufferWithSTDIN
-     (OutMemBuf  : access llvm.LLVMMemoryBufferRef;
-      OutMessage : access Interfaces.C.Strings.chars_ptr)
-      return       Interfaces.C.int;
-
-   procedure LLVMDisposeMemoryBuffer (MemBuf : in llvm.LLVMMemoryBufferRef);
-
-   function LLVMCreatePassManager return  llvm.LLVMPassManagerRef;
-
-   function LLVMCreateFunctionPassManager
-     (MP   : in llvm.LLVMModuleProviderRef)
-      return llvm.LLVMPassManagerRef;
-
-   function LLVMRunPassManager
-     (PM   : in llvm.LLVMPassManagerRef;
-      M    : in llvm.LLVMModuleRef)
-      return Interfaces.C.int;
-
-   function LLVMInitializeFunctionPassManager
-     (FPM  : in llvm.LLVMPassManagerRef)
-      return Interfaces.C.int;
-
-   function LLVMRunFunctionPassManager
-     (FPM  : in llvm.LLVMPassManagerRef;
-      F    : in llvm.LLVMValueRef)
-      return Interfaces.C.int;
-
-   function LLVMFinalizeFunctionPassManager
-     (FPM  : in llvm.LLVMPassManagerRef)
-      return Interfaces.C.int;
-
-   procedure LLVMDisposePassManager (PM : in llvm.LLVMPassManagerRef);
-
-private
-
-   pragma Import (C, LLVMDisposeMessage, "Ada_LLVMDisposeMessage");
-   pragma Import (C, LLVMContextCreate, "Ada_LLVMContextCreate");
-   pragma Import (C, LLVMGetGlobalContext, "Ada_LLVMGetGlobalContext");
-   pragma Import (C, LLVMContextDispose, "Ada_LLVMContextDispose");
-   pragma Import
-     (C,
-      LLVMModuleCreateWithName,
-      "Ada_LLVMModuleCreateWithName");
-   pragma Import
-     (C,
-      LLVMModuleCreateWithNameInContext,
-      "Ada_LLVMModuleCreateWithNameInContext");
-   pragma Import (C, LLVMDisposeModule, "Ada_LLVMDisposeModule");
-   pragma Import (C, LLVMGetDataLayout, "Ada_LLVMGetDataLayout");
-   pragma Import (C, LLVMSetDataLayout, "Ada_LLVMSetDataLayout");
-   pragma Import (C, LLVMGetTarget, "Ada_LLVMGetTarget");
-   pragma Import (C, LLVMSetTarget, "Ada_LLVMSetTarget");
-   pragma Import (C, LLVMAddTypeName, "Ada_LLVMAddTypeName");
-   pragma Import (C, LLVMDeleteTypeName, "Ada_LLVMDeleteTypeName");
-   pragma Import (C, LLVMGetTypeByName, "Ada_LLVMGetTypeByName");
-   pragma Import (C, LLVMDumpModule, "Ada_LLVMDumpModule");
-   pragma Import (C, LLVMGetTypeKind, "Ada_LLVMGetTypeKind");
-   pragma Import (C, LLVMInt1Type, "Ada_LLVMInt1Type");
-   pragma Import (C, LLVMInt8Type, "Ada_LLVMInt8Type");
-   pragma Import (C, LLVMInt16Type, "Ada_LLVMInt16Type");
-   pragma Import (C, LLVMInt32Type, "Ada_LLVMInt32Type");
-   pragma Import (C, LLVMInt64Type, "Ada_LLVMInt64Type");
-   pragma Import (C, LLVMIntType, "Ada_LLVMIntType");
-   pragma Import (C, LLVMGetIntTypeWidth, "Ada_LLVMGetIntTypeWidth");
-   pragma Import (C, LLVMFloatType, "Ada_LLVMFloatType");
-   pragma Import (C, LLVMDoubleType, "Ada_LLVMDoubleType");
-   pragma Import (C, LLVMX86FP80Type, "Ada_LLVMX86FP80Type");
-   pragma Import (C, LLVMFP128Type, "Ada_LLVMFP128Type");
-   pragma Import (C, LLVMPPCFP128Type, "Ada_LLVMPPCFP128Type");
-   pragma Import (C, LLVMFunctionType, "Ada_LLVMFunctionType");
-   pragma Import (C, LLVMIsFunctionVarArg, "Ada_LLVMIsFunctionVarArg");
-   pragma Import (C, LLVMGetReturnType, "Ada_LLVMGetReturnType");
-   pragma Import (C, LLVMCountParamTypes, "Ada_LLVMCountParamTypes");
-   pragma Import (C, LLVMGetParamTypes, "Ada_LLVMGetParamTypes");
-   pragma Import (C, LLVMStructType, "Ada_LLVMStructType");
-   pragma Import
-     (C,
-      LLVMCountStructElementTypes,
-      "Ada_LLVMCountStructElementTypes");
-   pragma Import
-     (C,
-      LLVMGetStructElementTypes,
-      "Ada_LLVMGetStructElementTypes");
-   pragma Import (C, LLVMIsPackedStruct, "Ada_LLVMIsPackedStruct");
-   pragma Import (C, LLVMArrayType, "Ada_LLVMArrayType");
-   pragma Import (C, LLVMPointerType, "Ada_LLVMPointerType");
-   pragma Import (C, LLVMVectorType, "Ada_LLVMVectorType");
-   pragma Import (C, LLVMGetElementType, "Ada_LLVMGetElementType");
-   pragma Import (C, LLVMGetArrayLength, "Ada_LLVMGetArrayLength");
-   pragma Import
-     (C,
-      LLVMGetPointerAddressSpace,
-      "Ada_LLVMGetPointerAddressSpace");
-   pragma Import (C, LLVMGetVectorSize, "Ada_LLVMGetVectorSize");
-   pragma Import (C, LLVMVoidType, "Ada_LLVMVoidType");
-   pragma Import (C, LLVMLabelType, "Ada_LLVMLabelType");
-   pragma Import (C, LLVMOpaqueType, "Ada_LLVMOpaqueType");
-   pragma Import (C, LLVMCreateTypeHandle, "Ada_LLVMCreateTypeHandle");
-   pragma Import (C, LLVMRefineType, "Ada_LLVMRefineType");
-   pragma Import (C, LLVMResolveTypeHandle, "Ada_LLVMResolveTypeHandle");
-   pragma Import (C, LLVMDisposeTypeHandle, "Ada_LLVMDisposeTypeHandle");
-   pragma Import (C, LLVMTypeOf, "Ada_LLVMTypeOf");
-   pragma Import (C, LLVMGetValueName, "Ada_LLVMGetValueName");
-   pragma Import (C, LLVMSetValueName, "Ada_LLVMSetValueName");
-   pragma Import (C, LLVMDumpValue, "Ada_LLVMDumpValue");
-   pragma Import (C, LLVMIsAArgument, "Ada_LLVMIsAArgument");
-   pragma Import (C, LLVMIsABasicBlock, "Ada_LLVMIsABasicBlock");
-   pragma Import (C, LLVMIsAInlineAsm, "Ada_LLVMIsAInlineAsm");
-   pragma Import (C, LLVMIsAUser, "Ada_LLVMIsAUser");
-   pragma Import (C, LLVMIsAConstant, "Ada_LLVMIsAConstant");
-   pragma Import
-     (C,
-      LLVMIsAConstantAggregateZero,
-      "Ada_LLVMIsAConstantAggregateZero");
-   pragma Import (C, LLVMIsAConstantArray, "Ada_LLVMIsAConstantArray");
-   pragma Import (C, LLVMIsAConstantExpr, "Ada_LLVMIsAConstantExpr");
-   pragma Import (C, LLVMIsAConstantFP, "Ada_LLVMIsAConstantFP");
-   pragma Import (C, LLVMIsAConstantInt, "Ada_LLVMIsAConstantInt");
-   pragma Import
-     (C,
-      LLVMIsAConstantPointerNull,
-      "Ada_LLVMIsAConstantPointerNull");
-   pragma Import (C, LLVMIsAConstantStruct, "Ada_LLVMIsAConstantStruct");
-   pragma Import (C, LLVMIsAConstantVector, "Ada_LLVMIsAConstantVector");
-   pragma Import (C, LLVMIsAGlobalValue, "Ada_LLVMIsAGlobalValue");
-   pragma Import (C, LLVMIsAFunction, "Ada_LLVMIsAFunction");
-   pragma Import (C, LLVMIsAGlobalAlias, "Ada_LLVMIsAGlobalAlias");
-   pragma Import (C, LLVMIsAGlobalVariable, "Ada_LLVMIsAGlobalVariable");
-   pragma Import (C, LLVMIsAUndefValue, "Ada_LLVMIsAUndefValue");
-   pragma Import (C, LLVMIsAInstruction, "Ada_LLVMIsAInstruction");
-   pragma Import (C, LLVMIsABinaryOperator, "Ada_LLVMIsABinaryOperator");
-   pragma Import (C, LLVMIsACallInst, "Ada_LLVMIsACallInst");
-   pragma Import (C, LLVMIsAIntrinsicInst, "Ada_LLVMIsAIntrinsicInst");
-   pragma Import (C, LLVMIsADbgInfoIntrinsic, "Ada_LLVMIsADbgInfoIntrinsic");
-   pragma Import (C, LLVMIsADbgDeclareInst, "Ada_LLVMIsADbgDeclareInst");
-   pragma Import (C, LLVMIsADbgFuncStartInst, "Ada_LLVMIsADbgFuncStartInst");
-   pragma Import (C, LLVMIsADbgRegionEndInst, "Ada_LLVMIsADbgRegionEndInst");
-   pragma Import
-     (C,
-      LLVMIsADbgRegionStartInst,
-      "Ada_LLVMIsADbgRegionStartInst");
-   pragma Import (C, LLVMIsADbgStopPointInst, "Ada_LLVMIsADbgStopPointInst");
-   pragma Import (C, LLVMIsAEHSelectorInst, "Ada_LLVMIsAEHSelectorInst");
-   pragma Import (C, LLVMIsAMemIntrinsic, "Ada_LLVMIsAMemIntrinsic");
-   pragma Import (C, LLVMIsAMemCpyInst, "Ada_LLVMIsAMemCpyInst");
-   pragma Import (C, LLVMIsAMemMoveInst, "Ada_LLVMIsAMemMoveInst");
-   pragma Import (C, LLVMIsAMemSetInst, "Ada_LLVMIsAMemSetInst");
-   pragma Import (C, LLVMIsACmpInst, "Ada_LLVMIsACmpInst");
-   pragma Import (C, LLVMIsAFCmpInst, "Ada_LLVMIsAFCmpInst");
-   pragma Import (C, LLVMIsAICmpInst, "Ada_LLVMIsAICmpInst");
-   pragma Import
-     (C,
-      LLVMIsAExtractElementInst,
-      "Ada_LLVMIsAExtractElementInst");
-   pragma Import
-     (C,
-      LLVMIsAGetElementPtrInst,
-      "Ada_LLVMIsAGetElementPtrInst");
-   pragma Import
-     (C,
-      LLVMIsAInsertElementInst,
-      "Ada_LLVMIsAInsertElementInst");
-   pragma Import (C, LLVMIsAInsertValueInst, "Ada_LLVMIsAInsertValueInst");
-   pragma Import (C, LLVMIsAPHINode, "Ada_LLVMIsAPHINode");
-   pragma Import (C, LLVMIsASelectInst, "Ada_LLVMIsASelectInst");
-   pragma Import
-     (C,
-      LLVMIsAShuffleVectorInst,
-      "Ada_LLVMIsAShuffleVectorInst");
-   pragma Import (C, LLVMIsAStoreInst, "Ada_LLVMIsAStoreInst");
-   pragma Import (C, LLVMIsATerminatorInst, "Ada_LLVMIsATerminatorInst");
-   pragma Import (C, LLVMIsABranchInst, "Ada_LLVMIsABranchInst");
-   pragma Import (C, LLVMIsAInvokeInst, "Ada_LLVMIsAInvokeInst");
-   pragma Import (C, LLVMIsAReturnInst, "Ada_LLVMIsAReturnInst");
-   pragma Import (C, LLVMIsASwitchInst, "Ada_LLVMIsASwitchInst");
-   pragma Import (C, LLVMIsAUnreachableInst, "Ada_LLVMIsAUnreachableInst");
-   pragma Import (C, LLVMIsAUnwindInst, "Ada_LLVMIsAUnwindInst");
-   pragma Import (C, LLVMIsAUnaryInstruction, "Ada_LLVMIsAUnaryInstruction");
-   pragma Import (C, LLVMIsAAllocationInst, "Ada_LLVMIsAAllocationInst");
-   pragma Import (C, LLVMIsAAllocaInst, "Ada_LLVMIsAAllocaInst");
-   pragma Import (C, LLVMIsAMallocInst, "Ada_LLVMIsAMallocInst");
-   pragma Import (C, LLVMIsACastInst, "Ada_LLVMIsACastInst");
-   pragma Import (C, LLVMIsABitCastInst, "Ada_LLVMIsABitCastInst");
-   pragma Import (C, LLVMIsAFPExtInst, "Ada_LLVMIsAFPExtInst");
-   pragma Import (C, LLVMIsAFPToSIInst, "Ada_LLVMIsAFPToSIInst");
-   pragma Import (C, LLVMIsAFPToUIInst, "Ada_LLVMIsAFPToUIInst");
-   pragma Import (C, LLVMIsAFPTruncInst, "Ada_LLVMIsAFPTruncInst");
-   pragma Import (C, LLVMIsAIntToPtrInst, "Ada_LLVMIsAIntToPtrInst");
-   pragma Import (C, LLVMIsAPtrToIntInst, "Ada_LLVMIsAPtrToIntInst");
-   pragma Import (C, LLVMIsASExtInst, "Ada_LLVMIsASExtInst");
-   pragma Import (C, LLVMIsASIToFPInst, "Ada_LLVMIsASIToFPInst");
-   pragma Import (C, LLVMIsATruncInst, "Ada_LLVMIsATruncInst");
-   pragma Import (C, LLVMIsAUIToFPInst, "Ada_LLVMIsAUIToFPInst");
-   pragma Import (C, LLVMIsAZExtInst, "Ada_LLVMIsAZExtInst");
-   pragma Import (C, LLVMIsAExtractValueInst, "Ada_LLVMIsAExtractValueInst");
-   pragma Import (C, LLVMIsAFreeInst, "Ada_LLVMIsAFreeInst");
-   pragma Import (C, LLVMIsALoadInst, "Ada_LLVMIsALoadInst");
-   pragma Import (C, LLVMIsAVAArgInst, "Ada_LLVMIsAVAArgInst");
-   pragma Import (C, LLVMConstNull, "Ada_LLVMConstNull");
-   pragma Import (C, LLVMConstAllOnes, "Ada_LLVMConstAllOnes");
-   pragma Import (C, LLVMGetUndef, "Ada_LLVMGetUndef");
-   pragma Import (C, LLVMIsConstant, "Ada_LLVMIsConstant");
-   pragma Import (C, LLVMIsNull, "Ada_LLVMIsNull");
-   pragma Import (C, LLVMIsUndef, "Ada_LLVMIsUndef");
-   pragma Import (C, LLVMConstPointerNull, "Ada_LLVMConstPointerNull");
-   pragma Import (C, LLVMConstInt, "Ada_LLVMConstInt");
-   pragma Import (C, LLVMConstReal, "Ada_LLVMConstReal");
-   pragma Import (C, LLVMConstRealOfString, "Ada_LLVMConstRealOfString");
-   pragma Import (C, LLVMConstString, "Ada_LLVMConstString");
-   pragma Import (C, LLVMConstArray, "Ada_LLVMConstArray");
-   pragma Import (C, LLVMConstStruct, "Ada_LLVMConstStruct");
-   pragma Import (C, LLVMConstVector, "Ada_LLVMConstVector");
-   pragma Import (C, LLVMSizeOf, "Ada_LLVMSizeOf");
-   pragma Import (C, LLVMConstNeg, "Ada_LLVMConstNeg");
-   pragma Import (C, LLVMConstNot, "Ada_LLVMConstNot");
-   pragma Import (C, LLVMConstAdd, "Ada_LLVMConstAdd");
-   pragma Import (C, LLVMConstSub, "Ada_LLVMConstSub");
-   pragma Import (C, LLVMConstMul, "Ada_LLVMConstMul");
-   pragma Import (C, LLVMConstUDiv, "Ada_LLVMConstUDiv");
-   pragma Import (C, LLVMConstSDiv, "Ada_LLVMConstSDiv");
-   pragma Import (C, LLVMConstFDiv, "Ada_LLVMConstFDiv");
-   pragma Import (C, LLVMConstURem, "Ada_LLVMConstURem");
-   pragma Import (C, LLVMConstSRem, "Ada_LLVMConstSRem");
-   pragma Import (C, LLVMConstFRem, "Ada_LLVMConstFRem");
-   pragma Import (C, LLVMConstAnd, "Ada_LLVMConstAnd");
-   pragma Import (C, LLVMConstOr, "Ada_LLVMConstOr");
-   pragma Import (C, LLVMConstXor, "Ada_LLVMConstXor");
-   pragma Import (C, LLVMConstICmp, "Ada_LLVMConstICmp");
-   pragma Import (C, LLVMConstFCmp, "Ada_LLVMConstFCmp");
-   pragma Import (C, LLVMConstShl, "Ada_LLVMConstShl");
-   pragma Import (C, LLVMConstLShr, "Ada_LLVMConstLShr");
-   pragma Import (C, LLVMConstAShr, "Ada_LLVMConstAShr");
-   pragma Import (C, LLVMConstGEP, "Ada_LLVMConstGEP");
-   pragma Import (C, LLVMConstTrunc, "Ada_LLVMConstTrunc");
-   pragma Import (C, LLVMConstSExt, "Ada_LLVMConstSExt");
-   pragma Import (C, LLVMConstZExt, "Ada_LLVMConstZExt");
-   pragma Import (C, LLVMConstFPTrunc, "Ada_LLVMConstFPTrunc");
-   pragma Import (C, LLVMConstFPExt, "Ada_LLVMConstFPExt");
-   pragma Import (C, LLVMConstUIToFP, "Ada_LLVMConstUIToFP");
-   pragma Import (C, LLVMConstSIToFP, "Ada_LLVMConstSIToFP");
-   pragma Import (C, LLVMConstFPToUI, "Ada_LLVMConstFPToUI");
-   pragma Import (C, LLVMConstFPToSI, "Ada_LLVMConstFPToSI");
-   pragma Import (C, LLVMConstPtrToInt, "Ada_LLVMConstPtrToInt");
-   pragma Import (C, LLVMConstIntToPtr, "Ada_LLVMConstIntToPtr");
-   pragma Import (C, LLVMConstBitCast, "Ada_LLVMConstBitCast");
-   pragma Import (C, LLVMConstSelect, "Ada_LLVMConstSelect");
-   pragma Import (C, LLVMConstExtractElement, "Ada_LLVMConstExtractElement");
-   pragma Import (C, LLVMConstInsertElement, "Ada_LLVMConstInsertElement");
-   pragma Import (C, LLVMConstShuffleVector, "Ada_LLVMConstShuffleVector");
-   pragma Import (C, LLVMConstExtractValue, "Ada_LLVMConstExtractValue");
-   pragma Import (C, LLVMConstInsertValue, "Ada_LLVMConstInsertValue");
-   pragma Import (C, LLVMConstInlineAsm, "Ada_LLVMConstInlineAsm");
-   pragma Import (C, LLVMGetGlobalParent, "Ada_LLVMGetGlobalParent");
-   pragma Import (C, LLVMIsDeclaration, "Ada_LLVMIsDeclaration");
-   pragma Import (C, LLVMGetLinkage, "Ada_LLVMGetLinkage");
-   pragma Import (C, LLVMSetLinkage, "Ada_LLVMSetLinkage");
-   pragma Import (C, LLVMGetSection, "Ada_LLVMGetSection");
-   pragma Import (C, LLVMSetSection, "Ada_LLVMSetSection");
-   pragma Import (C, LLVMGetVisibility, "Ada_LLVMGetVisibility");
-   pragma Import (C, LLVMSetVisibility, "Ada_LLVMSetVisibility");
-   pragma Import (C, LLVMGetAlignment, "Ada_LLVMGetAlignment");
-   pragma Import (C, LLVMSetAlignment, "Ada_LLVMSetAlignment");
-   pragma Import (C, LLVMAddGlobal, "Ada_LLVMAddGlobal");
-   pragma Import (C, LLVMGetNamedGlobal, "Ada_LLVMGetNamedGlobal");
-   pragma Import (C, LLVMGetFirstGlobal, "Ada_LLVMGetFirstGlobal");
-   pragma Import (C, LLVMGetLastGlobal, "Ada_LLVMGetLastGlobal");
-   pragma Import (C, LLVMGetNextGlobal, "Ada_LLVMGetNextGlobal");
-   pragma Import (C, LLVMGetPreviousGlobal, "Ada_LLVMGetPreviousGlobal");
-   pragma Import (C, LLVMDeleteGlobal, "Ada_LLVMDeleteGlobal");
-   pragma Import (C, LLVMGetInitializer, "Ada_LLVMGetInitializer");
-   pragma Import (C, LLVMSetInitializer, "Ada_LLVMSetInitializer");
-   pragma Import (C, LLVMIsThreadLocal, "Ada_LLVMIsThreadLocal");
-   pragma Import (C, LLVMSetThreadLocal, "Ada_LLVMSetThreadLocal");
-   pragma Import (C, LLVMIsGlobalConstant, "Ada_LLVMIsGlobalConstant");
-   pragma Import (C, LLVMSetGlobalConstant, "Ada_LLVMSetGlobalConstant");
-   pragma Import (C, LLVMAddAlias, "Ada_LLVMAddAlias");
-   pragma Import (C, LLVMAddFunction, "Ada_LLVMAddFunction");
-   pragma Import (C, LLVMGetNamedFunction, "Ada_LLVMGetNamedFunction");
-   pragma Import (C, LLVMGetFirstFunction, "Ada_LLVMGetFirstFunction");
-   pragma Import (C, LLVMGetLastFunction, "Ada_LLVMGetLastFunction");
-   pragma Import (C, LLVMGetNextFunction, "Ada_LLVMGetNextFunction");
-   pragma Import (C, LLVMGetPreviousFunction, "Ada_LLVMGetPreviousFunction");
-   pragma Import (C, LLVMDeleteFunction, "Ada_LLVMDeleteFunction");
-   pragma Import (C, LLVMGetIntrinsicID, "Ada_LLVMGetIntrinsicID");
-   pragma Import (C, LLVMGetFunctionCallConv, "Ada_LLVMGetFunctionCallConv");
-   pragma Import (C, LLVMSetFunctionCallConv, "Ada_LLVMSetFunctionCallConv");
-   pragma Import (C, LLVMGetGC, "Ada_LLVMGetGC");
-   pragma Import (C, LLVMSetGC, "Ada_LLVMSetGC");
-   pragma Import (C, LLVMAddFunctionAttr, "Ada_LLVMAddFunctionAttr");
-   pragma Import (C, LLVMRemoveFunctionAttr, "Ada_LLVMRemoveFunctionAttr");
-   pragma Import (C, LLVMCountParams, "Ada_LLVMCountParams");
-   pragma Import (C, LLVMGetParams, "Ada_LLVMGetParams");
-   pragma Import (C, LLVMGetParam, "Ada_LLVMGetParam");
-   pragma Import (C, LLVMGetParamParent, "Ada_LLVMGetParamParent");
-   pragma Import (C, LLVMGetFirstParam, "Ada_LLVMGetFirstParam");
-   pragma Import (C, LLVMGetLastParam, "Ada_LLVMGetLastParam");
-   pragma Import (C, LLVMGetNextParam, "Ada_LLVMGetNextParam");
-   pragma Import (C, LLVMGetPreviousParam, "Ada_LLVMGetPreviousParam");
-   pragma Import (C, LLVMAddAttribute, "Ada_LLVMAddAttribute");
-   pragma Import (C, LLVMRemoveAttribute, "Ada_LLVMRemoveAttribute");
-   pragma Import (C, LLVMSetParamAlignment, "Ada_LLVMSetParamAlignment");
-   pragma Import (C, LLVMBasicBlockAsValue, "Ada_LLVMBasicBlockAsValue");
-   pragma Import (C, LLVMValueIsBasicBlock, "Ada_LLVMValueIsBasicBlock");
-   pragma Import (C, LLVMValueAsBasicBlock, "Ada_LLVMValueAsBasicBlock");
-   pragma Import (C, LLVMGetBasicBlockParent, "Ada_LLVMGetBasicBlockParent");
-   pragma Import (C, LLVMCountBasicBlocks, "Ada_LLVMCountBasicBlocks");
-   pragma Import (C, LLVMGetBasicBlocks, "Ada_LLVMGetBasicBlocks");
-   pragma Import (C, LLVMGetFirstBasicBlock, "Ada_LLVMGetFirstBasicBlock");
-   pragma Import (C, LLVMGetLastBasicBlock, "Ada_LLVMGetLastBasicBlock");
-   pragma Import (C, LLVMGetNextBasicBlock, "Ada_LLVMGetNextBasicBlock");
-   pragma Import
-     (C,
-      LLVMGetPreviousBasicBlock,
-      "Ada_LLVMGetPreviousBasicBlock");
-   pragma Import (C, LLVMGetEntryBasicBlock, "Ada_LLVMGetEntryBasicBlock");
-   pragma Import (C, LLVMAppendBasicBlock, "Ada_LLVMAppendBasicBlock");
-   pragma Import (C, LLVMInsertBasicBlock, "Ada_LLVMInsertBasicBlock");
-   pragma Import (C, LLVMDeleteBasicBlock, "Ada_LLVMDeleteBasicBlock");
-   pragma Import
-     (C,
-      LLVMGetInstructionParent,
-      "Ada_LLVMGetInstructionParent");
-   pragma Import (C, LLVMGetFirstInstruction, "Ada_LLVMGetFirstInstruction");
-   pragma Import (C, LLVMGetLastInstruction, "Ada_LLVMGetLastInstruction");
-   pragma Import (C, LLVMGetNextInstruction, "Ada_LLVMGetNextInstruction");
-   pragma Import
-     (C,
-      LLVMGetPreviousInstruction,
-      "Ada_LLVMGetPreviousInstruction");
-   pragma Import
-     (C,
-      LLVMSetInstructionCallConv,
-      "Ada_LLVMSetInstructionCallConv");
-   pragma Import
-     (C,
-      LLVMGetInstructionCallConv,
-      "Ada_LLVMGetInstructionCallConv");
-   pragma Import (C, LLVMAddInstrAttribute, "Ada_LLVMAddInstrAttribute");
-   pragma Import
-     (C,
-      LLVMRemoveInstrAttribute,
-      "Ada_LLVMRemoveInstrAttribute");
-   pragma Import
-     (C,
-      LLVMSetInstrParamAlignment,
-      "Ada_LLVMSetInstrParamAlignment");
-   pragma Import (C, LLVMIsTailCall, "Ada_LLVMIsTailCall");
-   pragma Import (C, LLVMSetTailCall, "Ada_LLVMSetTailCall");
-   pragma Import (C, LLVMAddIncoming, "Ada_LLVMAddIncoming");
-   pragma Import (C, LLVMCountIncoming, "Ada_LLVMCountIncoming");
-   pragma Import (C, LLVMGetIncomingValue, "Ada_LLVMGetIncomingValue");
-   pragma Import (C, LLVMGetIncomingBlock, "Ada_LLVMGetIncomingBlock");
-   pragma Import (C, LLVMCreateBuilder, "Ada_LLVMCreateBuilder");
-   pragma Import (C, LLVMPositionBuilder, "Ada_LLVMPositionBuilder");
-   pragma Import
-     (C,
-      LLVMPositionBuilderBefore,
-      "Ada_LLVMPositionBuilderBefore");
-   pragma Import
-     (C,
-      LLVMPositionBuilderAtEnd,
-      "Ada_LLVMPositionBuilderAtEnd");
-   pragma Import (C, LLVMGetInsertBlock, "Ada_LLVMGetInsertBlock");
-   pragma Import
-     (C,
-      LLVMClearInsertionPosition,
-      "Ada_LLVMClearInsertionPosition");
-   pragma Import (C, LLVMInsertIntoBuilder, "Ada_LLVMInsertIntoBuilder");
-   pragma Import (C, LLVMDisposeBuilder, "Ada_LLVMDisposeBuilder");
-   pragma Import (C, LLVMBuildRetVoid, "Ada_LLVMBuildRetVoid");
-   pragma Import (C, LLVMBuildRet, "Ada_LLVMBuildRet");
-   pragma Import (C, LLVMBuildBr, "Ada_LLVMBuildBr");
-   pragma Import (C, LLVMBuildCondBr, "Ada_LLVMBuildCondBr");
-   pragma Import (C, LLVMBuildSwitch, "Ada_LLVMBuildSwitch");
-   pragma Import (C, LLVMBuildInvoke, "Ada_LLVMBuildInvoke");
-   pragma Import (C, LLVMBuildUnwind, "Ada_LLVMBuildUnwind");
-   pragma Import (C, LLVMBuildUnreachable, "Ada_LLVMBuildUnreachable");
-   pragma Import (C, LLVMAddCase, "Ada_LLVMAddCase");
-   pragma Import (C, LLVMBuildAdd, "Ada_LLVMBuildAdd");
-   pragma Import (C, LLVMBuildSub, "Ada_LLVMBuildSub");
-   pragma Import (C, LLVMBuildMul, "Ada_LLVMBuildMul");
-   pragma Import (C, LLVMBuildUDiv, "Ada_LLVMBuildUDiv");
-   pragma Import (C, LLVMBuildSDiv, "Ada_LLVMBuildSDiv");
-   pragma Import (C, LLVMBuildFDiv, "Ada_LLVMBuildFDiv");
-   pragma Import (C, LLVMBuildURem, "Ada_LLVMBuildURem");
-   pragma Import (C, LLVMBuildSRem, "Ada_LLVMBuildSRem");
-   pragma Import (C, LLVMBuildFRem, "Ada_LLVMBuildFRem");
-   pragma Import (C, LLVMBuildShl, "Ada_LLVMBuildShl");
-   pragma Import (C, LLVMBuildLShr, "Ada_LLVMBuildLShr");
-   pragma Import (C, LLVMBuildAShr, "Ada_LLVMBuildAShr");
-   pragma Import (C, LLVMBuildAnd, "Ada_LLVMBuildAnd");
-   pragma Import (C, LLVMBuildOr, "Ada_LLVMBuildOr");
-   pragma Import (C, LLVMBuildXor, "Ada_LLVMBuildXor");
-   pragma Import (C, LLVMBuildNeg, "Ada_LLVMBuildNeg");
-   pragma Import (C, LLVMBuildNot, "Ada_LLVMBuildNot");
-   pragma Import (C, LLVMBuildMalloc, "Ada_LLVMBuildMalloc");
-   pragma Import (C, LLVMBuildArrayMalloc, "Ada_LLVMBuildArrayMalloc");
-   pragma Import (C, LLVMBuildAlloca, "Ada_LLVMBuildAlloca");
-   pragma Import (C, LLVMBuildArrayAlloca, "Ada_LLVMBuildArrayAlloca");
-   pragma Import (C, LLVMBuildFree, "Ada_LLVMBuildFree");
-   pragma Import (C, LLVMBuildLoad, "Ada_LLVMBuildLoad");
-   pragma Import (C, LLVMBuildStore, "Ada_LLVMBuildStore");
-   pragma Import (C, LLVMBuildGEP, "Ada_LLVMBuildGEP");
-   pragma Import (C, LLVMBuildTrunc, "Ada_LLVMBuildTrunc");
-   pragma Import (C, LLVMBuildZExt, "Ada_LLVMBuildZExt");
-   pragma Import (C, LLVMBuildSExt, "Ada_LLVMBuildSExt");
-   pragma Import (C, LLVMBuildFPToUI, "Ada_LLVMBuildFPToUI");
-   pragma Import (C, LLVMBuildFPToSI, "Ada_LLVMBuildFPToSI");
-   pragma Import (C, LLVMBuildUIToFP, "Ada_LLVMBuildUIToFP");
-   pragma Import (C, LLVMBuildSIToFP, "Ada_LLVMBuildSIToFP");
-   pragma Import (C, LLVMBuildFPTrunc, "Ada_LLVMBuildFPTrunc");
-   pragma Import (C, LLVMBuildFPExt, "Ada_LLVMBuildFPExt");
-   pragma Import (C, LLVMBuildPtrToInt, "Ada_LLVMBuildPtrToInt");
-   pragma Import (C, LLVMBuildIntToPtr, "Ada_LLVMBuildIntToPtr");
-   pragma Import (C, LLVMBuildBitCast, "Ada_LLVMBuildBitCast");
-   pragma Import (C, LLVMBuildICmp, "Ada_LLVMBuildICmp");
-   pragma Import (C, LLVMBuildFCmp, "Ada_LLVMBuildFCmp");
-   pragma Import (C, LLVMBuildPhi, "Ada_LLVMBuildPhi");
-   pragma Import (C, LLVMBuildCall, "Ada_LLVMBuildCall");
-   pragma Import (C, LLVMBuildSelect, "Ada_LLVMBuildSelect");
-   pragma Import (C, LLVMBuildVAArg, "Ada_LLVMBuildVAArg");
-   pragma Import (C, LLVMBuildExtractElement, "Ada_LLVMBuildExtractElement");
-   pragma Import (C, LLVMBuildInsertElement, "Ada_LLVMBuildInsertElement");
-   pragma Import (C, LLVMBuildShuffleVector, "Ada_LLVMBuildShuffleVector");
-   pragma Import (C, LLVMBuildExtractValue, "Ada_LLVMBuildExtractValue");
-   pragma Import (C, LLVMBuildInsertValue, "Ada_LLVMBuildInsertValue");
-   pragma Import
-     (C,
-      LLVMCreateModuleProviderForExistingModule,
-      "Ada_LLVMCreateModuleProviderForExistingModule");
-   pragma Import
-     (C,
-      LLVMDisposeModuleProvider,
-      "Ada_LLVMDisposeModuleProvider");
-   pragma Import
-     (C,
-      LLVMCreateMemoryBufferWithContentsOfFile,
-      "Ada_LLVMCreateMemoryBufferWithContentsOfFile");
-   pragma Import
-     (C,
-      LLVMCreateMemoryBufferWithSTDIN,
-      "Ada_LLVMCreateMemoryBufferWithSTDIN");
-   pragma Import (C, LLVMDisposeMemoryBuffer, "Ada_LLVMDisposeMemoryBuffer");
-   pragma Import (C, LLVMCreatePassManager, "Ada_LLVMCreatePassManager");
-   pragma Import
-     (C,
-      LLVMCreateFunctionPassManager,
-      "Ada_LLVMCreateFunctionPassManager");
-   pragma Import (C, LLVMRunPassManager, "Ada_LLVMRunPassManager");
-   pragma Import
-     (C,
-      LLVMInitializeFunctionPassManager,
-      "Ada_LLVMInitializeFunctionPassManager");
-   pragma Import
-     (C,
-      LLVMRunFunctionPassManager,
-      "Ada_LLVMRunFunctionPassManager");
-   pragma Import
-     (C,
-      LLVMFinalizeFunctionPassManager,
-      "Ada_LLVMFinalizeFunctionPassManager");
-   pragma Import (C, LLVMDisposePassManager, "Ada_LLVMDisposePassManager");
-
-end llvm.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/llvm/llvm.ads b/libclamav/c++/llvm/bindings/ada/llvm/llvm.ads
deleted file mode 100644
index d9820f1..0000000
--- a/libclamav/c++/llvm/bindings/ada/llvm/llvm.ads
+++ /dev/null
@@ -1,493 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with Interfaces.C.Extensions;
-
-
-package llvm is
-
-   -- LLVMCtxt
-   --
-   type LLVMCtxt is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMCtxt_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCtxt;
-
-   type LLVMCtxt_view is access all llvm.LLVMCtxt;
-
-   -- LLVMContextRef
-   --
-   type LLVMContextRef is access all llvm.LLVMCtxt;
-
-   type LLVMContextRef_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMContextRef;
-
-   type LLVMContextRef_view is access all llvm.LLVMContextRef;
-
-   -- LLVMOpaqueModule
-   --
-   type LLVMOpaqueModule is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueModule_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueModule;
-
-   type LLVMOpaqueModule_view is access all llvm.LLVMOpaqueModule;
-
-   -- LLVMModuleRef
-   --
-   type LLVMModuleRef is access all llvm.LLVMOpaqueModule;
-
-   type LLVMModuleRef_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMModuleRef;
-
-   type LLVMModuleRef_view is access all llvm.LLVMModuleRef;
-
-   -- LLVMOpaqueType
-   --
-   type LLVMOpaqueType is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueType_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueType;
-
-   type LLVMOpaqueType_view is access all llvm.LLVMOpaqueType;
-
-   -- LLVMTypeRef
-   --
-   type LLVMTypeRef is access all llvm.LLVMOpaqueType;
-
-   type LLVMTypeRef_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeRef;
-
-   type LLVMTypeRef_view is access all llvm.LLVMTypeRef;
-
-   -- LLVMOpaqueTypeHandle
-   --
-   type LLVMOpaqueTypeHandle is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueTypeHandle_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMOpaqueTypeHandle;
-
-   type LLVMOpaqueTypeHandle_view is access all llvm.LLVMOpaqueTypeHandle;
-
-   -- LLVMTypeHandleRef
-   --
-   type LLVMTypeHandleRef is access all llvm.LLVMOpaqueTypeHandle;
-
-   type LLVMTypeHandleRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMTypeHandleRef;
-
-   type LLVMTypeHandleRef_view is access all llvm.LLVMTypeHandleRef;
-
-   -- LLVMOpaqueValue
-   --
-   type LLVMOpaqueValue is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueValue_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueValue;
-
-   type LLVMOpaqueValue_view is access all llvm.LLVMOpaqueValue;
-
-   -- LLVMValueRef
-   --
-   type LLVMValueRef is access all llvm.LLVMOpaqueValue;
-
-   type LLVMValueRef_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMValueRef;
-
-   type LLVMValueRef_view is access all llvm.LLVMValueRef;
-
-   -- LLVMOpaqueBasicBlock
-   --
-   type LLVMOpaqueBasicBlock is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueBasicBlock_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMOpaqueBasicBlock;
-
-   type LLVMOpaqueBasicBlock_view is access all llvm.LLVMOpaqueBasicBlock;
-
-   -- LLVMBasicBlockRef
-   --
-   type LLVMBasicBlockRef is access all llvm.LLVMOpaqueBasicBlock;
-
-   type LLVMBasicBlockRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMBasicBlockRef;
-
-   type LLVMBasicBlockRef_view is access all llvm.LLVMBasicBlockRef;
-
-   -- LLVMOpaqueBuilder
-   --
-   type LLVMOpaqueBuilder is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueBuilder_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMOpaqueBuilder;
-
-   type LLVMOpaqueBuilder_view is access all llvm.LLVMOpaqueBuilder;
-
-   -- LLVMBuilderRef
-   --
-   type LLVMBuilderRef is access all llvm.LLVMOpaqueBuilder;
-
-   type LLVMBuilderRef_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMBuilderRef;
-
-   type LLVMBuilderRef_view is access all llvm.LLVMBuilderRef;
-
-   -- LLVMOpaqueModuleProvider
-   --
-   type LLVMOpaqueModuleProvider is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueModuleProvider_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMOpaqueModuleProvider;
-
-   type LLVMOpaqueModuleProvider_view is access all
-     llvm.LLVMOpaqueModuleProvider;
-
-   -- LLVMModuleProviderRef
-   --
-   type LLVMModuleProviderRef is access all llvm.LLVMOpaqueModuleProvider;
-
-   type LLVMModuleProviderRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMModuleProviderRef;
-
-   type LLVMModuleProviderRef_view is access all llvm.LLVMModuleProviderRef;
-
-   -- LLVMOpaqueMemoryBuffer
-   --
-   type LLVMOpaqueMemoryBuffer is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueMemoryBuffer_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMOpaqueMemoryBuffer;
-
-   type LLVMOpaqueMemoryBuffer_view is access all llvm.LLVMOpaqueMemoryBuffer;
-
-   -- LLVMMemoryBufferRef
-   --
-   type LLVMMemoryBufferRef is access all llvm.LLVMOpaqueMemoryBuffer;
-
-   type LLVMMemoryBufferRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMMemoryBufferRef;
-
-   type LLVMMemoryBufferRef_view is access all llvm.LLVMMemoryBufferRef;
-
-   -- LLVMOpaquePassManager
-   --
-   type LLVMOpaquePassManager is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaquePassManager_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMOpaquePassManager;
-
-   type LLVMOpaquePassManager_view is access all llvm.LLVMOpaquePassManager;
-
-   -- LLVMPassManagerRef
-   --
-   type LLVMPassManagerRef is access all llvm.LLVMOpaquePassManager;
-
-   type LLVMPassManagerRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMPassManagerRef;
-
-   type LLVMPassManagerRef_view is access all llvm.LLVMPassManagerRef;
-
-   -- LLVMAttribute
-   --
-   type LLVMAttribute is (
-      LLVMZExtAttribute,
-      LLVMSExtAttribute,
-      LLVMNoReturnAttribute,
-      LLVMInRegAttribute,
-      LLVMStructRetAttribute,
-      LLVMNoUnwindAttribute,
-      LLVMNoAliasAttribute,
-      LLVMByValAttribute,
-      LLVMNestAttribute,
-      LLVMReadNoneAttribute,
-      LLVMReadOnlyAttribute,
-      LLVMNoInlineAttribute,
-      LLVMAlwaysInlineAttribute,
-      LLVMOptimizeForSizeAttribute,
-      LLVMStackProtectAttribute,
-      LLVMStackProtectReqAttribute,
-      LLVMNoCaptureAttribute,
-      LLVMNoRedZoneAttribute,
-      LLVMNoImplicitFloatAttribute,
-      LLVMNakedAttribute);
-
-   for LLVMAttribute use
-     (LLVMZExtAttribute            => 1,
-      LLVMSExtAttribute            => 2,
-      LLVMNoReturnAttribute        => 4,
-      LLVMInRegAttribute           => 8,
-      LLVMStructRetAttribute       => 16,
-      LLVMNoUnwindAttribute        => 32,
-      LLVMNoAliasAttribute         => 64,
-      LLVMByValAttribute           => 128,
-      LLVMNestAttribute            => 256,
-      LLVMReadNoneAttribute        => 512,
-      LLVMReadOnlyAttribute        => 1024,
-      LLVMNoInlineAttribute        => 2048,
-      LLVMAlwaysInlineAttribute    => 4096,
-      LLVMOptimizeForSizeAttribute => 8192,
-      LLVMStackProtectAttribute    => 16384,
-      LLVMStackProtectReqAttribute => 32768,
-      LLVMNoCaptureAttribute       => 2097152,
-      LLVMNoRedZoneAttribute       => 4194304,
-      LLVMNoImplicitFloatAttribute => 8388608,
-      LLVMNakedAttribute           => 16777216);
-
-   pragma Convention (C, LLVMAttribute);
-
-   type LLVMAttribute_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMAttribute;
-
-   type LLVMAttribute_view is access all llvm.LLVMAttribute;
-
-   -- LLVMTypeKind
-   --
-   type LLVMTypeKind is (
-      LLVMVoidTypeKind,
-      LLVMFloatTypeKind,
-      LLVMDoubleTypeKind,
-      LLVMX86_FP80TypeKind,
-      LLVMFP128TypeKind,
-      LLVMPPC_FP128TypeKind,
-      LLVMLabelTypeKind,
-      LLVMIntegerTypeKind,
-      LLVMFunctionTypeKind,
-      LLVMStructTypeKind,
-      LLVMArrayTypeKind,
-      LLVMPointerTypeKind,
-      LLVMOpaqueTypeKind,
-      LLVMVectorTypeKind,
-      LLVMMetadataTypeKind);
-
-   for LLVMTypeKind use
-     (LLVMVoidTypeKind      => 0,
-      LLVMFloatTypeKind     => 1,
-      LLVMDoubleTypeKind    => 2,
-      LLVMX86_FP80TypeKind  => 3,
-      LLVMFP128TypeKind     => 4,
-      LLVMPPC_FP128TypeKind => 5,
-      LLVMLabelTypeKind     => 6,
-      LLVMIntegerTypeKind   => 7,
-      LLVMFunctionTypeKind  => 8,
-      LLVMStructTypeKind    => 9,
-      LLVMArrayTypeKind     => 10,
-      LLVMPointerTypeKind   => 11,
-      LLVMOpaqueTypeKind    => 12,
-      LLVMVectorTypeKind    => 13,
-      LLVMMetadataTypeKind  => 14);
-
-   pragma Convention (C, LLVMTypeKind);
-
-   type LLVMTypeKind_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeKind;
-
-   type LLVMTypeKind_view is access all llvm.LLVMTypeKind;
-
-   -- LLVMLinkage
-   --
-   type LLVMLinkage is (
-      LLVMExternalLinkage,
-      LLVMAvailableExternallyLinkage,
-      LLVMLinkOnceAnyLinkage,
-      LLVMLinkOnceODRLinkage,
-      LLVMWeakAnyLinkage,
-      LLVMWeakODRLinkage,
-      LLVMAppendingLinkage,
-      LLVMInternalLinkage,
-      LLVMPrivateLinkage,
-      LLVMDLLImportLinkage,
-      LLVMDLLExportLinkage,
-      LLVMExternalWeakLinkage,
-      LLVMGhostLinkage,
-      LLVMCommonLinkage,
-      LLVMLinkerPrivateLinkage);
-
-   for LLVMLinkage use
-     (LLVMExternalLinkage            => 0,
-      LLVMAvailableExternallyLinkage => 1,
-      LLVMLinkOnceAnyLinkage         => 2,
-      LLVMLinkOnceODRLinkage         => 3,
-      LLVMWeakAnyLinkage             => 4,
-      LLVMWeakODRLinkage             => 5,
-      LLVMAppendingLinkage           => 6,
-      LLVMInternalLinkage            => 7,
-      LLVMPrivateLinkage             => 8,
-      LLVMDLLImportLinkage           => 9,
-      LLVMDLLExportLinkage           => 10,
-      LLVMExternalWeakLinkage        => 11,
-      LLVMGhostLinkage               => 12,
-      LLVMCommonLinkage              => 13,
-      LLVMLinkerPrivateLinkage       => 14);
-
-   pragma Convention (C, LLVMLinkage);
-
-   type LLVMLinkage_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMLinkage;
-
-   type LLVMLinkage_view is access all llvm.LLVMLinkage;
-
-   -- LLVMVisibility
-   --
-   type LLVMVisibility is (
-      LLVMDefaultVisibility,
-      LLVMHiddenVisibility,
-      LLVMProtectedVisibility);
-
-   for LLVMVisibility use
-     (LLVMDefaultVisibility   => 0,
-      LLVMHiddenVisibility    => 1,
-      LLVMProtectedVisibility => 2);
-
-   pragma Convention (C, LLVMVisibility);
-
-   type LLVMVisibility_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMVisibility;
-
-   type LLVMVisibility_view is access all llvm.LLVMVisibility;
-
-   -- LLVMCallConv
-   --
-   type LLVMCallConv is (
-      LLVMCCallConv,
-      LLVMFastCallConv,
-      LLVMColdCallConv,
-      LLVMX86StdcallCallConv,
-      LLVMX86FastcallCallConv);
-
-   for LLVMCallConv use
-     (LLVMCCallConv           => 0,
-      LLVMFastCallConv        => 8,
-      LLVMColdCallConv        => 9,
-      LLVMX86StdcallCallConv  => 64,
-      LLVMX86FastcallCallConv => 65);
-
-   pragma Convention (C, LLVMCallConv);
-
-   type LLVMCallConv_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCallConv;
-
-   type LLVMCallConv_view is access all llvm.LLVMCallConv;
-
-   -- LLVMIntPredicate
-   --
-   type LLVMIntPredicate is (
-      LLVMIntEQ,
-      LLVMIntNE,
-      LLVMIntUGT,
-      LLVMIntUGE,
-      LLVMIntULT,
-      LLVMIntULE,
-      LLVMIntSGT,
-      LLVMIntSGE,
-      LLVMIntSLT,
-      LLVMIntSLE);
-
-   for LLVMIntPredicate use
-     (LLVMIntEQ  => 32,
-      LLVMIntNE  => 33,
-      LLVMIntUGT => 34,
-      LLVMIntUGE => 35,
-      LLVMIntULT => 36,
-      LLVMIntULE => 37,
-      LLVMIntSGT => 38,
-      LLVMIntSGE => 39,
-      LLVMIntSLT => 40,
-      LLVMIntSLE => 41);
-
-   pragma Convention (C, LLVMIntPredicate);
-
-   type LLVMIntPredicate_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMIntPredicate;
-
-   type LLVMIntPredicate_view is access all llvm.LLVMIntPredicate;
-
-   -- LLVMRealPredicate
-   --
-   type LLVMRealPredicate is (
-      LLVMRealPredicateFalse,
-      LLVMRealOEQ,
-      LLVMRealOGT,
-      LLVMRealOGE,
-      LLVMRealOLT,
-      LLVMRealOLE,
-      LLVMRealONE,
-      LLVMRealORD,
-      LLVMRealUNO,
-      LLVMRealUEQ,
-      LLVMRealUGT,
-      LLVMRealUGE,
-      LLVMRealULT,
-      LLVMRealULE,
-      LLVMRealUNE,
-      LLVMRealPredicateTrue);
-
-   for LLVMRealPredicate use
-     (LLVMRealPredicateFalse => 0,
-      LLVMRealOEQ            => 1,
-      LLVMRealOGT            => 2,
-      LLVMRealOGE            => 3,
-      LLVMRealOLT            => 4,
-      LLVMRealOLE            => 5,
-      LLVMRealONE            => 6,
-      LLVMRealORD            => 7,
-      LLVMRealUNO            => 8,
-      LLVMRealUEQ            => 9,
-      LLVMRealUGT            => 10,
-      LLVMRealUGE            => 11,
-      LLVMRealULT            => 12,
-      LLVMRealULE            => 13,
-      LLVMRealUNE            => 14,
-      LLVMRealPredicateTrue  => 15);
-
-   pragma Convention (C, LLVMRealPredicate);
-
-   type LLVMRealPredicate_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased llvm.LLVMRealPredicate;
-
-   type LLVMRealPredicate_view is access all llvm.LLVMRealPredicate;
-
-   -- ModuleProvider
-   --
-   type ModuleProvider is new Interfaces.C.Extensions.incomplete_class_def;
-
-   type ModuleProvider_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.ModuleProvider;
-
-   type ModuleProvider_view is access all llvm.ModuleProvider;
-
-   -- MemoryBuffer
-   --
-   type MemoryBuffer is new Interfaces.C.Extensions.incomplete_class_def;
-
-   type MemoryBuffer_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.MemoryBuffer;
-
-   type MemoryBuffer_view is access all llvm.MemoryBuffer;
-
-   -- PassManagerBase
-   --
-   type PassManagerBase is new Interfaces.C.Extensions.incomplete_class_def;
-
-   type PassManagerBase_array is
-     array (Interfaces.C.size_t range <>) of aliased llvm.PassManagerBase;
-
-   type PassManagerBase_view is access all llvm.PassManagerBase;
-
-end llvm;
diff --git a/libclamav/c++/llvm/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads b/libclamav/c++/llvm/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads
deleted file mode 100644
index 7c0b086..0000000
--- a/libclamav/c++/llvm/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads
+++ /dev/null
@@ -1,207 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with Interfaces.C.Strings;
-
-
-package LLVM_link_time_Optimizer.Binding is
-
-   LTO_H           : constant := 1;
-   LTO_API_VERSION : constant := 3;
-
-   function lto_get_version return  Interfaces.C.Strings.chars_ptr;
-
-   function lto_get_error_message return  Interfaces.C.Strings.chars_ptr;
-
-   function lto_module_is_object_file
-     (path : in Interfaces.C.Strings.chars_ptr)
-      return Interfaces.C.Extensions.bool;
-
-   function lto_module_is_object_file_for_target
-     (path                 : in Interfaces.C.Strings.chars_ptr;
-      target_triple_prefix : in Interfaces.C.Strings.chars_ptr)
-      return                 Interfaces.C.Extensions.bool;
-
-   function lto_module_is_object_file_in_memory
-     (mem    : access Interfaces.C.Extensions.void;
-      length : in Interfaces.C.size_t)
-      return   Interfaces.C.Extensions.bool;
-
-   function lto_module_is_object_file_in_memory_for_target
-     (mem                  : access Interfaces.C.Extensions.void;
-      length               : in Interfaces.C.size_t;
-      target_triple_prefix : in Interfaces.C.Strings.chars_ptr)
-      return                 Interfaces.C.Extensions.bool;
-
-   function lto_module_create
-     (path : in Interfaces.C.Strings.chars_ptr)
-      return LLVM_link_time_Optimizer.lto_module_t;
-
-   function lto_module_create_from_memory
-     (mem    : access Interfaces.C.Extensions.void;
-      length : in Interfaces.C.size_t)
-      return   LLVM_link_time_Optimizer.lto_module_t;
-
-   procedure lto_module_dispose
-     (the_mod : in LLVM_link_time_Optimizer.lto_module_t);
-
-   function lto_module_get_target_triple
-     (the_mod : in LLVM_link_time_Optimizer.lto_module_t)
-      return    Interfaces.C.Strings.chars_ptr;
-
-   function lto_module_get_num_symbols
-     (the_mod : in LLVM_link_time_Optimizer.lto_module_t)
-      return    Interfaces.C.unsigned;
-
-   function lto_module_get_symbol_name
-     (the_mod : in LLVM_link_time_Optimizer.lto_module_t;
-      index   : in Interfaces.C.unsigned)
-      return    Interfaces.C.Strings.chars_ptr;
-
-   function lto_module_get_symbol_attribute
-     (the_mod : in LLVM_link_time_Optimizer.lto_module_t;
-      index   : in Interfaces.C.unsigned)
-      return    LLVM_link_time_Optimizer.lto_symbol_attributes;
-
-   function lto_codegen_create return  LLVM_link_time_Optimizer.lto_code_gen_t;
-
-   procedure lto_codegen_dispose
-     (arg_1 : in LLVM_link_time_Optimizer.lto_code_gen_t);
-
-   function lto_codegen_add_module
-     (cg      : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      the_mod : in LLVM_link_time_Optimizer.lto_module_t)
-      return    Interfaces.C.Extensions.bool;
-
-   function lto_codegen_set_debug_model
-     (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      arg_1 : in LLVM_link_time_Optimizer.lto_debug_model)
-      return  Interfaces.C.Extensions.bool;
-
-   function lto_codegen_set_pic_model
-     (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      arg_1 : in LLVM_link_time_Optimizer.lto_codegen_model)
-      return  Interfaces.C.Extensions.bool;
-
-   procedure lto_codegen_set_gcc_path
-     (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      path : in Interfaces.C.Strings.chars_ptr);
-
-   procedure lto_codegen_set_assembler_path
-     (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      path : in Interfaces.C.Strings.chars_ptr);
-
-   procedure lto_codegen_add_must_preserve_symbol
-     (cg     : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      symbol : in Interfaces.C.Strings.chars_ptr);
-
-   function lto_codegen_write_merged_modules
-     (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      path : in Interfaces.C.Strings.chars_ptr)
-      return Interfaces.C.Extensions.bool;
-
-   function lto_codegen_compile
-     (cg     : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      length : access Interfaces.C.size_t)
-      return   access Interfaces.C.Extensions.void;
-
-   procedure lto_codegen_debug_options
-     (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
-      arg_1 : in Interfaces.C.Strings.chars_ptr);
-
-   function llvm_create_optimizer return
-     LLVM_link_time_Optimizer.llvm_lto_t;
-
-   procedure llvm_destroy_optimizer
-     (lto : in LLVM_link_time_Optimizer.llvm_lto_t);
-
-   function llvm_read_object_file
-     (lto            : in LLVM_link_time_Optimizer.llvm_lto_t;
-      input_filename : in Interfaces.C.Strings.chars_ptr)
-      return           LLVM_link_time_Optimizer.llvm_lto_status_t;
-
-   function llvm_optimize_modules
-     (lto             : in LLVM_link_time_Optimizer.llvm_lto_t;
-      output_filename : in Interfaces.C.Strings.chars_ptr)
-      return            LLVM_link_time_Optimizer.llvm_lto_status_t;
-
-private
-
-   pragma Import (C, lto_get_version, "Ada_lto_get_version");
-   pragma Import (C, lto_get_error_message, "Ada_lto_get_error_message");
-   pragma Import
-     (C,
-      lto_module_is_object_file,
-      "Ada_lto_module_is_object_file");
-   pragma Import
-     (C,
-      lto_module_is_object_file_for_target,
-      "Ada_lto_module_is_object_file_for_target");
-   pragma Import
-     (C,
-      lto_module_is_object_file_in_memory,
-      "Ada_lto_module_is_object_file_in_memory");
-   pragma Import
-     (C,
-      lto_module_is_object_file_in_memory_for_target,
-      "Ada_lto_module_is_object_file_in_memory_for_target");
-   pragma Import (C, lto_module_create, "Ada_lto_module_create");
-   pragma Import
-     (C,
-      lto_module_create_from_memory,
-      "Ada_lto_module_create_from_memory");
-   pragma Import (C, lto_module_dispose, "Ada_lto_module_dispose");
-   pragma Import
-     (C,
-      lto_module_get_target_triple,
-      "Ada_lto_module_get_target_triple");
-   pragma Import
-     (C,
-      lto_module_get_num_symbols,
-      "Ada_lto_module_get_num_symbols");
-   pragma Import
-     (C,
-      lto_module_get_symbol_name,
-      "Ada_lto_module_get_symbol_name");
-   pragma Import
-     (C,
-      lto_module_get_symbol_attribute,
-      "Ada_lto_module_get_symbol_attribute");
-   pragma Import (C, lto_codegen_create, "Ada_lto_codegen_create");
-   pragma Import (C, lto_codegen_dispose, "Ada_lto_codegen_dispose");
-   pragma Import (C, lto_codegen_add_module, "Ada_lto_codegen_add_module");
-   pragma Import
-     (C,
-      lto_codegen_set_debug_model,
-      "Ada_lto_codegen_set_debug_model");
-   pragma Import
-     (C,
-      lto_codegen_set_pic_model,
-      "Ada_lto_codegen_set_pic_model");
-   pragma Import
-     (C,
-      lto_codegen_set_gcc_path,
-      "Ada_lto_codegen_set_gcc_path");
-   pragma Import
-     (C,
-      lto_codegen_set_assembler_path,
-      "Ada_lto_codegen_set_assembler_path");
-   pragma Import
-     (C,
-      lto_codegen_add_must_preserve_symbol,
-      "Ada_lto_codegen_add_must_preserve_symbol");
-   pragma Import
-     (C,
-      lto_codegen_write_merged_modules,
-      "Ada_lto_codegen_write_merged_modules");
-   pragma Import (C, lto_codegen_compile, "Ada_lto_codegen_compile");
-   pragma Import
-     (C,
-      lto_codegen_debug_options,
-      "Ada_lto_codegen_debug_options");
-   pragma Import (C, llvm_create_optimizer, "Ada_llvm_create_optimizer");
-   pragma Import (C, llvm_destroy_optimizer, "Ada_llvm_destroy_optimizer");
-   pragma Import (C, llvm_read_object_file, "Ada_llvm_read_object_file");
-   pragma Import (C, llvm_optimize_modules, "Ada_llvm_optimize_modules");
-
-end LLVM_link_time_Optimizer.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/llvm/llvm_link_time_optimizer.ads b/libclamav/c++/llvm/bindings/ada/llvm/llvm_link_time_optimizer.ads
deleted file mode 100644
index c27f7c5..0000000
--- a/libclamav/c++/llvm/bindings/ada/llvm/llvm_link_time_optimizer.ads
+++ /dev/null
@@ -1,184 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with Interfaces.C.Extensions;
-
-
-package LLVM_link_time_Optimizer is
-
-   -- lto_symbol_attributes
-   --
-   type lto_symbol_attributes is (
-      LTO_SYMBOL_ALIGNMENT_MASK,
-      LTO_SYMBOL_PERMISSIONS_RODATA,
-      LTO_SYMBOL_PERMISSIONS_CODE,
-      LTO_SYMBOL_PERMISSIONS_DATA,
-      LTO_SYMBOL_PERMISSIONS_MASK,
-      LTO_SYMBOL_DEFINITION_REGULAR,
-      LTO_SYMBOL_DEFINITION_TENTATIVE,
-      LTO_SYMBOL_DEFINITION_WEAK,
-      LTO_SYMBOL_DEFINITION_UNDEFINED,
-      LTO_SYMBOL_DEFINITION_WEAKUNDEF,
-      LTO_SYMBOL_DEFINITION_MASK,
-      LTO_SYMBOL_SCOPE_INTERNAL,
-      LTO_SYMBOL_SCOPE_HIDDEN,
-      LTO_SYMBOL_SCOPE_DEFAULT,
-      LTO_SYMBOL_SCOPE_PROTECTED,
-      LTO_SYMBOL_SCOPE_MASK);
-
-   for lto_symbol_attributes use
-     (LTO_SYMBOL_ALIGNMENT_MASK       => 31,
-      LTO_SYMBOL_PERMISSIONS_RODATA   => 128,
-      LTO_SYMBOL_PERMISSIONS_CODE     => 160,
-      LTO_SYMBOL_PERMISSIONS_DATA     => 192,
-      LTO_SYMBOL_PERMISSIONS_MASK     => 224,
-      LTO_SYMBOL_DEFINITION_REGULAR   => 256,
-      LTO_SYMBOL_DEFINITION_TENTATIVE => 512,
-      LTO_SYMBOL_DEFINITION_WEAK      => 768,
-      LTO_SYMBOL_DEFINITION_UNDEFINED => 1024,
-      LTO_SYMBOL_DEFINITION_WEAKUNDEF => 1280,
-      LTO_SYMBOL_DEFINITION_MASK      => 1792,
-      LTO_SYMBOL_SCOPE_INTERNAL       => 2048,
-      LTO_SYMBOL_SCOPE_HIDDEN         => 4096,
-      LTO_SYMBOL_SCOPE_DEFAULT        => 6144,
-      LTO_SYMBOL_SCOPE_PROTECTED      => 8192,
-      LTO_SYMBOL_SCOPE_MASK           => 14336);
-
-   pragma Convention (C, lto_symbol_attributes);
-
-   type lto_symbol_attributes_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.lto_symbol_attributes;
-
-   type lto_symbol_attributes_view is access all
-     LLVM_link_time_Optimizer.lto_symbol_attributes;
-
-   -- lto_debug_model
-   --
-   type lto_debug_model is (LTO_DEBUG_MODEL_NONE, LTO_DEBUG_MODEL_DWARF);
-
-   for lto_debug_model use
-     (LTO_DEBUG_MODEL_NONE  => 0,
-      LTO_DEBUG_MODEL_DWARF => 1);
-
-   pragma Convention (C, lto_debug_model);
-
-   type lto_debug_model_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.lto_debug_model;
-
-   type lto_debug_model_view is access all
-     LLVM_link_time_Optimizer.lto_debug_model;
-
-   -- lto_codegen_model
-   --
-   type lto_codegen_model is (
-      LTO_CODEGEN_PIC_MODEL_STATIC,
-      LTO_CODEGEN_PIC_MODEL_DYNAMIC,
-      LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC);
-
-   for lto_codegen_model use
-     (LTO_CODEGEN_PIC_MODEL_STATIC         => 0,
-      LTO_CODEGEN_PIC_MODEL_DYNAMIC        => 1,
-      LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC => 2);
-
-   pragma Convention (C, lto_codegen_model);
-
-   type lto_codegen_model_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.lto_codegen_model;
-
-   type lto_codegen_model_view is access all
-     LLVM_link_time_Optimizer.lto_codegen_model;
-
-   -- LTOModule
-   --
-   type LTOModule is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LTOModule_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.LTOModule;
-
-   type LTOModule_view is access all LLVM_link_time_Optimizer.LTOModule;
-
-   -- lto_module_t
-   --
-   type lto_module_t is access all LLVM_link_time_Optimizer.LTOModule;
-
-   type lto_module_t_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.lto_module_t;
-
-   type lto_module_t_view is access all LLVM_link_time_Optimizer.lto_module_t;
-
-   -- LTOCodeGenerator
-   --
-   type LTOCodeGenerator is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LTOCodeGenerator_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.LTOCodeGenerator;
-
-   type LTOCodeGenerator_view is access all
-     LLVM_link_time_Optimizer.LTOCodeGenerator;
-
-   -- lto_code_gen_t
-   --
-   type lto_code_gen_t is access all LLVM_link_time_Optimizer.LTOCodeGenerator;
-
-   type lto_code_gen_t_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.lto_code_gen_t;
-
-   type lto_code_gen_t_view is access all
-     LLVM_link_time_Optimizer.lto_code_gen_t;
-
-   -- llvm_lto_status_t
-   --
-   type llvm_lto_status_t is (
-      LLVM_LTO_UNKNOWN,
-      LLVM_LTO_OPT_SUCCESS,
-      LLVM_LTO_READ_SUCCESS,
-      LLVM_LTO_READ_FAILURE,
-      LLVM_LTO_WRITE_FAILURE,
-      LLVM_LTO_NO_TARGET,
-      LLVM_LTO_NO_WORK,
-      LLVM_LTO_MODULE_MERGE_FAILURE,
-      LLVM_LTO_ASM_FAILURE,
-      LLVM_LTO_NULL_OBJECT);
-
-   for llvm_lto_status_t use
-     (LLVM_LTO_UNKNOWN              => 0,
-      LLVM_LTO_OPT_SUCCESS          => 1,
-      LLVM_LTO_READ_SUCCESS         => 2,
-      LLVM_LTO_READ_FAILURE         => 3,
-      LLVM_LTO_WRITE_FAILURE        => 4,
-      LLVM_LTO_NO_TARGET            => 5,
-      LLVM_LTO_NO_WORK              => 6,
-      LLVM_LTO_MODULE_MERGE_FAILURE => 7,
-      LLVM_LTO_ASM_FAILURE          => 8,
-      LLVM_LTO_NULL_OBJECT          => 9);
-
-   pragma Convention (C, llvm_lto_status_t);
-
-   type llvm_lto_status_t_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.llvm_lto_status_t;
-
-   type llvm_lto_status_t_view is access all
-     LLVM_link_time_Optimizer.llvm_lto_status_t;
-
-
-   -- llvm_lto_t
-   --
-   type llvm_lto_t is access all Interfaces.C.Extensions.void;
-
-   type llvm_lto_t_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_link_time_Optimizer.llvm_lto_t;
-
-   type llvm_lto_t_view is access all
-     LLVM_link_time_Optimizer.llvm_lto_t;
-
-
-end LLVM_link_time_Optimizer;
diff --git a/libclamav/c++/llvm/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx b/libclamav/c++/llvm/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx
deleted file mode 100644
index eb2e7ab..0000000
--- a/libclamav/c++/llvm/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx
+++ /dev/null
@@ -1,923 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_link_time_Optimizer (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_link_time_Optimizer(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-#include "llvm-c/lto.h"
-#include "llvm-c/LinkTimeOptimizer.h"
-
-
-
-//  struct LLVMCtxt;
-
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport char * SWIGSTDCALL Ada_lto_get_version (
-  )
-{
-  char * jresult ;
-  char *result = 0 ;
-  
-  result = (char *)lto_get_version();
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_lto_get_error_message (
-  )
-{
-  char * jresult ;
-  char *result = 0 ;
-  
-  result = (char *)lto_get_error_message();
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file (
-  char * jarg1
-  )
-{
-  unsigned int jresult ;
-  char *arg1 = (char *) 0 ;
-  bool result;
-  
-  arg1 = jarg1; 
-  
-  result = (bool)lto_module_is_object_file((char const *)arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file_for_target (
-  char * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  unsigned int jresult ;
-  char *arg1 = (char *) 0 ;
-  char *arg2 = (char *) 0 ;
-  bool result;
-  
-  arg1 = jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (bool)lto_module_is_object_file_for_target((char const *)arg1,(char const *)arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file_in_memory (
-  void* jarg1
-  ,
-  
-  size_t jarg2
-  )
-{
-  unsigned int jresult ;
-  void *arg1 = (void *) 0 ;
-  size_t arg2 ;
-  bool result;
-  
-  arg1 = (void *)jarg1; 
-  
-  
-  arg2 = (size_t) jarg2; 
-  
-  
-  result = (bool)lto_module_is_object_file_in_memory((void const *)arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file_in_memory_for_target (
-  void* jarg1
-  ,
-  
-  size_t jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  unsigned int jresult ;
-  void *arg1 = (void *) 0 ;
-  size_t arg2 ;
-  char *arg3 = (char *) 0 ;
-  bool result;
-  
-  arg1 = (void *)jarg1; 
-  
-  
-  arg2 = (size_t) jarg2; 
-  
-  
-  arg3 = jarg3; 
-  
-  result = (bool)lto_module_is_object_file_in_memory_for_target((void const *)arg1,arg2,(char const *)arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_lto_module_create (
-  char * jarg1
-  )
-{
-  void * jresult ;
-  char *arg1 = (char *) 0 ;
-  lto_module_t result;
-  
-  arg1 = jarg1; 
-  
-  result = (lto_module_t)lto_module_create((char const *)arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_lto_module_create_from_memory (
-  void* jarg1
-  ,
-  
-  size_t jarg2
-  )
-{
-  void * jresult ;
-  void *arg1 = (void *) 0 ;
-  size_t arg2 ;
-  lto_module_t result;
-  
-  arg1 = (void *)jarg1; 
-  
-  
-  arg2 = (size_t) jarg2; 
-  
-  
-  result = (lto_module_t)lto_module_create_from_memory((void const *)arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_lto_module_dispose (
-  void * jarg1
-  )
-{
-  lto_module_t arg1 = (lto_module_t) 0 ;
-  
-  arg1 = (lto_module_t)jarg1; 
-  
-  lto_module_dispose(arg1);
-  
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_lto_module_get_target_triple (
-  void * jarg1
-  )
-{
-  char * jresult ;
-  lto_module_t arg1 = (lto_module_t) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (lto_module_t)jarg1; 
-  
-  result = (char *)lto_module_get_target_triple(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_module_get_num_symbols (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  lto_module_t arg1 = (lto_module_t) 0 ;
-  unsigned int result;
-  
-  arg1 = (lto_module_t)jarg1; 
-  
-  result = (unsigned int)lto_module_get_num_symbols(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_lto_module_get_symbol_name (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  char * jresult ;
-  lto_module_t arg1 = (lto_module_t) 0 ;
-  unsigned int arg2 ;
-  char *result = 0 ;
-  
-  arg1 = (lto_module_t)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (char *)lto_module_get_symbol_name(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_lto_module_get_symbol_attribute (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  int jresult ;
-  lto_module_t arg1 = (lto_module_t) 0 ;
-  unsigned int arg2 ;
-  lto_symbol_attributes result;
-  
-  arg1 = (lto_module_t)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (lto_symbol_attributes)lto_module_get_symbol_attribute(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_lto_codegen_create (
-  )
-{
-  void * jresult ;
-  lto_code_gen_t result;
-  
-  result = (lto_code_gen_t)lto_codegen_create();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_lto_codegen_dispose (
-  void * jarg1
-  )
-{
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  lto_codegen_dispose(arg1);
-  
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_add_module (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned int jresult ;
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  lto_module_t arg2 = (lto_module_t) 0 ;
-  bool result;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = (lto_module_t)jarg2; 
-  
-  result = (bool)lto_codegen_add_module(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_set_debug_model (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  unsigned int jresult ;
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  lto_debug_model arg2 ;
-  bool result;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = (lto_debug_model) jarg2; 
-  
-  result = (bool)lto_codegen_set_debug_model(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_set_pic_model (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  unsigned int jresult ;
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  lto_codegen_model arg2 ;
-  bool result;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = (lto_codegen_model) jarg2; 
-  
-  result = (bool)lto_codegen_set_pic_model(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_lto_codegen_set_gcc_path (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  lto_codegen_set_gcc_path(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_lto_codegen_set_assembler_path (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  lto_codegen_set_assembler_path(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_lto_codegen_add_must_preserve_symbol (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  lto_codegen_add_must_preserve_symbol(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_write_merged_modules (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  unsigned int jresult ;
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  char *arg2 = (char *) 0 ;
-  bool result;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (bool)lto_codegen_write_merged_modules(arg1,(char const *)arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void* SWIGSTDCALL Ada_lto_codegen_compile (
-  void * jarg1
-  ,
-  
-  size_t* jarg2
-  )
-{
-  void* jresult ;
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  size_t *arg2 = (size_t *) 0 ;
-  void *result = 0 ;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  
-  arg2 = (size_t *) jarg2;
-  
-  
-  result = (void *)lto_codegen_compile(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_lto_codegen_debug_options (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (lto_code_gen_t)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  lto_codegen_debug_options(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport void* SWIGSTDCALL Ada_llvm_create_optimizer (
-  )
-{
-  void* jresult ;
-  llvm_lto_t result;
-  
-  result = (llvm_lto_t)llvm_create_optimizer();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_llvm_destroy_optimizer (
-  void* jarg1
-  )
-{
-  llvm_lto_t arg1 = (llvm_lto_t) 0 ;
-  
-  arg1 = (llvm_lto_t)jarg1; 
-  
-  llvm_destroy_optimizer(arg1);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_llvm_read_object_file (
-  void* jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  int jresult ;
-  llvm_lto_t arg1 = (llvm_lto_t) 0 ;
-  char *arg2 = (char *) 0 ;
-  llvm_lto_status_t result;
-  
-  arg1 = (llvm_lto_t)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (llvm_lto_status_t)llvm_read_object_file(arg1,(char const *)arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_llvm_optimize_modules (
-  void* jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  int jresult ;
-  llvm_lto_t arg1 = (llvm_lto_t) 0 ;
-  char *arg2 = (char *) 0 ;
-  llvm_lto_status_t result;
-  
-  arg1 = (llvm_lto_t)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (llvm_lto_status_t)llvm_optimize_modules(arg1,(char const *)arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ada/llvm/llvm_wrap.cxx b/libclamav/c++/llvm/bindings/ada/llvm/llvm_wrap.cxx
deleted file mode 100644
index 79b19ff..0000000
--- a/libclamav/c++/llvm/bindings/ada/llvm/llvm_wrap.cxx
+++ /dev/null
@@ -1,8817 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_llvm (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_llvm(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-//#include "llvm-c/Analysis.h"
-//#include "llvm-c/BitReader.h"
-//#include "llvm-c/BitWriter.h"
-#include "llvm-c/Core.h"
-//#include "llvm-c/ExecutionEngine.h"
-//#include "llvm-c/LinkTimeOptimizer.h"
-//#include "llvm-c/lto.h"
-//#include "llvm-c/Target.h"
-
-
-
-  struct LLVMCtxt;
-//  struct LLVMOpaqueType;
-//  struct LLVMOpaqueValue;
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport void SWIGSTDCALL Ada_LLVMDisposeMessage (
-  char * jarg1
-  )
-{
-  char *arg1 = (char *) 0 ;
-  
-  arg1 = jarg1; 
-  
-  LLVMDisposeMessage(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMContextCreate (
-  )
-{
-  void * jresult ;
-  LLVMContextRef result;
-  
-  result = (LLVMContextRef)LLVMContextCreate();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetGlobalContext (
-  )
-{
-  void * jresult ;
-  LLVMContextRef result;
-  
-  result = (LLVMContextRef)LLVMGetGlobalContext();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMContextDispose (
-  void * jarg1
-  )
-{
-  LLVMContextRef arg1 = (LLVMContextRef) 0 ;
-  
-  arg1 = (LLVMContextRef)jarg1; 
-  
-  LLVMContextDispose(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMModuleCreateWithName (
-  char * jarg1
-  )
-{
-  void * jresult ;
-  char *arg1 = (char *) 0 ;
-  LLVMModuleRef result;
-  
-  arg1 = jarg1; 
-  
-  result = (LLVMModuleRef)LLVMModuleCreateWithName((char const *)arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMModuleCreateWithNameInContext (
-  char * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  char *arg1 = (char *) 0 ;
-  LLVMContextRef arg2 = (LLVMContextRef) 0 ;
-  LLVMModuleRef result;
-  
-  arg1 = jarg1; 
-  
-  arg2 = (LLVMContextRef)jarg2; 
-  
-  result = (LLVMModuleRef)LLVMModuleCreateWithNameInContext((char const *)arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeModule (
-  void * jarg1
-  )
-{
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  LLVMDisposeModule(arg1);
-  
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_LLVMGetDataLayout (
-  void * jarg1
-  )
-{
-  char * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  result = (char *)LLVMGetDataLayout(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetDataLayout (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  LLVMSetDataLayout(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_LLVMGetTarget (
-  void * jarg1
-  )
-{
-  char * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  result = (char *)LLVMGetTarget(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetTarget (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  LLVMSetTarget(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMAddTypeName (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  result = (int)LLVMAddTypeName(arg1,(char const *)arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDeleteTypeName (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  LLVMDeleteTypeName(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetTypeByName (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (LLVMTypeRef)LLVMGetTypeByName(arg1,(char const *)arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDumpModule (
-  void * jarg1
-  )
-{
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  LLVMDumpModule(arg1);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMGetTypeKind (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeKind result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMTypeKind)LLVMGetTypeKind(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMInt1Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMInt1Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMInt8Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMInt8Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMInt16Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMInt16Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMInt32Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMInt32Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMInt64Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMInt64Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIntType (
-  unsigned int jarg1
-  )
-{
-  void * jresult ;
-  unsigned int arg1 ;
-  LLVMTypeRef result;
-  
-  
-  arg1 = (unsigned int) jarg1; 
-  
-  
-  result = (LLVMTypeRef)LLVMIntType(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetIntTypeWidth (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetIntTypeWidth(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMFloatType (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMFloatType();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMDoubleType (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMDoubleType();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMX86FP80Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMX86FP80Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMFP128Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMFP128Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMPPCFP128Type (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMPPCFP128Type();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMFunctionType (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  ,
-  
-  int jarg4
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeRef *arg2 = (LLVMTypeRef *) 0 ;
-  unsigned int arg3 ;
-  int arg4 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef *)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  
-  arg4 = (int) jarg4; 
-  
-  
-  result = (LLVMTypeRef)LLVMFunctionType(arg1,arg2,arg3,arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsFunctionVarArg (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (int)LLVMIsFunctionVarArg(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetReturnType (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMTypeRef)LLVMGetReturnType(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMCountParamTypes (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (unsigned int)LLVMCountParamTypes(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMGetParamTypes (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeRef *arg2 = (LLVMTypeRef *) 0 ;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef *)jarg2; 
-  
-  LLVMGetParamTypes(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMStructType (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  ,
-  
-  int jarg3
-  )
-{
-  void * jresult ;
-  LLVMTypeRef *arg1 = (LLVMTypeRef *) 0 ;
-  unsigned int arg2 ;
-  int arg3 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeRef *)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  
-  arg3 = (int) jarg3; 
-  
-  
-  result = (LLVMTypeRef)LLVMStructType(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMCountStructElementTypes (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (unsigned int)LLVMCountStructElementTypes(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMGetStructElementTypes (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeRef *arg2 = (LLVMTypeRef *) 0 ;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef *)jarg2; 
-  
-  LLVMGetStructElementTypes(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsPackedStruct (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (int)LLVMIsPackedStruct(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMArrayType (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int arg2 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (LLVMTypeRef)LLVMArrayType(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMPointerType (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int arg2 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (LLVMTypeRef)LLVMPointerType(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMVectorType (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int arg2 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (LLVMTypeRef)LLVMVectorType(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetElementType (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMTypeRef)LLVMGetElementType(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetArrayLength (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetArrayLength(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetPointerAddressSpace (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetPointerAddressSpace(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetVectorSize (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetVectorSize(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMVoidType (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMVoidType();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMLabelType (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMLabelType();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMOpaqueType (
-  )
-{
-  void * jresult ;
-  LLVMTypeRef result;
-  
-  result = (LLVMTypeRef)LLVMOpaqueType();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateTypeHandle (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeHandleRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMTypeHandleRef)LLVMCreateTypeHandle(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMRefineType (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  LLVMRefineType(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMResolveTypeHandle (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeHandleRef arg1 = (LLVMTypeHandleRef) 0 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTypeHandleRef)jarg1; 
-  
-  result = (LLVMTypeRef)LLVMResolveTypeHandle(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeTypeHandle (
-  void * jarg1
-  )
-{
-  LLVMTypeHandleRef arg1 = (LLVMTypeHandleRef) 0 ;
-  
-  arg1 = (LLVMTypeHandleRef)jarg1; 
-  
-  LLVMDisposeTypeHandle(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMTypeOf (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMTypeRef)LLVMTypeOf(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_LLVMGetValueName (
-  void * jarg1
-  )
-{
-  char * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (char *)LLVMGetValueName(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetValueName (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  LLVMSetValueName(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDumpValue (
-  void * jarg1
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  LLVMDumpValue(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAArgument (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAArgument(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsABasicBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsABasicBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAInlineAsm (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAInlineAsm(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAUser (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAUser(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstant (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstant(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantAggregateZero (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantAggregateZero(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantArray (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantArray(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantExpr (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantExpr(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantFP (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantFP(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantInt (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantInt(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantPointerNull (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantPointerNull(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantStruct (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantStruct(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantVector (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAConstantVector(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAGlobalValue (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAGlobalValue(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAFunction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAFunction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAGlobalAlias (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAGlobalAlias(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAGlobalVariable (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAGlobalVariable(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAUndefValue (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAUndefValue(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAInstruction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAInstruction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsABinaryOperator (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsABinaryOperator(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsACallInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsACallInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAIntrinsicInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAIntrinsicInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsADbgInfoIntrinsic (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsADbgInfoIntrinsic(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsADbgDeclareInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsADbgDeclareInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsADbgFuncStartInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsADbgFuncStartInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsADbgRegionEndInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsADbgRegionEndInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsADbgRegionStartInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsADbgRegionStartInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsADbgStopPointInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsADbgStopPointInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAEHSelectorInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAEHSelectorInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAMemIntrinsic (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAMemIntrinsic(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAMemCpyInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAMemCpyInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAMemMoveInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAMemMoveInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAMemSetInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAMemSetInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsACmpInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsACmpInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAFCmpInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAFCmpInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAICmpInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAICmpInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAExtractElementInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAExtractElementInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAGetElementPtrInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAGetElementPtrInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAInsertElementInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAInsertElementInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAInsertValueInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAInsertValueInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAPHINode (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAPHINode(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsASelectInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsASelectInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAShuffleVectorInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAShuffleVectorInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAStoreInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAStoreInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsATerminatorInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsATerminatorInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsABranchInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsABranchInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAInvokeInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAInvokeInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAReturnInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAReturnInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsASwitchInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsASwitchInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAUnreachableInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAUnreachableInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAUnwindInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAUnwindInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAUnaryInstruction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAUnaryInstruction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAAllocationInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAAllocationInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAAllocaInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAAllocaInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAMallocInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAMallocInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsACastInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsACastInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsABitCastInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsABitCastInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAFPExtInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAFPExtInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAFPToSIInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAFPToSIInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAFPToUIInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAFPToUIInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAFPTruncInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAFPTruncInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAIntToPtrInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAIntToPtrInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAPtrToIntInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAPtrToIntInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsASExtInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsASExtInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsASIToFPInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsASIToFPInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsATruncInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsATruncInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAUIToFPInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAUIToFPInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAZExtInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAZExtInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAExtractValueInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAExtractValueInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAFreeInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAFreeInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsALoadInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsALoadInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIsAVAArgInst (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMIsAVAArgInst(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstNull (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMConstNull(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstAllOnes (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMConstAllOnes(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetUndef (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetUndef(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsConstant (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMIsConstant(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsNull (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMIsNull(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsUndef (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMIsUndef(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstPointerNull (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMConstPointerNull(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstInt (
-  void * jarg1
-  ,
-  
-  unsigned long long jarg2
-  ,
-  
-  int jarg3
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  unsigned long long arg2 ;
-  int arg3 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  
-  arg2 = (unsigned long long) jarg2; 
-  
-  
-  
-  arg3 = (int) jarg3; 
-  
-  
-  result = (LLVMValueRef)LLVMConstInt(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstReal (
-  void * jarg1
-  ,
-  
-  double jarg2
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  double arg2 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  
-  arg2 = (double) jarg2; 
-  
-  
-  result = (LLVMValueRef)LLVMConstReal(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstRealOfString (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstRealOfString(arg1,(char const *)arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstString (
-  char * jarg1
-  ,
-  
-  unsigned int jarg2
-  ,
-  
-  int jarg3
-  )
-{
-  void * jresult ;
-  char *arg1 = (char *) 0 ;
-  unsigned int arg2 ;
-  int arg3 ;
-  LLVMValueRef result;
-  
-  arg1 = jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  
-  arg3 = (int) jarg3; 
-  
-  
-  result = (LLVMValueRef)LLVMConstString((char const *)arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstArray (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
-  unsigned int arg3 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = (LLVMValueRef *)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  result = (LLVMValueRef)LLVMConstArray(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstStruct (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  ,
-  
-  int jarg3
-  )
-{
-  void * jresult ;
-  LLVMValueRef *arg1 = (LLVMValueRef *) 0 ;
-  unsigned int arg2 ;
-  int arg3 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef *)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  
-  arg3 = (int) jarg3; 
-  
-  
-  result = (LLVMValueRef)LLVMConstStruct(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstVector (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef *arg1 = (LLVMValueRef *) 0 ;
-  unsigned int arg2 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef *)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (LLVMValueRef)LLVMConstVector(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMSizeOf (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMSizeOf(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstNeg (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMConstNeg(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstNot (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMConstNot(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstAdd (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstAdd(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstSub (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstSub(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstMul (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstMul(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstUDiv (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstUDiv(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstSDiv (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstSDiv(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstFDiv (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstFDiv(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstURem (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstURem(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstSRem (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstSRem(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstFRem (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstFRem(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstAnd (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstAnd(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstOr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstOr(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstXor (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstXor(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstICmp (
-  int jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  void * jresult ;
-  LLVMIntPredicate arg1 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMIntPredicate) jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  result = (LLVMValueRef)LLVMConstICmp(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstFCmp (
-  int jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  void * jresult ;
-  LLVMRealPredicate arg1 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMRealPredicate) jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  result = (LLVMValueRef)LLVMConstFCmp(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstShl (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstShl(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstLShr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstLShr(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstAShr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstAShr(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstGEP (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
-  unsigned int arg3 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef *)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  result = (LLVMValueRef)LLVMConstGEP(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstTrunc (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstTrunc(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstSExt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstSExt(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstZExt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstZExt(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstFPTrunc (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstFPTrunc(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstFPExt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstFPExt(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstUIToFP (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstUIToFP(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstSIToFP (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstSIToFP(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstFPToUI (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstFPToUI(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstFPToSI (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstFPToSI(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstPtrToInt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstPtrToInt(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstIntToPtr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstIntToPtr(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstBitCast (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstBitCast(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstSelect (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  result = (LLVMValueRef)LLVMConstSelect(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstExtractElement (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMConstExtractElement(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstInsertElement (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  result = (LLVMValueRef)LLVMConstInsertElement(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstShuffleVector (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  result = (LLVMValueRef)LLVMConstShuffleVector(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstExtractValue (
-  void * jarg1
-  ,
-  
-  unsigned int* jarg2
-  ,
-  
-  unsigned int jarg3
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int *arg2 = (unsigned int *) 0 ;
-  unsigned int arg3 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int *) jarg2;
-  
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  result = (LLVMValueRef)LLVMConstExtractValue(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstInsertValue (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int* jarg3
-  ,
-  
-  unsigned int jarg4
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  unsigned int *arg3 = (unsigned int *) 0 ;
-  unsigned int arg4 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  
-  arg3 = (unsigned int *) jarg3;
-  
-  
-  
-  arg4 = (unsigned int) jarg4; 
-  
-  
-  result = (LLVMValueRef)LLVMConstInsertValue(arg1,arg2,arg3,arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMConstInlineAsm (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  ,
-  
-  char * jarg3
-  ,
-  
-  int jarg4
-  )
-{
-  void * jresult ;
-  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  int arg4 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMTypeRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  arg3 = jarg3; 
-  
-  
-  arg4 = (int) jarg4; 
-  
-  
-  result = (LLVMValueRef)LLVMConstInlineAsm(arg1,(char const *)arg2,(char const *)arg3,arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetGlobalParent (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMModuleRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMModuleRef)LLVMGetGlobalParent(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsDeclaration (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMIsDeclaration(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMGetLinkage (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMLinkage result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMLinkage)LLVMGetLinkage(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetLinkage (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMLinkage arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMLinkage) jarg2; 
-  
-  LLVMSetLinkage(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_LLVMGetSection (
-  void * jarg1
-  )
-{
-  char * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (char *)LLVMGetSection(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetSection (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  LLVMSetSection(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMGetVisibility (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMVisibility result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMVisibility)LLVMGetVisibility(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetVisibility (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMVisibility arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMVisibility) jarg2; 
-  
-  LLVMSetVisibility(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetAlignment (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetAlignment(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetAlignment (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  LLVMSetAlignment(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMAddGlobal (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  char *arg3 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  arg3 = jarg3; 
-  
-  result = (LLVMValueRef)LLVMAddGlobal(arg1,arg2,(char const *)arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetNamedGlobal (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (LLVMValueRef)LLVMGetNamedGlobal(arg1,(char const *)arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetFirstGlobal (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetFirstGlobal(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetLastGlobal (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetLastGlobal(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetNextGlobal (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetNextGlobal(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousGlobal (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetPreviousGlobal(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDeleteGlobal (
-  void * jarg1
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  LLVMDeleteGlobal(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetInitializer (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetInitializer(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetInitializer (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  LLVMSetInitializer(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsThreadLocal (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMIsThreadLocal(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetThreadLocal (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (int) jarg2; 
-  
-  
-  LLVMSetThreadLocal(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsGlobalConstant (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMIsGlobalConstant(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetGlobalConstant (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (int) jarg2; 
-  
-  
-  LLVMSetGlobalConstant(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMAddAlias (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMAddAlias(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMAddFunction (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  result = (LLVMValueRef)LLVMAddFunction(arg1,(char const *)arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetNamedFunction (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (LLVMValueRef)LLVMGetNamedFunction(arg1,(char const *)arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetFirstFunction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetFirstFunction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetLastFunction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetLastFunction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetNextFunction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetNextFunction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousFunction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetPreviousFunction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDeleteFunction (
-  void * jarg1
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  LLVMDeleteFunction(arg1);
-  
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetIntrinsicID (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetIntrinsicID(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetFunctionCallConv (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetFunctionCallConv(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetFunctionCallConv (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  LLVMSetFunctionCallConv(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_LLVMGetGC (
-  void * jarg1
-  )
-{
-  char * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (char *)LLVMGetGC(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetGC (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  LLVMSetGC(arg1,(char const *)arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddFunctionAttr (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMAttribute arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMAttribute) jarg2; 
-  
-  LLVMAddFunctionAttr(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMRemoveFunctionAttr (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMAttribute arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMAttribute) jarg2; 
-  
-  LLVMRemoveFunctionAttr(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMCountParams (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMCountParams(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMGetParams (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef *)jarg2; 
-  
-  LLVMGetParams(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetParam (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (LLVMValueRef)LLVMGetParam(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetParamParent (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetParamParent(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetFirstParam (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetFirstParam(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetLastParam (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetLastParam(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetNextParam (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetNextParam(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousParam (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetPreviousParam(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddAttribute (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMAttribute arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMAttribute) jarg2; 
-  
-  LLVMAddAttribute(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMRemoveAttribute (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMAttribute arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMAttribute) jarg2; 
-  
-  LLVMRemoveAttribute(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetParamAlignment (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  LLVMSetParamAlignment(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBasicBlockAsValue (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMBasicBlockAsValue(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMValueIsBasicBlock (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMValueIsBasicBlock(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMValueAsBasicBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMValueAsBasicBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetBasicBlockParent (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetBasicBlockParent(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMCountBasicBlocks (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMCountBasicBlocks(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMGetBasicBlocks (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef *arg2 = (LLVMBasicBlockRef *) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMBasicBlockRef *)jarg2; 
-  
-  LLVMGetBasicBlocks(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetFirstBasicBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMGetFirstBasicBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetLastBasicBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMGetLastBasicBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetNextBasicBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMGetNextBasicBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousBasicBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMGetPreviousBasicBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetEntryBasicBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMGetEntryBasicBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMAppendBasicBlock (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (LLVMBasicBlockRef)LLVMAppendBasicBlock(arg1,(char const *)arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMInsertBasicBlock (
-  void * jarg1
-  ,
-  
-  char * jarg2
-  )
-{
-  void * jresult ;
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  char *arg2 = (char *) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  arg2 = jarg2; 
-  
-  result = (LLVMBasicBlockRef)LLVMInsertBasicBlock(arg1,(char const *)arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDeleteBasicBlock (
-  void * jarg1
-  )
-{
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  LLVMDeleteBasicBlock(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetInstructionParent (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMGetInstructionParent(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetFirstInstruction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetFirstInstruction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetLastInstruction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBasicBlockRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetLastInstruction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetNextInstruction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetNextInstruction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousInstruction (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMGetPreviousInstruction(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetInstructionCallConv (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  LLVMSetInstructionCallConv(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMGetInstructionCallConv (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMGetInstructionCallConv(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddInstrAttribute (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  ,
-  
-  int jarg3
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  LLVMAttribute arg3 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  arg3 = (LLVMAttribute) jarg3; 
-  
-  LLVMAddInstrAttribute(arg1,arg2,arg3);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMRemoveInstrAttribute (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  ,
-  
-  int jarg3
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  LLVMAttribute arg3 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  arg3 = (LLVMAttribute) jarg3; 
-  
-  LLVMRemoveInstrAttribute(arg1,arg2,arg3);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetInstrParamAlignment (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  ,
-  
-  unsigned int jarg3
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  unsigned int arg3 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  LLVMSetInstrParamAlignment(arg1,arg2,arg3);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMIsTailCall (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (int)LLVMIsTailCall(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMSetTailCall (
-  void * jarg1
-  ,
-  
-  int jarg2
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  int arg2 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (int) jarg2; 
-  
-  
-  LLVMSetTailCall(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddIncoming (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  unsigned int jarg4
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
-  LLVMBasicBlockRef *arg3 = (LLVMBasicBlockRef *) 0 ;
-  unsigned int arg4 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef *)jarg2; 
-  
-  arg3 = (LLVMBasicBlockRef *)jarg3; 
-  
-  
-  arg4 = (unsigned int) jarg4; 
-  
-  
-  LLVMAddIncoming(arg1,arg2,arg3,arg4);
-  
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMCountIncoming (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  result = (unsigned int)LLVMCountIncoming(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetIncomingValue (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (LLVMValueRef)LLVMGetIncomingValue(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetIncomingBlock (
-  void * jarg1
-  ,
-  
-  unsigned int jarg2
-  )
-{
-  void * jresult ;
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  unsigned int arg2 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  
-  arg2 = (unsigned int) jarg2; 
-  
-  
-  result = (LLVMBasicBlockRef)LLVMGetIncomingBlock(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateBuilder (
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef result;
-  
-  result = (LLVMBuilderRef)LLVMCreateBuilder();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMPositionBuilder (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMBasicBlockRef arg2 = (LLVMBasicBlockRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMBasicBlockRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  LLVMPositionBuilder(arg1,arg2,arg3);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMPositionBuilderBefore (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  LLVMPositionBuilderBefore(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMPositionBuilderAtEnd (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMBasicBlockRef arg2 = (LLVMBasicBlockRef) 0 ;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMBasicBlockRef)jarg2; 
-  
-  LLVMPositionBuilderAtEnd(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMGetInsertBlock (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMBasicBlockRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  result = (LLVMBasicBlockRef)LLVMGetInsertBlock(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMClearInsertionPosition (
-  void * jarg1
-  )
-{
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  LLVMClearInsertionPosition(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMInsertIntoBuilder (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  LLVMInsertIntoBuilder(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeBuilder (
-  void * jarg1
-  )
-{
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  LLVMDisposeBuilder(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildRetVoid (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMBuildRetVoid(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildRet (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMBuildRet(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildBr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMBasicBlockRef arg2 = (LLVMBasicBlockRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMBasicBlockRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMBuildBr(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildCondBr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef arg3 = (LLVMBasicBlockRef) 0 ;
-  LLVMBasicBlockRef arg4 = (LLVMBasicBlockRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMBasicBlockRef)jarg3; 
-  
-  arg4 = (LLVMBasicBlockRef)jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildCondBr(arg1,arg2,arg3,arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildSwitch (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  unsigned int jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef arg3 = (LLVMBasicBlockRef) 0 ;
-  unsigned int arg4 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMBasicBlockRef)jarg3; 
-  
-  
-  arg4 = (unsigned int) jarg4; 
-  
-  
-  result = (LLVMValueRef)LLVMBuildSwitch(arg1,arg2,arg3,arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildInvoke (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  unsigned int jarg4
-  ,
-  
-  void * jarg5
-  ,
-  
-  void * jarg6
-  ,
-  
-  char * jarg7
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
-  unsigned int arg4 ;
-  LLVMBasicBlockRef arg5 = (LLVMBasicBlockRef) 0 ;
-  LLVMBasicBlockRef arg6 = (LLVMBasicBlockRef) 0 ;
-  char *arg7 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef *)jarg3; 
-  
-  
-  arg4 = (unsigned int) jarg4; 
-  
-  
-  arg5 = (LLVMBasicBlockRef)jarg5; 
-  
-  arg6 = (LLVMBasicBlockRef)jarg6; 
-  
-  arg7 = jarg7; 
-  
-  result = (LLVMValueRef)LLVMBuildInvoke(arg1,arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildUnwind (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMBuildUnwind(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildUnreachable (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  result = (LLVMValueRef)LLVMBuildUnreachable(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddCase (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMBasicBlockRef arg3 = (LLVMBasicBlockRef) 0 ;
-  
-  arg1 = (LLVMValueRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMBasicBlockRef)jarg3; 
-  
-  LLVMAddCase(arg1,arg2,arg3);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildAdd (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildAdd(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildSub (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildSub(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildMul (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildMul(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildUDiv (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildUDiv(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildSDiv (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildSDiv(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFDiv (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildFDiv(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildURem (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildURem(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildSRem (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildSRem(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFRem (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildFRem(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildShl (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildShl(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildLShr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildLShr(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildAShr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildAShr(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildAnd (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildAnd(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildOr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildOr(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildXor (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildXor(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildNeg (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  char *arg3 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = jarg3; 
-  
-  result = (LLVMValueRef)LLVMBuildNeg(arg1,arg2,(char const *)arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildNot (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  char *arg3 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = jarg3; 
-  
-  result = (LLVMValueRef)LLVMBuildNot(arg1,arg2,(char const *)arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildMalloc (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  char *arg3 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  arg3 = jarg3; 
-  
-  result = (LLVMValueRef)LLVMBuildMalloc(arg1,arg2,(char const *)arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildArrayMalloc (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildArrayMalloc(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildAlloca (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  char *arg3 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  arg3 = jarg3; 
-  
-  result = (LLVMValueRef)LLVMBuildAlloca(arg1,arg2,(char const *)arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildArrayAlloca (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildArrayAlloca(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFree (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (LLVMValueRef)LLVMBuildFree(arg1,arg2);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildLoad (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  char *arg3 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = jarg3; 
-  
-  result = (LLVMValueRef)LLVMBuildLoad(arg1,arg2,(char const *)arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildStore (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  result = (LLVMValueRef)LLVMBuildStore(arg1,arg2,arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildGEP (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  unsigned int jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
-  unsigned int arg4 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef *)jarg3; 
-  
-  
-  arg4 = (unsigned int) jarg4; 
-  
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildGEP(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildTrunc (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildTrunc(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildZExt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildZExt(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildSExt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildSExt(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFPToUI (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildFPToUI(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFPToSI (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildFPToSI(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildUIToFP (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildUIToFP(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildSIToFP (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildSIToFP(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFPTrunc (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildFPTrunc(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFPExt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildFPExt(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildPtrToInt (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildPtrToInt(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildIntToPtr (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildIntToPtr(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildBitCast (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildBitCast(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildICmp (
-  void * jarg1
-  ,
-  
-  int jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMIntPredicate arg2 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMIntPredicate) jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = (LLVMValueRef)jarg4; 
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildICmp(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildFCmp (
-  void * jarg1
-  ,
-  
-  int jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMRealPredicate arg2 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMRealPredicate) jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = (LLVMValueRef)jarg4; 
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildFCmp(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildPhi (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  char * jarg3
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  char *arg3 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  arg3 = jarg3; 
-  
-  result = (LLVMValueRef)LLVMBuildPhi(arg1,arg2,(char const *)arg3);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildCall (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  unsigned int jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
-  unsigned int arg4 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef *)jarg3; 
-  
-  
-  arg4 = (unsigned int) jarg4; 
-  
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildCall(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildSelect (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = (LLVMValueRef)jarg4; 
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildSelect(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildVAArg (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMTypeRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildVAArg(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildExtractElement (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildExtractElement(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildInsertElement (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = (LLVMValueRef)jarg4; 
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildInsertElement(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildShuffleVector (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  void * jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  arg4 = (LLVMValueRef)jarg4; 
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildShuffleVector(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildExtractValue (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  ,
-  
-  char * jarg4
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  unsigned int arg3 ;
-  char *arg4 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  arg4 = jarg4; 
-  
-  result = (LLVMValueRef)LLVMBuildExtractValue(arg1,arg2,arg3,(char const *)arg4);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMBuildInsertValue (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  ,
-  
-  unsigned int jarg4
-  ,
-  
-  char * jarg5
-  )
-{
-  void * jresult ;
-  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
-  unsigned int arg4 ;
-  char *arg5 = (char *) 0 ;
-  LLVMValueRef result;
-  
-  arg1 = (LLVMBuilderRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  arg3 = (LLVMValueRef)jarg3; 
-  
-  
-  arg4 = (unsigned int) jarg4; 
-  
-  
-  arg5 = jarg5; 
-  
-  result = (LLVMValueRef)LLVMBuildInsertValue(arg1,arg2,arg3,arg4,(char const *)arg5);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateModuleProviderForExistingModule (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
-  LLVMModuleProviderRef result;
-  
-  arg1 = (LLVMModuleRef)jarg1; 
-  
-  result = (LLVMModuleProviderRef)LLVMCreateModuleProviderForExistingModule(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeModuleProvider (
-  void * jarg1
-  )
-{
-  LLVMModuleProviderRef arg1 = (LLVMModuleProviderRef) 0 ;
-  
-  arg1 = (LLVMModuleProviderRef)jarg1; 
-  
-  LLVMDisposeModuleProvider(arg1);
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMCreateMemoryBufferWithContentsOfFile (
-  char * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  void * jarg3
-  )
-{
-  int jresult ;
-  char *arg1 = (char *) 0 ;
-  LLVMMemoryBufferRef *arg2 = (LLVMMemoryBufferRef *) 0 ;
-  char **arg3 = (char **) 0 ;
-  int result;
-  
-  arg1 = jarg1; 
-  
-  arg2 = (LLVMMemoryBufferRef *)jarg2; 
-  
-  arg3 = (char **)jarg3; 
-  
-  result = (int)LLVMCreateMemoryBufferWithContentsOfFile((char const *)arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMCreateMemoryBufferWithSTDIN (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  int jresult ;
-  LLVMMemoryBufferRef *arg1 = (LLVMMemoryBufferRef *) 0 ;
-  char **arg2 = (char **) 0 ;
-  int result;
-  
-  arg1 = (LLVMMemoryBufferRef *)jarg1; 
-  
-  arg2 = (char **)jarg2; 
-  
-  result = (int)LLVMCreateMemoryBufferWithSTDIN(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeMemoryBuffer (
-  void * jarg1
-  )
-{
-  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
-  
-  arg1 = (LLVMMemoryBufferRef)jarg1; 
-  
-  LLVMDisposeMemoryBuffer(arg1);
-  
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreatePassManager (
-  )
-{
-  void * jresult ;
-  LLVMPassManagerRef result;
-  
-  result = (LLVMPassManagerRef)LLVMCreatePassManager();
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateFunctionPassManager (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMModuleProviderRef arg1 = (LLVMModuleProviderRef) 0 ;
-  LLVMPassManagerRef result;
-  
-  arg1 = (LLVMModuleProviderRef)jarg1; 
-  
-  result = (LLVMPassManagerRef)LLVMCreateFunctionPassManager(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMRunPassManager (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  int jresult ;
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  LLVMModuleRef arg2 = (LLVMModuleRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  arg2 = (LLVMModuleRef)jarg2; 
-  
-  result = (int)LLVMRunPassManager(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMInitializeFunctionPassManager (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  result = (int)LLVMInitializeFunctionPassManager(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMRunFunctionPassManager (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  int jresult ;
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (int)LLVMRunFunctionPassManager(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMFinalizeFunctionPassManager (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  int result;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  result = (int)LLVMFinalizeFunctionPassManager(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposePassManager (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMDisposePassManager(arg1);
-  
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ada/target/llvm_target-binding.ads b/libclamav/c++/llvm/bindings/ada/target/llvm_target-binding.ads
deleted file mode 100644
index 61201c8..0000000
--- a/libclamav/c++/llvm/bindings/ada/target/llvm_target-binding.ads
+++ /dev/null
@@ -1,138 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with llvm;
-with Interfaces.C.Strings;
-
-
-package LLVM_Target.Binding is
-
-   LLVMBigEndian    : constant := 0;
-   LLVMLittleEndian : constant := 1;
-
-   procedure LLVMInitializeAllTargets;
-
-   function LLVMInitializeNativeTarget return  Interfaces.C.int;
-
-   function LLVMCreateTargetData
-     (StringRep : in Interfaces.C.Strings.chars_ptr)
-      return      LLVM_Target.LLVMTargetDataRef;
-
-   procedure LLVMAddTargetData
-     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
-      arg_2_2 : in llvm.LLVMPassManagerRef);
-
-   function LLVMCopyStringRepOfTargetData
-     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
-      return  Interfaces.C.Strings.chars_ptr;
-
-   function LLVMByteOrder
-     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
-      return  LLVM_Target.LLVMByteOrdering;
-
-   function LLVMPointerSize
-     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
-      return  Interfaces.C.unsigned;
-
-   function LLVMIntPtrType
-     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
-      return  llvm.LLVMTypeRef;
-
-   function LLVMSizeOfTypeInBits
-     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
-      arg_2_2 : in llvm.LLVMTypeRef)
-      return    Interfaces.C.Extensions.unsigned_long_long;
-
-   function LLVMStoreSizeOfType
-     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
-      arg_2_2 : in llvm.LLVMTypeRef)
-      return    Interfaces.C.Extensions.unsigned_long_long;
-
-   function LLVMABISizeOfType
-     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
-      arg_2_2 : in llvm.LLVMTypeRef)
-      return    Interfaces.C.Extensions.unsigned_long_long;
-
-   function LLVMABIAlignmentOfType
-     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
-      arg_2_2 : in llvm.LLVMTypeRef)
-      return    Interfaces.C.unsigned;
-
-   function LLVMCallFrameAlignmentOfType
-     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
-      arg_2_2 : in llvm.LLVMTypeRef)
-      return    Interfaces.C.unsigned;
-
-   function LLVMPreferredAlignmentOfType
-     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
-      arg_2_2 : in llvm.LLVMTypeRef)
-      return    Interfaces.C.unsigned;
-
-   function LLVMPreferredAlignmentOfGlobal
-     (arg_1     : in LLVM_Target.LLVMTargetDataRef;
-      GlobalVar : in llvm.LLVMValueRef)
-      return      Interfaces.C.unsigned;
-
-   function LLVMElementAtOffset
-     (arg_1    : in LLVM_Target.LLVMTargetDataRef;
-      StructTy : in llvm.LLVMTypeRef;
-      Offset   : in Interfaces.C.Extensions.unsigned_long_long)
-      return     Interfaces.C.unsigned;
-
-   function LLVMOffsetOfElement
-     (arg_1    : in LLVM_Target.LLVMTargetDataRef;
-      StructTy : in llvm.LLVMTypeRef;
-      Element  : in Interfaces.C.unsigned)
-      return     Interfaces.C.Extensions.unsigned_long_long;
-
-   procedure LLVMInvalidateStructLayout
-     (arg_1    : in LLVM_Target.LLVMTargetDataRef;
-      StructTy : in llvm.LLVMTypeRef);
-
-   procedure LLVMDisposeTargetData
-     (arg_1 : in LLVM_Target.LLVMTargetDataRef);
-
-private
-
-   pragma Import
-     (C,
-      LLVMInitializeAllTargets,
-      "Ada_LLVMInitializeAllTargets");
-   pragma Import
-     (C,
-      LLVMInitializeNativeTarget,
-      "Ada_LLVMInitializeNativeTarget");
-   pragma Import (C, LLVMCreateTargetData, "Ada_LLVMCreateTargetData");
-   pragma Import (C, LLVMAddTargetData, "Ada_LLVMAddTargetData");
-   pragma Import
-     (C,
-      LLVMCopyStringRepOfTargetData,
-      "Ada_LLVMCopyStringRepOfTargetData");
-   pragma Import (C, LLVMByteOrder, "Ada_LLVMByteOrder");
-   pragma Import (C, LLVMPointerSize, "Ada_LLVMPointerSize");
-   pragma Import (C, LLVMIntPtrType, "Ada_LLVMIntPtrType");
-   pragma Import (C, LLVMSizeOfTypeInBits, "Ada_LLVMSizeOfTypeInBits");
-   pragma Import (C, LLVMStoreSizeOfType, "Ada_LLVMStoreSizeOfType");
-   pragma Import (C, LLVMABISizeOfType, "Ada_LLVMABISizeOfType");
-   pragma Import (C, LLVMABIAlignmentOfType, "Ada_LLVMABIAlignmentOfType");
-   pragma Import
-     (C,
-      LLVMCallFrameAlignmentOfType,
-      "Ada_LLVMCallFrameAlignmentOfType");
-   pragma Import
-     (C,
-      LLVMPreferredAlignmentOfType,
-      "Ada_LLVMPreferredAlignmentOfType");
-   pragma Import
-     (C,
-      LLVMPreferredAlignmentOfGlobal,
-      "Ada_LLVMPreferredAlignmentOfGlobal");
-   pragma Import (C, LLVMElementAtOffset, "Ada_LLVMElementAtOffset");
-   pragma Import (C, LLVMOffsetOfElement, "Ada_LLVMOffsetOfElement");
-   pragma Import
-     (C,
-      LLVMInvalidateStructLayout,
-      "Ada_LLVMInvalidateStructLayout");
-   pragma Import (C, LLVMDisposeTargetData, "Ada_LLVMDisposeTargetData");
-
-end LLVM_Target.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/target/llvm_target.ads b/libclamav/c++/llvm/bindings/ada/target/llvm_target.ads
deleted file mode 100644
index 11cb05d..0000000
--- a/libclamav/c++/llvm/bindings/ada/target/llvm_target.ads
+++ /dev/null
@@ -1,72 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with Interfaces.C.Extensions;
-
-
-package LLVM_Target is
-
-   -- LLVMOpaqueTargetData
-   --
-   type LLVMOpaqueTargetData is new
-     Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMOpaqueTargetData_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_Target.LLVMOpaqueTargetData;
-
-   type LLVMOpaqueTargetData_view is access all
-     LLVM_Target.LLVMOpaqueTargetData;
-
-   -- LLVMTargetDataRef
-   --
-   type LLVMTargetDataRef is access all LLVM_Target.LLVMOpaqueTargetData;
-
-   type LLVMTargetDataRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_Target.LLVMTargetDataRef;
-
-   type LLVMTargetDataRef_view is access all LLVM_Target.LLVMTargetDataRef;
-
-   -- LLVMStructLayout
-   --
-   type LLVMStructLayout is new Interfaces.C.Extensions.opaque_structure_def;
-
-   type LLVMStructLayout_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_Target.LLVMStructLayout;
-
-   type LLVMStructLayout_view is access all LLVM_Target.LLVMStructLayout;
-
-   -- LLVMStructLayoutRef
-   --
-   type LLVMStructLayoutRef is access all LLVM_Target.LLVMStructLayout;
-
-   type LLVMStructLayoutRef_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_Target.LLVMStructLayoutRef;
-
-   type LLVMStructLayoutRef_view is access all LLVM_Target.LLVMStructLayoutRef;
-
-   -- TargetData
-   --
-   type TargetData is new Interfaces.C.Extensions.incomplete_class_def;
-
-   type TargetData_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_Target.TargetData;
-
-   type TargetData_view is access all LLVM_Target.TargetData;
-
-   -- LLVMByteOrdering
-   --
-   type LLVMByteOrdering is new Interfaces.C.int;
-
-   type LLVMByteOrdering_array is
-     array (Interfaces.C.size_t range <>)
-            of aliased LLVM_Target.LLVMByteOrdering;
-
-   type LLVMByteOrdering_view is access all LLVM_Target.LLVMByteOrdering;
-
-
-end LLVM_Target;
diff --git a/libclamav/c++/llvm/bindings/ada/target/llvm_target_wrap.cxx b/libclamav/c++/llvm/bindings/ada/target/llvm_target_wrap.cxx
deleted file mode 100644
index 16aca8a..0000000
--- a/libclamav/c++/llvm/bindings/ada/target/llvm_target_wrap.cxx
+++ /dev/null
@@ -1,720 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_Target (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_Target(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-#include "llvm-c/Target.h"
-
-
-
-//  struct LLVMCtxt;
-
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport void SWIGSTDCALL Ada_LLVMInitializeAllTargets (
-  )
-{
-  LLVMInitializeAllTargets();
-  
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMInitializeNativeTarget (
-  )
-{
-  int jresult ;
-  int result;
-  
-  result = (int)LLVMInitializeNativeTarget();
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMCreateTargetData (
-  char * jarg1
-  )
-{
-  void * jresult ;
-  char *arg1 = (char *) 0 ;
-  LLVMTargetDataRef result;
-  
-  arg1 = jarg1; 
-  
-  result = (LLVMTargetDataRef)LLVMCreateTargetData((char const *)arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddTargetData (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMPassManagerRef arg2 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMPassManagerRef)jarg2; 
-  
-  LLVMAddTargetData(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport char * SWIGSTDCALL Ada_LLVMCopyStringRepOfTargetData (
-  void * jarg1
-  )
-{
-  char * jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  result = (char *)LLVMCopyStringRepOfTargetData(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport int SWIGSTDCALL Ada_LLVMByteOrder (
-  void * jarg1
-  )
-{
-  int jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMByteOrdering result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  result = (LLVMByteOrdering)LLVMByteOrder(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMPointerSize (
-  void * jarg1
-  )
-{
-  unsigned int jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  result = (unsigned int)LLVMPointerSize(arg1);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void * SWIGSTDCALL Ada_LLVMIntPtrType (
-  void * jarg1
-  )
-{
-  void * jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  result = (LLVMTypeRef)LLVMIntPtrType(arg1);
-  jresult = (void *) result;      
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned long long SWIGSTDCALL Ada_LLVMSizeOfTypeInBits (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned long long jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned long long result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (unsigned long long)LLVMSizeOfTypeInBits(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned long long SWIGSTDCALL Ada_LLVMStoreSizeOfType (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned long long jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned long long result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (unsigned long long)LLVMStoreSizeOfType(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned long long SWIGSTDCALL Ada_LLVMABISizeOfType (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned long long jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned long long result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (unsigned long long)LLVMABISizeOfType(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMABIAlignmentOfType (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned int jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (unsigned int)LLVMABIAlignmentOfType(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMCallFrameAlignmentOfType (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned int jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (unsigned int)LLVMCallFrameAlignmentOfType(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMPreferredAlignmentOfType (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned int jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  result = (unsigned int)LLVMPreferredAlignmentOfType(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMPreferredAlignmentOfGlobal (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  unsigned int jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMValueRef)jarg2; 
-  
-  result = (unsigned int)LLVMPreferredAlignmentOfGlobal(arg1,arg2);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned int SWIGSTDCALL Ada_LLVMElementAtOffset (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned long long jarg3
-  )
-{
-  unsigned int jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned long long arg3 ;
-  unsigned int result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  
-  arg3 = (unsigned long long) jarg3; 
-  
-  
-  result = (unsigned int)LLVMElementAtOffset(arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport unsigned long long SWIGSTDCALL Ada_LLVMOffsetOfElement (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  ,
-  
-  unsigned int jarg3
-  )
-{
-  unsigned long long jresult ;
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  unsigned int arg3 ;
-  unsigned long long result;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  
-  arg3 = (unsigned int) jarg3; 
-  
-  
-  result = (unsigned long long)LLVMOffsetOfElement(arg1,arg2,arg3);
-  jresult = result; 
-  
-  
-  
-  return jresult;
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMInvalidateStructLayout (
-  void * jarg1
-  ,
-  
-  void * jarg2
-  )
-{
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  arg2 = (LLVMTypeRef)jarg2; 
-  
-  LLVMInvalidateStructLayout(arg1,arg2);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMDisposeTargetData (
-  void * jarg1
-  )
-{
-  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
-  
-  arg1 = (LLVMTargetDataRef)jarg1; 
-  
-  LLVMDisposeTargetData(arg1);
-  
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms-binding.ads b/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms-binding.ads
deleted file mode 100644
index 2254b6e..0000000
--- a/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms-binding.ads
+++ /dev/null
@@ -1,206 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-with llvm;
-
-
-package LLVM_Transforms.Binding is
-
-   procedure LLVMAddArgumentPromotionPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddConstantMergePass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddDeadArgEliminationPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddDeadTypeEliminationPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddFunctionAttrsPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddFunctionInliningPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddGlobalDCEPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddGlobalOptimizerPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddIPConstantPropagationPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddLowerSetJmpPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddPruneEHPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddRaiseAllocationsPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddStripDeadPrototypesPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddStripSymbolsPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddAggressiveDCEPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddCFGSimplificationPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddCondPropagationPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddDeadStoreEliminationPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddGVNPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddIndVarSimplifyPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddInstructionCombiningPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddJumpThreadingPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddLICMPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddLoopDeletionPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddLoopIndexSplitPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddLoopRotatePass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddLoopUnrollPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddLoopUnswitchPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddMemCpyOptPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddPromoteMemoryToRegisterPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddReassociatePass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddSCCPPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddScalarReplAggregatesPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddSimplifyLibCallsPass (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddTailCallEliminationPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddConstantPropagationPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-   procedure LLVMAddDemoteMemoryToRegisterPass
-     (PM : in llvm.LLVMPassManagerRef);
-
-private
-
-   pragma Import
-     (C,
-      LLVMAddArgumentPromotionPass,
-      "Ada_LLVMAddArgumentPromotionPass");
-   pragma Import
-     (C,
-      LLVMAddConstantMergePass,
-      "Ada_LLVMAddConstantMergePass");
-   pragma Import
-     (C,
-      LLVMAddDeadArgEliminationPass,
-      "Ada_LLVMAddDeadArgEliminationPass");
-   pragma Import
-     (C,
-      LLVMAddDeadTypeEliminationPass,
-      "Ada_LLVMAddDeadTypeEliminationPass");
-   pragma Import
-     (C,
-      LLVMAddFunctionAttrsPass,
-      "Ada_LLVMAddFunctionAttrsPass");
-   pragma Import
-     (C,
-      LLVMAddFunctionInliningPass,
-      "Ada_LLVMAddFunctionInliningPass");
-   pragma Import (C, LLVMAddGlobalDCEPass, "Ada_LLVMAddGlobalDCEPass");
-   pragma Import
-     (C,
-      LLVMAddGlobalOptimizerPass,
-      "Ada_LLVMAddGlobalOptimizerPass");
-   pragma Import
-     (C,
-      LLVMAddIPConstantPropagationPass,
-      "Ada_LLVMAddIPConstantPropagationPass");
-   pragma Import (C, LLVMAddLowerSetJmpPass, "Ada_LLVMAddLowerSetJmpPass");
-   pragma Import (C, LLVMAddPruneEHPass, "Ada_LLVMAddPruneEHPass");
-   pragma Import
-     (C,
-      LLVMAddRaiseAllocationsPass,
-      "Ada_LLVMAddRaiseAllocationsPass");
-   pragma Import
-     (C,
-      LLVMAddStripDeadPrototypesPass,
-      "Ada_LLVMAddStripDeadPrototypesPass");
-   pragma Import (C, LLVMAddStripSymbolsPass, "Ada_LLVMAddStripSymbolsPass");
-   pragma Import
-     (C,
-      LLVMAddAggressiveDCEPass,
-      "Ada_LLVMAddAggressiveDCEPass");
-   pragma Import
-     (C,
-      LLVMAddCFGSimplificationPass,
-      "Ada_LLVMAddCFGSimplificationPass");
-   pragma Import
-     (C,
-      LLVMAddCondPropagationPass,
-      "Ada_LLVMAddCondPropagationPass");
-   pragma Import
-     (C,
-      LLVMAddDeadStoreEliminationPass,
-      "Ada_LLVMAddDeadStoreEliminationPass");
-   pragma Import (C, LLVMAddGVNPass, "Ada_LLVMAddGVNPass");
-   pragma Import
-     (C,
-      LLVMAddIndVarSimplifyPass,
-      "Ada_LLVMAddIndVarSimplifyPass");
-   pragma Import
-     (C,
-      LLVMAddInstructionCombiningPass,
-      "Ada_LLVMAddInstructionCombiningPass");
-   pragma Import
-     (C,
-      LLVMAddJumpThreadingPass,
-      "Ada_LLVMAddJumpThreadingPass");
-   pragma Import (C, LLVMAddLICMPass, "Ada_LLVMAddLICMPass");
-   pragma Import (C, LLVMAddLoopDeletionPass, "Ada_LLVMAddLoopDeletionPass");
-   pragma Import
-     (C,
-      LLVMAddLoopIndexSplitPass,
-      "Ada_LLVMAddLoopIndexSplitPass");
-   pragma Import (C, LLVMAddLoopRotatePass, "Ada_LLVMAddLoopRotatePass");
-   pragma Import (C, LLVMAddLoopUnrollPass, "Ada_LLVMAddLoopUnrollPass");
-   pragma Import (C, LLVMAddLoopUnswitchPass, "Ada_LLVMAddLoopUnswitchPass");
-   pragma Import (C, LLVMAddMemCpyOptPass, "Ada_LLVMAddMemCpyOptPass");
-   pragma Import
-     (C,
-      LLVMAddPromoteMemoryToRegisterPass,
-      "Ada_LLVMAddPromoteMemoryToRegisterPass");
-   pragma Import (C, LLVMAddReassociatePass, "Ada_LLVMAddReassociatePass");
-   pragma Import (C, LLVMAddSCCPPass, "Ada_LLVMAddSCCPPass");
-   pragma Import
-     (C,
-      LLVMAddScalarReplAggregatesPass,
-      "Ada_LLVMAddScalarReplAggregatesPass");
-   pragma Import
-     (C,
-      LLVMAddSimplifyLibCallsPass,
-      "Ada_LLVMAddSimplifyLibCallsPass");
-   pragma Import
-     (C,
-      LLVMAddTailCallEliminationPass,
-      "Ada_LLVMAddTailCallEliminationPass");
-   pragma Import
-     (C,
-      LLVMAddConstantPropagationPass,
-      "Ada_LLVMAddConstantPropagationPass");
-   pragma Import
-     (C,
-      LLVMAddDemoteMemoryToRegisterPass,
-      "Ada_LLVMAddDemoteMemoryToRegisterPass");
-
-end LLVM_Transforms.Binding;
diff --git a/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms.ads b/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms.ads
deleted file mode 100644
index 4f37aaf..0000000
--- a/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms.ads
+++ /dev/null
@@ -1,6 +0,0 @@
--- This file is generated by SWIG. Do *not* modify by hand.
---
-
-package LLVM_Transforms is
-
-end LLVM_Transforms;
diff --git a/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms_wrap.cxx b/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms_wrap.cxx
deleted file mode 100644
index 8cb04db..0000000
--- a/libclamav/c++/llvm/bindings/ada/transforms/llvm_transforms_wrap.cxx
+++ /dev/null
@@ -1,828 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.36
- * 
- * This file is not intended to be easily readable and contains a number of 
- * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
- * ----------------------------------------------------------------------------- */
-
-
-#ifdef __cplusplus
-template<typename T> class SwigValueWrapper {
-    T *tt;
-public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
-};
-
-template <typename T> T SwigValueInit() {
-  return T();
-}
-#endif
-
-/* -----------------------------------------------------------------------------
- *  This section contains generic SWIG labels for method/variable
- *  declarations/attributes, and other compiler dependent labels.
- * ----------------------------------------------------------------------------- */
-
-/* template workaround for compilers that cannot correctly implement the C++ standard */
-#ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# elif defined(__HP_aCC)
-/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
-/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
-#  define SWIGTEMPLATEDISAMBIGUATOR template
-# else
-#  define SWIGTEMPLATEDISAMBIGUATOR
-# endif
-#endif
-
-/* inline attribute */
-#ifndef SWIGINLINE
-# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
-#   define SWIGINLINE inline
-# else
-#   define SWIGINLINE
-# endif
-#endif
-
-/* attribute recognised by some compilers to avoid 'unused' warnings */
-#ifndef SWIGUNUSED
-# if defined(__GNUC__)
-#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
-#   else
-#     define SWIGUNUSED
-#   endif
-# elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
-# else
-#   define SWIGUNUSED 
-# endif
-#endif
-
-#ifndef SWIGUNUSEDPARM
-# ifdef __cplusplus
-#   define SWIGUNUSEDPARM(p)
-# else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
-# endif
-#endif
-
-/* internal SWIG method */
-#ifndef SWIGINTERN
-# define SWIGINTERN static SWIGUNUSED
-#endif
-
-/* internal inline SWIG method */
-#ifndef SWIGINTERNINLINE
-# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
-#endif
-
-/* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
-#  endif
-#endif
-
-#ifndef SWIGEXPORT
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define SWIGEXPORT
-#   else
-#     define SWIGEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
-#     define SWIGEXPORT __attribute__ ((visibility("default")))
-#   else
-#     define SWIGEXPORT
-#   endif
-# endif
-#endif
-
-/* calling conventions for Windows */
-#ifndef SWIGSTDCALL
-# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#   define SWIGSTDCALL __stdcall
-# else
-#   define SWIGSTDCALL
-# endif 
-#endif
-
-/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
-#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
-# define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
-#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
-# define _SCL_SECURE_NO_DEPRECATE
-#endif
-
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#if defined(_WIN32) || defined(__CYGWIN32__)
-#  define DllExport   __declspec( dllexport )
-#  define SWIGSTDCALL __stdcall
-#else
-#  define DllExport  
-#  define SWIGSTDCALL
-#endif 
-
-
-#ifdef __cplusplus
-#  include <new>
-#endif
-
-
-
-
-/* Support for throwing Ada exceptions from C/C++ */
-
-typedef enum 
-{
-  SWIG_AdaException,
-  SWIG_AdaOutOfMemoryException,
-  SWIG_AdaIndexOutOfRangeException,
-  SWIG_AdaDivideByZeroException,
-  SWIG_AdaArgumentOutOfRangeException,
-  SWIG_AdaNullReferenceException
-} SWIG_AdaExceptionCodes;
-
-
-typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
-
-
-typedef struct 
-{
-  SWIG_AdaExceptionCodes code;
-  SWIG_AdaExceptionCallback_t callback;
-} 
-  SWIG_AdaExceptions_t;
-
-
-static 
-SWIG_AdaExceptions_t 
-SWIG_ada_exceptions[] = 
-{
-  { SWIG_AdaException, NULL },
-  { SWIG_AdaOutOfMemoryException, NULL },
-  { SWIG_AdaIndexOutOfRangeException, NULL },
-  { SWIG_AdaDivideByZeroException, NULL },
-  { SWIG_AdaArgumentOutOfRangeException, NULL },
-  { SWIG_AdaNullReferenceException, NULL } 
-};
-
-
-static 
-void 
-SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
-{
-  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
-  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
-    callback = SWIG_ada_exceptions[code].callback;
-  }
-  callback(msg);
-}
-
-
-
-#ifdef __cplusplus
-extern "C" 
-#endif
-
-DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_Transforms (SWIG_AdaExceptionCallback_t systemException,
-                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
-                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
-                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
-                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
-                                                                   SWIG_AdaExceptionCallback_t nullReference) 
-{
-  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
-  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
-  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
-  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
-  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
-}
-
-
-/* Callback for returning strings to Ada without leaking memory */
-
-typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
-static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
-
-
-
-/* probably obsolete ...
-#ifdef __cplusplus
-extern "C" 
-#endif
-DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_Transforms(SWIG_AdaStringHelperCallback callback) {
-  SWIG_ada_string_callback = callback;
-}
-*/
-
-
-
-/* Contract support */
-
-#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
-
-
-#define protected public
-#define private   public
-
-#include "llvm-c/Transforms/IPO.h"
-#include "llvm-c/Transforms/Scalar.h"
-
-
-
-//  struct LLVMCtxt;
-
-
-#undef protected
-#undef private
-#ifdef __cplusplus 
-extern "C" {
-#endif
-DllExport void SWIGSTDCALL Ada_LLVMAddArgumentPromotionPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddArgumentPromotionPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddConstantMergePass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddConstantMergePass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddDeadArgEliminationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddDeadArgEliminationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddDeadTypeEliminationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddDeadTypeEliminationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddFunctionAttrsPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddFunctionAttrsPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddFunctionInliningPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddFunctionInliningPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddGlobalDCEPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddGlobalDCEPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddGlobalOptimizerPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddGlobalOptimizerPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddIPConstantPropagationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddIPConstantPropagationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddLowerSetJmpPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddLowerSetJmpPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddPruneEHPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddPruneEHPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddRaiseAllocationsPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddRaiseAllocationsPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddStripDeadPrototypesPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddStripDeadPrototypesPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddStripSymbolsPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddStripSymbolsPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddAggressiveDCEPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddAggressiveDCEPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddCFGSimplificationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddCFGSimplificationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddCondPropagationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddCondPropagationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddDeadStoreEliminationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddDeadStoreEliminationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddGVNPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddGVNPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddIndVarSimplifyPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddIndVarSimplifyPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddInstructionCombiningPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddInstructionCombiningPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddJumpThreadingPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddJumpThreadingPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddLICMPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddLICMPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddLoopDeletionPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddLoopDeletionPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddLoopIndexSplitPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddLoopIndexSplitPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddLoopRotatePass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddLoopRotatePass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddLoopUnrollPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddLoopUnrollPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddLoopUnswitchPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddLoopUnswitchPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddMemCpyOptPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddMemCpyOptPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddPromoteMemoryToRegisterPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddPromoteMemoryToRegisterPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddReassociatePass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddReassociatePass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddSCCPPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddSCCPPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddScalarReplAggregatesPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddScalarReplAggregatesPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddSimplifyLibCallsPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddSimplifyLibCallsPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddTailCallEliminationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddTailCallEliminationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddConstantPropagationPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddConstantPropagationPass(arg1);
-  
-  
-}
-
-
-
-DllExport void SWIGSTDCALL Ada_LLVMAddDemoteMemoryToRegisterPass (
-  void * jarg1
-  )
-{
-  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
-  
-  arg1 = (LLVMPassManagerRef)jarg1; 
-  
-  LLVMAddDemoteMemoryToRegisterPass(arg1);
-  
-  
-}
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/libclamav/c++/llvm/bindings/ocaml/Makefile b/libclamav/c++/llvm/bindings/ocaml/Makefile
deleted file mode 100644
index a89caef..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- bindings/ocaml/Makefile -----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../..
-DIRS = llvm bitreader bitwriter analysis target executionengine transforms
-ExtraMakefiles = $(PROJ_OBJ_DIR)/Makefile.ocaml
-
-ocamldoc:
-	$(Verb) for i in $(DIRS) ; do \
-		$(MAKE) -C $$i ocamldoc; \
-	done
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/bindings/ocaml/Makefile.ocaml b/libclamav/c++/llvm/bindings/ocaml/Makefile.ocaml
deleted file mode 100644
index d98a489..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/Makefile.ocaml
+++ /dev/null
@@ -1,338 +0,0 @@
-##===- tools/ml/Makefile -----------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-# 
-# An ocaml library is a unique project type in the context of LLVM, so rules are
-# here rather than in Makefile.rules.
-# 
-# Reference materials on installing ocaml libraries:
-# 
-#   https://fedoraproject.org/wiki/Packaging/OCaml
-#   http://pkg-ocaml-maint.alioth.debian.org/ocaml_packaging_policy.txt
-# 
-##===----------------------------------------------------------------------===##
-
-include $(LEVEL)/Makefile.config
-
-# CFLAGS needs to be set before Makefile.rules is included.
-CXX.Flags += -I"$(shell $(OCAMLC) -where)"
-C.Flags += -I"$(shell $(OCAMLC) -where)"
-
-include $(LEVEL)/Makefile.common
-
-# Intentionally ignore PROJ_prefix here. We want the ocaml stdlib. However, the
-# user can override this with OCAML_LIBDIR or configure --with-ocaml-libdir=.
-PROJ_libocamldir := $(DESTDIR)$(OCAML_LIBDIR)
-OcamlDir := $(LibDir)/ocaml
-
-# Info from llvm-config and similar
-ifdef UsedComponents
-UsedLibs = $(shell $(LLVM_CONFIG) --libs $(UsedComponents))
-UsedLibNames = $(shell $(LLVM_CONFIG) --libnames $(UsedComponents))
-endif
-
-# Tools
-OCAMLCFLAGS += -I $(ObjDir) -I $(OcamlDir)
-ifneq ($(ObjectsO),)
-OCAMLAFLAGS += $(patsubst %,-cclib %, \
-                 $(filter-out -L$(LibDir),-l$(LIBRARYNAME) \
-                                          $(shell $(LLVM_CONFIG) --ldflags)) \
-                                          $(UsedLibs))
-else
-OCAMLAFLAGS += $(patsubst %,-cclib %, \
-                 $(filter-out -L$(LibDir),$(shell $(LLVM_CONFIG) --ldflags)) \
-                                          $(UsedLibs))
-endif
- 
-# -g was introduced in 3.10.0.
-#ifneq ($(ENABLE_OPTIMIZED),1)
-#  OCAMLDEBUGFLAG := -g
-#endif
-
-Compile.CMI  := $(strip $(OCAMLC) -c $(OCAMLCFLAGS) $(OCAMLDEBUGFLAG) -o)
-Compile.CMO  := $(strip $(OCAMLC) -c $(OCAMLCFLAGS) $(OCAMLDEBUGFLAG) -o)
-Archive.CMA  := $(strip $(OCAMLC) -a -custom $(OCAMLAFLAGS) $(OCAMLDEBUGFLAG) \
-                                  -o)
-
-Compile.CMX  := $(strip $(OCAMLOPT) -c $(OCAMLCFLAGS) $(OCAMLDEBUGFLAG) -o)
-Archive.CMXA := $(strip $(OCAMLOPT) -a $(OCAMLAFLAGS) $(OCAMLDEBUGFLAG) -o)
-
-# Source files
-OcamlSources1 := $(sort $(wildcard $(PROJ_SRC_DIR)/*.ml))
-OcamlHeaders1 := $(OcamlSources1:.ml=.mli)
-
-OcamlSources := $(OcamlSources1:$(PROJ_SRC_DIR)/%=$(ObjDir)/%)
-OcamlHeaders := $(OcamlHeaders1:$(PROJ_SRC_DIR)/%=$(ObjDir)/%)
-
-# Intermediate files
-LibraryCMA   := $(ObjDir)/$(LIBRARYNAME).cma
-LibraryCMXA  := $(ObjDir)/$(LIBRARYNAME).cmxa
-ObjectsCMI   := $(OcamlSources:%.ml=%.cmi)
-ObjectsCMO   := $(OcamlSources:%.ml=%.cmo)
-ObjectsCMX   := $(OcamlSources:%.ml=%.cmx)
-
-# Output files
-#   The .cmo files are the only intermediates; all others are to be installed.
-LibraryA   := $(OcamlDir)/lib$(LIBRARYNAME).a
-OutputCMA  := $(LibraryCMA:$(ObjDir)/%.cma=$(OcamlDir)/%.cma)
-OutputCMXA := $(LibraryCMXA:$(ObjDir)/%.cmxa=$(OcamlDir)/%.cmxa)
-OutputsCMI := $(ObjectsCMI:$(ObjDir)/%.cmi=$(OcamlDir)/%.cmi)
-OutputsCMX := $(ObjectsCMX:$(ObjDir)/%.cmx=$(OcamlDir)/%.cmx)
-OutputLibs := $(UsedLibNames:%=$(OcamlDir)/%)
-
-# Installation targets
-DestA    := $(PROJ_libocamldir)/lib$(LIBRARYNAME).a
-DestCMA  := $(PROJ_libocamldir)/$(LIBRARYNAME).cma
-DestCMXA := $(PROJ_libocamldir)/$(LIBRARYNAME).cmxa
-DestLibs := $(UsedLibNames:%=$(PROJ_libocamldir)/%)
-
-
-##===- Dependencies -------------------------------------------------------===##
-# Copy the sources into the intermediate directory because older ocamlc doesn't
-# support -o except when linking (outputs are placed next to inputs).
-
-$(ObjDir)/%.mli: $(PROJ_SRC_DIR)/%.mli $(ObjDir)/.dir
-	$(Verb) $(CP) -f $< $@
-
-$(ObjDir)/%.ml: $(PROJ_SRC_DIR)/%.ml $(ObjDir)/.dir
-	$(Verb) $(CP) -f $< $@
-
-$(ObjDir)/$(LIBRARYNAME).ocamldep: $(OcamlSources) $(OcamlHeaders) \
-                                   $(OcamlDir)/.dir $(ObjDir)/.dir
-	$(Verb) $(OCAMLDEP) $(OCAMLCFLAGS) $(OcamlSources) $(OcamlHeaders) > $@
-
-$(ObjectsCMI): $(UsedOcamlInterfaces:%=$(OcamlDir)/%.cmi)
-
--include $(ObjDir)/$(LIBRARYNAME).ocamldep
-
-
-##===- Build static library from C sources --------------------------------===##
-
-ifneq ($(ObjectsO),)
-all-local:: $(LibraryA)
-clean-local:: clean-a
-install-local:: install-a
-uninstall-local:: uninstall-a
-
-$(LibraryA): $(ObjectsO) $(OcamlDir)/.dir
-	$(Echo) "Building $(BuildMode) $(notdir $@)"
-	-$(Verb) $(RM) -f $@
-	$(Verb) $(Archive) $@ $(ObjectsO)
-	$(Verb) $(Ranlib) $@
-
-clean-a::
-	-$(Verb) $(RM) -f $(LibraryA)
-
-install-a:: $(LibraryA)
-	$(Echo) "Installing $(BuildMode) $(DestA)"
-	$(Verb) $(MKDIR) $(PROJ_libocamldir)
-	$(Verb) $(INSTALL) $(LibraryA) $(DestA)
-	$(Verb) 
-
-uninstall-a::
-	$(Echo) "Uninstalling $(DestA)"
-	-$(Verb) $(RM) -f $(DestA)
-endif
-
-
-##===- Deposit dependent libraries adjacent to Ocaml libs -----------------===##
-
-all-local:: build-deplibs
-clean-local:: clean-deplibs
-install-local:: install-deplibs
-uninstall-local:: uninstall-deplibs
-
-build-deplibs: $(OutputLibs)
-
-$(OcamlDir)/%.a: $(LibDir)/%.a
-	$(Verb) ln -sf $< $@
-
-$(OcamlDir)/%.o: $(LibDir)/%.o
-	$(Verb) ln -sf $< $@
-
-clean-deplibs:
-	$(Verb) rm -f $(OutputLibs)
-
-install-deplibs:
-	$(Verb) for i in $(DestLibs:$(PROJ_libocamldir)/%=%); do \
-	  ln -sf "$(PROJ_libdir)/$$i" "$(PROJ_libocamldir)/$$i"; \
-	done
-
-uninstall-deplibs:
-	$(Verb) rm -f $(DestLibs)
-
-
-##===- Build ocaml interfaces (.mli's -> .cmi's) --------------------------===##
-
-all-local:: build-cmis
-clean-local:: clean-cmis
-install-local:: install-cmis
-uninstall-local:: uninstall-cmis
-
-build-cmis: $(OutputsCMI)
-
-$(OcamlDir)/%.cmi: $(ObjDir)/%.cmi $(OcamlDir)/.dir
-	$(Verb) $(CP) -f $< $@
-
-$(ObjDir)/%.cmi: $(ObjDir)/%.mli $(ObjDir)/.dir
-	$(Echo) "Compiling $(notdir $<) for $(BuildMode) build"
-	$(Verb) $(Compile.CMI) $@ $<
-
-clean-cmis::
-	-$(Verb) $(RM) -f $(OutputsCMI)
-
-# Also install the .mli's (headers) as documentation.
-install-cmis: $(OutputsCMI) $(OcamlHeaders)
-	$(Verb) $(MKDIR) $(PROJ_libocamldir)
-	$(Verb) for i in $(OutputsCMI:$(OcamlDir)/%=%); do \
-	  $(EchoCmd) "Installing $(BuildMode) $(PROJ_libocamldir)/$$i"; \
-	  $(DataInstall) $(OcamlDir)/$$i "$(PROJ_libocamldir)/$$i"; \
-	done
-	$(Verb) for i in $(OcamlHeaders:$(ObjDir)/%=%); do \
-	  $(EchoCmd) "Installing $(BuildMode) $(PROJ_libocamldir)/$$i"; \
-	  $(DataInstall) $(ObjDir)/$$i "$(PROJ_libocamldir)/$$i"; \
-	done
-
-uninstall-cmis::
-	$(Verb) for i in $(OutputsCMI:$(OcamlDir)/%=%); do \
-	  $(EchoCmd) "Uninstalling $(PROJ_libocamldir)/$$i"; \
-	  $(RM) -f "$(PROJ_libocamldir)/$$i"; \
-	done
-	$(Verb) for i in $(OcamlHeaders:$(ObjDir)/%=%); do \
-	  $(EchoCmd) "Uninstalling $(PROJ_libocamldir)/$$i"; \
-	  $(RM) -f "$(PROJ_libocamldir)/$$i"; \
-	done
-
-
-##===- Build ocaml bytecode archive (.ml's -> .cmo's -> .cma) -------------===##
-
-all-local:: $(OutputCMA)
-clean-local:: clean-cma
-install-local:: install-cma
-uninstall-local:: uninstall-cma
-
-$(OutputCMA): $(LibraryCMA) $(OcamlDir)/.dir
-	$(Verb) $(CP) -f $< $@
-
-$(LibraryCMA): $(ObjectsCMO) $(OcamlDir)/.dir
-	$(Echo) "Archiving $(notdir $@) for $(BuildMode) build"
-	$(Verb) $(Archive.CMA) $@ $(ObjectsCMO)
-
-$(ObjDir)/%.cmo: $(ObjDir)/%.ml
-	$(Echo) "Compiling $(notdir $<) for $(BuildMode) build"
-	$(Verb) $(Compile.CMO) $@ $<
-
-clean-cma::
-	$(Verb) $(RM) -f $(OutputCMA) $(UsedLibNames:%=$(OcamlDir)/%)
-
-install-cma:: $(OutputCMA)
-	$(Echo) "Installing $(BuildMode) $(DestCMA)"
-	$(Verb) $(MKDIR) $(PROJ_libocamldir)
-	$(Verb) $(DataInstall) $(OutputCMA) "$(DestCMA)"
-
-uninstall-cma::
-	$(Echo) "Uninstalling $(DestCMA)"
-	-$(Verb) $(RM) -f $(DestCMA)
-
-
-##===- Build optimized ocaml archive (.ml's -> .cmx's -> .cmxa, .a) -------===##
-
-# The ocamlopt compiler is supported on a set of targets disjoint from LLVM's.
-# If unavailable, 'configure' will not define OCAMLOPT in Makefile.config.
-ifdef OCAMLOPT
-
-all-local:: $(OutputCMXA) $(OutputsCMX)
-clean-local:: clean-cmxa
-install-local:: install-cmxa
-uninstall-local:: uninstall-cmxa
-
-$(OutputCMXA): $(LibraryCMXA)
-	$(Verb) $(CP) -f $< $@
-	$(Verb) $(CP) -f $(<:.cmxa=.a) $(@:.cmxa=.a)
-
-$(OcamlDir)/%.cmx: $(ObjDir)/%.cmx
-	$(Verb) $(CP) -f $< $@
-
-$(LibraryCMXA): $(ObjectsCMX)
-	$(Echo) "Archiving $(notdir $@) for $(BuildMode) build"
-	$(Verb) $(Archive.CMXA) $@ $(ObjectsCMX)
-	$(Verb) $(RM) -f $(@:.cmxa=.o)
-
-$(ObjDir)/%.cmx: $(ObjDir)/%.ml
-	$(Echo) "Compiling optimized $(notdir $<) for $(BuildMode) build"
-	$(Verb) $(Compile.CMX) $@ $<
-
-clean-cmxa::
-	$(Verb) $(RM) -f $(OutputCMXA) $(OutputCMXA:.cmxa=.a) $(OutputsCMX)
-
-install-cmxa:: $(OutputCMXA) $(OutputsCMX)
-	$(Verb) $(MKDIR) $(PROJ_libocamldir)
-	$(Echo) "Installing $(BuildMode) $(DestCMXA)"
-	$(Verb) $(DataInstall) $(OutputCMXA) $(DestCMXA)
-	$(Echo) "Installing $(BuildMode) $(DestCMXA:.cmxa=.a)"
-	$(Verb) $(DataInstall) $(OutputCMXA:.cmxa=.a) $(DestCMXA:.cmxa=.a)
-	$(Verb) for i in $(OutputsCMX:$(OcamlDir)/%=%); do \
-	  $(EchoCmd) "Installing $(BuildMode) $(PROJ_libocamldir)/$$i"; \
-	  $(DataInstall) $(OcamlDir)/$$i "$(PROJ_libocamldir)/$$i"; \
-	done
-
-uninstall-cmxa::
-	$(Echo) "Uninstalling $(DestCMXA)"
-	$(Verb) $(RM) -f $(DestCMXA)
-	$(Echo) "Uninstalling $(DestCMXA:.cmxa=.a)"
-	$(Verb) $(RM) -f $(DestCMXA:.cmxa=.a)
-	$(Verb) for i in $(OutputsCMX:$(OcamlDir)/%=%); do \
-	  $(EchoCmd) "Uninstalling $(PROJ_libocamldir)/$$i"; \
-	  $(RM) -f $(PROJ_libocamldir)/$$i; \
-	done
-
-endif
-
-##===- Generate documentation ---------------------------------------------===##
-
-$(ObjDir)/$(LIBRARYNAME).odoc: $(ObjectsCMI)
-	$(Echo) "Documenting $(notdir $@)"
-	$(Verb) $(OCAMLDOC) -I $(ObjDir) -I $(OcamlDir) -dump $@ $(OcamlHeaders)
-
-ocamldoc: $(ObjDir)/$(LIBRARYNAME).odoc
-
-##===- Debugging gunk -----------------------------------------------------===##
-printvars:: printcamlvars
-
-printcamlvars::
-	$(Echo) "LLVM_CONFIG  : " '$(LLVM_CONFIG)'
-	$(Echo) "OCAMLCFLAGS  : " '$(OCAMLCFLAGS)'
-	$(Echo) "OCAMLAFLAGS  : " '$(OCAMLAFLAGS)'
-	$(Echo) "OCAMLC       : " '$(OCAMLC)'
-	$(Echo) "OCAMLOPT     : " '$(OCAMLOPT)'
-	$(Echo) "OCAMLDEP     : " '$(OCAMLDEP)'
-	$(Echo) "Compile.CMI  : " '$(Compile.CMI)'
-	$(Echo) "Compile.CMO  : " '$(Compile.CMO)'
-	$(Echo) "Archive.CMA  : " '$(Archive.CMA)'
-	$(Echo) "Compile.CMX  : " '$(Compile.CMX)'
-	$(Echo) "Archive.CMXA : " '$(Archive.CMXA)'
-	$(Echo) "CAML_LIBDIR  : " '$(CAML_LIBDIR)'
-	$(Echo) "LibraryCMA   : " '$(LibraryCMA)'
-	$(Echo) "LibraryCMXA  : " '$(LibraryCMXA)'
-	$(Echo) "OcamlSources1: " '$(OcamlSources1)'
-	$(Echo) "OcamlSources : " '$(OcamlSources)'
-	$(Echo) "OcamlHeaders : " '$(OcamlHeaders)'
-	$(Echo) "ObjectsCMI   : " '$(ObjectsCMI)'
-	$(Echo) "ObjectsCMO   : " '$(ObjectsCMO)'
-	$(Echo) "ObjectsCMX   : " '$(ObjectsCMX)'
-	$(Echo) "OCAML_LIBDIR : " '$(OCAML_LIBDIR)'
-	$(Echo) "DestA        : " '$(DestA)'
-	$(Echo) "DestCMA      : " '$(DestCMA)'
-	$(Echo) "DestCMXA     : " '$(DestCMXA)'
-	$(Echo) "UsedLibs     : " '$(UsedLibs)'
-	$(Echo) "UsedLibNames : " '$(UsedLibNames)'
-
-.PHONY: printcamlvars   build-cmis \
-            clean-a     clean-cmis     clean-cma     clean-cmxa \
-          install-a   install-cmis   install-cma   install-cmxa \
-		uninstall-a uninstall-cmis uninstall-cma uninstall-cmxa
diff --git a/libclamav/c++/llvm/bindings/ocaml/analysis/Makefile b/libclamav/c++/llvm/bindings/ocaml/analysis/Makefile
deleted file mode 100644
index cbfcb24..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/analysis/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- bindings/ocaml/analysis/Makefile --------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-# 
-# This is the makefile for the Objective Caml Llvm_analysis interface.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../..
-LIBRARYNAME := llvm_analysis
-UsedComponents := analysis
-UsedOcamlInterfaces := llvm
-
-include ../Makefile.ocaml
diff --git a/libclamav/c++/llvm/bindings/ocaml/analysis/analysis_ocaml.c b/libclamav/c++/llvm/bindings/ocaml/analysis/analysis_ocaml.c
deleted file mode 100644
index 9716705..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/analysis/analysis_ocaml.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*===-- analysis_ocaml.c - LLVM Ocaml Glue ----------------------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file glues LLVM's ocaml interface to its C interface. These functions *|
-|* are by and large transparent wrappers to the corresponding C functions.    *|
-|*                                                                            *|
-|* Note that these functions intentionally take liberties with the CAMLparamX *|
-|* macros, since most of the parameters are not GC heap objects.              *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#include "llvm-c/Analysis.h"
-#include "caml/alloc.h"
-#include "caml/mlvalues.h"
-#include "caml/memory.h"
-
-
-/* Llvm.llmodule -> string option */
-CAMLprim value llvm_verify_module(LLVMModuleRef M) {
-  CAMLparam0();
-  CAMLlocal2(String, Option);
-  
-  char *Message;
-  int Result = LLVMVerifyModule(M, LLVMReturnStatusAction, &Message);
-  
-  if (0 == Result) {
-    Option = Val_int(0);
-  } else {
-    Option = alloc(1, 0);
-    String = copy_string(Message);
-    Store_field(Option, 0, String);
-  }
-  
-  LLVMDisposeMessage(Message);
-  
-  CAMLreturn(Option);
-}
-
-/* Llvm.llvalue -> bool */
-CAMLprim value llvm_verify_function(LLVMValueRef Fn) {
-  return Val_bool(LLVMVerifyFunction(Fn, LLVMReturnStatusAction) == 0);
-}
-
-/* Llvm.llmodule -> unit */
-CAMLprim value llvm_assert_valid_module(LLVMModuleRef M) {
-  LLVMVerifyModule(M, LLVMAbortProcessAction, 0);
-  return Val_unit;
-}
-
-/* Llvm.llvalue -> unit */
-CAMLprim value llvm_assert_valid_function(LLVMValueRef Fn) {
-  LLVMVerifyFunction(Fn, LLVMAbortProcessAction);
-  return Val_unit;
-}
-
-/* Llvm.llvalue -> unit */
-CAMLprim value llvm_view_function_cfg(LLVMValueRef Fn) {
-  LLVMViewFunctionCFG(Fn);
-  return Val_unit;
-}
-
-/* Llvm.llvalue -> unit */
-CAMLprim value llvm_view_function_cfg_only(LLVMValueRef Fn) {
-  LLVMViewFunctionCFGOnly(Fn);
-  return Val_unit;
-}
diff --git a/libclamav/c++/llvm/bindings/ocaml/analysis/llvm_analysis.ml b/libclamav/c++/llvm/bindings/ocaml/analysis/llvm_analysis.ml
deleted file mode 100644
index fc4d203..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/analysis/llvm_analysis.ml
+++ /dev/null
@@ -1,22 +0,0 @@
-(*===-- llvm_analysis.ml - LLVM Ocaml Interface -----------------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-
-external verify_module : Llvm.llmodule -> string option = "llvm_verify_module"
-
-external verify_function : Llvm.llvalue -> bool = "llvm_verify_function"
-
-external assert_valid_module : Llvm.llmodule -> unit
-                             = "llvm_assert_valid_module"
-
-external assert_valid_function : Llvm.llvalue -> unit
-                               = "llvm_assert_valid_function"
-external view_function_cfg : Llvm.llvalue -> unit = "llvm_view_function_cfg"
-external view_function_cfg_only : Llvm.llvalue -> unit
-                                = "llvm_view_function_cfg_only"
diff --git a/libclamav/c++/llvm/bindings/ocaml/analysis/llvm_analysis.mli b/libclamav/c++/llvm/bindings/ocaml/analysis/llvm_analysis.mli
deleted file mode 100644
index 793f482..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/analysis/llvm_analysis.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-(*===-- llvm_analysis.mli - LLVM Ocaml Interface ----------------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-(** Intermediate representation analysis.
-
-    This interface provides an ocaml API for LLVM IR analyses, the classes in
-    the Analysis library. *)
-
-(** [verify_module m] returns [None] if the module [m] is valid, and
-    [Some reason] if it is invalid. [reason] is a string containing a
-    human-readable validation report. See [llvm::verifyModule]. *)
-external verify_module : Llvm.llmodule -> string option = "llvm_verify_module"
-
-(** [verify_function f] returns [None] if the function [f] is valid, and
-    [Some reason] if it is invalid. [reason] is a string containing a
-    human-readable validation report. See [llvm::verifyFunction]. *)
-external verify_function : Llvm.llvalue -> bool = "llvm_verify_function"
-
-(** [verify_module m] returns if the module [m] is valid, but prints a
-    validation report to [stderr] and aborts the program if it is invalid. See
-    [llvm::verifyModule]. *)
-external assert_valid_module : Llvm.llmodule -> unit
-                             = "llvm_assert_valid_module"
-
-(** [verify_function f] returns if the function [f] is valid, but prints a
-    validation report to [stderr] and aborts the program if it is invalid. See
-    [llvm::verifyFunction]. *)
-external assert_valid_function : Llvm.llvalue -> unit
-                               = "llvm_assert_valid_function"
-
-(** [view_function_cfg f] opens up a ghostscript window displaying the CFG of
-    the current function with the code for each basic block inside.
-    See [llvm::Function::viewCFG]. *)
-external view_function_cfg : Llvm.llvalue -> unit = "llvm_view_function_cfg"
-
-(** [view_function_cfg_only f] works just like [view_function_cfg], but does not
-    include the contents of basic blocks into the nodes.
-    See [llvm::Function::viewCFGOnly]. *)
-external view_function_cfg_only : Llvm.llvalue -> unit
-                                = "llvm_view_function_cfg_only"
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitreader/Makefile b/libclamav/c++/llvm/bindings/ocaml/bitreader/Makefile
deleted file mode 100644
index a1c7de8..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitreader/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- bindings/ocaml/bitreader/Makefile -------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-# 
-# This is the makefile for the Objective Caml Llvm_bitreader interface.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../..
-LIBRARYNAME := llvm_bitreader
-UsedComponents := bitreader
-UsedOcamlInterfaces := llvm
-
-include ../Makefile.ocaml
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c b/libclamav/c++/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c
deleted file mode 100644
index 5fd9f85..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*===-- bitwriter_ocaml.c - LLVM Ocaml Glue ---------------------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file glues LLVM's ocaml interface to its C interface. These functions *|
-|* are by and large transparent wrappers to the corresponding C functions.    *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#include "llvm-c/BitReader.h"
-#include "caml/alloc.h"
-#include "caml/fail.h"
-#include "caml/memory.h"
-
-
-/* Can't use the recommended caml_named_value mechanism for backwards
-   compatibility reasons. This is largely equivalent. */
-static value llvm_bitreader_error_exn;
-
-CAMLprim value llvm_register_bitreader_exns(value Error) {
-  llvm_bitreader_error_exn = Field(Error, 0);
-  register_global_root(&llvm_bitreader_error_exn);
-  return Val_unit;
-}
-
-static void llvm_raise(value Prototype, char *Message) {
-  CAMLparam1(Prototype);
-  CAMLlocal1(CamlMessage);
-  
-  CamlMessage = copy_string(Message);
-  LLVMDisposeMessage(Message);
-  
-  raise_with_arg(Prototype, CamlMessage);
-  abort(); /* NOTREACHED */
-#ifdef CAMLnoreturn
-  CAMLnoreturn; /* Silences warnings, but is missing in some versions. */
-#endif
-}
-
-
-/*===-- Modules -----------------------------------------------------------===*/
-
-/* Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule */
-CAMLprim value llvm_get_module_provider(LLVMContextRef C,
-                                        LLVMMemoryBufferRef MemBuf) {
-  CAMLparam0();
-  CAMLlocal2(Variant, MessageVal);
-  char *Message;
-  
-  LLVMModuleProviderRef MP;
-  if (LLVMGetBitcodeModuleProviderInContext(C, MemBuf, &MP, &Message))
-    llvm_raise(llvm_bitreader_error_exn, Message);
-  
-  CAMLreturn((value) MemBuf);
-}
-
-/* Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule */
-CAMLprim value llvm_parse_bitcode(LLVMContextRef C,
-                                  LLVMMemoryBufferRef MemBuf) {
-  CAMLparam0();
-  CAMLlocal2(Variant, MessageVal);
-  LLVMModuleRef M;
-  char *Message;
-  
-  if (LLVMParseBitcodeInContext(C, MemBuf, &M, &Message))
-    llvm_raise(llvm_bitreader_error_exn, Message);
-  
-  CAMLreturn((value) M);
-}
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitreader/llvm_bitreader.ml b/libclamav/c++/llvm/bindings/ocaml/bitreader/llvm_bitreader.ml
deleted file mode 100644
index 88587cb..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitreader/llvm_bitreader.ml
+++ /dev/null
@@ -1,21 +0,0 @@
-(*===-- llvm_bitreader.ml - LLVM Ocaml Interface ----------------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-
-exception Error of string
-
-external register_exns : exn -> unit = "llvm_register_bitreader_exns"
-let _ = register_exns (Error "")
-
-external get_module_provider : Llvm.llcontext -> Llvm.llmemorybuffer ->
-                               Llvm.llmoduleprovider
-                             = "llvm_get_module_provider"
-
-external parse_bitcode : Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule
-                       = "llvm_parse_bitcode"
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitreader/llvm_bitreader.mli b/libclamav/c++/llvm/bindings/ocaml/bitreader/llvm_bitreader.mli
deleted file mode 100644
index 5648b35..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitreader/llvm_bitreader.mli
+++ /dev/null
@@ -1,31 +0,0 @@
-(*===-- llvm_bitreader.mli - LLVM Ocaml Interface ---------------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-(** Bitcode reader.
-
-    This interface provides an ocaml API for the LLVM bitcode reader, the
-    classes in the Bitreader library. *)
-
-exception Error of string
-
-(** [get_module_provider context mb] reads the bitcode for a new
-    module provider [m] from the memory buffer [mb] in the context [context].
-    Returns [m] if successful, or raises [Error msg] otherwise, where [msg] is a
-    description of the error encountered. See the function
-    [llvm::getBitcodeModuleProvider]. *)
-external get_module_provider : Llvm.llcontext -> Llvm.llmemorybuffer ->
-                               Llvm.llmoduleprovider
-                             = "llvm_get_module_provider"
-
-(** [parse_bitcode context mb] parses the bitcode for a new module [m] from the
-    memory buffer [mb] in the context [context]. Returns [m] if successful, or
-	 	raises [Error msg] otherwise, where [msg] is a description of the error
-	 	encountered. See the function [llvm::ParseBitcodeFile]. *)
-external parse_bitcode : Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule
-                       = "llvm_parse_bitcode"
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitwriter/Makefile b/libclamav/c++/llvm/bindings/ocaml/bitwriter/Makefile
deleted file mode 100644
index cec0a59..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitwriter/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- bindings/ocaml/bitwriter/Makefile -------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-# 
-# This is the makefile for the Objective Caml Llvm_bitwriter interface.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../..
-LIBRARYNAME := llvm_bitwriter
-UsedComponents := bitwriter
-UsedOcamlInterfaces := llvm
-
-include ../Makefile.ocaml
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitwriter/bitwriter_ocaml.c b/libclamav/c++/llvm/bindings/ocaml/bitwriter/bitwriter_ocaml.c
deleted file mode 100644
index 41aca25..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitwriter/bitwriter_ocaml.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*===-- bitwriter_ocaml.c - LLVM Ocaml Glue ---------------------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file glues LLVM's ocaml interface to its C interface. These functions *|
-|* are by and large transparent wrappers to the corresponding C functions.    *|
-|*                                                                            *|
-|* Note that these functions intentionally take liberties with the CAMLparamX *|
-|* macros, since most of the parameters are not GC heap objects.              *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#include "llvm-c/BitWriter.h"
-#include "llvm-c/Core.h"
-#include "caml/alloc.h"
-#include "caml/mlvalues.h"
-#include "caml/memory.h"
-
-/*===-- Modules -----------------------------------------------------------===*/
-
-/* Llvm.llmodule -> string -> bool */
-CAMLprim value llvm_write_bitcode_file(value M, value Path) {
-  int res = LLVMWriteBitcodeToFile((LLVMModuleRef) M, String_val(Path));
-  return Val_bool(res == 0);
-}
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.ml b/libclamav/c++/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.ml
deleted file mode 100644
index 7b45c53..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.ml
+++ /dev/null
@@ -1,18 +0,0 @@
-(*===-- llvm_bitwriter.ml - LLVM Ocaml Interface ----------------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===
- *
- * This interface provides an ocaml API for the LLVM intermediate
- * representation, the classes in the VMCore library.
- *
- *===----------------------------------------------------------------------===*)
-
-
-(* Writes the bitcode for module the given path. Returns true if successful. *)
-external write_bitcode_file : Llvm.llmodule -> string -> bool
-                            = "llvm_write_bitcode_file"
diff --git a/libclamav/c++/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.mli b/libclamav/c++/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.mli
deleted file mode 100644
index 2f782a1..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-(*===-- llvm_bitwriter.mli - LLVM Ocaml Interface ---------------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-(** Bitcode writer.
-
-    This interface provides an ocaml API for the LLVM bitcode writer, the
-    classes in the Bitwriter library. *)
-
-(** [write_bitcode_file m path] writes the bitcode for module [m] to the file at
-    [path]. Returns [true] if successful, [false] otherwise. *)
-external write_bitcode_file : Llvm.llmodule -> string -> bool
-                            = "llvm_write_bitcode_file"
diff --git a/libclamav/c++/llvm/bindings/ocaml/executionengine/Makefile b/libclamav/c++/llvm/bindings/ocaml/executionengine/Makefile
deleted file mode 100644
index 5fa3f22..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/executionengine/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- bindings/ocaml/executionengine/Makefile --------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-# 
-# This is the makefile for the Objective Caml Llvm_executionengine interface.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../..
-LIBRARYNAME := llvm_executionengine
-UsedComponents := executionengine jit interpreter native
-UsedOcamlInterfaces := llvm llvm_target
-
-include ../Makefile.ocaml
diff --git a/libclamav/c++/llvm/bindings/ocaml/executionengine/executionengine_ocaml.c b/libclamav/c++/llvm/bindings/ocaml/executionengine/executionengine_ocaml.c
deleted file mode 100644
index 647759f..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/executionengine/executionengine_ocaml.c
+++ /dev/null
@@ -1,330 +0,0 @@
-/*===-- executionengine_ocaml.c - LLVM Ocaml Glue ---------------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file glues LLVM's ocaml interface to its C interface. These functions *|
-|* are by and large transparent wrappers to the corresponding C functions.    *|
-|*                                                                            *|
-|* Note that these functions intentionally take liberties with the CAMLparamX *|
-|* macros, since most of the parameters are not GC heap objects.              *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#include "llvm-c/ExecutionEngine.h"
-#include "llvm-c/Target.h"
-#include "caml/alloc.h"
-#include "caml/custom.h"
-#include "caml/fail.h"
-#include "caml/memory.h"
-#include <string.h>
-#include <assert.h>
-
-/* Force the LLVM interpreter, JIT, and native target to be linked in. */
-void llvm_initialize(void) {
-  LLVMLinkInInterpreter();
-  LLVMLinkInJIT();
-  LLVMInitializeNativeTarget();
-}
-
-/* Can't use the recommended caml_named_value mechanism for backwards
-   compatibility reasons. This is largely equivalent. */
-static value llvm_ee_error_exn;
-
-CAMLprim value llvm_register_ee_exns(value Error) {
-  llvm_ee_error_exn = Field(Error, 0);
-  register_global_root(&llvm_ee_error_exn);
-  return Val_unit;
-}
-
-static void llvm_raise(value Prototype, char *Message) {
-  CAMLparam1(Prototype);
-  CAMLlocal1(CamlMessage);
-  
-  CamlMessage = copy_string(Message);
-  LLVMDisposeMessage(Message);
-  
-  raise_with_arg(Prototype, CamlMessage);
-  abort(); /* NOTREACHED */
-#ifdef CAMLnoreturn
-  CAMLnoreturn; /* Silences warnings, but is missing in some versions. */
-#endif
-}
-
-
-/*--... Operations on generic values .......................................--*/
-
-#define Genericvalue_val(v)  (*(LLVMGenericValueRef *)(Data_custom_val(v)))
-
-static void llvm_finalize_generic_value(value GenVal) {
-  LLVMDisposeGenericValue(Genericvalue_val(GenVal));
-}
-
-static struct custom_operations generic_value_ops = {
-  (char *) "LLVMGenericValue",
-  llvm_finalize_generic_value,
-  custom_compare_default,
-  custom_hash_default,
-  custom_serialize_default,
-  custom_deserialize_default
-};
-
-static value alloc_generic_value(LLVMGenericValueRef Ref) {
-  value Val = alloc_custom(&generic_value_ops, sizeof(LLVMGenericValueRef), 0, 1);
-  Genericvalue_val(Val) = Ref;
-  return Val;
-}
-
-/* Llvm.lltype -> float -> t */
-CAMLprim value llvm_genericvalue_of_float(LLVMTypeRef Ty, value N) {
-  CAMLparam1(N);
-  CAMLreturn(alloc_generic_value(
-    LLVMCreateGenericValueOfFloat(Ty, Double_val(N))));
-}
-
-/* 'a -> t */
-CAMLprim value llvm_genericvalue_of_value(value V) {
-  CAMLparam1(V);
-  CAMLreturn(alloc_generic_value(LLVMCreateGenericValueOfPointer(Op_val(V))));
-}
-
-/* Llvm.lltype -> int -> t */
-CAMLprim value llvm_genericvalue_of_int(LLVMTypeRef Ty, value Int) {
-  return alloc_generic_value(LLVMCreateGenericValueOfInt(Ty, Int_val(Int), 1));
-}
-
-/* Llvm.lltype -> int32 -> t */
-CAMLprim value llvm_genericvalue_of_int32(LLVMTypeRef Ty, value Int32) {
-  CAMLparam1(Int32);
-  CAMLreturn(alloc_generic_value(
-    LLVMCreateGenericValueOfInt(Ty, Int32_val(Int32), 1)));
-}
-
-/* Llvm.lltype -> nativeint -> t */
-CAMLprim value llvm_genericvalue_of_nativeint(LLVMTypeRef Ty, value NatInt) {
-  CAMLparam1(NatInt);
-  CAMLreturn(alloc_generic_value(
-    LLVMCreateGenericValueOfInt(Ty, Nativeint_val(NatInt), 1)));
-}
-
-/* Llvm.lltype -> int64 -> t */
-CAMLprim value llvm_genericvalue_of_int64(LLVMTypeRef Ty, value Int64) {
-  CAMLparam1(Int64);
-  CAMLreturn(alloc_generic_value(
-    LLVMCreateGenericValueOfInt(Ty, Int64_val(Int64), 1)));
-}
-
-/* Llvm.lltype -> t -> float */
-CAMLprim value llvm_genericvalue_as_float(LLVMTypeRef Ty, value GenVal) {
-  CAMLparam1(GenVal);
-  CAMLreturn(copy_double(
-    LLVMGenericValueToFloat(Ty, Genericvalue_val(GenVal))));
-}
-
-/* t -> 'a */
-CAMLprim value llvm_genericvalue_as_value(value GenVal) {
-  return Val_op(LLVMGenericValueToPointer(Genericvalue_val(GenVal)));
-}
-
-/* t -> int */
-CAMLprim value llvm_genericvalue_as_int(value GenVal) {
-  assert(LLVMGenericValueIntWidth(Genericvalue_val(GenVal)) <= 8 * sizeof(value)
-         && "Generic value too wide to treat as an int!");
-  return Val_int(LLVMGenericValueToInt(Genericvalue_val(GenVal), 1));
-}
-
-/* t -> int32 */
-CAMLprim value llvm_genericvalue_as_int32(value GenVal) {
-  CAMLparam1(GenVal);
-  assert(LLVMGenericValueIntWidth(Genericvalue_val(GenVal)) <= 32
-         && "Generic value too wide to treat as an int32!");
-  CAMLreturn(copy_int32(LLVMGenericValueToInt(Genericvalue_val(GenVal), 1)));
-}
-
-/* t -> int64 */
-CAMLprim value llvm_genericvalue_as_int64(value GenVal) {
-  CAMLparam1(GenVal);
-  assert(LLVMGenericValueIntWidth(Genericvalue_val(GenVal)) <= 64
-         && "Generic value too wide to treat as an int64!");
-  CAMLreturn(copy_int64(LLVMGenericValueToInt(Genericvalue_val(GenVal), 1)));
-}
-
-/* t -> nativeint */
-CAMLprim value llvm_genericvalue_as_nativeint(value GenVal) {
-  CAMLparam1(GenVal);
-  assert(LLVMGenericValueIntWidth(Genericvalue_val(GenVal)) <= 8 * sizeof(value)
-         && "Generic value too wide to treat as a nativeint!");
-  CAMLreturn(copy_nativeint(LLVMGenericValueToInt(Genericvalue_val(GenVal),1)));
-}
-
-
-/*--... Operations on execution engines ....................................--*/
-
-/* llmoduleprovider -> ExecutionEngine.t */
-CAMLprim LLVMExecutionEngineRef llvm_ee_create(LLVMModuleProviderRef MP) {
-  LLVMExecutionEngineRef Interp;
-  char *Error;
-  if (LLVMCreateExecutionEngine(&Interp, MP, &Error))
-    llvm_raise(llvm_ee_error_exn, Error);
-  return Interp;
-}
-
-/* llmoduleprovider -> ExecutionEngine.t */
-CAMLprim LLVMExecutionEngineRef
-llvm_ee_create_interpreter(LLVMModuleProviderRef MP) {
-  LLVMExecutionEngineRef Interp;
-  char *Error;
-  if (LLVMCreateInterpreter(&Interp, MP, &Error))
-    llvm_raise(llvm_ee_error_exn, Error);
-  return Interp;
-}
-
-/* llmoduleprovider -> ExecutionEngine.t */
-CAMLprim LLVMExecutionEngineRef
-llvm_ee_create_jit(LLVMModuleProviderRef MP) {
-  LLVMExecutionEngineRef JIT;
-  char *Error;
-  if (LLVMCreateJITCompiler(&JIT, MP, 3, &Error))
-    llvm_raise(llvm_ee_error_exn, Error);
-  return JIT;
-}
-
-/* llmoduleprovider -> ExecutionEngine.t */
-CAMLprim LLVMExecutionEngineRef
-llvm_ee_create_fast_jit(LLVMModuleProviderRef MP) {
-  LLVMExecutionEngineRef JIT;
-  char *Error;
-  if (LLVMCreateJITCompiler(&JIT, MP, 0, &Error))
-    llvm_raise(llvm_ee_error_exn, Error);
-  return JIT;
-}
-
-/* ExecutionEngine.t -> unit */
-CAMLprim value llvm_ee_dispose(LLVMExecutionEngineRef EE) {
-  LLVMDisposeExecutionEngine(EE);
-  return Val_unit;
-}
-
-/* llmoduleprovider -> ExecutionEngine.t -> unit */
-CAMLprim value llvm_ee_add_mp(LLVMModuleProviderRef MP,
-                              LLVMExecutionEngineRef EE) {
-  LLVMAddModuleProvider(EE, MP);
-  return Val_unit;
-}
-
-/* llmoduleprovider -> ExecutionEngine.t -> llmodule */
-CAMLprim LLVMModuleRef llvm_ee_remove_mp(LLVMModuleProviderRef MP,
-                                         LLVMExecutionEngineRef EE) {
-  LLVMModuleRef RemovedModule;
-  char *Error;
-  if (LLVMRemoveModuleProvider(EE, MP, &RemovedModule, &Error))
-    llvm_raise(llvm_ee_error_exn, Error);
-  return RemovedModule;
-}
-
-/* string -> ExecutionEngine.t -> llvalue option */
-CAMLprim value llvm_ee_find_function(value Name, LLVMExecutionEngineRef EE) {
-  CAMLparam1(Name);
-  CAMLlocal1(Option);
-  LLVMValueRef Found;
-  if (LLVMFindFunction(EE, String_val(Name), &Found))
-    CAMLreturn(Val_unit);
-  Option = alloc(1, 1);
-  Field(Option, 0) = Val_op(Found);
-  CAMLreturn(Option);
-}
-
-/* llvalue -> GenericValue.t array -> ExecutionEngine.t -> GenericValue.t */
-CAMLprim value llvm_ee_run_function(LLVMValueRef F, value Args,
-                                    LLVMExecutionEngineRef EE) {
-  unsigned NumArgs;
-  LLVMGenericValueRef Result, *GVArgs;
-  unsigned I;
-  
-  NumArgs = Wosize_val(Args);
-  GVArgs = (LLVMGenericValueRef*) malloc(NumArgs * sizeof(LLVMGenericValueRef));
-  for (I = 0; I != NumArgs; ++I)
-    GVArgs[I] = Genericvalue_val(Field(Args, I));
-  
-  Result = LLVMRunFunction(EE, F, NumArgs, GVArgs);
-  
-  free(GVArgs);
-  return alloc_generic_value(Result);
-}
-
-/* ExecutionEngine.t -> unit */
-CAMLprim value llvm_ee_run_static_ctors(LLVMExecutionEngineRef EE) {
-  LLVMRunStaticConstructors(EE);
-  return Val_unit;
-}
-
-/* ExecutionEngine.t -> unit */
-CAMLprim value llvm_ee_run_static_dtors(LLVMExecutionEngineRef EE) {
-  LLVMRunStaticDestructors(EE);
-  return Val_unit;
-}
-
-/* llvalue -> string array -> (string * string) array -> ExecutionEngine.t ->
-   int */
-CAMLprim value llvm_ee_run_function_as_main(LLVMValueRef F,
-                                            value Args, value Env,
-                                            LLVMExecutionEngineRef EE) {
-  CAMLparam2(Args, Env);
-  int I, NumArgs, NumEnv, EnvSize, Result;
-  const char **CArgs, **CEnv;
-  char *CEnvBuf, *Pos;
-  
-  NumArgs = Wosize_val(Args);
-  NumEnv = Wosize_val(Env);
-  
-  /* Build the environment. */
-  CArgs = (const char **) malloc(NumArgs * sizeof(char*));
-  for (I = 0; I != NumArgs; ++I)
-    CArgs[I] = String_val(Field(Args, I));
-  
-  /* Compute the size of the environment string buffer. */
-  for (I = 0, EnvSize = 0; I != NumEnv; ++I) {
-    EnvSize += strlen(String_val(Field(Field(Env, I), 0))) + 1;
-    EnvSize += strlen(String_val(Field(Field(Env, I), 1))) + 1;
-  }
-  
-  /* Build the environment. */
-  CEnv = (const char **) malloc((NumEnv + 1) * sizeof(char*));
-  CEnvBuf = (char*) malloc(EnvSize);
-  Pos = CEnvBuf;
-  for (I = 0; I != NumEnv; ++I) {
-    char *Name  = String_val(Field(Field(Env, I), 0)),
-         *Value = String_val(Field(Field(Env, I), 1));
-    int NameLen  = strlen(Name),
-        ValueLen = strlen(Value);
-    
-    CEnv[I] = Pos;
-    memcpy(Pos, Name, NameLen);
-    Pos += NameLen;
-    *Pos++ = '=';
-    memcpy(Pos, Value, ValueLen);
-    Pos += ValueLen;
-    *Pos++ = '\0';
-  }
-  CEnv[NumEnv] = NULL;
-  
-  Result = LLVMRunFunctionAsMain(EE, F, NumArgs, CArgs, CEnv);
-  
-  free(CArgs);
-  free(CEnv);
-  free(CEnvBuf);
-  
-  CAMLreturn(Val_int(Result));
-}
-
-/* llvalue -> ExecutionEngine.t -> unit */
-CAMLprim value llvm_ee_free_machine_code(LLVMValueRef F,
-                                         LLVMExecutionEngineRef EE) {
-  LLVMFreeMachineCodeForFunction(EE, F);
-  return Val_unit;
-}
-
diff --git a/libclamav/c++/llvm/bindings/ocaml/executionengine/llvm_executionengine.ml b/libclamav/c++/llvm/bindings/ocaml/executionengine/llvm_executionengine.ml
deleted file mode 100644
index cf9acc7..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/executionengine/llvm_executionengine.ml
+++ /dev/null
@@ -1,111 +0,0 @@
-(*===-- llvm_executionengine.ml - LLVM Ocaml Interface ----------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-
-exception Error of string
-
-external register_exns: exn -> unit
-  = "llvm_register_ee_exns"
-
-
-module GenericValue = struct
-  type t
-  
-  external of_float: Llvm.lltype -> float -> t
-    = "llvm_genericvalue_of_float"
-  external of_pointer: 'a -> t
-    = "llvm_genericvalue_of_value"
-  external of_int32: Llvm.lltype -> int32 -> t
-    = "llvm_genericvalue_of_int32"
-  external of_int: Llvm.lltype -> int -> t
-    = "llvm_genericvalue_of_int"
-  external of_nativeint: Llvm.lltype -> nativeint -> t
-    = "llvm_genericvalue_of_nativeint"
-  external of_int64: Llvm.lltype -> int64 -> t
-    = "llvm_genericvalue_of_int64"
-  
-  external as_float: Llvm.lltype -> t -> float
-    = "llvm_genericvalue_as_float"
-  external as_pointer: t -> 'a
-    = "llvm_genericvalue_as_value"
-  external as_int32: t -> int32
-    = "llvm_genericvalue_as_int32"
-  external as_int: t -> int
-    = "llvm_genericvalue_as_int"
-  external as_nativeint: t -> nativeint
-    = "llvm_genericvalue_as_nativeint"
-  external as_int64: t -> int64
-    = "llvm_genericvalue_as_int64"
-end
-
-
-module ExecutionEngine = struct
-  type t
-  
-  (* FIXME: Ocaml is not running this setup code unless we use 'val' in the
-            interface, which causes the emission of a stub for each function;
-            using 'external' in the module allows direct calls into 
-            ocaml_executionengine.c. This is hardly fatal, but it is unnecessary
-            overhead on top of the two stubs that are already invoked for each 
-            call into LLVM. *)
-  let _ = register_exns (Error "")
-  
-  external create: Llvm.llmoduleprovider -> t
-    = "llvm_ee_create"
-  external create_interpreter: Llvm.llmoduleprovider -> t
-    = "llvm_ee_create_interpreter"
-  external create_jit: Llvm.llmoduleprovider -> t
-    = "llvm_ee_create_jit"
-  external create_fast_jit: Llvm.llmoduleprovider -> t
-    = "llvm_ee_create_fast_jit"
-  external dispose: t -> unit
-    = "llvm_ee_dispose"
-  external add_module_provider: Llvm.llmoduleprovider -> t -> unit
-    = "llvm_ee_add_mp"
-  external remove_module_provider: Llvm.llmoduleprovider -> t -> Llvm.llmodule
-    = "llvm_ee_remove_mp"
-  external find_function: string -> t -> Llvm.llvalue option
-    = "llvm_ee_find_function"
-  external run_function: Llvm.llvalue -> GenericValue.t array -> t ->
-                         GenericValue.t
-    = "llvm_ee_run_function"
-  external run_static_ctors: t -> unit
-    = "llvm_ee_run_static_ctors"
-  external run_static_dtors: t -> unit
-    = "llvm_ee_run_static_dtors"
-  external run_function_as_main: Llvm.llvalue -> string array ->
-                                 (string * string) array -> t -> int
-    = "llvm_ee_run_function_as_main"
-  external free_machine_code: Llvm.llvalue -> t -> unit
-    = "llvm_ee_free_machine_code"
-
-  external target_data: t -> Llvm_target.TargetData.t
-    = "LLVMGetExecutionEngineTargetData"
-  
-  (* The following are not bound. Patches are welcome.
-  
-  get_target_data: t -> lltargetdata
-  add_global_mapping: llvalue -> llgenericvalue -> t -> unit
-  clear_all_global_mappings: t -> unit
-  update_global_mapping: llvalue -> llgenericvalue -> t -> unit
-  get_pointer_to_global_if_available: llvalue -> t -> llgenericvalue
-  get_pointer_to_global: llvalue -> t -> llgenericvalue
-  get_pointer_to_function: llvalue -> t -> llgenericvalue
-  get_pointer_to_function_or_stub: llvalue -> t -> llgenericvalue
-  get_global_value_at_address: llgenericvalue -> t -> llvalue option
-  store_value_to_memory: llgenericvalue -> llgenericvalue -> lltype -> unit
-  initialize_memory: llvalue -> llgenericvalue -> t -> unit
-  recompile_and_relink_function: llvalue -> t -> llgenericvalue
-  get_or_emit_global_variable: llvalue -> t -> llgenericvalue
-  disable_lazy_compilation: t -> unit
-  lazy_compilation_enabled: t -> bool
-  install_lazy_function_creator: (string -> llgenericvalue) -> t -> unit
-  
-   *)
-end
diff --git a/libclamav/c++/llvm/bindings/ocaml/executionengine/llvm_executionengine.mli b/libclamav/c++/llvm/bindings/ocaml/executionengine/llvm_executionengine.mli
deleted file mode 100644
index 32e2fdf..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/executionengine/llvm_executionengine.mli
+++ /dev/null
@@ -1,163 +0,0 @@
-(*===-- llvm_executionengine.mli - LLVM Ocaml Interface ---------*- C++ -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-(** JIT Interpreter.
-
-    This interface provides an ocaml API for LLVM execution engine (JIT/
-    interpreter), the classes in the ExecutionEngine library. *)
-
-exception Error of string
-
-module GenericValue: sig
-  (** [GenericValue.t] is a boxed union type used to portably pass arguments to
-      and receive values from the execution engine. It supports only a limited
-      selection of types; for more complex argument types, it is necessary to
-      generate a stub function by hand or to pass parameters by reference.
-      See the struct [llvm::GenericValue]. *)
-  type t
-  
-  (** [of_float fpty n] boxes the float [n] in a float-valued generic value
-      according to the floating point type [fpty]. See the fields
-      [llvm::GenericValue::DoubleVal] and [llvm::GenericValue::FloatVal]. *)
-  val of_float: Llvm.lltype -> float -> t
-  
-  (** [of_pointer v] boxes the pointer value [v] in a generic value. See the
-      field [llvm::GenericValue::PointerVal]. *)
-  val of_pointer: 'a -> t
-  
-  (** [of_int32 n w] boxes the int32 [i] in a generic value with the bitwidth
-      [w]. See the field [llvm::GenericValue::IntVal]. *)
-  val of_int32: Llvm.lltype -> int32 -> t
-  
-  (** [of_int n w] boxes the int [i] in a generic value with the bitwidth
-      [w]. See the field [llvm::GenericValue::IntVal]. *)
-  val of_int: Llvm.lltype -> int -> t
-  
-  (** [of_natint n w] boxes the native int [i] in a generic value with the
-      bitwidth [w]. See the field [llvm::GenericValue::IntVal]. *)
-  val of_nativeint: Llvm.lltype -> nativeint -> t
-  
-  (** [of_int64 n w] boxes the int64 [i] in a generic value with the bitwidth
-      [w]. See the field [llvm::GenericValue::IntVal]. *)
-  val of_int64: Llvm.lltype -> int64 -> t
-  
-  (** [as_float fpty gv] unboxes the floating point-valued generic value [gv] of
-      floating point type [fpty]. See the fields [llvm::GenericValue::DoubleVal]
-      and [llvm::GenericValue::FloatVal]. *)
-  val as_float: Llvm.lltype -> t -> float
-  
-  (** [as_pointer gv] unboxes the pointer-valued generic value [gv]. See the
-      field [llvm::GenericValue::PointerVal]. *)
-  val as_pointer: t -> 'a
-  
-  (** [as_int32 gv] unboxes the integer-valued generic value [gv] as an [int32].
-      Is invalid if [gv] has a bitwidth greater than 32 bits. See the field
-      [llvm::GenericValue::IntVal]. *)
-  val as_int32: t -> int32
-  
-  (** [as_int gv] unboxes the integer-valued generic value [gv] as an [int].
-      Is invalid if [gv] has a bitwidth greater than the host bit width (but the
-      most significant bit may be lost). See the field
-      [llvm::GenericValue::IntVal]. *)
-  val as_int: t -> int
-  
-  (** [as_natint gv] unboxes the integer-valued generic value [gv] as a
-      [nativeint]. Is invalid if [gv] has a bitwidth greater than
-      [nativeint]. See the field [llvm::GenericValue::IntVal]. *)
-  val as_nativeint: t -> nativeint
-  
-  (** [as_int64 gv] returns the integer-valued generic value [gv] as an [int64].
-      Is invalid if [gv] has a bitwidth greater than [int64]. See the field
-      [llvm::GenericValue::IntVal]. *)
-  val as_int64: t -> int64
-end
-
-
-module ExecutionEngine: sig
-  (** An execution engine is either a JIT compiler or an interpreter, capable of
-      directly loading an LLVM module and executing its functions without first
-      invoking a static compiler and generating a native executable. *)
-  type t
-  
-  (** [create mp] creates a new execution engine, taking ownership of the
-      module provider [mp] if successful. Creates a JIT if possible, else falls
-      back to an interpreter. Raises [Error msg] if an error occurrs. The
-      execution engine is not garbage collected and must be destroyed with
-      [dispose ee]. See the function [llvm::EngineBuilder::create]. *)
-  val create: Llvm.llmoduleprovider -> t
-  
-  (** [create_interpreter mp] creates a new interpreter, taking ownership of the
-      module provider [mp] if successful. Raises [Error msg] if an error
-      occurrs. The execution engine is not garbage collected and must be
-      destroyed with [dispose ee].
-      See the function [llvm::EngineBuilder::create]. *)
-  val create_interpreter: Llvm.llmoduleprovider -> t
-  
-  (** [create_jit mp] creates a new JIT (just-in-time compiler), taking
-      ownership of the module provider [mp] if successful. This function creates
-      a JIT which favors code quality over compilation speed. Raises [Error msg]
-      if an error occurrs. The execution engine is not garbage collected and
-      must be destroyed with [dispose ee].
-      See the function [llvm::EngineBuilder::create]. *)
-  val create_jit: Llvm.llmoduleprovider -> t
-  
-  (** [create_fast_jit mp] creates a new JIT (just-in-time compiler) which
-      favors compilation speed over code quality. It takes ownership of the
-      module provider [mp] if successful. Raises [Error msg] if an error
-      occurrs. The execution engine is not garbage collected and must be
-      destroyed with [dispose ee].
-      See the function [llvm::EngineBuilder::create]. *)
-  val create_fast_jit: Llvm.llmoduleprovider -> t
-  
-  (** [dispose ee] releases the memory used by the execution engine and must be
-      invoked to avoid memory leaks. *)
-  val dispose: t -> unit
-  
-  (** [add_module_provider mp ee] adds the module provider [mp] to the execution
-      engine [ee]. *)
-  val add_module_provider: Llvm.llmoduleprovider -> t -> unit
-  
-  (** [remove_module_provider mp ee] removes the module provider [mp] from the
-      execution engine [ee], disposing of [mp] and the module referenced by
-      [mp]. Raises [Error msg] if an error occurs. *)
-  val remove_module_provider: Llvm.llmoduleprovider -> t -> Llvm.llmodule
-  
-  (** [find_function n ee] finds the function named [n] defined in any of the
-      modules owned by the execution engine [ee]. Returns [None] if the function
-      is not found and [Some f] otherwise. *)
-  val find_function: string -> t -> Llvm.llvalue option
-  
-  (** [run_function f args ee] synchronously executes the function [f] with the
-      arguments [args], which must be compatible with the parameter types. *)
-  val run_function: Llvm.llvalue -> GenericValue.t array -> t ->
-                    GenericValue.t
-  
-  (** [run_static_ctors ee] executes the static constructors of each module in
-      the execution engine [ee]. *)
-  val run_static_ctors: t -> unit
-  
-  (** [run_static_dtors ee] executes the static destructors of each module in
-      the execution engine [ee]. *)
-  val run_static_dtors: t -> unit
-  
-  (** [run_function_as_main f args env ee] executes the function [f] as a main
-      function, passing it [argv] and [argc] according to the string array
-      [args], and [envp] as specified by the array [env]. Returns the integer
-      return value of the function. *)
-  val run_function_as_main: Llvm.llvalue -> string array ->
-                            (string * string) array -> t -> int
-  
-  (** [free_machine_code f ee] releases the memory in the execution engine [ee]
-      used to store the machine code for the function [f]. *)
-  val free_machine_code: Llvm.llvalue -> t -> unit
-
-  (** [target_data ee] is the target data owned by the execution engine
-      [ee]. *)
-  val target_data: t -> Llvm_target.TargetData.t
-end
diff --git a/libclamav/c++/llvm/bindings/ocaml/llvm/Makefile b/libclamav/c++/llvm/bindings/ocaml/llvm/Makefile
deleted file mode 100644
index 99e347b..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/llvm/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- bindings/ocaml/llvm/Makefile ------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-# 
-# This is the makefile for the Objective Caml Llvm interface.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../..
-LIBRARYNAME := llvm
-UsedComponents := core
-UsedOcamLibs := llvm
-
-include ../Makefile.ocaml
diff --git a/libclamav/c++/llvm/bindings/ocaml/llvm/llvm.ml b/libclamav/c++/llvm/bindings/ocaml/llvm/llvm.ml
deleted file mode 100644
index 2570702..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/llvm/llvm.ml
+++ /dev/null
@@ -1,906 +0,0 @@
-(*===-- llvm/llvm.ml - LLVM Ocaml Interface --------------------------------===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-
-type llcontext
-type llmodule
-type lltype
-type lltypehandle
-type llvalue
-type llbasicblock
-type llbuilder
-type llmoduleprovider
-type llmemorybuffer
-
-module TypeKind = struct
-  type t =
-  | Void
-  | Float
-  | Double
-  | X86fp80
-  | Fp128
-  | Ppc_fp128
-  | Label
-  | Integer
-  | Function
-  | Struct
-  | Array
-  | Pointer
-  | Opaque
-  | Vector
-  | Metadata
-end
-
-module Linkage = struct
-  type t =
-  | External
-  | Available_externally
-  | Link_once
-  | Weak
-  | Appending
-  | Internal
-  | Dllimport
-  | Dllexport
-  | External_weak
-  | Ghost
-end
-
-module Visibility = struct
-  type t =
-  | Default
-  | Hidden
-  | Protected
-end
-
-module CallConv = struct
-  let c = 0
-  let fast = 8
-  let cold = 9
-  let x86_stdcall = 64
-  let x86_fastcall = 65
-end
-
-module Attribute = struct
-  type t =
-  | Zext
-  | Sext
-  | Noreturn
-  | Inreg
-  | Structret
-  | Nounwind
-  | Noalias
-  | Byval
-  | Nest
-  | Readnone
-  | Readonly
-end
-
-module Icmp = struct
-  type t =
-  | Eq
-  | Ne
-  | Ugt
-  | Uge
-  | Ult
-  | Ule
-  | Sgt
-  | Sge
-  | Slt
-  | Sle
-end
-
-module Fcmp = struct
-  type t =
-  | False
-  | Oeq
-  | Ogt
-  | Oge
-  | Olt
-  | Ole
-  | One
-  | Ord
-  | Uno
-  | Ueq
-  | Ugt
-  | Uge
-  | Ult
-  | Ule
-  | Une
-  | True
-end
-
-exception IoError of string
-
-external register_exns : exn -> unit = "llvm_register_core_exns"
-let _ = register_exns (IoError "")
-
-type ('a, 'b) llpos =
-| At_end of 'a
-| Before of 'b
-
-type ('a, 'b) llrev_pos =
-| At_start of 'a
-| After of 'b
-
-(*===-- Contexts ----------------------------------------------------------===*)
-external create_context : unit -> llcontext = "llvm_create_context"
-external dispose_context : unit -> llcontext = "llvm_dispose_context"
-external global_context : unit -> llcontext = "llvm_global_context"
-
-(*===-- Modules -----------------------------------------------------------===*)
-external create_module : llcontext -> string -> llmodule = "llvm_create_module"
-external dispose_module : llmodule -> unit = "llvm_dispose_module"
-external target_triple: llmodule -> string
-                      = "llvm_target_triple"
-external set_target_triple: string -> llmodule -> unit
-                          = "llvm_set_target_triple"
-external data_layout: llmodule -> string
-                    = "llvm_data_layout"
-external set_data_layout: string -> llmodule -> unit
-                        = "llvm_set_data_layout"
-external define_type_name : string -> lltype -> llmodule -> bool
-                          = "llvm_add_type_name"
-external delete_type_name : string -> llmodule -> unit
-                          = "llvm_delete_type_name"
-external dump_module : llmodule -> unit = "llvm_dump_module"
-
-(*===-- Types -------------------------------------------------------------===*)
-external classify_type : lltype -> TypeKind.t = "llvm_classify_type"
-external type_context : lltype -> llcontext = "llvm_type_context"
-
-(*--... Operations on integer types ........................................--*)
-external i1_type : llcontext -> lltype = "llvm_i1_type"
-external i8_type : llcontext -> lltype = "llvm_i8_type"
-external i16_type : llcontext -> lltype = "llvm_i16_type"
-external i32_type : llcontext -> lltype = "llvm_i32_type"
-external i64_type : llcontext -> lltype = "llvm_i64_type"
-
-external integer_type : llcontext -> int -> lltype = "llvm_integer_type"
-external integer_bitwidth : lltype -> int = "llvm_integer_bitwidth"
-
-(*--... Operations on real types ...........................................--*)
-external float_type : llcontext -> lltype = "llvm_float_type"
-external double_type : llcontext -> lltype = "llvm_double_type"
-external x86fp80_type : llcontext -> lltype = "llvm_x86fp80_type"
-external fp128_type : llcontext -> lltype = "llvm_fp128_type"
-external ppc_fp128_type : llcontext -> lltype = "llvm_ppc_fp128_type"
-
-(*--... Operations on function types .......................................--*)
-external function_type : lltype -> lltype array -> lltype = "llvm_function_type"
-external var_arg_function_type : lltype -> lltype array -> lltype
-                               = "llvm_var_arg_function_type"
-external is_var_arg : lltype -> bool = "llvm_is_var_arg"
-external return_type : lltype -> lltype = "LLVMGetReturnType"
-external param_types : lltype -> lltype array = "llvm_param_types"
-
-(*--... Operations on struct types .........................................--*)
-external struct_type : llcontext -> lltype array -> lltype = "llvm_struct_type"
-external packed_struct_type : llcontext -> lltype array -> lltype
-                            = "llvm_packed_struct_type"
-external element_types : lltype -> lltype array = "llvm_element_types"
-external is_packed : lltype -> bool = "llvm_is_packed"
-
-(*--... Operations on pointer, vector, and array types .....................--*)
-external array_type : lltype -> int -> lltype = "llvm_array_type"
-external pointer_type : lltype -> lltype = "llvm_pointer_type"
-external qualified_pointer_type : lltype -> int -> lltype
-                                = "llvm_qualified_pointer_type"
-external vector_type : lltype -> int -> lltype = "llvm_vector_type"
-
-external element_type : lltype -> lltype = "LLVMGetElementType"
-external array_length : lltype -> int = "llvm_array_length"
-external address_space : lltype -> int = "llvm_address_space"
-external vector_size : lltype -> int = "llvm_vector_size"
-
-(*--... Operations on other types ..........................................--*)
-external opaque_type : llcontext -> lltype = "llvm_opaque_type"
-external void_type : llcontext -> lltype = "llvm_void_type"
-external label_type : llcontext -> lltype = "llvm_label_type"
-
-(*--... Operations on type handles .........................................--*)
-external handle_to_type : lltype -> lltypehandle = "llvm_handle_to_type"
-external type_of_handle : lltypehandle -> lltype = "llvm_type_of_handle"
-external refine_type : lltype -> lltype -> unit = "llvm_refine_type"
-
-
-(*===-- Values ------------------------------------------------------------===*)
-external type_of : llvalue -> lltype = "llvm_type_of"
-external value_name : llvalue -> string = "llvm_value_name"
-external set_value_name : string -> llvalue -> unit = "llvm_set_value_name"
-external dump_value : llvalue -> unit = "llvm_dump_value"
-
-(*--... Operations on constants of (mostly) any type .......................--*)
-external is_constant : llvalue -> bool = "llvm_is_constant"
-external const_null : lltype -> llvalue = "LLVMConstNull"
-external const_all_ones : (*int|vec*)lltype -> llvalue = "LLVMConstAllOnes"
-external undef : lltype -> llvalue = "LLVMGetUndef"
-external is_null : llvalue -> bool = "llvm_is_null"
-external is_undef : llvalue -> bool = "llvm_is_undef"
-
-(*--... Operations on scalar constants .....................................--*)
-external const_int : lltype -> int -> llvalue = "llvm_const_int"
-external const_of_int64 : lltype -> Int64.t -> bool -> llvalue
-                        = "llvm_const_of_int64"
-external const_int_of_string : lltype -> string -> int -> llvalue
-                             = "llvm_const_int_of_string"
-external const_float : lltype -> float -> llvalue = "llvm_const_float"
-external const_float_of_string : lltype -> string -> llvalue
-                               = "llvm_const_float_of_string"
-
-(*--... Operations on composite constants ..................................--*)
-external const_string : llcontext -> string -> llvalue = "llvm_const_string"
-external const_stringz : llcontext -> string -> llvalue = "llvm_const_stringz"
-external const_array : lltype -> llvalue array -> llvalue = "llvm_const_array"
-external const_struct : llcontext -> llvalue array -> llvalue
-                      = "llvm_const_struct"
-external const_packed_struct : llcontext -> llvalue array -> llvalue
-                             = "llvm_const_packed_struct"
-external const_vector : llvalue array -> llvalue = "llvm_const_vector"
-
-(*--... Constant expressions ...............................................--*)
-external align_of : lltype -> llvalue = "LLVMAlignOf"
-external size_of : lltype -> llvalue = "LLVMSizeOf"
-external const_neg : llvalue -> llvalue = "LLVMConstNeg"
-external const_fneg : llvalue -> llvalue = "LLVMConstFNeg"
-external const_not : llvalue -> llvalue = "LLVMConstNot"
-external const_add : llvalue -> llvalue -> llvalue = "LLVMConstAdd"
-external const_nsw_add : llvalue -> llvalue -> llvalue = "LLVMConstNSWAdd"
-external const_fadd : llvalue -> llvalue -> llvalue = "LLVMConstFAdd"
-external const_sub : llvalue -> llvalue -> llvalue = "LLVMConstSub"
-external const_fsub : llvalue -> llvalue -> llvalue = "LLVMConstFSub"
-external const_mul : llvalue -> llvalue -> llvalue = "LLVMConstMul"
-external const_fmul : llvalue -> llvalue -> llvalue = "LLVMConstFMul"
-external const_udiv : llvalue -> llvalue -> llvalue = "LLVMConstUDiv"
-external const_sdiv : llvalue -> llvalue -> llvalue = "LLVMConstSDiv"
-external const_exact_sdiv : llvalue -> llvalue -> llvalue = "LLVMConstExactSDiv"
-external const_fdiv : llvalue -> llvalue -> llvalue = "LLVMConstFDiv"
-external const_urem : llvalue -> llvalue -> llvalue = "LLVMConstURem"
-external const_srem : llvalue -> llvalue -> llvalue = "LLVMConstSRem"
-external const_frem : llvalue -> llvalue -> llvalue = "LLVMConstFRem"
-external const_and : llvalue -> llvalue -> llvalue = "LLVMConstAnd"
-external const_or : llvalue -> llvalue -> llvalue = "LLVMConstOr"
-external const_xor : llvalue -> llvalue -> llvalue = "LLVMConstXor"
-external const_icmp : Icmp.t -> llvalue -> llvalue -> llvalue
-                    = "llvm_const_icmp"
-external const_fcmp : Fcmp.t -> llvalue -> llvalue -> llvalue
-                    = "llvm_const_fcmp"
-external const_shl : llvalue -> llvalue -> llvalue = "LLVMConstShl"
-external const_lshr : llvalue -> llvalue -> llvalue = "LLVMConstLShr"
-external const_ashr : llvalue -> llvalue -> llvalue = "LLVMConstAShr"
-external const_gep : llvalue -> llvalue array -> llvalue = "llvm_const_gep"
-external const_in_bounds_gep : llvalue -> llvalue array -> llvalue
-                            = "llvm_const_in_bounds_gep"
-external const_trunc : llvalue -> lltype -> llvalue = "LLVMConstTrunc"
-external const_sext : llvalue -> lltype -> llvalue = "LLVMConstSExt"
-external const_zext : llvalue -> lltype -> llvalue = "LLVMConstZExt"
-external const_fptrunc : llvalue -> lltype -> llvalue = "LLVMConstFPTrunc"
-external const_fpext : llvalue -> lltype -> llvalue = "LLVMConstFPExt"
-external const_uitofp : llvalue -> lltype -> llvalue = "LLVMConstUIToFP"
-external const_sitofp : llvalue -> lltype -> llvalue = "LLVMConstSIToFP"
-external const_fptoui : llvalue -> lltype -> llvalue = "LLVMConstFPToUI"
-external const_fptosi : llvalue -> lltype -> llvalue = "LLVMConstFPToSI"
-external const_ptrtoint : llvalue -> lltype -> llvalue = "LLVMConstPtrToInt"
-external const_inttoptr : llvalue -> lltype -> llvalue = "LLVMConstIntToPtr"
-external const_bitcast : llvalue -> lltype -> llvalue = "LLVMConstBitCast"
-external const_zext_or_bitcast : llvalue -> lltype -> llvalue
-                             = "LLVMConstZExtOrBitCast"
-external const_sext_or_bitcast : llvalue -> lltype -> llvalue
-                             = "LLVMConstSExtOrBitCast"
-external const_trunc_or_bitcast : llvalue -> lltype -> llvalue
-                              = "LLVMConstTruncOrBitCast"
-external const_pointercast : llvalue -> lltype -> llvalue
-                           = "LLVMConstPointerCast"
-external const_intcast : llvalue -> lltype -> llvalue = "LLVMConstIntCast"
-external const_fpcast : llvalue -> lltype -> llvalue = "LLVMConstFPCast"
-external const_select : llvalue -> llvalue -> llvalue -> llvalue
-                      = "LLVMConstSelect"
-external const_extractelement : llvalue -> llvalue -> llvalue
-                              = "LLVMConstExtractElement"
-external const_insertelement : llvalue -> llvalue -> llvalue -> llvalue
-                             = "LLVMConstInsertElement"
-external const_shufflevector : llvalue -> llvalue -> llvalue -> llvalue
-                             = "LLVMConstShuffleVector"
-external const_extractvalue : llvalue -> int array -> llvalue
-                            = "llvm_const_extractvalue"
-external const_insertvalue : llvalue -> llvalue -> int array -> llvalue
-                           = "llvm_const_insertvalue"
-
-(*--... Operations on global variables, functions, and aliases (globals) ...--*)
-external global_parent : llvalue -> llmodule = "LLVMGetGlobalParent"
-external is_declaration : llvalue -> bool = "llvm_is_declaration"
-external linkage : llvalue -> Linkage.t = "llvm_linkage"
-external set_linkage : Linkage.t -> llvalue -> unit = "llvm_set_linkage"
-external section : llvalue -> string = "llvm_section"
-external set_section : string -> llvalue -> unit = "llvm_set_section"
-external visibility : llvalue -> Visibility.t = "llvm_visibility"
-external set_visibility : Visibility.t -> llvalue -> unit = "llvm_set_visibility"
-external alignment : llvalue -> int = "llvm_alignment"
-external set_alignment : int -> llvalue -> unit = "llvm_set_alignment"
-external is_global_constant : llvalue -> bool = "llvm_is_global_constant"
-external set_global_constant : bool -> llvalue -> unit
-                             = "llvm_set_global_constant"
-
-(*--... Operations on global variables .....................................--*)
-external declare_global : lltype -> string -> llmodule -> llvalue
-                        = "llvm_declare_global"
-external define_global : string -> llvalue -> llmodule -> llvalue
-                       = "llvm_define_global"
-external lookup_global : string -> llmodule -> llvalue option
-                       = "llvm_lookup_global"
-external delete_global : llvalue -> unit = "llvm_delete_global"
-external global_initializer : llvalue -> llvalue = "LLVMGetInitializer"
-external set_initializer : llvalue -> llvalue -> unit = "llvm_set_initializer"
-external remove_initializer : llvalue -> unit = "llvm_remove_initializer"
-external is_thread_local : llvalue -> bool = "llvm_is_thread_local"
-external set_thread_local : bool -> llvalue -> unit = "llvm_set_thread_local"
-external global_begin : llmodule -> (llmodule, llvalue) llpos
-                      = "llvm_global_begin"
-external global_succ : llvalue -> (llmodule, llvalue) llpos
-                     = "llvm_global_succ"
-external global_end : llmodule -> (llmodule, llvalue) llrev_pos
-                    = "llvm_global_end"
-external global_pred : llvalue -> (llmodule, llvalue) llrev_pos
-                     = "llvm_global_pred"
-
-let rec iter_global_range f i e =
-  if i = e then () else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid global variable range.")
-  | Before bb ->
-      f bb;
-      iter_global_range f (global_succ bb) e
-
-let iter_globals f m =
-  iter_global_range f (global_begin m) (At_end m)
-
-let rec fold_left_global_range f init i e =
-  if i = e then init else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid global variable range.")
-  | Before bb -> fold_left_global_range f (f init bb) (global_succ bb) e
-
-let fold_left_globals f init m =
-  fold_left_global_range f init (global_begin m) (At_end m)
-
-let rec rev_iter_global_range f i e =
-  if i = e then () else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid global variable range.")
-  | After bb ->
-      f bb;
-      rev_iter_global_range f (global_pred bb) e
-
-let rev_iter_globals f m =
-  rev_iter_global_range f (global_end m) (At_start m)
-
-let rec fold_right_global_range f i e init =
-  if i = e then init else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid global variable range.")
-  | After bb -> fold_right_global_range f (global_pred bb) e (f bb init)
-
-let fold_right_globals f m init =
-  fold_right_global_range f (global_end m) (At_start m) init
-
-(*--... Operations on functions ............................................--*)
-external declare_function : string -> lltype -> llmodule -> llvalue
-                          = "llvm_declare_function"
-external define_function : string -> lltype -> llmodule -> llvalue
-                         = "llvm_define_function"
-external lookup_function : string -> llmodule -> llvalue option
-                         = "llvm_lookup_function"
-external delete_function : llvalue -> unit = "llvm_delete_function"
-external is_intrinsic : llvalue -> bool = "llvm_is_intrinsic"
-external function_call_conv : llvalue -> int = "llvm_function_call_conv"
-external set_function_call_conv : int -> llvalue -> unit
-                                = "llvm_set_function_call_conv"
-external gc : llvalue -> string option = "llvm_gc"
-external set_gc : string option -> llvalue -> unit = "llvm_set_gc"
-external function_begin : llmodule -> (llmodule, llvalue) llpos
-                        = "llvm_function_begin"
-external function_succ : llvalue -> (llmodule, llvalue) llpos
-                       = "llvm_function_succ"
-external function_end : llmodule -> (llmodule, llvalue) llrev_pos
-                      = "llvm_function_end"
-external function_pred : llvalue -> (llmodule, llvalue) llrev_pos
-                       = "llvm_function_pred"
-
-let rec iter_function_range f i e =
-  if i = e then () else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid function range.")
-  | Before fn ->
-      f fn;
-      iter_function_range f (function_succ fn) e
-
-let iter_functions f m =
-  iter_function_range f (function_begin m) (At_end m)
-
-let rec fold_left_function_range f init i e =
-  if i = e then init else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid function range.")
-  | Before fn -> fold_left_function_range f (f init fn) (function_succ fn) e
-
-let fold_left_functions f init m =
-  fold_left_function_range f init (function_begin m) (At_end m)
-
-let rec rev_iter_function_range f i e =
-  if i = e then () else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid function range.")
-  | After fn ->
-      f fn;
-      rev_iter_function_range f (function_pred fn) e
-
-let rev_iter_functions f m =
-  rev_iter_function_range f (function_end m) (At_start m)
-
-let rec fold_right_function_range f i e init =
-  if i = e then init else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid function range.")
-  | After fn -> fold_right_function_range f (function_pred fn) e (f fn init)
-
-let fold_right_functions f m init =
-  fold_right_function_range f (function_end m) (At_start m) init
-
-external add_function_attr : llvalue -> Attribute.t -> unit
-                           = "llvm_add_function_attr"
-external remove_function_attr : llvalue -> Attribute.t -> unit
-                              = "llvm_remove_function_attr"
-
-(*--... Operations on params ...............................................--*)
-external params : llvalue -> llvalue array = "llvm_params"
-external param : llvalue -> int -> llvalue = "llvm_param"
-external param_parent : llvalue -> llvalue = "LLVMGetParamParent"
-external param_begin : llvalue -> (llvalue, llvalue) llpos = "llvm_param_begin"
-external param_succ : llvalue -> (llvalue, llvalue) llpos = "llvm_param_succ"
-external param_end : llvalue -> (llvalue, llvalue) llrev_pos = "llvm_param_end"
-external param_pred : llvalue -> (llvalue, llvalue) llrev_pos ="llvm_param_pred"
-
-let rec iter_param_range f i e =
-  if i = e then () else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid parameter range.")
-  | Before p ->
-      f p;
-      iter_param_range f (param_succ p) e
-
-let iter_params f fn =
-  iter_param_range f (param_begin fn) (At_end fn)
-
-let rec fold_left_param_range f init i e =
-  if i = e then init else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid parameter range.")
-  | Before p -> fold_left_param_range f (f init p) (param_succ p) e
-
-let fold_left_params f init fn =
-  fold_left_param_range f init (param_begin fn) (At_end fn)
-
-let rec rev_iter_param_range f i e =
-  if i = e then () else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid parameter range.")
-  | After p ->
-      f p;
-      rev_iter_param_range f (param_pred p) e
-
-let rev_iter_params f fn =
-  rev_iter_param_range f (param_end fn) (At_start fn)
-
-let rec fold_right_param_range f init i e =
-  if i = e then init else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid parameter range.")
-  | After p -> fold_right_param_range f (f p init) (param_pred p) e
-
-let fold_right_params f fn init =
-  fold_right_param_range f init (param_end fn) (At_start fn)
-
-external add_param_attr : llvalue -> Attribute.t -> unit
-                        = "llvm_add_param_attr"
-external remove_param_attr : llvalue -> Attribute.t -> unit
-                           = "llvm_remove_param_attr"
-external set_param_alignment : llvalue -> int -> unit
-                             = "llvm_set_param_alignment"
-
-(*--... Operations on basic blocks .........................................--*)
-external value_of_block : llbasicblock -> llvalue = "LLVMBasicBlockAsValue"
-external value_is_block : llvalue -> bool = "llvm_value_is_block"
-external block_of_value : llvalue -> llbasicblock = "LLVMValueAsBasicBlock"
-external block_parent : llbasicblock -> llvalue = "LLVMGetBasicBlockParent"
-external basic_blocks : llvalue -> llbasicblock array = "llvm_basic_blocks"
-external entry_block : llvalue -> llbasicblock = "LLVMGetEntryBasicBlock"
-external delete_block : llbasicblock -> unit = "llvm_delete_block"
-external append_block : llcontext -> string -> llvalue -> llbasicblock
-                      = "llvm_append_block"
-external insert_block : llcontext -> string -> llbasicblock -> llbasicblock
-                      = "llvm_insert_block"
-external block_begin : llvalue -> (llvalue, llbasicblock) llpos
-                     = "llvm_block_begin"
-external block_succ : llbasicblock -> (llvalue, llbasicblock) llpos
-                    = "llvm_block_succ"
-external block_end : llvalue -> (llvalue, llbasicblock) llrev_pos
-                   = "llvm_block_end"
-external block_pred : llbasicblock -> (llvalue, llbasicblock) llrev_pos
-                    = "llvm_block_pred"
-
-let rec iter_block_range f i e =
-  if i = e then () else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid block range.")
-  | Before bb ->
-      f bb;
-      iter_block_range f (block_succ bb) e
-
-let iter_blocks f fn =
-  iter_block_range f (block_begin fn) (At_end fn)
-
-let rec fold_left_block_range f init i e =
-  if i = e then init else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid block range.")
-  | Before bb -> fold_left_block_range f (f init bb) (block_succ bb) e
-
-let fold_left_blocks f init fn =
-  fold_left_block_range f init (block_begin fn) (At_end fn)
-
-let rec rev_iter_block_range f i e =
-  if i = e then () else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid block range.")
-  | After bb ->
-      f bb;
-      rev_iter_block_range f (block_pred bb) e
-
-let rev_iter_blocks f fn =
-  rev_iter_block_range f (block_end fn) (At_start fn)
-
-let rec fold_right_block_range f init i e =
-  if i = e then init else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid block range.")
-  | After bb -> fold_right_block_range f (f bb init) (block_pred bb) e
-
-let fold_right_blocks f fn init =
-  fold_right_block_range f init (block_end fn) (At_start fn)
-
-(*--... Operations on instructions .........................................--*)
-external instr_parent : llvalue -> llbasicblock = "LLVMGetInstructionParent"
-external instr_begin : llbasicblock -> (llbasicblock, llvalue) llpos
-                     = "llvm_instr_begin"
-external instr_succ : llvalue -> (llbasicblock, llvalue) llpos
-                     = "llvm_instr_succ"
-external instr_end : llbasicblock -> (llbasicblock, llvalue) llrev_pos
-                     = "llvm_instr_end"
-external instr_pred : llvalue -> (llbasicblock, llvalue) llrev_pos
-                     = "llvm_instr_pred"
-
-let rec iter_instrs_range f i e =
-  if i = e then () else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid instruction range.")
-  | Before i ->
-      f i;
-      iter_instrs_range f (instr_succ i) e
-
-let iter_instrs f bb =
-  iter_instrs_range f (instr_begin bb) (At_end bb)
-
-let rec fold_left_instrs_range f init i e =
-  if i = e then init else
-  match i with
-  | At_end _ -> raise (Invalid_argument "Invalid instruction range.")
-  | Before i -> fold_left_instrs_range f (f init i) (instr_succ i) e
-
-let fold_left_instrs f init bb =
-  fold_left_instrs_range f init (instr_begin bb) (At_end bb)
-
-let rec rev_iter_instrs_range f i e =
-  if i = e then () else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid instruction range.")
-  | After i ->
-      f i;
-      rev_iter_instrs_range f (instr_pred i) e
-
-let rev_iter_instrs f bb =
-  rev_iter_instrs_range f (instr_end bb) (At_start bb)
-
-let rec fold_right_instr_range f i e init =
-  if i = e then init else
-  match i with
-  | At_start _ -> raise (Invalid_argument "Invalid instruction range.")
-  | After i -> fold_right_instr_range f (instr_pred i) e (f i init)
-
-let fold_right_instrs f bb init =
-  fold_right_instr_range f (instr_end bb) (At_start bb) init
-
-
-(*--... Operations on call sites ...........................................--*)
-external instruction_call_conv: llvalue -> int
-                              = "llvm_instruction_call_conv"
-external set_instruction_call_conv: int -> llvalue -> unit
-                                  = "llvm_set_instruction_call_conv"
-external add_instruction_param_attr : llvalue -> int -> Attribute.t -> unit
-                                    = "llvm_add_instruction_param_attr"
-external remove_instruction_param_attr : llvalue -> int -> Attribute.t -> unit
-                                       = "llvm_remove_instruction_param_attr"
-
-(*--... Operations on call instructions (only) .............................--*)
-external is_tail_call : llvalue -> bool = "llvm_is_tail_call"
-external set_tail_call : bool -> llvalue -> unit = "llvm_set_tail_call"
-
-(*--... Operations on phi nodes ............................................--*)
-external add_incoming : (llvalue * llbasicblock) -> llvalue -> unit
-                      = "llvm_add_incoming"
-external incoming : llvalue -> (llvalue * llbasicblock) list = "llvm_incoming"
-
-
-(*===-- Instruction builders ----------------------------------------------===*)
-external builder : llcontext -> llbuilder = "llvm_builder"
-external position_builder : (llbasicblock, llvalue) llpos -> llbuilder -> unit
-                          = "llvm_position_builder"
-external insertion_block : llbuilder -> llbasicblock = "llvm_insertion_block"
-external insert_into_builder : llvalue -> string -> llbuilder -> unit
-                             = "llvm_insert_into_builder"
-
-let builder_at context ip =
-  let b = builder context in
-  position_builder ip b;
-  b
-
-let builder_before context i = builder_at context (Before i)
-let builder_at_end context bb = builder_at context (At_end bb)
-
-let position_before i = position_builder (Before i)
-let position_at_end bb = position_builder (At_end bb)
-
-
-(*--... Terminators ........................................................--*)
-external build_ret_void : llbuilder -> llvalue = "llvm_build_ret_void"
-external build_ret : llvalue -> llbuilder -> llvalue = "llvm_build_ret"
-external build_aggregate_ret : llvalue array -> llbuilder -> llvalue
-                             = "llvm_build_aggregate_ret"
-external build_br : llbasicblock -> llbuilder -> llvalue = "llvm_build_br"
-external build_cond_br : llvalue -> llbasicblock -> llbasicblock -> llbuilder ->
-                         llvalue = "llvm_build_cond_br"
-external build_switch : llvalue -> llbasicblock -> int -> llbuilder -> llvalue
-                      = "llvm_build_switch"
-external add_case : llvalue -> llvalue -> llbasicblock -> unit
-                  = "llvm_add_case"
-external build_invoke : llvalue -> llvalue array -> llbasicblock ->
-                        llbasicblock -> string -> llbuilder -> llvalue
-                      = "llvm_build_invoke_bc" "llvm_build_invoke_nat"
-external build_unwind : llbuilder -> llvalue = "llvm_build_unwind"
-external build_unreachable : llbuilder -> llvalue = "llvm_build_unreachable"
-
-(*--... Arithmetic .........................................................--*)
-external build_add : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_add"
-external build_nsw_add : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                       = "llvm_build_nsw_add"
-external build_fadd : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fadd"
-external build_sub : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_sub"
-external build_fsub : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fsub"
-external build_mul : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_mul"
-external build_fmul : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fmul"
-external build_udiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_udiv"
-external build_sdiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_sdiv"
-external build_exact_sdiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                          = "llvm_build_exact_sdiv"
-external build_fdiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fdiv"
-external build_urem : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_urem"
-external build_srem : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_srem"
-external build_frem : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_frem"
-external build_shl : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_shl"
-external build_lshr : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_lshr"
-external build_ashr : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_ashr"
-external build_and : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_and"
-external build_or : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                  = "llvm_build_or"
-external build_xor : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_xor"
-external build_neg : llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_neg"
-external build_not : llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_not"
-
-(*--... Memory .............................................................--*)
-external build_malloc : lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_malloc"
-external build_array_malloc : lltype -> llvalue -> string -> llbuilder ->
-                              llvalue = "llvm_build_array_malloc"
-external build_alloca : lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_alloca"
-external build_array_alloca : lltype -> llvalue -> string -> llbuilder ->
-                              llvalue = "llvm_build_array_alloca"
-external build_free : llvalue -> llbuilder -> llvalue = "llvm_build_free"
-external build_load : llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_load"
-external build_store : llvalue -> llvalue -> llbuilder -> llvalue
-                     = "llvm_build_store"
-external build_gep : llvalue -> llvalue array -> string -> llbuilder -> llvalue
-                   = "llvm_build_gep"
-external build_in_bounds_gep : llvalue -> llvalue array -> string ->
-                             llbuilder -> llvalue = "llvm_build_in_bounds_gep"
-external build_struct_gep : llvalue -> int -> string -> llbuilder -> llvalue
-                         = "llvm_build_struct_gep"
-
-external build_global_string : string -> string -> llbuilder -> llvalue
-                             = "llvm_build_global_string"
-external build_global_stringptr  : string -> string -> llbuilder -> llvalue
-                                 = "llvm_build_global_stringptr"
-
-(*--... Casts ..............................................................--*)
-external build_trunc : llvalue -> lltype -> string -> llbuilder -> llvalue
-                     = "llvm_build_trunc"
-external build_zext : llvalue -> lltype -> string -> llbuilder -> llvalue
-                    = "llvm_build_zext"
-external build_sext : llvalue -> lltype -> string -> llbuilder -> llvalue
-                    = "llvm_build_sext"
-external build_fptoui : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_fptoui"
-external build_fptosi : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_fptosi"
-external build_uitofp : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_uitofp"
-external build_sitofp : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_sitofp"
-external build_fptrunc : llvalue -> lltype -> string -> llbuilder -> llvalue
-                       = "llvm_build_fptrunc"
-external build_fpext : llvalue -> lltype -> string -> llbuilder -> llvalue
-                     = "llvm_build_fpext"
-external build_ptrtoint : llvalue -> lltype -> string -> llbuilder -> llvalue
-                        = "llvm_build_prttoint"
-external build_inttoptr : llvalue -> lltype -> string -> llbuilder -> llvalue
-                        = "llvm_build_inttoptr"
-external build_bitcast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                       = "llvm_build_bitcast"
-external build_zext_or_bitcast : llvalue -> lltype -> string -> llbuilder ->
-                                 llvalue = "llvm_build_zext_or_bitcast"
-external build_sext_or_bitcast : llvalue -> lltype -> string -> llbuilder ->
-                                 llvalue = "llvm_build_sext_or_bitcast"
-external build_trunc_or_bitcast : llvalue -> lltype -> string -> llbuilder ->
-                                  llvalue = "llvm_build_trunc_or_bitcast"
-external build_pointercast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                           = "llvm_build_pointercast"
-external build_intcast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                       = "llvm_build_intcast"
-external build_fpcast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_fpcast"
-
-(*--... Comparisons ........................................................--*)
-external build_icmp : Icmp.t -> llvalue -> llvalue -> string ->
-                      llbuilder -> llvalue = "llvm_build_icmp"
-external build_fcmp : Fcmp.t -> llvalue -> llvalue -> string ->
-                      llbuilder -> llvalue = "llvm_build_fcmp"
-
-(*--... Miscellaneous instructions .........................................--*)
-external build_phi : (llvalue * llbasicblock) list -> string -> llbuilder ->
-                     llvalue = "llvm_build_phi"
-external build_call : llvalue -> llvalue array -> string -> llbuilder -> llvalue
-                    = "llvm_build_call"
-external build_select : llvalue -> llvalue -> llvalue -> string -> llbuilder ->
-                        llvalue = "llvm_build_select"
-external build_va_arg : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_va_arg"
-external build_extractelement : llvalue -> llvalue -> string -> llbuilder ->
-                                llvalue = "llvm_build_extractelement"
-external build_insertelement : llvalue -> llvalue -> llvalue -> string ->
-                               llbuilder -> llvalue = "llvm_build_insertelement"
-external build_shufflevector : llvalue -> llvalue -> llvalue -> string ->
-                               llbuilder -> llvalue = "llvm_build_shufflevector"
-external build_extractvalue : llvalue -> int -> string -> llbuilder -> llvalue
-                            = "llvm_build_extractvalue"
-external build_insertvalue : llvalue -> llvalue -> int -> string -> llbuilder ->
-                             llvalue = "llvm_build_insertvalue"
-
-external build_is_null : llvalue -> string -> llbuilder -> llvalue
-                       = "llvm_build_is_null"
-external build_is_not_null : llvalue -> string -> llbuilder -> llvalue
-                           = "llvm_build_is_not_null"
-external build_ptrdiff : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                       = "llvm_build_ptrdiff"
-
-(*===-- Module providers --------------------------------------------------===*)
-
-module ModuleProvider = struct
-  external create : llmodule -> llmoduleprovider
-                  = "LLVMCreateModuleProviderForExistingModule"
-  external dispose : llmoduleprovider -> unit = "llvm_dispose_module_provider"
-end
-  
-
-(*===-- Memory buffers ----------------------------------------------------===*)
-
-module MemoryBuffer = struct
-  external of_file : string -> llmemorybuffer = "llvm_memorybuffer_of_file"
-  external of_stdin : unit -> llmemorybuffer = "llvm_memorybuffer_of_stdin"
-  external dispose : llmemorybuffer -> unit = "llvm_memorybuffer_dispose"
-end
-
-
-(*===-- Pass Manager ------------------------------------------------------===*)
-
-module PassManager = struct
-  type 'a t
-  type any = [ `Module | `Function ]
-  external create : unit -> [ `Module ] t = "llvm_passmanager_create"
-  external create_function : llmoduleprovider -> [ `Function ] t
-                           = "LLVMCreateFunctionPassManager"
-  external run_module : llmodule -> [ `Module ] t -> bool
-                      = "llvm_passmanager_run_module"
-  external initialize : [ `Function ] t -> bool = "llvm_passmanager_initialize"
-  external run_function : llvalue -> [ `Function ] t -> bool
-                        = "llvm_passmanager_run_function"
-  external finalize : [ `Function ] t -> bool = "llvm_passmanager_finalize"
-  external dispose : [< any ] t -> unit = "llvm_passmanager_dispose"
-end
-
-
-(*===-- Non-Externs -------------------------------------------------------===*)
-(* These functions are built using the externals, so must be declared late.   *)
-
-let concat2 sep arr =
-  let s = ref "" in
-  if 0 < Array.length arr then begin
-    s := !s ^ arr.(0);
-    for i = 1 to (Array.length arr) - 1 do
-      s := !s ^ sep ^ arr.(i)
-    done
-  end;
-  !s
-
-let rec string_of_lltype ty =
-  (* FIXME: stop infinite recursion! :) *)
-  match classify_type ty with
-    TypeKind.Integer -> "i" ^ string_of_int (integer_bitwidth ty)
-  | TypeKind.Pointer -> (string_of_lltype (element_type ty)) ^ "*"
-  | TypeKind.Struct ->
-      let s = "{ " ^ (concat2 ", " (
-                Array.map string_of_lltype (element_types ty)
-              )) ^ " }" in
-      if is_packed ty
-        then "<" ^ s ^ ">"
-        else s
-  | TypeKind.Array -> "["   ^ (string_of_int (array_length ty)) ^
-                      " x " ^ (string_of_lltype (element_type ty)) ^ "]"
-  | TypeKind.Vector -> "<"   ^ (string_of_int (vector_size ty)) ^
-                       " x " ^ (string_of_lltype (element_type ty)) ^ ">"
-  | TypeKind.Opaque -> "opaque"
-  | TypeKind.Function -> string_of_lltype (return_type ty) ^
-                         " (" ^ (concat2 ", " (
-                           Array.map string_of_lltype (param_types ty)
-                         )) ^ ")"
-  | TypeKind.Label -> "label"
-  | TypeKind.Ppc_fp128 -> "ppc_fp128"
-  | TypeKind.Fp128 -> "fp128"
-  | TypeKind.X86fp80 -> "x86_fp80"
-  | TypeKind.Double -> "double"
-  | TypeKind.Float -> "float"
-  | TypeKind.Void -> "void"
-  | TypeKind.Metadata -> "metadata"
diff --git a/libclamav/c++/llvm/bindings/ocaml/llvm/llvm.mli b/libclamav/c++/llvm/bindings/ocaml/llvm/llvm.mli
deleted file mode 100644
index 789a975..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/llvm/llvm.mli
+++ /dev/null
@@ -1,2009 +0,0 @@
-(*===-- llvm/llvm.mli - LLVM Ocaml Interface -------------------------------===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-(** Core API.
-
-    This interface provides an ocaml API for the LLVM intermediate
-    representation, the classes in the VMCore library. *)
-
-
-(** {6 Abstract types}
-
-    These abstract types correlate directly to the LLVM VMCore classes. *)
-
-(** The top-level container for all LLVM global data. See the
-    [llvm::LLVMContext] class. *)
-type llcontext
-
-(** The top-level container for all other LLVM Intermediate Representation (IR)
-    objects. See the [llvm::Module] class. *)
-type llmodule
-
-(** Each value in the LLVM IR has a type, an instance of [lltype]. See the
-    [llvm::Type] class. *)
-type lltype
-
-(** When building recursive types using {!refine_type}, [lltype] values may
-    become invalid; use [lltypehandle] to resolve this problem. See the
-    [llvm::AbstractTypeHolder] class. *)
-type lltypehandle
-
-(** Any value in the LLVM IR. Functions, instructions, global variables,
-    constants, and much more are all [llvalues]. See the [llvm::Value] class.
-    This type covers a wide range of subclasses. *)
-type llvalue
-
-(** A basic block in LLVM IR. See the [llvm::BasicBlock] class. *)
-type llbasicblock
-
-(** Used to generate instructions in the LLVM IR. See the [llvm::LLVMBuilder]
-    class. *)
-type llbuilder
-
-(** Used to provide a module to JIT or interpreter.
-    See the [llvm::ModuleProvider] class. *)
-type llmoduleprovider
-
-(** Used to efficiently handle large buffers of read-only binary data.
-    See the [llvm::MemoryBuffer] class. *)
-type llmemorybuffer
-
-(** The kind of an [lltype], the result of [classify_type ty]. See the
-    [llvm::Type::TypeID] enumeration. *)
-module TypeKind : sig
-  type t =
-    Void
-  | Float
-  | Double
-  | X86fp80
-  | Fp128
-  | Ppc_fp128
-  | Label
-  | Integer
-  | Function
-  | Struct
-  | Array
-  | Pointer
-  | Opaque
-  | Vector
-  | Metadata
-end
-
-(** The linkage of a global value, accessed with {!linkage} and
-    {!set_linkage}. See [llvm::GlobalValue::LinkageTypes]. *)
-module Linkage : sig
-  type t =
-    External
-  | Available_externally
-  | Link_once
-  | Weak
-  | Appending
-  | Internal
-  | Dllimport
-  | Dllexport
-  | External_weak
-  | Ghost
-end
-
-(** The linker visibility of a global value, accessed with {!visibility} and
-    {!set_visibility}. See [llvm::GlobalValue::VisibilityTypes]. *)
-module Visibility : sig
-  type t =
-    Default
-  | Hidden
-  | Protected
-end
-
-(** The following calling convention values may be accessed with
-    {!function_call_conv} and {!set_function_call_conv}. Calling
-    conventions are open-ended. *)
-module CallConv : sig
-  val c : int             (** [c] is the C calling convention. *)
-  val fast : int          (** [fast] is the calling convention to allow LLVM
-                              maximum optimization opportunities. Use only with
-                              internal linkage. *)
-  val cold : int          (** [cold] is the calling convention for
-                              callee-save. *)
-  val x86_stdcall : int   (** [x86_stdcall] is the familiar stdcall calling
-                              convention from C. *)
-  val x86_fastcall : int  (** [x86_fastcall] is the familiar fastcall calling
-                              convention from C. *)
-end
-
-module Attribute : sig
-  type t =
-  | Zext
-  | Sext
-  | Noreturn
-  | Inreg
-  | Structret
-  | Nounwind
-  | Noalias
-  | Byval
-  | Nest
-  | Readnone
-  | Readonly
-end
-
-(** The predicate for an integer comparison ([icmp]) instruction.
-    See the [llvm::ICmpInst::Predicate] enumeration. *)
-module Icmp : sig
-  type t =
-  | Eq
-  | Ne
-  | Ugt
-  | Uge
-  | Ult
-  | Ule
-  | Sgt
-  | Sge
-  | Slt
-  | Sle
-end
-
-(** The predicate for a floating-point comparison ([fcmp]) instruction.
-    See the [llvm::FCmpInst::Predicate] enumeration. *)
-module Fcmp : sig
-  type t =
-  | False
-  | Oeq
-  | Ogt
-  | Oge
-  | Olt
-  | Ole
-  | One
-  | Ord
-  | Uno
-  | Ueq
-  | Ugt
-  | Uge
-  | Ult
-  | Ule
-  | Une
-  | True
-end
-
-
-(** {6 Iteration} *)
-
-(** [Before b] and [At_end a] specify positions from the start of the ['b] list
-    of [a]. [llpos] is used to specify positions in and for forward iteration
-    through the various value lists maintained by the LLVM IR. *)
-type ('a, 'b) llpos =
-| At_end of 'a
-| Before of 'b
-
-(** [After b] and [At_start a] specify positions from the end of the ['b] list
-    of [a]. [llrev_pos] is used for reverse iteration through the various value
-    lists maintained by the LLVM IR. *)
-type ('a, 'b) llrev_pos =
-| At_start of 'a
-| After of 'b
-
-
-(** {6 Exceptions} *)
-
-exception IoError of string
-
-
-(** {6 Contexts} *)
-
-(** [create_context ()] creates a context for storing the "global" state in
-    LLVM. See the constructor [llvm::LLVMContext]. *)
-external create_context : unit -> llcontext = "llvm_create_context"
-
-(** [destroy_context ()] destroys a context. See the destructor
-    [llvm::LLVMContext::~LLVMContext]. *)
-external dispose_context : unit -> llcontext = "llvm_dispose_context"
-
-(** See the function [llvm::getGlobalContext]. *)
-external global_context : unit -> llcontext = "llvm_global_context"
-
-
-(** {6 Modules} *)
-
-(** [create_module context id] creates a module with the supplied module ID in
-    the context [context].  Modules are not garbage collected; it is mandatory
-    to call {!dispose_module} to free memory. See the constructor
-    [llvm::Module::Module]. *)
-external create_module : llcontext -> string -> llmodule = "llvm_create_module"
-
-(** [dispose_module m] destroys a module [m] and all of the IR objects it
-    contained. All references to subordinate objects are invalidated;
-    referencing them will invoke undefined behavior. See the destructor
-    [llvm::Module::~Module]. *)
-external dispose_module : llmodule -> unit = "llvm_dispose_module"
-
-(** [target_triple m] is the target specifier for the module [m], something like
-    [i686-apple-darwin8]. See the method [llvm::Module::getTargetTriple]. *)
-external target_triple: llmodule -> string
-                      = "llvm_target_triple"
-
-(** [target_triple triple m] changes the target specifier for the module [m] to
-    the string [triple]. See the method [llvm::Module::setTargetTriple]. *)
-external set_target_triple: string -> llmodule -> unit
-                          = "llvm_set_target_triple"
-
-(** [data_layout m] is the data layout specifier for the module [m], something
-    like [e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-...-a0:0:64-f80:128:128]. See the
-    method [llvm::Module::getDataLayout]. *)
-external data_layout: llmodule -> string
-                    = "llvm_data_layout"
-
-(** [set_data_layout s m] changes the data layout specifier for the module [m]
-    to the string [s]. See the method [llvm::Module::setDataLayout]. *)
-external set_data_layout: string -> llmodule -> unit
-                        = "llvm_set_data_layout"
-
-(** [define_type_name name ty m] adds a named type to the module's symbol table.
-    Returns [true] if successful. If such a name already exists, then no entry
-    is added and [false] is returned. See the [llvm::Module::addTypeName]
-    method. *)
-external define_type_name : string -> lltype -> llmodule -> bool
-                          = "llvm_add_type_name"
-
-(** [delete_type_name name] removes a type name from the module's symbol
-    table. *)
-external delete_type_name : string -> llmodule -> unit
-                          = "llvm_delete_type_name"
-
-(** [dump_module m] prints the .ll representation of the module [m] to standard
-    error. See the method [llvm::Module::dump]. *)
-external dump_module : llmodule -> unit = "llvm_dump_module"
-
-
-(** {6 Types} *)
-
-(** [classify_type ty] returns the {!TypeKind.t} corresponding to the type [ty].
-    See the method [llvm::Type::getTypeID]. *)
-external classify_type : lltype -> TypeKind.t = "llvm_classify_type"
-
-(** [type_context ty] returns the {!llcontext} corresponding to the type [ty].
-    See the method [llvm::Type::getContext]. *)
-external type_context : lltype -> llcontext = "llvm_type_context"
-
-(** [string_of_lltype ty] returns a string describing the type [ty]. *)
-val string_of_lltype : lltype -> string
-
-(** {7 Operations on integer types} *)
-
-(** [i1_type c] returns an integer type of bitwidth 1 in the context [c]. See
-    [llvm::Type::Int1Ty]. *)
-external i1_type : llcontext -> lltype = "llvm_i1_type"
-
-(** [i8_type c] returns an integer type of bitwidth 8 in the context [c]. See
-    [llvm::Type::Int8Ty]. *)
-external i8_type : llcontext -> lltype = "llvm_i8_type"
-
-(** [i16_type c] returns an integer type of bitwidth 16 in the context [c]. See
-    [llvm::Type::Int16Ty]. *)
-external i16_type : llcontext -> lltype = "llvm_i16_type"
-
-(** [i32_type c] returns an integer type of bitwidth 32 in the context [c]. See
-    [llvm::Type::Int32Ty]. *)
-external i32_type : llcontext -> lltype = "llvm_i32_type"
-
-(** [i64_type c] returns an integer type of bitwidth 64 in the context [c]. See
-    [llvm::Type::Int64Ty]. *)
-external i64_type : llcontext -> lltype = "llvm_i64_type"
-
-(** [integer_type c n] returns an integer type of bitwidth [n] in the context
-    [c]. See the method [llvm::IntegerType::get]. *)
-external integer_type : llcontext -> int -> lltype = "llvm_integer_type"
-
-(** [integer_bitwidth c ty] returns the number of bits in the integer type [ty]
-    in the context [c].  See the method [llvm::IntegerType::getBitWidth]. *)
-external integer_bitwidth : lltype -> int = "llvm_integer_bitwidth"
-
-
-(** {7 Operations on real types} *)
-
-(** [float_type c] returns the IEEE 32-bit floating point type in the context
-    [c]. See [llvm::Type::FloatTy]. *)
-external float_type : llcontext -> lltype = "llvm_float_type"
-
-(** [double_type c] returns the IEEE 64-bit floating point type in the context
-    [c]. See [llvm::Type::DoubleTy]. *)
-external double_type : llcontext -> lltype = "llvm_double_type"
-
-(** [x86fp80_type c] returns the x87 80-bit floating point type in the context
-    [c]. See [llvm::Type::X86_FP80Ty]. *)
-external x86fp80_type : llcontext -> lltype = "llvm_x86fp80_type"
-
-(** [fp128_type c] returns the IEEE 128-bit floating point type in the context
-    [c]. See [llvm::Type::FP128Ty]. *)
-external fp128_type : llcontext -> lltype = "llvm_fp128_type"
-
-(** [ppc_fp128_type c] returns the PowerPC 128-bit floating point type in the
-    context [c]. See [llvm::Type::PPC_FP128Ty]. *)
-external ppc_fp128_type : llcontext -> lltype = "llvm_ppc_fp128_type"
-
-
-(** {7 Operations on function types} *)
-
-(** [function_type ret_ty param_tys] returns the function type returning
-    [ret_ty] and taking [param_tys] as parameters.
-    See the method [llvm::FunctionType::get]. *)
-external function_type : lltype -> lltype array -> lltype = "llvm_function_type"
-
-(** [va_arg_function_type ret_ty param_tys] is just like
-    [function_type ret_ty param_tys] except that it returns the function type
-    which also takes a variable number of arguments.
-    See the method [llvm::FunctionType::get]. *)
-external var_arg_function_type : lltype -> lltype array -> lltype
-                               = "llvm_var_arg_function_type"
-
-(** [is_var_arg fty] returns [true] if [fty] is a varargs function type, [false]
-    otherwise. See the method [llvm::FunctionType::isVarArg]. *)
-external is_var_arg : lltype -> bool = "llvm_is_var_arg"
-
-(** [return_type fty] gets the return type of the function type [fty].
-    See the method [llvm::FunctionType::getReturnType]. *)
-external return_type : lltype -> lltype = "LLVMGetReturnType"
-
-(** [param_types fty] gets the parameter types of the function type [fty].
-    See the method [llvm::FunctionType::getParamType]. *)
-external param_types : lltype -> lltype array = "llvm_param_types"
-
-
-(** {7 Operations on struct types} *)
-
-(** [struct_type context tys] returns the structure type in the context
-    [context] containing in the types in the array [tys]. See the method
-    [llvm::StructType::get]. *)
-external struct_type : llcontext -> lltype array -> lltype
-                     = "llvm_struct_type"
-
-(** [packed_struct_type context ys] returns the packed structure type in the
-    context [context] containing in the types in the array [tys]. See the method
-    [llvm::StructType::get]. *)
-external packed_struct_type : llcontext -> lltype array -> lltype
-                            = "llvm_packed_struct_type"
-
-(** [element_types sty] returns the constituent types of the struct type [sty].
-    See the method [llvm::StructType::getElementType]. *)
-external element_types : lltype -> lltype array = "llvm_element_types"
-
-(** [is_packed sty] returns [true] if the structure type [sty] is packed,
-    [false] otherwise. See the method [llvm::StructType::isPacked]. *)
-external is_packed : lltype -> bool = "llvm_is_packed"
-
-
-(** {7 Operations on pointer, vector, and array types} *)
-
-(** [array_type ty n] returns the array type containing [n] elements of type
-    [ty]. See the method [llvm::ArrayType::get]. *)
-external array_type : lltype -> int -> lltype = "llvm_array_type"
-
-(** [pointer_type ty] returns the pointer type referencing objects of type
-    [ty] in the default address space (0).
-    See the method [llvm::PointerType::getUnqual]. *)
-external pointer_type : lltype -> lltype = "llvm_pointer_type"
-
-(** [qualified_pointer_type ty as] returns the pointer type referencing objects
-    of type [ty] in address space [as].
-    See the method [llvm::PointerType::get]. *)
-external qualified_pointer_type : lltype -> int -> lltype
-                                = "llvm_qualified_pointer_type"
-
-(** [vector_type ty n] returns the array type containing [n] elements of the
-    primitive type [ty]. See the method [llvm::ArrayType::get]. *)
-external vector_type : lltype -> int -> lltype = "llvm_vector_type"
-
-(** [element_type ty] returns the element type of the pointer, vector, or array
-    type [ty]. See the method [llvm::SequentialType::get]. *)
-external element_type : lltype -> lltype = "LLVMGetElementType"
-
-(** [element_type aty] returns the element count of the array type [aty].
-    See the method [llvm::ArrayType::getNumElements]. *)
-external array_length : lltype -> int = "llvm_array_length"
-
-(** [address_space pty] returns the address space qualifier of the pointer type
-    [pty]. See the method [llvm::PointerType::getAddressSpace]. *)
-external address_space : lltype -> int = "llvm_address_space"
-
-(** [element_type ty] returns the element count of the vector type [ty].
-    See the method [llvm::VectorType::getNumElements]. *)
-external vector_size : lltype -> int = "llvm_vector_size"
-
-
-(** {7 Operations on other types} *)
-
-(** [opaque_type c] creates a new opaque type distinct from any other in the
-    context [c]. Opaque types are useful for building recursive types in
-    combination with {!refine_type}. See [llvm::OpaqueType::get]. *)
-external opaque_type : llcontext -> lltype = "llvm_opaque_type"
-
-(** [void_type c] creates a type of a function which does not return any
-    value in the context [c]. See [llvm::Type::VoidTy]. *)
-external void_type : llcontext -> lltype = "llvm_void_type"
-
-(** [label_type c] creates a type of a basic block in the context [c]. See
-    [llvm::Type::LabelTy]. *)
-external label_type : llcontext -> lltype = "llvm_label_type"
-
-(** {7 Operations on type handles} *)
-
-(** [handle_to_type ty] creates a handle to the type [ty]. If [ty] is later
-    refined as a result of a call to {!refine_type}, the handle will be updated;
-    any bare [lltype] references will become invalid.
-    See the class [llvm::PATypeHolder]. *)
-external handle_to_type : lltype -> lltypehandle = "llvm_handle_to_type"
-
-(** [type_of_handle tyh] resolves the type handle [tyh].
-    See the method [llvm::PATypeHolder::get()]. *)
-external type_of_handle : lltypehandle -> lltype = "llvm_type_of_handle"
-
-(** [refine_type opaque_ty ty] replaces the abstract type [opaque_ty] with the
-    concrete type [ty] in all users. Warning: This may invalidate {!lltype}
-    values! Use {!lltypehandle} to manipulate potentially abstract types. See
-    the method [llvm::Type::refineAbstractType]. *)
-external refine_type : lltype -> lltype -> unit = "llvm_refine_type"
-
-
-(* {6 Values} *)
-
-(** [type_of v] returns the type of the value [v].
-    See the method [llvm::Value::getType]. *)
-external type_of : llvalue -> lltype = "llvm_type_of"
-
-(** [value_name v] returns the name of the value [v]. For global values, this is
-    the symbol name. For instructions and basic blocks, it is the SSA register
-    name. It is meaningless for constants.
-    See the method [llvm::Value::getName]. *)
-external value_name : llvalue -> string = "llvm_value_name"
-
-(** [set_value_name n v] sets the name of the value [v] to [n]. See the method
-    [llvm::Value::setName]. *)
-external set_value_name : string -> llvalue -> unit = "llvm_set_value_name"
-
-(** [dump_value v] prints the .ll representation of the value [v] to standard
-    error. See the method [llvm::Value::dump]. *)
-external dump_value : llvalue -> unit = "llvm_dump_value"
-
-
-(** {7 Operations on constants of (mostly) any type} *)
-
-(** [is_constant v] returns [true] if the value [v] is a constant, [false]
-    otherwise. Similar to [llvm::isa<Constant>]. *)
-external is_constant : llvalue -> bool = "llvm_is_constant"
-
-(** [const_null ty] returns the constant null (zero) of the type [ty].
-    See the method [llvm::Constant::getNullValue]. *)
-external const_null : lltype -> llvalue = "LLVMConstNull"
-
-(** [const_all_ones ty] returns the constant '-1' of the integer or vector type
-    [ty]. See the method [llvm::Constant::getAllOnesValue]. *)
-external const_all_ones : (*int|vec*)lltype -> llvalue = "LLVMConstAllOnes"
-
-(** [undef ty] returns the undefined value of the type [ty].
-    See the method [llvm::UndefValue::get]. *)
-external undef : lltype -> llvalue = "LLVMGetUndef"
-
-(** [is_null v] returns [true] if the value [v] is the null (zero) value.
-    See the method [llvm::Constant::isNullValue]. *)
-external is_null : llvalue -> bool = "llvm_is_null"
-
-(** [is_undef v] returns [true] if the value [v] is an undefined value, [false]
-    otherwise. Similar to [llvm::isa<UndefValue>]. *)
-external is_undef : llvalue -> bool = "llvm_is_undef"
-
-
-(** {7 Operations on scalar constants} *)
-
-(** [const_int ty i] returns the integer constant of type [ty] and value [i].
-    See the method [llvm::ConstantInt::get]. *)
-external const_int : lltype -> int -> llvalue = "llvm_const_int"
-
-(** [const_of_int64 ty i] returns the integer constant of type [ty] and value
-    [i]. See the method [llvm::ConstantInt::get]. *)
-external const_of_int64 : lltype -> Int64.t -> bool -> llvalue
-                        = "llvm_const_of_int64"
-
-(** [const_int_of_string ty s r] returns the integer constant of type [ty] and
- * value [s], with the radix [r]. See the method [llvm::ConstantInt::get]. *)
-external const_int_of_string : lltype -> string -> int -> llvalue
-                   = "llvm_const_int_of_string"
-
-(** [const_float ty n] returns the floating point constant of type [ty] and
-    value [n]. See the method [llvm::ConstantFP::get]. *)
-external const_float : lltype -> float -> llvalue = "llvm_const_float"
-
-(** [const_float_of_string ty s] returns the floating point constant of type
-    [ty] and value [n]. See the method [llvm::ConstantFP::get]. *)
-external const_float_of_string : lltype -> string -> llvalue
-                               = "llvm_const_float_of_string"
-
-
-(** {7 Operations on composite constants} *)
-
-(** [const_string c s] returns the constant [i8] array with the values of the
-    characters in the string [s] in the context [c]. The array is not 
-    null-terminated (but see {!const_stringz}). This value can in turn be used
-    as the initializer for a global variable. See the method
-    [llvm::ConstantArray::get]. *)
-external const_string : llcontext -> string -> llvalue = "llvm_const_string"
-
-(** [const_stringz c s] returns the constant [i8] array with the values of the
-    characters in the string [s] and a null terminator in the context [c]. This
-    value can in turn be used as the initializer for a global variable.
-    See the method [llvm::ConstantArray::get]. *)
-external const_stringz : llcontext -> string -> llvalue = "llvm_const_stringz"
-
-(** [const_array ty elts] returns the constant array of type
-    [array_type ty (Array.length elts)] and containing the values [elts].
-    This value can in turn be used as the initializer for a global variable.
-    See the method [llvm::ConstantArray::get]. *)
-external const_array : lltype -> llvalue array -> llvalue = "llvm_const_array"
-
-(** [const_struct context elts] returns the structured constant of type
-    [struct_type (Array.map type_of elts)] and containing the values [elts]
-    in the context [context]. This value can in turn be used as the initializer
-    for a global variable. See the method [llvm::ConstantStruct::get]. *)
-external const_struct : llcontext -> llvalue array -> llvalue
-                      = "llvm_const_struct"
-
-(** [const_packed_struct context elts] returns the structured constant of
-    type {!packed_struct_type} [(Array.map type_of elts)] and containing the
-    values [elts] in the context [context]. This value can in turn be used as
-    the initializer for a global variable. See the method
-    [llvm::ConstantStruct::get]. *)
-external const_packed_struct : llcontext -> llvalue array -> llvalue
-                             = "llvm_const_packed_struct"
-
-(** [const_vector elts] returns the vector constant of type
-    [vector_type (type_of elts.(0)) (Array.length elts)] and containing the
-    values [elts]. See the method [llvm::ConstantVector::get]. *)
-external const_vector : llvalue array -> llvalue = "llvm_const_vector"
-
-
-(** {7 Constant expressions} *)
-
-(** [align_of ty] returns the alignof constant for the type [ty]. This is
-    equivalent to [const_ptrtoint (const_gep (const_null (pointer_type {i8,ty}))
-    (const_int i32_type 0) (const_int i32_type 1)) i32_type], but considerably
-    more readable.  See the method [llvm::ConstantExpr::getAlignOf]. *)
-external align_of : lltype -> llvalue = "LLVMAlignOf"
-
-(** [size_of ty] returns the sizeof constant for the type [ty]. This is
-    equivalent to [const_ptrtoint (const_gep (const_null (pointer_type ty))
-    (const_int i32_type 1)) i64_type], but considerably more readable.
-    See the method [llvm::ConstantExpr::getSizeOf]. *)
-external size_of : lltype -> llvalue = "LLVMSizeOf"
-
-(** [const_neg c] returns the arithmetic negation of the constant [c].
-    See the method [llvm::ConstantExpr::getNeg]. *)
-external const_neg : llvalue -> llvalue = "LLVMConstNeg"
-
-(** [const_fneg c] returns the arithmetic negation of the constant float [c].
-    See the method [llvm::ConstantExpr::getFNeg]. *)
-external const_fneg : llvalue -> llvalue = "LLVMConstFNeg"
-
-(** [const_not c] returns the bitwise inverse of the constant [c].
-    See the method [llvm::ConstantExpr::getNot]. *)
-external const_not : llvalue -> llvalue = "LLVMConstNot"
-
-(** [const_add c1 c2] returns the constant sum of two constants.
-    See the method [llvm::ConstantExpr::getAdd]. *)
-external const_add : llvalue -> llvalue -> llvalue = "LLVMConstAdd"
-
-(** [const_nsw_add c1 c2] returns the constant sum of two constants with no
-    signed wrapping. The result is undefined if the sum overflows.
-    See the method [llvm::ConstantExpr::getNSWAdd]. *)
-external const_nsw_add : llvalue -> llvalue -> llvalue = "LLVMConstNSWAdd"
-
-(** [const_fadd c1 c2] returns the constant sum of two constant floats.
-    See the method [llvm::ConstantExpr::getFAdd]. *)
-external const_fadd : llvalue -> llvalue -> llvalue = "LLVMConstFAdd"
-
-(** [const_sub c1 c2] returns the constant difference, [c1 - c2], of two
-    constants. See the method [llvm::ConstantExpr::getSub]. *)
-external const_sub : llvalue -> llvalue -> llvalue = "LLVMConstSub"
-
-(** [const_fsub c1 c2] returns the constant difference, [c1 - c2], of two
-    constant floats. See the method [llvm::ConstantExpr::getFSub]. *)
-external const_fsub : llvalue -> llvalue -> llvalue = "LLVMConstFSub"
-
-(** [const_mul c1 c2] returns the constant product of two constants.
-    See the method [llvm::ConstantExpr::getMul]. *)
-external const_mul : llvalue -> llvalue -> llvalue = "LLVMConstMul"
-
-(** [const_fmul c1 c2] returns the constant product of two constants floats.
-    See the method [llvm::ConstantExpr::getFMul]. *)
-external const_fmul : llvalue -> llvalue -> llvalue = "LLVMConstFMul"
-
-(** [const_udiv c1 c2] returns the constant quotient [c1 / c2] of two unsigned
-    integer constants.
-    See the method [llvm::ConstantExpr::getUDiv]. *)
-external const_udiv : llvalue -> llvalue -> llvalue = "LLVMConstUDiv"
-
-(** [const_sdiv c1 c2] returns the constant quotient [c1 / c2] of two signed
-    integer constants.
-    See the method [llvm::ConstantExpr::getSDiv]. *)
-external const_sdiv : llvalue -> llvalue -> llvalue = "LLVMConstSDiv"
-
-(** [const_exact_sdiv c1 c2] returns the constant quotient [c1 / c2] of two
-    signed integer constants. The result is undefined if the result is rounded
-    or overflows. See the method [llvm::ConstantExpr::getExactSDiv]. *)
-external const_exact_sdiv : llvalue -> llvalue -> llvalue = "LLVMConstExactSDiv"
-
-(** [const_fdiv c1 c2] returns the constant quotient [c1 / c2] of two floating
-    point constants.
-    See the method [llvm::ConstantExpr::getFDiv]. *)
-external const_fdiv : llvalue -> llvalue -> llvalue = "LLVMConstFDiv"
-
-(** [const_urem c1 c2] returns the constant remainder [c1 MOD c2] of two
-    unsigned integer constants.
-    See the method [llvm::ConstantExpr::getURem]. *)
-external const_urem : llvalue -> llvalue -> llvalue = "LLVMConstURem"
-
-(** [const_srem c1 c2] returns the constant remainder [c1 MOD c2] of two
-    signed integer constants.
-    See the method [llvm::ConstantExpr::getSRem]. *)
-external const_srem : llvalue -> llvalue -> llvalue = "LLVMConstSRem"
-
-(** [const_frem c1 c2] returns the constant remainder [c1 MOD c2] of two
-    signed floating point constants.
-    See the method [llvm::ConstantExpr::getFRem]. *)
-external const_frem : llvalue -> llvalue -> llvalue = "LLVMConstFRem"
-
-(** [const_and c1 c2] returns the constant bitwise [AND] of two integer
-    constants.
-    See the method [llvm::ConstantExpr::getAnd]. *)
-external const_and : llvalue -> llvalue -> llvalue = "LLVMConstAnd"
-
-(** [const_or c1 c2] returns the constant bitwise [OR] of two integer
-    constants.
-    See the method [llvm::ConstantExpr::getOr]. *)
-external const_or : llvalue -> llvalue -> llvalue = "LLVMConstOr"
-
-(** [const_xor c1 c2] returns the constant bitwise [XOR] of two integer
-    constants.
-    See the method [llvm::ConstantExpr::getXor]. *)
-external const_xor : llvalue -> llvalue -> llvalue = "LLVMConstXor"
-
-(** [const_icmp pred c1 c2] returns the constant comparison of two integer
-    constants, [c1 pred c2].
-    See the method [llvm::ConstantExpr::getICmp]. *)
-external const_icmp : Icmp.t -> llvalue -> llvalue -> llvalue
-                    = "llvm_const_icmp"
-
-(** [const_fcmp pred c1 c2] returns the constant comparison of two floating
-    point constants, [c1 pred c2].
-    See the method [llvm::ConstantExpr::getFCmp]. *)
-external const_fcmp : Fcmp.t -> llvalue -> llvalue -> llvalue
-                    = "llvm_const_fcmp"
-
-(** [const_shl c1 c2] returns the constant integer [c1] left-shifted by the
-    constant integer [c2].
-    See the method [llvm::ConstantExpr::getShl]. *)
-external const_shl : llvalue -> llvalue -> llvalue = "LLVMConstShl"
-
-(** [const_lshr c1 c2] returns the constant integer [c1] right-shifted by the
-    constant integer [c2] with zero extension.
-    See the method [llvm::ConstantExpr::getLShr]. *)
-external const_lshr : llvalue -> llvalue -> llvalue = "LLVMConstLShr"
-
-(** [const_ashr c1 c2] returns the constant integer [c1] right-shifted by the
-    constant integer [c2] with sign extension.
-    See the method [llvm::ConstantExpr::getAShr]. *)
-external const_ashr : llvalue -> llvalue -> llvalue = "LLVMConstAShr"
-
-(** [const_gep pc indices] returns the constant [getElementPtr] of [p1] with the
-    constant integers indices from the array [indices].
-    See the method [llvm::ConstantExpr::getGetElementPtr]. *)
-external const_gep : llvalue -> llvalue array -> llvalue = "llvm_const_gep"
-
-(** [const_in_bounds_gep pc indices] returns the constant [getElementPtr] of [p1]
-    with the constant integers indices from the array [indices].
-    See the method [llvm::ConstantExpr::getInBoundsGetElementPtr]. *)
-external const_in_bounds_gep : llvalue -> llvalue array -> llvalue
-                            = "llvm_const_in_bounds_gep"
-
-(** [const_trunc c ty] returns the constant truncation of integer constant [c]
-    to the smaller integer type [ty].
-    See the method [llvm::ConstantExpr::getTrunc]. *)
-external const_trunc : llvalue -> lltype -> llvalue = "LLVMConstTrunc"
-
-(** [const_sext c ty] returns the constant sign extension of integer constant
-    [c] to the larger integer type [ty].
-    See the method [llvm::ConstantExpr::getSExt]. *)
-external const_sext : llvalue -> lltype -> llvalue = "LLVMConstSExt"
-
-(** [const_zext c ty] returns the constant zero extension of integer constant
-    [c] to the larger integer type [ty].
-    See the method [llvm::ConstantExpr::getZExt]. *)
-external const_zext : llvalue -> lltype -> llvalue = "LLVMConstZExt"
-
-(** [const_fptrunc c ty] returns the constant truncation of floating point
-    constant [c] to the smaller floating point type [ty].
-    See the method [llvm::ConstantExpr::getFPTrunc]. *)
-external const_fptrunc : llvalue -> lltype -> llvalue = "LLVMConstFPTrunc"
-
-(** [const_fpext c ty] returns the constant extension of floating point constant
-    [c] to the larger floating point type [ty].
-    See the method [llvm::ConstantExpr::getFPExt]. *)
-external const_fpext : llvalue -> lltype -> llvalue = "LLVMConstFPExt"
-
-(** [const_uitofp c ty] returns the constant floating point conversion of
-    unsigned integer constant [c] to the floating point type [ty].
-    See the method [llvm::ConstantExpr::getUIToFP]. *)
-external const_uitofp : llvalue -> lltype -> llvalue = "LLVMConstUIToFP"
-
-(** [const_sitofp c ty] returns the constant floating point conversion of
-    signed integer constant [c] to the floating point type [ty].
-    See the method [llvm::ConstantExpr::getSIToFP]. *)
-external const_sitofp : llvalue -> lltype -> llvalue = "LLVMConstSIToFP"
-
-(** [const_fptoui c ty] returns the constant unsigned integer conversion of
-    floating point constant [c] to integer type [ty].
-    See the method [llvm::ConstantExpr::getFPToUI]. *)
-external const_fptoui : llvalue -> lltype -> llvalue = "LLVMConstFPToUI"
-
-(** [const_fptoui c ty] returns the constant unsigned integer conversion of
-    floating point constant [c] to integer type [ty].
-    See the method [llvm::ConstantExpr::getFPToSI]. *)
-external const_fptosi : llvalue -> lltype -> llvalue = "LLVMConstFPToSI"
-
-(** [const_ptrtoint c ty] returns the constant integer conversion of
-    pointer constant [c] to integer type [ty].
-    See the method [llvm::ConstantExpr::getPtrToInt]. *)
-external const_ptrtoint : llvalue -> lltype -> llvalue = "LLVMConstPtrToInt"
-
-(** [const_inttoptr c ty] returns the constant pointer conversion of
-    integer constant [c] to pointer type [ty].
-    See the method [llvm::ConstantExpr::getIntToPtr]. *)
-external const_inttoptr : llvalue -> lltype -> llvalue = "LLVMConstIntToPtr"
-
-(** [const_bitcast c ty] returns the constant bitwise conversion of constant [c]
-    to type [ty] of equal size.
-    See the method [llvm::ConstantExpr::getBitCast]. *)
-external const_bitcast : llvalue -> lltype -> llvalue = "LLVMConstBitCast"
-
-(** [const_zext_or_bitcast c ty] returns a constant zext or bitwise cast
-    conversion of constant [c] to type [ty].
-    See the method [llvm::ConstantExpr::getZExtOrBitCast]. *)
-external const_zext_or_bitcast : llvalue -> lltype -> llvalue
-                               = "LLVMConstZExtOrBitCast"
-
-(** [const_sext_or_bitcast c ty] returns a constant sext or bitwise cast
-    conversion of constant [c] to type [ty].
-    See the method [llvm::ConstantExpr::getSExtOrBitCast]. *)
-external const_sext_or_bitcast : llvalue -> lltype -> llvalue
-                               = "LLVMConstSExtOrBitCast"
-
-(** [const_trunc_or_bitcast c ty] returns a constant trunc or bitwise cast
-    conversion of constant [c] to type [ty].
-    See the method [llvm::ConstantExpr::getTruncOrBitCast]. *)
-external const_trunc_or_bitcast : llvalue -> lltype -> llvalue
-                                = "LLVMConstTruncOrBitCast"
-
-(** [const_pointercast c ty] returns a constant bitcast or a pointer-to-int
-    cast conversion of constant [c] to type [ty] of equal size.
-    See the method [llvm::ConstantExpr::getPointerCast]. *)
-external const_pointercast : llvalue -> lltype -> llvalue
-                           = "LLVMConstPointerCast"
-
-(** [const_intcast c ty] returns a constant zext, bitcast, or trunc for integer
-    -> integer casts of constant [c] to type [ty].
-    See the method [llvm::ConstantExpr::getIntCast]. *)
-external const_intcast : llvalue -> lltype -> llvalue
-                       = "LLVMConstIntCast"
-
-(** [const_fpcast c ty] returns a constant fpext, bitcast, or fptrunc for fp ->
-    fp casts of constant [c] to type [ty].
-    See the method [llvm::ConstantExpr::getFPCast]. *)
-external const_fpcast : llvalue -> lltype -> llvalue
-                      = "LLVMConstFPCast"
-
-(** [const_select cond t f] returns the constant conditional which returns value
-    [t] if the boolean constant [cond] is true and the value [f] otherwise.
-    See the method [llvm::ConstantExpr::getSelect]. *)
-external const_select : llvalue -> llvalue -> llvalue -> llvalue
-                      = "LLVMConstSelect"
-
-(** [const_extractelement vec i] returns the constant [i]th element of
-    constant vector [vec]. [i] must be a constant [i32] value unsigned less than
-    the size of the vector.
-    See the method [llvm::ConstantExpr::getExtractElement]. *)
-external const_extractelement : llvalue -> llvalue -> llvalue
-                              = "LLVMConstExtractElement"
-
-(** [const_insertelement vec v i] returns the constant vector with the same
-    elements as constant vector [v] but the [i]th element replaced by the
-    constant [v]. [v] must be a constant value with the type of the vector
-    elements. [i] must be a constant [i32] value unsigned less than the size
-    of the vector.
-    See the method [llvm::ConstantExpr::getInsertElement]. *)
-external const_insertelement : llvalue -> llvalue -> llvalue -> llvalue
-                             = "LLVMConstInsertElement"
-
-(** [const_shufflevector a b mask] returns a constant [shufflevector].
-    See the LLVM Language Reference for details on the [sufflevector]
-    instruction.
-    See the method [llvm::ConstantExpr::getShuffleVector]. *)
-external const_shufflevector : llvalue -> llvalue -> llvalue -> llvalue
-                             = "LLVMConstShuffleVector"
-
-(** [const_extractvalue agg idxs] returns the constant [idxs]th value of
-    constant aggregate [agg]. Each [idxs] must be less than the size of the
-    aggregate.  See the method [llvm::ConstantExpr::getExtractValue]. *)
-external const_extractvalue : llvalue -> int array -> llvalue
-                            = "llvm_const_extractvalue"
-
-(** [const_insertvalue agg val idxs] inserts the value [val] in the specified
-    indexs [idxs] in the aggegate [agg]. Each [idxs] must be less than the size
-    of the aggregate. See the method [llvm::ConstantExpr::getInsertValue]. *)
-external const_insertvalue : llvalue -> llvalue -> int array -> llvalue
-                           = "llvm_const_insertvalue"
-
-
-(** {7 Operations on global variables, functions, and aliases (globals)} *)
-
-(** [global_parent g] is the enclosing module of the global value [g].
-    See the method [llvm::GlobalValue::getParent]. *)
-external global_parent : llvalue -> llmodule = "LLVMGetGlobalParent"
-
-(** [is_declaration g] returns [true] if the global value [g] is a declaration
-    only. Returns [false] otherwise.
-    See the method [llvm::GlobalValue::isDeclaration]. *)
-external is_declaration : llvalue -> bool = "llvm_is_declaration"
-
-(** [linkage g] returns the linkage of the global value [g].
-    See the method [llvm::GlobalValue::getLinkage]. *)
-external linkage : llvalue -> Linkage.t = "llvm_linkage"
-
-(** [set_linkage l g] sets the linkage of the global value [g] to [l].
-    See the method [llvm::GlobalValue::setLinkage]. *)
-external set_linkage : Linkage.t -> llvalue -> unit = "llvm_set_linkage"
-
-(** [section g] returns the linker section of the global value [g].
-    See the method [llvm::GlobalValue::getSection]. *)
-external section : llvalue -> string = "llvm_section"
-
-(** [set_section s g] sets the linker section of the global value [g] to [s].
-    See the method [llvm::GlobalValue::setSection]. *)
-external set_section : string -> llvalue -> unit = "llvm_set_section"
-
-(** [visibility g] returns the linker visibility of the global value [g].
-    See the method [llvm::GlobalValue::getVisibility]. *)
-external visibility : llvalue -> Visibility.t = "llvm_visibility"
-
-(** [set_visibility v g] sets the linker visibility of the global value [g] to
-    [v]. See the method [llvm::GlobalValue::setVisibility]. *)
-external set_visibility : Visibility.t -> llvalue -> unit
-                        = "llvm_set_visibility"
-
-(** [alignment g] returns the required alignment of the global value [g].
-    See the method [llvm::GlobalValue::getAlignment]. *)
-external alignment : llvalue -> int = "llvm_alignment"
-
-(** [set_alignment n g] sets the required alignment of the global value [g] to
-    [n] bytes. See the method [llvm::GlobalValue::setAlignment]. *)
-external set_alignment : int -> llvalue -> unit = "llvm_set_alignment"
-
-
-(** {7 Operations on global variables} *)
-
-(** [declare_global ty name m] returns a new global variable of type [ty] and
-    with name [name] in module [m]. If such a global variable already exists,
-    it is returned. If the type of the existing global differs, then a bitcast
-    to [ty] is returned. *)
-external declare_global : lltype -> string -> llmodule -> llvalue
-                        = "llvm_declare_global"
-
-(** [define_global name init m] returns a new global with name [name] and
-    initializer [init] in module [m]. If the named global already exists, it is
-    renamed.
-    See the constructor of [llvm::GlobalVariable]. *)
-external define_global : string -> llvalue -> llmodule -> llvalue
-                       = "llvm_define_global"
-
-(** [lookup_global name m] returns [Some g] if a global variable with name
-    [name] exists in module [m]. If no such global exists, returns [None].
-    See the [llvm::GlobalVariable] constructor. *)
-external lookup_global : string -> llmodule -> llvalue option
-                       = "llvm_lookup_global"
-
-(** [delete_global gv] destroys the global variable [gv].
-    See the method [llvm::GlobalVariable::eraseFromParent]. *)
-external delete_global : llvalue -> unit = "llvm_delete_global"
-
-(** [global_begin m] returns the first position in the global variable list of
-    the module [m]. [global_begin] and [global_succ] can be used to iterate
-    over the global list in order.
-    See the method [llvm::Module::global_begin]. *)
-external global_begin : llmodule -> (llmodule, llvalue) llpos
-                      = "llvm_global_begin"
-
-(** [global_succ gv] returns the global variable list position succeeding
-    [Before gv].
-    See the method [llvm::Module::global_iterator::operator++]. *)
-external global_succ : llvalue -> (llmodule, llvalue) llpos
-                     = "llvm_global_succ"
-
-(** [iter_globals f m] applies function [f] to each of the global variables of
-    module [m] in order. Tail recursive. *)
-val iter_globals : (llvalue -> unit) -> llmodule -> unit
-
-(** [fold_left_globals f init m] is [f (... (f init g1) ...) gN] where
-    [g1,...,gN] are the global variables of module [m]. Tail recursive. *)
-val fold_left_globals : ('a -> llvalue -> 'a) -> 'a -> llmodule -> 'a
-
-(** [global_end m] returns the last position in the global variable list of the
-    module [m]. [global_end] and [global_pred] can be used to iterate over the
-    global list in reverse.
-    See the method [llvm::Module::global_end]. *)
-external global_end : llmodule -> (llmodule, llvalue) llrev_pos
-                    = "llvm_global_end"
-
-(** [global_pred gv] returns the global variable list position preceding
-    [After gv].
-    See the method [llvm::Module::global_iterator::operator--]. *)
-external global_pred : llvalue -> (llmodule, llvalue) llrev_pos
-                     = "llvm_global_pred"
-
-(** [rev_iter_globals f m] applies function [f] to each of the global variables
-    of module [m] in reverse order. Tail recursive. *)
-val rev_iter_globals : (llvalue -> unit) -> llmodule -> unit
-
-(** [fold_right_globals f m init] is [f g1 (... (f gN init) ...)] where
-    [g1,...,gN] are the global variables of module [m]. Tail recursive. *)
-val fold_right_globals : (llvalue -> 'a -> 'a) -> llmodule -> 'a -> 'a
-
-(** [is_global_constant gv] returns [true] if the global variabile [gv] is a
-    constant. Returns [false] otherwise.
-    See the method [llvm::GlobalVariable::isConstant]. *)
-external is_global_constant : llvalue -> bool = "llvm_is_global_constant"
-
-(** [set_global_constant c gv] sets the global variable [gv] to be a constant if
-    [c] is [true] and not if [c] is [false].
-    See the method [llvm::GlobalVariable::setConstant]. *)
-external set_global_constant : bool -> llvalue -> unit
-                             = "llvm_set_global_constant"
-
-(** [global_initializer gv] returns the initializer for the global variable
-    [gv]. See the method [llvm::GlobalVariable::getInitializer]. *)
-external global_initializer : llvalue -> llvalue = "LLVMGetInitializer"
-
-(** [set_initializer c gv] sets the initializer for the global variable
-    [gv] to the constant [c].
-    See the method [llvm::GlobalVariable::setInitializer]. *)
-external set_initializer : llvalue -> llvalue -> unit = "llvm_set_initializer"
-
-(** [remove_initializer gv] unsets the initializer for the global variable
-    [gv].
-    See the method [llvm::GlobalVariable::setInitializer]. *)
-external remove_initializer : llvalue -> unit = "llvm_remove_initializer"
-
-(** [is_thread_local gv] returns [true] if the global variable [gv] is
-    thread-local and [false] otherwise.
-    See the method [llvm::GlobalVariable::isThreadLocal]. *)
-external is_thread_local : llvalue -> bool = "llvm_is_thread_local"
-
-(** [set_thread_local c gv] sets the global variable [gv] to be thread local if
-    [c] is [true] and not otherwise.
-    See the method [llvm::GlobalVariable::setThreadLocal]. *)
-external set_thread_local : bool -> llvalue -> unit = "llvm_set_thread_local"
-
-
-(** {7 Operations on functions} *)
-
-(** [declare_function name ty m] returns a new function of type [ty] and
-    with name [name] in module [m]. If such a function already exists,
-    it is returned. If the type of the existing function differs, then a bitcast
-    to [ty] is returned. *)
-external declare_function : string -> lltype -> llmodule -> llvalue
-                          = "llvm_declare_function"
-
-(** [define_function name ty m] creates a new function with name [name] and
-    type [ty] in module [m]. If the named function already exists, it is
-    renamed. An entry basic block is created in the function.
-    See the constructor of [llvm::GlobalVariable]. *)
-external define_function : string -> lltype -> llmodule -> llvalue
-                         = "llvm_define_function"
-
-(** [lookup_function name m] returns [Some f] if a function with name
-    [name] exists in module [m]. If no such function exists, returns [None].
-    See the method [llvm::Module] constructor. *)
-external lookup_function : string -> llmodule -> llvalue option
-                         = "llvm_lookup_function"
-
-(** [delete_function f] destroys the function [f].
-    See the method [llvm::Function::eraseFromParent]. *)
-external delete_function : llvalue -> unit = "llvm_delete_function"
-
-(** [function_begin m] returns the first position in the function list of the
-    module [m]. [function_begin] and [function_succ] can be used to iterate over
-    the function list in order.
-    See the method [llvm::Module::begin]. *)
-external function_begin : llmodule -> (llmodule, llvalue) llpos
-                        = "llvm_function_begin"
-
-(** [function_succ gv] returns the function list position succeeding
-    [Before gv].
-    See the method [llvm::Module::iterator::operator++]. *)
-external function_succ : llvalue -> (llmodule, llvalue) llpos
-                       = "llvm_function_succ"
-
-(** [iter_functions f m] applies function [f] to each of the functions of module
-    [m] in order. Tail recursive. *)
-val iter_functions : (llvalue -> unit) -> llmodule -> unit
-
-(** [fold_left_function f init m] is [f (... (f init f1) ...) fN] where
-    [f1,...,fN] are the functions of module [m]. Tail recursive. *)
-val fold_left_functions : ('a -> llvalue -> 'a) -> 'a -> llmodule -> 'a
-
-(** [function_end m] returns the last position in the function list of
-    the module [m]. [function_end] and [function_pred] can be used to iterate
-    over the function list in reverse.
-    See the method [llvm::Module::end]. *)
-external function_end : llmodule -> (llmodule, llvalue) llrev_pos
-                      = "llvm_function_end"
-
-(** [function_pred gv] returns the function list position preceding [After gv].
-    See the method [llvm::Module::iterator::operator--]. *)
-external function_pred : llvalue -> (llmodule, llvalue) llrev_pos
-                       = "llvm_function_pred"
-
-(** [rev_iter_functions f fn] applies function [f] to each of the functions of
-    module [m] in reverse order. Tail recursive. *)
-val rev_iter_functions : (llvalue -> unit) -> llmodule -> unit
-
-(** [fold_right_functions f m init] is [f (... (f init fN) ...) f1] where
-    [f1,...,fN] are the functions of module [m]. Tail recursive. *)
-val fold_right_functions : (llvalue -> 'a -> 'a) -> llmodule -> 'a -> 'a
-
-(** [is_intrinsic f] returns true if the function [f] is an intrinsic.
-    See the method [llvm::Function::isIntrinsic]. *)
-external is_intrinsic : llvalue -> bool = "llvm_is_intrinsic"
-
-(** [function_call_conv f] returns the calling convention of the function [f].
-    See the method [llvm::Function::getCallingConv]. *)
-external function_call_conv : llvalue -> int = "llvm_function_call_conv"
-
-(** [set_function_call_conv cc f] sets the calling convention of the function
-    [f] to the calling convention numbered [cc].
-    See the method [llvm::Function::setCallingConv]. *)
-external set_function_call_conv : int -> llvalue -> unit
-                                = "llvm_set_function_call_conv"
-
-(** [gc f] returns [Some name] if the function [f] has a garbage
-    collection algorithm specified and [None] otherwise.
-    See the method [llvm::Function::getGC]. *)
-external gc : llvalue -> string option = "llvm_gc"
-
-(** [set_gc gc f] sets the collection algorithm for the function [f] to
-    [gc]. See the method [llvm::Function::setGC]. *)
-external set_gc : string option -> llvalue -> unit = "llvm_set_gc"
-
-(** [add_function_attr f a] adds attribute [a] to the return type of function
-    [f]. *)
-external add_function_attr : llvalue -> Attribute.t -> unit
-                           = "llvm_add_function_attr"
-
-(** [remove_function_attr f a] removes attribute [a] from the return type of
-    function [f]. *)
-external remove_function_attr : llvalue -> Attribute.t -> unit
-                              = "llvm_remove_function_attr"
-
-(** {7 Operations on params} *)
-
-(** [params f] returns the parameters of function [f].
-    See the method [llvm::Function::getArgumentList]. *)
-external params : llvalue -> llvalue array = "llvm_params"
-
-(** [param f n] returns the [n]th parameter of function [f].
-    See the method [llvm::Function::getArgumentList]. *)
-external param : llvalue -> int -> llvalue = "llvm_param"
-
-(** [param_parent p] returns the parent function that owns the parameter.
-    See the method [llvm::Argument::getParent]. *)
-external param_parent : llvalue -> llvalue = "LLVMGetParamParent"
-
-(** [param_begin f] returns the first position in the parameter list of the
-    function [f]. [param_begin] and [param_succ] can be used to iterate over
-    the parameter list in order.
-    See the method [llvm::Function::arg_begin]. *)
-external param_begin : llvalue -> (llvalue, llvalue) llpos = "llvm_param_begin"
-
-(** [param_succ bb] returns the parameter list position succeeding
-    [Before bb].
-    See the method [llvm::Function::arg_iterator::operator++]. *)
-external param_succ : llvalue -> (llvalue, llvalue) llpos = "llvm_param_succ"
-
-(** [iter_params f fn] applies function [f] to each of the parameters
-    of function [fn] in order. Tail recursive. *)
-val iter_params : (llvalue -> unit) -> llvalue -> unit
-
-(** [fold_left_params f init fn] is [f (... (f init b1) ...) bN] where
-    [b1,...,bN] are the parameters of function [fn]. Tail recursive. *)
-val fold_left_params : ('a -> llvalue -> 'a) -> 'a -> llvalue -> 'a
-
-(** [param_end f] returns the last position in the parameter list of
-    the function [f]. [param_end] and [param_pred] can be used to iterate
-    over the parameter list in reverse.
-    See the method [llvm::Function::arg_end]. *)
-external param_end : llvalue -> (llvalue, llvalue) llrev_pos = "llvm_param_end"
-
-(** [param_pred gv] returns the function list position preceding [After gv].
-    See the method [llvm::Function::arg_iterator::operator--]. *)
-external param_pred : llvalue -> (llvalue, llvalue) llrev_pos
-                    = "llvm_param_pred"
-
-(** [rev_iter_params f fn] applies function [f] to each of the parameters
-    of function [fn] in reverse order. Tail recursive. *)
-val rev_iter_params : (llvalue -> unit) -> llvalue -> unit
-
-(** [fold_right_params f fn init] is [f (... (f init bN) ...) b1] where
-    [b1,...,bN] are the parameters of function [fn]. Tail recursive. *)
-val fold_right_params : (llvalue -> 'a -> 'a) -> llvalue -> 'a -> 'a
-
-(** [add_param p a] adds attribute [a] to parameter [p]. *)
-external add_param_attr : llvalue -> Attribute.t -> unit = "llvm_add_param_attr"
-
-(** [remove_param_attr p a] removes attribute [a] from parameter [p]. *)
-external remove_param_attr : llvalue -> Attribute.t -> unit
-                           = "llvm_remove_param_attr"
-
-(** [set_param_alignment p a] set the alignment of parameter [p] to [a]. *)
-external set_param_alignment : llvalue -> int -> unit
-                             = "llvm_set_param_alignment"
-
-(** {7 Operations on basic blocks} *)
-
-(** [basic_blocks fn] returns the basic blocks of the function [f].
-    See the method [llvm::Function::getBasicBlockList]. *)
-external basic_blocks : llvalue -> llbasicblock array = "llvm_basic_blocks"
-
-(** [entry_block fn] returns the entry basic block of the function [f].
-    See the method [llvm::Function::getEntryBlock]. *)
-external entry_block : llvalue -> llbasicblock = "LLVMGetEntryBasicBlock"
-
-(** [delete_block bb] deletes the basic block [bb].
-    See the method [llvm::BasicBlock::eraseFromParent]. *)
-external delete_block : llbasicblock -> unit = "llvm_delete_block"
-
-(** [append_block c name f] creates a new basic block named [name] at the end of
-    function [f] in the context [c].
-    See the constructor of [llvm::BasicBlock]. *)
-external append_block : llcontext -> string -> llvalue -> llbasicblock
-                      = "llvm_append_block"
-
-(** [insert_block c name bb] creates a new basic block named [name] before the
-    basic block [bb] in the context [c].
-    See the constructor of [llvm::BasicBlock]. *)
-external insert_block : llcontext -> string -> llbasicblock -> llbasicblock
-                      = "llvm_insert_block"
-
-(** [block_parent bb] returns the parent function that owns the basic block.
-    See the method [llvm::BasicBlock::getParent]. *)
-external block_parent : llbasicblock -> llvalue = "LLVMGetBasicBlockParent"
-
-(** [block_begin f] returns the first position in the basic block list of the
-    function [f]. [block_begin] and [block_succ] can be used to iterate over
-    the basic block list in order.
-    See the method [llvm::Function::begin]. *)
-external block_begin : llvalue -> (llvalue, llbasicblock) llpos
-                     = "llvm_block_begin"
-
-(** [block_succ bb] returns the basic block list position succeeding
-    [Before bb].
-    See the method [llvm::Function::iterator::operator++]. *)
-external block_succ : llbasicblock -> (llvalue, llbasicblock) llpos
-                    = "llvm_block_succ"
-
-(** [iter_blocks f fn] applies function [f] to each of the basic blocks
-    of function [fn] in order. Tail recursive. *)
-val iter_blocks : (llbasicblock -> unit) -> llvalue -> unit
-
-(** [fold_left_blocks f init fn] is [f (... (f init b1) ...) bN] where
-    [b1,...,bN] are the basic blocks of function [fn]. Tail recursive. *)
-val fold_left_blocks : ('a -> llbasicblock -> 'a) -> 'a -> llvalue -> 'a
-
-(** [block_end f] returns the last position in the basic block list of
-    the function [f]. [block_end] and [block_pred] can be used to iterate
-    over the basic block list in reverse.
-    See the method [llvm::Function::end]. *)
-external block_end : llvalue -> (llvalue, llbasicblock) llrev_pos
-                   = "llvm_block_end"
-
-(** [block_pred gv] returns the function list position preceding [After gv].
-    See the method [llvm::Function::iterator::operator--]. *)
-external block_pred : llbasicblock -> (llvalue, llbasicblock) llrev_pos
-                    = "llvm_block_pred"
-
-(** [rev_iter_blocks f fn] applies function [f] to each of the basic blocks
-    of function [fn] in reverse order. Tail recursive. *)
-val rev_iter_blocks : (llbasicblock -> unit) -> llvalue -> unit
-
-(** [fold_right_blocks f fn init] is [f (... (f init bN) ...) b1] where
-    [b1,...,bN] are the basic blocks of function [fn]. Tail recursive. *)
-val fold_right_blocks : (llbasicblock -> 'a -> 'a) -> llvalue -> 'a -> 'a
-
-(** [value_of_block bb] losslessly casts [bb] to an [llvalue]. *)
-external value_of_block : llbasicblock -> llvalue = "LLVMBasicBlockAsValue"
-
-(** [value_is_block v] returns [true] if the value [v] is a basic block and
-    [false] otherwise.
-    Similar to [llvm::isa<BasicBlock>]. *)
-external value_is_block : llvalue -> bool = "llvm_value_is_block"
-
-(** [block_of_value v] losslessly casts [v] to an [llbasicblock]. *)
-external block_of_value : llvalue -> llbasicblock = "LLVMValueAsBasicBlock"
-
-
-(** {7 Operations on instructions} *)
-
-(** [instr_parent i] is the enclosing basic block of the instruction [i].
-    See the method [llvm::Instruction::getParent]. *)
-external instr_parent : llvalue -> llbasicblock = "LLVMGetInstructionParent"
-
-(** [instr_begin bb] returns the first position in the instruction list of the
-    basic block [bb]. [instr_begin] and [instr_succ] can be used to iterate over
-    the instruction list in order.
-    See the method [llvm::BasicBlock::begin]. *)
-external instr_begin : llbasicblock -> (llbasicblock, llvalue) llpos
-                     = "llvm_instr_begin"
-
-(** [instr_succ i] returns the instruction list position succeeding [Before i].
-    See the method [llvm::BasicBlock::iterator::operator++]. *)
-external instr_succ : llvalue -> (llbasicblock, llvalue) llpos
-                     = "llvm_instr_succ"
-
-(** [iter_instrs f bb] applies function [f] to each of the instructions of basic
-    block [bb] in order. Tail recursive. *)
-val iter_instrs: (llvalue -> unit) -> llbasicblock -> unit
-
-(** [fold_left_instrs f init bb] is [f (... (f init g1) ...) gN] where
-    [g1,...,gN] are the instructions of basic block [bb]. Tail recursive. *)
-val fold_left_instrs: ('a -> llvalue -> 'a) -> 'a -> llbasicblock -> 'a
-
-(** [instr_end bb] returns the last position in the instruction list of the
-    basic block [bb]. [instr_end] and [instr_pred] can be used to iterate over
-    the instruction list in reverse.
-    See the method [llvm::BasicBlock::end]. *)
-external instr_end : llbasicblock -> (llbasicblock, llvalue) llrev_pos
-                     = "llvm_instr_end"
-
-(** [instr_pred i] returns the instruction list position preceding [After i].
-    See the method [llvm::BasicBlock::iterator::operator--]. *)
-external instr_pred : llvalue -> (llbasicblock, llvalue) llrev_pos
-                     = "llvm_instr_pred"
-
-(** [fold_right_instrs f bb init] is [f (... (f init fN) ...) f1] where
-    [f1,...,fN] are the instructions of basic block [bb]. Tail recursive. *)
-val fold_right_instrs: (llvalue -> 'a -> 'a) -> llbasicblock -> 'a -> 'a
-
-
-(** {7 Operations on call sites} *)
-
-(** [instruction_call_conv ci] is the calling convention for the call or invoke
-    instruction [ci], which may be one of the values from the module
-    {!CallConv}. See the method [llvm::CallInst::getCallingConv] and
-    [llvm::InvokeInst::getCallingConv]. *)
-external instruction_call_conv: llvalue -> int
-                              = "llvm_instruction_call_conv"
-
-(** [set_instruction_call_conv cc ci] sets the calling convention for the call
-    or invoke instruction [ci] to the integer [cc], which can be one of the
-    values from the module {!CallConv}.
-    See the method [llvm::CallInst::setCallingConv]
-    and [llvm::InvokeInst::setCallingConv]. *)
-external set_instruction_call_conv: int -> llvalue -> unit
-                                  = "llvm_set_instruction_call_conv"
-
-(** [add_instruction_param_attr ci i a] adds attribute [a] to the [i]th
-    parameter of the call or invoke instruction [ci]. [i]=0 denotes the return
-    value. *)
-external add_instruction_param_attr : llvalue -> int -> Attribute.t -> unit
-  = "llvm_add_instruction_param_attr"
-
-(** [remove_instruction_param_attr ci i a] removes attribute [a] from the
-    [i]th parameter of the call or invoke instruction [ci]. [i]=0 denotes the
-    return value. *)
-external remove_instruction_param_attr : llvalue -> int -> Attribute.t -> unit
-  = "llvm_remove_instruction_param_attr"
-
-(** {Operations on call instructions (only)} *)
-
-(** [is_tail_call ci] is [true] if the call instruction [ci] is flagged as
-    eligible for tail call optimization, [false] otherwise.
-    See the method [llvm::CallInst::isTailCall]. *)
-external is_tail_call : llvalue -> bool = "llvm_is_tail_call"
-
-(** [set_tail_call tc ci] flags the call instruction [ci] as eligible for tail
-    call optimization if [tc] is [true], clears otherwise.
-    See the method [llvm::CallInst::setTailCall]. *)
-external set_tail_call : bool -> llvalue -> unit = "llvm_set_tail_call"
-
-(** {7 Operations on phi nodes} *)
-
-(** [add_incoming (v, bb) pn] adds the value [v] to the phi node [pn] for use
-    with branches from [bb]. See the method [llvm::PHINode::addIncoming]. *)
-external add_incoming : (llvalue * llbasicblock) -> llvalue -> unit
-                      = "llvm_add_incoming"
-
-(** [incoming pn] returns the list of value-block pairs for phi node [pn].
-    See the method [llvm::PHINode::getIncomingValue]. *)
-external incoming : llvalue -> (llvalue * llbasicblock) list = "llvm_incoming"
-
-
-
-(** {6 Instruction builders} *)
-
-(** [builder context] creates an instruction builder with no position in
-    the context [context]. It is invalid to use this builder until its position
-    is set with {!position_before} or {!position_at_end}. See the constructor
-    for [llvm::LLVMBuilder]. *)
-external builder : llcontext -> llbuilder = "llvm_builder"
-
-(** [builder_at ip] creates an instruction builder positioned at [ip].
-    See the constructor for [llvm::LLVMBuilder]. *)
-val builder_at : llcontext -> (llbasicblock, llvalue) llpos -> llbuilder
-
-(** [builder_before ins] creates an instruction builder positioned before the
-    instruction [isn]. See the constructor for [llvm::LLVMBuilder]. *)
-val builder_before : llcontext -> llvalue -> llbuilder
-
-(** [builder_at_end bb] creates an instruction builder positioned at the end of
-    the basic block [bb]. See the constructor for [llvm::LLVMBuilder]. *)
-val builder_at_end : llcontext -> llbasicblock -> llbuilder
-
-(** [position_builder ip bb] moves the instruction builder [bb] to the position
-    [ip].
-    See the constructor for [llvm::LLVMBuilder]. *)
-external position_builder : (llbasicblock, llvalue) llpos -> llbuilder -> unit
-                          = "llvm_position_builder"
-
-(** [position_before ins b] moves the instruction builder [b] to before the
-    instruction [isn]. See the method [llvm::LLVMBuilder::SetInsertPoint]. *)
-val position_before : llvalue -> llbuilder -> unit
-
-(** [position_at_end bb b] moves the instruction builder [b] to the end of the
-    basic block [bb]. See the method [llvm::LLVMBuilder::SetInsertPoint]. *)
-val position_at_end : llbasicblock -> llbuilder -> unit
-
-(** [insertion_block b] returns the basic block that the builder [b] is
-    positioned to insert into. Raises [Not_Found] if the instruction builder is
-    uninitialized.
-    See the method [llvm::LLVMBuilder::GetInsertBlock]. *)
-external insertion_block : llbuilder -> llbasicblock = "llvm_insertion_block"
-
-(** [insert_into_builder i name b] inserts the specified instruction [i] at the
-    position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::Insert]. *)
-external insert_into_builder : llvalue -> string -> llbuilder -> unit
-                             = "llvm_insert_into_builder"
-
-
-(** {7 Terminators} *)
-
-(** [build_ret_void b] creates a
-    [ret void]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateRetVoid]. *)
-external build_ret_void : llbuilder -> llvalue = "llvm_build_ret_void"
-
-(** [build_ret v b] creates a
-    [ret %v]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateRet]. *)
-external build_ret : llvalue -> llbuilder -> llvalue = "llvm_build_ret"
-
-(** [build_aggregate_ret vs b] creates a
-    [ret {...} { %v1, %v2, ... } ]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateAggregateRet]. *)
-external build_aggregate_ret : llvalue array -> llbuilder -> llvalue
-                             = "llvm_build_aggregate_ret"
-
-(** [build_br bb b] creates a
-    [b %bb]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateBr]. *)
-external build_br : llbasicblock -> llbuilder -> llvalue = "llvm_build_br"
-
-(** [build_cond_br cond tbb fbb b] creates a
-    [b %cond, %tbb, %fbb]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateCondBr]. *)
-external build_cond_br : llvalue -> llbasicblock -> llbasicblock -> llbuilder ->
-                         llvalue = "llvm_build_cond_br"
-
-(** [build_switch case elsebb count b] creates an empty
-    [switch %case, %elsebb]
-    instruction at the position specified by the instruction builder [b] with
-    space reserved for [count] cases.
-    See the method [llvm::LLVMBuilder::CreateSwitch]. *)
-external build_switch : llvalue -> llbasicblock -> int -> llbuilder -> llvalue
-                      = "llvm_build_switch"
-
-(** [add_case sw onval bb] causes switch instruction [sw] to branch to [bb]
-    when its input matches the constant [onval].
-    See the method [llvm::SwitchInst::addCase]. **)
-external add_case : llvalue -> llvalue -> llbasicblock -> unit
-                  = "llvm_add_case"
-
-(** [build_invoke fn args tobb unwindbb name b] creates an
-    [%name = invoke %fn(args) to %tobb unwind %unwindbb]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateInvoke]. *)
-external build_invoke : llvalue -> llvalue array -> llbasicblock ->
-                        llbasicblock -> string -> llbuilder -> llvalue
-                      = "llvm_build_invoke_bc" "llvm_build_invoke_nat"
-
-(** [build_unwind b] creates an
-    [unwind]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateUnwind]. *)
-external build_unwind : llbuilder -> llvalue = "llvm_build_unwind"
-
-(** [build_unreachable b] creates an
-    [unreachable]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateUnwind]. *)
-external build_unreachable : llbuilder -> llvalue = "llvm_build_unreachable"
-
-
-(** {7 Arithmetic} *)
-
-(** [build_add x y name b] creates a
-    [%name = add %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateAdd]. *)
-external build_add : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_add"
-
-(** [build_nswadd x y name b] creates a
-    [%name = nsw add %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateNSWAdd]. *)
-external build_nsw_add : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                      = "llvm_build_nsw_add"
-
-(** [build_fadd x y name b] creates a
-    [%name = fadd %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFAdd]. *)
-external build_fadd : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fadd"
-
-(** [build_sub x y name b] creates a
-    [%name = sub %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateSub]. *)
-external build_sub : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_sub"
-
-(** [build_fsub x y name b] creates a
-    [%name = fsub %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFSub]. *)
-external build_fsub : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fsub"
-
-(** [build_mul x y name b] creates a
-    [%name = mul %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateMul]. *)
-external build_mul : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_mul"
-
-(** [build_fmul x y name b] creates a
-    [%name = fmul %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFMul]. *)
-external build_fmul : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fmul"
-
-(** [build_udiv x y name b] creates a
-    [%name = udiv %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateUDiv]. *)
-external build_udiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_udiv"
-
-(** [build_sdiv x y name b] creates a
-    [%name = sdiv %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateSDiv]. *)
-external build_sdiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_sdiv"
-
-(** [build_exact_sdiv x y name b] creates a
-    [%name = exact sdiv %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateExactSDiv]. *)
-external build_exact_sdiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                          = "llvm_build_exact_sdiv"
-
-(** [build_fdiv x y name b] creates a
-    [%name = fdiv %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFDiv]. *)
-external build_fdiv : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_fdiv"
-
-(** [build_urem x y name b] creates a
-    [%name = urem %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateURem]. *)
-external build_urem : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_urem"
-
-(** [build_SRem x y name b] creates a
-    [%name = srem %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateSRem]. *)
-external build_srem : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_srem"
-
-(** [build_frem x y name b] creates a
-    [%name = frem %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFRem]. *)
-external build_frem : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_frem"
-
-(** [build_shl x y name b] creates a
-    [%name = shl %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateShl]. *)
-external build_shl : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_shl"
-
-(** [build_lshr x y name b] creates a
-    [%name = lshr %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateLShr]. *)
-external build_lshr : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_lshr"
-
-(** [build_ashr x y name b] creates a
-    [%name = ashr %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateAShr]. *)
-external build_ashr : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_ashr"
-
-(** [build_and x y name b] creates a
-    [%name = and %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateAnd]. *)
-external build_and : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_and"
-
-(** [build_or x y name b] creates a
-    [%name = or %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateOr]. *)
-external build_or : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                  = "llvm_build_or"
-
-(** [build_xor x y name b] creates a
-    [%name = xor %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateXor]. *)
-external build_xor : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_xor"
-
-(** [build_neg x name b] creates a
-    [%name = sub 0, %x]
-    instruction at the position specified by the instruction builder [b].
-    [-0.0] is used for floating point types to compute the correct sign.
-    See the method [llvm::LLVMBuilder::CreateNeg]. *)
-external build_neg : llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_neg"
-
-(** [build_xor x name b] creates a
-    [%name = xor %x, -1]
-    instruction at the position specified by the instruction builder [b].
-    [-1] is the correct "all ones" value for the type of [x].
-    See the method [llvm::LLVMBuilder::CreateXor]. *)
-external build_not : llvalue -> string -> llbuilder -> llvalue
-                   = "llvm_build_not"
-
-
-(** {7 Memory} *)
-
-(** [build_malloc ty name b] creates a
-    [%name = malloc %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateAlloca]. *)
-external build_malloc : lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_malloc"
-
-(** [build_array_malloc ty n name b] creates a
-    [%name = malloc %ty, %n]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateMalloc]. *)
-external build_array_malloc : lltype -> llvalue -> string -> llbuilder ->
-                              llvalue = "llvm_build_array_malloc"
-
-(** [build_alloca ty name b] creates a
-    [%name = alloca %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateAlloca]. *)
-external build_alloca : lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_alloca"
-
-(** [build_array_alloca ty n name b] creates a
-    [%name = alloca %ty, %n]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateAlloca]. *)
-external build_array_alloca : lltype -> llvalue -> string -> llbuilder ->
-                              llvalue = "llvm_build_array_alloca"
-
-(** [build_free v b] creates a
-    [free %v]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFree]. *)
-external build_free : llvalue -> llbuilder -> llvalue = "llvm_build_free"
-
-(** [build_load v name b] creates a
-    [%name = load %v]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateLoad]. *)
-external build_load : llvalue -> string -> llbuilder -> llvalue
-                    = "llvm_build_load"
-
-(** [build_store v p b] creates a
-    [store %v, %p]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateStore]. *)
-external build_store : llvalue -> llvalue -> llbuilder -> llvalue
-                     = "llvm_build_store"
-
-(** [build_gep p indices name b] creates a
-    [%name = getelementptr %p, indices...]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateGetElementPtr]. *)
-external build_gep : llvalue -> llvalue array -> string -> llbuilder -> llvalue
-                   = "llvm_build_gep"
-
-(** [build_in_bounds_gep p indices name b] creates a
-    [%name = gelementptr inbounds %p, indices...]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateInBoundsGetElementPtr]. *)
-external build_in_bounds_gep : llvalue -> llvalue array -> string -> llbuilder ->
-                               llvalue = "llvm_build_in_bounds_gep"
-
-(** [build_struct_gep p idx name b] creates a
-    [%name = getelementptr %p, 0, idx]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateStructGetElementPtr]. *)
-external build_struct_gep : llvalue -> int -> string -> llbuilder ->
-                            llvalue = "llvm_build_struct_gep"
-
-(** [build_global_string str name b] creates a series of instructions that adds
-    a global string at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateGlobalString]. *)
-external build_global_string : string -> string -> llbuilder -> llvalue
-                             = "llvm_build_global_string"
-
-(** [build_global_stringptr str name b] creates a series of instructions that
-    adds a global string pointer at the position specified by the instruction
-    builder [b].
-    See the method [llvm::LLVMBuilder::CreateGlobalStringPtr]. *)
-external build_global_stringptr : string -> string -> llbuilder -> llvalue
-                                = "llvm_build_global_stringptr"
-
-
-(** {7 Casts} *)
-
-(** [build_trunc v ty name b] creates a
-    [%name = trunc %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateTrunc]. *)
-external build_trunc : llvalue -> lltype -> string -> llbuilder -> llvalue
-                     = "llvm_build_trunc"
-
-(** [build_zext v ty name b] creates a
-    [%name = zext %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateZExt]. *)
-external build_zext : llvalue -> lltype -> string -> llbuilder -> llvalue
-                    = "llvm_build_zext"
-
-(** [build_sext v ty name b] creates a
-    [%name = sext %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateSExt]. *)
-external build_sext : llvalue -> lltype -> string -> llbuilder -> llvalue
-                    = "llvm_build_sext"
-
-(** [build_fptoui v ty name b] creates a
-    [%name = fptoui %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFPToUI]. *)
-external build_fptoui : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_fptoui"
-
-(** [build_fptosi v ty name b] creates a
-    [%name = fptosi %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFPToSI]. *)
-external build_fptosi : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_fptosi"
-
-(** [build_uitofp v ty name b] creates a
-    [%name = uitofp %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateUIToFP]. *)
-external build_uitofp : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_uitofp"
-
-(** [build_sitofp v ty name b] creates a
-    [%name = sitofp %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateSIToFP]. *)
-external build_sitofp : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_sitofp"
-
-(** [build_fptrunc v ty name b] creates a
-    [%name = fptrunc %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFPTrunc]. *)
-external build_fptrunc : llvalue -> lltype -> string -> llbuilder -> llvalue
-                       = "llvm_build_fptrunc"
-
-(** [build_fpext v ty name b] creates a
-    [%name = fpext %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFPExt]. *)
-external build_fpext : llvalue -> lltype -> string -> llbuilder -> llvalue
-                     = "llvm_build_fpext"
-
-(** [build_ptrtoint v ty name b] creates a
-    [%name = prtotint %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreatePtrToInt]. *)
-external build_ptrtoint : llvalue -> lltype -> string -> llbuilder -> llvalue
-                        = "llvm_build_prttoint"
-
-(** [build_inttoptr v ty name b] creates a
-    [%name = inttoptr %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateIntToPtr]. *)
-external build_inttoptr : llvalue -> lltype -> string -> llbuilder -> llvalue
-                        = "llvm_build_inttoptr"
-
-(** [build_bitcast v ty name b] creates a
-    [%name = bitcast %p to %ty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateBitCast]. *)
-external build_bitcast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                       = "llvm_build_bitcast"
-
-(** [build_zext_or_bitcast v ty name b] creates a zext or bitcast
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateZExtOrBitCast]. *)
-external build_zext_or_bitcast : llvalue -> lltype -> string -> llbuilder ->
-                                 llvalue = "llvm_build_zext_or_bitcast"
-
-(** [build_sext_or_bitcast v ty name b] creates a sext or bitcast
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateSExtOrBitCast]. *)
-external build_sext_or_bitcast : llvalue -> lltype -> string -> llbuilder ->
-                                 llvalue = "llvm_build_sext_or_bitcast"
-
-(** [build_trunc_or_bitcast v ty name b] creates a trunc or bitcast
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateZExtOrBitCast]. *)
-external build_trunc_or_bitcast : llvalue -> lltype -> string -> llbuilder ->
-                                  llvalue = "llvm_build_trunc_or_bitcast"
-
-(** [build_pointercast v ty name b] creates a bitcast or pointer-to-int
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreatePointerCast]. *)
-external build_pointercast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                           = "llvm_build_pointercast"
-
-(** [build_intcast v ty name b] creates a zext, bitcast, or trunc
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateIntCast]. *)
-external build_intcast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                       = "llvm_build_intcast"
-
-(** [build_fpcast v ty name b] creates a fpext, bitcast, or fptrunc
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFPCast]. *)
-external build_fpcast : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_fpcast"
-
-
-(** {7 Comparisons} *)
-
-(** [build_icmp pred x y name b] creates a
-    [%name = icmp %pred %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateICmp]. *)
-external build_icmp : Icmp.t -> llvalue -> llvalue -> string ->
-                      llbuilder -> llvalue = "llvm_build_icmp"
-
-(** [build_fcmp pred x y name b] creates a
-    [%name = fcmp %pred %x, %y]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateFCmp]. *)
-external build_fcmp : Fcmp.t -> llvalue -> llvalue -> string ->
-                      llbuilder -> llvalue = "llvm_build_fcmp"
-
-
-(** {7 Miscellaneous instructions} *)
-
-(** [build_phi incoming name b] creates a
-    [%name = phi %incoming]
-    instruction at the position specified by the instruction builder [b].
-    [incoming] is a list of [(llvalue, llbasicblock)] tuples.
-    See the method [llvm::LLVMBuilder::CreatePHI]. *)
-external build_phi : (llvalue * llbasicblock) list -> string -> llbuilder ->
-                     llvalue = "llvm_build_phi"
-
-(** [build_call fn args name b] creates a
-    [%name = call %fn(args...)]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateCall]. *)
-external build_call : llvalue -> llvalue array -> string -> llbuilder -> llvalue
-                    = "llvm_build_call"
-
-(** [build_select cond thenv elsev name b] creates a
-    [%name = select %cond, %thenv, %elsev]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateSelect]. *)
-external build_select : llvalue -> llvalue -> llvalue -> string -> llbuilder ->
-                        llvalue = "llvm_build_select"
-
-(** [build_va_arg valist argty name b] creates a
-    [%name = va_arg %valist, %argty]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateVAArg]. *)
-external build_va_arg : llvalue -> lltype -> string -> llbuilder -> llvalue
-                      = "llvm_build_va_arg"
-
-(** [build_extractelement vec i name b] creates a
-    [%name = extractelement %vec, %i]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateExtractElement]. *)
-external build_extractelement : llvalue -> llvalue -> string -> llbuilder ->
-                                llvalue = "llvm_build_extractelement"
-
-(** [build_insertelement vec elt i name b] creates a
-    [%name = insertelement %vec, %elt, %i]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateInsertElement]. *)
-external build_insertelement : llvalue -> llvalue -> llvalue -> string ->
-                               llbuilder -> llvalue = "llvm_build_insertelement"
-
-(** [build_shufflevector veca vecb mask name b] creates a
-    [%name = shufflevector %veca, %vecb, %mask]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateShuffleVector]. *)
-external build_shufflevector : llvalue -> llvalue -> llvalue -> string ->
-                               llbuilder -> llvalue = "llvm_build_shufflevector"
-
-(** [build_insertvalue agg idx name b] creates a
-    [%name = extractvalue %agg, %idx]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateExtractValue]. *)
-external build_extractvalue : llvalue -> int -> string -> llbuilder -> llvalue
-                            = "llvm_build_extractvalue"
-
-(** [build_insertvalue agg val idx name b] creates a
-    [%name = insertvalue %agg, %val, %idx]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateInsertValue]. *)
-external build_insertvalue : llvalue -> llvalue -> int -> string -> llbuilder ->
-                             llvalue = "llvm_build_insertvalue"
-
-(** [build_is_null val name b] creates a
-    [%name = icmp eq %val, null]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateIsNull]. *)
-external build_is_null : llvalue -> string -> llbuilder -> llvalue
-                       = "llvm_build_is_null"
-
-(** [build_is_not_null val name b] creates a
-    [%name = icmp ne %val, null]
-    instruction at the position specified by the instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreateIsNotNull]. *)
-external build_is_not_null : llvalue -> string -> llbuilder -> llvalue
-                           = "llvm_build_is_not_null"
-
-(** [build_ptrdiff lhs rhs name b] creates a series of instructions that measure
-    the difference between two pointer values at the position specified by the
-    instruction builder [b].
-    See the method [llvm::LLVMBuilder::CreatePtrDiff]. *)
-external build_ptrdiff : llvalue -> llvalue -> string -> llbuilder -> llvalue
-                       = "llvm_build_ptrdiff"
-
-(** {6 Module providers} *)
-
-module ModuleProvider : sig
-  (** [create_module_provider m] encapsulates [m] in a module provider and takes
-      ownership of the module. See the constructor
-      [llvm::ExistingModuleProvider::ExistingModuleProvider]. *)
-  external create : llmodule -> llmoduleprovider
-                  = "LLVMCreateModuleProviderForExistingModule"
-  
-  (** [dispose_module_provider mp] destroys the module provider [mp] as well as
-      the contained module. *)
-  external dispose : llmoduleprovider -> unit = "llvm_dispose_module_provider"
-end
-
-
-(** {6 Memory buffers} *)
-
-module MemoryBuffer : sig
-  (** [of_file p] is the memory buffer containing the contents of the file at
-      path [p]. If the file could not be read, then [IoError msg] is
-      raised. *)
-  external of_file : string -> llmemorybuffer = "llvm_memorybuffer_of_file"
-  
-  (** [stdin ()] is the memory buffer containing the contents of standard input.
-      If standard input is empty, then [IoError msg] is raised. *)
-  external of_stdin : unit -> llmemorybuffer = "llvm_memorybuffer_of_stdin"
-  
-  (** Disposes of a memory buffer. *)
-  external dispose : llmemorybuffer -> unit = "llvm_memorybuffer_dispose"
-end
-
-
-(** {6 Pass Managers} *)
-
-module PassManager : sig
-  (**  *)
-  type 'a t
-  type any = [ `Module | `Function ]
-  
-  (** [PassManager.create ()] constructs a new whole-module pass pipeline. This
-      type of pipeline is suitable for link-time optimization and whole-module
-      transformations.
-      See the constructor of [llvm::PassManager]. *)
-  external create : unit -> [ `Module ] t = "llvm_passmanager_create"
-  
-  (** [PassManager.create_function mp] constructs a new function-by-function
-      pass pipeline over the module provider [mp]. It does not take ownership of
-      [mp]. This type of pipeline is suitable for code generation and JIT
-      compilation tasks.
-      See the constructor of [llvm::FunctionPassManager]. *)
-  external create_function : llmoduleprovider -> [ `Function ] t
-                           = "LLVMCreateFunctionPassManager"
-  
-  (** [run_module m pm] initializes, executes on the module [m], and finalizes
-      all of the passes scheduled in the pass manager [pm]. Returns [true] if
-      any of the passes modified the module, [false] otherwise.
-      See the [llvm::PassManager::run] method. *)
-  external run_module : llmodule -> [ `Module ] t -> bool
-                      = "llvm_passmanager_run_module"
-  
-  (** [initialize fpm] initializes all of the function passes scheduled in the
-      function pass manager [fpm]. Returns [true] if any of the passes modified
-      the module, [false] otherwise.
-      See the [llvm::FunctionPassManager::doInitialization] method. *)
-  external initialize : [ `Function ] t -> bool = "llvm_passmanager_initialize"
-  
-  (** [run_function f fpm] executes all of the function passes scheduled in the
-      function pass manager [fpm] over the function [f]. Returns [true] if any
-      of the passes modified [f], [false] otherwise.
-      See the [llvm::FunctionPassManager::run] method. *)
-  external run_function : llvalue -> [ `Function ] t -> bool
-                        = "llvm_passmanager_run_function"
-  
-  (** [finalize fpm] finalizes all of the function passes scheduled in in the
-      function pass manager [fpm]. Returns [true] if any of the passes
-      modified the module, [false] otherwise.
-      See the [llvm::FunctionPassManager::doFinalization] method. *)
-  external finalize : [ `Function ] t -> bool = "llvm_passmanager_finalize"
-  
-  (** Frees the memory of a pass pipeline. For function pipelines, does not free
-      the module provider.
-      See the destructor of [llvm::BasePassManager]. *)
-  external dispose : [< any ] t -> unit = "llvm_passmanager_dispose"
-end
diff --git a/libclamav/c++/llvm/bindings/ocaml/llvm/llvm_ocaml.c b/libclamav/c++/llvm/bindings/ocaml/llvm/llvm_ocaml.c
deleted file mode 100644
index 8868d07..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/llvm/llvm_ocaml.c
+++ /dev/null
@@ -1,1590 +0,0 @@
-/*===-- llvm_ocaml.c - LLVM Ocaml Glue --------------------------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file glues LLVM's ocaml interface to its C interface. These functions *|
-|* are by and large transparent wrappers to the corresponding C functions.    *|
-|*                                                                            *|
-|* Note that these functions intentionally take liberties with the CAMLparamX *|
-|* macros, since most of the parameters are not GC heap objects.              *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#include "llvm-c/Core.h"
-#include "caml/alloc.h"
-#include "caml/custom.h"
-#include "caml/memory.h"
-#include "caml/fail.h"
-#include "caml/callback.h"
-#include "llvm/Config/config.h"
-#include <assert.h>
-#include <stdlib.h>
-
-
-/* Can't use the recommended caml_named_value mechanism for backwards
-   compatibility reasons. This is largely equivalent. */
-static value llvm_ioerror_exn;
-
-CAMLprim value llvm_register_core_exns(value IoError) {
-  llvm_ioerror_exn = Field(IoError, 0);
-  register_global_root(&llvm_ioerror_exn);
-  return Val_unit;
-}
-
-static void llvm_raise(value Prototype, char *Message) {
-  CAMLparam1(Prototype);
-  CAMLlocal1(CamlMessage);
-  
-  CamlMessage = copy_string(Message);
-  LLVMDisposeMessage(Message);
-  
-  raise_with_arg(Prototype, CamlMessage);
-  abort(); /* NOTREACHED */
-#ifdef CAMLnoreturn
-  CAMLnoreturn; /* Silences warnings, but is missing in some versions. */
-#endif
-}
-
-static value alloc_variant(int tag, void *Value) {
-  value Iter = alloc_small(1, tag);
-  Field(Iter, 0) = Val_op(Value);
-  return Iter;
-}
-
-/* Macro to convert the C first/next/last/prev idiom to the Ocaml llpos/
-   llrev_pos idiom. */
-#define DEFINE_ITERATORS(camlname, cname, pty, cty, pfun) \
-  /* llmodule -> ('a, 'b) llpos */                        \
-  CAMLprim value llvm_##camlname##_begin(pty Mom) {       \
-    cty First = LLVMGetFirst##cname(Mom);                 \
-    if (First)                                            \
-      return alloc_variant(1, First);                     \
-    return alloc_variant(0, Mom);                         \
-  }                                                       \
-                                                          \
-  /* llvalue -> ('a, 'b) llpos */                         \
-  CAMLprim value llvm_##camlname##_succ(cty Kid) {        \
-    cty Next = LLVMGetNext##cname(Kid);                   \
-    if (Next)                                             \
-      return alloc_variant(1, Next);                      \
-    return alloc_variant(0, pfun(Kid));                   \
-  }                                                       \
-                                                          \
-  /* llmodule -> ('a, 'b) llrev_pos */                    \
-  CAMLprim value llvm_##camlname##_end(pty Mom) {         \
-    cty Last = LLVMGetLast##cname(Mom);                   \
-    if (Last)                                             \
-      return alloc_variant(1, Last);                      \
-    return alloc_variant(0, Mom);                         \
-  }                                                       \
-                                                          \
-  /* llvalue -> ('a, 'b) llrev_pos */                     \
-  CAMLprim value llvm_##camlname##_pred(cty Kid) {        \
-    cty Prev = LLVMGetPrevious##cname(Kid);               \
-    if (Prev)                                             \
-      return alloc_variant(1, Prev);                      \
-    return alloc_variant(0, pfun(Kid));                   \
-  }
-
-
-/*===-- Contexts ----------------------------------------------------------===*/
-
-/* unit -> llcontext */
-CAMLprim LLVMContextRef llvm_create_context(value Unit) {
-  return LLVMContextCreate();
-}
-
-/* llcontext -> unit */
-CAMLprim value llvm_dispose_context(LLVMContextRef C) {
-  LLVMContextDispose(C);
-  return Val_unit;
-}
-
-/* unit -> llcontext */
-CAMLprim LLVMContextRef llvm_global_context(value Unit) {
-  return LLVMGetGlobalContext();
-}
-
-/*===-- Modules -----------------------------------------------------------===*/
-
-/* string -> llmodule */
-CAMLprim LLVMModuleRef llvm_create_module(value ModuleID) {
-  return LLVMModuleCreateWithName(String_val(ModuleID));
-}
-
-/* llmodule -> unit */
-CAMLprim value llvm_dispose_module(LLVMModuleRef M) {
-  LLVMDisposeModule(M);
-  return Val_unit;
-}
-
-/* llmodule -> string */
-CAMLprim value llvm_target_triple(LLVMModuleRef M) {
-  return copy_string(LLVMGetTarget(M));
-}
-
-/* string -> llmodule -> unit */
-CAMLprim value llvm_set_target_triple(value Trip, LLVMModuleRef M) {
-  LLVMSetTarget(M, String_val(Trip));
-  return Val_unit;
-}
-
-/* llmodule -> string */
-CAMLprim value llvm_data_layout(LLVMModuleRef M) {
-  return copy_string(LLVMGetDataLayout(M));
-}
-
-/* string -> llmodule -> unit */
-CAMLprim value llvm_set_data_layout(value Layout, LLVMModuleRef M) {
-  LLVMSetDataLayout(M, String_val(Layout));
-  return Val_unit;
-}
-
-/* string -> lltype -> llmodule -> bool */
-CAMLprim value llvm_add_type_name(value Name, LLVMTypeRef Ty, LLVMModuleRef M) {
-  int res = LLVMAddTypeName(M, String_val(Name), Ty);
-  return Val_bool(res == 0);
-}
-
-/* string -> llmodule -> unit */
-CAMLprim value llvm_delete_type_name(value Name, LLVMModuleRef M) {
-  LLVMDeleteTypeName(M, String_val(Name));
-  return Val_unit;
-}
-
-/* llmodule -> unit */
-CAMLprim value llvm_dump_module(LLVMModuleRef M) {
-  LLVMDumpModule(M);
-  return Val_unit;
-}
-
-
-/*===-- Types -------------------------------------------------------------===*/
-
-/* lltype -> TypeKind.t */
-CAMLprim value llvm_classify_type(LLVMTypeRef Ty) {
-  return Val_int(LLVMGetTypeKind(Ty));
-}
-
-/* lltype -> llcontext */
-CAMLprim LLVMContextRef llvm_type_context(LLVMTypeRef Ty) {
-  return LLVMGetTypeContext(Ty);
-}
-
-/*--... Operations on integer types ........................................--*/
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_i1_type (LLVMContextRef Context) {
-  return LLVMInt1TypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_i8_type (LLVMContextRef Context) {
-  return LLVMInt8TypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_i16_type (LLVMContextRef Context) {
-  return LLVMInt16TypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_i32_type (LLVMContextRef Context) {
-  return LLVMInt32TypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_i64_type (LLVMContextRef Context) {
-  return LLVMInt64TypeInContext(Context);
-}
-
-/* llcontext -> int -> lltype */
-CAMLprim LLVMTypeRef llvm_integer_type(LLVMContextRef Context, value Width) {
-  return LLVMIntTypeInContext(Context, Int_val(Width));
-}
-
-/* lltype -> int */
-CAMLprim value llvm_integer_bitwidth(LLVMTypeRef IntegerTy) {
-  return Val_int(LLVMGetIntTypeWidth(IntegerTy));
-}
-
-/*--... Operations on real types ...........................................--*/
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_float_type(LLVMContextRef Context) {
-  return LLVMFloatTypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_double_type(LLVMContextRef Context) {
-  return LLVMDoubleTypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_x86fp80_type(LLVMContextRef Context) {
-  return LLVMX86FP80TypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_fp128_type(LLVMContextRef Context) {
-  return LLVMFP128TypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_ppc_fp128_type(LLVMContextRef Context) {
-  return LLVMPPCFP128TypeInContext(Context);
-}
-
-/*--... Operations on function types .......................................--*/
-
-/* lltype -> lltype array -> lltype */
-CAMLprim LLVMTypeRef llvm_function_type(LLVMTypeRef RetTy, value ParamTys) {
-  return LLVMFunctionType(RetTy, (LLVMTypeRef *) ParamTys,
-                          Wosize_val(ParamTys), 0);
-}
-
-/* lltype -> lltype array -> lltype */
-CAMLprim LLVMTypeRef llvm_var_arg_function_type(LLVMTypeRef RetTy,
-                                                value ParamTys) {
-  return LLVMFunctionType(RetTy, (LLVMTypeRef *) ParamTys,
-                          Wosize_val(ParamTys), 1);
-}
-
-/* lltype -> bool */
-CAMLprim value llvm_is_var_arg(LLVMTypeRef FunTy) {
-  return Val_bool(LLVMIsFunctionVarArg(FunTy));
-}
-
-/* lltype -> lltype array */
-CAMLprim value llvm_param_types(LLVMTypeRef FunTy) {
-  value Tys = alloc(LLVMCountParamTypes(FunTy), 0);
-  LLVMGetParamTypes(FunTy, (LLVMTypeRef *) Tys);
-  return Tys;
-}
-
-/*--... Operations on struct types .........................................--*/
-
-/* llcontext -> lltype array -> lltype */
-CAMLprim LLVMTypeRef llvm_struct_type(LLVMContextRef C, value ElementTypes) {
-  return LLVMStructTypeInContext(C, (LLVMTypeRef *) ElementTypes,
-                                 Wosize_val(ElementTypes), 0);
-}
-
-/* llcontext -> lltype array -> lltype */
-CAMLprim LLVMTypeRef llvm_packed_struct_type(LLVMContextRef C,
-                                             value ElementTypes) {
-  return LLVMStructTypeInContext(C, (LLVMTypeRef *) ElementTypes,
-                                 Wosize_val(ElementTypes), 1);
-}
-
-/* lltype -> lltype array */
-CAMLprim value llvm_element_types(LLVMTypeRef StructTy) {
-  value Tys = alloc(LLVMCountStructElementTypes(StructTy), 0);
-  LLVMGetStructElementTypes(StructTy, (LLVMTypeRef *) Tys);
-  return Tys;
-}
-
-/* lltype -> bool */
-CAMLprim value llvm_is_packed(LLVMTypeRef StructTy) {
-  return Val_bool(LLVMIsPackedStruct(StructTy));
-}
-
-/*--... Operations on array, pointer, and vector types .....................--*/
-
-/* lltype -> int -> lltype */
-CAMLprim LLVMTypeRef llvm_array_type(LLVMTypeRef ElementTy, value Count) {
-  return LLVMArrayType(ElementTy, Int_val(Count));
-}
-
-/* lltype -> lltype */
-CAMLprim LLVMTypeRef llvm_pointer_type(LLVMTypeRef ElementTy) {
-  return LLVMPointerType(ElementTy, 0);
-}
-
-/* lltype -> int -> lltype */
-CAMLprim LLVMTypeRef llvm_qualified_pointer_type(LLVMTypeRef ElementTy,
-                                                 value AddressSpace) {
-  return LLVMPointerType(ElementTy, Int_val(AddressSpace));
-}
-
-/* lltype -> int -> lltype */
-CAMLprim LLVMTypeRef llvm_vector_type(LLVMTypeRef ElementTy, value Count) {
-  return LLVMVectorType(ElementTy, Int_val(Count));
-}
-
-/* lltype -> int */
-CAMLprim value llvm_array_length(LLVMTypeRef ArrayTy) {
-  return Val_int(LLVMGetArrayLength(ArrayTy));
-}
-
-/* lltype -> int */
-CAMLprim value llvm_address_space(LLVMTypeRef PtrTy) {
-  return Val_int(LLVMGetPointerAddressSpace(PtrTy));
-}
-
-/* lltype -> int */
-CAMLprim value llvm_vector_size(LLVMTypeRef VectorTy) {
-  return Val_int(LLVMGetVectorSize(VectorTy));
-}
-
-/*--... Operations on other types ..........................................--*/
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_void_type (LLVMContextRef Context) {
-  return LLVMVoidTypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_label_type(LLVMContextRef Context) {
-  return LLVMLabelTypeInContext(Context);
-}
-
-/* llcontext -> lltype */
-CAMLprim LLVMTypeRef llvm_opaque_type(LLVMContextRef Context) {
-  return LLVMOpaqueTypeInContext(Context);
-}
-
-/*--... Operations on type handles .........................................--*/
-
-#define Typehandle_val(v)  (*(LLVMTypeHandleRef *)(Data_custom_val(v)))
-
-static void llvm_finalize_handle(value TH) {
-  LLVMDisposeTypeHandle(Typehandle_val(TH));
-}
-
-static struct custom_operations typehandle_ops = {
-  (char *) "LLVMTypeHandle",
-  llvm_finalize_handle,
-  custom_compare_default,
-  custom_hash_default,
-  custom_serialize_default,
-  custom_deserialize_default
-};
-
-CAMLprim value llvm_handle_to_type(LLVMTypeRef PATy) {
-  value TH = alloc_custom(&typehandle_ops, sizeof(LLVMBuilderRef), 0, 1);
-  Typehandle_val(TH) = LLVMCreateTypeHandle(PATy);
-  return TH;
-}
-
-CAMLprim LLVMTypeRef llvm_type_of_handle(value TH) {
-  return LLVMResolveTypeHandle(Typehandle_val(TH));
-}
-
-CAMLprim value llvm_refine_type(LLVMTypeRef AbstractTy, LLVMTypeRef ConcreteTy){
-  LLVMRefineType(AbstractTy, ConcreteTy);
-  return Val_unit;
-}
-
-
-/*===-- VALUES ------------------------------------------------------------===*/
-
-/* llvalue -> lltype */
-CAMLprim LLVMTypeRef llvm_type_of(LLVMValueRef Val) {
-  return LLVMTypeOf(Val);
-}
-
-/* llvalue -> string */
-CAMLprim value llvm_value_name(LLVMValueRef Val) {
-  return copy_string(LLVMGetValueName(Val));
-}
-
-/* string -> llvalue -> unit */
-CAMLprim value llvm_set_value_name(value Name, LLVMValueRef Val) {
-  LLVMSetValueName(Val, String_val(Name));
-  return Val_unit;
-}
-
-/* llvalue -> unit */
-CAMLprim value llvm_dump_value(LLVMValueRef Val) {
-  LLVMDumpValue(Val);
-  return Val_unit;
-}
-
-/*--... Operations on constants of (mostly) any type .......................--*/
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_constant(LLVMValueRef Val) {
-  return Val_bool(LLVMIsConstant(Val));
-}
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_null(LLVMValueRef Val) {
-  return Val_bool(LLVMIsNull(Val));
-}
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_undef(LLVMValueRef Val) {
-  return Val_bool(LLVMIsUndef(Val));
-}
-
-/*--... Operations on scalar constants .....................................--*/
-
-/* lltype -> int -> llvalue */
-CAMLprim LLVMValueRef llvm_const_int(LLVMTypeRef IntTy, value N) {
-  return LLVMConstInt(IntTy, (long long) Int_val(N), 1);
-}
-
-/* lltype -> Int64.t -> bool -> llvalue */
-CAMLprim LLVMValueRef llvm_const_of_int64(LLVMTypeRef IntTy, value N,
-                                          value SExt) {
-  return LLVMConstInt(IntTy, Int64_val(N), Bool_val(SExt));
-}
-
-/* lltype -> string -> int -> llvalue */
-CAMLprim LLVMValueRef llvm_const_int_of_string(LLVMTypeRef IntTy, value S,
-                                               value Radix) {
-  return LLVMConstIntOfStringAndSize(IntTy, String_val(S), caml_string_length(S),
-                                     Int_val(Radix));
-}
-
-/* lltype -> float -> llvalue */
-CAMLprim LLVMValueRef llvm_const_float(LLVMTypeRef RealTy, value N) {
-  return LLVMConstReal(RealTy, Double_val(N));
-}
-
-/* lltype -> string -> llvalue */
-CAMLprim LLVMValueRef llvm_const_float_of_string(LLVMTypeRef RealTy, value S) {
-  return LLVMConstRealOfStringAndSize(RealTy, String_val(S),
-                                      caml_string_length(S));
-}
-
-/*--... Operations on composite constants ..................................--*/
-
-/* llcontext -> string -> llvalue */
-CAMLprim LLVMValueRef llvm_const_string(LLVMContextRef Context, value Str,
-                                        value NullTerminate) {
-  return LLVMConstStringInContext(Context, String_val(Str), string_length(Str),
-                                  1);
-}
-
-/* llcontext -> string -> llvalue */
-CAMLprim LLVMValueRef llvm_const_stringz(LLVMContextRef Context, value Str,
-                                         value NullTerminate) {
-  return LLVMConstStringInContext(Context, String_val(Str), string_length(Str),
-                                  0);
-}
-
-/* lltype -> llvalue array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_array(LLVMTypeRef ElementTy,
-                                               value ElementVals) {
-  return LLVMConstArray(ElementTy, (LLVMValueRef*) Op_val(ElementVals),
-                        Wosize_val(ElementVals));
-}
-
-/* llcontext -> llvalue array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_struct(LLVMContextRef C, value ElementVals) {
-  return LLVMConstStructInContext(C, (LLVMValueRef *) Op_val(ElementVals),
-                                  Wosize_val(ElementVals), 0);
-}
-
-/* llcontext -> llvalue array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_packed_struct(LLVMContextRef C,
-                                               value ElementVals) {
-  return LLVMConstStructInContext(C, (LLVMValueRef *) Op_val(ElementVals),
-                                  Wosize_val(ElementVals), 1);
-}
-
-/* llvalue array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_vector(value ElementVals) {
-  return LLVMConstVector((LLVMValueRef*) Op_val(ElementVals),
-                         Wosize_val(ElementVals));
-}
-
-/*--... Constant expressions ...............................................--*/
-
-/* Icmp.t -> llvalue -> llvalue -> llvalue */
-CAMLprim LLVMValueRef llvm_const_icmp(value Pred,
-                                      LLVMValueRef LHSConstant,
-                                      LLVMValueRef RHSConstant) {
-  return LLVMConstICmp(Int_val(Pred) + LLVMIntEQ, LHSConstant, RHSConstant);
-}
-
-/* Fcmp.t -> llvalue -> llvalue -> llvalue */
-CAMLprim LLVMValueRef llvm_const_fcmp(value Pred,
-                                      LLVMValueRef LHSConstant,
-                                      LLVMValueRef RHSConstant) {
-  return LLVMConstFCmp(Int_val(Pred), LHSConstant, RHSConstant);
-}
-
-/* llvalue -> llvalue array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_gep(LLVMValueRef ConstantVal, value Indices) {
-  return LLVMConstGEP(ConstantVal, (LLVMValueRef*) Op_val(Indices),
-                      Wosize_val(Indices));
-}
-
-/* llvalue -> llvalue array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_in_bounds_gep(LLVMValueRef ConstantVal,
-                                               value Indices) {
-  return LLVMConstInBoundsGEP(ConstantVal, (LLVMValueRef*) Op_val(Indices),
-                              Wosize_val(Indices));
-}
-
-/* llvalue -> int array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_extractvalue(LLVMValueRef Aggregate,
-                                              value Indices) {
-  CAMLparam1(Indices);
-  int size = Wosize_val(Indices);
-  int i;
-  LLVMValueRef result;
-
-  unsigned* idxs = (unsigned*)malloc(size * sizeof(unsigned));
-  for (i = 0; i < size; i++) {
-    idxs[i] = Int_val(Field(Indices, i));
-  }
-
-  result = LLVMConstExtractValue(Aggregate, idxs, size);
-  free(idxs);
-  CAMLreturnT(LLVMValueRef, result);
-}
-
-/* llvalue -> llvalue -> int array -> llvalue */
-CAMLprim LLVMValueRef llvm_const_insertvalue(LLVMValueRef Aggregate,
-                                             LLVMValueRef Val, value Indices) {
-  CAMLparam1(Indices);
-  int size = Wosize_val(Indices);
-  int i;
-  LLVMValueRef result;
-
-  unsigned* idxs = (unsigned*)malloc(size * sizeof(unsigned));
-  for (i = 0; i < size; i++) {
-    idxs[i] = Int_val(Field(Indices, i));
-  }
-
-  result = LLVMConstInsertValue(Aggregate, Val, idxs, size);
-  free(idxs);
-  CAMLreturnT(LLVMValueRef, result);
-}
-
-/*--... Operations on global variables, functions, and aliases (globals) ...--*/
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_declaration(LLVMValueRef Global) {
-  return Val_bool(LLVMIsDeclaration(Global));
-}
-
-/* llvalue -> Linkage.t */
-CAMLprim value llvm_linkage(LLVMValueRef Global) {
-  return Val_int(LLVMGetLinkage(Global));
-}
-
-/* Linkage.t -> llvalue -> unit */
-CAMLprim value llvm_set_linkage(value Linkage, LLVMValueRef Global) {
-  LLVMSetLinkage(Global, Int_val(Linkage));
-  return Val_unit;
-}
-
-/* llvalue -> string */
-CAMLprim value llvm_section(LLVMValueRef Global) {
-  return copy_string(LLVMGetSection(Global));
-}
-
-/* string -> llvalue -> unit */
-CAMLprim value llvm_set_section(value Section, LLVMValueRef Global) {
-  LLVMSetSection(Global, String_val(Section));
-  return Val_unit;
-}
-
-/* llvalue -> Visibility.t */
-CAMLprim value llvm_visibility(LLVMValueRef Global) {
-  return Val_int(LLVMGetVisibility(Global));
-}
-
-/* Visibility.t -> llvalue -> unit */
-CAMLprim value llvm_set_visibility(value Viz, LLVMValueRef Global) {
-  LLVMSetVisibility(Global, Int_val(Viz));
-  return Val_unit;
-}
-
-/* llvalue -> int */
-CAMLprim value llvm_alignment(LLVMValueRef Global) {
-  return Val_int(LLVMGetAlignment(Global));
-}
-
-/* int -> llvalue -> unit */
-CAMLprim value llvm_set_alignment(value Bytes, LLVMValueRef Global) {
-  LLVMSetAlignment(Global, Int_val(Bytes));
-  return Val_unit;
-}
-
-/*--... Operations on global variables .....................................--*/
-
-DEFINE_ITERATORS(global, Global, LLVMModuleRef, LLVMValueRef,
-                 LLVMGetGlobalParent)
-
-/* lltype -> string -> llmodule -> llvalue */
-CAMLprim LLVMValueRef llvm_declare_global(LLVMTypeRef Ty, value Name,
-                                          LLVMModuleRef M) {
-  LLVMValueRef GlobalVar;
-  if ((GlobalVar = LLVMGetNamedGlobal(M, String_val(Name)))) {
-    if (LLVMGetElementType(LLVMTypeOf(GlobalVar)) != Ty)
-      return LLVMConstBitCast(GlobalVar, LLVMPointerType(Ty, 0));
-    return GlobalVar;
-  }
-  return LLVMAddGlobal(M, Ty, String_val(Name));
-}
-
-/* string -> llmodule -> llvalue option */
-CAMLprim value llvm_lookup_global(value Name, LLVMModuleRef M) {
-  CAMLparam1(Name);
-  LLVMValueRef GlobalVar;
-  if ((GlobalVar = LLVMGetNamedGlobal(M, String_val(Name)))) {
-    value Option = alloc(1, 0);
-    Field(Option, 0) = (value) GlobalVar;
-    CAMLreturn(Option);
-  }
-  CAMLreturn(Val_int(0));
-}
-
-/* string -> llvalue -> llmodule -> llvalue */
-CAMLprim LLVMValueRef llvm_define_global(value Name, LLVMValueRef Initializer,
-                                         LLVMModuleRef M) {
-  LLVMValueRef GlobalVar = LLVMAddGlobal(M, LLVMTypeOf(Initializer),
-                                         String_val(Name));
-  LLVMSetInitializer(GlobalVar, Initializer);
-  return GlobalVar;
-}
-
-/* llvalue -> unit */
-CAMLprim value llvm_delete_global(LLVMValueRef GlobalVar) {
-  LLVMDeleteGlobal(GlobalVar);
-  return Val_unit;
-}
-
-/* llvalue -> llvalue -> unit */
-CAMLprim value llvm_set_initializer(LLVMValueRef ConstantVal,
-                                    LLVMValueRef GlobalVar) {
-  LLVMSetInitializer(GlobalVar, ConstantVal);
-  return Val_unit;
-}
-
-/* llvalue -> unit */
-CAMLprim value llvm_remove_initializer(LLVMValueRef GlobalVar) {
-  LLVMSetInitializer(GlobalVar, NULL);
-  return Val_unit;
-}
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_thread_local(LLVMValueRef GlobalVar) {
-  return Val_bool(LLVMIsThreadLocal(GlobalVar));
-}
-
-/* bool -> llvalue -> unit */
-CAMLprim value llvm_set_thread_local(value IsThreadLocal,
-                                     LLVMValueRef GlobalVar) {
-  LLVMSetThreadLocal(GlobalVar, Bool_val(IsThreadLocal));
-  return Val_unit;
-}
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_global_constant(LLVMValueRef GlobalVar) {
-  return Val_bool(LLVMIsGlobalConstant(GlobalVar));
-}
-
-/* bool -> llvalue -> unit */
-CAMLprim value llvm_set_global_constant(value Flag, LLVMValueRef GlobalVar) {
-  LLVMSetGlobalConstant(GlobalVar, Bool_val(Flag));
-  return Val_unit;
-}
-
-/*--... Operations on functions ............................................--*/
-
-DEFINE_ITERATORS(function, Function, LLVMModuleRef, LLVMValueRef,
-                 LLVMGetGlobalParent)
-
-/* string -> lltype -> llmodule -> llvalue */
-CAMLprim LLVMValueRef llvm_declare_function(value Name, LLVMTypeRef Ty,
-                                            LLVMModuleRef M) {
-  LLVMValueRef Fn;
-  if ((Fn = LLVMGetNamedFunction(M, String_val(Name)))) {
-    if (LLVMGetElementType(LLVMTypeOf(Fn)) != Ty)
-      return LLVMConstBitCast(Fn, LLVMPointerType(Ty, 0));
-    return Fn;
-  }
-  return LLVMAddFunction(M, String_val(Name), Ty);
-}
-
-/* string -> llmodule -> llvalue option */
-CAMLprim value llvm_lookup_function(value Name, LLVMModuleRef M) {
-  CAMLparam1(Name);
-  LLVMValueRef Fn;
-  if ((Fn = LLVMGetNamedFunction(M, String_val(Name)))) {
-    value Option = alloc(1, 0);
-    Field(Option, 0) = (value) Fn;
-    CAMLreturn(Option);
-  }
-  CAMLreturn(Val_int(0));
-}
-
-/* string -> lltype -> llmodule -> llvalue */
-CAMLprim LLVMValueRef llvm_define_function(value Name, LLVMTypeRef Ty,
-                                           LLVMModuleRef M) {
-  LLVMValueRef Fn = LLVMAddFunction(M, String_val(Name), Ty);
-  LLVMAppendBasicBlockInContext(LLVMGetTypeContext(Ty), Fn, "entry");
-  return Fn;
-}
-
-/* llvalue -> unit */
-CAMLprim value llvm_delete_function(LLVMValueRef Fn) {
-  LLVMDeleteFunction(Fn);
-  return Val_unit;
-}
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_intrinsic(LLVMValueRef Fn) {
-  return Val_bool(LLVMGetIntrinsicID(Fn));
-}
-
-/* llvalue -> int */
-CAMLprim value llvm_function_call_conv(LLVMValueRef Fn) {
-  return Val_int(LLVMGetFunctionCallConv(Fn));
-}
-
-/* int -> llvalue -> unit */
-CAMLprim value llvm_set_function_call_conv(value Id, LLVMValueRef Fn) {
-  LLVMSetFunctionCallConv(Fn, Int_val(Id));
-  return Val_unit;
-}
-
-/* llvalue -> string option */
-CAMLprim value llvm_gc(LLVMValueRef Fn) {
-  const char *GC;
-  CAMLparam0();
-  CAMLlocal2(Name, Option);
-  
-  if ((GC = LLVMGetGC(Fn))) {
-    Name = copy_string(GC);
-    
-    Option = alloc(1, 0);
-    Field(Option, 0) = Name;
-    CAMLreturn(Option);
-  } else {
-    CAMLreturn(Val_int(0));
-  }
-}
-
-/* string option -> llvalue -> unit */
-CAMLprim value llvm_set_gc(value GC, LLVMValueRef Fn) {
-  LLVMSetGC(Fn, GC == Val_int(0)? 0 : String_val(Field(GC, 0)));
-  return Val_unit;
-}
-
-/* llvalue -> Attribute.t -> unit */
-CAMLprim value llvm_add_function_attr(LLVMValueRef Arg, value PA) {
-  LLVMAddFunctionAttr(Arg, 1<<Int_val(PA));
-  return Val_unit;
-}
-
-/* llvalue -> Attribute.t -> unit */
-CAMLprim value llvm_remove_function_attr(LLVMValueRef Arg, value PA) {
-  LLVMRemoveFunctionAttr(Arg, 1<<Int_val(PA));
-  return Val_unit;
-}
-/*--... Operations on parameters ...........................................--*/
-
-DEFINE_ITERATORS(param, Param, LLVMValueRef, LLVMValueRef, LLVMGetParamParent)
-
-/* llvalue -> int -> llvalue */
-CAMLprim LLVMValueRef llvm_param(LLVMValueRef Fn, value Index) {
-  return LLVMGetParam(Fn, Int_val(Index));
-}
-
-/* llvalue -> int -> llvalue */
-CAMLprim value llvm_params(LLVMValueRef Fn, value Index) {
-  value Params = alloc(LLVMCountParams(Fn), 0);
-  LLVMGetParams(Fn, (LLVMValueRef *) Op_val(Params));
-  return Params;
-}
-
-/* llvalue -> Attribute.t -> unit */
-CAMLprim value llvm_add_param_attr(LLVMValueRef Arg, value PA) {
-  LLVMAddAttribute(Arg, 1<<Int_val(PA));
-  return Val_unit;
-}
-
-/* llvalue -> Attribute.t -> unit */
-CAMLprim value llvm_remove_param_attr(LLVMValueRef Arg, value PA) {
-  LLVMRemoveAttribute(Arg, 1<<Int_val(PA));
-  return Val_unit;
-}
-
-/* llvalue -> int -> unit */
-CAMLprim value llvm_set_param_alignment(LLVMValueRef Arg, value align) {
-  LLVMSetParamAlignment(Arg, Int_val(align));
-  return Val_unit;
-}
-
-/*--... Operations on basic blocks .........................................--*/
-
-DEFINE_ITERATORS(
-  block, BasicBlock, LLVMValueRef, LLVMBasicBlockRef, LLVMGetBasicBlockParent)
-
-/* llvalue -> llbasicblock array */
-CAMLprim value llvm_basic_blocks(LLVMValueRef Fn) {
-  value MLArray = alloc(LLVMCountBasicBlocks(Fn), 0);
-  LLVMGetBasicBlocks(Fn, (LLVMBasicBlockRef *) Op_val(MLArray));
-  return MLArray;
-}
-
-/* llbasicblock -> unit */
-CAMLprim value llvm_delete_block(LLVMBasicBlockRef BB) {
-  LLVMDeleteBasicBlock(BB);
-  return Val_unit;
-}
-
-/* string -> llvalue -> llbasicblock */
-CAMLprim LLVMBasicBlockRef llvm_append_block(LLVMContextRef Context, value Name,
-                                             LLVMValueRef Fn) {
-  return LLVMAppendBasicBlockInContext(Context, Fn, String_val(Name));
-}
-
-/* string -> llbasicblock -> llbasicblock */
-CAMLprim LLVMBasicBlockRef llvm_insert_block(LLVMContextRef Context, value Name,
-                                             LLVMBasicBlockRef BB) {
-  return LLVMInsertBasicBlockInContext(Context, BB, String_val(Name));
-}
-
-/* llvalue -> bool */
-CAMLprim value llvm_value_is_block(LLVMValueRef Val) {
-  return Val_bool(LLVMValueIsBasicBlock(Val));
-}
-
-/*--... Operations on instructions .........................................--*/
-
-DEFINE_ITERATORS(instr, Instruction, LLVMBasicBlockRef, LLVMValueRef,
-                 LLVMGetInstructionParent)
-
-
-/*--... Operations on call sites ...........................................--*/
-
-/* llvalue -> int */
-CAMLprim value llvm_instruction_call_conv(LLVMValueRef Inst) {
-  return Val_int(LLVMGetInstructionCallConv(Inst));
-}
-
-/* int -> llvalue -> unit */
-CAMLprim value llvm_set_instruction_call_conv(value CC, LLVMValueRef Inst) {
-  LLVMSetInstructionCallConv(Inst, Int_val(CC));
-  return Val_unit;
-}
-
-/* llvalue -> int -> Attribute.t -> unit */
-CAMLprim value llvm_add_instruction_param_attr(LLVMValueRef Instr,
-                                               value index,
-                                               value PA) {
-  LLVMAddInstrAttribute(Instr, Int_val(index), 1<<Int_val(PA));
-  return Val_unit;
-}
-
-/* llvalue -> int -> Attribute.t -> unit */
-CAMLprim value llvm_remove_instruction_param_attr(LLVMValueRef Instr,
-                                                  value index,
-                                                  value PA) {
-  LLVMRemoveInstrAttribute(Instr, Int_val(index), 1<<Int_val(PA));
-  return Val_unit;
-}
-
-/*--... Operations on call instructions (only) .............................--*/
-
-/* llvalue -> bool */
-CAMLprim value llvm_is_tail_call(LLVMValueRef CallInst) {
-  return Val_bool(LLVMIsTailCall(CallInst));
-}
-
-/* bool -> llvalue -> unit */
-CAMLprim value llvm_set_tail_call(value IsTailCall,
-                                  LLVMValueRef CallInst) {
-  LLVMSetTailCall(CallInst, Bool_val(IsTailCall));
-  return Val_unit;
-}
-
-/*--... Operations on phi nodes ............................................--*/
-
-/* (llvalue * llbasicblock) -> llvalue -> unit */
-CAMLprim value llvm_add_incoming(value Incoming, LLVMValueRef PhiNode) {
-  LLVMAddIncoming(PhiNode,
-                  (LLVMValueRef*) &Field(Incoming, 0),
-                  (LLVMBasicBlockRef*) &Field(Incoming, 1),
-                  1);
-  return Val_unit;
-}
-
-/* llvalue -> (llvalue * llbasicblock) list */
-CAMLprim value llvm_incoming(LLVMValueRef PhiNode) {
-  unsigned I;
-  CAMLparam0();
-  CAMLlocal3(Hd, Tl, Tmp);
-  
-  /* Build a tuple list of them. */
-  Tl = Val_int(0);
-  for (I = LLVMCountIncoming(PhiNode); I != 0; ) {
-    Hd = alloc(2, 0);
-    Store_field(Hd, 0, (value) LLVMGetIncomingValue(PhiNode, --I));
-    Store_field(Hd, 1, (value) LLVMGetIncomingBlock(PhiNode, I));
-    
-    Tmp = alloc(2, 0);
-    Store_field(Tmp, 0, Hd);
-    Store_field(Tmp, 1, Tl);
-    Tl = Tmp;
-  }
-  
-  CAMLreturn(Tl);
-}
-
-
-/*===-- Instruction builders ----------------------------------------------===*/
-
-#define Builder_val(v)  (*(LLVMBuilderRef *)(Data_custom_val(v)))
-
-static void llvm_finalize_builder(value B) {
-  LLVMDisposeBuilder(Builder_val(B));
-}
-
-static struct custom_operations builder_ops = {
-  (char *) "IRBuilder",
-  llvm_finalize_builder,
-  custom_compare_default,
-  custom_hash_default,
-  custom_serialize_default,
-  custom_deserialize_default
-};
-
-static value alloc_builder(LLVMBuilderRef B) {
-  value V = alloc_custom(&builder_ops, sizeof(LLVMBuilderRef), 0, 1);
-  Builder_val(V) = B;
-  return V;
-}
-
-/* llcontext -> llbuilder */
-CAMLprim value llvm_builder(LLVMContextRef C) {
-  return alloc_builder(LLVMCreateBuilderInContext(C));
-}
-
-/* (llbasicblock, llvalue) llpos -> llbuilder -> unit */
-CAMLprim value llvm_position_builder(value Pos, value B) {
-  if (Tag_val(Pos) == 0) {
-    LLVMBasicBlockRef BB = (LLVMBasicBlockRef) Op_val(Field(Pos, 0));
-    LLVMPositionBuilderAtEnd(Builder_val(B), BB);
-  } else {
-    LLVMValueRef I = (LLVMValueRef) Op_val(Field(Pos, 0));
-    LLVMPositionBuilderBefore(Builder_val(B), I);
-  }
-  return Val_unit;
-}
-
-/* llbuilder -> llbasicblock */
-CAMLprim LLVMBasicBlockRef llvm_insertion_block(LLVMBuilderRef B) {
-  LLVMBasicBlockRef InsertBlock = LLVMGetInsertBlock(Builder_val(B));
-  if (!InsertBlock)
-    raise_not_found();
-  return InsertBlock;
-}
-
-/* llvalue -> string -> llbuilder -> unit */
-CAMLprim value llvm_insert_into_builder(LLVMValueRef I, value Name,
-                                               LLVMBuilderRef B) {
-  LLVMInsertIntoBuilderWithName(B, I, String_val(Name));
-  return Val_unit;
-}
-
-/*--... Terminators ........................................................--*/
-
-/* llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_ret_void(value B) {
-  return LLVMBuildRetVoid(Builder_val(B));
-}
-
-/* llvalue -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_ret(LLVMValueRef Val, value B) {
-  return LLVMBuildRet(Builder_val(B), Val);
-}
-
-/* llvalue array -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_aggregate_ret(value RetVals, value B) {
-  return LLVMBuildAggregateRet(Builder_val(B), (LLVMValueRef *) Op_val(RetVals),
-                               Wosize_val(RetVals));
-}
-
-/* llbasicblock -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_br(LLVMBasicBlockRef BB, value B) {
-  return LLVMBuildBr(Builder_val(B), BB);
-}
-
-/* llvalue -> llbasicblock -> llbasicblock -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_cond_br(LLVMValueRef If,
-                                         LLVMBasicBlockRef Then,
-                                         LLVMBasicBlockRef Else,
-                                         value B) {
-  return LLVMBuildCondBr(Builder_val(B), If, Then, Else);
-}
-
-/* llvalue -> llbasicblock -> int -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_switch(LLVMValueRef Of,
-                                        LLVMBasicBlockRef Else,
-                                        value EstimatedCount,
-                                        value B) {
-  return LLVMBuildSwitch(Builder_val(B), Of, Else, Int_val(EstimatedCount));
-}
-
-CAMLprim value llvm_add_case(LLVMValueRef Switch,
-                             LLVMValueRef OnVal,
-                             LLVMBasicBlockRef Dest) {
-  LLVMAddCase(Switch, OnVal, Dest);
-  return Val_unit;
-}
-
-/* llvalue -> llvalue array -> llbasicblock -> llbasicblock -> string ->
-   llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_invoke_nat(LLVMValueRef Fn, value Args,
-                                            LLVMBasicBlockRef Then,
-                                            LLVMBasicBlockRef Catch,
-                                            value Name, value B) {
-  return LLVMBuildInvoke(Builder_val(B), Fn, (LLVMValueRef *) Op_val(Args),
-                         Wosize_val(Args), Then, Catch, String_val(Name));
-}
-
-/* llvalue -> llvalue array -> llbasicblock -> llbasicblock -> string ->
-   llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_invoke_bc(value Args[], int NumArgs) {
-  return llvm_build_invoke_nat((LLVMValueRef) Args[0], Args[1],
-                               (LLVMBasicBlockRef) Args[2],
-                               (LLVMBasicBlockRef) Args[3],
-                               Args[4], Args[5]);
-}
-
-/* llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_unwind(value B) {
-  return LLVMBuildUnwind(Builder_val(B));
-}
-
-/* llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_unreachable(value B) {
-  return LLVMBuildUnreachable(Builder_val(B));
-}
-
-/*--... Arithmetic .........................................................--*/
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_add(LLVMValueRef LHS, LLVMValueRef RHS,
-                                     value Name, value B) {
-  return LLVMBuildAdd(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_nsw_add(LLVMValueRef LHS, LLVMValueRef RHS,
-                                         value Name, value B) {
-  return LLVMBuildNSWAdd(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fadd(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildFAdd(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_sub(LLVMValueRef LHS, LLVMValueRef RHS,
-                                     value Name, value B) {
-  return LLVMBuildSub(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fsub(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildFSub(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_mul(LLVMValueRef LHS, LLVMValueRef RHS,
-                                     value Name, value B) {
-  return LLVMBuildMul(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fmul(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildFMul(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_udiv(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildUDiv(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_sdiv(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildSDiv(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_exact_sdiv(LLVMValueRef LHS, LLVMValueRef RHS,
-                                            value Name, value B) {
-  return LLVMBuildExactSDiv(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fdiv(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildFDiv(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_urem(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildURem(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_srem(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildSRem(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_frem(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildFRem(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_shl(LLVMValueRef LHS, LLVMValueRef RHS,
-                                     value Name, value B) {
-  return LLVMBuildShl(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_lshr(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildLShr(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_ashr(LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildAShr(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_and(LLVMValueRef LHS, LLVMValueRef RHS,
-                                     value Name, value B) {
-  return LLVMBuildAnd(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_or(LLVMValueRef LHS, LLVMValueRef RHS,
-                                    value Name, value B) {
-  return LLVMBuildOr(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_xor(LLVMValueRef LHS, LLVMValueRef RHS,
-                                     value Name, value B) {
-  return LLVMBuildXor(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/* llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_neg(LLVMValueRef X,
-                                     value Name, value B) {
-  return LLVMBuildNeg(Builder_val(B), X, String_val(Name));
-}
-
-/* llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_not(LLVMValueRef X,
-                                     value Name, value B) {
-  return LLVMBuildNot(Builder_val(B), X, String_val(Name));
-}
-
-/*--... Memory .............................................................--*/
-
-/* lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_malloc(LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildMalloc(Builder_val(B), Ty, String_val(Name));
-}
-
-/* lltype -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_array_malloc(LLVMTypeRef Ty, LLVMValueRef Size,
-                                              value Name, value B) {
-  return LLVMBuildArrayMalloc(Builder_val(B), Ty, Size, String_val(Name));
-}
-
-/* lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_alloca(LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildAlloca(Builder_val(B), Ty, String_val(Name));
-}
-
-/* lltype -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_array_alloca(LLVMTypeRef Ty, LLVMValueRef Size,
-                                              value Name, value B) {
-  return LLVMBuildArrayAlloca(Builder_val(B), Ty, Size, String_val(Name));
-}
-
-/* llvalue -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_free(LLVMValueRef Pointer, value B) {
-  return LLVMBuildFree(Builder_val(B), Pointer);
-}
-
-/* llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_load(LLVMValueRef Pointer,
-                                      value Name, value B) {
-  return LLVMBuildLoad(Builder_val(B), Pointer, String_val(Name));
-}
-
-/* llvalue -> llvalue -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_store(LLVMValueRef Value, LLVMValueRef Pointer,
-                                       value B) {
-  return LLVMBuildStore(Builder_val(B), Value, Pointer);
-}
-
-/* llvalue -> llvalue array -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_gep(LLVMValueRef Pointer, value Indices,
-                                     value Name, value B) {
-  return LLVMBuildGEP(Builder_val(B), Pointer,
-                      (LLVMValueRef *) Op_val(Indices), Wosize_val(Indices),
-                      String_val(Name));
-}
-
-/* llvalue -> llvalue array -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_in_bounds_gep(LLVMValueRef Pointer,
-                                               value Indices, value Name,
-                                               value B) {
-  return LLVMBuildInBoundsGEP(Builder_val(B), Pointer,
-                              (LLVMValueRef *) Op_val(Indices),
-                              Wosize_val(Indices), String_val(Name));
-}
-
-/* llvalue -> int -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_struct_gep(LLVMValueRef Pointer,
-                                               value Indices, value Name,
-                                               value B) {
-  return LLVMBuildInBoundsGEP(Builder_val(B), Pointer,
-                              (LLVMValueRef *) Op_val(Indices),
-                              Wosize_val(Indices), String_val(Name));
-}
-
-/* string -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_global_string(value Str, value Name, value B) {
-  return LLVMBuildGlobalString(Builder_val(B), String_val(Str),
-                               String_val(Name));
-}
-
-/* string -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_global_stringptr(value Str, value Name,
-                                                  value B) {
-  return LLVMBuildGlobalStringPtr(Builder_val(B), String_val(Str),
-                                  String_val(Name));
-}
-
-/*--... Casts ..............................................................--*/
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_trunc(LLVMValueRef X, LLVMTypeRef Ty,
-                                       value Name, value B) {
-  return LLVMBuildTrunc(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_zext(LLVMValueRef X, LLVMTypeRef Ty,
-                                      value Name, value B) {
-  return LLVMBuildZExt(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_sext(LLVMValueRef X, LLVMTypeRef Ty,
-                                      value Name, value B) {
-  return LLVMBuildSExt(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fptoui(LLVMValueRef X, LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildFPToUI(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fptosi(LLVMValueRef X, LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildFPToSI(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_uitofp(LLVMValueRef X, LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildUIToFP(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_sitofp(LLVMValueRef X, LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildSIToFP(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fptrunc(LLVMValueRef X, LLVMTypeRef Ty,
-                                         value Name, value B) {
-  return LLVMBuildFPTrunc(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fpext(LLVMValueRef X, LLVMTypeRef Ty,
-                                       value Name, value B) {
-  return LLVMBuildFPExt(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_prttoint(LLVMValueRef X, LLVMTypeRef Ty,
-                                          value Name, value B) {
-  return LLVMBuildPtrToInt(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_inttoptr(LLVMValueRef X, LLVMTypeRef Ty,
-                                          value Name, value B) {
-  return LLVMBuildIntToPtr(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_bitcast(LLVMValueRef X, LLVMTypeRef Ty,
-                                         value Name, value B) {
-  return LLVMBuildBitCast(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_zext_or_bitcast(LLVMValueRef X, LLVMTypeRef Ty,
-                                                 value Name, value B) {
-  return LLVMBuildZExtOrBitCast(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_sext_or_bitcast(LLVMValueRef X, LLVMTypeRef Ty,
-                                                 value Name, value B) {
-  return LLVMBuildSExtOrBitCast(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_trunc_or_bitcast(LLVMValueRef X,
-                                                  LLVMTypeRef Ty, value Name,
-                                                  value B) {
-  return LLVMBuildTruncOrBitCast(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_pointercast(LLVMValueRef X, LLVMTypeRef Ty,
-                                             value Name, value B) {
-  return LLVMBuildPointerCast(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_intcast(LLVMValueRef X, LLVMTypeRef Ty,
-                                         value Name, value B) {
-  return LLVMBuildIntCast(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fpcast(LLVMValueRef X, LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildFPCast(Builder_val(B), X, Ty, String_val(Name));
-}
-
-/*--... Comparisons ........................................................--*/
-
-/* Icmp.t -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_icmp(value Pred,
-                                      LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildICmp(Builder_val(B), Int_val(Pred) + LLVMIntEQ, LHS, RHS,
-                       String_val(Name));
-}
-
-/* Fcmp.t -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_fcmp(value Pred,
-                                      LLVMValueRef LHS, LLVMValueRef RHS,
-                                      value Name, value B) {
-  return LLVMBuildFCmp(Builder_val(B), Int_val(Pred), LHS, RHS,
-                       String_val(Name));
-}
-
-/*--... Miscellaneous instructions .........................................--*/
-
-/* (llvalue * llbasicblock) list -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_phi(value Incoming, value Name, value B) {
-  value Hd, Tl;
-  LLVMValueRef FirstValue, PhiNode;
-  
-  assert(Incoming != Val_int(0) && "Empty list passed to Llvm.build_phi!");
-  
-  Hd = Field(Incoming, 0);
-  FirstValue = (LLVMValueRef) Field(Hd, 0);
-  PhiNode = LLVMBuildPhi(Builder_val(B), LLVMTypeOf(FirstValue),
-                         String_val(Name));
-
-  for (Tl = Incoming; Tl != Val_int(0); Tl = Field(Tl, 1)) {
-    value Hd = Field(Tl, 0);
-    LLVMAddIncoming(PhiNode, (LLVMValueRef*) &Field(Hd, 0),
-                    (LLVMBasicBlockRef*) &Field(Hd, 1), 1);
-  }
-  
-  return PhiNode;
-}
-
-/* llvalue -> llvalue array -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_call(LLVMValueRef Fn, value Params,
-                                      value Name, value B) {
-  return LLVMBuildCall(Builder_val(B), Fn, (LLVMValueRef *) Op_val(Params),
-                       Wosize_val(Params), String_val(Name));
-}
-
-/* llvalue -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_select(LLVMValueRef If,
-                                        LLVMValueRef Then, LLVMValueRef Else,
-                                        value Name, value B) {
-  return LLVMBuildSelect(Builder_val(B), If, Then, Else, String_val(Name));
-}
-
-/* llvalue -> lltype -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_va_arg(LLVMValueRef List, LLVMTypeRef Ty,
-                                        value Name, value B) {
-  return LLVMBuildVAArg(Builder_val(B), List, Ty, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_extractelement(LLVMValueRef Vec,
-                                                LLVMValueRef Idx,
-                                                value Name, value B) {
-  return LLVMBuildExtractElement(Builder_val(B), Vec, Idx, String_val(Name));
-}
-
-/* llvalue -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_insertelement(LLVMValueRef Vec,
-                                               LLVMValueRef Element,
-                                               LLVMValueRef Idx,
-                                               value Name, value B) {
-  return LLVMBuildInsertElement(Builder_val(B), Vec, Element, Idx, 
-                                String_val(Name));
-}
-
-/* llvalue -> llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_shufflevector(LLVMValueRef V1, LLVMValueRef V2,
-                                               LLVMValueRef Mask,
-                                               value Name, value B) {
-  return LLVMBuildShuffleVector(Builder_val(B), V1, V2, Mask, String_val(Name));
-}
-
-/* llvalue -> int -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_extractvalue(LLVMValueRef Aggregate,
-                                              value Idx, value Name, value B) {
-  return LLVMBuildExtractValue(Builder_val(B), Aggregate, Int_val(Idx),
-                               String_val(Name));
-}
-
-/* llvalue -> llvalue -> int -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_insertvalue(LLVMValueRef Aggregate,
-                                             LLVMValueRef Val, value Idx,
-                                             value Name, value B) {
-  return LLVMBuildInsertValue(Builder_val(B), Aggregate, Val, Int_val(Idx),
-                              String_val(Name));
-}
-
-/* llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_is_null(LLVMValueRef Val, value Name,
-                                         value B) {
-  return LLVMBuildIsNull(Builder_val(B), Val, String_val(Name));
-}
-
-/* llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_is_not_null(LLVMValueRef Val, value Name,
-                                             value B) {
-  return LLVMBuildIsNotNull(Builder_val(B), Val, String_val(Name));
-}
-
-/* llvalue -> llvalue -> string -> llbuilder -> llvalue */
-CAMLprim LLVMValueRef llvm_build_ptrdiff(LLVMValueRef LHS, LLVMValueRef RHS,
-                                         value Name, value B) {
-  return LLVMBuildPtrDiff(Builder_val(B), LHS, RHS, String_val(Name));
-}
-
-/*===-- Module Providers --------------------------------------------------===*/
-
-/* llmoduleprovider -> unit */
-CAMLprim value llvm_dispose_module_provider(LLVMModuleProviderRef MP) {
-  LLVMDisposeModuleProvider(MP);
-  return Val_unit;
-}
-
-
-/*===-- Memory buffers ----------------------------------------------------===*/
-
-/* string -> llmemorybuffer
-   raises IoError msg on error */
-CAMLprim value llvm_memorybuffer_of_file(value Path) {
-  CAMLparam1(Path);
-  char *Message;
-  LLVMMemoryBufferRef MemBuf;
-  
-  if (LLVMCreateMemoryBufferWithContentsOfFile(String_val(Path),
-                                               &MemBuf, &Message))
-    llvm_raise(llvm_ioerror_exn, Message);
-  
-  CAMLreturn((value) MemBuf);
-}
-
-/* unit -> llmemorybuffer
-   raises IoError msg on error */
-CAMLprim LLVMMemoryBufferRef llvm_memorybuffer_of_stdin(value Unit) {
-  char *Message;
-  LLVMMemoryBufferRef MemBuf;
-  
-  if (LLVMCreateMemoryBufferWithSTDIN(&MemBuf, &Message))
-    llvm_raise(llvm_ioerror_exn, Message);
-  
-  return MemBuf;
-}
-
-/* llmemorybuffer -> unit */
-CAMLprim value llvm_memorybuffer_dispose(LLVMMemoryBufferRef MemBuf) {
-  LLVMDisposeMemoryBuffer(MemBuf);
-  return Val_unit;
-}
-
-/*===-- Pass Managers -----------------------------------------------------===*/
-
-/* unit -> [ `Module ] PassManager.t */
-CAMLprim LLVMPassManagerRef llvm_passmanager_create(value Unit) {
-  return LLVMCreatePassManager();
-}
-
-/* llmodule -> [ `Function ] PassManager.t -> bool */
-CAMLprim value llvm_passmanager_run_module(LLVMModuleRef M,
-                                           LLVMPassManagerRef PM) {
-  return Val_bool(LLVMRunPassManager(PM, M));
-}
-
-/* [ `Function ] PassManager.t -> bool */
-CAMLprim value llvm_passmanager_initialize(LLVMPassManagerRef FPM) {
-  return Val_bool(LLVMInitializeFunctionPassManager(FPM));
-}
-
-/* llvalue -> [ `Function ] PassManager.t -> bool */
-CAMLprim value llvm_passmanager_run_function(LLVMValueRef F,
-                                             LLVMPassManagerRef FPM) {
-  return Val_bool(LLVMRunFunctionPassManager(FPM, F));
-}
-
-/* [ `Function ] PassManager.t -> bool */
-CAMLprim value llvm_passmanager_finalize(LLVMPassManagerRef FPM) {
-  return Val_bool(LLVMFinalizeFunctionPassManager(FPM));
-}
-
-/* PassManager.any PassManager.t -> unit */
-CAMLprim value llvm_passmanager_dispose(LLVMPassManagerRef PM) {
-  LLVMDisposePassManager(PM);
-  return Val_unit;
-}
diff --git a/libclamav/c++/llvm/bindings/ocaml/target/Makefile b/libclamav/c++/llvm/bindings/ocaml/target/Makefile
deleted file mode 100644
index 3c48cd8..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/target/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- bindings/ocaml/target/Makefile ----------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-#
-# This is the makefile for the Objective Caml Llvm_target interface.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../..
-LIBRARYNAME := llvm_target
-UsedComponents := target
-UsedOcamlInterfaces := llvm
-
-include ../Makefile.ocaml
diff --git a/libclamav/c++/llvm/bindings/ocaml/target/llvm_target.ml b/libclamav/c++/llvm/bindings/ocaml/target/llvm_target.ml
deleted file mode 100644
index ea5341d..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/target/llvm_target.ml
+++ /dev/null
@@ -1,44 +0,0 @@
-(*===-- llvm_target.ml - LLVM Ocaml Interface ------------------*- OCaml -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-module Endian = struct
-  type t =
-  | Big
-  | Little
-end
-
-module TargetData = struct
-  type t
-
-  external create : string -> t = "llvm_targetdata_create"
-  external add : t -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit
-               = "llvm_targetdata_add"
-  external as_string : t -> string = "llvm_targetdata_as_string"
-  external invalidate_struct_layout : t -> Llvm.lltype -> unit
-                                    = "llvm_targetdata_invalidate_struct_layout"
-  external dispose : t -> unit = "llvm_targetdata_dispose"
-end
-
-external byte_order : TargetData.t -> Endian.t = "llvm_byte_order"
-external pointer_size : TargetData.t -> int = "llvm_pointer_size"
-external intptr_type : TargetData.t -> Llvm.lltype = "LLVMIntPtrType"
-external size_in_bits : TargetData.t -> Llvm.lltype -> Int64.t
-                      = "llvm_size_in_bits"
-external store_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_store_size"
-external abi_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_abi_size"
-external abi_align : TargetData.t -> Llvm.lltype -> int = "llvm_abi_align"
-external stack_align : TargetData.t -> Llvm.lltype -> int = "llvm_stack_align"
-external preferred_align : TargetData.t -> Llvm.lltype -> int
-                         = "llvm_preferred_align"
-external preferred_align_of_global : TargetData.t -> Llvm.llvalue -> int
-                                   = "llvm_preferred_align_of_global"
-external element_at_offset : TargetData.t -> Llvm.lltype -> Int64.t -> int
-                           = "llvm_element_at_offset"
-external offset_of_element : TargetData.t -> Llvm.lltype -> int -> Int64.t
-                           = "llvm_offset_of_element"
diff --git a/libclamav/c++/llvm/bindings/ocaml/target/llvm_target.mli b/libclamav/c++/llvm/bindings/ocaml/target/llvm_target.mli
deleted file mode 100644
index a82e1b6..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/target/llvm_target.mli
+++ /dev/null
@@ -1,102 +0,0 @@
-(*===-- llvm_target.mli - LLVM Ocaml Interface -----------------*- OCaml -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-(** Target Information.
-
-    This interface provides an ocaml API for LLVM target information,
-    the classes in the Target library. *)
-
-module Endian : sig
-  type t =
-  | Big
-  | Little
-end
-
-module TargetData : sig
-  type t
-
-  (** [TargetData.create rep] parses the target data string representation [rep].
-      See the constructor llvm::TargetData::TargetData. *)
-  external create : string -> t = "llvm_targetdata_create"
-
-  (** [add_target_data td pm] adds the target data [td] to the pass manager [pm].
-      Does not take ownership of the target data.
-      See the method llvm::PassManagerBase::add. *)
-  external add : t -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit
-               = "llvm_targetdata_add"
-
-  (** [as_string td] is the string representation of the target data [td].
-      See the constructor llvm::TargetData::TargetData. *)
-  external as_string : t -> string = "llvm_targetdata_as_string"
-
-  (** Struct layouts are speculatively cached. If a TargetDataRef is alive when
-      types are being refined and removed, this method must be called whenever a
-      struct type is removed to avoid a dangling pointer in this cache.
-      See the method llvm::TargetData::InvalidateStructLayoutInfo. *)
-  external invalidate_struct_layout : t -> Llvm.lltype -> unit
-                                    = "llvm_targetdata_invalidate_struct_layout"
-
-  (** Deallocates a TargetData.
-      See the destructor llvm::TargetData::~TargetData. *)
-  external dispose : t -> unit = "llvm_targetdata_dispose"
-end
-
-(** Returns the byte order of a target, either LLVMBigEndian or
-    LLVMLittleEndian.
-    See the method llvm::TargetData::isLittleEndian. *)
-external byte_order : TargetData.t -> Endian.t = "llvm_byte_order"
-
-(** Returns the pointer size in bytes for a target.
-    See the method llvm::TargetData::getPointerSize. *)
-external pointer_size : TargetData.t -> int = "llvm_pointer_size"
-
-(** Returns the integer type that is the same size as a pointer on a target.
-    See the method llvm::TargetData::getIntPtrType. *)
-external intptr_type : TargetData.t -> Llvm.lltype = "LLVMIntPtrType"
-
-(** Computes the size of a type in bytes for a target.
-    See the method llvm::TargetData::getTypeSizeInBits. *)
-external size_in_bits : TargetData.t -> Llvm.lltype -> Int64.t
-                      = "llvm_size_in_bits"
-
-(** Computes the storage size of a type in bytes for a target.
-    See the method llvm::TargetData::getTypeStoreSize. *)
-external store_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_store_size"
-
-(** Computes the ABI size of a type in bytes for a target.
-    See the method llvm::TargetData::getTypeAllocSize. *)
-external abi_size : TargetData.t -> Llvm.lltype -> Int64.t = "llvm_abi_size"
-
-(** Computes the ABI alignment of a type in bytes for a target.
-    See the method llvm::TargetData::getTypeABISize. *)
-external abi_align : TargetData.t -> Llvm.lltype -> int = "llvm_abi_align"
-
-(** Computes the call frame alignment of a type in bytes for a target.
-    See the method llvm::TargetData::getTypeABISize. *)
-external stack_align : TargetData.t -> Llvm.lltype -> int = "llvm_stack_align"
-
-(** Computes the preferred alignment of a type in bytes for a target.
-    See the method llvm::TargetData::getTypeABISize. *)
-external preferred_align : TargetData.t -> Llvm.lltype -> int
-                         = "llvm_preferred_align"
-
-(** Computes the preferred alignment of a global variable in bytes for a target.
-    See the method llvm::TargetData::getPreferredAlignment. *)
-external preferred_align_of_global : TargetData.t -> Llvm.llvalue -> int
-                                   = "llvm_preferred_align_of_global"
-
-(** Computes the structure element that contains the byte offset for a target.
-    See the method llvm::StructLayout::getElementContainingOffset. *)
-external element_at_offset : TargetData.t -> Llvm.lltype -> Int64.t -> int
-                           = "llvm_element_at_offset"
-
-(** Computes the byte offset of the indexed struct element for a target.
-    See the method llvm::StructLayout::getElementContainingOffset. *)
-external offset_of_element : TargetData.t -> Llvm.lltype -> int -> Int64.t
-                           = "llvm_offset_of_element"
diff --git a/libclamav/c++/llvm/bindings/ocaml/target/target_ocaml.c b/libclamav/c++/llvm/bindings/ocaml/target/target_ocaml.c
deleted file mode 100644
index cc20e81..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/target/target_ocaml.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*===-- target_ocaml.c - LLVM Ocaml Glue ------------------------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file glues LLVM's ocaml interface to its C interface. These functions *|
-|* are by and large transparent wrappers to the corresponding C functions.    *|
-|*                                                                            *|
-|* Note that these functions intentionally take liberties with the CAMLparamX *|
-|* macros, since most of the parameters are not GC heap objects.              *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#include "llvm-c/Target.h"
-#include "caml/alloc.h"
-
-/* string -> TargetData.t */
-CAMLprim LLVMTargetDataRef llvm_targetdata_create(value StringRep) {
-  return LLVMCreateTargetData(String_val(StringRep));
-}
-
-/* TargetData.t -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_targetdata_add(LLVMTargetDataRef TD, LLVMPassManagerRef PM){
-  LLVMAddTargetData(TD, PM);
-  return Val_unit;
-}
-
-/* TargetData.t -> string */
-CAMLprim value llvm_targetdata_as_string(LLVMTargetDataRef TD) {
-  char *StringRep = LLVMCopyStringRepOfTargetData(TD);
-  value Copy = copy_string(StringRep);
-  LLVMDisposeMessage(StringRep);
-  return Copy;
-}
-
-/* TargetData.t -> Llvm.lltype -> unit */
-CAMLprim value llvm_targetdata_invalidate_struct_layout(LLVMTargetDataRef TD,
-                                                        LLVMTypeRef Ty) {
-  LLVMInvalidateStructLayout(TD, Ty);
-  return Val_unit;
-}
-
-/* TargetData.t -> unit */
-CAMLprim value llvm_targetdata_dispose(LLVMTargetDataRef TD) {
-  LLVMDisposeTargetData(TD);
-  return Val_unit;
-}
-
-/* TargetData.t -> Endian.t */
-CAMLprim value llvm_byte_order(LLVMTargetDataRef TD) {
-  return Val_int(LLVMByteOrder(TD));
-}
-
-/* TargetData.t -> int */
-CAMLprim value llvm_pointer_size(LLVMTargetDataRef TD) {
-  return Val_int(LLVMPointerSize(TD));
-}
-
-/* TargetData.t -> Llvm.lltype -> Int64.t */
-CAMLprim value llvm_size_in_bits(LLVMTargetDataRef TD, LLVMTypeRef Ty) {
-  return caml_copy_int64(LLVMSizeOfTypeInBits(TD, Ty));
-}
-
-/* TargetData.t -> Llvm.lltype -> Int64.t */
-CAMLprim value llvm_store_size(LLVMTargetDataRef TD, LLVMTypeRef Ty) {
-  return caml_copy_int64(LLVMStoreSizeOfType(TD, Ty));
-}
-
-/* TargetData.t -> Llvm.lltype -> Int64.t */
-CAMLprim value llvm_abi_size(LLVMTargetDataRef TD, LLVMTypeRef Ty) {
-  return caml_copy_int64(LLVMABISizeOfType(TD, Ty));
-}
-
-/* TargetData.t -> Llvm.lltype -> int */
-CAMLprim value llvm_abi_align(LLVMTargetDataRef TD, LLVMTypeRef Ty) {
-  return Val_int(LLVMABIAlignmentOfType(TD, Ty));
-}
-
-/* TargetData.t -> Llvm.lltype -> int */
-CAMLprim value llvm_stack_align(LLVMTargetDataRef TD, LLVMTypeRef Ty) {
-  return Val_int(LLVMCallFrameAlignmentOfType(TD, Ty));
-}
-
-/* TargetData.t -> Llvm.lltype -> int */
-CAMLprim value llvm_preferred_align(LLVMTargetDataRef TD, LLVMTypeRef Ty) {
-  return Val_int(LLVMPreferredAlignmentOfType(TD, Ty));
-}
-
-/* TargetData.t -> Llvm.llvalue -> int */
-CAMLprim value llvm_preferred_align_of_global(LLVMTargetDataRef TD,
-                                              LLVMValueRef GlobalVar) {
-  return Val_int(LLVMPreferredAlignmentOfGlobal(TD, GlobalVar));
-}
-
-/* TargetData.t -> Llvm.lltype -> Int64.t -> int */
-CAMLprim value llvm_element_at_offset(LLVMTargetDataRef TD, LLVMTypeRef Ty,
-                                      value Offset) {
-  return Val_int(LLVMElementAtOffset(TD, Ty, Int_val(Offset)));
-}
-
-/* TargetData.t -> Llvm.lltype -> int -> Int64.t */
-CAMLprim value llvm_offset_of_element(LLVMTargetDataRef TD, LLVMTypeRef Ty,
-                                      value Index) {
-  return caml_copy_int64(LLVMOffsetOfElement(TD, Ty, Int_val(Index)));
-}
diff --git a/libclamav/c++/llvm/bindings/ocaml/transforms/Makefile b/libclamav/c++/llvm/bindings/ocaml/transforms/Makefile
deleted file mode 100644
index 95b00c8..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/transforms/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- bindings/ocaml/transforms/Makefile ------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../..
-DIRS = scalar
-
-ocamldoc:
-	$(Verb) for i in $(DIRS) ; do \
-		$(MAKE) -C $$i ocamldoc; \
-	done
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/Makefile b/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/Makefile
deleted file mode 100644
index cbaffa4..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-##===- bindings/ocaml/transforms/scalar/Makefile -----------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-#
-# This is the makefile for the Objective Caml Llvm_scalar_opts interface.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL := ../../../..
-LIBRARYNAME := llvm_scalar_opts
-DONT_BUILD_RELINKED := 1
-UsedComponents := scalaropts
-UsedOcamlInterfaces := llvm
-
-include ../../Makefile.ocaml
diff --git a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml b/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml
deleted file mode 100644
index b4563b7..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml
+++ /dev/null
@@ -1,32 +0,0 @@
-(*===-- llvm_scalar_opts.ml - LLVM Ocaml Interface -------------*- OCaml -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-external add_constant_propagation : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                    -> unit
-                                  = "llvm_add_constant_propagation"
-external add_instruction_combining : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                     -> unit
-                                   = "llvm_add_instruction_combining"
-external
-add_memory_to_register_promotion : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                   -> unit
-                                 = "llvm_add_memory_to_register_promotion"
-external
-add_memory_to_register_demotion : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                  -> unit
-                                = "llvm_add_memory_to_register_demotion"
-external add_reassociation : [<Llvm.PassManager.any] Llvm.PassManager.t
-                             -> unit
-                           = "llvm_add_reassociation"
-external add_gvn : [<Llvm.PassManager.any] Llvm.PassManager.t
-                   -> unit
-                 = "llvm_add_gvn"
-external add_cfg_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                  -> unit
-                                = "llvm_add_cfg_simplification"
diff --git a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli b/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli
deleted file mode 100644
index 6fcce04..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-(*===-- llvm_scalar_opts.mli - LLVM Ocaml Interface ------------*- OCaml -*-===*
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===*)
-
-(** Scalar Transforms.
-
-    This interface provides an ocaml API for LLVM scalar transforms, the
-    classes in the [LLVMScalarOpts] library. *)
-
-(** See the [llvm::createConstantPropogationPass] function. *)
-external add_constant_propagation : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                    -> unit
-                                  = "llvm_add_constant_propagation"
-
-(** See the [llvm::createInstructionCombiningPass] function. *)
-external add_instruction_combining : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                     -> unit
-                                   = "llvm_add_instruction_combining"
-
-(** See the [llvm::createPromoteMemoryToRegisterPass] function. *)
-external
-add_memory_to_register_promotion : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                   -> unit
-                                 = "llvm_add_memory_to_register_promotion"
-
-(** See the [llvm::createDemoteMemoryToRegisterPass] function. *)
-external
-add_memory_to_register_demotion : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                  -> unit
-                                = "llvm_add_memory_to_register_demotion"
-
-(** See the [llvm::createReassociatePass] function. *)
-external add_reassociation : [<Llvm.PassManager.any] Llvm.PassManager.t
-                             -> unit
-                           = "llvm_add_reassociation"
-
-(** See the [llvm::createGVNPass] function. *)
-external add_gvn : [<Llvm.PassManager.any] Llvm.PassManager.t
-                   -> unit
-                 = "llvm_add_gvn"
-
-(** See the [llvm::createCFGSimplificationPass] function. *)
-external add_cfg_simplification : [<Llvm.PassManager.any] Llvm.PassManager.t
-                                  -> unit
-                                = "llvm_add_cfg_simplification"
diff --git a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c b/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c
deleted file mode 100644
index 87c1060..0000000
--- a/libclamav/c++/llvm/bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*===-- scalar_opts_ocaml.c - LLVM Ocaml Glue -------------------*- C++ -*-===*\
-|*                                                                            *|
-|*                     The LLVM Compiler Infrastructure                       *|
-|*                                                                            *|
-|* This file is distributed under the University of Illinois Open Source      *|
-|* License. See LICENSE.TXT for details.                                      *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* This file glues LLVM's ocaml interface to its C interface. These functions *|
-|* are by and large transparent wrappers to the corresponding C functions.    *|
-|*                                                                            *|
-|* Note that these functions intentionally take liberties with the CAMLparamX *|
-|* macros, since most of the parameters are not GC heap objects.              *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
-
-#include "llvm-c/Transforms/Scalar.h"
-#include "caml/mlvalues.h"
-#include "caml/misc.h"
-
-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_constant_propagation(LLVMPassManagerRef PM) {
-  LLVMAddConstantPropagationPass(PM);
-  return Val_unit;
-}
-
-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_instruction_combining(LLVMPassManagerRef PM) {
-  LLVMAddInstructionCombiningPass(PM);
-  return Val_unit;
-}
-
-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_memory_to_register_promotion(LLVMPassManagerRef PM) {
-  LLVMAddPromoteMemoryToRegisterPass(PM);
-  return Val_unit;
-}
-
-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_memory_to_register_demotion(LLVMPassManagerRef PM) {
-  LLVMAddDemoteMemoryToRegisterPass(PM);
-  return Val_unit;
-}
-
-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_reassociation(LLVMPassManagerRef PM) {
-  LLVMAddReassociatePass(PM);
-  return Val_unit;
-}
-
-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_gvn(LLVMPassManagerRef PM) {
-  LLVMAddGVNPass(PM);
-  return Val_unit;
-}
-
-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_cfg_simplification(LLVMPassManagerRef PM) {
-  LLVMAddCFGSimplificationPass(PM);
-  return Val_unit;
-}
diff --git a/libclamav/c++/llvm/examples/BrainF/BrainF.cpp b/libclamav/c++/llvm/examples/BrainF/BrainF.cpp
deleted file mode 100644
index 5cf2b88..0000000
--- a/libclamav/c++/llvm/examples/BrainF/BrainF.cpp
+++ /dev/null
@@ -1,459 +0,0 @@
-//===-- BrainF.cpp - BrainF compiler example ----------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===--------------------------------------------------------------------===//
-//
-// This class compiles the BrainF language into LLVM assembly.
-//
-// The BrainF language has 8 commands:
-// Command   Equivalent C    Action
-// -------   ------------    ------
-// ,         *h=getchar();   Read a character from stdin, 255 on EOF
-// .         putchar(*h);    Write a character to stdout
-// -         --*h;           Decrement tape
-// +         ++*h;           Increment tape
-// <         --h;            Move head left
-// >         ++h;            Move head right
-// [         while(*h) {     Start loop
-// ]         }               End loop
-//
-//===--------------------------------------------------------------------===//
-
-#include "BrainF.h"
-#include "llvm/Constants.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/ADT/STLExtras.h"
-#include <iostream>
-using namespace llvm;
-
-//Set the constants for naming
-const char *BrainF::tapereg = "tape";
-const char *BrainF::headreg = "head";
-const char *BrainF::label   = "brainf";
-const char *BrainF::testreg = "test";
-
-Module *BrainF::parse(std::istream *in1, int mem, CompileFlags cf,
-                      LLVMContext& Context) {
-  in       = in1;
-  memtotal = mem;
-  comflag  = cf;
-
-  header(Context);
-  readloop(0, 0, 0, Context);
-  delete builder;
-  return module;
-}
-
-void BrainF::header(LLVMContext& C) {
-  module = new Module("BrainF", C);
-
-  //Function prototypes
-
-  //declare void @llvm.memset.i32(i8 *, i8, i32, i32)
-  const Type *Tys[] = { Type::getInt32Ty(C) };
-  Function *memset_func = Intrinsic::getDeclaration(module, Intrinsic::memset,
-                                                    Tys, 1);
-
-  //declare i32 @getchar()
-  getchar_func = cast<Function>(module->
-    getOrInsertFunction("getchar", IntegerType::getInt32Ty(C), NULL));
-
-  //declare i32 @putchar(i32)
-  putchar_func = cast<Function>(module->
-    getOrInsertFunction("putchar", IntegerType::getInt32Ty(C),
-                        IntegerType::getInt32Ty(C), NULL));
-
-
-  //Function header
-
-  //define void @brainf()
-  brainf_func = cast<Function>(module->
-    getOrInsertFunction("brainf", Type::getVoidTy(C), NULL));
-
-  builder = new IRBuilder<>(BasicBlock::Create(C, label, brainf_func));
-
-  //%arr = malloc i8, i32 %d
-  ConstantInt *val_mem = ConstantInt::get(C, APInt(32, memtotal));
-  ptr_arr = builder->CreateMalloc(IntegerType::getInt8Ty(C), val_mem, "arr");
-
-  //call void @llvm.memset.i32(i8 *%arr, i8 0, i32 %d, i32 1)
-  {
-    Value *memset_params[] = {
-      ptr_arr,
-      ConstantInt::get(C, APInt(8, 0)),
-      val_mem,
-      ConstantInt::get(C, APInt(32, 1))
-    };
-
-    CallInst *memset_call = builder->
-      CreateCall(memset_func, memset_params, array_endof(memset_params));
-    memset_call->setTailCall(false);
-  }
-
-  //%arrmax = getelementptr i8 *%arr, i32 %d
-  if (comflag & flag_arraybounds) {
-    ptr_arrmax = builder->
-      CreateGEP(ptr_arr, ConstantInt::get(C, APInt(32, memtotal)), "arrmax");
-  }
-
-  //%head.%d = getelementptr i8 *%arr, i32 %d
-  curhead = builder->CreateGEP(ptr_arr,
-                               ConstantInt::get(C, APInt(32, memtotal/2)),
-                               headreg);
-
-
-
-  //Function footer
-
-  //brainf.end:
-  endbb = BasicBlock::Create(C, label, brainf_func);
-
-  //free i8 *%arr
-  new FreeInst(ptr_arr, endbb);
-
-  //ret void
-  ReturnInst::Create(C, endbb);
-
-
-
-  //Error block for array out of bounds
-  if (comflag & flag_arraybounds)
-  {
-    //@aberrormsg = internal constant [%d x i8] c"\00"
-    Constant *msg_0 =
-      ConstantArray::get(C, "Error: The head has left the tape.", true);
-
-    GlobalVariable *aberrormsg = new GlobalVariable(
-      *module,
-      msg_0->getType(),
-      true,
-      GlobalValue::InternalLinkage,
-      msg_0,
-      "aberrormsg");
-
-    //declare i32 @puts(i8 *)
-    Function *puts_func = cast<Function>(module->
-      getOrInsertFunction("puts", IntegerType::getInt32Ty(C),
-                      PointerType::getUnqual(IntegerType::getInt8Ty(C)), NULL));
-
-    //brainf.aberror:
-    aberrorbb = BasicBlock::Create(C, label, brainf_func);
-
-    //call i32 @puts(i8 *getelementptr([%d x i8] *@aberrormsg, i32 0, i32 0))
-    {
-      Constant *zero_32 = Constant::getNullValue(IntegerType::getInt32Ty(C));
-
-      Constant *gep_params[] = {
-        zero_32,
-        zero_32
-      };
-
-      Constant *msgptr = ConstantExpr::
-        getGetElementPtr(aberrormsg, gep_params,
-                         array_lengthof(gep_params));
-
-      Value *puts_params[] = {
-        msgptr
-      };
-
-      CallInst *puts_call =
-        CallInst::Create(puts_func,
-                         puts_params, array_endof(puts_params),
-                         "", aberrorbb);
-      puts_call->setTailCall(false);
-    }
-
-    //br label %brainf.end
-    BranchInst::Create(endbb, aberrorbb);
-  }
-}
-
-void BrainF::readloop(PHINode *phi, BasicBlock *oldbb, BasicBlock *testbb,
-                      LLVMContext &C) {
-  Symbol cursym = SYM_NONE;
-  int curvalue = 0;
-  Symbol nextsym = SYM_NONE;
-  int nextvalue = 0;
-  char c;
-  int loop;
-  int direction;
-
-  while(cursym != SYM_EOF && cursym != SYM_ENDLOOP) {
-    // Write out commands
-    switch(cursym) {
-      case SYM_NONE:
-        // Do nothing
-        break;
-
-      case SYM_READ:
-        {
-          //%tape.%d = call i32 @getchar()
-          CallInst *getchar_call = builder->CreateCall(getchar_func, tapereg);
-          getchar_call->setTailCall(false);
-          Value *tape_0 = getchar_call;
-
-          //%tape.%d = trunc i32 %tape.%d to i8
-          Value *tape_1 = builder->
-            CreateTrunc(tape_0, IntegerType::getInt8Ty(C), tapereg);
-
-          //store i8 %tape.%d, i8 *%head.%d
-          builder->CreateStore(tape_1, curhead);
-        }
-        break;
-
-      case SYM_WRITE:
-        {
-          //%tape.%d = load i8 *%head.%d
-          LoadInst *tape_0 = builder->CreateLoad(curhead, tapereg);
-
-          //%tape.%d = sext i8 %tape.%d to i32
-          Value *tape_1 = builder->
-            CreateSExt(tape_0, IntegerType::getInt32Ty(C), tapereg);
-
-          //call i32 @putchar(i32 %tape.%d)
-          Value *putchar_params[] = {
-            tape_1
-          };
-          CallInst *putchar_call = builder->
-            CreateCall(putchar_func,
-                       putchar_params, array_endof(putchar_params));
-          putchar_call->setTailCall(false);
-        }
-        break;
-
-      case SYM_MOVE:
-        {
-          //%head.%d = getelementptr i8 *%head.%d, i32 %d
-          curhead = builder->
-            CreateGEP(curhead, ConstantInt::get(C, APInt(32, curvalue)),
-                      headreg);
-
-          //Error block for array out of bounds
-          if (comflag & flag_arraybounds)
-          {
-            //%test.%d = icmp uge i8 *%head.%d, %arrmax
-            Value *test_0 = builder->
-              CreateICmpUGE(curhead, ptr_arrmax, testreg);
-
-            //%test.%d = icmp ult i8 *%head.%d, %arr
-            Value *test_1 = builder->
-              CreateICmpULT(curhead, ptr_arr, testreg);
-
-            //%test.%d = or i1 %test.%d, %test.%d
-            Value *test_2 = builder->
-              CreateOr(test_0, test_1, testreg);
-
-            //br i1 %test.%d, label %main.%d, label %main.%d
-            BasicBlock *nextbb = BasicBlock::Create(C, label, brainf_func);
-            builder->CreateCondBr(test_2, aberrorbb, nextbb);
-
-            //main.%d:
-            builder->SetInsertPoint(nextbb);
-          }
-        }
-        break;
-
-      case SYM_CHANGE:
-        {
-          //%tape.%d = load i8 *%head.%d
-          LoadInst *tape_0 = builder->CreateLoad(curhead, tapereg);
-
-          //%tape.%d = add i8 %tape.%d, %d
-          Value *tape_1 = builder->
-            CreateAdd(tape_0, ConstantInt::get(C, APInt(8, curvalue)), tapereg);
-
-          //store i8 %tape.%d, i8 *%head.%d\n"
-          builder->CreateStore(tape_1, curhead);
-        }
-        break;
-
-      case SYM_LOOP:
-        {
-          //br label %main.%d
-          BasicBlock *testbb = BasicBlock::Create(C, label, brainf_func);
-          builder->CreateBr(testbb);
-
-          //main.%d:
-          BasicBlock *bb_0 = builder->GetInsertBlock();
-          BasicBlock *bb_1 = BasicBlock::Create(C, label, brainf_func);
-          builder->SetInsertPoint(bb_1);
-
-          // Make part of PHI instruction now, wait until end of loop to finish
-          PHINode *phi_0 =
-            PHINode::Create(PointerType::getUnqual(IntegerType::getInt8Ty(C)),
-                            headreg, testbb);
-          phi_0->reserveOperandSpace(2);
-          phi_0->addIncoming(curhead, bb_0);
-          curhead = phi_0;
-
-          readloop(phi_0, bb_1, testbb, C);
-        }
-        break;
-
-      default:
-        std::cerr << "Error: Unknown symbol.\n";
-        abort();
-        break;
-    }
-
-    cursym = nextsym;
-    curvalue = nextvalue;
-    nextsym = SYM_NONE;
-
-    // Reading stdin loop
-    loop = (cursym == SYM_NONE)
-        || (cursym == SYM_MOVE)
-        || (cursym == SYM_CHANGE);
-    while(loop) {
-      *in>>c;
-      if (in->eof()) {
-        if (cursym == SYM_NONE) {
-          cursym = SYM_EOF;
-        } else {
-          nextsym = SYM_EOF;
-        }
-        loop = 0;
-      } else {
-        direction = 1;
-        switch(c) {
-          case '-':
-            direction = -1;
-            // Fall through
-
-          case '+':
-            if (cursym == SYM_CHANGE) {
-              curvalue += direction;
-              // loop = 1
-            } else {
-              if (cursym == SYM_NONE) {
-                cursym = SYM_CHANGE;
-                curvalue = direction;
-                // loop = 1
-              } else {
-                nextsym = SYM_CHANGE;
-                nextvalue = direction;
-                loop = 0;
-              }
-            }
-            break;
-
-          case '<':
-            direction = -1;
-            // Fall through
-
-          case '>':
-            if (cursym == SYM_MOVE) {
-              curvalue += direction;
-              // loop = 1
-            } else {
-              if (cursym == SYM_NONE) {
-                cursym = SYM_MOVE;
-                curvalue = direction;
-                // loop = 1
-              } else {
-                nextsym = SYM_MOVE;
-                nextvalue = direction;
-                loop = 0;
-              }
-            }
-            break;
-
-          case ',':
-            if (cursym == SYM_NONE) {
-              cursym = SYM_READ;
-            } else {
-              nextsym = SYM_READ;
-            }
-            loop = 0;
-            break;
-
-          case '.':
-            if (cursym == SYM_NONE) {
-              cursym = SYM_WRITE;
-            } else {
-              nextsym = SYM_WRITE;
-            }
-            loop = 0;
-            break;
-
-          case '[':
-            if (cursym == SYM_NONE) {
-              cursym = SYM_LOOP;
-            } else {
-              nextsym = SYM_LOOP;
-            }
-            loop = 0;
-            break;
-
-          case ']':
-            if (cursym == SYM_NONE) {
-              cursym = SYM_ENDLOOP;
-            } else {
-              nextsym = SYM_ENDLOOP;
-            }
-            loop = 0;
-            break;
-
-          // Ignore other characters
-          default:
-            break;
-        }
-      }
-    }
-  }
-
-  if (cursym == SYM_ENDLOOP) {
-    if (!phi) {
-      std::cerr << "Error: Extra ']'\n";
-      abort();
-    }
-
-    // Write loop test
-    {
-      //br label %main.%d
-      builder->CreateBr(testbb);
-
-      //main.%d:
-
-      //%head.%d = phi i8 *[%head.%d, %main.%d], [%head.%d, %main.%d]
-      //Finish phi made at beginning of loop
-      phi->addIncoming(curhead, builder->GetInsertBlock());
-      Value *head_0 = phi;
-
-      //%tape.%d = load i8 *%head.%d
-      LoadInst *tape_0 = new LoadInst(head_0, tapereg, testbb);
-
-      //%test.%d = icmp eq i8 %tape.%d, 0
-      ICmpInst *test_0 = new ICmpInst(*testbb, ICmpInst::ICMP_EQ, tape_0,
-                                    ConstantInt::get(C, APInt(8, 0)), testreg);
-
-      //br i1 %test.%d, label %main.%d, label %main.%d
-      BasicBlock *bb_0 = BasicBlock::Create(C, label, brainf_func);
-      BranchInst::Create(bb_0, oldbb, test_0, testbb);
-
-      //main.%d:
-      builder->SetInsertPoint(bb_0);
-
-      //%head.%d = phi i8 *[%head.%d, %main.%d]
-      PHINode *phi_1 = builder->
-        CreatePHI(PointerType::getUnqual(IntegerType::getInt8Ty(C)), headreg);
-      phi_1->reserveOperandSpace(1);
-      phi_1->addIncoming(head_0, testbb);
-      curhead = phi_1;
-    }
-
-    return;
-  }
-
-  //End of the program, so go to return block
-  builder->CreateBr(endbb);
-
-  if (phi) {
-    std::cerr << "Error: Missing ']'\n";
-    abort();
-  }
-}
diff --git a/libclamav/c++/llvm/examples/BrainF/BrainF.h b/libclamav/c++/llvm/examples/BrainF/BrainF.h
deleted file mode 100644
index add0687..0000000
--- a/libclamav/c++/llvm/examples/BrainF/BrainF.h
+++ /dev/null
@@ -1,94 +0,0 @@
-//===-- BrainF.h - BrainF compiler class ----------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===--------------------------------------------------------------------===//
-//
-// This class stores the data for the BrainF compiler so it doesn't have
-// to pass all of it around.  The main method is parse.
-//
-//===--------------------------------------------------------------------===//
-
-#ifndef BRAINF_H
-#define BRAINF_H
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/Support/IRBuilder.h"
-
-using namespace llvm;
-
-/// This class provides a parser for the BrainF language.
-/// The class itself is made to store values during
-/// parsing so they don't have to be passed around
-/// as much.
-class BrainF {
-  public:
-    /// Options for how BrainF should compile
-    enum CompileFlags {
-      flag_off         = 0,
-      flag_arraybounds = 1
-    };
-
-    /// This is the main method.  It parses BrainF from in1
-    /// and returns the module with a function
-    /// void brainf()
-    /// containing the resulting code.
-    /// On error, it calls abort.
-    /// The caller must delete the returned module.
-    Module *parse(std::istream *in1, int mem, CompileFlags cf,
-                  LLVMContext& C);
-
-  protected:
-    /// The different symbols in the BrainF language
-    enum Symbol {
-      SYM_NONE,
-      SYM_READ,
-      SYM_WRITE,
-      SYM_MOVE,
-      SYM_CHANGE,
-      SYM_LOOP,
-      SYM_ENDLOOP,
-      SYM_EOF
-    };
-
-    /// Names of the different parts of the language.
-    /// Tape is used for reading and writing the tape.
-    /// headreg is used for the position of the head.
-    /// label is used for the labels for the BasicBlocks.
-    /// testreg is used for testing the loop exit condition.
-    static const char *tapereg;
-    static const char *headreg;
-    static const char *label;
-    static const char *testreg;
-
-    /// Put the brainf function preamble and other fixed pieces of code
-    void header(LLVMContext& C);
-
-    /// The main loop for parsing.  It calls itself recursively
-    /// to handle the depth of nesting of "[]".
-    void readloop(PHINode *phi, BasicBlock *oldbb,
-                  BasicBlock *testbb, LLVMContext &Context);
-
-    /// Constants during parsing
-    int memtotal;
-    CompileFlags comflag;
-    std::istream *in;
-    Module *module;
-    Function *brainf_func;
-    Function *getchar_func;
-    Function *putchar_func;
-    Value *ptr_arr;
-    Value *ptr_arrmax;
-    BasicBlock *endbb;
-    BasicBlock *aberrorbb;
-
-    /// Variables
-    IRBuilder<> *builder;
-    Value *curhead;
-};
-
-#endif
diff --git a/libclamav/c++/llvm/examples/BrainF/BrainFDriver.cpp b/libclamav/c++/llvm/examples/BrainF/BrainFDriver.cpp
deleted file mode 100644
index 6f4ba69..0000000
--- a/libclamav/c++/llvm/examples/BrainF/BrainFDriver.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//===-- BrainFDriver.cpp - BrainF compiler driver -----------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===--------------------------------------------------------------------===//
-//
-// This program converts the BrainF language into LLVM assembly,
-// which it can then run using the JIT or output as BitCode.
-//
-// This implementation has a tape of 65536 bytes,
-// with the head starting in the middle.
-// Range checking is off by default, so be careful.
-// It can be enabled with -abc.
-//
-// Use:
-// ./BrainF -jit      prog.bf          #Run program now
-// ./BrainF -jit -abc prog.bf          #Run program now safely
-// ./BrainF           prog.bf          #Write as BitCode
-//
-// lli prog.bf.bc                      #Run generated BitCode
-// llvm-ld -native -o=prog prog.bf.bc  #Compile BitCode into native executable
-//
-//===--------------------------------------------------------------------===//
-
-#include "BrainF.h"
-#include "llvm/Constants.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/ExecutionEngine/GenericValue.h"
-#include "llvm/ExecutionEngine/JIT.h"
-#include "llvm/Target/TargetSelect.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/raw_ostream.h"
-#include <iostream>
-#include <fstream>
-using namespace llvm;
-
-//Command line options
-
-static cl::opt<std::string>
-InputFilename(cl::Positional, cl::desc("<input brainf>"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"));
-
-static cl::opt<bool>
-ArrayBoundsChecking("abc", cl::desc("Enable array bounds checking"));
-
-static cl::opt<bool>
-JIT("jit", cl::desc("Run program Just-In-Time"));
-
-
-//Add main function so can be fully compiled
-void addMainFunction(Module *mod) {
-  //define i32 @main(i32 %argc, i8 **%argv)
-  Function *main_func = cast<Function>(mod->
-    getOrInsertFunction("main", IntegerType::getInt32Ty(mod->getContext()),
-                        IntegerType::getInt32Ty(mod->getContext()),
-                        PointerType::getUnqual(PointerType::getUnqual(
-                          IntegerType::getInt8Ty(mod->getContext()))), NULL));
-  {
-    Function::arg_iterator args = main_func->arg_begin();
-    Value *arg_0 = args++;
-    arg_0->setName("argc");
-    Value *arg_1 = args++;
-    arg_1->setName("argv");
-  }
-
-  //main.0:
-  BasicBlock *bb = BasicBlock::Create(mod->getContext(), "main.0", main_func);
-
-  //call void @brainf()
-  {
-    CallInst *brainf_call = CallInst::Create(mod->getFunction("brainf"),
-                                             "", bb);
-    brainf_call->setTailCall(false);
-  }
-
-  //ret i32 0
-  ReturnInst::Create(mod->getContext(),
-                     ConstantInt::get(mod->getContext(), APInt(32, 0)), bb);
-}
-
-int main(int argc, char **argv) {
-  cl::ParseCommandLineOptions(argc, argv, " BrainF compiler\n");
-
-  LLVMContext &Context = getGlobalContext();
-
-  if (InputFilename == "") {
-    errs() << "Error: You must specify the filename of the program to "
-    "be compiled.  Use --help to see the options.\n";
-    abort();
-  }
-
-  //Get the output stream
-  raw_ostream *out = &outs();
-  if (!JIT) {
-    if (OutputFilename == "") {
-      std::string base = InputFilename;
-      if (InputFilename == "-") { base = "a"; }
-
-      // Use default filename.
-      OutputFilename = base+".bc";
-    }
-    if (OutputFilename != "-") {
-      std::string ErrInfo;
-      out = new raw_fd_ostream(OutputFilename.c_str(), ErrInfo,
-                               raw_fd_ostream::F_Binary);
-    }
-  }
-
-  //Get the input stream
-  std::istream *in = &std::cin;
-  if (InputFilename != "-")
-    in = new std::ifstream(InputFilename.c_str());
-
-  //Gather the compile flags
-  BrainF::CompileFlags cf = BrainF::flag_off;
-  if (ArrayBoundsChecking)
-    cf = BrainF::CompileFlags(cf | BrainF::flag_arraybounds);
-
-  //Read the BrainF program
-  BrainF bf;
-  Module *mod = bf.parse(in, 65536, cf, Context); //64 KiB
-  if (in != &std::cin)
-    delete in;
-  addMainFunction(mod);
-
-  //Verify generated code
-  if (verifyModule(*mod)) {
-    errs() << "Error: module failed verification.  This shouldn't happen.\n";
-    abort();
-  }
-
-  //Write it out
-  if (JIT) {
-    InitializeNativeTarget();
-
-    outs() << "------- Running JIT -------\n";
-    ExecutionEngine *ee = EngineBuilder(mod).create();
-    std::vector<GenericValue> args;
-    Function *brainf_func = mod->getFunction("brainf");
-    GenericValue gv = ee->runFunction(brainf_func, args);
-  } else {
-    WriteBitcodeToFile(mod, *out);
-  }
-
-  //Clean up
-  if (out != &outs())
-    delete out;
-  delete mod;
-
-  llvm_shutdown();
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/examples/BrainF/CMakeLists.txt b/libclamav/c++/llvm/examples/BrainF/CMakeLists.txt
deleted file mode 100644
index 7bec105..0000000
--- a/libclamav/c++/llvm/examples/BrainF/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-set(LLVM_LINK_COMPONENTS jit bitwriter nativecodegen interpreter)
-
-add_llvm_example(BrainF
-  BrainF.cpp
-  BrainFDriver.cpp
-  )
diff --git a/libclamav/c++/llvm/examples/BrainF/Makefile b/libclamav/c++/llvm/examples/BrainF/Makefile
deleted file mode 100644
index 2c3e066..0000000
--- a/libclamav/c++/llvm/examples/BrainF/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- examples/BrainF/Makefile ----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-TOOLNAME = BrainF
-EXAMPLE_TOOL = 1
-
-LINK_COMPONENTS := jit bitwriter nativecodegen interpreter
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/examples/CMakeLists.txt b/libclamav/c++/llvm/examples/CMakeLists.txt
deleted file mode 100644
index c5b8079..0000000
--- a/libclamav/c++/llvm/examples/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-add_subdirectory(BrainF)
-add_subdirectory(Fibonacci)
-add_subdirectory(HowToUseJIT)
-add_subdirectory(Kaleidoscope)
-add_subdirectory(ModuleMaker)
-
-include(CheckIncludeFile)
-check_include_file(pthread.h HAVE_PTHREAD_H)
-
-if( HAVE_PTHREAD_H )
-  add_subdirectory(ParallelJIT)
-endif( HAVE_PTHREAD_H )
diff --git a/libclamav/c++/llvm/examples/Fibonacci/CMakeLists.txt b/libclamav/c++/llvm/examples/Fibonacci/CMakeLists.txt
deleted file mode 100644
index 6937612..0000000
--- a/libclamav/c++/llvm/examples/Fibonacci/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
-
-add_llvm_example(Fibonacci
-  fibonacci.cpp
-  )
diff --git a/libclamav/c++/llvm/examples/Fibonacci/Makefile b/libclamav/c++/llvm/examples/Fibonacci/Makefile
deleted file mode 100644
index 71f6ba0..0000000
--- a/libclamav/c++/llvm/examples/Fibonacci/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- examples/Fibonacci/Makefile -------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-TOOLNAME = Fibonacci
-EXAMPLE_TOOL = 1
-
-# Link in JIT support
-LINK_COMPONENTS := jit interpreter nativecodegen
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/examples/Fibonacci/fibonacci.cpp b/libclamav/c++/llvm/examples/Fibonacci/fibonacci.cpp
deleted file mode 100644
index b1a4691..0000000
--- a/libclamav/c++/llvm/examples/Fibonacci/fibonacci.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//===--- examples/Fibonacci/fibonacci.cpp - An example use of the JIT -----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This small program provides an example of how to build quickly a small module
-// with function Fibonacci and execute it with the JIT.
-//
-// The goal of this snippet is to create in the memory the LLVM module
-// consisting of one function as follow:
-//
-//   int fib(int x) {
-//     if(x<=2) return 1;
-//     return fib(x-1)+fib(x-2);
-//   }
-//
-// Once we have this, we compile the module via JIT, then execute the `fib'
-// function and return result to a driver, i.e. to a "host program".
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Constants.h"
-#include "llvm/Instructions.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/ExecutionEngine/JIT.h"
-#include "llvm/ExecutionEngine/Interpreter.h"
-#include "llvm/ExecutionEngine/GenericValue.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-static Function *CreateFibFunction(Module *M, LLVMContext &Context) {
-  // Create the fib function and insert it into module M.  This function is said
-  // to return an int and take an int parameter.
-  Function *FibF =
-    cast<Function>(M->getOrInsertFunction("fib", Type::getInt32Ty(Context), 
-                                          Type::getInt32Ty(Context),
-                                          (Type *)0));
-
-  // Add a basic block to the function.
-  BasicBlock *BB = BasicBlock::Create(Context, "EntryBlock", FibF);
-
-  // Get pointers to the constants.
-  Value *One = ConstantInt::get(Type::getInt32Ty(Context), 1);
-  Value *Two = ConstantInt::get(Type::getInt32Ty(Context), 2);
-
-  // Get pointer to the integer argument of the add1 function...
-  Argument *ArgX = FibF->arg_begin();   // Get the arg.
-  ArgX->setName("AnArg");            // Give it a nice symbolic name for fun.
-
-  // Create the true_block.
-  BasicBlock *RetBB = BasicBlock::Create(Context, "return", FibF);
-  // Create an exit block.
-  BasicBlock* RecurseBB = BasicBlock::Create(Context, "recurse", FibF);
-
-  // Create the "if (arg <= 2) goto exitbb"
-  Value *CondInst = new ICmpInst(*BB, ICmpInst::ICMP_SLE, ArgX, Two, "cond");
-  BranchInst::Create(RetBB, RecurseBB, CondInst, BB);
-
-  // Create: ret int 1
-  ReturnInst::Create(Context, One, RetBB);
-
-  // create fib(x-1)
-  Value *Sub = BinaryOperator::CreateSub(ArgX, One, "arg", RecurseBB);
-  CallInst *CallFibX1 = CallInst::Create(FibF, Sub, "fibx1", RecurseBB);
-  CallFibX1->setTailCall();
-
-  // create fib(x-2)
-  Sub = BinaryOperator::CreateSub(ArgX, Two, "arg", RecurseBB);
-  CallInst *CallFibX2 = CallInst::Create(FibF, Sub, "fibx2", RecurseBB);
-  CallFibX2->setTailCall();
-
-
-  // fib(x-1)+fib(x-2)
-  Value *Sum = BinaryOperator::CreateAdd(CallFibX1, CallFibX2,
-                                         "addresult", RecurseBB);
-
-  // Create the return instruction and add it to the basic block
-  ReturnInst::Create(Context, Sum, RecurseBB);
-
-  return FibF;
-}
-
-
-int main(int argc, char **argv) {
-  int n = argc > 1 ? atol(argv[1]) : 24;
-
-  LLVMContext Context;
-  
-  // Create some module to put our function into it.
-  Module *M = new Module("test", Context);
-
-  // We are about to create the "fib" function:
-  Function *FibF = CreateFibFunction(M, Context);
-
-  // Now we going to create JIT
-  ExecutionEngine *EE = EngineBuilder(M).create();
-
-  errs() << "verifying... ";
-  if (verifyModule(*M)) {
-    errs() << argv[0] << ": Error constructing function!\n";
-    return 1;
-  }
-
-  errs() << "OK\n";
-  errs() << "We just constructed this LLVM module:\n\n---------\n" << *M;
-  errs() << "---------\nstarting fibonacci(" << n << ") with JIT...\n";
-
-  // Call the Fibonacci function with argument n:
-  std::vector<GenericValue> Args(1);
-  Args[0].IntVal = APInt(32, n);
-  GenericValue GV = EE->runFunction(FibF, Args);
-
-  // import result of execution
-  outs() << "Result: " << GV.IntVal << "\n";
-  return 0;
-}
diff --git a/libclamav/c++/llvm/examples/HowToUseJIT/CMakeLists.txt b/libclamav/c++/llvm/examples/HowToUseJIT/CMakeLists.txt
deleted file mode 100644
index 428b53f..0000000
--- a/libclamav/c++/llvm/examples/HowToUseJIT/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
-
-add_llvm_example(HowToUseJIT
-  HowToUseJIT.cpp
-  )
diff --git a/libclamav/c++/llvm/examples/HowToUseJIT/HowToUseJIT.cpp b/libclamav/c++/llvm/examples/HowToUseJIT/HowToUseJIT.cpp
deleted file mode 100644
index ec9c2e6..0000000
--- a/libclamav/c++/llvm/examples/HowToUseJIT/HowToUseJIT.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-//===-- examples/HowToUseJIT/HowToUseJIT.cpp - An example use of the JIT --===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  This small program provides an example of how to quickly build a small
-//  module with two functions and execute it with the JIT.
-//
-// Goal:
-//  The goal of this snippet is to create in the memory
-//  the LLVM module consisting of two functions as follow:
-//
-// int add1(int x) {
-//   return x+1;
-// }
-//
-// int foo() {
-//   return add1(10);
-// }
-//
-// then compile the module via JIT, then execute the `foo'
-// function and return result to a driver, i.e. to a "host program".
-//
-// Some remarks and questions:
-//
-// - could we invoke some code using noname functions too?
-//   e.g. evaluate "foo()+foo()" without fears to introduce
-//   conflict of temporary function name with some real
-//   existing function name?
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/ExecutionEngine/JIT.h"
-#include "llvm/ExecutionEngine/Interpreter.h"
-#include "llvm/ExecutionEngine/GenericValue.h"
-#include "llvm/Target/TargetSelect.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-int main() {
-  
-  InitializeNativeTarget();
-
-  LLVMContext Context;
-  
-  // Create some module to put our function into it.
-  Module *M = new Module("test", Context);
-
-  // Create the add1 function entry and insert this entry into module M.  The
-  // function will have a return type of "int" and take an argument of "int".
-  // The '0' terminates the list of argument types.
-  Function *Add1F =
-    cast<Function>(M->getOrInsertFunction("add1", Type::getInt32Ty(Context),
-                                          Type::getInt32Ty(Context),
-                                          (Type *)0));
-
-  // Add a basic block to the function. As before, it automatically inserts
-  // because of the last argument.
-  BasicBlock *BB = BasicBlock::Create(Context, "EntryBlock", Add1F);
-
-  // Get pointers to the constant `1'.
-  Value *One = ConstantInt::get(Type::getInt32Ty(Context), 1);
-
-  // Get pointers to the integer argument of the add1 function...
-  assert(Add1F->arg_begin() != Add1F->arg_end()); // Make sure there's an arg
-  Argument *ArgX = Add1F->arg_begin();  // Get the arg
-  ArgX->setName("AnArg");            // Give it a nice symbolic name for fun.
-
-  // Create the add instruction, inserting it into the end of BB.
-  Instruction *Add = BinaryOperator::CreateAdd(One, ArgX, "addresult", BB);
-
-  // Create the return instruction and add it to the basic block
-  ReturnInst::Create(Context, Add, BB);
-
-  // Now, function add1 is ready.
-
-
-  // Now we going to create function `foo', which returns an int and takes no
-  // arguments.
-  Function *FooF =
-    cast<Function>(M->getOrInsertFunction("foo", Type::getInt32Ty(Context),
-                                          (Type *)0));
-
-  // Add a basic block to the FooF function.
-  BB = BasicBlock::Create(Context, "EntryBlock", FooF);
-
-  // Get pointers to the constant `10'.
-  Value *Ten = ConstantInt::get(Type::getInt32Ty(Context), 10);
-
-  // Pass Ten to the call call:
-  CallInst *Add1CallRes = CallInst::Create(Add1F, Ten, "add1", BB);
-  Add1CallRes->setTailCall(true);
-
-  // Create the return instruction and add it to the basic block.
-  ReturnInst::Create(Context, Add1CallRes, BB);
-
-  // Now we create the JIT.
-  ExecutionEngine* EE = EngineBuilder(M).create();
-
-  outs() << "We just constructed this LLVM module:\n\n" << *M;
-  outs() << "\n\nRunning foo: ";
-  outs().flush();
-
-  // Call the `foo' function with no arguments:
-  std::vector<GenericValue> noargs;
-  GenericValue gv = EE->runFunction(FooF, noargs);
-
-  // Import result of execution:
-  outs() << "Result: " << gv.IntVal << "\n";
-  EE->freeMachineCodeForFunction(FooF);
-  delete EE;
-  llvm_shutdown();
-  return 0;
-}
diff --git a/libclamav/c++/llvm/examples/HowToUseJIT/Makefile b/libclamav/c++/llvm/examples/HowToUseJIT/Makefile
deleted file mode 100644
index c8919db..0000000
--- a/libclamav/c++/llvm/examples/HowToUseJIT/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- examples/HowToUseJIT/Makefile -----------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-TOOLNAME = HowToUseJIT
-EXAMPLE_TOOL = 1
-
-LINK_COMPONENTS := jit interpreter nativecodegen
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/examples/Kaleidoscope/CMakeLists.txt b/libclamav/c++/llvm/examples/Kaleidoscope/CMakeLists.txt
deleted file mode 100644
index af32fbf..0000000
--- a/libclamav/c++/llvm/examples/Kaleidoscope/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(LLVM_LINK_COMPONENTS core jit interpreter native)
-
-add_llvm_example(Kaleidoscope
-  toy.cpp
-  )
diff --git a/libclamav/c++/llvm/examples/Kaleidoscope/Makefile b/libclamav/c++/llvm/examples/Kaleidoscope/Makefile
deleted file mode 100644
index 9990b2b..0000000
--- a/libclamav/c++/llvm/examples/Kaleidoscope/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- examples/Kaleidoscope/Makefile ----------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-TOOLNAME = Kaleidoscope
-EXAMPLE_TOOL = 1
-
-LINK_COMPONENTS := core jit interpreter native
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/examples/Kaleidoscope/toy.cpp b/libclamav/c++/llvm/examples/Kaleidoscope/toy.cpp
deleted file mode 100644
index 8e02e9a..0000000
--- a/libclamav/c++/llvm/examples/Kaleidoscope/toy.cpp
+++ /dev/null
@@ -1,1147 +0,0 @@
-#include "llvm/DerivedTypes.h"
-#include "llvm/ExecutionEngine/ExecutionEngine.h"
-#include "llvm/ExecutionEngine/Interpreter.h"
-#include "llvm/ExecutionEngine/JIT.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/PassManager.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetSelect.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/Support/IRBuilder.h"
-#include <cstdio>
-#include <string>
-#include <map>
-#include <vector>
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// Lexer
-//===----------------------------------------------------------------------===//
-
-// The lexer returns tokens [0-255] if it is an unknown character, otherwise one
-// of these for known things.
-enum Token {
-  tok_eof = -1,
-
-  // commands
-  tok_def = -2, tok_extern = -3,
-
-  // primary
-  tok_identifier = -4, tok_number = -5,
-  
-  // control
-  tok_if = -6, tok_then = -7, tok_else = -8,
-  tok_for = -9, tok_in = -10,
-  
-  // operators
-  tok_binary = -11, tok_unary = -12,
-  
-  // var definition
-  tok_var = -13
-};
-
-static std::string IdentifierStr;  // Filled in if tok_identifier
-static double NumVal;              // Filled in if tok_number
-
-/// gettok - Return the next token from standard input.
-static int gettok() {
-  static int LastChar = ' ';
-
-  // Skip any whitespace.
-  while (isspace(LastChar))
-    LastChar = getchar();
-
-  if (isalpha(LastChar)) { // identifier: [a-zA-Z][a-zA-Z0-9]*
-    IdentifierStr = LastChar;
-    while (isalnum((LastChar = getchar())))
-      IdentifierStr += LastChar;
-
-    if (IdentifierStr == "def") return tok_def;
-    if (IdentifierStr == "extern") return tok_extern;
-    if (IdentifierStr == "if") return tok_if;
-    if (IdentifierStr == "then") return tok_then;
-    if (IdentifierStr == "else") return tok_else;
-    if (IdentifierStr == "for") return tok_for;
-    if (IdentifierStr == "in") return tok_in;
-    if (IdentifierStr == "binary") return tok_binary;
-    if (IdentifierStr == "unary") return tok_unary;
-    if (IdentifierStr == "var") return tok_var;
-    return tok_identifier;
-  }
-
-  if (isdigit(LastChar) || LastChar == '.') {   // Number: [0-9.]+
-    std::string NumStr;
-    do {
-      NumStr += LastChar;
-      LastChar = getchar();
-    } while (isdigit(LastChar) || LastChar == '.');
-
-    NumVal = strtod(NumStr.c_str(), 0);
-    return tok_number;
-  }
-
-  if (LastChar == '#') {
-    // Comment until end of line.
-    do LastChar = getchar();
-    while (LastChar != EOF && LastChar != '\n' && LastChar != '\r');
-    
-    if (LastChar != EOF)
-      return gettok();
-  }
-  
-  // Check for end of file.  Don't eat the EOF.
-  if (LastChar == EOF)
-    return tok_eof;
-
-  // Otherwise, just return the character as its ascii value.
-  int ThisChar = LastChar;
-  LastChar = getchar();
-  return ThisChar;
-}
-
-//===----------------------------------------------------------------------===//
-// Abstract Syntax Tree (aka Parse Tree)
-//===----------------------------------------------------------------------===//
-
-/// ExprAST - Base class for all expression nodes.
-class ExprAST {
-public:
-  virtual ~ExprAST() {}
-  virtual Value *Codegen() = 0;
-};
-
-/// NumberExprAST - Expression class for numeric literals like "1.0".
-class NumberExprAST : public ExprAST {
-  double Val;
-public:
-  NumberExprAST(double val) : Val(val) {}
-  virtual Value *Codegen();
-};
-
-/// VariableExprAST - Expression class for referencing a variable, like "a".
-class VariableExprAST : public ExprAST {
-  std::string Name;
-public:
-  VariableExprAST(const std::string &name) : Name(name) {}
-  const std::string &getName() const { return Name; }
-  virtual Value *Codegen();
-};
-
-/// UnaryExprAST - Expression class for a unary operator.
-class UnaryExprAST : public ExprAST {
-  char Opcode;
-  ExprAST *Operand;
-public:
-  UnaryExprAST(char opcode, ExprAST *operand) 
-    : Opcode(opcode), Operand(operand) {}
-  virtual Value *Codegen();
-};
-
-/// BinaryExprAST - Expression class for a binary operator.
-class BinaryExprAST : public ExprAST {
-  char Op;
-  ExprAST *LHS, *RHS;
-public:
-  BinaryExprAST(char op, ExprAST *lhs, ExprAST *rhs) 
-    : Op(op), LHS(lhs), RHS(rhs) {}
-  virtual Value *Codegen();
-};
-
-/// CallExprAST - Expression class for function calls.
-class CallExprAST : public ExprAST {
-  std::string Callee;
-  std::vector<ExprAST*> Args;
-public:
-  CallExprAST(const std::string &callee, std::vector<ExprAST*> &args)
-    : Callee(callee), Args(args) {}
-  virtual Value *Codegen();
-};
-
-/// IfExprAST - Expression class for if/then/else.
-class IfExprAST : public ExprAST {
-  ExprAST *Cond, *Then, *Else;
-public:
-  IfExprAST(ExprAST *cond, ExprAST *then, ExprAST *_else)
-  : Cond(cond), Then(then), Else(_else) {}
-  virtual Value *Codegen();
-};
-
-/// ForExprAST - Expression class for for/in.
-class ForExprAST : public ExprAST {
-  std::string VarName;
-  ExprAST *Start, *End, *Step, *Body;
-public:
-  ForExprAST(const std::string &varname, ExprAST *start, ExprAST *end,
-             ExprAST *step, ExprAST *body)
-    : VarName(varname), Start(start), End(end), Step(step), Body(body) {}
-  virtual Value *Codegen();
-};
-
-/// VarExprAST - Expression class for var/in
-class VarExprAST : public ExprAST {
-  std::vector<std::pair<std::string, ExprAST*> > VarNames;
-  ExprAST *Body;
-public:
-  VarExprAST(const std::vector<std::pair<std::string, ExprAST*> > &varnames,
-             ExprAST *body)
-  : VarNames(varnames), Body(body) {}
-  
-  virtual Value *Codegen();
-};
-
-/// PrototypeAST - This class represents the "prototype" for a function,
-/// which captures its argument names as well as if it is an operator.
-class PrototypeAST {
-  std::string Name;
-  std::vector<std::string> Args;
-  bool isOperator;
-  unsigned Precedence;  // Precedence if a binary op.
-public:
-  PrototypeAST(const std::string &name, const std::vector<std::string> &args,
-               bool isoperator = false, unsigned prec = 0)
-  : Name(name), Args(args), isOperator(isoperator), Precedence(prec) {}
-  
-  bool isUnaryOp() const { return isOperator && Args.size() == 1; }
-  bool isBinaryOp() const { return isOperator && Args.size() == 2; }
-  
-  char getOperatorName() const {
-    assert(isUnaryOp() || isBinaryOp());
-    return Name[Name.size()-1];
-  }
-  
-  unsigned getBinaryPrecedence() const { return Precedence; }
-  
-  Function *Codegen();
-  
-  void CreateArgumentAllocas(Function *F);
-};
-
-/// FunctionAST - This class represents a function definition itself.
-class FunctionAST {
-  PrototypeAST *Proto;
-  ExprAST *Body;
-public:
-  FunctionAST(PrototypeAST *proto, ExprAST *body)
-    : Proto(proto), Body(body) {}
-  
-  Function *Codegen();
-};
-
-//===----------------------------------------------------------------------===//
-// Parser
-//===----------------------------------------------------------------------===//
-
-/// CurTok/getNextToken - Provide a simple token buffer.  CurTok is the current
-/// token the parser it looking at.  getNextToken reads another token from the
-/// lexer and updates CurTok with its results.
-static int CurTok;
-static int getNextToken() {
-  return CurTok = gettok();
-}
-
-/// BinopPrecedence - This holds the precedence for each binary operator that is
-/// defined.
-static std::map<char, int> BinopPrecedence;
-
-/// GetTokPrecedence - Get the precedence of the pending binary operator token.
-static int GetTokPrecedence() {
-  if (!isascii(CurTok))
-    return -1;
-  
-  // Make sure it's a declared binop.
-  int TokPrec = BinopPrecedence[CurTok];
-  if (TokPrec <= 0) return -1;
-  return TokPrec;
-}
-
-/// Error* - These are little helper functions for error handling.
-ExprAST *Error(const char *Str) { fprintf(stderr, "Error: %s\n", Str);return 0;}
-PrototypeAST *ErrorP(const char *Str) { Error(Str); return 0; }
-FunctionAST *ErrorF(const char *Str) { Error(Str); return 0; }
-
-static ExprAST *ParseExpression();
-
-/// identifierexpr
-///   ::= identifier
-///   ::= identifier '(' expression* ')'
-static ExprAST *ParseIdentifierExpr() {
-  std::string IdName = IdentifierStr;
-  
-  getNextToken();  // eat identifier.
-  
-  if (CurTok != '(') // Simple variable ref.
-    return new VariableExprAST(IdName);
-  
-  // Call.
-  getNextToken();  // eat (
-  std::vector<ExprAST*> Args;
-  if (CurTok != ')') {
-    while (1) {
-      ExprAST *Arg = ParseExpression();
-      if (!Arg) return 0;
-      Args.push_back(Arg);
-      
-      if (CurTok == ')') break;
-      
-      if (CurTok != ',')
-        return Error("Expected ')' or ',' in argument list");
-      getNextToken();
-    }
-  }
-
-  // Eat the ')'.
-  getNextToken();
-  
-  return new CallExprAST(IdName, Args);
-}
-
-/// numberexpr ::= number
-static ExprAST *ParseNumberExpr() {
-  ExprAST *Result = new NumberExprAST(NumVal);
-  getNextToken(); // consume the number
-  return Result;
-}
-
-/// parenexpr ::= '(' expression ')'
-static ExprAST *ParseParenExpr() {
-  getNextToken();  // eat (.
-  ExprAST *V = ParseExpression();
-  if (!V) return 0;
-  
-  if (CurTok != ')')
-    return Error("expected ')'");
-  getNextToken();  // eat ).
-  return V;
-}
-
-/// ifexpr ::= 'if' expression 'then' expression 'else' expression
-static ExprAST *ParseIfExpr() {
-  getNextToken();  // eat the if.
-  
-  // condition.
-  ExprAST *Cond = ParseExpression();
-  if (!Cond) return 0;
-  
-  if (CurTok != tok_then)
-    return Error("expected then");
-  getNextToken();  // eat the then
-  
-  ExprAST *Then = ParseExpression();
-  if (Then == 0) return 0;
-  
-  if (CurTok != tok_else)
-    return Error("expected else");
-  
-  getNextToken();
-  
-  ExprAST *Else = ParseExpression();
-  if (!Else) return 0;
-  
-  return new IfExprAST(Cond, Then, Else);
-}
-
-/// forexpr ::= 'for' identifier '=' expr ',' expr (',' expr)? 'in' expression
-static ExprAST *ParseForExpr() {
-  getNextToken();  // eat the for.
-
-  if (CurTok != tok_identifier)
-    return Error("expected identifier after for");
-  
-  std::string IdName = IdentifierStr;
-  getNextToken();  // eat identifier.
-  
-  if (CurTok != '=')
-    return Error("expected '=' after for");
-  getNextToken();  // eat '='.
-  
-  
-  ExprAST *Start = ParseExpression();
-  if (Start == 0) return 0;
-  if (CurTok != ',')
-    return Error("expected ',' after for start value");
-  getNextToken();
-  
-  ExprAST *End = ParseExpression();
-  if (End == 0) return 0;
-  
-  // The step value is optional.
-  ExprAST *Step = 0;
-  if (CurTok == ',') {
-    getNextToken();
-    Step = ParseExpression();
-    if (Step == 0) return 0;
-  }
-  
-  if (CurTok != tok_in)
-    return Error("expected 'in' after for");
-  getNextToken();  // eat 'in'.
-  
-  ExprAST *Body = ParseExpression();
-  if (Body == 0) return 0;
-
-  return new ForExprAST(IdName, Start, End, Step, Body);
-}
-
-/// varexpr ::= 'var' identifier ('=' expression)? 
-//                    (',' identifier ('=' expression)?)* 'in' expression
-static ExprAST *ParseVarExpr() {
-  getNextToken();  // eat the var.
-
-  std::vector<std::pair<std::string, ExprAST*> > VarNames;
-
-  // At least one variable name is required.
-  if (CurTok != tok_identifier)
-    return Error("expected identifier after var");
-  
-  while (1) {
-    std::string Name = IdentifierStr;
-    getNextToken();  // eat identifier.
-
-    // Read the optional initializer.
-    ExprAST *Init = 0;
-    if (CurTok == '=') {
-      getNextToken(); // eat the '='.
-      
-      Init = ParseExpression();
-      if (Init == 0) return 0;
-    }
-    
-    VarNames.push_back(std::make_pair(Name, Init));
-    
-    // End of var list, exit loop.
-    if (CurTok != ',') break;
-    getNextToken(); // eat the ','.
-    
-    if (CurTok != tok_identifier)
-      return Error("expected identifier list after var");
-  }
-  
-  // At this point, we have to have 'in'.
-  if (CurTok != tok_in)
-    return Error("expected 'in' keyword after 'var'");
-  getNextToken();  // eat 'in'.
-  
-  ExprAST *Body = ParseExpression();
-  if (Body == 0) return 0;
-  
-  return new VarExprAST(VarNames, Body);
-}
-
-
-/// primary
-///   ::= identifierexpr
-///   ::= numberexpr
-///   ::= parenexpr
-///   ::= ifexpr
-///   ::= forexpr
-///   ::= varexpr
-static ExprAST *ParsePrimary() {
-  switch (CurTok) {
-  default: return Error("unknown token when expecting an expression");
-  case tok_identifier: return ParseIdentifierExpr();
-  case tok_number:     return ParseNumberExpr();
-  case '(':            return ParseParenExpr();
-  case tok_if:         return ParseIfExpr();
-  case tok_for:        return ParseForExpr();
-  case tok_var:        return ParseVarExpr();
-  }
-}
-
-/// unary
-///   ::= primary
-///   ::= '!' unary
-static ExprAST *ParseUnary() {
-  // If the current token is not an operator, it must be a primary expr.
-  if (!isascii(CurTok) || CurTok == '(' || CurTok == ',')
-    return ParsePrimary();
-  
-  // If this is a unary operator, read it.
-  int Opc = CurTok;
-  getNextToken();
-  if (ExprAST *Operand = ParseUnary())
-    return new UnaryExprAST(Opc, Operand);
-  return 0;
-}
-
-/// binoprhs
-///   ::= ('+' unary)*
-static ExprAST *ParseBinOpRHS(int ExprPrec, ExprAST *LHS) {
-  // If this is a binop, find its precedence.
-  while (1) {
-    int TokPrec = GetTokPrecedence();
-    
-    // If this is a binop that binds at least as tightly as the current binop,
-    // consume it, otherwise we are done.
-    if (TokPrec < ExprPrec)
-      return LHS;
-    
-    // Okay, we know this is a binop.
-    int BinOp = CurTok;
-    getNextToken();  // eat binop
-    
-    // Parse the unary expression after the binary operator.
-    ExprAST *RHS = ParseUnary();
-    if (!RHS) return 0;
-    
-    // If BinOp binds less tightly with RHS than the operator after RHS, let
-    // the pending operator take RHS as its LHS.
-    int NextPrec = GetTokPrecedence();
-    if (TokPrec < NextPrec) {
-      RHS = ParseBinOpRHS(TokPrec+1, RHS);
-      if (RHS == 0) return 0;
-    }
-    
-    // Merge LHS/RHS.
-    LHS = new BinaryExprAST(BinOp, LHS, RHS);
-  }
-}
-
-/// expression
-///   ::= unary binoprhs
-///
-static ExprAST *ParseExpression() {
-  ExprAST *LHS = ParseUnary();
-  if (!LHS) return 0;
-  
-  return ParseBinOpRHS(0, LHS);
-}
-
-/// prototype
-///   ::= id '(' id* ')'
-///   ::= binary LETTER number? (id, id)
-///   ::= unary LETTER (id)
-static PrototypeAST *ParsePrototype() {
-  std::string FnName;
-  
-  unsigned Kind = 0;            // 0 = identifier, 1 = unary, 2 = binary.
-  unsigned BinaryPrecedence = 30;
-  
-  switch (CurTok) {
-  default:
-    return ErrorP("Expected function name in prototype");
-  case tok_identifier:
-    FnName = IdentifierStr;
-    Kind = 0;
-    getNextToken();
-    break;
-  case tok_unary:
-    getNextToken();
-    if (!isascii(CurTok))
-      return ErrorP("Expected unary operator");
-    FnName = "unary";
-    FnName += (char)CurTok;
-    Kind = 1;
-    getNextToken();
-    break;
-  case tok_binary:
-    getNextToken();
-    if (!isascii(CurTok))
-      return ErrorP("Expected binary operator");
-    FnName = "binary";
-    FnName += (char)CurTok;
-    Kind = 2;
-    getNextToken();
-    
-    // Read the precedence if present.
-    if (CurTok == tok_number) {
-      if (NumVal < 1 || NumVal > 100)
-        return ErrorP("Invalid precedecnce: must be 1..100");
-      BinaryPrecedence = (unsigned)NumVal;
-      getNextToken();
-    }
-    break;
-  }
-  
-  if (CurTok != '(')
-    return ErrorP("Expected '(' in prototype");
-  
-  std::vector<std::string> ArgNames;
-  while (getNextToken() == tok_identifier)
-    ArgNames.push_back(IdentifierStr);
-  if (CurTok != ')')
-    return ErrorP("Expected ')' in prototype");
-  
-  // success.
-  getNextToken();  // eat ')'.
-  
-  // Verify right number of names for operator.
-  if (Kind && ArgNames.size() != Kind)
-    return ErrorP("Invalid number of operands for operator");
-  
-  return new PrototypeAST(FnName, ArgNames, Kind != 0, BinaryPrecedence);
-}
-
-/// definition ::= 'def' prototype expression
-static FunctionAST *ParseDefinition() {
-  getNextToken();  // eat def.
-  PrototypeAST *Proto = ParsePrototype();
-  if (Proto == 0) return 0;
-
-  if (ExprAST *E = ParseExpression())
-    return new FunctionAST(Proto, E);
-  return 0;
-}
-
-/// toplevelexpr ::= expression
-static FunctionAST *ParseTopLevelExpr() {
-  if (ExprAST *E = ParseExpression()) {
-    // Make an anonymous proto.
-    PrototypeAST *Proto = new PrototypeAST("", std::vector<std::string>());
-    return new FunctionAST(Proto, E);
-  }
-  return 0;
-}
-
-/// external ::= 'extern' prototype
-static PrototypeAST *ParseExtern() {
-  getNextToken();  // eat extern.
-  return ParsePrototype();
-}
-
-//===----------------------------------------------------------------------===//
-// Code Generation
-//===----------------------------------------------------------------------===//
-
-static Module *TheModule;
-static IRBuilder<> Builder(getGlobalContext());
-static std::map<std::string, AllocaInst*> NamedValues;
-static FunctionPassManager *TheFPM;
-
-Value *ErrorV(const char *Str) { Error(Str); return 0; }
-
-/// CreateEntryBlockAlloca - Create an alloca instruction in the entry block of
-/// the function.  This is used for mutable variables etc.
-static AllocaInst *CreateEntryBlockAlloca(Function *TheFunction,
-                                          const std::string &VarName) {
-  IRBuilder<> TmpB(&TheFunction->getEntryBlock(),
-                 TheFunction->getEntryBlock().begin());
-  return TmpB.CreateAlloca(Type::getDoubleTy(getGlobalContext()), 0,
-                           VarName.c_str());
-}
-
-
-Value *NumberExprAST::Codegen() {
-  return ConstantFP::get(getGlobalContext(), APFloat(Val));
-}
-
-Value *VariableExprAST::Codegen() {
-  // Look this variable up in the function.
-  Value *V = NamedValues[Name];
-  if (V == 0) return ErrorV("Unknown variable name");
-
-  // Load the value.
-  return Builder.CreateLoad(V, Name.c_str());
-}
-
-Value *UnaryExprAST::Codegen() {
-  Value *OperandV = Operand->Codegen();
-  if (OperandV == 0) return 0;
-  
-  Function *F = TheModule->getFunction(std::string("unary")+Opcode);
-  if (F == 0)
-    return ErrorV("Unknown unary operator");
-  
-  return Builder.CreateCall(F, OperandV, "unop");
-}
-
-
-Value *BinaryExprAST::Codegen() {
-  // Special case '=' because we don't want to emit the LHS as an expression.
-  if (Op == '=') {
-    // Assignment requires the LHS to be an identifier.
-    VariableExprAST *LHSE = dynamic_cast<VariableExprAST*>(LHS);
-    if (!LHSE)
-      return ErrorV("destination of '=' must be a variable");
-    // Codegen the RHS.
-    Value *Val = RHS->Codegen();
-    if (Val == 0) return 0;
-
-    // Look up the name.
-    Value *Variable = NamedValues[LHSE->getName()];
-    if (Variable == 0) return ErrorV("Unknown variable name");
-
-    Builder.CreateStore(Val, Variable);
-    return Val;
-  }
-  
-  
-  Value *L = LHS->Codegen();
-  Value *R = RHS->Codegen();
-  if (L == 0 || R == 0) return 0;
-  
-  switch (Op) {
-  case '+': return Builder.CreateAdd(L, R, "addtmp");
-  case '-': return Builder.CreateSub(L, R, "subtmp");
-  case '*': return Builder.CreateMul(L, R, "multmp");
-  case '<':
-    L = Builder.CreateFCmpULT(L, R, "cmptmp");
-    // Convert bool 0/1 to double 0.0 or 1.0
-    return Builder.CreateUIToFP(L, Type::getDoubleTy(getGlobalContext()),
-                                "booltmp");
-  default: break;
-  }
-  
-  // If it wasn't a builtin binary operator, it must be a user defined one. Emit
-  // a call to it.
-  Function *F = TheModule->getFunction(std::string("binary")+Op);
-  assert(F && "binary operator not found!");
-  
-  Value *Ops[] = { L, R };
-  return Builder.CreateCall(F, Ops, Ops+2, "binop");
-}
-
-Value *CallExprAST::Codegen() {
-  // Look up the name in the global module table.
-  Function *CalleeF = TheModule->getFunction(Callee);
-  if (CalleeF == 0)
-    return ErrorV("Unknown function referenced");
-  
-  // If argument mismatch error.
-  if (CalleeF->arg_size() != Args.size())
-    return ErrorV("Incorrect # arguments passed");
-
-  std::vector<Value*> ArgsV;
-  for (unsigned i = 0, e = Args.size(); i != e; ++i) {
-    ArgsV.push_back(Args[i]->Codegen());
-    if (ArgsV.back() == 0) return 0;
-  }
-  
-  return Builder.CreateCall(CalleeF, ArgsV.begin(), ArgsV.end(), "calltmp");
-}
-
-Value *IfExprAST::Codegen() {
-  Value *CondV = Cond->Codegen();
-  if (CondV == 0) return 0;
-  
-  // Convert condition to a bool by comparing equal to 0.0.
-  CondV = Builder.CreateFCmpONE(CondV, 
-                              ConstantFP::get(getGlobalContext(), APFloat(0.0)),
-                                "ifcond");
-  
-  Function *TheFunction = Builder.GetInsertBlock()->getParent();
-  
-  // Create blocks for the then and else cases.  Insert the 'then' block at the
-  // end of the function.
-  BasicBlock *ThenBB = BasicBlock::Create(getGlobalContext(), "then", TheFunction);
-  BasicBlock *ElseBB = BasicBlock::Create(getGlobalContext(), "else");
-  BasicBlock *MergeBB = BasicBlock::Create(getGlobalContext(), "ifcont");
-  
-  Builder.CreateCondBr(CondV, ThenBB, ElseBB);
-  
-  // Emit then value.
-  Builder.SetInsertPoint(ThenBB);
-  
-  Value *ThenV = Then->Codegen();
-  if (ThenV == 0) return 0;
-  
-  Builder.CreateBr(MergeBB);
-  // Codegen of 'Then' can change the current block, update ThenBB for the PHI.
-  ThenBB = Builder.GetInsertBlock();
-  
-  // Emit else block.
-  TheFunction->getBasicBlockList().push_back(ElseBB);
-  Builder.SetInsertPoint(ElseBB);
-  
-  Value *ElseV = Else->Codegen();
-  if (ElseV == 0) return 0;
-  
-  Builder.CreateBr(MergeBB);
-  // Codegen of 'Else' can change the current block, update ElseBB for the PHI.
-  ElseBB = Builder.GetInsertBlock();
-  
-  // Emit merge block.
-  TheFunction->getBasicBlockList().push_back(MergeBB);
-  Builder.SetInsertPoint(MergeBB);
-  PHINode *PN = Builder.CreatePHI(Type::getDoubleTy(getGlobalContext()),
-                                  "iftmp");
-  
-  PN->addIncoming(ThenV, ThenBB);
-  PN->addIncoming(ElseV, ElseBB);
-  return PN;
-}
-
-Value *ForExprAST::Codegen() {
-  // Output this as:
-  //   var = alloca double
-  //   ...
-  //   start = startexpr
-  //   store start -> var
-  //   goto loop
-  // loop: 
-  //   ...
-  //   bodyexpr
-  //   ...
-  // loopend:
-  //   step = stepexpr
-  //   endcond = endexpr
-  //
-  //   curvar = load var
-  //   nextvar = curvar + step
-  //   store nextvar -> var
-  //   br endcond, loop, endloop
-  // outloop:
-  
-  Function *TheFunction = Builder.GetInsertBlock()->getParent();
-
-  // Create an alloca for the variable in the entry block.
-  AllocaInst *Alloca = CreateEntryBlockAlloca(TheFunction, VarName);
-  
-  // Emit the start code first, without 'variable' in scope.
-  Value *StartVal = Start->Codegen();
-  if (StartVal == 0) return 0;
-  
-  // Store the value into the alloca.
-  Builder.CreateStore(StartVal, Alloca);
-  
-  // Make the new basic block for the loop header, inserting after current
-  // block.
-  BasicBlock *LoopBB = BasicBlock::Create(getGlobalContext(), "loop", TheFunction);
-  
-  // Insert an explicit fall through from the current block to the LoopBB.
-  Builder.CreateBr(LoopBB);
-
-  // Start insertion in LoopBB.
-  Builder.SetInsertPoint(LoopBB);
-  
-  // Within the loop, the variable is defined equal to the PHI node.  If it
-  // shadows an existing variable, we have to restore it, so save it now.
-  AllocaInst *OldVal = NamedValues[VarName];
-  NamedValues[VarName] = Alloca;
-  
-  // Emit the body of the loop.  This, like any other expr, can change the
-  // current BB.  Note that we ignore the value computed by the body, but don't
-  // allow an error.
-  if (Body->Codegen() == 0)
-    return 0;
-  
-  // Emit the step value.
-  Value *StepVal;
-  if (Step) {
-    StepVal = Step->Codegen();
-    if (StepVal == 0) return 0;
-  } else {
-    // If not specified, use 1.0.
-    StepVal = ConstantFP::get(getGlobalContext(), APFloat(1.0));
-  }
-  
-  // Compute the end condition.
-  Value *EndCond = End->Codegen();
-  if (EndCond == 0) return EndCond;
-  
-  // Reload, increment, and restore the alloca.  This handles the case where
-  // the body of the loop mutates the variable.
-  Value *CurVar = Builder.CreateLoad(Alloca, VarName.c_str());
-  Value *NextVar = Builder.CreateAdd(CurVar, StepVal, "nextvar");
-  Builder.CreateStore(NextVar, Alloca);
-  
-  // Convert condition to a bool by comparing equal to 0.0.
-  EndCond = Builder.CreateFCmpONE(EndCond, 
-                              ConstantFP::get(getGlobalContext(), APFloat(0.0)),
-                                  "loopcond");
-  
-  // Create the "after loop" block and insert it.
-  BasicBlock *AfterBB = BasicBlock::Create(getGlobalContext(), "afterloop", TheFunction);
-  
-  // Insert the conditional branch into the end of LoopEndBB.
-  Builder.CreateCondBr(EndCond, LoopBB, AfterBB);
-  
-  // Any new code will be inserted in AfterBB.
-  Builder.SetInsertPoint(AfterBB);
-  
-  // Restore the unshadowed variable.
-  if (OldVal)
-    NamedValues[VarName] = OldVal;
-  else
-    NamedValues.erase(VarName);
-
-  
-  // for expr always returns 0.0.
-  return Constant::getNullValue(Type::getDoubleTy(getGlobalContext()));
-}
-
-Value *VarExprAST::Codegen() {
-  std::vector<AllocaInst *> OldBindings;
-  
-  Function *TheFunction = Builder.GetInsertBlock()->getParent();
-
-  // Register all variables and emit their initializer.
-  for (unsigned i = 0, e = VarNames.size(); i != e; ++i) {
-    const std::string &VarName = VarNames[i].first;
-    ExprAST *Init = VarNames[i].second;
-    
-    // Emit the initializer before adding the variable to scope, this prevents
-    // the initializer from referencing the variable itself, and permits stuff
-    // like this:
-    //  var a = 1 in
-    //    var a = a in ...   # refers to outer 'a'.
-    Value *InitVal;
-    if (Init) {
-      InitVal = Init->Codegen();
-      if (InitVal == 0) return 0;
-    } else { // If not specified, use 0.0.
-      InitVal = ConstantFP::get(getGlobalContext(), APFloat(0.0));
-    }
-    
-    AllocaInst *Alloca = CreateEntryBlockAlloca(TheFunction, VarName);
-    Builder.CreateStore(InitVal, Alloca);
-
-    // Remember the old variable binding so that we can restore the binding when
-    // we unrecurse.
-    OldBindings.push_back(NamedValues[VarName]);
-    
-    // Remember this binding.
-    NamedValues[VarName] = Alloca;
-  }
-  
-  // Codegen the body, now that all vars are in scope.
-  Value *BodyVal = Body->Codegen();
-  if (BodyVal == 0) return 0;
-  
-  // Pop all our variables from scope.
-  for (unsigned i = 0, e = VarNames.size(); i != e; ++i)
-    NamedValues[VarNames[i].first] = OldBindings[i];
-
-  // Return the body computation.
-  return BodyVal;
-}
-
-
-Function *PrototypeAST::Codegen() {
-  // Make the function type:  double(double,double) etc.
-  std::vector<const Type*> Doubles(Args.size(), 
-                                   Type::getDoubleTy(getGlobalContext()));
-  FunctionType *FT = FunctionType::get(Type::getDoubleTy(getGlobalContext()),
-                                       Doubles, false);
-  
-  Function *F = Function::Create(FT, Function::ExternalLinkage, Name, TheModule);
-  
-  // If F conflicted, there was already something named 'Name'.  If it has a
-  // body, don't allow redefinition or reextern.
-  if (F->getName() != Name) {
-    // Delete the one we just made and get the existing one.
-    F->eraseFromParent();
-    F = TheModule->getFunction(Name);
-    
-    // If F already has a body, reject this.
-    if (!F->empty()) {
-      ErrorF("redefinition of function");
-      return 0;
-    }
-    
-    // If F took a different number of args, reject.
-    if (F->arg_size() != Args.size()) {
-      ErrorF("redefinition of function with different # args");
-      return 0;
-    }
-  }
-  
-  // Set names for all arguments.
-  unsigned Idx = 0;
-  for (Function::arg_iterator AI = F->arg_begin(); Idx != Args.size();
-       ++AI, ++Idx)
-    AI->setName(Args[Idx]);
-    
-  return F;
-}
-
-/// CreateArgumentAllocas - Create an alloca for each argument and register the
-/// argument in the symbol table so that references to it will succeed.
-void PrototypeAST::CreateArgumentAllocas(Function *F) {
-  Function::arg_iterator AI = F->arg_begin();
-  for (unsigned Idx = 0, e = Args.size(); Idx != e; ++Idx, ++AI) {
-    // Create an alloca for this variable.
-    AllocaInst *Alloca = CreateEntryBlockAlloca(F, Args[Idx]);
-
-    // Store the initial value into the alloca.
-    Builder.CreateStore(AI, Alloca);
-
-    // Add arguments to variable symbol table.
-    NamedValues[Args[Idx]] = Alloca;
-  }
-}
-
-
-Function *FunctionAST::Codegen() {
-  NamedValues.clear();
-  
-  Function *TheFunction = Proto->Codegen();
-  if (TheFunction == 0)
-    return 0;
-  
-  // If this is an operator, install it.
-  if (Proto->isBinaryOp())
-    BinopPrecedence[Proto->getOperatorName()] = Proto->getBinaryPrecedence();
-  
-  // Create a new basic block to start insertion into.
-  BasicBlock *BB = BasicBlock::Create(getGlobalContext(), "entry", TheFunction);
-  Builder.SetInsertPoint(BB);
-  
-  // Add all arguments to the symbol table and create their allocas.
-  Proto->CreateArgumentAllocas(TheFunction);
-  
-  if (Value *RetVal = Body->Codegen()) {
-    // Finish off the function.
-    Builder.CreateRet(RetVal);
-
-    // Validate the generated code, checking for consistency.
-    verifyFunction(*TheFunction);
-
-    // Optimize the function.
-    TheFPM->run(*TheFunction);
-    
-    return TheFunction;
-  }
-  
-  // Error reading body, remove function.
-  TheFunction->eraseFromParent();
-
-  if (Proto->isBinaryOp())
-    BinopPrecedence.erase(Proto->getOperatorName());
-  return 0;
-}
-
-//===----------------------------------------------------------------------===//
-// Top-Level parsing and JIT Driver
-//===----------------------------------------------------------------------===//
-
-static ExecutionEngine *TheExecutionEngine;
-
-static void HandleDefinition() {
-  if (FunctionAST *F = ParseDefinition()) {
-    if (Function *LF = F->Codegen()) {
-      fprintf(stderr, "Read function definition:");
-      LF->dump();
-    }
-  } else {
-    // Skip token for error recovery.
-    getNextToken();
-  }
-}
-
-static void HandleExtern() {
-  if (PrototypeAST *P = ParseExtern()) {
-    if (Function *F = P->Codegen()) {
-      fprintf(stderr, "Read extern: ");
-      F->dump();
-    }
-  } else {
-    // Skip token for error recovery.
-    getNextToken();
-  }
-}
-
-static void HandleTopLevelExpression() {
-  // Evaluate a top level expression into an anonymous function.
-  if (FunctionAST *F = ParseTopLevelExpr()) {
-    if (Function *LF = F->Codegen()) {
-      // JIT the function, returning a function pointer.
-      void *FPtr = TheExecutionEngine->getPointerToFunction(LF);
-      
-      // Cast it to the right type (takes no arguments, returns a double) so we
-      // can call it as a native function.
-      double (*FP)() = (double (*)())(intptr_t)FPtr;
-      fprintf(stderr, "Evaluated to %f\n", FP());
-    }
-  } else {
-    // Skip token for error recovery.
-    getNextToken();
-  }
-}
-
-/// top ::= definition | external | expression | ';'
-static void MainLoop() {
-  while (1) {
-    fprintf(stderr, "ready> ");
-    switch (CurTok) {
-    case tok_eof:    return;
-    case ';':        getNextToken(); break;  // ignore top level semicolons.
-    case tok_def:    HandleDefinition(); break;
-    case tok_extern: HandleExtern(); break;
-    default:         HandleTopLevelExpression(); break;
-    }
-  }
-}
-
-
-
-//===----------------------------------------------------------------------===//
-// "Library" functions that can be "extern'd" from user code.
-//===----------------------------------------------------------------------===//
-
-/// putchard - putchar that takes a double and returns 0.
-extern "C" 
-double putchard(double X) {
-  putchar((char)X);
-  return 0;
-}
-
-/// printd - printf that takes a double prints it as "%f\n", returning 0.
-extern "C" 
-double printd(double X) {
-  printf("%f\n", X);
-  return 0;
-}
-
-//===----------------------------------------------------------------------===//
-// Main driver code.
-//===----------------------------------------------------------------------===//
-
-int main() {
-  InitializeNativeTarget();
-  LLVMContext &Context = getGlobalContext();
-  
-  // Install standard binary operators.
-  // 1 is lowest precedence.
-  BinopPrecedence['='] = 2;
-  BinopPrecedence['<'] = 10;
-  BinopPrecedence['+'] = 20;
-  BinopPrecedence['-'] = 20;
-  BinopPrecedence['*'] = 40;  // highest.
-
-  // Prime the first token.
-  fprintf(stderr, "ready> ");
-  getNextToken();
-
-  // Make the module, which holds all the code.
-  TheModule = new Module("my cool jit", Context);
-
-  ExistingModuleProvider *OurModuleProvider =
-      new ExistingModuleProvider(TheModule);
-
-  // Create the JIT.  This takes ownership of the module and module provider.
-  TheExecutionEngine = EngineBuilder(OurModuleProvider).create();
-
-  FunctionPassManager OurFPM(OurModuleProvider);
-
-  // Set up the optimizer pipeline.  Start with registering info about how the
-  // target lays out data structures.
-  OurFPM.add(new TargetData(*TheExecutionEngine->getTargetData()));
-  // Promote allocas to registers.
-  OurFPM.add(createPromoteMemoryToRegisterPass());
-  // Do simple "peephole" optimizations and bit-twiddling optzns.
-  OurFPM.add(createInstructionCombiningPass());
-  // Reassociate expressions.
-  OurFPM.add(createReassociatePass());
-  // Eliminate Common SubExpressions.
-  OurFPM.add(createGVNPass());
-  // Simplify the control flow graph (deleting unreachable blocks, etc).
-  OurFPM.add(createCFGSimplificationPass());
-
-  OurFPM.doInitialization();
-
-  // Set the global so the code gen can use this.
-  TheFPM = &OurFPM;
-
-  // Run the main "interpreter loop" now.
-  MainLoop();
-
-  TheFPM = 0;
-
-  // Print out all of the generated code.
-  TheModule->dump();
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/examples/Makefile b/libclamav/c++/llvm/examples/Makefile
deleted file mode 100644
index eb5dabd..0000000
--- a/libclamav/c++/llvm/examples/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-##===- examples/Makefile -----------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL=..
-
-include $(LEVEL)/Makefile.config
-
-PARALLEL_DIRS:= BrainF Fibonacci HowToUseJIT Kaleidoscope ModuleMaker
-
-ifeq ($(HAVE_PTHREAD),1)
-PARALLEL_DIRS += ParallelJIT 
-endif
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/examples/ModuleMaker/CMakeLists.txt b/libclamav/c++/llvm/examples/ModuleMaker/CMakeLists.txt
deleted file mode 100644
index 81e9115..0000000
--- a/libclamav/c++/llvm/examples/ModuleMaker/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(LLVM_LINK_COMPONENTS bitwriter)
-
-add_llvm_example(ModuleMaker
-  ModuleMaker.cpp
-  )
diff --git a/libclamav/c++/llvm/examples/ModuleMaker/Makefile b/libclamav/c++/llvm/examples/ModuleMaker/Makefile
deleted file mode 100644
index 9454cf5..0000000
--- a/libclamav/c++/llvm/examples/ModuleMaker/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-##===- examples/ModuleMaker/Makefile -----------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL=../..
-TOOLNAME=ModuleMaker
-EXAMPLE_TOOL = 1
-LINK_COMPONENTS := bitwriter
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/examples/ModuleMaker/ModuleMaker.cpp b/libclamav/c++/llvm/examples/ModuleMaker/ModuleMaker.cpp
deleted file mode 100644
index 6bc52c1..0000000
--- a/libclamav/c++/llvm/examples/ModuleMaker/ModuleMaker.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//===- examples/ModuleMaker/ModuleMaker.cpp - Example project ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This programs is a simple example that creates an LLVM module "from scratch",
-// emitting it as a bitcode file to standard out.  This is just to show how
-// LLVM projects work and to demonstrate some of the LLVM APIs.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Constants.h"
-#include "llvm/Instructions.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-int main() {
-  LLVMContext Context;
-
-  // Create the "module" or "program" or "translation unit" to hold the
-  // function
-  Module *M = new Module("test", Context);
-
-  // Create the main function: first create the type 'int ()'
-  FunctionType *FT =
-    FunctionType::get(Type::getInt32Ty(Context), /*not vararg*/false);
-
-  // By passing a module as the last parameter to the Function constructor,
-  // it automatically gets appended to the Module.
-  Function *F = Function::Create(FT, Function::ExternalLinkage, "main", M);
-
-  // Add a basic block to the function... again, it automatically inserts
-  // because of the last argument.
-  BasicBlock *BB = BasicBlock::Create(Context, "EntryBlock", F);
-
-  // Get pointers to the constant integers...
-  Value *Two = ConstantInt::get(Type::getInt32Ty(Context), 2);
-  Value *Three = ConstantInt::get(Type::getInt32Ty(Context), 3);
-
-  // Create the add instruction... does not insert...
-  Instruction *Add = BinaryOperator::Create(Instruction::Add, Two, Three,
-                                            "addresult");
-
-  // explicitly insert it into the basic block...
-  BB->getInstList().push_back(Add);
-
-  // Create the return instruction and add it to the basic block
-  BB->getInstList().push_back(ReturnInst::Create(Context, Add));
-
-  // Output the bitcode file to stdout
-  WriteBitcodeToFile(M, outs());
-
-  // Delete the module and all of its contents.
-  delete M;
-  return 0;
-}
diff --git a/libclamav/c++/llvm/examples/ModuleMaker/README.txt b/libclamav/c++/llvm/examples/ModuleMaker/README.txt
deleted file mode 100644
index ecbe30e..0000000
--- a/libclamav/c++/llvm/examples/ModuleMaker/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-//===----------------------------------------------------------------------===//
-//                         ModuleMaker Sample project
-//===----------------------------------------------------------------------===//
-
-This project is an extremely simple example of using some simple pieces of the 
-LLVM API.  The actual executable generated by this project simply emits an 
-LLVM bytecode file to standard output.  It is designed to show some basic 
-usage of LLVM APIs, and how to link to LLVM libraries.
diff --git a/libclamav/c++/llvm/examples/ParallelJIT/CMakeLists.txt b/libclamav/c++/llvm/examples/ParallelJIT/CMakeLists.txt
deleted file mode 100644
index d8dd708..0000000
--- a/libclamav/c++/llvm/examples/ParallelJIT/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
-
-add_llvm_example(ParallelJIT
-  ParallelJIT.cpp
-  )
-
-target_link_libraries(ParallelJIT pthread)
diff --git a/libclamav/c++/llvm/examples/ParallelJIT/Makefile b/libclamav/c++/llvm/examples/ParallelJIT/Makefile
deleted file mode 100644
index 8a49d42..0000000
--- a/libclamav/c++/llvm/examples/ParallelJIT/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- examples/ParallelJIT/Makefile -----------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-TOOLNAME = ParallelJIT
-EXAMPLE_TOOL = 1
-
-LINK_COMPONENTS := jit interpreter nativecodegen
-
-include $(LEVEL)/Makefile.common
-
-LIBS += -lpthread
diff --git a/libclamav/c++/llvm/examples/ParallelJIT/ParallelJIT.cpp b/libclamav/c++/llvm/examples/ParallelJIT/ParallelJIT.cpp
deleted file mode 100644
index be40a28..0000000
--- a/libclamav/c++/llvm/examples/ParallelJIT/ParallelJIT.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-//===-- examples/ParallelJIT/ParallelJIT.cpp - Exercise threaded-safe JIT -===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Parallel JIT
-//
-// This test program creates two LLVM functions then calls them from three
-// separate threads.  It requires the pthreads library.
-// The three threads are created and then block waiting on a condition variable.
-// Once all threads are blocked on the conditional variable, the main thread
-// wakes them up. This complicated work is performed so that all three threads
-// call into the JIT at the same time (or the best possible approximation of the
-// same time). This test had assertion errors until I got the locking right.
-
-#include <pthread.h>
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/ExecutionEngine/JIT.h"
-#include "llvm/ExecutionEngine/Interpreter.h"
-#include "llvm/ExecutionEngine/GenericValue.h"
-#include "llvm/Target/TargetSelect.h"
-#include <iostream>
-using namespace llvm;
-
-static Function* createAdd1(Module *M) {
-  // Create the add1 function entry and insert this entry into module M.  The
-  // function will have a return type of "int" and take an argument of "int".
-  // The '0' terminates the list of argument types.
-  Function *Add1F =
-    cast<Function>(M->getOrInsertFunction("add1",
-                                          Type::getInt32Ty(M->getContext()),
-                                          Type::getInt32Ty(M->getContext()),
-                                          (Type *)0));
-
-  // Add a basic block to the function. As before, it automatically inserts
-  // because of the last argument.
-  BasicBlock *BB = BasicBlock::Create(M->getContext(), "EntryBlock", Add1F);
-
-  // Get pointers to the constant `1'.
-  Value *One = ConstantInt::get(Type::getInt32Ty(M->getContext()), 1);
-
-  // Get pointers to the integer argument of the add1 function...
-  assert(Add1F->arg_begin() != Add1F->arg_end()); // Make sure there's an arg
-  Argument *ArgX = Add1F->arg_begin();  // Get the arg
-  ArgX->setName("AnArg");            // Give it a nice symbolic name for fun.
-
-  // Create the add instruction, inserting it into the end of BB.
-  Instruction *Add = BinaryOperator::CreateAdd(One, ArgX, "addresult", BB);
-
-  // Create the return instruction and add it to the basic block
-  ReturnInst::Create(M->getContext(), Add, BB);
-
-  // Now, function add1 is ready.
-  return Add1F;
-}
-
-static Function *CreateFibFunction(Module *M) {
-  // Create the fib function and insert it into module M.  This function is said
-  // to return an int and take an int parameter.
-  Function *FibF = 
-    cast<Function>(M->getOrInsertFunction("fib",
-                                          Type::getInt32Ty(M->getContext()),
-                                          Type::getInt32Ty(M->getContext()),
-                                          (Type *)0));
-
-  // Add a basic block to the function.
-  BasicBlock *BB = BasicBlock::Create(M->getContext(), "EntryBlock", FibF);
-
-  // Get pointers to the constants.
-  Value *One = ConstantInt::get(Type::getInt32Ty(M->getContext()), 1);
-  Value *Two = ConstantInt::get(Type::getInt32Ty(M->getContext()), 2);
-
-  // Get pointer to the integer argument of the add1 function...
-  Argument *ArgX = FibF->arg_begin();   // Get the arg.
-  ArgX->setName("AnArg");            // Give it a nice symbolic name for fun.
-
-  // Create the true_block.
-  BasicBlock *RetBB = BasicBlock::Create(M->getContext(), "return", FibF);
-  // Create an exit block.
-  BasicBlock* RecurseBB = BasicBlock::Create(M->getContext(), "recurse", FibF);
-
-  // Create the "if (arg < 2) goto exitbb"
-  Value *CondInst = new ICmpInst(*BB, ICmpInst::ICMP_SLE, ArgX, Two, "cond");
-  BranchInst::Create(RetBB, RecurseBB, CondInst, BB);
-
-  // Create: ret int 1
-  ReturnInst::Create(M->getContext(), One, RetBB);
-
-  // create fib(x-1)
-  Value *Sub = BinaryOperator::CreateSub(ArgX, One, "arg", RecurseBB);
-  Value *CallFibX1 = CallInst::Create(FibF, Sub, "fibx1", RecurseBB);
-
-  // create fib(x-2)
-  Sub = BinaryOperator::CreateSub(ArgX, Two, "arg", RecurseBB);
-  Value *CallFibX2 = CallInst::Create(FibF, Sub, "fibx2", RecurseBB);
-
-  // fib(x-1)+fib(x-2)
-  Value *Sum =
-    BinaryOperator::CreateAdd(CallFibX1, CallFibX2, "addresult", RecurseBB);
-
-  // Create the return instruction and add it to the basic block
-  ReturnInst::Create(M->getContext(), Sum, RecurseBB);
-
-  return FibF;
-}
-
-struct threadParams {
-  ExecutionEngine* EE;
-  Function* F;
-  int value;
-};
-
-// We block the subthreads just before they begin to execute:
-// we want all of them to call into the JIT at the same time,
-// to verify that the locking is working correctly.
-class WaitForThreads
-{
-public:
-  WaitForThreads()
-  {
-    n = 0;
-    waitFor = 0;
-
-    int result = pthread_cond_init( &condition, NULL );
-    assert( result == 0 );
-
-    result = pthread_mutex_init( &mutex, NULL );
-    assert( result == 0 );
-  }
-
-  ~WaitForThreads()
-  {
-    int result = pthread_cond_destroy( &condition );
-    assert( result == 0 );
-
-    result = pthread_mutex_destroy( &mutex );
-    assert( result == 0 );
-  }
-
-  // All threads will stop here until another thread calls releaseThreads
-  void block()
-  {
-    int result = pthread_mutex_lock( &mutex );
-    assert( result == 0 );
-    n ++;
-    //~ std::cout << "block() n " << n << " waitFor " << waitFor << std::endl;
-
-    assert( waitFor == 0 || n <= waitFor );
-    if ( waitFor > 0 && n == waitFor )
-    {
-      // There are enough threads blocked that we can release all of them
-      std::cout << "Unblocking threads from block()" << std::endl;
-      unblockThreads();
-    }
-    else
-    {
-      // We just need to wait until someone unblocks us
-      result = pthread_cond_wait( &condition, &mutex );
-      assert( result == 0 );
-    }
-
-    // unlock the mutex before returning
-    result = pthread_mutex_unlock( &mutex );
-    assert( result == 0 );
-  }
-
-  // If there are num or more threads blocked, it will signal them all
-  // Otherwise, this thread blocks until there are enough OTHER threads
-  // blocked
-  void releaseThreads( size_t num )
-  {
-    int result = pthread_mutex_lock( &mutex );
-    assert( result == 0 );
-
-    if ( n >= num ) {
-      std::cout << "Unblocking threads from releaseThreads()" << std::endl;
-      unblockThreads();
-    }
-    else
-    {
-      waitFor = num;
-      pthread_cond_wait( &condition, &mutex );
-    }
-
-    // unlock the mutex before returning
-    result = pthread_mutex_unlock( &mutex );
-    assert( result == 0 );
-  }
-
-private:
-  void unblockThreads()
-  {
-    // Reset the counters to zero: this way, if any new threads
-    // enter while threads are exiting, they will block instead
-    // of triggering a new release of threads
-    n = 0;
-
-    // Reset waitFor to zero: this way, if waitFor threads enter
-    // while threads are exiting, they will block instead of
-    // triggering a new release of threads
-    waitFor = 0;
-
-    int result = pthread_cond_broadcast( &condition );
-    assert(result == 0); result=result;
-  }
-
-  size_t n;
-  size_t waitFor;
-  pthread_cond_t condition;
-  pthread_mutex_t mutex;
-};
-
-static WaitForThreads synchronize;
-
-void* callFunc( void* param )
-{
-  struct threadParams* p = (struct threadParams*) param;
-
-  // Call the `foo' function with no arguments:
-  std::vector<GenericValue> Args(1);
-  Args[0].IntVal = APInt(32, p->value);
-
-  synchronize.block(); // wait until other threads are at this point
-  GenericValue gv = p->EE->runFunction(p->F, Args);
-
-  return (void*)(intptr_t)gv.IntVal.getZExtValue();
-}
-
-int main() {
-  InitializeNativeTarget();
-  LLVMContext Context;
-
-  // Create some module to put our function into it.
-  Module *M = new Module("test", Context);
-
-  Function* add1F = createAdd1( M );
-  Function* fibF = CreateFibFunction( M );
-
-  // Now we create the JIT.
-  ExecutionEngine* EE = EngineBuilder(M).create();
-
-  //~ std::cout << "We just constructed this LLVM module:\n\n" << *M;
-  //~ std::cout << "\n\nRunning foo: " << std::flush;
-
-  // Create one thread for add1 and two threads for fib
-  struct threadParams add1 = { EE, add1F, 1000 };
-  struct threadParams fib1 = { EE, fibF, 39 };
-  struct threadParams fib2 = { EE, fibF, 42 };
-
-  pthread_t add1Thread;
-  int result = pthread_create( &add1Thread, NULL, callFunc, &add1 );
-  if ( result != 0 ) {
-          std::cerr << "Could not create thread" << std::endl;
-          return 1;
-  }
-
-  pthread_t fibThread1;
-  result = pthread_create( &fibThread1, NULL, callFunc, &fib1 );
-  if ( result != 0 ) {
-          std::cerr << "Could not create thread" << std::endl;
-          return 1;
-  }
-
-  pthread_t fibThread2;
-  result = pthread_create( &fibThread2, NULL, callFunc, &fib2 );
-  if ( result != 0 ) {
-          std::cerr << "Could not create thread" << std::endl;
-          return 1;
-  }
-
-  synchronize.releaseThreads(3); // wait until other threads are at this point
-
-  void* returnValue;
-  result = pthread_join( add1Thread, &returnValue );
-  if ( result != 0 ) {
-          std::cerr << "Could not join thread" << std::endl;
-          return 1;
-  }
-  std::cout << "Add1 returned " << intptr_t(returnValue) << std::endl;
-
-  result = pthread_join( fibThread1, &returnValue );
-  if ( result != 0 ) {
-          std::cerr << "Could not join thread" << std::endl;
-          return 1;
-  }
-  std::cout << "Fib1 returned " << intptr_t(returnValue) << std::endl;
-
-  result = pthread_join( fibThread2, &returnValue );
-  if ( result != 0 ) {
-          std::cerr << "Could not join thread" << std::endl;
-          return 1;
-  }
-  std::cout << "Fib2 returned " << intptr_t(returnValue) << std::endl;
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/lib/Archive/Archive.cpp b/libclamav/c++/llvm/lib/Archive/Archive.cpp
deleted file mode 100644
index 00778d9..0000000
--- a/libclamav/c++/llvm/lib/Archive/Archive.cpp
+++ /dev/null
@@ -1,271 +0,0 @@
-//===-- Archive.cpp - Generic LLVM archive functions ------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the Archive and ArchiveMember
-// classes that is common to both reading and writing archives..
-//
-//===----------------------------------------------------------------------===//
-
-#include "ArchiveInternals.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/Module.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/System/Process.h"
-#include <memory>
-#include <cstring>
-using namespace llvm;
-
-// getMemberSize - compute the actual physical size of the file member as seen
-// on disk. This isn't the size of member's payload. Use getSize() for that.
-unsigned
-ArchiveMember::getMemberSize() const {
-  // Basically its the file size plus the header size
-  unsigned result =  info.fileSize + sizeof(ArchiveMemberHeader);
-
-  // If it has a long filename, include the name length
-  if (hasLongFilename())
-    result += path.str().length() + 1;
-
-  // If its now odd lengthed, include the padding byte
-  if (result % 2 != 0 )
-    result++;
-
-  return result;
-}
-
-// This default constructor is only use by the ilist when it creates its
-// sentry node. We give it specific static values to make it stand out a bit.
-ArchiveMember::ArchiveMember()
-  : parent(0), path("--invalid--"), flags(0), data(0)
-{
-  info.user = sys::Process::GetCurrentUserId();
-  info.group = sys::Process::GetCurrentGroupId();
-  info.mode = 0777;
-  info.fileSize = 0;
-  info.modTime = sys::TimeValue::now();
-}
-
-// This is the constructor that the Archive class uses when it is building or
-// reading an archive. It just defaults a few things and ensures the parent is
-// set for the iplist. The Archive class fills in the ArchiveMember's data.
-// This is required because correctly setting the data may depend on other
-// things in the Archive.
-ArchiveMember::ArchiveMember(Archive* PAR)
-  : parent(PAR), path(), flags(0), data(0)
-{
-}
-
-// This method allows an ArchiveMember to be replaced with the data for a
-// different file, presumably as an update to the member. It also makes sure
-// the flags are reset correctly.
-bool ArchiveMember::replaceWith(const sys::Path& newFile, std::string* ErrMsg) {
-  if (!newFile.exists()) {
-    if (ErrMsg) 
-      *ErrMsg = "Can not replace an archive member with a non-existent file";
-    return true;
-  }
-
-  data = 0;
-  path = newFile;
-
-  // SVR4 symbol tables have an empty name
-  if (path.str() == ARFILE_SVR4_SYMTAB_NAME)
-    flags |= SVR4SymbolTableFlag;
-  else
-    flags &= ~SVR4SymbolTableFlag;
-
-  // BSD4.4 symbol tables have a special name
-  if (path.str() == ARFILE_BSD4_SYMTAB_NAME)
-    flags |= BSD4SymbolTableFlag;
-  else
-    flags &= ~BSD4SymbolTableFlag;
-
-  // LLVM symbol tables have a very specific name
-  if (path.str() == ARFILE_LLVM_SYMTAB_NAME)
-    flags |= LLVMSymbolTableFlag;
-  else
-    flags &= ~LLVMSymbolTableFlag;
-
-  // String table name
-  if (path.str() == ARFILE_STRTAB_NAME)
-    flags |= StringTableFlag;
-  else
-    flags &= ~StringTableFlag;
-
-  // If it has a slash then it has a path
-  bool hasSlash = path.str().find('/') != std::string::npos;
-  if (hasSlash)
-    flags |= HasPathFlag;
-  else
-    flags &= ~HasPathFlag;
-
-  // If it has a slash or its over 15 chars then its a long filename format
-  if (hasSlash || path.str().length() > 15)
-    flags |= HasLongFilenameFlag;
-  else
-    flags &= ~HasLongFilenameFlag;
-
-  // Get the signature and status info
-  const char* signature = (const char*) data;
-  std::string magic;
-  if (!signature) {
-    path.getMagicNumber(magic,4);
-    signature = magic.c_str();
-    std::string err;
-    const sys::FileStatus *FSinfo = path.getFileStatus(false, ErrMsg);
-    if (FSinfo)
-      info = *FSinfo;
-    else
-      return true;
-  }
-
-  // Determine what kind of file it is.
-  switch (sys::IdentifyFileType(signature,4)) {
-    case sys::Bitcode_FileType:
-      flags |= BitcodeFlag;
-      break;
-    default:
-      flags &= ~BitcodeFlag;
-      break;
-  }
-  return false;
-}
-
-// Archive constructor - this is the only constructor that gets used for the
-// Archive class. Everything else (default,copy) is deprecated. This just
-// initializes and maps the file into memory, if requested.
-Archive::Archive(const sys::Path& filename, LLVMContext& C)
-  : archPath(filename), members(), mapfile(0), base(0), symTab(), strtab(),
-    symTabSize(0), firstFileOffset(0), modules(), foreignST(0), Context(C) {
-}
-
-bool
-Archive::mapToMemory(std::string* ErrMsg) {
-  mapfile = MemoryBuffer::getFile(archPath.c_str(), ErrMsg);
-  if (mapfile == 0)
-    return true;
-  base = mapfile->getBufferStart();
-  return false;
-}
-
-void Archive::cleanUpMemory() {
-  // Shutdown the file mapping
-  delete mapfile;
-  mapfile = 0;
-  base = 0;
-  
-  // Forget the entire symbol table
-  symTab.clear();
-  symTabSize = 0;
-  
-  firstFileOffset = 0;
-  
-  // Free the foreign symbol table member
-  if (foreignST) {
-    delete foreignST;
-    foreignST = 0;
-  }
-  
-  // Delete any ModuleProviders and ArchiveMember's we've allocated as a result
-  // of symbol table searches.
-  for (ModuleMap::iterator I=modules.begin(), E=modules.end(); I != E; ++I ) {
-    delete I->second.first;
-    delete I->second.second;
-  }
-}
-
-// Archive destructor - just clean up memory
-Archive::~Archive() {
-  cleanUpMemory();
-}
-
-
-
-static void getSymbols(Module*M, std::vector<std::string>& symbols) {
-  // Loop over global variables
-  for (Module::global_iterator GI = M->global_begin(), GE=M->global_end(); GI != GE; ++GI)
-    if (!GI->isDeclaration() && !GI->hasLocalLinkage())
-      if (!GI->getName().empty())
-        symbols.push_back(GI->getName());
-  
-  // Loop over functions
-  for (Module::iterator FI = M->begin(), FE = M->end(); FI != FE; ++FI)
-    if (!FI->isDeclaration() && !FI->hasLocalLinkage())
-      if (!FI->getName().empty())
-        symbols.push_back(FI->getName());
-
-  // Loop over aliases
-  for (Module::alias_iterator AI = M->alias_begin(), AE = M->alias_end();
-       AI != AE; ++AI) {
-    if (AI->hasName())
-      symbols.push_back(AI->getName());
-  }
-}
-
-// Get just the externally visible defined symbols from the bitcode
-bool llvm::GetBitcodeSymbols(const sys::Path& fName,
-                             LLVMContext& Context,
-                             std::vector<std::string>& symbols,
-                             std::string* ErrMsg) {
-  std::auto_ptr<MemoryBuffer> Buffer(
-                       MemoryBuffer::getFileOrSTDIN(fName.c_str()));
-  if (!Buffer.get()) {
-    if (ErrMsg) *ErrMsg = "Could not open file '" + fName.str() + "'";
-    return true;
-  }
-  
-  ModuleProvider *MP = getBitcodeModuleProvider(Buffer.get(), Context, ErrMsg);
-  if (!MP)
-    return true;
-  
-  // Get the module from the provider
-  Module* M = MP->materializeModule();
-  if (M == 0) {
-    delete MP;
-    return true;
-  }
-  
-  // Get the symbols
-  getSymbols(M, symbols);
-  
-  // Done with the module.
-  delete MP;
-  return true;
-}
-
-ModuleProvider*
-llvm::GetBitcodeSymbols(const unsigned char *BufPtr, unsigned Length,
-                        const std::string& ModuleID,
-                        LLVMContext& Context,
-                        std::vector<std::string>& symbols,
-                        std::string* ErrMsg) {
-  // Get the module provider
-  MemoryBuffer *Buffer =MemoryBuffer::getNewMemBuffer(Length, ModuleID.c_str());
-  memcpy((char*)Buffer->getBufferStart(), BufPtr, Length);
-  
-  ModuleProvider *MP = getBitcodeModuleProvider(Buffer, Context, ErrMsg);
-  if (!MP)
-    return 0;
-  
-  // Get the module from the provider
-  Module* M = MP->materializeModule();
-  if (M == 0) {
-    delete MP;
-    return 0;
-  }
-  
-  // Get the symbols
-  getSymbols(M, symbols);
-  
-  // Done with the module. Note that ModuleProvider will delete the
-  // Module when it is deleted. Also note that its the caller's responsibility
-  // to delete the ModuleProvider.
-  return MP;
-}
diff --git a/libclamav/c++/llvm/lib/Archive/ArchiveInternals.h b/libclamav/c++/llvm/lib/Archive/ArchiveInternals.h
deleted file mode 100644
index d187ed9..0000000
--- a/libclamav/c++/llvm/lib/Archive/ArchiveInternals.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//===-- lib/Archive/ArchiveInternals.h -------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Internal implementation header for LLVM Archive files.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LIB_ARCHIVE_ARCHIVEINTERNALS_H
-#define LIB_ARCHIVE_ARCHIVEINTERNALS_H
-
-#include "llvm/Bitcode/Archive.h"
-#include "llvm/System/TimeValue.h"
-#include "llvm/ADT/StringExtras.h"
-
-#include <cstring>
-
-#define ARFILE_MAGIC "!<arch>\n"                   ///< magic string
-#define ARFILE_MAGIC_LEN (sizeof(ARFILE_MAGIC)-1)  ///< length of magic string
-#define ARFILE_SVR4_SYMTAB_NAME "/               " ///< SVR4 symtab entry name
-#define ARFILE_LLVM_SYMTAB_NAME "#_LLVM_SYM_TAB_#" ///< LLVM symtab entry name
-#define ARFILE_BSD4_SYMTAB_NAME "__.SYMDEF SORTED" ///< BSD4 symtab entry name
-#define ARFILE_STRTAB_NAME      "//              " ///< Name of string table
-#define ARFILE_PAD "\n"                            ///< inter-file align padding
-#define ARFILE_MEMBER_MAGIC "`\n"                  ///< fmag field magic #
-
-namespace llvm {
-
-  class LLVMContext;
-
-  /// The ArchiveMemberHeader structure is used internally for bitcode
-  /// archives.
-  /// The header precedes each file member in the archive. This structure is
-  /// defined using character arrays for direct and correct interpretation
-  /// regardless of the endianess of the machine that produced it.
-  /// @brief Archive File Member Header
-  class ArchiveMemberHeader {
-    /// @name Data
-    /// @{
-    public:
-      char name[16];  ///< Name of the file member.
-      char date[12];  ///< File date, decimal seconds since Epoch
-      char uid[6];    ///< user id in ASCII decimal
-      char gid[6];    ///< group id in ASCII decimal
-      char mode[8];   ///< file mode in ASCII octal
-      char size[10];  ///< file size in ASCII decimal
-      char fmag[2];   ///< Always contains ARFILE_MAGIC_TERMINATOR
-
-    /// @}
-    /// @name Methods
-    /// @{
-    public:
-    void init() {
-      memset(name,' ',16);
-      memset(date,' ',12);
-      memset(uid,' ',6);
-      memset(gid,' ',6);
-      memset(mode,' ',8);
-      memset(size,' ',10);
-      fmag[0] = '`';
-      fmag[1] = '\n';
-    }
-
-    bool checkSignature() {
-      return 0 == memcmp(fmag, ARFILE_MEMBER_MAGIC,2);
-    }
-  };
-  
-  // Get just the externally visible defined symbols from the bitcode
-  bool GetBitcodeSymbols(const sys::Path& fName,
-                          LLVMContext& Context,
-                          std::vector<std::string>& symbols,
-                          std::string* ErrMsg);
-  
-  ModuleProvider* GetBitcodeSymbols(const unsigned char*Buffer,unsigned Length,
-                                    const std::string& ModuleID,
-                                    LLVMContext& Context,
-                                    std::vector<std::string>& symbols,
-                                    std::string* ErrMsg);
-}
-
-#endif
-
-// vim: sw=2 ai
diff --git a/libclamav/c++/llvm/lib/Archive/ArchiveReader.cpp b/libclamav/c++/llvm/lib/Archive/ArchiveReader.cpp
deleted file mode 100644
index 74895d8..0000000
--- a/libclamav/c++/llvm/lib/Archive/ArchiveReader.cpp
+++ /dev/null
@@ -1,629 +0,0 @@
-//===-- ArchiveReader.cpp - Read LLVM archive files -------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Builds up standard unix archive files (.a) containing LLVM bitcode.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ArchiveInternals.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Module.h"
-#include <cstdlib>
-#include <memory>
-using namespace llvm;
-
-/// Read a variable-bit-rate encoded unsigned integer
-static inline unsigned readInteger(const char*&At, const char*End) {
-  unsigned Shift = 0;
-  unsigned Result = 0;
-
-  do {
-    if (At == End)
-      return Result;
-    Result |= (unsigned)((*At++) & 0x7F) << Shift;
-    Shift += 7;
-  } while (At[-1] & 0x80);
-  return Result;
-}
-
-// Completely parse the Archive's symbol table and populate symTab member var.
-bool
-Archive::parseSymbolTable(const void* data, unsigned size, std::string* error) {
-  const char* At = (const char*) data;
-  const char* End = At + size;
-  while (At < End) {
-    unsigned offset = readInteger(At, End);
-    if (At == End) {
-      if (error)
-        *error = "Ran out of data reading vbr_uint for symtab offset!";
-      return false;
-    }
-    unsigned length = readInteger(At, End);
-    if (At == End) {
-      if (error)
-        *error = "Ran out of data reading vbr_uint for symtab length!";
-      return false;
-    }
-    if (At + length > End) {
-      if (error)
-        *error = "Malformed symbol table: length not consistent with size";
-      return false;
-    }
-    // we don't care if it can't be inserted (duplicate entry)
-    symTab.insert(std::make_pair(std::string(At, length), offset));
-    At += length;
-  }
-  symTabSize = size;
-  return true;
-}
-
-// This member parses an ArchiveMemberHeader that is presumed to be pointed to
-// by At. The At pointer is updated to the byte just after the header, which
-// can be variable in size.
-ArchiveMember*
-Archive::parseMemberHeader(const char*& At, const char* End, std::string* error)
-{
-  if (At + sizeof(ArchiveMemberHeader) >= End) {
-    if (error)
-      *error = "Unexpected end of file";
-    return 0;
-  }
-
-  // Cast archive member header
-  ArchiveMemberHeader* Hdr = (ArchiveMemberHeader*)At;
-  At += sizeof(ArchiveMemberHeader);
-
-  // Extract the size and determine if the file is
-  // compressed or not (negative length).
-  int flags = 0;
-  int MemberSize = atoi(Hdr->size);
-  if (MemberSize < 0) {
-    flags |= ArchiveMember::CompressedFlag;
-    MemberSize = -MemberSize;
-  }
-
-  // Check the size of the member for sanity
-  if (At + MemberSize > End) {
-    if (error)
-      *error = "invalid member length in archive file";
-    return 0;
-  }
-
-  // Check the member signature
-  if (!Hdr->checkSignature()) {
-    if (error)
-      *error = "invalid file member signature";
-    return 0;
-  }
-
-  // Convert and check the member name
-  // The empty name ( '/' and 15 blanks) is for a foreign (non-LLVM) symbol
-  // table. The special name "//" and 14 blanks is for a string table, used
-  // for long file names. This library doesn't generate either of those but
-  // it will accept them. If the name starts with #1/ and the remainder is
-  // digits, then those digits specify the length of the name that is
-  // stored immediately following the header. The special name
-  // __LLVM_SYM_TAB__ identifies the symbol table for LLVM bitcode.
-  // Anything else is a regular, short filename that is terminated with
-  // a '/' and blanks.
-
-  std::string pathname;
-  switch (Hdr->name[0]) {
-    case '#':
-      if (Hdr->name[1] == '1' && Hdr->name[2] == '/') {
-        if (isdigit(Hdr->name[3])) {
-          unsigned len = atoi(&Hdr->name[3]);
-          pathname.assign(At, len);
-          At += len;
-          MemberSize -= len;
-          flags |= ArchiveMember::HasLongFilenameFlag;
-        } else {
-          if (error)
-            *error = "invalid long filename";
-          return 0;
-        }
-      } else if (Hdr->name[1] == '_' &&
-                 (0 == memcmp(Hdr->name, ARFILE_LLVM_SYMTAB_NAME, 16))) {
-        // The member is using a long file name (>15 chars) format.
-        // This format is standard for 4.4BSD and Mac OSX operating
-        // systems. LLVM uses it similarly. In this format, the
-        // remainder of the name field (after #1/) specifies the
-        // length of the file name which occupy the first bytes of
-        // the member's data. The pathname already has the #1/ stripped.
-        pathname.assign(ARFILE_LLVM_SYMTAB_NAME);
-        flags |= ArchiveMember::LLVMSymbolTableFlag;
-      }
-      break;
-    case '/':
-      if (Hdr->name[1]== '/') {
-        if (0 == memcmp(Hdr->name, ARFILE_STRTAB_NAME, 16)) {
-          pathname.assign(ARFILE_STRTAB_NAME);
-          flags |= ArchiveMember::StringTableFlag;
-        } else {
-          if (error)
-            *error = "invalid string table name";
-          return 0;
-        }
-      } else if (Hdr->name[1] == ' ') {
-        if (0 == memcmp(Hdr->name, ARFILE_SVR4_SYMTAB_NAME, 16)) {
-          pathname.assign(ARFILE_SVR4_SYMTAB_NAME);
-          flags |= ArchiveMember::SVR4SymbolTableFlag;
-        } else {
-          if (error)
-            *error = "invalid SVR4 symbol table name";
-          return 0;
-        }
-      } else if (isdigit(Hdr->name[1])) {
-        unsigned index = atoi(&Hdr->name[1]);
-        if (index < strtab.length()) {
-          const char* namep = strtab.c_str() + index;
-          const char* endp = strtab.c_str() + strtab.length();
-          const char* p = namep;
-          const char* last_p = p;
-          while (p < endp) {
-            if (*p == '\n' && *last_p == '/') {
-              pathname.assign(namep, last_p - namep);
-              flags |= ArchiveMember::HasLongFilenameFlag;
-              break;
-            }
-            last_p = p;
-            p++;
-          }
-          if (p >= endp) {
-            if (error)
-              *error = "missing name termiantor in string table";
-            return 0;
-          }
-        } else {
-          if (error)
-            *error = "name index beyond string table";
-          return 0;
-        }
-      }
-      break;
-    case '_':
-      if (Hdr->name[1] == '_' &&
-          (0 == memcmp(Hdr->name, ARFILE_BSD4_SYMTAB_NAME, 16))) {
-        pathname.assign(ARFILE_BSD4_SYMTAB_NAME);
-        flags |= ArchiveMember::BSD4SymbolTableFlag;
-        break;
-      }
-      /* FALL THROUGH */
-
-    default:
-      char* slash = (char*) memchr(Hdr->name, '/', 16);
-      if (slash == 0)
-        slash = Hdr->name + 16;
-      pathname.assign(Hdr->name, slash - Hdr->name);
-      break;
-  }
-
-  // Determine if this is a bitcode file
-  switch (sys::IdentifyFileType(At, 4)) {
-    case sys::Bitcode_FileType:
-      flags |= ArchiveMember::BitcodeFlag;
-      break;
-    default:
-      flags &= ~ArchiveMember::BitcodeFlag;
-      break;
-  }
-
-  // Instantiate the ArchiveMember to be filled
-  ArchiveMember* member = new ArchiveMember(this);
-
-  // Fill in fields of the ArchiveMember
-  member->parent = this;
-  member->path.set(pathname);
-  member->info.fileSize = MemberSize;
-  member->info.modTime.fromEpochTime(atoi(Hdr->date));
-  unsigned int mode;
-  sscanf(Hdr->mode, "%o", &mode);
-  member->info.mode = mode;
-  member->info.user = atoi(Hdr->uid);
-  member->info.group = atoi(Hdr->gid);
-  member->flags = flags;
-  member->data = At;
-
-  return member;
-}
-
-bool
-Archive::checkSignature(std::string* error) {
-  // Check the magic string at file's header
-  if (mapfile->getBufferSize() < 8 || memcmp(base, ARFILE_MAGIC, 8)) {
-    if (error)
-      *error = "invalid signature for an archive file";
-    return false;
-  }
-  return true;
-}
-
-// This function loads the entire archive and fully populates its ilist with
-// the members of the archive file. This is typically used in preparation for
-// editing the contents of the archive.
-bool
-Archive::loadArchive(std::string* error) {
-
-  // Set up parsing
-  members.clear();
-  symTab.clear();
-  const char *At = base;
-  const char *End = mapfile->getBufferEnd();
-
-  if (!checkSignature(error))
-    return false;
-
-  At += 8;  // Skip the magic string.
-
-  bool seenSymbolTable = false;
-  bool foundFirstFile = false;
-  while (At < End) {
-    // parse the member header
-    const char* Save = At;
-    ArchiveMember* mbr = parseMemberHeader(At, End, error);
-    if (!mbr)
-      return false;
-
-    // check if this is the foreign symbol table
-    if (mbr->isSVR4SymbolTable() || mbr->isBSD4SymbolTable()) {
-      // We just save this but don't do anything special
-      // with it. It doesn't count as the "first file".
-      if (foreignST) {
-        // What? Multiple foreign symbol tables? Just chuck it
-        // and retain the last one found.
-        delete foreignST;
-      }
-      foreignST = mbr;
-      At += mbr->getSize();
-      if ((intptr_t(At) & 1) == 1)
-        At++;
-    } else if (mbr->isStringTable()) {
-      // Simply suck the entire string table into a string
-      // variable. This will be used to get the names of the
-      // members that use the "/ddd" format for their names
-      // (SVR4 style long names).
-      strtab.assign(At, mbr->getSize());
-      At += mbr->getSize();
-      if ((intptr_t(At) & 1) == 1)
-        At++;
-      delete mbr;
-    } else if (mbr->isLLVMSymbolTable()) {
-      // This is the LLVM symbol table for the archive. If we've seen it
-      // already, its an error. Otherwise, parse the symbol table and move on.
-      if (seenSymbolTable) {
-        if (error)
-          *error = "invalid archive: multiple symbol tables";
-        return false;
-      }
-      if (!parseSymbolTable(mbr->getData(), mbr->getSize(), error))
-        return false;
-      seenSymbolTable = true;
-      At += mbr->getSize();
-      if ((intptr_t(At) & 1) == 1)
-        At++;
-      delete mbr; // We don't need this member in the list of members.
-    } else {
-      // This is just a regular file. If its the first one, save its offset.
-      // Otherwise just push it on the list and move on to the next file.
-      if (!foundFirstFile) {
-        firstFileOffset = Save - base;
-        foundFirstFile = true;
-      }
-      members.push_back(mbr);
-      At += mbr->getSize();
-      if ((intptr_t(At) & 1) == 1)
-        At++;
-    }
-  }
-  return true;
-}
-
-// Open and completely load the archive file.
-Archive*
-Archive::OpenAndLoad(const sys::Path& file, LLVMContext& C, 
-                     std::string* ErrorMessage) {
-  std::auto_ptr<Archive> result ( new Archive(file, C));
-  if (result->mapToMemory(ErrorMessage))
-    return 0;
-  if (!result->loadArchive(ErrorMessage))
-    return 0;
-  return result.release();
-}
-
-// Get all the bitcode modules from the archive
-bool
-Archive::getAllModules(std::vector<Module*>& Modules,
-                       std::string* ErrMessage) {
-
-  for (iterator I=begin(), E=end(); I != E; ++I) {
-    if (I->isBitcode()) {
-      std::string FullMemberName = archPath.str() +
-        "(" + I->getPath().str() + ")";
-      MemoryBuffer *Buffer =
-        MemoryBuffer::getNewMemBuffer(I->getSize(), FullMemberName.c_str());
-      memcpy((char*)Buffer->getBufferStart(), I->getData(), I->getSize());
-      
-      Module *M = ParseBitcodeFile(Buffer, Context, ErrMessage);
-      delete Buffer;
-      if (!M)
-        return true;
-
-      Modules.push_back(M);
-    }
-  }
-  return false;
-}
-
-// Load just the symbol table from the archive file
-bool
-Archive::loadSymbolTable(std::string* ErrorMsg) {
-
-  // Set up parsing
-  members.clear();
-  symTab.clear();
-  const char *At = base;
-  const char *End = mapfile->getBufferEnd();
-
-  // Make sure we're dealing with an archive
-  if (!checkSignature(ErrorMsg))
-    return false;
-
-  At += 8; // Skip signature
-
-  // Parse the first file member header
-  const char* FirstFile = At;
-  ArchiveMember* mbr = parseMemberHeader(At, End, ErrorMsg);
-  if (!mbr)
-    return false;
-
-  if (mbr->isSVR4SymbolTable() || mbr->isBSD4SymbolTable()) {
-    // Skip the foreign symbol table, we don't do anything with it
-    At += mbr->getSize();
-    if ((intptr_t(At) & 1) == 1)
-      At++;
-    delete mbr;
-
-    // Read the next one
-    FirstFile = At;
-    mbr = parseMemberHeader(At, End, ErrorMsg);
-    if (!mbr) {
-      delete mbr;
-      return false;
-    }
-  }
-
-  if (mbr->isStringTable()) {
-    // Process the string table entry
-    strtab.assign((const char*)mbr->getData(), mbr->getSize());
-    At += mbr->getSize();
-    if ((intptr_t(At) & 1) == 1)
-      At++;
-    delete mbr;
-    // Get the next one
-    FirstFile = At;
-    mbr = parseMemberHeader(At, End, ErrorMsg);
-    if (!mbr) {
-      delete mbr;
-      return false;
-    }
-  }
-
-  // See if its the symbol table
-  if (mbr->isLLVMSymbolTable()) {
-    if (!parseSymbolTable(mbr->getData(), mbr->getSize(), ErrorMsg)) {
-      delete mbr;
-      return false;
-    }
-
-    At += mbr->getSize();
-    if ((intptr_t(At) & 1) == 1)
-      At++;
-    delete mbr;
-    // Can't be any more symtab headers so just advance
-    FirstFile = At;
-  } else {
-    // There's no symbol table in the file. We have to rebuild it from scratch
-    // because the intent of this method is to get the symbol table loaded so
-    // it can be searched efficiently.
-    // Add the member to the members list
-    members.push_back(mbr);
-  }
-
-  firstFileOffset = FirstFile - base;
-  return true;
-}
-
-// Open the archive and load just the symbol tables
-Archive* Archive::OpenAndLoadSymbols(const sys::Path& file,
-                                     LLVMContext& C,
-                                     std::string* ErrorMessage) {
-  std::auto_ptr<Archive> result ( new Archive(file, C) );
-  if (result->mapToMemory(ErrorMessage))
-    return 0;
-  if (!result->loadSymbolTable(ErrorMessage))
-    return 0;
-  return result.release();
-}
-
-// Look up one symbol in the symbol table and return a ModuleProvider for the
-// module that defines that symbol.
-ModuleProvider*
-Archive::findModuleDefiningSymbol(const std::string& symbol, 
-                                  std::string* ErrMsg) {
-  SymTabType::iterator SI = symTab.find(symbol);
-  if (SI == symTab.end())
-    return 0;
-
-  // The symbol table was previously constructed assuming that the members were
-  // written without the symbol table header. Because VBR encoding is used, the
-  // values could not be adjusted to account for the offset of the symbol table
-  // because that could affect the size of the symbol table due to VBR encoding.
-  // We now have to account for this by adjusting the offset by the size of the
-  // symbol table and its header.
-  unsigned fileOffset =
-    SI->second +                // offset in symbol-table-less file
-    firstFileOffset;            // add offset to first "real" file in archive
-
-  // See if the module is already loaded
-  ModuleMap::iterator MI = modules.find(fileOffset);
-  if (MI != modules.end())
-    return MI->second.first;
-
-  // Module hasn't been loaded yet, we need to load it
-  const char* modptr = base + fileOffset;
-  ArchiveMember* mbr = parseMemberHeader(modptr, mapfile->getBufferEnd(),
-                                         ErrMsg);
-  if (!mbr)
-    return 0;
-
-  // Now, load the bitcode module to get the ModuleProvider
-  std::string FullMemberName = archPath.str() + "(" +
-    mbr->getPath().str() + ")";
-  MemoryBuffer *Buffer =MemoryBuffer::getNewMemBuffer(mbr->getSize(),
-                                                      FullMemberName.c_str());
-  memcpy((char*)Buffer->getBufferStart(), mbr->getData(), mbr->getSize());
-  
-  ModuleProvider *mp = getBitcodeModuleProvider(Buffer, Context, ErrMsg);
-  if (!mp)
-    return 0;
-
-  modules.insert(std::make_pair(fileOffset, std::make_pair(mp, mbr)));
-
-  return mp;
-}
-
-// Look up multiple symbols in the symbol table and return a set of
-// ModuleProviders that define those symbols.
-bool
-Archive::findModulesDefiningSymbols(std::set<std::string>& symbols,
-                                    std::set<ModuleProvider*>& result,
-                                    std::string* error) {
-  if (!mapfile || !base) {
-    if (error)
-      *error = "Empty archive invalid for finding modules defining symbols";
-    return false;
-  }
-
-  if (symTab.empty()) {
-    // We don't have a symbol table, so we must build it now but lets also
-    // make sure that we populate the modules table as we do this to ensure
-    // that we don't load them twice when findModuleDefiningSymbol is called
-    // below.
-
-    // Get a pointer to the first file
-    const char* At  = base + firstFileOffset;
-    const char* End = mapfile->getBufferEnd();
-
-    while ( At < End) {
-      // Compute the offset to be put in the symbol table
-      unsigned offset = At - base - firstFileOffset;
-
-      // Parse the file's header
-      ArchiveMember* mbr = parseMemberHeader(At, End, error);
-      if (!mbr)
-        return false;
-
-      // If it contains symbols
-      if (mbr->isBitcode()) {
-        // Get the symbols
-        std::vector<std::string> symbols;
-        std::string FullMemberName = archPath.str() + "(" +
-          mbr->getPath().str() + ")";
-        ModuleProvider* MP = 
-          GetBitcodeSymbols((const unsigned char*)At, mbr->getSize(),
-                            FullMemberName, Context, symbols, error);
-
-        if (MP) {
-          // Insert the module's symbols into the symbol table
-          for (std::vector<std::string>::iterator I = symbols.begin(),
-               E=symbols.end(); I != E; ++I ) {
-            symTab.insert(std::make_pair(*I, offset));
-          }
-          // Insert the ModuleProvider and the ArchiveMember into the table of
-          // modules.
-          modules.insert(std::make_pair(offset, std::make_pair(MP, mbr)));
-        } else {
-          if (error)
-            *error = "Can't parse bitcode member: " + 
-              mbr->getPath().str() + ": " + *error;
-          delete mbr;
-          return false;
-        }
-      }
-
-      // Go to the next file location
-      At += mbr->getSize();
-      if ((intptr_t(At) & 1) == 1)
-        At++;
-    }
-  }
-
-  // At this point we have a valid symbol table (one way or another) so we
-  // just use it to quickly find the symbols requested.
-
-  for (std::set<std::string>::iterator I=symbols.begin(),
-       E=symbols.end(); I != E;) {
-    // See if this symbol exists
-    ModuleProvider* mp = findModuleDefiningSymbol(*I,error);
-    if (mp) {
-      // The symbol exists, insert the ModuleProvider into our result,
-      // duplicates wil be ignored
-      result.insert(mp);
-
-      // Remove the symbol now that its been resolved, being careful to
-      // post-increment the iterator.
-      symbols.erase(I++);
-    } else {
-      ++I;
-    }
-  }
-  return true;
-}
-
-bool Archive::isBitcodeArchive() {
-  // Make sure the symTab has been loaded. In most cases this should have been
-  // done when the archive was constructed, but still,  this is just in case.
-  if (symTab.empty())
-    if (!loadSymbolTable(0))
-      return false;
-
-  // Now that we know it's been loaded, return true
-  // if it has a size
-  if (symTab.size()) return true;
-
-  // We still can't be sure it isn't a bitcode archive
-  if (!loadArchive(0))
-    return false;
-
-  std::vector<Module *> Modules;
-  std::string ErrorMessage;
-
-  // Scan the archive, trying to load a bitcode member.  We only load one to
-  // see if this works.
-  for (iterator I = begin(), E = end(); I != E; ++I) {
-    if (!I->isBitcode())
-      continue;
-    
-    std::string FullMemberName = 
-      archPath.str() + "(" + I->getPath().str() + ")";
-
-    MemoryBuffer *Buffer =
-      MemoryBuffer::getNewMemBuffer(I->getSize(), FullMemberName.c_str());
-    memcpy((char*)Buffer->getBufferStart(), I->getData(), I->getSize());
-    Module *M = ParseBitcodeFile(Buffer, Context);
-    delete Buffer;
-    if (!M)
-      return false;  // Couldn't parse bitcode, not a bitcode archive.
-    delete M;
-    return true;
-  }
-  
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Archive/ArchiveWriter.cpp b/libclamav/c++/llvm/lib/Archive/ArchiveWriter.cpp
deleted file mode 100644
index d17f6b5..0000000
--- a/libclamav/c++/llvm/lib/Archive/ArchiveWriter.cpp
+++ /dev/null
@@ -1,481 +0,0 @@
-//===-- ArchiveWriter.cpp - Write LLVM archive files ----------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Builds up an LLVM archive file (.a) containing LLVM bitcode.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ArchiveInternals.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/ADT/OwningPtr.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/System/Signals.h"
-#include "llvm/System/Process.h"
-#include "llvm/ModuleProvider.h"
-#include <fstream>
-#include <ostream>
-#include <iomanip>
-using namespace llvm;
-
-// Write an integer using variable bit rate encoding. This saves a few bytes
-// per entry in the symbol table.
-static inline void writeInteger(unsigned num, std::ofstream& ARFile) {
-  while (1) {
-    if (num < 0x80) { // done?
-      ARFile << (unsigned char)num;
-      return;
-    }
-
-    // Nope, we are bigger than a character, output the next 7 bits and set the
-    // high bit to say that there is more coming...
-    ARFile << (unsigned char)(0x80 | ((unsigned char)num & 0x7F));
-    num >>= 7;  // Shift out 7 bits now...
-  }
-}
-
-// Compute how many bytes are taken by a given VBR encoded value. This is needed
-// to pre-compute the size of the symbol table.
-static inline unsigned numVbrBytes(unsigned num) {
-
-  // Note that the following nested ifs are somewhat equivalent to a binary
-  // search. We split it in half by comparing against 2^14 first. This allows
-  // most reasonable values to be done in 2 comparisons instead of 1 for
-  // small ones and four for large ones. We expect this to access file offsets
-  // in the 2^10 to 2^24 range and symbol lengths in the 2^0 to 2^8 range,
-  // so this approach is reasonable.
-  if (num < 1<<14) {
-    if (num < 1<<7)
-      return 1;
-    else
-      return 2;
-  }
-  if (num < 1<<21)
-    return 3;
-
-  if (num < 1<<28)
-    return 4;
-  return 5; // anything >= 2^28 takes 5 bytes
-}
-
-// Create an empty archive.
-Archive* Archive::CreateEmpty(const sys::Path& FilePath, LLVMContext& C) {
-  Archive* result = new Archive(FilePath, C);
-  return result;
-}
-
-// Fill the ArchiveMemberHeader with the information from a member. If
-// TruncateNames is true, names are flattened to 15 chars or less. The sz field
-// is provided here instead of coming from the mbr because the member might be
-// stored compressed and the compressed size is not the ArchiveMember's size.
-// Furthermore compressed files have negative size fields to identify them as
-// compressed.
-bool
-Archive::fillHeader(const ArchiveMember &mbr, ArchiveMemberHeader& hdr,
-                    int sz, bool TruncateNames) const {
-
-  // Set the permissions mode, uid and gid
-  hdr.init();
-  char buffer[32];
-  sprintf(buffer, "%-8o", mbr.getMode());
-  memcpy(hdr.mode,buffer,8);
-  sprintf(buffer,  "%-6u", mbr.getUser());
-  memcpy(hdr.uid,buffer,6);
-  sprintf(buffer,  "%-6u", mbr.getGroup());
-  memcpy(hdr.gid,buffer,6);
-
-  // Set the last modification date
-  uint64_t secondsSinceEpoch = mbr.getModTime().toEpochTime();
-  sprintf(buffer,"%-12u", unsigned(secondsSinceEpoch));
-  memcpy(hdr.date,buffer,12);
-
-  // Get rid of trailing blanks in the name
-  std::string mbrPath = mbr.getPath().str();
-  size_t mbrLen = mbrPath.length();
-  while (mbrLen > 0 && mbrPath[mbrLen-1] == ' ') {
-    mbrPath.erase(mbrLen-1,1);
-    mbrLen--;
-  }
-
-  // Set the name field in one of its various flavors.
-  bool writeLongName = false;
-  if (mbr.isStringTable()) {
-    memcpy(hdr.name,ARFILE_STRTAB_NAME,16);
-  } else if (mbr.isSVR4SymbolTable()) {
-    memcpy(hdr.name,ARFILE_SVR4_SYMTAB_NAME,16);
-  } else if (mbr.isBSD4SymbolTable()) {
-    memcpy(hdr.name,ARFILE_BSD4_SYMTAB_NAME,16);
-  } else if (mbr.isLLVMSymbolTable()) {
-    memcpy(hdr.name,ARFILE_LLVM_SYMTAB_NAME,16);
-  } else if (TruncateNames) {
-    const char* nm = mbrPath.c_str();
-    unsigned len = mbrPath.length();
-    size_t slashpos = mbrPath.rfind('/');
-    if (slashpos != std::string::npos) {
-      nm += slashpos + 1;
-      len -= slashpos +1;
-    }
-    if (len > 15)
-      len = 15;
-    memcpy(hdr.name,nm,len);
-    hdr.name[len] = '/';
-  } else if (mbrPath.length() < 16 && mbrPath.find('/') == std::string::npos) {
-    memcpy(hdr.name,mbrPath.c_str(),mbrPath.length());
-    hdr.name[mbrPath.length()] = '/';
-  } else {
-    std::string nm = "#1/";
-    nm += utostr(mbrPath.length());
-    memcpy(hdr.name,nm.data(),nm.length());
-    if (sz < 0)
-      sz -= mbrPath.length();
-    else
-      sz += mbrPath.length();
-    writeLongName = true;
-  }
-
-  // Set the size field
-  if (sz < 0) {
-    buffer[0] = '-';
-    sprintf(&buffer[1],"%-9u",(unsigned)-sz);
-  } else {
-    sprintf(buffer, "%-10u", (unsigned)sz);
-  }
-  memcpy(hdr.size,buffer,10);
-
-  return writeLongName;
-}
-
-// Insert a file into the archive before some other member. This also takes care
-// of extracting the necessary flags and information from the file.
-bool
-Archive::addFileBefore(const sys::Path& filePath, iterator where, 
-                        std::string* ErrMsg) {
-  if (!filePath.exists()) {
-    if (ErrMsg)
-      *ErrMsg = "Can not add a non-existent file to archive";
-    return true;
-  }
-
-  ArchiveMember* mbr = new ArchiveMember(this);
-
-  mbr->data = 0;
-  mbr->path = filePath;
-  const sys::FileStatus *FSInfo = mbr->path.getFileStatus(false, ErrMsg);
-  if (!FSInfo) {
-    delete mbr;
-    return true;
-  }
-  mbr->info = *FSInfo;
-
-  unsigned flags = 0;
-  bool hasSlash = filePath.str().find('/') != std::string::npos;
-  if (hasSlash)
-    flags |= ArchiveMember::HasPathFlag;
-  if (hasSlash || filePath.str().length() > 15)
-    flags |= ArchiveMember::HasLongFilenameFlag;
-  std::string magic;
-  mbr->path.getMagicNumber(magic,4);
-  switch (sys::IdentifyFileType(magic.c_str(),4)) {
-    case sys::Bitcode_FileType:
-      flags |= ArchiveMember::BitcodeFlag;
-      break;
-    default:
-      break;
-  }
-  mbr->flags = flags;
-  members.insert(where,mbr);
-  return false;
-}
-
-// Write one member out to the file.
-bool
-Archive::writeMember(
-  const ArchiveMember& member,
-  std::ofstream& ARFile,
-  bool CreateSymbolTable,
-  bool TruncateNames,
-  bool ShouldCompress,
-  std::string* ErrMsg
-) {
-
-  unsigned filepos = ARFile.tellp();
-  filepos -= 8;
-
-  // Get the data and its size either from the
-  // member's in-memory data or directly from the file.
-  size_t fSize = member.getSize();
-  const char *data = (const char*)member.getData();
-  MemoryBuffer *mFile = 0;
-  if (!data) {
-    mFile = MemoryBuffer::getFile(member.getPath().c_str(), ErrMsg);
-    if (mFile == 0)
-      return true;
-    data = mFile->getBufferStart();
-    fSize = mFile->getBufferSize();
-  }
-
-  // Now that we have the data in memory, update the
-  // symbol table if its a bitcode file.
-  if (CreateSymbolTable && member.isBitcode()) {
-    std::vector<std::string> symbols;
-    std::string FullMemberName = archPath.str() + "(" + member.getPath().str()
-      + ")";
-    ModuleProvider* MP = 
-      GetBitcodeSymbols((const unsigned char*)data,fSize,
-                        FullMemberName, Context, symbols, ErrMsg);
-
-    // If the bitcode parsed successfully
-    if ( MP ) {
-      for (std::vector<std::string>::iterator SI = symbols.begin(),
-           SE = symbols.end(); SI != SE; ++SI) {
-
-        std::pair<SymTabType::iterator,bool> Res =
-          symTab.insert(std::make_pair(*SI,filepos));
-
-        if (Res.second) {
-          symTabSize += SI->length() +
-                        numVbrBytes(SI->length()) +
-                        numVbrBytes(filepos);
-        }
-      }
-      // We don't need this module any more.
-      delete MP;
-    } else {
-      delete mFile;
-      if (ErrMsg)
-        *ErrMsg = "Can't parse bitcode member: " + member.getPath().str()
-          + ": " + *ErrMsg;
-      return true;
-    }
-  }
-
-  int hdrSize = fSize;
-
-  // Compute the fields of the header
-  ArchiveMemberHeader Hdr;
-  bool writeLongName = fillHeader(member,Hdr,hdrSize,TruncateNames);
-
-  // Write header to archive file
-  ARFile.write((char*)&Hdr, sizeof(Hdr));
-
-  // Write the long filename if its long
-  if (writeLongName) {
-    ARFile.write(member.getPath().str().data(),
-                 member.getPath().str().length());
-  }
-
-  // Write the (possibly compressed) member's content to the file.
-  ARFile.write(data,fSize);
-
-  // Make sure the member is an even length
-  if ((ARFile.tellp() & 1) == 1)
-    ARFile << ARFILE_PAD;
-
-  // Close the mapped file if it was opened
-  delete mFile;
-  return false;
-}
-
-// Write out the LLVM symbol table as an archive member to the file.
-void
-Archive::writeSymbolTable(std::ofstream& ARFile) {
-
-  // Construct the symbol table's header
-  ArchiveMemberHeader Hdr;
-  Hdr.init();
-  memcpy(Hdr.name,ARFILE_LLVM_SYMTAB_NAME,16);
-  uint64_t secondsSinceEpoch = sys::TimeValue::now().toEpochTime();
-  char buffer[32];
-  sprintf(buffer, "%-8o", 0644);
-  memcpy(Hdr.mode,buffer,8);
-  sprintf(buffer, "%-6u", sys::Process::GetCurrentUserId());
-  memcpy(Hdr.uid,buffer,6);
-  sprintf(buffer, "%-6u", sys::Process::GetCurrentGroupId());
-  memcpy(Hdr.gid,buffer,6);
-  sprintf(buffer,"%-12u", unsigned(secondsSinceEpoch));
-  memcpy(Hdr.date,buffer,12);
-  sprintf(buffer,"%-10u",symTabSize);
-  memcpy(Hdr.size,buffer,10);
-
-  // Write the header
-  ARFile.write((char*)&Hdr, sizeof(Hdr));
-
-#ifndef NDEBUG
-  // Save the starting position of the symbol tables data content.
-  unsigned startpos = ARFile.tellp();
-#endif
-
-  // Write out the symbols sequentially
-  for ( Archive::SymTabType::iterator I = symTab.begin(), E = symTab.end();
-        I != E; ++I)
-  {
-    // Write out the file index
-    writeInteger(I->second, ARFile);
-    // Write out the length of the symbol
-    writeInteger(I->first.length(), ARFile);
-    // Write out the symbol
-    ARFile.write(I->first.data(), I->first.length());
-  }
-
-#ifndef NDEBUG
-  // Now that we're done with the symbol table, get the ending file position
-  unsigned endpos = ARFile.tellp();
-#endif
-
-  // Make sure that the amount we wrote is what we pre-computed. This is
-  // critical for file integrity purposes.
-  assert(endpos - startpos == symTabSize && "Invalid symTabSize computation");
-
-  // Make sure the symbol table is even sized
-  if (symTabSize % 2 != 0 )
-    ARFile << ARFILE_PAD;
-}
-
-// Write the entire archive to the file specified when the archive was created.
-// This writes to a temporary file first. Options are for creating a symbol
-// table, flattening the file names (no directories, 15 chars max) and
-// compressing each archive member.
-bool
-Archive::writeToDisk(bool CreateSymbolTable, bool TruncateNames, bool Compress,
-                     std::string* ErrMsg)
-{
-  // Make sure they haven't opened up the file, not loaded it,
-  // but are now trying to write it which would wipe out the file.
-  if (members.empty() && mapfile && mapfile->getBufferSize() > 8) {
-    if (ErrMsg)
-      *ErrMsg = "Can't write an archive not opened for writing";
-    return true;
-  }
-
-  // Create a temporary file to store the archive in
-  sys::Path TmpArchive = archPath;
-  if (TmpArchive.createTemporaryFileOnDisk(ErrMsg))
-    return true;
-
-  // Make sure the temporary gets removed if we crash
-  sys::RemoveFileOnSignal(TmpArchive);
-
-  // Create archive file for output.
-  std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
-                               std::ios::binary;
-  std::ofstream ArchiveFile(TmpArchive.c_str(), io_mode);
-
-  // Check for errors opening or creating archive file.
-  if (!ArchiveFile.is_open() || ArchiveFile.bad()) {
-    if (TmpArchive.exists())
-      TmpArchive.eraseFromDisk();
-    if (ErrMsg)
-      *ErrMsg = "Error opening archive file: " + archPath.str();
-    return true;
-  }
-
-  // If we're creating a symbol table, reset it now
-  if (CreateSymbolTable) {
-    symTabSize = 0;
-    symTab.clear();
-  }
-
-  // Write magic string to archive.
-  ArchiveFile << ARFILE_MAGIC;
-
-  // Loop over all member files, and write them out. Note that this also
-  // builds the symbol table, symTab.
-  for (MembersList::iterator I = begin(), E = end(); I != E; ++I) {
-    if (writeMember(*I, ArchiveFile, CreateSymbolTable,
-                     TruncateNames, Compress, ErrMsg)) {
-      if (TmpArchive.exists())
-        TmpArchive.eraseFromDisk();
-      ArchiveFile.close();
-      return true;
-    }
-  }
-
-  // Close archive file.
-  ArchiveFile.close();
-
-  // Write the symbol table
-  if (CreateSymbolTable) {
-    // At this point we have written a file that is a legal archive but it
-    // doesn't have a symbol table in it. To aid in faster reading and to
-    // ensure compatibility with other archivers we need to put the symbol
-    // table first in the file. Unfortunately, this means mapping the file
-    // we just wrote back in and copying it to the destination file.
-    sys::Path FinalFilePath = archPath;
-
-    // Map in the archive we just wrote.
-    {
-    OwningPtr<MemoryBuffer> arch(MemoryBuffer::getFile(TmpArchive.c_str()));
-    if (arch == 0) return true;
-    const char* base = arch->getBufferStart();
-
-    // Open another temporary file in order to avoid invalidating the 
-    // mmapped data
-    if (FinalFilePath.createTemporaryFileOnDisk(ErrMsg))
-      return true;
-    sys::RemoveFileOnSignal(FinalFilePath);
-
-    std::ofstream FinalFile(FinalFilePath.c_str(), io_mode);
-    if (!FinalFile.is_open() || FinalFile.bad()) {
-      if (TmpArchive.exists())
-        TmpArchive.eraseFromDisk();
-      if (ErrMsg)
-        *ErrMsg = "Error opening archive file: " + FinalFilePath.str();
-      return true;
-    }
-
-    // Write the file magic number
-    FinalFile << ARFILE_MAGIC;
-
-    // If there is a foreign symbol table, put it into the file now. Most
-    // ar(1) implementations require the symbol table to be first but llvm-ar
-    // can deal with it being after a foreign symbol table. This ensures
-    // compatibility with other ar(1) implementations as well as allowing the
-    // archive to store both native .o and LLVM .bc files, both indexed.
-    if (foreignST) {
-      if (writeMember(*foreignST, FinalFile, false, false, false, ErrMsg)) {
-        FinalFile.close();
-        if (TmpArchive.exists())
-          TmpArchive.eraseFromDisk();
-        return true;
-      }
-    }
-
-    // Put out the LLVM symbol table now.
-    writeSymbolTable(FinalFile);
-
-    // Copy the temporary file contents being sure to skip the file's magic
-    // number.
-    FinalFile.write(base + sizeof(ARFILE_MAGIC)-1,
-      arch->getBufferSize()-sizeof(ARFILE_MAGIC)+1);
-
-    // Close up shop
-    FinalFile.close();
-    } // free arch.
-    
-    // Move the final file over top of TmpArchive
-    if (FinalFilePath.renamePathOnDisk(TmpArchive, ErrMsg))
-      return true;
-  }
-  
-  // Before we replace the actual archive, we need to forget all the
-  // members, since they point to data in that old archive. We need to do
-  // this because we cannot replace an open file on Windows.
-  cleanUpMemory();
-  
-  if (TmpArchive.renamePathOnDisk(archPath, ErrMsg))
-    return true;
-
-  // Set correct read and write permissions after temporary file is moved
-  // to final destination path.
-  if (archPath.makeReadableOnDisk(ErrMsg))
-    return true;
-  if (archPath.makeWriteableOnDisk(ErrMsg))
-    return true;
-
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Archive/CMakeLists.txt b/libclamav/c++/llvm/lib/Archive/CMakeLists.txt
deleted file mode 100644
index 27698cb..0000000
--- a/libclamav/c++/llvm/lib/Archive/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-add_llvm_library(LLVMArchive
-  Archive.cpp
-  ArchiveReader.cpp
-  ArchiveWriter.cpp
-  )
\ No newline at end of file
diff --git a/libclamav/c++/llvm/lib/Archive/Makefile b/libclamav/c++/llvm/lib/Archive/Makefile
deleted file mode 100644
index da97804..0000000
--- a/libclamav/c++/llvm/lib/Archive/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- lib/Archive/Makefile --------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-LIBRARYNAME = LLVMArchive
-
-# We only want an archive so only those modules actually used by a tool are
-# included.
-BUILD_ARCHIVE := 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/Action.cpp b/libclamav/c++/llvm/lib/CompilerDriver/Action.cpp
deleted file mode 100644
index 5fd63ee..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/Action.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//===--- Action.cpp - The LLVM Compiler Driver ------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open
-// Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  Action class - implementation and auxiliary functions.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CompilerDriver/Action.h"
-#include "llvm/CompilerDriver/BuiltinOptions.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Program.h"
-#include <stdexcept>
-
-using namespace llvm;
-using namespace llvmc;
-
-namespace {
-  int ExecuteProgram(const std::string& name,
-                     const StrVector& args) {
-    sys::Path prog = sys::Program::FindProgramByName(name);
-
-    if (prog.isEmpty())
-      throw std::runtime_error("Can't find program '" + name + "'");
-    if (!prog.canExecute())
-      throw std::runtime_error("Program '" + name + "' is not executable.");
-
-    // Build the command line vector and the redirects array.
-    const sys::Path* redirects[3] = {0,0,0};
-    sys::Path stdout_redirect;
-
-    std::vector<const char*> argv;
-    argv.reserve((args.size()+2));
-    argv.push_back(name.c_str());
-
-    for (StrVector::const_iterator B = args.begin(), E = args.end();
-         B!=E; ++B) {
-      if (*B == ">") {
-        ++B;
-        stdout_redirect.set(*B);
-        redirects[1] = &stdout_redirect;
-      }
-      else {
-        argv.push_back((*B).c_str());
-      }
-    }
-    argv.push_back(0);  // null terminate list.
-
-    // Invoke the program.
-    return sys::Program::ExecuteAndWait(prog, &argv[0], 0, &redirects[0]);
-  }
-
-  void print_string (const std::string& str) {
-    errs() << str << ' ';
-  }
-}
-
-int llvmc::Action::Execute() const {
-  if (DryRun || VerboseMode) {
-    errs() << Command_ << " ";
-    std::for_each(Args_.begin(), Args_.end(), print_string);
-    errs() << '\n';
-  }
-  if (DryRun)
-    return 0;
-  else
-    return ExecuteProgram(Command_, Args_);
-}
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/BuiltinOptions.cpp b/libclamav/c++/llvm/lib/CompilerDriver/BuiltinOptions.cpp
deleted file mode 100644
index d90c50d..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/BuiltinOptions.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//===--- BuiltinOptions.cpp - The LLVM Compiler Driver ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open
-// Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  Definitions of all global command-line option variables.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CompilerDriver/BuiltinOptions.h"
-
-#ifdef ENABLE_LLVMC_DYNAMIC_PLUGINS
-#include "llvm/Support/PluginLoader.h"
-#endif
-
-namespace cl = llvm::cl;
-
-// External linkage here is intentional.
-
-cl::list<std::string> InputFilenames(cl::Positional, cl::desc("<input file>"),
-                                     cl::ZeroOrMore);
-cl::opt<std::string> OutputFilename("o", cl::desc("Output file name"),
-                                    cl::value_desc("file"), cl::Prefix);
-cl::opt<std::string> TempDirname("temp-dir", cl::desc("Temp dir name"),
-                                 cl::value_desc("<directory>"), cl::Prefix);
-cl::list<std::string> Languages("x",
-          cl::desc("Specify the language of the following input files"),
-          cl::ZeroOrMore);
-cl::opt<bool> DryRun("dry-run",
-                     cl::desc("Only pretend to run commands"));
-cl::opt<bool> VerboseMode("v",
-                          cl::desc("Enable verbose mode"));
-
-cl::opt<bool> CheckGraph("check-graph",
-                         cl::desc("Check the compilation graph for errors"),
-                         cl::Hidden);
-cl::opt<bool> WriteGraph("write-graph",
-                         cl::desc("Write compilation-graph.dot file"),
-                         cl::Hidden);
-cl::opt<bool> ViewGraph("view-graph",
-                         cl::desc("Show compilation graph in GhostView"),
-                         cl::Hidden);
-
-cl::opt<SaveTempsEnum::Values> SaveTemps
-("save-temps", cl::desc("Keep temporary files"),
- cl::init(SaveTempsEnum::Unset),
- cl::values(clEnumValN(SaveTempsEnum::Obj, "obj",
-                       "Save files in the directory specified with -o"),
-            clEnumValN(SaveTempsEnum::Cwd, "cwd",
-                       "Use current working directory"),
-            clEnumValN(SaveTempsEnum::Obj, "", "Same as 'cwd'"),
-            clEnumValEnd),
- cl::ValueOptional);
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/CMakeLists.txt b/libclamav/c++/llvm/lib/CompilerDriver/CMakeLists.txt
deleted file mode 100644
index 153dd44..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-set(LLVM_LINK_COMPONENTS support system)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvmc
-  Action.cpp
-  CompilationGraph.cpp
-  llvmc.cpp
-  Plugin.cpp
-  Tool.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/CompilationGraph.cpp b/libclamav/c++/llvm/lib/CompilerDriver/CompilationGraph.cpp
deleted file mode 100644
index bb0eb7b..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/CompilationGraph.cpp
+++ /dev/null
@@ -1,533 +0,0 @@
-//===--- CompilationGraph.cpp - The LLVM Compiler Driver --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open
-// Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  Compilation graph - implementation.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CompilerDriver/BuiltinOptions.h"
-#include "llvm/CompilerDriver/CompilationGraph.h"
-#include "llvm/CompilerDriver/Error.h"
-
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/Support/DOTGraphTraits.h"
-#include "llvm/Support/GraphWriter.h"
-#include "llvm/Support/raw_ostream.h"
-
-#include <algorithm>
-#include <cstring>
-#include <iterator>
-#include <limits>
-#include <queue>
-#include <stdexcept>
-
-using namespace llvm;
-using namespace llvmc;
-
-namespace llvmc {
-
-  const std::string& LanguageMap::GetLanguage(const sys::Path& File) const {
-    LanguageMap::const_iterator Lang = this->find(File.getSuffix());
-    if (Lang == this->end())
-      throw std::runtime_error("Unknown suffix: " + File.getSuffix());
-    return Lang->second;
-  }
-}
-
-namespace {
-
-  /// ChooseEdge - Return the edge with the maximum weight.
-  template <class C>
-  const Edge* ChooseEdge(const C& EdgesContainer,
-                         const InputLanguagesSet& InLangs,
-                         const std::string& NodeName = "root") {
-    const Edge* MaxEdge = 0;
-    unsigned MaxWeight = 0;
-    bool SingleMax = true;
-
-    for (typename C::const_iterator B = EdgesContainer.begin(),
-           E = EdgesContainer.end(); B != E; ++B) {
-      const Edge* e = B->getPtr();
-      unsigned EW = e->Weight(InLangs);
-      if (EW > MaxWeight) {
-        MaxEdge = e;
-        MaxWeight = EW;
-        SingleMax = true;
-      } else if (EW == MaxWeight) {
-        SingleMax = false;
-      }
-    }
-
-    if (!SingleMax)
-      throw std::runtime_error("Node " + NodeName +
-                               ": multiple maximal outward edges found!"
-                               " Most probably a specification error.");
-    if (!MaxEdge)
-      throw std::runtime_error("Node " + NodeName +
-                               ": no maximal outward edge found!"
-                               " Most probably a specification error.");
-    return MaxEdge;
-  }
-
-}
-
-void Node::AddEdge(Edge* Edg) {
-  // If there already was an edge between two nodes, modify it instead
-  // of adding a new edge.
-  const std::string& ToolName = Edg->ToolName();
-  for (container_type::iterator B = OutEdges.begin(), E = OutEdges.end();
-       B != E; ++B) {
-    if ((*B)->ToolName() == ToolName) {
-      llvm::IntrusiveRefCntPtr<Edge>(Edg).swap(*B);
-      return;
-    }
-  }
-  OutEdges.push_back(llvm::IntrusiveRefCntPtr<Edge>(Edg));
-}
-
-CompilationGraph::CompilationGraph() {
-  NodesMap["root"] = Node(this);
-}
-
-Node& CompilationGraph::getNode(const std::string& ToolName) {
-  nodes_map_type::iterator I = NodesMap.find(ToolName);
-  if (I == NodesMap.end())
-    throw std::runtime_error("Node " + ToolName + " is not in the graph");
-  return I->second;
-}
-
-const Node& CompilationGraph::getNode(const std::string& ToolName) const {
-  nodes_map_type::const_iterator I = NodesMap.find(ToolName);
-  if (I == NodesMap.end())
-    throw std::runtime_error("Node " + ToolName + " is not in the graph!");
-  return I->second;
-}
-
-// Find the tools list corresponding to the given language name.
-const CompilationGraph::tools_vector_type&
-CompilationGraph::getToolsVector(const std::string& LangName) const
-{
-  tools_map_type::const_iterator I = ToolsMap.find(LangName);
-  if (I == ToolsMap.end())
-    throw std::runtime_error("No tool corresponding to the language "
-                             + LangName + " found");
-  return I->second;
-}
-
-void CompilationGraph::insertNode(Tool* V) {
-  if (NodesMap.count(V->Name()) == 0)
-    NodesMap[V->Name()] = Node(this, V);
-}
-
-void CompilationGraph::insertEdge(const std::string& A, Edge* Edg) {
-  Node& B = getNode(Edg->ToolName());
-  if (A == "root") {
-    const char** InLangs = B.ToolPtr->InputLanguages();
-    for (;*InLangs; ++InLangs)
-      ToolsMap[*InLangs].push_back(IntrusiveRefCntPtr<Edge>(Edg));
-    NodesMap["root"].AddEdge(Edg);
-  }
-  else {
-    Node& N = getNode(A);
-    N.AddEdge(Edg);
-  }
-  // Increase the inward edge counter.
-  B.IncrInEdges();
-}
-
-// Pass input file through the chain until we bump into a Join node or
-// a node that says that it is the last.
-void CompilationGraph::PassThroughGraph (const sys::Path& InFile,
-                                         const Node* StartNode,
-                                         const InputLanguagesSet& InLangs,
-                                         const sys::Path& TempDir,
-                                         const LanguageMap& LangMap) const {
-  sys::Path In = InFile;
-  const Node* CurNode = StartNode;
-
-  while(true) {
-    Tool* CurTool = CurNode->ToolPtr.getPtr();
-
-    if (CurTool->IsJoin()) {
-      JoinTool& JT = dynamic_cast<JoinTool&>(*CurTool);
-      JT.AddToJoinList(In);
-      break;
-    }
-
-    Action CurAction = CurTool->GenerateAction(In, CurNode->HasChildren(),
-                                               TempDir, InLangs, LangMap);
-
-    if (int ret = CurAction.Execute())
-      throw error_code(ret);
-
-    if (CurAction.StopCompilation())
-      return;
-
-    CurNode = &getNode(ChooseEdge(CurNode->OutEdges,
-                                  InLangs,
-                                  CurNode->Name())->ToolName());
-    In = CurAction.OutFile();
-  }
-}
-
-// Find the head of the toolchain corresponding to the given file.
-// Also, insert an input language into InLangs.
-const Node* CompilationGraph::
-FindToolChain(const sys::Path& In, const std::string* ForceLanguage,
-              InputLanguagesSet& InLangs, const LanguageMap& LangMap) const {
-
-  // Determine the input language.
-  const std::string& InLanguage =
-    ForceLanguage ? *ForceLanguage : LangMap.GetLanguage(In);
-
-  // Add the current input language to the input language set.
-  InLangs.insert(InLanguage);
-
-  // Find the toolchain for the input language.
-  const tools_vector_type& TV = getToolsVector(InLanguage);
-  if (TV.empty())
-    throw std::runtime_error("No toolchain corresponding to language "
-                             + InLanguage + " found");
-  return &getNode(ChooseEdge(TV, InLangs)->ToolName());
-}
-
-// Helper function used by Build().
-// Traverses initial portions of the toolchains (up to the first Join node).
-// This function is also responsible for handling the -x option.
-void CompilationGraph::BuildInitial (InputLanguagesSet& InLangs,
-                                     const sys::Path& TempDir,
-                                     const LanguageMap& LangMap) {
-  // This is related to -x option handling.
-  cl::list<std::string>::const_iterator xIter = Languages.begin(),
-    xBegin = xIter, xEnd = Languages.end();
-  bool xEmpty = true;
-  const std::string* xLanguage = 0;
-  unsigned xPos = 0, xPosNext = 0, filePos = 0;
-
-  if (xIter != xEnd) {
-    xEmpty = false;
-    xPos = Languages.getPosition(xIter - xBegin);
-    cl::list<std::string>::const_iterator xNext = llvm::next(xIter);
-    xPosNext = (xNext == xEnd) ? std::numeric_limits<unsigned>::max()
-      : Languages.getPosition(xNext - xBegin);
-    xLanguage = (*xIter == "none") ? 0 : &(*xIter);
-  }
-
-  // For each input file:
-  for (cl::list<std::string>::const_iterator B = InputFilenames.begin(),
-         CB = B, E = InputFilenames.end(); B != E; ++B) {
-    sys::Path In = sys::Path(*B);
-
-    // Code for handling the -x option.
-    // Output: std::string* xLanguage (can be NULL).
-    if (!xEmpty) {
-      filePos = InputFilenames.getPosition(B - CB);
-
-      if (xPos < filePos) {
-        if (filePos < xPosNext) {
-          xLanguage = (*xIter == "none") ? 0 : &(*xIter);
-        }
-        else { // filePos >= xPosNext
-          // Skip xIters while filePos > xPosNext
-          while (filePos > xPosNext) {
-            ++xIter;
-            xPos = xPosNext;
-
-            cl::list<std::string>::const_iterator xNext = llvm::next(xIter);
-            if (xNext == xEnd)
-              xPosNext = std::numeric_limits<unsigned>::max();
-            else
-              xPosNext = Languages.getPosition(xNext - xBegin);
-            xLanguage = (*xIter == "none") ? 0 : &(*xIter);
-          }
-        }
-      }
-    }
-
-    // Find the toolchain corresponding to this file.
-    const Node* N = FindToolChain(In, xLanguage, InLangs, LangMap);
-    // Pass file through the chain starting at head.
-    PassThroughGraph(In, N, InLangs, TempDir, LangMap);
-  }
-}
-
-// Sort the nodes in topological order.
-void CompilationGraph::TopologicalSort(std::vector<const Node*>& Out) {
-  std::queue<const Node*> Q;
-  Q.push(&getNode("root"));
-
-  while (!Q.empty()) {
-    const Node* A = Q.front();
-    Q.pop();
-    Out.push_back(A);
-    for (Node::const_iterator EB = A->EdgesBegin(), EE = A->EdgesEnd();
-         EB != EE; ++EB) {
-      Node* B = &getNode((*EB)->ToolName());
-      B->DecrInEdges();
-      if (B->HasNoInEdges())
-        Q.push(B);
-    }
-  }
-}
-
-namespace {
-  bool NotJoinNode(const Node* N) {
-    return N->ToolPtr ? !N->ToolPtr->IsJoin() : true;
-  }
-}
-
-// Call TopologicalSort and filter the resulting list to include
-// only Join nodes.
-void CompilationGraph::
-TopologicalSortFilterJoinNodes(std::vector<const Node*>& Out) {
-  std::vector<const Node*> TopSorted;
-  TopologicalSort(TopSorted);
-  std::remove_copy_if(TopSorted.begin(), TopSorted.end(),
-                      std::back_inserter(Out), NotJoinNode);
-}
-
-int CompilationGraph::Build (const sys::Path& TempDir,
-                             const LanguageMap& LangMap) {
-
-  InputLanguagesSet InLangs;
-
-  // Traverse initial parts of the toolchains and fill in InLangs.
-  BuildInitial(InLangs, TempDir, LangMap);
-
-  std::vector<const Node*> JTV;
-  TopologicalSortFilterJoinNodes(JTV);
-
-  // For all join nodes in topological order:
-  for (std::vector<const Node*>::iterator B = JTV.begin(), E = JTV.end();
-       B != E; ++B) {
-
-    const Node* CurNode = *B;
-    JoinTool* JT = &dynamic_cast<JoinTool&>(*CurNode->ToolPtr.getPtr());
-
-    // Are there any files in the join list?
-    if (JT->JoinListEmpty())
-      continue;
-
-    Action CurAction = JT->GenerateAction(CurNode->HasChildren(),
-                                          TempDir, InLangs, LangMap);
-
-    if (int ret = CurAction.Execute())
-      throw error_code(ret);
-
-    if (CurAction.StopCompilation())
-      return 0;
-
-    const Node* NextNode = &getNode(ChooseEdge(CurNode->OutEdges, InLangs,
-                                               CurNode->Name())->ToolName());
-    PassThroughGraph(sys::Path(CurAction.OutFile()), NextNode,
-                     InLangs, TempDir, LangMap);
-  }
-
-  return 0;
-}
-
-int CompilationGraph::CheckLanguageNames() const {
-  int ret = 0;
-  // Check that names for output and input languages on all edges do match.
-  for (const_nodes_iterator B = this->NodesMap.begin(),
-         E = this->NodesMap.end(); B != E; ++B) {
-
-    const Node & N1 = B->second;
-    if (N1.ToolPtr) {
-      for (Node::const_iterator EB = N1.EdgesBegin(), EE = N1.EdgesEnd();
-           EB != EE; ++EB) {
-        const Node& N2 = this->getNode((*EB)->ToolName());
-
-        if (!N2.ToolPtr) {
-          ++ret;
-          errs() << "Error: there is an edge from '" << N1.ToolPtr->Name()
-                 << "' back to the root!\n\n";
-          continue;
-        }
-
-        const char* OutLang = N1.ToolPtr->OutputLanguage();
-        const char** InLangs = N2.ToolPtr->InputLanguages();
-        bool eq = false;
-        for (;*InLangs; ++InLangs) {
-          if (std::strcmp(OutLang, *InLangs) == 0) {
-            eq = true;
-            break;
-          }
-        }
-
-        if (!eq) {
-          ++ret;
-          errs() << "Error: Output->input language mismatch in the edge '"
-                 << N1.ToolPtr->Name() << "' -> '" << N2.ToolPtr->Name()
-                 << "'!\n"
-                 << "Expected one of { ";
-
-          InLangs = N2.ToolPtr->InputLanguages();
-          for (;*InLangs; ++InLangs) {
-            errs() << '\'' << *InLangs << (*(InLangs+1) ? "', " : "'");
-          }
-
-          errs() << " }, but got '" << OutLang << "'!\n\n";
-        }
-
-      }
-    }
-  }
-
-  return ret;
-}
-
-int CompilationGraph::CheckMultipleDefaultEdges() const {
-  int ret = 0;
-  InputLanguagesSet Dummy;
-
-  // For all nodes, just iterate over the outgoing edges and check if there is
-  // more than one edge with maximum weight.
-  for (const_nodes_iterator B = this->NodesMap.begin(),
-         E = this->NodesMap.end(); B != E; ++B) {
-    const Node& N = B->second;
-    unsigned MaxWeight = 0;
-
-    // Ignore the root node.
-    if (!N.ToolPtr)
-      continue;
-
-    for (Node::const_iterator EB = N.EdgesBegin(), EE = N.EdgesEnd();
-         EB != EE; ++EB) {
-      unsigned EdgeWeight = (*EB)->Weight(Dummy);
-      if (EdgeWeight > MaxWeight) {
-        MaxWeight = EdgeWeight;
-      }
-      else if (EdgeWeight == MaxWeight) {
-        ++ret;
-        errs() << "Error: there are multiple maximal edges stemming from the '"
-               << N.ToolPtr->Name() << "' node!\n\n";
-        break;
-      }
-    }
-  }
-
-  return ret;
-}
-
-int CompilationGraph::CheckCycles() {
-  unsigned deleted = 0;
-  std::queue<Node*> Q;
-  Q.push(&getNode("root"));
-
-  // Try to delete all nodes that have no ingoing edges, starting from the
-  // root. If there are any nodes left after this operation, then we have a
-  // cycle. This relies on '--check-graph' not performing the topological sort.
-  while (!Q.empty()) {
-    Node* A = Q.front();
-    Q.pop();
-    ++deleted;
-
-    for (Node::iterator EB = A->EdgesBegin(), EE = A->EdgesEnd();
-         EB != EE; ++EB) {
-      Node* B = &getNode((*EB)->ToolName());
-      B->DecrInEdges();
-      if (B->HasNoInEdges())
-        Q.push(B);
-    }
-  }
-
-  if (deleted != NodesMap.size()) {
-    errs() << "Error: there are cycles in the compilation graph!\n"
-           << "Try inspecting the diagram produced by "
-           << "'llvmc --view-graph'.\n\n";
-    return 1;
-  }
-
-  return 0;
-}
-
-int CompilationGraph::Check () {
-  // We try to catch as many errors as we can in one go.
-  int ret = 0;
-
-  // Check that output/input language names match.
-  ret += this->CheckLanguageNames();
-
-  // Check for multiple default edges.
-  ret += this->CheckMultipleDefaultEdges();
-
-  // Check for cycles.
-  ret += this->CheckCycles();
-
-  return ret;
-}
-
-// Code related to graph visualization.
-
-namespace llvm {
-  template <>
-  struct DOTGraphTraits<llvmc::CompilationGraph*>
-    : public DefaultDOTGraphTraits
-  {
-
-    template<typename GraphType>
-    static std::string getNodeLabel(const Node* N, const GraphType&,
-                                    bool ShortNames)
-    {
-      if (N->ToolPtr)
-        if (N->ToolPtr->IsJoin())
-          return N->Name() + "\n (join" +
-            (N->HasChildren() ? ")"
-             : std::string(": ") + N->ToolPtr->OutputLanguage() + ')');
-        else
-          return N->Name();
-      else
-        return "root";
-    }
-
-    template<typename EdgeIter>
-    static std::string getEdgeSourceLabel(const Node* N, EdgeIter I) {
-      if (N->ToolPtr) {
-        return N->ToolPtr->OutputLanguage();
-      }
-      else {
-        const char** InLangs = I->ToolPtr->InputLanguages();
-        std::string ret;
-
-        for (; *InLangs; ++InLangs) {
-          if (*(InLangs + 1)) {
-            ret += *InLangs;
-            ret +=  ", ";
-          }
-          else {
-            ret += *InLangs;
-          }
-        }
-
-        return ret;
-      }
-    }
-  };
-
-}
-
-void CompilationGraph::writeGraph(const std::string& OutputFilename) {
-  std::string ErrorInfo;
-  raw_fd_ostream O(OutputFilename.c_str(), ErrorInfo);
-
-  if (ErrorInfo.empty()) {
-    errs() << "Writing '"<< OutputFilename << "' file...";
-    llvm::WriteGraph(O, this);
-    errs() << "done.\n";
-  }
-  else {
-    throw std::runtime_error("Error opening file '" + OutputFilename
-                             + "' for writing!");
-  }
-}
-
-void CompilationGraph::viewGraph() {
-  llvm::ViewGraph(this, "compilation-graph");
-}
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/Main.cpp b/libclamav/c++/llvm/lib/CompilerDriver/Main.cpp
deleted file mode 100644
index 3e1fc9f..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/Main.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//===--- Main.cpp - The LLVM Compiler Driver --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open
-// Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  llvmc::Main function - driver entry point.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CompilerDriver/BuiltinOptions.h"
-#include "llvm/CompilerDriver/CompilationGraph.h"
-#include "llvm/CompilerDriver/Error.h"
-#include "llvm/CompilerDriver/Plugin.h"
-
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Path.h"
-
-#include <stdexcept>
-#include <string>
-
-namespace cl = llvm::cl;
-namespace sys = llvm::sys;
-using namespace llvmc;
-
-namespace {
-
-  sys::Path getTempDir() {
-    sys::Path tempDir;
-
-    // The --temp-dir option.
-    if (!TempDirname.empty()) {
-      tempDir = TempDirname;
-    }
-    // GCC 4.5-style -save-temps handling.
-    else if (SaveTemps == SaveTempsEnum::Unset) {
-      tempDir = sys::Path::GetTemporaryDirectory();
-      return tempDir;
-    }
-    else if (SaveTemps == SaveTempsEnum::Obj && !OutputFilename.empty()) {
-      tempDir = OutputFilename;
-      tempDir = tempDir.getDirname();
-    }
-    else {
-      // SaveTemps == Cwd --> use current dir (leave tempDir empty).
-      return tempDir;
-    }
-
-    if (!tempDir.exists()) {
-      std::string ErrMsg;
-      if (tempDir.createDirectoryOnDisk(true, &ErrMsg))
-        throw std::runtime_error(ErrMsg);
-    }
-
-    return tempDir;
-  }
-
-  /// BuildTargets - A small wrapper for CompilationGraph::Build.
-  int BuildTargets(CompilationGraph& graph, const LanguageMap& langMap) {
-    int ret;
-    const sys::Path& tempDir = getTempDir();
-    bool toDelete = (SaveTemps == SaveTempsEnum::Unset);
-
-    try {
-      ret = graph.Build(tempDir, langMap);
-    }
-    catch(...) {
-      if (toDelete)
-        tempDir.eraseFromDisk(true);
-      throw;
-    }
-
-    if (toDelete)
-      tempDir.eraseFromDisk(true);
-    return ret;
-  }
-}
-
-namespace llvmc {
-
-// Sometimes plugins want to condition on the value in argv[0].
-const char* ProgramName;
-
-int Main(int argc, char** argv) {
-  try {
-    LanguageMap langMap;
-    CompilationGraph graph;
-
-    ProgramName = argv[0];
-
-    cl::ParseCommandLineOptions
-      (argc, argv, "LLVM Compiler Driver (Work In Progress)", true);
-
-    PluginLoader Plugins;
-    Plugins.PopulateLanguageMap(langMap);
-    Plugins.PopulateCompilationGraph(graph);
-
-    if (CheckGraph) {
-      int ret = graph.Check();
-      if (!ret)
-        llvm::errs() << "check-graph: no errors found.\n";
-
-      return ret;
-    }
-
-    if (ViewGraph) {
-      graph.viewGraph();
-      if (!WriteGraph)
-        return 0;
-    }
-
-    if (WriteGraph) {
-      graph.writeGraph(OutputFilename.empty()
-                       ? std::string("compilation-graph.dot")
-                       : OutputFilename);
-      return 0;
-    }
-
-    if (InputFilenames.empty()) {
-      throw std::runtime_error("no input files");
-    }
-
-    return BuildTargets(graph, langMap);
-  }
-  catch(llvmc::error_code& ec) {
-    return ec.code();
-  }
-  catch(const std::exception& ex) {
-    llvm::errs() << argv[0] << ": " << ex.what() << '\n';
-  }
-  catch(...) {
-    llvm::errs() << argv[0] << ": unknown error!\n";
-  }
-  return 1;
-}
-
-} // end namespace llvmc
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/Makefile b/libclamav/c++/llvm/lib/CompilerDriver/Makefile
deleted file mode 100644
index a5ecfd5..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-##===- lib/CompilerDriver/Makefile -------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open
-# Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-
-# We don't want this library to appear in `llvm-config --libs` output, so its
-# name doesn't start with "LLVM".
-
-ifeq ($(ENABLE_LLVMC_DYNAMIC),1)
-  LIBRARYNAME = libCompilerDriver
-  LLVMLIBS = LLVMSupport.a LLVMSystem.a
-  LOADABLE_MODULE := 1
-else
-  LIBRARYNAME = CompilerDriver
-  LINK_COMPONENTS = support system
-endif
-
-REQUIRES_EH := 1
-
-include $(LEVEL)/Makefile.common
-
-ifeq ($(ENABLE_LLVMC_DYNAMIC_PLUGINS), 1)
-    CPP.Flags += -DENABLE_LLVMC_DYNAMIC_PLUGINS
-endif
-
-# Copy libCompilerDriver to the bin dir so that llvmc can find it.
-ifeq ($(ENABLE_LLVMC_DYNAMIC),1)
-
-FullLibName = $(LIBRARYNAME)$(SHLIBEXT)
-
-all-local:: $(ToolDir)/$(FullLibName)
-
-$(ToolDir)/$(FullLibName): $(LibDir)/$(FullLibName) $(ToolDir)/.dir
-	$(Echo) Copying $(BuildMode) Shared Library $(FullLibName) to $@
-	-$(Verb) $(CP) $< $@
-
-clean-local::
-	$(Echo) Removing $(BuildMode) Shared Library $(FullLibName) \
-	from $(ToolDir)
-	-$(Verb) $(RM) -f $(ToolDir)/$(FullLibName)
-endif
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/Plugin.cpp b/libclamav/c++/llvm/lib/CompilerDriver/Plugin.cpp
deleted file mode 100644
index 7310d12..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/Plugin.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-//===--- Plugin.cpp - The LLVM Compiler Driver ------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open
-// Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  Plugin support.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CompilerDriver/Plugin.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/System/Mutex.h"
-#include <algorithm>
-#include <vector>
-
-namespace {
-
-  // Registry::Add<> does not do lifetime management (probably issues
-  // with static constructor/destructor ordering), so we have to
-  // implement it here.
-  //
-  // All this static registration/life-before-main model seems
-  // unnecessary convoluted to me.
-
-  static bool pluginListInitialized = false;
-  typedef std::vector<const llvmc::BasePlugin*> PluginList;
-  static PluginList Plugins;
-  static llvm::ManagedStatic<llvm::sys::SmartMutex<true> > PluginMutex;
-
-  struct ByPriority {
-    bool operator()(const llvmc::BasePlugin* lhs,
-                    const llvmc::BasePlugin* rhs) {
-      return lhs->Priority() < rhs->Priority();
-    }
-  };
-}
-
-namespace llvmc {
-
-  PluginLoader::PluginLoader() {
-    llvm::sys::SmartScopedLock<true> Lock(*PluginMutex);
-    if (!pluginListInitialized) {
-      for (PluginRegistry::iterator B = PluginRegistry::begin(),
-             E = PluginRegistry::end(); B != E; ++B)
-        Plugins.push_back(B->instantiate());
-      std::sort(Plugins.begin(), Plugins.end(), ByPriority());
-    }
-    pluginListInitialized = true;
-  }
-
-  PluginLoader::~PluginLoader() {
-    llvm::sys::SmartScopedLock<true> Lock(*PluginMutex);
-    if (pluginListInitialized) {
-      for (PluginList::iterator B = Plugins.begin(), E = Plugins.end();
-           B != E; ++B)
-        delete (*B);
-    }
-    pluginListInitialized = false;
-  }
-
-  void PluginLoader::PopulateLanguageMap(LanguageMap& langMap) {
-    llvm::sys::SmartScopedLock<true> Lock(*PluginMutex);
-    for (PluginList::iterator B = Plugins.begin(), E = Plugins.end();
-         B != E; ++B)
-      (*B)->PopulateLanguageMap(langMap);
-  }
-
-  void PluginLoader::PopulateCompilationGraph(CompilationGraph& graph) {
-    llvm::sys::SmartScopedLock<true> Lock(*PluginMutex);
-    for (PluginList::iterator B = Plugins.begin(), E = Plugins.end();
-         B != E; ++B)
-      (*B)->PopulateCompilationGraph(graph);
-  }
-
-}
diff --git a/libclamav/c++/llvm/lib/CompilerDriver/Tool.cpp b/libclamav/c++/llvm/lib/CompilerDriver/Tool.cpp
deleted file mode 100644
index 5a32fd3..0000000
--- a/libclamav/c++/llvm/lib/CompilerDriver/Tool.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//===--- Tool.cpp - The LLVM Compiler Driver --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open
-// Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//  Tool base class - implementation details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CompilerDriver/BuiltinOptions.h"
-#include "llvm/CompilerDriver/Tool.h"
-
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/System/Path.h"
-
-using namespace llvm;
-using namespace llvmc;
-
-// SplitString is used by derived Tool classes.
-typedef void (*SplitStringFunPtr)(const std::string&,
-                                  std::vector<std::string>&, const char*);
-SplitStringFunPtr ForceLinkageSplitString = &llvm::SplitString;
-
-namespace {
-  sys::Path MakeTempFile(const sys::Path& TempDir, const std::string& BaseName,
-                         const std::string& Suffix) {
-    sys::Path Out;
-
-    // Make sure we don't end up with path names like '/file.o' if the
-    // TempDir is empty.
-    if (TempDir.empty()) {
-      Out.set(BaseName);
-    }
-    else {
-      Out = TempDir;
-      Out.appendComponent(BaseName);
-    }
-    Out.appendSuffix(Suffix);
-    // NOTE: makeUnique always *creates* a unique temporary file,
-    // which is good, since there will be no races. However, some
-    // tools do not like it when the output file already exists, so
-    // they need to be placated with -f or something like that.
-    Out.makeUnique(true, NULL);
-    return Out;
-  }
-}
-
-sys::Path Tool::OutFilename(const sys::Path& In,
-                            const sys::Path& TempDir,
-                            bool StopCompilation,
-                            const char* OutputSuffix) const {
-  sys::Path Out;
-
-  if (StopCompilation) {
-    if (!OutputFilename.empty()) {
-      Out.set(OutputFilename);
-    }
-    else if (IsJoin()) {
-      Out.set("a");
-      Out.appendSuffix(OutputSuffix);
-    }
-    else {
-      Out.set(In.getBasename());
-      Out.appendSuffix(OutputSuffix);
-    }
-  }
-  else {
-    if (IsJoin())
-      Out = MakeTempFile(TempDir, "tmp", OutputSuffix);
-    else
-      Out = MakeTempFile(TempDir, In.getBasename(), OutputSuffix);
-  }
-  return Out;
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/CMakeLists.txt b/libclamav/c++/llvm/lib/Debugger/CMakeLists.txt
deleted file mode 100644
index d2508cf..0000000
--- a/libclamav/c++/llvm/lib/Debugger/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-add_llvm_library(LLVMDebugger
-  Debugger.cpp
-  ProgramInfo.cpp
-  RuntimeInfo.cpp
-  SourceFile.cpp
-  SourceLanguage-CFamily.cpp
-  SourceLanguage-CPlusPlus.cpp
-  SourceLanguage-Unknown.cpp
-  SourceLanguage.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Debugger/Debugger.cpp b/libclamav/c++/llvm/lib/Debugger/Debugger.cpp
deleted file mode 100644
index 77fd2ac..0000000
--- a/libclamav/c++/llvm/lib/Debugger/Debugger.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-//===-- Debugger.cpp - LLVM debugger library implementation ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the main implementation of the LLVM debugger library.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/Debugger.h"
-#include "llvm/Module.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Debugger/InferiorProcess.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/ADT/StringExtras.h"
-#include <cstdlib>
-#include <memory>
-using namespace llvm;
-
-/// Debugger constructor - Initialize the debugger to its initial, empty, state.
-///
-Debugger::Debugger() : Environment(0), Program(0), Process(0) {
-}
-
-Debugger::~Debugger() {
-  // Killing the program could throw an exception.  We don't want to progagate
-  // the exception out of our destructor though.
-  try {
-    killProgram();
-  } catch (const char *) {
-  } catch (const std::string &) {
-  }
-
-  unloadProgram();
-}
-
-/// getProgramPath - Get the path of the currently loaded program, or an
-/// empty string if none is loaded.
-std::string Debugger::getProgramPath() const {
-  return Program ? Program->getModuleIdentifier() : "";
-}
-
-static Module *
-getMaterializedModuleProvider(const std::string &Filename,
-                              LLVMContext& C) {
-  std::auto_ptr<MemoryBuffer> Buffer;
-  Buffer.reset(MemoryBuffer::getFileOrSTDIN(Filename.c_str()));
-  if (Buffer.get())
-    return ParseBitcodeFile(Buffer.get(), C);
-  return 0;
-}
-
-/// loadProgram - If a program is currently loaded, unload it.  Then search
-/// the PATH for the specified program, loading it when found.  If the
-/// specified program cannot be found, an exception is thrown to indicate the
-/// error.
-void Debugger::loadProgram(const std::string &Filename, LLVMContext& C) {
-  if ((Program = getMaterializedModuleProvider(Filename, C)) ||
-      (Program = getMaterializedModuleProvider(Filename+".bc", C)))
-    return;   // Successfully loaded the program.
-
-  // Search the program path for the file...
-  if (const char *PathS = getenv("PATH")) {
-    std::string Path = PathS;
-
-    std::string Directory = getToken(Path, ":");
-    while (!Directory.empty()) {
-      if ((Program = getMaterializedModuleProvider(Directory +"/"+ Filename, C))
-       || (Program = getMaterializedModuleProvider(Directory +"/"+ Filename
-                                                                   + ".bc", C)))
-        return;   // Successfully loaded the program.
-
-      Directory = getToken(Path, ":");
-    }
-  }
-
-  throw "Could not find program '" + Filename + "'!";
-}
-
-/// unloadProgram - If a program is running, kill it, then unload all traces
-/// of the current program.  If no program is loaded, this method silently
-/// succeeds.
-void Debugger::unloadProgram() {
-  if (!isProgramLoaded()) return;
-  killProgram();
-  delete Program;
-  Program = 0;
-}
-
-
-/// createProgram - Create an instance of the currently loaded program,
-/// killing off any existing one.  This creates the program and stops it at
-/// the first possible moment.  If there is no program loaded or if there is a
-/// problem starting the program, this method throws an exception.
-void Debugger::createProgram() {
-  if (!isProgramLoaded())
-    throw "Cannot start program: none is loaded.";
-
-  // Kill any existing program.
-  killProgram();
-
-  // Add argv[0] to the arguments vector..
-  std::vector<std::string> Args(ProgramArguments);
-  Args.insert(Args.begin(), getProgramPath());
-
-  // Start the new program... this could throw if the program cannot be started.
-  Process = InferiorProcess::create(Program, Args, Environment);
-}
-
-InferiorProcess *
-InferiorProcess::create(Module *M, const std::vector<std::string> &Arguments,
-                        const char * const *envp) {
-  throw"No supported binding to inferior processes (debugger not implemented).";
-}
-
-/// killProgram - If the program is currently executing, kill off the
-/// process and free up any state related to the currently running program.  If
-/// there is no program currently running, this just silently succeeds.
-void Debugger::killProgram() {
-  // The destructor takes care of the dirty work.
-  try {
-    delete Process;
-  } catch (...) {
-    Process = 0;
-    throw;
-  }
-  Process = 0;
-}
-
-/// stepProgram - Implement the 'step' command, continuing execution until
-/// the next possible stop point.
-void Debugger::stepProgram() {
-  assert(isProgramRunning() && "Cannot step if the program isn't running!");
-  try {
-    Process->stepProgram();
-  } catch (InferiorProcessDead &IPD) {
-    killProgram();
-    throw NonErrorException("The program stopped with exit code " +
-                            itostr(IPD.getExitCode()));
-  } catch (...) {
-    killProgram();
-    throw;
-  }
-}
-
-/// nextProgram - Implement the 'next' command, continuing execution until
-/// the next possible stop point that is in the current function.
-void Debugger::nextProgram() {
-  assert(isProgramRunning() && "Cannot next if the program isn't running!");
-  try {
-    // This should step the process.  If the process enters a function, then it
-    // should 'finish' it.  However, figuring this out is tricky.  In
-    // particular, the program can do any of:
-    //  0. Not change current frame.
-    //  1. Entering or exiting a region within the current function
-    //     (which changes the frame ID, but which we shouldn't 'finish')
-    //  2. Exiting the current function (which changes the frame ID)
-    //  3. Entering a function (which should be 'finish'ed)
-    // For this reason, we have to be very careful about when we decide to do
-    // the 'finish'.
-
-    // Get the current frame, but don't trust it.  It could change...
-    void *CurrentFrame = Process->getPreviousFrame(0);
-
-    // Don't trust the current frame: get the caller frame.
-    void *ParentFrame  = Process->getPreviousFrame(CurrentFrame);
-
-    // Ok, we have some information, run the program one step.
-    Process->stepProgram();
-
-    // Where is the new frame?  The most common case, by far is that it has not
-    // been modified (Case #0), in which case we don't need to do anything more.
-    void *NewFrame = Process->getPreviousFrame(0);
-    if (NewFrame != CurrentFrame) {
-      // Ok, the frame changed.  If we are case #1, then the parent frame will
-      // be identical.
-      void *NewParentFrame = Process->getPreviousFrame(NewFrame);
-      if (ParentFrame != NewParentFrame) {
-        // Ok, now we know we aren't case #0 or #1.  Check to see if we entered
-        // a new function.  If so, the parent frame will be "CurrentFrame".
-        if (CurrentFrame == NewParentFrame)
-          Process->finishProgram(NewFrame);
-      }
-    }
-
-  } catch (InferiorProcessDead &IPD) {
-    killProgram();
-    throw NonErrorException("The program stopped with exit code " +
-                            itostr(IPD.getExitCode()));
-  } catch (...) {
-    killProgram();
-    throw;
-  }
-}
-
-/// finishProgram - Implement the 'finish' command, continuing execution
-/// until the specified frame ID returns.
-void Debugger::finishProgram(void *Frame) {
-  assert(isProgramRunning() && "Cannot cont if the program isn't running!");
-  try {
-    Process->finishProgram(Frame);
-  } catch (InferiorProcessDead &IPD) {
-    killProgram();
-    throw NonErrorException("The program stopped with exit code " +
-                            itostr(IPD.getExitCode()));
-  } catch (...) {
-    killProgram();
-    throw;
-  }
-}
-
-/// contProgram - Implement the 'cont' command, continuing execution until
-/// the next breakpoint is encountered.
-void Debugger::contProgram() {
-  assert(isProgramRunning() && "Cannot cont if the program isn't running!");
-  try {
-    Process->contProgram();
-  } catch (InferiorProcessDead &IPD) {
-    killProgram();
-    throw NonErrorException("The program stopped with exit code " +
-                            itostr(IPD.getExitCode()));
-  } catch (...) {
-    killProgram();
-    throw;
-  }
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/Makefile b/libclamav/c++/llvm/lib/Debugger/Makefile
deleted file mode 100644
index 8290e30..0000000
--- a/libclamav/c++/llvm/lib/Debugger/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-##===- lib/Debugger/Makefile -------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-LIBRARYNAME = LLVMDebugger
-EXTRA_DIST = README.txt
-REQUIRES_EH := 1
-BUILD_ARCHIVE = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Debugger/ProgramInfo.cpp b/libclamav/c++/llvm/lib/Debugger/ProgramInfo.cpp
deleted file mode 100644
index 5ba1c70..0000000
--- a/libclamav/c++/llvm/lib/Debugger/ProgramInfo.cpp
+++ /dev/null
@@ -1,376 +0,0 @@
-//===-- ProgramInfo.cpp - Compute and cache info about a program ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the ProgramInfo and related classes, by sorting through
-// the loaded Module.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/ProgramInfo.h"
-#include "llvm/Constants.h"
-#include "llvm/Analysis/ValueTracking.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/IntrinsicInst.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-#include "llvm/Debugger/SourceFile.h"
-#include "llvm/Debugger/SourceLanguage.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/Support/SlowOperationInformer.h"
-#include "llvm/ADT/STLExtras.h"
-using namespace llvm;
-
-/// getGlobalVariablesUsing - Return all of the global variables which have the
-/// specified value in their initializer somewhere.
-static void getGlobalVariablesUsing(Value *V,
-                                    std::vector<GlobalVariable*> &Found) {
-  for (Value::use_iterator I = V->use_begin(), E = V->use_end(); I != E; ++I) {
-    if (GlobalVariable *GV = dyn_cast<GlobalVariable>(*I))
-      Found.push_back(GV);
-    else if (Constant *C = dyn_cast<Constant>(*I))
-      getGlobalVariablesUsing(C, Found);
-  }
-}
-
-/// getNextStopPoint - Follow the def-use chains of the specified LLVM value,
-/// traversing the use chains until we get to a stoppoint.  When we do, return
-/// the source location of the stoppoint.  If we don't find a stoppoint, return
-/// null.
-static const GlobalVariable *getNextStopPoint(const Value *V, unsigned &LineNo,
-                                              unsigned &ColNo) {
-  // The use-def chains can fork.  As such, we pick the lowest numbered one we
-  // find.
-  const GlobalVariable *LastDesc = 0;
-  unsigned LastLineNo = ~0;
-  unsigned LastColNo = ~0;
-
-  for (Value::use_const_iterator UI = V->use_begin(), E = V->use_end();
-       UI != E; ++UI) {
-    bool ShouldRecurse = true;
-    if (cast<Instruction>(*UI)->getOpcode() == Instruction::PHI) {
-      // Infinite loops == bad, ignore PHI nodes.
-      ShouldRecurse = false;
-    } else if (const CallInst *CI = dyn_cast<CallInst>(*UI)) {
-      
-      // If we found a stop point, check to see if it is earlier than what we
-      // already have.  If so, remember it.
-      if (CI->getCalledFunction())
-        if (const DbgStopPointInst *SPI = dyn_cast<DbgStopPointInst>(CI)) {
-          unsigned CurLineNo = SPI->getLine();
-          unsigned CurColNo = SPI->getColumn();
-          const GlobalVariable *CurDesc = 0;
-          const Value *Op = SPI->getContext();
-
-          if ((CurDesc = dyn_cast<GlobalVariable>(Op)) &&
-              (LineNo < LastLineNo ||
-               (LineNo == LastLineNo && ColNo < LastColNo))) {
-            LastDesc = CurDesc;
-            LastLineNo = CurLineNo;
-            LastColNo = CurColNo;
-          }
-          ShouldRecurse = false;
-        }
-    }
-
-    // If this is not a phi node or a stopping point, recursively scan the users
-    // of this instruction to skip over region.begin's and the like.
-    if (ShouldRecurse) {
-      unsigned CurLineNo, CurColNo;
-      if (const GlobalVariable *GV = getNextStopPoint(*UI, CurLineNo,CurColNo)){
-        if (LineNo < LastLineNo || (LineNo == LastLineNo && ColNo < LastColNo)){
-          LastDesc = GV;
-          LastLineNo = CurLineNo;
-          LastColNo = CurColNo;
-        }
-      }
-    }
-  }
-
-  if (LastDesc) {
-    LineNo = LastLineNo != ~0U ? LastLineNo : 0;
-    ColNo  = LastColNo  != ~0U ? LastColNo : 0;
-  }
-  return LastDesc;
-}
-
-
-//===----------------------------------------------------------------------===//
-// SourceFileInfo implementation
-//
-
-SourceFileInfo::SourceFileInfo(const GlobalVariable *Desc,
-                               const SourceLanguage &Lang)
-  : Language(&Lang), Descriptor(Desc) {
-  Version = 0;
-  SourceText = 0;
-
-  if (Desc && Desc->hasInitializer())
-    if (ConstantStruct *CS = dyn_cast<ConstantStruct>(Desc->getInitializer()))
-      if (CS->getNumOperands() > 4) {
-        if (ConstantInt *CUI = dyn_cast<ConstantInt>(CS->getOperand(1)))
-          Version = CUI->getZExtValue();
-
-        if (!GetConstantStringInfo(CS->getOperand(3), BaseName))
-          BaseName = "";
-        if (!GetConstantStringInfo(CS->getOperand(4), Directory))
-          Directory = "";
-      }
-}
-
-SourceFileInfo::~SourceFileInfo() {
-  delete SourceText;
-}
-
-SourceFile &SourceFileInfo::getSourceText() const {
-  // FIXME: this should take into account the source search directories!
-  if (SourceText == 0) { // Read the file in if we haven't already.
-    sys::Path tmpPath;
-    if (!Directory.empty())
-      tmpPath.set(Directory);
-    tmpPath.appendComponent(BaseName);
-    if (tmpPath.canRead())
-      SourceText = new SourceFile(tmpPath.str(), Descriptor);
-    else
-      SourceText = new SourceFile(BaseName, Descriptor);
-  }
-  return *SourceText;
-}
-
-
-//===----------------------------------------------------------------------===//
-// SourceFunctionInfo implementation
-//
-SourceFunctionInfo::SourceFunctionInfo(ProgramInfo &PI,
-                                       const GlobalVariable *Desc)
-  : Descriptor(Desc) {
-  LineNo = ColNo = 0;
-  if (Desc && Desc->hasInitializer())
-    if (ConstantStruct *CS = dyn_cast<ConstantStruct>(Desc->getInitializer()))
-      if (CS->getNumOperands() > 2) {
-        // Entry #1 is the file descriptor.
-        if (const GlobalVariable *GV =
-            dyn_cast<GlobalVariable>(CS->getOperand(1)))
-          SourceFile = &PI.getSourceFile(GV);
-
-        // Entry #2 is the function name.
-        if (!GetConstantStringInfo(CS->getOperand(2), Name))
-          Name = "";
-      }
-}
-
-/// getSourceLocation - This method returns the location of the first stopping
-/// point in the function.
-void SourceFunctionInfo::getSourceLocation(unsigned &RetLineNo,
-                                           unsigned &RetColNo) const {
-  // If we haven't computed this yet...
-  if (!LineNo) {
-    // Look at all of the users of the function descriptor, looking for calls to
-    // %llvm.dbg.func.start.
-    for (Value::use_const_iterator UI = Descriptor->use_begin(),
-           E = Descriptor->use_end(); UI != E; ++UI)
-      if (const CallInst *CI = dyn_cast<CallInst>(*UI))
-        if (const Function *F = CI->getCalledFunction())
-          if (F->getIntrinsicID() == Intrinsic::dbg_func_start) {
-            // We found the start of the function.  Check to see if there are
-            // any stop points on the use-list of the function start.
-            const GlobalVariable *SD = getNextStopPoint(CI, LineNo, ColNo);
-            if (SD) {             // We found the first stop point!
-              // This is just a sanity check.
-              if (getSourceFile().getDescriptor() != SD)
-                outs() << "WARNING: first line of function is not in the"
-                     << " file that the function descriptor claims it is in.\n";
-              break;
-            }
-          }
-  }
-  RetLineNo = LineNo; RetColNo = ColNo;
-}
-
-//===----------------------------------------------------------------------===//
-// ProgramInfo implementation
-//
-
-ProgramInfo::ProgramInfo(Module *m) : M(m), ProgramTimeStamp(0,0) {
-  assert(M && "Cannot create program information with a null module!");
-  sys::PathWithStatus ModPath(M->getModuleIdentifier());
-  const sys::FileStatus *Stat = ModPath.getFileStatus();
-  if (Stat)
-    ProgramTimeStamp = Stat->getTimestamp();
-
-  SourceFilesIsComplete = false;
-  SourceFunctionsIsComplete = false;
-}
-
-ProgramInfo::~ProgramInfo() {
-  // Delete cached information about source program objects...
-  for (std::map<const GlobalVariable*, SourceFileInfo*>::iterator
-         I = SourceFiles.begin(), E = SourceFiles.end(); I != E; ++I)
-    delete I->second;
-  for (std::map<const GlobalVariable*, SourceFunctionInfo*>::iterator
-         I = SourceFunctions.begin(), E = SourceFunctions.end(); I != E; ++I)
-    delete I->second;
-
-  // Delete the source language caches.
-  for (unsigned i = 0, e = LanguageCaches.size(); i != e; ++i)
-    delete LanguageCaches[i].second;
-}
-
-
-//===----------------------------------------------------------------------===//
-// SourceFileInfo tracking...
-//
-
-/// getSourceFile - Return source file information for the specified source file
-/// descriptor object, adding it to the collection as needed.  This method
-/// always succeeds (is unambiguous), and is always efficient.
-///
-const SourceFileInfo &
-ProgramInfo::getSourceFile(const GlobalVariable *Desc) {
-  SourceFileInfo *&Result = SourceFiles[Desc];
-  if (Result) return *Result;
-
-  // Figure out what language this source file comes from...
-  unsigned LangID = 0;   // Zero is unknown language
-  if (Desc && Desc->hasInitializer())
-    if (ConstantStruct *CS = dyn_cast<ConstantStruct>(Desc->getInitializer()))
-      if (CS->getNumOperands() > 2)
-        if (ConstantInt *CUI = dyn_cast<ConstantInt>(CS->getOperand(2)))
-          LangID = CUI->getZExtValue();
-
-  const SourceLanguage &Lang = SourceLanguage::get(LangID);
-  SourceFileInfo *New = Lang.createSourceFileInfo(Desc, *this);
-
-  // FIXME: this should check to see if there is already a Filename/WorkingDir
-  // pair that matches this one.  If so, we shouldn't create the duplicate!
-  //
-  SourceFileIndex.insert(std::make_pair(New->getBaseName(), New));
-  return *(Result = New);
-}
-
-
-/// getSourceFiles - Index all of the source files in the program and return
-/// a mapping of it.  This information is lazily computed the first time
-/// that it is requested.  Since this information can take a long time to
-/// compute, the user is given a chance to cancel it.  If this occurs, an
-/// exception is thrown.
-const std::map<const GlobalVariable*, SourceFileInfo*> &
-ProgramInfo::getSourceFiles(bool RequiresCompleteMap) {
-  // If we have a fully populated map, or if the client doesn't need one, just
-  // return what we have.
-  if (SourceFilesIsComplete || !RequiresCompleteMap)
-    return SourceFiles;
-
-  // Ok, all of the source file descriptors (compile_unit in dwarf terms),
-  // should be on the use list of the llvm.dbg.translation_units global.
-  //
-  GlobalVariable *Units =
-    M->getGlobalVariable("llvm.dbg.translation_units", 
-                         StructType::get(M->getContext()));
-  if (Units == 0)
-    throw "Program contains no debugging information!";
-
-  std::vector<GlobalVariable*> TranslationUnits;
-  getGlobalVariablesUsing(Units, TranslationUnits);
-
-  SlowOperationInformer SOI("building source files index");
-
-  // Loop over all of the translation units found, building the SourceFiles
-  // mapping.
-  for (unsigned i = 0, e = TranslationUnits.size(); i != e; ++i) {
-    getSourceFile(TranslationUnits[i]);
-    if (SOI.progress(i+1, e))
-      throw "While building source files index, operation cancelled.";
-  }
-
-  // Ok, if we got this far, then we indexed the whole program.
-  SourceFilesIsComplete = true;
-  return SourceFiles;
-}
-
-/// getSourceFile - Look up the file with the specified name.  If there is
-/// more than one match for the specified filename, prompt the user to pick
-/// one.  If there is no source file that matches the specified name, throw
-/// an exception indicating that we can't find the file.  Otherwise, return
-/// the file information for that file.
-const SourceFileInfo &ProgramInfo::getSourceFile(const std::string &Filename) {
-  std::multimap<std::string, SourceFileInfo*>::const_iterator Start, End;
-  getSourceFiles();
-  tie(Start, End) = SourceFileIndex.equal_range(Filename);
-
-  if (Start == End) throw "Could not find source file '" + Filename + "'!";
-  const SourceFileInfo &SFI = *Start->second;
-  ++Start;
-  if (Start == End) return SFI;
-
-  throw "FIXME: Multiple source files with the same name not implemented!";
-}
-
-
-//===----------------------------------------------------------------------===//
-// SourceFunctionInfo tracking...
-//
-
-
-/// getFunction - Return function information for the specified function
-/// descriptor object, adding it to the collection as needed.  This method
-/// always succeeds (is unambiguous), and is always efficient.
-///
-const SourceFunctionInfo &
-ProgramInfo::getFunction(const GlobalVariable *Desc) {
-  SourceFunctionInfo *&Result = SourceFunctions[Desc];
-  if (Result) return *Result;
-
-  // Figure out what language this function comes from...
-  const GlobalVariable *SourceFileDesc = 0;
-  if (Desc && Desc->hasInitializer())
-    if (ConstantStruct *CS = dyn_cast<ConstantStruct>(Desc->getInitializer()))
-      if (CS->getNumOperands() > 0)
-        if (const GlobalVariable *GV =
-            dyn_cast<GlobalVariable>(CS->getOperand(1)))
-          SourceFileDesc = GV;
-
-  const SourceLanguage &Lang = getSourceFile(SourceFileDesc).getLanguage();
-  return *(Result = Lang.createSourceFunctionInfo(Desc, *this));
-}
-
-
-// getSourceFunctions - Index all of the functions in the program and return
-// them.  This information is lazily computed the first time that it is
-// requested.  Since this information can take a long time to compute, the user
-// is given a chance to cancel it.  If this occurs, an exception is thrown.
-const std::map<const GlobalVariable*, SourceFunctionInfo*> &
-ProgramInfo::getSourceFunctions(bool RequiresCompleteMap) {
-  if (SourceFunctionsIsComplete || !RequiresCompleteMap)
-    return SourceFunctions;
-
-  // Ok, all of the source function descriptors (subprogram in dwarf terms),
-  // should be on the use list of the llvm.dbg.translation_units global.
-  //
-  GlobalVariable *Units =
-    M->getGlobalVariable("llvm.dbg.globals", StructType::get(M->getContext()));
-  if (Units == 0)
-    throw "Program contains no debugging information!";
-
-  std::vector<GlobalVariable*> Functions;
-  getGlobalVariablesUsing(Units, Functions);
-
-  SlowOperationInformer SOI("building functions index");
-
-  // Loop over all of the functions found, building the SourceFunctions mapping.
-  for (unsigned i = 0, e = Functions.size(); i != e; ++i) {
-    getFunction(Functions[i]);
-    if (SOI.progress(i+1, e))
-      throw "While functions index, operation cancelled.";
-  }
-
-  // Ok, if we got this far, then we indexed the whole program.
-  SourceFunctionsIsComplete = true;
-  return SourceFunctions;
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/README.txt b/libclamav/c++/llvm/lib/Debugger/README.txt
deleted file mode 100644
index 89935c5..0000000
--- a/libclamav/c++/llvm/lib/Debugger/README.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-//===-- llvm/lib/Debugger/ - LLVM Debugger interfaces ---------------------===//
-
-This directory contains the implementation of the LLVM debugger backend.  This
-directory builds into a library which can be used by various debugger 
-front-ends to debug LLVM programs.  The current command line LLVM debugger, 
-llvm-db is currently the only client of this library, but others could be 
-built, to provide a GUI front-end for example.
diff --git a/libclamav/c++/llvm/lib/Debugger/RuntimeInfo.cpp b/libclamav/c++/llvm/lib/Debugger/RuntimeInfo.cpp
deleted file mode 100644
index 2f0ff72..0000000
--- a/libclamav/c++/llvm/lib/Debugger/RuntimeInfo.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//===-- RuntimeInfo.cpp - Compute and cache info about running program ----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the RuntimeInfo and related classes, by querying and
-// cachine information from the running inferior process.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/InferiorProcess.h"
-#include "llvm/Debugger/ProgramInfo.h"
-#include "llvm/Debugger/RuntimeInfo.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// StackFrame class implementation
-
-StackFrame::StackFrame(RuntimeInfo &ri, void *ParentFrameID)
-  : RI(ri), SourceInfo(0) {
-  FrameID = RI.getInferiorProcess().getPreviousFrame(ParentFrameID);
-  if (FrameID == 0) throw "Stack frame does not exist!";
-
-  // Compute lazily as needed.
-  FunctionDesc = 0;
-}
-
-const GlobalVariable *StackFrame::getFunctionDesc() {
-  if (FunctionDesc == 0)
-    FunctionDesc = RI.getInferiorProcess().getSubprogramDesc(FrameID);
-  return FunctionDesc;
-}
-
-/// getSourceLocation - Return the source location that this stack frame is
-/// sitting at.
-void StackFrame::getSourceLocation(unsigned &lineNo, unsigned &colNo,
-                                   const SourceFileInfo *&sourceInfo) {
-  if (SourceInfo == 0) {
-    const GlobalVariable *SourceDesc = 0;
-    RI.getInferiorProcess().getFrameLocation(FrameID, LineNo,ColNo, SourceDesc);
-    SourceInfo = &RI.getProgramInfo().getSourceFile(SourceDesc);
-  }
-
-  lineNo = LineNo;
-  colNo = ColNo;
-  sourceInfo = SourceInfo;
-}
-
-//===----------------------------------------------------------------------===//
-// RuntimeInfo class implementation
-
-/// materializeFrame - Create and process all frames up to and including the
-/// specified frame number.  This throws an exception if the specified frame
-/// ID is nonexistant.
-void RuntimeInfo::materializeFrame(unsigned ID) {
-  assert(ID >= CallStack.size() && "no need to materialize this frame!");
-  void *CurFrame = 0;
-  if (!CallStack.empty())
-    CurFrame = CallStack.back().getFrameID();
-
-  while (CallStack.size() <= ID) {
-    CallStack.push_back(StackFrame(*this, CurFrame));
-    CurFrame = CallStack.back().getFrameID();
-  }
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/SourceFile.cpp b/libclamav/c++/llvm/lib/Debugger/SourceFile.cpp
deleted file mode 100644
index 03c60f8..0000000
--- a/libclamav/c++/llvm/lib/Debugger/SourceFile.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//===-- SourceFile.cpp - SourceFile implementation for the debugger -------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SourceFile class for the LLVM debugger.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/SourceFile.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include <cassert>
-using namespace llvm;
-
-static const char EmptyFile = 0;
-
-SourceFile::SourceFile(const std::string &fn, const GlobalVariable *Desc)
-  : Filename(fn), Descriptor(Desc) {
-  File.reset(MemoryBuffer::getFileOrSTDIN(fn));
-    
-  // On error, return an empty buffer.
-  if (File == 0)
-    File.reset(MemoryBuffer::getMemBuffer(&EmptyFile, &EmptyFile));
-}
-
-SourceFile::~SourceFile() {
-}
-
-
-/// calculateLineOffsets - Compute the LineOffset vector for the current file.
-///
-void SourceFile::calculateLineOffsets() const {
-  assert(LineOffset.empty() && "Line offsets already computed!");
-  const char *BufPtr = File->getBufferStart();
-  const char *FileStart = BufPtr;
-  const char *FileEnd = File->getBufferEnd();
-  do {
-    LineOffset.push_back(BufPtr-FileStart);
-
-    // Scan until we get to a newline.
-    while (BufPtr != FileEnd && *BufPtr != '\n' && *BufPtr != '\r')
-      ++BufPtr;
-
-    if (BufPtr != FileEnd) {
-      ++BufPtr;               // Skip over the \n or \r
-      if (BufPtr[-1] == '\r' && BufPtr != FileEnd && BufPtr[0] == '\n')
-        ++BufPtr;   // Skip over dos/windows style \r\n's
-    }
-  } while (BufPtr != FileEnd);
-}
-
-
-/// getSourceLine - Given a line number, return the start and end of the line
-/// in the file.  If the line number is invalid, or if the file could not be
-/// loaded, null pointers are returned for the start and end of the file. Note
-/// that line numbers start with 0, not 1.
-void SourceFile::getSourceLine(unsigned LineNo, const char *&LineStart,
-                               const char *&LineEnd) const {
-  LineStart = LineEnd = 0;
-  if (LineOffset.empty()) calculateLineOffsets();
-
-  // Asking for an out-of-range line number?
-  if (LineNo >= LineOffset.size()) return;
-
-  // Otherwise, they are asking for a valid line, which we can fulfill.
-  LineStart = File->getBufferStart()+LineOffset[LineNo];
-
-  if (LineNo+1 < LineOffset.size())
-    LineEnd = File->getBufferStart()+LineOffset[LineNo+1];
-  else
-    LineEnd = File->getBufferEnd();
-
-  // If the line ended with a newline, strip it off.
-  while (LineEnd != LineStart && (LineEnd[-1] == '\n' || LineEnd[-1] == '\r'))
-    --LineEnd;
-
-  assert(LineEnd >= LineStart && "We somehow got our pointers swizzled!");
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/SourceLanguage-CFamily.cpp b/libclamav/c++/llvm/lib/Debugger/SourceLanguage-CFamily.cpp
deleted file mode 100644
index f329db4..0000000
--- a/libclamav/c++/llvm/lib/Debugger/SourceLanguage-CFamily.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===-- SourceLanguage-CFamily.cpp - C family SourceLanguage impl ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SourceLanguage class for the C family of languages
-// (K&R C, C89, C99, etc).
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/SourceLanguage.h"
-using namespace llvm;
-
-#if 0
-namespace {
-  struct CSL : public SourceLanguage {
-  } TheCSourceLanguageInstance;
-}
-#endif
-
-const SourceLanguage &SourceLanguage::getCFamilyInstance() {
-  return get(0);  // We don't have an implementation for C yet fall back on
-                  // generic
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/SourceLanguage-CPlusPlus.cpp b/libclamav/c++/llvm/lib/Debugger/SourceLanguage-CPlusPlus.cpp
deleted file mode 100644
index ce94ff4..0000000
--- a/libclamav/c++/llvm/lib/Debugger/SourceLanguage-CPlusPlus.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- SourceLanguage-CPlusPlus.cpp - C++ SourceLanguage impl ------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SourceLanguage class for the C++ language.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/SourceLanguage.h"
-using namespace llvm;
-
-#if 0
-namespace {
-  struct CPPSL : public SourceLanguage {
-  } TheCPlusPlusLanguageInstance;
-}
-#endif
-
-const SourceLanguage &SourceLanguage::getCPlusPlusInstance() {
-  return get(0);  // We don't have an implementation for C yet fall back on
-                  // generic
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/SourceLanguage-Unknown.cpp b/libclamav/c++/llvm/lib/Debugger/SourceLanguage-Unknown.cpp
deleted file mode 100644
index d408866..0000000
--- a/libclamav/c++/llvm/lib/Debugger/SourceLanguage-Unknown.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//===-- SourceLanguage-Unknown.cpp - Implement itf for unknown languages --===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// If the LLVM debugger does not have a module for a particular language, it
-// falls back on using this one to perform the source-language interface.  This
-// interface is not wonderful, but it gets the job done.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/SourceLanguage.h"
-#include "llvm/Debugger/ProgramInfo.h"
-#include "llvm/Support/raw_ostream.h"
-#include <cassert>
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// Implement the SourceLanguage cache for the Unknown language.
-//
-
-namespace {
-  /// SLUCache - This cache allows for efficient lookup of source functions by
-  /// name.
-  ///
-  struct SLUCache : public SourceLanguageCache {
-    ProgramInfo &PI;
-    std::multimap<std::string, SourceFunctionInfo*> FunctionMap;
-  public:
-    SLUCache(ProgramInfo &pi);
-
-    typedef std::multimap<std::string, SourceFunctionInfo*>::const_iterator
-       fm_iterator;
-
-    std::pair<fm_iterator, fm_iterator>
-    getFunction(const std::string &Name) const {
-      return FunctionMap.equal_range(Name);
-    }
-
-    SourceFunctionInfo *addSourceFunction(SourceFunctionInfo *SF) {
-      FunctionMap.insert(std::make_pair(SF->getSymbolicName(), SF));
-      return SF;
-    }
-  };
-}
-
-SLUCache::SLUCache(ProgramInfo &pi) : PI(pi) {
-}
-
-
-//===----------------------------------------------------------------------===//
-// Implement SourceLanguageUnknown class, which is used to handle unrecognized
-// languages.
-//
-
-namespace {
-  static struct SLU : public SourceLanguage {
-    //===------------------------------------------------------------------===//
-    // Implement the miscellaneous methods...
-    //
-    virtual const char *getSourceLanguageName() const {
-      return "unknown";
-    }
-
-    /// lookupFunction - Given a textual function name, return the
-    /// SourceFunctionInfo descriptor for that function, or null if it cannot be
-    /// found.  If the program is currently running, the RuntimeInfo object
-    /// provides information about the current evaluation context, otherwise it
-    /// will be null.
-    ///
-    virtual SourceFunctionInfo *lookupFunction(const std::string &FunctionName,
-                                               ProgramInfo &PI,
-                                               RuntimeInfo *RI = 0) const;
-
-    //===------------------------------------------------------------------===//
-    // We do use a cache for information...
-    //
-    typedef SLUCache CacheType;
-    SLUCache *createSourceLanguageCache(ProgramInfo &PI) const {
-      return new SLUCache(PI);
-    }
-
-    /// createSourceFunctionInfo - Create the new object and inform the cache of
-    /// the new function.
-    virtual SourceFunctionInfo *
-    createSourceFunctionInfo(const GlobalVariable *Desc, ProgramInfo &PI) const;
-
-  } TheUnknownSourceLanguageInstance;
-}
-
-const SourceLanguage &SourceLanguage::getUnknownLanguageInstance() {
-  return TheUnknownSourceLanguageInstance;
-}
-
-
-SourceFunctionInfo *
-SLU::createSourceFunctionInfo(const GlobalVariable *Desc,
-                              ProgramInfo &PI) const {
-  SourceFunctionInfo *Result = new SourceFunctionInfo(PI, Desc);
-  return PI.getLanguageCache(this).addSourceFunction(Result);
-}
-
-
-/// lookupFunction - Given a textual function name, return the
-/// SourceFunctionInfo descriptor for that function, or null if it cannot be
-/// found.  If the program is currently running, the RuntimeInfo object
-/// provides information about the current evaluation context, otherwise it will
-/// be null.
-///
-SourceFunctionInfo *SLU::lookupFunction(const std::string &FunctionName,
-                                        ProgramInfo &PI, RuntimeInfo *RI) const{
-  SLUCache &Cache = PI.getLanguageCache(this);
-  std::pair<SLUCache::fm_iterator, SLUCache::fm_iterator> IP
-    = Cache.getFunction(FunctionName);
-
-  if (IP.first == IP.second) {
-    if (PI.allSourceFunctionsRead())
-      return 0;  // Nothing found
-
-    // Otherwise, we might be able to find the function if we read all of them
-    // in.  Do so now.
-    PI.getSourceFunctions();
-    assert(PI.allSourceFunctionsRead() && "Didn't read in all functions?");
-    return lookupFunction(FunctionName, PI, RI);
-  }
-
-  SourceFunctionInfo *Found = IP.first->second;
-  ++IP.first;
-  if (IP.first != IP.second)
-    outs() << "Whoa, found multiple functions with the same name.  I should"
-         << " ask the user which one to use: FIXME!\n";
-  return Found;
-}
diff --git a/libclamav/c++/llvm/lib/Debugger/SourceLanguage.cpp b/libclamav/c++/llvm/lib/Debugger/SourceLanguage.cpp
deleted file mode 100644
index 4fcc38b..0000000
--- a/libclamav/c++/llvm/lib/Debugger/SourceLanguage.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//===-- SourceLanguage.cpp - Implement the SourceLanguage class -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SourceLanguage class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Debugger/SourceLanguage.h"
-#include "llvm/Debugger/ProgramInfo.h"
-using namespace llvm;
-
-const SourceLanguage &SourceLanguage::get(unsigned ID) {
-  switch (ID) {
-  case 1:  // DW_LANG_C89
-  case 2:  // DW_LANG_C
-  case 12: // DW_LANG_C99
-    return getCFamilyInstance();
-
-  case 4:  // DW_LANG_C_plus_plus
-    return getCPlusPlusInstance();
-
-  case 3:  // DW_LANG_Ada83
-  case 5:  // DW_LANG_Cobol74
-  case 6:  // DW_LANG_Cobol85
-  case 7:  // DW_LANG_Fortran77
-  case 8:  // DW_LANG_Fortran90
-  case 9:  // DW_LANG_Pascal83
-  case 10: // DW_LANG_Modula2
-  case 11: // DW_LANG_Java
-  case 13: // DW_LANG_Ada95
-  case 14: // DW_LANG_Fortran95
-  default:
-    return getUnknownLanguageInstance();
-  }
-}
-
-
-SourceFileInfo *
-SourceLanguage::createSourceFileInfo(const GlobalVariable *Desc,
-                                     ProgramInfo &PI) const {
-  return new SourceFileInfo(Desc, *this);
-}
-
-SourceFunctionInfo *
-SourceLanguage::createSourceFunctionInfo(const GlobalVariable *Desc,
-                                         ProgramInfo &PI) const {
-  return new SourceFunctionInfo(PI, Desc);
-}
diff --git a/libclamav/c++/llvm/lib/Linker/CMakeLists.txt b/libclamav/c++/llvm/lib/Linker/CMakeLists.txt
deleted file mode 100644
index 0b6d2f4..0000000
--- a/libclamav/c++/llvm/lib/Linker/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-add_llvm_library(LLVMLinker
-  LinkArchives.cpp
-  LinkItems.cpp
-  LinkModules.cpp
-  Linker.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Linker/LinkArchives.cpp b/libclamav/c++/llvm/lib/Linker/LinkArchives.cpp
deleted file mode 100644
index 76d81c2..0000000
--- a/libclamav/c++/llvm/lib/Linker/LinkArchives.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-//===- lib/Linker/LinkArchives.cpp - Link LLVM objects and libraries ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains routines to handle linking together LLVM bitcode files,
-// and to handle annoying things like static libraries.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Linker.h"
-#include "llvm/Module.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/ADT/SetOperations.h"
-#include "llvm/Bitcode/Archive.h"
-#include "llvm/Config/config.h"
-#include <memory>
-#include <set>
-using namespace llvm;
-
-/// GetAllUndefinedSymbols - calculates the set of undefined symbols that still
-/// exist in an LLVM module. This is a bit tricky because there may be two
-/// symbols with the same name but different LLVM types that will be resolved to
-/// each other but aren't currently (thus we need to treat it as resolved).
-///
-/// Inputs:
-///  M - The module in which to find undefined symbols.
-///
-/// Outputs:
-///  UndefinedSymbols - A set of C++ strings containing the name of all
-///                     undefined symbols.
-///
-static void
-GetAllUndefinedSymbols(Module *M, std::set<std::string> &UndefinedSymbols) {
-  std::set<std::string> DefinedSymbols;
-  UndefinedSymbols.clear();
-
-  // If the program doesn't define a main, try pulling one in from a .a file.
-  // This is needed for programs where the main function is defined in an
-  // archive, such f2c'd programs.
-  Function *Main = M->getFunction("main");
-  if (Main == 0 || Main->isDeclaration())
-    UndefinedSymbols.insert("main");
-
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
-    if (I->hasName()) {
-      if (I->isDeclaration())
-        UndefinedSymbols.insert(I->getName());
-      else if (!I->hasLocalLinkage()) {
-        assert(!I->hasDLLImportLinkage()
-               && "Found dllimported non-external symbol!");
-        DefinedSymbols.insert(I->getName());
-      }      
-    }
-
-  for (Module::global_iterator I = M->global_begin(), E = M->global_end();
-       I != E; ++I)
-    if (I->hasName()) {
-      if (I->isDeclaration())
-        UndefinedSymbols.insert(I->getName());
-      else if (!I->hasLocalLinkage()) {
-        assert(!I->hasDLLImportLinkage()
-               && "Found dllimported non-external symbol!");
-        DefinedSymbols.insert(I->getName());
-      }      
-    }
-
-  for (Module::alias_iterator I = M->alias_begin(), E = M->alias_end();
-       I != E; ++I)
-    if (I->hasName())
-      DefinedSymbols.insert(I->getName());
-
-  // Prune out any defined symbols from the undefined symbols set...
-  for (std::set<std::string>::iterator I = UndefinedSymbols.begin();
-       I != UndefinedSymbols.end(); )
-    if (DefinedSymbols.count(*I))
-      UndefinedSymbols.erase(I++);  // This symbol really is defined!
-    else
-      ++I; // Keep this symbol in the undefined symbols list
-}
-
-/// LinkInArchive - opens an archive library and link in all objects which
-/// provide symbols that are currently undefined.
-///
-/// Inputs:
-///  Filename - The pathname of the archive.
-///
-/// Return Value:
-///  TRUE  - An error occurred.
-///  FALSE - No errors.
-bool
-Linker::LinkInArchive(const sys::Path &Filename, bool &is_native) {
-  // Make sure this is an archive file we're dealing with
-  if (!Filename.isArchive())
-    return error("File '" + Filename.str() + "' is not an archive.");
-
-  // Open the archive file
-  verbose("Linking archive file '" + Filename.str() + "'");
-
-  // Find all of the symbols currently undefined in the bitcode program.
-  // If all the symbols are defined, the program is complete, and there is
-  // no reason to link in any archive files.
-  std::set<std::string> UndefinedSymbols;
-  GetAllUndefinedSymbols(Composite, UndefinedSymbols);
-
-  if (UndefinedSymbols.empty()) {
-    verbose("No symbols undefined, skipping library '" + Filename.str() + "'");
-    return false;  // No need to link anything in!
-  }
-
-  std::string ErrMsg;
-  std::auto_ptr<Archive> AutoArch (
-    Archive::OpenAndLoadSymbols(Filename, Context, &ErrMsg));
-
-  Archive* arch = AutoArch.get();
-
-  if (!arch)
-    return error("Cannot read archive '" + Filename.str() +
-                 "': " + ErrMsg);
-  if (!arch->isBitcodeArchive()) {
-    is_native = true;
-    return false;
-  }
-  is_native = false;
-
-  // Save a set of symbols that are not defined by the archive. Since we're
-  // entering a loop, there's no point searching for these multiple times. This
-  // variable is used to "set_subtract" from the set of undefined symbols.
-  std::set<std::string> NotDefinedByArchive;
-
-  // Save the current set of undefined symbols, because we may have to make
-  // multiple passes over the archive:
-  std::set<std::string> CurrentlyUndefinedSymbols;
-
-  do {
-    CurrentlyUndefinedSymbols = UndefinedSymbols;
-
-    // Find the modules we need to link into the target module
-    std::set<ModuleProvider*> Modules;
-    if (!arch->findModulesDefiningSymbols(UndefinedSymbols, Modules, &ErrMsg))
-      return error("Cannot find symbols in '" + Filename.str() + 
-                   "': " + ErrMsg);
-
-    // If we didn't find any more modules to link this time, we are done
-    // searching this archive.
-    if (Modules.empty())
-      break;
-
-    // Any symbols remaining in UndefinedSymbols after
-    // findModulesDefiningSymbols are ones that the archive does not define. So
-    // we add them to the NotDefinedByArchive variable now.
-    NotDefinedByArchive.insert(UndefinedSymbols.begin(),
-        UndefinedSymbols.end());
-
-    // Loop over all the ModuleProviders that we got back from the archive
-    for (std::set<ModuleProvider*>::iterator I=Modules.begin(), E=Modules.end();
-         I != E; ++I) {
-
-      // Get the module we must link in.
-      std::string moduleErrorMsg;
-      std::auto_ptr<Module> AutoModule((*I)->releaseModule( &moduleErrorMsg ));
-      if (!moduleErrorMsg.empty())
-        return error("Could not load a module: " + moduleErrorMsg);
-
-      Module* aModule = AutoModule.get();
-
-      if (aModule != NULL) {
-        verbose("  Linking in module: " + aModule->getModuleIdentifier());
-
-        // Link it in
-        if (LinkInModule(aModule, &moduleErrorMsg)) {
-          return error("Cannot link in module '" +
-                       aModule->getModuleIdentifier() + "': " + moduleErrorMsg);
-        }
-      } 
-    }
-    
-    // Get the undefined symbols from the aggregate module. This recomputes the
-    // symbols we still need after the new modules have been linked in.
-    GetAllUndefinedSymbols(Composite, UndefinedSymbols);
-
-    // At this point we have two sets of undefined symbols: UndefinedSymbols
-    // which holds the undefined symbols from all the modules, and
-    // NotDefinedByArchive which holds symbols we know the archive doesn't
-    // define. There's no point searching for symbols that we won't find in the
-    // archive so we subtract these sets.
-    set_subtract(UndefinedSymbols, NotDefinedByArchive);
-
-    // If there's no symbols left, no point in continuing to search the
-    // archive.
-    if (UndefinedSymbols.empty())
-      break;
-  } while (CurrentlyUndefinedSymbols != UndefinedSymbols);
-
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Linker/LinkItems.cpp b/libclamav/c++/llvm/lib/Linker/LinkItems.cpp
deleted file mode 100644
index 61f3c26..0000000
--- a/libclamav/c++/llvm/lib/Linker/LinkItems.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-//===- lib/Linker/LinkItems.cpp - Link LLVM objects and libraries ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains routines to handle linking together LLVM bitcode files,
-// and to handle annoying things like static libraries.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Linker.h"
-#include "llvm/Module.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/System/Path.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/MemoryBuffer.h"
-using namespace llvm;
-
-// LinkItems - This function is the main entry point into linking. It takes a
-// list of LinkItem which indicates the order the files should be linked and
-// how each file should be treated (plain file or with library search). The
-// function only links bitcode and produces a result list of items that are
-// native objects. 
-bool
-Linker::LinkInItems(const ItemList& Items, ItemList& NativeItems) {
-  // Clear the NativeItems just in case
-  NativeItems.clear();
-
-  // For each linkage item ...
-  for (ItemList::const_iterator I = Items.begin(), E = Items.end();
-       I != E; ++I) {
-    if (I->second) {
-      // Link in the library suggested.
-      bool is_native = false;
-      if (LinkInLibrary(I->first, is_native))
-        return true;
-      if (is_native)
-        NativeItems.push_back(*I);
-    } else {
-      // Link in the file suggested
-      bool is_native = false;
-      if (LinkInFile(sys::Path(I->first), is_native))
-        return true;
-      if (is_native)
-        NativeItems.push_back(*I);
-    }
-  }
-
-  // At this point we have processed all the link items provided to us. Since
-  // we have an aggregated module at this point, the dependent libraries in
-  // that module should also be aggregated with duplicates eliminated. This is
-  // now the time to process the dependent libraries to resolve any remaining
-  // symbols.
-  bool is_native;
-  for (Module::lib_iterator I = Composite->lib_begin(),
-         E = Composite->lib_end(); I != E; ++I) {
-    if(LinkInLibrary(*I, is_native))
-      return true;
-    if (is_native)
-      NativeItems.push_back(std::make_pair(*I, true));
-  }
-
-  return false;
-}
-
-
-/// LinkInLibrary - links one library into the HeadModule.
-///
-bool Linker::LinkInLibrary(const StringRef &Lib, bool& is_native) {
-  is_native = false;
-  // Determine where this library lives.
-  sys::Path Pathname = FindLib(Lib);
-  if (Pathname.isEmpty())
-    return error("Cannot find library '" + Lib.str() + "'");
-
-  // If its an archive, try to link it in
-  std::string Magic;
-  Pathname.getMagicNumber(Magic, 64);
-  switch (sys::IdentifyFileType(Magic.c_str(), 64)) {
-    default: llvm_unreachable("Bad file type identification");
-    case sys::Unknown_FileType:
-      return warning("Supposed library '" + Lib.str() + "' isn't a library.");
-
-    case sys::Bitcode_FileType:
-      // LLVM ".so" file.
-      if (LinkInFile(Pathname, is_native))
-        return true;
-      break;
-
-    case sys::Archive_FileType:
-      if (LinkInArchive(Pathname, is_native))
-        return error("Cannot link archive '" + Pathname.str() + "'");
-      break;
-
-    case sys::ELF_Relocatable_FileType:
-    case sys::ELF_SharedObject_FileType:
-    case sys::Mach_O_Object_FileType:
-    case sys::Mach_O_FixedVirtualMemorySharedLib_FileType:
-    case sys::Mach_O_DynamicallyLinkedSharedLib_FileType:
-    case sys::Mach_O_DynamicallyLinkedSharedLibStub_FileType:
-    case sys::COFF_FileType:
-      is_native = true;
-      break;
-  }
-  return false;
-}
-
-/// LinkLibraries - takes the specified library files and links them into the
-/// main bitcode object file.
-///
-/// Inputs:
-///  Libraries  - The list of libraries to link into the module.
-///
-/// Return value:
-///  FALSE - No error.
-///  TRUE  - Error.
-///
-bool Linker::LinkInLibraries(const std::vector<std::string> &Libraries) {
-
-  // Process the set of libraries we've been provided.
-  bool is_native = false;
-  for (unsigned i = 0; i < Libraries.size(); ++i)
-    if (LinkInLibrary(Libraries[i], is_native))
-      return true;
-
-  // At this point we have processed all the libraries provided to us. Since
-  // we have an aggregated module at this point, the dependent libraries in
-  // that module should also be aggregated with duplicates eliminated. This is
-  // now the time to process the dependent libraries to resolve any remaining
-  // symbols.
-  const Module::LibraryListType& DepLibs = Composite->getLibraries();
-  for (Module::LibraryListType::const_iterator I = DepLibs.begin(),
-         E = DepLibs.end(); I != E; ++I)
-    if (LinkInLibrary(*I, is_native))
-      return true;
-
-  return false;
-}
-
-/// LinkInFile - opens a bitcode file and links in all objects which
-/// provide symbols that are currently undefined.
-///
-/// Inputs:
-///  File - The pathname of the bitcode file.
-///
-/// Outputs:
-///  ErrorMessage - A C++ string detailing what error occurred, if any.
-///
-/// Return Value:
-///  TRUE  - An error occurred.
-///  FALSE - No errors.
-///
-bool Linker::LinkInFile(const sys::Path &File, bool &is_native) {
-  is_native = false;
-  
-  // Check for a file of name "-", which means "read standard input"
-  if (File.str() == "-") {
-    std::auto_ptr<Module> M;
-    if (MemoryBuffer *Buffer = MemoryBuffer::getSTDIN()) {
-      M.reset(ParseBitcodeFile(Buffer, Context, &Error));
-      delete Buffer;
-      if (M.get())
-        if (!LinkInModule(M.get(), &Error))
-          return false;
-    } else 
-      Error = "standard input is empty";
-    return error("Cannot link stdin: " + Error);
-  }
-
-  // Make sure we can at least read the file
-  if (!File.canRead())
-    return error("Cannot find linker input '" + File.str() + "'");
-
-  // If its an archive, try to link it in
-  std::string Magic;
-  File.getMagicNumber(Magic, 64);
-  switch (sys::IdentifyFileType(Magic.c_str(), 64)) {
-    default: llvm_unreachable("Bad file type identification");
-    case sys::Unknown_FileType:
-      return warning("Ignoring file '" + File.str() + 
-                   "' because does not contain bitcode.");
-
-    case sys::Archive_FileType:
-      // A user may specify an ar archive without -l, perhaps because it
-      // is not installed as a library. Detect that and link the archive.
-      verbose("Linking archive file '" + File.str() + "'");
-      if (LinkInArchive(File, is_native))
-        return true;
-      break;
-
-    case sys::Bitcode_FileType: {
-      verbose("Linking bitcode file '" + File.str() + "'");
-      std::auto_ptr<Module> M(LoadObject(File));
-      if (M.get() == 0)
-        return error("Cannot load file '" + File.str() + "': " + Error);
-      if (LinkInModule(M.get(), &Error))
-        return error("Cannot link file '" + File.str() + "': " + Error);
-
-      verbose("Linked in file '" + File.str() + "'");
-      break;
-    }
-
-    case sys::ELF_Relocatable_FileType:
-    case sys::ELF_SharedObject_FileType:
-    case sys::Mach_O_Object_FileType:
-    case sys::Mach_O_FixedVirtualMemorySharedLib_FileType:
-    case sys::Mach_O_DynamicallyLinkedSharedLib_FileType:
-    case sys::Mach_O_DynamicallyLinkedSharedLibStub_FileType:
-    case sys::COFF_FileType:
-      is_native = true;
-      break;
-  }
-  return false;
-}
-
-/// LinkFiles - takes a module and a list of files and links them all together.
-/// It locates the file either in the current directory, as its absolute
-/// or relative pathname, or as a file somewhere in LLVM_LIB_SEARCH_PATH.
-///
-/// Inputs:
-///  Files      - A vector of sys::Path indicating the LLVM bitcode filenames
-///               to be linked.  The names can refer to a mixture of pure LLVM
-///               bitcode files and archive (ar) formatted files.
-///
-/// Return value:
-///  FALSE - No errors.
-///  TRUE  - Some error occurred.
-///
-bool Linker::LinkInFiles(const std::vector<sys::Path> &Files) {
-  bool is_native;
-  for (unsigned i = 0; i < Files.size(); ++i)
-    if (LinkInFile(Files[i], is_native))
-      return true;
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Linker/LinkModules.cpp b/libclamav/c++/llvm/lib/Linker/LinkModules.cpp
deleted file mode 100644
index 0fa97c5..0000000
--- a/libclamav/c++/llvm/lib/Linker/LinkModules.cpp
+++ /dev/null
@@ -1,1372 +0,0 @@
-//===- lib/Linker/LinkModules.cpp - Module Linker Implementation ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the LLVM module linker.
-//
-// Specifically, this:
-//  * Merges global variables between the two modules
-//    * Uninit + Uninit = Init, Init + Uninit = Init, Init + Init = Error if !=
-//  * Merges functions between two modules
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Linker.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/TypeSymbolTable.h"
-#include "llvm/ValueSymbolTable.h"
-#include "llvm/Instructions.h"
-#include "llvm/Assembly/Writer.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Path.h"
-#include "llvm/ADT/DenseMap.h"
-#include <sstream>
-using namespace llvm;
-
-// Error - Simple wrapper function to conditionally assign to E and return true.
-// This just makes error return conditions a little bit simpler...
-static inline bool Error(std::string *E, const Twine &Message) {
-  if (E) *E = Message.str();
-  return true;
-}
-
-// Function: ResolveTypes()
-//
-// Description:
-//  Attempt to link the two specified types together.
-//
-// Inputs:
-//  DestTy - The type to which we wish to resolve.
-//  SrcTy  - The original type which we want to resolve.
-//
-// Outputs:
-//  DestST - The symbol table in which the new type should be placed.
-//
-// Return value:
-//  true  - There is an error and the types cannot yet be linked.
-//  false - No errors.
-//
-static bool ResolveTypes(const Type *DestTy, const Type *SrcTy) {
-  if (DestTy == SrcTy) return false;       // If already equal, noop
-  assert(DestTy && SrcTy && "Can't handle null types");
-
-  if (const OpaqueType *OT = dyn_cast<OpaqueType>(DestTy)) {
-    // Type _is_ in module, just opaque...
-    const_cast<OpaqueType*>(OT)->refineAbstractTypeTo(SrcTy);
-  } else if (const OpaqueType *OT = dyn_cast<OpaqueType>(SrcTy)) {
-    const_cast<OpaqueType*>(OT)->refineAbstractTypeTo(DestTy);
-  } else {
-    return true;  // Cannot link types... not-equal and neither is opaque.
-  }
-  return false;
-}
-
-/// LinkerTypeMap - This implements a map of types that is stable
-/// even if types are resolved/refined to other types.  This is not a general
-/// purpose map, it is specific to the linker's use.
-namespace {
-class LinkerTypeMap : public AbstractTypeUser {
-  typedef DenseMap<const Type*, PATypeHolder> TheMapTy;
-  TheMapTy TheMap;
-
-  LinkerTypeMap(const LinkerTypeMap&); // DO NOT IMPLEMENT
-  void operator=(const LinkerTypeMap&); // DO NOT IMPLEMENT
-public:
-  LinkerTypeMap() {}
-  ~LinkerTypeMap() {
-    for (DenseMap<const Type*, PATypeHolder>::iterator I = TheMap.begin(),
-         E = TheMap.end(); I != E; ++I)
-      I->first->removeAbstractTypeUser(this);
-  }
-
-  /// lookup - Return the value for the specified type or null if it doesn't
-  /// exist.
-  const Type *lookup(const Type *Ty) const {
-    TheMapTy::const_iterator I = TheMap.find(Ty);
-    if (I != TheMap.end()) return I->second;
-    return 0;
-  }
-
-  /// erase - Remove the specified type, returning true if it was in the set.
-  bool erase(const Type *Ty) {
-    if (!TheMap.erase(Ty))
-      return false;
-    if (Ty->isAbstract())
-      Ty->removeAbstractTypeUser(this);
-    return true;
-  }
-
-  /// insert - This returns true if the pointer was new to the set, false if it
-  /// was already in the set.
-  bool insert(const Type *Src, const Type *Dst) {
-    if (!TheMap.insert(std::make_pair(Src, PATypeHolder(Dst))).second)
-      return false;  // Already in map.
-    if (Src->isAbstract())
-      Src->addAbstractTypeUser(this);
-    return true;
-  }
-
-protected:
-  /// refineAbstractType - The callback method invoked when an abstract type is
-  /// resolved to another type.  An object must override this method to update
-  /// its internal state to reference NewType instead of OldType.
-  ///
-  virtual void refineAbstractType(const DerivedType *OldTy,
-                                  const Type *NewTy) {
-    TheMapTy::iterator I = TheMap.find(OldTy);
-    const Type *DstTy = I->second;
-
-    TheMap.erase(I);
-    if (OldTy->isAbstract())
-      OldTy->removeAbstractTypeUser(this);
-
-    // Don't reinsert into the map if the key is concrete now.
-    if (NewTy->isAbstract())
-      insert(NewTy, DstTy);
-  }
-
-  /// The other case which AbstractTypeUsers must be aware of is when a type
-  /// makes the transition from being abstract (where it has clients on it's
-  /// AbstractTypeUsers list) to concrete (where it does not).  This method
-  /// notifies ATU's when this occurs for a type.
-  virtual void typeBecameConcrete(const DerivedType *AbsTy) {
-    TheMap.erase(AbsTy);
-    AbsTy->removeAbstractTypeUser(this);
-  }
-
-  // for debugging...
-  virtual void dump() const {
-    errs() << "AbstractTypeSet!\n";
-  }
-};
-}
-
-
-// RecursiveResolveTypes - This is just like ResolveTypes, except that it
-// recurses down into derived types, merging the used types if the parent types
-// are compatible.
-static bool RecursiveResolveTypesI(const Type *DstTy, const Type *SrcTy,
-                                   LinkerTypeMap &Pointers) {
-  if (DstTy == SrcTy) return false;       // If already equal, noop
-
-  // If we found our opaque type, resolve it now!
-  if (isa<OpaqueType>(DstTy) || isa<OpaqueType>(SrcTy))
-    return ResolveTypes(DstTy, SrcTy);
-
-  // Two types cannot be resolved together if they are of different primitive
-  // type.  For example, we cannot resolve an int to a float.
-  if (DstTy->getTypeID() != SrcTy->getTypeID()) return true;
-
-  // If neither type is abstract, then they really are just different types.
-  if (!DstTy->isAbstract() && !SrcTy->isAbstract())
-    return true;
-
-  // Otherwise, resolve the used type used by this derived type...
-  switch (DstTy->getTypeID()) {
-  default:
-    return true;
-  case Type::FunctionTyID: {
-    const FunctionType *DstFT = cast<FunctionType>(DstTy);
-    const FunctionType *SrcFT = cast<FunctionType>(SrcTy);
-    if (DstFT->isVarArg() != SrcFT->isVarArg() ||
-        DstFT->getNumContainedTypes() != SrcFT->getNumContainedTypes())
-      return true;
-
-    // Use TypeHolder's so recursive resolution won't break us.
-    PATypeHolder ST(SrcFT), DT(DstFT);
-    for (unsigned i = 0, e = DstFT->getNumContainedTypes(); i != e; ++i) {
-      const Type *SE = ST->getContainedType(i), *DE = DT->getContainedType(i);
-      if (SE != DE && RecursiveResolveTypesI(DE, SE, Pointers))
-        return true;
-    }
-    return false;
-  }
-  case Type::StructTyID: {
-    const StructType *DstST = cast<StructType>(DstTy);
-    const StructType *SrcST = cast<StructType>(SrcTy);
-    if (DstST->getNumContainedTypes() != SrcST->getNumContainedTypes())
-      return true;
-
-    PATypeHolder ST(SrcST), DT(DstST);
-    for (unsigned i = 0, e = DstST->getNumContainedTypes(); i != e; ++i) {
-      const Type *SE = ST->getContainedType(i), *DE = DT->getContainedType(i);
-      if (SE != DE && RecursiveResolveTypesI(DE, SE, Pointers))
-        return true;
-    }
-    return false;
-  }
-  case Type::ArrayTyID: {
-    const ArrayType *DAT = cast<ArrayType>(DstTy);
-    const ArrayType *SAT = cast<ArrayType>(SrcTy);
-    if (DAT->getNumElements() != SAT->getNumElements()) return true;
-    return RecursiveResolveTypesI(DAT->getElementType(), SAT->getElementType(),
-                                  Pointers);
-  }
-  case Type::VectorTyID: {
-    const VectorType *DVT = cast<VectorType>(DstTy);
-    const VectorType *SVT = cast<VectorType>(SrcTy);
-    if (DVT->getNumElements() != SVT->getNumElements()) return true;
-    return RecursiveResolveTypesI(DVT->getElementType(), SVT->getElementType(),
-                                  Pointers);
-  }
-  case Type::PointerTyID: {
-    const PointerType *DstPT = cast<PointerType>(DstTy);
-    const PointerType *SrcPT = cast<PointerType>(SrcTy);
-
-    if (DstPT->getAddressSpace() != SrcPT->getAddressSpace())
-      return true;
-
-    // If this is a pointer type, check to see if we have already seen it.  If
-    // so, we are in a recursive branch.  Cut off the search now.  We cannot use
-    // an associative container for this search, because the type pointers (keys
-    // in the container) change whenever types get resolved.
-    if (SrcPT->isAbstract())
-      if (const Type *ExistingDestTy = Pointers.lookup(SrcPT))
-        return ExistingDestTy != DstPT;
-
-    if (DstPT->isAbstract())
-      if (const Type *ExistingSrcTy = Pointers.lookup(DstPT))
-        return ExistingSrcTy != SrcPT;
-    // Otherwise, add the current pointers to the vector to stop recursion on
-    // this pair.
-    if (DstPT->isAbstract())
-      Pointers.insert(DstPT, SrcPT);
-    if (SrcPT->isAbstract())
-      Pointers.insert(SrcPT, DstPT);
-
-    return RecursiveResolveTypesI(DstPT->getElementType(),
-                                  SrcPT->getElementType(), Pointers);
-  }
-  }
-}
-
-static bool RecursiveResolveTypes(const Type *DestTy, const Type *SrcTy) {
-  LinkerTypeMap PointerTypes;
-  return RecursiveResolveTypesI(DestTy, SrcTy, PointerTypes);
-}
-
-
-// LinkTypes - Go through the symbol table of the Src module and see if any
-// types are named in the src module that are not named in the Dst module.
-// Make sure there are no type name conflicts.
-static bool LinkTypes(Module *Dest, const Module *Src, std::string *Err) {
-        TypeSymbolTable *DestST = &Dest->getTypeSymbolTable();
-  const TypeSymbolTable *SrcST  = &Src->getTypeSymbolTable();
-
-  // Look for a type plane for Type's...
-  TypeSymbolTable::const_iterator TI = SrcST->begin();
-  TypeSymbolTable::const_iterator TE = SrcST->end();
-  if (TI == TE) return false;  // No named types, do nothing.
-
-  // Some types cannot be resolved immediately because they depend on other
-  // types being resolved to each other first.  This contains a list of types we
-  // are waiting to recheck.
-  std::vector<std::string> DelayedTypesToResolve;
-
-  for ( ; TI != TE; ++TI ) {
-    const std::string &Name = TI->first;
-    const Type *RHS = TI->second;
-
-    // Check to see if this type name is already in the dest module.
-    Type *Entry = DestST->lookup(Name);
-
-    // If the name is just in the source module, bring it over to the dest.
-    if (Entry == 0) {
-      if (!Name.empty())
-        DestST->insert(Name, const_cast<Type*>(RHS));
-    } else if (ResolveTypes(Entry, RHS)) {
-      // They look different, save the types 'till later to resolve.
-      DelayedTypesToResolve.push_back(Name);
-    }
-  }
-
-  // Iteratively resolve types while we can...
-  while (!DelayedTypesToResolve.empty()) {
-    // Loop over all of the types, attempting to resolve them if possible...
-    unsigned OldSize = DelayedTypesToResolve.size();
-
-    // Try direct resolution by name...
-    for (unsigned i = 0; i != DelayedTypesToResolve.size(); ++i) {
-      const std::string &Name = DelayedTypesToResolve[i];
-      Type *T1 = SrcST->lookup(Name);
-      Type *T2 = DestST->lookup(Name);
-      if (!ResolveTypes(T2, T1)) {
-        // We are making progress!
-        DelayedTypesToResolve.erase(DelayedTypesToResolve.begin()+i);
-        --i;
-      }
-    }
-
-    // Did we not eliminate any types?
-    if (DelayedTypesToResolve.size() == OldSize) {
-      // Attempt to resolve subelements of types.  This allows us to merge these
-      // two types: { int* } and { opaque* }
-      for (unsigned i = 0, e = DelayedTypesToResolve.size(); i != e; ++i) {
-        const std::string &Name = DelayedTypesToResolve[i];
-        if (!RecursiveResolveTypes(SrcST->lookup(Name), DestST->lookup(Name))) {
-          // We are making progress!
-          DelayedTypesToResolve.erase(DelayedTypesToResolve.begin()+i);
-
-          // Go back to the main loop, perhaps we can resolve directly by name
-          // now...
-          break;
-        }
-      }
-
-      // If we STILL cannot resolve the types, then there is something wrong.
-      if (DelayedTypesToResolve.size() == OldSize) {
-        // Remove the symbol name from the destination.
-        DelayedTypesToResolve.pop_back();
-      }
-    }
-  }
-
-
-  return false;
-}
-
-#ifndef NDEBUG
-static void PrintMap(const std::map<const Value*, Value*> &M) {
-  for (std::map<const Value*, Value*>::const_iterator I = M.begin(), E =M.end();
-       I != E; ++I) {
-    errs() << " Fr: " << (void*)I->first << " ";
-    I->first->dump();
-    errs() << " To: " << (void*)I->second << " ";
-    I->second->dump();
-    errs() << "\n";
-  }
-}
-#endif
-
-
-// RemapOperand - Use ValueMap to convert constants from one module to another.
-static Value *RemapOperand(const Value *In,
-                           std::map<const Value*, Value*> &ValueMap,
-                           LLVMContext &Context) {
-  std::map<const Value*,Value*>::const_iterator I = ValueMap.find(In);
-  if (I != ValueMap.end())
-    return I->second;
-
-  // Check to see if it's a constant that we are interested in transforming.
-  Value *Result = 0;
-  if (const Constant *CPV = dyn_cast<Constant>(In)) {
-    if ((!isa<DerivedType>(CPV->getType()) && !isa<ConstantExpr>(CPV)) ||
-        isa<ConstantInt>(CPV) || isa<ConstantAggregateZero>(CPV))
-      return const_cast<Constant*>(CPV);   // Simple constants stay identical.
-
-    if (const ConstantArray *CPA = dyn_cast<ConstantArray>(CPV)) {
-      std::vector<Constant*> Operands(CPA->getNumOperands());
-      for (unsigned i = 0, e = CPA->getNumOperands(); i != e; ++i)
-        Operands[i] =cast<Constant>(RemapOperand(CPA->getOperand(i), ValueMap, 
-                                                 Context));
-      Result =
-          ConstantArray::get(cast<ArrayType>(CPA->getType()), Operands);
-    } else if (const ConstantStruct *CPS = dyn_cast<ConstantStruct>(CPV)) {
-      std::vector<Constant*> Operands(CPS->getNumOperands());
-      for (unsigned i = 0, e = CPS->getNumOperands(); i != e; ++i)
-        Operands[i] =cast<Constant>(RemapOperand(CPS->getOperand(i), ValueMap,
-                                                 Context));
-      Result =
-         ConstantStruct::get(cast<StructType>(CPS->getType()), Operands);
-    } else if (isa<ConstantPointerNull>(CPV) || isa<UndefValue>(CPV)) {
-      Result = const_cast<Constant*>(CPV);
-    } else if (const ConstantVector *CP = dyn_cast<ConstantVector>(CPV)) {
-      std::vector<Constant*> Operands(CP->getNumOperands());
-      for (unsigned i = 0, e = CP->getNumOperands(); i != e; ++i)
-        Operands[i] = cast<Constant>(RemapOperand(CP->getOperand(i), ValueMap,
-                                     Context));
-      Result = ConstantVector::get(Operands);
-    } else if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(CPV)) {
-      std::vector<Constant*> Ops;
-      for (unsigned i = 0, e = CE->getNumOperands(); i != e; ++i)
-        Ops.push_back(cast<Constant>(RemapOperand(CE->getOperand(i),ValueMap,
-                                     Context)));
-      Result = CE->getWithOperands(Ops);
-    } else {
-      assert(!isa<GlobalValue>(CPV) && "Unmapped global?");
-      llvm_unreachable("Unknown type of derived type constant value!");
-    }
-  } else if (const MDNode *N = dyn_cast<MDNode>(In)) {
-    std::vector<Value*> Elems;
-    for (unsigned i = 0, e = N->getNumElements(); i !=e; ++i)
-      Elems.push_back(RemapOperand(N->getElement(i), ValueMap, Context));
-    if (!Elems.empty())
-      Result = MDNode::get(Context, &Elems[0], Elems.size());
-  } else if (const MDString *MDS = dyn_cast<MDString>(In)) {
-    Result = MDString::get(Context, MDS->getString());
-  } else if (isa<InlineAsm>(In)) {
-    Result = const_cast<Value*>(In);
-  }
-
-  // Cache the mapping in our local map structure
-  if (Result) {
-    ValueMap[In] = Result;
-    return Result;
-  }
-
-#ifndef NDEBUG
-  errs() << "LinkModules ValueMap: \n";
-  PrintMap(ValueMap);
-
-  errs() << "Couldn't remap value: " << (void*)In << " " << *In << "\n";
-  llvm_unreachable("Couldn't remap value!");
-#endif
-  return 0;
-}
-
-/// ForceRenaming - The LLVM SymbolTable class autorenames globals that conflict
-/// in the symbol table.  This is good for all clients except for us.  Go
-/// through the trouble to force this back.
-static void ForceRenaming(GlobalValue *GV, const std::string &Name) {
-  assert(GV->getName() != Name && "Can't force rename to self");
-  ValueSymbolTable &ST = GV->getParent()->getValueSymbolTable();
-
-  // If there is a conflict, rename the conflict.
-  if (GlobalValue *ConflictGV = cast_or_null<GlobalValue>(ST.lookup(Name))) {
-    assert(ConflictGV->hasLocalLinkage() &&
-           "Not conflicting with a static global, should link instead!");
-    GV->takeName(ConflictGV);
-    ConflictGV->setName(Name);    // This will cause ConflictGV to get renamed
-    assert(ConflictGV->getName() != Name && "ForceRenaming didn't work");
-  } else {
-    GV->setName(Name);              // Force the name back
-  }
-}
-
-/// CopyGVAttributes - copy additional attributes (those not needed to construct
-/// a GlobalValue) from the SrcGV to the DestGV.
-static void CopyGVAttributes(GlobalValue *DestGV, const GlobalValue *SrcGV) {
-  // Use the maximum alignment, rather than just copying the alignment of SrcGV.
-  unsigned Alignment = std::max(DestGV->getAlignment(), SrcGV->getAlignment());
-  DestGV->copyAttributesFrom(SrcGV);
-  DestGV->setAlignment(Alignment);
-}
-
-/// GetLinkageResult - This analyzes the two global values and determines what
-/// the result will look like in the destination module.  In particular, it
-/// computes the resultant linkage type, computes whether the global in the
-/// source should be copied over to the destination (replacing the existing
-/// one), and computes whether this linkage is an error or not. It also performs
-/// visibility checks: we cannot link together two symbols with different
-/// visibilities.
-static bool GetLinkageResult(GlobalValue *Dest, const GlobalValue *Src,
-                             GlobalValue::LinkageTypes &LT, bool &LinkFromSrc,
-                             std::string *Err) {
-  assert((!Dest || !Src->hasLocalLinkage()) &&
-         "If Src has internal linkage, Dest shouldn't be set!");
-  if (!Dest) {
-    // Linking something to nothing.
-    LinkFromSrc = true;
-    LT = Src->getLinkage();
-  } else if (Src->isDeclaration()) {
-    // If Src is external or if both Src & Dest are external..  Just link the
-    // external globals, we aren't adding anything.
-    if (Src->hasDLLImportLinkage()) {
-      // If one of GVs has DLLImport linkage, result should be dllimport'ed.
-      if (Dest->isDeclaration()) {
-        LinkFromSrc = true;
-        LT = Src->getLinkage();
-      }
-    } else if (Dest->hasExternalWeakLinkage()) {
-      // If the Dest is weak, use the source linkage.
-      LinkFromSrc = true;
-      LT = Src->getLinkage();
-    } else {
-      LinkFromSrc = false;
-      LT = Dest->getLinkage();
-    }
-  } else if (Dest->isDeclaration() && !Dest->hasDLLImportLinkage()) {
-    // If Dest is external but Src is not:
-    LinkFromSrc = true;
-    LT = Src->getLinkage();
-  } else if (Src->hasAppendingLinkage() || Dest->hasAppendingLinkage()) {
-    if (Src->getLinkage() != Dest->getLinkage())
-      return Error(Err, "Linking globals named '" + Src->getName() +
-            "': can only link appending global with another appending global!");
-    LinkFromSrc = true; // Special cased.
-    LT = Src->getLinkage();
-  } else if (Src->isWeakForLinker()) {
-    // At this point we know that Dest has LinkOnce, External*, Weak, Common,
-    // or DLL* linkage.
-    if (Dest->hasExternalWeakLinkage() ||
-        Dest->hasAvailableExternallyLinkage() ||
-        (Dest->hasLinkOnceLinkage() &&
-         (Src->hasWeakLinkage() || Src->hasCommonLinkage()))) {
-      LinkFromSrc = true;
-      LT = Src->getLinkage();
-    } else {
-      LinkFromSrc = false;
-      LT = Dest->getLinkage();
-    }
-  } else if (Dest->isWeakForLinker()) {
-    // At this point we know that Src has External* or DLL* linkage.
-    if (Src->hasExternalWeakLinkage()) {
-      LinkFromSrc = false;
-      LT = Dest->getLinkage();
-    } else {
-      LinkFromSrc = true;
-      LT = GlobalValue::ExternalLinkage;
-    }
-  } else {
-    assert((Dest->hasExternalLinkage() ||
-            Dest->hasDLLImportLinkage() ||
-            Dest->hasDLLExportLinkage() ||
-            Dest->hasExternalWeakLinkage()) &&
-           (Src->hasExternalLinkage() ||
-            Src->hasDLLImportLinkage() ||
-            Src->hasDLLExportLinkage() ||
-            Src->hasExternalWeakLinkage()) &&
-           "Unexpected linkage type!");
-    return Error(Err, "Linking globals named '" + Src->getName() +
-                 "': symbol multiply defined!");
-  }
-
-  // Check visibility
-  if (Dest && Src->getVisibility() != Dest->getVisibility())
-    if (!Src->isDeclaration() && !Dest->isDeclaration())
-      return Error(Err, "Linking globals named '" + Src->getName() +
-                   "': symbols have different visibilities!");
-  return false;
-}
-
-// Insert all of the named mdnoes in Src into the Dest module.
-static void LinkNamedMDNodes(Module *Dest, Module *Src) {
-  for (Module::const_named_metadata_iterator I = Src->named_metadata_begin(),
-         E = Src->named_metadata_end(); I != E; ++I) {
-    const NamedMDNode *SrcNMD = I;
-    NamedMDNode *DestNMD = Dest->getNamedMetadata(SrcNMD->getName());
-    if (!DestNMD)
-      NamedMDNode::Create(SrcNMD, Dest);
-    else {
-      // Add Src elements into Dest node.
-      for (unsigned i = 0, e = SrcNMD->getNumElements(); i != e; ++i) 
-        DestNMD->addElement(SrcNMD->getElement(i));
-    }
-  }
-}
-
-// LinkGlobals - Loop through the global variables in the src module and merge
-// them into the dest module.
-static bool LinkGlobals(Module *Dest, const Module *Src,
-                        std::map<const Value*, Value*> &ValueMap,
-                    std::multimap<std::string, GlobalVariable *> &AppendingVars,
-                        std::string *Err) {
-  ValueSymbolTable &DestSymTab = Dest->getValueSymbolTable();
-
-  // Loop over all of the globals in the src module, mapping them over as we go
-  for (Module::const_global_iterator I = Src->global_begin(),
-       E = Src->global_end(); I != E; ++I) {
-    const GlobalVariable *SGV = I;
-    GlobalValue *DGV = 0;
-
-    // Check to see if may have to link the global with the global, alias or
-    // function.
-    if (SGV->hasName() && !SGV->hasLocalLinkage())
-      DGV = cast_or_null<GlobalValue>(DestSymTab.lookup(SGV->getName()));
-
-    // If we found a global with the same name in the dest module, but it has
-    // internal linkage, we are really not doing any linkage here.
-    if (DGV && DGV->hasLocalLinkage())
-      DGV = 0;
-
-    // If types don't agree due to opaque types, try to resolve them.
-    if (DGV && DGV->getType() != SGV->getType())
-      RecursiveResolveTypes(SGV->getType(), DGV->getType());
-
-    assert((SGV->hasInitializer() || SGV->hasExternalWeakLinkage() ||
-            SGV->hasExternalLinkage() || SGV->hasDLLImportLinkage()) &&
-           "Global must either be external or have an initializer!");
-
-    GlobalValue::LinkageTypes NewLinkage = GlobalValue::InternalLinkage;
-    bool LinkFromSrc = false;
-    if (GetLinkageResult(DGV, SGV, NewLinkage, LinkFromSrc, Err))
-      return true;
-
-    if (DGV == 0) {
-      // No linking to be performed, simply create an identical version of the
-      // symbol over in the dest module... the initializer will be filled in
-      // later by LinkGlobalInits.
-      GlobalVariable *NewDGV =
-        new GlobalVariable(*Dest, SGV->getType()->getElementType(),
-                           SGV->isConstant(), SGV->getLinkage(), /*init*/0,
-                           SGV->getName(), 0, false,
-                           SGV->getType()->getAddressSpace());
-      // Propagate alignment, visibility and section info.
-      CopyGVAttributes(NewDGV, SGV);
-
-      // If the LLVM runtime renamed the global, but it is an externally visible
-      // symbol, DGV must be an existing global with internal linkage.  Rename
-      // it.
-      if (!NewDGV->hasLocalLinkage() && NewDGV->getName() != SGV->getName())
-        ForceRenaming(NewDGV, SGV->getName());
-
-      // Make sure to remember this mapping.
-      ValueMap[SGV] = NewDGV;
-
-      // Keep track that this is an appending variable.
-      if (SGV->hasAppendingLinkage())
-        AppendingVars.insert(std::make_pair(SGV->getName(), NewDGV));
-      continue;
-    }
-
-    // If the visibilities of the symbols disagree and the destination is a
-    // prototype, take the visibility of its input.
-    if (DGV->isDeclaration())
-      DGV->setVisibility(SGV->getVisibility());
-
-    if (DGV->hasAppendingLinkage()) {
-      // No linking is performed yet.  Just insert a new copy of the global, and
-      // keep track of the fact that it is an appending variable in the
-      // AppendingVars map.  The name is cleared out so that no linkage is
-      // performed.
-      GlobalVariable *NewDGV =
-        new GlobalVariable(*Dest, SGV->getType()->getElementType(),
-                           SGV->isConstant(), SGV->getLinkage(), /*init*/0,
-                           "", 0, false,
-                           SGV->getType()->getAddressSpace());
-
-      // Set alignment allowing CopyGVAttributes merge it with alignment of SGV.
-      NewDGV->setAlignment(DGV->getAlignment());
-      // Propagate alignment, section and visibility info.
-      CopyGVAttributes(NewDGV, SGV);
-
-      // Make sure to remember this mapping...
-      ValueMap[SGV] = NewDGV;
-
-      // Keep track that this is an appending variable...
-      AppendingVars.insert(std::make_pair(SGV->getName(), NewDGV));
-      continue;
-    }
-
-    if (LinkFromSrc) {
-      if (isa<GlobalAlias>(DGV))
-        return Error(Err, "Global-Alias Collision on '" + SGV->getName() +
-                     "': symbol multiple defined");
-
-      // If the types don't match, and if we are to link from the source, nuke
-      // DGV and create a new one of the appropriate type.  Note that the thing
-      // we are replacing may be a function (if a prototype, weak, etc) or a
-      // global variable.
-      GlobalVariable *NewDGV =
-        new GlobalVariable(*Dest, SGV->getType()->getElementType(), 
-                           SGV->isConstant(), NewLinkage, /*init*/0, 
-                           DGV->getName(), 0, false,
-                           SGV->getType()->getAddressSpace());
-
-      // Propagate alignment, section, and visibility info.
-      CopyGVAttributes(NewDGV, SGV);
-      DGV->replaceAllUsesWith(ConstantExpr::getBitCast(NewDGV, 
-                                                              DGV->getType()));
-
-      // DGV will conflict with NewDGV because they both had the same
-      // name. We must erase this now so ForceRenaming doesn't assert
-      // because DGV might not have internal linkage.
-      if (GlobalVariable *Var = dyn_cast<GlobalVariable>(DGV))
-        Var->eraseFromParent();
-      else
-        cast<Function>(DGV)->eraseFromParent();
-      DGV = NewDGV;
-
-      // If the symbol table renamed the global, but it is an externally visible
-      // symbol, DGV must be an existing global with internal linkage.  Rename.
-      if (NewDGV->getName() != SGV->getName() && !NewDGV->hasLocalLinkage())
-        ForceRenaming(NewDGV, SGV->getName());
-
-      // Inherit const as appropriate.
-      NewDGV->setConstant(SGV->isConstant());
-
-      // Make sure to remember this mapping.
-      ValueMap[SGV] = NewDGV;
-      continue;
-    }
-
-    // Not "link from source", keep the one in the DestModule and remap the
-    // input onto it.
-
-    // Special case for const propagation.
-    if (GlobalVariable *DGVar = dyn_cast<GlobalVariable>(DGV))
-      if (DGVar->isDeclaration() && SGV->isConstant() && !DGVar->isConstant())
-        DGVar->setConstant(true);
-
-    // SGV is global, but DGV is alias.
-    if (isa<GlobalAlias>(DGV)) {
-      // The only valid mappings are:
-      // - SGV is external declaration, which is effectively a no-op.
-      // - SGV is weak, when we just need to throw SGV out.
-      if (!SGV->isDeclaration() && !SGV->isWeakForLinker())
-        return Error(Err, "Global-Alias Collision on '" + SGV->getName() +
-                     "': symbol multiple defined");
-    }
-
-    // Set calculated linkage
-    DGV->setLinkage(NewLinkage);
-
-    // Make sure to remember this mapping...
-    ValueMap[SGV] = ConstantExpr::getBitCast(DGV, SGV->getType());
-  }
-  return false;
-}
-
-static GlobalValue::LinkageTypes
-CalculateAliasLinkage(const GlobalValue *SGV, const GlobalValue *DGV) {
-  GlobalValue::LinkageTypes SL = SGV->getLinkage();
-  GlobalValue::LinkageTypes DL = DGV->getLinkage();
-  if (SL == GlobalValue::ExternalLinkage || DL == GlobalValue::ExternalLinkage)
-    return GlobalValue::ExternalLinkage;
-  else if (SL == GlobalValue::WeakAnyLinkage ||
-           DL == GlobalValue::WeakAnyLinkage)
-    return GlobalValue::WeakAnyLinkage;
-  else if (SL == GlobalValue::WeakODRLinkage ||
-           DL == GlobalValue::WeakODRLinkage)
-    return GlobalValue::WeakODRLinkage;
-  else if (SL == GlobalValue::InternalLinkage &&
-           DL == GlobalValue::InternalLinkage)
-    return GlobalValue::InternalLinkage;
-  else if (SL == GlobalValue::LinkerPrivateLinkage &&
-           DL == GlobalValue::LinkerPrivateLinkage)
-    return GlobalValue::LinkerPrivateLinkage;
-  else {
-    assert (SL == GlobalValue::PrivateLinkage &&
-            DL == GlobalValue::PrivateLinkage && "Unexpected linkage type");
-    return GlobalValue::PrivateLinkage;
-  }
-}
-
-// LinkAlias - Loop through the alias in the src module and link them into the
-// dest module. We're assuming, that all functions/global variables were already
-// linked in.
-static bool LinkAlias(Module *Dest, const Module *Src,
-                      std::map<const Value*, Value*> &ValueMap,
-                      std::string *Err) {
-  // Loop over all alias in the src module
-  for (Module::const_alias_iterator I = Src->alias_begin(),
-         E = Src->alias_end(); I != E; ++I) {
-    const GlobalAlias *SGA = I;
-    const GlobalValue *SAliasee = SGA->getAliasedGlobal();
-    GlobalAlias *NewGA = NULL;
-
-    // Globals were already linked, thus we can just query ValueMap for variant
-    // of SAliasee in Dest.
-    std::map<const Value*,Value*>::const_iterator VMI = ValueMap.find(SAliasee);
-    assert(VMI != ValueMap.end() && "Aliasee not linked");
-    GlobalValue* DAliasee = cast<GlobalValue>(VMI->second);
-    GlobalValue* DGV = NULL;
-
-    // Try to find something 'similar' to SGA in destination module.
-    if (!DGV && !SGA->hasLocalLinkage()) {
-      DGV = Dest->getNamedAlias(SGA->getName());
-
-      // If types don't agree due to opaque types, try to resolve them.
-      if (DGV && DGV->getType() != SGA->getType())
-        RecursiveResolveTypes(SGA->getType(), DGV->getType());
-    }
-
-    if (!DGV && !SGA->hasLocalLinkage()) {
-      DGV = Dest->getGlobalVariable(SGA->getName());
-
-      // If types don't agree due to opaque types, try to resolve them.
-      if (DGV && DGV->getType() != SGA->getType())
-        RecursiveResolveTypes(SGA->getType(), DGV->getType());
-    }
-
-    if (!DGV && !SGA->hasLocalLinkage()) {
-      DGV = Dest->getFunction(SGA->getName());
-
-      // If types don't agree due to opaque types, try to resolve them.
-      if (DGV && DGV->getType() != SGA->getType())
-        RecursiveResolveTypes(SGA->getType(), DGV->getType());
-    }
-
-    // No linking to be performed on internal stuff.
-    if (DGV && DGV->hasLocalLinkage())
-      DGV = NULL;
-
-    if (GlobalAlias *DGA = dyn_cast_or_null<GlobalAlias>(DGV)) {
-      // Types are known to be the same, check whether aliasees equal. As
-      // globals are already linked we just need query ValueMap to find the
-      // mapping.
-      if (DAliasee == DGA->getAliasedGlobal()) {
-        // This is just two copies of the same alias. Propagate linkage, if
-        // necessary.
-        DGA->setLinkage(CalculateAliasLinkage(SGA, DGA));
-
-        NewGA = DGA;
-        // Proceed to 'common' steps
-      } else
-        return Error(Err, "Alias Collision on '"  + SGA->getName()+
-                     "': aliases have different aliasees");
-    } else if (GlobalVariable *DGVar = dyn_cast_or_null<GlobalVariable>(DGV)) {
-      // The only allowed way is to link alias with external declaration or weak
-      // symbol..
-      if (DGVar->isDeclaration() || DGVar->isWeakForLinker()) {
-        // But only if aliasee is global too...
-        if (!isa<GlobalVariable>(DAliasee))
-          return Error(Err, "Global-Alias Collision on '" + SGA->getName() +
-                       "': aliasee is not global variable");
-
-        NewGA = new GlobalAlias(SGA->getType(), SGA->getLinkage(),
-                                SGA->getName(), DAliasee, Dest);
-        CopyGVAttributes(NewGA, SGA);
-
-        // Any uses of DGV need to change to NewGA, with cast, if needed.
-        if (SGA->getType() != DGVar->getType())
-          DGVar->replaceAllUsesWith(ConstantExpr::getBitCast(NewGA,
-                                                             DGVar->getType()));
-        else
-          DGVar->replaceAllUsesWith(NewGA);
-
-        // DGVar will conflict with NewGA because they both had the same
-        // name. We must erase this now so ForceRenaming doesn't assert
-        // because DGV might not have internal linkage.
-        DGVar->eraseFromParent();
-
-        // Proceed to 'common' steps
-      } else
-        return Error(Err, "Global-Alias Collision on '" + SGA->getName() +
-                     "': symbol multiple defined");
-    } else if (Function *DF = dyn_cast_or_null<Function>(DGV)) {
-      // The only allowed way is to link alias with external declaration or weak
-      // symbol...
-      if (DF->isDeclaration() || DF->isWeakForLinker()) {
-        // But only if aliasee is function too...
-        if (!isa<Function>(DAliasee))
-          return Error(Err, "Function-Alias Collision on '" + SGA->getName() +
-                       "': aliasee is not function");
-
-        NewGA = new GlobalAlias(SGA->getType(), SGA->getLinkage(),
-                                SGA->getName(), DAliasee, Dest);
-        CopyGVAttributes(NewGA, SGA);
-
-        // Any uses of DF need to change to NewGA, with cast, if needed.
-        if (SGA->getType() != DF->getType())
-          DF->replaceAllUsesWith(ConstantExpr::getBitCast(NewGA,
-                                                          DF->getType()));
-        else
-          DF->replaceAllUsesWith(NewGA);
-
-        // DF will conflict with NewGA because they both had the same
-        // name. We must erase this now so ForceRenaming doesn't assert
-        // because DF might not have internal linkage.
-        DF->eraseFromParent();
-
-        // Proceed to 'common' steps
-      } else
-        return Error(Err, "Function-Alias Collision on '" + SGA->getName() +
-                     "': symbol multiple defined");
-    } else {
-      // No linking to be performed, simply create an identical version of the
-      // alias over in the dest module...
-
-      NewGA = new GlobalAlias(SGA->getType(), SGA->getLinkage(),
-                              SGA->getName(), DAliasee, Dest);
-      CopyGVAttributes(NewGA, SGA);
-
-      // Proceed to 'common' steps
-    }
-
-    assert(NewGA && "No alias was created in destination module!");
-
-    // If the symbol table renamed the alias, but it is an externally visible
-    // symbol, DGA must be an global value with internal linkage. Rename it.
-    if (NewGA->getName() != SGA->getName() &&
-        !NewGA->hasLocalLinkage())
-      ForceRenaming(NewGA, SGA->getName());
-
-    // Remember this mapping so uses in the source module get remapped
-    // later by RemapOperand.
-    ValueMap[SGA] = NewGA;
-  }
-
-  return false;
-}
-
-
-// LinkGlobalInits - Update the initializers in the Dest module now that all
-// globals that may be referenced are in Dest.
-static bool LinkGlobalInits(Module *Dest, const Module *Src,
-                            std::map<const Value*, Value*> &ValueMap,
-                            std::string *Err) {
-  // Loop over all of the globals in the src module, mapping them over as we go
-  for (Module::const_global_iterator I = Src->global_begin(),
-       E = Src->global_end(); I != E; ++I) {
-    const GlobalVariable *SGV = I;
-
-    if (SGV->hasInitializer()) {      // Only process initialized GV's
-      // Figure out what the initializer looks like in the dest module...
-      Constant *SInit =
-        cast<Constant>(RemapOperand(SGV->getInitializer(), ValueMap,
-                       Dest->getContext()));
-      // Grab destination global variable or alias.
-      GlobalValue *DGV = cast<GlobalValue>(ValueMap[SGV]->stripPointerCasts());
-
-      // If dest if global variable, check that initializers match.
-      if (GlobalVariable *DGVar = dyn_cast<GlobalVariable>(DGV)) {
-        if (DGVar->hasInitializer()) {
-          if (SGV->hasExternalLinkage()) {
-            if (DGVar->getInitializer() != SInit)
-              return Error(Err, "Global Variable Collision on '" +
-                           SGV->getName() +
-                           "': global variables have different initializers");
-          } else if (DGVar->isWeakForLinker()) {
-            // Nothing is required, mapped values will take the new global
-            // automatically.
-          } else if (SGV->isWeakForLinker()) {
-            // Nothing is required, mapped values will take the new global
-            // automatically.
-          } else if (DGVar->hasAppendingLinkage()) {
-            llvm_unreachable("Appending linkage unimplemented!");
-          } else {
-            llvm_unreachable("Unknown linkage!");
-          }
-        } else {
-          // Copy the initializer over now...
-          DGVar->setInitializer(SInit);
-        }
-      } else {
-        // Destination is alias, the only valid situation is when source is
-        // weak. Also, note, that we already checked linkage in LinkGlobals(),
-        // thus we assert here.
-        // FIXME: Should we weaken this assumption, 'dereference' alias and
-        // check for initializer of aliasee?
-        assert(SGV->isWeakForLinker());
-      }
-    }
-  }
-  return false;
-}
-
-// LinkFunctionProtos - Link the functions together between the two modules,
-// without doing function bodies... this just adds external function prototypes
-// to the Dest function...
-//
-static bool LinkFunctionProtos(Module *Dest, const Module *Src,
-                               std::map<const Value*, Value*> &ValueMap,
-                               std::string *Err) {
-  ValueSymbolTable &DestSymTab = Dest->getValueSymbolTable();
-
-  // Loop over all of the functions in the src module, mapping them over
-  for (Module::const_iterator I = Src->begin(), E = Src->end(); I != E; ++I) {
-    const Function *SF = I;   // SrcFunction
-    GlobalValue *DGV = 0;
-
-    // Check to see if may have to link the function with the global, alias or
-    // function.
-    if (SF->hasName() && !SF->hasLocalLinkage())
-      DGV = cast_or_null<GlobalValue>(DestSymTab.lookup(SF->getName()));
-
-    // If we found a global with the same name in the dest module, but it has
-    // internal linkage, we are really not doing any linkage here.
-    if (DGV && DGV->hasLocalLinkage())
-      DGV = 0;
-
-    // If types don't agree due to opaque types, try to resolve them.
-    if (DGV && DGV->getType() != SF->getType())
-      RecursiveResolveTypes(SF->getType(), DGV->getType());
-
-    GlobalValue::LinkageTypes NewLinkage = GlobalValue::InternalLinkage;
-    bool LinkFromSrc = false;
-    if (GetLinkageResult(DGV, SF, NewLinkage, LinkFromSrc, Err))
-      return true;
-
-    // If there is no linkage to be performed, just bring over SF without
-    // modifying it.
-    if (DGV == 0) {
-      // Function does not already exist, simply insert an function signature
-      // identical to SF into the dest module.
-      Function *NewDF = Function::Create(SF->getFunctionType(),
-                                         SF->getLinkage(),
-                                         SF->getName(), Dest);
-      CopyGVAttributes(NewDF, SF);
-
-      // If the LLVM runtime renamed the function, but it is an externally
-      // visible symbol, DF must be an existing function with internal linkage.
-      // Rename it.
-      if (!NewDF->hasLocalLinkage() && NewDF->getName() != SF->getName())
-        ForceRenaming(NewDF, SF->getName());
-
-      // ... and remember this mapping...
-      ValueMap[SF] = NewDF;
-      continue;
-    }
-
-    // If the visibilities of the symbols disagree and the destination is a
-    // prototype, take the visibility of its input.
-    if (DGV->isDeclaration())
-      DGV->setVisibility(SF->getVisibility());
-
-    if (LinkFromSrc) {
-      if (isa<GlobalAlias>(DGV))
-        return Error(Err, "Function-Alias Collision on '" + SF->getName() +
-                     "': symbol multiple defined");
-
-      // We have a definition of the same name but different type in the
-      // source module. Copy the prototype to the destination and replace
-      // uses of the destination's prototype with the new prototype.
-      Function *NewDF = Function::Create(SF->getFunctionType(), NewLinkage,
-                                         SF->getName(), Dest);
-      CopyGVAttributes(NewDF, SF);
-
-      // Any uses of DF need to change to NewDF, with cast
-      DGV->replaceAllUsesWith(ConstantExpr::getBitCast(NewDF, 
-                                                              DGV->getType()));
-
-      // DF will conflict with NewDF because they both had the same. We must
-      // erase this now so ForceRenaming doesn't assert because DF might
-      // not have internal linkage.
-      if (GlobalVariable *Var = dyn_cast<GlobalVariable>(DGV))
-        Var->eraseFromParent();
-      else
-        cast<Function>(DGV)->eraseFromParent();
-
-      // If the symbol table renamed the function, but it is an externally
-      // visible symbol, DF must be an existing function with internal
-      // linkage.  Rename it.
-      if (NewDF->getName() != SF->getName() && !NewDF->hasLocalLinkage())
-        ForceRenaming(NewDF, SF->getName());
-
-      // Remember this mapping so uses in the source module get remapped
-      // later by RemapOperand.
-      ValueMap[SF] = NewDF;
-      continue;
-    }
-
-    // Not "link from source", keep the one in the DestModule and remap the
-    // input onto it.
-
-    if (isa<GlobalAlias>(DGV)) {
-      // The only valid mappings are:
-      // - SF is external declaration, which is effectively a no-op.
-      // - SF is weak, when we just need to throw SF out.
-      if (!SF->isDeclaration() && !SF->isWeakForLinker())
-        return Error(Err, "Function-Alias Collision on '" + SF->getName() +
-                     "': symbol multiple defined");
-    }
-
-    // Set calculated linkage
-    DGV->setLinkage(NewLinkage);
-
-    // Make sure to remember this mapping.
-    ValueMap[SF] = ConstantExpr::getBitCast(DGV, SF->getType());
-  }
-  return false;
-}
-
-// LinkFunctionBody - Copy the source function over into the dest function and
-// fix up references to values.  At this point we know that Dest is an external
-// function, and that Src is not.
-static bool LinkFunctionBody(Function *Dest, Function *Src,
-                             std::map<const Value*, Value*> &ValueMap,
-                             std::string *Err) {
-  assert(Src && Dest && Dest->isDeclaration() && !Src->isDeclaration());
-
-  // Go through and convert function arguments over, remembering the mapping.
-  Function::arg_iterator DI = Dest->arg_begin();
-  for (Function::arg_iterator I = Src->arg_begin(), E = Src->arg_end();
-       I != E; ++I, ++DI) {
-    DI->setName(I->getName());  // Copy the name information over...
-
-    // Add a mapping to our local map
-    ValueMap[I] = DI;
-  }
-
-  // Splice the body of the source function into the dest function.
-  Dest->getBasicBlockList().splice(Dest->end(), Src->getBasicBlockList());
-
-  // At this point, all of the instructions and values of the function are now
-  // copied over.  The only problem is that they are still referencing values in
-  // the Source function as operands.  Loop through all of the operands of the
-  // functions and patch them up to point to the local versions...
-  //
-  for (Function::iterator BB = Dest->begin(), BE = Dest->end(); BB != BE; ++BB)
-    for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I)
-      for (Instruction::op_iterator OI = I->op_begin(), OE = I->op_end();
-           OI != OE; ++OI)
-        if (!isa<Instruction>(*OI) && !isa<BasicBlock>(*OI))
-          *OI = RemapOperand(*OI, ValueMap, Dest->getContext());
-
-  // There is no need to map the arguments anymore.
-  for (Function::arg_iterator I = Src->arg_begin(), E = Src->arg_end();
-       I != E; ++I)
-    ValueMap.erase(I);
-
-  return false;
-}
-
-
-// LinkFunctionBodies - Link in the function bodies that are defined in the
-// source module into the DestModule.  This consists basically of copying the
-// function over and fixing up references to values.
-static bool LinkFunctionBodies(Module *Dest, Module *Src,
-                               std::map<const Value*, Value*> &ValueMap,
-                               std::string *Err) {
-
-  // Loop over all of the functions in the src module, mapping them over as we
-  // go
-  for (Module::iterator SF = Src->begin(), E = Src->end(); SF != E; ++SF) {
-    if (!SF->isDeclaration()) {               // No body if function is external
-      Function *DF = dyn_cast<Function>(ValueMap[SF]); // Destination function
-
-      // DF not external SF external?
-      if (DF && DF->isDeclaration())
-        // Only provide the function body if there isn't one already.
-        if (LinkFunctionBody(DF, SF, ValueMap, Err))
-          return true;
-    }
-  }
-  return false;
-}
-
-// LinkAppendingVars - If there were any appending global variables, link them
-// together now.  Return true on error.
-static bool LinkAppendingVars(Module *M,
-                  std::multimap<std::string, GlobalVariable *> &AppendingVars,
-                              std::string *ErrorMsg) {
-  if (AppendingVars.empty()) return false; // Nothing to do.
-
-  // Loop over the multimap of appending vars, processing any variables with the
-  // same name, forming a new appending global variable with both of the
-  // initializers merged together, then rewrite references to the old variables
-  // and delete them.
-  std::vector<Constant*> Inits;
-  while (AppendingVars.size() > 1) {
-    // Get the first two elements in the map...
-    std::multimap<std::string,
-      GlobalVariable*>::iterator Second = AppendingVars.begin(), First=Second++;
-
-    // If the first two elements are for different names, there is no pair...
-    // Otherwise there is a pair, so link them together...
-    if (First->first == Second->first) {
-      GlobalVariable *G1 = First->second, *G2 = Second->second;
-      const ArrayType *T1 = cast<ArrayType>(G1->getType()->getElementType());
-      const ArrayType *T2 = cast<ArrayType>(G2->getType()->getElementType());
-
-      // Check to see that they two arrays agree on type...
-      if (T1->getElementType() != T2->getElementType())
-        return Error(ErrorMsg,
-         "Appending variables with different element types need to be linked!");
-      if (G1->isConstant() != G2->isConstant())
-        return Error(ErrorMsg,
-                     "Appending variables linked with different const'ness!");
-
-      if (G1->getAlignment() != G2->getAlignment())
-        return Error(ErrorMsg,
-         "Appending variables with different alignment need to be linked!");
-
-      if (G1->getVisibility() != G2->getVisibility())
-        return Error(ErrorMsg,
-         "Appending variables with different visibility need to be linked!");
-
-      if (G1->getSection() != G2->getSection())
-        return Error(ErrorMsg,
-         "Appending variables with different section name need to be linked!");
-
-      unsigned NewSize = T1->getNumElements() + T2->getNumElements();
-      ArrayType *NewType = ArrayType::get(T1->getElementType(), 
-                                                         NewSize);
-
-      G1->setName("");   // Clear G1's name in case of a conflict!
-
-      // Create the new global variable...
-      GlobalVariable *NG =
-        new GlobalVariable(*M, NewType, G1->isConstant(), G1->getLinkage(),
-                           /*init*/0, First->first, 0, G1->isThreadLocal(),
-                           G1->getType()->getAddressSpace());
-
-      // Propagate alignment, visibility and section info.
-      CopyGVAttributes(NG, G1);
-
-      // Merge the initializer...
-      Inits.reserve(NewSize);
-      if (ConstantArray *I = dyn_cast<ConstantArray>(G1->getInitializer())) {
-        for (unsigned i = 0, e = T1->getNumElements(); i != e; ++i)
-          Inits.push_back(I->getOperand(i));
-      } else {
-        assert(isa<ConstantAggregateZero>(G1->getInitializer()));
-        Constant *CV = Constant::getNullValue(T1->getElementType());
-        for (unsigned i = 0, e = T1->getNumElements(); i != e; ++i)
-          Inits.push_back(CV);
-      }
-      if (ConstantArray *I = dyn_cast<ConstantArray>(G2->getInitializer())) {
-        for (unsigned i = 0, e = T2->getNumElements(); i != e; ++i)
-          Inits.push_back(I->getOperand(i));
-      } else {
-        assert(isa<ConstantAggregateZero>(G2->getInitializer()));
-        Constant *CV = Constant::getNullValue(T2->getElementType());
-        for (unsigned i = 0, e = T2->getNumElements(); i != e; ++i)
-          Inits.push_back(CV);
-      }
-      NG->setInitializer(ConstantArray::get(NewType, Inits));
-      Inits.clear();
-
-      // Replace any uses of the two global variables with uses of the new
-      // global...
-
-      // FIXME: This should rewrite simple/straight-forward uses such as
-      // getelementptr instructions to not use the Cast!
-      G1->replaceAllUsesWith(ConstantExpr::getBitCast(NG,
-                             G1->getType()));
-      G2->replaceAllUsesWith(ConstantExpr::getBitCast(NG, 
-                             G2->getType()));
-
-      // Remove the two globals from the module now...
-      M->getGlobalList().erase(G1);
-      M->getGlobalList().erase(G2);
-
-      // Put the new global into the AppendingVars map so that we can handle
-      // linking of more than two vars...
-      Second->second = NG;
-    }
-    AppendingVars.erase(First);
-  }
-
-  return false;
-}
-
-static bool ResolveAliases(Module *Dest) {
-  for (Module::alias_iterator I = Dest->alias_begin(), E = Dest->alias_end();
-       I != E; ++I)
-    if (const GlobalValue *GV = I->resolveAliasedGlobal())
-      if (GV != I && !GV->isDeclaration())
-        I->replaceAllUsesWith(const_cast<GlobalValue*>(GV));
-
-  return false;
-}
-
-// LinkModules - This function links two modules together, with the resulting
-// left module modified to be the composite of the two input modules.  If an
-// error occurs, true is returned and ErrorMsg (if not null) is set to indicate
-// the problem.  Upon failure, the Dest module could be in a modified state, and
-// shouldn't be relied on to be consistent.
-bool
-Linker::LinkModules(Module *Dest, Module *Src, std::string *ErrorMsg) {
-  assert(Dest != 0 && "Invalid Destination module");
-  assert(Src  != 0 && "Invalid Source Module");
-
-  if (Dest->getDataLayout().empty()) {
-    if (!Src->getDataLayout().empty()) {
-      Dest->setDataLayout(Src->getDataLayout());
-    } else {
-      std::string DataLayout;
-
-      if (Dest->getEndianness() == Module::AnyEndianness) {
-        if (Src->getEndianness() == Module::BigEndian)
-          DataLayout.append("E");
-        else if (Src->getEndianness() == Module::LittleEndian)
-          DataLayout.append("e");
-      }
-
-      if (Dest->getPointerSize() == Module::AnyPointerSize) {
-        if (Src->getPointerSize() == Module::Pointer64)
-          DataLayout.append(DataLayout.length() == 0 ? "p:64:64" : "-p:64:64");
-        else if (Src->getPointerSize() == Module::Pointer32)
-          DataLayout.append(DataLayout.length() == 0 ? "p:32:32" : "-p:32:32");
-      }
-      Dest->setDataLayout(DataLayout);
-    }
-  }
-
-  // Copy the target triple from the source to dest if the dest's is empty.
-  if (Dest->getTargetTriple().empty() && !Src->getTargetTriple().empty())
-    Dest->setTargetTriple(Src->getTargetTriple());
-
-  if (!Src->getDataLayout().empty() && !Dest->getDataLayout().empty() &&
-      Src->getDataLayout() != Dest->getDataLayout())
-    errs() << "WARNING: Linking two modules of different data layouts!\n";
-  if (!Src->getTargetTriple().empty() &&
-      Dest->getTargetTriple() != Src->getTargetTriple())
-    errs() << "WARNING: Linking two modules of different target triples!\n";
-
-  // Append the module inline asm string.
-  if (!Src->getModuleInlineAsm().empty()) {
-    if (Dest->getModuleInlineAsm().empty())
-      Dest->setModuleInlineAsm(Src->getModuleInlineAsm());
-    else
-      Dest->setModuleInlineAsm(Dest->getModuleInlineAsm()+"\n"+
-                               Src->getModuleInlineAsm());
-  }
-
-  // Update the destination module's dependent libraries list with the libraries
-  // from the source module. There's no opportunity for duplicates here as the
-  // Module ensures that duplicate insertions are discarded.
-  for (Module::lib_iterator SI = Src->lib_begin(), SE = Src->lib_end();
-       SI != SE; ++SI)
-    Dest->addLibrary(*SI);
-
-  // LinkTypes - Go through the symbol table of the Src module and see if any
-  // types are named in the src module that are not named in the Dst module.
-  // Make sure there are no type name conflicts.
-  if (LinkTypes(Dest, Src, ErrorMsg))
-    return true;
-
-  // ValueMap - Mapping of values from what they used to be in Src, to what they
-  // are now in Dest.
-  std::map<const Value*, Value*> ValueMap;
-
-  // AppendingVars - Keep track of global variables in the destination module
-  // with appending linkage.  After the module is linked together, they are
-  // appended and the module is rewritten.
-  std::multimap<std::string, GlobalVariable *> AppendingVars;
-  for (Module::global_iterator I = Dest->global_begin(), E = Dest->global_end();
-       I != E; ++I) {
-    // Add all of the appending globals already in the Dest module to
-    // AppendingVars.
-    if (I->hasAppendingLinkage())
-      AppendingVars.insert(std::make_pair(I->getName(), I));
-  }
-
-  // Insert all of the named mdnoes in Src into the Dest module.
-  LinkNamedMDNodes(Dest, Src);
-
-  // Insert all of the globals in src into the Dest module... without linking
-  // initializers (which could refer to functions not yet mapped over).
-  if (LinkGlobals(Dest, Src, ValueMap, AppendingVars, ErrorMsg))
-    return true;
-
-  // Link the functions together between the two modules, without doing function
-  // bodies... this just adds external function prototypes to the Dest
-  // function...  We do this so that when we begin processing function bodies,
-  // all of the global values that may be referenced are available in our
-  // ValueMap.
-  if (LinkFunctionProtos(Dest, Src, ValueMap, ErrorMsg))
-    return true;
-
-  // If there were any alias, link them now. We really need to do this now,
-  // because all of the aliases that may be referenced need to be available in
-  // ValueMap
-  if (LinkAlias(Dest, Src, ValueMap, ErrorMsg)) return true;
-
-  // Update the initializers in the Dest module now that all globals that may
-  // be referenced are in Dest.
-  if (LinkGlobalInits(Dest, Src, ValueMap, ErrorMsg)) return true;
-
-  // Link in the function bodies that are defined in the source module into the
-  // DestModule.  This consists basically of copying the function over and
-  // fixing up references to values.
-  if (LinkFunctionBodies(Dest, Src, ValueMap, ErrorMsg)) return true;
-
-  // If there were any appending global variables, link them together now.
-  if (LinkAppendingVars(Dest, AppendingVars, ErrorMsg)) return true;
-
-  // Resolve all uses of aliases with aliasees
-  if (ResolveAliases(Dest)) return true;
-
-  // If the source library's module id is in the dependent library list of the
-  // destination library, remove it since that module is now linked in.
-  sys::Path modId;
-  modId.set(Src->getModuleIdentifier());
-  if (!modId.isEmpty())
-    Dest->removeLibrary(modId.getBasename());
-
-  return false;
-}
-
-// vim: sw=2
diff --git a/libclamav/c++/llvm/lib/Linker/Linker.cpp b/libclamav/c++/llvm/lib/Linker/Linker.cpp
deleted file mode 100644
index aef79d0..0000000
--- a/libclamav/c++/llvm/lib/Linker/Linker.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-//===- lib/Linker/Linker.cpp - Basic Linker functionality  ----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains basic Linker functionality that all usages will need.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Linker.h"
-#include "llvm/Module.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/System/Path.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/Config/config.h"
-using namespace llvm;
-
-Linker::Linker(const StringRef &progname, const StringRef &modname,
-               LLVMContext& C, unsigned flags): 
-  Context(C),
-  Composite(new Module(modname, C)),
-  LibPaths(),
-  Flags(flags),
-  Error(),
-  ProgramName(progname) { }
-
-Linker::Linker(const StringRef &progname, Module* aModule, unsigned flags) : 
-  Context(aModule->getContext()),
-  Composite(aModule),
-  LibPaths(),
-  Flags(flags),
-  Error(),
-  ProgramName(progname) { }
-
-Linker::~Linker() {
-  delete Composite;
-}
-
-bool
-Linker::error(const StringRef &message) {
-  Error = message;
-  if (!(Flags&QuietErrors))
-    errs() << ProgramName << ": error: " << message << "\n";
-  return true;
-}
-
-bool
-Linker::warning(const StringRef &message) {
-  Error = message;
-  if (!(Flags&QuietWarnings))
-    errs() << ProgramName << ": warning: " << message << "\n";
-  return false;
-}
-
-void
-Linker::verbose(const StringRef &message) {
-  if (Flags&Verbose)
-    errs() << "  " << message << "\n";
-}
-
-void
-Linker::addPath(const sys::Path& path) {
-  LibPaths.push_back(path);
-}
-
-void
-Linker::addPaths(const std::vector<std::string>& paths) {
-  for (unsigned i = 0, e = paths.size(); i != e; ++i)
-    LibPaths.push_back(sys::Path(paths[i]));
-}
-
-void
-Linker::addSystemPaths() {
-  sys::Path::GetBitcodeLibraryPaths(LibPaths);
-  LibPaths.insert(LibPaths.begin(),sys::Path("./"));
-}
-
-Module*
-Linker::releaseModule() {
-  Module* result = Composite;
-  LibPaths.clear();
-  Error.clear();
-  Composite = 0;
-  Flags = 0;
-  return result;
-}
-
-// LoadObject - Read in and parse the bitcode file named by FN and return the
-// module it contains (wrapped in an auto_ptr), or auto_ptr<Module>() and set
-// Error if an error occurs.
-std::auto_ptr<Module>
-Linker::LoadObject(const sys::Path &FN) {
-  std::string ParseErrorMessage;
-  Module *Result = 0;
-  
-  std::auto_ptr<MemoryBuffer> Buffer(MemoryBuffer::getFileOrSTDIN(FN.c_str()));
-  if (Buffer.get())
-    Result = ParseBitcodeFile(Buffer.get(), Context, &ParseErrorMessage);
-  else
-    ParseErrorMessage = "Error reading file '" + FN.str() + "'";
-    
-  if (Result)
-    return std::auto_ptr<Module>(Result);
-  Error = "Bitcode file '" + FN.str() + "' could not be loaded";
-  if (ParseErrorMessage.size())
-    Error += ": " + ParseErrorMessage;
-  return std::auto_ptr<Module>();
-}
-
-// IsLibrary - Determine if "Name" is a library in "Directory". Return
-// a non-empty sys::Path if its found, an empty one otherwise.
-static inline sys::Path IsLibrary(const StringRef &Name,
-                                  const sys::Path &Directory) {
-
-  sys::Path FullPath(Directory);
-
-  // Try the libX.a form
-  FullPath.appendComponent(("lib" + Name).str());
-  FullPath.appendSuffix("a");
-  if (FullPath.isArchive())
-    return FullPath;
-
-  // Try the libX.bca form
-  FullPath.eraseSuffix();
-  FullPath.appendSuffix("bca");
-  if (FullPath.isArchive())
-    return FullPath;
-
-  // Try the libX.so (or .dylib) form
-  FullPath.eraseSuffix();
-  FullPath.appendSuffix(&(LTDL_SHLIB_EXT[1]));
-  if (FullPath.isDynamicLibrary())  // Native shared library?
-    return FullPath;
-  if (FullPath.isBitcodeFile())    // .so file containing bitcode?
-    return FullPath;
-
-  // Not found .. fall through
-
-  // Indicate that the library was not found in the directory.
-  FullPath.clear();
-  return FullPath;
-}
-
-/// FindLib - Try to convert Filename into the name of a file that we can open,
-/// if it does not already name a file we can open, by first trying to open
-/// Filename, then libFilename.[suffix] for each of a set of several common
-/// library suffixes, in each of the directories in LibPaths. Returns an empty
-/// Path if no matching file can be found.
-///
-sys::Path
-Linker::FindLib(const StringRef &Filename) {
-  // Determine if the pathname can be found as it stands.
-  sys::Path FilePath(Filename);
-  if (FilePath.canRead() &&
-      (FilePath.isArchive() || FilePath.isDynamicLibrary()))
-    return FilePath;
-
-  // Iterate over the directories in Paths to see if we can find the library
-  // there.
-  for (unsigned Index = 0; Index != LibPaths.size(); ++Index) {
-    sys::Path Directory(LibPaths[Index]);
-    sys::Path FullPath = IsLibrary(Filename, Directory);
-    if (!FullPath.isEmpty())
-      return FullPath;
-  }
-  return sys::Path();
-}
diff --git a/libclamav/c++/llvm/lib/Linker/Makefile b/libclamav/c++/llvm/lib/Linker/Makefile
deleted file mode 100644
index 19e646b..0000000
--- a/libclamav/c++/llvm/lib/Linker/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Linker/Makefile ---------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-LIBRARYNAME = LLVMLinker
-BUILD_ARCHIVE := 1
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/Alpha.h b/libclamav/c++/llvm/lib/Target/Alpha/Alpha.h
deleted file mode 100644
index b8a0645..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/Alpha.h
+++ /dev/null
@@ -1,52 +0,0 @@
-//===-- Alpha.h - Top-level interface for Alpha representation --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in the LLVM
-// Alpha back-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TARGET_ALPHA_H
-#define TARGET_ALPHA_H
-
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-
-  class AlphaTargetMachine;
-  class FunctionPass;
-  class MachineCodeEmitter;
-  class ObjectCodeEmitter;
-  class formatted_raw_ostream;
-
-  FunctionPass *createAlphaISelDag(AlphaTargetMachine &TM);
-  FunctionPass *createAlphaPatternInstructionSelector(TargetMachine &TM);
-  FunctionPass *createAlphaCodeEmitterPass(AlphaTargetMachine &TM,
-                                           MachineCodeEmitter &MCE);
-  FunctionPass *createAlphaJITCodeEmitterPass(AlphaTargetMachine &TM,
-                                              JITCodeEmitter &JCE);
-  FunctionPass *createAlphaObjectCodeEmitterPass(AlphaTargetMachine &TM,
-                                                 ObjectCodeEmitter &OCE);
-  FunctionPass *createAlphaLLRPPass(AlphaTargetMachine &tm);
-  FunctionPass *createAlphaBranchSelectionPass();
-
-  extern Target TheAlphaTarget;
-
-} // end namespace llvm;
-
-// Defines symbolic names for Alpha registers.  This defines a mapping from
-// register name to register number.
-//
-#include "AlphaGenRegisterNames.inc"
-
-// Defines symbolic names for the Alpha instructions.
-//
-#include "AlphaGenInstrNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/Alpha.td b/libclamav/c++/llvm/lib/Target/Alpha/Alpha.td
deleted file mode 100644
index 6efdf55..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/Alpha.td
+++ /dev/null
@@ -1,72 +0,0 @@
-//===- Alpha.td - Describe the Alpha Target Machine --------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-// Get the target-independent interfaces which we are implementing...
-//
-include "llvm/Target/Target.td"
-
-//Alpha is little endian
-
-//===----------------------------------------------------------------------===//
-// Subtarget Features
-//===----------------------------------------------------------------------===//
-
-def FeatureCIX : SubtargetFeature<"cix", "HasCT", "true",
-                                  "Enable CIX extentions">;
-
-//===----------------------------------------------------------------------===//
-// Register File Description
-//===----------------------------------------------------------------------===//
-
-include "AlphaRegisterInfo.td"
-
-//===----------------------------------------------------------------------===//
-// Calling Convention Description
-//===----------------------------------------------------------------------===//
-
-include "AlphaCallingConv.td"
-
-//===----------------------------------------------------------------------===//
-// Schedule Description
-//===----------------------------------------------------------------------===//
-
-include "AlphaSchedule.td"
-
-//===----------------------------------------------------------------------===//
-// Instruction Descriptions
-//===----------------------------------------------------------------------===//
-
-include "AlphaInstrInfo.td"
-
-def AlphaInstrInfo : InstrInfo {
-  // Define how we want to layout our target-specific information field.
- // let TSFlagsFields = [];
- // let TSFlagsShifts = [];
-}
-
-//===----------------------------------------------------------------------===//
-// Alpha Processor Definitions
-//===----------------------------------------------------------------------===//
-
-def : Processor<"generic", Alpha21264Itineraries, []>;
-def : Processor<"ev6"    , Alpha21264Itineraries, []>;
-def : Processor<"ev67"   , Alpha21264Itineraries, [FeatureCIX]>;
-
-//===----------------------------------------------------------------------===//
-// The Alpha Target
-//===----------------------------------------------------------------------===//
-
-
-def Alpha : Target {
-  // Pull in Instruction Info:
-  let InstructionSet = AlphaInstrInfo;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaBranchSelector.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaBranchSelector.cpp
deleted file mode 100644
index 719ffae..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaBranchSelector.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===-- AlphaBranchSelector.cpp - Convert Pseudo branchs ----------*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Replace Pseudo COND_BRANCH_* with their appropriate real branch
-// Simplified version of the PPC Branch Selector
-//
-//===----------------------------------------------------------------------===//
-
-#include "Alpha.h"
-#include "AlphaInstrInfo.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/MC/MCAsmInfo.h"
-using namespace llvm;
-
-namespace {
-  struct VISIBILITY_HIDDEN AlphaBSel : public MachineFunctionPass {
-    static char ID;
-    AlphaBSel() : MachineFunctionPass(&ID) {}
-
-    virtual bool runOnMachineFunction(MachineFunction &Fn);
-
-    virtual const char *getPassName() const {
-      return "Alpha Branch Selection";
-    }
-  };
-  char AlphaBSel::ID = 0;
-}
-
-/// createAlphaBranchSelectionPass - returns an instance of the Branch Selection
-/// Pass
-///
-FunctionPass *llvm::createAlphaBranchSelectionPass() {
-  return new AlphaBSel();
-}
-
-bool AlphaBSel::runOnMachineFunction(MachineFunction &Fn) {
-
-  for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E;
-       ++MFI) {
-    MachineBasicBlock *MBB = MFI;
-    
-    for (MachineBasicBlock::iterator MBBI = MBB->begin(), EE = MBB->end();
-         MBBI != EE; ++MBBI) {
-      if (MBBI->getOpcode() == Alpha::COND_BRANCH_I ||
-          MBBI->getOpcode() == Alpha::COND_BRANCH_F) {
-        
-        // condbranch operands:
-        // 0. bc opcode
-        // 1. reg
-        // 2. target MBB
-        const TargetInstrInfo *TII = Fn.getTarget().getInstrInfo();
-        MBBI->setDesc(TII->get(MBBI->getOperand(0).getImm()));
-      }
-    }
-  }
-  
-  return true;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaCallingConv.td b/libclamav/c++/llvm/lib/Target/Alpha/AlphaCallingConv.td
deleted file mode 100644
index 38ada69..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaCallingConv.td
+++ /dev/null
@@ -1,37 +0,0 @@
-//===- AlphaCallingConv.td - Calling Conventions for Alpha -*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This describes the calling conventions for Alpha architecture.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Alpha Return Value Calling Convention
-//===----------------------------------------------------------------------===//
-def RetCC_Alpha : CallingConv<[
-  // i64 is returned in register R0
-  CCIfType<[i64], CCAssignToReg<[R0]>>,
-
-  // f32 / f64 are returned in F0/F1
-  CCIfType<[f32, f64], CCAssignToReg<[F0, F1]>>
-]>;
-
-//===----------------------------------------------------------------------===//
-// Alpha Argument Calling Conventions
-//===----------------------------------------------------------------------===//
-def CC_Alpha : CallingConv<[
-  // The first 6 arguments are passed in registers, whether integer or
-  // floating-point
-  CCIfType<[i64], CCAssignToRegWithShadow<[R16, R17, R18, R19, R20, R21],
-                                          [F16, F17, F18, F19, F20, F21]>>,
-
-  CCIfType<[f32, f64], CCAssignToRegWithShadow<[F16, F17, F18, F19, F20, F21],
-                                               [R16, R17, R18, R19, R20, R21]>>,
-
-  // Stack slots are 8 bytes in size and 8-byte aligned.
-  CCIfType<[i64, f32, f64], CCAssignToStack<8, 8>>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp
deleted file mode 100644
index 735708c..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-//===-- Alpha/AlphaCodeEmitter.cpp - Convert Alpha code to machine code ---===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the pass that transforms the Alpha machine instructions
-// into relocatable machine code.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "alpha-emitter"
-#include "AlphaTargetMachine.h"
-#include "AlphaRelocations.h"
-#include "Alpha.h"
-#include "llvm/PassManager.h"
-#include "llvm/CodeGen/MachineCodeEmitter.h"
-#include "llvm/CodeGen/JITCodeEmitter.h"
-#include "llvm/CodeGen/ObjectCodeEmitter.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/CodeGen/Passes.h"
-#include "llvm/Function.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-namespace {
-  	
-  class AlphaCodeEmitter {
-    MachineCodeEmitter &MCE;
-  public:
-    AlphaCodeEmitter(MachineCodeEmitter &mce) : MCE(mce) {}
-
-    /// getBinaryCodeForInstr - This function, generated by the
-    /// CodeEmitterGenerator using TableGen, produces the binary encoding for
-    /// machine instructions.
-
-    unsigned getBinaryCodeForInstr(const MachineInstr &MI);
-
-    /// getMachineOpValue - evaluates the MachineOperand of a given MachineInstr
-
-    unsigned getMachineOpValue(const MachineInstr &MI,
-                               const MachineOperand &MO);
-  };
-
-  template <class CodeEmitter>
-  class VISIBILITY_HIDDEN Emitter : public MachineFunctionPass,
-      public AlphaCodeEmitter
-  {
-    const AlphaInstrInfo  *II;
-    TargetMachine         &TM;
-    CodeEmitter           &MCE;
-
-  public:
-    static char ID;
-    explicit Emitter(TargetMachine &tm, CodeEmitter &mce)
-      : MachineFunctionPass(&ID), AlphaCodeEmitter(mce), 
-        II(0), TM(tm), MCE(mce) {}
-    Emitter(TargetMachine &tm, CodeEmitter &mce, const AlphaInstrInfo& ii)
-      : MachineFunctionPass(&ID), AlphaCodeEmitter(mce),
-        II(&ii), TM(tm), MCE(mce) {}
-
-    bool runOnMachineFunction(MachineFunction &MF);
-
-    virtual const char *getPassName() const {
-      return "Alpha Machine Code Emitter";
-    }
-
-  private:
-    void emitBasicBlock(MachineBasicBlock &MBB);
-  };
-
-  template <class CodeEmitter>
-    char Emitter<CodeEmitter>::ID = 0;
-}
-
-/// createAlphaCodeEmitterPass - Return a pass that emits the collected Alpha
-/// code to the specified MCE object.
-
-FunctionPass *llvm::createAlphaCodeEmitterPass(AlphaTargetMachine &TM,
-                                               MachineCodeEmitter &MCE) {
-  return new Emitter<MachineCodeEmitter>(TM, MCE);
-}
-
-FunctionPass *llvm::createAlphaJITCodeEmitterPass(AlphaTargetMachine &TM,
-                                                  JITCodeEmitter &JCE) {
-  return new Emitter<JITCodeEmitter>(TM, JCE);
-}
-FunctionPass *llvm::createAlphaObjectCodeEmitterPass(AlphaTargetMachine &TM,
-                                                     ObjectCodeEmitter &OCE) {
-  return new Emitter<ObjectCodeEmitter>(TM, OCE);
-}
-
-template <class CodeEmitter>
-bool Emitter<CodeEmitter>::runOnMachineFunction(MachineFunction &MF) {
-  II = ((AlphaTargetMachine&)MF.getTarget()).getInstrInfo();
-
-  do {
-    MCE.startFunction(MF);
-    for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ++I)
-      emitBasicBlock(*I);
-  } while (MCE.finishFunction(MF));
-
-  return false;
-}
-
-template <class CodeEmitter>
-void Emitter<CodeEmitter>::emitBasicBlock(MachineBasicBlock &MBB) {
-  MCE.StartMachineBasicBlock(&MBB);
-  for (MachineBasicBlock::iterator I = MBB.begin(), E = MBB.end();
-       I != E; ++I) {
-    const MachineInstr &MI = *I;
-    MCE.processDebugLoc(MI.getDebugLoc());
-    switch(MI.getOpcode()) {
-    default:
-      MCE.emitWordLE(getBinaryCodeForInstr(*I));
-      break;
-    case Alpha::ALTENT:
-    case Alpha::PCLABEL:
-    case Alpha::MEMLABEL:
-    case TargetInstrInfo::IMPLICIT_DEF:
-      break; //skip these
-    }
-  }
-}
-
-static unsigned getAlphaRegNumber(unsigned Reg) {
-  switch (Reg) {
-  case Alpha::R0  : case Alpha::F0  : return 0;
-  case Alpha::R1  : case Alpha::F1  : return 1;
-  case Alpha::R2  : case Alpha::F2  : return 2;
-  case Alpha::R3  : case Alpha::F3  : return 3;
-  case Alpha::R4  : case Alpha::F4  : return 4;
-  case Alpha::R5  : case Alpha::F5  : return 5;
-  case Alpha::R6  : case Alpha::F6  : return 6;
-  case Alpha::R7  : case Alpha::F7  : return 7;
-  case Alpha::R8  : case Alpha::F8  : return 8;
-  case Alpha::R9  : case Alpha::F9  : return 9;
-  case Alpha::R10 : case Alpha::F10 : return 10;
-  case Alpha::R11 : case Alpha::F11 : return 11;
-  case Alpha::R12 : case Alpha::F12 : return 12;
-  case Alpha::R13 : case Alpha::F13 : return 13;
-  case Alpha::R14 : case Alpha::F14 : return 14;
-  case Alpha::R15 : case Alpha::F15 : return 15;
-  case Alpha::R16 : case Alpha::F16 : return 16;
-  case Alpha::R17 : case Alpha::F17 : return 17;
-  case Alpha::R18 : case Alpha::F18 : return 18;
-  case Alpha::R19 : case Alpha::F19 : return 19;
-  case Alpha::R20 : case Alpha::F20 : return 20;
-  case Alpha::R21 : case Alpha::F21 : return 21;
-  case Alpha::R22 : case Alpha::F22 : return 22;
-  case Alpha::R23 : case Alpha::F23 : return 23;
-  case Alpha::R24 : case Alpha::F24 : return 24;
-  case Alpha::R25 : case Alpha::F25 : return 25;
-  case Alpha::R26 : case Alpha::F26 : return 26;
-  case Alpha::R27 : case Alpha::F27 : return 27;
-  case Alpha::R28 : case Alpha::F28 : return 28;
-  case Alpha::R29 : case Alpha::F29 : return 29;
-  case Alpha::R30 : case Alpha::F30 : return 30;
-  case Alpha::R31 : case Alpha::F31 : return 31;
-  default:
-    llvm_unreachable("Unhandled reg");
-  }
-}
-
-unsigned AlphaCodeEmitter::getMachineOpValue(const MachineInstr &MI,
-                                             const MachineOperand &MO) {
-
-  unsigned rv = 0; // Return value; defaults to 0 for unhandled cases
-                   // or things that get fixed up later by the JIT.
-
-  if (MO.isReg()) {
-    rv = getAlphaRegNumber(MO.getReg());
-  } else if (MO.isImm()) {
-    rv = MO.getImm();
-  } else if (MO.isGlobal() || MO.isSymbol() || MO.isCPI()) {
-    DEBUG(errs() << MO << " is a relocated op for " << MI << "\n");
-    unsigned Reloc = 0;
-    int Offset = 0;
-    bool useGOT = false;
-    switch (MI.getOpcode()) {
-    case Alpha::BSR:
-      Reloc = Alpha::reloc_bsr;
-      break;
-    case Alpha::LDLr:
-    case Alpha::LDQr:
-    case Alpha::LDBUr:
-    case Alpha::LDWUr:
-    case Alpha::LDSr:
-    case Alpha::LDTr:
-    case Alpha::LDAr:
-    case Alpha::STQr:
-    case Alpha::STLr:
-    case Alpha::STWr:
-    case Alpha::STBr:
-    case Alpha::STSr:
-    case Alpha::STTr:
-      Reloc = Alpha::reloc_gprellow;
-      break;
-    case Alpha::LDAHr:
-      Reloc = Alpha::reloc_gprelhigh;
-      break;
-    case Alpha::LDQl:
-      Reloc = Alpha::reloc_literal;
-      useGOT = true;
-      break;
-    case Alpha::LDAg:
-    case Alpha::LDAHg:
-      Reloc = Alpha::reloc_gpdist;
-      Offset = MI.getOperand(3).getImm();
-      break;
-    default:
-      llvm_unreachable("unknown relocatable instruction");
-    }
-    if (MO.isGlobal())
-      MCE.addRelocation(MachineRelocation::getGV(MCE.getCurrentPCOffset(),
-                                                 Reloc, MO.getGlobal(), Offset,
-                                                 isa<Function>(MO.getGlobal()),
-                                                 useGOT));
-    else if (MO.isSymbol())
-      MCE.addRelocation(MachineRelocation::getExtSym(MCE.getCurrentPCOffset(),
-                                                     Reloc, MO.getSymbolName(),
-                                                     Offset, true));
-    else
-     MCE.addRelocation(MachineRelocation::getConstPool(MCE.getCurrentPCOffset(),
-                                          Reloc, MO.getIndex(), Offset));
-  } else if (MO.isMBB()) {
-    MCE.addRelocation(MachineRelocation::getBB(MCE.getCurrentPCOffset(),
-                                               Alpha::reloc_bsr, MO.getMBB()));
-  } else {
-#ifndef NDEBUG
-    errs() << "ERROR: Unknown type of MachineOperand: " << MO << "\n";
-#endif
-    llvm_unreachable(0);
-  }
-
-  return rv;
-}
-
-#include "AlphaGenCodeEmitter.inc"
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
deleted file mode 100644
index c40bba3..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
+++ /dev/null
@@ -1,457 +0,0 @@
-//===-- AlphaISelDAGToDAG.cpp - Alpha pattern matching inst selector ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a pattern matching instruction selector for Alpha,
-// converting from a legalized dag to a Alpha dag.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Alpha.h"
-#include "AlphaTargetMachine.h"
-#include "AlphaISelLowering.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/GlobalValue.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/MathExtras.h"
-#include "llvm/Support/raw_ostream.h"
-#include <algorithm>
-using namespace llvm;
-
-namespace {
-
-  //===--------------------------------------------------------------------===//
-  /// AlphaDAGToDAGISel - Alpha specific code to select Alpha machine
-  /// instructions for SelectionDAG operations.
-  class AlphaDAGToDAGISel : public SelectionDAGISel {
-    static const int64_t IMM_LOW  = -32768;
-    static const int64_t IMM_HIGH = 32767;
-    static const int64_t IMM_MULT = 65536;
-    static const int64_t IMM_FULLHIGH = IMM_HIGH + IMM_HIGH * IMM_MULT;
-    static const int64_t IMM_FULLLOW = IMM_LOW + IMM_LOW  * IMM_MULT;
-
-    static int64_t get_ldah16(int64_t x) {
-      int64_t y = x / IMM_MULT;
-      if (x % IMM_MULT > IMM_HIGH)
-        ++y;
-      return y;
-    }
-
-    static int64_t get_lda16(int64_t x) {
-      return x - get_ldah16(x) * IMM_MULT;
-    }
-
-    /// get_zapImm - Return a zap mask if X is a valid immediate for a zapnot
-    /// instruction (if not, return 0).  Note that this code accepts partial
-    /// zap masks.  For example (and LHS, 1) is a valid zap, as long we know
-    /// that the bits 1-7 of LHS are already zero.  If LHS is non-null, we are
-    /// in checking mode.  If LHS is null, we assume that the mask has already
-    /// been validated before.
-    uint64_t get_zapImm(SDValue LHS, uint64_t Constant) {
-      uint64_t BitsToCheck = 0;
-      unsigned Result = 0;
-      for (unsigned i = 0; i != 8; ++i) {
-        if (((Constant >> 8*i) & 0xFF) == 0) {
-          // nothing to do.
-        } else {
-          Result |= 1 << i;
-          if (((Constant >> 8*i) & 0xFF) == 0xFF) {
-            // If the entire byte is set, zapnot the byte.
-          } else if (LHS.getNode() == 0) {
-            // Otherwise, if the mask was previously validated, we know its okay
-            // to zapnot this entire byte even though all the bits aren't set.
-          } else {
-            // Otherwise we don't know that the it's okay to zapnot this entire
-            // byte.  Only do this iff we can prove that the missing bits are
-            // already null, so the bytezap doesn't need to really null them.
-            BitsToCheck |= ~Constant & (0xFF << 8*i);
-          }
-        }
-      }
-      
-      // If there are missing bits in a byte (for example, X & 0xEF00), check to
-      // see if the missing bits (0x1000) are already known zero if not, the zap
-      // isn't okay to do, as it won't clear all the required bits.
-      if (BitsToCheck &&
-          !CurDAG->MaskedValueIsZero(LHS,
-                                     APInt(LHS.getValueSizeInBits(),
-                                           BitsToCheck)))
-        return 0;
-      
-      return Result;
-    }
-    
-    static uint64_t get_zapImm(uint64_t x) {
-      unsigned build = 0;
-      for(int i = 0; i != 8; ++i) {
-        if ((x & 0x00FF) == 0x00FF)
-          build |= 1 << i;
-        else if ((x & 0x00FF) != 0)
-          return 0;
-        x >>= 8;
-      }
-      return build;
-    }
-      
-    
-    static uint64_t getNearPower2(uint64_t x) {
-      if (!x) return 0;
-      unsigned at = CountLeadingZeros_64(x);
-      uint64_t complow = 1 << (63 - at);
-      uint64_t comphigh = 1 << (64 - at);
-      //cerr << x << ":" << complow << ":" << comphigh << "\n";
-      if (abs64(complow - x) <= abs64(comphigh - x))
-        return complow;
-      else
-        return comphigh;
-    }
-
-    static bool chkRemNearPower2(uint64_t x, uint64_t r, bool swap) {
-      uint64_t y = getNearPower2(x);
-      if (swap)
-        return (y - x) == r;
-      else
-        return (x - y) == r;
-    }
-
-    static bool isFPZ(SDValue N) {
-      ConstantFPSDNode *CN = dyn_cast<ConstantFPSDNode>(N);
-      return (CN && (CN->getValueAPF().isZero()));
-    }
-    static bool isFPZn(SDValue N) {
-      ConstantFPSDNode *CN = dyn_cast<ConstantFPSDNode>(N);
-      return (CN && CN->getValueAPF().isNegZero());
-    }
-    static bool isFPZp(SDValue N) {
-      ConstantFPSDNode *CN = dyn_cast<ConstantFPSDNode>(N);
-      return (CN && CN->getValueAPF().isPosZero());
-    }
-
-  public:
-    explicit AlphaDAGToDAGISel(AlphaTargetMachine &TM)
-      : SelectionDAGISel(TM)
-    {}
-
-    /// getI64Imm - Return a target constant with the specified value, of type
-    /// i64.
-    inline SDValue getI64Imm(int64_t Imm) {
-      return CurDAG->getTargetConstant(Imm, MVT::i64);
-    }
-
-    // Select - Convert the specified operand from a target-independent to a
-    // target-specific node if it hasn't already been changed.
-    SDNode *Select(SDValue Op);
-    
-    /// InstructionSelect - This callback is invoked by
-    /// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-    virtual void InstructionSelect();
-    
-    virtual const char *getPassName() const {
-      return "Alpha DAG->DAG Pattern Instruction Selection";
-    } 
-
-    /// SelectInlineAsmMemoryOperand - Implement addressing mode selection for
-    /// inline asm expressions.
-    virtual bool SelectInlineAsmMemoryOperand(const SDValue &Op,
-                                              char ConstraintCode,
-                                              std::vector<SDValue> &OutOps) {
-      SDValue Op0;
-      switch (ConstraintCode) {
-      default: return true;
-      case 'm':   // memory
-        Op0 = Op;
-        break;
-      }
-      
-      OutOps.push_back(Op0);
-      return false;
-    }
-    
-// Include the pieces autogenerated from the target description.
-#include "AlphaGenDAGISel.inc"
-    
-private:
-    /// getTargetMachine - Return a reference to the TargetMachine, casted
-    /// to the target-specific type.
-    const AlphaTargetMachine &getTargetMachine() {
-      return static_cast<const AlphaTargetMachine &>(TM);
-    }
-
-    /// getInstrInfo - Return a reference to the TargetInstrInfo, casted
-    /// to the target-specific type.
-    const AlphaInstrInfo *getInstrInfo() {
-      return getTargetMachine().getInstrInfo();
-    }
-
-    SDNode *getGlobalBaseReg();
-    SDNode *getGlobalRetAddr();
-    void SelectCALL(SDValue Op);
-
-  };
-}
-
-/// getGlobalBaseReg - Output the instructions required to put the
-/// GOT address into a register.
-///
-SDNode *AlphaDAGToDAGISel::getGlobalBaseReg() {
-  unsigned GlobalBaseReg = getInstrInfo()->getGlobalBaseReg(MF);
-  return CurDAG->getRegister(GlobalBaseReg, TLI.getPointerTy()).getNode();
-}
-
-/// getGlobalRetAddr - Grab the return address.
-///
-SDNode *AlphaDAGToDAGISel::getGlobalRetAddr() {
-  unsigned GlobalRetAddr = getInstrInfo()->getGlobalRetAddr(MF);
-  return CurDAG->getRegister(GlobalRetAddr, TLI.getPointerTy()).getNode();
-}
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void AlphaDAGToDAGISel::InstructionSelect() {
-  DEBUG(BB->dump());
-  
-  // Select target instructions for the DAG.
-  SelectRoot(*CurDAG);
-  CurDAG->RemoveDeadNodes();
-}
-
-// Select - Convert the specified operand from a target-independent to a
-// target-specific node if it hasn't already been changed.
-SDNode *AlphaDAGToDAGISel::Select(SDValue Op) {
-  SDNode *N = Op.getNode();
-  if (N->isMachineOpcode()) {
-    return NULL;   // Already selected.
-  }
-  DebugLoc dl = N->getDebugLoc();
-
-  switch (N->getOpcode()) {
-  default: break;
-  case AlphaISD::CALL:
-    SelectCALL(Op);
-    return NULL;
-
-  case ISD::FrameIndex: {
-    int FI = cast<FrameIndexSDNode>(N)->getIndex();
-    return CurDAG->SelectNodeTo(N, Alpha::LDA, MVT::i64,
-                                CurDAG->getTargetFrameIndex(FI, MVT::i32),
-                                getI64Imm(0));
-  }
-  case ISD::GLOBAL_OFFSET_TABLE:
-    return getGlobalBaseReg();
-  case AlphaISD::GlobalRetAddr:
-    return getGlobalRetAddr();
-  
-  case AlphaISD::DivCall: {
-    SDValue Chain = CurDAG->getEntryNode();
-    SDValue N0 = Op.getOperand(0);
-    SDValue N1 = Op.getOperand(1);
-    SDValue N2 = Op.getOperand(2);
-    Chain = CurDAG->getCopyToReg(Chain, dl, Alpha::R24, N1, 
-                                 SDValue(0,0));
-    Chain = CurDAG->getCopyToReg(Chain, dl, Alpha::R25, N2, 
-                                 Chain.getValue(1));
-    Chain = CurDAG->getCopyToReg(Chain, dl, Alpha::R27, N0, 
-                                 Chain.getValue(1));
-    SDNode *CNode =
-      CurDAG->getTargetNode(Alpha::JSRs, dl, MVT::Other, MVT::Flag, 
-                            Chain, Chain.getValue(1));
-    Chain = CurDAG->getCopyFromReg(Chain, dl, Alpha::R27, MVT::i64, 
-                                   SDValue(CNode, 1));
-    return CurDAG->SelectNodeTo(N, Alpha::BISr, MVT::i64, Chain, Chain);
-  }
-
-  case ISD::READCYCLECOUNTER: {
-    SDValue Chain = N->getOperand(0);
-    return CurDAG->getTargetNode(Alpha::RPCC, dl, MVT::i64, MVT::Other,
-                                 Chain);
-  }
-
-  case ISD::Constant: {
-    uint64_t uval = cast<ConstantSDNode>(N)->getZExtValue();
-    
-    if (uval == 0) {
-      SDValue Result = CurDAG->getCopyFromReg(CurDAG->getEntryNode(), dl,
-                                                Alpha::R31, MVT::i64);
-      ReplaceUses(Op, Result);
-      return NULL;
-    }
-
-    int64_t val = (int64_t)uval;
-    int32_t val32 = (int32_t)val;
-    if (val <= IMM_HIGH + IMM_HIGH * IMM_MULT &&
-        val >= IMM_LOW  + IMM_LOW  * IMM_MULT)
-      break; //(LDAH (LDA))
-    if ((uval >> 32) == 0 && //empty upper bits
-        val32 <= IMM_HIGH + IMM_HIGH * IMM_MULT)
-      // val32 >= IMM_LOW  + IMM_LOW  * IMM_MULT) //always true
-      break; //(zext (LDAH (LDA)))
-    //Else use the constant pool
-    ConstantInt *C = ConstantInt::get(
-                                Type::getInt64Ty(*CurDAG->getContext()), uval);
-    SDValue CPI = CurDAG->getTargetConstantPool(C, MVT::i64);
-    SDNode *Tmp = CurDAG->getTargetNode(Alpha::LDAHr, dl, MVT::i64, CPI,
-                                        SDValue(getGlobalBaseReg(), 0));
-    return CurDAG->SelectNodeTo(N, Alpha::LDQr, MVT::i64, MVT::Other, 
-                                CPI, SDValue(Tmp, 0), CurDAG->getEntryNode());
-  }
-  case ISD::TargetConstantFP:
-  case ISD::ConstantFP: {
-    ConstantFPSDNode *CN = cast<ConstantFPSDNode>(N);
-    bool isDouble = N->getValueType(0) == MVT::f64;
-    EVT T = isDouble ? MVT::f64 : MVT::f32;
-    if (CN->getValueAPF().isPosZero()) {
-      return CurDAG->SelectNodeTo(N, isDouble ? Alpha::CPYST : Alpha::CPYSS,
-                                  T, CurDAG->getRegister(Alpha::F31, T),
-                                  CurDAG->getRegister(Alpha::F31, T));
-    } else if (CN->getValueAPF().isNegZero()) {
-      return CurDAG->SelectNodeTo(N, isDouble ? Alpha::CPYSNT : Alpha::CPYSNS,
-                                  T, CurDAG->getRegister(Alpha::F31, T),
-                                  CurDAG->getRegister(Alpha::F31, T));
-    } else {
-      llvm_report_error("Unhandled FP constant type");
-    }
-    break;
-  }
-
-  case ISD::SETCC:
-    if (N->getOperand(0).getNode()->getValueType(0).isFloatingPoint()) {
-      ISD::CondCode CC = cast<CondCodeSDNode>(N->getOperand(2))->get();
-
-      unsigned Opc = Alpha::WTF;
-      bool rev = false;
-      bool inv = false;
-      switch(CC) {
-      default: DEBUG(N->dump(CurDAG)); llvm_unreachable("Unknown FP comparison!");
-      case ISD::SETEQ: case ISD::SETOEQ: case ISD::SETUEQ:
-        Opc = Alpha::CMPTEQ; break;
-      case ISD::SETLT: case ISD::SETOLT: case ISD::SETULT: 
-        Opc = Alpha::CMPTLT; break;
-      case ISD::SETLE: case ISD::SETOLE: case ISD::SETULE: 
-        Opc = Alpha::CMPTLE; break;
-      case ISD::SETGT: case ISD::SETOGT: case ISD::SETUGT: 
-        Opc = Alpha::CMPTLT; rev = true; break;
-      case ISD::SETGE: case ISD::SETOGE: case ISD::SETUGE: 
-        Opc = Alpha::CMPTLE; rev = true; break;
-      case ISD::SETNE: case ISD::SETONE: case ISD::SETUNE:
-        Opc = Alpha::CMPTEQ; inv = true; break;
-      case ISD::SETO:
-        Opc = Alpha::CMPTUN; inv = true; break;
-      case ISD::SETUO:
-        Opc = Alpha::CMPTUN; break;
-      };
-      SDValue tmp1 = N->getOperand(rev?1:0);
-      SDValue tmp2 = N->getOperand(rev?0:1);
-      SDNode *cmp = CurDAG->getTargetNode(Opc, dl, MVT::f64, tmp1, tmp2);
-      if (inv) 
-        cmp = CurDAG->getTargetNode(Alpha::CMPTEQ, dl, 
-                                    MVT::f64, SDValue(cmp, 0), 
-                                    CurDAG->getRegister(Alpha::F31, MVT::f64));
-      switch(CC) {
-      case ISD::SETUEQ: case ISD::SETULT: case ISD::SETULE:
-      case ISD::SETUNE: case ISD::SETUGT: case ISD::SETUGE:
-       {
-         SDNode* cmp2 = CurDAG->getTargetNode(Alpha::CMPTUN, dl, MVT::f64,
-                                              tmp1, tmp2);
-         cmp = CurDAG->getTargetNode(Alpha::ADDT, dl, MVT::f64, 
-                                     SDValue(cmp2, 0), SDValue(cmp, 0));
-         break;
-       }
-      default: break;
-      }
-
-      SDNode* LD = CurDAG->getTargetNode(Alpha::FTOIT, dl,
-                                         MVT::i64, SDValue(cmp, 0));
-      return CurDAG->getTargetNode(Alpha::CMPULT, dl, MVT::i64, 
-                                   CurDAG->getRegister(Alpha::R31, MVT::i64),
-                                   SDValue(LD,0));
-    }
-    break;
-
-  case ISD::AND: {
-    ConstantSDNode* SC = NULL;
-    ConstantSDNode* MC = NULL;
-    if (N->getOperand(0).getOpcode() == ISD::SRL &&
-        (MC = dyn_cast<ConstantSDNode>(N->getOperand(1))) &&
-        (SC = dyn_cast<ConstantSDNode>(N->getOperand(0).getOperand(1)))) {
-      uint64_t sval = SC->getZExtValue();
-      uint64_t mval = MC->getZExtValue();
-      // If the result is a zap, let the autogened stuff handle it.
-      if (get_zapImm(N->getOperand(0), mval))
-        break;
-      // given mask X, and shift S, we want to see if there is any zap in the
-      // mask if we play around with the botton S bits
-      uint64_t dontcare = (~0ULL) >> (64 - sval);
-      uint64_t mask = mval << sval;
-      
-      if (get_zapImm(mask | dontcare))
-        mask = mask | dontcare;
-      
-      if (get_zapImm(mask)) {
-        SDValue Z = 
-          SDValue(CurDAG->getTargetNode(Alpha::ZAPNOTi, dl, MVT::i64,
-                                          N->getOperand(0).getOperand(0),
-                                          getI64Imm(get_zapImm(mask))), 0);
-        return CurDAG->getTargetNode(Alpha::SRLr, dl, MVT::i64, Z, 
-                                     getI64Imm(sval));
-      }
-    }
-    break;
-  }
-
-  }
-
-  return SelectCode(Op);
-}
-
-void AlphaDAGToDAGISel::SelectCALL(SDValue Op) {
-  //TODO: add flag stuff to prevent nondeturministic breakage!
-
-  SDNode *N = Op.getNode();
-  SDValue Chain = N->getOperand(0);
-  SDValue Addr = N->getOperand(1);
-  SDValue InFlag = N->getOperand(N->getNumOperands() - 1);
-  DebugLoc dl = N->getDebugLoc();
-
-   if (Addr.getOpcode() == AlphaISD::GPRelLo) {
-     SDValue GOT = SDValue(getGlobalBaseReg(), 0);
-     Chain = CurDAG->getCopyToReg(Chain, dl, Alpha::R29, GOT, InFlag);
-     InFlag = Chain.getValue(1);
-     Chain = SDValue(CurDAG->getTargetNode(Alpha::BSR, dl, MVT::Other, 
-                                           MVT::Flag, Addr.getOperand(0), 
-                                           Chain, InFlag), 0);
-   } else {
-     Chain = CurDAG->getCopyToReg(Chain, dl, Alpha::R27, Addr, InFlag);
-     InFlag = Chain.getValue(1);
-     Chain = SDValue(CurDAG->getTargetNode(Alpha::JSR, dl, MVT::Other,
-                                             MVT::Flag, Chain, InFlag), 0);
-   }
-   InFlag = Chain.getValue(1);
-
-  ReplaceUses(Op.getValue(0), Chain);
-  ReplaceUses(Op.getValue(1), InFlag);
-}
-
-
-/// createAlphaISelDag - This pass converts a legalized DAG into a 
-/// Alpha-specific DAG, ready for instruction scheduling.
-///
-FunctionPass *llvm::createAlphaISelDag(AlphaTargetMachine &TM) {
-  return new AlphaDAGToDAGISel(TM);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.cpp
deleted file mode 100644
index 42f269d..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.cpp
+++ /dev/null
@@ -1,915 +0,0 @@
-//===-- AlphaISelLowering.cpp - Alpha DAG Lowering Implementation ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the AlphaISelLowering class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "AlphaISelLowering.h"
-#include "AlphaTargetMachine.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Constants.h"
-#include "llvm/Function.h"
-#include "llvm/Module.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-/// AddLiveIn - This helper function adds the specified physical register to the
-/// MachineFunction as a live in value.  It also creates a corresponding virtual
-/// register for it.
-static unsigned AddLiveIn(MachineFunction &MF, unsigned PReg,
-                          TargetRegisterClass *RC) {
-  assert(RC->contains(PReg) && "Not the correct regclass!");
-  unsigned VReg = MF.getRegInfo().createVirtualRegister(RC);
-  MF.getRegInfo().addLiveIn(PReg, VReg);
-  return VReg;
-}
-
-AlphaTargetLowering::AlphaTargetLowering(TargetMachine &TM)
-  : TargetLowering(TM, new TargetLoweringObjectFileELF()) {
-  // Set up the TargetLowering object.
-  //I am having problems with shr n i8 1
-  setShiftAmountType(MVT::i64);
-  setBooleanContents(ZeroOrOneBooleanContent);
-  
-  setUsesGlobalOffsetTable(true);
-  
-  addRegisterClass(MVT::i64, Alpha::GPRCRegisterClass);
-  addRegisterClass(MVT::f64, Alpha::F8RCRegisterClass);
-  addRegisterClass(MVT::f32, Alpha::F4RCRegisterClass);
-
-  // We want to custom lower some of our intrinsics.
-  setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
-
-  setLoadExtAction(ISD::EXTLOAD, MVT::i1,  Promote);
-  setLoadExtAction(ISD::EXTLOAD, MVT::f32, Expand);
-  
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i1,  Promote);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i32, Expand);
-  
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1,  Promote);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i8,  Expand);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i16, Expand);
-
-  setTruncStoreAction(MVT::f64, MVT::f32, Expand);
-
-  //  setOperationAction(ISD::BRIND,        MVT::Other,   Expand);
-  setOperationAction(ISD::BR_JT,        MVT::Other, Expand);
-  setOperationAction(ISD::BR_CC,        MVT::Other, Expand);
-  setOperationAction(ISD::SELECT_CC,    MVT::Other, Expand);  
-
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
-
-  setOperationAction(ISD::FREM, MVT::f32, Expand);
-  setOperationAction(ISD::FREM, MVT::f64, Expand);
-  
-  setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand);
-  setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
-  setOperationAction(ISD::FP_TO_UINT, MVT::i64, Expand);
-  setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
-
-  if (!TM.getSubtarget<AlphaSubtarget>().hasCT()) {
-    setOperationAction(ISD::CTPOP    , MVT::i64  , Expand);
-    setOperationAction(ISD::CTTZ     , MVT::i64  , Expand);
-    setOperationAction(ISD::CTLZ     , MVT::i64  , Expand);
-  }
-  setOperationAction(ISD::BSWAP    , MVT::i64, Expand);
-  setOperationAction(ISD::ROTL     , MVT::i64, Expand);
-  setOperationAction(ISD::ROTR     , MVT::i64, Expand);
-  
-  setOperationAction(ISD::SREM     , MVT::i64, Custom);
-  setOperationAction(ISD::UREM     , MVT::i64, Custom);
-  setOperationAction(ISD::SDIV     , MVT::i64, Custom);
-  setOperationAction(ISD::UDIV     , MVT::i64, Custom);
-
-  setOperationAction(ISD::ADDC     , MVT::i64, Expand);
-  setOperationAction(ISD::ADDE     , MVT::i64, Expand);
-  setOperationAction(ISD::SUBC     , MVT::i64, Expand);
-  setOperationAction(ISD::SUBE     , MVT::i64, Expand);
-
-  setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
-  setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
-
-  setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom);
-  setOperationAction(ISD::SRA_PARTS, MVT::i64, Expand);
-  setOperationAction(ISD::SHL_PARTS, MVT::i64, Expand);
-
-  // We don't support sin/cos/sqrt/pow
-  setOperationAction(ISD::FSIN , MVT::f64, Expand);
-  setOperationAction(ISD::FCOS , MVT::f64, Expand);
-  setOperationAction(ISD::FSIN , MVT::f32, Expand);
-  setOperationAction(ISD::FCOS , MVT::f32, Expand);
-
-  setOperationAction(ISD::FSQRT, MVT::f64, Expand);
-  setOperationAction(ISD::FSQRT, MVT::f32, Expand);
-
-  setOperationAction(ISD::FPOW , MVT::f32, Expand);
-  setOperationAction(ISD::FPOW , MVT::f64, Expand);
-
-  setOperationAction(ISD::SETCC, MVT::f32, Promote);
-
-  setOperationAction(ISD::BIT_CONVERT, MVT::f32, Promote);
-
-  // We don't have line number support yet.
-  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
-  setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
-  setOperationAction(ISD::DBG_LABEL, MVT::Other, Expand);
-  setOperationAction(ISD::EH_LABEL, MVT::Other, Expand);
-
-  // Not implemented yet.
-  setOperationAction(ISD::STACKSAVE, MVT::Other, Expand); 
-  setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Expand);
-
-  // We want to legalize GlobalAddress and ConstantPool and
-  // ExternalSymbols nodes into the appropriate instructions to
-  // materialize the address.
-  setOperationAction(ISD::GlobalAddress,  MVT::i64, Custom);
-  setOperationAction(ISD::ConstantPool,   MVT::i64, Custom);
-  setOperationAction(ISD::ExternalSymbol, MVT::i64, Custom);
-  setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom);
-
-  setOperationAction(ISD::VASTART, MVT::Other, Custom);
-  setOperationAction(ISD::VAEND,   MVT::Other, Expand);
-  setOperationAction(ISD::VACOPY,  MVT::Other, Custom);
-  setOperationAction(ISD::VAARG,   MVT::Other, Custom);
-  setOperationAction(ISD::VAARG,   MVT::i32,   Custom);
-
-  setOperationAction(ISD::JumpTable, MVT::i64, Custom);
-  setOperationAction(ISD::JumpTable, MVT::i32, Custom);
-
-  setStackPointerRegisterToSaveRestore(Alpha::R30);
-
-  addLegalFPImmediate(APFloat(+0.0)); //F31
-  addLegalFPImmediate(APFloat(+0.0f)); //F31
-  addLegalFPImmediate(APFloat(-0.0)); //-F31
-  addLegalFPImmediate(APFloat(-0.0f)); //-F31
-
-  setJumpBufSize(272);
-  setJumpBufAlignment(16);
-
-  computeRegisterProperties();
-}
-
-MVT::SimpleValueType AlphaTargetLowering::getSetCCResultType(EVT VT) const {
-  return MVT::i64;
-}
-
-const char *AlphaTargetLowering::getTargetNodeName(unsigned Opcode) const {
-  switch (Opcode) {
-  default: return 0;
-  case AlphaISD::CVTQT_: return "Alpha::CVTQT_";
-  case AlphaISD::CVTQS_: return "Alpha::CVTQS_";
-  case AlphaISD::CVTTQ_: return "Alpha::CVTTQ_";
-  case AlphaISD::GPRelHi: return "Alpha::GPRelHi";
-  case AlphaISD::GPRelLo: return "Alpha::GPRelLo";
-  case AlphaISD::RelLit: return "Alpha::RelLit";
-  case AlphaISD::GlobalRetAddr: return "Alpha::GlobalRetAddr";
-  case AlphaISD::CALL:   return "Alpha::CALL";
-  case AlphaISD::DivCall: return "Alpha::DivCall";
-  case AlphaISD::RET_FLAG: return "Alpha::RET_FLAG";
-  case AlphaISD::COND_BRANCH_I: return "Alpha::COND_BRANCH_I";
-  case AlphaISD::COND_BRANCH_F: return "Alpha::COND_BRANCH_F";
-  }
-}
-
-/// getFunctionAlignment - Return the Log2 alignment of this function.
-unsigned AlphaTargetLowering::getFunctionAlignment(const Function *F) const {
-  return 4;
-}
-
-static SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG) {
-  EVT PtrVT = Op.getValueType();
-  JumpTableSDNode *JT = cast<JumpTableSDNode>(Op);
-  SDValue JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT);
-  SDValue Zero = DAG.getConstant(0, PtrVT);
-  // FIXME there isn't really any debug info here
-  DebugLoc dl = Op.getDebugLoc();
-  
-  SDValue Hi = DAG.getNode(AlphaISD::GPRelHi,  dl, MVT::i64, JTI,
-                             DAG.getGLOBAL_OFFSET_TABLE(MVT::i64));
-  SDValue Lo = DAG.getNode(AlphaISD::GPRelLo, dl, MVT::i64, JTI, Hi);
-  return Lo;
-}
-
-//http://www.cs.arizona.edu/computer.help/policy/DIGITAL_unix/
-//AA-PY8AC-TET1_html/callCH3.html#BLOCK21
-
-//For now, just use variable size stack frame format
-
-//In a standard call, the first six items are passed in registers $16
-//- $21 and/or registers $f16 - $f21. (See Section 4.1.2 for details
-//of argument-to-register correspondence.) The remaining items are
-//collected in a memory argument list that is a naturally aligned
-//array of quadwords. In a standard call, this list, if present, must
-//be passed at 0(SP).
-//7 ... n         0(SP) ... (n-7)*8(SP)
-
-// //#define FP    $15
-// //#define RA    $26
-// //#define PV    $27
-// //#define GP    $29
-// //#define SP    $30
-
-#include "AlphaGenCallingConv.inc"
-
-SDValue
-AlphaTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                               unsigned CallConv, bool isVarArg,
-                               bool isTailCall,
-                               const SmallVectorImpl<ISD::OutputArg> &Outs,
-                               const SmallVectorImpl<ISD::InputArg> &Ins,
-                               DebugLoc dl, SelectionDAG &DAG,
-                               SmallVectorImpl<SDValue> &InVals) {
-
-  // Analyze operands of the call, assigning locations to each operand.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-
-  CCInfo.AnalyzeCallOperands(Outs, CC_Alpha);
-
-    // Get a count of how many bytes are to be pushed on the stack.
-  unsigned NumBytes = CCInfo.getNextStackOffset();
-
-  Chain = DAG.getCALLSEQ_START(Chain, DAG.getConstant(NumBytes,
-                                                      getPointerTy(), true));
-
-  SmallVector<std::pair<unsigned, SDValue>, 4> RegsToPass;
-  SmallVector<SDValue, 12> MemOpChains;
-  SDValue StackPtr;
-
-  // Walk the register/memloc assignments, inserting copies/loads.
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-
-    SDValue Arg = Outs[i].Val;
-
-    // Promote the value if needed.
-    switch (VA.getLocInfo()) {
-      default: assert(0 && "Unknown loc info!");
-      case CCValAssign::Full: break;
-      case CCValAssign::SExt:
-        Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::ZExt:
-        Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::AExt:
-        Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-    }
-
-    // Arguments that can be passed on register must be kept at RegsToPass
-    // vector
-    if (VA.isRegLoc()) {
-      RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-    } else {
-      assert(VA.isMemLoc());
-
-      if (StackPtr.getNode() == 0)
-        StackPtr = DAG.getCopyFromReg(Chain, dl, Alpha::R30, MVT::i64);
-
-      SDValue PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(),
-                                   StackPtr,
-                                   DAG.getIntPtrConstant(VA.getLocMemOffset()));
-
-      MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff,
-                                         PseudoSourceValue::getStack(), 0));
-    }
-  }
-
-  // Transform all store nodes into one single node because all store nodes are
-  // independent of each other.
-  if (!MemOpChains.empty())
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                        &MemOpChains[0], MemOpChains.size());
-
-  // Build a sequence of copy-to-reg nodes chained together with token chain and
-  // flag operands which copy the outgoing args into registers.  The InFlag in
-  // necessary since all emited instructions must be stuck together.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first,
-                             RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  // Returns a chain & a flag for retval copy to use.
-  SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Flag);
-  SmallVector<SDValue, 8> Ops;
-  Ops.push_back(Chain);
-  Ops.push_back(Callee);
-
-  // Add argument registers to the end of the list so that they are
-  // known live into the call.
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i)
-    Ops.push_back(DAG.getRegister(RegsToPass[i].first,
-                                  RegsToPass[i].second.getValueType()));
-
-  if (InFlag.getNode())
-    Ops.push_back(InFlag);
-
-  Chain = DAG.getNode(AlphaISD::CALL, dl, NodeTys, &Ops[0], Ops.size());
-  InFlag = Chain.getValue(1);
-
-  // Create the CALLSEQ_END node.
-  Chain = DAG.getCALLSEQ_END(Chain,
-                             DAG.getConstant(NumBytes, getPointerTy(), true),
-                             DAG.getConstant(0, getPointerTy(), true),
-                             InFlag);
-  InFlag = Chain.getValue(1);
-
-  // Handle result values, copying them out of physregs into vregs that we
-  // return.
-  return LowerCallResult(Chain, InFlag, CallConv, isVarArg,
-                         Ins, dl, DAG, InVals);
-}
-
-/// LowerCallResult - Lower the result values of a call into the
-/// appropriate copies out of appropriate physical registers.
-///
-SDValue
-AlphaTargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
-                                     unsigned CallConv, bool isVarArg,
-                                     const SmallVectorImpl<ISD::InputArg> &Ins,
-                                     DebugLoc dl, SelectionDAG &DAG,
-                                     SmallVectorImpl<SDValue> &InVals) {
-
-  // Assign locations to each value returned by this call.
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(), RVLocs,
-                 *DAG.getContext());
-
-  CCInfo.AnalyzeCallResult(Ins, RetCC_Alpha);
-
-  // Copy all of the result registers out of their specified physreg.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-
-    Chain = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(),
-                               VA.getLocVT(), InFlag).getValue(1);
-    SDValue RetValue = Chain.getValue(0);
-    InFlag = Chain.getValue(2);
-
-    // If this is an 8/16/32-bit value, it is really passed promoted to 64
-    // bits. Insert an assert[sz]ext to capture this, then truncate to the
-    // right size.
-    if (VA.getLocInfo() == CCValAssign::SExt)
-      RetValue = DAG.getNode(ISD::AssertSext, dl, VA.getLocVT(), RetValue,
-                             DAG.getValueType(VA.getValVT()));
-    else if (VA.getLocInfo() == CCValAssign::ZExt)
-      RetValue = DAG.getNode(ISD::AssertZext, dl, VA.getLocVT(), RetValue,
-                             DAG.getValueType(VA.getValVT()));
-
-    if (VA.getLocInfo() != CCValAssign::Full)
-      RetValue = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), RetValue);
-
-    InVals.push_back(RetValue);
-  }
-
-  return Chain;
-}
-
-SDValue
-AlphaTargetLowering::LowerFormalArguments(SDValue Chain,
-                                          unsigned CallConv, bool isVarArg,
-                                          const SmallVectorImpl<ISD::InputArg>
-                                            &Ins,
-                                          DebugLoc dl, SelectionDAG &DAG,
-                                          SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-
-  unsigned args_int[] = {
-    Alpha::R16, Alpha::R17, Alpha::R18, Alpha::R19, Alpha::R20, Alpha::R21};
-  unsigned args_float[] = {
-    Alpha::F16, Alpha::F17, Alpha::F18, Alpha::F19, Alpha::F20, Alpha::F21};
-  
-  for (unsigned ArgNo = 0, e = Ins.size(); ArgNo != e; ++ArgNo) {
-    SDValue argt;
-    EVT ObjectVT = Ins[ArgNo].VT;
-    SDValue ArgVal;
-
-    if (ArgNo  < 6) {
-      switch (ObjectVT.getSimpleVT().SimpleTy) {
-      default:
-        assert(false && "Invalid value type!");
-      case MVT::f64:
-        args_float[ArgNo] = AddLiveIn(MF, args_float[ArgNo], 
-                                      &Alpha::F8RCRegClass);
-        ArgVal = DAG.getCopyFromReg(Chain, dl, args_float[ArgNo], ObjectVT);
-        break;
-      case MVT::f32:
-        args_float[ArgNo] = AddLiveIn(MF, args_float[ArgNo], 
-                                      &Alpha::F4RCRegClass);
-        ArgVal = DAG.getCopyFromReg(Chain, dl, args_float[ArgNo], ObjectVT);
-        break;
-      case MVT::i64:
-        args_int[ArgNo] = AddLiveIn(MF, args_int[ArgNo], 
-                                    &Alpha::GPRCRegClass);
-        ArgVal = DAG.getCopyFromReg(Chain, dl, args_int[ArgNo], MVT::i64);
-        break;
-      }
-    } else { //more args
-      // Create the frame index object for this incoming parameter...
-      int FI = MFI->CreateFixedObject(8, 8 * (ArgNo - 6));
-
-      // Create the SelectionDAG nodes corresponding to a load
-      //from this parameter
-      SDValue FIN = DAG.getFrameIndex(FI, MVT::i64);
-      ArgVal = DAG.getLoad(ObjectVT, dl, Chain, FIN, NULL, 0);
-    }
-    InVals.push_back(ArgVal);
-  }
-
-  // If the functions takes variable number of arguments, copy all regs to stack
-  if (isVarArg) {
-    VarArgsOffset = Ins.size() * 8;
-    std::vector<SDValue> LS;
-    for (int i = 0; i < 6; ++i) {
-      if (TargetRegisterInfo::isPhysicalRegister(args_int[i]))
-        args_int[i] = AddLiveIn(MF, args_int[i], &Alpha::GPRCRegClass);
-      SDValue argt = DAG.getCopyFromReg(Chain, dl, args_int[i], MVT::i64);
-      int FI = MFI->CreateFixedObject(8, -8 * (6 - i));
-      if (i == 0) VarArgsBase = FI;
-      SDValue SDFI = DAG.getFrameIndex(FI, MVT::i64);
-      LS.push_back(DAG.getStore(Chain, dl, argt, SDFI, NULL, 0));
-
-      if (TargetRegisterInfo::isPhysicalRegister(args_float[i]))
-        args_float[i] = AddLiveIn(MF, args_float[i], &Alpha::F8RCRegClass);
-      argt = DAG.getCopyFromReg(Chain, dl, args_float[i], MVT::f64);
-      FI = MFI->CreateFixedObject(8, - 8 * (12 - i));
-      SDFI = DAG.getFrameIndex(FI, MVT::i64);
-      LS.push_back(DAG.getStore(Chain, dl, argt, SDFI, NULL, 0));
-    }
-
-    //Set up a token factor with all the stack traffic
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, &LS[0], LS.size());
-  }
-
-  return Chain;
-}
-
-SDValue
-AlphaTargetLowering::LowerReturn(SDValue Chain,
-                                 unsigned CallConv, bool isVarArg,
-                                 const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                 DebugLoc dl, SelectionDAG &DAG) {
-
-  SDValue Copy = DAG.getCopyToReg(Chain, dl, Alpha::R26,
-                                  DAG.getNode(AlphaISD::GlobalRetAddr,
-                                              DebugLoc::getUnknownLoc(),
-                                              MVT::i64),
-                                  SDValue());
-  switch (Outs.size()) {
-  default:
-    llvm_unreachable("Do not know how to return this many arguments!");
-  case 0:
-    break;
-    //return SDValue(); // ret void is legal
-  case 1: {
-    EVT ArgVT = Outs[0].Val.getValueType();
-    unsigned ArgReg;
-    if (ArgVT.isInteger())
-      ArgReg = Alpha::R0;
-    else {
-      assert(ArgVT.isFloatingPoint());
-      ArgReg = Alpha::F0;
-    }
-    Copy = DAG.getCopyToReg(Copy, dl, ArgReg, 
-                            Outs[0].Val, Copy.getValue(1));
-    if (DAG.getMachineFunction().getRegInfo().liveout_empty())
-      DAG.getMachineFunction().getRegInfo().addLiveOut(ArgReg);
-    break;
-  }
-  case 2: {
-    EVT ArgVT = Outs[0].Val.getValueType();
-    unsigned ArgReg1, ArgReg2;
-    if (ArgVT.isInteger()) {
-      ArgReg1 = Alpha::R0;
-      ArgReg2 = Alpha::R1;
-    } else {
-      assert(ArgVT.isFloatingPoint());
-      ArgReg1 = Alpha::F0;
-      ArgReg2 = Alpha::F1;
-    }
-    Copy = DAG.getCopyToReg(Copy, dl, ArgReg1, 
-                            Outs[0].Val, Copy.getValue(1));
-    if (std::find(DAG.getMachineFunction().getRegInfo().liveout_begin(), 
-                  DAG.getMachineFunction().getRegInfo().liveout_end(), ArgReg1)
-        == DAG.getMachineFunction().getRegInfo().liveout_end())
-      DAG.getMachineFunction().getRegInfo().addLiveOut(ArgReg1);
-    Copy = DAG.getCopyToReg(Copy, dl, ArgReg2, 
-                            Outs[1].Val, Copy.getValue(1));
-    if (std::find(DAG.getMachineFunction().getRegInfo().liveout_begin(), 
-                   DAG.getMachineFunction().getRegInfo().liveout_end(), ArgReg2)
-        == DAG.getMachineFunction().getRegInfo().liveout_end())
-      DAG.getMachineFunction().getRegInfo().addLiveOut(ArgReg2);
-    break;
-  }
-  }
-  return DAG.getNode(AlphaISD::RET_FLAG, dl, 
-                     MVT::Other, Copy, Copy.getValue(1));
-}
-
-void AlphaTargetLowering::LowerVAARG(SDNode *N, SDValue &Chain,
-                                     SDValue &DataPtr, SelectionDAG &DAG) {
-  Chain = N->getOperand(0);
-  SDValue VAListP = N->getOperand(1);
-  const Value *VAListS = cast<SrcValueSDNode>(N->getOperand(2))->getValue();
-  DebugLoc dl = N->getDebugLoc();
-
-  SDValue Base = DAG.getLoad(MVT::i64, dl, Chain, VAListP, VAListS, 0);
-  SDValue Tmp = DAG.getNode(ISD::ADD, dl, MVT::i64, VAListP,
-                              DAG.getConstant(8, MVT::i64));
-  SDValue Offset = DAG.getExtLoad(ISD::SEXTLOAD, dl, MVT::i64, Base.getValue(1),
-                                    Tmp, NULL, 0, MVT::i32);
-  DataPtr = DAG.getNode(ISD::ADD, dl, MVT::i64, Base, Offset);
-  if (N->getValueType(0).isFloatingPoint())
-  {
-    //if fp && Offset < 6*8, then subtract 6*8 from DataPtr
-    SDValue FPDataPtr = DAG.getNode(ISD::SUB, dl, MVT::i64, DataPtr,
-                                      DAG.getConstant(8*6, MVT::i64));
-    SDValue CC = DAG.getSetCC(dl, MVT::i64, Offset,
-                                DAG.getConstant(8*6, MVT::i64), ISD::SETLT);
-    DataPtr = DAG.getNode(ISD::SELECT, dl, MVT::i64, CC, FPDataPtr, DataPtr);
-  }
-
-  SDValue NewOffset = DAG.getNode(ISD::ADD, dl, MVT::i64, Offset,
-                                    DAG.getConstant(8, MVT::i64));
-  Chain = DAG.getTruncStore(Offset.getValue(1), dl, NewOffset, Tmp, NULL, 0,
-                            MVT::i32);
-}
-
-/// LowerOperation - Provide custom lowering hooks for some operations.
-///
-SDValue AlphaTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  switch (Op.getOpcode()) {
-  default: llvm_unreachable("Wasn't expecting to be able to lower this!");
-  case ISD::JumpTable: return LowerJumpTable(Op, DAG);
-
-  case ISD::INTRINSIC_WO_CHAIN: {
-    unsigned IntNo = cast<ConstantSDNode>(Op.getOperand(0))->getZExtValue();
-    switch (IntNo) {
-    default: break;    // Don't custom lower most intrinsics.
-    case Intrinsic::alpha_umulh:
-      return DAG.getNode(ISD::MULHU, dl, MVT::i64, 
-                         Op.getOperand(1), Op.getOperand(2));
-    }
-  }
-
-  case ISD::SRL_PARTS: {
-    SDValue ShOpLo = Op.getOperand(0);
-    SDValue ShOpHi = Op.getOperand(1);
-    SDValue ShAmt  = Op.getOperand(2);
-    SDValue bm = DAG.getNode(ISD::SUB, dl, MVT::i64, 
-			     DAG.getConstant(64, MVT::i64), ShAmt);
-    SDValue BMCC = DAG.getSetCC(dl, MVT::i64, bm,
-                                DAG.getConstant(0, MVT::i64), ISD::SETLE);
-    // if 64 - shAmt <= 0
-    SDValue Hi_Neg = DAG.getConstant(0, MVT::i64);
-    SDValue ShAmt_Neg = DAG.getNode(ISD::SUB, dl, MVT::i64,
-				    DAG.getConstant(0, MVT::i64), bm);
-    SDValue Lo_Neg = DAG.getNode(ISD::SRL, dl, MVT::i64, ShOpHi, ShAmt_Neg);
-    // else
-    SDValue carries = DAG.getNode(ISD::SHL, dl, MVT::i64, ShOpHi, bm);
-    SDValue Hi_Pos =  DAG.getNode(ISD::SRL, dl, MVT::i64, ShOpHi, ShAmt);
-    SDValue Lo_Pos = DAG.getNode(ISD::SRL, dl, MVT::i64, ShOpLo, ShAmt);
-    Lo_Pos = DAG.getNode(ISD::OR, dl, MVT::i64, Lo_Pos, carries);
-    // Merge
-    SDValue Hi = DAG.getNode(ISD::SELECT, dl, MVT::i64, BMCC, Hi_Neg, Hi_Pos);
-    SDValue Lo = DAG.getNode(ISD::SELECT, dl, MVT::i64, BMCC, Lo_Neg, Lo_Pos);
-    SDValue Ops[2] = { Lo, Hi };
-    return DAG.getMergeValues(Ops, 2, dl);
-  }			
-    //  case ISD::SRA_PARTS:
-
-    //  case ISD::SHL_PARTS:
-
-
-  case ISD::SINT_TO_FP: {
-    assert(Op.getOperand(0).getValueType() == MVT::i64 &&
-           "Unhandled SINT_TO_FP type in custom expander!");
-    SDValue LD;
-    bool isDouble = Op.getValueType() == MVT::f64;
-    LD = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f64, Op.getOperand(0));
-    SDValue FP = DAG.getNode(isDouble?AlphaISD::CVTQT_:AlphaISD::CVTQS_, dl,
-                               isDouble?MVT::f64:MVT::f32, LD);
-    return FP;
-  }
-  case ISD::FP_TO_SINT: {
-    bool isDouble = Op.getOperand(0).getValueType() == MVT::f64;
-    SDValue src = Op.getOperand(0);
-
-    if (!isDouble) //Promote
-      src = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, src);
-    
-    src = DAG.getNode(AlphaISD::CVTTQ_, dl, MVT::f64, src);
-
-    return DAG.getNode(ISD::BIT_CONVERT, dl, MVT::i64, src);
-  }
-  case ISD::ConstantPool: {
-    ConstantPoolSDNode *CP = cast<ConstantPoolSDNode>(Op);
-    Constant *C = CP->getConstVal();
-    SDValue CPI = DAG.getTargetConstantPool(C, MVT::i64, CP->getAlignment());
-    // FIXME there isn't really any debug info here
-    
-    SDValue Hi = DAG.getNode(AlphaISD::GPRelHi,  dl, MVT::i64, CPI,
-                               DAG.getGLOBAL_OFFSET_TABLE(MVT::i64));
-    SDValue Lo = DAG.getNode(AlphaISD::GPRelLo, dl, MVT::i64, CPI, Hi);
-    return Lo;
-  }
-  case ISD::GlobalTLSAddress:
-    llvm_unreachable("TLS not implemented for Alpha.");
-  case ISD::GlobalAddress: {
-    GlobalAddressSDNode *GSDN = cast<GlobalAddressSDNode>(Op);
-    GlobalValue *GV = GSDN->getGlobal();
-    SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i64, GSDN->getOffset());
-    // FIXME there isn't really any debug info here
-
-    //    if (!GV->hasWeakLinkage() && !GV->isDeclaration() && !GV->hasLinkOnceLinkage()) {
-    if (GV->hasLocalLinkage()) {
-      SDValue Hi = DAG.getNode(AlphaISD::GPRelHi,  dl, MVT::i64, GA,
-                                DAG.getGLOBAL_OFFSET_TABLE(MVT::i64));
-      SDValue Lo = DAG.getNode(AlphaISD::GPRelLo, dl, MVT::i64, GA, Hi);
-      return Lo;
-    } else
-      return DAG.getNode(AlphaISD::RelLit, dl, MVT::i64, GA, 
-                         DAG.getGLOBAL_OFFSET_TABLE(MVT::i64));
-  }
-  case ISD::ExternalSymbol: {
-    return DAG.getNode(AlphaISD::RelLit, dl, MVT::i64, 
-                       DAG.getTargetExternalSymbol(cast<ExternalSymbolSDNode>(Op)
-                                                   ->getSymbol(), MVT::i64),
-                       DAG.getGLOBAL_OFFSET_TABLE(MVT::i64));
-  }
-
-  case ISD::UREM:
-  case ISD::SREM:
-    //Expand only on constant case
-    if (Op.getOperand(1).getOpcode() == ISD::Constant) {
-      EVT VT = Op.getNode()->getValueType(0);
-      SDValue Tmp1 = Op.getNode()->getOpcode() == ISD::UREM ?
-        BuildUDIV(Op.getNode(), DAG, NULL) :
-        BuildSDIV(Op.getNode(), DAG, NULL);
-      Tmp1 = DAG.getNode(ISD::MUL, dl, VT, Tmp1, Op.getOperand(1));
-      Tmp1 = DAG.getNode(ISD::SUB, dl, VT, Op.getOperand(0), Tmp1);
-      return Tmp1;
-    }
-    //fall through
-  case ISD::SDIV:
-  case ISD::UDIV:
-    if (Op.getValueType().isInteger()) {
-      if (Op.getOperand(1).getOpcode() == ISD::Constant)
-        return Op.getOpcode() == ISD::SDIV ? BuildSDIV(Op.getNode(), DAG, NULL) 
-          : BuildUDIV(Op.getNode(), DAG, NULL);
-      const char* opstr = 0;
-      switch (Op.getOpcode()) {
-      case ISD::UREM: opstr = "__remqu"; break;
-      case ISD::SREM: opstr = "__remq";  break;
-      case ISD::UDIV: opstr = "__divqu"; break;
-      case ISD::SDIV: opstr = "__divq";  break;
-      }
-      SDValue Tmp1 = Op.getOperand(0),
-        Tmp2 = Op.getOperand(1),
-        Addr = DAG.getExternalSymbol(opstr, MVT::i64);
-      return DAG.getNode(AlphaISD::DivCall, dl, MVT::i64, Addr, Tmp1, Tmp2);
-    }
-    break;
-
-  case ISD::VAARG: {
-    SDValue Chain, DataPtr;
-    LowerVAARG(Op.getNode(), Chain, DataPtr, DAG);
-
-    SDValue Result;
-    if (Op.getValueType() == MVT::i32)
-      Result = DAG.getExtLoad(ISD::SEXTLOAD, dl, MVT::i64, Chain, DataPtr,
-                              NULL, 0, MVT::i32);
-    else
-      Result = DAG.getLoad(Op.getValueType(), dl, Chain, DataPtr, NULL, 0);
-    return Result;
-  }
-  case ISD::VACOPY: {
-    SDValue Chain = Op.getOperand(0);
-    SDValue DestP = Op.getOperand(1);
-    SDValue SrcP = Op.getOperand(2);
-    const Value *DestS = cast<SrcValueSDNode>(Op.getOperand(3))->getValue();
-    const Value *SrcS = cast<SrcValueSDNode>(Op.getOperand(4))->getValue();
-    
-    SDValue Val = DAG.getLoad(getPointerTy(), dl, Chain, SrcP, SrcS, 0);
-    SDValue Result = DAG.getStore(Val.getValue(1), dl, Val, DestP, DestS, 0);
-    SDValue NP = DAG.getNode(ISD::ADD, dl, MVT::i64, SrcP, 
-                               DAG.getConstant(8, MVT::i64));
-    Val = DAG.getExtLoad(ISD::SEXTLOAD, dl, MVT::i64, Result, 
-                         NP, NULL,0, MVT::i32);
-    SDValue NPD = DAG.getNode(ISD::ADD, dl, MVT::i64, DestP,
-                                DAG.getConstant(8, MVT::i64));
-    return DAG.getTruncStore(Val.getValue(1), dl, Val, NPD, NULL, 0, MVT::i32);
-  }
-  case ISD::VASTART: {
-    SDValue Chain = Op.getOperand(0);
-    SDValue VAListP = Op.getOperand(1);
-    const Value *VAListS = cast<SrcValueSDNode>(Op.getOperand(2))->getValue();
-    
-    // vastart stores the address of the VarArgsBase and VarArgsOffset
-    SDValue FR  = DAG.getFrameIndex(VarArgsBase, MVT::i64);
-    SDValue S1  = DAG.getStore(Chain, dl, FR, VAListP, VAListS, 0);
-    SDValue SA2 = DAG.getNode(ISD::ADD, dl, MVT::i64, VAListP,
-                                DAG.getConstant(8, MVT::i64));
-    return DAG.getTruncStore(S1, dl, DAG.getConstant(VarArgsOffset, MVT::i64),
-                             SA2, NULL, 0, MVT::i32);
-  }
-  case ISD::RETURNADDR:        
-    return DAG.getNode(AlphaISD::GlobalRetAddr, DebugLoc::getUnknownLoc(),
-                       MVT::i64);
-      //FIXME: implement
-  case ISD::FRAMEADDR:          break;
-  }
-  
-  return SDValue();
-}
-
-void AlphaTargetLowering::ReplaceNodeResults(SDNode *N,
-                                             SmallVectorImpl<SDValue>&Results,
-                                             SelectionDAG &DAG) {
-  DebugLoc dl = N->getDebugLoc();
-  assert(N->getValueType(0) == MVT::i32 &&
-         N->getOpcode() == ISD::VAARG &&
-         "Unknown node to custom promote!");
-
-  SDValue Chain, DataPtr;
-  LowerVAARG(N, Chain, DataPtr, DAG);
-  SDValue Res = DAG.getLoad(N->getValueType(0), dl, Chain, DataPtr, NULL, 0);
-  Results.push_back(Res);
-  Results.push_back(SDValue(Res.getNode(), 1));
-}
-
-
-//Inline Asm
-
-/// getConstraintType - Given a constraint letter, return the type of
-/// constraint it is for this target.
-AlphaTargetLowering::ConstraintType 
-AlphaTargetLowering::getConstraintType(const std::string &Constraint) const {
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-    default: break;
-    case 'f':
-    case 'r':
-      return C_RegisterClass;
-    }
-  }
-  return TargetLowering::getConstraintType(Constraint);
-}
-
-std::vector<unsigned> AlphaTargetLowering::
-getRegClassForInlineAsmConstraint(const std::string &Constraint,
-                                  EVT VT) const {
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-    default: break;  // Unknown constriant letter
-    case 'f': 
-      return make_vector<unsigned>(Alpha::F0 , Alpha::F1 , Alpha::F2 ,
-                                   Alpha::F3 , Alpha::F4 , Alpha::F5 ,
-                                   Alpha::F6 , Alpha::F7 , Alpha::F8 , 
-                                   Alpha::F9 , Alpha::F10, Alpha::F11, 
-                                   Alpha::F12, Alpha::F13, Alpha::F14, 
-                                   Alpha::F15, Alpha::F16, Alpha::F17, 
-                                   Alpha::F18, Alpha::F19, Alpha::F20, 
-                                   Alpha::F21, Alpha::F22, Alpha::F23, 
-                                   Alpha::F24, Alpha::F25, Alpha::F26, 
-                                   Alpha::F27, Alpha::F28, Alpha::F29, 
-                                   Alpha::F30, Alpha::F31, 0);
-    case 'r': 
-      return make_vector<unsigned>(Alpha::R0 , Alpha::R1 , Alpha::R2 , 
-                                   Alpha::R3 , Alpha::R4 , Alpha::R5 , 
-                                   Alpha::R6 , Alpha::R7 , Alpha::R8 , 
-                                   Alpha::R9 , Alpha::R10, Alpha::R11, 
-                                   Alpha::R12, Alpha::R13, Alpha::R14, 
-                                   Alpha::R15, Alpha::R16, Alpha::R17, 
-                                   Alpha::R18, Alpha::R19, Alpha::R20, 
-                                   Alpha::R21, Alpha::R22, Alpha::R23, 
-                                   Alpha::R24, Alpha::R25, Alpha::R26, 
-                                   Alpha::R27, Alpha::R28, Alpha::R29, 
-                                   Alpha::R30, Alpha::R31, 0);
-    }
-  }
-  
-  return std::vector<unsigned>();
-}
-//===----------------------------------------------------------------------===//
-//  Other Lowering Code
-//===----------------------------------------------------------------------===//
-
-MachineBasicBlock *
-AlphaTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                 MachineBasicBlock *BB) const {
-  const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
-  assert((MI->getOpcode() == Alpha::CAS32 ||
-          MI->getOpcode() == Alpha::CAS64 ||
-          MI->getOpcode() == Alpha::LAS32 ||
-          MI->getOpcode() == Alpha::LAS64 ||
-          MI->getOpcode() == Alpha::SWAP32 ||
-          MI->getOpcode() == Alpha::SWAP64) &&
-         "Unexpected instr type to insert");
-
-  bool is32 = MI->getOpcode() == Alpha::CAS32 || 
-    MI->getOpcode() == Alpha::LAS32 ||
-    MI->getOpcode() == Alpha::SWAP32;
-  
-  //Load locked store conditional for atomic ops take on the same form
-  //start:
-  //ll
-  //do stuff (maybe branch to exit)
-  //sc
-  //test sc and maybe branck to start
-  //exit:
-  const BasicBlock *LLVM_BB = BB->getBasicBlock();
-  DebugLoc dl = MI->getDebugLoc();
-  MachineFunction::iterator It = BB;
-  ++It;
-  
-  MachineBasicBlock *thisMBB = BB;
-  MachineFunction *F = BB->getParent();
-  MachineBasicBlock *llscMBB = F->CreateMachineBasicBlock(LLVM_BB);
-  MachineBasicBlock *sinkMBB = F->CreateMachineBasicBlock(LLVM_BB);
-
-  sinkMBB->transferSuccessors(thisMBB);
-
-  F->insert(It, llscMBB);
-  F->insert(It, sinkMBB);
-
-  BuildMI(thisMBB, dl, TII->get(Alpha::BR)).addMBB(llscMBB);
-  
-  unsigned reg_res = MI->getOperand(0).getReg(),
-    reg_ptr = MI->getOperand(1).getReg(),
-    reg_v2 = MI->getOperand(2).getReg(),
-    reg_store = F->getRegInfo().createVirtualRegister(&Alpha::GPRCRegClass);
-
-  BuildMI(llscMBB, dl, TII->get(is32 ? Alpha::LDL_L : Alpha::LDQ_L), 
-          reg_res).addImm(0).addReg(reg_ptr);
-  switch (MI->getOpcode()) {
-  case Alpha::CAS32:
-  case Alpha::CAS64: {
-    unsigned reg_cmp 
-      = F->getRegInfo().createVirtualRegister(&Alpha::GPRCRegClass);
-    BuildMI(llscMBB, dl, TII->get(Alpha::CMPEQ), reg_cmp)
-      .addReg(reg_v2).addReg(reg_res);
-    BuildMI(llscMBB, dl, TII->get(Alpha::BEQ))
-      .addImm(0).addReg(reg_cmp).addMBB(sinkMBB);
-    BuildMI(llscMBB, dl, TII->get(Alpha::BISr), reg_store)
-      .addReg(Alpha::R31).addReg(MI->getOperand(3).getReg());
-    break;
-  }
-  case Alpha::LAS32:
-  case Alpha::LAS64: {
-    BuildMI(llscMBB, dl,TII->get(is32 ? Alpha::ADDLr : Alpha::ADDQr), reg_store)
-      .addReg(reg_res).addReg(reg_v2);
-    break;
-  }
-  case Alpha::SWAP32:
-  case Alpha::SWAP64: {
-    BuildMI(llscMBB, dl, TII->get(Alpha::BISr), reg_store)
-      .addReg(reg_v2).addReg(reg_v2);
-    break;
-  }
-  }
-  BuildMI(llscMBB, dl, TII->get(is32 ? Alpha::STL_C : Alpha::STQ_C), reg_store)
-    .addReg(reg_store).addImm(0).addReg(reg_ptr);
-  BuildMI(llscMBB, dl, TII->get(Alpha::BEQ))
-    .addImm(0).addReg(reg_store).addMBB(llscMBB);
-  BuildMI(llscMBB, dl, TII->get(Alpha::BR)).addMBB(sinkMBB);
-
-  thisMBB->addSuccessor(llscMBB);
-  llscMBB->addSuccessor(llscMBB);
-  llscMBB->addSuccessor(sinkMBB);
-  F->DeleteMachineInstr(MI);   // The pseudo instruction is gone now.
-
-  return sinkMBB;
-}
-
-bool
-AlphaTargetLowering::isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const {
-  // The Alpha target isn't yet aware of offsets.
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.h
deleted file mode 100644
index fd01124..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.h
+++ /dev/null
@@ -1,132 +0,0 @@
-//===-- AlphaISelLowering.h - Alpha DAG Lowering Interface ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that Alpha uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_ALPHA_ALPHAISELLOWERING_H
-#define LLVM_TARGET_ALPHA_ALPHAISELLOWERING_H
-
-#include "llvm/ADT/VectorExtras.h"
-#include "llvm/Target/TargetLowering.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "Alpha.h"
-
-namespace llvm {
-
-  namespace AlphaISD {
-    enum NodeType {
-      // Start the numbering where the builting ops and target ops leave off.
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-      //These corrospond to the identical Instruction
-      CVTQT_, CVTQS_, CVTTQ_,
-
-      /// GPRelHi/GPRelLo - These represent the high and low 16-bit
-      /// parts of a global address respectively.
-      GPRelHi, GPRelLo, 
-
-      /// RetLit - Literal Relocation of a Global
-      RelLit,
-
-      /// GlobalRetAddr - used to restore the return address
-      GlobalRetAddr,
-      
-      /// CALL - Normal call.
-      CALL,
-
-      /// DIVCALL - used for special library calls for div and rem
-      DivCall,
-      
-      /// return flag operand
-      RET_FLAG,
-
-      /// CHAIN = COND_BRANCH CHAIN, OPC, (G|F)PRC, DESTBB [, INFLAG] - This
-      /// corresponds to the COND_BRANCH pseudo instruction.  
-      /// *PRC is the input register to compare to zero,
-      /// OPC is the branch opcode to use (e.g. Alpha::BEQ),
-      /// DESTBB is the destination block to branch to, and INFLAG is
-      /// an optional input flag argument.
-      COND_BRANCH_I, COND_BRANCH_F
-
-    };
-  }
-
-  class AlphaTargetLowering : public TargetLowering {
-    int VarArgsOffset;  // What is the offset to the first vaarg
-    int VarArgsBase;    // What is the base FrameIndex
-  public:
-    explicit AlphaTargetLowering(TargetMachine &TM);
-    
-    /// getSetCCResultType - Get the SETCC result ValueType
-    virtual MVT::SimpleValueType getSetCCResultType(EVT VT) const;
-
-    /// LowerOperation - Provide custom lowering hooks for some operations.
-    ///
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-
-    /// ReplaceNodeResults - Replace the results of node with an illegal result
-    /// type with new values built out of custom code.
-    ///
-    virtual void ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue>&Results,
-                                    SelectionDAG &DAG);
-
-    // Friendly names for dumps
-    const char *getTargetNodeName(unsigned Opcode) const;
-
-    SDValue LowerCallResult(SDValue Chain, SDValue InFlag,
-                            unsigned CallConv, bool isVarArg,
-                            const SmallVectorImpl<ISD::InputArg> &Ins,
-                            DebugLoc dl, SelectionDAG &DAG,
-                            SmallVectorImpl<SDValue> &InVals);
-
-    ConstraintType getConstraintType(const std::string &Constraint) const;
-
-    std::vector<unsigned> 
-      getRegClassForInlineAsmConstraint(const std::string &Constraint,
-                                        EVT VT) const;
-
-    MachineBasicBlock *EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                   MachineBasicBlock *BB) const;
-
-    virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *F) const;
-
-  private:
-    // Helpers for custom lowering.
-    void LowerVAARG(SDNode *N, SDValue &Chain, SDValue &DataPtr,
-                    SelectionDAG &DAG);
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv, bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg, bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-  };
-}
-
-#endif   // LLVM_TARGET_ALPHA_ALPHAISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrFormats.td b/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrFormats.td
deleted file mode 100644
index 6d82875..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrFormats.td
+++ /dev/null
@@ -1,268 +0,0 @@
-//===- AlphaInstrFormats.td - Alpha Instruction Formats ----*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-//3.3:
-//Memory
-//Branch
-//Operate
-//Floating-point
-//PALcode
-
-def u8imm   : Operand<i64>;
-def s14imm  : Operand<i64>;
-def s16imm  : Operand<i64>;
-def s21imm  : Operand<i64>;
-def s64imm  : Operand<i64>;
-def u64imm  : Operand<i64>;
-
-//===----------------------------------------------------------------------===//
-// Instruction format superclass
-//===----------------------------------------------------------------------===//
-// Alpha instruction baseline
-class InstAlpha<bits<6> op, string asmstr, InstrItinClass itin> : Instruction {
-  field bits<32> Inst;
-  let Namespace = "Alpha";
-  let AsmString = asmstr;
-  let Inst{31-26} = op;
-  let Itinerary = itin;
-}
-
-
-//3.3.1
-class MForm<bits<6> opcode, bit load, string asmstr, list<dag> pattern, InstrItinClass itin> 
-        : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-  let canFoldAsLoad = load;
-  let Defs = [R28]; //We may use this for frame index calculations, so reserve it here
-
-  bits<5> Ra;
-  bits<16> disp;
-  bits<5> Rb;
-
-  let Inst{25-21} = Ra;
-  let Inst{20-16} = Rb;
-  let Inst{15-0} = disp;
-}
-class MfcForm<bits<6> opcode, bits<16> fc, string asmstr, InstrItinClass itin> 
-        : InstAlpha<opcode, asmstr, itin> {    
-  bits<5> Ra;
-
-  let OutOperandList = (ops GPRC:$RA);
-  let InOperandList = (ops);
-  let Inst{25-21} = Ra;
-  let Inst{20-16} = 0;
-  let Inst{15-0} = fc;
-}
-class MfcPForm<bits<6> opcode, bits<16> fc, string asmstr, InstrItinClass itin> 
-        : InstAlpha<opcode, asmstr, itin> {    
-  let OutOperandList = (ops);
-  let InOperandList = (ops);
-  let Inst{25-21} = 0;
-  let Inst{20-16} = 0;
-  let Inst{15-0} = fc;
-}
-
-class MbrForm<bits<6> opcode, bits<2> TB, dag OL, string asmstr, InstrItinClass itin>
-    : InstAlpha<opcode, asmstr, itin> {
-  bits<5> Ra;
-  bits<5> Rb;
-  bits<14> disp;
-
-  let OutOperandList = (ops);
-  let InOperandList = OL;
-
-  let Inst{25-21} = Ra;
-  let Inst{20-16} = Rb;
-  let Inst{15-14} = TB;
-  let Inst{13-0} = disp;
-}
-class MbrpForm<bits<6> opcode, bits<2> TB, dag OL, string asmstr, list<dag> pattern, InstrItinClass itin>
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern=pattern;
-  bits<5> Ra;
-  bits<5> Rb;
-  bits<14> disp;
-
-  let OutOperandList = (ops);
-  let InOperandList = OL;
-
-  let Inst{25-21} = Ra;
-  let Inst{20-16} = Rb;
-  let Inst{15-14} = TB;
-  let Inst{13-0} = disp;
-}
-
-//3.3.2
-def target : Operand<OtherVT> {}
-
-let isBranch = 1, isTerminator = 1, hasCtrlDep = 1 in {
-class BFormN<bits<6> opcode, dag OL, string asmstr, InstrItinClass itin>
-   : InstAlpha<opcode, asmstr, itin> {
-  let OutOperandList = (ops);
-  let InOperandList = OL;
-  bits<64> Opc; //dummy
-  bits<5> Ra;
-  bits<21> disp;
-
-  let Inst{25-21} = Ra;
-  let Inst{20-0} = disp;
-}
-}
-
-let isBranch = 1, isTerminator = 1 in
-class BFormD<bits<6> opcode, string asmstr, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-  let OutOperandList = (ops);
-  let InOperandList = (ops target:$DISP);
-  bits<5> Ra;
-  bits<21> disp;
-
-  let Inst{25-21} = Ra;
-  let Inst{20-0} = disp;
-}
-
-//3.3.3
-class OForm<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-  let OutOperandList = (outs GPRC:$RC);
-  let InOperandList = (ins GPRC:$RA, GPRC:$RB);
-
-  bits<5> Rc;
-  bits<5> Ra;
-  bits<5> Rb;
-  bits<7> Function = fun;
-
-  let Inst{25-21} = Ra;
-  let Inst{20-16} = Rb;
-  let Inst{15-13} = 0;
-  let Inst{12} = 0;
-  let Inst{11-5} = Function;
-  let Inst{4-0} = Rc;
-}
-
-class OForm2<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-  let OutOperandList = (outs GPRC:$RC);
-  let InOperandList = (ins GPRC:$RB);
-
-  bits<5> Rc;
-  bits<5> Rb;
-  bits<7> Function = fun;
-
-  let Inst{25-21} = 31;
-  let Inst{20-16} = Rb;
-  let Inst{15-13} = 0;
-  let Inst{12} = 0;
-  let Inst{11-5} = Function;
-  let Inst{4-0} = Rc;
-}
-
-class OForm4<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-  let OutOperandList = (outs GPRC:$RDEST);
-  let InOperandList = (ins GPRC:$RCOND, GPRC:$RTRUE, GPRC:$RFALSE);
-  let Constraints = "$RFALSE = $RDEST";
-  let DisableEncoding = "$RFALSE";
-
-  bits<5> Rc;
-  bits<5> Ra;
-  bits<5> Rb;
-  bits<7> Function = fun;
-
-//  let isTwoAddress = 1;
-  let Inst{25-21} = Ra;
-  let Inst{20-16} = Rb;
-  let Inst{15-13} = 0;
-  let Inst{12} = 0;
-  let Inst{11-5} = Function;
-  let Inst{4-0} = Rc;
-}
-
-
-class OFormL<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-  let OutOperandList = (outs GPRC:$RC);
-  let InOperandList = (ins GPRC:$RA, u8imm:$L);
-
-  bits<5> Rc;
-  bits<5> Ra;
-  bits<8> LIT;
-  bits<7> Function = fun;
-
-  let Inst{25-21} = Ra;
-  let Inst{20-13} = LIT;
-  let Inst{12} = 1;
-  let Inst{11-5} = Function;
-  let Inst{4-0} = Rc;
-}
-
-class OForm4L<bits<6> opcode, bits<7> fun, string asmstr, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-  let OutOperandList = (outs GPRC:$RDEST);
-  let InOperandList = (ins GPRC:$RCOND, s64imm:$RTRUE, GPRC:$RFALSE);
-  let Constraints = "$RFALSE = $RDEST";
-  let DisableEncoding = "$RFALSE";
-
-  bits<5> Rc;
-  bits<5> Ra;
-  bits<8> LIT;
-  bits<7> Function = fun;
-
-//  let isTwoAddress = 1;
-  let Inst{25-21} = Ra;
-  let Inst{20-13} = LIT;
-  let Inst{12} = 1;
-  let Inst{11-5} = Function;
-  let Inst{4-0} = Rc;
-}
-
-//3.3.4
-class FPForm<bits<6> opcode, bits<11> fun, string asmstr, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<opcode, asmstr, itin> {
-  let Pattern = pattern;
-
-  bits<5> Fc;
-  bits<5> Fa;
-  bits<5> Fb;
-  bits<11> Function = fun;
-
-  let Inst{25-21} = Fa;
-  let Inst{20-16} = Fb;
-  let Inst{15-5} = Function;
-  let Inst{4-0} = Fc;
-}
-
-//3.3.5
-class PALForm<bits<6> opcode, dag OL, string asmstr, InstrItinClass itin>
-    : InstAlpha<opcode, asmstr, itin> {
-  let OutOperandList = (ops);
-  let InOperandList = OL;
-  bits<26> Function;
-
-  let Inst{25-0} = Function;
-}
-
-
-// Pseudo instructions.
-class PseudoInstAlpha<dag OOL, dag IOL, string nm, list<dag> pattern, InstrItinClass itin> 
-    : InstAlpha<0, nm, itin>  {
-  let OutOperandList = OOL;
-  let InOperandList = IOL;
-  let Pattern = pattern;
-
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.cpp
deleted file mode 100644
index 86173ff..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.cpp
+++ /dev/null
@@ -1,466 +0,0 @@
-//===- AlphaInstrInfo.cpp - Alpha Instruction Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Alpha implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Alpha.h"
-#include "AlphaInstrInfo.h"
-#include "AlphaMachineFunctionInfo.h"
-#include "AlphaGenInstrInfo.inc"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Support/ErrorHandling.h"
-using namespace llvm;
-
-AlphaInstrInfo::AlphaInstrInfo()
-  : TargetInstrInfoImpl(AlphaInsts, array_lengthof(AlphaInsts)),
-    RI(*this) { }
-
-
-bool AlphaInstrInfo::isMoveInstr(const MachineInstr& MI,
-                                 unsigned& sourceReg, unsigned& destReg,
-                                 unsigned& SrcSR, unsigned& DstSR) const {
-  unsigned oc = MI.getOpcode();
-  if (oc == Alpha::BISr   || 
-      oc == Alpha::CPYSS  || 
-      oc == Alpha::CPYST  ||
-      oc == Alpha::CPYSSt || 
-      oc == Alpha::CPYSTs) {
-    // or r1, r2, r2 
-    // cpys(s|t) r1 r2 r2
-    assert(MI.getNumOperands() >= 3 &&
-           MI.getOperand(0).isReg() &&
-           MI.getOperand(1).isReg() &&
-           MI.getOperand(2).isReg() &&
-           "invalid Alpha BIS instruction!");
-    if (MI.getOperand(1).getReg() == MI.getOperand(2).getReg()) {
-      sourceReg = MI.getOperand(1).getReg();
-      destReg = MI.getOperand(0).getReg();
-      SrcSR = DstSR = 0;
-      return true;
-    }
-  }
-  return false;
-}
-
-unsigned 
-AlphaInstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
-                                    int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  case Alpha::LDL:
-  case Alpha::LDQ:
-  case Alpha::LDBU:
-  case Alpha::LDWU:
-  case Alpha::LDS:
-  case Alpha::LDT:
-    if (MI->getOperand(1).isFI()) {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-    break;
-  }
-  return 0;
-}
-
-unsigned 
-AlphaInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
-                                   int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  case Alpha::STL:
-  case Alpha::STQ:
-  case Alpha::STB:
-  case Alpha::STW:
-  case Alpha::STS:
-  case Alpha::STT:
-    if (MI->getOperand(1).isFI()) {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-    break;
-  }
-  return 0;
-}
-
-static bool isAlphaIntCondCode(unsigned Opcode) {
-  switch (Opcode) {
-  case Alpha::BEQ: 
-  case Alpha::BNE: 
-  case Alpha::BGE: 
-  case Alpha::BGT: 
-  case Alpha::BLE: 
-  case Alpha::BLT: 
-  case Alpha::BLBC: 
-  case Alpha::BLBS:
-    return true;
-  default:
-    return false;
-  }
-}
-
-unsigned AlphaInstrInfo::InsertBranch(MachineBasicBlock &MBB,
-                                      MachineBasicBlock *TBB,
-                                      MachineBasicBlock *FBB,
-                            const SmallVectorImpl<MachineOperand> &Cond) const {
-  // FIXME this should probably have a DebugLoc argument
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-  assert((Cond.size() == 2 || Cond.size() == 0) && 
-         "Alpha branch conditions have two components!");
-
-  // One-way branch.
-  if (FBB == 0) {
-    if (Cond.empty())   // Unconditional branch
-      BuildMI(&MBB, dl, get(Alpha::BR)).addMBB(TBB);
-    else                // Conditional branch
-      if (isAlphaIntCondCode(Cond[0].getImm()))
-        BuildMI(&MBB, dl, get(Alpha::COND_BRANCH_I))
-          .addImm(Cond[0].getImm()).addReg(Cond[1].getReg()).addMBB(TBB);
-      else
-        BuildMI(&MBB, dl, get(Alpha::COND_BRANCH_F))
-          .addImm(Cond[0].getImm()).addReg(Cond[1].getReg()).addMBB(TBB);
-    return 1;
-  }
-  
-  // Two-way Conditional Branch.
-  if (isAlphaIntCondCode(Cond[0].getImm()))
-    BuildMI(&MBB, dl, get(Alpha::COND_BRANCH_I))
-      .addImm(Cond[0].getImm()).addReg(Cond[1].getReg()).addMBB(TBB);
-  else
-    BuildMI(&MBB, dl, get(Alpha::COND_BRANCH_F))
-      .addImm(Cond[0].getImm()).addReg(Cond[1].getReg()).addMBB(TBB);
-  BuildMI(&MBB, dl, get(Alpha::BR)).addMBB(FBB);
-  return 2;
-}
-
-bool AlphaInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
-                                  MachineBasicBlock::iterator MI,
-                                  unsigned DestReg, unsigned SrcReg,
-                                  const TargetRegisterClass *DestRC,
-                                  const TargetRegisterClass *SrcRC) const {
-  //cerr << "copyRegToReg " << DestReg << " <- " << SrcReg << "\n";
-  if (DestRC != SrcRC) {
-    // Not yet supported!
-    return false;
-  }
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  if (DestRC == Alpha::GPRCRegisterClass) {
-    BuildMI(MBB, MI, DL, get(Alpha::BISr), DestReg)
-      .addReg(SrcReg)
-      .addReg(SrcReg);
-  } else if (DestRC == Alpha::F4RCRegisterClass) {
-    BuildMI(MBB, MI, DL, get(Alpha::CPYSS), DestReg)
-      .addReg(SrcReg)
-      .addReg(SrcReg);
-  } else if (DestRC == Alpha::F8RCRegisterClass) {
-    BuildMI(MBB, MI, DL, get(Alpha::CPYST), DestReg)
-      .addReg(SrcReg)
-      .addReg(SrcReg);
-  } else {
-    // Attempt to copy register that is not GPR or FPR
-    return false;
-  }
-  
-  return true;
-}
-
-void
-AlphaInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MI,
-                                    unsigned SrcReg, bool isKill, int FrameIdx,
-                                    const TargetRegisterClass *RC) const {
-  //cerr << "Trying to store " << getPrettyName(SrcReg) << " to "
-  //     << FrameIdx << "\n";
-  //BuildMI(MBB, MI, Alpha::WTF, 0).addReg(SrcReg);
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  if (RC == Alpha::F4RCRegisterClass)
-    BuildMI(MBB, MI, DL, get(Alpha::STS))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  else if (RC == Alpha::F8RCRegisterClass)
-    BuildMI(MBB, MI, DL, get(Alpha::STT))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  else if (RC == Alpha::GPRCRegisterClass)
-    BuildMI(MBB, MI, DL, get(Alpha::STQ))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  else
-    llvm_unreachable("Unhandled register class");
-}
-
-void
-AlphaInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                        MachineBasicBlock::iterator MI,
-                                        unsigned DestReg, int FrameIdx,
-                                        const TargetRegisterClass *RC) const {
-  //cerr << "Trying to load " << getPrettyName(DestReg) << " to "
-  //     << FrameIdx << "\n";
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  if (RC == Alpha::F4RCRegisterClass)
-    BuildMI(MBB, MI, DL, get(Alpha::LDS), DestReg)
-      .addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  else if (RC == Alpha::F8RCRegisterClass)
-    BuildMI(MBB, MI, DL, get(Alpha::LDT), DestReg)
-      .addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  else if (RC == Alpha::GPRCRegisterClass)
-    BuildMI(MBB, MI, DL, get(Alpha::LDQ), DestReg)
-      .addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  else
-    llvm_unreachable("Unhandled register class");
-}
-
-MachineInstr *AlphaInstrInfo::foldMemoryOperandImpl(MachineFunction &MF,
-                                                    MachineInstr *MI,
-                                          const SmallVectorImpl<unsigned> &Ops,
-                                                    int FrameIndex) const {
-   if (Ops.size() != 1) return NULL;
-
-   // Make sure this is a reg-reg copy.
-   unsigned Opc = MI->getOpcode();
-
-   MachineInstr *NewMI = NULL;
-   switch(Opc) {
-   default:
-     break;
-   case Alpha::BISr:
-   case Alpha::CPYSS:
-   case Alpha::CPYST:
-     if (MI->getOperand(1).getReg() == MI->getOperand(2).getReg()) {
-       if (Ops[0] == 0) {  // move -> store
-         unsigned InReg = MI->getOperand(1).getReg();
-         bool isKill = MI->getOperand(1).isKill();
-         bool isUndef = MI->getOperand(1).isUndef();
-         Opc = (Opc == Alpha::BISr) ? Alpha::STQ : 
-           ((Opc == Alpha::CPYSS) ? Alpha::STS : Alpha::STT);
-         NewMI = BuildMI(MF, MI->getDebugLoc(), get(Opc))
-           .addReg(InReg, getKillRegState(isKill) | getUndefRegState(isUndef))
-           .addFrameIndex(FrameIndex)
-           .addReg(Alpha::F31);
-       } else {           // load -> move
-         unsigned OutReg = MI->getOperand(0).getReg();
-         bool isDead = MI->getOperand(0).isDead();
-         bool isUndef = MI->getOperand(0).isUndef();
-         Opc = (Opc == Alpha::BISr) ? Alpha::LDQ : 
-           ((Opc == Alpha::CPYSS) ? Alpha::LDS : Alpha::LDT);
-         NewMI = BuildMI(MF, MI->getDebugLoc(), get(Opc))
-           .addReg(OutReg, RegState::Define | getDeadRegState(isDead) |
-                   getUndefRegState(isUndef))
-           .addFrameIndex(FrameIndex)
-           .addReg(Alpha::F31);
-       }
-     }
-     break;
-   }
-  return NewMI;
-}
-
-static unsigned AlphaRevCondCode(unsigned Opcode) {
-  switch (Opcode) {
-  case Alpha::BEQ: return Alpha::BNE;
-  case Alpha::BNE: return Alpha::BEQ;
-  case Alpha::BGE: return Alpha::BLT;
-  case Alpha::BGT: return Alpha::BLE;
-  case Alpha::BLE: return Alpha::BGT;
-  case Alpha::BLT: return Alpha::BGE;
-  case Alpha::BLBC: return Alpha::BLBS;
-  case Alpha::BLBS: return Alpha::BLBC;
-  case Alpha::FBEQ: return Alpha::FBNE;
-  case Alpha::FBNE: return Alpha::FBEQ;
-  case Alpha::FBGE: return Alpha::FBLT;
-  case Alpha::FBGT: return Alpha::FBLE;
-  case Alpha::FBLE: return Alpha::FBGT;
-  case Alpha::FBLT: return Alpha::FBGE;
-  default:
-    llvm_unreachable("Unknown opcode");
-  }
-  return 0; // Not reached
-}
-
-// Branch analysis.
-bool AlphaInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,MachineBasicBlock *&TBB,
-                                   MachineBasicBlock *&FBB,
-                                   SmallVectorImpl<MachineOperand> &Cond,
-                                   bool AllowModify) const {
-  // If the block has no terminators, it just falls into the block after it.
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I))
-    return false;
-
-  // Get the last instruction in the block.
-  MachineInstr *LastInst = I;
-  
-  // If there is only one terminator instruction, process it.
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I)) {
-    if (LastInst->getOpcode() == Alpha::BR) {
-      TBB = LastInst->getOperand(0).getMBB();
-      return false;
-    } else if (LastInst->getOpcode() == Alpha::COND_BRANCH_I ||
-               LastInst->getOpcode() == Alpha::COND_BRANCH_F) {
-      // Block ends with fall-through condbranch.
-      TBB = LastInst->getOperand(2).getMBB();
-      Cond.push_back(LastInst->getOperand(0));
-      Cond.push_back(LastInst->getOperand(1));
-      return false;
-    }
-    // Otherwise, don't know what this is.
-    return true;
-  }
-  
-  // Get the instruction before it if it's a terminator.
-  MachineInstr *SecondLastInst = I;
-
-  // If there are three terminators, we don't know what sort of block this is.
-  if (SecondLastInst && I != MBB.begin() &&
-      isUnpredicatedTerminator(--I))
-    return true;
-  
-  // If the block ends with Alpha::BR and Alpha::COND_BRANCH_*, handle it.
-  if ((SecondLastInst->getOpcode() == Alpha::COND_BRANCH_I ||
-      SecondLastInst->getOpcode() == Alpha::COND_BRANCH_F) && 
-      LastInst->getOpcode() == Alpha::BR) {
-    TBB =  SecondLastInst->getOperand(2).getMBB();
-    Cond.push_back(SecondLastInst->getOperand(0));
-    Cond.push_back(SecondLastInst->getOperand(1));
-    FBB = LastInst->getOperand(0).getMBB();
-    return false;
-  }
-  
-  // If the block ends with two Alpha::BRs, handle it.  The second one is not
-  // executed, so remove it.
-  if (SecondLastInst->getOpcode() == Alpha::BR && 
-      LastInst->getOpcode() == Alpha::BR) {
-    TBB = SecondLastInst->getOperand(0).getMBB();
-    I = LastInst;
-    if (AllowModify)
-      I->eraseFromParent();
-    return false;
-  }
-
-  // Otherwise, can't handle this.
-  return true;
-}
-
-unsigned AlphaInstrInfo::RemoveBranch(MachineBasicBlock &MBB) const {
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin()) return 0;
-  --I;
-  if (I->getOpcode() != Alpha::BR && 
-      I->getOpcode() != Alpha::COND_BRANCH_I &&
-      I->getOpcode() != Alpha::COND_BRANCH_F)
-    return 0;
-  
-  // Remove the branch.
-  I->eraseFromParent();
-  
-  I = MBB.end();
-
-  if (I == MBB.begin()) return 1;
-  --I;
-  if (I->getOpcode() != Alpha::COND_BRANCH_I && 
-      I->getOpcode() != Alpha::COND_BRANCH_F)
-    return 1;
-  
-  // Remove the branch.
-  I->eraseFromParent();
-  return 2;
-}
-
-void AlphaInstrInfo::insertNoop(MachineBasicBlock &MBB, 
-                                MachineBasicBlock::iterator MI) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-  BuildMI(MBB, MI, DL, get(Alpha::BISr), Alpha::R31)
-    .addReg(Alpha::R31)
-    .addReg(Alpha::R31);
-}
-
-bool AlphaInstrInfo::BlockHasNoFallThrough(const MachineBasicBlock &MBB) const {
-  if (MBB.empty()) return false;
-  
-  switch (MBB.back().getOpcode()) {
-  case Alpha::RETDAG: // Return.
-  case Alpha::RETDAGp:
-  case Alpha::BR:     // Uncond branch.
-  case Alpha::JMP:  // Indirect branch.
-    return true;
-  default: return false;
-  }
-}
-bool AlphaInstrInfo::
-ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const {
-  assert(Cond.size() == 2 && "Invalid Alpha branch opcode!");
-  Cond[0].setImm(AlphaRevCondCode(Cond[0].getImm()));
-  return false;
-}
-
-/// getGlobalBaseReg - Return a virtual register initialized with the
-/// the global base register value. Output instructions required to
-/// initialize the register in the function entry block, if necessary.
-///
-unsigned AlphaInstrInfo::getGlobalBaseReg(MachineFunction *MF) const {
-  AlphaMachineFunctionInfo *AlphaFI = MF->getInfo<AlphaMachineFunctionInfo>();
-  unsigned GlobalBaseReg = AlphaFI->getGlobalBaseReg();
-  if (GlobalBaseReg != 0)
-    return GlobalBaseReg;
-
-  // Insert the set of GlobalBaseReg into the first MBB of the function
-  MachineBasicBlock &FirstMBB = MF->front();
-  MachineBasicBlock::iterator MBBI = FirstMBB.begin();
-  MachineRegisterInfo &RegInfo = MF->getRegInfo();
-  const TargetInstrInfo *TII = MF->getTarget().getInstrInfo();
-
-  GlobalBaseReg = RegInfo.createVirtualRegister(&Alpha::GPRCRegClass);
-  bool Ok = TII->copyRegToReg(FirstMBB, MBBI, GlobalBaseReg, Alpha::R29,
-                              &Alpha::GPRCRegClass, &Alpha::GPRCRegClass);
-  assert(Ok && "Couldn't assign to global base register!");
-  Ok = Ok; // Silence warning when assertions are turned off.
-  RegInfo.addLiveIn(Alpha::R29);
-
-  AlphaFI->setGlobalBaseReg(GlobalBaseReg);
-  return GlobalBaseReg;
-}
-
-/// getGlobalRetAddr - Return a virtual register initialized with the
-/// the global base register value. Output instructions required to
-/// initialize the register in the function entry block, if necessary.
-///
-unsigned AlphaInstrInfo::getGlobalRetAddr(MachineFunction *MF) const {
-  AlphaMachineFunctionInfo *AlphaFI = MF->getInfo<AlphaMachineFunctionInfo>();
-  unsigned GlobalRetAddr = AlphaFI->getGlobalRetAddr();
-  if (GlobalRetAddr != 0)
-    return GlobalRetAddr;
-
-  // Insert the set of GlobalRetAddr into the first MBB of the function
-  MachineBasicBlock &FirstMBB = MF->front();
-  MachineBasicBlock::iterator MBBI = FirstMBB.begin();
-  MachineRegisterInfo &RegInfo = MF->getRegInfo();
-  const TargetInstrInfo *TII = MF->getTarget().getInstrInfo();
-
-  GlobalRetAddr = RegInfo.createVirtualRegister(&Alpha::GPRCRegClass);
-  bool Ok = TII->copyRegToReg(FirstMBB, MBBI, GlobalRetAddr, Alpha::R26,
-                              &Alpha::GPRCRegClass, &Alpha::GPRCRegClass);
-  assert(Ok && "Couldn't assign to global return address register!");
-  Ok = Ok; // Silence warning when assertions are turned off.
-  RegInfo.addLiveIn(Alpha::R26);
-
-  AlphaFI->setGlobalRetAddr(GlobalRetAddr);
-  return GlobalRetAddr;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.h
deleted file mode 100644
index 274f452..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.h
+++ /dev/null
@@ -1,99 +0,0 @@
-//===- AlphaInstrInfo.h - Alpha Instruction Information ---------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Alpha implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHAINSTRUCTIONINFO_H
-#define ALPHAINSTRUCTIONINFO_H
-
-#include "llvm/Target/TargetInstrInfo.h"
-#include "AlphaRegisterInfo.h"
-
-namespace llvm {
-
-class AlphaInstrInfo : public TargetInstrInfoImpl {
-  const AlphaRegisterInfo RI;
-public:
-  AlphaInstrInfo();
-
-  /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-  /// such, whenever a client has an instance of instruction info, it should
-  /// always be able to get register info as well (through this method).
-  ///
-  virtual const AlphaRegisterInfo &getRegisterInfo() const { return RI; }
-
-  /// Return true if the instruction is a register to register move and return
-  /// the source and dest operands and their sub-register indices by reference.
-  virtual bool isMoveInstr(const MachineInstr &MI,
-                           unsigned &SrcReg, unsigned &DstReg,
-                           unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-  
-  virtual unsigned isLoadFromStackSlot(const MachineInstr *MI,
-                                       int &FrameIndex) const;
-  virtual unsigned isStoreToStackSlot(const MachineInstr *MI,
-                                      int &FrameIndex) const;
-  
-  virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                            MachineBasicBlock *FBB,
-                            const SmallVectorImpl<MachineOperand> &Cond) const;
-  virtual bool copyRegToReg(MachineBasicBlock &MBB,
-                            MachineBasicBlock::iterator MI,
-                            unsigned DestReg, unsigned SrcReg,
-                            const TargetRegisterClass *DestRC,
-                            const TargetRegisterClass *SrcRC) const;
-  virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MBBI,
-                                   unsigned SrcReg, bool isKill, int FrameIndex,
-                                   const TargetRegisterClass *RC) const;
-
-  virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MBBI,
-                                    unsigned DestReg, int FrameIndex,
-                                    const TargetRegisterClass *RC) const;
-  
-  virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                              MachineInstr* MI,
-                                           const SmallVectorImpl<unsigned> &Ops,
-                                              int FrameIndex) const;
-
-  virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                              MachineInstr* MI,
-                                           const SmallVectorImpl<unsigned> &Ops,
-                                              MachineInstr* LoadMI) const {
-    return 0;
-  }
-  
-  bool AnalyzeBranch(MachineBasicBlock &MBB,MachineBasicBlock *&TBB,
-                     MachineBasicBlock *&FBB,
-                     SmallVectorImpl<MachineOperand> &Cond,
-                     bool AllowModify) const;
-  unsigned RemoveBranch(MachineBasicBlock &MBB) const;
-  void insertNoop(MachineBasicBlock &MBB, 
-                  MachineBasicBlock::iterator MI) const;
-  bool BlockHasNoFallThrough(const MachineBasicBlock &MBB) const;
-  bool ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const;
-
-  /// getGlobalBaseReg - Return a virtual register initialized with the
-  /// the global base register value. Output instructions required to
-  /// initialize the register in the function entry block, if necessary.
-  ///
-  unsigned getGlobalBaseReg(MachineFunction *MF) const;
-
-  /// getGlobalRetAddr - Return a virtual register initialized with the
-  /// the global return address register value. Output instructions required to
-  /// initialize the register in the function entry block, if necessary.
-  ///
-  unsigned getGlobalRetAddr(MachineFunction *MF) const;
-};
-
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.td b/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.td
deleted file mode 100644
index 3b98206..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.td
+++ /dev/null
@@ -1,1143 +0,0 @@
-//===- AlphaInstrInfo.td - The Alpha Instruction Set -------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-include "AlphaInstrFormats.td"
-
-//********************
-//Custom DAG Nodes
-//********************
-
-def SDTFPUnaryOpUnC  : SDTypeProfile<1, 1, [
-  SDTCisFP<1>, SDTCisFP<0>
-]>;
-def Alpha_cvtqt   : SDNode<"AlphaISD::CVTQT_",    SDTFPUnaryOpUnC, []>;
-def Alpha_cvtqs   : SDNode<"AlphaISD::CVTQS_",    SDTFPUnaryOpUnC, []>;
-def Alpha_cvttq   : SDNode<"AlphaISD::CVTTQ_"  ,  SDTFPUnaryOp, []>;
-def Alpha_gprello : SDNode<"AlphaISD::GPRelLo",   SDTIntBinOp, []>;
-def Alpha_gprelhi : SDNode<"AlphaISD::GPRelHi",   SDTIntBinOp, []>;
-def Alpha_rellit  : SDNode<"AlphaISD::RelLit",    SDTIntBinOp, [SDNPMayLoad]>;
-
-def retflag       : SDNode<"AlphaISD::RET_FLAG", SDTNone,
-                           [SDNPHasChain, SDNPOptInFlag]>;
-
-// These are target-independent nodes, but have target-specific formats.
-def SDT_AlphaCallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i64> ]>;
-def SDT_AlphaCallSeqEnd   : SDCallSeqEnd<[ SDTCisVT<0, i64>,
-                                           SDTCisVT<1, i64> ]>;
-
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_AlphaCallSeqStart,
-                           [SDNPHasChain, SDNPOutFlag]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_AlphaCallSeqEnd,
-                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-//********************
-//Paterns for matching
-//********************
-def invX : SDNodeXForm<imm, [{ //invert
-  return getI64Imm(~N->getZExtValue());
-}]>;
-def negX : SDNodeXForm<imm, [{ //negate
-  return getI64Imm(~N->getZExtValue() + 1);
-}]>;
-def SExt32 : SDNodeXForm<imm, [{ //signed extend int to long
-  return getI64Imm(((int64_t)N->getZExtValue() << 32) >> 32);
-}]>;
-def SExt16 : SDNodeXForm<imm, [{ //signed extend int to long
-  return getI64Imm(((int64_t)N->getZExtValue() << 48) >> 48);
-}]>;
-def LL16 : SDNodeXForm<imm, [{ //lda part of constant
-  return getI64Imm(get_lda16(N->getZExtValue()));
-}]>;
-def LH16 : SDNodeXForm<imm, [{ //ldah part of constant (or more if too big)
-  return getI64Imm(get_ldah16(N->getZExtValue()));
-}]>;
-def iZAPX : SDNodeXForm<and, [{ // get imm to ZAPi
-  ConstantSDNode *RHS = cast<ConstantSDNode>(N->getOperand(1));
-  return getI64Imm(get_zapImm(SDValue(), RHS->getZExtValue()));
-}]>;
-def nearP2X : SDNodeXForm<imm, [{
-  return getI64Imm(Log2_64(getNearPower2((uint64_t)N->getZExtValue())));
-}]>;
-def nearP2RemX : SDNodeXForm<imm, [{
-  uint64_t x =
-    abs64(N->getZExtValue() - getNearPower2((uint64_t)N->getZExtValue()));
-  return getI64Imm(Log2_64(x));
-}]>;
-
-def immUExt8  : PatLeaf<(imm), [{ //imm fits in 8 bit zero extended field
-  return (uint64_t)N->getZExtValue() == (uint8_t)N->getZExtValue();
-}]>;
-def immUExt8inv  : PatLeaf<(imm), [{ //inverted imm fits in 8 bit zero extended field
-  return (uint64_t)~N->getZExtValue() == (uint8_t)~N->getZExtValue();
-}], invX>;
-def immUExt8neg  : PatLeaf<(imm), [{ //negated imm fits in 8 bit zero extended field
-  return ((uint64_t)~N->getZExtValue() + 1) ==
-         (uint8_t)((uint64_t)~N->getZExtValue() + 1);
-}], negX>;
-def immSExt16  : PatLeaf<(imm), [{ //imm fits in 16 bit sign extended field
-  return ((int64_t)N->getZExtValue() << 48) >> 48 ==
-         (int64_t)N->getZExtValue();
-}]>;
-def immSExt16int  : PatLeaf<(imm), [{ //(int)imm fits in a 16 bit sign extended field
-  return ((int64_t)N->getZExtValue() << 48) >> 48 ==
-         ((int64_t)N->getZExtValue() << 32) >> 32;
-}], SExt16>;
-
-def zappat : PatFrag<(ops node:$LHS), (and node:$LHS, imm:$L), [{
-  ConstantSDNode *RHS = dyn_cast<ConstantSDNode>(N->getOperand(1));
-  if (!RHS) return 0;
-  uint64_t build = get_zapImm(N->getOperand(0), (uint64_t)RHS->getZExtValue());
-  return build != 0;
-}]>;
-
-def immFPZ  : PatLeaf<(fpimm), [{ //the only fpconstant nodes are +/- 0.0
-  (void)N; // silence warning.
-  return true;
-}]>;
-
-def immRem1 :PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),1,0);}]>;
-def immRem2 :PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),2,0);}]>;
-def immRem3 :PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),3,0);}]>;
-def immRem4 :PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),4,0);}]>;
-def immRem5 :PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),5,0);}]>;
-def immRem1n:PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),1,1);}]>;
-def immRem2n:PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),2,1);}]>;
-def immRem3n:PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),3,1);}]>;
-def immRem4n:PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),4,1);}]>;
-def immRem5n:PatLeaf<(imm),[{return chkRemNearPower2(N->getZExtValue(),5,1);}]>;
-
-def immRemP2n : PatLeaf<(imm), [{
-  return isPowerOf2_64(getNearPower2((uint64_t)N->getZExtValue()) -
-                         N->getZExtValue());
-}]>;
-def immRemP2 : PatLeaf<(imm), [{
-  return isPowerOf2_64(N->getZExtValue() -
-                         getNearPower2((uint64_t)N->getZExtValue()));
-}]>;
-def immUExt8ME : PatLeaf<(imm), [{ //use this imm for mulqi
-  int64_t d =  abs64((int64_t)N->getZExtValue() -
-               (int64_t)getNearPower2((uint64_t)N->getZExtValue()));
-  if (isPowerOf2_64(d)) return false;
-  switch (d) {
-    case 1: case 3: case 5: return false; 
-    default: return (uint64_t)N->getZExtValue() == (uint8_t)N->getZExtValue();
-  };
-}]>;
-
-def intop : PatFrag<(ops node:$op), (sext_inreg node:$op, i32)>;
-def add4  : PatFrag<(ops node:$op1, node:$op2),
-                    (add (shl node:$op1, 2), node:$op2)>;
-def sub4  : PatFrag<(ops node:$op1, node:$op2),
-                    (sub (shl node:$op1, 2), node:$op2)>;
-def add8  : PatFrag<(ops node:$op1, node:$op2),
-                    (add (shl node:$op1, 3), node:$op2)>;
-def sub8  : PatFrag<(ops node:$op1, node:$op2),
-                    (sub (shl node:$op1, 3), node:$op2)>;
-class BinOpFrag<dag res> : PatFrag<(ops node:$LHS, node:$RHS), res>;
-class CmpOpFrag<dag res> : PatFrag<(ops node:$R), res>;
-
-//Pseudo ops for selection
-
-def WTF : PseudoInstAlpha<(outs), (ins variable_ops), "#wtf", [], s_pseudo>;
-
-let hasCtrlDep = 1, Defs = [R30], Uses = [R30] in {
-def ADJUSTSTACKUP : PseudoInstAlpha<(outs), (ins s64imm:$amt),
-                "; ADJUP $amt", 
-                [(callseq_start timm:$amt)], s_pseudo>;
-def ADJUSTSTACKDOWN : PseudoInstAlpha<(outs), (ins s64imm:$amt1, s64imm:$amt2),
-                "; ADJDOWN $amt1",
-                [(callseq_end timm:$amt1, timm:$amt2)], s_pseudo>;
-}
-
-def ALTENT : PseudoInstAlpha<(outs), (ins s64imm:$TARGET), "$$$TARGET..ng:\n", [], s_pseudo>;
-def PCLABEL : PseudoInstAlpha<(outs), (ins s64imm:$num), "PCMARKER_$num:\n",[], s_pseudo>;
-def MEMLABEL : PseudoInstAlpha<(outs), (ins s64imm:$i, s64imm:$j, s64imm:$k, s64imm:$m),
-         "LSMARKER$$$i$$$j$$$k$$$m:", [], s_pseudo>;
-
-
-let usesCustomDAGSchedInserter = 1 in {   // Expanded by the scheduler.
-def CAS32 : PseudoInstAlpha<(outs GPRC:$dst), (ins GPRC:$ptr, GPRC:$cmp, GPRC:$swp), "",
-      [(set GPRC:$dst, (atomic_cmp_swap_32 GPRC:$ptr, GPRC:$cmp, GPRC:$swp))], s_pseudo>;
-def CAS64 : PseudoInstAlpha<(outs GPRC:$dst), (ins GPRC:$ptr, GPRC:$cmp, GPRC:$swp), "",
-      [(set GPRC:$dst, (atomic_cmp_swap_64 GPRC:$ptr, GPRC:$cmp, GPRC:$swp))], s_pseudo>;
-
-def LAS32 : PseudoInstAlpha<(outs GPRC:$dst), (ins GPRC:$ptr, GPRC:$swp), "",
-      [(set GPRC:$dst, (atomic_load_add_32 GPRC:$ptr, GPRC:$swp))], s_pseudo>;
-def LAS64 :PseudoInstAlpha<(outs GPRC:$dst), (ins GPRC:$ptr, GPRC:$swp), "",
-      [(set GPRC:$dst, (atomic_load_add_64 GPRC:$ptr, GPRC:$swp))], s_pseudo>;
-
-def SWAP32 : PseudoInstAlpha<(outs GPRC:$dst), (ins GPRC:$ptr, GPRC:$swp), "",
-        [(set GPRC:$dst, (atomic_swap_32 GPRC:$ptr, GPRC:$swp))], s_pseudo>;
-def SWAP64 :PseudoInstAlpha<(outs GPRC:$dst), (ins GPRC:$ptr, GPRC:$swp), "",
-        [(set GPRC:$dst, (atomic_swap_64 GPRC:$ptr, GPRC:$swp))], s_pseudo>;
-}
-
-//***********************
-//Real instructions
-//***********************
-
-//Operation Form:
-
-//conditional moves, int
-
-multiclass cmov_inst<bits<7> fun, string asmstr, PatFrag OpNode> {
-def r : OForm4<0x11, fun, !strconcat(asmstr, " $RCOND,$RTRUE,$RDEST"),
-             [(set GPRC:$RDEST, (select (OpNode GPRC:$RCOND), GPRC:$RTRUE, GPRC:$RFALSE))], s_cmov>;
-def i : OForm4L<0x11, fun, !strconcat(asmstr, " $RCOND,$RTRUE,$RDEST"),
-             [(set GPRC:$RDEST, (select (OpNode GPRC:$RCOND), immUExt8:$RTRUE, GPRC:$RFALSE))], s_cmov>;
-}
-
-defm CMOVEQ  : cmov_inst<0x24, "cmoveq",  CmpOpFrag<(seteq node:$R, 0)>>;
-defm CMOVNE  : cmov_inst<0x26, "cmovne",  CmpOpFrag<(setne node:$R, 0)>>;
-defm CMOVLT  : cmov_inst<0x44, "cmovlt",  CmpOpFrag<(setlt node:$R, 0)>>;
-defm CMOVLE  : cmov_inst<0x64, "cmovle",  CmpOpFrag<(setle node:$R, 0)>>;
-defm CMOVGT  : cmov_inst<0x66, "cmovgt",  CmpOpFrag<(setgt node:$R, 0)>>;
-defm CMOVGE  : cmov_inst<0x46, "cmovge",  CmpOpFrag<(setge node:$R, 0)>>;
-defm CMOVLBC : cmov_inst<0x16, "cmovlbc", CmpOpFrag<(xor   node:$R, 1)>>;
-defm CMOVLBS : cmov_inst<0x14, "cmovlbs", CmpOpFrag<(and   node:$R, 1)>>;
-
-//General pattern for cmov
-def : Pat<(select GPRC:$which, GPRC:$src1, GPRC:$src2),
-      (CMOVNEr GPRC:$src2, GPRC:$src1, GPRC:$which)>;
-def : Pat<(select GPRC:$which, GPRC:$src1, immUExt8:$src2),
-      (CMOVEQi GPRC:$src1, immUExt8:$src2, GPRC:$which)>;
-
-//Invert sense when we can for constants:
-def : Pat<(select (setne GPRC:$RCOND, 0), GPRC:$RTRUE, immUExt8:$RFALSE),
-          (CMOVEQi GPRC:$RCOND, immUExt8:$RFALSE, GPRC:$RTRUE)>;
-def : Pat<(select (setgt GPRC:$RCOND, 0), GPRC:$RTRUE, immUExt8:$RFALSE),
-          (CMOVLEi GPRC:$RCOND, immUExt8:$RFALSE, GPRC:$RTRUE)>;
-def : Pat<(select (setge GPRC:$RCOND, 0), GPRC:$RTRUE, immUExt8:$RFALSE),
-          (CMOVLTi GPRC:$RCOND, immUExt8:$RFALSE, GPRC:$RTRUE)>;
-def : Pat<(select (setlt GPRC:$RCOND, 0), GPRC:$RTRUE, immUExt8:$RFALSE),
-          (CMOVGEi GPRC:$RCOND, immUExt8:$RFALSE, GPRC:$RTRUE)>;
-def : Pat<(select (setle GPRC:$RCOND, 0), GPRC:$RTRUE, immUExt8:$RFALSE),
-          (CMOVGTi GPRC:$RCOND, immUExt8:$RFALSE, GPRC:$RTRUE)>;
-
-multiclass all_inst<bits<6> opc, bits<7> funl, bits<7> funq, 
-                    string asmstr, PatFrag OpNode, InstrItinClass itin> {
-  def Lr : OForm< opc, funl, !strconcat(asmstr, "l $RA,$RB,$RC"),
-               [(set GPRC:$RC, (intop (OpNode GPRC:$RA, GPRC:$RB)))], itin>;
-  def Li : OFormL<opc, funl, !strconcat(asmstr, "l $RA,$L,$RC"),
-               [(set GPRC:$RC, (intop (OpNode GPRC:$RA, immUExt8:$L)))], itin>;
-  def Qr : OForm< opc, funq, !strconcat(asmstr, "q $RA,$RB,$RC"),
-               [(set GPRC:$RC, (OpNode GPRC:$RA, GPRC:$RB))], itin>;
-  def Qi : OFormL<opc, funq, !strconcat(asmstr, "q $RA,$L,$RC"),
-               [(set GPRC:$RC, (OpNode GPRC:$RA, immUExt8:$L))], itin>;
-}
-
-defm MUL   : all_inst<0x13, 0x00, 0x20, "mul",   BinOpFrag<(mul node:$LHS, node:$RHS)>, s_imul>;
-defm ADD   : all_inst<0x10, 0x00, 0x20, "add",   BinOpFrag<(add node:$LHS, node:$RHS)>, s_iadd>;
-defm S4ADD : all_inst<0x10, 0x02, 0x22, "s4add", add4, s_iadd>;
-defm S8ADD : all_inst<0x10, 0x12, 0x32, "s8add", add8, s_iadd>;
-defm S4SUB : all_inst<0x10, 0x0B, 0x2B, "s4sub", sub4, s_iadd>;
-defm S8SUB : all_inst<0x10, 0x1B, 0x3B, "s8sub", sub8, s_iadd>;
-defm SUB   : all_inst<0x10, 0x09, 0x29, "sub",   BinOpFrag<(sub node:$LHS, node:$RHS)>, s_iadd>;
-//Const cases since legalize does sub x, int -> add x, inv(int) + 1
-def : Pat<(intop (add GPRC:$RA, immUExt8neg:$L)), (SUBLi GPRC:$RA, immUExt8neg:$L)>;
-def : Pat<(add GPRC:$RA, immUExt8neg:$L), (SUBQi GPRC:$RA, immUExt8neg:$L)>;
-def : Pat<(intop (add4 GPRC:$RA, immUExt8neg:$L)), (S4SUBLi GPRC:$RA, immUExt8neg:$L)>;
-def : Pat<(add4 GPRC:$RA, immUExt8neg:$L), (S4SUBQi GPRC:$RA, immUExt8neg:$L)>;
-def : Pat<(intop (add8 GPRC:$RA, immUExt8neg:$L)), (S8SUBLi GPRC:$RA, immUExt8neg:$L)>;
-def : Pat<(add8 GPRC:$RA, immUExt8neg:$L), (S8SUBQi GPRC:$RA, immUExt8neg:$L)>;
-
-multiclass log_inst<bits<6> opc, bits<7> fun, string asmstr, SDNode OpNode, InstrItinClass itin> {
-def r : OForm<opc, fun, !strconcat(asmstr, " $RA,$RB,$RC"),
-              [(set GPRC:$RC, (OpNode GPRC:$RA, GPRC:$RB))], itin>;
-def i : OFormL<opc, fun, !strconcat(asmstr, " $RA,$L,$RC"),
-              [(set GPRC:$RC, (OpNode GPRC:$RA, immUExt8:$L))], itin>;
-}
-multiclass inv_inst<bits<6> opc, bits<7> fun, string asmstr, SDNode OpNode, InstrItinClass itin> {
-def r : OForm<opc, fun, !strconcat(asmstr, " $RA,$RB,$RC"),
-              [(set GPRC:$RC, (OpNode GPRC:$RA, (not GPRC:$RB)))], itin>;
-def i : OFormL<opc, fun, !strconcat(asmstr, " $RA,$L,$RC"),
-              [(set GPRC:$RC, (OpNode GPRC:$RA, immUExt8inv:$L))], itin>;
-}
-
-defm AND   : log_inst<0x11, 0x00, "and",   and,   s_ilog>;
-defm BIC   : inv_inst<0x11, 0x08, "bic",   and,   s_ilog>;
-defm BIS   : log_inst<0x11, 0x20, "bis",   or,    s_ilog>;
-defm ORNOT : inv_inst<0x11, 0x28, "ornot", or,    s_ilog>;
-defm XOR   : log_inst<0x11, 0x40, "xor",   xor,   s_ilog>;
-defm EQV   : inv_inst<0x11, 0x48, "eqv",   xor,   s_ilog>;
-
-defm SL    : log_inst<0x12, 0x39, "sll",   shl,   s_ishf>;
-defm SRA   : log_inst<0x12, 0x3c, "sra",   sra,   s_ishf>;
-defm SRL   : log_inst<0x12, 0x34, "srl",   srl,   s_ishf>;
-defm UMULH : log_inst<0x13, 0x30, "umulh", mulhu, s_imul>;
-
-def CTLZ     : OForm2<0x1C, 0x32, "CTLZ $RB,$RC", 
-                      [(set GPRC:$RC, (ctlz GPRC:$RB))], s_imisc>;
-def CTPOP    : OForm2<0x1C, 0x30, "CTPOP $RB,$RC", 
-                      [(set GPRC:$RC, (ctpop GPRC:$RB))], s_imisc>;
-def CTTZ     : OForm2<0x1C, 0x33, "CTTZ $RB,$RC", 
-                      [(set GPRC:$RC, (cttz GPRC:$RB))], s_imisc>;
-def EXTBL    : OForm< 0x12, 0x06, "EXTBL $RA,$RB,$RC", 
-                      [(set GPRC:$RC, (and (srl GPRC:$RA, (shl GPRC:$RB, 3)), 255))], s_ishf>;
-def EXTWL    : OForm< 0x12, 0x16, "EXTWL $RA,$RB,$RC", 
-                      [(set GPRC:$RC, (and (srl GPRC:$RA, (shl GPRC:$RB, 3)), 65535))], s_ishf>;
-def EXTLL    : OForm< 0x12, 0x26, "EXTLL $RA,$RB,$RC", 
-                      [(set GPRC:$RC, (and (srl GPRC:$RA, (shl GPRC:$RB, 3)), 4294967295))], s_ishf>;
-def SEXTB    : OForm2<0x1C, 0x00, "sextb $RB,$RC", 
-                      [(set GPRC:$RC, (sext_inreg GPRC:$RB, i8))], s_ishf>;
-def SEXTW    : OForm2<0x1C, 0x01, "sextw $RB,$RC", 
-                      [(set GPRC:$RC, (sext_inreg GPRC:$RB, i16))], s_ishf>;
-
-//def EXTBLi   : OFormL<0x12, 0x06, "EXTBL $RA,$L,$RC", []>; //Extract byte low
-//def EXTLH    : OForm< 0x12, 0x6A, "EXTLH $RA,$RB,$RC", []>; //Extract longword high
-//def EXTLHi   : OFormL<0x12, 0x6A, "EXTLH $RA,$L,$RC", []>; //Extract longword high
-//def EXTLLi   : OFormL<0x12, 0x26, "EXTLL $RA,$L,$RC", []>; //Extract longword low
-//def EXTQH    : OForm< 0x12, 0x7A, "EXTQH $RA,$RB,$RC", []>; //Extract quadword high
-//def EXTQHi   : OFormL<0x12, 0x7A, "EXTQH $RA,$L,$RC", []>; //Extract quadword high
-//def EXTQ     : OForm< 0x12, 0x36, "EXTQ $RA,$RB,$RC", []>; //Extract quadword low
-//def EXTQi    : OFormL<0x12, 0x36, "EXTQ $RA,$L,$RC", []>; //Extract quadword low
-//def EXTWH    : OForm< 0x12, 0x5A, "EXTWH $RA,$RB,$RC", []>; //Extract word high
-//def EXTWHi   : OFormL<0x12, 0x5A, "EXTWH $RA,$L,$RC", []>; //Extract word high
-//def EXTWLi   : OFormL<0x12, 0x16, "EXTWL $RA,$L,$RC", []>; //Extract word low
-
-//def INSBL    : OForm< 0x12, 0x0B, "INSBL $RA,$RB,$RC", []>; //Insert byte low
-//def INSBLi   : OFormL<0x12, 0x0B, "INSBL $RA,$L,$RC", []>; //Insert byte low
-//def INSLH    : OForm< 0x12, 0x67, "INSLH $RA,$RB,$RC", []>; //Insert longword high
-//def INSLHi   : OFormL<0x12, 0x67, "INSLH $RA,$L,$RC", []>; //Insert longword high
-//def INSLL    : OForm< 0x12, 0x2B, "INSLL $RA,$RB,$RC", []>; //Insert longword low
-//def INSLLi   : OFormL<0x12, 0x2B, "INSLL $RA,$L,$RC", []>; //Insert longword low
-//def INSQH    : OForm< 0x12, 0x77, "INSQH $RA,$RB,$RC", []>; //Insert quadword high
-//def INSQHi   : OFormL<0x12, 0x77, "INSQH $RA,$L,$RC", []>; //Insert quadword high
-//def INSQL    : OForm< 0x12, 0x3B, "INSQL $RA,$RB,$RC", []>; //Insert quadword low
-//def INSQLi   : OFormL<0x12, 0x3B, "INSQL $RA,$L,$RC", []>; //Insert quadword low
-//def INSWH    : OForm< 0x12, 0x57, "INSWH $RA,$RB,$RC", []>; //Insert word high
-//def INSWHi   : OFormL<0x12, 0x57, "INSWH $RA,$L,$RC", []>; //Insert word high
-//def INSWL    : OForm< 0x12, 0x1B, "INSWL $RA,$RB,$RC", []>; //Insert word low
-//def INSWLi   : OFormL<0x12, 0x1B, "INSWL $RA,$L,$RC", []>; //Insert word low
-
-//def MSKBL    : OForm< 0x12, 0x02, "MSKBL $RA,$RB,$RC", []>; //Mask byte low
-//def MSKBLi   : OFormL<0x12, 0x02, "MSKBL $RA,$L,$RC", []>; //Mask byte low
-//def MSKLH    : OForm< 0x12, 0x62, "MSKLH $RA,$RB,$RC", []>; //Mask longword high
-//def MSKLHi   : OFormL<0x12, 0x62, "MSKLH $RA,$L,$RC", []>; //Mask longword high
-//def MSKLL    : OForm< 0x12, 0x22, "MSKLL $RA,$RB,$RC", []>; //Mask longword low
-//def MSKLLi   : OFormL<0x12, 0x22, "MSKLL $RA,$L,$RC", []>; //Mask longword low
-//def MSKQH    : OForm< 0x12, 0x72, "MSKQH $RA,$RB,$RC", []>; //Mask quadword high
-//def MSKQHi   : OFormL<0x12, 0x72, "MSKQH $RA,$L,$RC", []>; //Mask quadword high
-//def MSKQL    : OForm< 0x12, 0x32, "MSKQL $RA,$RB,$RC", []>; //Mask quadword low
-//def MSKQLi   : OFormL<0x12, 0x32, "MSKQL $RA,$L,$RC", []>; //Mask quadword low
-//def MSKWH    : OForm< 0x12, 0x52, "MSKWH $RA,$RB,$RC", []>; //Mask word high
-//def MSKWHi   : OFormL<0x12, 0x52, "MSKWH $RA,$L,$RC", []>; //Mask word high
-//def MSKWL    : OForm< 0x12, 0x12, "MSKWL $RA,$RB,$RC", []>; //Mask word low
-//def MSKWLi   : OFormL<0x12, 0x12, "MSKWL $RA,$L,$RC", []>; //Mask word low
-                      
-def ZAPNOTi  : OFormL<0x12, 0x31, "zapnot $RA,$L,$RC", [], s_ishf>;
-
-// Define the pattern that produces ZAPNOTi.
-def : Pat<(zappat:$imm GPRC:$RA),
-          (ZAPNOTi GPRC:$RA, (iZAPX GPRC:$imm))>;
-
-
-//Comparison, int
-//So this is a waste of what this instruction can do, but it still saves something
-def CMPBGE  : OForm< 0x10, 0x0F, "cmpbge $RA,$RB,$RC", 
-                     [(set GPRC:$RC, (setuge (and GPRC:$RA, 255), (and GPRC:$RB, 255)))], s_ilog>;
-def CMPBGEi : OFormL<0x10, 0x0F, "cmpbge $RA,$L,$RC",
-                     [(set GPRC:$RC, (setuge (and GPRC:$RA, 255), immUExt8:$L))], s_ilog>;
-def CMPEQ   : OForm< 0x10, 0x2D, "cmpeq $RA,$RB,$RC", 
-                     [(set GPRC:$RC, (seteq GPRC:$RA, GPRC:$RB))], s_iadd>;
-def CMPEQi  : OFormL<0x10, 0x2D, "cmpeq $RA,$L,$RC", 
-                     [(set GPRC:$RC, (seteq GPRC:$RA, immUExt8:$L))], s_iadd>;
-def CMPLE   : OForm< 0x10, 0x6D, "cmple $RA,$RB,$RC", 
-                     [(set GPRC:$RC, (setle GPRC:$RA, GPRC:$RB))], s_iadd>;
-def CMPLEi  : OFormL<0x10, 0x6D, "cmple $RA,$L,$RC",
-                     [(set GPRC:$RC, (setle GPRC:$RA, immUExt8:$L))], s_iadd>;
-def CMPLT   : OForm< 0x10, 0x4D, "cmplt $RA,$RB,$RC",
-                     [(set GPRC:$RC, (setlt GPRC:$RA, GPRC:$RB))], s_iadd>;
-def CMPLTi  : OFormL<0x10, 0x4D, "cmplt $RA,$L,$RC",
-                     [(set GPRC:$RC, (setlt GPRC:$RA, immUExt8:$L))], s_iadd>;
-def CMPULE  : OForm< 0x10, 0x3D, "cmpule $RA,$RB,$RC",
-                     [(set GPRC:$RC, (setule GPRC:$RA, GPRC:$RB))], s_iadd>;
-def CMPULEi : OFormL<0x10, 0x3D, "cmpule $RA,$L,$RC",
-                     [(set GPRC:$RC, (setule GPRC:$RA, immUExt8:$L))], s_iadd>;
-def CMPULT  : OForm< 0x10, 0x1D, "cmpult $RA,$RB,$RC",
-                     [(set GPRC:$RC, (setult GPRC:$RA, GPRC:$RB))], s_iadd>;
-def CMPULTi : OFormL<0x10, 0x1D, "cmpult $RA,$L,$RC", 
-                      [(set GPRC:$RC, (setult GPRC:$RA, immUExt8:$L))], s_iadd>;
-
-//Patterns for unsupported int comparisons
-def : Pat<(setueq GPRC:$X, GPRC:$Y), (CMPEQ GPRC:$X, GPRC:$Y)>;
-def : Pat<(setueq GPRC:$X, immUExt8:$Y), (CMPEQi GPRC:$X, immUExt8:$Y)>;
-
-def : Pat<(setugt GPRC:$X, GPRC:$Y), (CMPULT GPRC:$Y, GPRC:$X)>;
-def : Pat<(setugt immUExt8:$X, GPRC:$Y), (CMPULTi GPRC:$Y, immUExt8:$X)>;
-
-def : Pat<(setuge GPRC:$X, GPRC:$Y), (CMPULE GPRC:$Y, GPRC:$X)>;
-def : Pat<(setuge immUExt8:$X, GPRC:$Y), (CMPULEi GPRC:$Y, immUExt8:$X)>;
-
-def : Pat<(setgt GPRC:$X, GPRC:$Y), (CMPLT GPRC:$Y, GPRC:$X)>;
-def : Pat<(setgt immUExt8:$X, GPRC:$Y), (CMPLTi GPRC:$Y, immUExt8:$X)>;
-
-def : Pat<(setge GPRC:$X, GPRC:$Y), (CMPLE GPRC:$Y, GPRC:$X)>;
-def : Pat<(setge immUExt8:$X, GPRC:$Y), (CMPLEi GPRC:$Y, immUExt8:$X)>;
-
-def : Pat<(setne GPRC:$X, GPRC:$Y), (CMPEQi (CMPEQ GPRC:$X, GPRC:$Y), 0)>;
-def : Pat<(setne GPRC:$X, immUExt8:$Y), (CMPEQi (CMPEQi GPRC:$X, immUExt8:$Y), 0)>;
-
-def : Pat<(setune GPRC:$X, GPRC:$Y), (CMPEQi (CMPEQ GPRC:$X, GPRC:$Y), 0)>;
-def : Pat<(setune GPRC:$X, immUExt8:$Y), (CMPEQi (CMPEQ GPRC:$X, immUExt8:$Y), 0)>;
-
-
-let isReturn = 1, isTerminator = 1, Ra = 31, Rb = 26, disp = 1, Uses = [R26] in {
-  def RETDAG : MbrForm< 0x1A, 0x02, (ops), "ret $$31,($$26),1", s_jsr>; //Return from subroutine
-  def RETDAGp : MbrpForm< 0x1A, 0x02, (ops), "ret $$31,($$26),1", [(retflag)], s_jsr>; //Return from subroutine
-}
-
-let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1, Ra = 31, disp = 0 in
-def JMP : MbrpForm< 0x1A, 0x00, (ops GPRC:$RS), "jmp $$31,($RS),0", 
-          [(brind GPRC:$RS)], s_jsr>; //Jump
-
-let isCall = 1, Ra = 26,
-    Defs = [R0, R1, R2, R3, R4, R5, R6, R7, R8, R16, R17, R18, R19,
-            R20, R21, R22, R23, R24, R25, R26, R27, R28, R29,
-            F0, F1,
-            F10, F11, F12, F13, F14, F15, F16, F17, F18, F19,
-            F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30], Uses = [R29] in {
-    def BSR : BFormD<0x34, "bsr $$26,$$$DISP..ng", [], s_jsr>; //Branch to subroutine
-}
-let isCall = 1, Ra = 26, Rb = 27, disp = 0,
-    Defs = [R0, R1, R2, R3, R4, R5, R6, R7, R8, R16, R17, R18, R19,
-            R20, R21, R22, R23, R24, R25, R26, R27, R28, R29,
-            F0, F1,
-            F10, F11, F12, F13, F14, F15, F16, F17, F18, F19,
-            F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30], Uses = [R27, R29] in {
-    def JSR : MbrForm< 0x1A, 0x01, (ops ), "jsr $$26,($$27),0", s_jsr>; //Jump to subroutine
-}
-
-let isCall = 1, Ra = 23, Rb = 27, disp = 0,
-    Defs = [R23, R24, R25, R27, R28], Uses = [R24, R25, R27] in
-  def JSRs : MbrForm< 0x1A, 0x01, (ops ), "jsr $$23,($$27),0", s_jsr>; //Jump to div or rem
-
-
-def JSR_COROUTINE : MbrForm< 0x1A, 0x03, (ops GPRC:$RD, GPRC:$RS, s14imm:$DISP), "jsr_coroutine $RD,($RS),$DISP", s_jsr>; //Jump to subroutine return
-
-
-let OutOperandList = (ops GPRC:$RA), InOperandList = (ops s64imm:$DISP, GPRC:$RB) in {
-def LDQ   : MForm<0x29, 1, "ldq $RA,$DISP($RB)",
-                 [(set GPRC:$RA, (load (add GPRC:$RB, immSExt16:$DISP)))], s_ild>;
-def LDQr  : MForm<0x29, 1, "ldq $RA,$DISP($RB)\t\t!gprellow",
-                 [(set GPRC:$RA, (load (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB)))], s_ild>;
-def LDL   : MForm<0x28, 1, "ldl $RA,$DISP($RB)",
-                 [(set GPRC:$RA, (sextloadi32 (add GPRC:$RB, immSExt16:$DISP)))], s_ild>;
-def LDLr  : MForm<0x28, 1, "ldl $RA,$DISP($RB)\t\t!gprellow",
-                 [(set GPRC:$RA, (sextloadi32 (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB)))], s_ild>;
-def LDBU  : MForm<0x0A, 1, "ldbu $RA,$DISP($RB)",
-                 [(set GPRC:$RA, (zextloadi8 (add GPRC:$RB, immSExt16:$DISP)))], s_ild>;
-def LDBUr : MForm<0x0A, 1, "ldbu $RA,$DISP($RB)\t\t!gprellow",
-                 [(set GPRC:$RA, (zextloadi8 (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB)))], s_ild>;
-def LDWU  : MForm<0x0C, 1, "ldwu $RA,$DISP($RB)",
-                 [(set GPRC:$RA, (zextloadi16 (add GPRC:$RB, immSExt16:$DISP)))], s_ild>;
-def LDWUr : MForm<0x0C, 1, "ldwu $RA,$DISP($RB)\t\t!gprellow",
-                 [(set GPRC:$RA, (zextloadi16 (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB)))], s_ild>;
-}
-
-
-let OutOperandList = (ops), InOperandList = (ops GPRC:$RA, s64imm:$DISP, GPRC:$RB) in {
-def STB   : MForm<0x0E, 0, "stb $RA,$DISP($RB)",
-                 [(truncstorei8 GPRC:$RA, (add GPRC:$RB, immSExt16:$DISP))], s_ist>;
-def STBr  : MForm<0x0E, 0, "stb $RA,$DISP($RB)\t\t!gprellow",
-                 [(truncstorei8 GPRC:$RA, (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB))], s_ist>;
-def STW   : MForm<0x0D, 0, "stw $RA,$DISP($RB)",
-                 [(truncstorei16 GPRC:$RA, (add GPRC:$RB, immSExt16:$DISP))], s_ist>;
-def STWr  : MForm<0x0D, 0, "stw $RA,$DISP($RB)\t\t!gprellow",
-                 [(truncstorei16 GPRC:$RA, (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB))], s_ist>;
-def STL   : MForm<0x2C, 0, "stl $RA,$DISP($RB)",
-                 [(truncstorei32 GPRC:$RA, (add GPRC:$RB, immSExt16:$DISP))], s_ist>;
-def STLr  : MForm<0x2C, 0, "stl $RA,$DISP($RB)\t\t!gprellow",
-                 [(truncstorei32 GPRC:$RA, (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB))], s_ist>;
-def STQ   : MForm<0x2D, 0, "stq $RA,$DISP($RB)",
-                 [(store GPRC:$RA, (add GPRC:$RB, immSExt16:$DISP))], s_ist>;
-def STQr  : MForm<0x2D, 0, "stq $RA,$DISP($RB)\t\t!gprellow",
-                 [(store GPRC:$RA, (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB))], s_ist>;
-}
-
-//Load address
-let OutOperandList = (ops GPRC:$RA), InOperandList = (ops s64imm:$DISP, GPRC:$RB) in {
-def LDA   : MForm<0x08, 0, "lda $RA,$DISP($RB)",
-                 [(set GPRC:$RA, (add GPRC:$RB, immSExt16:$DISP))], s_lda>;
-def LDAr  : MForm<0x08, 0, "lda $RA,$DISP($RB)\t\t!gprellow",
-                 [(set GPRC:$RA, (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB))], s_lda>;  //Load address
-def LDAH  : MForm<0x09, 0, "ldah $RA,$DISP($RB)",
-                 [], s_lda>;  //Load address high
-def LDAHr : MForm<0x09, 0, "ldah $RA,$DISP($RB)\t\t!gprelhigh",
-                 [(set GPRC:$RA, (Alpha_gprelhi tglobaladdr:$DISP, GPRC:$RB))], s_lda>;  //Load address high
-}
-
-let OutOperandList = (ops), InOperandList = (ops F4RC:$RA, s64imm:$DISP, GPRC:$RB) in {
-def STS  : MForm<0x26, 0, "sts $RA,$DISP($RB)",
-                [(store F4RC:$RA, (add GPRC:$RB, immSExt16:$DISP))], s_fst>;
-def STSr : MForm<0x26, 0, "sts $RA,$DISP($RB)\t\t!gprellow",
-                [(store F4RC:$RA, (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB))], s_fst>;
-}
-let OutOperandList = (ops F4RC:$RA), InOperandList = (ops s64imm:$DISP, GPRC:$RB) in {
-def LDS  : MForm<0x22, 1, "lds $RA,$DISP($RB)",
-                [(set F4RC:$RA, (load (add GPRC:$RB, immSExt16:$DISP)))], s_fld>;
-def LDSr : MForm<0x22, 1, "lds $RA,$DISP($RB)\t\t!gprellow",
-                [(set F4RC:$RA, (load (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB)))], s_fld>;
-}
-let OutOperandList = (ops), InOperandList = (ops F8RC:$RA, s64imm:$DISP, GPRC:$RB) in {
-def STT  : MForm<0x27, 0, "stt $RA,$DISP($RB)",
-                 [(store F8RC:$RA, (add GPRC:$RB, immSExt16:$DISP))], s_fst>;
-def STTr : MForm<0x27, 0, "stt $RA,$DISP($RB)\t\t!gprellow",
-                 [(store F8RC:$RA, (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB))], s_fst>;
-}
-let OutOperandList = (ops F8RC:$RA), InOperandList = (ops s64imm:$DISP, GPRC:$RB) in {
-def LDT  : MForm<0x23, 1, "ldt $RA,$DISP($RB)",
-                [(set F8RC:$RA, (load (add GPRC:$RB, immSExt16:$DISP)))], s_fld>;
-def LDTr : MForm<0x23, 1, "ldt $RA,$DISP($RB)\t\t!gprellow",
-                [(set F8RC:$RA, (load (Alpha_gprello tglobaladdr:$DISP, GPRC:$RB)))], s_fld>;
-}
-
-
-//constpool rels
-def : Pat<(i64 (load (Alpha_gprello tconstpool:$DISP, GPRC:$RB))),
-          (LDQr tconstpool:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (sextloadi32 (Alpha_gprello tconstpool:$DISP, GPRC:$RB))),
-          (LDLr tconstpool:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (zextloadi8 (Alpha_gprello tconstpool:$DISP, GPRC:$RB))),
-          (LDBUr tconstpool:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (zextloadi16 (Alpha_gprello tconstpool:$DISP, GPRC:$RB))),
-          (LDWUr tconstpool:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (Alpha_gprello tconstpool:$DISP, GPRC:$RB)),
-          (LDAr tconstpool:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (Alpha_gprelhi tconstpool:$DISP, GPRC:$RB)),
-          (LDAHr tconstpool:$DISP, GPRC:$RB)>;
-def : Pat<(f32 (load (Alpha_gprello tconstpool:$DISP, GPRC:$RB))),
-          (LDSr tconstpool:$DISP, GPRC:$RB)>;
-def : Pat<(f64 (load (Alpha_gprello tconstpool:$DISP, GPRC:$RB))),
-          (LDTr tconstpool:$DISP, GPRC:$RB)>;
-
-//jumptable rels
-def : Pat<(i64 (Alpha_gprelhi tjumptable:$DISP, GPRC:$RB)),
-          (LDAHr tjumptable:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (Alpha_gprello tjumptable:$DISP, GPRC:$RB)),
-          (LDAr tjumptable:$DISP, GPRC:$RB)>;
-
-
-//misc ext patterns
-def : Pat<(i64 (extloadi8 (add GPRC:$RB, immSExt16:$DISP))),
-          (LDBU   immSExt16:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (extloadi16 (add GPRC:$RB, immSExt16:$DISP))),
-          (LDWU  immSExt16:$DISP, GPRC:$RB)>;
-def : Pat<(i64 (extloadi32 (add GPRC:$RB, immSExt16:$DISP))),
-          (LDL   immSExt16:$DISP, GPRC:$RB)>;
-
-//0 disp patterns
-def : Pat<(i64 (load GPRC:$addr)),
-          (LDQ  0, GPRC:$addr)>;
-def : Pat<(f64 (load GPRC:$addr)),
-          (LDT  0, GPRC:$addr)>;
-def : Pat<(f32 (load GPRC:$addr)),
-          (LDS  0, GPRC:$addr)>;
-def : Pat<(i64 (sextloadi32 GPRC:$addr)),
-          (LDL  0, GPRC:$addr)>;
-def : Pat<(i64 (zextloadi16 GPRC:$addr)),
-          (LDWU 0, GPRC:$addr)>;
-def : Pat<(i64 (zextloadi8 GPRC:$addr)),
-          (LDBU 0, GPRC:$addr)>;
-def : Pat<(i64 (extloadi8 GPRC:$addr)),
-          (LDBU 0, GPRC:$addr)>;
-def : Pat<(i64 (extloadi16 GPRC:$addr)),
-          (LDWU 0, GPRC:$addr)>;
-def : Pat<(i64 (extloadi32 GPRC:$addr)),
-          (LDL  0, GPRC:$addr)>;
-
-def : Pat<(store GPRC:$DATA, GPRC:$addr),
-          (STQ  GPRC:$DATA, 0, GPRC:$addr)>;
-def : Pat<(store F8RC:$DATA, GPRC:$addr),
-          (STT  F8RC:$DATA, 0, GPRC:$addr)>;
-def : Pat<(store F4RC:$DATA, GPRC:$addr),
-          (STS  F4RC:$DATA, 0, GPRC:$addr)>;
-def : Pat<(truncstorei32 GPRC:$DATA, GPRC:$addr),
-          (STL  GPRC:$DATA, 0, GPRC:$addr)>;
-def : Pat<(truncstorei16 GPRC:$DATA, GPRC:$addr),
-          (STW GPRC:$DATA, 0, GPRC:$addr)>;
-def : Pat<(truncstorei8 GPRC:$DATA, GPRC:$addr),
-          (STB GPRC:$DATA, 0, GPRC:$addr)>;
-
-
-//load address, rellocated gpdist form
-let OutOperandList = (ops GPRC:$RA),
-    InOperandList = (ops s16imm:$DISP, GPRC:$RB, s16imm:$NUM),
-    mayLoad = 1 in {
-def LDAg  : MForm<0x08, 1, "lda $RA,0($RB)\t\t!gpdisp!$NUM", [], s_lda>;  //Load address
-def LDAHg : MForm<0x09, 1, "ldah $RA,0($RB)\t\t!gpdisp!$NUM", [], s_lda>;  //Load address
-}
-
-//Load quad, rellocated literal form
-let OutOperandList = (ops GPRC:$RA), InOperandList = (ops s64imm:$DISP, GPRC:$RB) in 
-def LDQl : MForm<0x29, 1, "ldq $RA,$DISP($RB)\t\t!literal",
-                 [(set GPRC:$RA, (Alpha_rellit tglobaladdr:$DISP, GPRC:$RB))], s_ild>;
-def : Pat<(Alpha_rellit texternalsym:$ext, GPRC:$RB),
-          (LDQl texternalsym:$ext, GPRC:$RB)>;
-
-let OutOperandList = (outs GPRC:$RR),
-    InOperandList = (ins GPRC:$RA, s64imm:$DISP, GPRC:$RB),
-    Constraints = "$RA = $RR",
-    DisableEncoding = "$RR" in {
-def STQ_C : MForm<0x2F, 0, "stq_l $RA,$DISP($RB)", [], s_ist>;
-def STL_C : MForm<0x2E, 0, "stl_l $RA,$DISP($RB)", [], s_ist>;
-}
-let OutOperandList = (ops GPRC:$RA),
-    InOperandList = (ops s64imm:$DISP, GPRC:$RB),
-    mayLoad = 1 in {
-def LDQ_L : MForm<0x2B, 1, "ldq_l $RA,$DISP($RB)", [], s_ild>;
-def LDL_L : MForm<0x2A, 1, "ldl_l $RA,$DISP($RB)", [], s_ild>;
-}
-
-def RPCC : MfcForm<0x18, 0xC000, "rpcc $RA", s_rpcc>; //Read process cycle counter
-def MB  : MfcPForm<0x18, 0x4000, "mb",  s_imisc>; //memory barrier
-def WMB : MfcPForm<0x18, 0x4400, "wmb", s_imisc>; //write memory barrier
-
-def : Pat<(membarrier (i64 imm:$ll), (i64 imm:$ls), (i64 imm:$sl), (i64 1), (i64 imm:$dev)),
-          (WMB)>;
-def : Pat<(membarrier (i64 imm:$ll), (i64 imm:$ls), (i64 imm:$sl), (i64 imm:$ss), (i64 imm:$dev)),
-          (MB)>;
-
-//Basic Floating point ops
-
-//Floats
-
-let OutOperandList = (ops F4RC:$RC), InOperandList = (ops F4RC:$RB), Fa = 31 in 
-def SQRTS : FPForm<0x14, 0x58B, "sqrts/su $RB,$RC",
-                   [(set F4RC:$RC, (fsqrt F4RC:$RB))], s_fsqrts>;
-
-let OutOperandList = (ops F4RC:$RC), InOperandList = (ops F4RC:$RA, F4RC:$RB) in {
-def ADDS  : FPForm<0x16, 0x580, "adds/su $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fadd F4RC:$RA, F4RC:$RB))], s_fadd>;
-def SUBS  : FPForm<0x16, 0x581, "subs/su $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fsub F4RC:$RA, F4RC:$RB))], s_fadd>;
-def DIVS  : FPForm<0x16, 0x583, "divs/su $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fdiv F4RC:$RA, F4RC:$RB))], s_fdivs>;
-def MULS  : FPForm<0x16, 0x582, "muls/su $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fmul F4RC:$RA, F4RC:$RB))], s_fmul>;
-
-def CPYSS  : FPForm<0x17, 0x020, "cpys $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fcopysign F4RC:$RB, F4RC:$RA))], s_fadd>;
-def CPYSES : FPForm<0x17, 0x022, "cpyse $RA,$RB,$RC",[], s_fadd>; //Copy sign and exponent
-def CPYSNS : FPForm<0x17, 0x021, "cpysn $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fneg (fcopysign F4RC:$RB, F4RC:$RA)))], s_fadd>;
-}
-
-//Doubles
-
-let OutOperandList = (ops F8RC:$RC), InOperandList = (ops F8RC:$RB), Fa = 31 in 
-def SQRTT : FPForm<0x14, 0x5AB, "sqrtt/su $RB,$RC",
-                   [(set F8RC:$RC, (fsqrt F8RC:$RB))], s_fsqrtt>;
-
-let OutOperandList = (ops F8RC:$RC), InOperandList = (ops F8RC:$RA, F8RC:$RB) in {
-def ADDT  : FPForm<0x16, 0x5A0, "addt/su $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fadd F8RC:$RA, F8RC:$RB))], s_fadd>;
-def SUBT  : FPForm<0x16, 0x5A1, "subt/su $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fsub F8RC:$RA, F8RC:$RB))], s_fadd>;
-def DIVT  : FPForm<0x16, 0x5A3, "divt/su $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fdiv F8RC:$RA, F8RC:$RB))], s_fdivt>;
-def MULT  : FPForm<0x16, 0x5A2, "mult/su $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fmul F8RC:$RA, F8RC:$RB))], s_fmul>;
-
-def CPYST  : FPForm<0x17, 0x020, "cpys $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fcopysign F8RC:$RB, F8RC:$RA))], s_fadd>;
-def CPYSET : FPForm<0x17, 0x022, "cpyse $RA,$RB,$RC",[], s_fadd>; //Copy sign and exponent
-def CPYSNT : FPForm<0x17, 0x021, "cpysn $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fneg (fcopysign F8RC:$RB, F8RC:$RA)))], s_fadd>;
-
-def CMPTEQ : FPForm<0x16, 0x5A5, "cmpteq/su $RA,$RB,$RC", [], s_fadd>;
-//                    [(set F8RC:$RC, (seteq F8RC:$RA, F8RC:$RB))]>;
-def CMPTLE : FPForm<0x16, 0x5A7, "cmptle/su $RA,$RB,$RC", [], s_fadd>;
-//                    [(set F8RC:$RC, (setle F8RC:$RA, F8RC:$RB))]>;
-def CMPTLT : FPForm<0x16, 0x5A6, "cmptlt/su $RA,$RB,$RC", [], s_fadd>;
-//                    [(set F8RC:$RC, (setlt F8RC:$RA, F8RC:$RB))]>;
-def CMPTUN : FPForm<0x16, 0x5A4, "cmptun/su $RA,$RB,$RC", [], s_fadd>;
-//                    [(set F8RC:$RC, (setuo F8RC:$RA, F8RC:$RB))]>;
-}
-
-//More CPYS forms:
-let OutOperandList = (ops F8RC:$RC), InOperandList = (ops F4RC:$RA, F8RC:$RB) in {
-def CPYSTs  : FPForm<0x17, 0x020, "cpys $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fcopysign F8RC:$RB, F4RC:$RA))], s_fadd>;
-def CPYSNTs : FPForm<0x17, 0x021, "cpysn $RA,$RB,$RC",
-                   [(set F8RC:$RC, (fneg (fcopysign F8RC:$RB, F4RC:$RA)))], s_fadd>;
-}
-let OutOperandList = (ops F4RC:$RC), InOperandList = (ops F8RC:$RA, F4RC:$RB) in {
-def CPYSSt  : FPForm<0x17, 0x020, "cpys $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fcopysign F4RC:$RB, F8RC:$RA))], s_fadd>;
-def CPYSESt : FPForm<0x17, 0x022, "cpyse $RA,$RB,$RC",[], s_fadd>; //Copy sign and exponent
-def CPYSNSt : FPForm<0x17, 0x021, "cpysn $RA,$RB,$RC",
-                   [(set F4RC:$RC, (fneg (fcopysign F4RC:$RB, F8RC:$RA)))], s_fadd>;
-}
-
-//conditional moves, floats
-let OutOperandList = (ops F4RC:$RDEST), InOperandList = (ops F4RC:$RFALSE, F4RC:$RTRUE, F8RC:$RCOND),
-    isTwoAddress = 1 in {
-def FCMOVEQS : FPForm<0x17, 0x02A, "fcmoveq $RCOND,$RTRUE,$RDEST",[], s_fcmov>; //FCMOVE if = zero
-def FCMOVGES : FPForm<0x17, 0x02D, "fcmovge $RCOND,$RTRUE,$RDEST",[], s_fcmov>; //FCMOVE if >= zero
-def FCMOVGTS : FPForm<0x17, 0x02F, "fcmovgt $RCOND,$RTRUE,$RDEST",[], s_fcmov>; //FCMOVE if > zero
-def FCMOVLES : FPForm<0x17, 0x02E, "fcmovle $RCOND,$RTRUE,$RDEST",[], s_fcmov>; //FCMOVE if <= zero
-def FCMOVLTS : FPForm<0x17, 0x02C, "fcmovlt $RCOND,$RTRUE,$RDEST",[], s_fcmov>; // FCMOVE if < zero
-def FCMOVNES : FPForm<0x17, 0x02B, "fcmovne $RCOND,$RTRUE,$RDEST",[], s_fcmov>; //FCMOVE if != zero
-}
-//conditional moves, doubles
-let OutOperandList = (ops F8RC:$RDEST), InOperandList = (ops F8RC:$RFALSE, F8RC:$RTRUE, F8RC:$RCOND),
-    isTwoAddress = 1 in {
-def FCMOVEQT : FPForm<0x17, 0x02A, "fcmoveq $RCOND,$RTRUE,$RDEST", [], s_fcmov>;
-def FCMOVGET : FPForm<0x17, 0x02D, "fcmovge $RCOND,$RTRUE,$RDEST", [], s_fcmov>;
-def FCMOVGTT : FPForm<0x17, 0x02F, "fcmovgt $RCOND,$RTRUE,$RDEST", [], s_fcmov>;
-def FCMOVLET : FPForm<0x17, 0x02E, "fcmovle $RCOND,$RTRUE,$RDEST", [], s_fcmov>;
-def FCMOVLTT : FPForm<0x17, 0x02C, "fcmovlt $RCOND,$RTRUE,$RDEST", [], s_fcmov>;
-def FCMOVNET : FPForm<0x17, 0x02B, "fcmovne $RCOND,$RTRUE,$RDEST", [], s_fcmov>;
-}
-
-//misc FP selects
-//Select double
-
-def : Pat<(select (seteq F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setoeq F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setueq F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-
-def : Pat<(select (setne F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVEQT F8RC:$sf, F8RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setone F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVEQT F8RC:$sf, F8RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setune F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVEQT F8RC:$sf, F8RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-
-def : Pat<(select (setgt F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLT F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setogt F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLT F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setugt F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLT F8RC:$RB, F8RC:$RA))>;
-
-def : Pat<(select (setge F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLE F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setoge F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLE F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setuge F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLE F8RC:$RB, F8RC:$RA))>;
-
-def : Pat<(select (setlt F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLT F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setolt F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLT F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setult F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLT F8RC:$RA, F8RC:$RB))>;
-
-def : Pat<(select (setle F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLE F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setole F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLE F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setule F8RC:$RA, F8RC:$RB), F8RC:$st, F8RC:$sf),
-      (FCMOVNET F8RC:$sf, F8RC:$st, (CMPTLE F8RC:$RA, F8RC:$RB))>;
-
-//Select single
-def : Pat<(select (seteq F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setoeq F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setueq F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-
-def : Pat<(select (setne F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVEQS F4RC:$sf, F4RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setone F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVEQS F4RC:$sf, F4RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setune F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVEQS F4RC:$sf, F4RC:$st, (CMPTEQ F8RC:$RA, F8RC:$RB))>;
-
-def : Pat<(select (setgt F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLT F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setogt F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLT F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setugt F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLT F8RC:$RB, F8RC:$RA))>;
-
-def : Pat<(select (setge F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLE F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setoge F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLE F8RC:$RB, F8RC:$RA))>;
-def : Pat<(select (setuge F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLE F8RC:$RB, F8RC:$RA))>;
-
-def : Pat<(select (setlt F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLT F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setolt F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLT F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setult F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLT F8RC:$RA, F8RC:$RB))>;
-
-def : Pat<(select (setle F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLE F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setole F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLE F8RC:$RA, F8RC:$RB))>;
-def : Pat<(select (setule F8RC:$RA, F8RC:$RB), F4RC:$st, F4RC:$sf),
-      (FCMOVNES F4RC:$sf, F4RC:$st, (CMPTLE F8RC:$RA, F8RC:$RB))>;
-
-
-
-let OutOperandList = (ops GPRC:$RC), InOperandList = (ops F4RC:$RA), Fb = 31 in 
-def FTOIS : FPForm<0x1C, 0x078, "ftois $RA,$RC",
-        [(set GPRC:$RC, (bitconvert F4RC:$RA))], s_ftoi>; //Floating to integer move, S_floating
-let OutOperandList = (ops GPRC:$RC), InOperandList = (ops F8RC:$RA), Fb = 31 in 
-def FTOIT : FPForm<0x1C, 0x070, "ftoit $RA,$RC",
-        [(set GPRC:$RC, (bitconvert F8RC:$RA))], s_ftoi>; //Floating to integer move
-let OutOperandList = (ops F4RC:$RC), InOperandList = (ops GPRC:$RA), Fb = 31 in 
-def ITOFS : FPForm<0x14, 0x004, "itofs $RA,$RC",
-    	[(set F4RC:$RC, (bitconvert GPRC:$RA))], s_itof>; //Integer to floating move, S_floating
-let OutOperandList = (ops F8RC:$RC), InOperandList = (ops GPRC:$RA), Fb = 31 in 
-def ITOFT : FPForm<0x14, 0x024, "itoft $RA,$RC",
-        [(set F8RC:$RC, (bitconvert GPRC:$RA))], s_itof>; //Integer to floating move
-
-
-let OutOperandList = (ops F4RC:$RC), InOperandList = (ops F8RC:$RB), Fa = 31 in 
-def CVTQS : FPForm<0x16, 0x7BC, "cvtqs/sui $RB,$RC",
-        [(set F4RC:$RC, (Alpha_cvtqs F8RC:$RB))], s_fadd>;
-let OutOperandList = (ops F8RC:$RC), InOperandList = (ops F8RC:$RB), Fa = 31 in 
-def CVTQT : FPForm<0x16, 0x7BE, "cvtqt/sui $RB,$RC",
-        [(set F8RC:$RC, (Alpha_cvtqt F8RC:$RB))], s_fadd>;
-let OutOperandList = (ops F8RC:$RC), InOperandList = (ops F8RC:$RB), Fa = 31 in 
-def CVTTQ : FPForm<0x16, 0x52F, "cvttq/svc $RB,$RC",
-        [(set F8RC:$RC, (Alpha_cvttq F8RC:$RB))], s_fadd>;
-let OutOperandList = (ops F8RC:$RC), InOperandList = (ops F4RC:$RB), Fa = 31 in 
-def CVTST : FPForm<0x16, 0x6AC, "cvtst/s $RB,$RC",
-                   [(set F8RC:$RC, (fextend F4RC:$RB))], s_fadd>;
-let OutOperandList = (ops F4RC:$RC), InOperandList = (ops F8RC:$RB), Fa = 31 in 
-def CVTTS : FPForm<0x16, 0x7AC, "cvtts/sui $RB,$RC",
-                   [(set F4RC:$RC, (fround F8RC:$RB))], s_fadd>;
-
-def :  Pat<(select GPRC:$RC, F8RC:$st, F8RC:$sf),
-       (f64 (FCMOVEQT  F8RC:$st, F8RC:$sf, (ITOFT GPRC:$RC)))>; 
-def :  Pat<(select GPRC:$RC, F4RC:$st, F4RC:$sf),
-       (f32 (FCMOVEQS  F4RC:$st, F4RC:$sf, (ITOFT GPRC:$RC)))>; 
-
-/////////////////////////////////////////////////////////
-//Branching
-/////////////////////////////////////////////////////////
-class br_icc<bits<6> opc, string asmstr>
-  : BFormN<opc, (ops u64imm:$opc, GPRC:$R, target:$dst), 
-    !strconcat(asmstr, " $R,$dst"),  s_icbr>;
-class br_fcc<bits<6> opc, string asmstr>
-  : BFormN<opc, (ops u64imm:$opc, F8RC:$R, target:$dst), 
-    !strconcat(asmstr, " $R,$dst"),  s_fbr>;
-
-let isBranch = 1, isTerminator = 1, hasCtrlDep = 1 in {
-let Ra = 31 in
-def BR : BFormD<0x30, "br $$31,$DISP", [(br bb:$DISP)], s_ubr>;
-
-def COND_BRANCH_I : BFormN<0, (ops u64imm:$opc, GPRC:$R, target:$dst), 
-                    "{:comment} COND_BRANCH imm:$opc, GPRC:$R, bb:$dst", 
-                    s_icbr>;
-def COND_BRANCH_F : BFormN<0, (ops u64imm:$opc, F8RC:$R, target:$dst), 
-                    "{:comment} COND_BRANCH imm:$opc, F8RC:$R, bb:$dst",
-                    s_fbr>;
-//Branches, int
-def BEQ  : br_icc<0x39, "beq">;
-def BGE  : br_icc<0x3E, "bge">;
-def BGT  : br_icc<0x3F, "bgt">;
-def BLBC : br_icc<0x38, "blbc">;
-def BLBS : br_icc<0x3C, "blbs">;
-def BLE  : br_icc<0x3B, "ble">;
-def BLT  : br_icc<0x3A, "blt">;
-def BNE  : br_icc<0x3D, "bne">;
-
-//Branches, float
-def FBEQ : br_fcc<0x31, "fbeq">;
-def FBGE : br_fcc<0x36, "fbge">;
-def FBGT : br_fcc<0x37, "fbgt">;
-def FBLE : br_fcc<0x33, "fble">;
-def FBLT : br_fcc<0x32, "fblt">;
-def FBNE : br_fcc<0x36, "fbne">;
-}
-
-//An ugly trick to get the opcode as an imm I can use
-def immBRCond : SDNodeXForm<imm, [{
-  switch((uint64_t)N->getZExtValue()) {
-    default: assert(0 && "Unknown branch type");
-    case 0:  return getI64Imm(Alpha::BEQ);
-    case 1:  return getI64Imm(Alpha::BNE);
-    case 2:  return getI64Imm(Alpha::BGE);
-    case 3:  return getI64Imm(Alpha::BGT);
-    case 4:  return getI64Imm(Alpha::BLE);
-    case 5:  return getI64Imm(Alpha::BLT);
-    case 6:  return getI64Imm(Alpha::BLBS);
-    case 7:  return getI64Imm(Alpha::BLBC);
-    case 20: return getI64Imm(Alpha::FBEQ);
-    case 21: return getI64Imm(Alpha::FBNE);
-    case 22: return getI64Imm(Alpha::FBGE);
-    case 23: return getI64Imm(Alpha::FBGT);
-    case 24: return getI64Imm(Alpha::FBLE);
-    case 25: return getI64Imm(Alpha::FBLT);
-  }
-}]>;
-
-//Int cond patterns
-def : Pat<(brcond (seteq GPRC:$RA, 0), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 0),  GPRC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setge GPRC:$RA, 0), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 2),  GPRC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setgt GPRC:$RA, 0), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 3),  GPRC:$RA, bb:$DISP)>;
-def : Pat<(brcond (and   GPRC:$RA, 1), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 6),  GPRC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setle GPRC:$RA, 0), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 4),  GPRC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setlt GPRC:$RA, 0), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 5),  GPRC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setne GPRC:$RA, 0), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 1),  GPRC:$RA, bb:$DISP)>;
-
-def : Pat<(brcond GPRC:$RA, bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 1), GPRC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setne GPRC:$RA, GPRC:$RB), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 0), (CMPEQ GPRC:$RA, GPRC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setne GPRC:$RA, immUExt8:$L), bb:$DISP), 
-      (COND_BRANCH_I (immBRCond 0), (CMPEQi GPRC:$RA, immUExt8:$L), bb:$DISP)>;
-
-//FP cond patterns
-def : Pat<(brcond (seteq F8RC:$RA, immFPZ), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 20),  F8RC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setne F8RC:$RA, immFPZ), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21),  F8RC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setge F8RC:$RA, immFPZ), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 22),  F8RC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setgt F8RC:$RA, immFPZ), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 23),  F8RC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setle F8RC:$RA, immFPZ), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 24),  F8RC:$RA, bb:$DISP)>;
-def : Pat<(brcond (setlt F8RC:$RA, immFPZ), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 25),  F8RC:$RA, bb:$DISP)>;
-
-
-def : Pat<(brcond (seteq F8RC:$RA, F8RC:$RB), bb:$DISP),  
-      (COND_BRANCH_F (immBRCond 21), (CMPTEQ F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setoeq F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTEQ F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setueq F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTEQ F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-
-def : Pat<(brcond (setlt F8RC:$RA, F8RC:$RB), bb:$DISP),  
-      (COND_BRANCH_F (immBRCond 21), (CMPTLT F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setolt F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLT F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setult F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLT F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-
-def : Pat<(brcond (setle F8RC:$RA, F8RC:$RB), bb:$DISP),  
-      (COND_BRANCH_F (immBRCond 21), (CMPTLE F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setole F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLE F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setule F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLE F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-
-def : Pat<(brcond (setgt F8RC:$RA, F8RC:$RB), bb:$DISP),  
-      (COND_BRANCH_F (immBRCond 21), (CMPTLT F8RC:$RB, F8RC:$RA), bb:$DISP)>;
-def : Pat<(brcond (setogt F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLT F8RC:$RB, F8RC:$RA), bb:$DISP)>;
-def : Pat<(brcond (setugt F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLT F8RC:$RB, F8RC:$RA), bb:$DISP)>;
-
-def : Pat<(brcond (setge F8RC:$RA, F8RC:$RB), bb:$DISP),  
-      (COND_BRANCH_F (immBRCond 21), (CMPTLE F8RC:$RB, F8RC:$RA), bb:$DISP)>;
-def : Pat<(brcond (setoge F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLE F8RC:$RB, F8RC:$RA), bb:$DISP)>;
-def : Pat<(brcond (setuge F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 21), (CMPTLE F8RC:$RB, F8RC:$RA), bb:$DISP)>;
-
-def : Pat<(brcond (setne F8RC:$RA, F8RC:$RB), bb:$DISP),  
-      (COND_BRANCH_F (immBRCond 20), (CMPTEQ F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setone F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 20), (CMPTEQ F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-def : Pat<(brcond (setune F8RC:$RA, F8RC:$RB), bb:$DISP), 
-      (COND_BRANCH_F (immBRCond 20), (CMPTEQ F8RC:$RA, F8RC:$RB), bb:$DISP)>;
-
-
-def : Pat<(brcond (setoeq F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 20), F8RC:$RA,bb:$DISP)>;
-def : Pat<(brcond (setueq F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 20), F8RC:$RA,bb:$DISP)>;
-
-def : Pat<(brcond (setoge F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 22), F8RC:$RA,bb:$DISP)>;
-def : Pat<(brcond (setuge F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 22), F8RC:$RA,bb:$DISP)>;
-
-def : Pat<(brcond (setogt F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 23), F8RC:$RA,bb:$DISP)>;
-def : Pat<(brcond (setugt F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 23), F8RC:$RA,bb:$DISP)>;
-
-def : Pat<(brcond (setole F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 24), F8RC:$RA,bb:$DISP)>;
-def : Pat<(brcond (setule F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 24), F8RC:$RA,bb:$DISP)>;
-
-def : Pat<(brcond (setolt F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 25), F8RC:$RA,bb:$DISP)>;
-def : Pat<(brcond (setult F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 25), F8RC:$RA,bb:$DISP)>;
-
-def : Pat<(brcond (setone F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 21), F8RC:$RA,bb:$DISP)>;
-def : Pat<(brcond (setune F8RC:$RA, immFPZ), bb:$DISP),   
-      (COND_BRANCH_F (immBRCond 21), F8RC:$RA,bb:$DISP)>;
-
-//End Branches
-
-//S_floating : IEEE Single
-//T_floating : IEEE Double
-
-//Unused instructions
-//Mnemonic Format Opcode Description
-//CALL_PAL Pcd 00 Trap to PALcode
-//ECB Mfc 18.E800 Evict cache block
-//EXCB Mfc 18.0400 Exception barrier
-//FETCH Mfc 18.8000 Prefetch data
-//FETCH_M Mfc 18.A000 Prefetch data, modify intent
-//LDQ_U Mem 0B Load unaligned quadword
-//MB Mfc 18.4000 Memory barrier
-//STQ_U Mem 0F Store unaligned quadword
-//TRAPB Mfc 18.0000 Trap barrier
-//WH64 Mfc 18.F800 Write hint  64 bytes
-//WMB Mfc 18.4400 Write memory barrier
-//MF_FPCR F-P 17.025 Move from FPCR
-//MT_FPCR F-P 17.024 Move to FPCR
-//There are in the Multimedia extentions, so let's not use them yet
-//def MAXSB8  : OForm<0x1C, 0x3E, "MAXSB8 $RA,$RB,$RC">; //Vector signed byte maximum
-//def MAXSW4 : OForm< 0x1C, 0x3F, "MAXSW4 $RA,$RB,$RC">; //Vector signed word maximum
-//def MAXUB8  : OForm<0x1C, 0x3C, "MAXUB8 $RA,$RB,$RC">; //Vector unsigned byte maximum
-//def MAXUW4 : OForm< 0x1C, 0x3D, "MAXUW4 $RA,$RB,$RC">; //Vector unsigned word maximum
-//def MINSB8 : OForm< 0x1C, 0x38, "MINSB8 $RA,$RB,$RC">; //Vector signed byte minimum
-//def MINSW4 : OForm< 0x1C, 0x39, "MINSW4 $RA,$RB,$RC">; //Vector signed word minimum
-//def MINUB8 : OForm< 0x1C, 0x3A, "MINUB8 $RA,$RB,$RC">; //Vector unsigned byte minimum
-//def MINUW4 : OForm< 0x1C, 0x3B, "MINUW4 $RA,$RB,$RC">; //Vector unsigned word minimum
-//def PERR : OForm< 0x1C, 0x31, "PERR $RA,$RB,$RC">; //Pixel error
-//def PKLB : OForm< 0x1C, 0x37, "PKLB $RA,$RB,$RC">; //Pack longwords to bytes
-//def PKWB  : OForm<0x1C, 0x36, "PKWB $RA,$RB,$RC">; //Pack words to bytes
-//def UNPKBL : OForm< 0x1C, 0x35, "UNPKBL $RA,$RB,$RC">; //Unpack bytes to longwords
-//def UNPKBW : OForm< 0x1C, 0x34, "UNPKBW $RA,$RB,$RC">; //Unpack bytes to words
-//CVTLQ F-P 17.010 Convert longword to quadword
-//CVTQL F-P 17.030 Convert quadword to longword
-
-
-//Constant handling
-
-def immConst2Part  : PatLeaf<(imm), [{
-  //true if imm fits in a LDAH LDA pair
-  int64_t val = (int64_t)N->getZExtValue();
-  return (val <= IMM_FULLHIGH  && val >= IMM_FULLLOW);
-}]>;
-def immConst2PartInt  : PatLeaf<(imm), [{
-  //true if imm fits in a LDAH LDA pair with zeroext
-  uint64_t uval = N->getZExtValue();
-  int32_t val32 = (int32_t)uval;
-  return ((uval >> 32) == 0 && //empty upper bits
-          val32 <= IMM_FULLHIGH);
-//          val32 >= IMM_FULLLOW  + IMM_LOW  * IMM_MULT); //Always True
-}], SExt32>;
-
-def : Pat<(i64 immConst2Part:$imm),
-          (LDA (LL16 immConst2Part:$imm), (LDAH (LH16 immConst2Part:$imm), R31))>;
-
-def : Pat<(i64 immSExt16:$imm),
-          (LDA immSExt16:$imm, R31)>;
-
-def : Pat<(i64 immSExt16int:$imm),
-          (ZAPNOTi (LDA (SExt16 immSExt16int:$imm), R31), 15)>;
-def : Pat<(i64 immConst2PartInt:$imm),
-          (ZAPNOTi (LDA (LL16 (SExt32 immConst2PartInt:$imm)), 
-                        (LDAH (LH16 (SExt32 immConst2PartInt:$imm)), R31)), 15)>;
-
-
-//TODO: I want to just define these like this!
-//def : Pat<(i64 0),
-//          (R31)>;
-//def : Pat<(f64 0.0),
-//          (F31)>;
-//def : Pat<(f64 -0.0),
-//          (CPYSNT F31, F31)>;
-//def : Pat<(f32 0.0),
-//          (F31)>;
-//def : Pat<(f32 -0.0),
-//          (CPYSNS F31, F31)>;
-
-//Misc Patterns:
-
-def : Pat<(sext_inreg GPRC:$RB, i32),
-          (ADDLi GPRC:$RB, 0)>;
-
-def : Pat<(fabs F8RC:$RB),
-          (CPYST F31, F8RC:$RB)>;
-def : Pat<(fabs F4RC:$RB),
-          (CPYSS F31, F4RC:$RB)>;
-def : Pat<(fneg F8RC:$RB),
-          (CPYSNT F8RC:$RB, F8RC:$RB)>;
-def : Pat<(fneg F4RC:$RB),
-          (CPYSNS F4RC:$RB, F4RC:$RB)>;
-
-def : Pat<(fcopysign F4RC:$A, (fneg F4RC:$B)),
-          (CPYSNS F4RC:$B, F4RC:$A)>;
-def : Pat<(fcopysign F8RC:$A, (fneg F8RC:$B)),
-          (CPYSNT F8RC:$B, F8RC:$A)>;
-def : Pat<(fcopysign F4RC:$A, (fneg F8RC:$B)),
-          (CPYSNSt F8RC:$B, F4RC:$A)>;
-def : Pat<(fcopysign F8RC:$A, (fneg F4RC:$B)),
-          (CPYSNTs F4RC:$B, F8RC:$A)>;
-
-//Yes, signed multiply high is ugly
-def : Pat<(mulhs GPRC:$RA, GPRC:$RB),
-          (SUBQr (UMULHr GPRC:$RA, GPRC:$RB), (ADDQr (CMOVGEr GPRC:$RB, R31, GPRC:$RA), 
-                                                     (CMOVGEr GPRC:$RA, R31, GPRC:$RB)))>;
-
-//Stupid crazy arithmetic stuff:
-let AddedComplexity = 1 in {
-def : Pat<(mul GPRC:$RA, 5), (S4ADDQr GPRC:$RA, GPRC:$RA)>;
-def : Pat<(mul GPRC:$RA, 9), (S8ADDQr GPRC:$RA, GPRC:$RA)>;
-def : Pat<(mul GPRC:$RA, 3), (S4SUBQr GPRC:$RA, GPRC:$RA)>;
-def : Pat<(mul GPRC:$RA, 7), (S8SUBQr GPRC:$RA, GPRC:$RA)>;
-
-//slight tree expansion if we are multiplying near to a power of 2
-//n is above a power of 2
-def : Pat<(mul GPRC:$RA, immRem1:$imm), 
-          (ADDQr (SLr GPRC:$RA, (nearP2X immRem1:$imm)), GPRC:$RA)>;
-def : Pat<(mul GPRC:$RA, immRem2:$imm), 
-          (ADDQr (SLr GPRC:$RA, (nearP2X immRem2:$imm)), (ADDQr GPRC:$RA, GPRC:$RA))>;
-def : Pat<(mul GPRC:$RA, immRem3:$imm),
-          (ADDQr (SLr GPRC:$RA, (nearP2X immRem3:$imm)), (S4SUBQr GPRC:$RA, GPRC:$RA))>;
-def : Pat<(mul GPRC:$RA, immRem4:$imm),
-          (S4ADDQr GPRC:$RA, (SLr GPRC:$RA, (nearP2X immRem4:$imm)))>;
-def : Pat<(mul GPRC:$RA, immRem5:$imm),
-          (ADDQr (SLr GPRC:$RA, (nearP2X immRem5:$imm)), (S4ADDQr GPRC:$RA, GPRC:$RA))>;
-def : Pat<(mul GPRC:$RA, immRemP2:$imm),
-          (ADDQr (SLr GPRC:$RA, (nearP2X immRemP2:$imm)), (SLi GPRC:$RA, (nearP2RemX immRemP2:$imm)))>;
-
-//n is below a power of 2
-//FIXME: figure out why something is truncating the imm to 32bits
-// this will fix 2007-11-27-mulneg3
-//def : Pat<(mul GPRC:$RA, immRem1n:$imm), 
-//          (SUBQr (SLr GPRC:$RA, (nearP2X immRem1n:$imm)), GPRC:$RA)>;
-//def : Pat<(mul GPRC:$RA, immRem2n:$imm), 
-//          (SUBQr (SLr GPRC:$RA, (nearP2X immRem2n:$imm)), (ADDQr GPRC:$RA, GPRC:$RA))>;
-//def : Pat<(mul GPRC:$RA, immRem3n:$imm),
-//          (SUBQr (SLr GPRC:$RA, (nearP2X immRem3n:$imm)), (S4SUBQr GPRC:$RA, GPRC:$RA))>;
-//def : Pat<(mul GPRC:$RA, immRem4n:$imm),
-//          (SUBQr (SLr GPRC:$RA, (nearP2X immRem4n:$imm)), (SLi GPRC:$RA, 2))>;
-//def : Pat<(mul GPRC:$RA, immRem5n:$imm),
-//          (SUBQr (SLr GPRC:$RA, (nearP2X immRem5n:$imm)), (S4ADDQr GPRC:$RA, GPRC:$RA))>;
-//def : Pat<(mul GPRC:$RA, immRemP2n:$imm),
-//          (SUBQr (SLr GPRC:$RA, (nearP2X immRemP2n:$imm)), (SLi GPRC:$RA, (nearP2RemX immRemP2n:$imm)))>;
-} //Added complexity
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaJITInfo.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaJITInfo.cpp
deleted file mode 100644
index d328135..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaJITInfo.cpp
+++ /dev/null
@@ -1,301 +0,0 @@
-//===-- AlphaJITInfo.cpp - Implement the JIT interfaces for the Alpha ---===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the JIT interfaces for the Alpha target.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "jit"
-#include "AlphaJITInfo.h"
-#include "AlphaRelocations.h"
-#include "llvm/Function.h"
-#include "llvm/CodeGen/JITCodeEmitter.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include <cstdlib>
-using namespace llvm;
-
-#define BUILD_OFormatI(Op, RA, LIT, FUN, RC) \
-  ((Op << 26) | (RA << 21) | (LIT << 13) | (1 << 12) | (FUN << 5) | (RC))
-#define BUILD_OFormat(Op, RA, RB, FUN, RC) \
-  ((Op << 26) | (RA << 21) | (RB << 16) | (FUN << 5) | (RC))
-
-#define BUILD_LDA(RD, RS, IMM16) \
-  ((0x08 << 26) | ((RD) << 21) | ((RS) << 16) | ((IMM16) & 65535))
-#define BUILD_LDAH(RD, RS, IMM16) \
-  ((0x09 << 26) | ((RD) << 21) | ((RS) << 16) | ((IMM16) & 65535))
-
-#define BUILD_LDQ(RD, RS, IMM16) \
-  ((0x29 << 26) | ((RD) << 21) | ((RS) << 16) | ((IMM16) & 0xFFFF))
-
-#define BUILD_JMP(RD, RS, IMM16) \
-  ((0x1A << 26) | ((RD) << 21) | ((RS) << 16) | (0x00 << 14) | ((IMM16) & 0x3FFF))
-#define BUILD_JSR(RD, RS, IMM16) \
-  ((0x1A << 26) | ((RD) << 21) | ((RS) << 16) | (0x01 << 14) | ((IMM16) & 0x3FFF))
-
-#define BUILD_SLLi(RD, RS, IMM8) \
-  (BUILD_OFormatI(0x12, RS, IMM8, 0x39, RD))
-
-#define BUILD_ORi(RD, RS, IMM8) \
-  (BUILD_OFormatI(0x11, RS, IMM8, 0x20, RD))
-
-#define BUILD_OR(RD, RS, RT) \
-  (BUILD_OFormat(0x11, RS, RT, 0x20, RD))
-
-
-
-static void EmitBranchToAt(void *At, void *To) {
-  unsigned long Fn = (unsigned long)To;
-
-  unsigned *AtI = (unsigned*)At;
-
-  AtI[0] = BUILD_OR(0, 27, 27);
-
-  DEBUG(errs() << "Stub targeting " << To << "\n");
-
-  for (int x = 1; x <= 8; ++x) {
-    AtI[2*x - 1] = BUILD_SLLi(27,27,8);
-    unsigned d = (Fn >> (64 - 8 * x)) & 0x00FF;
-    //DEBUG(errs() << "outputing " << hex << d << dec << "\n");
-    AtI[2*x] = BUILD_ORi(27, 27, d);
-  }
-  AtI[17] = BUILD_JMP(31,27,0); //jump, preserving ra, and setting pv
-  AtI[18] = 0x00FFFFFF; //mark this as a stub
-}
-
-void AlphaJITInfo::replaceMachineCodeForFunction(void *Old, void *New) {
-  //FIXME
-  llvm_unreachable(0);
-}
-
-static TargetJITInfo::JITCompilerFn JITCompilerFunction;
-//static AlphaJITInfo* AlphaJTI;
-
-extern "C" {
-#ifdef __alpha
-
-  void AlphaCompilationCallbackC(long* oldpv, void* CameFromStub)
-  {
-    void* Target = JITCompilerFunction(CameFromStub);
-
-    //rewrite the stub to an unconditional branch
-    if (((unsigned*)CameFromStub)[18] == 0x00FFFFFF) {
-      DEBUG(errs() << "Came from a stub, rewriting\n");
-      EmitBranchToAt(CameFromStub, Target);
-    } else {
-      DEBUG(errs() << "confused, didn't come from stub at " << CameFromStub
-                   << " old jump vector " << oldpv
-                   << " new jump vector " << Target << "\n");
-    }
-
-    //Change pv to new Target
-    *oldpv = (long)Target;
-  }
-
-  void AlphaCompilationCallback(void);
-
-  asm(
-      ".text\n"
-      ".globl AlphaComilationCallbackC\n"
-      ".align 4\n"
-      ".globl AlphaCompilationCallback\n"
-      ".ent AlphaCompilationCallback\n"
-"AlphaCompilationCallback:\n"
-      //      //get JIT's GOT
-      "ldgp $29, 0($27)\n"
-      //Save args, callee saved, and perhaps others?
-      //args: $16-$21 $f16-$f21     (12)
-      //callee: $9-$14 $f2-$f9      (14)
-      //others: fp:$15 ra:$26 pv:$27 (3)
-      "lda $30, -232($30)\n"
-      "stq $16,   0($30)\n"
-      "stq $17,   8($30)\n"
-      "stq $18,  16($30)\n"
-      "stq $19,  24($30)\n"
-      "stq $20,  32($30)\n"
-      "stq $21,  40($30)\n"
-      "stt $f16, 48($30)\n"
-      "stt $f17, 56($30)\n"
-      "stt $f18, 64($30)\n"
-      "stt $f19, 72($30)\n"
-      "stt $f20, 80($30)\n"
-      "stt $f21, 88($30)\n"
-      "stq $9,   96($30)\n"
-      "stq $10, 104($30)\n"
-      "stq $11, 112($30)\n"
-      "stq $12, 120($30)\n"
-      "stq $13, 128($30)\n"
-      "stq $14, 136($30)\n"
-      "stt $f2, 144($30)\n"
-      "stt $f3, 152($30)\n"
-      "stt $f4, 160($30)\n"
-      "stt $f5, 168($30)\n"
-      "stt $f6, 176($30)\n"
-      "stt $f7, 184($30)\n"
-      "stt $f8, 192($30)\n"
-      "stt $f9, 200($30)\n"
-      "stq $15, 208($30)\n"
-      "stq $26, 216($30)\n"
-      "stq $27, 224($30)\n"
-
-      "addq $30, 224, $16\n" //pass the addr of saved pv as the first arg
-      "bis $0, $0, $17\n" //pass the roughly stub addr in second arg
-      "jsr $26, AlphaCompilationCallbackC\n" //call without saving ra
-
-      "ldq $16,   0($30)\n"
-      "ldq $17,   8($30)\n"
-      "ldq $18,  16($30)\n"
-      "ldq $19,  24($30)\n"
-      "ldq $20,  32($30)\n"
-      "ldq $21,  40($30)\n"
-      "ldt $f16, 48($30)\n"
-      "ldt $f17, 56($30)\n"
-      "ldt $f18, 64($30)\n"
-      "ldt $f19, 72($30)\n"
-      "ldt $f20, 80($30)\n"
-      "ldt $f21, 88($30)\n"
-      "ldq $9,   96($30)\n"
-      "ldq $10, 104($30)\n"
-      "ldq $11, 112($30)\n"
-      "ldq $12, 120($30)\n"
-      "ldq $13, 128($30)\n"
-      "ldq $14, 136($30)\n"
-      "ldt $f2, 144($30)\n"
-      "ldt $f3, 152($30)\n"
-      "ldt $f4, 160($30)\n"
-      "ldt $f5, 168($30)\n"
-      "ldt $f6, 176($30)\n"
-      "ldt $f7, 184($30)\n"
-      "ldt $f8, 192($30)\n"
-      "ldt $f9, 200($30)\n"
-      "ldq $15, 208($30)\n"
-      "ldq $26, 216($30)\n"
-      "ldq $27, 224($30)\n" //this was updated in the callback with the target
-
-      "lda $30, 232($30)\n" //restore sp
-      "jmp $31, ($27)\n" //jump to the new function
-      ".end AlphaCompilationCallback\n"
-      );
-#else
-  void AlphaCompilationCallback() {
-    llvm_unreachable("Cannot call AlphaCompilationCallback() on a non-Alpha arch!");
-  }
-#endif
-}
-
-void *AlphaJITInfo::emitFunctionStub(const Function* F, void *Fn,
-                                     JITCodeEmitter &JCE) {
-  //assert(Fn == AlphaCompilationCallback && "Where are you going?\n");
-  //Do things in a stupid slow way!
-  JCE.startGVStub(F, 19*4);
-  void* Addr = (void*)(intptr_t)JCE.getCurrentPCValue();
-  for (int x = 0; x < 19; ++ x)
-    JCE.emitWordLE(0);
-  EmitBranchToAt(Addr, Fn);
-  DEBUG(errs() << "Emitting Stub to " << Fn << " at [" << Addr << "]\n");
-  return JCE.finishGVStub(F);
-}
-
-TargetJITInfo::LazyResolverFn
-AlphaJITInfo::getLazyResolverFunction(JITCompilerFn F) {
-  JITCompilerFunction = F;
-  //  setZerothGOTEntry((void*)AlphaCompilationCallback);
-  return AlphaCompilationCallback;
-}
-
-//These describe LDAx
-static const int IMM_LOW  = -32768;
-static const int IMM_HIGH = 32767;
-static const int IMM_MULT = 65536;
-
-static long getUpper16(long l)
-{
-  long y = l / IMM_MULT;
-  if (l % IMM_MULT > IMM_HIGH)
-    ++y;
-  if (l % IMM_MULT < IMM_LOW)
-    --y;
-  assert((short)y == y && "displacement out of range");
-  return y;
-}
-
-static long getLower16(long l)
-{
-  long h = getUpper16(l);
-  long y = l - h * IMM_MULT;
-  assert(y == (short)y && "Displacement out of range");
-  return y;
-}
-
-void AlphaJITInfo::relocate(void *Function, MachineRelocation *MR,
-                            unsigned NumRelocs, unsigned char* GOTBase) {
-  for (unsigned i = 0; i != NumRelocs; ++i, ++MR) {
-    unsigned *RelocPos = (unsigned*)Function + MR->getMachineCodeOffset()/4;
-    long idx = 0;
-    bool doCommon = true;
-    switch ((Alpha::RelocationType)MR->getRelocationType()) {
-    default: llvm_unreachable("Unknown relocation type!");
-    case Alpha::reloc_literal:
-      //This is a LDQl
-      idx = MR->getGOTIndex();
-      DEBUG(errs() << "Literal relocation to slot " << idx);
-      idx = (idx - GOToffset) * 8;
-      DEBUG(errs() << " offset " << idx << "\n");
-      break;
-    case Alpha::reloc_gprellow:
-      idx = (unsigned char*)MR->getResultPointer() - &GOTBase[GOToffset * 8];
-      idx = getLower16(idx);
-      DEBUG(errs() << "gprellow relocation offset " << idx << "\n");
-      DEBUG(errs() << " Pointer is " << (void*)MR->getResultPointer()
-           << " GOT is " << (void*)&GOTBase[GOToffset * 8] << "\n");
-      break;
-    case Alpha::reloc_gprelhigh:
-      idx = (unsigned char*)MR->getResultPointer() - &GOTBase[GOToffset * 8];
-      idx = getUpper16(idx);
-      DEBUG(errs() << "gprelhigh relocation offset " << idx << "\n");
-      DEBUG(errs() << " Pointer is " << (void*)MR->getResultPointer()
-            << " GOT is " << (void*)&GOTBase[GOToffset * 8] << "\n");
-      break;
-    case Alpha::reloc_gpdist:
-      switch (*RelocPos >> 26) {
-      case 0x09: //LDAH
-        idx = &GOTBase[GOToffset * 8] - (unsigned char*)RelocPos;
-        idx = getUpper16(idx);
-        DEBUG(errs() << "LDAH: " << idx << "\n");
-        //add the relocation to the map
-        gpdistmap[std::make_pair(Function, MR->getConstantVal())] = RelocPos;
-        break;
-      case 0x08: //LDA
-        assert(gpdistmap[std::make_pair(Function, MR->getConstantVal())] &&
-               "LDAg without seeing LDAHg");
-        idx = &GOTBase[GOToffset * 8] -
-          (unsigned char*)gpdistmap[std::make_pair(Function, MR->getConstantVal())];
-        idx = getLower16(idx);
-        DEBUG(errs() << "LDA: " << idx << "\n");
-        break;
-      default:
-        llvm_unreachable("Cannot handle gpdist yet");
-      }
-      break;
-    case Alpha::reloc_bsr: {
-      idx = (((unsigned char*)MR->getResultPointer() -
-             (unsigned char*)RelocPos) >> 2) + 1; //skip first 2 inst of fun
-      *RelocPos |= (idx & ((1 << 21)-1));
-      doCommon = false;
-      break;
-    }
-    }
-    if (doCommon) {
-      short x = (short)idx;
-      assert(x == idx);
-      *(short*)RelocPos = x;
-    }
-  }
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaJITInfo.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaJITInfo.h
deleted file mode 100644
index ecb467f..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaJITInfo.h
+++ /dev/null
@@ -1,52 +0,0 @@
-//===- AlphaJITInfo.h - Alpha impl. of the JIT interface ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Alpha implementation of the TargetJITInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHA_JITINFO_H
-#define ALPHA_JITINFO_H
-
-#include "llvm/Target/TargetJITInfo.h"
-#include <map>
-
-namespace llvm {
-  class TargetMachine;
-
-  class AlphaJITInfo : public TargetJITInfo {
-  protected:
-    TargetMachine &TM;
-    
-    //because gpdist are paired and relative to the pc of the first inst,
-    //we need to have some state
-    std::map<std::pair<void*, int>, void*> gpdistmap;
-  public:
-    explicit AlphaJITInfo(TargetMachine &tm) : TM(tm)
-    { useGOT = true; }
-
-    virtual void *emitFunctionStub(const Function* F, void *Fn,
-                                   JITCodeEmitter &JCE);
-    virtual LazyResolverFn getLazyResolverFunction(JITCompilerFn);
-    virtual void relocate(void *Function, MachineRelocation *MR,
-                          unsigned NumRelocs, unsigned char* GOTBase);
-
-    /// replaceMachineCodeForFunction - Make it so that calling the function
-    /// whose machine code is at OLD turns into a call to NEW, perhaps by
-    /// overwriting OLD with a branch to NEW.  This is used for self-modifying
-    /// code.
-    ///
-    virtual void replaceMachineCodeForFunction(void *Old, void *New);
-  private:
-    static const unsigned GOToffset = 4096;
-
-  };
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaLLRP.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaLLRP.cpp
deleted file mode 100644
index 0c51bc5..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaLLRP.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//===-- AlphaLLRP.cpp - Alpha Load Load Replay Trap elimination pass. -- --===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Here we check for potential replay traps introduced by the spiller
-// We also align some branch targets if we can do so for free.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "alpha-nops"
-#include "Alpha.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/ADT/SetOperations.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/CommandLine.h"
-using namespace llvm;
-
-STATISTIC(nopintro, "Number of nops inserted");
-STATISTIC(nopalign, "Number of nops inserted for alignment");
-
-namespace {
-  cl::opt<bool>
-  AlignAll("alpha-align-all", cl::Hidden,
-                   cl::desc("Align all blocks"));
-
-  struct AlphaLLRPPass : public MachineFunctionPass {
-    /// Target machine description which we query for reg. names, data
-    /// layout, etc.
-    ///
-    AlphaTargetMachine &TM;
-
-    static char ID;
-    AlphaLLRPPass(AlphaTargetMachine &tm) 
-      : MachineFunctionPass(&ID), TM(tm) { }
-
-    virtual const char *getPassName() const {
-      return "Alpha NOP inserter";
-    }
-
-    bool runOnMachineFunction(MachineFunction &F) {
-      const TargetInstrInfo *TII = F.getTarget().getInstrInfo();
-      bool Changed = false;
-      MachineInstr* prev[3] = {0,0,0};
-      DebugLoc dl = DebugLoc::getUnknownLoc();
-      unsigned count = 0;
-      for (MachineFunction::iterator FI = F.begin(), FE = F.end();
-           FI != FE; ++FI) {
-        MachineBasicBlock& MBB = *FI;
-        bool ub = false;
-        for (MachineBasicBlock::iterator I = MBB.begin(); I != MBB.end(); ) {
-          if (count%4 == 0)
-            prev[0] = prev[1] = prev[2] = 0; //Slots cleared at fetch boundary
-          ++count;
-          MachineInstr *MI = I++;
-          switch (MI->getOpcode()) {
-          case Alpha::LDQ:  case Alpha::LDL:
-          case Alpha::LDWU: case Alpha::LDBU:
-          case Alpha::LDT: case Alpha::LDS:
-          case Alpha::STQ:  case Alpha::STL:
-          case Alpha::STW:  case Alpha::STB:
-          case Alpha::STT: case Alpha::STS:
-           if (MI->getOperand(2).getReg() == Alpha::R30) {
-             if (prev[0] && 
-                 prev[0]->getOperand(2).getReg() == MI->getOperand(2).getReg()&&
-                 prev[0]->getOperand(1).getImm() == MI->getOperand(1).getImm()){
-               prev[0] = prev[1];
-               prev[1] = prev[2];
-               prev[2] = 0;
-               BuildMI(MBB, MI, dl, TII->get(Alpha::BISr), Alpha::R31)
-                 .addReg(Alpha::R31)
-                 .addReg(Alpha::R31); 
-               Changed = true; nopintro += 1;
-               count += 1;
-             } else if (prev[1] 
-                        && prev[1]->getOperand(2).getReg() == 
-                        MI->getOperand(2).getReg()
-                        && prev[1]->getOperand(1).getImm() == 
-                        MI->getOperand(1).getImm()) {
-               prev[0] = prev[2];
-               prev[1] = prev[2] = 0;
-               BuildMI(MBB, MI, dl, TII->get(Alpha::BISr), Alpha::R31)
-                 .addReg(Alpha::R31)
-                 .addReg(Alpha::R31); 
-               BuildMI(MBB, MI, dl, TII->get(Alpha::BISr), Alpha::R31)
-                 .addReg(Alpha::R31)
-                 .addReg(Alpha::R31);
-               Changed = true; nopintro += 2;
-               count += 2;
-             } else if (prev[2] 
-                        && prev[2]->getOperand(2).getReg() == 
-                        MI->getOperand(2).getReg()
-                        && prev[2]->getOperand(1).getImm() == 
-                        MI->getOperand(1).getImm()) {
-               prev[0] = prev[1] = prev[2] = 0;
-               BuildMI(MBB, MI, dl, TII->get(Alpha::BISr), Alpha::R31)
-                 .addReg(Alpha::R31).addReg(Alpha::R31);
-               BuildMI(MBB, MI, dl, TII->get(Alpha::BISr), Alpha::R31)
-                 .addReg(Alpha::R31).addReg(Alpha::R31);
-               BuildMI(MBB, MI, dl, TII->get(Alpha::BISr), Alpha::R31)
-                 .addReg(Alpha::R31).addReg(Alpha::R31);
-               Changed = true; nopintro += 3;
-               count += 3;
-             }
-             prev[0] = prev[1];
-             prev[1] = prev[2];
-             prev[2] = MI;
-             break;
-           }
-           prev[0] = prev[1];
-           prev[1] = prev[2];
-           prev[2] = 0;
-           break;
-          case Alpha::ALTENT:
-          case Alpha::MEMLABEL:
-          case Alpha::PCLABEL:
-            --count;
-            break;
-          case Alpha::BR:
-          case Alpha::JMP:
-            ub = true;
-            //fall through
-          default:
-            prev[0] = prev[1];
-            prev[1] = prev[2];
-            prev[2] = 0;
-            break;
-          }
-        }
-        if (ub || AlignAll) {
-          //we can align stuff for free at this point
-          while (count % 4) {
-            BuildMI(MBB, MBB.end(), dl, TII->get(Alpha::BISr), Alpha::R31)
-              .addReg(Alpha::R31).addReg(Alpha::R31);
-            ++count;
-            ++nopalign;
-            prev[0] = prev[1];
-            prev[1] = prev[2];
-            prev[2] = 0;
-          }
-        }
-      }
-      return Changed;
-    }
-  };
-  char AlphaLLRPPass::ID = 0;
-} // end of anonymous namespace
-
-FunctionPass *llvm::createAlphaLLRPPass(AlphaTargetMachine &tm) {
-  return new AlphaLLRPPass(tm);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.cpp
deleted file mode 100644
index b652a53..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//===-- AlphaMCAsmInfo.cpp - Alpha asm properties ---------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the AlphaMCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "AlphaMCAsmInfo.h"
-using namespace llvm;
-
-AlphaMCAsmInfo::AlphaMCAsmInfo(const Target &T, const StringRef &TT) {
-  AlignmentIsInBytes = false;
-  PrivateGlobalPrefix = "$";
-  PICJumpTableDirective = ".gprel32";
-  WeakRefDirective = "\t.weak\t";
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.h
deleted file mode 100644
index c27065d..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.h
+++ /dev/null
@@ -1,29 +0,0 @@
-//=====-- AlphaMCAsmInfo.h - Alpha asm properties -------------*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the AlphaMCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHATARGETASMINFO_H
-#define ALPHATARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-
-  struct AlphaMCAsmInfo : public MCAsmInfo {
-    explicit AlphaMCAsmInfo(const Target &T, const StringRef &TT);
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaMachineFunctionInfo.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaMachineFunctionInfo.h
deleted file mode 100644
index 8221fc7..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaMachineFunctionInfo.h
+++ /dev/null
@@ -1,48 +0,0 @@
-//====- AlphaMachineFuctionInfo.h - Alpha machine function info -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares Alpha-specific per-machine-function information.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHAMACHINEFUNCTIONINFO_H
-#define ALPHAMACHINEFUNCTIONINFO_H
-
-#include "llvm/CodeGen/MachineFunction.h"
-
-namespace llvm {
-
-/// AlphaMachineFunctionInfo - This class is derived from MachineFunction
-/// private Alpha target-specific information for each MachineFunction.
-class AlphaMachineFunctionInfo : public MachineFunctionInfo {
-  /// GlobalBaseReg - keeps track of the virtual register initialized for
-  /// use as the global base register. This is used for PIC in some PIC
-  /// relocation models.
-  unsigned GlobalBaseReg;
-
-  /// GlobalRetAddr = keeps track of the virtual register initialized for
-  /// the return address value.
-  unsigned GlobalRetAddr;
-
-public:
-  AlphaMachineFunctionInfo() : GlobalBaseReg(0), GlobalRetAddr(0) {}
-
-  explicit AlphaMachineFunctionInfo(MachineFunction &MF) : GlobalBaseReg(0),
-                                                           GlobalRetAddr(0) {}
-
-  unsigned getGlobalBaseReg() const { return GlobalBaseReg; }
-  void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; }
-
-  unsigned getGlobalRetAddr() const { return GlobalRetAddr; }
-  void setGlobalRetAddr(unsigned Reg) { GlobalRetAddr = Reg; }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp
deleted file mode 100644
index c1f6ae9..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp
+++ /dev/null
@@ -1,339 +0,0 @@
-//===- AlphaRegisterInfo.cpp - Alpha Register Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Alpha implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "reginfo"
-#include "Alpha.h"
-#include "AlphaRegisterInfo.h"
-#include "llvm/Constants.h"
-#include "llvm/Type.h"
-#include "llvm/Function.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/ADT/STLExtras.h"
-#include <cstdlib>
-using namespace llvm;
-
-//These describe LDAx
-static const int IMM_LOW  = -32768;
-static const int IMM_HIGH = 32767;
-static const int IMM_MULT = 65536;
-
-static long getUpper16(long l)
-{
-  long y = l / IMM_MULT;
-  if (l % IMM_MULT > IMM_HIGH)
-    ++y;
-  return y;
-}
-
-static long getLower16(long l)
-{
-  long h = getUpper16(l);
-  return l - h * IMM_MULT;
-}
-
-AlphaRegisterInfo::AlphaRegisterInfo(const TargetInstrInfo &tii)
-  : AlphaGenRegisterInfo(Alpha::ADJUSTSTACKDOWN, Alpha::ADJUSTSTACKUP),
-    TII(tii), curgpdist(0)
-{
-}
-
-const unsigned* AlphaRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
-                                                                         const {
-  static const unsigned CalleeSavedRegs[] = {
-    Alpha::R9, Alpha::R10,
-    Alpha::R11, Alpha::R12,
-    Alpha::R13, Alpha::R14,
-    Alpha::F2, Alpha::F3,
-    Alpha::F4, Alpha::F5,
-    Alpha::F6, Alpha::F7,
-    Alpha::F8, Alpha::F9,  0
-  };
-  return CalleeSavedRegs;
-}
-
-const TargetRegisterClass* const*
-AlphaRegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const {
-  static const TargetRegisterClass * const CalleeSavedRegClasses[] = {
-    &Alpha::GPRCRegClass, &Alpha::GPRCRegClass,
-    &Alpha::GPRCRegClass, &Alpha::GPRCRegClass,
-    &Alpha::GPRCRegClass, &Alpha::GPRCRegClass,
-    &Alpha::F8RCRegClass, &Alpha::F8RCRegClass,
-    &Alpha::F8RCRegClass, &Alpha::F8RCRegClass,
-    &Alpha::F8RCRegClass, &Alpha::F8RCRegClass,
-    &Alpha::F8RCRegClass, &Alpha::F8RCRegClass,  0
-  };
-  return CalleeSavedRegClasses;
-}
-
-BitVector AlphaRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  BitVector Reserved(getNumRegs());
-  Reserved.set(Alpha::R15);
-  Reserved.set(Alpha::R30);
-  Reserved.set(Alpha::R31);
-  return Reserved;
-}
-
-//===----------------------------------------------------------------------===//
-// Stack Frame Processing methods
-//===----------------------------------------------------------------------===//
-
-// hasFP - Return true if the specified function should have a dedicated frame
-// pointer register.  This is true if the function has variable sized allocas or
-// if frame pointer elimination is disabled.
-//
-bool AlphaRegisterInfo::hasFP(const MachineFunction &MF) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  return MFI->hasVarSizedObjects();
-}
-
-void AlphaRegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  if (hasFP(MF)) {
-    // If we have a frame pointer, turn the adjcallstackup instruction into a
-    // 'sub ESP, <amt>' and the adjcallstackdown instruction into 'add ESP,
-    // <amt>'
-    MachineInstr *Old = I;
-    uint64_t Amount = Old->getOperand(0).getImm();
-    if (Amount != 0) {
-      // We need to keep the stack aligned properly.  To do this, we round the
-      // amount of space needed for the outgoing arguments up to the next
-      // alignment boundary.
-      unsigned Align = MF.getTarget().getFrameInfo()->getStackAlignment();
-      Amount = (Amount+Align-1)/Align*Align;
-
-      MachineInstr *New;
-      if (Old->getOpcode() == Alpha::ADJUSTSTACKDOWN) {
-        New=BuildMI(MF, Old->getDebugLoc(), TII.get(Alpha::LDA), Alpha::R30)
-          .addImm(-Amount).addReg(Alpha::R30);
-      } else {
-         assert(Old->getOpcode() == Alpha::ADJUSTSTACKUP);
-         New=BuildMI(MF, Old->getDebugLoc(), TII.get(Alpha::LDA), Alpha::R30)
-          .addImm(Amount).addReg(Alpha::R30);
-      }
-
-      // Replace the pseudo instruction with a new instruction...
-      MBB.insert(I, New);
-    }
-  }
-
-  MBB.erase(I);
-}
-
-//Alpha has a slightly funny stack:
-//Args
-//<- incoming SP
-//fixed locals (and spills, callee saved, etc)
-//<- FP
-//variable locals
-//<- SP
-
-void AlphaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
-                                            int SPAdj, RegScavenger *RS) const {
-  assert(SPAdj == 0 && "Unexpected");
-
-  unsigned i = 0;
-  MachineInstr &MI = *II;
-  MachineBasicBlock &MBB = *MI.getParent();
-  MachineFunction &MF = *MBB.getParent();
-  bool FP = hasFP(MF);
-
-  while (!MI.getOperand(i).isFI()) {
-    ++i;
-    assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
-  }
-
-  int FrameIndex = MI.getOperand(i).getIndex();
-
-  // Add the base register of R30 (SP) or R15 (FP).
-  MI.getOperand(i + 1).ChangeToRegister(FP ? Alpha::R15 : Alpha::R30, false);
-
-  // Now add the frame object offset to the offset from the virtual frame index.
-  int Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex);
-
-  DEBUG(errs() << "FI: " << FrameIndex << " Offset: " << Offset << "\n");
-
-  Offset += MF.getFrameInfo()->getStackSize();
-
-  DEBUG(errs() << "Corrected Offset " << Offset
-       << " for stack size: " << MF.getFrameInfo()->getStackSize() << "\n");
-
-  if (Offset > IMM_HIGH || Offset < IMM_LOW) {
-    DEBUG(errs() << "Unconditionally using R28 for evil purposes Offset: "
-          << Offset << "\n");
-    //so in this case, we need to use a temporary register, and move the
-    //original inst off the SP/FP
-    //fix up the old:
-    MI.getOperand(i + 1).ChangeToRegister(Alpha::R28, false);
-    MI.getOperand(i).ChangeToImmediate(getLower16(Offset));
-    //insert the new
-    MachineInstr* nMI=BuildMI(MF, MI.getDebugLoc(),
-                              TII.get(Alpha::LDAH), Alpha::R28)
-      .addImm(getUpper16(Offset)).addReg(FP ? Alpha::R15 : Alpha::R30);
-    MBB.insert(II, nMI);
-  } else {
-    MI.getOperand(i).ChangeToImmediate(Offset);
-  }
-}
-
-
-void AlphaRegisterInfo::emitPrologue(MachineFunction &MF) const {
-  MachineBasicBlock &MBB = MF.front();   // Prolog goes in entry BB
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  DebugLoc dl = (MBBI != MBB.end() ?
-                 MBBI->getDebugLoc() : DebugLoc::getUnknownLoc());
-  bool FP = hasFP(MF);
-
-  //handle GOP offset
-  BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDAHg), Alpha::R29)
-    .addGlobalAddress(const_cast<Function*>(MF.getFunction()))
-    .addReg(Alpha::R27).addImm(++curgpdist);
-  BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDAg), Alpha::R29)
-    .addGlobalAddress(const_cast<Function*>(MF.getFunction()))
-    .addReg(Alpha::R29).addImm(curgpdist);
-
-  //evil const_cast until MO stuff setup to handle const
-  BuildMI(MBB, MBBI, dl, TII.get(Alpha::ALTENT))
-    .addGlobalAddress(const_cast<Function*>(MF.getFunction()));
-
-  // Get the number of bytes to allocate from the FrameInfo
-  long NumBytes = MFI->getStackSize();
-
-  if (FP)
-    NumBytes += 8; //reserve space for the old FP
-
-  // Do we need to allocate space on the stack?
-  if (NumBytes == 0) return;
-
-  unsigned Align = MF.getTarget().getFrameInfo()->getStackAlignment();
-  NumBytes = (NumBytes+Align-1)/Align*Align;
-
-  // Update frame info to pretend that this is part of the stack...
-  MFI->setStackSize(NumBytes);
-
-  // adjust stack pointer: r30 -= numbytes
-  NumBytes = -NumBytes;
-  if (NumBytes >= IMM_LOW) {
-    BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDA), Alpha::R30).addImm(NumBytes)
-      .addReg(Alpha::R30);
-  } else if (getUpper16(NumBytes) >= IMM_LOW) {
-    BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDAH), Alpha::R30)
-      .addImm(getUpper16(NumBytes)).addReg(Alpha::R30);
-    BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDA), Alpha::R30)
-      .addImm(getLower16(NumBytes)).addReg(Alpha::R30);
-  } else {
-    std::string msg;
-    raw_string_ostream Msg(msg); 
-    Msg << "Too big a stack frame at " + NumBytes;
-    llvm_report_error(Msg.str());
-  }
-
-  //now if we need to, save the old FP and set the new
-  if (FP)
-  {
-    BuildMI(MBB, MBBI, dl, TII.get(Alpha::STQ))
-      .addReg(Alpha::R15).addImm(0).addReg(Alpha::R30);
-    //this must be the last instr in the prolog
-    BuildMI(MBB, MBBI, dl, TII.get(Alpha::BISr), Alpha::R15)
-      .addReg(Alpha::R30).addReg(Alpha::R30);
-  }
-
-}
-
-void AlphaRegisterInfo::emitEpilogue(MachineFunction &MF,
-                                     MachineBasicBlock &MBB) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  assert((MBBI->getOpcode() == Alpha::RETDAG ||
-          MBBI->getOpcode() == Alpha::RETDAGp)
-         && "Can only insert epilog into returning blocks");
-  DebugLoc dl = MBBI->getDebugLoc();
-
-  bool FP = hasFP(MF);
-
-  // Get the number of bytes allocated from the FrameInfo...
-  long NumBytes = MFI->getStackSize();
-
-  //now if we need to, restore the old FP
-  if (FP) {
-    //copy the FP into the SP (discards allocas)
-    BuildMI(MBB, MBBI, dl, TII.get(Alpha::BISr), Alpha::R30).addReg(Alpha::R15)
-      .addReg(Alpha::R15);
-    //restore the FP
-    BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDQ), Alpha::R15)
-      .addImm(0).addReg(Alpha::R15);
-  }
-
-  if (NumBytes != 0) {
-    if (NumBytes <= IMM_HIGH) {
-      BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDA), Alpha::R30).addImm(NumBytes)
-        .addReg(Alpha::R30);
-    } else if (getUpper16(NumBytes) <= IMM_HIGH) {
-      BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDAH), Alpha::R30)
-        .addImm(getUpper16(NumBytes)).addReg(Alpha::R30);
-      BuildMI(MBB, MBBI, dl, TII.get(Alpha::LDA), Alpha::R30)
-        .addImm(getLower16(NumBytes)).addReg(Alpha::R30);
-    } else {
-      std::string msg;
-      raw_string_ostream Msg(msg); 
-      Msg << "Too big a stack frame at " + NumBytes;
-      llvm_report_error(Msg.str());
-    }
-  }
-}
-
-unsigned AlphaRegisterInfo::getRARegister() const {
-  llvm_unreachable("What is the return address register");
-  return 0;
-}
-
-unsigned AlphaRegisterInfo::getFrameRegister(MachineFunction &MF) const {
-  return hasFP(MF) ? Alpha::R15 : Alpha::R30;
-}
-
-unsigned AlphaRegisterInfo::getEHExceptionRegister() const {
-  llvm_unreachable("What is the exception register");
-  return 0;
-}
-
-unsigned AlphaRegisterInfo::getEHHandlerRegister() const {
-  llvm_unreachable("What is the exception handler register");
-  return 0;
-}
-
-int AlphaRegisterInfo::getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  llvm_unreachable("What is the dwarf register number");
-  return -1;
-}
-
-#include "AlphaGenRegisterInfo.inc"
-
-std::string AlphaRegisterInfo::getPrettyName(unsigned reg)
-{
-  std::string s(RegisterDescriptors[reg].Name);
-  return s;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.h
deleted file mode 100644
index 5012fe8..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.h
+++ /dev/null
@@ -1,70 +0,0 @@
-//===- AlphaRegisterInfo.h - Alpha Register Information Impl ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Alpha implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHAREGISTERINFO_H
-#define ALPHAREGISTERINFO_H
-
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "AlphaGenRegisterInfo.h.inc"
-
-namespace llvm {
-
-class TargetInstrInfo;
-class Type;
-
-struct AlphaRegisterInfo : public AlphaGenRegisterInfo {
-  const TargetInstrInfo &TII;
-
-  AlphaRegisterInfo(const TargetInstrInfo &tii);
-
-  /// Code Generation virtual methods...
-  const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const;
-
-  const TargetRegisterClass* const* getCalleeSavedRegClasses(
-                                     const MachineFunction *MF = 0) const;
-
-  BitVector getReservedRegs(const MachineFunction &MF) const;
-
-  bool hasFP(const MachineFunction &MF) const;
-
-  void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                     MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I) const;
-
-  void eliminateFrameIndex(MachineBasicBlock::iterator II,
-                           int SPAdj, RegScavenger *RS = NULL) const;
-
-  //void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
-
-  void emitPrologue(MachineFunction &MF) const;
-  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-
-  // Debug information queries.
-  unsigned getRARegister() const;
-  unsigned getFrameRegister(MachineFunction &MF) const;
-
-  // Exception handling queries.
-  unsigned getEHExceptionRegister() const;
-  unsigned getEHHandlerRegister() const;
-
-  int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-
-  static std::string getPrettyName(unsigned reg);
-  
-private:
-  mutable int curgpdist;
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.td b/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.td
deleted file mode 100644
index 35e6804..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.td
+++ /dev/null
@@ -1,171 +0,0 @@
-//===- AlphaRegisterInfo.td - The Alpha Register File ------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file describes the Alpha register set.
-//
-//===----------------------------------------------------------------------===//
-
-class AlphaReg<string n> : Register<n> {
-  field bits<5> Num;
-  let Namespace = "Alpha";
-}
-
-// We identify all our registers with a 5-bit ID, for consistency's sake.
-
-// GPR - One of the 32 32-bit general-purpose registers
-class GPR<bits<5> num, string n> : AlphaReg<n> {
-  let Num = num;
-}
-
-// FPR - One of the 32 64-bit floating-point registers
-class FPR<bits<5> num, string n> : AlphaReg<n> {
-  let Num = num;
-}
-
-//#define FP    $15
-//#define RA    $26
-//#define PV    $27
-//#define GP    $29
-//#define SP    $30
-
-// General-purpose registers
-def R0  : GPR< 0,  "$0">, DwarfRegNum<[0]>;
-def R1  : GPR< 1,  "$1">, DwarfRegNum<[1]>;
-def R2  : GPR< 2,  "$2">, DwarfRegNum<[2]>;
-def R3  : GPR< 3,  "$3">, DwarfRegNum<[3]>;
-def R4  : GPR< 4,  "$4">, DwarfRegNum<[4]>;
-def R5  : GPR< 5,  "$5">, DwarfRegNum<[5]>;
-def R6  : GPR< 6,  "$6">, DwarfRegNum<[6]>;
-def R7  : GPR< 7,  "$7">, DwarfRegNum<[7]>;
-def R8  : GPR< 8,  "$8">, DwarfRegNum<[8]>;
-def R9  : GPR< 9,  "$9">, DwarfRegNum<[9]>;
-def R10 : GPR<10, "$10">, DwarfRegNum<[10]>;
-def R11 : GPR<11, "$11">, DwarfRegNum<[11]>;
-def R12 : GPR<12, "$12">, DwarfRegNum<[12]>;
-def R13 : GPR<13, "$13">, DwarfRegNum<[13]>;
-def R14 : GPR<14, "$14">, DwarfRegNum<[14]>;
-def R15 : GPR<15, "$15">, DwarfRegNum<[15]>;
-def R16 : GPR<16, "$16">, DwarfRegNum<[16]>;
-def R17 : GPR<17, "$17">, DwarfRegNum<[17]>;
-def R18 : GPR<18, "$18">, DwarfRegNum<[18]>;
-def R19 : GPR<19, "$19">, DwarfRegNum<[19]>;
-def R20 : GPR<20, "$20">, DwarfRegNum<[20]>;
-def R21 : GPR<21, "$21">, DwarfRegNum<[21]>;
-def R22 : GPR<22, "$22">, DwarfRegNum<[22]>;
-def R23 : GPR<23, "$23">, DwarfRegNum<[23]>;
-def R24 : GPR<24, "$24">, DwarfRegNum<[24]>;
-def R25 : GPR<25, "$25">, DwarfRegNum<[25]>;
-def R26 : GPR<26, "$26">, DwarfRegNum<[26]>;
-def R27 : GPR<27, "$27">, DwarfRegNum<[27]>;
-def R28 : GPR<28, "$28">, DwarfRegNum<[28]>;
-def R29 : GPR<29, "$29">, DwarfRegNum<[29]>;
-def R30 : GPR<30, "$30">, DwarfRegNum<[30]>;
-def R31 : GPR<31, "$31">, DwarfRegNum<[31]>;
-
-// Floating-point registers
-def F0  : FPR< 0,  "$f0">, DwarfRegNum<[33]>;
-def F1  : FPR< 1,  "$f1">, DwarfRegNum<[34]>;
-def F2  : FPR< 2,  "$f2">, DwarfRegNum<[35]>;
-def F3  : FPR< 3,  "$f3">, DwarfRegNum<[36]>;
-def F4  : FPR< 4,  "$f4">, DwarfRegNum<[37]>;
-def F5  : FPR< 5,  "$f5">, DwarfRegNum<[38]>;
-def F6  : FPR< 6,  "$f6">, DwarfRegNum<[39]>;
-def F7  : FPR< 7,  "$f7">, DwarfRegNum<[40]>;
-def F8  : FPR< 8,  "$f8">, DwarfRegNum<[41]>;
-def F9  : FPR< 9,  "$f9">, DwarfRegNum<[42]>;
-def F10 : FPR<10, "$f10">, DwarfRegNum<[43]>;
-def F11 : FPR<11, "$f11">, DwarfRegNum<[44]>;
-def F12 : FPR<12, "$f12">, DwarfRegNum<[45]>;
-def F13 : FPR<13, "$f13">, DwarfRegNum<[46]>;
-def F14 : FPR<14, "$f14">, DwarfRegNum<[47]>;
-def F15 : FPR<15, "$f15">, DwarfRegNum<[48]>;
-def F16 : FPR<16, "$f16">, DwarfRegNum<[49]>;
-def F17 : FPR<17, "$f17">, DwarfRegNum<[50]>;
-def F18 : FPR<18, "$f18">, DwarfRegNum<[51]>;
-def F19 : FPR<19, "$f19">, DwarfRegNum<[52]>;
-def F20 : FPR<20, "$f20">, DwarfRegNum<[53]>;
-def F21 : FPR<21, "$f21">, DwarfRegNum<[54]>;
-def F22 : FPR<22, "$f22">, DwarfRegNum<[55]>;
-def F23 : FPR<23, "$f23">, DwarfRegNum<[56]>;
-def F24 : FPR<24, "$f24">, DwarfRegNum<[57]>;
-def F25 : FPR<25, "$f25">, DwarfRegNum<[58]>;
-def F26 : FPR<26, "$f26">, DwarfRegNum<[59]>;
-def F27 : FPR<27, "$f27">, DwarfRegNum<[60]>;
-def F28 : FPR<28, "$f28">, DwarfRegNum<[61]>;
-def F29 : FPR<29, "$f29">, DwarfRegNum<[62]>;
-def F30 : FPR<30, "$f30">, DwarfRegNum<[63]>;
-def F31 : FPR<31, "$f31">, DwarfRegNum<[64]>;
-
-  // //#define FP    $15
-  // //#define RA    $26
-  // //#define PV    $27
-  // //#define GP    $29
-  // //#define SP    $30
-  // $28 is undefined after any and all calls
-
-/// Register classes
-def GPRC : RegisterClass<"Alpha", [i64], 64,
-     // Volatile
-     [R0, R1, R2, R3, R4, R5, R6, R7, R8, R16, R17, R18, R19, R20, R21, R22,
-      R23, R24, R25, R28, 
-     //Special meaning, but volatile
-     R27, //procedure address
-     R26, //return address
-     R29, //global offset table address
-     // Non-volatile
-     R9, R10, R11, R12, R13, R14,
-// Don't allocate 15, 30, 31
-     R15, R30, R31 ]> //zero
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    GPRCClass::iterator
-    GPRCClass::allocation_order_end(const MachineFunction &MF) const {
-        return end()-3;
-    }
-  }];
-}
-
-def F4RC : RegisterClass<"Alpha", [f32], 64, [F0, F1, 
-        F10, F11, F12, F13, F14, F15, F16, F17, F18, F19,
-        F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30,
-        // Saved:
-        F2, F3, F4, F5, F6, F7, F8, F9,
-        F31 ]> //zero
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    F4RCClass::iterator
-    F4RCClass::allocation_order_end(const MachineFunction &MF) const {
-        return end()-1;
-    }
-  }];
-}
-
-def F8RC : RegisterClass<"Alpha", [f64], 64, [F0, F1, 
-        F10, F11, F12, F13, F14, F15, F16, F17, F18, F19,
-        F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30,
-        // Saved:
-        F2, F3, F4, F5, F6, F7, F8, F9,
-        F31 ]> //zero
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    F8RCClass::iterator
-    F8RCClass::allocation_order_end(const MachineFunction &MF) const {
-        return end()-1;
-    }
-  }];
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRelocations.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaRelocations.h
deleted file mode 100644
index 4c92045..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaRelocations.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//===- AlphaRelocations.h - Alpha Code Relocations --------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the Alpha target-specific relocation types.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHARELOCATIONS_H
-#define ALPHARELOCATIONS_H
-
-#include "llvm/CodeGen/MachineRelocation.h"
-
-namespace llvm {
-  namespace Alpha {
-    enum RelocationType {
-      reloc_literal,
-      reloc_gprellow,
-      reloc_gprelhigh,
-      reloc_gpdist,
-      reloc_bsr
-    };
-  }
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaSchedule.td b/libclamav/c++/llvm/lib/Target/Alpha/AlphaSchedule.td
deleted file mode 100644
index b7b4560..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaSchedule.td
+++ /dev/null
@@ -1,84 +0,0 @@
-//===- AlphaSchedule.td - Alpha Scheduling Definitions -----*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-
-//This is table 2-2 from the 21264 compiler writers guide
-//modified some
-
-//Pipelines
-
-def L0   : FuncUnit;
-def L1   : FuncUnit;
-def FST0 : FuncUnit;
-def FST1 : FuncUnit;
-def U0   : FuncUnit;
-def U1   : FuncUnit;
-def FA   : FuncUnit;
-def FM   : FuncUnit;
-
-def s_ild   : InstrItinClass;
-def s_fld   : InstrItinClass;
-def s_ist   : InstrItinClass;
-def s_fst   : InstrItinClass;
-def s_lda   : InstrItinClass;
-def s_rpcc  : InstrItinClass;
-def s_rx    : InstrItinClass;
-def s_mxpr  : InstrItinClass;
-def s_icbr  : InstrItinClass;
-def s_ubr   : InstrItinClass;
-def s_jsr   : InstrItinClass;
-def s_iadd  : InstrItinClass;
-def s_ilog  : InstrItinClass;
-def s_ishf  : InstrItinClass;
-def s_cmov  : InstrItinClass;
-def s_imul  : InstrItinClass;
-def s_imisc : InstrItinClass;
-def s_fbr   : InstrItinClass;
-def s_fadd  : InstrItinClass;
-def s_fmul  : InstrItinClass;
-def s_fcmov : InstrItinClass;
-def s_fdivt : InstrItinClass;
-def s_fdivs : InstrItinClass;
-def s_fsqrts: InstrItinClass;
-def s_fsqrtt: InstrItinClass;
-def s_ftoi  : InstrItinClass;
-def s_itof  : InstrItinClass;
-def s_pseudo : InstrItinClass;
-
-//Table 2­4 Instruction Class Latency in Cycles
-//modified some
-
-def Alpha21264Itineraries : ProcessorItineraries<[
-  InstrItinData<s_ild    , [InstrStage<3, [L0, L1]>]>,
-  InstrItinData<s_fld    , [InstrStage<4, [L0, L1]>]>,
-  InstrItinData<s_ist    , [InstrStage<0, [L0, L1]>]>,
-  InstrItinData<s_fst    , [InstrStage<0, [FST0, FST1, L0, L1]>]>,
-  InstrItinData<s_lda    , [InstrStage<1, [L0, L1, U0, U1]>]>,
-  InstrItinData<s_rpcc   , [InstrStage<1, [L1]>]>,
-  InstrItinData<s_rx     , [InstrStage<1, [L1]>]>,
-  InstrItinData<s_mxpr   , [InstrStage<1, [L0, L1]>]>,
-  InstrItinData<s_icbr   , [InstrStage<0, [U0, U1]>]>,
-  InstrItinData<s_ubr    , [InstrStage<3, [U0, U1]>]>,
-  InstrItinData<s_jsr    , [InstrStage<3, [L0]>]>,
-  InstrItinData<s_iadd   , [InstrStage<1, [L0, U0, L1, U1]>]>,
-  InstrItinData<s_ilog   , [InstrStage<1, [L0, U0, L1, U1]>]>,
-  InstrItinData<s_ishf   , [InstrStage<1, [U0, U1]>]>,
-  InstrItinData<s_cmov   , [InstrStage<1, [L0, U0, L1, U1]>]>,
-  InstrItinData<s_imul   , [InstrStage<7, [U1]>]>,
-  InstrItinData<s_imisc  , [InstrStage<3, [U0]>]>,
-  InstrItinData<s_fbr    , [InstrStage<0, [FA]>]>,
-  InstrItinData<s_fadd   , [InstrStage<6, [FA]>]>,
-  InstrItinData<s_fmul   , [InstrStage<6, [FM]>]>,
-  InstrItinData<s_fcmov  , [InstrStage<6, [FA]>]>,
-  InstrItinData<s_fdivs  , [InstrStage<12, [FA]>]>,
-  InstrItinData<s_fdivt  , [InstrStage<15, [FA]>]>,
-  InstrItinData<s_fsqrts , [InstrStage<18, [FA]>]>,
-  InstrItinData<s_fsqrtt , [InstrStage<33, [FA]>]>,
-  InstrItinData<s_ftoi   , [InstrStage<3, [FST0, FST1, L0, L1]>]>,
-  InstrItinData<s_itof   , [InstrStage<4, [L0, L1]>]>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaSubtarget.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaSubtarget.cpp
deleted file mode 100644
index bda7104..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaSubtarget.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//===- AlphaSubtarget.cpp - Alpha Subtarget Information ---------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Alpha specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "AlphaSubtarget.h"
-#include "Alpha.h"
-#include "AlphaGenSubtarget.inc"
-using namespace llvm;
-
-AlphaSubtarget::AlphaSubtarget(const std::string &TT, const std::string &FS)
-  : HasCT(false) {
-  std::string CPU = "generic";
-
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaSubtarget.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaSubtarget.h
deleted file mode 100644
index f0eb93c..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaSubtarget.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//=====-- AlphaSubtarget.h - Define Subtarget for the Alpha --*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Alpha specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHASUBTARGET_H
-#define ALPHASUBTARGET_H
-
-#include "llvm/Target/TargetInstrItineraries.h"
-#include "llvm/Target/TargetSubtarget.h"
-
-#include <string>
-
-namespace llvm {
-
-class AlphaSubtarget : public TargetSubtarget {
-protected:
-
-  bool HasCT;
-
-  InstrItineraryData InstrItins;
-
-public:
-  /// This constructor initializes the data members to match that
-  /// of the specified triple.
-  ///
-  AlphaSubtarget(const std::string &TT, const std::string &FS);
-  
-  /// ParseSubtargetFeatures - Parses features string setting specified 
-  /// subtarget options.  Definition of function is auto generated by tblgen.
-  std::string ParseSubtargetFeatures(const std::string &FS,
-                                     const std::string &CPU);
-
-  bool hasCT() const { return HasCT; }
-};
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.cpp
deleted file mode 100644
index b8bc13b..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//===-- AlphaTargetMachine.cpp - Define TargetMachine for Alpha -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#include "Alpha.h"
-#include "AlphaJITInfo.h"
-#include "AlphaMCAsmInfo.h"
-#include "AlphaTargetMachine.h"
-#include "llvm/PassManager.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-extern "C" void LLVMInitializeAlphaTarget() { 
-  // Register the target.
-  RegisterTargetMachine<AlphaTargetMachine> X(TheAlphaTarget);
-  RegisterAsmInfo<AlphaMCAsmInfo> Y(TheAlphaTarget);
-}
-
-AlphaTargetMachine::AlphaTargetMachine(const Target &T, const std::string &TT,
-                                       const std::string &FS)
-  : LLVMTargetMachine(T, TT),
-    DataLayout("e-f128:128:128"),
-    FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0),
-    JITInfo(*this),
-    Subtarget(TT, FS),
-    TLInfo(*this) {
-  setRelocationModel(Reloc::PIC_);
-}
-
-
-//===----------------------------------------------------------------------===//
-// Pass Pipeline Configuration
-//===----------------------------------------------------------------------===//
-
-bool AlphaTargetMachine::addInstSelector(PassManagerBase &PM,
-                                         CodeGenOpt::Level OptLevel) {
-  PM.add(createAlphaISelDag(*this));
-  return false;
-}
-bool AlphaTargetMachine::addPreEmitPass(PassManagerBase &PM,
-                                        CodeGenOpt::Level OptLevel) {
-  // Must run branch selection immediately preceding the asm printer
-  PM.add(createAlphaBranchSelectionPass());
-  PM.add(createAlphaLLRPPass(*this));
-  return false;
-}
-bool AlphaTargetMachine::addCodeEmitter(PassManagerBase &PM,
-                                        CodeGenOpt::Level OptLevel,
-                                        MachineCodeEmitter &MCE) {
-  PM.add(createAlphaCodeEmitterPass(*this, MCE));
-  return false;
-}
-bool AlphaTargetMachine::addCodeEmitter(PassManagerBase &PM,
-                                        CodeGenOpt::Level OptLevel,
-                                        JITCodeEmitter &JCE) {
-  PM.add(createAlphaJITCodeEmitterPass(*this, JCE));
-  return false;
-}
-bool AlphaTargetMachine::addCodeEmitter(PassManagerBase &PM,
-                                        CodeGenOpt::Level OptLevel,
-                                        ObjectCodeEmitter &OCE) {
-  PM.add(createAlphaObjectCodeEmitterPass(*this, OCE));
-  return false;
-}
-bool AlphaTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM,
-                                              CodeGenOpt::Level OptLevel,
-                                              MachineCodeEmitter &MCE) {
-  return addCodeEmitter(PM, OptLevel, MCE);
-}
-bool AlphaTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM,
-                                              CodeGenOpt::Level OptLevel,
-                                              JITCodeEmitter &JCE) {
-  return addCodeEmitter(PM, OptLevel, JCE);
-}
-bool AlphaTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM,
-                                              CodeGenOpt::Level OptLevel,
-                                              ObjectCodeEmitter &OCE) {
-  return addCodeEmitter(PM, OptLevel, OCE);
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.h b/libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.h
deleted file mode 100644
index f03e938..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//===-- AlphaTargetMachine.h - Define TargetMachine for Alpha ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Alpha-specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ALPHA_TARGETMACHINE_H
-#define ALPHA_TARGETMACHINE_H
-
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "AlphaInstrInfo.h"
-#include "AlphaJITInfo.h"
-#include "AlphaISelLowering.h"
-#include "AlphaSubtarget.h"
-
-namespace llvm {
-
-class GlobalValue;
-
-class AlphaTargetMachine : public LLVMTargetMachine {
-  const TargetData DataLayout;       // Calculates type size & alignment
-  AlphaInstrInfo InstrInfo;
-  TargetFrameInfo FrameInfo;
-  AlphaJITInfo JITInfo;
-  AlphaSubtarget Subtarget;
-  AlphaTargetLowering TLInfo;
-
-public:
-  AlphaTargetMachine(const Target &T, const std::string &TT,
-                     const std::string &FS);
-
-  virtual const AlphaInstrInfo *getInstrInfo() const { return &InstrInfo; }
-  virtual const TargetFrameInfo  *getFrameInfo() const { return &FrameInfo; }
-  virtual const AlphaSubtarget   *getSubtargetImpl() const{ return &Subtarget; }
-  virtual const AlphaRegisterInfo *getRegisterInfo() const {
-    return &InstrInfo.getRegisterInfo();
-  }
-  virtual AlphaTargetLowering* getTargetLowering() const {
-    return const_cast<AlphaTargetLowering*>(&TLInfo);
-  }
-  virtual const TargetData       *getTargetData() const { return &DataLayout; }
-  virtual AlphaJITInfo* getJITInfo() {
-    return &JITInfo;
-  }
-
-  // Pass Pipeline Configuration
-  virtual bool addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-  virtual bool addPreEmitPass(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-  virtual bool addCodeEmitter(PassManagerBase &PM, CodeGenOpt::Level OptLevel,
-                              MachineCodeEmitter &MCE);
-  virtual bool addCodeEmitter(PassManagerBase &PM, CodeGenOpt::Level OptLevel,
-                              JITCodeEmitter &JCE);
-  virtual bool addCodeEmitter(PassManagerBase &PM, CodeGenOpt::Level OptLevel,
-                              ObjectCodeEmitter &JCE);
-  virtual bool addSimpleCodeEmitter(PassManagerBase &PM,
-                                    CodeGenOpt::Level OptLevel,
-                                    MachineCodeEmitter &MCE);
-  virtual bool addSimpleCodeEmitter(PassManagerBase &PM,
-                                    CodeGenOpt::Level OptLevel,
-                                    JITCodeEmitter &JCE);
-  virtual bool addSimpleCodeEmitter(PassManagerBase &PM,
-                                    CodeGenOpt::Level OptLevel,
-                                    ObjectCodeEmitter &OCE);
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
deleted file mode 100644
index e22ebec..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
+++ /dev/null
@@ -1,279 +0,0 @@
-//===-- AlphaAsmPrinter.cpp - Alpha LLVM assembly writer ------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to GAS-format Alpha assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "asm-printer"
-#include "Alpha.h"
-#include "AlphaInstrInfo.h"
-#include "AlphaTargetMachine.h"
-#include "llvm/Module.h"
-#include "llvm/Type.h"
-#include "llvm/Assembly/Writer.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/ADT/Statistic.h"
-using namespace llvm;
-
-STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-namespace {
-  struct VISIBILITY_HIDDEN AlphaAsmPrinter : public AsmPrinter {
-    /// Unique incrementer for label values for referencing Global values.
-    ///
-
-    explicit AlphaAsmPrinter(formatted_raw_ostream &o, TargetMachine &tm,
-                             const MCAsmInfo *T, bool V)
-      : AsmPrinter(o, tm, T, V) {}
-
-    virtual const char *getPassName() const {
-      return "Alpha Assembly Printer";
-    }
-    void printInstruction(const MachineInstr *MI);
-    void printOp(const MachineOperand &MO, bool IsCallOp = false);
-    void printOperand(const MachineInstr *MI, int opNum);
-    void printBaseOffsetPair(const MachineInstr *MI, int i, bool brackets=true);
-    void PrintGlobalVariable(const GlobalVariable *GVar);
-    bool runOnMachineFunction(MachineFunction &F);
-    bool doInitialization(Module &M);
-
-    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                         unsigned AsmVariant, const char *ExtraCode);
-    bool PrintAsmMemoryOperand(const MachineInstr *MI,
-                               unsigned OpNo,
-                               unsigned AsmVariant,
-                               const char *ExtraCode);
-  };
-} // end of anonymous namespace
-
-#include "AlphaGenAsmWriter.inc"
-
-void AlphaAsmPrinter::printOperand(const MachineInstr *MI, int opNum)
-{
-  const MachineOperand &MO = MI->getOperand(opNum);
-  if (MO.getType() == MachineOperand::MO_Register) {
-    assert(TargetRegisterInfo::isPhysicalRegister(MO.getReg()) &&
-           "Not physreg??");
-    O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
-  } else if (MO.isImm()) {
-    O << MO.getImm();
-    assert(MO.getImm() < (1 << 30));
-  } else {
-    printOp(MO);
-  }
-}
-
-
-void AlphaAsmPrinter::printOp(const MachineOperand &MO, bool IsCallOp) {
-  const TargetRegisterInfo &RI = *TM.getRegisterInfo();
-
-  switch (MO.getType()) {
-  case MachineOperand::MO_Register:
-    O << RI.get(MO.getReg()).AsmName;
-    return;
-
-  case MachineOperand::MO_Immediate:
-    llvm_unreachable("printOp() does not handle immediate values");
-    return;
-
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB());
-    return;
-
-  case MachineOperand::MO_ConstantPoolIndex:
-    O << MAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << "_"
-      << MO.getIndex();
-    return;
-
-  case MachineOperand::MO_ExternalSymbol:
-    O << MO.getSymbolName();
-    return;
-
-  case MachineOperand::MO_GlobalAddress:
-    O << Mang->getMangledName(MO.getGlobal());
-    return;
-
-  case MachineOperand::MO_JumpTableIndex:
-    O << MAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber()
-      << '_' << MO.getIndex();
-    return;
-
-  default:
-    O << "<unknown operand type: " << MO.getType() << ">";
-    return;
-  }
-}
-
-/// runOnMachineFunction - This uses the printMachineInstruction()
-/// method to print assembly for each instruction.
-///
-bool AlphaAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
-  this->MF = &MF;
-
-  SetupMachineFunction(MF);
-  O << "\n\n";
-
-  // Print out constants referenced by the function
-  EmitConstantPool(MF.getConstantPool());
-
-  // Print out jump tables referenced by the function
-  EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-
-  // Print out labels for the function.
-  const Function *F = MF.getFunction();
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-
-  EmitAlignment(MF.getAlignment(), F);
-  switch (F->getLinkage()) {
-  default: llvm_unreachable("Unknown linkage type!");
-  case Function::InternalLinkage:  // Symbols default to internal.
-  case Function::PrivateLinkage:
-  case Function::LinkerPrivateLinkage:
-    break;
-   case Function::ExternalLinkage:
-     O << "\t.globl " << CurrentFnName << "\n";
-     break;
-  case Function::WeakAnyLinkage:
-  case Function::WeakODRLinkage:
-  case Function::LinkOnceAnyLinkage:
-  case Function::LinkOnceODRLinkage:
-    O << MAI->getWeakRefDirective() << CurrentFnName << "\n";
-    break;
-  }
-
-  printVisibility(CurrentFnName, F->getVisibility());
-
-  O << "\t.ent " << CurrentFnName << "\n";
-
-  O << CurrentFnName << ":\n";
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    if (I != MF.begin()) {
-      printBasicBlockLabel(I, true, true);
-      O << '\n';
-    }
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-      // Print the assembly for the instruction.
-      ++EmittedInsts;
-      printInstruction(II);
-    }
-  }
-
-  O << "\t.end " << CurrentFnName << "\n";
-
-  // We didn't modify anything.
-  return false;
-}
-
-bool AlphaAsmPrinter::doInitialization(Module &M)
-{
-  if(TM.getSubtarget<AlphaSubtarget>().hasCT())
-    O << "\t.arch ev6\n"; //This might need to be ev67, so leave this test here
-  else
-    O << "\t.arch ev6\n";
-  O << "\t.set noat\n";
-  return AsmPrinter::doInitialization(M);
-}
-
-void AlphaAsmPrinter::PrintGlobalVariable(const GlobalVariable *GVar) {
-  const TargetData *TD = TM.getTargetData();
-
-  if (!GVar->hasInitializer()) return;  // External global require no code
-
-  // Check to see if this is a special global used by LLVM, if so, emit it.
-  if (EmitSpecialLLVMGlobal(GVar))
-    return;
-
-  std::string name = Mang->getMangledName(GVar);
-  Constant *C = GVar->getInitializer();
-  unsigned Size = TD->getTypeAllocSize(C->getType());
-  unsigned Align = TD->getPreferredAlignmentLog(GVar);
-
-  // 0: Switch to section
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(GVar, Mang,
-                                                                  TM));
-
-  // 1: Check visibility
-  printVisibility(name, GVar->getVisibility());
-
-  // 2: Kind
-  switch (GVar->getLinkage()) {
-   case GlobalValue::LinkOnceAnyLinkage:
-   case GlobalValue::LinkOnceODRLinkage:
-   case GlobalValue::WeakAnyLinkage:
-   case GlobalValue::WeakODRLinkage:
-   case GlobalValue::CommonLinkage:
-    O << MAI->getWeakRefDirective() << name << '\n';
-    break;
-   case GlobalValue::AppendingLinkage:
-   case GlobalValue::ExternalLinkage:
-      O << MAI->getGlobalDirective() << name << "\n";
-      break;
-    case GlobalValue::InternalLinkage:
-    case GlobalValue::PrivateLinkage:
-    case GlobalValue::LinkerPrivateLinkage:
-      break;
-    default:
-      llvm_unreachable("Unknown linkage type!");
-    }
-
-  // 3: Type, Size, Align
-  if (MAI->hasDotTypeDotSizeDirective()) {
-    O << "\t.type\t" << name << ", @object\n";
-    O << "\t.size\t" << name << ", " << Size << "\n";
-  }
-
-  EmitAlignment(Align, GVar);
-
-  O << name << ":\n";
-
-  EmitGlobalConstant(C);
-  O << '\n';
-}
-
-/// PrintAsmOperand - Print out an operand for an inline asm expression.
-///
-bool AlphaAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                                      unsigned AsmVariant,
-                                      const char *ExtraCode) {
-  printOperand(MI, OpNo);
-  return false;
-}
-
-bool AlphaAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
-                                            unsigned OpNo,
-                                            unsigned AsmVariant,
-                                            const char *ExtraCode) {
-  if (ExtraCode && ExtraCode[0])
-    return true; // Unknown modifier.
-  O << "0(";
-  printOperand(MI, OpNo);
-  O << ")";
-  return false;
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeAlphaAsmPrinter() { 
-  RegisterAsmPrinter<AlphaAsmPrinter> X(TheAlphaTarget);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 992c218..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMAlphaAsmPrinter
-  AlphaAsmPrinter.cpp
-  )
-add_dependencies(LLVMAlphaAsmPrinter AlphaCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/Makefile
deleted file mode 100644
index 3c64a3c..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/Alpha/AsmPrinter/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMAlphaAsmPrinter
-
-# Hack: we need to include 'main' alpha target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Alpha/CMakeLists.txt
deleted file mode 100644
index b4f41ae..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS Alpha.td)
-
-tablegen(AlphaGenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(AlphaGenRegisterNames.inc -gen-register-enums)
-tablegen(AlphaGenRegisterInfo.inc -gen-register-desc)
-tablegen(AlphaGenInstrNames.inc -gen-instr-enums)
-tablegen(AlphaGenInstrInfo.inc -gen-instr-desc)
-tablegen(AlphaGenCodeEmitter.inc -gen-emitter)
-tablegen(AlphaGenAsmWriter.inc -gen-asm-writer)
-tablegen(AlphaGenDAGISel.inc -gen-dag-isel)
-tablegen(AlphaGenCallingConv.inc -gen-callingconv)
-tablegen(AlphaGenSubtarget.inc -gen-subtarget)
-
-add_llvm_target(AlphaCodeGen
-  AlphaBranchSelector.cpp
-  AlphaCodeEmitter.cpp
-  AlphaInstrInfo.cpp
-  AlphaISelDAGToDAG.cpp
-  AlphaISelLowering.cpp
-  AlphaJITInfo.cpp
-  AlphaLLRP.cpp
-  AlphaMCAsmInfo.cpp
-  AlphaRegisterInfo.cpp
-  AlphaSubtarget.cpp
-  AlphaTargetMachine.cpp
-  )
-
-target_link_libraries (LLVMAlphaCodeGen LLVMSelectionDAG)
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/Makefile b/libclamav/c++/llvm/lib/Target/Alpha/Makefile
deleted file mode 100644
index d2d7109..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-##===- lib/Target/Alpha/Makefile -------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMAlphaCodeGen
-TARGET = Alpha
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = AlphaGenRegisterInfo.h.inc AlphaGenRegisterNames.inc \
-                AlphaGenRegisterInfo.inc AlphaGenInstrNames.inc \
-                AlphaGenInstrInfo.inc AlphaGenCodeEmitter.inc \
-                AlphaGenAsmWriter.inc AlphaGenDAGISel.inc \
-                AlphaGenCallingConv.inc AlphaGenSubtarget.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/README.txt b/libclamav/c++/llvm/lib/Target/Alpha/README.txt
deleted file mode 100644
index 9ae1517..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/README.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-***
-
-add gcc builtins for alpha instructions
-
-
-***
-
-custom expand byteswap into nifty 
-extract/insert/mask byte/word/longword/quadword low/high
-sequences
-
-***
-
-see if any of the extract/insert/mask operations can be added
-
-***
-
-match more interesting things for cmovlbc cmovlbs (move if low bit clear/set)
-
-***
-
-lower srem and urem
-
-remq(i,j):  i - (j * divq(i,j)) if j != 0
-remqu(i,j): i - (j * divqu(i,j)) if j != 0
-reml(i,j):  i - (j * divl(i,j)) if j != 0
-remlu(i,j): i - (j * divlu(i,j)) if j != 0
-
-***
-
-add crazy vector instructions (MVI):
-
-(MIN|MAX)(U|S)(B8|W4) min and max, signed and unsigned, byte and word
-PKWB, UNPKBW pack/unpack word to byte
-PKLB UNPKBL pack/unpack long to byte
-PERR pixel error (sum accross bytes of bytewise abs(i8v8 a - i8v8 b))
-
-cmpbytes bytewise cmpeq of i8v8 a and i8v8 b (not part of MVI extentions)
-
-this has some good examples for other operations that can be synthesised well 
-from these rather meager vector ops (such as saturating add).
-http://www.alphalinux.org/docs/MVI-full.html
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp
deleted file mode 100644
index f7099b9..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===-- AlphaTargetInfo.cpp - Alpha Target Implementation -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Alpha.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-llvm::Target llvm::TheAlphaTarget;
-
-extern "C" void LLVMInitializeAlphaTargetInfo() { 
-  RegisterTarget<Triple::alpha, /*HasJIT=*/true>
-    X(TheAlphaTarget, "alpha", "Alpha [experimental]");
-}
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 2a7291b..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMAlphaInfo
-  AlphaTargetInfo.cpp
-  )
-
-add_dependencies(LLVMAlphaInfo AlphaCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/Makefile
deleted file mode 100644
index de01d7f..0000000
--- a/libclamav/c++/llvm/lib/Target/Alpha/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/Alpha/TargetInfo/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMAlphaInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp
deleted file mode 100644
index 759726f..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-//===-- BlackfinAsmPrinter.cpp - Blackfin LLVM assembly writer ------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to GAS-format BLACKFIN assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "asm-printer"
-#include "Blackfin.h"
-#include "BlackfinInstrInfo.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/FormattedStream.h"
-
-using namespace llvm;
-
-STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-namespace {
-  class VISIBILITY_HIDDEN BlackfinAsmPrinter : public AsmPrinter {
-  public:
-    BlackfinAsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                       const MCAsmInfo *MAI, bool V)
-      : AsmPrinter(O, TM, MAI, V) {}
-
-    virtual const char *getPassName() const {
-      return "Blackfin Assembly Printer";
-    }
-
-    void printOperand(const MachineInstr *MI, int opNum);
-    void printMemoryOperand(const MachineInstr *MI, int opNum);
-    void printInstruction(const MachineInstr *MI);  // autogenerated.
-    void emitLinkage(const std::string &n, GlobalValue::LinkageTypes l);
-    bool runOnMachineFunction(MachineFunction &F);
-    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                         unsigned AsmVariant, const char *ExtraCode);
-    bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
-                               unsigned AsmVariant, const char *ExtraCode);
-    void PrintGlobalVariable(const GlobalVariable* GVar);
-  };
-} // end of anonymous namespace
-
-#include "BlackfinGenAsmWriter.inc"
-
-extern "C" void LLVMInitializeBlackfinAsmPrinter() {
-  RegisterAsmPrinter<BlackfinAsmPrinter> X(TheBlackfinTarget);
-}
-
-void BlackfinAsmPrinter::emitLinkage(const std::string &name,
-                                     GlobalValue::LinkageTypes l) {
-  switch (l) {
-  default: llvm_unreachable("Unknown linkage type!");
-  case GlobalValue::InternalLinkage:  // Symbols default to internal.
-  case GlobalValue::PrivateLinkage:
-  case GlobalValue::LinkerPrivateLinkage:
-    break;
-  case GlobalValue::ExternalLinkage:
-    O << MAI->getGlobalDirective() << name << "\n";
-    break;
-  case GlobalValue::LinkOnceAnyLinkage:
-  case GlobalValue::LinkOnceODRLinkage:
-  case GlobalValue::WeakAnyLinkage:
-  case GlobalValue::WeakODRLinkage:
-    O << MAI->getGlobalDirective() << name << "\n";
-    O << MAI->getWeakDefDirective() << name << "\n";
-    break;
-  }
-}
-
-void BlackfinAsmPrinter::PrintGlobalVariable(const GlobalVariable* GV) {
-  const TargetData *TD = TM.getTargetData();
-
-  if (!GV->hasInitializer() || EmitSpecialLLVMGlobal(GV))
-    return;
-
-  std::string name = Mang->getMangledName(GV);
-  Constant *C = GV->getInitializer();
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(GV, Mang,
-                                                                  TM));
-  emitLinkage(name, GV->getLinkage());
-  EmitAlignment(TD->getPreferredAlignmentLog(GV), GV);
-  printVisibility(name, GV->getVisibility());
-
-  O << "\t.type " << name << ", STT_OBJECT\n";
-  O << "\t.size " << name << ',' << TD->getTypeAllocSize(C->getType()) << '\n';
-  O << name << ":\n";
-  EmitGlobalConstant(C);
-}
-
-/// runOnMachineFunction - This uses the printInstruction()
-/// method to print assembly for each instruction.
-///
-bool BlackfinAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
-  SetupMachineFunction(MF);
-  EmitConstantPool(MF.getConstantPool());
-  EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-
-  const Function *F = MF.getFunction();
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-  EmitAlignment(2, F);
-  emitLinkage(CurrentFnName, F->getLinkage());
-  printVisibility(CurrentFnName, F->getVisibility());
-
-  O << "\t.type\t" << CurrentFnName << ", STT_FUNC\n"
-    << CurrentFnName << ":\n";
-
-  if (DW)
-    DW->BeginFunction(&MF);
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    // Print a label for the basic block.
-    if (!VerboseAsm && (I->pred_empty() || I->isOnlyReachableByFallthrough())) {
-      // This is an entry block or a block that's only reachable via a
-      // fallthrough edge. In non-VerboseAsm mode, don't print the label.
-    } else {
-      printBasicBlockLabel(I, true, true, VerboseAsm);
-      O << '\n';
-    }
-
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-      // Print the assembly for the instruction.
-      printInstruction(II);
-      ++EmittedInsts;
-    }
-  }
-
-  O << "\t.size " << CurrentFnName << ", .-" << CurrentFnName << "\n";
-
-  if (DW)
-    DW->EndFunction(&MF);
-
-  return false;
-}
-
-void BlackfinAsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
-  const MachineOperand &MO = MI->getOperand (opNum);
-  const TargetRegisterInfo &RI = *TM.getRegisterInfo();
-  switch (MO.getType()) {
-  case MachineOperand::MO_Register:
-    assert(TargetRegisterInfo::isPhysicalRegister(MO.getReg()) &&
-           "Virtual registers should be already mapped!");
-    O << RI.get(MO.getReg()).AsmName;
-    break;
-
-  case MachineOperand::MO_Immediate:
-    O << MO.getImm();
-    break;
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB(), false, false, false);
-    return;
-  case MachineOperand::MO_GlobalAddress:
-    O << Mang->getMangledName(MO.getGlobal());
-    printOffset(MO.getOffset());
-    break;
-  case MachineOperand::MO_ExternalSymbol:
-    O << Mang->makeNameProper(MO.getSymbolName());
-    break;
-  case MachineOperand::MO_ConstantPoolIndex:
-    O << MAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << "_"
-      << MO.getIndex();
-    break;
-  case MachineOperand::MO_JumpTableIndex:
-    O << MAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber()
-      << '_' << MO.getIndex();
-    break;
-  default:
-    llvm_unreachable("<unknown operand type>");
-    break;
-  }
-}
-
-void BlackfinAsmPrinter::printMemoryOperand(const MachineInstr *MI, int opNum) {
-  printOperand(MI, opNum);
-
-  if (MI->getOperand(opNum+1).isImm() && MI->getOperand(opNum+1).getImm() == 0)
-    return;
-
-  O << " + ";
-  printOperand(MI, opNum+1);
-}
-
-/// PrintAsmOperand - Print out an operand for an inline asm expression.
-///
-bool BlackfinAsmPrinter::PrintAsmOperand(const MachineInstr *MI,
-                                         unsigned OpNo,
-                                         unsigned AsmVariant,
-                                         const char *ExtraCode) {
-  if (ExtraCode && ExtraCode[0]) {
-    if (ExtraCode[1] != 0) return true; // Unknown modifier.
-
-    switch (ExtraCode[0]) {
-    default: return true;  // Unknown modifier.
-    case 'r':
-      break;
-    }
-  }
-
-  printOperand(MI, OpNo);
-
-  return false;
-}
-
-bool BlackfinAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
-                                               unsigned OpNo,
-                                               unsigned AsmVariant,
-                                               const char *ExtraCode) {
-  if (ExtraCode && ExtraCode[0])
-    return true;  // Unknown modifier
-
-  O << '[';
-  printOperand(MI, OpNo);
-  O << ']';
-
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 795aebf..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMBlackfinAsmPrinter
-  BlackfinAsmPrinter.cpp
-  )
-add_dependencies(LLVMBlackfinAsmPrinter BlackfinCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/Makefile
deleted file mode 100644
index 091d4df..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-##===- lib/Target/Blackfin/AsmPrinter/Makefile -------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMBlackfinAsmPrinter
-
-# Hack: we need to include 'main' Blackfin target directory to grab private
-# headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/Blackfin.h b/libclamav/c++/llvm/lib/Target/Blackfin/Blackfin.h
deleted file mode 100644
index ec1fa86..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/Blackfin.h
+++ /dev/null
@@ -1,38 +0,0 @@
-//=== Blackfin.h - Top-level interface for Blackfin backend -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in the LLVM
-// Blackfin back-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TARGET_BLACKFIN_H
-#define TARGET_BLACKFIN_H
-
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-
-  class FunctionPass;
-  class BlackfinTargetMachine;
-
-  FunctionPass *createBlackfinISelDag(BlackfinTargetMachine &TM,
-                                      CodeGenOpt::Level OptLevel);
-  extern Target TheBlackfinTarget;
-
-} // end namespace llvm
-
-// Defines symbolic names for Blackfin registers.  This defines a mapping from
-// register name to register number.
-#include "BlackfinGenRegisterNames.inc"
-
-// Defines symbolic names for the Blackfin instructions.
-#include "BlackfinGenInstrNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/Blackfin.td b/libclamav/c++/llvm/lib/Target/Blackfin/Blackfin.td
deleted file mode 100644
index b904638..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/Blackfin.td
+++ /dev/null
@@ -1,201 +0,0 @@
-//===- Blackfin.td - Describe the Blackfin Target Machine --*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Target-independent interfaces which we are implementing
-//===----------------------------------------------------------------------===//
-
-include "llvm/Target/Target.td"
-
-//===----------------------------------------------------------------------===//
-// Blackfin Subtarget features.
-//===----------------------------------------------------------------------===//
-
-def FeatureSDRAM : SubtargetFeature<"sdram", "sdram", "true",
-    "Build for SDRAM">;
-
-def FeatureICPLB : SubtargetFeature<"icplb", "icplb", "true",
-    "Assume instruction cache lookaside buffers are enabled at runtime">;
-
-//===----------------------------------------------------------------------===//
-// Bugs in the silicon becomes workarounds in the compiler.
-// See http://www.analog.com/ for the full list of IC anomalies.
-//===----------------------------------------------------------------------===//
-
-def WA_MI_SHIFT : SubtargetFeature<"mi-shift-anomaly","wa_mi_shift", "true",
-    "Work around 05000074 - "
-    "Multi-Issue Instruction with dsp32shiftimm and P-reg Store">;
-
-def WA_CSYNC : SubtargetFeature<"csync-anomaly","wa_csync", "true",
-    "Work around 05000244 - "
-    "If I-Cache Is On, CSYNC/SSYNC/IDLE Around Change of Control">;
-
-def WA_SPECLD : SubtargetFeature<"specld-anomaly","wa_specld", "true",
-    "Work around 05000245 - "
-    "Access in the Shadow of a Conditional Branch">;
-
-def WA_HWLOOP : SubtargetFeature<"hwloop-anomaly","wa_hwloop", "true",
-    "Work around 05000257 - "
-    "Interrupt/Exception During Short Hardware Loop">;
-
-def WA_MMR_STALL : SubtargetFeature<"mmr-stall-anomaly","wa_mmr_stall", "true",
-    "Work around 05000283 - "
-    "System MMR Write Is Stalled Indefinitely when Killed">;
-
-def WA_LCREGS : SubtargetFeature<"lcregs-anomaly","wa_lcregs", "true",
-    "Work around 05000312 - "
-    "SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted">;
-
-def WA_KILLED_MMR : SubtargetFeature<"killed-mmr-anomaly",
-                                     "wa_killed_mmr", "true",
-    "Work around 05000315 - "
-    "Killed System MMR Write Completes Erroneously on Next System MMR Access">;
-
-def WA_RETS : SubtargetFeature<"rets-anomaly", "wa_rets", "true",
-    "Work around 05000371 - "
-    "Possible RETS Register Corruption when Subroutine Is under 5 Cycles">;
-
-def WA_IND_CALL : SubtargetFeature<"ind-call-anomaly", "wa_ind_call", "true",
-    "Work around 05000426 - "
-    "Speculative Fetches of Indirect-Pointer Instructions">;
-
-//===----------------------------------------------------------------------===//
-// Register File, Calling Conv, Instruction Descriptions
-//===----------------------------------------------------------------------===//
-
-include "BlackfinRegisterInfo.td"
-include "BlackfinCallingConv.td"
-include "BlackfinInstrInfo.td"
-
-def BlackfinInstrInfo : InstrInfo {}
-
-//===----------------------------------------------------------------------===//
-// Blackfin processors supported.
-//===----------------------------------------------------------------------===//
-
-class Proc<string Name, string Suffix, list<SubtargetFeature> Features>
- : Processor<!strconcat(Name, Suffix), NoItineraries, Features>;
-
-def : Proc<"generic", "", []>;
-
-multiclass Core<string Name,string Suffix,
-                list<SubtargetFeature> Features> {
-  def : Proc<Name, Suffix, Features>;
-  def : Proc<Name, "", Features>;
-  def : Proc<Name, "-none", []>;
-}
-
-multiclass CoreEdinburgh<string Name>
-      : Core<Name, "-0.6", [WA_MI_SHIFT, WA_SPECLD, WA_LCREGS]> {
-  def : Proc<Name, "-0.5",
-        [WA_MI_SHIFT, WA_SPECLD, WA_MMR_STALL, WA_LCREGS, WA_KILLED_MMR,
-         WA_RETS]>;
-  def : Proc<Name, "-0.4",
-        [WA_MI_SHIFT, WA_CSYNC, WA_SPECLD, WA_HWLOOP, WA_MMR_STALL, WA_LCREGS,
-         WA_KILLED_MMR, WA_RETS]>;
-  def : Proc<Name, "-0.3",
-        [WA_MI_SHIFT, WA_CSYNC, WA_SPECLD, WA_HWLOOP, WA_MMR_STALL, WA_LCREGS,
-         WA_KILLED_MMR, WA_RETS]>;
-  def : Proc<Name, "-any",
-        [WA_MI_SHIFT, WA_CSYNC, WA_SPECLD, WA_HWLOOP, WA_MMR_STALL, WA_LCREGS,
-         WA_KILLED_MMR, WA_RETS]>;
-}
-multiclass CoreBraemar<string Name>
-       : Core<Name, "-0.3",
-         [WA_MI_SHIFT, WA_SPECLD, WA_LCREGS, WA_RETS, WA_IND_CALL]> {
-  def  : Proc<Name, "-0.2",
-         [WA_MI_SHIFT, WA_CSYNC, WA_SPECLD, WA_HWLOOP, WA_MMR_STALL, WA_LCREGS,
-          WA_KILLED_MMR, WA_RETS, WA_IND_CALL]>;
-  def  : Proc<Name, "-any",
-         [WA_MI_SHIFT, WA_CSYNC, WA_SPECLD, WA_HWLOOP, WA_MMR_STALL, WA_LCREGS,
-          WA_KILLED_MMR, WA_RETS, WA_IND_CALL]>;
-}
-multiclass CoreStirling<string Name>
-      : Core<Name, "-0.5", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]> {
-  def : Proc<Name, "-0.4",
-        [WA_MI_SHIFT, WA_SPECLD, WA_LCREGS, WA_RETS, WA_IND_CALL]>;
-  def : Proc<Name, "-0.3",
-        [WA_MI_SHIFT, WA_SPECLD, WA_MMR_STALL, WA_LCREGS, WA_KILLED_MMR,
-         WA_RETS, WA_IND_CALL]>;
-  def : Proc<Name, "-any",
-        [WA_MI_SHIFT, WA_SPECLD, WA_MMR_STALL, WA_LCREGS, WA_KILLED_MMR,
-         WA_RETS, WA_IND_CALL]>;
-}
-multiclass CoreMoab<string Name>
-      : Core<Name, "-0.3", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]> {
-  def : Proc<Name, "-0.2", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]>;
-  def : Proc<Name, "-0.1", [WA_MI_SHIFT, WA_SPECLD, WA_RETS, WA_IND_CALL]>;
-  def : Proc<Name, "-0.0",
-        [WA_MI_SHIFT, WA_SPECLD, WA_LCREGS, WA_RETS, WA_IND_CALL]>;
-  def : Proc<Name, "-any",
-        [WA_MI_SHIFT, WA_SPECLD, WA_LCREGS, WA_RETS, WA_IND_CALL]>;
-}
-multiclass CoreTeton<string Name>
-      : Core<Name, "-0.5",
-        [WA_MI_SHIFT, WA_SPECLD, WA_MMR_STALL, WA_LCREGS, WA_KILLED_MMR,
-         WA_RETS, WA_IND_CALL]> {
-  def : Proc<Name, "-0.3",
-        [WA_MI_SHIFT, WA_CSYNC, WA_SPECLD, WA_HWLOOP, WA_MMR_STALL, WA_LCREGS,
-         WA_KILLED_MMR, WA_RETS, WA_IND_CALL]>;
-  def : Proc<Name, "-any",
-        [WA_MI_SHIFT, WA_CSYNC, WA_SPECLD, WA_HWLOOP, WA_MMR_STALL, WA_LCREGS,
-         WA_KILLED_MMR, WA_RETS, WA_IND_CALL]>;
-}
-multiclass CoreKookaburra<string Name>
-      : Core<Name, "-0.2", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]> {
-  def : Proc<Name, "-0.1", [WA_MI_SHIFT, WA_SPECLD, WA_RETS, WA_IND_CALL]>;
-  def : Proc<Name, "-0.0", [WA_MI_SHIFT, WA_SPECLD, WA_RETS, WA_IND_CALL]>;
-  def : Proc<Name, "-any", [WA_MI_SHIFT, WA_SPECLD, WA_RETS, WA_IND_CALL]>;
-}
-multiclass CoreMockingbird<string Name>
-      : Core<Name, "-0.1", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]> {
-  def : Proc<Name, "-0.0", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]>;
-  def : Proc<Name, "-any", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]>;
-}
-multiclass CoreBrodie<string Name>
-      : Core<Name, "-0.1", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]> {
-  def : Proc<Name, "-0.0", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]>;
-  def : Proc<Name, "-any", [WA_MI_SHIFT, WA_SPECLD, WA_IND_CALL]>;
-}
-
-defm BF512 : CoreBrodie<"bf512">;
-defm BF514 : CoreBrodie<"bf514">;
-defm BF516 : CoreBrodie<"bf516">;
-defm BF518 : CoreBrodie<"bf518">;
-defm BF522 : CoreMockingbird<"bf522">;
-defm BF523 : CoreKookaburra<"bf523">;
-defm BF524 : CoreMockingbird<"bf524">;
-defm BF525 : CoreKookaburra<"bf525">;
-defm BF526 : CoreMockingbird<"bf526">;
-defm BF527 : CoreKookaburra<"bf527">;
-defm BF531 : CoreEdinburgh<"bf531">;
-defm BF532 : CoreEdinburgh<"bf532">;
-defm BF533 : CoreEdinburgh<"bf533">;
-defm BF534 : CoreBraemar<"bf534">;
-defm BF536 : CoreBraemar<"bf536">;
-defm BF537 : CoreBraemar<"bf537">;
-defm BF538 : CoreStirling<"bf538">;
-defm BF539 : CoreStirling<"bf539">;
-defm BF542 : CoreMoab<"bf542">;
-defm BF544 : CoreMoab<"bf544">;
-defm BF548 : CoreMoab<"bf548">;
-defm BF549 : CoreMoab<"bf549">;
-defm BF561 : CoreTeton<"bf561">;
-
-//===----------------------------------------------------------------------===//
-// Declare the target which we are implementing
-//===----------------------------------------------------------------------===//
-
-def Blackfin : Target {
-  // Pull in Instruction Info:
-  let InstructionSet = BlackfinInstrInfo;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinCallingConv.td b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinCallingConv.td
deleted file mode 100644
index 0abc84c..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinCallingConv.td
+++ /dev/null
@@ -1,30 +0,0 @@
-//===--- BlackfinCallingConv.td - Calling Conventions ------*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This describes the calling conventions for the Blackfin architectures.
-//
-//===----------------------------------------------------------------------===//
-
-// Blackfin C Calling convention.
-def CC_Blackfin : CallingConv<[
-  CCIfType<[i16], CCPromoteToType<i32>>,
-  CCIfSRet<CCAssignToReg<[P0]>>,
-  CCAssignToReg<[R0, R1, R2]>,
-  CCAssignToStack<4, 4>
-]>;
-
-//===----------------------------------------------------------------------===//
-// Return Value Calling Conventions
-//===----------------------------------------------------------------------===//
-
-// Blackfin C return-value convention.
-def RetCC_Blackfin : CallingConv<[
-  CCIfType<[i16], CCPromoteToType<i32>>,
-  CCAssignToReg<[R0, R1]>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelDAGToDAG.cpp
deleted file mode 100644
index 28aeaed..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelDAGToDAG.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-//===- BlackfinISelDAGToDAG.cpp - A dag to dag inst selector for Blackfin -===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the Blackfin target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Blackfin.h"
-#include "BlackfinISelLowering.h"
-#include "BlackfinTargetMachine.h"
-#include "BlackfinRegisterInfo.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// Instruction Selector Implementation
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-/// BlackfinDAGToDAGISel - Blackfin specific code to select blackfin machine
-/// instructions for SelectionDAG operations.
-namespace {
-  class BlackfinDAGToDAGISel : public SelectionDAGISel {
-    /// Subtarget - Keep a pointer to the Blackfin Subtarget around so that we
-    /// can make the right decision when generating code for different targets.
-    //const BlackfinSubtarget &Subtarget;
-  public:
-    BlackfinDAGToDAGISel(BlackfinTargetMachine &TM, CodeGenOpt::Level OptLevel)
-      : SelectionDAGISel(TM, OptLevel) {}
-
-    virtual void InstructionSelect();
-
-    virtual const char *getPassName() const {
-      return "Blackfin DAG->DAG Pattern Instruction Selection";
-    }
-
-    // Include the pieces autogenerated from the target description.
-#include "BlackfinGenDAGISel.inc"
-
-  private:
-    SDNode *Select(SDValue Op);
-    bool SelectADDRspii(SDValue Op, SDValue Addr,
-                        SDValue &Base, SDValue &Offset);
-
-    // Walk the DAG after instruction selection, fixing register class issues.
-    void FixRegisterClasses(SelectionDAG &DAG);
-
-    const BlackfinInstrInfo &getInstrInfo() {
-      return *static_cast<const BlackfinTargetMachine&>(TM).getInstrInfo();
-    }
-    const BlackfinRegisterInfo *getRegisterInfo() {
-      return static_cast<const BlackfinTargetMachine&>(TM).getRegisterInfo();
-    }
-  };
-}  // end anonymous namespace
-
-FunctionPass *llvm::createBlackfinISelDag(BlackfinTargetMachine &TM,
-                                          CodeGenOpt::Level OptLevel) {
-  return new BlackfinDAGToDAGISel(TM, OptLevel);
-}
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void BlackfinDAGToDAGISel::InstructionSelect() {
-  // Select target instructions for the DAG.
-  SelectRoot(*CurDAG);
-  DEBUG(errs() << "Selected selection DAG before regclass fixup:\n");
-  DEBUG(CurDAG->dump());
-  FixRegisterClasses(*CurDAG);
-}
-
-SDNode *BlackfinDAGToDAGISel::Select(SDValue Op) {
-  SDNode *N = Op.getNode();
-  DebugLoc dl = N->getDebugLoc();
-  if (N->isMachineOpcode())
-    return NULL;   // Already selected.
-
-  switch (N->getOpcode()) {
-  default: break;
-  case ISD::FrameIndex: {
-    // Selects to ADDpp FI, 0 which in turn will become ADDimm7 SP, imm or ADDpp
-    // SP, Px
-    int FI = cast<FrameIndexSDNode>(N)->getIndex();
-    SDValue TFI = CurDAG->getTargetFrameIndex(FI, MVT::i32);
-    return CurDAG->SelectNodeTo(N, BF::ADDpp, MVT::i32, TFI,
-                                CurDAG->getTargetConstant(0, MVT::i32));
-  }
-  }
-
-  return SelectCode(Op);
-}
-
-bool BlackfinDAGToDAGISel::SelectADDRspii(SDValue Op,
-                                          SDValue Addr,
-                                          SDValue &Base,
-                                          SDValue &Offset) {
-  FrameIndexSDNode *FIN = 0;
-  if ((FIN = dyn_cast<FrameIndexSDNode>(Addr))) {
-    Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-    Offset = CurDAG->getTargetConstant(0, MVT::i32);
-    return true;
-  }
-  if (Addr.getOpcode() == ISD::ADD) {
-    ConstantSDNode *CN = 0;
-    if ((FIN = dyn_cast<FrameIndexSDNode>(Addr.getOperand(0))) &&
-        (CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) &&
-        (CN->getSExtValue() % 4 == 0 && CN->getSExtValue() >= 0)) {
-      // Constant positive word offset from frame index
-      Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-      Offset = CurDAG->getTargetConstant(CN->getSExtValue(), MVT::i32);
-      return true;
-    }
-  }
-  return false;
-}
-
-static inline bool isCC(const TargetRegisterClass *RC) {
-  return RC == &BF::AnyCCRegClass || BF::AnyCCRegClass.hasSubClass(RC);
-}
-
-static inline bool isDCC(const TargetRegisterClass *RC) {
-  return RC == &BF::DRegClass || BF::DRegClass.hasSubClass(RC) || isCC(RC);
-}
-
-static void UpdateNodeOperand(SelectionDAG &DAG,
-                              SDNode *N,
-                              unsigned Num,
-                              SDValue Val) {
-  SmallVector<SDValue, 8> ops(N->op_begin(), N->op_end());
-  ops[Num] = Val;
-  SDValue New = DAG.UpdateNodeOperands(SDValue(N, 0), ops.data(), ops.size());
-  DAG.ReplaceAllUsesWith(N, New.getNode());
-}
-
-// After instruction selection, insert COPY_TO_REGCLASS nodes to help in
-// choosing the proper register classes.
-void BlackfinDAGToDAGISel::FixRegisterClasses(SelectionDAG &DAG) {
-  const BlackfinInstrInfo &TII = getInstrInfo();
-  const BlackfinRegisterInfo *TRI = getRegisterInfo();
-  DAG.AssignTopologicalOrder();
-  HandleSDNode Dummy(DAG.getRoot());
-
-  for (SelectionDAG::allnodes_iterator NI = DAG.allnodes_begin();
-       NI != DAG.allnodes_end(); ++NI) {
-    if (NI->use_empty() || !NI->isMachineOpcode())
-      continue;
-    const TargetInstrDesc &DefTID = TII.get(NI->getMachineOpcode());
-    for (SDNode::use_iterator UI = NI->use_begin(); !UI.atEnd(); ++UI) {
-      if (!UI->isMachineOpcode())
-        continue;
-
-      if (UI.getUse().getResNo() >= DefTID.getNumDefs())
-        continue;
-      const TargetRegisterClass *DefRC =
-        DefTID.OpInfo[UI.getUse().getResNo()].getRegClass(TRI);
-
-      const TargetInstrDesc &UseTID = TII.get(UI->getMachineOpcode());
-      if (UseTID.getNumDefs()+UI.getOperandNo() >= UseTID.getNumOperands())
-        continue;
-      const TargetRegisterClass *UseRC =
-        UseTID.OpInfo[UseTID.getNumDefs()+UI.getOperandNo()].getRegClass(TRI);
-      if (!DefRC || !UseRC)
-        continue;
-      // We cannot copy CC <-> !(CC/D)
-      if ((isCC(DefRC) && !isDCC(UseRC)) || (isCC(UseRC) && !isDCC(DefRC))) {
-        SDNode *Copy =
-          DAG.getTargetNode(TargetInstrInfo::COPY_TO_REGCLASS,
-                            NI->getDebugLoc(),
-                            MVT::i32,
-                            UI.getUse().get(),
-                            DAG.getTargetConstant(BF::DRegClassID, MVT::i32));
-        UpdateNodeOperand(DAG, *UI, UI.getOperandNo(), SDValue(Copy, 0));
-      }
-    }
-  }
-  DAG.setRoot(Dummy.getValue());
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.cpp
deleted file mode 100644
index 1ca1fae..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.cpp
+++ /dev/null
@@ -1,614 +0,0 @@
-//===- BlackfinISelLowering.cpp - Blackfin DAG Lowering Implementation ----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the interfaces that Blackfin uses to lower LLVM code
-// into a selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BlackfinISelLowering.h"
-#include "BlackfinTargetMachine.h"
-#include "llvm/Function.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/ADT/VectorExtras.h"
-#include "llvm/Support/Debug.h"
-
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-#include "BlackfinGenCallingConv.inc"
-
-//===----------------------------------------------------------------------===//
-// TargetLowering Implementation
-//===----------------------------------------------------------------------===//
-
-BlackfinTargetLowering::BlackfinTargetLowering(TargetMachine &TM)
-  : TargetLowering(TM, new TargetLoweringObjectFileELF()) {
-  setShiftAmountType(MVT::i16);
-  setBooleanContents(ZeroOrOneBooleanContent);
-  setStackPointerRegisterToSaveRestore(BF::SP);
-  setIntDivIsCheap(false);
-
-  // Set up the legal register classes.
-  addRegisterClass(MVT::i32, BF::DRegisterClass);
-  addRegisterClass(MVT::i16, BF::D16RegisterClass);
-
-  computeRegisterProperties();
-
-  // Blackfin doesn't have i1 loads or stores
-  setLoadExtAction(ISD::EXTLOAD,  MVT::i1, Promote);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);
-
-  setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
-  setOperationAction(ISD::JumpTable,     MVT::i32, Custom);
-
-  setOperationAction(ISD::SELECT_CC, MVT::Other, Expand);
-  setOperationAction(ISD::BR_JT,     MVT::Other, Expand);
-  setOperationAction(ISD::BR_CC,     MVT::Other, Expand);
-
-  // i16 registers don't do much
-  setOperationAction(ISD::AND,   MVT::i16, Promote);
-  setOperationAction(ISD::OR,    MVT::i16, Promote);
-  setOperationAction(ISD::XOR,   MVT::i16, Promote);
-  setOperationAction(ISD::CTPOP, MVT::i16, Promote);
-  // The expansion of CTLZ/CTTZ uses AND/OR, so we might as well promote
-  // immediately.
-  setOperationAction(ISD::CTLZ,  MVT::i16, Promote);
-  setOperationAction(ISD::CTTZ,  MVT::i16, Promote);
-  setOperationAction(ISD::SETCC, MVT::i16, Promote);
-
-  // Blackfin has no division
-  setOperationAction(ISD::SDIV,    MVT::i16, Expand);
-  setOperationAction(ISD::SDIV,    MVT::i32, Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i16, Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
-  setOperationAction(ISD::SREM,    MVT::i16, Expand);
-  setOperationAction(ISD::SREM,    MVT::i32, Expand);
-  setOperationAction(ISD::UDIV,    MVT::i16, Expand);
-  setOperationAction(ISD::UDIV,    MVT::i32, Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i16, Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
-  setOperationAction(ISD::UREM,    MVT::i16, Expand);
-  setOperationAction(ISD::UREM,    MVT::i32, Expand);
-
-  setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
-  setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
-  setOperationAction(ISD::MULHU,     MVT::i32, Expand);
-  setOperationAction(ISD::MULHS,     MVT::i32, Expand);
-
-  // No carry-in operations.
-  setOperationAction(ISD::ADDE, MVT::i32, Custom);
-  setOperationAction(ISD::SUBE, MVT::i32, Custom);
-
-  // Blackfin has no intrinsics for these particular operations.
-  setOperationAction(ISD::MEMBARRIER, MVT::Other, Expand);
-  setOperationAction(ISD::BSWAP, MVT::i32, Expand);
-
-  setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
-  setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
-  setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
-
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
-
-  // i32 has native CTPOP, but not CTLZ/CTTZ
-  setOperationAction(ISD::CTLZ, MVT::i32, Expand);
-  setOperationAction(ISD::CTTZ, MVT::i32, Expand);
-
-  // READCYCLECOUNTER needs special type legalization.
-  setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
-
-  // We don't have line number support yet.
-  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
-  setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
-  setOperationAction(ISD::DBG_LABEL, MVT::Other, Expand);
-  setOperationAction(ISD::EH_LABEL, MVT::Other, Expand);
-
-  // Use the default implementation.
-  setOperationAction(ISD::VACOPY, MVT::Other, Expand);
-  setOperationAction(ISD::VAEND, MVT::Other, Expand);
-  setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
-  setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
-}
-
-const char *BlackfinTargetLowering::getTargetNodeName(unsigned Opcode) const {
-  switch (Opcode) {
-  default: return 0;
-  case BFISD::CALL:     return "BFISD::CALL";
-  case BFISD::RET_FLAG: return "BFISD::RET_FLAG";
-  case BFISD::Wrapper:  return "BFISD::Wrapper";
-  }
-}
-
-MVT::SimpleValueType BlackfinTargetLowering::getSetCCResultType(EVT VT) const {
-  // SETCC always sets the CC register. Technically that is an i1 register, but
-  // that type is not legal, so we treat it as an i32 register.
-  return MVT::i32;
-}
-
-SDValue BlackfinTargetLowering::LowerGlobalAddress(SDValue Op,
-                                                   SelectionDAG &DAG) {
-  DebugLoc DL = Op.getDebugLoc();
-  GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
-
-  Op = DAG.getTargetGlobalAddress(GV, MVT::i32);
-  return DAG.getNode(BFISD::Wrapper, DL, MVT::i32, Op);
-}
-
-SDValue BlackfinTargetLowering::LowerJumpTable(SDValue Op, SelectionDAG &DAG) {
-  DebugLoc DL = Op.getDebugLoc();
-  int JTI = cast<JumpTableSDNode>(Op)->getIndex();
-
-  Op = DAG.getTargetJumpTable(JTI, MVT::i32);
-  return DAG.getNode(BFISD::Wrapper, DL, MVT::i32, Op);
-}
-
-SDValue
-BlackfinTargetLowering::LowerFormalArguments(SDValue Chain,
-                                             unsigned CallConv, bool isVarArg,
-                                            const SmallVectorImpl<ISD::InputArg>
-                                               &Ins,
-                                             DebugLoc dl, SelectionDAG &DAG,
-                                             SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-  CCInfo.AllocateStack(12, 4);	// ABI requires 12 bytes stack space
-  CCInfo.AnalyzeFormalArguments(Ins, CC_Blackfin);
-
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-
-    if (VA.isRegLoc()) {
-      EVT RegVT = VA.getLocVT();
-      TargetRegisterClass *RC = VA.getLocReg() == BF::P0 ?
-        BF::PRegisterClass : BF::DRegisterClass;
-      assert(RC->contains(VA.getLocReg()) && "Unexpected regclass in CCState");
-      assert(RC->hasType(RegVT) && "Unexpected regclass in CCState");
-
-      unsigned Reg = MF.getRegInfo().createVirtualRegister(RC);
-      MF.getRegInfo().addLiveIn(VA.getLocReg(), Reg);
-      SDValue ArgValue = DAG.getCopyFromReg(Chain, dl, Reg, RegVT);
-
-      // If this is an 8 or 16-bit value, it is really passed promoted to 32
-      // bits.  Insert an assert[sz]ext to capture this, then truncate to the
-      // right size.
-      if (VA.getLocInfo() == CCValAssign::SExt)
-        ArgValue = DAG.getNode(ISD::AssertSext, dl, RegVT, ArgValue,
-                               DAG.getValueType(VA.getValVT()));
-      else if (VA.getLocInfo() == CCValAssign::ZExt)
-        ArgValue = DAG.getNode(ISD::AssertZext, dl, RegVT, ArgValue,
-                               DAG.getValueType(VA.getValVT()));
-
-      if (VA.getLocInfo() != CCValAssign::Full)
-        ArgValue = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), ArgValue);
-
-      InVals.push_back(ArgValue);
-    } else {
-      assert(VA.isMemLoc() && "CCValAssign must be RegLoc or MemLoc");
-      unsigned ObjSize = VA.getLocVT().getStoreSizeInBits()/8;
-      int FI = MFI->CreateFixedObject(ObjSize, VA.getLocMemOffset());
-      SDValue FIN = DAG.getFrameIndex(FI, MVT::i32);
-      InVals.push_back(DAG.getLoad(VA.getValVT(), dl, Chain, FIN, NULL, 0));
-    }
-  }
-
-  return Chain;
-}
-
-SDValue
-BlackfinTargetLowering::LowerReturn(SDValue Chain,
-                                    unsigned CallConv, bool isVarArg,
-                                    const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                    DebugLoc dl, SelectionDAG &DAG) {
-
-  // CCValAssign - represent the assignment of the return value to locations.
-  SmallVector<CCValAssign, 16> RVLocs;
-
-  // CCState - Info about the registers and stack slot.
-  CCState CCInfo(CallConv, isVarArg, DAG.getTarget(),
-                 RVLocs, *DAG.getContext());
-
-  // Analize return values.
-  CCInfo.AnalyzeReturn(Outs, RetCC_Blackfin);
-
-  // If this is the first return lowered for this function, add the regs to the
-  // liveout set for the function.
-  if (DAG.getMachineFunction().getRegInfo().liveout_empty()) {
-    for (unsigned i = 0; i != RVLocs.size(); ++i)
-      DAG.getMachineFunction().getRegInfo().addLiveOut(RVLocs[i].getLocReg());
-  }
-
-  SDValue Flag;
-
-  // Copy the result values into the output registers.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-    assert(VA.isRegLoc() && "Can only return in registers!");
-    SDValue Opi = Outs[i].Val;
-
-    // Expand to i32 if necessary
-    switch (VA.getLocInfo()) {
-    default: llvm_unreachable("Unknown loc info!");
-    case CCValAssign::Full: break;
-    case CCValAssign::SExt:
-      Opi = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Opi);
-      break;
-    case CCValAssign::ZExt:
-      Opi = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Opi);
-      break;
-    case CCValAssign::AExt:
-      Opi = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Opi);
-      break;
-    }
-    Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), Opi, SDValue());
-    // Guarantee that all emitted copies are stuck together with flags.
-    Flag = Chain.getValue(1);
-  }
-
-  if (Flag.getNode()) {
-    return DAG.getNode(BFISD::RET_FLAG, dl, MVT::Other, Chain, Flag);
-  } else {
-    return DAG.getNode(BFISD::RET_FLAG, dl, MVT::Other, Chain);
-  }
-}
-
-SDValue
-BlackfinTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                                  unsigned CallConv, bool isVarArg,
-                                  bool isTailCall,
-                                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                  const SmallVectorImpl<ISD::InputArg> &Ins,
-                                  DebugLoc dl, SelectionDAG &DAG,
-                                  SmallVectorImpl<SDValue> &InVals) {
-
-  // Analyze operands of the call, assigning locations to each operand.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, DAG.getTarget(), ArgLocs,
-                 *DAG.getContext());
-  CCInfo.AllocateStack(12, 4);	// ABI requires 12 bytes stack space
-  CCInfo.AnalyzeCallOperands(Outs, CC_Blackfin);
-
-  // Get the size of the outgoing arguments stack space requirement.
-  unsigned ArgsSize = CCInfo.getNextStackOffset();
-
-  Chain = DAG.getCALLSEQ_START(Chain, DAG.getIntPtrConstant(ArgsSize, true));
-  SmallVector<std::pair<unsigned, SDValue>, 8> RegsToPass;
-  SmallVector<SDValue, 8> MemOpChains;
-
-  // Walk the register/memloc assignments, inserting copies/loads.
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-    SDValue Arg = Outs[i].Val;
-
-    // Promote the value if needed.
-    switch (VA.getLocInfo()) {
-    default: llvm_unreachable("Unknown loc info!");
-    case CCValAssign::Full: break;
-    case CCValAssign::SExt:
-      Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg);
-      break;
-    case CCValAssign::ZExt:
-      Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg);
-      break;
-    case CCValAssign::AExt:
-      Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg);
-      break;
-    }
-
-    // Arguments that can be passed on register must be kept at
-    // RegsToPass vector
-    if (VA.isRegLoc()) {
-      RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-    } else {
-      assert(VA.isMemLoc() && "CCValAssign must be RegLoc or MemLoc");
-      int Offset = VA.getLocMemOffset();
-      assert(Offset%4 == 0 && "Unaligned LocMemOffset");
-      assert(VA.getLocVT()==MVT::i32 && "Illegal CCValAssign type");
-      SDValue SPN = DAG.getCopyFromReg(Chain, dl, BF::SP, MVT::i32);
-      SDValue OffsetN = DAG.getIntPtrConstant(Offset);
-      OffsetN = DAG.getNode(ISD::ADD, dl, MVT::i32, SPN, OffsetN);
-      MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, OffsetN,
-                                         PseudoSourceValue::getStack(),
-                                         Offset));
-    }
-  }
-
-  // Transform all store nodes into one single node because
-  // all store nodes are independent of each other.
-  if (!MemOpChains.empty())
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                        &MemOpChains[0], MemOpChains.size());
-
-  // Build a sequence of copy-to-reg nodes chained together with token
-  // chain and flag operands which copy the outgoing args into registers.
-  // The InFlag in necessary since all emited instructions must be
-  // stuck together.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first,
-                             RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  // If the callee is a GlobalAddress node (quite common, every direct call is)
-  // turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
-  // Likewise ExternalSymbol -> TargetExternalSymbol.
-  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
-    Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i32);
-  else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
-    Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i32);
-
-  std::vector<EVT> NodeTys;
-  NodeTys.push_back(MVT::Other);   // Returns a chain
-  NodeTys.push_back(MVT::Flag);    // Returns a flag for retval copy to use.
-  SDValue Ops[] = { Chain, Callee, InFlag };
-  Chain = DAG.getNode(BFISD::CALL, dl, NodeTys, Ops,
-                      InFlag.getNode() ? 3 : 2);
-  InFlag = Chain.getValue(1);
-
-  Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(ArgsSize, true),
-                             DAG.getIntPtrConstant(0, true), InFlag);
-  InFlag = Chain.getValue(1);
-
-  // Assign locations to each value returned by this call.
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState RVInfo(CallConv, isVarArg, DAG.getTarget(), RVLocs,
-                 *DAG.getContext());
-
-  RVInfo.AnalyzeCallResult(Ins, RetCC_Blackfin);
-
-  // Copy all of the result registers out of their specified physreg.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &RV = RVLocs[i];
-    unsigned Reg = RV.getLocReg();
-
-    Chain = DAG.getCopyFromReg(Chain, dl, Reg,
-                               RVLocs[i].getLocVT(), InFlag);
-    SDValue Val = Chain.getValue(0);
-    InFlag = Chain.getValue(2);
-    Chain = Chain.getValue(1);
-
-    // Callee is responsible for extending any i16 return values.
-    switch (RV.getLocInfo()) {
-    case CCValAssign::SExt:
-      Val = DAG.getNode(ISD::AssertSext, dl, RV.getLocVT(), Val,
-                        DAG.getValueType(RV.getValVT()));
-      break;
-    case CCValAssign::ZExt:
-      Val = DAG.getNode(ISD::AssertZext, dl, RV.getLocVT(), Val,
-                        DAG.getValueType(RV.getValVT()));
-      break;
-    default:
-      break;
-    }
-
-    // Truncate to valtype
-    if (RV.getLocInfo() != CCValAssign::Full)
-      Val = DAG.getNode(ISD::TRUNCATE, dl, RV.getValVT(), Val);
-    InVals.push_back(Val);
-  }
-
-  return Chain;
-}
-
-// Expansion of ADDE / SUBE. This is a bit involved since blackfin doesn't have
-// add-with-carry instructions.
-SDValue BlackfinTargetLowering::LowerADDE(SDValue Op, SelectionDAG &DAG) {
-  // Operands: lhs, rhs, carry-in (AC0 flag)
-  // Results: sum, carry-out (AC0 flag)
-  DebugLoc dl = Op.getDebugLoc();
-
-  unsigned Opcode = Op.getOpcode()==ISD::ADDE ? BF::ADD : BF::SUB;
-
-  // zext incoming carry flag in AC0 to 32 bits
-  SDNode* CarryIn = DAG.getTargetNode(BF::MOVE_cc_ac0, dl, MVT::i32,
-                                      /* flag= */ Op.getOperand(2));
-  CarryIn = DAG.getTargetNode(BF::MOVECC_zext, dl, MVT::i32,
-                              SDValue(CarryIn, 0));
-
-  // Add operands, produce sum and carry flag
-  SDNode *Sum = DAG.getTargetNode(Opcode, dl, MVT::i32, MVT::Flag,
-                                  Op.getOperand(0), Op.getOperand(1));
-
-  // Store intermediate carry from Sum
-  SDNode* Carry1 = DAG.getTargetNode(BF::MOVE_cc_ac0, dl, MVT::i32,
-                                     /* flag= */ SDValue(Sum, 1));
-
-  // Add incoming carry, again producing an output flag
-  Sum = DAG.getTargetNode(Opcode, dl, MVT::i32, MVT::Flag,
-                          SDValue(Sum, 0), SDValue(CarryIn, 0));
-
-  // Update AC0 with the intermediate carry, producing a flag.
-  SDNode *CarryOut = DAG.getTargetNode(BF::OR_ac0_cc, dl, MVT::Flag,
-                                       SDValue(Carry1, 0));
-
-  // Compose (i32, flag) pair
-  SDValue ops[2] = { SDValue(Sum, 0), SDValue(CarryOut, 0) };
-  return DAG.getMergeValues(ops, 2, dl);
-}
-
-SDValue BlackfinTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) {
-  switch (Op.getOpcode()) {
-  default:
-    Op.getNode()->dump();
-    llvm_unreachable("Should not custom lower this!");
-  case ISD::GlobalAddress:      return LowerGlobalAddress(Op, DAG);
-  case ISD::GlobalTLSAddress:
-    llvm_unreachable("TLS not implemented for Blackfin.");
-  case ISD::JumpTable:          return LowerJumpTable(Op, DAG);
-    // Frame & Return address.  Currently unimplemented
-  case ISD::FRAMEADDR:          return SDValue();
-  case ISD::RETURNADDR:         return SDValue();
-  case ISD::ADDE:
-  case ISD::SUBE:               return LowerADDE(Op, DAG);
-  }
-}
-
-void
-BlackfinTargetLowering::ReplaceNodeResults(SDNode *N,
-                                           SmallVectorImpl<SDValue> &Results,
-                                           SelectionDAG &DAG) {
-  DebugLoc dl = N->getDebugLoc();
-  switch (N->getOpcode()) {
-  default:
-    llvm_unreachable("Do not know how to custom type legalize this operation!");
-    return;
-  case ISD::READCYCLECOUNTER: {
-    // The low part of the cycle counter is in CYCLES, the high part in
-    // CYCLES2. Reading CYCLES will latch the value of CYCLES2, so we must read
-    // CYCLES2 last.
-    SDValue TheChain = N->getOperand(0);
-    SDValue lo = DAG.getCopyFromReg(TheChain, dl, BF::CYCLES, MVT::i32);
-    SDValue hi = DAG.getCopyFromReg(lo.getValue(1), dl, BF::CYCLES2, MVT::i32);
-    // Use a buildpair to merge the two 32-bit values into a 64-bit one.
-    Results.push_back(DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, lo, hi));
-    // Outgoing chain. If we were to use the chain from lo instead, it would be
-    // possible to entirely eliminate the CYCLES2 read in (i32 (trunc
-    // readcyclecounter)). Unfortunately this could possibly delay the CYCLES2
-    // read beyond the next CYCLES read, leading to invalid results.
-    Results.push_back(hi.getValue(1));
-    return;
-  }
-  }
-}
-
-/// getFunctionAlignment - Return the Log2 alignment of this function.
-unsigned BlackfinTargetLowering::getFunctionAlignment(const Function *F) const {
-  return 2;
-}
-
-//===----------------------------------------------------------------------===//
-//                         Blackfin Inline Assembly Support
-//===----------------------------------------------------------------------===//
-
-/// getConstraintType - Given a constraint letter, return the type of
-/// constraint it is for this target.
-BlackfinTargetLowering::ConstraintType
-BlackfinTargetLowering::getConstraintType(const std::string &Constraint) const {
-  if (Constraint.size() != 1)
-    return TargetLowering::getConstraintType(Constraint);
-
-  switch (Constraint[0]) {
-    // Standard constraints
-  case 'r':
-    return C_RegisterClass;
-
-    // Blackfin-specific constraints
-  case 'a':
-  case 'd':
-  case 'z':
-  case 'D':
-  case 'W':
-  case 'e':
-  case 'b':
-  case 'v':
-  case 'f':
-  case 'c':
-  case 't':
-  case 'u':
-  case 'k':
-  case 'x':
-  case 'y':
-  case 'w':
-    return C_RegisterClass;
-  case 'A':
-  case 'B':
-  case 'C':
-  case 'Z':
-  case 'Y':
-    return C_Register;
-  }
-
-  // Not implemented: q0-q7, qA. Use {R2} etc instead
-
-  return TargetLowering::getConstraintType(Constraint);
-}
-
-/// getRegForInlineAsmConstraint - Return register no and class for a C_Register
-/// constraint.
-std::pair<unsigned, const TargetRegisterClass*> BlackfinTargetLowering::
-getRegForInlineAsmConstraint(const std::string &Constraint, EVT VT) const {
-  typedef std::pair<unsigned, const TargetRegisterClass*> Pair;
-  using namespace BF;
-
-  if (Constraint.size() != 1)
-    return TargetLowering::getRegForInlineAsmConstraint(Constraint, VT);
-
-  switch (Constraint[0]) {
-    // Standard constraints
-  case 'r':
-    return Pair(0U, VT == MVT::i16 ? D16RegisterClass : DPRegisterClass);
-
-    // Blackfin-specific constraints
-  case 'a': return Pair(0U, PRegisterClass);
-  case 'd': return Pair(0U, DRegisterClass);
-  case 'e': return Pair(0U, AccuRegisterClass);
-  case 'A': return Pair(A0, AccuRegisterClass);
-  case 'B': return Pair(A1, AccuRegisterClass);
-  case 'b': return Pair(0U, IRegisterClass);
-  case 'v': return Pair(0U, BRegisterClass);
-  case 'f': return Pair(0U, MRegisterClass);
-  case 'C': return Pair(CC, JustCCRegisterClass);
-  case 'x': return Pair(0U, GRRegisterClass);
-  case 'w': return Pair(0U, ALLRegisterClass);
-  case 'Z': return Pair(P3, PRegisterClass);
-  case 'Y': return Pair(P1, PRegisterClass);
-  }
-
-  // Not implemented: q0-q7, qA. Use {R2} etc instead.
-  // Constraints z, D, W, c, t, u, k, and y use non-existing classes, defer to
-  // getRegClassForInlineAsmConstraint()
-
-  return TargetLowering::getRegForInlineAsmConstraint(Constraint, VT);
-}
-
-std::vector<unsigned> BlackfinTargetLowering::
-getRegClassForInlineAsmConstraint(const std::string &Constraint, EVT VT) const {
-  using namespace BF;
-
-  if (Constraint.size() != 1)
-    return std::vector<unsigned>();
-
-  switch (Constraint[0]) {
-  case 'z': return make_vector<unsigned>(P0, P1, P2, 0);
-  case 'D': return make_vector<unsigned>(R0, R2, R4, R6, 0);
-  case 'W': return make_vector<unsigned>(R1, R3, R5, R7, 0);
-  case 'c': return make_vector<unsigned>(I0, I1, I2, I3,
-                                         B0, B1, B2, B3,
-                                         L0, L1, L2, L3, 0);
-  case 't': return make_vector<unsigned>(LT0, LT1, 0);
-  case 'u': return make_vector<unsigned>(LB0, LB1, 0);
-  case 'k': return make_vector<unsigned>(LC0, LC1, 0);
-  case 'y': return make_vector<unsigned>(RETS, RETN, RETI, RETX, RETE,
-                                         ASTAT, SEQSTAT, USP, 0);
-  }
-
-  return std::vector<unsigned>();
-}
-
-bool BlackfinTargetLowering::
-isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const {
-  // The Blackfin target isn't yet aware of offsets.
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.h b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.h
deleted file mode 100644
index be0c0ec..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//===- BlackfinISelLowering.h - Blackfin DAG Lowering Interface -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that Blackfin uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BLACKFIN_ISELLOWERING_H
-#define BLACKFIN_ISELLOWERING_H
-
-#include "llvm/Target/TargetLowering.h"
-#include "Blackfin.h"
-
-namespace llvm {
-
-  namespace BFISD {
-    enum {
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-      CALL,                     // A call instruction.
-      RET_FLAG,                 // Return with a flag operand.
-      Wrapper                   // Address wrapper
-    };
-  }
-
-  class BlackfinTargetLowering : public TargetLowering {
-    int VarArgsFrameOffset;   // Frame offset to start of varargs area.
-  public:
-    BlackfinTargetLowering(TargetMachine &TM);
-    virtual MVT::SimpleValueType getSetCCResultType(EVT VT) const;
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-    virtual void ReplaceNodeResults(SDNode *N,
-                                    SmallVectorImpl<SDValue> &Results,
-                                    SelectionDAG &DAG);
-
-    int getVarArgsFrameOffset() const { return VarArgsFrameOffset; }
-
-    ConstraintType getConstraintType(const std::string &Constraint) const;
-    std::pair<unsigned, const TargetRegisterClass*>
-    getRegForInlineAsmConstraint(const std::string &Constraint, EVT VT) const;
-    std::vector<unsigned>
-    getRegClassForInlineAsmConstraint(const std::string &Constraint,
-                                      EVT VT) const;
-    virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
-    const char *getTargetNodeName(unsigned Opcode) const;
-    unsigned getFunctionAlignment(const Function *F) const;
-
-  private:
-    SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerADDE(SDValue Op, SelectionDAG &DAG);
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv, bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg, bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-  };
-} // end namespace llvm
-
-#endif    // BLACKFIN_ISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrFormats.td b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrFormats.td
deleted file mode 100644
index d8e6e25..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrFormats.td
+++ /dev/null
@@ -1,34 +0,0 @@
-//===--- BlackfinInstrFormats.td ---------------------------*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Instruction format superclass
-//===----------------------------------------------------------------------===//
-
-class InstBfin<dag outs, dag ins, string asmstr, list<dag> pattern>
-  : Instruction {
-  field bits<32> Inst;
-
-  let Namespace = "BF";
-
-  dag OutOperandList = outs;
-  dag InOperandList = ins;
-  let AsmString   = asmstr;
-  let Pattern = pattern;
-}
-
-// Single-word (16-bit) instructions
-class F1<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstBfin<outs, ins, asmstr, pattern> {
-}
-
-// Double-word (32-bit) instructions
-class F2<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstBfin<outs, ins, asmstr, pattern> {
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp
deleted file mode 100644
index 3fd5d4d..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp
+++ /dev/null
@@ -1,280 +0,0 @@
-//===- BlackfinInstrInfo.cpp - Blackfin Instruction Information -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Blackfin implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BlackfinInstrInfo.h"
-#include "BlackfinSubtarget.h"
-#include "Blackfin.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "BlackfinGenInstrInfo.inc"
-
-using namespace llvm;
-
-BlackfinInstrInfo::BlackfinInstrInfo(BlackfinSubtarget &ST)
-  : TargetInstrInfoImpl(BlackfinInsts, array_lengthof(BlackfinInsts)),
-    RI(ST, *this),
-    Subtarget(ST) {}
-
-/// Return true if the instruction is a register to register move and
-/// leave the source and dest operands in the passed parameters.
-bool BlackfinInstrInfo::isMoveInstr(const MachineInstr &MI,
-                                    unsigned &SrcReg,
-                                    unsigned &DstReg,
-                                    unsigned &SrcSR,
-                                    unsigned &DstSR) const {
-  SrcSR = DstSR = 0; // No sub-registers.
-  switch (MI.getOpcode()) {
-  case BF::MOVE:
-  case BF::MOVE_ncccc:
-  case BF::MOVE_ccncc:
-  case BF::MOVECC_zext:
-  case BF::MOVECC_nz:
-    DstReg = MI.getOperand(0).getReg();
-    SrcReg = MI.getOperand(1).getReg();
-    return true;
-  case BF::SLL16i:
-    if (MI.getOperand(2).getImm()!=0)
-      return false;
-    DstReg = MI.getOperand(0).getReg();
-    SrcReg = MI.getOperand(1).getReg();
-    return true;
-  default:
-    return false;
-  }
-}
-
-/// isLoadFromStackSlot - If the specified machine instruction is a direct
-/// load from a stack slot, return the virtual or physical register number of
-/// the destination along with the FrameIndex of the loaded stack slot.  If
-/// not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than loading from the stack slot.
-unsigned BlackfinInstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
-                                                int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  default: break;
-  case BF::LOAD32fi:
-  case BF::LOAD16fi:
-    if (MI->getOperand(1).isFI() &&
-        MI->getOperand(2).isImm() &&
-        MI->getOperand(2).getImm() == 0) {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-    break;
-  }
-  return 0;
-}
-
-/// isStoreToStackSlot - If the specified machine instruction is a direct
-/// store to a stack slot, return the virtual or physical register number of
-/// the source reg along with the FrameIndex of the loaded stack slot.  If
-/// not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than storing to the stack slot.
-unsigned BlackfinInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
-                                               int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  default: break;
-  case BF::STORE32fi:
-  case BF::STORE16fi:
-    if (MI->getOperand(1).isFI() &&
-        MI->getOperand(2).isImm() &&
-        MI->getOperand(2).getImm() == 0) {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-    break;
-  }
-  return 0;
-}
-
-unsigned BlackfinInstrInfo::
-InsertBranch(MachineBasicBlock &MBB,
-             MachineBasicBlock *TBB,
-             MachineBasicBlock *FBB,
-             const SmallVectorImpl<MachineOperand> &Cond) const {
-  // FIXME this should probably have a DebugLoc operand
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-
-  // Shouldn't be a fall through.
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-  assert((Cond.size() == 1 || Cond.size() == 0) &&
-         "Branch conditions have one component!");
-
-  if (Cond.empty()) {
-    // Unconditional branch?
-    assert(!FBB && "Unconditional branch with multiple successors!");
-    BuildMI(&MBB, dl, get(BF::JUMPa)).addMBB(TBB);
-    return 1;
-  }
-
-  // Conditional branch.
-  llvm_unreachable("Implement conditional branches!");
-}
-
-static bool inClass(const TargetRegisterClass &Test,
-                    unsigned Reg,
-                    const TargetRegisterClass *RC) {
-  if (TargetRegisterInfo::isPhysicalRegister(Reg))
-    return Test.contains(Reg);
-  else
-    return &Test==RC || Test.hasSubClass(RC);
-}
-
-bool BlackfinInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I,
-                                     unsigned DestReg,
-                                     unsigned SrcReg,
-                                     const TargetRegisterClass *DestRC,
-                                     const TargetRegisterClass *SrcRC) const {
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-
-  if (inClass(BF::ALLRegClass, DestReg, DestRC) &&
-      inClass(BF::ALLRegClass, SrcReg,  SrcRC)) {
-    BuildMI(MBB, I, dl, get(BF::MOVE), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  if (inClass(BF::D16RegClass, DestReg, DestRC) &&
-      inClass(BF::D16RegClass, SrcReg,  SrcRC)) {
-    BuildMI(MBB, I, dl, get(BF::SLL16i), DestReg).addReg(SrcReg).addImm(0);
-    return true;
-  }
-
-  if (inClass(BF::AnyCCRegClass, SrcReg, SrcRC) &&
-      inClass(BF::DRegClass, DestReg, DestRC)) {
-    if (inClass(BF::NotCCRegClass, SrcReg, SrcRC)) {
-      BuildMI(MBB, I, dl, get(BF::MOVENCC_z), DestReg).addReg(SrcReg);
-      BuildMI(MBB, I, dl, get(BF::BITTGL), DestReg).addReg(DestReg).addImm(0);
-    } else {
-      BuildMI(MBB, I, dl, get(BF::MOVECC_zext), DestReg).addReg(SrcReg);
-    }
-    return true;
-  }
-
-  if (inClass(BF::AnyCCRegClass, DestReg, DestRC) &&
-      inClass(BF::DRegClass, SrcReg,  SrcRC)) {
-    if (inClass(BF::NotCCRegClass, DestReg, DestRC))
-      BuildMI(MBB, I, dl, get(BF::SETEQri_not), DestReg).addReg(SrcReg);
-    else
-      BuildMI(MBB, I, dl, get(BF::MOVECC_nz), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  if (inClass(BF::NotCCRegClass, DestReg, DestRC) &&
-      inClass(BF::JustCCRegClass, SrcReg,  SrcRC)) {
-    BuildMI(MBB, I, dl, get(BF::MOVE_ncccc), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  if (inClass(BF::JustCCRegClass, DestReg, DestRC) &&
-      inClass(BF::NotCCRegClass, SrcReg,  SrcRC)) {
-    BuildMI(MBB, I, dl, get(BF::MOVE_ccncc), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  llvm_unreachable((std::string("Bad regclasses for reg-to-reg copy: ")+
-                    SrcRC->getName() + " -> " + DestRC->getName()).c_str());
-  return false;
-}
-
-void
-BlackfinInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
-                                       MachineBasicBlock::iterator I,
-                                       unsigned SrcReg,
-                                       bool isKill,
-                                       int FI,
-                                       const TargetRegisterClass *RC) const {
-  DebugLoc DL = I != MBB.end() ?
-    I->getDebugLoc() : DebugLoc::getUnknownLoc();
-
-  if (inClass(BF::DPRegClass, SrcReg, RC)) {
-    BuildMI(MBB, I, DL, get(BF::STORE32fi))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addFrameIndex(FI)
-      .addImm(0);
-    return;
-  }
-
-  if (inClass(BF::D16RegClass, SrcReg, RC)) {
-    BuildMI(MBB, I, DL, get(BF::STORE16fi))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addFrameIndex(FI)
-      .addImm(0);
-    return;
-  }
-
-  if (inClass(BF::AnyCCRegClass, SrcReg, RC)) {
-    BuildMI(MBB, I, DL, get(BF::STORE8fi))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addFrameIndex(FI)
-      .addImm(0);
-    return;
-  }
-
-  llvm_unreachable((std::string("Cannot store regclass to stack slot: ")+
-                    RC->getName()).c_str());
-}
-
-void BlackfinInstrInfo::
-storeRegToAddr(MachineFunction &MF,
-               unsigned SrcReg,
-               bool isKill,
-               SmallVectorImpl<MachineOperand> &Addr,
-               const TargetRegisterClass *RC,
-               SmallVectorImpl<MachineInstr*> &NewMIs) const {
-  llvm_unreachable("storeRegToAddr not implemented");
-}
-
-void
-BlackfinInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                        MachineBasicBlock::iterator I,
-                                        unsigned DestReg,
-                                        int FI,
-                                        const TargetRegisterClass *RC) const {
-  DebugLoc DL = I != MBB.end() ?
-    I->getDebugLoc() : DebugLoc::getUnknownLoc();
-  if (inClass(BF::DPRegClass, DestReg, RC)) {
-    BuildMI(MBB, I, DL, get(BF::LOAD32fi), DestReg)
-      .addFrameIndex(FI)
-      .addImm(0);
-    return;
-  }
-
-  if (inClass(BF::D16RegClass, DestReg, RC)) {
-    BuildMI(MBB, I, DL, get(BF::LOAD16fi), DestReg)
-      .addFrameIndex(FI)
-      .addImm(0);
-    return;
-  }
-
-  if (inClass(BF::AnyCCRegClass, DestReg, RC)) {
-    BuildMI(MBB, I, DL, get(BF::LOAD8fi), DestReg)
-      .addFrameIndex(FI)
-      .addImm(0);
-    return;
-  }
-
-  llvm_unreachable("Cannot load regclass from stack slot");
-}
-
-void BlackfinInstrInfo::
-loadRegFromAddr(MachineFunction &MF,
-                unsigned DestReg,
-                SmallVectorImpl<MachineOperand> &Addr,
-                const TargetRegisterClass *RC,
-                SmallVectorImpl<MachineInstr*> &NewMIs) const {
-  llvm_unreachable("loadRegFromAddr not implemented");
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.h b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.h
deleted file mode 100644
index ea3429c..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//===- BlackfinInstrInfo.h - Blackfin Instruction Information ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Blackfin implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BLACKFININSTRUCTIONINFO_H
-#define BLACKFININSTRUCTIONINFO_H
-
-#include "llvm/Target/TargetInstrInfo.h"
-#include "BlackfinRegisterInfo.h"
-
-namespace llvm {
-
-  class BlackfinInstrInfo : public TargetInstrInfoImpl {
-    const BlackfinRegisterInfo RI;
-    const BlackfinSubtarget& Subtarget;
-  public:
-    explicit BlackfinInstrInfo(BlackfinSubtarget &ST);
-
-    /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-    /// such, whenever a client has an instance of instruction info, it should
-    /// always be able to get register info as well (through this method).
-    virtual const BlackfinRegisterInfo &getRegisterInfo() const { return RI; }
-
-    virtual bool isMoveInstr(const MachineInstr &MI,
-                             unsigned &SrcReg, unsigned &DstReg,
-                             unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-
-    virtual unsigned isLoadFromStackSlot(const MachineInstr *MI,
-                                         int &FrameIndex) const;
-
-    virtual unsigned isStoreToStackSlot(const MachineInstr *MI,
-                                        int &FrameIndex) const;
-
-    virtual unsigned
-    InsertBranch(MachineBasicBlock &MBB,
-                 MachineBasicBlock *TBB,
-                 MachineBasicBlock *FBB,
-                 const SmallVectorImpl<MachineOperand> &Cond) const;
-
-    virtual bool copyRegToReg(MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I,
-                              unsigned DestReg, unsigned SrcReg,
-                              const TargetRegisterClass *DestRC,
-                              const TargetRegisterClass *SrcRC) const;
-
-    virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator MBBI,
-                                     unsigned SrcReg, bool isKill,
-                                     int FrameIndex,
-                                     const TargetRegisterClass *RC) const;
-
-    virtual void storeRegToAddr(MachineFunction &MF,
-                                unsigned SrcReg, bool isKill,
-                                SmallVectorImpl<MachineOperand> &Addr,
-                                const TargetRegisterClass *RC,
-                                SmallVectorImpl<MachineInstr*> &NewMIs) const;
-
-    virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                      MachineBasicBlock::iterator MBBI,
-                                      unsigned DestReg, int FrameIndex,
-                                      const TargetRegisterClass *RC) const;
-
-    virtual void loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
-                                 SmallVectorImpl<MachineOperand> &Addr,
-                                 const TargetRegisterClass *RC,
-                                 SmallVectorImpl<MachineInstr*> &NewMIs) const;
-  };
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.td b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.td
deleted file mode 100644
index 934b188..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.td
+++ /dev/null
@@ -1,873 +0,0 @@
-//===- BlackfinInstrInfo.td - Target Description for Blackfin Target ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file describes the Blackfin instructions in TableGen format.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Instruction format superclass
-//===----------------------------------------------------------------------===//
-
-include "BlackfinInstrFormats.td"
-
-// These are target-independent nodes, but have target-specific formats.
-def SDT_BfinCallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i32> ]>;
-def SDT_BfinCallSeqEnd   : SDCallSeqEnd<[ SDTCisVT<0, i32>,
-                                        SDTCisVT<1, i32> ]>;
-
-def BfinCallseqStart : SDNode<"ISD::CALLSEQ_START", SDT_BfinCallSeqStart,
-                              [SDNPHasChain, SDNPOutFlag]>;
-def BfinCallseqEnd   : SDNode<"ISD::CALLSEQ_END",   SDT_BfinCallSeqEnd,
-                              [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-def SDT_BfinCall  : SDTypeProfile<0, 1, [SDTCisPtrTy<0>]>;
-def BfinCall      : SDNode<"BFISD::CALL", SDT_BfinCall,
-                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-def BfinRet: SDNode<"BFISD::RET_FLAG", SDTNone,
-                    [SDNPHasChain, SDNPOptInFlag]>;
-
-def BfinWrapper: SDNode<"BFISD::Wrapper", SDTIntUnaryOp>;
-
-//===----------------------------------------------------------------------===//
-// Transformations
-//===----------------------------------------------------------------------===//
-
-def trailingZeros_xform : SDNodeXForm<imm, [{
-  return CurDAG->getTargetConstant(N->getAPIntValue().countTrailingZeros(),
-                                   MVT::i32);
-}]>;
-
-def trailingOnes_xform : SDNodeXForm<imm, [{
-  return CurDAG->getTargetConstant(N->getAPIntValue().countTrailingOnes(),
-                                   MVT::i32);
-}]>;
-
-def LO16 : SDNodeXForm<imm, [{
-  return CurDAG->getTargetConstant((unsigned short)N->getZExtValue(), MVT::i16);
-}]>;
-
-def HI16 : SDNodeXForm<imm, [{
-  // Transformation function: shift the immediate value down into the low bits.
-  return CurDAG->getTargetConstant((unsigned)N->getZExtValue() >> 16, MVT::i16);
-}]>;
-
-//===----------------------------------------------------------------------===//
-// Immediates
-//===----------------------------------------------------------------------===//
-
-def imm3  : PatLeaf<(imm), [{return isInt<3>(N->getSExtValue());}]>;
-def uimm3 : PatLeaf<(imm), [{return isUint<3>(N->getZExtValue());}]>;
-def uimm4 : PatLeaf<(imm), [{return isUint<4>(N->getZExtValue());}]>;
-def uimm5 : PatLeaf<(imm), [{return isUint<5>(N->getZExtValue());}]>;
-
-def uimm5m2 : PatLeaf<(imm), [{
-    uint64_t value = N->getZExtValue();
-    return value % 2 == 0 && isUint<5>(value);
-}]>;
-
-def uimm6m4 : PatLeaf<(imm), [{
-    uint64_t value = N->getZExtValue();
-    return value % 4 == 0 && isUint<6>(value);
-}]>;
-
-def imm7   : PatLeaf<(imm), [{return isInt<7>(N->getSExtValue());}]>;
-def imm16  : PatLeaf<(imm), [{return isInt<16>(N->getSExtValue());}]>;
-def uimm16 : PatLeaf<(imm), [{return isUint<16>(N->getZExtValue());}]>;
-
-def ximm16 : PatLeaf<(imm), [{
-    int64_t value = N->getSExtValue();
-    return value < (1<<16) && value >= -(1<<15);
-}]>;
-
-def imm17m2 : PatLeaf<(imm), [{
-    int64_t value = N->getSExtValue();
-    return value % 2 == 0 && isInt<17>(value);
-}]>;
-
-def imm18m4 : PatLeaf<(imm), [{
-    int64_t value = N->getSExtValue();
-    return value % 4 == 0 && isInt<18>(value);
-}]>;
-
-// 32-bit bitmask transformed to a bit number
-def uimm5mask : Operand<i32>, PatLeaf<(imm), [{
-    return isPowerOf2_32(N->getZExtValue());
-}], trailingZeros_xform>;
-
-// 32-bit inverse bitmask transformed to a bit number
-def uimm5imask : Operand<i32>, PatLeaf<(imm), [{
-    return isPowerOf2_32(~N->getZExtValue());
-}], trailingOnes_xform>;
-
-//===----------------------------------------------------------------------===//
-// Operands
-//===----------------------------------------------------------------------===//
-
-def calltarget : Operand<iPTR>;
-
-def brtarget : Operand<OtherVT>;
-
-// Addressing modes
-def ADDRspii : ComplexPattern<i32, 2, "SelectADDRspii", [add, frameindex], []>;
-
-// Address operands
-def MEMii : Operand<i32> {
-  let PrintMethod = "printMemoryOperand";
-  let MIOperandInfo = (ops i32imm, i32imm);
-}
-
-//===----------------------------------------------------------------------===//
-// Instructions
-//===----------------------------------------------------------------------===//
-
-// Pseudo instructions.
-class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
-   : InstBfin<outs, ins, asmstr, pattern>;
-
-let Defs = [SP], Uses = [SP] in {
-def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt),
-                              "${:comment}ADJCALLSTACKDOWN $amt",
-                              [(BfinCallseqStart timm:$amt)]>;
-def ADJCALLSTACKUP : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2),
-                            "${:comment}ADJCALLSTACKUP $amt1 $amt2",
-                            [(BfinCallseqEnd timm:$amt1, timm:$amt2)]>;
-}
-
-//===----------------------------------------------------------------------===//
-// Table C-9. Program Flow Control Instructions
-//===----------------------------------------------------------------------===//
-
-let isBranch = 1, isTerminator = 1 in {
-
-let isIndirectBranch = 1 in
-def JUMPp : F1<(outs), (ins P:$target),
-               "JUMP ($target);",
-               [(brind P:$target)]>;
-
-// TODO JUMP (PC-P)
-
-// NOTE: assembler chooses between JUMP.S and JUMP.L
-def JUMPa : F1<(outs), (ins brtarget:$target),
-               "jump $target;",
-               [(br bb:$target)]>;
-
-def JUMPcc : F1<(outs), (ins AnyCC:$cc, brtarget:$target),
-               "if $cc jump $target;",
-               [(brcond AnyCC:$cc, bb:$target)]>;
-}
-
-let isCall = 1,
-    Defs   = [R0, R1, R2, R3, P0, P1, P2, LB0, LB1, LC0, LC1, RETS, ASTAT] in {
-def CALLa: F1<(outs), (ins calltarget:$func, variable_ops),
-              "call $func;", []>;
-def CALLp: F1<(outs), (ins P:$func, variable_ops),
-              "call ($func);", [(BfinCall P:$func)]>;
-}
-
-let isReturn     = 1,
-    isTerminator = 1,
-    Uses         = [RETS] in
-def RTS: F1<(outs), (ins), "rts;", [(BfinRet)]>;
-
-//===----------------------------------------------------------------------===//
-// Table C-10. Load / Store Instructions
-//===----------------------------------------------------------------------===//
-
-// Immediate constant loads
-
-// sext immediate, i32 D/P regs
-def LOADimm7: F1<(outs DP:$dst), (ins i32imm:$src),
-                 "$dst = $src (x);",
-                 [(set DP:$dst, imm7:$src)]>;
-
-// zext immediate, i32 reg groups 0-3
-def LOADuimm16: F2<(outs GR:$dst), (ins i32imm:$src),
-                   "$dst = $src (z);",
-                   [(set GR:$dst, uimm16:$src)]>;
-
-// sext immediate, i32 reg groups 0-3
-def LOADimm16: F2<(outs GR:$dst), (ins i32imm:$src),
-                  "$dst = $src (x);",
-                  [(set GR:$dst, imm16:$src)]>;
-
-// Pseudo-instruction for loading a general 32-bit constant.
-def LOAD32imm: Pseudo<(outs GR:$dst), (ins i32imm:$src),
-                      "$dst.h = ($src >> 16); $dst.l = ($src & 0xffff);",
-                      [(set GR:$dst, imm:$src)]>;
-
-def LOAD32sym: Pseudo<(outs GR:$dst), (ins i32imm:$src),
-                      "$dst.h = $src; $dst.l = $src;", []>;
-
-
-// 16-bit immediate, i16 reg groups 0-3
-def LOAD16i: F2<(outs GR16:$dst), (ins i16imm:$src),
-                 "$dst = $src;", []>;
-
-def : Pat<(BfinWrapper (i32 tglobaladdr:$addr)),
-          (LOAD32sym tglobaladdr:$addr)>;
-
-def : Pat<(BfinWrapper (i32 tjumptable:$addr)),
-          (LOAD32sym tjumptable:$addr)>;
-
-// We cannot copy from GR16 to D16, and codegen wants to insert copies if we
-// emit GR16 instructions. As a hack, we use this fake instruction instead.
-def LOAD16i_d16: F2<(outs D16:$dst), (ins i16imm:$src),
-                    "$dst = $src;",
-                    [(set D16:$dst, ximm16:$src)]>;
-
-// Memory loads with patterns
-
-def LOAD32p: F1<(outs DP:$dst), (ins P:$ptr),
-                "$dst = [$ptr];",
-                [(set DP:$dst, (load P:$ptr))]>;
-
-// Pseudo-instruction for loading a stack slot
-def LOAD32fi: Pseudo<(outs DP:$dst), (ins MEMii:$mem),
-                     "${:comment}FI $dst = [$mem];",
-                     [(set DP:$dst, (load ADDRspii:$mem))]>;
-
-// Note: Expands to multiple insns
-def LOAD16fi: Pseudo<(outs D16:$dst), (ins MEMii:$mem),
-                     "${:comment}FI $dst = [$mem];",
-                     [(set D16:$dst, (load ADDRspii:$mem))]>;
-
-// Pseudo-instruction for loading a stack slot, used for AnyCC regs.
-// Replaced with Load D + CC=D
-def LOAD8fi: Pseudo<(outs AnyCC:$dst), (ins MEMii:$mem),
-                    "${:comment}FI $dst = B[$mem];",
-                    [(set AnyCC:$dst, (load ADDRspii:$mem))]>;
-
-def LOAD32p_uimm6m4: F1<(outs DP:$dst), (ins P:$ptr, i32imm:$off),
-                        "$dst = [$ptr + $off];",
-                        [(set DP:$dst, (load (add P:$ptr, uimm6m4:$off)))]>;
-
-def LOAD32p_imm18m4: F2<(outs DP:$dst), (ins P:$ptr, i32imm:$off),
-                         "$dst = [$ptr + $off];",
-                         [(set DP:$dst, (load (add P:$ptr, imm18m4:$off)))]>;
-
-def LOAD32p_16z: F1<(outs D:$dst), (ins P:$ptr),
-                    "$dst = W[$ptr] (z);",
-                    [(set D:$dst, (zextloadi16 P:$ptr))]>;
-
-def : Pat<(i32 (extloadi16 P:$ptr)),(LOAD32p_16z P:$ptr)>;
-
-def LOAD32p_uimm5m2_16z: F1<(outs D:$dst), (ins P:$ptr, i32imm:$off),
-                            "$dst = w[$ptr + $off] (z);",
-                            [(set D:$dst, (zextloadi16 (add P:$ptr,
-                                                        uimm5m2:$off)))]>;
-
-def : Pat<(i32 (extloadi16 (add P:$ptr, uimm5m2:$off))),
-          (LOAD32p_uimm5m2_16z P:$ptr, imm:$off)>;
-
-def LOAD32p_imm17m2_16z: F1<(outs D:$dst), (ins P:$ptr, i32imm:$off),
-                            "$dst = w[$ptr + $off] (z);",
-                            [(set D:$dst,
-                                  (zextloadi16 (add P:$ptr, imm17m2:$off)))]>;
-
-def : Pat<(i32 (extloadi16 (add P:$ptr, imm17m2:$off))),
-          (LOAD32p_imm17m2_16z P:$ptr, imm:$off)>;
-
-def LOAD32p_16s: F1<(outs D:$dst), (ins P:$ptr),
-                    "$dst = w[$ptr] (x);",
-                    [(set D:$dst, (sextloadi16 P:$ptr))]>;
-
-def LOAD32p_uimm5m2_16s: F1<(outs D:$dst), (ins P:$ptr, i32imm:$off),
-                            "$dst = w[$ptr + $off] (x);",
-                            [(set D:$dst,
-                                  (sextloadi16 (add P:$ptr, uimm5m2:$off)))]>;
-
-def LOAD32p_imm17m2_16s: F1<(outs D:$dst), (ins P:$ptr, i32imm:$off),
-                            "$dst = w[$ptr + $off] (x);",
-                            [(set D:$dst,
-                                  (sextloadi16 (add P:$ptr, imm17m2:$off)))]>;
-
-def LOAD16pi: F1<(outs D16:$dst), (ins PI:$ptr),
-                "$dst = w[$ptr];",
-                [(set D16:$dst, (load PI:$ptr))]>;
-
-def LOAD32p_8z: F1<(outs D:$dst), (ins P:$ptr),
-                   "$dst = B[$ptr] (z);",
-                   [(set D:$dst, (zextloadi8 P:$ptr))]>;
-
-def : Pat<(i32 (extloadi8 P:$ptr)), (LOAD32p_8z P:$ptr)>;
-def : Pat<(i16 (extloadi8 P:$ptr)),
-          (EXTRACT_SUBREG (LOAD32p_8z P:$ptr), bfin_subreg_lo16)>;
-def : Pat<(i16 (zextloadi8 P:$ptr)),
-          (EXTRACT_SUBREG (LOAD32p_8z P:$ptr), bfin_subreg_lo16)>;
-
-def LOAD32p_imm16_8z: F1<(outs D:$dst), (ins P:$ptr, i32imm:$off),
-                         "$dst = b[$ptr + $off] (z);",
-                         [(set D:$dst, (zextloadi8 (add P:$ptr, imm16:$off)))]>;
-
-def : Pat<(i32 (extloadi8 (add P:$ptr, imm16:$off))),
-          (LOAD32p_imm16_8z P:$ptr, imm:$off)>;
-def : Pat<(i16 (extloadi8 (add P:$ptr, imm16:$off))),
-          (EXTRACT_SUBREG (LOAD32p_imm16_8z P:$ptr, imm:$off),
-                           bfin_subreg_lo16)>;
-def : Pat<(i16 (zextloadi8 (add P:$ptr, imm16:$off))),
-          (EXTRACT_SUBREG (LOAD32p_imm16_8z P:$ptr, imm:$off),
-                           bfin_subreg_lo16)>;
-
-def LOAD32p_8s: F1<(outs D:$dst), (ins P:$ptr),
-                   "$dst = b[$ptr] (x);",
-                   [(set D:$dst, (sextloadi8 P:$ptr))]>;
-
-def : Pat<(i16 (sextloadi8 P:$ptr)),
-          (EXTRACT_SUBREG (LOAD32p_8s P:$ptr), bfin_subreg_lo16)>;
-
-def LOAD32p_imm16_8s: F1<(outs D:$dst), (ins P:$ptr, i32imm:$off),
-                         "$dst = b[$ptr + $off] (x);",
-                         [(set D:$dst, (sextloadi8 (add P:$ptr, imm16:$off)))]>;
-
-def : Pat<(i16 (sextloadi8 (add P:$ptr, imm16:$off))),
-          (EXTRACT_SUBREG (LOAD32p_imm16_8s P:$ptr, imm:$off),
-                           bfin_subreg_lo16)>;
-// Memory loads without patterns
-
-let mayLoad = 1 in {
-
-multiclass LOAD_incdec<RegisterClass drc, RegisterClass prc,
-                       string mem="", string suf=";"> {
-  def _inc : F1<(outs drc:$dst, prc:$ptr_wb), (ins prc:$ptr),
-                !strconcat(!subst("M", mem, "$dst = M[$ptr++]"), suf), []>;
-  def _dec : F1<(outs drc:$dst, prc:$ptr_wb), (ins prc:$ptr),
-                !strconcat(!subst("M", mem, "$dst = M[$ptr--]"), suf), []>;
-}
-multiclass LOAD_incdecpost<RegisterClass drc, RegisterClass prc,
-                           string mem="", string suf=";">
-         : LOAD_incdec<drc, prc, mem, suf> {
-  def _post : F1<(outs drc:$dst, prc:$ptr_wb), (ins prc:$ptr, prc:$off),
-                 !strconcat(!subst("M", mem, "$dst = M[$ptr++$off]"), suf), []>;
-}
-
-defm LOAD32p:    LOAD_incdec<DP, P>;
-defm LOAD32i:    LOAD_incdec<D, I>;
-defm LOAD8z32p:  LOAD_incdec<D, P, "b", " (z);">;
-defm LOAD8s32p:  LOAD_incdec<D, P, "b", " (x);">;
-defm LOADhi:     LOAD_incdec<D16, I, "w">;
-defm LOAD16z32p: LOAD_incdecpost<D, P, "w", " (z);">;
-defm LOAD16s32p: LOAD_incdecpost<D, P, "w", " (x);">;
-
-def LOAD32p_post: F1<(outs D:$dst, P:$ptr_wb), (ins P:$ptr, P:$off),
-                     "$dst = [$ptr ++ $off];", []>;
-
-// Note: $fp MUST be FP
-def LOAD32fp_nimm7m4: F1<(outs DP:$dst), (ins P:$fp, i32imm:$off),
-                         "$dst = [$fp - $off];", []>;
-
-def LOAD32i:      F1<(outs D:$dst), (ins I:$ptr),
-                     "$dst = [$ptr];", []>;
-def LOAD32i_post: F1<(outs D:$dst, I:$ptr_wb), (ins I:$ptr, M:$off),
-                     "$dst = [$ptr ++ $off];", []>;
-
-
-
-def LOADhp_post: F1<(outs D16:$dst, P:$ptr_wb), (ins P:$ptr, P:$off),
-                    "$dst = w[$ptr ++ $off];", []>;
-
-
-}
-
-// Memory stores with patterns
-def STORE32p: F1<(outs), (ins DP:$val, P:$ptr),
-                 "[$ptr] = $val;",
-                 [(store DP:$val, P:$ptr)]>;
-
-// Pseudo-instructions for storing to a stack slot
-def STORE32fi: Pseudo<(outs), (ins DP:$val, MEMii:$mem),
-                      "${:comment}FI [$mem] = $val;",
-                      [(store DP:$val, ADDRspii:$mem)]>;
-
-// Note: This stack-storing pseudo-instruction is expanded to multiple insns
-def STORE16fi: Pseudo<(outs), (ins D16:$val, MEMii:$mem),
-                  "${:comment}FI [$mem] = $val;",
-                  [(store D16:$val, ADDRspii:$mem)]>;
-
-// Pseudo-instructions for storing AnyCC register to a stack slot.
-// Replaced with D=CC + STORE byte
-def STORE8fi: Pseudo<(outs), (ins AnyCC:$val, MEMii:$mem),
-                      "${:comment}FI b[$mem] = $val;",
-                      [(store AnyCC:$val, ADDRspii:$mem)]>;
-
-def STORE32p_uimm6m4: F1<(outs), (ins DP:$val, P:$ptr, i32imm:$off),
-                 "[$ptr + $off] = $val;",
-                 [(store DP:$val, (add P:$ptr, uimm6m4:$off))]>;
-
-def STORE32p_imm18m4: F1<(outs), (ins DP:$val, P:$ptr, i32imm:$off),
-                 "[$ptr + $off] = $val;",
-                 [(store DP:$val, (add P:$ptr, imm18m4:$off))]>;
-
-def STORE16pi: F1<(outs), (ins D16:$val, PI:$ptr),
-                  "w[$ptr] = $val;",
-                  [(store D16:$val, PI:$ptr)]>;
-
-def STORE8p: F1<(outs), (ins D:$val, P:$ptr),
-                "b[$ptr] = $val;",
-                [(truncstorei8 D:$val, P:$ptr)]>;
-
-def STORE8p_imm16: F1<(outs), (ins D:$val, P:$ptr, i32imm:$off),
-                 "b[$ptr + $off] = $val;",
-                 [(truncstorei8 D:$val, (add P:$ptr, imm16:$off))]>;
-
-let Constraints = "$ptr = $ptr_wb" in {
-
-multiclass STORE_incdec<RegisterClass drc, RegisterClass prc,
-                        int off=4, string pre=""> {
-  def _inc : F1<(outs prc:$ptr_wb), (ins drc:$val, prc:$ptr),
-                !strconcat(pre, "[$ptr++] = $val;"),
-                [(set prc:$ptr_wb, (post_store drc:$val, prc:$ptr, off))]>;
-  def _dec : F1<(outs prc:$ptr_wb), (ins drc:$val, prc:$ptr),
-                !strconcat(pre, "[$ptr--] = $val;"),
-                [(set prc:$ptr_wb, (post_store drc:$val, prc:$ptr,
-                                               (ineg off)))]>;
-}
-
-defm STORE32p: STORE_incdec<DP, P>;
-defm STORE16i: STORE_incdec<D16, I, 2, "w">;
-defm STORE8p:  STORE_incdec<D, P, 1, "b">;
-
-def STORE32p_post: F1<(outs P:$ptr_wb), (ins D:$val, P:$ptr, P:$off),
-                      "[$ptr ++ $off] = $val;",
-                      [(set P:$ptr_wb, (post_store D:$val, P:$ptr, P:$off))]>;
-
-def STORE16p_post: F1<(outs P:$ptr_wb), (ins D16:$val, P:$ptr, P:$off),
-                      "w[$ptr ++ $off] = $val;",
-                      [(set P:$ptr_wb, (post_store D16:$val, P:$ptr, P:$off))]>;
-}
-
-// Memory stores without patterns
-
-let mayStore = 1 in {
-
-// Note: only works for $fp == FP
-def STORE32fp_nimm7m4: F1<(outs), (ins DP:$val, P:$fp, i32imm:$off),
-                         "[$fp - $off] = $val;", []>;
-
-def STORE32i: F1<(outs), (ins D:$val, I:$ptr),
-                 "[$ptr] = $val;", []>;
-
-def STORE32i_inc: F1<(outs I:$ptr_wb), (ins D:$val, I:$ptr),
-                 "[$ptr++] = $val;", []>;
-
-def STORE32i_dec: F1<(outs I:$ptr_wb), (ins D:$val, I:$ptr),
-                 "[$ptr--] = $val;", []>;
-
-def STORE32i_post: F1<(outs I:$ptr_wb), (ins D:$val, I:$ptr, M:$off),
-                      "[$ptr ++ $off] = $val;", []>;
-}
-
-def : Pat<(truncstorei16 D:$val, PI:$ptr),
-          (STORE16pi (EXTRACT_SUBREG (COPY_TO_REGCLASS D:$val, D),
-                                     bfin_subreg_lo16), PI:$ptr)>;
-
-def : Pat<(truncstorei16 (srl D:$val, (i16 16)), PI:$ptr),
-          (STORE16pi (EXTRACT_SUBREG (COPY_TO_REGCLASS D:$val, D),
-                                     bfin_subreg_hi16), PI:$ptr)>;
-
-def : Pat<(truncstorei8 D16L:$val, P:$ptr),
-          (STORE8p (INSERT_SUBREG (i32 (IMPLICIT_DEF)),
-                                  (COPY_TO_REGCLASS D16L:$val, D16L),
-                                  bfin_subreg_lo16),
-                   P:$ptr)>;
-
-//===----------------------------------------------------------------------===//
-// Table C-11. Move Instructions.
-//===----------------------------------------------------------------------===//
-
-def MOVE: F1<(outs ALL:$dst), (ins ALL:$src),
-             "$dst = $src;",
-             []>;
-
-let isTwoAddress = 1 in
-def MOVEcc: F1<(outs DP:$dst), (ins DP:$src1, DP:$src2, AnyCC:$cc),
-               "if $cc $dst = $src2;",
-               [(set DP:$dst, (select AnyCC:$cc, DP:$src2, DP:$src1))]>;
-
-let Defs = [AZ, AN, AC0, V] in {
-def MOVEzext: F1<(outs D:$dst), (ins D16L:$src),
-                 "$dst = $src (z);",
-                 [(set D:$dst, (zext D16L:$src))]>;
-
-def MOVEsext: F1<(outs D:$dst), (ins D16L:$src),
-                 "$dst = $src (x);",
-                 [(set D:$dst, (sext D16L:$src))]>;
-
-def MOVEzext8: F1<(outs D:$dst), (ins D:$src),
-                  "$dst = $src.b (z);",
-                  [(set D:$dst, (and D:$src, 0xff))]>;
-
-def MOVEsext8: F1<(outs D:$dst), (ins D:$src),
-                  "$dst = $src.b (x);",
-                  [(set D:$dst, (sext_inreg D:$src, i8))]>;
-
-}
-
-def : Pat<(sext_inreg D16L:$src, i8),
-          (EXTRACT_SUBREG (MOVEsext8
-                           (INSERT_SUBREG (i32 (IMPLICIT_DEF)),
-                                          D16L:$src,
-                                          bfin_subreg_lo16)),
-                          bfin_subreg_lo16)>;
-
-def : Pat<(sext_inreg D:$src, i16),
-          (MOVEsext (EXTRACT_SUBREG D:$src, bfin_subreg_lo16))>;
-
-def : Pat<(and D:$src, 0xffff),
-          (MOVEzext (EXTRACT_SUBREG D:$src, bfin_subreg_lo16))>;
-
-def : Pat<(i32 (anyext D16L:$src)),
-          (INSERT_SUBREG (i32 (IMPLICIT_DEF)),
-                         (COPY_TO_REGCLASS D16L:$src, D16L),
-                         bfin_subreg_lo16)>;
-
-// TODO Dreg = Dreg_byte (X/Z)
-
-// TODO Accumulator moves
-
-//===----------------------------------------------------------------------===//
-// Table C-12. Stack Control Instructions
-//===----------------------------------------------------------------------===//
-
-let Uses = [SP], Defs = [SP] in {
-def PUSH: F1<(outs), (ins ALL:$src),
-             "[--sp] = $src;", []> { let mayStore = 1; }
-
-// NOTE: POP does not work for DP regs, use LOAD instead
-def POP:  F1<(outs ALL:$dst), (ins),
-             "$dst = [sp++];", []> { let mayLoad = 1; }
-}
-
-// TODO: push/pop multiple
-
-def LINK: F2<(outs), (ins i32imm:$amount),
-             "link $amount;", []>;
-
-def UNLINK: F2<(outs), (ins),
-               "unlink;", []>;
-
-//===----------------------------------------------------------------------===//
-// Table C-13. Control Code Bit Management Instructions
-//===----------------------------------------------------------------------===//
-
-multiclass SETCC<PatFrag opnode, PatFrag invnode, string cond, string suf=";"> {
-  def dd : F1<(outs JustCC:$cc), (ins D:$a, D:$b),
-              !strconcat(!subst("XX", cond, "cc = $a XX $b"), suf),
-              [(set JustCC:$cc, (opnode  D:$a, D:$b))]>;
-
-  def ri : F1<(outs JustCC:$cc), (ins DP:$a, i32imm:$b),
-              !strconcat(!subst("XX", cond, "cc = $a XX $b"), suf),
-              [(set JustCC:$cc, (opnode  DP:$a, imm3:$b))]>;
-
-  def pp : F1<(outs JustCC:$cc), (ins P:$a, P:$b),
-              !strconcat(!subst("XX", cond, "cc = $a XX $b"), suf),
-              []>;
-
-  def ri_not : F1<(outs NotCC:$cc), (ins DP:$a, i32imm:$b),
-                  !strconcat(!subst("XX", cond, "cc = $a XX $b"), suf),
-                  [(set NotCC:$cc, (invnode  DP:$a, imm3:$b))]>;
-}
-
-defm SETEQ  : SETCC<seteq,  setne,  "==">;
-defm SETLT  : SETCC<setlt,  setge,  "<">;
-defm SETLE  : SETCC<setle,  setgt,  "<=">;
-defm SETULT : SETCC<setult, setuge, "<",  " (iu);">;
-defm SETULE : SETCC<setule, setugt, "<=", " (iu);">;
-
-def SETNEdd : F1<(outs NotCC:$cc), (ins D:$a, D:$b),
-                 "cc = $a == $b;",
-                 [(set NotCC:$cc, (setne  D:$a, D:$b))]>;
-
-def : Pat<(setgt  D:$a, D:$b), (SETLTdd  D:$b, D:$a)>;
-def : Pat<(setge  D:$a, D:$b), (SETLEdd  D:$b, D:$a)>;
-def : Pat<(setugt D:$a, D:$b), (SETULTdd D:$b, D:$a)>;
-def : Pat<(setuge D:$a, D:$b), (SETULEdd D:$b, D:$a)>;
-
-// TODO: compare pointer for P-P comparisons
-// TODO: compare accumulator
-
-let Defs = [AC0] in
-def OR_ac0_cc : F1<(outs), (ins JustCC:$cc),
-                   "ac0 \\|= cc;", []>;
-
-let Uses = [AC0] in
-def MOVE_cc_ac0 : F1<(outs JustCC:$cc), (ins),
-                   "cc = ac0;", []>;
-
-def MOVE_ccncc : F1<(outs JustCC:$cc), (ins NotCC:$sb),
-                    "cc = !cc;", []>;
-
-def MOVE_ncccc : F1<(outs NotCC:$cc), (ins JustCC:$sb),
-                    "cc = !cc;", []>;
-
-def MOVECC_zext : F1<(outs D:$dst), (ins JustCC:$cc),
-                      "$dst = $cc;",
-                      [(set D:$dst, (zext JustCC:$cc))]>;
-
-def MOVENCC_z : F1<(outs D:$dst), (ins NotCC:$cc),
-                   "$dst = cc;", []>;
-
-def MOVECC_nz : F1<(outs AnyCC:$cc), (ins D:$src),
-                   "cc = $src;",
-                   [(set AnyCC:$cc, (setne D:$src, 0))]>;
-
-//===----------------------------------------------------------------------===//
-// Table C-14. Logical Operations Instructions
-//===----------------------------------------------------------------------===//
-
-def AND: F1<(outs D:$dst), (ins D:$src1, D:$src2),
-            "$dst = $src1 & $src2;",
-            [(set D:$dst, (and D:$src1, D:$src2))]>;
-
-def NOT: F1<(outs D:$dst), (ins D:$src),
-            "$dst = ~$src;",
-            [(set D:$dst, (not D:$src))]>;
-
-def OR: F1<(outs D:$dst), (ins D:$src1, D:$src2),
-           "$dst = $src1 \\| $src2;",
-           [(set D:$dst, (or D:$src1, D:$src2))]>;
-
-def XOR: F1<(outs D:$dst), (ins D:$src1, D:$src2),
-            "$dst = $src1 ^ $src2;",
-            [(set D:$dst, (xor D:$src1, D:$src2))]>;
-
-// missing: BXOR, BXORSHIFT
-
-//===----------------------------------------------------------------------===//
-// Table C-15. Bit Operations Instructions
-//===----------------------------------------------------------------------===//
-
-let isTwoAddress = 1 in {
-def BITCLR: F1<(outs D:$dst), (ins D:$src1, uimm5imask:$src2),
-              "bitclr($dst, $src2);",
-              [(set D:$dst, (and D:$src1, uimm5imask:$src2))]>;
-
-def BITSET: F1<(outs D:$dst), (ins D:$src1, uimm5mask:$src2),
-              "bitset($dst, $src2);",
-              [(set D:$dst, (or D:$src1, uimm5mask:$src2))]>;
-
-def BITTGL: F1<(outs D:$dst), (ins D:$src1, uimm5mask:$src2),
-              "bittgl($dst, $src2);",
-              [(set D:$dst, (xor D:$src1, uimm5mask:$src2))]>;
-}
-
-def BITTST: F1<(outs JustCC:$cc), (ins D:$src1, uimm5mask:$src2),
-              "cc = bittst($src1, $src2);",
-              [(set JustCC:$cc, (setne (and D:$src1, uimm5mask:$src2),
-                                       (i32 0)))]>;
-
-def NBITTST: F1<(outs JustCC:$cc), (ins D:$src1, uimm5mask:$src2),
-               "cc = !bittst($src1, $src2);",
-               [(set JustCC:$cc, (seteq (and D:$src1, uimm5mask:$src2),
-                                        (i32 0)))]>;
-
-// TODO: DEPOSIT, EXTRACT, BITMUX
-
-def ONES: F2<(outs D16L:$dst), (ins D:$src),
-              "$dst = ones $src;",
-              [(set D16L:$dst, (trunc (ctpop D:$src)))]>;
-
-def : Pat<(ctpop D:$src), (MOVEzext (ONES D:$src))>;
-
-//===----------------------------------------------------------------------===//
-// Table C-16. Shift / Rotate Instructions
-//===----------------------------------------------------------------------===//
-
-multiclass SHIFT32<SDNode opnode, string ops> {
-  def i : F1<(outs D:$dst), (ins D:$src, i16imm:$amount),
-             !subst("XX", ops, "$dst XX= $amount;"),
-             [(set D:$dst, (opnode D:$src, (i16 uimm5:$amount)))]>;
-  def r : F1<(outs D:$dst), (ins D:$src, D:$amount),
-             !subst("XX", ops, "$dst XX= $amount;"),
-             [(set D:$dst, (opnode D:$src, D:$amount))]>;
-}
-
-let Defs = [AZ, AN, V, VS],
-    isTwoAddress = 1 in {
-defm SRA : SHIFT32<sra, ">>>">;
-defm SRL : SHIFT32<srl, ">>">;
-defm SLL : SHIFT32<shl, "<<">;
-}
-
-// TODO: automatic switching between 2-addr and 3-addr (?)
-
-let Defs = [AZ, AN, V, VS] in {
-def SLLr16: F2<(outs D:$dst), (ins D:$src, D16L:$amount),
-             "$dst = lshift $src by $amount;",
-             [(set D:$dst, (shl D:$src, D16L:$amount))]>;
-
-// Arithmetic left-shift = saturing overflow.
-def SLAr16: F2<(outs D:$dst), (ins D:$src, D16L:$amount),
-             "$dst = ashift $src by $amount;",
-             [(set D:$dst, (sra D:$src, (ineg D16L:$amount)))]>;
-
-def SRA16i: F1<(outs D16:$dst), (ins D16:$src, i16imm:$amount),
-              "$dst = $src >>> $amount;",
-              [(set D16:$dst, (sra D16:$src, (i16 uimm4:$amount)))]>;
-
-def SRL16i: F1<(outs D16:$dst), (ins D16:$src, i16imm:$amount),
-              "$dst = $src >> $amount;",
-              [(set D16:$dst, (srl D16:$src, (i16 uimm4:$amount)))]>;
-
-// Arithmetic left-shift = saturing overflow.
-def SLA16r: F1<(outs D16:$dst), (ins D16:$src, D16L:$amount),
-              "$dst = ashift $src BY $amount;",
-              [(set D16:$dst, (srl D16:$src, (ineg D16L:$amount)))]>;
-
-def SLL16i: F1<(outs D16:$dst), (ins D16:$src, i16imm:$amount),
-              "$dst = $src << $amount;",
-              [(set D16:$dst, (shl D16:$src, (i16 uimm4:$amount)))]>;
-
-def SLL16r: F1<(outs D16:$dst), (ins D16:$src, D16L:$amount),
-              "$dst = lshift $src by $amount;",
-              [(set D16:$dst, (shl D16:$src, D16L:$amount))]>;
-
-}
-
-//===----------------------------------------------------------------------===//
-// Table C-17. Arithmetic Operations Instructions
-//===----------------------------------------------------------------------===//
-
-// TODO: ABS
-
-let Defs = [AZ, AN, AC0, V, VS] in {
-
-def ADD: F1<(outs D:$dst), (ins D:$src1, D:$src2),
-            "$dst = $src1 + $src2;",
-            [(set D:$dst, (add D:$src1, D:$src2))]>;
-
-def ADD16: F2<(outs D16:$dst), (ins D16:$src1, D16:$src2),
-              "$dst = $src1 + $src2;",
-              [(set D16:$dst, (add D16:$src1, D16:$src2))]>;
-
-let isTwoAddress = 1 in
-def ADDimm7: F1<(outs D:$dst), (ins D:$src1, i32imm:$src2),
-                "$dst += $src2;",
-                [(set D:$dst, (add D:$src1, imm7:$src2))]>;
-
-def SUB: F1<(outs D:$dst), (ins D:$src1, D:$src2),
-            "$dst = $src1 - $src2;",
-            [(set D:$dst, (sub D:$src1, D:$src2))]>;
-
-def SUB16: F2<(outs D16:$dst), (ins D16:$src1, D16:$src2),
-              "$dst = $src1 - $src2;",
-              [(set D16:$dst, (sub D16:$src1, D16:$src2))]>;
-
-}
-
-def : Pat<(addc D:$src1, D:$src2), (ADD D:$src1, D:$src2)>;
-def : Pat<(subc D:$src1, D:$src2), (SUB D:$src1, D:$src2)>;
-
-let Defs = [AZ, AN, V, VS] in
-def NEG: F1<(outs D:$dst), (ins D:$src),
-            "$dst = -$src;",
-            [(set D:$dst, (ineg D:$src))]>;
-
-// No pattern, it would confuse isel to have two i32 = i32+i32 patterns
-def ADDpp: F1<(outs P:$dst), (ins P:$src1, P:$src2),
-              "$dst = $src1 + $src2;", []>;
-
-let isTwoAddress = 1 in
-def ADDpp_imm7: F1<(outs P:$dst), (ins P:$src1, i32imm:$src2),
-                "$dst += $src2;", []>;
-
-let Defs = [AZ, AN, V] in
-def ADD_RND20: F2<(outs D16:$dst), (ins D:$src1, D:$src2),
-                  "$dst = $src1 + $src2 (rnd20);", []>;
-
-let Defs = [V, VS] in {
-def MUL16: F2<(outs D16:$dst), (ins D16:$src1, D16:$src2),
-              "$dst = $src1 * $src2 (is);",
-              [(set D16:$dst, (mul D16:$src1, D16:$src2))]>;
-
-def MULHS16: F2<(outs D16:$dst), (ins D16:$src1, D16:$src2),
-                "$dst = $src1 * $src2 (ih);",
-                [(set D16:$dst, (mulhs D16:$src1, D16:$src2))]>;
-
-def MULhh32s: F2<(outs D:$dst), (ins D16:$src1, D16:$src2),
-                "$dst = $src1 * $src2 (is);",
-                [(set D:$dst, (mul (sext D16:$src1), (sext D16:$src2)))]>;
-
-def MULhh32u: F2<(outs D:$dst), (ins D16:$src1, D16:$src2),
-                "$dst = $src1 * $src2 (is);",
-                [(set D:$dst, (mul (zext D16:$src1), (zext D16:$src2)))]>;
-}
-
-
-let isTwoAddress = 1 in
-def MUL32: F1<(outs D:$dst), (ins D:$src1, D:$src2),
-            "$dst *= $src2;",
-            [(set D:$dst, (mul D:$src1, D:$src2))]>;
-
-//===----------------------------------------------------------------------===//
-// Table C-18. External Exent Management Instructions
-//===----------------------------------------------------------------------===//
-
-def IDLE : F1<(outs), (ins), "idle;", [(int_bfin_idle)]>;
-def CSYNC : F1<(outs), (ins), "csync;", [(int_bfin_csync)]>;
-def SSYNC : F1<(outs), (ins), "ssync;", [(int_bfin_ssync)]>;
-def EMUEXCPT : F1<(outs), (ins), "emuexcpt;", []>;
-def CLI : F1<(outs D:$mask), (ins), "cli $mask;", []>;
-def STI : F1<(outs), (ins D:$mask), "sti $mask;", []>;
-def RAISE : F1<(outs), (ins i32imm:$itr), "raise $itr;", []>;
-def EXCPT : F1<(outs), (ins i32imm:$exc), "excpt $exc;", []>;
-def NOP : F1<(outs), (ins), "nop;", []>;
-def MNOP : F2<(outs), (ins), "mnop;", []>;
-def ABORT : F1<(outs), (ins), "abort;", []>;
-
-//===----------------------------------------------------------------------===//
-// Table C-19. Cache Control Instructions
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Table C-20. Video Pixel Operations Instructions
-//===----------------------------------------------------------------------===//
-
-def ALIGN8 : F2<(outs D:$dst), (ins D:$src1, D:$src2),
-                "$dst = align8($src1, $src2);",
-                [(set D:$dst, (or (shl D:$src1, (i32 24)),
-                                  (srl D:$src2, (i32 8))))]>;
-
-def ALIGN16 : F2<(outs D:$dst), (ins D:$src1, D:$src2),
-                 "$dst = align16($src1, $src2);",
-                 [(set D:$dst, (or (shl D:$src1, (i32 16)),
-                                   (srl D:$src2, (i32 16))))]>;
-
-def ALIGN24 : F2<(outs D:$dst), (ins D:$src1, D:$src2),
-                 "$dst = align16($src1, $src2);",
-                 [(set D:$dst, (or (shl D:$src1, (i32 8)),
-                                   (srl D:$src2, (i32 24))))]>;
-
-def DISALGNEXCPT : F2<(outs), (ins), "disalignexcpt;", []>;
-
-// TODO: BYTEOP3P, BYTEOP16P, BYTEOP1P, BYTEOP2P, BYTEOP16M, SAA,
-//       BYTEPACK, BYTEUNPACK
-
-// Table C-21. Vector Operations Instructions
-
-// Patterns
-def : Pat<(BfinCall (i32 tglobaladdr:$dst)),
-          (CALLa tglobaladdr:$dst)>;
-def : Pat<(BfinCall (i32 texternalsym:$dst)),
-          (CALLa texternalsym:$dst)>;
-
-def : Pat<(sext JustCC:$cc),
-          (NEG (MOVECC_zext JustCC:$cc))>;
-def : Pat<(anyext JustCC:$cc),
-          (MOVECC_zext JustCC:$cc)>;
-def : Pat<(i16 (zext JustCC:$cc)),
-          (EXTRACT_SUBREG (MOVECC_zext JustCC:$cc), bfin_subreg_lo16)>;
-def : Pat<(i16 (sext JustCC:$cc)),
-          (EXTRACT_SUBREG (NEG (MOVECC_zext JustCC:$cc)), bfin_subreg_lo16)>;
-def : Pat<(i16 (anyext JustCC:$cc)),
-          (EXTRACT_SUBREG (MOVECC_zext JustCC:$cc), bfin_subreg_lo16)>;
-
-def : Pat<(i16 (trunc D:$src)),
-          (EXTRACT_SUBREG (COPY_TO_REGCLASS D:$src, D), bfin_subreg_lo16)>;
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.cpp
deleted file mode 100644
index 6d0f66c..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//===-- BlackfinMCAsmInfo.cpp - Blackfin asm properties -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the BlackfinMCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BlackfinMCAsmInfo.h"
-
-using namespace llvm;
-
-BlackfinMCAsmInfo::BlackfinMCAsmInfo(const Target &T, const StringRef &TT) {
-  GlobalPrefix = "_";
-  CommentString = "//";
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.h b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.h
deleted file mode 100644
index 0efc295..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.h
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- BlackfinMCAsmInfo.h - Blackfin asm properties ---------*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the BlackfinMCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BLACKFINTARGETASMINFO_H
-#define BLACKFINTARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-
-  struct BlackfinMCAsmInfo : public MCAsmInfo {
-    explicit BlackfinMCAsmInfo(const Target &T, const StringRef &TT);
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp
deleted file mode 100644
index e820c3b..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp
+++ /dev/null
@@ -1,478 +0,0 @@
-//===- BlackfinRegisterInfo.cpp - Blackfin Register Information -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Blackfin implementation of the TargetRegisterInfo
-// class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Blackfin.h"
-#include "BlackfinRegisterInfo.h"
-#include "BlackfinSubtarget.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/CodeGen/RegisterScavenging.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Type.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/ADT/STLExtras.h"
-using namespace llvm;
-
-BlackfinRegisterInfo::BlackfinRegisterInfo(BlackfinSubtarget &st,
-                                           const TargetInstrInfo &tii)
-  : BlackfinGenRegisterInfo(BF::ADJCALLSTACKDOWN, BF::ADJCALLSTACKUP),
-    Subtarget(st),
-    TII(tii) {}
-
-const unsigned*
-BlackfinRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
-  using namespace BF;
-  static const unsigned CalleeSavedRegs[] = {
-    FP,
-    R4, R5, R6, R7,
-    P3, P4, P5,
-    0 };
-  return  CalleeSavedRegs;
-}
-
-const TargetRegisterClass* const *BlackfinRegisterInfo::
-getCalleeSavedRegClasses(const MachineFunction *MF) const {
-  using namespace BF;
-  static const TargetRegisterClass * const CalleeSavedRegClasses[] = {
-    &PRegClass,
-    &DRegClass, &DRegClass, &DRegClass, &DRegClass,
-    &PRegClass, &PRegClass, &PRegClass,
-    0 };
-  return CalleeSavedRegClasses;
-}
-
-BitVector
-BlackfinRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  using namespace BF;
-  BitVector Reserved(getNumRegs());
-  Reserved.set(AZ);
-  Reserved.set(AN);
-  Reserved.set(AQ);
-  Reserved.set(AC0);
-  Reserved.set(AC1);
-  Reserved.set(AV0);
-  Reserved.set(AV0S);
-  Reserved.set(AV1);
-  Reserved.set(AV1S);
-  Reserved.set(V);
-  Reserved.set(VS);
-  Reserved.set(CYCLES).set(CYCLES2);
-  Reserved.set(L0);
-  Reserved.set(L1);
-  Reserved.set(L2);
-  Reserved.set(L3);
-  Reserved.set(SP);
-  Reserved.set(RETS);
-  if (hasFP(MF))
-    Reserved.set(FP);
-  return Reserved;
-}
-
-const TargetRegisterClass*
-BlackfinRegisterInfo::getPhysicalRegisterRegClass(unsigned reg, EVT VT) const {
-  assert(isPhysicalRegister(reg) && "reg must be a physical register");
-
-  // Pick the smallest register class of the right type that contains
-  // this physreg.
-  const TargetRegisterClass* BestRC = 0;
-  for (regclass_iterator I = regclass_begin(), E = regclass_end();
-       I != E; ++I) {
-    const TargetRegisterClass* RC = *I;
-    if ((VT == MVT::Other || RC->hasType(VT)) && RC->contains(reg) &&
-        (!BestRC || RC->getNumRegs() < BestRC->getNumRegs()))
-      BestRC = RC;
-  }
-
-  assert(BestRC && "Couldn't find the register class");
-  return BestRC;
-}
-
-// hasFP - Return true if the specified function should have a dedicated frame
-// pointer register.  This is true if the function has variable sized allocas or
-// if frame pointer elimination is disabled.
-bool BlackfinRegisterInfo::hasFP(const MachineFunction &MF) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  return NoFramePointerElim || MFI->hasCalls() || MFI->hasVarSizedObjects();
-}
-
-bool BlackfinRegisterInfo::
-requiresRegisterScavenging(const MachineFunction &MF) const {
-  return true;
-}
-
-// Emit instructions to add delta to D/P register. ScratchReg must be of the
-// same class as Reg (P).
-void BlackfinRegisterInfo::adjustRegister(MachineBasicBlock &MBB,
-                                          MachineBasicBlock::iterator I,
-                                          DebugLoc DL,
-                                          unsigned Reg,
-                                          unsigned ScratchReg,
-                                          int delta) const {
-  if (!delta)
-    return;
-  if (isInt<7>(delta)) {
-    BuildMI(MBB, I, DL, TII.get(BF::ADDpp_imm7), Reg)
-      .addReg(Reg)              // No kill on two-addr operand
-      .addImm(delta);
-    return;
-  }
-
-  // We must load delta into ScratchReg and add that.
-  loadConstant(MBB, I, DL, ScratchReg, delta);
-  if (BF::PRegClass.contains(Reg)) {
-    assert(BF::PRegClass.contains(ScratchReg) &&
-           "ScratchReg must be a P register");
-    BuildMI(MBB, I, DL, TII.get(BF::ADDpp), Reg)
-      .addReg(Reg, RegState::Kill)
-      .addReg(ScratchReg, RegState::Kill);
-  } else {
-    assert(BF::DRegClass.contains(Reg) && "Reg must be a D or P register");
-    assert(BF::DRegClass.contains(ScratchReg) &&
-           "ScratchReg must be a D register");
-    BuildMI(MBB, I, DL, TII.get(BF::ADD), Reg)
-      .addReg(Reg, RegState::Kill)
-      .addReg(ScratchReg, RegState::Kill);
-  }
-}
-
-// Emit instructions to load a constant into D/P register
-void BlackfinRegisterInfo::loadConstant(MachineBasicBlock &MBB,
-                                        MachineBasicBlock::iterator I,
-                                        DebugLoc DL,
-                                        unsigned Reg,
-                                        int value) const {
-  if (isInt<7>(value)) {
-    BuildMI(MBB, I, DL, TII.get(BF::LOADimm7), Reg).addImm(value);
-    return;
-  }
-
-  if (isUint<16>(value)) {
-    BuildMI(MBB, I, DL, TII.get(BF::LOADuimm16), Reg).addImm(value);
-    return;
-  }
-
-  if (isInt<16>(value)) {
-    BuildMI(MBB, I, DL, TII.get(BF::LOADimm16), Reg).addImm(value);
-    return;
-  }
-
-  // We must split into halves
-  BuildMI(MBB, I, DL,
-          TII.get(BF::LOAD16i), getSubReg(Reg, bfin_subreg_hi16))
-    .addImm((value >> 16) & 0xffff)
-    .addReg(Reg, RegState::ImplicitDefine);
-  BuildMI(MBB, I, DL,
-          TII.get(BF::LOAD16i), getSubReg(Reg, bfin_subreg_lo16))
-    .addImm(value & 0xffff)
-    .addReg(Reg, RegState::ImplicitKill)
-    .addReg(Reg, RegState::ImplicitDefine);
-}
-
-void BlackfinRegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF,
-                              MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  if (!hasReservedCallFrame(MF)) {
-    int64_t Amount = I->getOperand(0).getImm();
-    if (Amount != 0) {
-      assert(Amount%4 == 0 && "Unaligned call frame size");
-      if (I->getOpcode() == BF::ADJCALLSTACKDOWN) {
-        adjustRegister(MBB, I, I->getDebugLoc(), BF::SP, BF::P1, -Amount);
-      } else {
-        assert(I->getOpcode() == BF::ADJCALLSTACKUP &&
-               "Unknown call frame pseudo instruction");
-        adjustRegister(MBB, I, I->getDebugLoc(), BF::SP, BF::P1, Amount);
-      }
-    }
-  }
-  MBB.erase(I);
-}
-
-/// findScratchRegister - Find a 'free' register. Try for a call-clobbered
-/// register first and then a spilled callee-saved register if that fails.
-static unsigned findScratchRegister(MachineBasicBlock::iterator II,
-                                    RegScavenger *RS,
-                                    const TargetRegisterClass *RC,
-                                    int SPAdj) {
-  assert(RS && "Register scavenging must be on");
-  unsigned Reg = RS->FindUnusedReg(RC);
-  if (Reg == 0)
-    Reg = RS->scavengeRegister(RC, II, SPAdj);
-  return Reg;
-}
-
-void BlackfinRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
-                                               int SPAdj,
-                                               RegScavenger *RS) const {
-  MachineInstr &MI = *II;
-  MachineBasicBlock &MBB = *MI.getParent();
-  MachineFunction &MF = *MBB.getParent();
-  DebugLoc DL = MI.getDebugLoc();
-
-  unsigned FIPos;
-  for (FIPos=0; !MI.getOperand(FIPos).isFI(); ++FIPos) {
-    assert(FIPos < MI.getNumOperands() &&
-           "Instr doesn't have FrameIndex operand!");
-  }
-  int FrameIndex = MI.getOperand(FIPos).getIndex();
-  assert(FIPos+1 < MI.getNumOperands() && MI.getOperand(FIPos+1).isImm());
-  int Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex)
-    + MI.getOperand(FIPos+1).getImm();
-  unsigned BaseReg = BF::FP;
-  if (hasFP(MF)) {
-    assert(SPAdj==0 && "Unexpected SP adjust in function with frame pointer");
-  } else {
-    BaseReg = BF::SP;
-    Offset += MF.getFrameInfo()->getStackSize() + SPAdj;
-  }
-
-  bool isStore = false;
-
-  switch (MI.getOpcode()) {
-  case BF::STORE32fi:
-    isStore = true;
-  case BF::LOAD32fi: {
-    assert(Offset%4 == 0 && "Unaligned i32 stack access");
-    assert(FIPos==1 && "Bad frame index operand");
-    MI.getOperand(FIPos).ChangeToRegister(BaseReg, false);
-    MI.getOperand(FIPos+1).setImm(Offset);
-    if (isUint<6>(Offset)) {
-      MI.setDesc(TII.get(isStore
-                         ? BF::STORE32p_uimm6m4
-                         : BF::LOAD32p_uimm6m4));
-      return;
-    }
-    if (BaseReg == BF::FP && isUint<7>(-Offset)) {
-      MI.setDesc(TII.get(isStore
-                         ? BF::STORE32fp_nimm7m4
-                         : BF::LOAD32fp_nimm7m4));
-      MI.getOperand(FIPos+1).setImm(-Offset);
-      return;
-    }
-    if (isInt<18>(Offset)) {
-      MI.setDesc(TII.get(isStore
-                         ? BF::STORE32p_imm18m4
-                         : BF::LOAD32p_imm18m4));
-      return;
-    }
-    // Use RegScavenger to calculate proper offset...
-    MI.dump();
-    llvm_unreachable("Stack frame offset too big");
-    break;
-  }
-  case BF::ADDpp: {
-    assert(MI.getOperand(0).isReg() && "ADD instruction needs a register");
-    unsigned DestReg = MI.getOperand(0).getReg();
-    // We need to produce a stack offset in a P register. We emit:
-    // P0 = offset;
-    // P0 = BR + P0;
-    assert(FIPos==1 && "Bad frame index operand");
-    loadConstant(MBB, II, DL, DestReg, Offset);
-    MI.getOperand(1).ChangeToRegister(DestReg, false, false, true);
-    MI.getOperand(2).ChangeToRegister(BaseReg, false);
-    break;
-  }
-  case BF::STORE16fi:
-    isStore = true;
-  case BF::LOAD16fi: {
-    assert(Offset%2 == 0 && "Unaligned i16 stack access");
-    assert(FIPos==1 && "Bad frame index operand");
-    // We need a P register to use as an address
-    unsigned ScratchReg = findScratchRegister(II, RS, &BF::PRegClass, SPAdj);
-    assert(ScratchReg && "Could not scavenge register");
-    loadConstant(MBB, II, DL, ScratchReg, Offset);
-    BuildMI(MBB, II, DL, TII.get(BF::ADDpp), ScratchReg)
-      .addReg(ScratchReg, RegState::Kill)
-      .addReg(BaseReg);
-    MI.setDesc(TII.get(isStore ? BF::STORE16pi : BF::LOAD16pi));
-    MI.getOperand(1).ChangeToRegister(ScratchReg, false, false, true);
-    MI.RemoveOperand(2);
-    break;
-  }
-  case BF::STORE8fi: {
-    // This is an AnyCC spill, we need a scratch register.
-    assert(FIPos==1 && "Bad frame index operand");
-    MachineOperand SpillReg = MI.getOperand(0);
-    unsigned ScratchReg = findScratchRegister(II, RS, &BF::DRegClass, SPAdj);
-    assert(ScratchReg && "Could not scavenge register");
-    if (SpillReg.getReg()==BF::NCC) {
-      BuildMI(MBB, II, DL, TII.get(BF::MOVENCC_z), ScratchReg)
-        .addOperand(SpillReg);
-      BuildMI(MBB, II, DL, TII.get(BF::BITTGL), ScratchReg)
-        .addReg(ScratchReg).addImm(0);
-    } else {
-      BuildMI(MBB, II, DL, TII.get(BF::MOVECC_zext), ScratchReg)
-        .addOperand(SpillReg);
-    }
-    // STORE D
-    MI.setDesc(TII.get(BF::STORE8p_imm16));
-    MI.getOperand(0).ChangeToRegister(ScratchReg, false, false, true);
-    MI.getOperand(FIPos).ChangeToRegister(BaseReg, false);
-    MI.getOperand(FIPos+1).setImm(Offset);
-    break;
-  }
-  case BF::LOAD8fi: {
-    // This is an restore, we need a scratch register.
-    assert(FIPos==1 && "Bad frame index operand");
-    MachineOperand SpillReg = MI.getOperand(0);
-    unsigned ScratchReg = findScratchRegister(II, RS, &BF::DRegClass, SPAdj);
-    assert(ScratchReg && "Could not scavenge register");
-    MI.setDesc(TII.get(BF::LOAD32p_imm16_8z));
-    MI.getOperand(0).ChangeToRegister(ScratchReg, true);
-    MI.getOperand(FIPos).ChangeToRegister(BaseReg, false);
-    MI.getOperand(FIPos+1).setImm(Offset);
-    ++II;
-    if (SpillReg.getReg()==BF::CC) {
-      // CC = D
-      BuildMI(MBB, II, DL, TII.get(BF::MOVECC_nz), BF::CC)
-        .addReg(ScratchReg, RegState::Kill);
-    } else {
-      // Restore NCC (CC = D==0)
-      BuildMI(MBB, II, DL, TII.get(BF::SETEQri_not), BF::NCC)
-        .addReg(ScratchReg, RegState::Kill)
-        .addImm(0);
-    }
-    break;
-  }
-  default:
-    llvm_unreachable("Cannot eliminate frame index");
-    break;
-  }
-}
-
-void BlackfinRegisterInfo::
-processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                     RegScavenger *RS) const {
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  const TargetRegisterClass *RC = BF::DPRegisterClass;
-  if (requiresRegisterScavenging(MF)) {
-    // Reserve a slot close to SP or frame pointer.
-    RS->setScavengingFrameIndex(MFI->CreateStackObject(RC->getSize(),
-                                                       RC->getAlignment()));
-  }
-}
-
-void BlackfinRegisterInfo::
-processFunctionBeforeFrameFinalized(MachineFunction &MF) const {
-}
-
-// Emit a prologue that sets up a stack frame.
-// On function entry, R0-R2 and P0 may hold arguments.
-// R3, P1, and P2 may be used as scratch registers
-void BlackfinRegisterInfo::emitPrologue(MachineFunction &MF) const {
-  MachineBasicBlock &MBB = MF.front();   // Prolog goes in entry BB
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  DebugLoc dl = (MBBI != MBB.end()
-                 ? MBBI->getDebugLoc()
-                 : DebugLoc::getUnknownLoc());
-
-  int FrameSize = MFI->getStackSize();
-  if (FrameSize%4) {
-    FrameSize = (FrameSize+3) & ~3;
-    MFI->setStackSize(FrameSize);
-  }
-
-  if (!hasFP(MF)) {
-    assert(!MFI->hasCalls() &&
-           "FP elimination on a non-leaf function is not supported");
-    adjustRegister(MBB, MBBI, dl, BF::SP, BF::P1, -FrameSize);
-    return;
-  }
-
-  // emit a LINK instruction
-  if (FrameSize <= 0x3ffff) {
-    BuildMI(MBB, MBBI, dl, TII.get(BF::LINK)).addImm(FrameSize);
-    return;
-  }
-
-  // Frame is too big, do a manual LINK:
-  // [--SP] = RETS;
-  // [--SP] = FP;
-  // FP = SP;
-  // P1 = -FrameSize;
-  // SP = SP + P1;
-  BuildMI(MBB, MBBI, dl, TII.get(BF::PUSH))
-    .addReg(BF::RETS, RegState::Kill);
-  BuildMI(MBB, MBBI, dl, TII.get(BF::PUSH))
-    .addReg(BF::FP, RegState::Kill);
-  BuildMI(MBB, MBBI, dl, TII.get(BF::MOVE), BF::FP)
-    .addReg(BF::SP);
-  loadConstant(MBB, MBBI, dl, BF::P1, -FrameSize);
-  BuildMI(MBB, MBBI, dl, TII.get(BF::ADDpp), BF::SP)
-    .addReg(BF::SP, RegState::Kill)
-    .addReg(BF::P1, RegState::Kill);
-
-}
-
-void BlackfinRegisterInfo::emitEpilogue(MachineFunction &MF,
-                                        MachineBasicBlock &MBB) const {
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  DebugLoc dl = MBBI->getDebugLoc();
-
-  int FrameSize = MFI->getStackSize();
-  assert(FrameSize%4 == 0 && "Misaligned frame size");
-
-  if (!hasFP(MF)) {
-    assert(!MFI->hasCalls() &&
-           "FP elimination on a non-leaf function is not supported");
-    adjustRegister(MBB, MBBI, dl, BF::SP, BF::P1, FrameSize);
-    return;
-  }
-
-  // emit an UNLINK instruction
-  BuildMI(MBB, MBBI, dl, TII.get(BF::UNLINK));
-}
-
-unsigned BlackfinRegisterInfo::getRARegister() const {
-  return BF::RETS;
-}
-
-unsigned BlackfinRegisterInfo::getFrameRegister(MachineFunction &MF) const {
-  return hasFP(MF) ? BF::FP : BF::SP;
-}
-
-int
-BlackfinRegisterInfo::getFrameIndexOffset(MachineFunction &MF, int FI) const {
-  const TargetFrameInfo &TFI = *MF.getTarget().getFrameInfo();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  return MFI->getObjectOffset(FI) + MFI->getStackSize() -
-    TFI.getOffsetOfLocalArea() + MFI->getOffsetAdjustment();
-}
-
-unsigned BlackfinRegisterInfo::getEHExceptionRegister() const {
-  llvm_unreachable("What is the exception register");
-  return 0;
-}
-
-unsigned BlackfinRegisterInfo::getEHHandlerRegister() const {
-  llvm_unreachable("What is the exception handler register");
-  return 0;
-}
-
-int BlackfinRegisterInfo::getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  llvm_unreachable("What is the dwarf register number");
-  return -1;
-}
-
-#include "BlackfinGenRegisterInfo.inc"
-
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.h b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.h
deleted file mode 100644
index 57aea5d..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.h
+++ /dev/null
@@ -1,104 +0,0 @@
-//===- BlackfinRegisterInfo.h - Blackfin Register Information ..-*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Blackfin implementation of the TargetRegisterInfo
-// class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BLACKFINREGISTERINFO_H
-#define BLACKFINREGISTERINFO_H
-
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "BlackfinGenRegisterInfo.h.inc"
-
-namespace llvm {
-
-  class BlackfinSubtarget;
-  class TargetInstrInfo;
-  class Type;
-
-  // Subregister indices, keep in sync with BlackfinRegisterInfo.td
-  enum BfinSubregIdx {
-    bfin_subreg_lo16 = 1,
-    bfin_subreg_hi16 = 2,
-    bfin_subreg_lo32 = 3
-  };
-
-  struct BlackfinRegisterInfo : public BlackfinGenRegisterInfo {
-    BlackfinSubtarget &Subtarget;
-    const TargetInstrInfo &TII;
-
-    BlackfinRegisterInfo(BlackfinSubtarget &st, const TargetInstrInfo &tii);
-
-    /// Code Generation virtual methods...
-    const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const;
-
-    const TargetRegisterClass* const*
-    getCalleeSavedRegClasses(const MachineFunction *MF = 0) const;
-
-    BitVector getReservedRegs(const MachineFunction &MF) const;
-
-    // getSubReg implemented by tablegen
-
-    const TargetRegisterClass *getPointerRegClass(unsigned Kind = 0) const {
-      return &BF::PRegClass;
-    }
-
-    const TargetRegisterClass *getPhysicalRegisterRegClass(unsigned reg,
-                                                           EVT VT) const;
-
-    bool hasFP(const MachineFunction &MF) const;
-
-    // bool hasReservedCallFrame(MachineFunction &MF) const;
-
-    bool requiresRegisterScavenging(const MachineFunction &MF) const;
-
-    void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                       MachineBasicBlock &MBB,
-                                       MachineBasicBlock::iterator I) const;
-
-    void eliminateFrameIndex(MachineBasicBlock::iterator II,
-                             int SPAdj, RegScavenger *RS = NULL) const;
-
-    void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                              RegScavenger *RS) const;
-
-    void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
-
-    void emitPrologue(MachineFunction &MF) const;
-    void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-
-    unsigned getFrameRegister(MachineFunction &MF) const;
-    int getFrameIndexOffset(MachineFunction &MF, int FI) const;
-    unsigned getRARegister() const;
-
-    // Exception handling queries.
-    unsigned getEHExceptionRegister() const;
-    unsigned getEHHandlerRegister() const;
-
-    int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-
-    // Utility functions
-    void adjustRegister(MachineBasicBlock &MBB,
-                        MachineBasicBlock::iterator I,
-                        DebugLoc DL,
-                        unsigned Reg,
-                        unsigned ScratchReg,
-                        int delta) const;
-    void loadConstant(MachineBasicBlock &MBB,
-                      MachineBasicBlock::iterator I,
-                      DebugLoc DL,
-                      unsigned Reg,
-                      int value) const;
-  };
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.td b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.td
deleted file mode 100644
index 642d10f..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.td
+++ /dev/null
@@ -1,385 +0,0 @@
-//===- BlackfinRegisterInfo.td - Blackfin Register defs ----*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Declarations that describe the Blackfin register file
-//===----------------------------------------------------------------------===//
-
-// Registers are identified with 3-bit group and 3-bit ID numbers.
-
-class BlackfinReg<string n> : Register<n> {
-  field bits<3> Group;
-  field bits<3> Num;
-  let Namespace = "BF";
-}
-
-// Rc - 1-bit registers
-class Rc<bits<5> bitno, string n> : BlackfinReg<n> {
-  field bits<5> BitNum = bitno;
-}
-
-// Rs - 16-bit integer registers
-class Rs<bits<3> group, bits<3> num, bits<1> hi, string n> : BlackfinReg<n> {
-  let Group = group;
-  let Num = num;
-  field bits<1> High = hi;
-}
-
-// Ri - 32-bit integer registers with subregs
-class Ri<bits<3> group, bits<3> num, string n> : BlackfinReg<n> {
-  let Group = group;
-  let Num = num;
-}
-
-// Ra 40-bit accumulator registers
-class Ra<bits<3> num, string n, list<Register> subs> : BlackfinReg<n> {
-  let SubRegs = subs;
-  let Group = 4;
-  let Num = num;
-}
-
-// Ywo halves of 32-bit register
-multiclass Rss<bits<3> group, bits<3> num, string n> {
-  def H : Rs<group, num, 1, !strconcat(n, ".h")>;
-  def L : Rs<group, num, 0, !strconcat(n, ".l")>;
-}
-
-// Rii - 32-bit integer registers with subregs
-class Rii<bits<3> group, bits<3> num, string n, list<Register> subs>
-      : BlackfinReg<n> {
-  let SubRegs = subs;
-  let Group = group;
-  let Num = num;
-}
-
-// Status bits are all part of ASTAT
-def AZ   : Rc<0,  "az">;
-def AN   : Rc<1,  "an">;
-def CC   : Rc<5,  "cc">, DwarfRegNum<[34]>;
-def NCC  : Rc<5,  "!cc"> { let Aliases = [CC]; }
-def AQ   : Rc<6,  "aq">;
-def AC0  : Rc<12, "ac0">;
-def AC1  : Rc<13, "ac1">;
-def AV0  : Rc<16, "av0">;
-def AV0S : Rc<17, "av0s">;
-def AV1  : Rc<18, "av1">;
-def AV1S : Rc<19, "av1s">;
-def V    : Rc<24, "v">;
-def VS   : Rc<25, "vs">;
-// Skipped non-status bits: AC0_COPY, V_COPY, RND_MOD
-
-// Group 0: Integer registers
-defm R0 : Rss<0, 0, "r0">;
-def  R0 : Rii<0, 0, "r0", [R0H, R0L]>, DwarfRegNum<[0]>;
-defm R1 : Rss<0, 1, "r1">;
-def  R1 : Rii<0, 1, "r1", [R1H, R1L]>, DwarfRegNum<[1]>;
-defm R2 : Rss<0, 2, "r2">;
-def  R2 : Rii<0, 2, "r2", [R2H, R2L]>, DwarfRegNum<[2]>;
-defm R3 : Rss<0, 3, "r3">;
-def  R3 : Rii<0, 3, "r3", [R3H, R3L]>, DwarfRegNum<[3]>;
-defm R4 : Rss<0, 4, "r4">;
-def  R4 : Rii<0, 4, "r4", [R4H, R4L]>, DwarfRegNum<[4]>;
-defm R5 : Rss<0, 5, "r5">;
-def  R5 : Rii<0, 5, "r5", [R5H, R5L]>, DwarfRegNum<[5]>;
-defm R6 : Rss<0, 6, "r6">;
-def  R6 : Rii<0, 6, "r6", [R6H, R6L]>, DwarfRegNum<[6]>;
-defm R7 : Rss<0, 7, "r7">;
-def  R7 : Rii<0, 7, "r7", [R7H, R7L]>, DwarfRegNum<[7]>;
-
-// Group 1: Pointer registers
-defm P0 : Rss<1, 0, "p0">;
-def  P0 : Rii<1, 0, "p0", [P0H, P0L]>, DwarfRegNum<[8]>;
-defm P1 : Rss<1, 1, "p1">;
-def  P1 : Rii<1, 1, "p1", [P1H, P1L]>, DwarfRegNum<[9]>;
-defm P2 : Rss<1, 2, "p2">;
-def  P2 : Rii<1, 2, "p2", [P2H, P2L]>, DwarfRegNum<[10]>;
-defm P3 : Rss<1, 3, "p3">;
-def  P3 : Rii<1, 3, "p3", [P3H, P3L]>, DwarfRegNum<[11]>;
-defm P4 : Rss<1, 4, "p4">;
-def  P4 : Rii<1, 4, "p4", [P4H, P4L]>, DwarfRegNum<[12]>;
-defm P5 : Rss<1, 5, "p5">;
-def  P5 : Rii<1, 5, "p5", [P5H, P5L]>, DwarfRegNum<[13]>;
-defm SP : Rss<1, 6, "sp">;
-def  SP : Rii<1, 6, "sp", [SPH, SPL]>, DwarfRegNum<[14]>;
-defm FP : Rss<1, 7, "fp">;
-def  FP : Rii<1, 7, "fp", [FPH, FPL]>, DwarfRegNum<[15]>;
-
-// Group 2: Index registers
-defm I0 : Rss<2, 0, "i0">;
-def  I0 : Rii<2, 0, "i0", [I0H, I0L]>, DwarfRegNum<[16]>;
-defm I1 : Rss<2, 1, "i1">;
-def  I1 : Rii<2, 1, "i1", [I1H, I1L]>, DwarfRegNum<[17]>;
-defm I2 : Rss<2, 2, "i2">;
-def  I2 : Rii<2, 2, "i2", [I2H, I2L]>, DwarfRegNum<[18]>;
-defm I3 : Rss<2, 3, "i3">;
-def  I3 : Rii<2, 3, "i3", [I3H, I3L]>, DwarfRegNum<[19]>;
-defm M0 : Rss<2, 4, "m0">;
-def  M0 : Rii<2, 4, "m0", [M0H, M0L]>, DwarfRegNum<[20]>;
-defm M1 : Rss<2, 5, "m1">;
-def  M1 : Rii<2, 5, "m1", [M1H, M1L]>, DwarfRegNum<[21]>;
-defm M2 : Rss<2, 6, "m2">;
-def  M2 : Rii<2, 6, "m2", [M2H, M2L]>, DwarfRegNum<[22]>;
-defm M3 : Rss<2, 7, "m3">;
-def  M3 : Rii<2, 7, "m3", [M3H, M3L]>, DwarfRegNum<[23]>;
-
-// Group 3: Cyclic indexing registers
-defm B0 : Rss<3, 0, "b0">;
-def  B0 : Rii<3, 0, "b0", [B0H, B0L]>, DwarfRegNum<[24]>;
-defm B1 : Rss<3, 1, "b1">;
-def  B1 : Rii<3, 1, "b1", [B1H, B1L]>, DwarfRegNum<[25]>;
-defm B2 : Rss<3, 2, "b2">;
-def  B2 : Rii<3, 2, "b2", [B2H, B2L]>, DwarfRegNum<[26]>;
-defm B3 : Rss<3, 3, "b3">;
-def  B3 : Rii<3, 3, "b3", [B3H, B3L]>, DwarfRegNum<[27]>;
-defm L0 : Rss<3, 4, "l0">;
-def  L0 : Rii<3, 4, "l0", [L0H, L0L]>, DwarfRegNum<[28]>;
-defm L1 : Rss<3, 5, "l1">;
-def  L1 : Rii<3, 5, "l1", [L1H, L1L]>, DwarfRegNum<[29]>;
-defm L2 : Rss<3, 6, "l2">;
-def  L2 : Rii<3, 6, "l2", [L2H, L2L]>, DwarfRegNum<[30]>;
-defm L3 : Rss<3, 7, "l3">;
-def  L3 : Rii<3, 7, "l3", [L3H, L3L]>, DwarfRegNum<[31]>;
-
-// Accumulators
-def  A0X : Ri <4, 0, "a0.x">;
-defm A0  : Rss<4, 1, "a0">;
-def  A0W : Rii<4, 1, "a0.w", [A0H, A0L]>, DwarfRegNum<[32]>;
-def  A0  : Ra <0, "a0", [A0X, A0W]>;
-
-def  A1X : Ri <4, 2, "a1.x">;
-defm A1  : Rss<4, 3, "a1">;
-def  A1W : Rii<4, 3, "a1.w", [A1H, A1L]>, DwarfRegNum<[33]>;
-def  A1  : Ra <2, "a1", [A1X, A1W]>;
-
-def RETS : Ri<4, 7, "rets">,  DwarfRegNum<[35]>;
-def RETI : Ri<7, 3, "reti">,  DwarfRegNum<[36]>;
-def RETX : Ri<7, 4, "retx">,  DwarfRegNum<[37]>;
-def RETN : Ri<7, 5, "retn">,  DwarfRegNum<[38]>;
-def RETE : Ri<7, 6, "rete">,  DwarfRegNum<[39]>;
-
-def ASTAT   : Ri<4, 6, "astat">,   DwarfRegNum<[40]> {
-  let SubRegs = [AZ, AN, CC, NCC, AQ, AC0, AC1, AV0, AV0S, AV1, AV1S, V, VS];
-}
-
-def SEQSTAT : Ri<7, 1, "seqstat">, DwarfRegNum<[41]>;
-def USP     : Ri<7, 0, "usp">,     DwarfRegNum<[42]>;
-def EMUDAT  : Ri<7, 7, "emudat">,  DwarfRegNum<[43]>;
-def SYSCFG  : Ri<7, 2, "syscfg">;
-def CYCLES  : Ri<6, 6, "cycles">;
-def CYCLES2 : Ri<6, 7, "cycles2">;
-
-// Hardware loops
-def LT0 : Ri<6, 1, "lt0">, DwarfRegNum<[44]>;
-def LT1 : Ri<6, 4, "lt1">, DwarfRegNum<[45]>;
-def LC0 : Ri<6, 0, "lc0">, DwarfRegNum<[46]>;
-def LC1 : Ri<6, 3, "lc1">, DwarfRegNum<[47]>;
-def LB0 : Ri<6, 2, "lb0">, DwarfRegNum<[48]>;
-def LB1 : Ri<6, 5, "lb1">, DwarfRegNum<[49]>;
-
-// Subregs are:
-// 1: .L
-// 2: .H
-// 3: .W (32 low bits of 40-bit accu)
-// Keep in sync with enum in BlackfinRegisterInfo.h
-def bfin_subreg_lo16  : PatLeaf<(i32 1)>;
-def bfin_subreg_hi16  : PatLeaf<(i32 2)>;
-def bfin_subreg_32bit : PatLeaf<(i32 3)>;
-
-def : SubRegSet<1,
-    [R0,  R1,  R2,  R3,  R4,  R5,  R6,  R7,
-     P0,  P1,  P2,  P3,  P4,  P5,  SP,  FP,
-     I0,  I1,  I2,  I3,  M0,  M1,  M2,  M3,
-     B0,  B1,  B2,  B3,  L0,  L1,  L2,  L3],
-    [R0L, R1L, R2L, R3L, R4L, R5L, R6L, R7L,
-     P0L, P1L, P2L, P3L, P4L, P5L, SPL, FPL,
-     I0L, I1L, I2L, I3L, M0L, M1L, M2L, M3L,
-     B0L, B1L, B2L, B3L, L0L, L1L, L2L, L3L]>;
-
-def : SubRegSet<2,
-    [R0,  R1,  R2,  R3,  R4,  R5,  R6,  R7,
-     P0,  P1,  P2,  P3,  P4,  P5,  SP,  FP,
-     I0,  I1,  I2,  I3,  M0,  M1,  M2,  M3,
-     B0,  B1,  B2,  B3,  L0,  L1,  L2,  L3],
-    [R0H, R1H, R2H, R3H, R4H, R5H, R6H, R7H,
-     P0H, P1H, P2H, P3H, P4H, P5H, SPH, FPH,
-     I0H, I1H, I2H, I3H, M0H, M1H, M2H, M3H,
-     B0H, B1H, B2H, B3H, L0H, L1H, L2H, L3H]>;
-
-def : SubRegSet<1, [A0, A0W, A1, A1W], [A0L, A0L, A1L, A1L]>;
-def : SubRegSet<2, [A0, A0W, A1, A1W], [A0H, A0H, A1H, A1H]>;
-
-// Register classes.
-def D16 : RegisterClass<"BF", [i16], 16,
-    [R0H, R0L, R1H, R1L, R2H, R2L, R3H, R3L,
-     R4H, R4L, R5H, R5L, R6H, R6L, R7H, R7L]>;
-
-def D16L : RegisterClass<"BF", [i16], 16,
-    [R0L, R1L, R2L, R3L, R4L, R5L, R6L, R7L]>;
-
-def D16H : RegisterClass<"BF", [i16], 16,
-    [R0H, R1H, R2H, R3H, R4H, R5H, R6H, R7H]>;
-
-def P16 : RegisterClass<"BF", [i16], 16,
-    [P0H, P0L, P1H, P1L, P2H, P2L, P3H, P3L,
-     P4H, P4L, P5H, P5L, SPH, SPL, FPH, FPL]>;
-
-def P16L : RegisterClass<"BF", [i16], 16,
-    [P0L, P1L, P2L, P3L, P4L, P5L, SPL, FPL]>;
-
-def P16H : RegisterClass<"BF", [i16], 16,
-    [P0H, P1H, P2H, P3H, P4H, P5H, SPH, FPH]>;
-
-def DP16 : RegisterClass<"BF", [i16], 16,
-    [R0H, R0L, R1H, R1L, R2H, R2L, R3H, R3L,
-     R4H, R4L, R5H, R5L, R6H, R6L, R7H, R7L,
-     P0H, P0L, P1H, P1L, P2H, P2L, P3H, P3L,
-     P4H, P4L, P5H, P5L, SPH, SPL, FPH, FPL]>;
-
-def DP16L : RegisterClass<"BF", [i16], 16,
-    [R0L, R1L, R2L, R3L, R4L, R5L, R6L, R7L,
-     P0L, P1L, P2L, P3L, P4L, P5L, SPL, FPL]>;
-
-def DP16H : RegisterClass<"BF", [i16], 16,
-    [R0H, R1H, R2H, R3H, R4H, R5H, R6H, R7H,
-     P0H, P1H, P2H, P3H, P4H, P5H, SPH, FPH]>;
-
-def GR16 : RegisterClass<"BF", [i16], 16,
-    [R0H, R0L, R1H, R1L, R2H, R2L, R3H, R3L,
-     R4H, R4L, R5H, R5L, R6H, R6L, R7H, R7L,
-     P0H, P0L, P1H, P1L, P2H, P2L, P3H, P3L,
-     P4H, P4L, P5H, P5L, SPH, SPL, FPH, FPL,
-     I0H, I0L, I1H, I1L, I2H, I2L, I3H, I3L,
-     M0H, M0L, M1H, M1L, M2H, M2L, M3H, M3L,
-     B0H, B0L, B1H, B1L, B2H, B2L, B3H, B3L,
-     L0H, L0L, L1H, L1L, L2H, L2L, L3H, L3L]>;
-
-def D : RegisterClass<"BF", [i32], 32, [R0, R1, R2, R3, R4, R5, R6, R7]> {
-  let SubRegClassList = [D16L, D16H];
-}
-
-def P : RegisterClass<"BF", [i32], 32, [P0, P1, P2, P3, P4, P5, FP, SP]> {
-  let SubRegClassList = [P16L, P16H];
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    PClass::iterator
-    PClass::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      return allocation_order_begin(MF)
-             + (RI->hasFP(MF) ? 7 : 6);
-    }
-  }];
-}
-
-def I : RegisterClass<"BF", [i32], 32, [I0, I1, I2, I3]>;
-def M : RegisterClass<"BF", [i32], 32, [M0, M1, M2, M3]>;
-def B : RegisterClass<"BF", [i32], 32, [B0, B1, B2, B3]>;
-def L : RegisterClass<"BF", [i32], 32, [L0, L1, L2, L3]>;
-
-def DP : RegisterClass<"BF", [i32], 32,
-    [R0, R1, R2, R3, R4, R5, R6, R7,
-     P0, P1, P2, P3, P4, P5, FP, SP]> {
-  let SubRegClassList = [DP16L, DP16H];
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    DPClass::iterator
-    DPClass::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      return allocation_order_begin(MF)
-             + (RI->hasFP(MF) ? 15 : 14);
-    }
-  }];
-}
-
-def GR : RegisterClass<"BF", [i32], 32,
-    [R0, R1, R2, R3, R4, R5, R6, R7,
-     P0, P1, P2, P3, P4, P5,
-     I0, I1, I2, I3, M0, M1, M2, M3,
-     B0, B1, B2, B3, L0, L1, L2, L3,
-     FP, SP]> {
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    GRClass::iterator
-    GRClass::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      return allocation_order_begin(MF)
-             + (RI->hasFP(MF) ? 31 : 30);
-    }
-  }];
-}
-
-def ALL : RegisterClass<"BF", [i32], 32,
-    [R0, R1, R2, R3, R4, R5, R6, R7,
-     P0, P1, P2, P3, P4, P5,
-     I0, I1, I2, I3, M0, M1, M2, M3,
-     B0, B1, B2, B3, L0, L1, L2, L3,
-     FP, SP,
-     A0X, A0W, A1X, A1W, ASTAT, RETS,
-     LC0, LT0, LB0, LC1, LT1, LB1, CYCLES, CYCLES2,
-     USP, SEQSTAT, SYSCFG, RETI, RETX, RETN, RETE, EMUDAT]> {
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    ALLClass::iterator
-    ALLClass::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      return allocation_order_begin(MF)
-             + (RI->hasFP(MF) ? 31 : 30);
-    }
-  }];
-}
-
-def PI : RegisterClass<"BF", [i32], 32,
-    [P0, P1, P2, P3, P4, P5, I0, I1, I2, I3, FP, SP]> {
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    PIClass::iterator
-    PIClass::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      return allocation_order_begin(MF)
-             + (RI->hasFP(MF) ? 11 : 10);
-    }
-  }];
-}
-
-// We are going to pretend that CC and !CC are 32-bit registers, even though
-// they only can hold 1 bit.
-let CopyCost = -1, Size = 8 in {
-def JustCC  : RegisterClass<"BF", [i32], 8, [CC]>;
-def NotCC   : RegisterClass<"BF", [i32], 8, [NCC]>;
-def AnyCC   : RegisterClass<"BF", [i32], 8, [CC, NCC]> {
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    AnyCCClass::iterator
-    AnyCCClass::allocation_order_end(const MachineFunction &MF) const {
-      return allocation_order_begin(MF)+1;
-    }
-  }];
-}
-def StatBit : RegisterClass<"BF", [i1], 8,
-    [AZ, AN, CC, AQ, AC0, AC1, AV0, AV0S, AV1, AV1S, V, VS]>;
-}
-
-// Should be i40, but that isn't defined. It is not a legal type yet anyway.
-def Accu : RegisterClass<"BF", [i64], 64, [A0, A1]>;
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp
deleted file mode 100644
index e104c52..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//===- BlackfinSubtarget.cpp - BLACKFIN Subtarget Information -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the blackfin specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BlackfinSubtarget.h"
-#include "BlackfinGenSubtarget.inc"
-
-using namespace llvm;
-
-BlackfinSubtarget::BlackfinSubtarget(const std::string &TT,
-                                     const std::string &FS)
-  : sdram(false),
-    icplb(false),
-    wa_mi_shift(false),
-    wa_csync(false),
-    wa_specld(false),
-    wa_mmr_stall(false),
-    wa_lcregs(false),
-    wa_hwloop(false),
-    wa_ind_call(false),
-    wa_killed_mmr(false),
-    wa_rets(false)
-{
-  std::string CPU = "generic";
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinSubtarget.h b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinSubtarget.h
deleted file mode 100644
index d667fe2..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinSubtarget.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//===- BlackfinSubtarget.h - Define Subtarget for the Blackfin -*- C++ -*-====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the BLACKFIN specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BLACKFIN_SUBTARGET_H
-#define BLACKFIN_SUBTARGET_H
-
-#include "llvm/Target/TargetSubtarget.h"
-#include <string>
-
-namespace llvm {
-
-  class BlackfinSubtarget : public TargetSubtarget {
-    bool sdram;
-    bool icplb;
-    bool wa_mi_shift;
-    bool wa_csync;
-    bool wa_specld;
-    bool wa_mmr_stall;
-    bool wa_lcregs;
-    bool wa_hwloop;
-    bool wa_ind_call;
-    bool wa_killed_mmr;
-    bool wa_rets;
-  public:
-    BlackfinSubtarget(const std::string &TT, const std::string &FS);
-
-    /// ParseSubtargetFeatures - Parses features string setting specified
-    /// subtarget options.  Definition of function is auto generated by tblgen.
-    std::string ParseSubtargetFeatures(const std::string &FS,
-                                       const std::string &CPU);
-  };
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp
deleted file mode 100644
index 47ba2fe..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//===-- BlackfinTargetMachine.cpp - Define TargetMachine for Blackfin -----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#include "BlackfinTargetMachine.h"
-#include "Blackfin.h"
-#include "BlackfinMCAsmInfo.h"
-#include "llvm/PassManager.h"
-#include "llvm/Target/TargetRegistry.h"
-
-using namespace llvm;
-
-extern "C" void LLVMInitializeBlackfinTarget() {
-  RegisterTargetMachine<BlackfinTargetMachine> X(TheBlackfinTarget);
-  RegisterAsmInfo<BlackfinMCAsmInfo> Y(TheBlackfinTarget);
-
-}
-
-BlackfinTargetMachine::BlackfinTargetMachine(const Target &T,
-                                             const std::string &TT,
-                                             const std::string &FS)
-  : LLVMTargetMachine(T, TT),
-    DataLayout("e-p:32:32-i64:32-f64:32"),
-    Subtarget(TT, FS),
-    TLInfo(*this),
-    InstrInfo(Subtarget),
-    FrameInfo(TargetFrameInfo::StackGrowsDown, 4, 0) {
-}
-
-bool BlackfinTargetMachine::addInstSelector(PassManagerBase &PM,
-                                            CodeGenOpt::Level OptLevel) {
-  PM.add(createBlackfinISelDag(*this, OptLevel));
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h b/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h
deleted file mode 100644
index 73ed314..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h
+++ /dev/null
@@ -1,54 +0,0 @@
-//===-- BlackfinTargetMachine.h - TargetMachine for Blackfin ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Blackfin specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BLACKFINTARGETMACHINE_H
-#define BLACKFINTARGETMACHINE_H
-
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "BlackfinInstrInfo.h"
-#include "BlackfinSubtarget.h"
-#include "BlackfinISelLowering.h"
-
-namespace llvm {
-
-  class BlackfinTargetMachine : public LLVMTargetMachine {
-    const TargetData DataLayout;
-    BlackfinSubtarget Subtarget;
-    BlackfinTargetLowering TLInfo;
-    BlackfinInstrInfo InstrInfo;
-    TargetFrameInfo FrameInfo;
-  public:
-    BlackfinTargetMachine(const Target &T, const std::string &TT,
-                          const std::string &FS);
-
-    virtual const BlackfinInstrInfo *getInstrInfo() const { return &InstrInfo; }
-    virtual const TargetFrameInfo *getFrameInfo() const { return &FrameInfo; }
-    virtual const BlackfinSubtarget *getSubtargetImpl() const {
-      return &Subtarget;
-    }
-    virtual const BlackfinRegisterInfo *getRegisterInfo() const {
-      return &InstrInfo.getRegisterInfo();
-    }
-    virtual BlackfinTargetLowering* getTargetLowering() const {
-      return const_cast<BlackfinTargetLowering*>(&TLInfo);
-    }
-    virtual const TargetData *getTargetData() const { return &DataLayout; }
-    virtual bool addInstSelector(PassManagerBase &PM,
-                                 CodeGenOpt::Level OptLevel);
-  };
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Blackfin/CMakeLists.txt
deleted file mode 100644
index 6c3b244..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS Blackfin.td)
-
-tablegen(BlackfinGenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(BlackfinGenRegisterNames.inc -gen-register-enums)
-tablegen(BlackfinGenRegisterInfo.inc -gen-register-desc)
-tablegen(BlackfinGenInstrNames.inc -gen-instr-enums)
-tablegen(BlackfinGenInstrInfo.inc -gen-instr-desc)
-tablegen(BlackfinGenAsmWriter.inc -gen-asm-writer)
-tablegen(BlackfinGenDAGISel.inc -gen-dag-isel)
-tablegen(BlackfinGenSubtarget.inc -gen-subtarget)
-tablegen(BlackfinGenCallingConv.inc -gen-callingconv)
-
-add_llvm_target(BlackfinCodeGen
-  BlackfinInstrInfo.cpp
-  BlackfinISelDAGToDAG.cpp
-  BlackfinISelLowering.cpp
-  BlackfinMCAsmInfo.cpp
-  BlackfinRegisterInfo.cpp
-  BlackfinSubtarget.cpp
-  BlackfinTargetMachine.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/Makefile b/libclamav/c++/llvm/lib/Target/Blackfin/Makefile
deleted file mode 100644
index c0c1bce..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-##===- lib/Target/Blackfin/Makefile ------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMBlackfinCodeGen
-TARGET = Blackfin
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = BlackfinGenRegisterInfo.h.inc BlackfinGenRegisterNames.inc \
-                BlackfinGenRegisterInfo.inc BlackfinGenInstrNames.inc \
-                BlackfinGenInstrInfo.inc BlackfinGenAsmWriter.inc \
-                BlackfinGenDAGISel.inc BlackfinGenSubtarget.inc \
-		BlackfinGenCallingConv.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/README.txt b/libclamav/c++/llvm/lib/Target/Blackfin/README.txt
deleted file mode 100644
index b4c8227..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/README.txt
+++ /dev/null
@@ -1,244 +0,0 @@
-//===-- README.txt - Notes for Blackfin Target ------------------*- org -*-===//
-
-* Condition codes
-** DONE Problem with asymmetric SETCC operations
-The instruction
-
-  CC = R0 < 2
-
-is not symmetric - there is no R0 > 2 instruction. On the other hand, IF CC
-JUMP can take both CC and !CC as a condition. We cannot pattern-match (brcond
-(not cc), target), the DAG optimizer removes that kind of thing.
-
-This is handled by creating a pseudo-register NCC that aliases CC. Register
-classes JustCC and NotCC are used to control the inversion of CC.
-
-** DONE CC as an i32 register
-The AnyCC register class pretends to hold i32 values. It can only represent the
-values 0 and 1, but we can copy to and from the D class. This hack makes it
-possible to represent the setcc instruction without having i1 as a legal type.
-
-In most cases, the CC register is set by a "CC = .." or BITTST instruction, and
-then used in a conditional branch or move. The code generator thinks it is
-moving 32 bits, but the value stays in CC. In other cases, the result of a
-comparison is actually used as am i32 number, and CC will be copied to a D
-register.
-
-* Stack frames
-** TODO Use Push/Pop instructions
-We should use the push/pop instructions when saving callee-saved
-registers. The are smaller, and we may even use push multiple instructions.
-
-** TODO requiresRegisterScavenging
-We need more intelligence in determining when the scavenger is needed. We
-should keep track of:
-- Spilling D16 registers
-- Spilling AnyCC registers
-
-* Assembler
-** TODO Implement PrintGlobalVariable
-** TODO Remove LOAD32sym
-It's a hack combining two instructions by concatenation.
-
-* Inline Assembly
-
-These are the GCC constraints from bfin/constraints.md:
-
-| Code  | Register class                            | LLVM |
-|-------+-------------------------------------------+------|
-| a     | P                                         | C    |
-| d     | D                                         | C    |
-| z     | Call clobbered P (P0, P1, P2)             | X    |
-| D     | EvenD                                     | X    |
-| W     | OddD                                      | X    |
-| e     | Accu                                      | C    |
-| A     | A0                                        | S    |
-| B     | A1                                        | S    |
-| b     | I                                         | C    |
-| v     | B                                         | C    |
-| f     | M                                         | C    |
-| c     | Circular I, B, L                          | X    |
-| C     | JustCC                                    | S    |
-| t     | LoopTop                                   | X    |
-| u     | LoopBottom                                | X    |
-| k     | LoopCount                                 | X    |
-| x     | GR                                        | C    |
-| y     | RET*, ASTAT, SEQSTAT, USP                 | X    |
-| w     | ALL                                       | C    |
-| Z     | The FD-PIC GOT pointer (P3)               | S    |
-| Y     | The FD-PIC function pointer register (P1) | S    |
-| q0-q7 | R0-R7 individually                        |      |
-| qA    | P0                                        |      |
-|-------+-------------------------------------------+------|
-| Code  | Constant                                  |      |
-|-------+-------------------------------------------+------|
-| J     | 1<<N, N<32                                |      |
-| Ks3   | imm3                                      |      |
-| Ku3   | uimm3                                     |      |
-| Ks4   | imm4                                      |      |
-| Ku4   | uimm4                                     |      |
-| Ks5   | imm5                                      |      |
-| Ku5   | uimm5                                     |      |
-| Ks7   | imm7                                      |      |
-| KN7   | -imm7                                     |      |
-| Ksh   | imm16                                     |      |
-| Kuh   | uimm16                                    |      |
-| L     | ~(1<<N)                                   |      |
-| M1    | 0xff                                      |      |
-| M2    | 0xffff                                    |      |
-| P0-P4 | 0-4                                       |      |
-| PA    | Macflag, not M                            |      |
-| PB    | Macflag, only M                           |      |
-| Q     | Symbol                                    |      |
-
-** TODO Support all register classes
-* DAG combiner
-** Create test case for each Illegal SETCC case
-The DAG combiner may someimes produce illegal i16 SETCC instructions.
-
-*** TODO SETCC (ctlz x), 5) == const
-*** TODO SETCC (and load, const) == const
-*** DONE SETCC (zext x) == const
-*** TODO SETCC (sext x) == const
-
-* Instruction selection
-** TODO Better imediate constants
-Like ARM, build constants as small imm + shift.
-
-** TODO Implement cycle counter
-We have CYCLES and CYCLES2 registers, but the readcyclecounter intrinsic wants
-to return i64, and the code generator doesn't know how to legalize that.
-
-** TODO Instruction alternatives
-Some instructions come in different variants for example:
-
-  D = D + D
-  P = P + P
-
-Cross combinations are not allowed:
-
-  P = D + D (bad)
-
-Similarly for the subreg pseudo-instructions:
-
- D16L = EXTRACT_SUBREG D16, bfin_subreg_lo16
- P16L = EXTRACT_SUBREG P16, bfin_subreg_lo16
-
-We want to take advantage of the alternative instructions. This could be done by
-changing the DAG after instruction selection.
-
-
-** Multipatterns for load/store
-We should try to identify multipatterns for load and store instructions. The
-available instruction matrix is a bit irregular.
-
-Loads:
-
-| Addr       | D | P | D 16z | D 16s | D16 | D 8z | D 8s |
-|------------+---+---+-------+-------+-----+------+------|
-| P          | * | * | *     | *     | *   | *    | *    |
-| P++        | * | * | *     | *     |     | *    | *    |
-| P--        | * | * | *     | *     |     | *    | *    |
-| P+uimm5m2  |   |   | *     | *     |     |      |      |
-| P+uimm6m4  | * | * |       |       |     |      |      |
-| P+imm16    |   |   |       |       |     | *    | *    |
-| P+imm17m2  |   |   | *     | *     |     |      |      |
-| P+imm18m4  | * | * |       |       |     |      |      |
-| P++P       | * |   | *     | *     | *   |      |      |
-| FP-uimm7m4 | * | * |       |       |     |      |      |
-| I          | * |   |       |       | *   |      |      |
-| I++        | * |   |       |       | *   |      |      |
-| I--        | * |   |       |       | *   |      |      |
-| I++M       | * |   |       |       |     |      |      |
-
-Stores:
-
-| Addr       | D | P | D16H | D16L | D 8 |
-|------------+---+---+------+------+-----|
-| P          | * | * | *    | *    | *   |
-| P++        | * | * |      | *    | *   |
-| P--        | * | * |      | *    | *   |
-| P+uimm5m2  |   |   |      | *    |     |
-| P+uimm6m4  | * | * |      |      |     |
-| P+imm16    |   |   |      |      | *   |
-| P+imm17m2  |   |   |      | *    |     |
-| P+imm18m4  | * | * |      |      |     |
-| P++P       | * |   | *    | *    |     |
-| FP-uimm7m4 | * | * |      |      |     |
-| I          | * |   | *    | *    |     |
-| I++        | * |   | *    | *    |     |
-| I--        | * |   | *    | *    |     |
-| I++M       | * |   |      |      |     |
-
-* Workarounds and features
-Blackfin CPUs have bugs. Each model comes in a number of silicon revisions with
-different bugs. We learn about the CPU model from the -mcpu switch.
-
-** Interpretation of -mcpu value
-- -mcpu=bf527 refers to the latest known BF527 revision
-- -mcpu=bf527-0.2 refers to silicon rev. 0.2
-- -mcpu=bf527-any refers to all known revisions
-- -mcpu=bf527-none disables all workarounds
-
-The -mcpu setting affects the __SILICON_REVISION__ macro and enabled workarounds:
-
-| -mcpu      | __SILICON_REVISION__ | Workarounds        |
-|------------+----------------------+--------------------|
-| bf527      | Def Latest           | Specific to latest |
-| bf527-1.3  | Def 0x0103           | Specific to 1.3    |
-| bf527-any  | Def 0xffff           | All bf527-x.y      |
-| bf527-none | Undefined            | None               |
-
-These are the known cores and revisions:
-
-| Core        | Silicon            | Processors              |
-|-------------+--------------------+-------------------------|
-| Edinburgh   | 0.3, 0.4, 0.5, 0.6 | BF531 BF532 BF533       |
-| Braemar     | 0.2, 0.3           | BF534 BF536 BF537       |
-| Stirling    | 0.3, 0.4, 0.5      | BF538 BF539             |
-| Moab        | 0.0, 0.1, 0.2      | BF542 BF544 BF548 BF549 |
-| Teton       | 0.3, 0.5           | BF561                   |
-| Kookaburra  | 0.0, 0.1, 0.2      | BF523 BF525 BF527       |
-| Mockingbird | 0.0, 0.1           | BF522 BF524 BF526       |
-| Brodie      | 0.0, 0.1           | BF512 BF514 BF516 BF518 |
-
-
-** Compiler implemented workarounds
-Most workarounds are implemented in header files and source code using the
-__ADSPBF527__ macros. A few workarounds require compiler support.
-
-|  Anomaly | Macro                          | GCC Switch       |
-|----------+--------------------------------+------------------|
-|      Any | __WORKAROUNDS_ENABLED          |                  |
-| 05000074 | WA_05000074                    |                  |
-| 05000244 | __WORKAROUND_SPECULATIVE_SYNCS | -mcsync-anomaly  |
-| 05000245 | __WORKAROUND_SPECULATIVE_LOADS | -mspecld-anomaly |
-| 05000257 | WA_05000257                    |                  |
-| 05000283 | WA_05000283                    |                  |
-| 05000312 | WA_LOAD_LCREGS                 |                  |
-| 05000315 | WA_05000315                    |                  |
-| 05000371 | __WORKAROUND_RETS              |                  |
-| 05000426 | __WORKAROUND_INDIRECT_CALLS    | Not -micplb      |
-
-** GCC feature switches
-| Switch                    | Description                            |
-|---------------------------+----------------------------------------|
-| -msim                     | Use simulator runtime                  |
-| -momit-leaf-frame-pointer | Omit frame pointer for leaf functions  |
-| -mlow64k                  |                                        |
-| -mcsync-anomaly           |                                        |
-| -mspecld-anomaly          |                                        |
-| -mid-shared-library       |                                        |
-| -mleaf-id-shared-library  |                                        |
-| -mshared-library-id=      |                                        |
-| -msep-data                | Enable separate data segment           |
-| -mlong-calls              | Use indirect calls                     |
-| -mfast-fp                 |                                        |
-| -mfdpic                   |                                        |
-| -minline-plt              |                                        |
-| -mstack-check-l1          | Do stack checking in L1 scratch memory |
-| -mmulticore               | Enable multicore support               |
-| -mcorea                   | Build for Core A                       |
-| -mcoreb                   | Build for Core B                       |
-| -msdram                   | Build for SDRAM                        |
-| -micplb                   | Assume ICPLBs are enabled at runtime.  |
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/BlackfinTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/BlackfinTargetInfo.cpp
deleted file mode 100644
index 402e0af..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/BlackfinTargetInfo.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//===-- BlackfinTargetInfo.cpp - Blackfin Target Implementation -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Blackfin.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-
-using namespace llvm;
-
-Target llvm::TheBlackfinTarget;
-
-extern "C" void LLVMInitializeBlackfinTargetInfo() {
-  RegisterTarget<Triple::bfin> X(TheBlackfinTarget, "bfin",
-                                 "Analog Devices Blackfin [experimental]");
-}
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 5ca8060..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMBlackfinInfo
-  BlackfinTargetInfo.cpp
-  )
-
-add_dependencies(LLVMBlackfinInfo BlackfinCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/Makefile
deleted file mode 100644
index c49cfbe..0000000
--- a/libclamav/c++/llvm/lib/Target/Blackfin/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/Blackfin/TargetInfo/Makefile -------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMBlackfinInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/CBackend/CBackend.cpp b/libclamav/c++/llvm/lib/Target/CBackend/CBackend.cpp
deleted file mode 100644
index 29764aa..0000000
--- a/libclamav/c++/llvm/lib/Target/CBackend/CBackend.cpp
+++ /dev/null
@@ -1,3698 +0,0 @@
-//===-- CBackend.cpp - Library for converting LLVM code to C --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This library converts LLVM code to C code, compilable by GCC and other C
-// compilers.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CTargetMachine.h"
-#include "llvm/CallingConv.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/Instructions.h"
-#include "llvm/Pass.h"
-#include "llvm/PassManager.h"
-#include "llvm/TypeSymbolTable.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/IntrinsicInst.h"
-#include "llvm/InlineAsm.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/Analysis/ConstantsScanner.h"
-#include "llvm/Analysis/FindUsedTypes.h"
-#include "llvm/Analysis/LoopInfo.h"
-#include "llvm/Analysis/ValueTracking.h"
-#include "llvm/CodeGen/Passes.h"
-#include "llvm/CodeGen/IntrinsicLowering.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Support/CallSite.h"
-#include "llvm/Support/CFG.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/GetElementPtrTypeIterator.h"
-#include "llvm/Support/InstVisitor.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/MathExtras.h"
-#include "llvm/System/Host.h"
-#include "llvm/Config/config.h"
-#include <algorithm>
-#include <sstream>
-using namespace llvm;
-
-extern "C" void LLVMInitializeCBackendTarget() { 
-  // Register the target.
-  RegisterTargetMachine<CTargetMachine> X(TheCBackendTarget);
-}
-
-namespace {
-  /// CBackendNameAllUsedStructsAndMergeFunctions - This pass inserts names for
-  /// any unnamed structure types that are used by the program, and merges
-  /// external functions with the same name.
-  ///
-  class CBackendNameAllUsedStructsAndMergeFunctions : public ModulePass {
-  public:
-    static char ID;
-    CBackendNameAllUsedStructsAndMergeFunctions() 
-      : ModulePass(&ID) {}
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<FindUsedTypes>();
-    }
-
-    virtual const char *getPassName() const {
-      return "C backend type canonicalizer";
-    }
-
-    virtual bool runOnModule(Module &M);
-  };
-
-  char CBackendNameAllUsedStructsAndMergeFunctions::ID = 0;
-
-  /// CWriter - This class is the main chunk of code that converts an LLVM
-  /// module to a C translation unit.
-  class CWriter : public FunctionPass, public InstVisitor<CWriter> {
-    formatted_raw_ostream &Out;
-    IntrinsicLowering *IL;
-    Mangler *Mang;
-    LoopInfo *LI;
-    const Module *TheModule;
-    const MCAsmInfo* TAsm;
-    const TargetData* TD;
-    std::map<const Type *, std::string> TypeNames;
-    std::map<const ConstantFP *, unsigned> FPConstantMap;
-    std::set<Function*> intrinsicPrototypesAlreadyGenerated;
-    std::set<const Argument*> ByValParams;
-    unsigned FPCounter;
-    unsigned OpaqueCounter;
-    DenseMap<const Value*, unsigned> AnonValueNumbers;
-    unsigned NextAnonValueNumber;
-
-  public:
-    static char ID;
-    explicit CWriter(formatted_raw_ostream &o)
-      : FunctionPass(&ID), Out(o), IL(0), Mang(0), LI(0), 
-        TheModule(0), TAsm(0), TD(0), OpaqueCounter(0), NextAnonValueNumber(0) {
-      FPCounter = 0;
-    }
-
-    virtual const char *getPassName() const { return "C backend"; }
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<LoopInfo>();
-      AU.setPreservesAll();
-    }
-
-    virtual bool doInitialization(Module &M);
-
-    bool runOnFunction(Function &F) {
-     // Do not codegen any 'available_externally' functions at all, they have
-     // definitions outside the translation unit.
-     if (F.hasAvailableExternallyLinkage())
-       return false;
-
-      LI = &getAnalysis<LoopInfo>();
-
-      // Get rid of intrinsics we can't handle.
-      lowerIntrinsics(F);
-
-      // Output all floating point constants that cannot be printed accurately.
-      printFloatingPointConstants(F);
-
-      printFunction(F);
-      return false;
-    }
-
-    virtual bool doFinalization(Module &M) {
-      // Free memory...
-      delete IL;
-      delete TD;
-      delete Mang;
-      FPConstantMap.clear();
-      TypeNames.clear();
-      ByValParams.clear();
-      intrinsicPrototypesAlreadyGenerated.clear();
-      return false;
-    }
-
-    raw_ostream &printType(formatted_raw_ostream &Out,
-                           const Type *Ty, 
-                           bool isSigned = false,
-                           const std::string &VariableName = "",
-                           bool IgnoreName = false,
-                           const AttrListPtr &PAL = AttrListPtr());
-    std::ostream &printType(std::ostream &Out, const Type *Ty, 
-                           bool isSigned = false,
-                           const std::string &VariableName = "",
-                           bool IgnoreName = false,
-                           const AttrListPtr &PAL = AttrListPtr());
-    raw_ostream &printSimpleType(formatted_raw_ostream &Out,
-                                 const Type *Ty, 
-                                 bool isSigned, 
-                                 const std::string &NameSoFar = "");
-    std::ostream &printSimpleType(std::ostream &Out, const Type *Ty, 
-                                 bool isSigned, 
-                                 const std::string &NameSoFar = "");
-
-    void printStructReturnPointerFunctionType(formatted_raw_ostream &Out,
-                                              const AttrListPtr &PAL,
-                                              const PointerType *Ty);
-
-    /// writeOperandDeref - Print the result of dereferencing the specified
-    /// operand with '*'.  This is equivalent to printing '*' then using
-    /// writeOperand, but avoids excess syntax in some cases.
-    void writeOperandDeref(Value *Operand) {
-      if (isAddressExposed(Operand)) {
-        // Already something with an address exposed.
-        writeOperandInternal(Operand);
-      } else {
-        Out << "*(";
-        writeOperand(Operand);
-        Out << ")";
-      }
-    }
-    
-    void writeOperand(Value *Operand, bool Static = false);
-    void writeInstComputationInline(Instruction &I);
-    void writeOperandInternal(Value *Operand, bool Static = false);
-    void writeOperandWithCast(Value* Operand, unsigned Opcode);
-    void writeOperandWithCast(Value* Operand, const ICmpInst &I);
-    bool writeInstructionCast(const Instruction &I);
-
-    void writeMemoryAccess(Value *Operand, const Type *OperandType,
-                           bool IsVolatile, unsigned Alignment);
-
-  private :
-    std::string InterpretASMConstraint(InlineAsm::ConstraintInfo& c);
-
-    void lowerIntrinsics(Function &F);
-
-    void printModule(Module *M);
-    void printModuleTypes(const TypeSymbolTable &ST);
-    void printContainedStructs(const Type *Ty, std::set<const Type *> &);
-    void printFloatingPointConstants(Function &F);
-    void printFloatingPointConstants(const Constant *C);
-    void printFunctionSignature(const Function *F, bool Prototype);
-
-    void printFunction(Function &);
-    void printBasicBlock(BasicBlock *BB);
-    void printLoop(Loop *L);
-
-    void printCast(unsigned opcode, const Type *SrcTy, const Type *DstTy);
-    void printConstant(Constant *CPV, bool Static);
-    void printConstantWithCast(Constant *CPV, unsigned Opcode);
-    bool printConstExprCast(const ConstantExpr *CE, bool Static);
-    void printConstantArray(ConstantArray *CPA, bool Static);
-    void printConstantVector(ConstantVector *CV, bool Static);
-
-    /// isAddressExposed - Return true if the specified value's name needs to
-    /// have its address taken in order to get a C value of the correct type.
-    /// This happens for global variables, byval parameters, and direct allocas.
-    bool isAddressExposed(const Value *V) const {
-      if (const Argument *A = dyn_cast<Argument>(V))
-        return ByValParams.count(A);
-      return isa<GlobalVariable>(V) || isDirectAlloca(V);
-    }
-    
-    // isInlinableInst - Attempt to inline instructions into their uses to build
-    // trees as much as possible.  To do this, we have to consistently decide
-    // what is acceptable to inline, so that variable declarations don't get
-    // printed and an extra copy of the expr is not emitted.
-    //
-    static bool isInlinableInst(const Instruction &I) {
-      // Always inline cmp instructions, even if they are shared by multiple
-      // expressions.  GCC generates horrible code if we don't.
-      if (isa<CmpInst>(I)) 
-        return true;
-
-      // Must be an expression, must be used exactly once.  If it is dead, we
-      // emit it inline where it would go.
-      if (I.getType() == Type::getVoidTy(I.getContext()) || !I.hasOneUse() ||
-          isa<TerminatorInst>(I) || isa<CallInst>(I) || isa<PHINode>(I) ||
-          isa<LoadInst>(I) || isa<VAArgInst>(I) || isa<InsertElementInst>(I) ||
-          isa<InsertValueInst>(I))
-        // Don't inline a load across a store or other bad things!
-        return false;
-
-      // Must not be used in inline asm, extractelement, or shufflevector.
-      if (I.hasOneUse()) {
-        const Instruction &User = cast<Instruction>(*I.use_back());
-        if (isInlineAsm(User) || isa<ExtractElementInst>(User) ||
-            isa<ShuffleVectorInst>(User))
-          return false;
-      }
-
-      // Only inline instruction it if it's use is in the same BB as the inst.
-      return I.getParent() == cast<Instruction>(I.use_back())->getParent();
-    }
-
-    // isDirectAlloca - Define fixed sized allocas in the entry block as direct
-    // variables which are accessed with the & operator.  This causes GCC to
-    // generate significantly better code than to emit alloca calls directly.
-    //
-    static const AllocaInst *isDirectAlloca(const Value *V) {
-      const AllocaInst *AI = dyn_cast<AllocaInst>(V);
-      if (!AI) return false;
-      if (AI->isArrayAllocation())
-        return 0;   // FIXME: we can also inline fixed size array allocas!
-      if (AI->getParent() != &AI->getParent()->getParent()->getEntryBlock())
-        return 0;
-      return AI;
-    }
-    
-    // isInlineAsm - Check if the instruction is a call to an inline asm chunk
-    static bool isInlineAsm(const Instruction& I) {
-      if (isa<CallInst>(&I) && isa<InlineAsm>(I.getOperand(0)))
-        return true;
-      return false;
-    }
-    
-    // Instruction visitation functions
-    friend class InstVisitor<CWriter>;
-
-    void visitReturnInst(ReturnInst &I);
-    void visitBranchInst(BranchInst &I);
-    void visitSwitchInst(SwitchInst &I);
-    void visitInvokeInst(InvokeInst &I) {
-      llvm_unreachable("Lowerinvoke pass didn't work!");
-    }
-
-    void visitUnwindInst(UnwindInst &I) {
-      llvm_unreachable("Lowerinvoke pass didn't work!");
-    }
-    void visitUnreachableInst(UnreachableInst &I);
-
-    void visitPHINode(PHINode &I);
-    void visitBinaryOperator(Instruction &I);
-    void visitICmpInst(ICmpInst &I);
-    void visitFCmpInst(FCmpInst &I);
-
-    void visitCastInst (CastInst &I);
-    void visitSelectInst(SelectInst &I);
-    void visitCallInst (CallInst &I);
-    void visitInlineAsm(CallInst &I);
-    bool visitBuiltinCall(CallInst &I, Intrinsic::ID ID, bool &WroteCallee);
-
-    void visitMallocInst(MallocInst &I);
-    void visitAllocaInst(AllocaInst &I);
-    void visitFreeInst  (FreeInst   &I);
-    void visitLoadInst  (LoadInst   &I);
-    void visitStoreInst (StoreInst  &I);
-    void visitGetElementPtrInst(GetElementPtrInst &I);
-    void visitVAArgInst (VAArgInst &I);
-    
-    void visitInsertElementInst(InsertElementInst &I);
-    void visitExtractElementInst(ExtractElementInst &I);
-    void visitShuffleVectorInst(ShuffleVectorInst &SVI);
-
-    void visitInsertValueInst(InsertValueInst &I);
-    void visitExtractValueInst(ExtractValueInst &I);
-
-    void visitInstruction(Instruction &I) {
-#ifndef NDEBUG
-      errs() << "C Writer does not know about " << I;
-#endif
-      llvm_unreachable(0);
-    }
-
-    void outputLValue(Instruction *I) {
-      Out << "  " << GetValueName(I) << " = ";
-    }
-
-    bool isGotoCodeNecessary(BasicBlock *From, BasicBlock *To);
-    void printPHICopiesForSuccessor(BasicBlock *CurBlock,
-                                    BasicBlock *Successor, unsigned Indent);
-    void printBranchToBlock(BasicBlock *CurBlock, BasicBlock *SuccBlock,
-                            unsigned Indent);
-    void printGEPExpression(Value *Ptr, gep_type_iterator I,
-                            gep_type_iterator E, bool Static);
-
-    std::string GetValueName(const Value *Operand);
-  };
-}
-
-char CWriter::ID = 0;
-
-/// This method inserts names for any unnamed structure types that are used by
-/// the program, and removes names from structure types that are not used by the
-/// program.
-///
-bool CBackendNameAllUsedStructsAndMergeFunctions::runOnModule(Module &M) {
-  // Get a set of types that are used by the program...
-  std::set<const Type *> UT = getAnalysis<FindUsedTypes>().getTypes();
-
-  // Loop over the module symbol table, removing types from UT that are
-  // already named, and removing names for types that are not used.
-  //
-  TypeSymbolTable &TST = M.getTypeSymbolTable();
-  for (TypeSymbolTable::iterator TI = TST.begin(), TE = TST.end();
-       TI != TE; ) {
-    TypeSymbolTable::iterator I = TI++;
-    
-    // If this isn't a struct or array type, remove it from our set of types
-    // to name. This simplifies emission later.
-    if (!isa<StructType>(I->second) && !isa<OpaqueType>(I->second) &&
-        !isa<ArrayType>(I->second)) {
-      TST.remove(I);
-    } else {
-      // If this is not used, remove it from the symbol table.
-      std::set<const Type *>::iterator UTI = UT.find(I->second);
-      if (UTI == UT.end())
-        TST.remove(I);
-      else
-        UT.erase(UTI);    // Only keep one name for this type.
-    }
-  }
-
-  // UT now contains types that are not named.  Loop over it, naming
-  // structure types.
-  //
-  bool Changed = false;
-  unsigned RenameCounter = 0;
-  for (std::set<const Type *>::const_iterator I = UT.begin(), E = UT.end();
-       I != E; ++I)
-    if (isa<StructType>(*I) || isa<ArrayType>(*I)) {
-      while (M.addTypeName("unnamed"+utostr(RenameCounter), *I))
-        ++RenameCounter;
-      Changed = true;
-    }
-      
-      
-  // Loop over all external functions and globals.  If we have two with
-  // identical names, merge them.
-  // FIXME: This code should disappear when we don't allow values with the same
-  // names when they have different types!
-  std::map<std::string, GlobalValue*> ExtSymbols;
-  for (Module::iterator I = M.begin(), E = M.end(); I != E;) {
-    Function *GV = I++;
-    if (GV->isDeclaration() && GV->hasName()) {
-      std::pair<std::map<std::string, GlobalValue*>::iterator, bool> X
-        = ExtSymbols.insert(std::make_pair(GV->getName(), GV));
-      if (!X.second) {
-        // Found a conflict, replace this global with the previous one.
-        GlobalValue *OldGV = X.first->second;
-        GV->replaceAllUsesWith(ConstantExpr::getBitCast(OldGV, GV->getType()));
-        GV->eraseFromParent();
-        Changed = true;
-      }
-    }
-  }
-  // Do the same for globals.
-  for (Module::global_iterator I = M.global_begin(), E = M.global_end();
-       I != E;) {
-    GlobalVariable *GV = I++;
-    if (GV->isDeclaration() && GV->hasName()) {
-      std::pair<std::map<std::string, GlobalValue*>::iterator, bool> X
-        = ExtSymbols.insert(std::make_pair(GV->getName(), GV));
-      if (!X.second) {
-        // Found a conflict, replace this global with the previous one.
-        GlobalValue *OldGV = X.first->second;
-        GV->replaceAllUsesWith(ConstantExpr::getBitCast(OldGV, GV->getType()));
-        GV->eraseFromParent();
-        Changed = true;
-      }
-    }
-  }
-  
-  return Changed;
-}
-
-/// printStructReturnPointerFunctionType - This is like printType for a struct
-/// return type, except, instead of printing the type as void (*)(Struct*, ...)
-/// print it as "Struct (*)(...)", for struct return functions.
-void CWriter::printStructReturnPointerFunctionType(formatted_raw_ostream &Out,
-                                                   const AttrListPtr &PAL,
-                                                   const PointerType *TheTy) {
-  const FunctionType *FTy = cast<FunctionType>(TheTy->getElementType());
-  std::stringstream FunctionInnards;
-  FunctionInnards << " (*) (";
-  bool PrintedType = false;
-
-  FunctionType::param_iterator I = FTy->param_begin(), E = FTy->param_end();
-  const Type *RetTy = cast<PointerType>(I->get())->getElementType();
-  unsigned Idx = 1;
-  for (++I, ++Idx; I != E; ++I, ++Idx) {
-    if (PrintedType)
-      FunctionInnards << ", ";
-    const Type *ArgTy = *I;
-    if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {
-      assert(isa<PointerType>(ArgTy));
-      ArgTy = cast<PointerType>(ArgTy)->getElementType();
-    }
-    printType(FunctionInnards, ArgTy,
-        /*isSigned=*/PAL.paramHasAttr(Idx, Attribute::SExt), "");
-    PrintedType = true;
-  }
-  if (FTy->isVarArg()) {
-    if (PrintedType)
-      FunctionInnards << ", ...";
-  } else if (!PrintedType) {
-    FunctionInnards << "void";
-  }
-  FunctionInnards << ')';
-  std::string tstr = FunctionInnards.str();
-  printType(Out, RetTy, 
-      /*isSigned=*/PAL.paramHasAttr(0, Attribute::SExt), tstr);
-}
-
-raw_ostream &
-CWriter::printSimpleType(formatted_raw_ostream &Out, const Type *Ty,
-                         bool isSigned,
-                         const std::string &NameSoFar) {
-  assert((Ty->isPrimitiveType() || Ty->isInteger() || isa<VectorType>(Ty)) && 
-         "Invalid type for printSimpleType");
-  switch (Ty->getTypeID()) {
-  case Type::VoidTyID:   return Out << "void " << NameSoFar;
-  case Type::IntegerTyID: {
-    unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth();
-    if (NumBits == 1) 
-      return Out << "bool " << NameSoFar;
-    else if (NumBits <= 8)
-      return Out << (isSigned?"signed":"unsigned") << " char " << NameSoFar;
-    else if (NumBits <= 16)
-      return Out << (isSigned?"signed":"unsigned") << " short " << NameSoFar;
-    else if (NumBits <= 32)
-      return Out << (isSigned?"signed":"unsigned") << " int " << NameSoFar;
-    else if (NumBits <= 64)
-      return Out << (isSigned?"signed":"unsigned") << " long long "<< NameSoFar;
-    else { 
-      assert(NumBits <= 128 && "Bit widths > 128 not implemented yet");
-      return Out << (isSigned?"llvmInt128":"llvmUInt128") << " " << NameSoFar;
-    }
-  }
-  case Type::FloatTyID:  return Out << "float "   << NameSoFar;
-  case Type::DoubleTyID: return Out << "double "  << NameSoFar;
-  // Lacking emulation of FP80 on PPC, etc., we assume whichever of these is
-  // present matches host 'long double'.
-  case Type::X86_FP80TyID:
-  case Type::PPC_FP128TyID:
-  case Type::FP128TyID:  return Out << "long double " << NameSoFar;
-      
-  case Type::VectorTyID: {
-    const VectorType *VTy = cast<VectorType>(Ty);
-    return printSimpleType(Out, VTy->getElementType(), isSigned,
-                     " __attribute__((vector_size(" +
-                     utostr(TD->getTypeAllocSize(VTy)) + " ))) " + NameSoFar);
-  }
-    
-  default:
-#ifndef NDEBUG
-    errs() << "Unknown primitive type: " << *Ty << "\n";
-#endif
-    llvm_unreachable(0);
-  }
-}
-
-std::ostream &
-CWriter::printSimpleType(std::ostream &Out, const Type *Ty, bool isSigned,
-                         const std::string &NameSoFar) {
-  assert((Ty->isPrimitiveType() || Ty->isInteger() || isa<VectorType>(Ty)) && 
-         "Invalid type for printSimpleType");
-  switch (Ty->getTypeID()) {
-  case Type::VoidTyID:   return Out << "void " << NameSoFar;
-  case Type::IntegerTyID: {
-    unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth();
-    if (NumBits == 1) 
-      return Out << "bool " << NameSoFar;
-    else if (NumBits <= 8)
-      return Out << (isSigned?"signed":"unsigned") << " char " << NameSoFar;
-    else if (NumBits <= 16)
-      return Out << (isSigned?"signed":"unsigned") << " short " << NameSoFar;
-    else if (NumBits <= 32)
-      return Out << (isSigned?"signed":"unsigned") << " int " << NameSoFar;
-    else if (NumBits <= 64)
-      return Out << (isSigned?"signed":"unsigned") << " long long "<< NameSoFar;
-    else { 
-      assert(NumBits <= 128 && "Bit widths > 128 not implemented yet");
-      return Out << (isSigned?"llvmInt128":"llvmUInt128") << " " << NameSoFar;
-    }
-  }
-  case Type::FloatTyID:  return Out << "float "   << NameSoFar;
-  case Type::DoubleTyID: return Out << "double "  << NameSoFar;
-  // Lacking emulation of FP80 on PPC, etc., we assume whichever of these is
-  // present matches host 'long double'.
-  case Type::X86_FP80TyID:
-  case Type::PPC_FP128TyID:
-  case Type::FP128TyID:  return Out << "long double " << NameSoFar;
-      
-  case Type::VectorTyID: {
-    const VectorType *VTy = cast<VectorType>(Ty);
-    return printSimpleType(Out, VTy->getElementType(), isSigned,
-                     " __attribute__((vector_size(" +
-                     utostr(TD->getTypeAllocSize(VTy)) + " ))) " + NameSoFar);
-  }
-    
-  default:
-#ifndef NDEBUG
-    errs() << "Unknown primitive type: " << *Ty << "\n";
-#endif
-    llvm_unreachable(0);
-  }
-}
-
-// Pass the Type* and the variable name and this prints out the variable
-// declaration.
-//
-raw_ostream &CWriter::printType(formatted_raw_ostream &Out,
-                                const Type *Ty,
-                                bool isSigned, const std::string &NameSoFar,
-                                bool IgnoreName, const AttrListPtr &PAL) {
-  if (Ty->isPrimitiveType() || Ty->isInteger() || isa<VectorType>(Ty)) {
-    printSimpleType(Out, Ty, isSigned, NameSoFar);
-    return Out;
-  }
-
-  // Check to see if the type is named.
-  if (!IgnoreName || isa<OpaqueType>(Ty)) {
-    std::map<const Type *, std::string>::iterator I = TypeNames.find(Ty);
-    if (I != TypeNames.end()) return Out << I->second << ' ' << NameSoFar;
-  }
-
-  switch (Ty->getTypeID()) {
-  case Type::FunctionTyID: {
-    const FunctionType *FTy = cast<FunctionType>(Ty);
-    std::stringstream FunctionInnards;
-    FunctionInnards << " (" << NameSoFar << ") (";
-    unsigned Idx = 1;
-    for (FunctionType::param_iterator I = FTy->param_begin(),
-           E = FTy->param_end(); I != E; ++I) {
-      const Type *ArgTy = *I;
-      if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {
-        assert(isa<PointerType>(ArgTy));
-        ArgTy = cast<PointerType>(ArgTy)->getElementType();
-      }
-      if (I != FTy->param_begin())
-        FunctionInnards << ", ";
-      printType(FunctionInnards, ArgTy,
-        /*isSigned=*/PAL.paramHasAttr(Idx, Attribute::SExt), "");
-      ++Idx;
-    }
-    if (FTy->isVarArg()) {
-      if (FTy->getNumParams())
-        FunctionInnards << ", ...";
-    } else if (!FTy->getNumParams()) {
-      FunctionInnards << "void";
-    }
-    FunctionInnards << ')';
-    std::string tstr = FunctionInnards.str();
-    printType(Out, FTy->getReturnType(), 
-      /*isSigned=*/PAL.paramHasAttr(0, Attribute::SExt), tstr);
-    return Out;
-  }
-  case Type::StructTyID: {
-    const StructType *STy = cast<StructType>(Ty);
-    Out << NameSoFar + " {\n";
-    unsigned Idx = 0;
-    for (StructType::element_iterator I = STy->element_begin(),
-           E = STy->element_end(); I != E; ++I) {
-      Out << "  ";
-      printType(Out, *I, false, "field" + utostr(Idx++));
-      Out << ";\n";
-    }
-    Out << '}';
-    if (STy->isPacked())
-      Out << " __attribute__ ((packed))";
-    return Out;
-  }
-
-  case Type::PointerTyID: {
-    const PointerType *PTy = cast<PointerType>(Ty);
-    std::string ptrName = "*" + NameSoFar;
-
-    if (isa<ArrayType>(PTy->getElementType()) ||
-        isa<VectorType>(PTy->getElementType()))
-      ptrName = "(" + ptrName + ")";
-
-    if (!PAL.isEmpty())
-      // Must be a function ptr cast!
-      return printType(Out, PTy->getElementType(), false, ptrName, true, PAL);
-    return printType(Out, PTy->getElementType(), false, ptrName);
-  }
-
-  case Type::ArrayTyID: {
-    const ArrayType *ATy = cast<ArrayType>(Ty);
-    unsigned NumElements = ATy->getNumElements();
-    if (NumElements == 0) NumElements = 1;
-    // Arrays are wrapped in structs to allow them to have normal
-    // value semantics (avoiding the array "decay").
-    Out << NameSoFar << " { ";
-    printType(Out, ATy->getElementType(), false,
-              "array[" + utostr(NumElements) + "]");
-    return Out << "; }";
-  }
-
-  case Type::OpaqueTyID: {
-    std::string TyName = "struct opaque_" + itostr(OpaqueCounter++);
-    assert(TypeNames.find(Ty) == TypeNames.end());
-    TypeNames[Ty] = TyName;
-    return Out << TyName << ' ' << NameSoFar;
-  }
-  default:
-    llvm_unreachable("Unhandled case in getTypeProps!");
-  }
-
-  return Out;
-}
-
-// Pass the Type* and the variable name and this prints out the variable
-// declaration.
-//
-std::ostream &CWriter::printType(std::ostream &Out, const Type *Ty,
-                                 bool isSigned, const std::string &NameSoFar,
-                                 bool IgnoreName, const AttrListPtr &PAL) {
-  if (Ty->isPrimitiveType() || Ty->isInteger() || isa<VectorType>(Ty)) {
-    printSimpleType(Out, Ty, isSigned, NameSoFar);
-    return Out;
-  }
-
-  // Check to see if the type is named.
-  if (!IgnoreName || isa<OpaqueType>(Ty)) {
-    std::map<const Type *, std::string>::iterator I = TypeNames.find(Ty);
-    if (I != TypeNames.end()) return Out << I->second << ' ' << NameSoFar;
-  }
-
-  switch (Ty->getTypeID()) {
-  case Type::FunctionTyID: {
-    const FunctionType *FTy = cast<FunctionType>(Ty);
-    std::stringstream FunctionInnards;
-    FunctionInnards << " (" << NameSoFar << ") (";
-    unsigned Idx = 1;
-    for (FunctionType::param_iterator I = FTy->param_begin(),
-           E = FTy->param_end(); I != E; ++I) {
-      const Type *ArgTy = *I;
-      if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {
-        assert(isa<PointerType>(ArgTy));
-        ArgTy = cast<PointerType>(ArgTy)->getElementType();
-      }
-      if (I != FTy->param_begin())
-        FunctionInnards << ", ";
-      printType(FunctionInnards, ArgTy,
-        /*isSigned=*/PAL.paramHasAttr(Idx, Attribute::SExt), "");
-      ++Idx;
-    }
-    if (FTy->isVarArg()) {
-      if (FTy->getNumParams())
-        FunctionInnards << ", ...";
-    } else if (!FTy->getNumParams()) {
-      FunctionInnards << "void";
-    }
-    FunctionInnards << ')';
-    std::string tstr = FunctionInnards.str();
-    printType(Out, FTy->getReturnType(), 
-      /*isSigned=*/PAL.paramHasAttr(0, Attribute::SExt), tstr);
-    return Out;
-  }
-  case Type::StructTyID: {
-    const StructType *STy = cast<StructType>(Ty);
-    Out << NameSoFar + " {\n";
-    unsigned Idx = 0;
-    for (StructType::element_iterator I = STy->element_begin(),
-           E = STy->element_end(); I != E; ++I) {
-      Out << "  ";
-      printType(Out, *I, false, "field" + utostr(Idx++));
-      Out << ";\n";
-    }
-    Out << '}';
-    if (STy->isPacked())
-      Out << " __attribute__ ((packed))";
-    return Out;
-  }
-
-  case Type::PointerTyID: {
-    const PointerType *PTy = cast<PointerType>(Ty);
-    std::string ptrName = "*" + NameSoFar;
-
-    if (isa<ArrayType>(PTy->getElementType()) ||
-        isa<VectorType>(PTy->getElementType()))
-      ptrName = "(" + ptrName + ")";
-
-    if (!PAL.isEmpty())
-      // Must be a function ptr cast!
-      return printType(Out, PTy->getElementType(), false, ptrName, true, PAL);
-    return printType(Out, PTy->getElementType(), false, ptrName);
-  }
-
-  case Type::ArrayTyID: {
-    const ArrayType *ATy = cast<ArrayType>(Ty);
-    unsigned NumElements = ATy->getNumElements();
-    if (NumElements == 0) NumElements = 1;
-    // Arrays are wrapped in structs to allow them to have normal
-    // value semantics (avoiding the array "decay").
-    Out << NameSoFar << " { ";
-    printType(Out, ATy->getElementType(), false,
-              "array[" + utostr(NumElements) + "]");
-    return Out << "; }";
-  }
-
-  case Type::OpaqueTyID: {
-    std::string TyName = "struct opaque_" + itostr(OpaqueCounter++);
-    assert(TypeNames.find(Ty) == TypeNames.end());
-    TypeNames[Ty] = TyName;
-    return Out << TyName << ' ' << NameSoFar;
-  }
-  default:
-    llvm_unreachable("Unhandled case in getTypeProps!");
-  }
-
-  return Out;
-}
-
-void CWriter::printConstantArray(ConstantArray *CPA, bool Static) {
-
-  // As a special case, print the array as a string if it is an array of
-  // ubytes or an array of sbytes with positive values.
-  //
-  const Type *ETy = CPA->getType()->getElementType();
-  bool isString = (ETy == Type::getInt8Ty(CPA->getContext()) ||
-                   ETy == Type::getInt8Ty(CPA->getContext()));
-
-  // Make sure the last character is a null char, as automatically added by C
-  if (isString && (CPA->getNumOperands() == 0 ||
-                   !cast<Constant>(*(CPA->op_end()-1))->isNullValue()))
-    isString = false;
-
-  if (isString) {
-    Out << '\"';
-    // Keep track of whether the last number was a hexadecimal escape
-    bool LastWasHex = false;
-
-    // Do not include the last character, which we know is null
-    for (unsigned i = 0, e = CPA->getNumOperands()-1; i != e; ++i) {
-      unsigned char C = cast<ConstantInt>(CPA->getOperand(i))->getZExtValue();
-
-      // Print it out literally if it is a printable character.  The only thing
-      // to be careful about is when the last letter output was a hex escape
-      // code, in which case we have to be careful not to print out hex digits
-      // explicitly (the C compiler thinks it is a continuation of the previous
-      // character, sheesh...)
-      //
-      if (isprint(C) && (!LastWasHex || !isxdigit(C))) {
-        LastWasHex = false;
-        if (C == '"' || C == '\\')
-          Out << "\\" << (char)C;
-        else
-          Out << (char)C;
-      } else {
-        LastWasHex = false;
-        switch (C) {
-        case '\n': Out << "\\n"; break;
-        case '\t': Out << "\\t"; break;
-        case '\r': Out << "\\r"; break;
-        case '\v': Out << "\\v"; break;
-        case '\a': Out << "\\a"; break;
-        case '\"': Out << "\\\""; break;
-        case '\'': Out << "\\\'"; break;
-        default:
-          Out << "\\x";
-          Out << (char)(( C/16  < 10) ? ( C/16 +'0') : ( C/16 -10+'A'));
-          Out << (char)(((C&15) < 10) ? ((C&15)+'0') : ((C&15)-10+'A'));
-          LastWasHex = true;
-          break;
-        }
-      }
-    }
-    Out << '\"';
-  } else {
-    Out << '{';
-    if (CPA->getNumOperands()) {
-      Out << ' ';
-      printConstant(cast<Constant>(CPA->getOperand(0)), Static);
-      for (unsigned i = 1, e = CPA->getNumOperands(); i != e; ++i) {
-        Out << ", ";
-        printConstant(cast<Constant>(CPA->getOperand(i)), Static);
-      }
-    }
-    Out << " }";
-  }
-}
-
-void CWriter::printConstantVector(ConstantVector *CP, bool Static) {
-  Out << '{';
-  if (CP->getNumOperands()) {
-    Out << ' ';
-    printConstant(cast<Constant>(CP->getOperand(0)), Static);
-    for (unsigned i = 1, e = CP->getNumOperands(); i != e; ++i) {
-      Out << ", ";
-      printConstant(cast<Constant>(CP->getOperand(i)), Static);
-    }
-  }
-  Out << " }";
-}
-
-// isFPCSafeToPrint - Returns true if we may assume that CFP may be written out
-// textually as a double (rather than as a reference to a stack-allocated
-// variable). We decide this by converting CFP to a string and back into a
-// double, and then checking whether the conversion results in a bit-equal
-// double to the original value of CFP. This depends on us and the target C
-// compiler agreeing on the conversion process (which is pretty likely since we
-// only deal in IEEE FP).
-//
-static bool isFPCSafeToPrint(const ConstantFP *CFP) {
-  bool ignored;
-  // Do long doubles in hex for now.
-  if (CFP->getType() != Type::getFloatTy(CFP->getContext()) &&
-      CFP->getType() != Type::getDoubleTy(CFP->getContext()))
-    return false;
-  APFloat APF = APFloat(CFP->getValueAPF());  // copy
-  if (CFP->getType() == Type::getFloatTy(CFP->getContext()))
-    APF.convert(APFloat::IEEEdouble, APFloat::rmNearestTiesToEven, &ignored);
-#if HAVE_PRINTF_A && ENABLE_CBE_PRINTF_A
-  char Buffer[100];
-  sprintf(Buffer, "%a", APF.convertToDouble());
-  if (!strncmp(Buffer, "0x", 2) ||
-      !strncmp(Buffer, "-0x", 3) ||
-      !strncmp(Buffer, "+0x", 3))
-    return APF.bitwiseIsEqual(APFloat(atof(Buffer)));
-  return false;
-#else
-  std::string StrVal = ftostr(APF);
-
-  while (StrVal[0] == ' ')
-    StrVal.erase(StrVal.begin());
-
-  // Check to make sure that the stringized number is not some string like "Inf"
-  // or NaN.  Check that the string matches the "[-+]?[0-9]" regex.
-  if ((StrVal[0] >= '0' && StrVal[0] <= '9') ||
-      ((StrVal[0] == '-' || StrVal[0] == '+') &&
-       (StrVal[1] >= '0' && StrVal[1] <= '9')))
-    // Reparse stringized version!
-    return APF.bitwiseIsEqual(APFloat(atof(StrVal.c_str())));
-  return false;
-#endif
-}
-
-/// Print out the casting for a cast operation. This does the double casting
-/// necessary for conversion to the destination type, if necessary. 
-/// @brief Print a cast
-void CWriter::printCast(unsigned opc, const Type *SrcTy, const Type *DstTy) {
-  // Print the destination type cast
-  switch (opc) {
-    case Instruction::UIToFP:
-    case Instruction::SIToFP:
-    case Instruction::IntToPtr:
-    case Instruction::Trunc:
-    case Instruction::BitCast:
-    case Instruction::FPExt:
-    case Instruction::FPTrunc: // For these the DstTy sign doesn't matter
-      Out << '(';
-      printType(Out, DstTy);
-      Out << ')';
-      break;
-    case Instruction::ZExt:
-    case Instruction::PtrToInt:
-    case Instruction::FPToUI: // For these, make sure we get an unsigned dest
-      Out << '(';
-      printSimpleType(Out, DstTy, false);
-      Out << ')';
-      break;
-    case Instruction::SExt: 
-    case Instruction::FPToSI: // For these, make sure we get a signed dest
-      Out << '(';
-      printSimpleType(Out, DstTy, true);
-      Out << ')';
-      break;
-    default:
-      llvm_unreachable("Invalid cast opcode");
-  }
-
-  // Print the source type cast
-  switch (opc) {
-    case Instruction::UIToFP:
-    case Instruction::ZExt:
-      Out << '(';
-      printSimpleType(Out, SrcTy, false);
-      Out << ')';
-      break;
-    case Instruction::SIToFP:
-    case Instruction::SExt:
-      Out << '(';
-      printSimpleType(Out, SrcTy, true); 
-      Out << ')';
-      break;
-    case Instruction::IntToPtr:
-    case Instruction::PtrToInt:
-      // Avoid "cast to pointer from integer of different size" warnings
-      Out << "(unsigned long)";
-      break;
-    case Instruction::Trunc:
-    case Instruction::BitCast:
-    case Instruction::FPExt:
-    case Instruction::FPTrunc:
-    case Instruction::FPToSI:
-    case Instruction::FPToUI:
-      break; // These don't need a source cast.
-    default:
-      llvm_unreachable("Invalid cast opcode");
-      break;
-  }
-}
-
-// printConstant - The LLVM Constant to C Constant converter.
-void CWriter::printConstant(Constant *CPV, bool Static) {
-  if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(CPV)) {
-    switch (CE->getOpcode()) {
-    case Instruction::Trunc:
-    case Instruction::ZExt:
-    case Instruction::SExt:
-    case Instruction::FPTrunc:
-    case Instruction::FPExt:
-    case Instruction::UIToFP:
-    case Instruction::SIToFP:
-    case Instruction::FPToUI:
-    case Instruction::FPToSI:
-    case Instruction::PtrToInt:
-    case Instruction::IntToPtr:
-    case Instruction::BitCast:
-      Out << "(";
-      printCast(CE->getOpcode(), CE->getOperand(0)->getType(), CE->getType());
-      if (CE->getOpcode() == Instruction::SExt &&
-          CE->getOperand(0)->getType() == Type::getInt1Ty(CPV->getContext())) {
-        // Make sure we really sext from bool here by subtracting from 0
-        Out << "0-";
-      }
-      printConstant(CE->getOperand(0), Static);
-      if (CE->getType() == Type::getInt1Ty(CPV->getContext()) &&
-          (CE->getOpcode() == Instruction::Trunc ||
-           CE->getOpcode() == Instruction::FPToUI ||
-           CE->getOpcode() == Instruction::FPToSI ||
-           CE->getOpcode() == Instruction::PtrToInt)) {
-        // Make sure we really truncate to bool here by anding with 1
-        Out << "&1u";
-      }
-      Out << ')';
-      return;
-
-    case Instruction::GetElementPtr:
-      Out << "(";
-      printGEPExpression(CE->getOperand(0), gep_type_begin(CPV),
-                         gep_type_end(CPV), Static);
-      Out << ")";
-      return;
-    case Instruction::Select:
-      Out << '(';
-      printConstant(CE->getOperand(0), Static);
-      Out << '?';
-      printConstant(CE->getOperand(1), Static);
-      Out << ':';
-      printConstant(CE->getOperand(2), Static);
-      Out << ')';
-      return;
-    case Instruction::Add:
-    case Instruction::FAdd:
-    case Instruction::Sub:
-    case Instruction::FSub:
-    case Instruction::Mul:
-    case Instruction::FMul:
-    case Instruction::SDiv:
-    case Instruction::UDiv:
-    case Instruction::FDiv:
-    case Instruction::URem:
-    case Instruction::SRem:
-    case Instruction::FRem:
-    case Instruction::And:
-    case Instruction::Or:
-    case Instruction::Xor:
-    case Instruction::ICmp:
-    case Instruction::Shl:
-    case Instruction::LShr:
-    case Instruction::AShr:
-    {
-      Out << '(';
-      bool NeedsClosingParens = printConstExprCast(CE, Static); 
-      printConstantWithCast(CE->getOperand(0), CE->getOpcode());
-      switch (CE->getOpcode()) {
-      case Instruction::Add:
-      case Instruction::FAdd: Out << " + "; break;
-      case Instruction::Sub:
-      case Instruction::FSub: Out << " - "; break;
-      case Instruction::Mul:
-      case Instruction::FMul: Out << " * "; break;
-      case Instruction::URem:
-      case Instruction::SRem: 
-      case Instruction::FRem: Out << " % "; break;
-      case Instruction::UDiv: 
-      case Instruction::SDiv: 
-      case Instruction::FDiv: Out << " / "; break;
-      case Instruction::And: Out << " & "; break;
-      case Instruction::Or:  Out << " | "; break;
-      case Instruction::Xor: Out << " ^ "; break;
-      case Instruction::Shl: Out << " << "; break;
-      case Instruction::LShr:
-      case Instruction::AShr: Out << " >> "; break;
-      case Instruction::ICmp:
-        switch (CE->getPredicate()) {
-          case ICmpInst::ICMP_EQ: Out << " == "; break;
-          case ICmpInst::ICMP_NE: Out << " != "; break;
-          case ICmpInst::ICMP_SLT: 
-          case ICmpInst::ICMP_ULT: Out << " < "; break;
-          case ICmpInst::ICMP_SLE:
-          case ICmpInst::ICMP_ULE: Out << " <= "; break;
-          case ICmpInst::ICMP_SGT:
-          case ICmpInst::ICMP_UGT: Out << " > "; break;
-          case ICmpInst::ICMP_SGE:
-          case ICmpInst::ICMP_UGE: Out << " >= "; break;
-          default: llvm_unreachable("Illegal ICmp predicate");
-        }
-        break;
-      default: llvm_unreachable("Illegal opcode here!");
-      }
-      printConstantWithCast(CE->getOperand(1), CE->getOpcode());
-      if (NeedsClosingParens)
-        Out << "))";
-      Out << ')';
-      return;
-    }
-    case Instruction::FCmp: {
-      Out << '('; 
-      bool NeedsClosingParens = printConstExprCast(CE, Static); 
-      if (CE->getPredicate() == FCmpInst::FCMP_FALSE)
-        Out << "0";
-      else if (CE->getPredicate() == FCmpInst::FCMP_TRUE)
-        Out << "1";
-      else {
-        const char* op = 0;
-        switch (CE->getPredicate()) {
-        default: llvm_unreachable("Illegal FCmp predicate");
-        case FCmpInst::FCMP_ORD: op = "ord"; break;
-        case FCmpInst::FCMP_UNO: op = "uno"; break;
-        case FCmpInst::FCMP_UEQ: op = "ueq"; break;
-        case FCmpInst::FCMP_UNE: op = "une"; break;
-        case FCmpInst::FCMP_ULT: op = "ult"; break;
-        case FCmpInst::FCMP_ULE: op = "ule"; break;
-        case FCmpInst::FCMP_UGT: op = "ugt"; break;
-        case FCmpInst::FCMP_UGE: op = "uge"; break;
-        case FCmpInst::FCMP_OEQ: op = "oeq"; break;
-        case FCmpInst::FCMP_ONE: op = "one"; break;
-        case FCmpInst::FCMP_OLT: op = "olt"; break;
-        case FCmpInst::FCMP_OLE: op = "ole"; break;
-        case FCmpInst::FCMP_OGT: op = "ogt"; break;
-        case FCmpInst::FCMP_OGE: op = "oge"; break;
-        }
-        Out << "llvm_fcmp_" << op << "(";
-        printConstantWithCast(CE->getOperand(0), CE->getOpcode());
-        Out << ", ";
-        printConstantWithCast(CE->getOperand(1), CE->getOpcode());
-        Out << ")";
-      }
-      if (NeedsClosingParens)
-        Out << "))";
-      Out << ')';
-      return;
-    }
-    default:
-#ifndef NDEBUG
-      errs() << "CWriter Error: Unhandled constant expression: "
-           << *CE << "\n";
-#endif
-      llvm_unreachable(0);
-    }
-  } else if (isa<UndefValue>(CPV) && CPV->getType()->isSingleValueType()) {
-    Out << "((";
-    printType(Out, CPV->getType()); // sign doesn't matter
-    Out << ")/*UNDEF*/";
-    if (!isa<VectorType>(CPV->getType())) {
-      Out << "0)";
-    } else {
-      Out << "{})";
-    }
-    return;
-  }
-
-  if (ConstantInt *CI = dyn_cast<ConstantInt>(CPV)) {
-    const Type* Ty = CI->getType();
-    if (Ty == Type::getInt1Ty(CPV->getContext()))
-      Out << (CI->getZExtValue() ? '1' : '0');
-    else if (Ty == Type::getInt32Ty(CPV->getContext()))
-      Out << CI->getZExtValue() << 'u';
-    else if (Ty->getPrimitiveSizeInBits() > 32)
-      Out << CI->getZExtValue() << "ull";
-    else {
-      Out << "((";
-      printSimpleType(Out, Ty, false) << ')';
-      if (CI->isMinValue(true)) 
-        Out << CI->getZExtValue() << 'u';
-      else
-        Out << CI->getSExtValue();
-      Out << ')';
-    }
-    return;
-  } 
-
-  switch (CPV->getType()->getTypeID()) {
-  case Type::FloatTyID:
-  case Type::DoubleTyID: 
-  case Type::X86_FP80TyID:
-  case Type::PPC_FP128TyID:
-  case Type::FP128TyID: {
-    ConstantFP *FPC = cast<ConstantFP>(CPV);
-    std::map<const ConstantFP*, unsigned>::iterator I = FPConstantMap.find(FPC);
-    if (I != FPConstantMap.end()) {
-      // Because of FP precision problems we must load from a stack allocated
-      // value that holds the value in hex.
-      Out << "(*(" << (FPC->getType() == Type::getFloatTy(CPV->getContext()) ?
-                       "float" : 
-                       FPC->getType() == Type::getDoubleTy(CPV->getContext()) ? 
-                       "double" :
-                       "long double")
-          << "*)&FPConstant" << I->second << ')';
-    } else {
-      double V;
-      if (FPC->getType() == Type::getFloatTy(CPV->getContext()))
-        V = FPC->getValueAPF().convertToFloat();
-      else if (FPC->getType() == Type::getDoubleTy(CPV->getContext()))
-        V = FPC->getValueAPF().convertToDouble();
-      else {
-        // Long double.  Convert the number to double, discarding precision.
-        // This is not awesome, but it at least makes the CBE output somewhat
-        // useful.
-        APFloat Tmp = FPC->getValueAPF();
-        bool LosesInfo;
-        Tmp.convert(APFloat::IEEEdouble, APFloat::rmTowardZero, &LosesInfo);
-        V = Tmp.convertToDouble();
-      }
-      
-      if (IsNAN(V)) {
-        // The value is NaN
-
-        // FIXME the actual NaN bits should be emitted.
-        // The prefix for a quiet NaN is 0x7FF8. For a signalling NaN,
-        // it's 0x7ff4.
-        const unsigned long QuietNaN = 0x7ff8UL;
-        //const unsigned long SignalNaN = 0x7ff4UL;
-
-        // We need to grab the first part of the FP #
-        char Buffer[100];
-
-        uint64_t ll = DoubleToBits(V);
-        sprintf(Buffer, "0x%llx", static_cast<long long>(ll));
-
-        std::string Num(&Buffer[0], &Buffer[6]);
-        unsigned long Val = strtoul(Num.c_str(), 0, 16);
-
-        if (FPC->getType() == Type::getFloatTy(FPC->getContext()))
-          Out << "LLVM_NAN" << (Val == QuietNaN ? "" : "S") << "F(\""
-              << Buffer << "\") /*nan*/ ";
-        else
-          Out << "LLVM_NAN" << (Val == QuietNaN ? "" : "S") << "(\""
-              << Buffer << "\") /*nan*/ ";
-      } else if (IsInf(V)) {
-        // The value is Inf
-        if (V < 0) Out << '-';
-        Out << "LLVM_INF" <<
-            (FPC->getType() == Type::getFloatTy(FPC->getContext()) ? "F" : "")
-            << " /*inf*/ ";
-      } else {
-        std::string Num;
-#if HAVE_PRINTF_A && ENABLE_CBE_PRINTF_A
-        // Print out the constant as a floating point number.
-        char Buffer[100];
-        sprintf(Buffer, "%a", V);
-        Num = Buffer;
-#else
-        Num = ftostr(FPC->getValueAPF());
-#endif
-       Out << Num;
-      }
-    }
-    break;
-  }
-
-  case Type::ArrayTyID:
-    // Use C99 compound expression literal initializer syntax.
-    if (!Static) {
-      Out << "(";
-      printType(Out, CPV->getType());
-      Out << ")";
-    }
-    Out << "{ "; // Arrays are wrapped in struct types.
-    if (ConstantArray *CA = dyn_cast<ConstantArray>(CPV)) {
-      printConstantArray(CA, Static);
-    } else {
-      assert(isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV));
-      const ArrayType *AT = cast<ArrayType>(CPV->getType());
-      Out << '{';
-      if (AT->getNumElements()) {
-        Out << ' ';
-        Constant *CZ = Constant::getNullValue(AT->getElementType());
-        printConstant(CZ, Static);
-        for (unsigned i = 1, e = AT->getNumElements(); i != e; ++i) {
-          Out << ", ";
-          printConstant(CZ, Static);
-        }
-      }
-      Out << " }";
-    }
-    Out << " }"; // Arrays are wrapped in struct types.
-    break;
-
-  case Type::VectorTyID:
-    // Use C99 compound expression literal initializer syntax.
-    if (!Static) {
-      Out << "(";
-      printType(Out, CPV->getType());
-      Out << ")";
-    }
-    if (ConstantVector *CV = dyn_cast<ConstantVector>(CPV)) {
-      printConstantVector(CV, Static);
-    } else {
-      assert(isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV));
-      const VectorType *VT = cast<VectorType>(CPV->getType());
-      Out << "{ ";
-      Constant *CZ = Constant::getNullValue(VT->getElementType());
-      printConstant(CZ, Static);
-      for (unsigned i = 1, e = VT->getNumElements(); i != e; ++i) {
-        Out << ", ";
-        printConstant(CZ, Static);
-      }
-      Out << " }";
-    }
-    break;
-
-  case Type::StructTyID:
-    // Use C99 compound expression literal initializer syntax.
-    if (!Static) {
-      Out << "(";
-      printType(Out, CPV->getType());
-      Out << ")";
-    }
-    if (isa<ConstantAggregateZero>(CPV) || isa<UndefValue>(CPV)) {
-      const StructType *ST = cast<StructType>(CPV->getType());
-      Out << '{';
-      if (ST->getNumElements()) {
-        Out << ' ';
-        printConstant(Constant::getNullValue(ST->getElementType(0)), Static);
-        for (unsigned i = 1, e = ST->getNumElements(); i != e; ++i) {
-          Out << ", ";
-          printConstant(Constant::getNullValue(ST->getElementType(i)), Static);
-        }
-      }
-      Out << " }";
-    } else {
-      Out << '{';
-      if (CPV->getNumOperands()) {
-        Out << ' ';
-        printConstant(cast<Constant>(CPV->getOperand(0)), Static);
-        for (unsigned i = 1, e = CPV->getNumOperands(); i != e; ++i) {
-          Out << ", ";
-          printConstant(cast<Constant>(CPV->getOperand(i)), Static);
-        }
-      }
-      Out << " }";
-    }
-    break;
-
-  case Type::PointerTyID:
-    if (isa<ConstantPointerNull>(CPV)) {
-      Out << "((";
-      printType(Out, CPV->getType()); // sign doesn't matter
-      Out << ")/*NULL*/0)";
-      break;
-    } else if (GlobalValue *GV = dyn_cast<GlobalValue>(CPV)) {
-      writeOperand(GV, Static);
-      break;
-    }
-    // FALL THROUGH
-  default:
-#ifndef NDEBUG
-    errs() << "Unknown constant type: " << *CPV << "\n";
-#endif
-    llvm_unreachable(0);
-  }
-}
-
-// Some constant expressions need to be casted back to the original types
-// because their operands were casted to the expected type. This function takes
-// care of detecting that case and printing the cast for the ConstantExpr.
-bool CWriter::printConstExprCast(const ConstantExpr* CE, bool Static) {
-  bool NeedsExplicitCast = false;
-  const Type *Ty = CE->getOperand(0)->getType();
-  bool TypeIsSigned = false;
-  switch (CE->getOpcode()) {
-  case Instruction::Add:
-  case Instruction::Sub:
-  case Instruction::Mul:
-    // We need to cast integer arithmetic so that it is always performed
-    // as unsigned, to avoid undefined behavior on overflow.
-  case Instruction::LShr:
-  case Instruction::URem: 
-  case Instruction::UDiv: NeedsExplicitCast = true; break;
-  case Instruction::AShr:
-  case Instruction::SRem: 
-  case Instruction::SDiv: NeedsExplicitCast = true; TypeIsSigned = true; break;
-  case Instruction::SExt:
-    Ty = CE->getType();
-    NeedsExplicitCast = true;
-    TypeIsSigned = true;
-    break;
-  case Instruction::ZExt:
-  case Instruction::Trunc:
-  case Instruction::FPTrunc:
-  case Instruction::FPExt:
-  case Instruction::UIToFP:
-  case Instruction::SIToFP:
-  case Instruction::FPToUI:
-  case Instruction::FPToSI:
-  case Instruction::PtrToInt:
-  case Instruction::IntToPtr:
-  case Instruction::BitCast:
-    Ty = CE->getType();
-    NeedsExplicitCast = true;
-    break;
-  default: break;
-  }
-  if (NeedsExplicitCast) {
-    Out << "((";
-    if (Ty->isInteger() && Ty != Type::getInt1Ty(Ty->getContext()))
-      printSimpleType(Out, Ty, TypeIsSigned);
-    else
-      printType(Out, Ty); // not integer, sign doesn't matter
-    Out << ")(";
-  }
-  return NeedsExplicitCast;
-}
-
-//  Print a constant assuming that it is the operand for a given Opcode. The
-//  opcodes that care about sign need to cast their operands to the expected
-//  type before the operation proceeds. This function does the casting.
-void CWriter::printConstantWithCast(Constant* CPV, unsigned Opcode) {
-
-  // Extract the operand's type, we'll need it.
-  const Type* OpTy = CPV->getType();
-
-  // Indicate whether to do the cast or not.
-  bool shouldCast = false;
-  bool typeIsSigned = false;
-
-  // Based on the Opcode for which this Constant is being written, determine
-  // the new type to which the operand should be casted by setting the value
-  // of OpTy. If we change OpTy, also set shouldCast to true so it gets
-  // casted below.
-  switch (Opcode) {
-    default:
-      // for most instructions, it doesn't matter
-      break; 
-    case Instruction::Add:
-    case Instruction::Sub:
-    case Instruction::Mul:
-      // We need to cast integer arithmetic so that it is always performed
-      // as unsigned, to avoid undefined behavior on overflow.
-    case Instruction::LShr:
-    case Instruction::UDiv:
-    case Instruction::URem:
-      shouldCast = true;
-      break;
-    case Instruction::AShr:
-    case Instruction::SDiv:
-    case Instruction::SRem:
-      shouldCast = true;
-      typeIsSigned = true;
-      break;
-  }
-
-  // Write out the casted constant if we should, otherwise just write the
-  // operand.
-  if (shouldCast) {
-    Out << "((";
-    printSimpleType(Out, OpTy, typeIsSigned);
-    Out << ")";
-    printConstant(CPV, false);
-    Out << ")";
-  } else 
-    printConstant(CPV, false);
-}
-
-std::string CWriter::GetValueName(const Value *Operand) {
-  // Mangle globals with the standard mangler interface for LLC compatibility.
-  if (const GlobalValue *GV = dyn_cast<GlobalValue>(Operand))
-    return Mang->getMangledName(GV);
-    
-  std::string Name = Operand->getName();
-    
-  if (Name.empty()) { // Assign unique names to local temporaries.
-    unsigned &No = AnonValueNumbers[Operand];
-    if (No == 0)
-      No = ++NextAnonValueNumber;
-    Name = "tmp__" + utostr(No);
-  }
-    
-  std::string VarName;
-  VarName.reserve(Name.capacity());
-
-  for (std::string::iterator I = Name.begin(), E = Name.end();
-       I != E; ++I) {
-    char ch = *I;
-
-    if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') ||
-          (ch >= '0' && ch <= '9') || ch == '_')) {
-      char buffer[5];
-      sprintf(buffer, "_%x_", ch);
-      VarName += buffer;
-    } else
-      VarName += ch;
-  }
-
-  return "llvm_cbe_" + VarName;
-}
-
-/// writeInstComputationInline - Emit the computation for the specified
-/// instruction inline, with no destination provided.
-void CWriter::writeInstComputationInline(Instruction &I) {
-  // We can't currently support integer types other than 1, 8, 16, 32, 64.
-  // Validate this.
-  const Type *Ty = I.getType();
-  if (Ty->isInteger() && (Ty!=Type::getInt1Ty(I.getContext()) &&
-        Ty!=Type::getInt8Ty(I.getContext()) && 
-        Ty!=Type::getInt16Ty(I.getContext()) &&
-        Ty!=Type::getInt32Ty(I.getContext()) &&
-        Ty!=Type::getInt64Ty(I.getContext()))) {
-      llvm_report_error("The C backend does not currently support integer "
-                        "types of widths other than 1, 8, 16, 32, 64.\n"
-                        "This is being tracked as PR 4158.");
-  }
-
-  // If this is a non-trivial bool computation, make sure to truncate down to
-  // a 1 bit value.  This is important because we want "add i1 x, y" to return
-  // "0" when x and y are true, not "2" for example.
-  bool NeedBoolTrunc = false;
-  if (I.getType() == Type::getInt1Ty(I.getContext()) &&
-      !isa<ICmpInst>(I) && !isa<FCmpInst>(I))
-    NeedBoolTrunc = true;
-  
-  if (NeedBoolTrunc)
-    Out << "((";
-  
-  visit(I);
-  
-  if (NeedBoolTrunc)
-    Out << ")&1)";
-}
-
-
-void CWriter::writeOperandInternal(Value *Operand, bool Static) {
-  if (Instruction *I = dyn_cast<Instruction>(Operand))
-    // Should we inline this instruction to build a tree?
-    if (isInlinableInst(*I) && !isDirectAlloca(I)) {
-      Out << '(';
-      writeInstComputationInline(*I);
-      Out << ')';
-      return;
-    }
-
-  Constant* CPV = dyn_cast<Constant>(Operand);
-
-  if (CPV && !isa<GlobalValue>(CPV))
-    printConstant(CPV, Static);
-  else
-    Out << GetValueName(Operand);
-}
-
-void CWriter::writeOperand(Value *Operand, bool Static) {
-  bool isAddressImplicit = isAddressExposed(Operand);
-  if (isAddressImplicit)
-    Out << "(&";  // Global variables are referenced as their addresses by llvm
-
-  writeOperandInternal(Operand, Static);
-
-  if (isAddressImplicit)
-    Out << ')';
-}
-
-// Some instructions need to have their result value casted back to the 
-// original types because their operands were casted to the expected type. 
-// This function takes care of detecting that case and printing the cast 
-// for the Instruction.
-bool CWriter::writeInstructionCast(const Instruction &I) {
-  const Type *Ty = I.getOperand(0)->getType();
-  switch (I.getOpcode()) {
-  case Instruction::Add:
-  case Instruction::Sub:
-  case Instruction::Mul:
-    // We need to cast integer arithmetic so that it is always performed
-    // as unsigned, to avoid undefined behavior on overflow.
-  case Instruction::LShr:
-  case Instruction::URem: 
-  case Instruction::UDiv: 
-    Out << "((";
-    printSimpleType(Out, Ty, false);
-    Out << ")(";
-    return true;
-  case Instruction::AShr:
-  case Instruction::SRem: 
-  case Instruction::SDiv: 
-    Out << "((";
-    printSimpleType(Out, Ty, true);
-    Out << ")(";
-    return true;
-  default: break;
-  }
-  return false;
-}
-
-// Write the operand with a cast to another type based on the Opcode being used.
-// This will be used in cases where an instruction has specific type
-// requirements (usually signedness) for its operands. 
-void CWriter::writeOperandWithCast(Value* Operand, unsigned Opcode) {
-
-  // Extract the operand's type, we'll need it.
-  const Type* OpTy = Operand->getType();
-
-  // Indicate whether to do the cast or not.
-  bool shouldCast = false;
-
-  // Indicate whether the cast should be to a signed type or not.
-  bool castIsSigned = false;
-
-  // Based on the Opcode for which this Operand is being written, determine
-  // the new type to which the operand should be casted by setting the value
-  // of OpTy. If we change OpTy, also set shouldCast to true.
-  switch (Opcode) {
-    default:
-      // for most instructions, it doesn't matter
-      break; 
-    case Instruction::Add:
-    case Instruction::Sub:
-    case Instruction::Mul:
-      // We need to cast integer arithmetic so that it is always performed
-      // as unsigned, to avoid undefined behavior on overflow.
-    case Instruction::LShr:
-    case Instruction::UDiv:
-    case Instruction::URem: // Cast to unsigned first
-      shouldCast = true;
-      castIsSigned = false;
-      break;
-    case Instruction::GetElementPtr:
-    case Instruction::AShr:
-    case Instruction::SDiv:
-    case Instruction::SRem: // Cast to signed first
-      shouldCast = true;
-      castIsSigned = true;
-      break;
-  }
-
-  // Write out the casted operand if we should, otherwise just write the
-  // operand.
-  if (shouldCast) {
-    Out << "((";
-    printSimpleType(Out, OpTy, castIsSigned);
-    Out << ")";
-    writeOperand(Operand);
-    Out << ")";
-  } else 
-    writeOperand(Operand);
-}
-
-// Write the operand with a cast to another type based on the icmp predicate 
-// being used. 
-void CWriter::writeOperandWithCast(Value* Operand, const ICmpInst &Cmp) {
-  // This has to do a cast to ensure the operand has the right signedness. 
-  // Also, if the operand is a pointer, we make sure to cast to an integer when
-  // doing the comparison both for signedness and so that the C compiler doesn't
-  // optimize things like "p < NULL" to false (p may contain an integer value
-  // f.e.).
-  bool shouldCast = Cmp.isRelational();
-
-  // Write out the casted operand if we should, otherwise just write the
-  // operand.
-  if (!shouldCast) {
-    writeOperand(Operand);
-    return;
-  }
-  
-  // Should this be a signed comparison?  If so, convert to signed.
-  bool castIsSigned = Cmp.isSignedPredicate();
-
-  // If the operand was a pointer, convert to a large integer type.
-  const Type* OpTy = Operand->getType();
-  if (isa<PointerType>(OpTy))
-    OpTy = TD->getIntPtrType(Operand->getContext());
-  
-  Out << "((";
-  printSimpleType(Out, OpTy, castIsSigned);
-  Out << ")";
-  writeOperand(Operand);
-  Out << ")";
-}
-
-// generateCompilerSpecificCode - This is where we add conditional compilation
-// directives to cater to specific compilers as need be.
-//
-static void generateCompilerSpecificCode(formatted_raw_ostream& Out,
-                                         const TargetData *TD) {
-  // Alloca is hard to get, and we don't want to include stdlib.h here.
-  Out << "/* get a declaration for alloca */\n"
-      << "#if defined(__CYGWIN__) || defined(__MINGW32__)\n"
-      << "#define  alloca(x) __builtin_alloca((x))\n"
-      << "#define _alloca(x) __builtin_alloca((x))\n"
-      << "#elif defined(__APPLE__)\n"
-      << "extern void *__builtin_alloca(unsigned long);\n"
-      << "#define alloca(x) __builtin_alloca(x)\n"
-      << "#define longjmp _longjmp\n"
-      << "#define setjmp _setjmp\n"
-      << "#elif defined(__sun__)\n"
-      << "#if defined(__sparcv9)\n"
-      << "extern void *__builtin_alloca(unsigned long);\n"
-      << "#else\n"
-      << "extern void *__builtin_alloca(unsigned int);\n"
-      << "#endif\n"
-      << "#define alloca(x) __builtin_alloca(x)\n"
-      << "#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__arm__)\n"
-      << "#define alloca(x) __builtin_alloca(x)\n"
-      << "#elif defined(_MSC_VER)\n"
-      << "#define inline _inline\n"
-      << "#define alloca(x) _alloca(x)\n"
-      << "#else\n"
-      << "#include <alloca.h>\n"
-      << "#endif\n\n";
-
-  // We output GCC specific attributes to preserve 'linkonce'ness on globals.
-  // If we aren't being compiled with GCC, just drop these attributes.
-  Out << "#ifndef __GNUC__  /* Can only support \"linkonce\" vars with GCC */\n"
-      << "#define __attribute__(X)\n"
-      << "#endif\n\n";
-
-  // On Mac OS X, "external weak" is spelled "__attribute__((weak_import))".
-  Out << "#if defined(__GNUC__) && defined(__APPLE_CC__)\n"
-      << "#define __EXTERNAL_WEAK__ __attribute__((weak_import))\n"
-      << "#elif defined(__GNUC__)\n"
-      << "#define __EXTERNAL_WEAK__ __attribute__((weak))\n"
-      << "#else\n"
-      << "#define __EXTERNAL_WEAK__\n"
-      << "#endif\n\n";
-
-  // For now, turn off the weak linkage attribute on Mac OS X. (See above.)
-  Out << "#if defined(__GNUC__) && defined(__APPLE_CC__)\n"
-      << "#define __ATTRIBUTE_WEAK__\n"
-      << "#elif defined(__GNUC__)\n"
-      << "#define __ATTRIBUTE_WEAK__ __attribute__((weak))\n"
-      << "#else\n"
-      << "#define __ATTRIBUTE_WEAK__\n"
-      << "#endif\n\n";
-
-  // Add hidden visibility support. FIXME: APPLE_CC?
-  Out << "#if defined(__GNUC__)\n"
-      << "#define __HIDDEN__ __attribute__((visibility(\"hidden\")))\n"
-      << "#endif\n\n";
-    
-  // Define NaN and Inf as GCC builtins if using GCC, as 0 otherwise
-  // From the GCC documentation:
-  //
-  //   double __builtin_nan (const char *str)
-  //
-  // This is an implementation of the ISO C99 function nan.
-  //
-  // Since ISO C99 defines this function in terms of strtod, which we do
-  // not implement, a description of the parsing is in order. The string is
-  // parsed as by strtol; that is, the base is recognized by leading 0 or
-  // 0x prefixes. The number parsed is placed in the significand such that
-  // the least significant bit of the number is at the least significant
-  // bit of the significand. The number is truncated to fit the significand
-  // field provided. The significand is forced to be a quiet NaN.
-  //
-  // This function, if given a string literal, is evaluated early enough
-  // that it is considered a compile-time constant.
-  //
-  //   float __builtin_nanf (const char *str)
-  //
-  // Similar to __builtin_nan, except the return type is float.
-  //
-  //   double __builtin_inf (void)
-  //
-  // Similar to __builtin_huge_val, except a warning is generated if the
-  // target floating-point format does not support infinities. This
-  // function is suitable for implementing the ISO C99 macro INFINITY.
-  //
-  //   float __builtin_inff (void)
-  //
-  // Similar to __builtin_inf, except the return type is float.
-  Out << "#ifdef __GNUC__\n"
-      << "#define LLVM_NAN(NanStr)   __builtin_nan(NanStr)   /* Double */\n"
-      << "#define LLVM_NANF(NanStr)  __builtin_nanf(NanStr)  /* Float */\n"
-      << "#define LLVM_NANS(NanStr)  __builtin_nans(NanStr)  /* Double */\n"
-      << "#define LLVM_NANSF(NanStr) __builtin_nansf(NanStr) /* Float */\n"
-      << "#define LLVM_INF           __builtin_inf()         /* Double */\n"
-      << "#define LLVM_INFF          __builtin_inff()        /* Float */\n"
-      << "#define LLVM_PREFETCH(addr,rw,locality) "
-                              "__builtin_prefetch(addr,rw,locality)\n"
-      << "#define __ATTRIBUTE_CTOR__ __attribute__((constructor))\n"
-      << "#define __ATTRIBUTE_DTOR__ __attribute__((destructor))\n"
-      << "#define LLVM_ASM           __asm__\n"
-      << "#else\n"
-      << "#define LLVM_NAN(NanStr)   ((double)0.0)           /* Double */\n"
-      << "#define LLVM_NANF(NanStr)  0.0F                    /* Float */\n"
-      << "#define LLVM_NANS(NanStr)  ((double)0.0)           /* Double */\n"
-      << "#define LLVM_NANSF(NanStr) 0.0F                    /* Float */\n"
-      << "#define LLVM_INF           ((double)0.0)           /* Double */\n"
-      << "#define LLVM_INFF          0.0F                    /* Float */\n"
-      << "#define LLVM_PREFETCH(addr,rw,locality)            /* PREFETCH */\n"
-      << "#define __ATTRIBUTE_CTOR__\n"
-      << "#define __ATTRIBUTE_DTOR__\n"
-      << "#define LLVM_ASM(X)\n"
-      << "#endif\n\n";
-  
-  Out << "#if __GNUC__ < 4 /* Old GCC's, or compilers not GCC */ \n"
-      << "#define __builtin_stack_save() 0   /* not implemented */\n"
-      << "#define __builtin_stack_restore(X) /* noop */\n"
-      << "#endif\n\n";
-
-  // Output typedefs for 128-bit integers. If these are needed with a
-  // 32-bit target or with a C compiler that doesn't support mode(TI),
-  // more drastic measures will be needed.
-  Out << "#if __GNUC__ && __LP64__ /* 128-bit integer types */\n"
-      << "typedef int __attribute__((mode(TI))) llvmInt128;\n"
-      << "typedef unsigned __attribute__((mode(TI))) llvmUInt128;\n"
-      << "#endif\n\n";
-
-  // Output target-specific code that should be inserted into main.
-  Out << "#define CODE_FOR_MAIN() /* Any target-specific code for main()*/\n";
-}
-
-/// FindStaticTors - Given a static ctor/dtor list, unpack its contents into
-/// the StaticTors set.
-static void FindStaticTors(GlobalVariable *GV, std::set<Function*> &StaticTors){
-  ConstantArray *InitList = dyn_cast<ConstantArray>(GV->getInitializer());
-  if (!InitList) return;
-  
-  for (unsigned i = 0, e = InitList->getNumOperands(); i != e; ++i)
-    if (ConstantStruct *CS = dyn_cast<ConstantStruct>(InitList->getOperand(i))){
-      if (CS->getNumOperands() != 2) return;  // Not array of 2-element structs.
-      
-      if (CS->getOperand(1)->isNullValue())
-        return;  // Found a null terminator, exit printing.
-      Constant *FP = CS->getOperand(1);
-      if (ConstantExpr *CE = dyn_cast<ConstantExpr>(FP))
-        if (CE->isCast())
-          FP = CE->getOperand(0);
-      if (Function *F = dyn_cast<Function>(FP))
-        StaticTors.insert(F);
-    }
-}
-
-enum SpecialGlobalClass {
-  NotSpecial = 0,
-  GlobalCtors, GlobalDtors,
-  NotPrinted
-};
-
-/// getGlobalVariableClass - If this is a global that is specially recognized
-/// by LLVM, return a code that indicates how we should handle it.
-static SpecialGlobalClass getGlobalVariableClass(const GlobalVariable *GV) {
-  // If this is a global ctors/dtors list, handle it now.
-  if (GV->hasAppendingLinkage() && GV->use_empty()) {
-    if (GV->getName() == "llvm.global_ctors")
-      return GlobalCtors;
-    else if (GV->getName() == "llvm.global_dtors")
-      return GlobalDtors;
-  }
-  
-  // Otherwise, it it is other metadata, don't print it.  This catches things
-  // like debug information.
-  if (GV->getSection() == "llvm.metadata")
-    return NotPrinted;
-  
-  return NotSpecial;
-}
-
-// PrintEscapedString - Print each character of the specified string, escaping
-// it if it is not printable or if it is an escape char.
-static void PrintEscapedString(const char *Str, unsigned Length,
-                               raw_ostream &Out) {
-  for (unsigned i = 0; i != Length; ++i) {
-    unsigned char C = Str[i];
-    if (isprint(C) && C != '\\' && C != '"')
-      Out << C;
-    else if (C == '\\')
-      Out << "\\\\";
-    else if (C == '\"')
-      Out << "\\\"";
-    else if (C == '\t')
-      Out << "\\t";
-    else
-      Out << "\\x" << hexdigit(C >> 4) << hexdigit(C & 0x0F);
-  }
-}
-
-// PrintEscapedString - Print each character of the specified string, escaping
-// it if it is not printable or if it is an escape char.
-static void PrintEscapedString(const std::string &Str, raw_ostream &Out) {
-  PrintEscapedString(Str.c_str(), Str.size(), Out);
-}
-
-bool CWriter::doInitialization(Module &M) {
-  FunctionPass::doInitialization(M);
-  
-  // Initialize
-  TheModule = &M;
-
-  TD = new TargetData(&M);
-  IL = new IntrinsicLowering(*TD);
-  IL->AddPrototypes(M);
-
-  // Ensure that all structure types have names...
-  Mang = new Mangler(M);
-  Mang->markCharUnacceptable('.');
-
-  // Keep track of which functions are static ctors/dtors so they can have
-  // an attribute added to their prototypes.
-  std::set<Function*> StaticCtors, StaticDtors;
-  for (Module::global_iterator I = M.global_begin(), E = M.global_end();
-       I != E; ++I) {
-    switch (getGlobalVariableClass(I)) {
-    default: break;
-    case GlobalCtors:
-      FindStaticTors(I, StaticCtors);
-      break;
-    case GlobalDtors:
-      FindStaticTors(I, StaticDtors);
-      break;
-    }
-  }
-  
-  // get declaration for alloca
-  Out << "/* Provide Declarations */\n";
-  Out << "#include <stdarg.h>\n";      // Varargs support
-  Out << "#include <setjmp.h>\n";      // Unwind support
-  generateCompilerSpecificCode(Out, TD);
-
-  // Provide a definition for `bool' if not compiling with a C++ compiler.
-  Out << "\n"
-      << "#ifndef __cplusplus\ntypedef unsigned char bool;\n#endif\n"
-
-      << "\n\n/* Support for floating point constants */\n"
-      << "typedef unsigned long long ConstantDoubleTy;\n"
-      << "typedef unsigned int        ConstantFloatTy;\n"
-      << "typedef struct { unsigned long long f1; unsigned short f2; "
-         "unsigned short pad[3]; } ConstantFP80Ty;\n"
-      // This is used for both kinds of 128-bit long double; meaning differs.
-      << "typedef struct { unsigned long long f1; unsigned long long f2; }"
-         " ConstantFP128Ty;\n"
-      << "\n\n/* Global Declarations */\n";
-
-  // First output all the declarations for the program, because C requires
-  // Functions & globals to be declared before they are used.
-  //
-  if (!M.getModuleInlineAsm().empty()) {
-    Out << "/* Module asm statements */\n"
-        << "asm(";
-
-    // Split the string into lines, to make it easier to read the .ll file.
-    std::string Asm = M.getModuleInlineAsm();
-    size_t CurPos = 0;
-    size_t NewLine = Asm.find_first_of('\n', CurPos);
-    while (NewLine != std::string::npos) {
-      // We found a newline, print the portion of the asm string from the
-      // last newline up to this newline.
-      Out << "\"";
-      PrintEscapedString(std::string(Asm.begin()+CurPos, Asm.begin()+NewLine),
-                         Out);
-      Out << "\\n\"\n";
-      CurPos = NewLine+1;
-      NewLine = Asm.find_first_of('\n', CurPos);
-    }
-    Out << "\"";
-    PrintEscapedString(std::string(Asm.begin()+CurPos, Asm.end()), Out);
-    Out << "\");\n"
-        << "/* End Module asm statements */\n";
-  }
-
-  // Loop over the symbol table, emitting all named constants...
-  printModuleTypes(M.getTypeSymbolTable());
-
-  // Global variable declarations...
-  if (!M.global_empty()) {
-    Out << "\n/* External Global Variable Declarations */\n";
-    for (Module::global_iterator I = M.global_begin(), E = M.global_end();
-         I != E; ++I) {
-
-      if (I->hasExternalLinkage() || I->hasExternalWeakLinkage() || 
-          I->hasCommonLinkage())
-        Out << "extern ";
-      else if (I->hasDLLImportLinkage())
-        Out << "__declspec(dllimport) ";
-      else
-        continue; // Internal Global
-
-      // Thread Local Storage
-      if (I->isThreadLocal())
-        Out << "__thread ";
-
-      printType(Out, I->getType()->getElementType(), false, GetValueName(I));
-
-      if (I->hasExternalWeakLinkage())
-         Out << " __EXTERNAL_WEAK__";
-      Out << ";\n";
-    }
-  }
-
-  // Function declarations
-  Out << "\n/* Function Declarations */\n";
-  Out << "double fmod(double, double);\n";   // Support for FP rem
-  Out << "float fmodf(float, float);\n";
-  Out << "long double fmodl(long double, long double);\n";
-  
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
-    // Don't print declarations for intrinsic functions.
-    if (!I->isIntrinsic() && I->getName() != "setjmp" &&
-        I->getName() != "longjmp" && I->getName() != "_setjmp") {
-      if (I->hasExternalWeakLinkage())
-        Out << "extern ";
-      printFunctionSignature(I, true);
-      if (I->hasWeakLinkage() || I->hasLinkOnceLinkage()) 
-        Out << " __ATTRIBUTE_WEAK__";
-      if (I->hasExternalWeakLinkage())
-        Out << " __EXTERNAL_WEAK__";
-      if (StaticCtors.count(I))
-        Out << " __ATTRIBUTE_CTOR__";
-      if (StaticDtors.count(I))
-        Out << " __ATTRIBUTE_DTOR__";
-      if (I->hasHiddenVisibility())
-        Out << " __HIDDEN__";
-      
-      if (I->hasName() && I->getName()[0] == 1)
-        Out << " LLVM_ASM(\"" << I->getName().substr(1) << "\")";
-          
-      Out << ";\n";
-    }
-  }
-
-  // Output the global variable declarations
-  if (!M.global_empty()) {
-    Out << "\n\n/* Global Variable Declarations */\n";
-    for (Module::global_iterator I = M.global_begin(), E = M.global_end();
-         I != E; ++I)
-      if (!I->isDeclaration()) {
-        // Ignore special globals, such as debug info.
-        if (getGlobalVariableClass(I))
-          continue;
-
-        if (I->hasLocalLinkage())
-          Out << "static ";
-        else
-          Out << "extern ";
-
-        // Thread Local Storage
-        if (I->isThreadLocal())
-          Out << "__thread ";
-
-        printType(Out, I->getType()->getElementType(), false, 
-                  GetValueName(I));
-
-        if (I->hasLinkOnceLinkage())
-          Out << " __attribute__((common))";
-        else if (I->hasCommonLinkage())     // FIXME is this right?
-          Out << " __ATTRIBUTE_WEAK__";
-        else if (I->hasWeakLinkage())
-          Out << " __ATTRIBUTE_WEAK__";
-        else if (I->hasExternalWeakLinkage())
-          Out << " __EXTERNAL_WEAK__";
-        if (I->hasHiddenVisibility())
-          Out << " __HIDDEN__";
-        Out << ";\n";
-      }
-  }
-
-  // Output the global variable definitions and contents...
-  if (!M.global_empty()) {
-    Out << "\n\n/* Global Variable Definitions and Initialization */\n";
-    for (Module::global_iterator I = M.global_begin(), E = M.global_end(); 
-         I != E; ++I)
-      if (!I->isDeclaration()) {
-        // Ignore special globals, such as debug info.
-        if (getGlobalVariableClass(I))
-          continue;
-
-        if (I->hasLocalLinkage())
-          Out << "static ";
-        else if (I->hasDLLImportLinkage())
-          Out << "__declspec(dllimport) ";
-        else if (I->hasDLLExportLinkage())
-          Out << "__declspec(dllexport) ";
-
-        // Thread Local Storage
-        if (I->isThreadLocal())
-          Out << "__thread ";
-
-        printType(Out, I->getType()->getElementType(), false, 
-                  GetValueName(I));
-        if (I->hasLinkOnceLinkage())
-          Out << " __attribute__((common))";
-        else if (I->hasWeakLinkage())
-          Out << " __ATTRIBUTE_WEAK__";
-        else if (I->hasCommonLinkage())
-          Out << " __ATTRIBUTE_WEAK__";
-
-        if (I->hasHiddenVisibility())
-          Out << " __HIDDEN__";
-        
-        // If the initializer is not null, emit the initializer.  If it is null,
-        // we try to avoid emitting large amounts of zeros.  The problem with
-        // this, however, occurs when the variable has weak linkage.  In this
-        // case, the assembler will complain about the variable being both weak
-        // and common, so we disable this optimization.
-        // FIXME common linkage should avoid this problem.
-        if (!I->getInitializer()->isNullValue()) {
-          Out << " = " ;
-          writeOperand(I->getInitializer(), true);
-        } else if (I->hasWeakLinkage()) {
-          // We have to specify an initializer, but it doesn't have to be
-          // complete.  If the value is an aggregate, print out { 0 }, and let
-          // the compiler figure out the rest of the zeros.
-          Out << " = " ;
-          if (isa<StructType>(I->getInitializer()->getType()) ||
-              isa<VectorType>(I->getInitializer()->getType())) {
-            Out << "{ 0 }";
-          } else if (isa<ArrayType>(I->getInitializer()->getType())) {
-            // As with structs and vectors, but with an extra set of braces
-            // because arrays are wrapped in structs.
-            Out << "{ { 0 } }";
-          } else {
-            // Just print it out normally.
-            writeOperand(I->getInitializer(), true);
-          }
-        }
-        Out << ";\n";
-      }
-  }
-
-  if (!M.empty())
-    Out << "\n\n/* Function Bodies */\n";
-
-  // Emit some helper functions for dealing with FCMP instruction's 
-  // predicates
-  Out << "static inline int llvm_fcmp_ord(double X, double Y) { ";
-  Out << "return X == X && Y == Y; }\n";
-  Out << "static inline int llvm_fcmp_uno(double X, double Y) { ";
-  Out << "return X != X || Y != Y; }\n";
-  Out << "static inline int llvm_fcmp_ueq(double X, double Y) { ";
-  Out << "return X == Y || llvm_fcmp_uno(X, Y); }\n";
-  Out << "static inline int llvm_fcmp_une(double X, double Y) { ";
-  Out << "return X != Y; }\n";
-  Out << "static inline int llvm_fcmp_ult(double X, double Y) { ";
-  Out << "return X <  Y || llvm_fcmp_uno(X, Y); }\n";
-  Out << "static inline int llvm_fcmp_ugt(double X, double Y) { ";
-  Out << "return X >  Y || llvm_fcmp_uno(X, Y); }\n";
-  Out << "static inline int llvm_fcmp_ule(double X, double Y) { ";
-  Out << "return X <= Y || llvm_fcmp_uno(X, Y); }\n";
-  Out << "static inline int llvm_fcmp_uge(double X, double Y) { ";
-  Out << "return X >= Y || llvm_fcmp_uno(X, Y); }\n";
-  Out << "static inline int llvm_fcmp_oeq(double X, double Y) { ";
-  Out << "return X == Y ; }\n";
-  Out << "static inline int llvm_fcmp_one(double X, double Y) { ";
-  Out << "return X != Y && llvm_fcmp_ord(X, Y); }\n";
-  Out << "static inline int llvm_fcmp_olt(double X, double Y) { ";
-  Out << "return X <  Y ; }\n";
-  Out << "static inline int llvm_fcmp_ogt(double X, double Y) { ";
-  Out << "return X >  Y ; }\n";
-  Out << "static inline int llvm_fcmp_ole(double X, double Y) { ";
-  Out << "return X <= Y ; }\n";
-  Out << "static inline int llvm_fcmp_oge(double X, double Y) { ";
-  Out << "return X >= Y ; }\n";
-  return false;
-}
-
-
-/// Output all floating point constants that cannot be printed accurately...
-void CWriter::printFloatingPointConstants(Function &F) {
-  // Scan the module for floating point constants.  If any FP constant is used
-  // in the function, we want to redirect it here so that we do not depend on
-  // the precision of the printed form, unless the printed form preserves
-  // precision.
-  //
-  for (constant_iterator I = constant_begin(&F), E = constant_end(&F);
-       I != E; ++I)
-    printFloatingPointConstants(*I);
-
-  Out << '\n';
-}
-
-void CWriter::printFloatingPointConstants(const Constant *C) {
-  // If this is a constant expression, recursively check for constant fp values.
-  if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(C)) {
-    for (unsigned i = 0, e = CE->getNumOperands(); i != e; ++i)
-      printFloatingPointConstants(CE->getOperand(i));
-    return;
-  }
-    
-  // Otherwise, check for a FP constant that we need to print.
-  const ConstantFP *FPC = dyn_cast<ConstantFP>(C);
-  if (FPC == 0 ||
-      // Do not put in FPConstantMap if safe.
-      isFPCSafeToPrint(FPC) ||
-      // Already printed this constant?
-      FPConstantMap.count(FPC))
-    return;
-
-  FPConstantMap[FPC] = FPCounter;  // Number the FP constants
-  
-  if (FPC->getType() == Type::getDoubleTy(FPC->getContext())) {
-    double Val = FPC->getValueAPF().convertToDouble();
-    uint64_t i = FPC->getValueAPF().bitcastToAPInt().getZExtValue();
-    Out << "static const ConstantDoubleTy FPConstant" << FPCounter++
-    << " = 0x" << utohexstr(i)
-    << "ULL;    /* " << Val << " */\n";
-  } else if (FPC->getType() == Type::getFloatTy(FPC->getContext())) {
-    float Val = FPC->getValueAPF().convertToFloat();
-    uint32_t i = (uint32_t)FPC->getValueAPF().bitcastToAPInt().
-    getZExtValue();
-    Out << "static const ConstantFloatTy FPConstant" << FPCounter++
-    << " = 0x" << utohexstr(i)
-    << "U;    /* " << Val << " */\n";
-  } else if (FPC->getType() == Type::getX86_FP80Ty(FPC->getContext())) {
-    // api needed to prevent premature destruction
-    APInt api = FPC->getValueAPF().bitcastToAPInt();
-    const uint64_t *p = api.getRawData();
-    Out << "static const ConstantFP80Ty FPConstant" << FPCounter++
-    << " = { 0x" << utohexstr(p[0]) 
-    << "ULL, 0x" << utohexstr((uint16_t)p[1]) << ",{0,0,0}"
-    << "}; /* Long double constant */\n";
-  } else if (FPC->getType() == Type::getPPC_FP128Ty(FPC->getContext()) ||
-             FPC->getType() == Type::getFP128Ty(FPC->getContext())) {
-    APInt api = FPC->getValueAPF().bitcastToAPInt();
-    const uint64_t *p = api.getRawData();
-    Out << "static const ConstantFP128Ty FPConstant" << FPCounter++
-    << " = { 0x"
-    << utohexstr(p[0]) << ", 0x" << utohexstr(p[1])
-    << "}; /* Long double constant */\n";
-    
-  } else {
-    llvm_unreachable("Unknown float type!");
-  }
-}
-
-
-
-/// printSymbolTable - Run through symbol table looking for type names.  If a
-/// type name is found, emit its declaration...
-///
-void CWriter::printModuleTypes(const TypeSymbolTable &TST) {
-  Out << "/* Helper union for bitcasts */\n";
-  Out << "typedef union {\n";
-  Out << "  unsigned int Int32;\n";
-  Out << "  unsigned long long Int64;\n";
-  Out << "  float Float;\n";
-  Out << "  double Double;\n";
-  Out << "} llvmBitCastUnion;\n";
-
-  // We are only interested in the type plane of the symbol table.
-  TypeSymbolTable::const_iterator I   = TST.begin();
-  TypeSymbolTable::const_iterator End = TST.end();
-
-  // If there are no type names, exit early.
-  if (I == End) return;
-
-  // Print out forward declarations for structure types before anything else!
-  Out << "/* Structure forward decls */\n";
-  for (; I != End; ++I) {
-    std::string Name = "struct l_" + Mang->makeNameProper(I->first);
-    Out << Name << ";\n";
-    TypeNames.insert(std::make_pair(I->second, Name));
-  }
-
-  Out << '\n';
-
-  // Now we can print out typedefs.  Above, we guaranteed that this can only be
-  // for struct or opaque types.
-  Out << "/* Typedefs */\n";
-  for (I = TST.begin(); I != End; ++I) {
-    std::string Name = "l_" + Mang->makeNameProper(I->first);
-    Out << "typedef ";
-    printType(Out, I->second, false, Name);
-    Out << ";\n";
-  }
-
-  Out << '\n';
-
-  // Keep track of which structures have been printed so far...
-  std::set<const Type *> StructPrinted;
-
-  // Loop over all structures then push them into the stack so they are
-  // printed in the correct order.
-  //
-  Out << "/* Structure contents */\n";
-  for (I = TST.begin(); I != End; ++I)
-    if (isa<StructType>(I->second) || isa<ArrayType>(I->second))
-      // Only print out used types!
-      printContainedStructs(I->second, StructPrinted);
-}
-
-// Push the struct onto the stack and recursively push all structs
-// this one depends on.
-//
-// TODO:  Make this work properly with vector types
-//
-void CWriter::printContainedStructs(const Type *Ty,
-                                    std::set<const Type*> &StructPrinted) {
-  // Don't walk through pointers.
-  if (isa<PointerType>(Ty) || Ty->isPrimitiveType() || Ty->isInteger()) return;
-  
-  // Print all contained types first.
-  for (Type::subtype_iterator I = Ty->subtype_begin(),
-       E = Ty->subtype_end(); I != E; ++I)
-    printContainedStructs(*I, StructPrinted);
-  
-  if (isa<StructType>(Ty) || isa<ArrayType>(Ty)) {
-    // Check to see if we have already printed this struct.
-    if (StructPrinted.insert(Ty).second) {
-      // Print structure type out.
-      std::string Name = TypeNames[Ty];
-      printType(Out, Ty, false, Name, true);
-      Out << ";\n\n";
-    }
-  }
-}
-
-void CWriter::printFunctionSignature(const Function *F, bool Prototype) {
-  /// isStructReturn - Should this function actually return a struct by-value?
-  bool isStructReturn = F->hasStructRetAttr();
-  
-  if (F->hasLocalLinkage()) Out << "static ";
-  if (F->hasDLLImportLinkage()) Out << "__declspec(dllimport) ";
-  if (F->hasDLLExportLinkage()) Out << "__declspec(dllexport) ";  
-  switch (F->getCallingConv()) {
-   case CallingConv::X86_StdCall:
-    Out << "__attribute__((stdcall)) ";
-    break;
-   case CallingConv::X86_FastCall:
-    Out << "__attribute__((fastcall)) ";
-    break;
-  }
-  
-  // Loop over the arguments, printing them...
-  const FunctionType *FT = cast<FunctionType>(F->getFunctionType());
-  const AttrListPtr &PAL = F->getAttributes();
-
-  std::stringstream FunctionInnards;
-
-  // Print out the name...
-  FunctionInnards << GetValueName(F) << '(';
-
-  bool PrintedArg = false;
-  if (!F->isDeclaration()) {
-    if (!F->arg_empty()) {
-      Function::const_arg_iterator I = F->arg_begin(), E = F->arg_end();
-      unsigned Idx = 1;
-      
-      // If this is a struct-return function, don't print the hidden
-      // struct-return argument.
-      if (isStructReturn) {
-        assert(I != E && "Invalid struct return function!");
-        ++I;
-        ++Idx;
-      }
-      
-      std::string ArgName;
-      for (; I != E; ++I) {
-        if (PrintedArg) FunctionInnards << ", ";
-        if (I->hasName() || !Prototype)
-          ArgName = GetValueName(I);
-        else
-          ArgName = "";
-        const Type *ArgTy = I->getType();
-        if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {
-          ArgTy = cast<PointerType>(ArgTy)->getElementType();
-          ByValParams.insert(I);
-        }
-        printType(FunctionInnards, ArgTy,
-            /*isSigned=*/PAL.paramHasAttr(Idx, Attribute::SExt),
-            ArgName);
-        PrintedArg = true;
-        ++Idx;
-      }
-    }
-  } else {
-    // Loop over the arguments, printing them.
-    FunctionType::param_iterator I = FT->param_begin(), E = FT->param_end();
-    unsigned Idx = 1;
-    
-    // If this is a struct-return function, don't print the hidden
-    // struct-return argument.
-    if (isStructReturn) {
-      assert(I != E && "Invalid struct return function!");
-      ++I;
-      ++Idx;
-    }
-    
-    for (; I != E; ++I) {
-      if (PrintedArg) FunctionInnards << ", ";
-      const Type *ArgTy = *I;
-      if (PAL.paramHasAttr(Idx, Attribute::ByVal)) {
-        assert(isa<PointerType>(ArgTy));
-        ArgTy = cast<PointerType>(ArgTy)->getElementType();
-      }
-      printType(FunctionInnards, ArgTy,
-             /*isSigned=*/PAL.paramHasAttr(Idx, Attribute::SExt));
-      PrintedArg = true;
-      ++Idx;
-    }
-  }
-
-  // Finish printing arguments... if this is a vararg function, print the ...,
-  // unless there are no known types, in which case, we just emit ().
-  //
-  if (FT->isVarArg() && PrintedArg) {
-    if (PrintedArg) FunctionInnards << ", ";
-    FunctionInnards << "...";  // Output varargs portion of signature!
-  } else if (!FT->isVarArg() && !PrintedArg) {
-    FunctionInnards << "void"; // ret() -> ret(void) in C.
-  }
-  FunctionInnards << ')';
-  
-  // Get the return tpe for the function.
-  const Type *RetTy;
-  if (!isStructReturn)
-    RetTy = F->getReturnType();
-  else {
-    // If this is a struct-return function, print the struct-return type.
-    RetTy = cast<PointerType>(FT->getParamType(0))->getElementType();
-  }
-    
-  // Print out the return type and the signature built above.
-  printType(Out, RetTy, 
-            /*isSigned=*/PAL.paramHasAttr(0, Attribute::SExt),
-            FunctionInnards.str());
-}
-
-static inline bool isFPIntBitCast(const Instruction &I) {
-  if (!isa<BitCastInst>(I))
-    return false;
-  const Type *SrcTy = I.getOperand(0)->getType();
-  const Type *DstTy = I.getType();
-  return (SrcTy->isFloatingPoint() && DstTy->isInteger()) ||
-         (DstTy->isFloatingPoint() && SrcTy->isInteger());
-}
-
-void CWriter::printFunction(Function &F) {
-  /// isStructReturn - Should this function actually return a struct by-value?
-  bool isStructReturn = F.hasStructRetAttr();
-
-  printFunctionSignature(&F, false);
-  Out << " {\n";
-  
-  // If this is a struct return function, handle the result with magic.
-  if (isStructReturn) {
-    const Type *StructTy =
-      cast<PointerType>(F.arg_begin()->getType())->getElementType();
-    Out << "  ";
-    printType(Out, StructTy, false, "StructReturn");
-    Out << ";  /* Struct return temporary */\n";
-
-    Out << "  ";
-    printType(Out, F.arg_begin()->getType(), false, 
-              GetValueName(F.arg_begin()));
-    Out << " = &StructReturn;\n";
-  }
-
-  bool PrintedVar = false;
-  
-  // print local variable information for the function
-  for (inst_iterator I = inst_begin(&F), E = inst_end(&F); I != E; ++I) {
-    if (const AllocaInst *AI = isDirectAlloca(&*I)) {
-      Out << "  ";
-      printType(Out, AI->getAllocatedType(), false, GetValueName(AI));
-      Out << ";    /* Address-exposed local */\n";
-      PrintedVar = true;
-    } else if (I->getType() != Type::getVoidTy(F.getContext()) && 
-               !isInlinableInst(*I)) {
-      Out << "  ";
-      printType(Out, I->getType(), false, GetValueName(&*I));
-      Out << ";\n";
-
-      if (isa<PHINode>(*I)) {  // Print out PHI node temporaries as well...
-        Out << "  ";
-        printType(Out, I->getType(), false,
-                  GetValueName(&*I)+"__PHI_TEMPORARY");
-        Out << ";\n";
-      }
-      PrintedVar = true;
-    }
-    // We need a temporary for the BitCast to use so it can pluck a value out
-    // of a union to do the BitCast. This is separate from the need for a
-    // variable to hold the result of the BitCast. 
-    if (isFPIntBitCast(*I)) {
-      Out << "  llvmBitCastUnion " << GetValueName(&*I)
-          << "__BITCAST_TEMPORARY;\n";
-      PrintedVar = true;
-    }
-  }
-
-  if (PrintedVar)
-    Out << '\n';
-
-  if (F.hasExternalLinkage() && F.getName() == "main")
-    Out << "  CODE_FOR_MAIN();\n";
-
-  // print the basic blocks
-  for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) {
-    if (Loop *L = LI->getLoopFor(BB)) {
-      if (L->getHeader() == BB && L->getParentLoop() == 0)
-        printLoop(L);
-    } else {
-      printBasicBlock(BB);
-    }
-  }
-
-  Out << "}\n\n";
-}
-
-void CWriter::printLoop(Loop *L) {
-  Out << "  do {     /* Syntactic loop '" << L->getHeader()->getName()
-      << "' to make GCC happy */\n";
-  for (unsigned i = 0, e = L->getBlocks().size(); i != e; ++i) {
-    BasicBlock *BB = L->getBlocks()[i];
-    Loop *BBLoop = LI->getLoopFor(BB);
-    if (BBLoop == L)
-      printBasicBlock(BB);
-    else if (BB == BBLoop->getHeader() && BBLoop->getParentLoop() == L)
-      printLoop(BBLoop);
-  }
-  Out << "  } while (1); /* end of syntactic loop '"
-      << L->getHeader()->getName() << "' */\n";
-}
-
-void CWriter::printBasicBlock(BasicBlock *BB) {
-
-  // Don't print the label for the basic block if there are no uses, or if
-  // the only terminator use is the predecessor basic block's terminator.
-  // We have to scan the use list because PHI nodes use basic blocks too but
-  // do not require a label to be generated.
-  //
-  bool NeedsLabel = false;
-  for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI)
-    if (isGotoCodeNecessary(*PI, BB)) {
-      NeedsLabel = true;
-      break;
-    }
-
-  if (NeedsLabel) Out << GetValueName(BB) << ":\n";
-
-  // Output all of the instructions in the basic block...
-  for (BasicBlock::iterator II = BB->begin(), E = --BB->end(); II != E;
-       ++II) {
-    if (!isInlinableInst(*II) && !isDirectAlloca(II)) {
-      if (II->getType() != Type::getVoidTy(BB->getContext()) &&
-          !isInlineAsm(*II))
-        outputLValue(II);
-      else
-        Out << "  ";
-      writeInstComputationInline(*II);
-      Out << ";\n";
-    }
-  }
-
-  // Don't emit prefix or suffix for the terminator.
-  visit(*BB->getTerminator());
-}
-
-
-// Specific Instruction type classes... note that all of the casts are
-// necessary because we use the instruction classes as opaque types...
-//
-void CWriter::visitReturnInst(ReturnInst &I) {
-  // If this is a struct return function, return the temporary struct.
-  bool isStructReturn = I.getParent()->getParent()->hasStructRetAttr();
-
-  if (isStructReturn) {
-    Out << "  return StructReturn;\n";
-    return;
-  }
-  
-  // Don't output a void return if this is the last basic block in the function
-  if (I.getNumOperands() == 0 &&
-      &*--I.getParent()->getParent()->end() == I.getParent() &&
-      !I.getParent()->size() == 1) {
-    return;
-  }
-
-  if (I.getNumOperands() > 1) {
-    Out << "  {\n";
-    Out << "    ";
-    printType(Out, I.getParent()->getParent()->getReturnType());
-    Out << "   llvm_cbe_mrv_temp = {\n";
-    for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i) {
-      Out << "      ";
-      writeOperand(I.getOperand(i));
-      if (i != e - 1)
-        Out << ",";
-      Out << "\n";
-    }
-    Out << "    };\n";
-    Out << "    return llvm_cbe_mrv_temp;\n";
-    Out << "  }\n";
-    return;
-  }
-
-  Out << "  return";
-  if (I.getNumOperands()) {
-    Out << ' ';
-    writeOperand(I.getOperand(0));
-  }
-  Out << ";\n";
-}
-
-void CWriter::visitSwitchInst(SwitchInst &SI) {
-
-  Out << "  switch (";
-  writeOperand(SI.getOperand(0));
-  Out << ") {\n  default:\n";
-  printPHICopiesForSuccessor (SI.getParent(), SI.getDefaultDest(), 2);
-  printBranchToBlock(SI.getParent(), SI.getDefaultDest(), 2);
-  Out << ";\n";
-  for (unsigned i = 2, e = SI.getNumOperands(); i != e; i += 2) {
-    Out << "  case ";
-    writeOperand(SI.getOperand(i));
-    Out << ":\n";
-    BasicBlock *Succ = cast<BasicBlock>(SI.getOperand(i+1));
-    printPHICopiesForSuccessor (SI.getParent(), Succ, 2);
-    printBranchToBlock(SI.getParent(), Succ, 2);
-    if (Function::iterator(Succ) == next(Function::iterator(SI.getParent())))
-      Out << "    break;\n";
-  }
-  Out << "  }\n";
-}
-
-void CWriter::visitUnreachableInst(UnreachableInst &I) {
-  Out << "  /*UNREACHABLE*/;\n";
-}
-
-bool CWriter::isGotoCodeNecessary(BasicBlock *From, BasicBlock *To) {
-  /// FIXME: This should be reenabled, but loop reordering safe!!
-  return true;
-
-  if (next(Function::iterator(From)) != Function::iterator(To))
-    return true;  // Not the direct successor, we need a goto.
-
-  //isa<SwitchInst>(From->getTerminator())
-
-  if (LI->getLoopFor(From) != LI->getLoopFor(To))
-    return true;
-  return false;
-}
-
-void CWriter::printPHICopiesForSuccessor (BasicBlock *CurBlock,
-                                          BasicBlock *Successor,
-                                          unsigned Indent) {
-  for (BasicBlock::iterator I = Successor->begin(); isa<PHINode>(I); ++I) {
-    PHINode *PN = cast<PHINode>(I);
-    // Now we have to do the printing.
-    Value *IV = PN->getIncomingValueForBlock(CurBlock);
-    if (!isa<UndefValue>(IV)) {
-      Out << std::string(Indent, ' ');
-      Out << "  " << GetValueName(I) << "__PHI_TEMPORARY = ";
-      writeOperand(IV);
-      Out << ";   /* for PHI node */\n";
-    }
-  }
-}
-
-void CWriter::printBranchToBlock(BasicBlock *CurBB, BasicBlock *Succ,
-                                 unsigned Indent) {
-  if (isGotoCodeNecessary(CurBB, Succ)) {
-    Out << std::string(Indent, ' ') << "  goto ";
-    writeOperand(Succ);
-    Out << ";\n";
-  }
-}
-
-// Branch instruction printing - Avoid printing out a branch to a basic block
-// that immediately succeeds the current one.
-//
-void CWriter::visitBranchInst(BranchInst &I) {
-
-  if (I.isConditional()) {
-    if (isGotoCodeNecessary(I.getParent(), I.getSuccessor(0))) {
-      Out << "  if (";
-      writeOperand(I.getCondition());
-      Out << ") {\n";
-
-      printPHICopiesForSuccessor (I.getParent(), I.getSuccessor(0), 2);
-      printBranchToBlock(I.getParent(), I.getSuccessor(0), 2);
-
-      if (isGotoCodeNecessary(I.getParent(), I.getSuccessor(1))) {
-        Out << "  } else {\n";
-        printPHICopiesForSuccessor (I.getParent(), I.getSuccessor(1), 2);
-        printBranchToBlock(I.getParent(), I.getSuccessor(1), 2);
-      }
-    } else {
-      // First goto not necessary, assume second one is...
-      Out << "  if (!";
-      writeOperand(I.getCondition());
-      Out << ") {\n";
-
-      printPHICopiesForSuccessor (I.getParent(), I.getSuccessor(1), 2);
-      printBranchToBlock(I.getParent(), I.getSuccessor(1), 2);
-    }
-
-    Out << "  }\n";
-  } else {
-    printPHICopiesForSuccessor (I.getParent(), I.getSuccessor(0), 0);
-    printBranchToBlock(I.getParent(), I.getSuccessor(0), 0);
-  }
-  Out << "\n";
-}
-
-// PHI nodes get copied into temporary values at the end of predecessor basic
-// blocks.  We now need to copy these temporary values into the REAL value for
-// the PHI.
-void CWriter::visitPHINode(PHINode &I) {
-  writeOperand(&I);
-  Out << "__PHI_TEMPORARY";
-}
-
-
-void CWriter::visitBinaryOperator(Instruction &I) {
-  // binary instructions, shift instructions, setCond instructions.
-  assert(!isa<PointerType>(I.getType()));
-
-  // We must cast the results of binary operations which might be promoted.
-  bool needsCast = false;
-  if ((I.getType() == Type::getInt8Ty(I.getContext())) ||
-      (I.getType() == Type::getInt16Ty(I.getContext())) 
-      || (I.getType() == Type::getFloatTy(I.getContext()))) {
-    needsCast = true;
-    Out << "((";
-    printType(Out, I.getType(), false);
-    Out << ")(";
-  }
-
-  // If this is a negation operation, print it out as such.  For FP, we don't
-  // want to print "-0.0 - X".
-  if (BinaryOperator::isNeg(&I)) {
-    Out << "-(";
-    writeOperand(BinaryOperator::getNegArgument(cast<BinaryOperator>(&I)));
-    Out << ")";
-  } else if (BinaryOperator::isFNeg(&I)) {
-    Out << "-(";
-    writeOperand(BinaryOperator::getFNegArgument(cast<BinaryOperator>(&I)));
-    Out << ")";
-  } else if (I.getOpcode() == Instruction::FRem) {
-    // Output a call to fmod/fmodf instead of emitting a%b
-    if (I.getType() == Type::getFloatTy(I.getContext()))
-      Out << "fmodf(";
-    else if (I.getType() == Type::getDoubleTy(I.getContext()))
-      Out << "fmod(";
-    else  // all 3 flavors of long double
-      Out << "fmodl(";
-    writeOperand(I.getOperand(0));
-    Out << ", ";
-    writeOperand(I.getOperand(1));
-    Out << ")";
-  } else {
-
-    // Write out the cast of the instruction's value back to the proper type
-    // if necessary.
-    bool NeedsClosingParens = writeInstructionCast(I);
-
-    // Certain instructions require the operand to be forced to a specific type
-    // so we use writeOperandWithCast here instead of writeOperand. Similarly
-    // below for operand 1
-    writeOperandWithCast(I.getOperand(0), I.getOpcode());
-
-    switch (I.getOpcode()) {
-    case Instruction::Add:
-    case Instruction::FAdd: Out << " + "; break;
-    case Instruction::Sub:
-    case Instruction::FSub: Out << " - "; break;
-    case Instruction::Mul:
-    case Instruction::FMul: Out << " * "; break;
-    case Instruction::URem:
-    case Instruction::SRem:
-    case Instruction::FRem: Out << " % "; break;
-    case Instruction::UDiv:
-    case Instruction::SDiv: 
-    case Instruction::FDiv: Out << " / "; break;
-    case Instruction::And:  Out << " & "; break;
-    case Instruction::Or:   Out << " | "; break;
-    case Instruction::Xor:  Out << " ^ "; break;
-    case Instruction::Shl : Out << " << "; break;
-    case Instruction::LShr:
-    case Instruction::AShr: Out << " >> "; break;
-    default: 
-#ifndef NDEBUG
-       errs() << "Invalid operator type!" << I;
-#endif
-       llvm_unreachable(0);
-    }
-
-    writeOperandWithCast(I.getOperand(1), I.getOpcode());
-    if (NeedsClosingParens)
-      Out << "))";
-  }
-
-  if (needsCast) {
-    Out << "))";
-  }
-}
-
-void CWriter::visitICmpInst(ICmpInst &I) {
-  // We must cast the results of icmp which might be promoted.
-  bool needsCast = false;
-
-  // Write out the cast of the instruction's value back to the proper type
-  // if necessary.
-  bool NeedsClosingParens = writeInstructionCast(I);
-
-  // Certain icmp predicate require the operand to be forced to a specific type
-  // so we use writeOperandWithCast here instead of writeOperand. Similarly
-  // below for operand 1
-  writeOperandWithCast(I.getOperand(0), I);
-
-  switch (I.getPredicate()) {
-  case ICmpInst::ICMP_EQ:  Out << " == "; break;
-  case ICmpInst::ICMP_NE:  Out << " != "; break;
-  case ICmpInst::ICMP_ULE:
-  case ICmpInst::ICMP_SLE: Out << " <= "; break;
-  case ICmpInst::ICMP_UGE:
-  case ICmpInst::ICMP_SGE: Out << " >= "; break;
-  case ICmpInst::ICMP_ULT:
-  case ICmpInst::ICMP_SLT: Out << " < "; break;
-  case ICmpInst::ICMP_UGT:
-  case ICmpInst::ICMP_SGT: Out << " > "; break;
-  default:
-#ifndef NDEBUG
-    errs() << "Invalid icmp predicate!" << I; 
-#endif
-    llvm_unreachable(0);
-  }
-
-  writeOperandWithCast(I.getOperand(1), I);
-  if (NeedsClosingParens)
-    Out << "))";
-
-  if (needsCast) {
-    Out << "))";
-  }
-}
-
-void CWriter::visitFCmpInst(FCmpInst &I) {
-  if (I.getPredicate() == FCmpInst::FCMP_FALSE) {
-    Out << "0";
-    return;
-  }
-  if (I.getPredicate() == FCmpInst::FCMP_TRUE) {
-    Out << "1";
-    return;
-  }
-
-  const char* op = 0;
-  switch (I.getPredicate()) {
-  default: llvm_unreachable("Illegal FCmp predicate");
-  case FCmpInst::FCMP_ORD: op = "ord"; break;
-  case FCmpInst::FCMP_UNO: op = "uno"; break;
-  case FCmpInst::FCMP_UEQ: op = "ueq"; break;
-  case FCmpInst::FCMP_UNE: op = "une"; break;
-  case FCmpInst::FCMP_ULT: op = "ult"; break;
-  case FCmpInst::FCMP_ULE: op = "ule"; break;
-  case FCmpInst::FCMP_UGT: op = "ugt"; break;
-  case FCmpInst::FCMP_UGE: op = "uge"; break;
-  case FCmpInst::FCMP_OEQ: op = "oeq"; break;
-  case FCmpInst::FCMP_ONE: op = "one"; break;
-  case FCmpInst::FCMP_OLT: op = "olt"; break;
-  case FCmpInst::FCMP_OLE: op = "ole"; break;
-  case FCmpInst::FCMP_OGT: op = "ogt"; break;
-  case FCmpInst::FCMP_OGE: op = "oge"; break;
-  }
-
-  Out << "llvm_fcmp_" << op << "(";
-  // Write the first operand
-  writeOperand(I.getOperand(0));
-  Out << ", ";
-  // Write the second operand
-  writeOperand(I.getOperand(1));
-  Out << ")";
-}
-
-static const char * getFloatBitCastField(const Type *Ty) {
-  switch (Ty->getTypeID()) {
-    default: llvm_unreachable("Invalid Type");
-    case Type::FloatTyID:  return "Float";
-    case Type::DoubleTyID: return "Double";
-    case Type::IntegerTyID: {
-      unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth();
-      if (NumBits <= 32)
-        return "Int32";
-      else
-        return "Int64";
-    }
-  }
-}
-
-void CWriter::visitCastInst(CastInst &I) {
-  const Type *DstTy = I.getType();
-  const Type *SrcTy = I.getOperand(0)->getType();
-  if (isFPIntBitCast(I)) {
-    Out << '(';
-    // These int<->float and long<->double casts need to be handled specially
-    Out << GetValueName(&I) << "__BITCAST_TEMPORARY." 
-        << getFloatBitCastField(I.getOperand(0)->getType()) << " = ";
-    writeOperand(I.getOperand(0));
-    Out << ", " << GetValueName(&I) << "__BITCAST_TEMPORARY."
-        << getFloatBitCastField(I.getType());
-    Out << ')';
-    return;
-  }
-  
-  Out << '(';
-  printCast(I.getOpcode(), SrcTy, DstTy);
-
-  // Make a sext from i1 work by subtracting the i1 from 0 (an int).
-  if (SrcTy == Type::getInt1Ty(I.getContext()) &&
-      I.getOpcode() == Instruction::SExt)
-    Out << "0-";
-  
-  writeOperand(I.getOperand(0));
-    
-  if (DstTy == Type::getInt1Ty(I.getContext()) && 
-      (I.getOpcode() == Instruction::Trunc ||
-       I.getOpcode() == Instruction::FPToUI ||
-       I.getOpcode() == Instruction::FPToSI ||
-       I.getOpcode() == Instruction::PtrToInt)) {
-    // Make sure we really get a trunc to bool by anding the operand with 1 
-    Out << "&1u";
-  }
-  Out << ')';
-}
-
-void CWriter::visitSelectInst(SelectInst &I) {
-  Out << "((";
-  writeOperand(I.getCondition());
-  Out << ") ? (";
-  writeOperand(I.getTrueValue());
-  Out << ") : (";
-  writeOperand(I.getFalseValue());
-  Out << "))";
-}
-
-
-void CWriter::lowerIntrinsics(Function &F) {
-  // This is used to keep track of intrinsics that get generated to a lowered
-  // function. We must generate the prototypes before the function body which
-  // will only be expanded on first use (by the loop below).
-  std::vector<Function*> prototypesToGen;
-
-  // Examine all the instructions in this function to find the intrinsics that
-  // need to be lowered.
-  for (Function::iterator BB = F.begin(), EE = F.end(); BB != EE; ++BB)
-    for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; )
-      if (CallInst *CI = dyn_cast<CallInst>(I++))
-        if (Function *F = CI->getCalledFunction())
-          switch (F->getIntrinsicID()) {
-          case Intrinsic::not_intrinsic:
-          case Intrinsic::memory_barrier:
-          case Intrinsic::vastart:
-          case Intrinsic::vacopy:
-          case Intrinsic::vaend:
-          case Intrinsic::returnaddress:
-          case Intrinsic::frameaddress:
-          case Intrinsic::setjmp:
-          case Intrinsic::longjmp:
-          case Intrinsic::prefetch:
-          case Intrinsic::dbg_stoppoint:
-          case Intrinsic::powi:
-          case Intrinsic::x86_sse_cmp_ss:
-          case Intrinsic::x86_sse_cmp_ps:
-          case Intrinsic::x86_sse2_cmp_sd:
-          case Intrinsic::x86_sse2_cmp_pd:
-          case Intrinsic::ppc_altivec_lvsl:
-              // We directly implement these intrinsics
-            break;
-          default:
-            // If this is an intrinsic that directly corresponds to a GCC
-            // builtin, we handle it.
-            const char *BuiltinName = "";
-#define GET_GCC_BUILTIN_NAME
-#include "llvm/Intrinsics.gen"
-#undef GET_GCC_BUILTIN_NAME
-            // If we handle it, don't lower it.
-            if (BuiltinName[0]) break;
-            
-            // All other intrinsic calls we must lower.
-            Instruction *Before = 0;
-            if (CI != &BB->front())
-              Before = prior(BasicBlock::iterator(CI));
-
-            IL->LowerIntrinsicCall(CI);
-            if (Before) {        // Move iterator to instruction after call
-              I = Before; ++I;
-            } else {
-              I = BB->begin();
-            }
-            // If the intrinsic got lowered to another call, and that call has
-            // a definition then we need to make sure its prototype is emitted
-            // before any calls to it.
-            if (CallInst *Call = dyn_cast<CallInst>(I))
-              if (Function *NewF = Call->getCalledFunction())
-                if (!NewF->isDeclaration())
-                  prototypesToGen.push_back(NewF);
-
-            break;
-          }
-
-  // We may have collected some prototypes to emit in the loop above. 
-  // Emit them now, before the function that uses them is emitted. But,
-  // be careful not to emit them twice.
-  std::vector<Function*>::iterator I = prototypesToGen.begin();
-  std::vector<Function*>::iterator E = prototypesToGen.end();
-  for ( ; I != E; ++I) {
-    if (intrinsicPrototypesAlreadyGenerated.insert(*I).second) {
-      Out << '\n';
-      printFunctionSignature(*I, true);
-      Out << ";\n";
-    }
-  }
-}
-
-void CWriter::visitCallInst(CallInst &I) {
-  if (isa<InlineAsm>(I.getOperand(0)))
-    return visitInlineAsm(I);
-
-  bool WroteCallee = false;
-
-  // Handle intrinsic function calls first...
-  if (Function *F = I.getCalledFunction())
-    if (Intrinsic::ID ID = (Intrinsic::ID)F->getIntrinsicID())
-      if (visitBuiltinCall(I, ID, WroteCallee))
-        return;
-
-  Value *Callee = I.getCalledValue();
-
-  const PointerType  *PTy   = cast<PointerType>(Callee->getType());
-  const FunctionType *FTy   = cast<FunctionType>(PTy->getElementType());
-
-  // If this is a call to a struct-return function, assign to the first
-  // parameter instead of passing it to the call.
-  const AttrListPtr &PAL = I.getAttributes();
-  bool hasByVal = I.hasByValArgument();
-  bool isStructRet = I.hasStructRetAttr();
-  if (isStructRet) {
-    writeOperandDeref(I.getOperand(1));
-    Out << " = ";
-  }
-  
-  if (I.isTailCall()) Out << " /*tail*/ ";
-  
-  if (!WroteCallee) {
-    // If this is an indirect call to a struct return function, we need to cast
-    // the pointer. Ditto for indirect calls with byval arguments.
-    bool NeedsCast = (hasByVal || isStructRet) && !isa<Function>(Callee);
-
-    // GCC is a real PITA.  It does not permit codegening casts of functions to
-    // function pointers if they are in a call (it generates a trap instruction
-    // instead!).  We work around this by inserting a cast to void* in between
-    // the function and the function pointer cast.  Unfortunately, we can't just
-    // form the constant expression here, because the folder will immediately
-    // nuke it.
-    //
-    // Note finally, that this is completely unsafe.  ANSI C does not guarantee
-    // that void* and function pointers have the same size. :( To deal with this
-    // in the common case, we handle casts where the number of arguments passed
-    // match exactly.
-    //
-    if (ConstantExpr *CE = dyn_cast<ConstantExpr>(Callee))
-      if (CE->isCast())
-        if (Function *RF = dyn_cast<Function>(CE->getOperand(0))) {
-          NeedsCast = true;
-          Callee = RF;
-        }
-  
-    if (NeedsCast) {
-      // Ok, just cast the pointer type.
-      Out << "((";
-      if (isStructRet)
-        printStructReturnPointerFunctionType(Out, PAL,
-                             cast<PointerType>(I.getCalledValue()->getType()));
-      else if (hasByVal)
-        printType(Out, I.getCalledValue()->getType(), false, "", true, PAL);
-      else
-        printType(Out, I.getCalledValue()->getType());
-      Out << ")(void*)";
-    }
-    writeOperand(Callee);
-    if (NeedsCast) Out << ')';
-  }
-
-  Out << '(';
-
-  unsigned NumDeclaredParams = FTy->getNumParams();
-
-  CallSite::arg_iterator AI = I.op_begin()+1, AE = I.op_end();
-  unsigned ArgNo = 0;
-  if (isStructRet) {   // Skip struct return argument.
-    ++AI;
-    ++ArgNo;
-  }
-      
-  bool PrintedArg = false;
-  for (; AI != AE; ++AI, ++ArgNo) {
-    if (PrintedArg) Out << ", ";
-    if (ArgNo < NumDeclaredParams &&
-        (*AI)->getType() != FTy->getParamType(ArgNo)) {
-      Out << '(';
-      printType(Out, FTy->getParamType(ArgNo), 
-            /*isSigned=*/PAL.paramHasAttr(ArgNo+1, Attribute::SExt));
-      Out << ')';
-    }
-    // Check if the argument is expected to be passed by value.
-    if (I.paramHasAttr(ArgNo+1, Attribute::ByVal))
-      writeOperandDeref(*AI);
-    else
-      writeOperand(*AI);
-    PrintedArg = true;
-  }
-  Out << ')';
-}
-
-/// visitBuiltinCall - Handle the call to the specified builtin.  Returns true
-/// if the entire call is handled, return false it it wasn't handled, and
-/// optionally set 'WroteCallee' if the callee has already been printed out.
-bool CWriter::visitBuiltinCall(CallInst &I, Intrinsic::ID ID,
-                               bool &WroteCallee) {
-  switch (ID) {
-  default: {
-    // If this is an intrinsic that directly corresponds to a GCC
-    // builtin, we emit it here.
-    const char *BuiltinName = "";
-    Function *F = I.getCalledFunction();
-#define GET_GCC_BUILTIN_NAME
-#include "llvm/Intrinsics.gen"
-#undef GET_GCC_BUILTIN_NAME
-    assert(BuiltinName[0] && "Unknown LLVM intrinsic!");
-    
-    Out << BuiltinName;
-    WroteCallee = true;
-    return false;
-  }
-  case Intrinsic::memory_barrier:
-    Out << "__sync_synchronize()";
-    return true;
-  case Intrinsic::vastart:
-    Out << "0; ";
-      
-    Out << "va_start(*(va_list*)";
-    writeOperand(I.getOperand(1));
-    Out << ", ";
-    // Output the last argument to the enclosing function.
-    if (I.getParent()->getParent()->arg_empty()) {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "The C backend does not currently support zero "
-           << "argument varargs functions, such as '"
-           << I.getParent()->getParent()->getName() << "'!";
-      llvm_report_error(Msg.str());
-    }
-    writeOperand(--I.getParent()->getParent()->arg_end());
-    Out << ')';
-    return true;
-  case Intrinsic::vaend:
-    if (!isa<ConstantPointerNull>(I.getOperand(1))) {
-      Out << "0; va_end(*(va_list*)";
-      writeOperand(I.getOperand(1));
-      Out << ')';
-    } else {
-      Out << "va_end(*(va_list*)0)";
-    }
-    return true;
-  case Intrinsic::vacopy:
-    Out << "0; ";
-    Out << "va_copy(*(va_list*)";
-    writeOperand(I.getOperand(1));
-    Out << ", *(va_list*)";
-    writeOperand(I.getOperand(2));
-    Out << ')';
-    return true;
-  case Intrinsic::returnaddress:
-    Out << "__builtin_return_address(";
-    writeOperand(I.getOperand(1));
-    Out << ')';
-    return true;
-  case Intrinsic::frameaddress:
-    Out << "__builtin_frame_address(";
-    writeOperand(I.getOperand(1));
-    Out << ')';
-    return true;
-  case Intrinsic::powi:
-    Out << "__builtin_powi(";
-    writeOperand(I.getOperand(1));
-    Out << ", ";
-    writeOperand(I.getOperand(2));
-    Out << ')';
-    return true;
-  case Intrinsic::setjmp:
-    Out << "setjmp(*(jmp_buf*)";
-    writeOperand(I.getOperand(1));
-    Out << ')';
-    return true;
-  case Intrinsic::longjmp:
-    Out << "longjmp(*(jmp_buf*)";
-    writeOperand(I.getOperand(1));
-    Out << ", ";
-    writeOperand(I.getOperand(2));
-    Out << ')';
-    return true;
-  case Intrinsic::prefetch:
-    Out << "LLVM_PREFETCH((const void *)";
-    writeOperand(I.getOperand(1));
-    Out << ", ";
-    writeOperand(I.getOperand(2));
-    Out << ", ";
-    writeOperand(I.getOperand(3));
-    Out << ")";
-    return true;
-  case Intrinsic::stacksave:
-    // Emit this as: Val = 0; *((void**)&Val) = __builtin_stack_save()
-    // to work around GCC bugs (see PR1809).
-    Out << "0; *((void**)&" << GetValueName(&I)
-        << ") = __builtin_stack_save()";
-    return true;
-  case Intrinsic::dbg_stoppoint: {
-    // If we use writeOperand directly we get a "u" suffix which is rejected
-    // by gcc.
-    DbgStopPointInst &SPI = cast<DbgStopPointInst>(I);
-    std::string dir;
-    GetConstantStringInfo(SPI.getDirectory(), dir);
-    std::string file;
-    GetConstantStringInfo(SPI.getFileName(), file);
-    Out << "\n#line "
-        << SPI.getLine()
-        << " \""
-        << dir << '/' << file << "\"\n";
-    return true;
-  }
-  case Intrinsic::x86_sse_cmp_ss:
-  case Intrinsic::x86_sse_cmp_ps:
-  case Intrinsic::x86_sse2_cmp_sd:
-  case Intrinsic::x86_sse2_cmp_pd:
-    Out << '(';
-    printType(Out, I.getType());
-    Out << ')';  
-    // Multiple GCC builtins multiplex onto this intrinsic.
-    switch (cast<ConstantInt>(I.getOperand(3))->getZExtValue()) {
-    default: llvm_unreachable("Invalid llvm.x86.sse.cmp!");
-    case 0: Out << "__builtin_ia32_cmpeq"; break;
-    case 1: Out << "__builtin_ia32_cmplt"; break;
-    case 2: Out << "__builtin_ia32_cmple"; break;
-    case 3: Out << "__builtin_ia32_cmpunord"; break;
-    case 4: Out << "__builtin_ia32_cmpneq"; break;
-    case 5: Out << "__builtin_ia32_cmpnlt"; break;
-    case 6: Out << "__builtin_ia32_cmpnle"; break;
-    case 7: Out << "__builtin_ia32_cmpord"; break;
-    }
-    if (ID == Intrinsic::x86_sse_cmp_ps || ID == Intrinsic::x86_sse2_cmp_pd)
-      Out << 'p';
-    else
-      Out << 's';
-    if (ID == Intrinsic::x86_sse_cmp_ss || ID == Intrinsic::x86_sse_cmp_ps)
-      Out << 's';
-    else
-      Out << 'd';
-      
-    Out << "(";
-    writeOperand(I.getOperand(1));
-    Out << ", ";
-    writeOperand(I.getOperand(2));
-    Out << ")";
-    return true;
-  case Intrinsic::ppc_altivec_lvsl:
-    Out << '(';
-    printType(Out, I.getType());
-    Out << ')';  
-    Out << "__builtin_altivec_lvsl(0, (void*)";
-    writeOperand(I.getOperand(1));
-    Out << ")";
-    return true;
-  }
-}
-
-//This converts the llvm constraint string to something gcc is expecting.
-//TODO: work out platform independent constraints and factor those out
-//      of the per target tables
-//      handle multiple constraint codes
-std::string CWriter::InterpretASMConstraint(InlineAsm::ConstraintInfo& c) {
-
-  assert(c.Codes.size() == 1 && "Too many asm constraint codes to handle");
-
-  const char *const *table = 0;
-  
-  // Grab the translation table from MCAsmInfo if it exists.
-  if (!TAsm) {
-    std::string Triple = TheModule->getTargetTriple();
-    if (Triple.empty())
-      Triple = llvm::sys::getHostTriple();
-
-    std::string E;
-    if (const Target *Match = TargetRegistry::lookupTarget(Triple, E))
-      TAsm = Match->createAsmInfo(Triple);
-  }
-  if (TAsm)
-    table = TAsm->getAsmCBE();
-
-  // Search the translation table if it exists.
-  for (int i = 0; table && table[i]; i += 2)
-    if (c.Codes[0] == table[i])
-      return table[i+1];
-
-  // Default is identity.
-  return c.Codes[0];
-}
-
-//TODO: import logic from AsmPrinter.cpp
-static std::string gccifyAsm(std::string asmstr) {
-  for (std::string::size_type i = 0; i != asmstr.size(); ++i)
-    if (asmstr[i] == '\n')
-      asmstr.replace(i, 1, "\\n");
-    else if (asmstr[i] == '\t')
-      asmstr.replace(i, 1, "\\t");
-    else if (asmstr[i] == '$') {
-      if (asmstr[i + 1] == '{') {
-        std::string::size_type a = asmstr.find_first_of(':', i + 1);
-        std::string::size_type b = asmstr.find_first_of('}', i + 1);
-        std::string n = "%" + 
-          asmstr.substr(a + 1, b - a - 1) +
-          asmstr.substr(i + 2, a - i - 2);
-        asmstr.replace(i, b - i + 1, n);
-        i += n.size() - 1;
-      } else
-        asmstr.replace(i, 1, "%");
-    }
-    else if (asmstr[i] == '%')//grr
-      { asmstr.replace(i, 1, "%%"); ++i;}
-  
-  return asmstr;
-}
-
-//TODO: assumptions about what consume arguments from the call are likely wrong
-//      handle communitivity
-void CWriter::visitInlineAsm(CallInst &CI) {
-  InlineAsm* as = cast<InlineAsm>(CI.getOperand(0));
-  std::vector<InlineAsm::ConstraintInfo> Constraints = as->ParseConstraints();
-  
-  std::vector<std::pair<Value*, int> > ResultVals;
-  if (CI.getType() == Type::getVoidTy(CI.getContext()))
-    ;
-  else if (const StructType *ST = dyn_cast<StructType>(CI.getType())) {
-    for (unsigned i = 0, e = ST->getNumElements(); i != e; ++i)
-      ResultVals.push_back(std::make_pair(&CI, (int)i));
-  } else {
-    ResultVals.push_back(std::make_pair(&CI, -1));
-  }
-  
-  // Fix up the asm string for gcc and emit it.
-  Out << "__asm__ volatile (\"" << gccifyAsm(as->getAsmString()) << "\"\n";
-  Out << "        :";
-
-  unsigned ValueCount = 0;
-  bool IsFirst = true;
-  
-  // Convert over all the output constraints.
-  for (std::vector<InlineAsm::ConstraintInfo>::iterator I = Constraints.begin(),
-       E = Constraints.end(); I != E; ++I) {
-    
-    if (I->Type != InlineAsm::isOutput) {
-      ++ValueCount;
-      continue;  // Ignore non-output constraints.
-    }
-    
-    assert(I->Codes.size() == 1 && "Too many asm constraint codes to handle");
-    std::string C = InterpretASMConstraint(*I);
-    if (C.empty()) continue;
-    
-    if (!IsFirst) {
-      Out << ", ";
-      IsFirst = false;
-    }
-
-    // Unpack the dest.
-    Value *DestVal;
-    int DestValNo = -1;
-    
-    if (ValueCount < ResultVals.size()) {
-      DestVal = ResultVals[ValueCount].first;
-      DestValNo = ResultVals[ValueCount].second;
-    } else
-      DestVal = CI.getOperand(ValueCount-ResultVals.size()+1);
-
-    if (I->isEarlyClobber)
-      C = "&"+C;
-      
-    Out << "\"=" << C << "\"(" << GetValueName(DestVal);
-    if (DestValNo != -1)
-      Out << ".field" << DestValNo; // Multiple retvals.
-    Out << ")";
-    ++ValueCount;
-  }
-  
-  
-  // Convert over all the input constraints.
-  Out << "\n        :";
-  IsFirst = true;
-  ValueCount = 0;
-  for (std::vector<InlineAsm::ConstraintInfo>::iterator I = Constraints.begin(),
-       E = Constraints.end(); I != E; ++I) {
-    if (I->Type != InlineAsm::isInput) {
-      ++ValueCount;
-      continue;  // Ignore non-input constraints.
-    }
-    
-    assert(I->Codes.size() == 1 && "Too many asm constraint codes to handle");
-    std::string C = InterpretASMConstraint(*I);
-    if (C.empty()) continue;
-    
-    if (!IsFirst) {
-      Out << ", ";
-      IsFirst = false;
-    }
-    
-    assert(ValueCount >= ResultVals.size() && "Input can't refer to result");
-    Value *SrcVal = CI.getOperand(ValueCount-ResultVals.size()+1);
-    
-    Out << "\"" << C << "\"(";
-    if (!I->isIndirect)
-      writeOperand(SrcVal);
-    else
-      writeOperandDeref(SrcVal);
-    Out << ")";
-  }
-  
-  // Convert over the clobber constraints.
-  IsFirst = true;
-  ValueCount = 0;
-  for (std::vector<InlineAsm::ConstraintInfo>::iterator I = Constraints.begin(),
-       E = Constraints.end(); I != E; ++I) {
-    if (I->Type != InlineAsm::isClobber)
-      continue;  // Ignore non-input constraints.
-
-    assert(I->Codes.size() == 1 && "Too many asm constraint codes to handle");
-    std::string C = InterpretASMConstraint(*I);
-    if (C.empty()) continue;
-    
-    if (!IsFirst) {
-      Out << ", ";
-      IsFirst = false;
-    }
-    
-    Out << '\"' << C << '"';
-  }
-  
-  Out << ")";
-}
-
-void CWriter::visitMallocInst(MallocInst &I) {
-  llvm_unreachable("lowerallocations pass didn't work!");
-}
-
-void CWriter::visitAllocaInst(AllocaInst &I) {
-  Out << '(';
-  printType(Out, I.getType());
-  Out << ") alloca(sizeof(";
-  printType(Out, I.getType()->getElementType());
-  Out << ')';
-  if (I.isArrayAllocation()) {
-    Out << " * " ;
-    writeOperand(I.getOperand(0));
-  }
-  Out << ')';
-}
-
-void CWriter::visitFreeInst(FreeInst &I) {
-  llvm_unreachable("lowerallocations pass didn't work!");
-}
-
-void CWriter::printGEPExpression(Value *Ptr, gep_type_iterator I,
-                                 gep_type_iterator E, bool Static) {
-  
-  // If there are no indices, just print out the pointer.
-  if (I == E) {
-    writeOperand(Ptr);
-    return;
-  }
-    
-  // Find out if the last index is into a vector.  If so, we have to print this
-  // specially.  Since vectors can't have elements of indexable type, only the
-  // last index could possibly be of a vector element.
-  const VectorType *LastIndexIsVector = 0;
-  {
-    for (gep_type_iterator TmpI = I; TmpI != E; ++TmpI)
-      LastIndexIsVector = dyn_cast<VectorType>(*TmpI);
-  }
-  
-  Out << "(";
-  
-  // If the last index is into a vector, we can't print it as &a[i][j] because
-  // we can't index into a vector with j in GCC.  Instead, emit this as
-  // (((float*)&a[i])+j)
-  if (LastIndexIsVector) {
-    Out << "((";
-    printType(Out, PointerType::getUnqual(LastIndexIsVector->getElementType()));
-    Out << ")(";
-  }
-  
-  Out << '&';
-
-  // If the first index is 0 (very typical) we can do a number of
-  // simplifications to clean up the code.
-  Value *FirstOp = I.getOperand();
-  if (!isa<Constant>(FirstOp) || !cast<Constant>(FirstOp)->isNullValue()) {
-    // First index isn't simple, print it the hard way.
-    writeOperand(Ptr);
-  } else {
-    ++I;  // Skip the zero index.
-
-    // Okay, emit the first operand. If Ptr is something that is already address
-    // exposed, like a global, avoid emitting (&foo)[0], just emit foo instead.
-    if (isAddressExposed(Ptr)) {
-      writeOperandInternal(Ptr, Static);
-    } else if (I != E && isa<StructType>(*I)) {
-      // If we didn't already emit the first operand, see if we can print it as
-      // P->f instead of "P[0].f"
-      writeOperand(Ptr);
-      Out << "->field" << cast<ConstantInt>(I.getOperand())->getZExtValue();
-      ++I;  // eat the struct index as well.
-    } else {
-      // Instead of emitting P[0][1], emit (*P)[1], which is more idiomatic.
-      Out << "(*";
-      writeOperand(Ptr);
-      Out << ")";
-    }
-  }
-
-  for (; I != E; ++I) {
-    if (isa<StructType>(*I)) {
-      Out << ".field" << cast<ConstantInt>(I.getOperand())->getZExtValue();
-    } else if (isa<ArrayType>(*I)) {
-      Out << ".array[";
-      writeOperandWithCast(I.getOperand(), Instruction::GetElementPtr);
-      Out << ']';
-    } else if (!isa<VectorType>(*I)) {
-      Out << '[';
-      writeOperandWithCast(I.getOperand(), Instruction::GetElementPtr);
-      Out << ']';
-    } else {
-      // If the last index is into a vector, then print it out as "+j)".  This
-      // works with the 'LastIndexIsVector' code above.
-      if (isa<Constant>(I.getOperand()) &&
-          cast<Constant>(I.getOperand())->isNullValue()) {
-        Out << "))";  // avoid "+0".
-      } else {
-        Out << ")+(";
-        writeOperandWithCast(I.getOperand(), Instruction::GetElementPtr);
-        Out << "))";
-      }
-    }
-  }
-  Out << ")";
-}
-
-void CWriter::writeMemoryAccess(Value *Operand, const Type *OperandType,
-                                bool IsVolatile, unsigned Alignment) {
-
-  bool IsUnaligned = Alignment &&
-    Alignment < TD->getABITypeAlignment(OperandType);
-
-  if (!IsUnaligned)
-    Out << '*';
-  if (IsVolatile || IsUnaligned) {
-    Out << "((";
-    if (IsUnaligned)
-      Out << "struct __attribute__ ((packed, aligned(" << Alignment << "))) {";
-    printType(Out, OperandType, false, IsUnaligned ? "data" : "volatile*");
-    if (IsUnaligned) {
-      Out << "; } ";
-      if (IsVolatile) Out << "volatile ";
-      Out << "*";
-    }
-    Out << ")";
-  }
-
-  writeOperand(Operand);
-
-  if (IsVolatile || IsUnaligned) {
-    Out << ')';
-    if (IsUnaligned)
-      Out << "->data";
-  }
-}
-
-void CWriter::visitLoadInst(LoadInst &I) {
-  writeMemoryAccess(I.getOperand(0), I.getType(), I.isVolatile(),
-                    I.getAlignment());
-
-}
-
-void CWriter::visitStoreInst(StoreInst &I) {
-  writeMemoryAccess(I.getPointerOperand(), I.getOperand(0)->getType(),
-                    I.isVolatile(), I.getAlignment());
-  Out << " = ";
-  Value *Operand = I.getOperand(0);
-  Constant *BitMask = 0;
-  if (const IntegerType* ITy = dyn_cast<IntegerType>(Operand->getType()))
-    if (!ITy->isPowerOf2ByteWidth())
-      // We have a bit width that doesn't match an even power-of-2 byte
-      // size. Consequently we must & the value with the type's bit mask
-      BitMask = ConstantInt::get(ITy, ITy->getBitMask());
-  if (BitMask)
-    Out << "((";
-  writeOperand(Operand);
-  if (BitMask) {
-    Out << ") & ";
-    printConstant(BitMask, false);
-    Out << ")"; 
-  }
-}
-
-void CWriter::visitGetElementPtrInst(GetElementPtrInst &I) {
-  printGEPExpression(I.getPointerOperand(), gep_type_begin(I),
-                     gep_type_end(I), false);
-}
-
-void CWriter::visitVAArgInst(VAArgInst &I) {
-  Out << "va_arg(*(va_list*)";
-  writeOperand(I.getOperand(0));
-  Out << ", ";
-  printType(Out, I.getType());
-  Out << ");\n ";
-}
-
-void CWriter::visitInsertElementInst(InsertElementInst &I) {
-  const Type *EltTy = I.getType()->getElementType();
-  writeOperand(I.getOperand(0));
-  Out << ";\n  ";
-  Out << "((";
-  printType(Out, PointerType::getUnqual(EltTy));
-  Out << ")(&" << GetValueName(&I) << "))[";
-  writeOperand(I.getOperand(2));
-  Out << "] = (";
-  writeOperand(I.getOperand(1));
-  Out << ")";
-}
-
-void CWriter::visitExtractElementInst(ExtractElementInst &I) {
-  // We know that our operand is not inlined.
-  Out << "((";
-  const Type *EltTy = 
-    cast<VectorType>(I.getOperand(0)->getType())->getElementType();
-  printType(Out, PointerType::getUnqual(EltTy));
-  Out << ")(&" << GetValueName(I.getOperand(0)) << "))[";
-  writeOperand(I.getOperand(1));
-  Out << "]";
-}
-
-void CWriter::visitShuffleVectorInst(ShuffleVectorInst &SVI) {
-  Out << "(";
-  printType(Out, SVI.getType());
-  Out << "){ ";
-  const VectorType *VT = SVI.getType();
-  unsigned NumElts = VT->getNumElements();
-  const Type *EltTy = VT->getElementType();
-
-  for (unsigned i = 0; i != NumElts; ++i) {
-    if (i) Out << ", ";
-    int SrcVal = SVI.getMaskValue(i);
-    if ((unsigned)SrcVal >= NumElts*2) {
-      Out << " 0/*undef*/ ";
-    } else {
-      Value *Op = SVI.getOperand((unsigned)SrcVal >= NumElts);
-      if (isa<Instruction>(Op)) {
-        // Do an extractelement of this value from the appropriate input.
-        Out << "((";
-        printType(Out, PointerType::getUnqual(EltTy));
-        Out << ")(&" << GetValueName(Op)
-            << "))[" << (SrcVal & (NumElts-1)) << "]";
-      } else if (isa<ConstantAggregateZero>(Op) || isa<UndefValue>(Op)) {
-        Out << "0";
-      } else {
-        printConstant(cast<ConstantVector>(Op)->getOperand(SrcVal &
-                                                           (NumElts-1)),
-                      false);
-      }
-    }
-  }
-  Out << "}";
-}
-
-void CWriter::visitInsertValueInst(InsertValueInst &IVI) {
-  // Start by copying the entire aggregate value into the result variable.
-  writeOperand(IVI.getOperand(0));
-  Out << ";\n  ";
-
-  // Then do the insert to update the field.
-  Out << GetValueName(&IVI);
-  for (const unsigned *b = IVI.idx_begin(), *i = b, *e = IVI.idx_end();
-       i != e; ++i) {
-    const Type *IndexedTy =
-      ExtractValueInst::getIndexedType(IVI.getOperand(0)->getType(), b, i+1);
-    if (isa<ArrayType>(IndexedTy))
-      Out << ".array[" << *i << "]";
-    else
-      Out << ".field" << *i;
-  }
-  Out << " = ";
-  writeOperand(IVI.getOperand(1));
-}
-
-void CWriter::visitExtractValueInst(ExtractValueInst &EVI) {
-  Out << "(";
-  if (isa<UndefValue>(EVI.getOperand(0))) {
-    Out << "(";
-    printType(Out, EVI.getType());
-    Out << ") 0/*UNDEF*/";
-  } else {
-    Out << GetValueName(EVI.getOperand(0));
-    for (const unsigned *b = EVI.idx_begin(), *i = b, *e = EVI.idx_end();
-         i != e; ++i) {
-      const Type *IndexedTy =
-        ExtractValueInst::getIndexedType(EVI.getOperand(0)->getType(), b, i+1);
-      if (isa<ArrayType>(IndexedTy))
-        Out << ".array[" << *i << "]";
-      else
-        Out << ".field" << *i;
-    }
-  }
-  Out << ")";
-}
-
-//===----------------------------------------------------------------------===//
-//                       External Interface declaration
-//===----------------------------------------------------------------------===//
-
-bool CTargetMachine::addPassesToEmitWholeFile(PassManager &PM,
-                                              formatted_raw_ostream &o,
-                                              CodeGenFileType FileType,
-                                              CodeGenOpt::Level OptLevel) {
-  if (FileType != TargetMachine::AssemblyFile) return true;
-
-  PM.add(createGCLoweringPass());
-  PM.add(createLowerAllocationsPass(true));
-  PM.add(createLowerInvokePass());
-  PM.add(createCFGSimplificationPass());   // clean up after lower invoke.
-  PM.add(new CBackendNameAllUsedStructsAndMergeFunctions());
-  PM.add(new CWriter(o));
-  PM.add(createGCInfoDeleter());
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CBackend/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/CBackend/CMakeLists.txt
deleted file mode 100644
index be24336..0000000
--- a/libclamav/c++/llvm/lib/Target/CBackend/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-add_llvm_target(CBackend
-  CBackend.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Target/CBackend/CTargetMachine.h b/libclamav/c++/llvm/lib/Target/CBackend/CTargetMachine.h
deleted file mode 100644
index 715bbda..0000000
--- a/libclamav/c++/llvm/lib/Target/CBackend/CTargetMachine.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- CTargetMachine.h - TargetMachine for the C backend ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the TargetMachine that is used by the C backend.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CTARGETMACHINE_H
-#define CTARGETMACHINE_H
-
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-
-namespace llvm {
-
-struct CTargetMachine : public TargetMachine {
-  CTargetMachine(const Target &T, const std::string &TT, const std::string &FS)
-    : TargetMachine(T) {}
-
-  virtual bool WantsWholeFile() const { return true; }
-  virtual bool addPassesToEmitWholeFile(PassManager &PM,
-                                        formatted_raw_ostream &Out,
-                                        CodeGenFileType FileType,
-                                        CodeGenOpt::Level OptLevel);
-  
-  virtual const TargetData *getTargetData() const { return 0; }
-};
-
-extern Target TheCBackendTarget;
-
-} // End llvm namespace
-
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CBackend/Makefile b/libclamav/c++/llvm/lib/Target/CBackend/Makefile
deleted file mode 100644
index 3b5ef0f..0000000
--- a/libclamav/c++/llvm/lib/Target/CBackend/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- lib/Target/CBackend/Makefile ------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../..
-LIBRARYNAME = LLVMCBackend
-
-DIRS = TargetInfo
-
-include $(LEVEL)/Makefile.common
-
-CompileCommonOpts += -Wno-format
diff --git a/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp
deleted file mode 100644
index f7e8ff2..0000000
--- a/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- CBackendTargetInfo.cpp - CBackend Target Implementation -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CTargetMachine.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheCBackendTarget;
-
-extern "C" void LLVMInitializeCBackendTargetInfo() { 
-  RegisterTarget<> X(TheCBackendTarget, "c", "C backend");
-}
diff --git a/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 5b35fa7..0000000
--- a/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMCBackendInfo
-  CBackendTargetInfo.cpp
-  )
-
diff --git a/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/Makefile
deleted file mode 100644
index d4d5e15..0000000
--- a/libclamav/c++/llvm/lib/Target/CBackend/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/CBackend/TargetInfo/Makefile -------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMCBackendInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 1e508fe..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}/..
-  ${CMAKE_CURRENT_SOURCE_DIR}/..
-  )
-
-add_llvm_library(LLVMCellSPUAsmPrinter
-  SPUAsmPrinter.cpp
-  )
-add_dependencies(LLVMCellSPUAsmPrinter CellSPUCodeGenTable_gen)
\ No newline at end of file
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/Makefile
deleted file mode 100644
index 69639ef..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- lib/Target/CellSPU/AsmPrinter/Makefile --------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../../..
-LIBRARYNAME = LLVMCellSPUAsmPrinter
-
-# Hack: we need to include 'main' CellSPU target directory to grab
-# private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
deleted file mode 100644
index fde999f..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
+++ /dev/null
@@ -1,580 +0,0 @@
-//===-- SPUAsmPrinter.cpp - Print machine instrs to Cell SPU assembly -------=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to Cell SPU assembly language. This printer
-// is the output mechanism used by `llc'.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "asmprinter"
-#include "SPU.h"
-#include "SPUTargetMachine.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/Assembly/Writer.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/MathExtras.h"
-#include <set>
-using namespace llvm;
-
-namespace {
-  STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-  const std::string bss_section(".bss");
-
-  class VISIBILITY_HIDDEN SPUAsmPrinter : public AsmPrinter {
-    std::set<std::string> FnStubs, GVStubs;
-  public:
-    explicit SPUAsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                           const MCAsmInfo *T, bool V) :
-      AsmPrinter(O, TM, T, V) {}
-
-    virtual const char *getPassName() const {
-      return "STI CBEA SPU Assembly Printer";
-    }
-
-    SPUTargetMachine &getTM() {
-      return static_cast<SPUTargetMachine&>(TM);
-    }
-
-    /// printInstruction - This method is automatically generated by tablegen
-    /// from the instruction set description.  This method returns true if the
-    /// machine instruction was sufficiently described to print it, otherwise it
-    /// returns false.
-    void printInstruction(const MachineInstr *MI);
-
-    void printMachineInstruction(const MachineInstr *MI);
-    void printOp(const MachineOperand &MO);
-
-    /// printRegister - Print register according to target requirements.
-    ///
-    void printRegister(const MachineOperand &MO, bool R0AsZero) {
-      unsigned RegNo = MO.getReg();
-      assert(TargetRegisterInfo::isPhysicalRegister(RegNo) &&
-             "Not physreg??");
-      O << TM.getRegisterInfo()->get(RegNo).AsmName;
-    }
-
-    void printOperand(const MachineInstr *MI, unsigned OpNo) {
-      const MachineOperand &MO = MI->getOperand(OpNo);
-      if (MO.isReg()) {
-        assert(TargetRegisterInfo::isPhysicalRegister(MO.getReg())&&"Not physreg??");
-        O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
-      } else if (MO.isImm()) {
-        O << MO.getImm();
-      } else {
-        printOp(MO);
-      }
-    }
-
-    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                         unsigned AsmVariant, const char *ExtraCode);
-    bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
-                               unsigned AsmVariant, const char *ExtraCode);
-
-
-    void
-    printS7ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      int value = MI->getOperand(OpNo).getImm();
-      value = (value << (32 - 7)) >> (32 - 7);
-
-      assert((value >= -(1 << 8) && value <= (1 << 7) - 1)
-             && "Invalid s7 argument");
-      O << value;
-    }
-
-    void
-    printU7ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      unsigned int value = MI->getOperand(OpNo).getImm();
-      assert(value < (1 << 8) && "Invalid u7 argument");
-      O << value;
-    }
-
-    void
-    printShufAddr(const MachineInstr *MI, unsigned OpNo)
-    {
-      char value = MI->getOperand(OpNo).getImm();
-      O << (int) value;
-      O << "(";
-      printOperand(MI, OpNo+1);
-      O << ")";
-    }
-
-    void
-    printS16ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      O << (short) MI->getOperand(OpNo).getImm();
-    }
-
-    void
-    printU16ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      O << (unsigned short)MI->getOperand(OpNo).getImm();
-    }
-
-    void
-    printU32ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      O << (unsigned)MI->getOperand(OpNo).getImm();
-    }
-
-    void
-    printMemRegReg(const MachineInstr *MI, unsigned OpNo) {
-      // When used as the base register, r0 reads constant zero rather than
-      // the value contained in the register.  For this reason, the darwin
-      // assembler requires that we print r0 as 0 (no r) when used as the base.
-      const MachineOperand &MO = MI->getOperand(OpNo);
-      O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
-      O << ", ";
-      printOperand(MI, OpNo+1);
-    }
-
-    void
-    printU18ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      unsigned int value = MI->getOperand(OpNo).getImm();
-      assert(value <= (1 << 19) - 1 && "Invalid u18 argument");
-      O << value;
-    }
-
-    void
-    printS10ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      short value = (short) (((int) MI->getOperand(OpNo).getImm() << 16)
-                             >> 16);
-      assert((value >= -(1 << 9) && value <= (1 << 9) - 1)
-             && "Invalid s10 argument");
-      O << value;
-    }
-
-    void
-    printU10ImmOperand(const MachineInstr *MI, unsigned OpNo)
-    {
-      short value = (short) (((int) MI->getOperand(OpNo).getImm() << 16)
-                             >> 16);
-      assert((value <= (1 << 10) - 1) && "Invalid u10 argument");
-      O << value;
-    }
-
-    void
-    printDFormAddr(const MachineInstr *MI, unsigned OpNo)
-    {
-      assert(MI->getOperand(OpNo).isImm() &&
-             "printDFormAddr first operand is not immediate");
-      int64_t value = int64_t(MI->getOperand(OpNo).getImm());
-      int16_t value16 = int16_t(value);
-      assert((value16 >= -(1 << (9+4)) && value16 <= (1 << (9+4)) - 1)
-             && "Invalid dform s10 offset argument");
-      O << (value16 & ~0xf) << "(";
-      printOperand(MI, OpNo+1);
-      O << ")";
-    }
-
-    void
-    printAddr256K(const MachineInstr *MI, unsigned OpNo)
-    {
-      /* Note: operand 1 is an offset or symbol name. */
-      if (MI->getOperand(OpNo).isImm()) {
-        printS16ImmOperand(MI, OpNo);
-      } else {
-        printOp(MI->getOperand(OpNo));
-        if (MI->getOperand(OpNo+1).isImm()) {
-          int displ = int(MI->getOperand(OpNo+1).getImm());
-          if (displ > 0)
-            O << "+" << displ;
-          else if (displ < 0)
-            O << displ;
-        }
-      }
-    }
-
-    void printCallOperand(const MachineInstr *MI, unsigned OpNo) {
-      printOp(MI->getOperand(OpNo));
-    }
-
-    void printPCRelativeOperand(const MachineInstr *MI, unsigned OpNo) {
-      // Used to generate a ".-<target>", but it turns out that the assembler
-      // really wants the target.
-      //
-      // N.B.: This operand is used for call targets. Branch hints are another
-      // animal entirely.
-      printOp(MI->getOperand(OpNo));
-    }
-
-    void printHBROperand(const MachineInstr *MI, unsigned OpNo) {
-      // HBR operands are generated in front of branches, hence, the
-      // program counter plus the target.
-      O << ".+";
-      printOp(MI->getOperand(OpNo));
-    }
-
-    void printSymbolHi(const MachineInstr *MI, unsigned OpNo) {
-      if (MI->getOperand(OpNo).isImm()) {
-        printS16ImmOperand(MI, OpNo);
-      } else {
-        printOp(MI->getOperand(OpNo));
-        O << "@h";
-      }
-    }
-
-    void printSymbolLo(const MachineInstr *MI, unsigned OpNo) {
-      if (MI->getOperand(OpNo).isImm()) {
-        printS16ImmOperand(MI, OpNo);
-      } else {
-        printOp(MI->getOperand(OpNo));
-        O << "@l";
-      }
-    }
-
-    /// Print local store address
-    void printSymbolLSA(const MachineInstr *MI, unsigned OpNo) {
-      printOp(MI->getOperand(OpNo));
-    }
-
-    void printROTHNeg7Imm(const MachineInstr *MI, unsigned OpNo) {
-      if (MI->getOperand(OpNo).isImm()) {
-        int value = (int) MI->getOperand(OpNo).getImm();
-        assert((value >= 0 && value < 16)
-               && "Invalid negated immediate rotate 7-bit argument");
-        O << -value;
-      } else {
-        llvm_unreachable("Invalid/non-immediate rotate amount in printRotateNeg7Imm");
-      }
-    }
-
-    void printROTNeg7Imm(const MachineInstr *MI, unsigned OpNo) {
-      if (MI->getOperand(OpNo).isImm()) {
-        int value = (int) MI->getOperand(OpNo).getImm();
-        assert((value >= 0 && value <= 32)
-               && "Invalid negated immediate rotate 7-bit argument");
-        O << -value;
-      } else {
-        llvm_unreachable("Invalid/non-immediate rotate amount in printRotateNeg7Imm");
-      }
-    }
-
-    virtual bool runOnMachineFunction(MachineFunction &F) = 0;
-  };
-
-  /// LinuxAsmPrinter - SPU assembly printer, customized for Linux
-  class VISIBILITY_HIDDEN LinuxAsmPrinter : public SPUAsmPrinter {
-    DwarfWriter *DW;
-  public:
-    explicit LinuxAsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                             const MCAsmInfo *T, bool V)
-      : SPUAsmPrinter(O, TM, T, V), DW(0) {}
-
-    virtual const char *getPassName() const {
-      return "STI CBEA SPU Assembly Printer";
-    }
-
-    bool runOnMachineFunction(MachineFunction &F);
-    bool doInitialization(Module &M);
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-      AU.addRequired<MachineModuleInfo>();
-      AU.addRequired<DwarfWriter>();
-      SPUAsmPrinter::getAnalysisUsage(AU);
-    }
-
-    //! Emit a global variable according to its section and type
-    void PrintGlobalVariable(const GlobalVariable* GVar);
-  };
-} // end of anonymous namespace
-
-// Include the auto-generated portion of the assembly writer
-#include "SPUGenAsmWriter.inc"
-
-void SPUAsmPrinter::printOp(const MachineOperand &MO) {
-  switch (MO.getType()) {
-  case MachineOperand::MO_Immediate:
-    llvm_report_error("printOp() does not handle immediate values");
-    return;
-
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB());
-    return;
-  case MachineOperand::MO_JumpTableIndex:
-    O << MAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber()
-      << '_' << MO.getIndex();
-    return;
-  case MachineOperand::MO_ConstantPoolIndex:
-    O << MAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber()
-      << '_' << MO.getIndex();
-    return;
-  case MachineOperand::MO_ExternalSymbol:
-    // Computing the address of an external symbol, not calling it.
-    if (TM.getRelocationModel() != Reloc::Static) {
-      std::string Name(MAI->getGlobalPrefix()); Name += MO.getSymbolName();
-      GVStubs.insert(Name);
-      O << "L" << Name << "$non_lazy_ptr";
-      return;
-    }
-    O << MAI->getGlobalPrefix() << MO.getSymbolName();
-    return;
-  case MachineOperand::MO_GlobalAddress: {
-    // Computing the address of a global symbol, not calling it.
-    GlobalValue *GV = MO.getGlobal();
-    std::string Name = Mang->getMangledName(GV);
-
-    // External or weakly linked global variables need non-lazily-resolved
-    // stubs
-    if (TM.getRelocationModel() != Reloc::Static) {
-      if (((GV->isDeclaration() || GV->hasWeakLinkage() ||
-            GV->hasLinkOnceLinkage() || GV->hasCommonLinkage()))) {
-        GVStubs.insert(Name);
-        O << "L" << Name << "$non_lazy_ptr";
-        return;
-      }
-    }
-    O << Name;
-    return;
-  }
-
-  default:
-    O << "<unknown operand type: " << MO.getType() << ">";
-    return;
-  }
-}
-
-/// PrintAsmOperand - Print out an operand for an inline asm expression.
-///
-bool SPUAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                                    unsigned AsmVariant,
-                                    const char *ExtraCode) {
-  // Does this asm operand have a single letter operand modifier?
-  if (ExtraCode && ExtraCode[0]) {
-    if (ExtraCode[1] != 0) return true; // Unknown modifier.
-
-    switch (ExtraCode[0]) {
-    default: return true;  // Unknown modifier.
-    case 'L': // Write second word of DImode reference.
-      // Verify that this operand has two consecutive registers.
-      if (!MI->getOperand(OpNo).isReg() ||
-          OpNo+1 == MI->getNumOperands() ||
-          !MI->getOperand(OpNo+1).isReg())
-        return true;
-      ++OpNo;   // Return the high-part.
-      break;
-    }
-  }
-
-  printOperand(MI, OpNo);
-  return false;
-}
-
-bool SPUAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
-                                          unsigned OpNo,
-                                          unsigned AsmVariant,
-                                          const char *ExtraCode) {
-  if (ExtraCode && ExtraCode[0])
-    return true; // Unknown modifier.
-  printMemRegReg(MI, OpNo);
-  return false;
-}
-
-/// printMachineInstruction -- Print out a single PowerPC MI in Darwin syntax
-/// to the current output stream.
-///
-void SPUAsmPrinter::printMachineInstruction(const MachineInstr *MI) {
-  ++EmittedInsts;
-  printInstruction(MI);
-}
-
-/// runOnMachineFunction - This uses the printMachineInstruction()
-/// method to print assembly for each instruction.
-///
-bool
-LinuxAsmPrinter::runOnMachineFunction(MachineFunction &MF)
-{
-  this->MF = &MF;
-
-  SetupMachineFunction(MF);
-  O << "\n\n";
-
-  // Print out constants referenced by the function
-  EmitConstantPool(MF.getConstantPool());
-
-  // Print out labels for the function.
-  const Function *F = MF.getFunction();
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-  EmitAlignment(MF.getAlignment(), F);
-
-  switch (F->getLinkage()) {
-  default: llvm_unreachable("Unknown linkage type!");
-  case Function::PrivateLinkage:
-  case Function::LinkerPrivateLinkage:
-  case Function::InternalLinkage:  // Symbols default to internal.
-    break;
-  case Function::ExternalLinkage:
-    O << "\t.global\t" << CurrentFnName << "\n"
-      << "\t.type\t" << CurrentFnName << ", @function\n";
-    break;
-  case Function::WeakAnyLinkage:
-  case Function::WeakODRLinkage:
-  case Function::LinkOnceAnyLinkage:
-  case Function::LinkOnceODRLinkage:
-    O << "\t.global\t" << CurrentFnName << "\n";
-    O << "\t.weak_definition\t" << CurrentFnName << "\n";
-    break;
-  }
-  O << CurrentFnName << ":\n";
-
-  // Emit pre-function debug information.
-  DW->BeginFunction(&MF);
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    // Print a label for the basic block.
-    if (I != MF.begin()) {
-      printBasicBlockLabel(I, true, true);
-      O << '\n';
-    }
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-      // Print the assembly for the instruction.
-      printMachineInstruction(II);
-    }
-  }
-
-  O << "\t.size\t" << CurrentFnName << ",.-" << CurrentFnName << "\n";
-
-  // Print out jump tables referenced by the function.
-  EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-
-  // Emit post-function debug information.
-  DW->EndFunction(&MF);
-
-  // We didn't modify anything.
-  return false;
-}
-
-
-bool LinuxAsmPrinter::doInitialization(Module &M) {
-  bool Result = AsmPrinter::doInitialization(M);
-  DW = getAnalysisIfAvailable<DwarfWriter>();
-  return Result;
-}
-
-/*!
-  Emit a global variable according to its section, alignment, etc.
-
-  \note This code was shamelessly copied from the PowerPC's assembly printer,
-  which sort of screams for some kind of refactorization of common code.
- */
-void LinuxAsmPrinter::PrintGlobalVariable(const GlobalVariable *GVar) {
-  const TargetData *TD = TM.getTargetData();
-
-  if (!GVar->hasInitializer())
-    return;
-
-  // Check to see if this is a special global used by LLVM, if so, emit it.
-  if (EmitSpecialLLVMGlobal(GVar))
-    return;
-
-  std::string name = Mang->getMangledName(GVar);
-
-  printVisibility(name, GVar->getVisibility());
-
-  Constant *C = GVar->getInitializer();
-  const Type *Type = C->getType();
-  unsigned Size = TD->getTypeAllocSize(Type);
-  unsigned Align = TD->getPreferredAlignmentLog(GVar);
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(GVar, Mang,
-                                                                  TM));
-
-  if (C->isNullValue() && /* FIXME: Verify correct */
-      !GVar->hasSection() &&
-      (GVar->hasLocalLinkage() || GVar->hasExternalLinkage() ||
-       GVar->isWeakForLinker())) {
-      if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
-
-      if (GVar->hasExternalLinkage()) {
-        O << "\t.global " << name << '\n';
-        O << "\t.type " << name << ", @object\n";
-        O << name << ":\n";
-        O << "\t.zero " << Size << '\n';
-      } else if (GVar->hasLocalLinkage()) {
-        O << MAI->getLCOMMDirective() << name << ',' << Size;
-      } else {
-        O << ".comm " << name << ',' << Size;
-      }
-      O << "\t\t" << MAI->getCommentString() << " '";
-      WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
-      O << "'\n";
-      return;
-  }
-
-  switch (GVar->getLinkage()) {
-    // Should never be seen for the CellSPU platform...
-   case GlobalValue::LinkOnceAnyLinkage:
-   case GlobalValue::LinkOnceODRLinkage:
-   case GlobalValue::WeakAnyLinkage:
-   case GlobalValue::WeakODRLinkage:
-   case GlobalValue::CommonLinkage:
-    O << "\t.global " << name << '\n'
-      << "\t.type " << name << ", @object\n"
-      << "\t.weak " << name << '\n';
-    break;
-   case GlobalValue::AppendingLinkage:
-    // FIXME: appending linkage variables should go into a section of
-    // their name or something.  For now, just emit them as external.
-   case GlobalValue::ExternalLinkage:
-    // If external or appending, declare as a global symbol
-    O << "\t.global " << name << '\n'
-      << "\t.type " << name << ", @object\n";
-    // FALL THROUGH
-   case GlobalValue::PrivateLinkage:
-   case GlobalValue::LinkerPrivateLinkage:
-   case GlobalValue::InternalLinkage:
-    break;
-   default:
-    llvm_report_error("Unknown linkage type!");
-  }
-
-  EmitAlignment(Align, GVar);
-  O << name << ":\t\t\t\t" << MAI->getCommentString() << " '";
-  WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
-  O << "'\n";
-
-  EmitGlobalConstant(C);
-  O << '\n';
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeCellSPUAsmPrinter() { 
-  RegisterAsmPrinter<LinuxAsmPrinter> X(TheCellSPUTarget);
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/CellSPU/CMakeLists.txt
deleted file mode 100644
index 0cb6676..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/CMakeLists.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS SPU.td)
-
-tablegen(SPUGenInstrNames.inc -gen-instr-enums)
-tablegen(SPUGenRegisterNames.inc -gen-register-enums)
-tablegen(SPUGenAsmWriter.inc -gen-asm-writer)
-tablegen(SPUGenCodeEmitter.inc -gen-emitter)
-tablegen(SPUGenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(SPUGenRegisterInfo.inc -gen-register-desc)
-tablegen(SPUGenInstrInfo.inc -gen-instr-desc)
-tablegen(SPUGenDAGISel.inc -gen-dag-isel)
-tablegen(SPUGenSubtarget.inc -gen-subtarget)
-tablegen(SPUGenCallingConv.inc -gen-callingconv)
-
-add_llvm_target(CellSPUCodeGen
-  SPUFrameInfo.cpp
-  SPUHazardRecognizers.cpp
-  SPUInstrInfo.cpp
-  SPUISelDAGToDAG.cpp
-  SPUISelLowering.cpp
-  SPUMCAsmInfo.cpp
-  SPURegisterInfo.cpp
-  SPUSubtarget.cpp
-  SPUTargetMachine.cpp
-  )
-
-target_link_libraries (LLVMCellSPUCodeGen LLVMSelectionDAG)
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/CellSDKIntrinsics.td b/libclamav/c++/llvm/lib/Target/CellSPU/CellSDKIntrinsics.td
deleted file mode 100644
index 5d759a4..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/CellSDKIntrinsics.td
+++ /dev/null
@@ -1,448 +0,0 @@
-//===-- CellSDKIntrinsics.td - Cell SDK Intrinsics ---------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-///--==-- Arithmetic ops intrinsics --==--
-def CellSDKah:
-    RR_Int_v8i16<0b00010011000, "ah", IntegerOp, int_spu_si_ah>;
-def CellSDKahi:
-    RI10_Int_v8i16<0b00010011000, "ahi", IntegerOp, int_spu_si_ahi>;
-def CellSDKa:
-    RR_Int_v4i32<0b00000011000, "a", IntegerOp, int_spu_si_a>;
-def CellSDKai:
-    RI10_Int_v4i32<0b00111000, "ai", IntegerOp, int_spu_si_ai>;
-def CellSDKsfh:
-    RR_Int_v8i16<0b00010010000, "sfh", IntegerOp, int_spu_si_sfh>;
-def CellSDKsfhi:
-    RI10_Int_v8i16<0b10110000, "sfhi", IntegerOp, int_spu_si_sfhi>;
-def CellSDKsf:
-    RR_Int_v4i32<0b00000010000, "sf", IntegerOp, int_spu_si_sf>;
-def CellSDKsfi:
-    RI10_Int_v4i32<0b00110000, "sfi", IntegerOp, int_spu_si_sfi>;
-def CellSDKaddx:
-    RR_Int_v4i32<0b00000010110, "addx", IntegerOp, int_spu_si_addx>;
-def CellSDKcg:
-    RR_Int_v4i32<0b0100001100, "cg", IntegerOp, int_spu_si_cg>;
-def CellSDKcgx:
-    RR_Int_v4i32<0b01000010110, "cgx", IntegerOp, int_spu_si_cgx>;
-def CellSDKsfx:
-    RR_Int_v4i32<0b10000010110, "sfx", IntegerOp, int_spu_si_sfx>;
-def CellSDKbg:
-    RR_Int_v4i32<0b01000010000, "bg", IntegerOp, int_spu_si_bg>;
-def CellSDKbgx:
-    RR_Int_v4i32<0b11000010110, "bgx", IntegerOp, int_spu_si_bgx>;
-
-def CellSDKmpy:
-    RRForm<0b00100011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpy $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpy (v8i16 VECREG:$rA),
-                                                (v8i16 VECREG:$rB)))]>;
-
-def CellSDKmpyu:
-    RRForm<0b00110011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpyu $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyu (v8i16 VECREG:$rA),
-                                                 (v8i16 VECREG:$rB)))] >;
-
-def CellSDKmpyi:
-    RI10Form<0b00101110, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-      "mpyi $rT, $rA, $val", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyi (v8i16 VECREG:$rA),
-                                                 i16ImmSExt10:$val))]>;
-
-def CellSDKmpyui:
-    RI10Form<0b10101110, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-      "mpyui $rT, $rA, $val", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyui (v8i16 VECREG:$rA),
-                                                  i16ImmSExt10:$val))]>;
-
-def CellSDKmpya:
-    RRRForm<0b0011, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-      "mpya $rT, $rA, $rB, $rC", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpya (v8i16 VECREG:$rA),
-                                                 (v8i16 VECREG:$rB),
-                                                 (v8i16 VECREG:$rC)))]>;
-
-def CellSDKmpyh:
-    RRForm<0b10100011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpyh $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyh (v4i32 VECREG:$rA),
-                                                 (v8i16 VECREG:$rB)))]>;
-
-def CellSDKmpys:
-    RRForm<0b11100011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpys $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpys (v8i16 VECREG:$rA),
-                                                 (v8i16 VECREG:$rB)))]>;
-
-def CellSDKmpyhh:
-    RRForm<0b01100011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpyhh $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyhh (v8i16 VECREG:$rA),
-                                                  (v8i16 VECREG:$rB)))]>;
-
-def CellSDKmpyhha:
-    RRForm<0b01100010110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpyhha $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyhha (v8i16 VECREG:$rA),
-                                                   (v8i16 VECREG:$rB)))]>;
-
-// Not sure how to match a (set $rT, (add $rT (mpyhh $rA, $rB)))... so leave
-// as an intrinsic for the time being
-def CellSDKmpyhhu:
-    RRForm<0b01110011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpyhhu $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyhhu (v8i16 VECREG:$rA),
-                                                   (v8i16 VECREG:$rB)))]>;
-
-def CellSDKmpyhhau:
-    RRForm<0b01110010110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "mpyhhau $rT, $rA, $rB", IntegerMulDiv,
-      [(set (v4i32 VECREG:$rT), (int_spu_si_mpyhhau (v8i16 VECREG:$rA),
-                                                    (v8i16 VECREG:$rB)))]>;
-
-def CellSDKand:
-        RRForm<0b1000011000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          "and\t $rT, $rA, $rB", IntegerOp,
-          [(set (v4i32 VECREG:$rT),
-                (int_spu_si_and (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKandc:
-        RRForm<0b10000011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          "andc\t $rT, $rA, $rB", IntegerOp,
-          [(set (v4i32 VECREG:$rT),
-                (int_spu_si_andc (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKandbi:
-     RI10Form<0b01101000, (outs VECREG:$rT), (ins VECREG:$rA, u10imm_i8:$val),
-       "andbi\t $rT, $rA, $val", BranchResolv,
-       [(set (v16i8 VECREG:$rT),
-             (int_spu_si_andbi (v16i8 VECREG:$rA), immU8:$val))]>;
-
-def CellSDKandhi:
-     RI10Form<0b10101000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-           "andhi\t $rT, $rA, $val", BranchResolv,
-       [(set (v8i16 VECREG:$rT),
-             (int_spu_si_andhi (v8i16 VECREG:$rA), i16ImmSExt10:$val))]>;
-
-def CellSDKandi:
-     RI10Form<0b00101000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-           "andi\t $rT, $rA, $val", BranchResolv,
-       [(set (v4i32 VECREG:$rT),
-             (int_spu_si_andi (v4i32 VECREG:$rA), i32ImmSExt10:$val))]>;
-
-def CellSDKor:
-        RRForm<0b10000010000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          "or\t $rT, $rA, $rB", IntegerOp,
-          [(set (v4i32 VECREG:$rT),
-                (int_spu_si_or (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKorc:
-        RRForm<0b10010011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          "addc\t $rT, $rA, $rB", IntegerOp,
-          [(set (v4i32 VECREG:$rT),
-                (int_spu_si_orc (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKorbi:
-     RI10Form<0b01100000, (outs VECREG:$rT), (ins VECREG:$rA, u10imm_i8:$val),
-       "orbi\t $rT, $rA, $val", BranchResolv,
-       [(set (v16i8 VECREG:$rT),
-             (int_spu_si_orbi (v16i8 VECREG:$rA), immU8:$val))]>;
-
-def CellSDKorhi:
-     RI10Form<0b10100000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-           "orhi\t $rT, $rA, $val", BranchResolv,
-       [(set (v8i16 VECREG:$rT),
-             (int_spu_si_orhi (v8i16 VECREG:$rA), i16ImmSExt10:$val))]>;
-
-def CellSDKori:
-     RI10Form<0b00100000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-           "ori\t $rT, $rA, $val", BranchResolv,
-       [(set (v4i32 VECREG:$rT),
-             (int_spu_si_ori (v4i32 VECREG:$rA), i32ImmSExt10:$val))]>;
-
-def CellSDKxor:
-        RRForm<0b10000010000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          "xor\t $rT, $rA, $rB", IntegerOp,
-          [(set (v4i32 VECREG:$rT), 
-                (int_spu_si_xor (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKxorbi:
-     RI10Form<0b01100000, (outs VECREG:$rT), (ins VECREG:$rA, u10imm_i8:$val),
-       "xorbi\t $rT, $rA, $val", BranchResolv,
-       [(set (v16i8 VECREG:$rT), (int_spu_si_xorbi (v16i8 VECREG:$rA), immU8:$val))]>;
-
-def CellSDKxorhi:
-     RI10Form<0b10100000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-       "xorhi\t $rT, $rA, $val", BranchResolv,
-       [(set (v8i16 VECREG:$rT), 
-             (int_spu_si_xorhi (v8i16 VECREG:$rA), i16ImmSExt10:$val))]>;
-
-def CellSDKxori:
-     RI10Form<0b00100000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-           "xori\t $rT, $rA, $val", BranchResolv,
-       [(set (v4i32 VECREG:$rT), 
-             (int_spu_si_xori (v4i32 VECREG:$rA), i32ImmSExt10:$val))]>;
-
-def CellSDKnor:
-        RRForm<0b10000010000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          "nor\t $rT, $rA, $rB", IntegerOp,
-          [(set (v4i32 VECREG:$rT), 
-                (int_spu_si_nor (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKnand:
-        RRForm<0b10000010000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          "nand\t $rT, $rA, $rB", IntegerOp,
-          [(set (v4i32 VECREG:$rT), 
-                (int_spu_si_nand (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-//===----------------------------------------------------------------------===//
-// Shift/rotate intrinsics:
-//===----------------------------------------------------------------------===//
-
-def CellSDKshli:
-  Pat<(int_spu_si_shli (v4i32 VECREG:$rA), uimm7:$val),
-      (SHLIv4i32 VECREG:$rA, uimm7:$val)>;
-
-def CellSDKshlqbi:
-  Pat<(int_spu_si_shlqbi VECREG:$rA, R32C:$rB),
-      (SHLQBIv16i8 VECREG:$rA, R32C:$rB)>;
-
-def CellSDKshlqii:
-  Pat<(int_spu_si_shlqbii VECREG:$rA, uimm7:$val),
-      (SHLQBIIv16i8 VECREG:$rA, uimm7:$val)>;
-
-def CellSDKshlqby:
-  Pat<(int_spu_si_shlqby VECREG:$rA, R32C:$rB),
-      (SHLQBYv16i8 VECREG:$rA, R32C:$rB)>;
-
-def CellSDKshlqbyi:
-  Pat<(int_spu_si_shlqbyi VECREG:$rA, uimm7:$val),
-      (SHLQBYIv16i8 VECREG:$rA, uimm7:$val)>;
-          
-//===----------------------------------------------------------------------===//
-// Branch/compare intrinsics:
-//===----------------------------------------------------------------------===//
-
-def CellSDKceq:
-  RRForm<0b00000011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-        "ceq\t $rT, $rA, $rB", BranchResolv,
-        [(set (v4i32 VECREG:$rT), 
-              (int_spu_si_ceq (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKceqi:
-  RI10Form<0b00111110, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-        "ceqi\t $rT, $rA, $val", BranchResolv,
-    [(set (v4i32 VECREG:$rT), 
-          (int_spu_si_ceqi (v4i32 VECREG:$rA), i32ImmSExt10:$val))]>;
-
-def CellSDKceqb:
-  RRForm<0b00001011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-        "ceqb\t $rT, $rA, $rB", BranchResolv,
-        [(set (v16i8 VECREG:$rT), 
-              (int_spu_si_ceqb (v16i8 VECREG:$rA), (v16i8 VECREG:$rB)))]>;
-
-def CellSDKceqbi:
-  RI10Form<0b01111110, (outs VECREG:$rT), (ins VECREG:$rA, u10imm_i8:$val),
-        "ceqbi\t $rT, $rA, $val", BranchResolv,
-    [(set (v16i8 VECREG:$rT), (int_spu_si_ceqbi (v16i8 VECREG:$rA), immU8:$val))]>;
-
-def CellSDKceqh:
-  RRForm<0b00010011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-        "ceqh\t $rT, $rA, $rB", BranchResolv,
-        [(set (v8i16 VECREG:$rT), 
-              (int_spu_si_ceqh (v8i16 VECREG:$rA), (v8i16 VECREG:$rB)))]>;
-
-def CellSDKceqhi:
-  RI10Form<0b10111110, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-        "ceqhi\t $rT, $rA, $val", BranchResolv,
-    [(set (v8i16 VECREG:$rT), 
-          (int_spu_si_ceqhi (v8i16 VECREG:$rA), i16ImmSExt10:$val))]>;
-def CellSDKcgth:
-  RRForm<0b00010011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "cgth\t $rT, $rA, $rB", BranchResolv,
-        [(set (v8i16 VECREG:$rT),
-              (int_spu_si_cgth (v8i16 VECREG:$rA), (v8i16 VECREG:$rB)))]>;
-
-def CellSDKcgthi:
-  RI10Form<0b10111110, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-    "cgthi\t $rT, $rA, $val", BranchResolv,
-        [(set (v8i16 VECREG:$rT), 
-              (int_spu_si_cgthi (v8i16 VECREG:$rA), i16ImmSExt10:$val))]>;
-
-def CellSDKcgt:
-  RRForm<0b00000010010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "cgt\t $rT, $rA, $rB", BranchResolv,
-        [(set (v4i32 VECREG:$rT), 
-              (int_spu_si_cgt (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKcgti:
-  RI10Form<0b00110010, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-    "cgti\t $rT, $rA, $val", BranchResolv,
-        [(set (v4i32 VECREG:$rT), 
-              (int_spu_si_cgti (v4i32 VECREG:$rA), i32ImmSExt10:$val))]>;
-
-def CellSDKcgtb:
-  RRForm<0b00001010010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "cgtb\t $rT, $rA, $rB", BranchResolv,
-        [(set (v16i8 VECREG:$rT), 
-              (int_spu_si_cgtb (v16i8 VECREG:$rA), (v16i8 VECREG:$rB)))]>;
-
-def CellSDKcgtbi:
-  RI10Form<0b01110010, (outs VECREG:$rT), (ins VECREG:$rA, u10imm_i8:$val),
-    "cgtbi\t $rT, $rA, $val", BranchResolv,
-        [(set (v16i8 VECREG:$rT), (int_spu_si_cgtbi (v16i8 VECREG:$rA), immU8:$val))]>;
-
-def CellSDKclgth:
-  RRForm<0b00010011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "clgth\t $rT, $rA, $rB", BranchResolv,
-        [(set (v8i16 VECREG:$rT), 
-              (int_spu_si_clgth (v8i16 VECREG:$rA), (v8i16 VECREG:$rB)))]>;
-
-def CellSDKclgthi:
-  RI10Form<0b10111010, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-    "clgthi\t $rT, $rA, $val", BranchResolv,
-        [(set (v8i16 VECREG:$rT), 
-              (int_spu_si_clgthi (v8i16 VECREG:$rA), i16ImmSExt10:$val))]>;
-
-def CellSDKclgt:
-  RRForm<0b00000011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "clgt\t $rT, $rA, $rB", BranchResolv,
-        [(set (v4i32 VECREG:$rT), 
-              (int_spu_si_clgt (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def CellSDKclgti:
-  RI10Form<0b00111010, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-    "clgti\t $rT, $rA, $val", BranchResolv,
-        [(set (v4i32 VECREG:$rT), 
-              (int_spu_si_clgti (v4i32 VECREG:$rA), i32ImmSExt10:$val))]>;
-
-def CellSDKclgtb:
-  RRForm<0b00001011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "clgtb\t $rT, $rA, $rB", BranchResolv,
-    [(set (v16i8 VECREG:$rT),
-          (int_spu_si_clgtb (v16i8 VECREG:$rA), (v16i8 VECREG:$rB)))]>;
-
-def CellSDKclgtbi:
-  RI10Form<0b01111010, (outs VECREG:$rT), (ins VECREG:$rA, u10imm_i8:$val),
-    "clgtbi\t $rT, $rA, $val", BranchResolv,
-    [(set (v16i8 VECREG:$rT),
-          (int_spu_si_clgtbi (v16i8 VECREG:$rA), immU8:$val))]>;
-
-//===----------------------------------------------------------------------===//
-// Floating-point intrinsics:
-//===----------------------------------------------------------------------===//
-
-def CellSDKfa:
-  RRForm<0b00100011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "fa\t $rT, $rA, $rB", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fa (v4f32 VECREG:$rA),
-                                                 (v4f32 VECREG:$rB)))]>;
-
-def CellSDKfs:
-  RRForm<0b10100011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "fs\t $rT, $rA, $rB", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fs (v4f32 VECREG:$rA),
-                                                 (v4f32 VECREG:$rB)))]>;
-
-def CellSDKfm:
-  RRForm<0b01100011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "fm\t $rT, $rA, $rB", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fm (v4f32 VECREG:$rA),
-                                                 (v4f32 VECREG:$rB)))]>;
-
-def CellSDKfceq:
-  RRForm<0b01000011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "fceq\t $rT, $rA, $rB", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fceq (v4f32 VECREG:$rA),
-                                                   (v4f32 VECREG:$rB)))]>;
-
-def CellSDKfcgt:
-  RRForm<0b01000011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "fcgt\t $rT, $rA, $rB", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fcgt (v4f32 VECREG:$rA),
-                                                   (v4f32 VECREG:$rB)))]>;
-
-def CellSDKfcmeq:
-  RRForm<0b01010011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "fcmeq\t $rT, $rA, $rB", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fcmeq (v4f32 VECREG:$rA),
-                                                    (v4f32 VECREG:$rB)))]>;
-
-def CellSDKfcmgt:
-  RRForm<0b01010011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "fcmgt\t $rT, $rA, $rB", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fcmgt (v4f32 VECREG:$rA),
-                                                    (v4f32 VECREG:$rB)))]>;
-
-def CellSDKfma:
-  RRRForm<0b0111, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-    "fma\t $rT, $rA, $rB, $rC", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fma (v4f32 VECREG:$rA),
-                                                  (v4f32 VECREG:$rB),
-                                                  (v4f32 VECREG:$rC)))]>;
-
-def CellSDKfnms:
-  RRRForm<0b1011, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-    "fnms\t $rT, $rA, $rB, $rC", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fnms (v4f32 VECREG:$rA),
-                                                   (v4f32 VECREG:$rB),
-                                                   (v4f32 VECREG:$rC)))]>;
-
-def CellSDKfms:
-  RRRForm<0b1111, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-    "fms\t $rT, $rA, $rB, $rC", SPrecFP,
-        [(set (v4f32 VECREG:$rT), (int_spu_si_fms (v4f32 VECREG:$rA),
-                                                  (v4f32 VECREG:$rB),
-                                                  (v4f32 VECREG:$rC)))]>;
-
-//===----------------------------------------------------------------------===//
-// Double precision floating-point intrinsics:
-//===----------------------------------------------------------------------===//
-
-def CellSDKdfa:
-  RRForm<0b00110011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "dfa\t $rT, $rA, $rB", DPrecFP,
-        [(set (v2f64 VECREG:$rT), (int_spu_si_dfa (v2f64 VECREG:$rA),
-                                                  (v2f64 VECREG:$rB)))]>;
-
-def CellSDKdfs:
-  RRForm<0b10110011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "dfs\t $rT, $rA, $rB", DPrecFP,
-        [(set (v2f64 VECREG:$rT), (int_spu_si_dfs (v2f64 VECREG:$rA),
-                                                  (v2f64 VECREG:$rB)))]>;
-
-def CellSDKdfm:
-  RRForm<0b01110011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "dfm\t $rT, $rA, $rB", DPrecFP,
-        [(set (v2f64 VECREG:$rT), (int_spu_si_dfm (v2f64 VECREG:$rA),
-                                                  (v2f64 VECREG:$rB)))]>;
-
-def CellSDKdfma:
-  RRForm<0b00111010110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "dfma\t $rT, $rA, $rB", DPrecFP,
-        [(set (v2f64 VECREG:$rT), (int_spu_si_dfma (v2f64 VECREG:$rA),
-                                                   (v2f64 VECREG:$rB)))]>;
-
-def CellSDKdfnma:
-  RRForm<0b11111010110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "dfnma\t $rT, $rA, $rB", DPrecFP,
-        [(set (v2f64 VECREG:$rT), (int_spu_si_dfnma (v2f64 VECREG:$rA),
-                                                    (v2f64 VECREG:$rB)))]>;
-
-def CellSDKdfnms:
-  RRForm<0b01111010110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "dfnms\t $rT, $rA, $rB", DPrecFP,
-        [(set (v2f64 VECREG:$rT), (int_spu_si_dfnms (v2f64 VECREG:$rA),
-                                                    (v2f64 VECREG:$rB)))]>;
-
-def CellSDKdfms:
-  RRForm<0b10111010110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "dfms\t $rT, $rA, $rB", DPrecFP,
-        [(set (v2f64 VECREG:$rT), (int_spu_si_dfms (v2f64 VECREG:$rA),
-                                                   (v2f64 VECREG:$rB)))]>;
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/Makefile b/libclamav/c++/llvm/lib/Target/CellSPU/Makefile
deleted file mode 100644
index 8415168..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-##===- lib/Target/CellSPU/Makefile -------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../..
-LIBRARYNAME = LLVMCellSPUCodeGen
-TARGET = SPU
-
-BUILT_SOURCES = SPUGenInstrNames.inc SPUGenRegisterNames.inc \
-		SPUGenAsmWriter.inc SPUGenCodeEmitter.inc \
-		SPUGenRegisterInfo.h.inc SPUGenRegisterInfo.inc \
-		SPUGenInstrInfo.inc SPUGenDAGISel.inc \
-		SPUGenSubtarget.inc SPUGenCallingConv.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/README.txt b/libclamav/c++/llvm/lib/Target/CellSPU/README.txt
deleted file mode 100644
index 4783dd5..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/README.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-//===- README.txt - Notes for improving CellSPU-specific code gen ---------===//
-
-This code was contributed by a team from the Computer Systems Research
-Department in The Aerospace Corporation:
-
-- Scott Michel (head bottle washer and much of the non-floating point
-  instructions)
-- Mark Thomas (floating point instructions)
-- Michael AuYeung (intrinsics)
-- Chandler Carruth (LLVM expertise)
-- Nehal Desai (debugging, i32 operations, RoadRunner SPU expertise)
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR
-OTHERWISE.  IN NO EVENT SHALL THE AEROSPACE CORPORATION BE LIABLE FOR DAMAGES
-OF ANY KIND OR NATURE WHETHER BASED IN CONTRACT, TORT, OR OTHERWISE ARISING
-OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE INCLUDING, WITHOUT
-LIMITATION, DAMAGES RESULTING FROM LOST OR CONTAMINATED DATA, LOST PROFITS OR
-REVENUE, COMPUTER MALFUNCTION, OR FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL,
-OR PUNITIVE  DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR
-SUCH DAMAGES ARE FORESEEABLE.
-
----------------------------------------------------------------------------
---WARNING--:
---WARNING--: The CellSPU work is work-in-progress and "alpha" quality code.
---WARNING--:
-
-If you are brave enough to try this code or help to hack on it, be sure
-to add 'spu' to configure's --enable-targets option, e.g.:
-
-        ./configure <your_configure_flags_here> \
-           --enable-targets=x86,x86_64,powerpc,spu
-
----------------------------------------------------------------------------
-
-TODO:
-* Create a machine pass for performing dual-pipeline scheduling specifically
-  for CellSPU, and insert branch prediction instructions as needed.
-
-* i32 instructions:
-
-  * i32 division (work-in-progress)
-
-* i64 support (see i64operations.c test harness):
-
-  * shifts and comparison operators: done
-  * sign and zero extension: done
-  * addition: done
-  * subtraction: needed
-  * multiplication: done
-
-* i128 support:
-
-  * zero extension, any extension: done
-  * sign extension: needed
-  * arithmetic operators (add, sub, mul, div): needed
-  * logical operations (and, or, shl, srl, sra, xor, nor, nand): needed
-
-    * or: done
-
-* f64 support
-
-  * Comparison operators:
-    SETOEQ              unimplemented
-    SETOGT              unimplemented
-    SETOGE              unimplemented
-    SETOLT              unimplemented
-    SETOLE              unimplemented
-    SETONE              unimplemented
-    SETO                done (lowered)
-    SETUO               done (lowered)
-    SETUEQ              unimplemented
-    SETUGT              unimplemented
-    SETUGE              unimplemented
-    SETULT              unimplemented
-    SETULE              unimplemented
-    SETUNE              unimplemented
-
-* LLVM vector suport
-
-  * VSETCC needs to be implemented. It's pretty straightforward to code, but
-    needs implementation.
-
-* Intrinsics
-
-  * spu.h instrinsics added but not tested. Need to have an operational
-    llvm-spu-gcc in order to write a unit test harness.
-
-===-------------------------------------------------------------------------===
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPU.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPU.h
deleted file mode 100644
index 02713b5..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPU.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//===-- SPU.h - Top-level interface for Cell SPU Target ----------*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in the LLVM
-// Cell SPU back-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_IBMCELLSPU_H
-#define LLVM_TARGET_IBMCELLSPU_H
-
-#include "llvm/Support/DataTypes.h"
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-  class SPUTargetMachine;
-  class FunctionPass;
-  class formatted_raw_ostream;
-
-  FunctionPass *createSPUISelDag(SPUTargetMachine &TM);
-
-  /*--== Utility functions/predicates/etc used all over the place: --==*/
-  //! Predicate test for a signed 10-bit value
-  /*!
-    \param Value The input value to be tested
-
-    This predicate tests for a signed 10-bit value, returning the 10-bit value
-    as a short if true.
-   */
-  template<typename T>
-  inline bool isS10Constant(T Value);
-
-  template<>
-  inline bool isS10Constant<short>(short Value) {
-    int SExtValue = ((int) Value << (32 - 10)) >> (32 - 10);
-    return ((Value > 0 && Value <= (1 << 9) - 1)
-            || (Value < 0 && (short) SExtValue == Value));
-  }
-
-  template<>
-  inline bool isS10Constant<int>(int Value) {
-    return (Value >= -(1 << 9) && Value <= (1 << 9) - 1);
-  }
-
-  template<>
-  inline bool isS10Constant<uint32_t>(uint32_t Value) {
-    return (Value <= ((1 << 9) - 1));
-  }
-
-  template<>
-  inline bool isS10Constant<int64_t>(int64_t Value) {
-    return (Value >= -(1 << 9) && Value <= (1 << 9) - 1);
-  }
-
-  template<>
-  inline bool isS10Constant<uint64_t>(uint64_t Value) {
-    return (Value <= ((1 << 9) - 1));
-  }
-
-  //! Predicate test for an unsigned 10-bit value
-  /*!
-    \param Value The input value to be tested
-
-    This predicate tests for an unsigned 10-bit value, returning the 10-bit value
-    as a short if true.
-   */
-  inline bool isU10Constant(short Value) {
-    return (Value == (Value & 0x3ff));
-  }
-
-  inline bool isU10Constant(int Value) {
-    return (Value == (Value & 0x3ff));
-  }
-
-  inline bool isU10Constant(uint32_t Value) {
-    return (Value == (Value & 0x3ff));
-  }
-
-  inline bool isU10Constant(int64_t Value) {
-    return (Value == (Value & 0x3ff));
-  }
-
-  inline bool isU10Constant(uint64_t Value) {
-    return (Value == (Value & 0x3ff));
-  }
-
-  extern Target TheCellSPUTarget;
-
-}
-
-// Defines symbolic names for the SPU instructions.
-//
-#include "SPUGenInstrNames.inc"
-
-#endif /* LLVM_TARGET_IBMCELLSPU_H */
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPU.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPU.td
deleted file mode 100644
index 8327fe0..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPU.td
+++ /dev/null
@@ -1,66 +0,0 @@
-//===- SPU.td - Describe the STI Cell SPU Target Machine ----*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is the top level entry point for the STI Cell SPU target machine.
-//
-//===----------------------------------------------------------------------===//
-
-// Get the target-independent interfaces which we are implementing.
-//
-include "llvm/Target/Target.td"
-
-// Holder of code fragments (you'd think this'd already be in
-// a td file somewhere... :-)
-
-class CodeFrag<dag frag> {
-  dag Fragment = frag;
-}
-
-//===----------------------------------------------------------------------===//
-// Register File Description
-//===----------------------------------------------------------------------===//
-
-include "SPURegisterInfo.td"
-
-//===----------------------------------------------------------------------===//
-// Instruction formats, instructions
-//===----------------------------------------------------------------------===//
-
-include "SPUNodes.td"
-include "SPUOperands.td"
-include "SPUSchedule.td"
-include "SPUInstrFormats.td"
-include "SPUInstrInfo.td"
-
-//===----------------------------------------------------------------------===//
-// Subtarget features:
-//===----------------------------------------------------------------------===//
-
-def DefaultProc: SubtargetFeature<"", "ProcDirective", "SPU::DEFAULT_PROC", "">;
-def LargeMemFeature:
-  SubtargetFeature<"large_mem","UseLargeMem", "true",
-                   "Use large (>256) LSA memory addressing [default = false]">;
-
-def SPURev0 : Processor<"v0", SPUItineraries, [DefaultProc]>;
-
-//===----------------------------------------------------------------------===//
-// Calling convention:
-//===----------------------------------------------------------------------===//
-
-include "SPUCallingConv.td"
-
-// Target:
-
-def SPUInstrInfo : InstrInfo {
-  let isLittleEndianEncoding = 1;
-}
-
-def SPU : Target {
-  let InstructionSet = SPUInstrInfo;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPU128InstrInfo.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPU128InstrInfo.td
deleted file mode 100644
index 3031fda..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPU128InstrInfo.td
+++ /dev/null
@@ -1,41 +0,0 @@
-//===--- SPU128InstrInfo.td - Cell SPU 128-bit operations -*- tablegen -*--===//
-//
-//                     Cell SPU 128-bit operations
-//
-//===----------------------------------------------------------------------===//
-                                  
-// zext 32->128: Zero extend 32-bit to 128-bit
-def : Pat<(i128 (zext R32C:$rSrc)),
-          (ROTQMBYIr128_zext_r32 R32C:$rSrc, 12)>;
-
-// zext 64->128: Zero extend 64-bit to 128-bit
-def : Pat<(i128 (zext R64C:$rSrc)),
-          (ROTQMBYIr128_zext_r64 R64C:$rSrc, 8)>;
-
-// zext 16->128: Zero extend 16-bit to 128-bit
-def : Pat<(i128 (zext R16C:$rSrc)),
-          (ROTQMBYIr128_zext_r32 (ANDi16i32 R16C:$rSrc, (ILAr32 0xffff)), 12)>;
-
-// zext 8->128: Zero extend 8-bit to 128-bit
-def : Pat<(i128 (zext R8C:$rSrc)),
-          (ROTQMBYIr128_zext_r32 (ANDIi8i32 R8C:$rSrc, 0xf), 12)>;
-
-// anyext 32->128: Zero extend 32-bit to 128-bit
-def : Pat<(i128 (anyext R32C:$rSrc)),
-          (ROTQMBYIr128_zext_r32 R32C:$rSrc, 12)>;
-
-// anyext 64->128: Zero extend 64-bit to 128-bit
-def : Pat<(i128 (anyext R64C:$rSrc)),
-          (ROTQMBYIr128_zext_r64 R64C:$rSrc, 8)>;
-
-// anyext 16->128: Zero extend 16-bit to 128-bit
-def : Pat<(i128 (anyext R16C:$rSrc)),
-          (ROTQMBYIr128_zext_r32 (ANDi16i32 R16C:$rSrc, (ILAr32 0xffff)), 12)>;
-
-// anyext 8->128: Zero extend 8-bit to 128-bit
-def : Pat<(i128 (anyext R8C:$rSrc)),
-          (ROTQMBYIr128_zext_r32 (ANDIi8i32 R8C:$rSrc, 0xf), 12)>;
-
-// Shift left
-def : Pat<(shl GPRC:$rA, R32C:$rB),
-          (SHLQBYBIr128 (SHLQBIr128 GPRC:$rA, R32C:$rB), R32C:$rB)>;
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPU64InstrInfo.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPU64InstrInfo.td
deleted file mode 100644
index 06eb149..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPU64InstrInfo.td
+++ /dev/null
@@ -1,394 +0,0 @@
-//====--- SPU64InstrInfo.td - Cell SPU 64-bit operations -*- tablegen -*--====//
-//
-//                     Cell SPU 64-bit operations
-//
-//===----------------------------------------------------------------------===//
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// 64-bit comparisons:
-//
-// 1. The instruction sequences for vector vice scalar differ by a
-//    constant. In the scalar case, we're only interested in the
-//    top two 32-bit slots, whereas we're interested in an exact
-//    all-four-slot match in the vector case.
-//
-// 2. There are no "immediate" forms, since loading 64-bit constants
-//    could be a constant pool load.
-//
-// 3. i64 setcc results are i32, which are subsequently converted to a FSM
-//    mask when used in a select pattern.
-//
-// 4. v2i64 setcc results are v4i32, which can be converted to a FSM mask (TODO)
-//    [Note: this may be moot, since gb produces v4i32 or r32.]
-//
-// 5. The code sequences for r64 and v2i64 are probably overly conservative,
-//    compared to the code that gcc produces.
-//
-// M00$E B!tes Kan be Pretty N at sTi!!!!! (appologies to Monty!)
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-// selb instruction definition for i64. Note that the selection mask is
-// a vector, produced by various forms of FSM:
-def SELBr64_cond:
-  SELBInst<(outs R64C:$rT), (ins R64C:$rA, R64C:$rB, VECREG:$rC),
-           [/* no pattern */]>;
-
-// The generic i64 select pattern, which assumes that the comparison result
-// is in a 32-bit register that contains a select mask pattern (i.e., gather
-// bits result):
-
-def : Pat<(select R32C:$rCond, R64C:$rFalse, R64C:$rTrue),
-          (SELBr64_cond R64C:$rTrue, R64C:$rFalse, (FSMr32 R32C:$rCond))>;
-
-// select the negative condition:
-class I64SELECTNegCond<PatFrag cond, CodeFrag compare>:
-  Pat<(select (i32 (cond R64C:$rA, R64C:$rB)), R64C:$rTrue, R64C:$rFalse),
-      (SELBr64_cond R64C:$rTrue, R64C:$rFalse, (FSMr32 compare.Fragment))>;
-
-// setcc the negative condition:
-class I64SETCCNegCond<PatFrag cond, CodeFrag compare>:
-  Pat<(cond R64C:$rA, R64C:$rB),
-      (XORIr32 compare.Fragment, -1)>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// The i64 seteq fragment that does the scalar->vector conversion and
-// comparison:
-def CEQr64compare:
-    CodeFrag<(CGTIv4i32 (GBv4i32 (CEQv4i32 (ORv2i64_i64 R64C:$rA),
-                                           (ORv2i64_i64 R64C:$rB))), 0xb)>;
-
-// The i64 seteq fragment that does the vector comparison
-def CEQv2i64compare:
-    CodeFrag<(CEQIv4i32 (GBv4i32 (CEQv4i32 VECREG:$rA, VECREG:$rB)), 0xf)>;
-
-// i64 seteq (equality): the setcc result is i32, which is converted to a
-// vector FSM mask when used in a select pattern.
-//
-// v2i64 seteq (equality): the setcc result is v4i32
-multiclass CompareEqual64 {
-  // Plain old comparison, converts back to i32 scalar
-  def r64: CodeFrag<(ORi32_v4i32 CEQr64compare.Fragment)>;
-  def v2i64: CodeFrag<(ORi32_v4i32 CEQv2i64compare.Fragment)>;
-
-  // SELB mask from FSM:
-  def r64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CEQr64compare.Fragment))>;
-  def v2i64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CEQv2i64compare.Fragment))>;
-}
-
-defm I64EQ: CompareEqual64;
-
-def : Pat<(seteq R64C:$rA, R64C:$rB), I64EQr64.Fragment>;
-def : Pat<(seteq (v2i64 VECREG:$rA), (v2i64 VECREG:$rB)), I64EQv2i64.Fragment>;
-
-// i64 setne:
-def : I64SETCCNegCond<setne, I64EQr64>;
-def : I64SELECTNegCond<setne, I64EQr64>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// i64 setugt/setule:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-def CLGTr64ugt:
-    CodeFrag<(CLGTv4i32 (ORv2i64_i64 R64C:$rA), (ORv2i64_i64 R64C:$rB))>;
-
-def CLGTr64eq:
-    CodeFrag<(CEQv4i32 (ORv2i64_i64 R64C:$rA), (ORv2i64_i64 R64C:$rB))>;
-    
-def CLGTr64compare:
-    CodeFrag<(SELBv2i64 CLGTr64ugt.Fragment,
-                        (XSWDv2i64 CLGTr64ugt.Fragment),
-                        CLGTr64eq.Fragment)>;
-
-def CLGTv2i64ugt:
-    CodeFrag<(CLGTv4i32 VECREG:$rA, VECREG:$rB)>;
-
-def CLGTv2i64eq:
-    CodeFrag<(CEQv4i32 VECREG:$rA, VECREG:$rB)>;
-    
-def CLGTv2i64compare:
-    CodeFrag<(SELBv2i64 CLGTv2i64ugt.Fragment,
-                        (XSWDv2i64 CLGTr64ugt.Fragment),
-                        CLGTv2i64eq.Fragment)>;
-
-multiclass CompareLogicalGreaterThan64 {
-  // Plain old comparison, converts back to i32 scalar
-  def r64: CodeFrag<(ORi32_v4i32 CLGTr64compare.Fragment)>;
-  def v2i64: CodeFrag<CLGTv2i64compare.Fragment>;
-
-  // SELB mask from FSM:
-  def r64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CLGTr64compare.Fragment))>;
-  def v2i64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CLGTv2i64compare.Fragment))>;
-}
-
-defm I64LGT: CompareLogicalGreaterThan64;
-
-def : Pat<(setugt R64C:$rA, R64C:$rB), I64LGTr64.Fragment>;
-def : Pat<(setugt (v2i64 VECREG:$rA), (v2i64 VECREG:$rB)),
-                  I64LGTv2i64.Fragment>;
-
-// i64 setult:
-def : I64SETCCNegCond<setule, I64LGTr64>;
-def : I64SELECTNegCond<setule, I64LGTr64>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// i64 setuge/setult:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-def CLGEr64compare:
-    CodeFrag<(CGTIv4i32 (GBv4i32 (ORv4i32 CLGTr64ugt.Fragment,
-                                          CLGTr64eq.Fragment)), 0xb)>;
-
-def CLGEv2i64compare:
-    CodeFrag<(CEQIv4i32 (GBv4i32 (ORv4i32 CLGTv2i64ugt.Fragment,
-                                          CLGTv2i64eq.Fragment)), 0xf)>;
-
-multiclass CompareLogicalGreaterEqual64 {
-  // Plain old comparison, converts back to i32 scalar
-  def r64: CodeFrag<(ORi32_v4i32 CLGEr64compare.Fragment)>;
-  def v2i64: CodeFrag<CLGEv2i64compare.Fragment>;
-
-  // SELB mask from FSM:
-  def r64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CLGEr64compare.Fragment))>;
-  def v2i64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CLGEv2i64compare.Fragment))>;
-}
-
-defm I64LGE: CompareLogicalGreaterEqual64;
-
-def : Pat<(setuge R64C:$rA, R64C:$rB), I64LGEr64.Fragment>;
-def : Pat<(setuge (v2i64 VECREG:$rA), (v2i64 VECREG:$rB)),
-                  I64LGEv2i64.Fragment>;
-
-// i64 setult:
-def : I64SETCCNegCond<setult, I64LGEr64>;
-def : I64SELECTNegCond<setult, I64LGEr64>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// i64 setgt/setle:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-def CGTr64sgt:
-    CodeFrag<(CGTv4i32 (ORv2i64_i64 R64C:$rA), (ORv2i64_i64 R64C:$rB))>;
-
-def CGTr64eq:
-    CodeFrag<(CEQv4i32 (ORv2i64_i64 R64C:$rA), (ORv2i64_i64 R64C:$rB))>;
-    
-def CGTr64compare:
-    CodeFrag<(SELBv2i64 CGTr64sgt.Fragment,
-                        (XSWDv2i64 CGTr64sgt.Fragment),
-                        CGTr64eq.Fragment)>;
-
-def CGTv2i64sgt:
-    CodeFrag<(CGTv4i32 VECREG:$rA, VECREG:$rB)>;
-
-def CGTv2i64eq:
-    CodeFrag<(CEQv4i32 VECREG:$rA, VECREG:$rB)>;
-    
-def CGTv2i64compare:
-    CodeFrag<(SELBv2i64 CGTv2i64sgt.Fragment,
-                        (XSWDv2i64 CGTr64sgt.Fragment),
-                        CGTv2i64eq.Fragment)>;
-
-multiclass CompareGreaterThan64 {
-  // Plain old comparison, converts back to i32 scalar
-  def r64: CodeFrag<(ORi32_v4i32 CGTr64compare.Fragment)>;
-  def v2i64: CodeFrag<CGTv2i64compare.Fragment>;
-
-  // SELB mask from FSM:
-  def r64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CGTr64compare.Fragment))>;
-  def v2i64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CGTv2i64compare.Fragment))>;
-}
-
-defm I64GT: CompareLogicalGreaterThan64;
-
-def : Pat<(setgt R64C:$rA, R64C:$rB), I64GTr64.Fragment>;
-def : Pat<(setgt (v2i64 VECREG:$rA), (v2i64 VECREG:$rB)),
-                  I64GTv2i64.Fragment>;
-
-// i64 setult:
-def : I64SETCCNegCond<setle, I64GTr64>;
-def : I64SELECTNegCond<setle, I64GTr64>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// i64 setge/setlt:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-    
-def CGEr64compare:
-    CodeFrag<(CGTIv4i32 (GBv4i32 (ORv4i32 CGTr64sgt.Fragment,
-                                          CGTr64eq.Fragment)), 0xb)>;
-
-def CGEv2i64compare:
-    CodeFrag<(CEQIv4i32 (GBv4i32 (ORv4i32 CGTv2i64sgt.Fragment,
-                                          CGTv2i64eq.Fragment)), 0xf)>;
-
-multiclass CompareGreaterEqual64 {
-  // Plain old comparison, converts back to i32 scalar
-  def r64: CodeFrag<(ORi32_v4i32 CGEr64compare.Fragment)>;
-  def v2i64: CodeFrag<CGEv2i64compare.Fragment>;
-
-  // SELB mask from FSM:
-  def r64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CGEr64compare.Fragment))>;
-  def v2i64mask: CodeFrag<(ORi32_v4i32 (FSMv4i32 CGEv2i64compare.Fragment))>;
-}
-
-defm I64GE: CompareGreaterEqual64;
-
-def : Pat<(setge R64C:$rA, R64C:$rB), I64GEr64.Fragment>;
-def : Pat<(setge (v2i64 VECREG:$rA), (v2i64 VECREG:$rB)),
-                  I64GEv2i64.Fragment>;
-
-// i64 setult:
-def : I64SETCCNegCond<setlt, I64GEr64>;
-def : I64SELECTNegCond<setlt, I64GEr64>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// v2i64, i64 add
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class v2i64_add_cg<dag lhs, dag rhs>:
-    CodeFrag<(CGv4i32 lhs, rhs)>;
-
-class v2i64_add_1<dag lhs, dag rhs, dag cg, dag cg_mask>:
-    CodeFrag<(ADDXv4i32 lhs, rhs, (SHUFBv4i32 cg, cg, cg_mask))>;
-
-class v2i64_add<dag lhs, dag rhs, dag cg_mask>:
-    v2i64_add_1<lhs, rhs, v2i64_add_cg<lhs, rhs>.Fragment, cg_mask>;
-
-def : Pat<(SPUadd64 R64C:$rA, R64C:$rB, (v4i32 VECREG:$rCGmask)),
-           (ORi64_v2i64 v2i64_add<(ORv2i64_i64 R64C:$rA),
-                                  (ORv2i64_i64 R64C:$rB),
-                                  (v4i32 VECREG:$rCGmask)>.Fragment)>;
-
-def : Pat<(SPUadd64 (v2i64 VECREG:$rA), (v2i64 VECREG:$rB),
-                    (v4i32 VECREG:$rCGmask)),
-           v2i64_add<(v2i64 VECREG:$rA),
-                     (v2i64 VECREG:$rB),
-                     (v4i32 VECREG:$rCGmask)>.Fragment>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// v2i64, i64 subtraction
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class v2i64_sub_bg<dag lhs, dag rhs>: CodeFrag<(BGv4i32 lhs, rhs)>;
-
-class v2i64_sub<dag lhs, dag rhs, dag bg, dag bg_mask>:
-    CodeFrag<(SFXv4i32 lhs, rhs, (SHUFBv4i32 bg, bg, bg_mask))>;
-
-def : Pat<(SPUsub64 R64C:$rA, R64C:$rB, (v4i32 VECREG:$rCGmask)),
-           (ORi64_v2i64 v2i64_sub<(ORv2i64_i64 R64C:$rA),
-                                  (ORv2i64_i64 R64C:$rB),
-                                  v2i64_sub_bg<(ORv2i64_i64 R64C:$rA),
-                                               (ORv2i64_i64 R64C:$rB)>.Fragment,
-                                  (v4i32 VECREG:$rCGmask)>.Fragment)>;
-
-def : Pat<(SPUsub64 (v2i64 VECREG:$rA), (v2i64 VECREG:$rB),
-                    (v4i32 VECREG:$rCGmask)),
-           v2i64_sub<(v2i64 VECREG:$rA),
-                     (v2i64 VECREG:$rB),
-                     v2i64_sub_bg<(v2i64 VECREG:$rA),
-                                  (v2i64 VECREG:$rB)>.Fragment,
-                     (v4i32 VECREG:$rCGmask)>.Fragment>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// v2i64, i64 multiply
-//
-// Note: i64 multiply is simply the vector->scalar conversion of the
-// full-on v2i64 multiply, since the entire vector has to be manipulated
-// anyway.
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class v2i64_mul_ahi64<dag rA> :
-    CodeFrag<(SELBv4i32 rA, (ILv4i32 0), (FSMBIv4i32 0x0f0f))>;
-
-class v2i64_mul_bhi64<dag rB> :
-    CodeFrag<(SELBv4i32 rB, (ILv4i32 0), (FSMBIv4i32 0x0f0f))>;
-
-class v2i64_mul_alo64<dag rB> :
-    CodeFrag<(SELBv4i32 rB, (ILv4i32 0), (FSMBIv4i32 0xf0f0))>;
-
-class v2i64_mul_blo64<dag rB> :
-    CodeFrag<(SELBv4i32 rB, (ILv4i32 0), (FSMBIv4i32 0xf0f0))>;
-
-class v2i64_mul_ashlq2<dag rA>:
-    CodeFrag<(SHLQBYIv4i32 rA, 0x2)>;
-
-class v2i64_mul_ashlq4<dag rA>:
-    CodeFrag<(SHLQBYIv4i32 rA, 0x4)>;
-
-class v2i64_mul_bshlq2<dag rB> :
-    CodeFrag<(SHLQBYIv4i32 rB, 0x2)>;
-
-class v2i64_mul_bshlq4<dag rB> :
-    CodeFrag<(SHLQBYIv4i32 rB, 0x4)>;
-
-class v2i64_highprod<dag rA, dag rB>:
-    CodeFrag<(Av4i32
-                (Av4i32
-                  (MPYUv4i32 v2i64_mul_bshlq4<rB>.Fragment,     // a1 x b3
-                             v2i64_mul_ahi64<rA>.Fragment),
-                  (MPYHv4i32 v2i64_mul_ahi64<rA>.Fragment,      // a0 x b3
-                             v2i64_mul_bshlq4<rB>.Fragment)),
-                (Av4i32
-                  (MPYHv4i32 v2i64_mul_bhi64<rB>.Fragment,
-                             v2i64_mul_ashlq4<rA>.Fragment),
-                  (Av4i32
-                      (MPYHv4i32 v2i64_mul_ashlq4<rA>.Fragment,
-                                 v2i64_mul_bhi64<rB>.Fragment),
-                    (Av4i32
-                      (MPYUv4i32 v2i64_mul_ashlq4<rA>.Fragment,
-                                 v2i64_mul_bhi64<rB>.Fragment),
-                      (Av4i32
-                        (MPYHv4i32 v2i64_mul_ashlq2<rA>.Fragment,
-                                   v2i64_mul_bshlq2<rB>.Fragment),
-                        (MPYUv4i32 v2i64_mul_ashlq2<rA>.Fragment,
-                                   v2i64_mul_bshlq2<rB>.Fragment))))))>;
-
-class v2i64_mul_a3_b3<dag rA, dag rB>:
-    CodeFrag<(MPYUv4i32 v2i64_mul_alo64<rA>.Fragment,
-                        v2i64_mul_blo64<rB>.Fragment)>;
-
-class v2i64_mul_a2_b3<dag rA, dag rB>:
-    CodeFrag<(SELBv4i32 (SHLQBYIv4i32
-                          (MPYHHUv4i32 v2i64_mul_alo64<rA>.Fragment,
-                                       v2i64_mul_bshlq2<rB>.Fragment), 0x2),
-                        (ILv4i32 0),
-                        (FSMBIv4i32 0xc3c3))>;
-
-class v2i64_mul_a3_b2<dag rA, dag rB>:
-    CodeFrag<(SELBv4i32 (SHLQBYIv4i32
-                          (MPYHHUv4i32 v2i64_mul_blo64<rB>.Fragment,
-                                       v2i64_mul_ashlq2<rA>.Fragment), 0x2),
-                        (ILv4i32 0),
-                        (FSMBIv4i32 0xc3c3))>;
-
-class v2i64_lowsum<dag rA, dag rB, dag rCGmask>:
-    v2i64_add<v2i64_add<v2i64_mul_a3_b3<rA, rB>.Fragment,
-                        v2i64_mul_a2_b3<rA, rB>.Fragment, rCGmask>.Fragment,
-              v2i64_mul_a3_b2<rA, rB>.Fragment, rCGmask>;
-
-class v2i64_mul<dag rA, dag rB, dag rCGmask>:
-    v2i64_add<v2i64_lowsum<rA, rB, rCGmask>.Fragment,
-              (SELBv4i32 v2i64_highprod<rA, rB>.Fragment,
-                         (ILv4i32 0),
-                         (FSMBIv4i32 0x0f0f)),
-              rCGmask>;
-
-def : Pat<(SPUmul64 R64C:$rA, R64C:$rB, (v4i32 VECREG:$rCGmask)),
-          (ORi64_v2i64 v2i64_mul<(ORv2i64_i64 R64C:$rA),
-                                 (ORv2i64_i64 R64C:$rB),
-                                 (v4i32 VECREG:$rCGmask)>.Fragment)>;
-
-def : Pat<(SPUmul64 (v2i64 VECREG:$rA), (v2i64 VECREG:$rB),
-                    (v4i32 VECREG:$rCGmask)),
-          v2i64_mul<(v2i64 VECREG:$rA), (v2i64 VECREG:$rB),
-                    (v4i32 VECREG:$rCGmask)>.Fragment>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// f64 comparisons
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-// selb instruction definition for i64. Note that the selection mask is
-// a vector, produced by various forms of FSM:
-def SELBf64_cond:
-   SELBInst<(outs R64FP:$rT), (ins R64FP:$rA, R64FP:$rB, R32C:$rC),
-            [(set R64FP:$rT,
-                  (select R32C:$rC, R64FP:$rB, R64FP:$rA))]>;
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUCallingConv.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPUCallingConv.td
deleted file mode 100644
index 10dc837..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUCallingConv.td
+++ /dev/null
@@ -1,115 +0,0 @@
-//===- SPUCallingConv.td - Calling Conventions for CellSPU ------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This describes the calling conventions for the STI Cell SPU architecture.
-//
-//===----------------------------------------------------------------------===//
-
-/// CCIfSubtarget - Match if the current subtarget has a feature F.
-class CCIfSubtarget<string F, CCAction A>
- : CCIf<!strconcat("State.getTarget().getSubtarget<PPCSubtarget>().", F), A>;
-
-//===----------------------------------------------------------------------===//
-// Return Value Calling Convention
-//===----------------------------------------------------------------------===//
-
-// Return-value convention for Cell SPU: Everything can be passed back via $3:
-def RetCC_SPU : CallingConv<[
-  CCIfType<[i8],       CCAssignToReg<[R3]>>,
-  CCIfType<[i16],      CCAssignToReg<[R3]>>,
-  CCIfType<[i32],      CCAssignToReg<[R3]>>,
-  CCIfType<[i64],      CCAssignToReg<[R3]>>,
-  CCIfType<[i128],     CCAssignToReg<[R3]>>,
-  CCIfType<[f32, f64], CCAssignToReg<[R3]>>,
-  CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToReg<[R3]>>,
-  CCIfType<[v2i32],                                    CCAssignToReg<[R3]>>
-]>;
-
-
-//===----------------------------------------------------------------------===//
-// CellSPU Argument Calling Conventions
-// (note: this isn't used, but presumably should be at some point when other
-//  targets do.)
-//===----------------------------------------------------------------------===//
-/*
-def CC_SPU : CallingConv<[
-  CCIfType<[i8],  CCAssignToReg<[R3,   R4,  R5,  R6,  R7,  R8,  R9, R10, R11,
-                                 R12, R13, R14, R15, R16, R17, R18, R19, R20,
-                                 R21, R22, R23, R24, R25, R26, R27, R28, R29,
-                                 R30, R31, R32, R33, R34, R35, R36, R37, R38,
-                                 R39, R40, R41, R42, R43, R44, R45, R46, R47,
-                                 R48, R49, R50, R51, R52, R53, R54, R55, R56,
-                                 R57, R58, R59, R60, R61, R62, R63, R64, R65,
-                                 R66, R67, R68, R69, R70, R71, R72, R73, R74,
-                                 R75, R76, R77, R78, R79]>>,
-  CCIfType<[i16], CCAssignToReg<[R3,   R4,  R5,  R6,  R7,  R8,  R9, R10, R11,
-                                 R12, R13, R14, R15, R16, R17, R18, R19, R20,
-                                 R21, R22, R23, R24, R25, R26, R27, R28, R29,
-                                 R30, R31, R32, R33, R34, R35, R36, R37, R38,
-                                 R39, R40, R41, R42, R43, R44, R45, R46, R47,
-                                 R48, R49, R50, R51, R52, R53, R54, R55, R56,
-                                 R57, R58, R59, R60, R61, R62, R63, R64, R65,
-                                 R66, R67, R68, R69, R70, R71, R72, R73, R74,
-                                 R75, R76, R77, R78, R79]>>,
-  CCIfType<[i32], CCAssignToReg<[R3,   R4,  R5,  R6,  R7,  R8,  R9, R10, R11,
-                                 R12, R13, R14, R15, R16, R17, R18, R19, R20,
-                                 R21, R22, R23, R24, R25, R26, R27, R28, R29,
-                                 R30, R31, R32, R33, R34, R35, R36, R37, R38,
-                                 R39, R40, R41, R42, R43, R44, R45, R46, R47,
-                                 R48, R49, R50, R51, R52, R53, R54, R55, R56,
-                                 R57, R58, R59, R60, R61, R62, R63, R64, R65,
-                                 R66, R67, R68, R69, R70, R71, R72, R73, R74,
-                                 R75, R76, R77, R78, R79]>>,
-  CCIfType<[f32], CCAssignToReg<[R3,   R4,  R5,  R6,  R7,  R8,  R9, R10, R11,
-                                 R12, R13, R14, R15, R16, R17, R18, R19, R20,
-                                 R21, R22, R23, R24, R25, R26, R27, R28, R29,
-                                 R30, R31, R32, R33, R34, R35, R36, R37, R38,
-                                 R39, R40, R41, R42, R43, R44, R45, R46, R47,
-                                 R48, R49, R50, R51, R52, R53, R54, R55, R56,
-                                 R57, R58, R59, R60, R61, R62, R63, R64, R65,
-                                 R66, R67, R68, R69, R70, R71, R72, R73, R74,
-                                 R75, R76, R77, R78, R79]>>,
-  CCIfType<[i64], CCAssignToReg<[R3,   R4,  R5,  R6,  R7,  R8,  R9, R10, R11,
-                                 R12, R13, R14, R15, R16, R17, R18, R19, R20,
-                                 R21, R22, R23, R24, R25, R26, R27, R28, R29,
-                                 R30, R31, R32, R33, R34, R35, R36, R37, R38,
-                                 R39, R40, R41, R42, R43, R44, R45, R46, R47,
-                                 R48, R49, R50, R51, R52, R53, R54, R55, R56,
-                                 R57, R58, R59, R60, R61, R62, R63, R64, R65,
-                                 R66, R67, R68, R69, R70, R71, R72, R73, R74,
-                                 R75, R76, R77, R78, R79]>>,
-  CCIfType<[f64], CCAssignToReg<[R3,   R4,  R5,  R6,  R7,  R8,  R9, R10, R11,
-                                 R12, R13, R14, R15, R16, R17, R18, R19, R20,
-                                 R21, R22, R23, R24, R25, R26, R27, R28, R29,
-                                 R30, R31, R32, R33, R34, R35, R36, R37, R38,
-                                 R39, R40, R41, R42, R43, R44, R45, R46, R47,
-                                 R48, R49, R50, R51, R52, R53, R54, R55, R56,
-                                 R57, R58, R59, R60, R61, R62, R63, R64, R65,
-                                 R66, R67, R68, R69, R70, R71, R72, R73, R74,
-                                 R75, R76, R77, R78, R79]>>,
-  CCIfType<[v16i8, v8i16, v4i32, v4f32, v2i64, v2f64],
-                  CCAssignToReg<[R3,   R4,  R5,  R6,  R7,  R8,  R9, R10, R11,
-                                 R12, R13, R14, R15, R16, R17, R18, R19, R20,
-                                 R21, R22, R23, R24, R25, R26, R27, R28, R29,
-                                 R30, R31, R32, R33, R34, R35, R36, R37, R38,
-                                 R39, R40, R41, R42, R43, R44, R45, R46, R47,
-                                 R48, R49, R50, R51, R52, R53, R54, R55, R56,
-                                 R57, R58, R59, R60, R61, R62, R63, R64, R65,
-                                 R66, R67, R68, R69, R70, R71, R72, R73, R74,
-                                 R75, R76, R77, R78, R79]>>,
-  
-  // Integer/FP values get stored in stack slots that are 8 bytes in size and
-  // 8-byte aligned if there are no more registers to hold them.
-  CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>,
-  
-  // Vectors get 16-byte stack slots that are 16-byte aligned.
-  CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64],
-              CCAssignToStack<16, 16>>
-]>;
-*/
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUFrameInfo.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUFrameInfo.cpp
deleted file mode 100644
index 60d7ba7..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUFrameInfo.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- SPUTargetMachine.cpp - Define TargetMachine for Cell SPU ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Top-level implementation for the Cell SPU target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPU.h"
-#include "SPUFrameInfo.h"
-#include "SPURegisterNames.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// SPUFrameInfo:
-//===----------------------------------------------------------------------===//
-
-SPUFrameInfo::SPUFrameInfo(const TargetMachine &tm):
-  TargetFrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0),
-  TM(tm)
-{
-  LR[0].first = SPU::R0;
-  LR[0].second = 16;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUFrameInfo.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUFrameInfo.h
deleted file mode 100644
index e8ca333..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUFrameInfo.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//===-- SPUFrameInfo.h - Top-level interface for Cell SPU Target -*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains CellSPU frame information that doesn't fit anywhere else
-// cleanly...
-//
-//===----------------------------------------------------------------------===//
-
-#if !defined(SPUFRAMEINFO_H)
-
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "SPURegisterInfo.h"
-
-namespace llvm {
-  class SPUFrameInfo: public TargetFrameInfo {
-    const TargetMachine &TM;
-    std::pair<unsigned, int> LR[1];
-
-  public:
-    SPUFrameInfo(const TargetMachine &tm);
-
-    //! Return a function's saved spill slots
-    /*!
-      For CellSPU, a function's saved spill slots is just the link register.
-     */
-    const std::pair<unsigned, int> *
-    getCalleeSaveSpillSlots(unsigned &NumEntries) const;
-
-    //! Stack slot size (16 bytes)
-    static int stackSlotSize() {
-      return 16;
-    }
-    //! Maximum frame offset representable by a signed 10-bit integer
-    /*!
-      This is the maximum frame offset that can be expressed as a 10-bit
-      integer, used in D-form addresses.
-     */
-    static int maxFrameOffset() {
-      return ((1 << 9) - 1) * stackSlotSize();
-    }
-    //! Minimum frame offset representable by a signed 10-bit integer
-    static int minFrameOffset() {
-      return -(1 << 9) * stackSlotSize();
-    }
-    //! Minimum frame size (enough to spill LR + SP)
-    static int minStackSize() {
-      return (2 * stackSlotSize());
-    }
-    //! Frame size required to spill all registers plus frame info
-    static int fullSpillSize() {
-      return (SPURegisterInfo::getNumArgRegs() * stackSlotSize());
-    }
-    //! Convert frame index to stack offset
-    static int FItoStackOffset(int frame_index) {
-      return frame_index * stackSlotSize();
-    }
-    //! Number of instructions required to overcome hint-for-branch latency
-    /*!
-      HBR (hint-for-branch) instructions can be inserted when, for example,
-      we know that a given function is going to be called, such as printf(),
-      in the control flow graph. HBRs are only inserted if a sufficient number
-      of instructions occurs between the HBR and the target. Currently, HBRs
-      take 6 cycles, ergo, the magic number 6.
-     */
-    static int branchHintPenalty() {
-      return 6;
-    }
-  };
-}
-
-#define SPUFRAMEINFO_H 1
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUHazardRecognizers.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUHazardRecognizers.cpp
deleted file mode 100644
index 9dbab1d..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUHazardRecognizers.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//===-- SPUHazardRecognizers.cpp - Cell Hazard Recognizer Impls -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements hazard recognizers for scheduling on Cell SPU
-// processors.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "sched"
-
-#include "SPUHazardRecognizers.h"
-#include "SPU.h"
-#include "SPUInstrInfo.h"
-#include "llvm/CodeGen/ScheduleDAG.h"
-#include "llvm/CodeGen/SelectionDAGNodes.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// Cell SPU hazard recognizer
-//
-// This is the pipeline hazard recognizer for the Cell SPU processor. It does
-// very little right now.
-//===----------------------------------------------------------------------===//
-
-SPUHazardRecognizer::SPUHazardRecognizer(const TargetInstrInfo &tii) :
-  TII(tii),
-  EvenOdd(0)
-{
-}
-
-/// Return the pipeline hazard type encountered or generated by this
-/// instruction. Currently returns NoHazard.
-///
-/// \return NoHazard
-ScheduleHazardRecognizer::HazardType
-SPUHazardRecognizer::getHazardType(SUnit *SU)
-{
-  // Initial thoughts on how to do this, but this code cannot work unless the
-  // function's prolog and epilog code are also being scheduled so that we can
-  // accurately determine which pipeline is being scheduled.
-#if 0
-  const SDNode *Node = SU->getNode()->getFlaggedMachineNode();
-  ScheduleHazardRecognizer::HazardType retval = NoHazard;
-  bool mustBeOdd = false;
-
-  switch (Node->getOpcode()) {
-  case SPU::LQDv16i8:
-  case SPU::LQDv8i16:
-  case SPU::LQDv4i32:
-  case SPU::LQDv4f32:
-  case SPU::LQDv2f64:
-  case SPU::LQDr128:
-  case SPU::LQDr64:
-  case SPU::LQDr32:
-  case SPU::LQDr16:
-  case SPU::LQAv16i8:
-  case SPU::LQAv8i16:
-  case SPU::LQAv4i32:
-  case SPU::LQAv4f32:
-  case SPU::LQAv2f64:
-  case SPU::LQAr128:
-  case SPU::LQAr64:
-  case SPU::LQAr32:
-  case SPU::LQXv4i32:
-  case SPU::LQXr128:
-  case SPU::LQXr64:
-  case SPU::LQXr32:
-  case SPU::LQXr16:
-  case SPU::STQDv16i8:
-  case SPU::STQDv8i16:
-  case SPU::STQDv4i32:
-  case SPU::STQDv4f32:
-  case SPU::STQDv2f64:
-  case SPU::STQDr128:
-  case SPU::STQDr64:
-  case SPU::STQDr32:
-  case SPU::STQDr16:
-  case SPU::STQDr8:
-  case SPU::STQAv16i8:
-  case SPU::STQAv8i16:
-  case SPU::STQAv4i32:
-  case SPU::STQAv4f32:
-  case SPU::STQAv2f64:
-  case SPU::STQAr128:
-  case SPU::STQAr64:
-  case SPU::STQAr32:
-  case SPU::STQAr16:
-  case SPU::STQAr8:
-  case SPU::STQXv16i8:
-  case SPU::STQXv8i16:
-  case SPU::STQXv4i32:
-  case SPU::STQXv4f32:
-  case SPU::STQXv2f64:
-  case SPU::STQXr128:
-  case SPU::STQXr64:
-  case SPU::STQXr32:
-  case SPU::STQXr16:
-  case SPU::STQXr8:
-  case SPU::RET:
-    mustBeOdd = true;
-    break;
-  default:
-    // Assume that this instruction can be on the even pipe
-    break;
-  }
-
-  if (mustBeOdd && !EvenOdd)
-    retval = Hazard;
-
-  DEBUG(errs() << "SPUHazardRecognizer EvenOdd " << EvenOdd << " Hazard "
-               << retval << "\n");
-  EvenOdd ^= 1;
-  return retval;
-#else
-  return NoHazard;
-#endif
-}
-
-void SPUHazardRecognizer::EmitInstruction(SUnit *SU)
-{
-}
-
-void SPUHazardRecognizer::AdvanceCycle()
-{
-  DEBUG(errs() << "SPUHazardRecognizer::AdvanceCycle\n");
-}
-
-void SPUHazardRecognizer::EmitNoop()
-{
-  AdvanceCycle();
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUHazardRecognizers.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUHazardRecognizers.h
deleted file mode 100644
index d0ae2d8..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUHazardRecognizers.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- SPUHazardRecognizers.h - Cell SPU Hazard Recognizer -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines hazard recognizers for scheduling on the Cell SPU
-// processor.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPUHAZRECS_H
-#define SPUHAZRECS_H
-
-#include "llvm/CodeGen/ScheduleHazardRecognizer.h"
-
-namespace llvm {
-
-class TargetInstrInfo;
-  
-/// SPUHazardRecognizer
-class SPUHazardRecognizer : public ScheduleHazardRecognizer
-{
-private:
-  const TargetInstrInfo &TII;
-  int EvenOdd;
-
-public:
-  SPUHazardRecognizer(const TargetInstrInfo &TII);
-  virtual HazardType getHazardType(SUnit *SU);
-  virtual void EmitInstruction(SUnit *SU);
-  virtual void AdvanceCycle();
-  virtual void EmitNoop();
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp
deleted file mode 100644
index 1c5e739..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp
+++ /dev/null
@@ -1,1250 +0,0 @@
-//===-- SPUISelDAGToDAG.cpp - CellSPU pattern matching inst selector ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a pattern matching instruction selector for the Cell SPU,
-// converting from a legalized dag to a SPU-target dag.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPU.h"
-#include "SPUTargetMachine.h"
-#include "SPUISelLowering.h"
-#include "SPUHazardRecognizers.h"
-#include "SPUFrameInfo.h"
-#include "SPURegisterNames.h"
-#include "SPUTargetMachine.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Constants.h"
-#include "llvm/GlobalValue.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/MathExtras.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/raw_ostream.h"
-
-using namespace llvm;
-
-namespace {
-  //! ConstantSDNode predicate for i32 sign-extended, 10-bit immediates
-  bool
-  isI64IntS10Immediate(ConstantSDNode *CN)
-  {
-    return isS10Constant(CN->getSExtValue());
-  }
-
-  //! ConstantSDNode predicate for i32 sign-extended, 10-bit immediates
-  bool
-  isI32IntS10Immediate(ConstantSDNode *CN)
-  {
-    return isS10Constant(CN->getSExtValue());
-  }
-
-  //! ConstantSDNode predicate for i32 unsigned 10-bit immediate values
-  bool
-  isI32IntU10Immediate(ConstantSDNode *CN)
-  {
-    return isU10Constant(CN->getSExtValue());
-  }
-
-  //! ConstantSDNode predicate for i16 sign-extended, 10-bit immediate values
-  bool
-  isI16IntS10Immediate(ConstantSDNode *CN)
-  {
-    return isS10Constant(CN->getSExtValue());
-  }
-
-  //! SDNode predicate for i16 sign-extended, 10-bit immediate values
-  bool
-  isI16IntS10Immediate(SDNode *N)
-  {
-    ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N);
-    return (CN != 0 && isI16IntS10Immediate(CN));
-  }
-
-  //! ConstantSDNode predicate for i16 unsigned 10-bit immediate values
-  bool
-  isI16IntU10Immediate(ConstantSDNode *CN)
-  {
-    return isU10Constant((short) CN->getZExtValue());
-  }
-
-  //! SDNode predicate for i16 sign-extended, 10-bit immediate values
-  bool
-  isI16IntU10Immediate(SDNode *N)
-  {
-    return (N->getOpcode() == ISD::Constant
-            && isI16IntU10Immediate(cast<ConstantSDNode>(N)));
-  }
-
-  //! ConstantSDNode predicate for signed 16-bit values
-  /*!
-    \arg CN The constant SelectionDAG node holding the value
-    \arg Imm The returned 16-bit value, if returning true
-
-    This predicate tests the value in \a CN to see whether it can be
-    represented as a 16-bit, sign-extended quantity. Returns true if
-    this is the case.
-   */
-  bool
-  isIntS16Immediate(ConstantSDNode *CN, short &Imm)
-  {
-    EVT vt = CN->getValueType(0);
-    Imm = (short) CN->getZExtValue();
-    if (vt.getSimpleVT() >= MVT::i1 && vt.getSimpleVT() <= MVT::i16) {
-      return true;
-    } else if (vt == MVT::i32) {
-      int32_t i_val = (int32_t) CN->getZExtValue();
-      short s_val = (short) i_val;
-      return i_val == s_val;
-    } else {
-      int64_t i_val = (int64_t) CN->getZExtValue();
-      short s_val = (short) i_val;
-      return i_val == s_val;
-    }
-
-    return false;
-  }
-
-  //! SDNode predicate for signed 16-bit values.
-  bool
-  isIntS16Immediate(SDNode *N, short &Imm)
-  {
-    return (N->getOpcode() == ISD::Constant
-            && isIntS16Immediate(cast<ConstantSDNode>(N), Imm));
-  }
-
-  //! ConstantFPSDNode predicate for representing floats as 16-bit sign ext.
-  static bool
-  isFPS16Immediate(ConstantFPSDNode *FPN, short &Imm)
-  {
-    EVT vt = FPN->getValueType(0);
-    if (vt == MVT::f32) {
-      int val = FloatToBits(FPN->getValueAPF().convertToFloat());
-      int sval = (int) ((val << 16) >> 16);
-      Imm = (short) val;
-      return val == sval;
-    }
-
-    return false;
-  }
-
-  bool
-  isHighLow(const SDValue &Op)
-  {
-    return (Op.getOpcode() == SPUISD::IndirectAddr
-            && ((Op.getOperand(0).getOpcode() == SPUISD::Hi
-                 && Op.getOperand(1).getOpcode() == SPUISD::Lo)
-                || (Op.getOperand(0).getOpcode() == SPUISD::Lo
-                    && Op.getOperand(1).getOpcode() == SPUISD::Hi)));
-  }
-
-  //===------------------------------------------------------------------===//
-  //! EVT to "useful stuff" mapping structure:
-
-  struct valtype_map_s {
-    EVT VT;
-    unsigned ldresult_ins;      /// LDRESULT instruction (0 = undefined)
-    bool ldresult_imm;          /// LDRESULT instruction requires immediate?
-    unsigned lrinst;            /// LR instruction
-  };
-
-  const valtype_map_s valtype_map[] = {
-    { MVT::i8,    SPU::ORBIr8,  true,  SPU::LRr8 },
-    { MVT::i16,   SPU::ORHIr16, true,  SPU::LRr16 },
-    { MVT::i32,   SPU::ORIr32,  true,  SPU::LRr32 },
-    { MVT::i64,   SPU::ORr64,   false, SPU::LRr64 },
-    { MVT::f32,   SPU::ORf32,   false, SPU::LRf32 },
-    { MVT::f64,   SPU::ORf64,   false, SPU::LRf64 },
-    // vector types... (sigh!)
-    { MVT::v16i8, 0,            false, SPU::LRv16i8 },
-    { MVT::v8i16, 0,            false, SPU::LRv8i16 },
-    { MVT::v4i32, 0,            false, SPU::LRv4i32 },
-    { MVT::v2i64, 0,            false, SPU::LRv2i64 },
-    { MVT::v4f32, 0,            false, SPU::LRv4f32 },
-    { MVT::v2f64, 0,            false, SPU::LRv2f64 }
-  };
-
-  const size_t n_valtype_map = sizeof(valtype_map) / sizeof(valtype_map[0]);
-
-  const valtype_map_s *getValueTypeMapEntry(EVT VT)
-  {
-    const valtype_map_s *retval = 0;
-    for (size_t i = 0; i < n_valtype_map; ++i) {
-      if (valtype_map[i].VT == VT) {
-        retval = valtype_map + i;
-        break;
-      }
-    }
-
-
-#ifndef NDEBUG
-    if (retval == 0) {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "SPUISelDAGToDAG.cpp: getValueTypeMapEntry returns NULL for "
-           << VT.getEVTString();
-      llvm_report_error(Msg.str());
-    }
-#endif
-
-    return retval;
-  }
-
-  //! Generate the carry-generate shuffle mask.
-  SDValue getCarryGenerateShufMask(SelectionDAG &DAG, DebugLoc dl) {
-    SmallVector<SDValue, 16 > ShufBytes;
-
-    // Create the shuffle mask for "rotating" the borrow up one register slot
-    // once the borrow is generated.
-    ShufBytes.push_back(DAG.getConstant(0x04050607, MVT::i32));
-    ShufBytes.push_back(DAG.getConstant(0x80808080, MVT::i32));
-    ShufBytes.push_back(DAG.getConstant(0x0c0d0e0f, MVT::i32));
-    ShufBytes.push_back(DAG.getConstant(0x80808080, MVT::i32));
-
-    return DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                       &ShufBytes[0], ShufBytes.size());
-  }
-
-  //! Generate the borrow-generate shuffle mask
-  SDValue getBorrowGenerateShufMask(SelectionDAG &DAG, DebugLoc dl) {
-    SmallVector<SDValue, 16 > ShufBytes;
-
-    // Create the shuffle mask for "rotating" the borrow up one register slot
-    // once the borrow is generated.
-    ShufBytes.push_back(DAG.getConstant(0x04050607, MVT::i32));
-    ShufBytes.push_back(DAG.getConstant(0xc0c0c0c0, MVT::i32));
-    ShufBytes.push_back(DAG.getConstant(0x0c0d0e0f, MVT::i32));
-    ShufBytes.push_back(DAG.getConstant(0xc0c0c0c0, MVT::i32));
-
-    return DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                       &ShufBytes[0], ShufBytes.size());
-  }
-
-  //===------------------------------------------------------------------===//
-  /// SPUDAGToDAGISel - Cell SPU-specific code to select SPU machine
-  /// instructions for SelectionDAG operations.
-  ///
-  class SPUDAGToDAGISel :
-    public SelectionDAGISel
-  {
-    SPUTargetMachine &TM;
-    SPUTargetLowering &SPUtli;
-    unsigned GlobalBaseReg;
-
-  public:
-    explicit SPUDAGToDAGISel(SPUTargetMachine &tm) :
-      SelectionDAGISel(tm),
-      TM(tm),
-      SPUtli(*tm.getTargetLowering())
-    { }
-
-    virtual bool runOnMachineFunction(MachineFunction &MF) {
-      // Make sure we re-emit a set of the global base reg if necessary
-      GlobalBaseReg = 0;
-      SelectionDAGISel::runOnMachineFunction(MF);
-      return true;
-    }
-
-    /// getI32Imm - Return a target constant with the specified value, of type
-    /// i32.
-    inline SDValue getI32Imm(uint32_t Imm) {
-      return CurDAG->getTargetConstant(Imm, MVT::i32);
-    }
-
-    /// getI64Imm - Return a target constant with the specified value, of type
-    /// i64.
-    inline SDValue getI64Imm(uint64_t Imm) {
-      return CurDAG->getTargetConstant(Imm, MVT::i64);
-    }
-
-    /// getSmallIPtrImm - Return a target constant of pointer type.
-    inline SDValue getSmallIPtrImm(unsigned Imm) {
-      return CurDAG->getTargetConstant(Imm, SPUtli.getPointerTy());
-      }
-
-    SDNode *emitBuildVector(SDValue build_vec) {
-      EVT vecVT = build_vec.getValueType();
-      EVT eltVT = vecVT.getVectorElementType();
-      SDNode *bvNode = build_vec.getNode();
-      DebugLoc dl = bvNode->getDebugLoc();
-
-      // Check to see if this vector can be represented as a CellSPU immediate
-      // constant by invoking all of the instruction selection predicates:
-      if (((vecVT == MVT::v8i16) &&
-           (SPU::get_vec_i16imm(bvNode, *CurDAG, MVT::i16).getNode() != 0)) ||
-          ((vecVT == MVT::v4i32) &&
-           ((SPU::get_vec_i16imm(bvNode, *CurDAG, MVT::i32).getNode() != 0) ||
-            (SPU::get_ILHUvec_imm(bvNode, *CurDAG, MVT::i32).getNode() != 0) ||
-            (SPU::get_vec_u18imm(bvNode, *CurDAG, MVT::i32).getNode() != 0) ||
-            (SPU::get_v4i32_imm(bvNode, *CurDAG).getNode() != 0))) ||
-          ((vecVT == MVT::v2i64) &&
-           ((SPU::get_vec_i16imm(bvNode, *CurDAG, MVT::i64).getNode() != 0) ||
-            (SPU::get_ILHUvec_imm(bvNode, *CurDAG, MVT::i64).getNode() != 0) ||
-            (SPU::get_vec_u18imm(bvNode, *CurDAG, MVT::i64).getNode() != 0))))
-        return Select(build_vec);
-
-      // No, need to emit a constant pool spill:
-      std::vector<Constant*> CV;
-
-      for (size_t i = 0; i < build_vec.getNumOperands(); ++i) {
-        ConstantSDNode *V = dyn_cast<ConstantSDNode > (build_vec.getOperand(i));
-        CV.push_back(const_cast<ConstantInt *> (V->getConstantIntValue()));
-      }
-
-      Constant *CP = ConstantVector::get(CV);
-      SDValue CPIdx = CurDAG->getConstantPool(CP, SPUtli.getPointerTy());
-      unsigned Alignment = cast<ConstantPoolSDNode>(CPIdx)->getAlignment();
-      SDValue CGPoolOffset =
-              SPU::LowerConstantPool(CPIdx, *CurDAG,
-                                     SPUtli.getSPUTargetMachine());
-      return SelectCode(CurDAG->getLoad(build_vec.getValueType(), dl,
-                                        CurDAG->getEntryNode(), CGPoolOffset,
-                                        PseudoSourceValue::getConstantPool(), 0,
-                                        false, Alignment));
-    }
-
-    /// Select - Convert the specified operand from a target-independent to a
-    /// target-specific node if it hasn't already been changed.
-    SDNode *Select(SDValue Op);
-
-    //! Emit the instruction sequence for i64 shl
-    SDNode *SelectSHLi64(SDValue &Op, EVT OpVT);
-
-    //! Emit the instruction sequence for i64 srl
-    SDNode *SelectSRLi64(SDValue &Op, EVT OpVT);
-
-    //! Emit the instruction sequence for i64 sra
-    SDNode *SelectSRAi64(SDValue &Op, EVT OpVT);
-
-    //! Emit the necessary sequence for loading i64 constants:
-    SDNode *SelectI64Constant(SDValue &Op, EVT OpVT, DebugLoc dl);
-
-    //! Alternate instruction emit sequence for loading i64 constants
-    SDNode *SelectI64Constant(uint64_t i64const, EVT OpVT, DebugLoc dl);
-
-    //! Returns true if the address N is an A-form (local store) address
-    bool SelectAFormAddr(SDValue Op, SDValue N, SDValue &Base,
-                         SDValue &Index);
-
-    //! D-form address predicate
-    bool SelectDFormAddr(SDValue Op, SDValue N, SDValue &Base,
-                         SDValue &Index);
-
-    /// Alternate D-form address using i7 offset predicate
-    bool SelectDForm2Addr(SDValue Op, SDValue N, SDValue &Disp,
-                          SDValue &Base);
-
-    /// D-form address selection workhorse
-    bool DFormAddressPredicate(SDValue Op, SDValue N, SDValue &Disp,
-                               SDValue &Base, int minOffset, int maxOffset);
-
-    //! Address predicate if N can be expressed as an indexed [r+r] operation.
-    bool SelectXFormAddr(SDValue Op, SDValue N, SDValue &Base,
-                         SDValue &Index);
-
-    /// SelectInlineAsmMemoryOperand - Implement addressing mode selection for
-    /// inline asm expressions.
-    virtual bool SelectInlineAsmMemoryOperand(const SDValue &Op,
-                                              char ConstraintCode,
-                                              std::vector<SDValue> &OutOps) {
-      SDValue Op0, Op1;
-      switch (ConstraintCode) {
-      default: return true;
-      case 'm':   // memory
-        if (!SelectDFormAddr(Op, Op, Op0, Op1)
-            && !SelectAFormAddr(Op, Op, Op0, Op1))
-          SelectXFormAddr(Op, Op, Op0, Op1);
-        break;
-      case 'o':   // offsetable
-        if (!SelectDFormAddr(Op, Op, Op0, Op1)
-            && !SelectAFormAddr(Op, Op, Op0, Op1)) {
-          Op0 = Op;
-          Op1 = getSmallIPtrImm(0);
-        }
-        break;
-      case 'v':   // not offsetable
-#if 1
-        llvm_unreachable("InlineAsmMemoryOperand 'v' constraint not handled.");
-#else
-        SelectAddrIdxOnly(Op, Op, Op0, Op1);
-#endif
-        break;
-      }
-
-      OutOps.push_back(Op0);
-      OutOps.push_back(Op1);
-      return false;
-    }
-
-    /// InstructionSelect - This callback is invoked by
-    /// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-    virtual void InstructionSelect();
-
-    virtual const char *getPassName() const {
-      return "Cell SPU DAG->DAG Pattern Instruction Selection";
-    }
-
-    /// CreateTargetHazardRecognizer - Return the hazard recognizer to use for
-    /// this target when scheduling the DAG.
-    virtual ScheduleHazardRecognizer *CreateTargetHazardRecognizer() {
-      const TargetInstrInfo *II = TM.getInstrInfo();
-      assert(II && "No InstrInfo?");
-      return new SPUHazardRecognizer(*II);
-    }
-
-    // Include the pieces autogenerated from the target description.
-#include "SPUGenDAGISel.inc"
-  };
-}
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void
-SPUDAGToDAGISel::InstructionSelect()
-{
-  DEBUG(BB->dump());
-
-  // Select target instructions for the DAG.
-  SelectRoot(*CurDAG);
-  CurDAG->RemoveDeadNodes();
-}
-
-/*!
- \arg Op The ISD instruction operand
- \arg N The address to be tested
- \arg Base The base address
- \arg Index The base address index
- */
-bool
-SPUDAGToDAGISel::SelectAFormAddr(SDValue Op, SDValue N, SDValue &Base,
-                    SDValue &Index) {
-  // These match the addr256k operand type:
-  EVT OffsVT = MVT::i16;
-  SDValue Zero = CurDAG->getTargetConstant(0, OffsVT);
-
-  switch (N.getOpcode()) {
-  case ISD::Constant:
-  case ISD::ConstantPool:
-  case ISD::GlobalAddress:
-    llvm_report_error("SPU SelectAFormAddr: Constant/Pool/Global not lowered.");
-    /*NOTREACHED*/
-
-  case ISD::TargetConstant:
-  case ISD::TargetGlobalAddress:
-  case ISD::TargetJumpTable:
-    llvm_report_error("SPUSelectAFormAddr: Target Constant/Pool/Global "
-                      "not wrapped as A-form address.");
-    /*NOTREACHED*/
-
-  case SPUISD::AFormAddr:
-    // Just load from memory if there's only a single use of the location,
-    // otherwise, this will get handled below with D-form offset addresses
-    if (N.hasOneUse()) {
-      SDValue Op0 = N.getOperand(0);
-      switch (Op0.getOpcode()) {
-      case ISD::TargetConstantPool:
-      case ISD::TargetJumpTable:
-        Base = Op0;
-        Index = Zero;
-        return true;
-
-      case ISD::TargetGlobalAddress: {
-        GlobalAddressSDNode *GSDN = cast<GlobalAddressSDNode>(Op0);
-        GlobalValue *GV = GSDN->getGlobal();
-        if (GV->getAlignment() == 16) {
-          Base = Op0;
-          Index = Zero;
-          return true;
-        }
-        break;
-      }
-      }
-    }
-    break;
-  }
-  return false;
-}
-
-bool
-SPUDAGToDAGISel::SelectDForm2Addr(SDValue Op, SDValue N, SDValue &Disp,
-                                  SDValue &Base) {
-  const int minDForm2Offset = -(1 << 7);
-  const int maxDForm2Offset = (1 << 7) - 1;
-  return DFormAddressPredicate(Op, N, Disp, Base, minDForm2Offset,
-                               maxDForm2Offset);
-}
-
-/*!
-  \arg Op The ISD instruction (ignored)
-  \arg N The address to be tested
-  \arg Base Base address register/pointer
-  \arg Index Base address index
-
-  Examine the input address by a base register plus a signed 10-bit
-  displacement, [r+I10] (D-form address).
-
-  \return true if \a N is a D-form address with \a Base and \a Index set
-  to non-empty SDValue instances.
-*/
-bool
-SPUDAGToDAGISel::SelectDFormAddr(SDValue Op, SDValue N, SDValue &Base,
-                                 SDValue &Index) {
-  return DFormAddressPredicate(Op, N, Base, Index,
-                               SPUFrameInfo::minFrameOffset(),
-                               SPUFrameInfo::maxFrameOffset());
-}
-
-bool
-SPUDAGToDAGISel::DFormAddressPredicate(SDValue Op, SDValue N, SDValue &Base,
-                                      SDValue &Index, int minOffset,
-                                      int maxOffset) {
-  unsigned Opc = N.getOpcode();
-  EVT PtrTy = SPUtli.getPointerTy();
-
-  if (Opc == ISD::FrameIndex) {
-    // Stack frame index must be less than 512 (divided by 16):
-    FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(N);
-    int FI = int(FIN->getIndex());
-    DEBUG(errs() << "SelectDFormAddr: ISD::FrameIndex = "
-               << FI << "\n");
-    if (SPUFrameInfo::FItoStackOffset(FI) < maxOffset) {
-      Base = CurDAG->getTargetConstant(0, PtrTy);
-      Index = CurDAG->getTargetFrameIndex(FI, PtrTy);
-      return true;
-    }
-  } else if (Opc == ISD::ADD) {
-    // Generated by getelementptr
-    const SDValue Op0 = N.getOperand(0);
-    const SDValue Op1 = N.getOperand(1);
-
-    if ((Op0.getOpcode() == SPUISD::Hi && Op1.getOpcode() == SPUISD::Lo)
-        || (Op1.getOpcode() == SPUISD::Hi && Op0.getOpcode() == SPUISD::Lo)) {
-      Base = CurDAG->getTargetConstant(0, PtrTy);
-      Index = N;
-      return true;
-    } else if (Op1.getOpcode() == ISD::Constant
-               || Op1.getOpcode() == ISD::TargetConstant) {
-      ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Op1);
-      int32_t offset = int32_t(CN->getSExtValue());
-
-      if (Op0.getOpcode() == ISD::FrameIndex) {
-        FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(Op0);
-        int FI = int(FIN->getIndex());
-        DEBUG(errs() << "SelectDFormAddr: ISD::ADD offset = " << offset
-                   << " frame index = " << FI << "\n");
-
-        if (SPUFrameInfo::FItoStackOffset(FI) < maxOffset) {
-          Base = CurDAG->getTargetConstant(offset, PtrTy);
-          Index = CurDAG->getTargetFrameIndex(FI, PtrTy);
-          return true;
-        }
-      } else if (offset > minOffset && offset < maxOffset) {
-        Base = CurDAG->getTargetConstant(offset, PtrTy);
-        Index = Op0;
-        return true;
-      }
-    } else if (Op0.getOpcode() == ISD::Constant
-               || Op0.getOpcode() == ISD::TargetConstant) {
-      ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Op0);
-      int32_t offset = int32_t(CN->getSExtValue());
-
-      if (Op1.getOpcode() == ISD::FrameIndex) {
-        FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(Op1);
-        int FI = int(FIN->getIndex());
-        DEBUG(errs() << "SelectDFormAddr: ISD::ADD offset = " << offset
-                   << " frame index = " << FI << "\n");
-
-        if (SPUFrameInfo::FItoStackOffset(FI) < maxOffset) {
-          Base = CurDAG->getTargetConstant(offset, PtrTy);
-          Index = CurDAG->getTargetFrameIndex(FI, PtrTy);
-          return true;
-        }
-      } else if (offset > minOffset && offset < maxOffset) {
-        Base = CurDAG->getTargetConstant(offset, PtrTy);
-        Index = Op1;
-        return true;
-      }
-    }
-  } else if (Opc == SPUISD::IndirectAddr) {
-    // Indirect with constant offset -> D-Form address
-    const SDValue Op0 = N.getOperand(0);
-    const SDValue Op1 = N.getOperand(1);
-
-    if (Op0.getOpcode() == SPUISD::Hi
-        && Op1.getOpcode() == SPUISD::Lo) {
-      // (SPUindirect (SPUhi <arg>, 0), (SPUlo <arg>, 0))
-      Base = CurDAG->getTargetConstant(0, PtrTy);
-      Index = N;
-      return true;
-    } else if (isa<ConstantSDNode>(Op0) || isa<ConstantSDNode>(Op1)) {
-      int32_t offset = 0;
-      SDValue idxOp;
-
-      if (isa<ConstantSDNode>(Op1)) {
-        ConstantSDNode *CN = cast<ConstantSDNode>(Op1);
-        offset = int32_t(CN->getSExtValue());
-        idxOp = Op0;
-      } else if (isa<ConstantSDNode>(Op0)) {
-        ConstantSDNode *CN = cast<ConstantSDNode>(Op0);
-        offset = int32_t(CN->getSExtValue());
-        idxOp = Op1;
-      }
-
-      if (offset >= minOffset && offset <= maxOffset) {
-        Base = CurDAG->getTargetConstant(offset, PtrTy);
-        Index = idxOp;
-        return true;
-      }
-    }
-  } else if (Opc == SPUISD::AFormAddr) {
-    Base = CurDAG->getTargetConstant(0, N.getValueType());
-    Index = N;
-    return true;
-  } else if (Opc == SPUISD::LDRESULT) {
-    Base = CurDAG->getTargetConstant(0, N.getValueType());
-    Index = N;
-    return true;
-  } else if (Opc == ISD::Register || Opc == ISD::CopyFromReg) {
-    unsigned OpOpc = Op.getOpcode();
-
-    if (OpOpc == ISD::STORE || OpOpc == ISD::LOAD) {
-      // Direct load/store without getelementptr
-      SDValue Addr, Offs;
-
-      // Get the register from CopyFromReg
-      if (Opc == ISD::CopyFromReg)
-        Addr = N.getOperand(1);
-      else
-        Addr = N;                       // Register
-
-      Offs = ((OpOpc == ISD::STORE) ? Op.getOperand(3) : Op.getOperand(2));
-
-      if (Offs.getOpcode() == ISD::Constant || Offs.getOpcode() == ISD::UNDEF) {
-        if (Offs.getOpcode() == ISD::UNDEF)
-          Offs = CurDAG->getTargetConstant(0, Offs.getValueType());
-
-        Base = Offs;
-        Index = Addr;
-        return true;
-      }
-    } else {
-      /* If otherwise unadorned, default to D-form address with 0 offset: */
-      if (Opc == ISD::CopyFromReg) {
-        Index = N.getOperand(1);
-      } else {
-        Index = N;
-      }
-
-      Base = CurDAG->getTargetConstant(0, Index.getValueType());
-      return true;
-    }
-  }
-
-  return false;
-}
-
-/*!
-  \arg Op The ISD instruction operand
-  \arg N The address operand
-  \arg Base The base pointer operand
-  \arg Index The offset/index operand
-
-  If the address \a N can be expressed as an A-form or D-form address, returns
-  false.  Otherwise, creates two operands, Base and Index that will become the
-  (r)(r) X-form address.
-*/
-bool
-SPUDAGToDAGISel::SelectXFormAddr(SDValue Op, SDValue N, SDValue &Base,
-                                 SDValue &Index) {
-  if (!SelectAFormAddr(Op, N, Base, Index)
-      && !SelectDFormAddr(Op, N, Base, Index)) {
-    // If the address is neither A-form or D-form, punt and use an X-form
-    // address:
-    Base = N.getOperand(1);
-    Index = N.getOperand(0);
-    return true;
-  }
-
-  return false;
-}
-
-//! Convert the operand from a target-independent to a target-specific node
-/*!
- */
-SDNode *
-SPUDAGToDAGISel::Select(SDValue Op) {
-  SDNode *N = Op.getNode();
-  unsigned Opc = N->getOpcode();
-  int n_ops = -1;
-  unsigned NewOpc;
-  EVT OpVT = Op.getValueType();
-  SDValue Ops[8];
-  DebugLoc dl = N->getDebugLoc();
-
-  if (N->isMachineOpcode()) {
-    return NULL;   // Already selected.
-  }
-
-  if (Opc == ISD::FrameIndex) {
-    int FI = cast<FrameIndexSDNode>(N)->getIndex();
-    SDValue TFI = CurDAG->getTargetFrameIndex(FI, Op.getValueType());
-    SDValue Imm0 = CurDAG->getTargetConstant(0, Op.getValueType());
-
-    if (FI < 128) {
-      NewOpc = SPU::AIr32;
-      Ops[0] = TFI;
-      Ops[1] = Imm0;
-      n_ops = 2;
-    } else {
-      NewOpc = SPU::Ar32;
-      Ops[0] = CurDAG->getRegister(SPU::R1, Op.getValueType());
-      Ops[1] = SDValue(CurDAG->getTargetNode(SPU::ILAr32, dl, Op.getValueType(),
-                                             TFI, Imm0), 0);
-      n_ops = 2;
-    }
-  } else if (Opc == ISD::Constant && OpVT == MVT::i64) {
-    // Catch the i64 constants that end up here. Note: The backend doesn't
-    // attempt to legalize the constant (it's useless because DAGCombiner
-    // will insert 64-bit constants and we can't stop it).
-    return SelectI64Constant(Op, OpVT, Op.getDebugLoc());
-  } else if ((Opc == ISD::ZERO_EXTEND || Opc == ISD::ANY_EXTEND)
-             && OpVT == MVT::i64) {
-    SDValue Op0 = Op.getOperand(0);
-    EVT Op0VT = Op0.getValueType();
-    EVT Op0VecVT = EVT::getVectorVT(*CurDAG->getContext(),
-                                    Op0VT, (128 / Op0VT.getSizeInBits()));
-    EVT OpVecVT = EVT::getVectorVT(*CurDAG->getContext(), 
-                                   OpVT, (128 / OpVT.getSizeInBits()));
-    SDValue shufMask;
-
-    switch (Op0VT.getSimpleVT().SimpleTy) {
-    default:
-      llvm_report_error("CellSPU Select: Unhandled zero/any extend EVT");
-      /*NOTREACHED*/
-    case MVT::i32:
-      shufMask = CurDAG->getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                 CurDAG->getConstant(0x80808080, MVT::i32),
-                                 CurDAG->getConstant(0x00010203, MVT::i32),
-                                 CurDAG->getConstant(0x80808080, MVT::i32),
-                                 CurDAG->getConstant(0x08090a0b, MVT::i32));
-      break;
-
-    case MVT::i16:
-      shufMask = CurDAG->getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                 CurDAG->getConstant(0x80808080, MVT::i32),
-                                 CurDAG->getConstant(0x80800203, MVT::i32),
-                                 CurDAG->getConstant(0x80808080, MVT::i32),
-                                 CurDAG->getConstant(0x80800a0b, MVT::i32));
-      break;
-
-    case MVT::i8:
-      shufMask = CurDAG->getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                 CurDAG->getConstant(0x80808080, MVT::i32),
-                                 CurDAG->getConstant(0x80808003, MVT::i32),
-                                 CurDAG->getConstant(0x80808080, MVT::i32),
-                                 CurDAG->getConstant(0x8080800b, MVT::i32));
-      break;
-    }
-
-    SDNode *shufMaskLoad = emitBuildVector(shufMask);
-    SDNode *PromoteScalar =
-            SelectCode(CurDAG->getNode(SPUISD::PREFSLOT2VEC, dl, Op0VecVT, Op0));
-
-    SDValue zextShuffle =
-            CurDAG->getNode(SPUISD::SHUFB, dl, OpVecVT,
-                            SDValue(PromoteScalar, 0),
-                            SDValue(PromoteScalar, 0),
-                            SDValue(shufMaskLoad, 0));
-
-    // N.B.: BIT_CONVERT replaces and updates the zextShuffle node, so we
-    // re-use it in the VEC2PREFSLOT selection without needing to explicitly
-    // call SelectCode (it's already done for us.)
-    SelectCode(CurDAG->getNode(ISD::BIT_CONVERT, dl, OpVecVT, zextShuffle));
-    return SelectCode(CurDAG->getNode(SPUISD::VEC2PREFSLOT, dl, OpVT,
-                                      zextShuffle));
-  } else if (Opc == ISD::ADD && (OpVT == MVT::i64 || OpVT == MVT::v2i64)) {
-    SDNode *CGLoad =
-            emitBuildVector(getCarryGenerateShufMask(*CurDAG, dl));
-
-    return SelectCode(CurDAG->getNode(SPUISD::ADD64_MARKER, dl, OpVT,
-                                      Op.getOperand(0), Op.getOperand(1),
-                                      SDValue(CGLoad, 0)));
-  } else if (Opc == ISD::SUB && (OpVT == MVT::i64 || OpVT == MVT::v2i64)) {
-    SDNode *CGLoad =
-            emitBuildVector(getBorrowGenerateShufMask(*CurDAG, dl));
-
-    return SelectCode(CurDAG->getNode(SPUISD::SUB64_MARKER, dl, OpVT,
-                                      Op.getOperand(0), Op.getOperand(1),
-                                      SDValue(CGLoad, 0)));
-  } else if (Opc == ISD::MUL && (OpVT == MVT::i64 || OpVT == MVT::v2i64)) {
-    SDNode *CGLoad =
-            emitBuildVector(getCarryGenerateShufMask(*CurDAG, dl));
-
-    return SelectCode(CurDAG->getNode(SPUISD::MUL64_MARKER, dl, OpVT,
-                                      Op.getOperand(0), Op.getOperand(1),
-                                      SDValue(CGLoad, 0)));
-  } else if (Opc == ISD::TRUNCATE) {
-    SDValue Op0 = Op.getOperand(0);
-    if ((Op0.getOpcode() == ISD::SRA || Op0.getOpcode() == ISD::SRL)
-        && OpVT == MVT::i32
-        && Op0.getValueType() == MVT::i64) {
-      // Catch (truncate:i32 ([sra|srl]:i64 arg, c), where c >= 32
-      //
-      // Take advantage of the fact that the upper 32 bits are in the
-      // i32 preferred slot and avoid shuffle gymnastics:
-      ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Op0.getOperand(1));
-      if (CN != 0) {
-        unsigned shift_amt = unsigned(CN->getZExtValue());
-
-        if (shift_amt >= 32) {
-          SDNode *hi32 =
-                  CurDAG->getTargetNode(SPU::ORr32_r64, dl, OpVT,
-                                        Op0.getOperand(0));
-
-          shift_amt -= 32;
-          if (shift_amt > 0) {
-            // Take care of the additional shift, if present:
-            SDValue shift = CurDAG->getTargetConstant(shift_amt, MVT::i32);
-            unsigned Opc = SPU::ROTMAIr32_i32;
-
-            if (Op0.getOpcode() == ISD::SRL)
-              Opc = SPU::ROTMr32;
-
-            hi32 = CurDAG->getTargetNode(Opc, dl, OpVT, SDValue(hi32, 0),
-                                         shift);
-          }
-
-          return hi32;
-        }
-      }
-    }
-  } else if (Opc == ISD::SHL) {
-    if (OpVT == MVT::i64) {
-      return SelectSHLi64(Op, OpVT);
-    }
-  } else if (Opc == ISD::SRL) {
-    if (OpVT == MVT::i64) {
-      return SelectSRLi64(Op, OpVT);
-    }
-  } else if (Opc == ISD::SRA) {
-    if (OpVT == MVT::i64) {
-      return SelectSRAi64(Op, OpVT);
-    }
-  } else if (Opc == ISD::FNEG
-             && (OpVT == MVT::f64 || OpVT == MVT::v2f64)) {
-    DebugLoc dl = Op.getDebugLoc();
-    // Check if the pattern is a special form of DFNMS:
-    // (fneg (fsub (fmul R64FP:$rA, R64FP:$rB), R64FP:$rC))
-    SDValue Op0 = Op.getOperand(0);
-    if (Op0.getOpcode() == ISD::FSUB) {
-      SDValue Op00 = Op0.getOperand(0);
-      if (Op00.getOpcode() == ISD::FMUL) {
-        unsigned Opc = SPU::DFNMSf64;
-        if (OpVT == MVT::v2f64)
-          Opc = SPU::DFNMSv2f64;
-
-        return CurDAG->getTargetNode(Opc, dl, OpVT,
-                                     Op00.getOperand(0),
-                                     Op00.getOperand(1),
-                                     Op0.getOperand(1));
-      }
-    }
-
-    SDValue negConst = CurDAG->getConstant(0x8000000000000000ULL, MVT::i64);
-    SDNode *signMask = 0;
-    unsigned Opc = SPU::XORfneg64;
-
-    if (OpVT == MVT::f64) {
-      signMask = SelectI64Constant(negConst, MVT::i64, dl);
-    } else if (OpVT == MVT::v2f64) {
-      Opc = SPU::XORfnegvec;
-      signMask = emitBuildVector(CurDAG->getNode(ISD::BUILD_VECTOR, dl,
-                                                 MVT::v2i64,
-                                                 negConst, negConst));
-    }
-
-    return CurDAG->getTargetNode(Opc, dl, OpVT,
-                                 Op.getOperand(0), SDValue(signMask, 0));
-  } else if (Opc == ISD::FABS) {
-    if (OpVT == MVT::f64) {
-      SDNode *signMask = SelectI64Constant(0x7fffffffffffffffULL, MVT::i64, dl);
-      return CurDAG->getTargetNode(SPU::ANDfabs64, dl, OpVT,
-                                   Op.getOperand(0), SDValue(signMask, 0));
-    } else if (OpVT == MVT::v2f64) {
-      SDValue absConst = CurDAG->getConstant(0x7fffffffffffffffULL, MVT::i64);
-      SDValue absVec = CurDAG->getNode(ISD::BUILD_VECTOR, dl, MVT::v2i64,
-                                       absConst, absConst);
-      SDNode *signMask = emitBuildVector(absVec);
-      return CurDAG->getTargetNode(SPU::ANDfabsvec, dl, OpVT,
-                                   Op.getOperand(0), SDValue(signMask, 0));
-    }
-  } else if (Opc == SPUISD::LDRESULT) {
-    // Custom select instructions for LDRESULT
-    EVT VT = N->getValueType(0);
-    SDValue Arg = N->getOperand(0);
-    SDValue Chain = N->getOperand(1);
-    SDNode *Result;
-    const valtype_map_s *vtm = getValueTypeMapEntry(VT);
-
-    if (vtm->ldresult_ins == 0) {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "LDRESULT for unsupported type: "
-           << VT.getEVTString();
-      llvm_report_error(Msg.str());
-    }
-
-    Opc = vtm->ldresult_ins;
-    if (vtm->ldresult_imm) {
-      SDValue Zero = CurDAG->getTargetConstant(0, VT);
-
-      Result = CurDAG->getTargetNode(Opc, dl, VT, MVT::Other, Arg, Zero, Chain);
-    } else {
-      Result = CurDAG->getTargetNode(Opc, dl, VT, MVT::Other, Arg, Arg, Chain);
-    }
-
-    return Result;
-  } else if (Opc == SPUISD::IndirectAddr) {
-    // Look at the operands: SelectCode() will catch the cases that aren't
-    // specifically handled here.
-    //
-    // SPUInstrInfo catches the following patterns:
-    // (SPUindirect (SPUhi ...), (SPUlo ...))
-    // (SPUindirect $sp, imm)
-    EVT VT = Op.getValueType();
-    SDValue Op0 = N->getOperand(0);
-    SDValue Op1 = N->getOperand(1);
-    RegisterSDNode *RN;
-
-    if ((Op0.getOpcode() != SPUISD::Hi && Op1.getOpcode() != SPUISD::Lo)
-        || (Op0.getOpcode() == ISD::Register
-            && ((RN = dyn_cast<RegisterSDNode>(Op0.getNode())) != 0
-                && RN->getReg() != SPU::R1))) {
-      NewOpc = SPU::Ar32;
-      if (Op1.getOpcode() == ISD::Constant) {
-        ConstantSDNode *CN = cast<ConstantSDNode>(Op1);
-        Op1 = CurDAG->getTargetConstant(CN->getSExtValue(), VT);
-        NewOpc = (isI32IntS10Immediate(CN) ? SPU::AIr32 : SPU::Ar32);
-      }
-      Ops[0] = Op0;
-      Ops[1] = Op1;
-      n_ops = 2;
-    }
-  }
-
-  if (n_ops > 0) {
-    if (N->hasOneUse())
-      return CurDAG->SelectNodeTo(N, NewOpc, OpVT, Ops, n_ops);
-    else
-      return CurDAG->getTargetNode(NewOpc, dl, OpVT, Ops, n_ops);
-  } else
-    return SelectCode(Op);
-}
-
-/*!
- * Emit the instruction sequence for i64 left shifts. The basic algorithm
- * is to fill the bottom two word slots with zeros so that zeros are shifted
- * in as the entire quadword is shifted left.
- *
- * \note This code could also be used to implement v2i64 shl.
- *
- * @param Op The shl operand
- * @param OpVT Op's machine value value type (doesn't need to be passed, but
- * makes life easier.)
- * @return The SDNode with the entire instruction sequence
- */
-SDNode *
-SPUDAGToDAGISel::SelectSHLi64(SDValue &Op, EVT OpVT) {
-  SDValue Op0 = Op.getOperand(0);
-  EVT VecVT = EVT::getVectorVT(*CurDAG->getContext(), 
-                               OpVT, (128 / OpVT.getSizeInBits()));
-  SDValue ShiftAmt = Op.getOperand(1);
-  EVT ShiftAmtVT = ShiftAmt.getValueType();
-  SDNode *VecOp0, *SelMask, *ZeroFill, *Shift = 0;
-  SDValue SelMaskVal;
-  DebugLoc dl = Op.getDebugLoc();
-
-  VecOp0 = CurDAG->getTargetNode(SPU::ORv2i64_i64, dl, VecVT, Op0);
-  SelMaskVal = CurDAG->getTargetConstant(0xff00ULL, MVT::i16);
-  SelMask = CurDAG->getTargetNode(SPU::FSMBIv2i64, dl, VecVT, SelMaskVal);
-  ZeroFill = CurDAG->getTargetNode(SPU::ILv2i64, dl, VecVT,
-                                   CurDAG->getTargetConstant(0, OpVT));
-  VecOp0 = CurDAG->getTargetNode(SPU::SELBv2i64, dl, VecVT,
-                                 SDValue(ZeroFill, 0),
-                                 SDValue(VecOp0, 0),
-                                 SDValue(SelMask, 0));
-
-  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(ShiftAmt)) {
-    unsigned bytes = unsigned(CN->getZExtValue()) >> 3;
-    unsigned bits = unsigned(CN->getZExtValue()) & 7;
-
-    if (bytes > 0) {
-      Shift =
-        CurDAG->getTargetNode(SPU::SHLQBYIv2i64, dl, VecVT,
-                              SDValue(VecOp0, 0),
-                              CurDAG->getTargetConstant(bytes, ShiftAmtVT));
-    }
-
-    if (bits > 0) {
-      Shift =
-        CurDAG->getTargetNode(SPU::SHLQBIIv2i64, dl, VecVT,
-                              SDValue((Shift != 0 ? Shift : VecOp0), 0),
-                              CurDAG->getTargetConstant(bits, ShiftAmtVT));
-    }
-  } else {
-    SDNode *Bytes =
-      CurDAG->getTargetNode(SPU::ROTMIr32, dl, ShiftAmtVT,
-                            ShiftAmt,
-                            CurDAG->getTargetConstant(3, ShiftAmtVT));
-    SDNode *Bits =
-      CurDAG->getTargetNode(SPU::ANDIr32, dl, ShiftAmtVT,
-                            ShiftAmt,
-                            CurDAG->getTargetConstant(7, ShiftAmtVT));
-    Shift =
-      CurDAG->getTargetNode(SPU::SHLQBYv2i64, dl, VecVT,
-                            SDValue(VecOp0, 0), SDValue(Bytes, 0));
-    Shift =
-      CurDAG->getTargetNode(SPU::SHLQBIv2i64, dl, VecVT,
-                            SDValue(Shift, 0), SDValue(Bits, 0));
-  }
-
-  return CurDAG->getTargetNode(SPU::ORi64_v2i64, dl, OpVT, SDValue(Shift, 0));
-}
-
-/*!
- * Emit the instruction sequence for i64 logical right shifts.
- *
- * @param Op The shl operand
- * @param OpVT Op's machine value value type (doesn't need to be passed, but
- * makes life easier.)
- * @return The SDNode with the entire instruction sequence
- */
-SDNode *
-SPUDAGToDAGISel::SelectSRLi64(SDValue &Op, EVT OpVT) {
-  SDValue Op0 = Op.getOperand(0);
-  EVT VecVT = EVT::getVectorVT(*CurDAG->getContext(),
-                               OpVT, (128 / OpVT.getSizeInBits()));
-  SDValue ShiftAmt = Op.getOperand(1);
-  EVT ShiftAmtVT = ShiftAmt.getValueType();
-  SDNode *VecOp0, *Shift = 0;
-  DebugLoc dl = Op.getDebugLoc();
-
-  VecOp0 = CurDAG->getTargetNode(SPU::ORv2i64_i64, dl, VecVT, Op0);
-
-  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(ShiftAmt)) {
-    unsigned bytes = unsigned(CN->getZExtValue()) >> 3;
-    unsigned bits = unsigned(CN->getZExtValue()) & 7;
-
-    if (bytes > 0) {
-      Shift =
-        CurDAG->getTargetNode(SPU::ROTQMBYIv2i64, dl, VecVT,
-                              SDValue(VecOp0, 0),
-                              CurDAG->getTargetConstant(bytes, ShiftAmtVT));
-    }
-
-    if (bits > 0) {
-      Shift =
-        CurDAG->getTargetNode(SPU::ROTQMBIIv2i64, dl, VecVT,
-                              SDValue((Shift != 0 ? Shift : VecOp0), 0),
-                              CurDAG->getTargetConstant(bits, ShiftAmtVT));
-    }
-  } else {
-    SDNode *Bytes =
-      CurDAG->getTargetNode(SPU::ROTMIr32, dl, ShiftAmtVT,
-                            ShiftAmt,
-                            CurDAG->getTargetConstant(3, ShiftAmtVT));
-    SDNode *Bits =
-      CurDAG->getTargetNode(SPU::ANDIr32, dl, ShiftAmtVT,
-                            ShiftAmt,
-                            CurDAG->getTargetConstant(7, ShiftAmtVT));
-
-    // Ensure that the shift amounts are negated!
-    Bytes = CurDAG->getTargetNode(SPU::SFIr32, dl, ShiftAmtVT,
-                                  SDValue(Bytes, 0),
-                                  CurDAG->getTargetConstant(0, ShiftAmtVT));
-
-    Bits = CurDAG->getTargetNode(SPU::SFIr32, dl, ShiftAmtVT,
-                                 SDValue(Bits, 0),
-                                 CurDAG->getTargetConstant(0, ShiftAmtVT));
-
-    Shift =
-      CurDAG->getTargetNode(SPU::ROTQMBYv2i64, dl, VecVT,
-                            SDValue(VecOp0, 0), SDValue(Bytes, 0));
-    Shift =
-      CurDAG->getTargetNode(SPU::ROTQMBIv2i64, dl, VecVT,
-                            SDValue(Shift, 0), SDValue(Bits, 0));
-  }
-
-  return CurDAG->getTargetNode(SPU::ORi64_v2i64, dl, OpVT, SDValue(Shift, 0));
-}
-
-/*!
- * Emit the instruction sequence for i64 arithmetic right shifts.
- *
- * @param Op The shl operand
- * @param OpVT Op's machine value value type (doesn't need to be passed, but
- * makes life easier.)
- * @return The SDNode with the entire instruction sequence
- */
-SDNode *
-SPUDAGToDAGISel::SelectSRAi64(SDValue &Op, EVT OpVT) {
-  // Promote Op0 to vector
-  EVT VecVT = EVT::getVectorVT(*CurDAG->getContext(), 
-                               OpVT, (128 / OpVT.getSizeInBits()));
-  SDValue ShiftAmt = Op.getOperand(1);
-  EVT ShiftAmtVT = ShiftAmt.getValueType();
-  DebugLoc dl = Op.getDebugLoc();
-
-  SDNode *VecOp0 =
-    CurDAG->getTargetNode(SPU::ORv2i64_i64, dl, VecVT, Op.getOperand(0));
-
-  SDValue SignRotAmt = CurDAG->getTargetConstant(31, ShiftAmtVT);
-  SDNode *SignRot =
-    CurDAG->getTargetNode(SPU::ROTMAIv2i64_i32, dl, MVT::v2i64,
-                          SDValue(VecOp0, 0), SignRotAmt);
-  SDNode *UpperHalfSign =
-    CurDAG->getTargetNode(SPU::ORi32_v4i32, dl, MVT::i32, SDValue(SignRot, 0));
-
-  SDNode *UpperHalfSignMask =
-    CurDAG->getTargetNode(SPU::FSM64r32, dl, VecVT, SDValue(UpperHalfSign, 0));
-  SDNode *UpperLowerMask =
-    CurDAG->getTargetNode(SPU::FSMBIv2i64, dl, VecVT,
-                          CurDAG->getTargetConstant(0xff00ULL, MVT::i16));
-  SDNode *UpperLowerSelect =
-    CurDAG->getTargetNode(SPU::SELBv2i64, dl, VecVT,
-                          SDValue(UpperHalfSignMask, 0),
-                          SDValue(VecOp0, 0),
-                          SDValue(UpperLowerMask, 0));
-
-  SDNode *Shift = 0;
-
-  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(ShiftAmt)) {
-    unsigned bytes = unsigned(CN->getZExtValue()) >> 3;
-    unsigned bits = unsigned(CN->getZExtValue()) & 7;
-
-    if (bytes > 0) {
-      bytes = 31 - bytes;
-      Shift =
-        CurDAG->getTargetNode(SPU::ROTQBYIv2i64, dl, VecVT,
-                              SDValue(UpperLowerSelect, 0),
-                              CurDAG->getTargetConstant(bytes, ShiftAmtVT));
-    }
-
-    if (bits > 0) {
-      bits = 8 - bits;
-      Shift =
-        CurDAG->getTargetNode(SPU::ROTQBIIv2i64, dl, VecVT,
-                              SDValue((Shift != 0 ? Shift : UpperLowerSelect), 0),
-                              CurDAG->getTargetConstant(bits, ShiftAmtVT));
-    }
-  } else {
-    SDNode *NegShift =
-      CurDAG->getTargetNode(SPU::SFIr32, dl, ShiftAmtVT,
-                            ShiftAmt, CurDAG->getTargetConstant(0, ShiftAmtVT));
-
-    Shift =
-      CurDAG->getTargetNode(SPU::ROTQBYBIv2i64_r32, dl, VecVT,
-                            SDValue(UpperLowerSelect, 0), SDValue(NegShift, 0));
-    Shift =
-      CurDAG->getTargetNode(SPU::ROTQBIv2i64, dl, VecVT,
-                            SDValue(Shift, 0), SDValue(NegShift, 0));
-  }
-
-  return CurDAG->getTargetNode(SPU::ORi64_v2i64, dl, OpVT, SDValue(Shift, 0));
-}
-
-/*!
- Do the necessary magic necessary to load a i64 constant
- */
-SDNode *SPUDAGToDAGISel::SelectI64Constant(SDValue& Op, EVT OpVT,
-                                           DebugLoc dl) {
-  ConstantSDNode *CN = cast<ConstantSDNode>(Op.getNode());
-  return SelectI64Constant(CN->getZExtValue(), OpVT, dl);
-}
-
-SDNode *SPUDAGToDAGISel::SelectI64Constant(uint64_t Value64, EVT OpVT,
-                                           DebugLoc dl) {
-  EVT OpVecVT = EVT::getVectorVT(*CurDAG->getContext(), OpVT, 2);
-  SDValue i64vec =
-          SPU::LowerV2I64Splat(OpVecVT, *CurDAG, Value64, dl);
-
-  // Here's where it gets interesting, because we have to parse out the
-  // subtree handed back in i64vec:
-
-  if (i64vec.getOpcode() == ISD::BIT_CONVERT) {
-    // The degenerate case where the upper and lower bits in the splat are
-    // identical:
-    SDValue Op0 = i64vec.getOperand(0);
-
-    ReplaceUses(i64vec, Op0);
-    return CurDAG->getTargetNode(SPU::ORi64_v2i64, dl, OpVT,
-                                 SDValue(emitBuildVector(Op0), 0));
-  } else if (i64vec.getOpcode() == SPUISD::SHUFB) {
-    SDValue lhs = i64vec.getOperand(0);
-    SDValue rhs = i64vec.getOperand(1);
-    SDValue shufmask = i64vec.getOperand(2);
-
-    if (lhs.getOpcode() == ISD::BIT_CONVERT) {
-      ReplaceUses(lhs, lhs.getOperand(0));
-      lhs = lhs.getOperand(0);
-    }
-
-    SDNode *lhsNode = (lhs.getNode()->isMachineOpcode()
-                       ? lhs.getNode()
-                       : emitBuildVector(lhs));
-
-    if (rhs.getOpcode() == ISD::BIT_CONVERT) {
-      ReplaceUses(rhs, rhs.getOperand(0));
-      rhs = rhs.getOperand(0);
-    }
-
-    SDNode *rhsNode = (rhs.getNode()->isMachineOpcode()
-                       ? rhs.getNode()
-                       : emitBuildVector(rhs));
-
-    if (shufmask.getOpcode() == ISD::BIT_CONVERT) {
-      ReplaceUses(shufmask, shufmask.getOperand(0));
-      shufmask = shufmask.getOperand(0);
-    }
-
-    SDNode *shufMaskNode = (shufmask.getNode()->isMachineOpcode()
-                            ? shufmask.getNode()
-                            : emitBuildVector(shufmask));
-
-    SDNode *shufNode =
-            Select(CurDAG->getNode(SPUISD::SHUFB, dl, OpVecVT,
-                                   SDValue(lhsNode, 0), SDValue(rhsNode, 0),
-                                   SDValue(shufMaskNode, 0)));
-
-    return CurDAG->getTargetNode(SPU::ORi64_v2i64, dl, OpVT,
-                                 SDValue(shufNode, 0));
-  } else if (i64vec.getOpcode() == ISD::BUILD_VECTOR) {
-    return CurDAG->getTargetNode(SPU::ORi64_v2i64, dl, OpVT,
-                                 SDValue(emitBuildVector(i64vec), 0));
-  } else {
-    llvm_report_error("SPUDAGToDAGISel::SelectI64Constant: Unhandled i64vec"
-                      "condition");
-  }
-}
-
-/// createSPUISelDag - This pass converts a legalized DAG into a
-/// SPU-specific DAG, ready for instruction scheduling.
-///
-FunctionPass *llvm::createSPUISelDag(SPUTargetMachine &TM) {
-  return new SPUDAGToDAGISel(TM);
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.cpp
deleted file mode 100644
index 324b9dd..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.cpp
+++ /dev/null
@@ -1,3107 +0,0 @@
-//
-//===-- SPUISelLowering.cpp - Cell SPU DAG Lowering Implementation --------===//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SPUTargetLowering class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPURegisterNames.h"
-#include "SPUISelLowering.h"
-#include "SPUTargetMachine.h"
-#include "SPUFrameInfo.h"
-#include "llvm/Constants.h"
-#include "llvm/Function.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/ADT/VectorExtras.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/MathExtras.h"
-#include "llvm/Support/raw_ostream.h"
-#include <map>
-
-using namespace llvm;
-
-// Used in getTargetNodeName() below
-namespace {
-  std::map<unsigned, const char *> node_names;
-
-  //! EVT mapping to useful data for Cell SPU
-  struct valtype_map_s {
-    const EVT   valtype;
-    const int   prefslot_byte;
-  };
-
-  const valtype_map_s valtype_map[] = {
-    { MVT::i1,   3 },
-    { MVT::i8,   3 },
-    { MVT::i16,  2 },
-    { MVT::i32,  0 },
-    { MVT::f32,  0 },
-    { MVT::i64,  0 },
-    { MVT::f64,  0 },
-    { MVT::i128, 0 }
-  };
-
-  const size_t n_valtype_map = sizeof(valtype_map) / sizeof(valtype_map[0]);
-
-  const valtype_map_s *getValueTypeMapEntry(EVT VT) {
-    const valtype_map_s *retval = 0;
-
-    for (size_t i = 0; i < n_valtype_map; ++i) {
-      if (valtype_map[i].valtype == VT) {
-        retval = valtype_map + i;
-        break;
-      }
-    }
-
-#ifndef NDEBUG
-    if (retval == 0) {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "getValueTypeMapEntry returns NULL for "
-           << VT.getEVTString();
-      llvm_report_error(Msg.str());
-    }
-#endif
-
-    return retval;
-  }
-
-  //! Expand a library call into an actual call DAG node
-  /*!
-   \note
-   This code is taken from SelectionDAGLegalize, since it is not exposed as
-   part of the LLVM SelectionDAG API.
-   */
-
-  SDValue
-  ExpandLibCall(RTLIB::Libcall LC, SDValue Op, SelectionDAG &DAG,
-                bool isSigned, SDValue &Hi, SPUTargetLowering &TLI) {
-    // The input chain to this libcall is the entry node of the function.
-    // Legalizing the call will automatically add the previous call to the
-    // dependence.
-    SDValue InChain = DAG.getEntryNode();
-
-    TargetLowering::ArgListTy Args;
-    TargetLowering::ArgListEntry Entry;
-    for (unsigned i = 0, e = Op.getNumOperands(); i != e; ++i) {
-      EVT ArgVT = Op.getOperand(i).getValueType();
-      const Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
-      Entry.Node = Op.getOperand(i);
-      Entry.Ty = ArgTy;
-      Entry.isSExt = isSigned;
-      Entry.isZExt = !isSigned;
-      Args.push_back(Entry);
-    }
-    SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(LC),
-                                           TLI.getPointerTy());
-
-    // Splice the libcall in wherever FindInputOutputChains tells us to.
-    const Type *RetTy =
-                Op.getNode()->getValueType(0).getTypeForEVT(*DAG.getContext());
-    std::pair<SDValue, SDValue> CallInfo =
-            TLI.LowerCallTo(InChain, RetTy, isSigned, !isSigned, false, false,
-                            0, TLI.getLibcallCallingConv(LC), false,
-                            /*isReturnValueUsed=*/true,
-                            Callee, Args, DAG,
-                            Op.getDebugLoc());
-
-    return CallInfo.first;
-  }
-}
-
-SPUTargetLowering::SPUTargetLowering(SPUTargetMachine &TM)
-  : TargetLowering(TM, new TargetLoweringObjectFileELF()),
-    SPUTM(TM) {
-  // Fold away setcc operations if possible.
-  setPow2DivIsCheap();
-
-  // Use _setjmp/_longjmp instead of setjmp/longjmp.
-  setUseUnderscoreSetJmp(true);
-  setUseUnderscoreLongJmp(true);
-
-  // Set RTLIB libcall names as used by SPU:
-  setLibcallName(RTLIB::DIV_F64, "__fast_divdf3");
-
-  // Set up the SPU's register classes:
-  addRegisterClass(MVT::i8,   SPU::R8CRegisterClass);
-  addRegisterClass(MVT::i16,  SPU::R16CRegisterClass);
-  addRegisterClass(MVT::i32,  SPU::R32CRegisterClass);
-  addRegisterClass(MVT::i64,  SPU::R64CRegisterClass);
-  addRegisterClass(MVT::f32,  SPU::R32FPRegisterClass);
-  addRegisterClass(MVT::f64,  SPU::R64FPRegisterClass);
-  addRegisterClass(MVT::i128, SPU::GPRCRegisterClass);
-
-  // SPU has no sign or zero extended loads for i1, i8, i16:
-  setLoadExtAction(ISD::EXTLOAD,  MVT::i1, Promote);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i1, Promote);
-
-  setLoadExtAction(ISD::EXTLOAD,  MVT::f32, Expand);
-  setLoadExtAction(ISD::EXTLOAD,  MVT::f64, Expand);
-
-  setTruncStoreAction(MVT::i128, MVT::i64, Expand);
-  setTruncStoreAction(MVT::i128, MVT::i32, Expand);
-  setTruncStoreAction(MVT::i128, MVT::i16, Expand);
-  setTruncStoreAction(MVT::i128, MVT::i8, Expand);
-
-  setTruncStoreAction(MVT::f64, MVT::f32, Expand);
-
-  // SPU constant load actions are custom lowered:
-  setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
-  setOperationAction(ISD::ConstantFP, MVT::f64, Custom);
-
-  // SPU's loads and stores have to be custom lowered:
-  for (unsigned sctype = (unsigned) MVT::i8; sctype < (unsigned) MVT::i128;
-       ++sctype) {
-    MVT::SimpleValueType VT = (MVT::SimpleValueType)sctype;
-
-    setOperationAction(ISD::LOAD,   VT, Custom);
-    setOperationAction(ISD::STORE,  VT, Custom);
-    setLoadExtAction(ISD::EXTLOAD,  VT, Custom);
-    setLoadExtAction(ISD::ZEXTLOAD, VT, Custom);
-    setLoadExtAction(ISD::SEXTLOAD, VT, Custom);
-
-    for (unsigned stype = sctype - 1; stype >= (unsigned) MVT::i8; --stype) {
-      MVT::SimpleValueType StoreVT = (MVT::SimpleValueType) stype;
-      setTruncStoreAction(VT, StoreVT, Expand);
-    }
-  }
-
-  for (unsigned sctype = (unsigned) MVT::f32; sctype < (unsigned) MVT::f64;
-       ++sctype) {
-    MVT::SimpleValueType VT = (MVT::SimpleValueType) sctype;
-
-    setOperationAction(ISD::LOAD,   VT, Custom);
-    setOperationAction(ISD::STORE,  VT, Custom);
-
-    for (unsigned stype = sctype - 1; stype >= (unsigned) MVT::f32; --stype) {
-      MVT::SimpleValueType StoreVT = (MVT::SimpleValueType) stype;
-      setTruncStoreAction(VT, StoreVT, Expand);
-    }
-  }
-
-  // Expand the jumptable branches
-  setOperationAction(ISD::BR_JT,        MVT::Other, Expand);
-  setOperationAction(ISD::BR_CC,        MVT::Other, Expand);
-
-  // Custom lower SELECT_CC for most cases, but expand by default
-  setOperationAction(ISD::SELECT_CC,    MVT::Other, Expand);
-  setOperationAction(ISD::SELECT_CC,    MVT::i8,    Custom);
-  setOperationAction(ISD::SELECT_CC,    MVT::i16,   Custom);
-  setOperationAction(ISD::SELECT_CC,    MVT::i32,   Custom);
-  setOperationAction(ISD::SELECT_CC,    MVT::i64,   Custom);
-
-  // SPU has no intrinsics for these particular operations:
-  setOperationAction(ISD::MEMBARRIER, MVT::Other, Expand);
-
-  // SPU has no division/remainder instructions
-  setOperationAction(ISD::SREM,    MVT::i8,   Expand);
-  setOperationAction(ISD::UREM,    MVT::i8,   Expand);
-  setOperationAction(ISD::SDIV,    MVT::i8,   Expand);
-  setOperationAction(ISD::UDIV,    MVT::i8,   Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i8,   Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i8,   Expand);
-  setOperationAction(ISD::SREM,    MVT::i16,  Expand);
-  setOperationAction(ISD::UREM,    MVT::i16,  Expand);
-  setOperationAction(ISD::SDIV,    MVT::i16,  Expand);
-  setOperationAction(ISD::UDIV,    MVT::i16,  Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i16,  Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i16,  Expand);
-  setOperationAction(ISD::SREM,    MVT::i32,  Expand);
-  setOperationAction(ISD::UREM,    MVT::i32,  Expand);
-  setOperationAction(ISD::SDIV,    MVT::i32,  Expand);
-  setOperationAction(ISD::UDIV,    MVT::i32,  Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i32,  Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i32,  Expand);
-  setOperationAction(ISD::SREM,    MVT::i64,  Expand);
-  setOperationAction(ISD::UREM,    MVT::i64,  Expand);
-  setOperationAction(ISD::SDIV,    MVT::i64,  Expand);
-  setOperationAction(ISD::UDIV,    MVT::i64,  Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i64,  Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i64,  Expand);
-  setOperationAction(ISD::SREM,    MVT::i128, Expand);
-  setOperationAction(ISD::UREM,    MVT::i128, Expand);
-  setOperationAction(ISD::SDIV,    MVT::i128, Expand);
-  setOperationAction(ISD::UDIV,    MVT::i128, Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i128, Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i128, Expand);
-
-  // We don't support sin/cos/sqrt/fmod
-  setOperationAction(ISD::FSIN , MVT::f64, Expand);
-  setOperationAction(ISD::FCOS , MVT::f64, Expand);
-  setOperationAction(ISD::FREM , MVT::f64, Expand);
-  setOperationAction(ISD::FSIN , MVT::f32, Expand);
-  setOperationAction(ISD::FCOS , MVT::f32, Expand);
-  setOperationAction(ISD::FREM , MVT::f32, Expand);
-
-  // Expand fsqrt to the appropriate libcall (NOTE: should use h/w fsqrt
-  // for f32!)
-  setOperationAction(ISD::FSQRT, MVT::f64, Expand);
-  setOperationAction(ISD::FSQRT, MVT::f32, Expand);
-
-  setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
-  setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
-
-  // SPU can do rotate right and left, so legalize it... but customize for i8
-  // because instructions don't exist.
-
-  // FIXME: Change from "expand" to appropriate type once ROTR is supported in
-  //        .td files.
-  setOperationAction(ISD::ROTR, MVT::i32,    Expand /*Legal*/);
-  setOperationAction(ISD::ROTR, MVT::i16,    Expand /*Legal*/);
-  setOperationAction(ISD::ROTR, MVT::i8,     Expand /*Custom*/);
-
-  setOperationAction(ISD::ROTL, MVT::i32,    Legal);
-  setOperationAction(ISD::ROTL, MVT::i16,    Legal);
-  setOperationAction(ISD::ROTL, MVT::i8,     Custom);
-
-  // SPU has no native version of shift left/right for i8
-  setOperationAction(ISD::SHL,  MVT::i8,     Custom);
-  setOperationAction(ISD::SRL,  MVT::i8,     Custom);
-  setOperationAction(ISD::SRA,  MVT::i8,     Custom);
-
-  // Make these operations legal and handle them during instruction selection:
-  setOperationAction(ISD::SHL,  MVT::i64,    Legal);
-  setOperationAction(ISD::SRL,  MVT::i64,    Legal);
-  setOperationAction(ISD::SRA,  MVT::i64,    Legal);
-
-  // Custom lower i8, i32 and i64 multiplications
-  setOperationAction(ISD::MUL,  MVT::i8,     Custom);
-  setOperationAction(ISD::MUL,  MVT::i32,    Legal);
-  setOperationAction(ISD::MUL,  MVT::i64,    Legal);
-
-  // Expand double-width multiplication
-  // FIXME: It would probably be reasonable to support some of these operations
-  setOperationAction(ISD::UMUL_LOHI, MVT::i8,  Expand);
-  setOperationAction(ISD::SMUL_LOHI, MVT::i8,  Expand);
-  setOperationAction(ISD::MULHU,     MVT::i8,  Expand);
-  setOperationAction(ISD::MULHS,     MVT::i8,  Expand);
-  setOperationAction(ISD::UMUL_LOHI, MVT::i16, Expand);
-  setOperationAction(ISD::SMUL_LOHI, MVT::i16, Expand);
-  setOperationAction(ISD::MULHU,     MVT::i16, Expand);
-  setOperationAction(ISD::MULHS,     MVT::i16, Expand);
-  setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
-  setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
-  setOperationAction(ISD::MULHU,     MVT::i32, Expand);
-  setOperationAction(ISD::MULHS,     MVT::i32, Expand);
-  setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
-  setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
-  setOperationAction(ISD::MULHU,     MVT::i64, Expand);
-  setOperationAction(ISD::MULHS,     MVT::i64, Expand);
-
-  // Need to custom handle (some) common i8, i64 math ops
-  setOperationAction(ISD::ADD,  MVT::i8,     Custom);
-  setOperationAction(ISD::ADD,  MVT::i64,    Legal);
-  setOperationAction(ISD::SUB,  MVT::i8,     Custom);
-  setOperationAction(ISD::SUB,  MVT::i64,    Legal);
-
-  // SPU does not have BSWAP. It does have i32 support CTLZ.
-  // CTPOP has to be custom lowered.
-  setOperationAction(ISD::BSWAP, MVT::i32,   Expand);
-  setOperationAction(ISD::BSWAP, MVT::i64,   Expand);
-
-  setOperationAction(ISD::CTPOP, MVT::i8,    Custom);
-  setOperationAction(ISD::CTPOP, MVT::i16,   Custom);
-  setOperationAction(ISD::CTPOP, MVT::i32,   Custom);
-  setOperationAction(ISD::CTPOP, MVT::i64,   Custom);
-  setOperationAction(ISD::CTPOP, MVT::i128,  Expand);
-
-  setOperationAction(ISD::CTTZ , MVT::i8,    Expand);
-  setOperationAction(ISD::CTTZ , MVT::i16,   Expand);
-  setOperationAction(ISD::CTTZ , MVT::i32,   Expand);
-  setOperationAction(ISD::CTTZ , MVT::i64,   Expand);
-  setOperationAction(ISD::CTTZ , MVT::i128,  Expand);
-
-  setOperationAction(ISD::CTLZ , MVT::i8,    Promote);
-  setOperationAction(ISD::CTLZ , MVT::i16,   Promote);
-  setOperationAction(ISD::CTLZ , MVT::i32,   Legal);
-  setOperationAction(ISD::CTLZ , MVT::i64,   Expand);
-  setOperationAction(ISD::CTLZ , MVT::i128,  Expand);
-
-  // SPU has a version of select that implements (a&~c)|(b&c), just like
-  // select ought to work:
-  setOperationAction(ISD::SELECT, MVT::i8,   Legal);
-  setOperationAction(ISD::SELECT, MVT::i16,  Legal);
-  setOperationAction(ISD::SELECT, MVT::i32,  Legal);
-  setOperationAction(ISD::SELECT, MVT::i64,  Legal);
-
-  setOperationAction(ISD::SETCC, MVT::i8,    Legal);
-  setOperationAction(ISD::SETCC, MVT::i16,   Legal);
-  setOperationAction(ISD::SETCC, MVT::i32,   Legal);
-  setOperationAction(ISD::SETCC, MVT::i64,   Legal);
-  setOperationAction(ISD::SETCC, MVT::f64,   Custom);
-
-  // Custom lower i128 -> i64 truncates
-  setOperationAction(ISD::TRUNCATE, MVT::i64, Custom);
-
-  // Custom lower i32/i64 -> i128 sign extend
-  setOperationAction(ISD::SIGN_EXTEND, MVT::i128, Custom);
-
-  setOperationAction(ISD::FP_TO_SINT, MVT::i8, Promote);
-  setOperationAction(ISD::FP_TO_UINT, MVT::i8, Promote);
-  setOperationAction(ISD::FP_TO_SINT, MVT::i16, Promote);
-  setOperationAction(ISD::FP_TO_UINT, MVT::i16, Promote);
-  // SPU has a legal FP -> signed INT instruction for f32, but for f64, need
-  // to expand to a libcall, hence the custom lowering:
-  setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
-  setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
-  setOperationAction(ISD::FP_TO_SINT, MVT::i64, Expand);
-  setOperationAction(ISD::FP_TO_UINT, MVT::i64, Expand);
-  setOperationAction(ISD::FP_TO_SINT, MVT::i128, Expand);
-  setOperationAction(ISD::FP_TO_UINT, MVT::i128, Expand);
-
-  // FDIV on SPU requires custom lowering
-  setOperationAction(ISD::FDIV, MVT::f64, Expand);      // to libcall
-
-  // SPU has [U|S]INT_TO_FP for f32->i32, but not for f64->i32, f64->i64:
-  setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
-  setOperationAction(ISD::SINT_TO_FP, MVT::i16, Promote);
-  setOperationAction(ISD::SINT_TO_FP, MVT::i8,  Promote);
-  setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
-  setOperationAction(ISD::UINT_TO_FP, MVT::i16, Promote);
-  setOperationAction(ISD::UINT_TO_FP, MVT::i8,  Promote);
-  setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
-  setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
-
-  setOperationAction(ISD::BIT_CONVERT, MVT::i32, Legal);
-  setOperationAction(ISD::BIT_CONVERT, MVT::f32, Legal);
-  setOperationAction(ISD::BIT_CONVERT, MVT::i64, Legal);
-  setOperationAction(ISD::BIT_CONVERT, MVT::f64, Legal);
-
-  // We cannot sextinreg(i1).  Expand to shifts.
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
-
-  // Support label based line numbers.
-  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
-  setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
-
-  // We want to legalize GlobalAddress and ConstantPool nodes into the
-  // appropriate instructions to materialize the address.
-  for (unsigned sctype = (unsigned) MVT::i8; sctype < (unsigned) MVT::f128;
-       ++sctype) {
-    MVT::SimpleValueType VT = (MVT::SimpleValueType)sctype;
-
-    setOperationAction(ISD::GlobalAddress,  VT, Custom);
-    setOperationAction(ISD::ConstantPool,   VT, Custom);
-    setOperationAction(ISD::JumpTable,      VT, Custom);
-  }
-
-  // VASTART needs to be custom lowered to use the VarArgsFrameIndex
-  setOperationAction(ISD::VASTART           , MVT::Other, Custom);
-
-  // Use the default implementation.
-  setOperationAction(ISD::VAARG             , MVT::Other, Expand);
-  setOperationAction(ISD::VACOPY            , MVT::Other, Expand);
-  setOperationAction(ISD::VAEND             , MVT::Other, Expand);
-  setOperationAction(ISD::STACKSAVE         , MVT::Other, Expand);
-  setOperationAction(ISD::STACKRESTORE      , MVT::Other, Expand);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32  , Expand);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64  , Expand);
-
-  // Cell SPU has instructions for converting between i64 and fp.
-  setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
-  setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
-
-  // To take advantage of the above i64 FP_TO_SINT, promote i32 FP_TO_UINT
-  setOperationAction(ISD::FP_TO_UINT, MVT::i32, Promote);
-
-  // BUILD_PAIR can't be handled natively, and should be expanded to shl/or
-  setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
-
-  // First set operation action for all vector types to expand. Then we
-  // will selectively turn on ones that can be effectively codegen'd.
-  addRegisterClass(MVT::v16i8, SPU::VECREGRegisterClass);
-  addRegisterClass(MVT::v8i16, SPU::VECREGRegisterClass);
-  addRegisterClass(MVT::v4i32, SPU::VECREGRegisterClass);
-  addRegisterClass(MVT::v2i64, SPU::VECREGRegisterClass);
-  addRegisterClass(MVT::v4f32, SPU::VECREGRegisterClass);
-  addRegisterClass(MVT::v2f64, SPU::VECREGRegisterClass);
-
-  // "Odd size" vector classes that we're willing to support:
-  addRegisterClass(MVT::v2i32, SPU::VECREGRegisterClass);
-
-  for (unsigned i = (unsigned)MVT::FIRST_VECTOR_VALUETYPE;
-       i <= (unsigned)MVT::LAST_VECTOR_VALUETYPE; ++i) {
-    MVT::SimpleValueType VT = (MVT::SimpleValueType)i;
-
-    // add/sub are legal for all supported vector VT's.
-    setOperationAction(ISD::ADD,     VT, Legal);
-    setOperationAction(ISD::SUB,     VT, Legal);
-    // mul has to be custom lowered.
-    setOperationAction(ISD::MUL,     VT, Legal);
-
-    setOperationAction(ISD::AND,     VT, Legal);
-    setOperationAction(ISD::OR,      VT, Legal);
-    setOperationAction(ISD::XOR,     VT, Legal);
-    setOperationAction(ISD::LOAD,    VT, Legal);
-    setOperationAction(ISD::SELECT,  VT, Legal);
-    setOperationAction(ISD::STORE,   VT, Legal);
-
-    // These operations need to be expanded:
-    setOperationAction(ISD::SDIV,    VT, Expand);
-    setOperationAction(ISD::SREM,    VT, Expand);
-    setOperationAction(ISD::UDIV,    VT, Expand);
-    setOperationAction(ISD::UREM,    VT, Expand);
-
-    // Custom lower build_vector, constant pool spills, insert and
-    // extract vector elements:
-    setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
-    setOperationAction(ISD::ConstantPool, VT, Custom);
-    setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Custom);
-    setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
-    setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
-    setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
-  }
-
-  setOperationAction(ISD::AND, MVT::v16i8, Custom);
-  setOperationAction(ISD::OR,  MVT::v16i8, Custom);
-  setOperationAction(ISD::XOR, MVT::v16i8, Custom);
-  setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Custom);
-
-  setOperationAction(ISD::FDIV, MVT::v4f32, Legal);
-
-  setShiftAmountType(MVT::i32);
-  setBooleanContents(ZeroOrNegativeOneBooleanContent);
-
-  setStackPointerRegisterToSaveRestore(SPU::R1);
-
-  // We have target-specific dag combine patterns for the following nodes:
-  setTargetDAGCombine(ISD::ADD);
-  setTargetDAGCombine(ISD::ZERO_EXTEND);
-  setTargetDAGCombine(ISD::SIGN_EXTEND);
-  setTargetDAGCombine(ISD::ANY_EXTEND);
-
-  computeRegisterProperties();
-
-  // Set pre-RA register scheduler default to BURR, which produces slightly
-  // better code than the default (could also be TDRR, but TargetLowering.h
-  // needs a mod to support that model):
-  setSchedulingPreference(SchedulingForRegPressure);
-}
-
-const char *
-SPUTargetLowering::getTargetNodeName(unsigned Opcode) const
-{
-  if (node_names.empty()) {
-    node_names[(unsigned) SPUISD::RET_FLAG] = "SPUISD::RET_FLAG";
-    node_names[(unsigned) SPUISD::Hi] = "SPUISD::Hi";
-    node_names[(unsigned) SPUISD::Lo] = "SPUISD::Lo";
-    node_names[(unsigned) SPUISD::PCRelAddr] = "SPUISD::PCRelAddr";
-    node_names[(unsigned) SPUISD::AFormAddr] = "SPUISD::AFormAddr";
-    node_names[(unsigned) SPUISD::IndirectAddr] = "SPUISD::IndirectAddr";
-    node_names[(unsigned) SPUISD::LDRESULT] = "SPUISD::LDRESULT";
-    node_names[(unsigned) SPUISD::CALL] = "SPUISD::CALL";
-    node_names[(unsigned) SPUISD::SHUFB] = "SPUISD::SHUFB";
-    node_names[(unsigned) SPUISD::SHUFFLE_MASK] = "SPUISD::SHUFFLE_MASK";
-    node_names[(unsigned) SPUISD::CNTB] = "SPUISD::CNTB";
-    node_names[(unsigned) SPUISD::PREFSLOT2VEC] = "SPUISD::PREFSLOT2VEC";
-    node_names[(unsigned) SPUISD::VEC2PREFSLOT] = "SPUISD::VEC2PREFSLOT";
-    node_names[(unsigned) SPUISD::SHLQUAD_L_BITS] = "SPUISD::SHLQUAD_L_BITS";
-    node_names[(unsigned) SPUISD::SHLQUAD_L_BYTES] = "SPUISD::SHLQUAD_L_BYTES";
-    node_names[(unsigned) SPUISD::VEC_ROTL] = "SPUISD::VEC_ROTL";
-    node_names[(unsigned) SPUISD::VEC_ROTR] = "SPUISD::VEC_ROTR";
-    node_names[(unsigned) SPUISD::ROTBYTES_LEFT] = "SPUISD::ROTBYTES_LEFT";
-    node_names[(unsigned) SPUISD::ROTBYTES_LEFT_BITS] =
-            "SPUISD::ROTBYTES_LEFT_BITS";
-    node_names[(unsigned) SPUISD::SELECT_MASK] = "SPUISD::SELECT_MASK";
-    node_names[(unsigned) SPUISD::SELB] = "SPUISD::SELB";
-    node_names[(unsigned) SPUISD::ADD64_MARKER] = "SPUISD::ADD64_MARKER";
-    node_names[(unsigned) SPUISD::SUB64_MARKER] = "SPUISD::SUB64_MARKER";
-    node_names[(unsigned) SPUISD::MUL64_MARKER] = "SPUISD::MUL64_MARKER";
-  }
-
-  std::map<unsigned, const char *>::iterator i = node_names.find(Opcode);
-
-  return ((i != node_names.end()) ? i->second : 0);
-}
-
-/// getFunctionAlignment - Return the Log2 alignment of this function.
-unsigned SPUTargetLowering::getFunctionAlignment(const Function *) const {
-  return 3;
-}
-
-//===----------------------------------------------------------------------===//
-// Return the Cell SPU's SETCC result type
-//===----------------------------------------------------------------------===//
-
-MVT::SimpleValueType SPUTargetLowering::getSetCCResultType(EVT VT) const {
-  // i16 and i32 are valid SETCC result types
-  return ((VT == MVT::i8 || VT == MVT::i16 || VT == MVT::i32) ?
-    VT.getSimpleVT().SimpleTy :
-    MVT::i32);
-}
-
-//===----------------------------------------------------------------------===//
-// Calling convention code:
-//===----------------------------------------------------------------------===//
-
-#include "SPUGenCallingConv.inc"
-
-//===----------------------------------------------------------------------===//
-//  LowerOperation implementation
-//===----------------------------------------------------------------------===//
-
-/// Custom lower loads for CellSPU
-/*!
- All CellSPU loads and stores are aligned to 16-byte boundaries, so for elements
- within a 16-byte block, we have to rotate to extract the requested element.
-
- For extending loads, we also want to ensure that the following sequence is
- emitted, e.g. for MVT::f32 extending load to MVT::f64:
-
-\verbatim
-%1  v16i8,ch = load
-%2  v16i8,ch = rotate %1
-%3  v4f8, ch = bitconvert %2
-%4  f32      = vec2perfslot %3
-%5  f64      = fp_extend %4
-\endverbatim
-*/
-static SDValue
-LowerLOAD(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
-  LoadSDNode *LN = cast<LoadSDNode>(Op);
-  SDValue the_chain = LN->getChain();
-  EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
-  EVT InVT = LN->getMemoryVT();
-  EVT OutVT = Op.getValueType();
-  ISD::LoadExtType ExtType = LN->getExtensionType();
-  unsigned alignment = LN->getAlignment();
-  const valtype_map_s *vtm = getValueTypeMapEntry(InVT);
-  DebugLoc dl = Op.getDebugLoc();
-
-  switch (LN->getAddressingMode()) {
-  case ISD::UNINDEXED: {
-    SDValue result;
-    SDValue basePtr = LN->getBasePtr();
-    SDValue rotate;
-
-    if (alignment == 16) {
-      ConstantSDNode *CN;
-
-      // Special cases for a known aligned load to simplify the base pointer
-      // and the rotation amount:
-      if (basePtr.getOpcode() == ISD::ADD
-          && (CN = dyn_cast<ConstantSDNode > (basePtr.getOperand(1))) != 0) {
-        // Known offset into basePtr
-        int64_t offset = CN->getSExtValue();
-        int64_t rotamt = int64_t((offset & 0xf) - vtm->prefslot_byte);
-
-        if (rotamt < 0)
-          rotamt += 16;
-
-        rotate = DAG.getConstant(rotamt, MVT::i16);
-
-        // Simplify the base pointer for this case:
-        basePtr = basePtr.getOperand(0);
-        if ((offset & ~0xf) > 0) {
-          basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT,
-                                basePtr,
-                                DAG.getConstant((offset & ~0xf), PtrVT));
-        }
-      } else if ((basePtr.getOpcode() == SPUISD::AFormAddr)
-                 || (basePtr.getOpcode() == SPUISD::IndirectAddr
-                     && basePtr.getOperand(0).getOpcode() == SPUISD::Hi
-                     && basePtr.getOperand(1).getOpcode() == SPUISD::Lo)) {
-        // Plain aligned a-form address: rotate into preferred slot
-        // Same for (SPUindirect (SPUhi ...), (SPUlo ...))
-        int64_t rotamt = -vtm->prefslot_byte;
-        if (rotamt < 0)
-          rotamt += 16;
-        rotate = DAG.getConstant(rotamt, MVT::i16);
-      } else {
-        // Offset the rotate amount by the basePtr and the preferred slot
-        // byte offset
-        int64_t rotamt = -vtm->prefslot_byte;
-        if (rotamt < 0)
-          rotamt += 16;
-        rotate = DAG.getNode(ISD::ADD, dl, PtrVT,
-                             basePtr,
-                             DAG.getConstant(rotamt, PtrVT));
-      }
-    } else {
-      // Unaligned load: must be more pessimistic about addressing modes:
-      if (basePtr.getOpcode() == ISD::ADD) {
-        MachineFunction &MF = DAG.getMachineFunction();
-        MachineRegisterInfo &RegInfo = MF.getRegInfo();
-        unsigned VReg = RegInfo.createVirtualRegister(&SPU::R32CRegClass);
-        SDValue Flag;
-
-        SDValue Op0 = basePtr.getOperand(0);
-        SDValue Op1 = basePtr.getOperand(1);
-
-        if (isa<ConstantSDNode>(Op1)) {
-          // Convert the (add <ptr>, <const>) to an indirect address contained
-          // in a register. Note that this is done because we need to avoid
-          // creating a 0(reg) d-form address due to the SPU's block loads.
-          basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, Op0, Op1);
-          the_chain = DAG.getCopyToReg(the_chain, dl, VReg, basePtr, Flag);
-          basePtr = DAG.getCopyFromReg(the_chain, dl, VReg, PtrVT);
-        } else {
-          // Convert the (add <arg1>, <arg2>) to an indirect address, which
-          // will likely be lowered as a reg(reg) x-form address.
-          basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, Op0, Op1);
-        }
-      } else {
-        basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT,
-                              basePtr,
-                              DAG.getConstant(0, PtrVT));
-      }
-
-      // Offset the rotate amount by the basePtr and the preferred slot
-      // byte offset
-      rotate = DAG.getNode(ISD::ADD, dl, PtrVT,
-                           basePtr,
-                           DAG.getConstant(-vtm->prefslot_byte, PtrVT));
-    }
-
-    // Re-emit as a v16i8 vector load
-    result = DAG.getLoad(MVT::v16i8, dl, the_chain, basePtr,
-                         LN->getSrcValue(), LN->getSrcValueOffset(),
-                         LN->isVolatile(), 16);
-
-    // Update the chain
-    the_chain = result.getValue(1);
-
-    // Rotate into the preferred slot:
-    result = DAG.getNode(SPUISD::ROTBYTES_LEFT, dl, MVT::v16i8,
-                         result.getValue(0), rotate);
-
-    // Convert the loaded v16i8 vector to the appropriate vector type
-    // specified by the operand:
-    EVT vecVT = EVT::getVectorVT(*DAG.getContext(), 
-                                 InVT, (128 / InVT.getSizeInBits()));
-    result = DAG.getNode(SPUISD::VEC2PREFSLOT, dl, InVT,
-                         DAG.getNode(ISD::BIT_CONVERT, dl, vecVT, result));
-
-    // Handle extending loads by extending the scalar result:
-    if (ExtType == ISD::SEXTLOAD) {
-      result = DAG.getNode(ISD::SIGN_EXTEND, dl, OutVT, result);
-    } else if (ExtType == ISD::ZEXTLOAD) {
-      result = DAG.getNode(ISD::ZERO_EXTEND, dl, OutVT, result);
-    } else if (ExtType == ISD::EXTLOAD) {
-      unsigned NewOpc = ISD::ANY_EXTEND;
-
-      if (OutVT.isFloatingPoint())
-        NewOpc = ISD::FP_EXTEND;
-
-      result = DAG.getNode(NewOpc, dl, OutVT, result);
-    }
-
-    SDVTList retvts = DAG.getVTList(OutVT, MVT::Other);
-    SDValue retops[2] = {
-      result,
-      the_chain
-    };
-
-    result = DAG.getNode(SPUISD::LDRESULT, dl, retvts,
-                         retops, sizeof(retops) / sizeof(retops[0]));
-    return result;
-  }
-  case ISD::PRE_INC:
-  case ISD::PRE_DEC:
-  case ISD::POST_INC:
-  case ISD::POST_DEC:
-  case ISD::LAST_INDEXED_MODE:
-    {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "LowerLOAD: Got a LoadSDNode with an addr mode other than "
-            "UNINDEXED\n";
-      Msg << (unsigned) LN->getAddressingMode();
-      llvm_report_error(Msg.str());
-      /*NOTREACHED*/
-    }
-  }
-
-  return SDValue();
-}
-
-/// Custom lower stores for CellSPU
-/*!
- All CellSPU stores are aligned to 16-byte boundaries, so for elements
- within a 16-byte block, we have to generate a shuffle to insert the
- requested element into its place, then store the resulting block.
- */
-static SDValue
-LowerSTORE(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
-  StoreSDNode *SN = cast<StoreSDNode>(Op);
-  SDValue Value = SN->getValue();
-  EVT VT = Value.getValueType();
-  EVT StVT = (!SN->isTruncatingStore() ? VT : SN->getMemoryVT());
-  EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
-  DebugLoc dl = Op.getDebugLoc();
-  unsigned alignment = SN->getAlignment();
-
-  switch (SN->getAddressingMode()) {
-  case ISD::UNINDEXED: {
-    // The vector type we really want to load from the 16-byte chunk.
-    EVT vecVT = EVT::getVectorVT(*DAG.getContext(),
-                                 VT, (128 / VT.getSizeInBits())),
-        stVecVT = EVT::getVectorVT(*DAG.getContext(),
-                                   StVT, (128 / StVT.getSizeInBits()));
-
-    SDValue alignLoadVec;
-    SDValue basePtr = SN->getBasePtr();
-    SDValue the_chain = SN->getChain();
-    SDValue insertEltOffs;
-
-    if (alignment == 16) {
-      ConstantSDNode *CN;
-
-      // Special cases for a known aligned load to simplify the base pointer
-      // and insertion byte:
-      if (basePtr.getOpcode() == ISD::ADD
-          && (CN = dyn_cast<ConstantSDNode>(basePtr.getOperand(1))) != 0) {
-        // Known offset into basePtr
-        int64_t offset = CN->getSExtValue();
-
-        // Simplify the base pointer for this case:
-        basePtr = basePtr.getOperand(0);
-        insertEltOffs = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT,
-                                    basePtr,
-                                    DAG.getConstant((offset & 0xf), PtrVT));
-
-        if ((offset & ~0xf) > 0) {
-          basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT,
-                                basePtr,
-                                DAG.getConstant((offset & ~0xf), PtrVT));
-        }
-      } else {
-        // Otherwise, assume it's at byte 0 of basePtr
-        insertEltOffs = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT,
-                                    basePtr,
-                                    DAG.getConstant(0, PtrVT));
-      }
-    } else {
-      // Unaligned load: must be more pessimistic about addressing modes:
-      if (basePtr.getOpcode() == ISD::ADD) {
-        MachineFunction &MF = DAG.getMachineFunction();
-        MachineRegisterInfo &RegInfo = MF.getRegInfo();
-        unsigned VReg = RegInfo.createVirtualRegister(&SPU::R32CRegClass);
-        SDValue Flag;
-
-        SDValue Op0 = basePtr.getOperand(0);
-        SDValue Op1 = basePtr.getOperand(1);
-
-        if (isa<ConstantSDNode>(Op1)) {
-          // Convert the (add <ptr>, <const>) to an indirect address contained
-          // in a register. Note that this is done because we need to avoid
-          // creating a 0(reg) d-form address due to the SPU's block loads.
-          basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, Op0, Op1);
-          the_chain = DAG.getCopyToReg(the_chain, dl, VReg, basePtr, Flag);
-          basePtr = DAG.getCopyFromReg(the_chain, dl, VReg, PtrVT);
-        } else {
-          // Convert the (add <arg1>, <arg2>) to an indirect address, which
-          // will likely be lowered as a reg(reg) x-form address.
-          basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, Op0, Op1);
-        }
-      } else {
-        basePtr = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT,
-                              basePtr,
-                              DAG.getConstant(0, PtrVT));
-      }
-
-      // Insertion point is solely determined by basePtr's contents
-      insertEltOffs = DAG.getNode(ISD::ADD, dl, PtrVT,
-                                  basePtr,
-                                  DAG.getConstant(0, PtrVT));
-    }
-
-    // Re-emit as a v16i8 vector load
-    alignLoadVec = DAG.getLoad(MVT::v16i8, dl, the_chain, basePtr,
-                               SN->getSrcValue(), SN->getSrcValueOffset(),
-                               SN->isVolatile(), 16);
-
-    // Update the chain
-    the_chain = alignLoadVec.getValue(1);
-
-    LoadSDNode *LN = cast<LoadSDNode>(alignLoadVec);
-    SDValue theValue = SN->getValue();
-    SDValue result;
-
-    if (StVT != VT
-        && (theValue.getOpcode() == ISD::AssertZext
-            || theValue.getOpcode() == ISD::AssertSext)) {
-      // Drill down and get the value for zero- and sign-extended
-      // quantities
-      theValue = theValue.getOperand(0);
-    }
-
-    // If the base pointer is already a D-form address, then just create
-    // a new D-form address with a slot offset and the orignal base pointer.
-    // Otherwise generate a D-form address with the slot offset relative
-    // to the stack pointer, which is always aligned.
-#if !defined(NDEBUG)
-      if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) {
-        errs() << "CellSPU LowerSTORE: basePtr = ";
-        basePtr.getNode()->dump(&DAG);
-        errs() << "\n";
-      }
-#endif
-
-    SDValue insertEltOp =
-            DAG.getNode(SPUISD::SHUFFLE_MASK, dl, vecVT, insertEltOffs);
-    SDValue vectorizeOp =
-            DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, vecVT, theValue);
-
-    result = DAG.getNode(SPUISD::SHUFB, dl, vecVT,
-                         vectorizeOp, alignLoadVec,
-                         DAG.getNode(ISD::BIT_CONVERT, dl,
-                                     MVT::v4i32, insertEltOp));
-
-    result = DAG.getStore(the_chain, dl, result, basePtr,
-                          LN->getSrcValue(), LN->getSrcValueOffset(),
-                          LN->isVolatile(), LN->getAlignment());
-
-#if 0 && !defined(NDEBUG)
-    if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) {
-      const SDValue &currentRoot = DAG.getRoot();
-
-      DAG.setRoot(result);
-      errs() << "------- CellSPU:LowerStore result:\n";
-      DAG.dump();
-      errs() << "-------\n";
-      DAG.setRoot(currentRoot);
-    }
-#endif
-
-    return result;
-    /*UNREACHED*/
-  }
-  case ISD::PRE_INC:
-  case ISD::PRE_DEC:
-  case ISD::POST_INC:
-  case ISD::POST_DEC:
-  case ISD::LAST_INDEXED_MODE:
-    {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "LowerLOAD: Got a LoadSDNode with an addr mode other than "
-            "UNINDEXED\n";
-      Msg << (unsigned) SN->getAddressingMode();
-      llvm_report_error(Msg.str());
-      /*NOTREACHED*/
-    }
-  }
-
-  return SDValue();
-}
-
-//! Generate the address of a constant pool entry.
-static SDValue
-LowerConstantPool(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
-  EVT PtrVT = Op.getValueType();
-  ConstantPoolSDNode *CP = cast<ConstantPoolSDNode>(Op);
-  Constant *C = CP->getConstVal();
-  SDValue CPI = DAG.getTargetConstantPool(C, PtrVT, CP->getAlignment());
-  SDValue Zero = DAG.getConstant(0, PtrVT);
-  const TargetMachine &TM = DAG.getTarget();
-  // FIXME there is no actual debug info here
-  DebugLoc dl = Op.getDebugLoc();
-
-  if (TM.getRelocationModel() == Reloc::Static) {
-    if (!ST->usingLargeMem()) {
-      // Just return the SDValue with the constant pool address in it.
-      return DAG.getNode(SPUISD::AFormAddr, dl, PtrVT, CPI, Zero);
-    } else {
-      SDValue Hi = DAG.getNode(SPUISD::Hi, dl, PtrVT, CPI, Zero);
-      SDValue Lo = DAG.getNode(SPUISD::Lo, dl, PtrVT, CPI, Zero);
-      return DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, Hi, Lo);
-    }
-  }
-
-  llvm_unreachable("LowerConstantPool: Relocation model other than static"
-                   " not supported.");
-  return SDValue();
-}
-
-//! Alternate entry point for generating the address of a constant pool entry
-SDValue
-SPU::LowerConstantPool(SDValue Op, SelectionDAG &DAG, const SPUTargetMachine &TM) {
-  return ::LowerConstantPool(Op, DAG, TM.getSubtargetImpl());
-}
-
-static SDValue
-LowerJumpTable(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
-  EVT PtrVT = Op.getValueType();
-  JumpTableSDNode *JT = cast<JumpTableSDNode>(Op);
-  SDValue JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT);
-  SDValue Zero = DAG.getConstant(0, PtrVT);
-  const TargetMachine &TM = DAG.getTarget();
-  // FIXME there is no actual debug info here
-  DebugLoc dl = Op.getDebugLoc();
-
-  if (TM.getRelocationModel() == Reloc::Static) {
-    if (!ST->usingLargeMem()) {
-      return DAG.getNode(SPUISD::AFormAddr, dl, PtrVT, JTI, Zero);
-    } else {
-      SDValue Hi = DAG.getNode(SPUISD::Hi, dl, PtrVT, JTI, Zero);
-      SDValue Lo = DAG.getNode(SPUISD::Lo, dl, PtrVT, JTI, Zero);
-      return DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, Hi, Lo);
-    }
-  }
-
-  llvm_unreachable("LowerJumpTable: Relocation model other than static"
-                   " not supported.");
-  return SDValue();
-}
-
-static SDValue
-LowerGlobalAddress(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
-  EVT PtrVT = Op.getValueType();
-  GlobalAddressSDNode *GSDN = cast<GlobalAddressSDNode>(Op);
-  GlobalValue *GV = GSDN->getGlobal();
-  SDValue GA = DAG.getTargetGlobalAddress(GV, PtrVT, GSDN->getOffset());
-  const TargetMachine &TM = DAG.getTarget();
-  SDValue Zero = DAG.getConstant(0, PtrVT);
-  // FIXME there is no actual debug info here
-  DebugLoc dl = Op.getDebugLoc();
-
-  if (TM.getRelocationModel() == Reloc::Static) {
-    if (!ST->usingLargeMem()) {
-      return DAG.getNode(SPUISD::AFormAddr, dl, PtrVT, GA, Zero);
-    } else {
-      SDValue Hi = DAG.getNode(SPUISD::Hi, dl, PtrVT, GA, Zero);
-      SDValue Lo = DAG.getNode(SPUISD::Lo, dl, PtrVT, GA, Zero);
-      return DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, Hi, Lo);
-    }
-  } else {
-    llvm_report_error("LowerGlobalAddress: Relocation model other than static"
-                      "not supported.");
-    /*NOTREACHED*/
-  }
-
-  return SDValue();
-}
-
-//! Custom lower double precision floating point constants
-static SDValue
-LowerConstantFP(SDValue Op, SelectionDAG &DAG) {
-  EVT VT = Op.getValueType();
-  // FIXME there is no actual debug info here
-  DebugLoc dl = Op.getDebugLoc();
-
-  if (VT == MVT::f64) {
-    ConstantFPSDNode *FP = cast<ConstantFPSDNode>(Op.getNode());
-
-    assert((FP != 0) &&
-           "LowerConstantFP: Node is not ConstantFPSDNode");
-
-    uint64_t dbits = DoubleToBits(FP->getValueAPF().convertToDouble());
-    SDValue T = DAG.getConstant(dbits, MVT::i64);
-    SDValue Tvec = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v2i64, T, T);
-    return DAG.getNode(SPUISD::VEC2PREFSLOT, dl, VT,
-                       DAG.getNode(ISD::BIT_CONVERT, dl, MVT::v2f64, Tvec));
-  }
-
-  return SDValue();
-}
-
-SDValue
-SPUTargetLowering::LowerFormalArguments(SDValue Chain,
-                                        unsigned CallConv, bool isVarArg,
-                                        const SmallVectorImpl<ISD::InputArg>
-                                          &Ins,
-                                        DebugLoc dl, SelectionDAG &DAG,
-                                        SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineRegisterInfo &RegInfo = MF.getRegInfo();
-
-  const unsigned *ArgRegs = SPURegisterInfo::getArgRegs();
-  const unsigned NumArgRegs = SPURegisterInfo::getNumArgRegs();
-
-  unsigned ArgOffset = SPUFrameInfo::minStackSize();
-  unsigned ArgRegIdx = 0;
-  unsigned StackSlotSize = SPUFrameInfo::stackSlotSize();
-
-  EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
-
-  // Add DAG nodes to load the arguments or copy them out of registers.
-  for (unsigned ArgNo = 0, e = Ins.size(); ArgNo != e; ++ArgNo) {
-    EVT ObjectVT = Ins[ArgNo].VT;
-    unsigned ObjSize = ObjectVT.getSizeInBits()/8;
-    SDValue ArgVal;
-
-    if (ArgRegIdx < NumArgRegs) {
-      const TargetRegisterClass *ArgRegClass;
-
-      switch (ObjectVT.getSimpleVT().SimpleTy) {
-      default: {
-        std::string msg;
-        raw_string_ostream Msg(msg);
-        Msg << "LowerFormalArguments Unhandled argument type: "
-             << ObjectVT.getEVTString();
-        llvm_report_error(Msg.str());
-      }
-      case MVT::i8:
-        ArgRegClass = &SPU::R8CRegClass;
-        break;
-      case MVT::i16:
-        ArgRegClass = &SPU::R16CRegClass;
-        break;
-      case MVT::i32:
-        ArgRegClass = &SPU::R32CRegClass;
-        break;
-      case MVT::i64:
-        ArgRegClass = &SPU::R64CRegClass;
-        break;
-      case MVT::i128:
-        ArgRegClass = &SPU::GPRCRegClass;
-        break;
-      case MVT::f32:
-        ArgRegClass = &SPU::R32FPRegClass;
-        break;
-      case MVT::f64:
-        ArgRegClass = &SPU::R64FPRegClass;
-        break;
-      case MVT::v2f64:
-      case MVT::v4f32:
-      case MVT::v2i64:
-      case MVT::v4i32:
-      case MVT::v8i16:
-      case MVT::v16i8:
-        ArgRegClass = &SPU::VECREGRegClass;
-        break;
-      }
-
-      unsigned VReg = RegInfo.createVirtualRegister(ArgRegClass);
-      RegInfo.addLiveIn(ArgRegs[ArgRegIdx], VReg);
-      ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, ObjectVT);
-      ++ArgRegIdx;
-    } else {
-      // We need to load the argument to a virtual register if we determined
-      // above that we ran out of physical registers of the appropriate type
-      // or we're forced to do vararg
-      int FI = MFI->CreateFixedObject(ObjSize, ArgOffset);
-      SDValue FIN = DAG.getFrameIndex(FI, PtrVT);
-      ArgVal = DAG.getLoad(ObjectVT, dl, Chain, FIN, NULL, 0);
-      ArgOffset += StackSlotSize;
-    }
-
-    InVals.push_back(ArgVal);
-    // Update the chain
-    Chain = ArgVal.getOperand(0);
-  }
-
-  // vararg handling:
-  if (isVarArg) {
-    // unsigned int ptr_size = PtrVT.getSizeInBits() / 8;
-    // We will spill (79-3)+1 registers to the stack
-    SmallVector<SDValue, 79-3+1> MemOps;
-
-    // Create the frame slot
-
-    for (; ArgRegIdx != NumArgRegs; ++ArgRegIdx) {
-      VarArgsFrameIndex = MFI->CreateFixedObject(StackSlotSize, ArgOffset);
-      SDValue FIN = DAG.getFrameIndex(VarArgsFrameIndex, PtrVT);
-      SDValue ArgVal = DAG.getRegister(ArgRegs[ArgRegIdx], MVT::v16i8);
-      SDValue Store = DAG.getStore(Chain, dl, ArgVal, FIN, NULL, 0);
-      Chain = Store.getOperand(0);
-      MemOps.push_back(Store);
-
-      // Increment address by stack slot size for the next stored argument
-      ArgOffset += StackSlotSize;
-    }
-    if (!MemOps.empty())
-      Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                          &MemOps[0], MemOps.size());
-  }
-
-  return Chain;
-}
-
-/// isLSAAddress - Return the immediate to use if the specified
-/// value is representable as a LSA address.
-static SDNode *isLSAAddress(SDValue Op, SelectionDAG &DAG) {
-  ConstantSDNode *C = dyn_cast<ConstantSDNode>(Op);
-  if (!C) return 0;
-
-  int Addr = C->getZExtValue();
-  if ((Addr & 3) != 0 ||  // Low 2 bits are implicitly zero.
-      (Addr << 14 >> 14) != Addr)
-    return 0;  // Top 14 bits have to be sext of immediate.
-
-  return DAG.getConstant((int)C->getZExtValue() >> 2, MVT::i32).getNode();
-}
-
-SDValue
-SPUTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                             unsigned CallConv, bool isVarArg,
-                             bool isTailCall,
-                             const SmallVectorImpl<ISD::OutputArg> &Outs,
-                             const SmallVectorImpl<ISD::InputArg> &Ins,
-                             DebugLoc dl, SelectionDAG &DAG,
-                             SmallVectorImpl<SDValue> &InVals) {
-
-  const SPUSubtarget *ST = SPUTM.getSubtargetImpl();
-  unsigned NumOps     = Outs.size();
-  unsigned StackSlotSize = SPUFrameInfo::stackSlotSize();
-  const unsigned *ArgRegs = SPURegisterInfo::getArgRegs();
-  const unsigned NumArgRegs = SPURegisterInfo::getNumArgRegs();
-
-  // Handy pointer type
-  EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
-
-  // Accumulate how many bytes are to be pushed on the stack, including the
-  // linkage area, and parameter passing area.  According to the SPU ABI,
-  // we minimally need space for [LR] and [SP]
-  unsigned NumStackBytes = SPUFrameInfo::minStackSize();
-
-  // Set up a copy of the stack pointer for use loading and storing any
-  // arguments that may not fit in the registers available for argument
-  // passing.
-  SDValue StackPtr = DAG.getRegister(SPU::R1, MVT::i32);
-
-  // Figure out which arguments are going to go in registers, and which in
-  // memory.
-  unsigned ArgOffset = SPUFrameInfo::minStackSize(); // Just below [LR]
-  unsigned ArgRegIdx = 0;
-
-  // Keep track of registers passing arguments
-  std::vector<std::pair<unsigned, SDValue> > RegsToPass;
-  // And the arguments passed on the stack
-  SmallVector<SDValue, 8> MemOpChains;
-
-  for (unsigned i = 0; i != NumOps; ++i) {
-    SDValue Arg = Outs[i].Val;
-
-    // PtrOff will be used to store the current argument to the stack if a
-    // register cannot be found for it.
-    SDValue PtrOff = DAG.getConstant(ArgOffset, StackPtr.getValueType());
-    PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff);
-
-    switch (Arg.getValueType().getSimpleVT().SimpleTy) {
-    default: llvm_unreachable("Unexpected ValueType for argument!");
-    case MVT::i8:
-    case MVT::i16:
-    case MVT::i32:
-    case MVT::i64:
-    case MVT::i128:
-      if (ArgRegIdx != NumArgRegs) {
-        RegsToPass.push_back(std::make_pair(ArgRegs[ArgRegIdx++], Arg));
-      } else {
-        MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0));
-        ArgOffset += StackSlotSize;
-      }
-      break;
-    case MVT::f32:
-    case MVT::f64:
-      if (ArgRegIdx != NumArgRegs) {
-        RegsToPass.push_back(std::make_pair(ArgRegs[ArgRegIdx++], Arg));
-      } else {
-        MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0));
-        ArgOffset += StackSlotSize;
-      }
-      break;
-    case MVT::v2i64:
-    case MVT::v2f64:
-    case MVT::v4f32:
-    case MVT::v4i32:
-    case MVT::v8i16:
-    case MVT::v16i8:
-      if (ArgRegIdx != NumArgRegs) {
-        RegsToPass.push_back(std::make_pair(ArgRegs[ArgRegIdx++], Arg));
-      } else {
-        MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0));
-        ArgOffset += StackSlotSize;
-      }
-      break;
-    }
-  }
-
-  // Update number of stack bytes actually used, insert a call sequence start
-  NumStackBytes = (ArgOffset - SPUFrameInfo::minStackSize());
-  Chain = DAG.getCALLSEQ_START(Chain, DAG.getIntPtrConstant(NumStackBytes,
-                                                            true));
-
-  if (!MemOpChains.empty()) {
-    // Adjust the stack pointer for the stack arguments.
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                        &MemOpChains[0], MemOpChains.size());
-  }
-
-  // Build a sequence of copy-to-reg nodes chained together with token chain
-  // and flag operands which copy the outgoing args into the appropriate regs.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first,
-                             RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  SmallVector<SDValue, 8> Ops;
-  unsigned CallOpc = SPUISD::CALL;
-
-  // If the callee is a GlobalAddress/ExternalSymbol node (quite common, every
-  // direct call is) turn it into a TargetGlobalAddress/TargetExternalSymbol
-  // node so that legalize doesn't hack it.
-  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee)) {
-    GlobalValue *GV = G->getGlobal();
-    EVT CalleeVT = Callee.getValueType();
-    SDValue Zero = DAG.getConstant(0, PtrVT);
-    SDValue GA = DAG.getTargetGlobalAddress(GV, CalleeVT);
-
-    if (!ST->usingLargeMem()) {
-      // Turn calls to targets that are defined (i.e., have bodies) into BRSL
-      // style calls, otherwise, external symbols are BRASL calls. This assumes
-      // that declared/defined symbols are in the same compilation unit and can
-      // be reached through PC-relative jumps.
-      //
-      // NOTE:
-      // This may be an unsafe assumption for JIT and really large compilation
-      // units.
-      if (GV->isDeclaration()) {
-        Callee = DAG.getNode(SPUISD::AFormAddr, dl, CalleeVT, GA, Zero);
-      } else {
-        Callee = DAG.getNode(SPUISD::PCRelAddr, dl, CalleeVT, GA, Zero);
-      }
-    } else {
-      // "Large memory" mode: Turn all calls into indirect calls with a X-form
-      // address pairs:
-      Callee = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, GA, Zero);
-    }
-  } else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee)) {
-    EVT CalleeVT = Callee.getValueType();
-    SDValue Zero = DAG.getConstant(0, PtrVT);
-    SDValue ExtSym = DAG.getTargetExternalSymbol(S->getSymbol(),
-        Callee.getValueType());
-
-    if (!ST->usingLargeMem()) {
-      Callee = DAG.getNode(SPUISD::AFormAddr, dl, CalleeVT, ExtSym, Zero);
-    } else {
-      Callee = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT, ExtSym, Zero);
-    }
-  } else if (SDNode *Dest = isLSAAddress(Callee, DAG)) {
-    // If this is an absolute destination address that appears to be a legal
-    // local store address, use the munged value.
-    Callee = SDValue(Dest, 0);
-  }
-
-  Ops.push_back(Chain);
-  Ops.push_back(Callee);
-
-  // Add argument registers to the end of the list so that they are known live
-  // into the call.
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i)
-    Ops.push_back(DAG.getRegister(RegsToPass[i].first,
-                                  RegsToPass[i].second.getValueType()));
-
-  if (InFlag.getNode())
-    Ops.push_back(InFlag);
-  // Returns a chain and a flag for retval copy to use.
-  Chain = DAG.getNode(CallOpc, dl, DAG.getVTList(MVT::Other, MVT::Flag),
-                      &Ops[0], Ops.size());
-  InFlag = Chain.getValue(1);
-
-  Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(NumStackBytes, true),
-                             DAG.getIntPtrConstant(0, true), InFlag);
-  if (!Ins.empty())
-    InFlag = Chain.getValue(1);
-
-  // If the function returns void, just return the chain.
-  if (Ins.empty())
-    return Chain;
-
-  // If the call has results, copy the values out of the ret val registers.
-  switch (Ins[0].VT.getSimpleVT().SimpleTy) {
-  default: llvm_unreachable("Unexpected ret value!");
-  case MVT::Other: break;
-  case MVT::i32:
-    if (Ins.size() > 1 && Ins[1].VT == MVT::i32) {
-      Chain = DAG.getCopyFromReg(Chain, dl, SPU::R4,
-                                 MVT::i32, InFlag).getValue(1);
-      InVals.push_back(Chain.getValue(0));
-      Chain = DAG.getCopyFromReg(Chain, dl, SPU::R3, MVT::i32,
-                                 Chain.getValue(2)).getValue(1);
-      InVals.push_back(Chain.getValue(0));
-    } else {
-      Chain = DAG.getCopyFromReg(Chain, dl, SPU::R3, MVT::i32,
-                                 InFlag).getValue(1);
-      InVals.push_back(Chain.getValue(0));
-    }
-    break;
-  case MVT::i64:
-    Chain = DAG.getCopyFromReg(Chain, dl, SPU::R3, MVT::i64,
-                               InFlag).getValue(1);
-    InVals.push_back(Chain.getValue(0));
-    break;
-  case MVT::i128:
-    Chain = DAG.getCopyFromReg(Chain, dl, SPU::R3, MVT::i128,
-                               InFlag).getValue(1);
-    InVals.push_back(Chain.getValue(0));
-    break;
-  case MVT::f32:
-  case MVT::f64:
-    Chain = DAG.getCopyFromReg(Chain, dl, SPU::R3, Ins[0].VT,
-                               InFlag).getValue(1);
-    InVals.push_back(Chain.getValue(0));
-    break;
-  case MVT::v2f64:
-  case MVT::v2i64:
-  case MVT::v4f32:
-  case MVT::v4i32:
-  case MVT::v8i16:
-  case MVT::v16i8:
-    Chain = DAG.getCopyFromReg(Chain, dl, SPU::R3, Ins[0].VT,
-                                   InFlag).getValue(1);
-    InVals.push_back(Chain.getValue(0));
-    break;
-  }
-
-  return Chain;
-}
-
-SDValue
-SPUTargetLowering::LowerReturn(SDValue Chain,
-                               unsigned CallConv, bool isVarArg,
-                               const SmallVectorImpl<ISD::OutputArg> &Outs,
-                               DebugLoc dl, SelectionDAG &DAG) {
-
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-  CCInfo.AnalyzeReturn(Outs, RetCC_SPU);
-
-  // If this is the first return lowered for this function, add the regs to the
-  // liveout set for the function.
-  if (DAG.getMachineFunction().getRegInfo().liveout_empty()) {
-    for (unsigned i = 0; i != RVLocs.size(); ++i)
-      DAG.getMachineFunction().getRegInfo().addLiveOut(RVLocs[i].getLocReg());
-  }
-
-  SDValue Flag;
-
-  // Copy the result values into the output registers.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-    assert(VA.isRegLoc() && "Can only return in registers!");
-    Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(),
-                             Outs[i].Val, Flag);
-    Flag = Chain.getValue(1);
-  }
-
-  if (Flag.getNode())
-    return DAG.getNode(SPUISD::RET_FLAG, dl, MVT::Other, Chain, Flag);
-  else
-    return DAG.getNode(SPUISD::RET_FLAG, dl, MVT::Other, Chain);
-}
-
-
-//===----------------------------------------------------------------------===//
-// Vector related lowering:
-//===----------------------------------------------------------------------===//
-
-static ConstantSDNode *
-getVecImm(SDNode *N) {
-  SDValue OpVal(0, 0);
-
-  // Check to see if this buildvec has a single non-undef value in its elements.
-  for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) {
-    if (N->getOperand(i).getOpcode() == ISD::UNDEF) continue;
-    if (OpVal.getNode() == 0)
-      OpVal = N->getOperand(i);
-    else if (OpVal != N->getOperand(i))
-      return 0;
-  }
-
-  if (OpVal.getNode() != 0) {
-    if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(OpVal)) {
-      return CN;
-    }
-  }
-
-  return 0;
-}
-
-/// get_vec_i18imm - Test if this vector is a vector filled with the same value
-/// and the value fits into an unsigned 18-bit constant, and if so, return the
-/// constant
-SDValue SPU::get_vec_u18imm(SDNode *N, SelectionDAG &DAG,
-                              EVT ValueType) {
-  if (ConstantSDNode *CN = getVecImm(N)) {
-    uint64_t Value = CN->getZExtValue();
-    if (ValueType == MVT::i64) {
-      uint64_t UValue = CN->getZExtValue();
-      uint32_t upper = uint32_t(UValue >> 32);
-      uint32_t lower = uint32_t(UValue);
-      if (upper != lower)
-        return SDValue();
-      Value = Value >> 32;
-    }
-    if (Value <= 0x3ffff)
-      return DAG.getTargetConstant(Value, ValueType);
-  }
-
-  return SDValue();
-}
-
-/// get_vec_i16imm - Test if this vector is a vector filled with the same value
-/// and the value fits into a signed 16-bit constant, and if so, return the
-/// constant
-SDValue SPU::get_vec_i16imm(SDNode *N, SelectionDAG &DAG,
-                              EVT ValueType) {
-  if (ConstantSDNode *CN = getVecImm(N)) {
-    int64_t Value = CN->getSExtValue();
-    if (ValueType == MVT::i64) {
-      uint64_t UValue = CN->getZExtValue();
-      uint32_t upper = uint32_t(UValue >> 32);
-      uint32_t lower = uint32_t(UValue);
-      if (upper != lower)
-        return SDValue();
-      Value = Value >> 32;
-    }
-    if (Value >= -(1 << 15) && Value <= ((1 << 15) - 1)) {
-      return DAG.getTargetConstant(Value, ValueType);
-    }
-  }
-
-  return SDValue();
-}
-
-/// get_vec_i10imm - Test if this vector is a vector filled with the same value
-/// and the value fits into a signed 10-bit constant, and if so, return the
-/// constant
-SDValue SPU::get_vec_i10imm(SDNode *N, SelectionDAG &DAG,
-                              EVT ValueType) {
-  if (ConstantSDNode *CN = getVecImm(N)) {
-    int64_t Value = CN->getSExtValue();
-    if (ValueType == MVT::i64) {
-      uint64_t UValue = CN->getZExtValue();
-      uint32_t upper = uint32_t(UValue >> 32);
-      uint32_t lower = uint32_t(UValue);
-      if (upper != lower)
-        return SDValue();
-      Value = Value >> 32;
-    }
-    if (isS10Constant(Value))
-      return DAG.getTargetConstant(Value, ValueType);
-  }
-
-  return SDValue();
-}
-
-/// get_vec_i8imm - Test if this vector is a vector filled with the same value
-/// and the value fits into a signed 8-bit constant, and if so, return the
-/// constant.
-///
-/// @note: The incoming vector is v16i8 because that's the only way we can load
-/// constant vectors. Thus, we test to see if the upper and lower bytes are the
-/// same value.
-SDValue SPU::get_vec_i8imm(SDNode *N, SelectionDAG &DAG,
-                             EVT ValueType) {
-  if (ConstantSDNode *CN = getVecImm(N)) {
-    int Value = (int) CN->getZExtValue();
-    if (ValueType == MVT::i16
-        && Value <= 0xffff                 /* truncated from uint64_t */
-        && ((short) Value >> 8) == ((short) Value & 0xff))
-      return DAG.getTargetConstant(Value & 0xff, ValueType);
-    else if (ValueType == MVT::i8
-             && (Value & 0xff) == Value)
-      return DAG.getTargetConstant(Value, ValueType);
-  }
-
-  return SDValue();
-}
-
-/// get_ILHUvec_imm - Test if this vector is a vector filled with the same value
-/// and the value fits into a signed 16-bit constant, and if so, return the
-/// constant
-SDValue SPU::get_ILHUvec_imm(SDNode *N, SelectionDAG &DAG,
-                               EVT ValueType) {
-  if (ConstantSDNode *CN = getVecImm(N)) {
-    uint64_t Value = CN->getZExtValue();
-    if ((ValueType == MVT::i32
-          && ((unsigned) Value & 0xffff0000) == (unsigned) Value)
-        || (ValueType == MVT::i64 && (Value & 0xffff0000) == Value))
-      return DAG.getTargetConstant(Value >> 16, ValueType);
-  }
-
-  return SDValue();
-}
-
-/// get_v4i32_imm - Catch-all for general 32-bit constant vectors
-SDValue SPU::get_v4i32_imm(SDNode *N, SelectionDAG &DAG) {
-  if (ConstantSDNode *CN = getVecImm(N)) {
-    return DAG.getTargetConstant((unsigned) CN->getZExtValue(), MVT::i32);
-  }
-
-  return SDValue();
-}
-
-/// get_v4i32_imm - Catch-all for general 64-bit constant vectors
-SDValue SPU::get_v2i64_imm(SDNode *N, SelectionDAG &DAG) {
-  if (ConstantSDNode *CN = getVecImm(N)) {
-    return DAG.getTargetConstant((unsigned) CN->getZExtValue(), MVT::i64);
-  }
-
-  return SDValue();
-}
-
-//! Lower a BUILD_VECTOR instruction creatively:
-static SDValue
-LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) {
-  EVT VT = Op.getValueType();
-  EVT EltVT = VT.getVectorElementType();
-  DebugLoc dl = Op.getDebugLoc();
-  BuildVectorSDNode *BCN = dyn_cast<BuildVectorSDNode>(Op.getNode());
-  assert(BCN != 0 && "Expected BuildVectorSDNode in SPU LowerBUILD_VECTOR");
-  unsigned minSplatBits = EltVT.getSizeInBits();
-
-  if (minSplatBits < 16)
-    minSplatBits = 16;
-
-  APInt APSplatBits, APSplatUndef;
-  unsigned SplatBitSize;
-  bool HasAnyUndefs;
-
-  if (!BCN->isConstantSplat(APSplatBits, APSplatUndef, SplatBitSize,
-                            HasAnyUndefs, minSplatBits)
-      || minSplatBits < SplatBitSize)
-    return SDValue();   // Wasn't a constant vector or splat exceeded min
-
-  uint64_t SplatBits = APSplatBits.getZExtValue();
-
-  switch (VT.getSimpleVT().SimpleTy) {
-  default: {
-    std::string msg;
-    raw_string_ostream Msg(msg);
-    Msg << "CellSPU: Unhandled VT in LowerBUILD_VECTOR, VT = "
-         << VT.getEVTString();
-    llvm_report_error(Msg.str());
-    /*NOTREACHED*/
-  }
-  case MVT::v4f32: {
-    uint32_t Value32 = uint32_t(SplatBits);
-    assert(SplatBitSize == 32
-           && "LowerBUILD_VECTOR: Unexpected floating point vector element.");
-    // NOTE: pretend the constant is an integer. LLVM won't load FP constants
-    SDValue T = DAG.getConstant(Value32, MVT::i32);
-    return DAG.getNode(ISD::BIT_CONVERT, dl, MVT::v4f32,
-                       DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32, T,T,T,T));
-    break;
-  }
-  case MVT::v2f64: {
-    uint64_t f64val = uint64_t(SplatBits);
-    assert(SplatBitSize == 64
-           && "LowerBUILD_VECTOR: 64-bit float vector size > 8 bytes.");
-    // NOTE: pretend the constant is an integer. LLVM won't load FP constants
-    SDValue T = DAG.getConstant(f64val, MVT::i64);
-    return DAG.getNode(ISD::BIT_CONVERT, dl, MVT::v2f64,
-                       DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v2i64, T, T));
-    break;
-  }
-  case MVT::v16i8: {
-   // 8-bit constants have to be expanded to 16-bits
-   unsigned short Value16 = SplatBits /* | (SplatBits << 8) */;
-   SmallVector<SDValue, 8> Ops;
-
-   Ops.assign(8, DAG.getConstant(Value16, MVT::i16));
-   return DAG.getNode(ISD::BIT_CONVERT, dl, VT,
-                      DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v8i16, &Ops[0], Ops.size()));
-  }
-  case MVT::v8i16: {
-    unsigned short Value16 = SplatBits;
-    SDValue T = DAG.getConstant(Value16, EltVT);
-    SmallVector<SDValue, 8> Ops;
-
-    Ops.assign(8, T);
-    return DAG.getNode(ISD::BUILD_VECTOR, dl, VT, &Ops[0], Ops.size());
-  }
-  case MVT::v4i32: {
-    SDValue T = DAG.getConstant(unsigned(SplatBits), VT.getVectorElementType());
-    return DAG.getNode(ISD::BUILD_VECTOR, dl, VT, T, T, T, T);
-  }
-  case MVT::v2i32: {
-    SDValue T = DAG.getConstant(unsigned(SplatBits), VT.getVectorElementType());
-    return DAG.getNode(ISD::BUILD_VECTOR, dl, VT, T, T);
-  }
-  case MVT::v2i64: {
-    return SPU::LowerV2I64Splat(VT, DAG, SplatBits, dl);
-  }
-  }
-
-  return SDValue();
-}
-
-/*!
- */
-SDValue
-SPU::LowerV2I64Splat(EVT OpVT, SelectionDAG& DAG, uint64_t SplatVal,
-                     DebugLoc dl) {
-  uint32_t upper = uint32_t(SplatVal >> 32);
-  uint32_t lower = uint32_t(SplatVal);
-
-  if (upper == lower) {
-    // Magic constant that can be matched by IL, ILA, et. al.
-    SDValue Val = DAG.getTargetConstant(upper, MVT::i32);
-    return DAG.getNode(ISD::BIT_CONVERT, dl, OpVT,
-                       DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                   Val, Val, Val, Val));
-  } else {
-    bool upper_special, lower_special;
-
-    // NOTE: This code creates common-case shuffle masks that can be easily
-    // detected as common expressions. It is not attempting to create highly
-    // specialized masks to replace any and all 0's, 0xff's and 0x80's.
-
-    // Detect if the upper or lower half is a special shuffle mask pattern:
-    upper_special = (upper == 0 || upper == 0xffffffff || upper == 0x80000000);
-    lower_special = (lower == 0 || lower == 0xffffffff || lower == 0x80000000);
-
-    // Both upper and lower are special, lower to a constant pool load:
-    if (lower_special && upper_special) {
-      SDValue SplatValCN = DAG.getConstant(SplatVal, MVT::i64);
-      return DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v2i64,
-                         SplatValCN, SplatValCN);
-    }
-
-    SDValue LO32;
-    SDValue HI32;
-    SmallVector<SDValue, 16> ShufBytes;
-    SDValue Result;
-
-    // Create lower vector if not a special pattern
-    if (!lower_special) {
-      SDValue LO32C = DAG.getConstant(lower, MVT::i32);
-      LO32 = DAG.getNode(ISD::BIT_CONVERT, dl, OpVT,
-                         DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                     LO32C, LO32C, LO32C, LO32C));
-    }
-
-    // Create upper vector if not a special pattern
-    if (!upper_special) {
-      SDValue HI32C = DAG.getConstant(upper, MVT::i32);
-      HI32 = DAG.getNode(ISD::BIT_CONVERT, dl, OpVT,
-                         DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                     HI32C, HI32C, HI32C, HI32C));
-    }
-
-    // If either upper or lower are special, then the two input operands are
-    // the same (basically, one of them is a "don't care")
-    if (lower_special)
-      LO32 = HI32;
-    if (upper_special)
-      HI32 = LO32;
-
-    for (int i = 0; i < 4; ++i) {
-      uint64_t val = 0;
-      for (int j = 0; j < 4; ++j) {
-        SDValue V;
-        bool process_upper, process_lower;
-        val <<= 8;
-        process_upper = (upper_special && (i & 1) == 0);
-        process_lower = (lower_special && (i & 1) == 1);
-
-        if (process_upper || process_lower) {
-          if ((process_upper && upper == 0)
-                  || (process_lower && lower == 0))
-            val |= 0x80;
-          else if ((process_upper && upper == 0xffffffff)
-                  || (process_lower && lower == 0xffffffff))
-            val |= 0xc0;
-          else if ((process_upper && upper == 0x80000000)
-                  || (process_lower && lower == 0x80000000))
-            val |= (j == 0 ? 0xe0 : 0x80);
-        } else
-          val |= i * 4 + j + ((i & 1) * 16);
-      }
-
-      ShufBytes.push_back(DAG.getConstant(val, MVT::i32));
-    }
-
-    return DAG.getNode(SPUISD::SHUFB, dl, OpVT, HI32, LO32,
-                       DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                   &ShufBytes[0], ShufBytes.size()));
-  }
-}
-
-/// LowerVECTOR_SHUFFLE - Lower a vector shuffle (V1, V2, V3) to something on
-/// which the Cell can operate. The code inspects V3 to ascertain whether the
-/// permutation vector, V3, is monotonically increasing with one "exception"
-/// element, e.g., (0, 1, _, 3). If this is the case, then generate a
-/// SHUFFLE_MASK synthetic instruction. Otherwise, spill V3 to the constant pool.
-/// In either case, the net result is going to eventually invoke SHUFB to
-/// permute/shuffle the bytes from V1 and V2.
-/// \note
-/// SHUFFLE_MASK is eventually selected as one of the C*D instructions, generate
-/// control word for byte/halfword/word insertion. This takes care of a single
-/// element move from V2 into V1.
-/// \note
-/// SPUISD::SHUFB is eventually selected as Cell's <i>shufb</i> instructions.
-static SDValue LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) {
-  const ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(Op);
-  SDValue V1 = Op.getOperand(0);
-  SDValue V2 = Op.getOperand(1);
-  DebugLoc dl = Op.getDebugLoc();
-
-  if (V2.getOpcode() == ISD::UNDEF) V2 = V1;
-
-  // If we have a single element being moved from V1 to V2, this can be handled
-  // using the C*[DX] compute mask instructions, but the vector elements have
-  // to be monotonically increasing with one exception element.
-  EVT VecVT = V1.getValueType();
-  EVT EltVT = VecVT.getVectorElementType();
-  unsigned EltsFromV2 = 0;
-  unsigned V2Elt = 0;
-  unsigned V2EltIdx0 = 0;
-  unsigned CurrElt = 0;
-  unsigned MaxElts = VecVT.getVectorNumElements();
-  unsigned PrevElt = 0;
-  unsigned V0Elt = 0;
-  bool monotonic = true;
-  bool rotate = true;
-
-  if (EltVT == MVT::i8) {
-    V2EltIdx0 = 16;
-  } else if (EltVT == MVT::i16) {
-    V2EltIdx0 = 8;
-  } else if (EltVT == MVT::i32 || EltVT == MVT::f32) {
-    V2EltIdx0 = 4;
-  } else if (EltVT == MVT::i64 || EltVT == MVT::f64) {
-    V2EltIdx0 = 2;
-  } else
-    llvm_unreachable("Unhandled vector type in LowerVECTOR_SHUFFLE");
-
-  for (unsigned i = 0; i != MaxElts; ++i) {
-    if (SVN->getMaskElt(i) < 0)
-      continue;
-    
-    unsigned SrcElt = SVN->getMaskElt(i);
-
-    if (monotonic) {
-      if (SrcElt >= V2EltIdx0) {
-        if (1 >= (++EltsFromV2)) {
-          V2Elt = (V2EltIdx0 - SrcElt) << 2;
-        }
-      } else if (CurrElt != SrcElt) {
-        monotonic = false;
-      }
-
-      ++CurrElt;
-    }
-
-    if (rotate) {
-      if (PrevElt > 0 && SrcElt < MaxElts) {
-        if ((PrevElt == SrcElt - 1)
-            || (PrevElt == MaxElts - 1 && SrcElt == 0)) {
-          PrevElt = SrcElt;
-          if (SrcElt == 0)
-            V0Elt = i;
-        } else {
-          rotate = false;
-        }
-      } else if (PrevElt == 0) {
-        // First time through, need to keep track of previous element
-        PrevElt = SrcElt;
-      } else {
-        // This isn't a rotation, takes elements from vector 2
-        rotate = false;
-      }
-    }
-  }
-
-  if (EltsFromV2 == 1 && monotonic) {
-    // Compute mask and shuffle
-    MachineFunction &MF = DAG.getMachineFunction();
-    MachineRegisterInfo &RegInfo = MF.getRegInfo();
-    unsigned VReg = RegInfo.createVirtualRegister(&SPU::R32CRegClass);
-    EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
-    // Initialize temporary register to 0
-    SDValue InitTempReg =
-      DAG.getCopyToReg(DAG.getEntryNode(), dl, VReg, DAG.getConstant(0, PtrVT));
-    // Copy register's contents as index in SHUFFLE_MASK:
-    SDValue ShufMaskOp =
-      DAG.getNode(SPUISD::SHUFFLE_MASK, dl, MVT::v4i32,
-                  DAG.getTargetConstant(V2Elt, MVT::i32),
-                  DAG.getCopyFromReg(InitTempReg, dl, VReg, PtrVT));
-    // Use shuffle mask in SHUFB synthetic instruction:
-    return DAG.getNode(SPUISD::SHUFB, dl, V1.getValueType(), V2, V1,
-                       ShufMaskOp);
-  } else if (rotate) {
-    int rotamt = (MaxElts - V0Elt) * EltVT.getSizeInBits()/8;
-
-    return DAG.getNode(SPUISD::ROTBYTES_LEFT, dl, V1.getValueType(),
-                       V1, DAG.getConstant(rotamt, MVT::i16));
-  } else {
-   // Convert the SHUFFLE_VECTOR mask's input element units to the
-   // actual bytes.
-    unsigned BytesPerElement = EltVT.getSizeInBits()/8;
-
-    SmallVector<SDValue, 16> ResultMask;
-    for (unsigned i = 0, e = MaxElts; i != e; ++i) {
-      unsigned SrcElt = SVN->getMaskElt(i) < 0 ? 0 : SVN->getMaskElt(i);
-
-      for (unsigned j = 0; j < BytesPerElement; ++j)
-        ResultMask.push_back(DAG.getConstant(SrcElt*BytesPerElement+j,MVT::i8));
-    }
-
-    SDValue VPermMask = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v16i8,
-                                    &ResultMask[0], ResultMask.size());
-    return DAG.getNode(SPUISD::SHUFB, dl, V1.getValueType(), V1, V2, VPermMask);
-  }
-}
-
-static SDValue LowerSCALAR_TO_VECTOR(SDValue Op, SelectionDAG &DAG) {
-  SDValue Op0 = Op.getOperand(0);                     // Op0 = the scalar
-  DebugLoc dl = Op.getDebugLoc();
-
-  if (Op0.getNode()->getOpcode() == ISD::Constant) {
-    // For a constant, build the appropriate constant vector, which will
-    // eventually simplify to a vector register load.
-
-    ConstantSDNode *CN = cast<ConstantSDNode>(Op0.getNode());
-    SmallVector<SDValue, 16> ConstVecValues;
-    EVT VT;
-    size_t n_copies;
-
-    // Create a constant vector:
-    switch (Op.getValueType().getSimpleVT().SimpleTy) {
-    default: llvm_unreachable("Unexpected constant value type in "
-                              "LowerSCALAR_TO_VECTOR");
-    case MVT::v16i8: n_copies = 16; VT = MVT::i8; break;
-    case MVT::v8i16: n_copies = 8; VT = MVT::i16; break;
-    case MVT::v4i32: n_copies = 4; VT = MVT::i32; break;
-    case MVT::v4f32: n_copies = 4; VT = MVT::f32; break;
-    case MVT::v2i64: n_copies = 2; VT = MVT::i64; break;
-    case MVT::v2f64: n_copies = 2; VT = MVT::f64; break;
-    }
-
-    SDValue CValue = DAG.getConstant(CN->getZExtValue(), VT);
-    for (size_t j = 0; j < n_copies; ++j)
-      ConstVecValues.push_back(CValue);
-
-    return DAG.getNode(ISD::BUILD_VECTOR, dl, Op.getValueType(),
-                       &ConstVecValues[0], ConstVecValues.size());
-  } else {
-    // Otherwise, copy the value from one register to another:
-    switch (Op0.getValueType().getSimpleVT().SimpleTy) {
-    default: llvm_unreachable("Unexpected value type in LowerSCALAR_TO_VECTOR");
-    case MVT::i8:
-    case MVT::i16:
-    case MVT::i32:
-    case MVT::i64:
-    case MVT::f32:
-    case MVT::f64:
-      return DAG.getNode(SPUISD::PREFSLOT2VEC, dl, Op.getValueType(), Op0, Op0);
-    }
-  }
-
-  return SDValue();
-}
-
-static SDValue LowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) {
-  EVT VT = Op.getValueType();
-  SDValue N = Op.getOperand(0);
-  SDValue Elt = Op.getOperand(1);
-  DebugLoc dl = Op.getDebugLoc();
-  SDValue retval;
-
-  if (ConstantSDNode *C = dyn_cast<ConstantSDNode>(Elt)) {
-    // Constant argument:
-    int EltNo = (int) C->getZExtValue();
-
-    // sanity checks:
-    if (VT == MVT::i8 && EltNo >= 16)
-      llvm_unreachable("SPU LowerEXTRACT_VECTOR_ELT: i8 extraction slot > 15");
-    else if (VT == MVT::i16 && EltNo >= 8)
-      llvm_unreachable("SPU LowerEXTRACT_VECTOR_ELT: i16 extraction slot > 7");
-    else if (VT == MVT::i32 && EltNo >= 4)
-      llvm_unreachable("SPU LowerEXTRACT_VECTOR_ELT: i32 extraction slot > 4");
-    else if (VT == MVT::i64 && EltNo >= 2)
-      llvm_unreachable("SPU LowerEXTRACT_VECTOR_ELT: i64 extraction slot > 2");
-
-    if (EltNo == 0 && (VT == MVT::i32 || VT == MVT::i64)) {
-      // i32 and i64: Element 0 is the preferred slot
-      return DAG.getNode(SPUISD::VEC2PREFSLOT, dl, VT, N);
-    }
-
-    // Need to generate shuffle mask and extract:
-    int prefslot_begin = -1, prefslot_end = -1;
-    int elt_byte = EltNo * VT.getSizeInBits() / 8;
-
-    switch (VT.getSimpleVT().SimpleTy) {
-    default:
-      assert(false && "Invalid value type!");
-    case MVT::i8: {
-      prefslot_begin = prefslot_end = 3;
-      break;
-    }
-    case MVT::i16: {
-      prefslot_begin = 2; prefslot_end = 3;
-      break;
-    }
-    case MVT::i32:
-    case MVT::f32: {
-      prefslot_begin = 0; prefslot_end = 3;
-      break;
-    }
-    case MVT::i64:
-    case MVT::f64: {
-      prefslot_begin = 0; prefslot_end = 7;
-      break;
-    }
-    }
-
-    assert(prefslot_begin != -1 && prefslot_end != -1 &&
-           "LowerEXTRACT_VECTOR_ELT: preferred slots uninitialized");
-
-    unsigned int ShufBytes[16] = {
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-    };
-    for (int i = 0; i < 16; ++i) {
-      // zero fill uppper part of preferred slot, don't care about the
-      // other slots:
-      unsigned int mask_val;
-      if (i <= prefslot_end) {
-        mask_val =
-          ((i < prefslot_begin)
-           ? 0x80
-           : elt_byte + (i - prefslot_begin));
-
-        ShufBytes[i] = mask_val;
-      } else
-        ShufBytes[i] = ShufBytes[i % (prefslot_end + 1)];
-    }
-
-    SDValue ShufMask[4];
-    for (unsigned i = 0; i < sizeof(ShufMask)/sizeof(ShufMask[0]); ++i) {
-      unsigned bidx = i * 4;
-      unsigned int bits = ((ShufBytes[bidx] << 24) |
-                           (ShufBytes[bidx+1] << 16) |
-                           (ShufBytes[bidx+2] << 8) |
-                           ShufBytes[bidx+3]);
-      ShufMask[i] = DAG.getConstant(bits, MVT::i32);
-    }
-
-    SDValue ShufMaskVec =
-      DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                  &ShufMask[0], sizeof(ShufMask)/sizeof(ShufMask[0]));
-
-    retval = DAG.getNode(SPUISD::VEC2PREFSLOT, dl, VT,
-                         DAG.getNode(SPUISD::SHUFB, dl, N.getValueType(),
-                                     N, N, ShufMaskVec));
-  } else {
-    // Variable index: Rotate the requested element into slot 0, then replicate
-    // slot 0 across the vector
-    EVT VecVT = N.getValueType();
-    if (!VecVT.isSimple() || !VecVT.isVector() || !VecVT.is128BitVector()) {
-      llvm_report_error("LowerEXTRACT_VECTOR_ELT: Must have a simple, 128-bit"
-                        "vector type!");
-    }
-
-    // Make life easier by making sure the index is zero-extended to i32
-    if (Elt.getValueType() != MVT::i32)
-      Elt = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i32, Elt);
-
-    // Scale the index to a bit/byte shift quantity
-    APInt scaleFactor =
-            APInt(32, uint64_t(16 / N.getValueType().getVectorNumElements()), false);
-    unsigned scaleShift = scaleFactor.logBase2();
-    SDValue vecShift;
-
-    if (scaleShift > 0) {
-      // Scale the shift factor:
-      Elt = DAG.getNode(ISD::SHL, dl, MVT::i32, Elt,
-                        DAG.getConstant(scaleShift, MVT::i32));
-    }
-
-    vecShift = DAG.getNode(SPUISD::SHLQUAD_L_BYTES, dl, VecVT, N, Elt);
-
-    // Replicate the bytes starting at byte 0 across the entire vector (for
-    // consistency with the notion of a unified register set)
-    SDValue replicate;
-
-    switch (VT.getSimpleVT().SimpleTy) {
-    default:
-      llvm_report_error("LowerEXTRACT_VECTOR_ELT(varable): Unhandled vector"
-                        "type");
-      /*NOTREACHED*/
-    case MVT::i8: {
-      SDValue factor = DAG.getConstant(0x00000000, MVT::i32);
-      replicate = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                              factor, factor, factor, factor);
-      break;
-    }
-    case MVT::i16: {
-      SDValue factor = DAG.getConstant(0x00010001, MVT::i32);
-      replicate = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                              factor, factor, factor, factor);
-      break;
-    }
-    case MVT::i32:
-    case MVT::f32: {
-      SDValue factor = DAG.getConstant(0x00010203, MVT::i32);
-      replicate = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                              factor, factor, factor, factor);
-      break;
-    }
-    case MVT::i64:
-    case MVT::f64: {
-      SDValue loFactor = DAG.getConstant(0x00010203, MVT::i32);
-      SDValue hiFactor = DAG.getConstant(0x04050607, MVT::i32);
-      replicate = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                              loFactor, hiFactor, loFactor, hiFactor);
-      break;
-    }
-    }
-
-    retval = DAG.getNode(SPUISD::VEC2PREFSLOT, dl, VT,
-                         DAG.getNode(SPUISD::SHUFB, dl, VecVT,
-                                     vecShift, vecShift, replicate));
-  }
-
-  return retval;
-}
-
-static SDValue LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) {
-  SDValue VecOp = Op.getOperand(0);
-  SDValue ValOp = Op.getOperand(1);
-  SDValue IdxOp = Op.getOperand(2);
-  DebugLoc dl = Op.getDebugLoc();
-  EVT VT = Op.getValueType();
-
-  ConstantSDNode *CN = cast<ConstantSDNode>(IdxOp);
-  assert(CN != 0 && "LowerINSERT_VECTOR_ELT: Index is not constant!");
-
-  EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
-  // Use $sp ($1) because it's always 16-byte aligned and it's available:
-  SDValue Pointer = DAG.getNode(SPUISD::IndirectAddr, dl, PtrVT,
-                                DAG.getRegister(SPU::R1, PtrVT),
-                                DAG.getConstant(CN->getSExtValue(), PtrVT));
-  SDValue ShufMask = DAG.getNode(SPUISD::SHUFFLE_MASK, dl, VT, Pointer);
-
-  SDValue result =
-    DAG.getNode(SPUISD::SHUFB, dl, VT,
-                DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, VT, ValOp),
-                VecOp,
-                DAG.getNode(ISD::BIT_CONVERT, dl, MVT::v4i32, ShufMask));
-
-  return result;
-}
-
-static SDValue LowerI8Math(SDValue Op, SelectionDAG &DAG, unsigned Opc,
-                           const TargetLowering &TLI)
-{
-  SDValue N0 = Op.getOperand(0);      // Everything has at least one operand
-  DebugLoc dl = Op.getDebugLoc();
-  EVT ShiftVT = TLI.getShiftAmountTy();
-
-  assert(Op.getValueType() == MVT::i8);
-  switch (Opc) {
-  default:
-    llvm_unreachable("Unhandled i8 math operator");
-    /*NOTREACHED*/
-    break;
-  case ISD::ADD: {
-    // 8-bit addition: Promote the arguments up to 16-bits and truncate
-    // the result:
-    SDValue N1 = Op.getOperand(1);
-    N0 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i16, N0);
-    N1 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i16, N1);
-    return DAG.getNode(ISD::TRUNCATE, dl, MVT::i8,
-                       DAG.getNode(Opc, dl, MVT::i16, N0, N1));
-
-  }
-
-  case ISD::SUB: {
-    // 8-bit subtraction: Promote the arguments up to 16-bits and truncate
-    // the result:
-    SDValue N1 = Op.getOperand(1);
-    N0 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i16, N0);
-    N1 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i16, N1);
-    return DAG.getNode(ISD::TRUNCATE, dl, MVT::i8,
-                       DAG.getNode(Opc, dl, MVT::i16, N0, N1));
-  }
-  case ISD::ROTR:
-  case ISD::ROTL: {
-    SDValue N1 = Op.getOperand(1);
-    EVT N1VT = N1.getValueType();
-
-    N0 = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i16, N0);
-    if (!N1VT.bitsEq(ShiftVT)) {
-      unsigned N1Opc = N1.getValueType().bitsLT(ShiftVT)
-                       ? ISD::ZERO_EXTEND
-                       : ISD::TRUNCATE;
-      N1 = DAG.getNode(N1Opc, dl, ShiftVT, N1);
-    }
-
-    // Replicate lower 8-bits into upper 8:
-    SDValue ExpandArg =
-      DAG.getNode(ISD::OR, dl, MVT::i16, N0,
-                  DAG.getNode(ISD::SHL, dl, MVT::i16,
-                              N0, DAG.getConstant(8, MVT::i32)));
-
-    // Truncate back down to i8
-    return DAG.getNode(ISD::TRUNCATE, dl, MVT::i8,
-                       DAG.getNode(Opc, dl, MVT::i16, ExpandArg, N1));
-  }
-  case ISD::SRL:
-  case ISD::SHL: {
-    SDValue N1 = Op.getOperand(1);
-    EVT N1VT = N1.getValueType();
-
-    N0 = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i16, N0);
-    if (!N1VT.bitsEq(ShiftVT)) {
-      unsigned N1Opc = ISD::ZERO_EXTEND;
-
-      if (N1.getValueType().bitsGT(ShiftVT))
-        N1Opc = ISD::TRUNCATE;
-
-      N1 = DAG.getNode(N1Opc, dl, ShiftVT, N1);
-    }
-
-    return DAG.getNode(ISD::TRUNCATE, dl, MVT::i8,
-                       DAG.getNode(Opc, dl, MVT::i16, N0, N1));
-  }
-  case ISD::SRA: {
-    SDValue N1 = Op.getOperand(1);
-    EVT N1VT = N1.getValueType();
-
-    N0 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i16, N0);
-    if (!N1VT.bitsEq(ShiftVT)) {
-      unsigned N1Opc = ISD::SIGN_EXTEND;
-
-      if (N1VT.bitsGT(ShiftVT))
-        N1Opc = ISD::TRUNCATE;
-      N1 = DAG.getNode(N1Opc, dl, ShiftVT, N1);
-    }
-
-    return DAG.getNode(ISD::TRUNCATE, dl, MVT::i8,
-                       DAG.getNode(Opc, dl, MVT::i16, N0, N1));
-  }
-  case ISD::MUL: {
-    SDValue N1 = Op.getOperand(1);
-
-    N0 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i16, N0);
-    N1 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i16, N1);
-    return DAG.getNode(ISD::TRUNCATE, dl, MVT::i8,
-                       DAG.getNode(Opc, dl, MVT::i16, N0, N1));
-    break;
-  }
-  }
-
-  return SDValue();
-}
-
-//! Lower byte immediate operations for v16i8 vectors:
-static SDValue
-LowerByteImmed(SDValue Op, SelectionDAG &DAG) {
-  SDValue ConstVec;
-  SDValue Arg;
-  EVT VT = Op.getValueType();
-  DebugLoc dl = Op.getDebugLoc();
-
-  ConstVec = Op.getOperand(0);
-  Arg = Op.getOperand(1);
-  if (ConstVec.getNode()->getOpcode() != ISD::BUILD_VECTOR) {
-    if (ConstVec.getNode()->getOpcode() == ISD::BIT_CONVERT) {
-      ConstVec = ConstVec.getOperand(0);
-    } else {
-      ConstVec = Op.getOperand(1);
-      Arg = Op.getOperand(0);
-      if (ConstVec.getNode()->getOpcode() == ISD::BIT_CONVERT) {
-        ConstVec = ConstVec.getOperand(0);
-      }
-    }
-  }
-
-  if (ConstVec.getNode()->getOpcode() == ISD::BUILD_VECTOR) {
-    BuildVectorSDNode *BCN = dyn_cast<BuildVectorSDNode>(ConstVec.getNode());
-    assert(BCN != 0 && "Expected BuildVectorSDNode in SPU LowerByteImmed");
-
-    APInt APSplatBits, APSplatUndef;
-    unsigned SplatBitSize;
-    bool HasAnyUndefs;
-    unsigned minSplatBits = VT.getVectorElementType().getSizeInBits();
-
-    if (BCN->isConstantSplat(APSplatBits, APSplatUndef, SplatBitSize,
-                              HasAnyUndefs, minSplatBits)
-        && minSplatBits <= SplatBitSize) {
-      uint64_t SplatBits = APSplatBits.getZExtValue();
-      SDValue tc = DAG.getTargetConstant(SplatBits & 0xff, MVT::i8);
-
-      SmallVector<SDValue, 16> tcVec;
-      tcVec.assign(16, tc);
-      return DAG.getNode(Op.getNode()->getOpcode(), dl, VT, Arg,
-                         DAG.getNode(ISD::BUILD_VECTOR, dl, VT, &tcVec[0], tcVec.size()));
-    }
-  }
-
-  // These operations (AND, OR, XOR) are legal, they just couldn't be custom
-  // lowered.  Return the operation, rather than a null SDValue.
-  return Op;
-}
-
-//! Custom lowering for CTPOP (count population)
-/*!
-  Custom lowering code that counts the number ones in the input
-  operand. SPU has such an instruction, but it counts the number of
-  ones per byte, which then have to be accumulated.
-*/
-static SDValue LowerCTPOP(SDValue Op, SelectionDAG &DAG) {
-  EVT VT = Op.getValueType();
-  EVT vecVT = EVT::getVectorVT(*DAG.getContext(), 
-                               VT, (128 / VT.getSizeInBits()));
-  DebugLoc dl = Op.getDebugLoc();
-
-  switch (VT.getSimpleVT().SimpleTy) {
-  default:
-    assert(false && "Invalid value type!");
-  case MVT::i8: {
-    SDValue N = Op.getOperand(0);
-    SDValue Elt0 = DAG.getConstant(0, MVT::i32);
-
-    SDValue Promote = DAG.getNode(SPUISD::PREFSLOT2VEC, dl, vecVT, N, N);
-    SDValue CNTB = DAG.getNode(SPUISD::CNTB, dl, vecVT, Promote);
-
-    return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i8, CNTB, Elt0);
-  }
-
-  case MVT::i16: {
-    MachineFunction &MF = DAG.getMachineFunction();
-    MachineRegisterInfo &RegInfo = MF.getRegInfo();
-
-    unsigned CNTB_reg = RegInfo.createVirtualRegister(&SPU::R16CRegClass);
-
-    SDValue N = Op.getOperand(0);
-    SDValue Elt0 = DAG.getConstant(0, MVT::i16);
-    SDValue Mask0 = DAG.getConstant(0x0f, MVT::i16);
-    SDValue Shift1 = DAG.getConstant(8, MVT::i32);
-
-    SDValue Promote = DAG.getNode(SPUISD::PREFSLOT2VEC, dl, vecVT, N, N);
-    SDValue CNTB = DAG.getNode(SPUISD::CNTB, dl, vecVT, Promote);
-
-    // CNTB_result becomes the chain to which all of the virtual registers
-    // CNTB_reg, SUM1_reg become associated:
-    SDValue CNTB_result =
-      DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i16, CNTB, Elt0);
-
-    SDValue CNTB_rescopy =
-      DAG.getCopyToReg(CNTB_result, dl, CNTB_reg, CNTB_result);
-
-    SDValue Tmp1 = DAG.getCopyFromReg(CNTB_rescopy, dl, CNTB_reg, MVT::i16);
-
-    return DAG.getNode(ISD::AND, dl, MVT::i16,
-                       DAG.getNode(ISD::ADD, dl, MVT::i16,
-                                   DAG.getNode(ISD::SRL, dl, MVT::i16,
-                                               Tmp1, Shift1),
-                                   Tmp1),
-                       Mask0);
-  }
-
-  case MVT::i32: {
-    MachineFunction &MF = DAG.getMachineFunction();
-    MachineRegisterInfo &RegInfo = MF.getRegInfo();
-
-    unsigned CNTB_reg = RegInfo.createVirtualRegister(&SPU::R32CRegClass);
-    unsigned SUM1_reg = RegInfo.createVirtualRegister(&SPU::R32CRegClass);
-
-    SDValue N = Op.getOperand(0);
-    SDValue Elt0 = DAG.getConstant(0, MVT::i32);
-    SDValue Mask0 = DAG.getConstant(0xff, MVT::i32);
-    SDValue Shift1 = DAG.getConstant(16, MVT::i32);
-    SDValue Shift2 = DAG.getConstant(8, MVT::i32);
-
-    SDValue Promote = DAG.getNode(SPUISD::PREFSLOT2VEC, dl, vecVT, N, N);
-    SDValue CNTB = DAG.getNode(SPUISD::CNTB, dl, vecVT, Promote);
-
-    // CNTB_result becomes the chain to which all of the virtual registers
-    // CNTB_reg, SUM1_reg become associated:
-    SDValue CNTB_result =
-      DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i32, CNTB, Elt0);
-
-    SDValue CNTB_rescopy =
-      DAG.getCopyToReg(CNTB_result, dl, CNTB_reg, CNTB_result);
-
-    SDValue Comp1 =
-      DAG.getNode(ISD::SRL, dl, MVT::i32,
-                  DAG.getCopyFromReg(CNTB_rescopy, dl, CNTB_reg, MVT::i32),
-                  Shift1);
-
-    SDValue Sum1 =
-      DAG.getNode(ISD::ADD, dl, MVT::i32, Comp1,
-                  DAG.getCopyFromReg(CNTB_rescopy, dl, CNTB_reg, MVT::i32));
-
-    SDValue Sum1_rescopy =
-      DAG.getCopyToReg(CNTB_result, dl, SUM1_reg, Sum1);
-
-    SDValue Comp2 =
-      DAG.getNode(ISD::SRL, dl, MVT::i32,
-                  DAG.getCopyFromReg(Sum1_rescopy, dl, SUM1_reg, MVT::i32),
-                  Shift2);
-    SDValue Sum2 =
-      DAG.getNode(ISD::ADD, dl, MVT::i32, Comp2,
-                  DAG.getCopyFromReg(Sum1_rescopy, dl, SUM1_reg, MVT::i32));
-
-    return DAG.getNode(ISD::AND, dl, MVT::i32, Sum2, Mask0);
-  }
-
-  case MVT::i64:
-    break;
-  }
-
-  return SDValue();
-}
-
-//! Lower ISD::FP_TO_SINT, ISD::FP_TO_UINT for i32
-/*!
- f32->i32 passes through unchanged, whereas f64->i32 expands to a libcall.
- All conversions to i64 are expanded to a libcall.
- */
-static SDValue LowerFP_TO_INT(SDValue Op, SelectionDAG &DAG,
-                              SPUTargetLowering &TLI) {
-  EVT OpVT = Op.getValueType();
-  SDValue Op0 = Op.getOperand(0);
-  EVT Op0VT = Op0.getValueType();
-
-  if ((OpVT == MVT::i32 && Op0VT == MVT::f64)
-      || OpVT == MVT::i64) {
-    // Convert f32 / f64 to i32 / i64 via libcall.
-    RTLIB::Libcall LC =
-            (Op.getOpcode() == ISD::FP_TO_SINT)
-             ? RTLIB::getFPTOSINT(Op0VT, OpVT)
-             : RTLIB::getFPTOUINT(Op0VT, OpVT);
-    assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unexpectd fp-to-int conversion!");
-    SDValue Dummy;
-    return ExpandLibCall(LC, Op, DAG, false, Dummy, TLI);
-  }
-
-  return Op;
-}
-
-//! Lower ISD::SINT_TO_FP, ISD::UINT_TO_FP for i32
-/*!
- i32->f32 passes through unchanged, whereas i32->f64 is expanded to a libcall.
- All conversions from i64 are expanded to a libcall.
- */
-static SDValue LowerINT_TO_FP(SDValue Op, SelectionDAG &DAG,
-                              SPUTargetLowering &TLI) {
-  EVT OpVT = Op.getValueType();
-  SDValue Op0 = Op.getOperand(0);
-  EVT Op0VT = Op0.getValueType();
-
-  if ((OpVT == MVT::f64 && Op0VT == MVT::i32)
-      || Op0VT == MVT::i64) {
-    // Convert i32, i64 to f64 via libcall:
-    RTLIB::Libcall LC =
-            (Op.getOpcode() == ISD::SINT_TO_FP)
-             ? RTLIB::getSINTTOFP(Op0VT, OpVT)
-             : RTLIB::getUINTTOFP(Op0VT, OpVT);
-    assert(LC != RTLIB::UNKNOWN_LIBCALL && "Unexpectd int-to-fp conversion!");
-    SDValue Dummy;
-    return ExpandLibCall(LC, Op, DAG, false, Dummy, TLI);
-  }
-
-  return Op;
-}
-
-//! Lower ISD::SETCC
-/*!
- This handles MVT::f64 (double floating point) condition lowering
- */
-static SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG,
-                          const TargetLowering &TLI) {
-  CondCodeSDNode *CC = dyn_cast<CondCodeSDNode>(Op.getOperand(2));
-  DebugLoc dl = Op.getDebugLoc();
-  assert(CC != 0 && "LowerSETCC: CondCodeSDNode should not be null here!\n");
-
-  SDValue lhs = Op.getOperand(0);
-  SDValue rhs = Op.getOperand(1);
-  EVT lhsVT = lhs.getValueType();
-  assert(lhsVT == MVT::f64 && "LowerSETCC: type other than MVT::64\n");
-
-  EVT ccResultVT = TLI.getSetCCResultType(lhs.getValueType());
-  APInt ccResultOnes = APInt::getAllOnesValue(ccResultVT.getSizeInBits());
-  EVT IntVT(MVT::i64);
-
-  // Take advantage of the fact that (truncate (sra arg, 32)) is efficiently
-  // selected to a NOP:
-  SDValue i64lhs = DAG.getNode(ISD::BIT_CONVERT, dl, IntVT, lhs);
-  SDValue lhsHi32 =
-          DAG.getNode(ISD::TRUNCATE, dl, MVT::i32,
-                      DAG.getNode(ISD::SRL, dl, IntVT,
-                                  i64lhs, DAG.getConstant(32, MVT::i32)));
-  SDValue lhsHi32abs =
-          DAG.getNode(ISD::AND, dl, MVT::i32,
-                      lhsHi32, DAG.getConstant(0x7fffffff, MVT::i32));
-  SDValue lhsLo32 =
-          DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, i64lhs);
-
-  // SETO and SETUO only use the lhs operand:
-  if (CC->get() == ISD::SETO) {
-    // Evaluates to true if Op0 is not [SQ]NaN - lowers to the inverse of
-    // SETUO
-    APInt ccResultAllOnes = APInt::getAllOnesValue(ccResultVT.getSizeInBits());
-    return DAG.getNode(ISD::XOR, dl, ccResultVT,
-                       DAG.getSetCC(dl, ccResultVT,
-                                    lhs, DAG.getConstantFP(0.0, lhsVT),
-                                    ISD::SETUO),
-                       DAG.getConstant(ccResultAllOnes, ccResultVT));
-  } else if (CC->get() == ISD::SETUO) {
-    // Evaluates to true if Op0 is [SQ]NaN
-    return DAG.getNode(ISD::AND, dl, ccResultVT,
-                       DAG.getSetCC(dl, ccResultVT,
-                                    lhsHi32abs,
-                                    DAG.getConstant(0x7ff00000, MVT::i32),
-                                    ISD::SETGE),
-                       DAG.getSetCC(dl, ccResultVT,
-                                    lhsLo32,
-                                    DAG.getConstant(0, MVT::i32),
-                                    ISD::SETGT));
-  }
-
-  SDValue i64rhs = DAG.getNode(ISD::BIT_CONVERT, dl, IntVT, rhs);
-  SDValue rhsHi32 =
-          DAG.getNode(ISD::TRUNCATE, dl, MVT::i32,
-                      DAG.getNode(ISD::SRL, dl, IntVT,
-                                  i64rhs, DAG.getConstant(32, MVT::i32)));
-
-  // If a value is negative, subtract from the sign magnitude constant:
-  SDValue signMag2TC = DAG.getConstant(0x8000000000000000ULL, IntVT);
-
-  // Convert the sign-magnitude representation into 2's complement:
-  SDValue lhsSelectMask = DAG.getNode(ISD::SRA, dl, ccResultVT,
-                                      lhsHi32, DAG.getConstant(31, MVT::i32));
-  SDValue lhsSignMag2TC = DAG.getNode(ISD::SUB, dl, IntVT, signMag2TC, i64lhs);
-  SDValue lhsSelect =
-          DAG.getNode(ISD::SELECT, dl, IntVT,
-                      lhsSelectMask, lhsSignMag2TC, i64lhs);
-
-  SDValue rhsSelectMask = DAG.getNode(ISD::SRA, dl, ccResultVT,
-                                      rhsHi32, DAG.getConstant(31, MVT::i32));
-  SDValue rhsSignMag2TC = DAG.getNode(ISD::SUB, dl, IntVT, signMag2TC, i64rhs);
-  SDValue rhsSelect =
-          DAG.getNode(ISD::SELECT, dl, IntVT,
-                      rhsSelectMask, rhsSignMag2TC, i64rhs);
-
-  unsigned compareOp;
-
-  switch (CC->get()) {
-  case ISD::SETOEQ:
-  case ISD::SETUEQ:
-    compareOp = ISD::SETEQ; break;
-  case ISD::SETOGT:
-  case ISD::SETUGT:
-    compareOp = ISD::SETGT; break;
-  case ISD::SETOGE:
-  case ISD::SETUGE:
-    compareOp = ISD::SETGE; break;
-  case ISD::SETOLT:
-  case ISD::SETULT:
-    compareOp = ISD::SETLT; break;
-  case ISD::SETOLE:
-  case ISD::SETULE:
-    compareOp = ISD::SETLE; break;
-  case ISD::SETUNE:
-  case ISD::SETONE:
-    compareOp = ISD::SETNE; break;
-  default:
-    llvm_report_error("CellSPU ISel Select: unimplemented f64 condition");
-  }
-
-  SDValue result =
-          DAG.getSetCC(dl, ccResultVT, lhsSelect, rhsSelect,
-                       (ISD::CondCode) compareOp);
-
-  if ((CC->get() & 0x8) == 0) {
-    // Ordered comparison:
-    SDValue lhsNaN = DAG.getSetCC(dl, ccResultVT,
-                                  lhs, DAG.getConstantFP(0.0, MVT::f64),
-                                  ISD::SETO);
-    SDValue rhsNaN = DAG.getSetCC(dl, ccResultVT,
-                                  rhs, DAG.getConstantFP(0.0, MVT::f64),
-                                  ISD::SETO);
-    SDValue ordered = DAG.getNode(ISD::AND, dl, ccResultVT, lhsNaN, rhsNaN);
-
-    result = DAG.getNode(ISD::AND, dl, ccResultVT, ordered, result);
-  }
-
-  return result;
-}
-
-//! Lower ISD::SELECT_CC
-/*!
-  ISD::SELECT_CC can (generally) be implemented directly on the SPU using the
-  SELB instruction.
-
-  \note Need to revisit this in the future: if the code path through the true
-  and false value computations is longer than the latency of a branch (6
-  cycles), then it would be more advantageous to branch and insert a new basic
-  block and branch on the condition. However, this code does not make that
-  assumption, given the simplisitc uses so far.
- */
-
-static SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG,
-                              const TargetLowering &TLI) {
-  EVT VT = Op.getValueType();
-  SDValue lhs = Op.getOperand(0);
-  SDValue rhs = Op.getOperand(1);
-  SDValue trueval = Op.getOperand(2);
-  SDValue falseval = Op.getOperand(3);
-  SDValue condition = Op.getOperand(4);
-  DebugLoc dl = Op.getDebugLoc();
-
-  // NOTE: SELB's arguments: $rA, $rB, $mask
-  //
-  // SELB selects bits from $rA where bits in $mask are 0, bits from $rB
-  // where bits in $mask are 1. CCond will be inverted, having 1s where the
-  // condition was true and 0s where the condition was false. Hence, the
-  // arguments to SELB get reversed.
-
-  // Note: Really should be ISD::SELECT instead of SPUISD::SELB, but LLVM's
-  // legalizer insists on combining SETCC/SELECT into SELECT_CC, so we end up
-  // with another "cannot select select_cc" assert:
-
-  SDValue compare = DAG.getNode(ISD::SETCC, dl,
-                                TLI.getSetCCResultType(Op.getValueType()),
-                                lhs, rhs, condition);
-  return DAG.getNode(SPUISD::SELB, dl, VT, falseval, trueval, compare);
-}
-
-//! Custom lower ISD::TRUNCATE
-static SDValue LowerTRUNCATE(SDValue Op, SelectionDAG &DAG)
-{
-  // Type to truncate to
-  EVT VT = Op.getValueType();
-  MVT simpleVT = VT.getSimpleVT();
-  EVT VecVT = EVT::getVectorVT(*DAG.getContext(), 
-                               VT, (128 / VT.getSizeInBits()));
-  DebugLoc dl = Op.getDebugLoc();
-
-  // Type to truncate from
-  SDValue Op0 = Op.getOperand(0);
-  EVT Op0VT = Op0.getValueType();
-
-  if (Op0VT.getSimpleVT() == MVT::i128 && simpleVT == MVT::i64) {
-    // Create shuffle mask, least significant doubleword of quadword
-    unsigned maskHigh = 0x08090a0b;
-    unsigned maskLow = 0x0c0d0e0f;
-    // Use a shuffle to perform the truncation
-    SDValue shufMask = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                   DAG.getConstant(maskHigh, MVT::i32),
-                                   DAG.getConstant(maskLow, MVT::i32),
-                                   DAG.getConstant(maskHigh, MVT::i32),
-                                   DAG.getConstant(maskLow, MVT::i32));
-
-    SDValue truncShuffle = DAG.getNode(SPUISD::SHUFB, dl, VecVT,
-                                       Op0, Op0, shufMask);
-
-    return DAG.getNode(SPUISD::VEC2PREFSLOT, dl, VT, truncShuffle);
-  }
-
-  return SDValue();             // Leave the truncate unmolested
-}
-
-/*!
- * Emit the instruction sequence for i64/i32 -> i128 sign extend. The basic
- * algorithm is to duplicate the sign bit using rotmai to generate at
- * least one byte full of sign bits. Then propagate the "sign-byte" into
- * the leftmost words and the i64/i32 into the rightmost words using shufb.
- *
- * @param Op The sext operand
- * @param DAG The current DAG
- * @return The SDValue with the entire instruction sequence
- */
-static SDValue LowerSIGN_EXTEND(SDValue Op, SelectionDAG &DAG)
-{
-  DebugLoc dl = Op.getDebugLoc();
-
-  // Type to extend to
-  MVT OpVT = Op.getValueType().getSimpleVT();
-  EVT VecVT = EVT::getVectorVT(*DAG.getContext(),
-                               OpVT, (128 / OpVT.getSizeInBits()));
-
-  // Type to extend from
-  SDValue Op0 = Op.getOperand(0);
-  MVT Op0VT = Op0.getValueType().getSimpleVT();
-
-  // The type to extend to needs to be a i128 and
-  // the type to extend from needs to be i64 or i32.
-  assert((OpVT == MVT::i128 && (Op0VT == MVT::i64 || Op0VT == MVT::i32)) &&
-          "LowerSIGN_EXTEND: input and/or output operand have wrong size");
-
-  // Create shuffle mask
-  unsigned mask1 = 0x10101010; // byte 0 - 3 and 4 - 7
-  unsigned mask2 = Op0VT == MVT::i64 ? 0x00010203 : 0x10101010; // byte  8 - 11
-  unsigned mask3 = Op0VT == MVT::i64 ? 0x04050607 : 0x00010203; // byte 12 - 15
-  SDValue shufMask = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v4i32,
-                                 DAG.getConstant(mask1, MVT::i32),
-                                 DAG.getConstant(mask1, MVT::i32),
-                                 DAG.getConstant(mask2, MVT::i32),
-                                 DAG.getConstant(mask3, MVT::i32));
-
-  // Word wise arithmetic right shift to generate at least one byte
-  // that contains sign bits.
-  MVT mvt = Op0VT == MVT::i64 ? MVT::v2i64 : MVT::v4i32;
-  SDValue sraVal = DAG.getNode(ISD::SRA,
-                 dl,
-                 mvt,
-                 DAG.getNode(SPUISD::PREFSLOT2VEC, dl, mvt, Op0, Op0),
-                 DAG.getConstant(31, MVT::i32));
-
-  // Shuffle bytes - Copy the sign bits into the upper 64 bits
-  // and the input value into the lower 64 bits.
-  SDValue extShuffle = DAG.getNode(SPUISD::SHUFB, dl, mvt,
-      DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i128, Op0), sraVal, shufMask);
-
-  return DAG.getNode(ISD::BIT_CONVERT, dl, MVT::i128, extShuffle);
-}
-
-//! Custom (target-specific) lowering entry point
-/*!
-  This is where LLVM's DAG selection process calls to do target-specific
-  lowering of nodes.
- */
-SDValue
-SPUTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG)
-{
-  unsigned Opc = (unsigned) Op.getOpcode();
-  EVT VT = Op.getValueType();
-
-  switch (Opc) {
-  default: {
-#ifndef NDEBUG
-    errs() << "SPUTargetLowering::LowerOperation(): need to lower this!\n";
-    errs() << "Op.getOpcode() = " << Opc << "\n";
-    errs() << "*Op.getNode():\n";
-    Op.getNode()->dump();
-#endif
-    llvm_unreachable(0);
-  }
-  case ISD::LOAD:
-  case ISD::EXTLOAD:
-  case ISD::SEXTLOAD:
-  case ISD::ZEXTLOAD:
-    return LowerLOAD(Op, DAG, SPUTM.getSubtargetImpl());
-  case ISD::STORE:
-    return LowerSTORE(Op, DAG, SPUTM.getSubtargetImpl());
-  case ISD::ConstantPool:
-    return LowerConstantPool(Op, DAG, SPUTM.getSubtargetImpl());
-  case ISD::GlobalAddress:
-    return LowerGlobalAddress(Op, DAG, SPUTM.getSubtargetImpl());
-  case ISD::JumpTable:
-    return LowerJumpTable(Op, DAG, SPUTM.getSubtargetImpl());
-  case ISD::ConstantFP:
-    return LowerConstantFP(Op, DAG);
-
-  // i8, i64 math ops:
-  case ISD::ADD:
-  case ISD::SUB:
-  case ISD::ROTR:
-  case ISD::ROTL:
-  case ISD::SRL:
-  case ISD::SHL:
-  case ISD::SRA: {
-    if (VT == MVT::i8)
-      return LowerI8Math(Op, DAG, Opc, *this);
-    break;
-  }
-
-  case ISD::FP_TO_SINT:
-  case ISD::FP_TO_UINT:
-    return LowerFP_TO_INT(Op, DAG, *this);
-
-  case ISD::SINT_TO_FP:
-  case ISD::UINT_TO_FP:
-    return LowerINT_TO_FP(Op, DAG, *this);
-
-  // Vector-related lowering.
-  case ISD::BUILD_VECTOR:
-    return LowerBUILD_VECTOR(Op, DAG);
-  case ISD::SCALAR_TO_VECTOR:
-    return LowerSCALAR_TO_VECTOR(Op, DAG);
-  case ISD::VECTOR_SHUFFLE:
-    return LowerVECTOR_SHUFFLE(Op, DAG);
-  case ISD::EXTRACT_VECTOR_ELT:
-    return LowerEXTRACT_VECTOR_ELT(Op, DAG);
-  case ISD::INSERT_VECTOR_ELT:
-    return LowerINSERT_VECTOR_ELT(Op, DAG);
-
-  // Look for ANDBI, ORBI and XORBI opportunities and lower appropriately:
-  case ISD::AND:
-  case ISD::OR:
-  case ISD::XOR:
-    return LowerByteImmed(Op, DAG);
-
-  // Vector and i8 multiply:
-  case ISD::MUL:
-    if (VT == MVT::i8)
-      return LowerI8Math(Op, DAG, Opc, *this);
-
-  case ISD::CTPOP:
-    return LowerCTPOP(Op, DAG);
-
-  case ISD::SELECT_CC:
-    return LowerSELECT_CC(Op, DAG, *this);
-
-  case ISD::SETCC:
-    return LowerSETCC(Op, DAG, *this);
-
-  case ISD::TRUNCATE:
-    return LowerTRUNCATE(Op, DAG);
-
-  case ISD::SIGN_EXTEND:
-    return LowerSIGN_EXTEND(Op, DAG);
-  }
-
-  return SDValue();
-}
-
-void SPUTargetLowering::ReplaceNodeResults(SDNode *N,
-                                           SmallVectorImpl<SDValue>&Results,
-                                           SelectionDAG &DAG)
-{
-#if 0
-  unsigned Opc = (unsigned) N->getOpcode();
-  EVT OpVT = N->getValueType(0);
-
-  switch (Opc) {
-  default: {
-    errs() << "SPUTargetLowering::ReplaceNodeResults(): need to fix this!\n";
-    errs() << "Op.getOpcode() = " << Opc << "\n";
-    errs() << "*Op.getNode():\n";
-    N->dump();
-    abort();
-    /*NOTREACHED*/
-  }
-  }
-#endif
-
-  /* Otherwise, return unchanged */
-}
-
-//===----------------------------------------------------------------------===//
-// Target Optimization Hooks
-//===----------------------------------------------------------------------===//
-
-SDValue
-SPUTargetLowering::PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const
-{
-#if 0
-  TargetMachine &TM = getTargetMachine();
-#endif
-  const SPUSubtarget *ST = SPUTM.getSubtargetImpl();
-  SelectionDAG &DAG = DCI.DAG;
-  SDValue Op0 = N->getOperand(0);       // everything has at least one operand
-  EVT NodeVT = N->getValueType(0);      // The node's value type
-  EVT Op0VT = Op0.getValueType();       // The first operand's result
-  SDValue Result;                       // Initially, empty result
-  DebugLoc dl = N->getDebugLoc();
-
-  switch (N->getOpcode()) {
-  default: break;
-  case ISD::ADD: {
-    SDValue Op1 = N->getOperand(1);
-
-    if (Op0.getOpcode() == SPUISD::IndirectAddr
-        || Op1.getOpcode() == SPUISD::IndirectAddr) {
-      // Normalize the operands to reduce repeated code
-      SDValue IndirectArg = Op0, AddArg = Op1;
-
-      if (Op1.getOpcode() == SPUISD::IndirectAddr) {
-        IndirectArg = Op1;
-        AddArg = Op0;
-      }
-
-      if (isa<ConstantSDNode>(AddArg)) {
-        ConstantSDNode *CN0 = cast<ConstantSDNode > (AddArg);
-        SDValue IndOp1 = IndirectArg.getOperand(1);
-
-        if (CN0->isNullValue()) {
-          // (add (SPUindirect <arg>, <arg>), 0) ->
-          // (SPUindirect <arg>, <arg>)
-
-#if !defined(NDEBUG)
-          if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) {
-            errs() << "\n"
-                 << "Replace: (add (SPUindirect <arg>, <arg>), 0)\n"
-                 << "With:    (SPUindirect <arg>, <arg>)\n";
-          }
-#endif
-
-          return IndirectArg;
-        } else if (isa<ConstantSDNode>(IndOp1)) {
-          // (add (SPUindirect <arg>, <const>), <const>) ->
-          // (SPUindirect <arg>, <const + const>)
-          ConstantSDNode *CN1 = cast<ConstantSDNode > (IndOp1);
-          int64_t combinedConst = CN0->getSExtValue() + CN1->getSExtValue();
-          SDValue combinedValue = DAG.getConstant(combinedConst, Op0VT);
-
-#if !defined(NDEBUG)
-          if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) {
-            errs() << "\n"
-                 << "Replace: (add (SPUindirect <arg>, " << CN1->getSExtValue()
-                 << "), " << CN0->getSExtValue() << ")\n"
-                 << "With:    (SPUindirect <arg>, "
-                 << combinedConst << ")\n";
-          }
-#endif
-
-          return DAG.getNode(SPUISD::IndirectAddr, dl, Op0VT,
-                             IndirectArg, combinedValue);
-        }
-      }
-    }
-    break;
-  }
-  case ISD::SIGN_EXTEND:
-  case ISD::ZERO_EXTEND:
-  case ISD::ANY_EXTEND: {
-    if (Op0.getOpcode() == SPUISD::VEC2PREFSLOT && NodeVT == Op0VT) {
-      // (any_extend (SPUextract_elt0 <arg>)) ->
-      // (SPUextract_elt0 <arg>)
-      // Types must match, however...
-#if !defined(NDEBUG)
-      if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) {
-        errs() << "\nReplace: ";
-        N->dump(&DAG);
-        errs() << "\nWith:    ";
-        Op0.getNode()->dump(&DAG);
-        errs() << "\n";
-      }
-#endif
-
-      return Op0;
-    }
-    break;
-  }
-  case SPUISD::IndirectAddr: {
-    if (!ST->usingLargeMem() && Op0.getOpcode() == SPUISD::AFormAddr) {
-      ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(1));
-      if (CN != 0 && CN->getZExtValue() == 0) {
-        // (SPUindirect (SPUaform <addr>, 0), 0) ->
-        // (SPUaform <addr>, 0)
-
-        DEBUG(errs() << "Replace: ");
-        DEBUG(N->dump(&DAG));
-        DEBUG(errs() << "\nWith:    ");
-        DEBUG(Op0.getNode()->dump(&DAG));
-        DEBUG(errs() << "\n");
-
-        return Op0;
-      }
-    } else if (Op0.getOpcode() == ISD::ADD) {
-      SDValue Op1 = N->getOperand(1);
-      if (ConstantSDNode *CN1 = dyn_cast<ConstantSDNode>(Op1)) {
-        // (SPUindirect (add <arg>, <arg>), 0) ->
-        // (SPUindirect <arg>, <arg>)
-        if (CN1->isNullValue()) {
-
-#if !defined(NDEBUG)
-          if (DebugFlag && isCurrentDebugType(DEBUG_TYPE)) {
-            errs() << "\n"
-                 << "Replace: (SPUindirect (add <arg>, <arg>), 0)\n"
-                 << "With:    (SPUindirect <arg>, <arg>)\n";
-          }
-#endif
-
-          return DAG.getNode(SPUISD::IndirectAddr, dl, Op0VT,
-                             Op0.getOperand(0), Op0.getOperand(1));
-        }
-      }
-    }
-    break;
-  }
-  case SPUISD::SHLQUAD_L_BITS:
-  case SPUISD::SHLQUAD_L_BYTES:
-  case SPUISD::ROTBYTES_LEFT: {
-    SDValue Op1 = N->getOperand(1);
-
-    // Kill degenerate vector shifts:
-    if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Op1)) {
-      if (CN->isNullValue()) {
-        Result = Op0;
-      }
-    }
-    break;
-  }
-  case SPUISD::PREFSLOT2VEC: {
-    switch (Op0.getOpcode()) {
-    default:
-      break;
-    case ISD::ANY_EXTEND:
-    case ISD::ZERO_EXTEND:
-    case ISD::SIGN_EXTEND: {
-      // (SPUprefslot2vec (any|zero|sign_extend (SPUvec2prefslot <arg>))) ->
-      // <arg>
-      // but only if the SPUprefslot2vec and <arg> types match.
-      SDValue Op00 = Op0.getOperand(0);
-      if (Op00.getOpcode() == SPUISD::VEC2PREFSLOT) {
-        SDValue Op000 = Op00.getOperand(0);
-        if (Op000.getValueType() == NodeVT) {
-          Result = Op000;
-        }
-      }
-      break;
-    }
-    case SPUISD::VEC2PREFSLOT: {
-      // (SPUprefslot2vec (SPUvec2prefslot <arg>)) ->
-      // <arg>
-      Result = Op0.getOperand(0);
-      break;
-    }
-    }
-    break;
-  }
-  }
-
-  // Otherwise, return unchanged.
-#ifndef NDEBUG
-  if (Result.getNode()) {
-    DEBUG(errs() << "\nReplace.SPU: ");
-    DEBUG(N->dump(&DAG));
-    DEBUG(errs() << "\nWith:        ");
-    DEBUG(Result.getNode()->dump(&DAG));
-    DEBUG(errs() << "\n");
-  }
-#endif
-
-  return Result;
-}
-
-//===----------------------------------------------------------------------===//
-// Inline Assembly Support
-//===----------------------------------------------------------------------===//
-
-/// getConstraintType - Given a constraint letter, return the type of
-/// constraint it is for this target.
-SPUTargetLowering::ConstraintType
-SPUTargetLowering::getConstraintType(const std::string &ConstraintLetter) const {
-  if (ConstraintLetter.size() == 1) {
-    switch (ConstraintLetter[0]) {
-    default: break;
-    case 'b':
-    case 'r':
-    case 'f':
-    case 'v':
-    case 'y':
-      return C_RegisterClass;
-    }
-  }
-  return TargetLowering::getConstraintType(ConstraintLetter);
-}
-
-std::pair<unsigned, const TargetRegisterClass*>
-SPUTargetLowering::getRegForInlineAsmConstraint(const std::string &Constraint,
-                                                EVT VT) const
-{
-  if (Constraint.size() == 1) {
-    // GCC RS6000 Constraint Letters
-    switch (Constraint[0]) {
-    case 'b':   // R1-R31
-    case 'r':   // R0-R31
-      if (VT == MVT::i64)
-        return std::make_pair(0U, SPU::R64CRegisterClass);
-      return std::make_pair(0U, SPU::R32CRegisterClass);
-    case 'f':
-      if (VT == MVT::f32)
-        return std::make_pair(0U, SPU::R32FPRegisterClass);
-      else if (VT == MVT::f64)
-        return std::make_pair(0U, SPU::R64FPRegisterClass);
-      break;
-    case 'v':
-      return std::make_pair(0U, SPU::GPRCRegisterClass);
-    }
-  }
-
-  return TargetLowering::getRegForInlineAsmConstraint(Constraint, VT);
-}
-
-//! Compute used/known bits for a SPU operand
-void
-SPUTargetLowering::computeMaskedBitsForTargetNode(const SDValue Op,
-                                                  const APInt &Mask,
-                                                  APInt &KnownZero,
-                                                  APInt &KnownOne,
-                                                  const SelectionDAG &DAG,
-                                                  unsigned Depth ) const {
-#if 0
-  const uint64_t uint64_sizebits = sizeof(uint64_t) * CHAR_BIT;
-
-  switch (Op.getOpcode()) {
-  default:
-    // KnownZero = KnownOne = APInt(Mask.getBitWidth(), 0);
-    break;
-  case CALL:
-  case SHUFB:
-  case SHUFFLE_MASK:
-  case CNTB:
-  case SPUISD::PREFSLOT2VEC:
-  case SPUISD::LDRESULT:
-  case SPUISD::VEC2PREFSLOT:
-  case SPUISD::SHLQUAD_L_BITS:
-  case SPUISD::SHLQUAD_L_BYTES:
-  case SPUISD::VEC_ROTL:
-  case SPUISD::VEC_ROTR:
-  case SPUISD::ROTBYTES_LEFT:
-  case SPUISD::SELECT_MASK:
-  case SPUISD::SELB:
-  }
-#endif
-}
-
-unsigned
-SPUTargetLowering::ComputeNumSignBitsForTargetNode(SDValue Op,
-                                                   unsigned Depth) const {
-  switch (Op.getOpcode()) {
-  default:
-    return 1;
-
-  case ISD::SETCC: {
-    EVT VT = Op.getValueType();
-
-    if (VT != MVT::i8 && VT != MVT::i16 && VT != MVT::i32) {
-      VT = MVT::i32;
-    }
-    return VT.getSizeInBits();
-  }
-  }
-}
-
-// LowerAsmOperandForConstraint
-void
-SPUTargetLowering::LowerAsmOperandForConstraint(SDValue Op,
-                                                char ConstraintLetter,
-                                                bool hasMemory,
-                                                std::vector<SDValue> &Ops,
-                                                SelectionDAG &DAG) const {
-  // Default, for the time being, to the base class handler
-  TargetLowering::LowerAsmOperandForConstraint(Op, ConstraintLetter, hasMemory,
-                                               Ops, DAG);
-}
-
-/// isLegalAddressImmediate - Return true if the integer value can be used
-/// as the offset of the target addressing mode.
-bool SPUTargetLowering::isLegalAddressImmediate(int64_t V,
-                                                const Type *Ty) const {
-  // SPU's addresses are 256K:
-  return (V > -(1 << 18) && V < (1 << 18) - 1);
-}
-
-bool SPUTargetLowering::isLegalAddressImmediate(llvm::GlobalValue* GV) const {
-  return false;
-}
-
-bool
-SPUTargetLowering::isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const {
-  // The SPU target isn't yet aware of offsets.
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.h
deleted file mode 100644
index ca1a66c..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.h
+++ /dev/null
@@ -1,175 +0,0 @@
-//===-- SPUISelLowering.h - Cell SPU DAG Lowering Interface -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that Cell SPU uses to lower LLVM code into
-// a selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPU_ISELLOWERING_H
-#define SPU_ISELLOWERING_H
-
-#include "llvm/Target/TargetLowering.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "SPU.h"
-
-namespace llvm {
-  namespace SPUISD {
-    enum NodeType {
-      // Start the numbering where the builting ops and target ops leave off.
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-
-      // Pseudo instructions:
-      RET_FLAG,                 ///< Return with flag, matched by bi instruction
-
-      Hi,                       ///< High address component (upper 16)
-      Lo,                       ///< Low address component (lower 16)
-      PCRelAddr,                ///< Program counter relative address
-      AFormAddr,                ///< A-form address (local store)
-      IndirectAddr,             ///< D-Form "imm($r)" and X-form "$r($r)"
-
-      LDRESULT,                 ///< Load result (value, chain)
-      CALL,                     ///< CALL instruction
-      SHUFB,                    ///< Vector shuffle (permute)
-      SHUFFLE_MASK,             ///< Shuffle mask
-      CNTB,                     ///< Count leading ones in bytes
-      PREFSLOT2VEC,             ///< Promote scalar->vector
-      VEC2PREFSLOT,             ///< Extract element 0
-      SHLQUAD_L_BITS,           ///< Rotate quad left, by bits
-      SHLQUAD_L_BYTES,          ///< Rotate quad left, by bytes
-      VEC_ROTL,                 ///< Vector rotate left
-      VEC_ROTR,                 ///< Vector rotate right
-      ROTBYTES_LEFT,            ///< Rotate bytes (loads -> ROTQBYI)
-      ROTBYTES_LEFT_BITS,       ///< Rotate bytes left by bit shift count
-      SELECT_MASK,              ///< Select Mask (FSM, FSMB, FSMH, FSMBI)
-      SELB,                     ///< Select bits -> (b & mask) | (a & ~mask)
-      // Markers: These aren't used to generate target-dependent nodes, but
-      // are used during instruction selection.
-      ADD64_MARKER,             ///< i64 addition marker
-      SUB64_MARKER,             ///< i64 subtraction marker
-      MUL64_MARKER,             ///< i64 multiply marker
-      LAST_SPUISD               ///< Last user-defined instruction
-    };
-  }
-
-  //! Utility functions specific to CellSPU:
-  namespace SPU {
-    SDValue get_vec_u18imm(SDNode *N, SelectionDAG &DAG,
-                             EVT ValueType);
-    SDValue get_vec_i16imm(SDNode *N, SelectionDAG &DAG,
-                             EVT ValueType);
-    SDValue get_vec_i10imm(SDNode *N, SelectionDAG &DAG,
-                             EVT ValueType);
-    SDValue get_vec_i8imm(SDNode *N, SelectionDAG &DAG,
-                            EVT ValueType);
-    SDValue get_ILHUvec_imm(SDNode *N, SelectionDAG &DAG,
-                              EVT ValueType);
-    SDValue get_v4i32_imm(SDNode *N, SelectionDAG &DAG);
-    SDValue get_v2i64_imm(SDNode *N, SelectionDAG &DAG);
-
-    SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG,
-                              const SPUTargetMachine &TM);
-    //! Simplify a EVT::v2i64 constant splat to CellSPU-ready form
-    SDValue LowerV2I64Splat(EVT OpVT, SelectionDAG &DAG, uint64_t splat,
-                             DebugLoc dl);
-  }
-
-  class SPUTargetMachine;            // forward dec'l.
-
-  class SPUTargetLowering :
-    public TargetLowering
-  {
-    int VarArgsFrameIndex;            // FrameIndex for start of varargs area.
-    SPUTargetMachine &SPUTM;
-
-  public:
-    //! The venerable constructor
-    /*!
-     This is where the CellSPU backend sets operation handling (i.e., legal,
-     custom, expand or promote.)
-     */
-    SPUTargetLowering(SPUTargetMachine &TM);
-
-    //! Get the target machine
-    SPUTargetMachine &getSPUTargetMachine() {
-      return SPUTM;
-    }
-
-    /// getTargetNodeName() - This method returns the name of a target specific
-    /// DAG node.
-    virtual const char *getTargetNodeName(unsigned Opcode) const;
-
-    /// getSetCCResultType - Return the ValueType for ISD::SETCC
-    virtual MVT::SimpleValueType getSetCCResultType(EVT VT) const;
-
-    //! Custom lowering hooks
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-
-    //! Custom lowering hook for nodes with illegal result types.
-    virtual void ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue>&Results,
-                                    SelectionDAG &DAG);
-
-    virtual SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const;
-
-    virtual void computeMaskedBitsForTargetNode(const SDValue Op,
-                                                const APInt &Mask,
-                                                APInt &KnownZero,
-                                                APInt &KnownOne,
-                                                const SelectionDAG &DAG,
-                                                unsigned Depth = 0) const;
-
-    virtual unsigned ComputeNumSignBitsForTargetNode(SDValue Op,
-                                                   unsigned Depth = 0) const;
-
-    ConstraintType getConstraintType(const std::string &ConstraintLetter) const;
-
-    std::pair<unsigned, const TargetRegisterClass*>
-      getRegForInlineAsmConstraint(const std::string &Constraint,
-                                   EVT VT) const;
-
-    void LowerAsmOperandForConstraint(SDValue Op, char ConstraintLetter,
-                                      bool hasMemory,
-                                      std::vector<SDValue> &Ops,
-                                      SelectionDAG &DAG) const;
-
-    /// isLegalAddressImmediate - Return true if the integer value can be used
-    /// as the offset of the target addressing mode.
-    virtual bool isLegalAddressImmediate(int64_t V, const Type *Ty) const;
-    virtual bool isLegalAddressImmediate(GlobalValue *) const;
-
-    virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *F) const;
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv, bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg,
-                bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-  };
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrBuilder.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrBuilder.h
deleted file mode 100644
index 5e268f8..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrBuilder.h
+++ /dev/null
@@ -1,43 +0,0 @@
-//==-- SPUInstrBuilder.h - Aides for building Cell SPU insts -----*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file exposes functions that may be used with BuildMI from the
-// MachineInstrBuilder.h file to simplify generating frame and constant pool
-// references.
-//
-// For reference, the order of operands for memory references is:
-// (Operand), Dest Reg, Base Reg, and either Reg Index or Immediate
-// Displacement.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPU_INSTRBUILDER_H
-#define SPU_INSTRBUILDER_H
-
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-
-namespace llvm {
-
-/// addFrameReference - This function is used to add a reference to the base of
-/// an abstract object on the stack frame of the current function.  This
-/// reference has base register as the FrameIndex offset until it is resolved.
-/// This allows a constant offset to be specified as well...
-///
-inline const MachineInstrBuilder&
-addFrameReference(const MachineInstrBuilder &MIB, int FI, int Offset = 0,
-                  bool mem = true) {
-  if (mem)
-    return MIB.addImm(Offset).addFrameIndex(FI);
-  else
-    return MIB.addFrameIndex(FI).addImm(Offset);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrFormats.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrFormats.td
deleted file mode 100644
index 21bc275..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrFormats.td
+++ /dev/null
@@ -1,298 +0,0 @@
-//==== SPUInstrFormats.td - Cell SPU Instruction Formats ---*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//
-// Cell SPU instruction formats. Note that these are notationally similar to
-// PowerPC, like "A-Form". But the sizes of operands and fields differ.
-
-// This was kiped from the PPC instruction formats (seemed like a good idea...)
-
-class SPUInstr<dag OOL, dag IOL, string asmstr, InstrItinClass itin>
-        : Instruction {
-  field bits<32> Inst;
-
-  let Namespace = "SPU";
-  let OutOperandList = OOL;
-  let InOperandList = IOL;
-  let AsmString = asmstr;
-  let Itinerary = itin;
-}
-
-// RR Format
-class RRForm<bits<11> opcode, dag OOL, dag IOL, string asmstr, 
-              InstrItinClass itin, list<dag> pattern>
-         : SPUInstr<OOL, IOL, asmstr, itin> {
-  bits<7> RA;
-  bits<7> RB;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-10} = opcode;
-  let Inst{11-17} = RB;
-  let Inst{18-24} = RA;
-  let Inst{25-31} = RT;
-}
-
-let RB = 0 in {
-  // RR Format, where RB is zeroed (dont care):
-  class RRForm_1<bits<11> opcode, dag OOL, dag IOL, string asmstr, 
-                 InstrItinClass itin, list<dag> pattern>
-           : RRForm<opcode, OOL, IOL, asmstr, itin, pattern>
-  { }
-
-  let RA = 0 in {
-    // RR Format, where RA and RB are zeroed (dont care):
-    // Used for reads from status control registers (see FPSCRRr32)
-    class RRForm_2<bits<11> opcode, dag OOL, dag IOL, string asmstr,
-                   InstrItinClass itin, list<dag> pattern>
-             : RRForm<opcode, OOL, IOL, asmstr, itin, pattern>
-    { }
-  }
-}
-
-let RT = 0 in {
-  // RR Format, where RT is zeroed (don't care), or as the instruction handbook
-  // says, "RT is a false target." Used in "Halt if" instructions
-  class RRForm_3<bits<11> opcode, dag OOL, dag IOL, string asmstr,
-                 InstrItinClass itin, list<dag> pattern>
-      : RRForm<opcode, OOL, IOL, asmstr, itin, pattern>
-  { }
-}
-
-// RRR Format
-class RRRForm<bits<4> opcode, dag OOL, dag IOL, string asmstr,
-              InstrItinClass itin, list<dag> pattern>
-        : SPUInstr<OOL, IOL, asmstr, itin>
-{
-  bits<7> RA;
-  bits<7> RB;
-  bits<7> RC;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-3} = opcode;
-  let Inst{4-10} = RT;
-  let Inst{11-17} = RB;
-  let Inst{18-24} = RA;
-  let Inst{25-31} = RC;
-}
-
-// RI7 Format
-class RI7Form<bits<11> opcode, dag OOL, dag IOL, string asmstr,
-              InstrItinClass itin, list<dag> pattern>
-        : SPUInstr<OOL, IOL, asmstr, itin>
-{
-  bits<7> i7;
-  bits<7> RA;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-10} = opcode;
-  let Inst{11-17} = i7;
-  let Inst{18-24} = RA;
-  let Inst{25-31} = RT;
-}
-
-// CVTIntFp Format
-class CVTIntFPForm<bits<10> opcode, dag OOL, dag IOL, string asmstr,
-                   InstrItinClass itin, list<dag> pattern>
-        : SPUInstr<OOL, IOL, asmstr, itin>
-{
-  bits<7> RA;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-9} = opcode;
-  let Inst{10-17} = 0;
-  let Inst{18-24} = RA;
-  let Inst{25-31} = RT;
-}
-
-let RA = 0 in {
-  class BICondForm<bits<11> opcode, dag OOL, dag IOL, string asmstr, list<dag> pattern>
-           : RRForm<opcode, OOL, IOL, asmstr, BranchResolv, pattern>
-  { }
-
-  let RT = 0 in {
-    // Branch instruction format (without D/E flag settings)
-    class BRForm<bits<11> opcode, dag OOL, dag IOL, string asmstr,
-               InstrItinClass itin, list<dag> pattern>
-          : RRForm<opcode, OOL, IOL, asmstr, itin, pattern>
-    { }
-
-    class BIForm<bits<11> opcode, string asmstr, list<dag> pattern>
-             : RRForm<opcode, (outs), (ins R32C:$func), asmstr, BranchResolv,
-                      pattern>
-    { }
-
-    let RB = 0 in {
-      // Return instruction (bi, branch indirect), RA is zero (LR):
-      class RETForm<string asmstr, list<dag> pattern>
-             : BRForm<0b00010101100, (outs), (ins), asmstr, BranchResolv,
-                      pattern>
-      { }
-    }
-  }
-}
-
-// Branch indirect external data forms:
-class BISLEDForm<bits<2> DE_flag, string asmstr, list<dag> pattern>
-         : SPUInstr<(outs), (ins indcalltarget:$func), asmstr, BranchResolv>
-{
-  bits<7> Rcalldest;
-
-  let Pattern = pattern;
-
-  let Inst{0-10} = 0b11010101100;
-  let Inst{11} = 0;
-  let Inst{12-13} = DE_flag;
-  let Inst{14-17} = 0b0000;
-  let Inst{18-24} = Rcalldest;
-  let Inst{25-31} = 0b0000000;
-}
-
-// RI10 Format
-class RI10Form<bits<8> opcode, dag OOL, dag IOL, string asmstr,
-              InstrItinClass itin, list<dag> pattern>
-        : SPUInstr<OOL, IOL, asmstr, itin>
-{
-  bits<10> i10;
-  bits<7> RA;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-7} = opcode;
-  let Inst{8-17} = i10;
-  let Inst{18-24} = RA;
-  let Inst{25-31} = RT;
-}
-
-// RI10 Format, where the constant is zero (or effectively ignored by the
-// SPU)
-let i10 = 0 in {
-  class RI10Form_1<bits<8> opcode, dag OOL, dag IOL, string asmstr,
-                   InstrItinClass itin, list<dag> pattern>
-          : RI10Form<opcode, OOL, IOL, asmstr, itin, pattern>
-  { }
-}
-
-// RI10 Format, where RT is ignored.
-// This format is used primarily by the Halt If ... Immediate set of
-// instructions
-let RT = 0 in {
-  class RI10Form_2<bits<8> opcode, dag OOL, dag IOL, string asmstr,
-                   InstrItinClass itin, list<dag> pattern>
-        : RI10Form<opcode, OOL, IOL, asmstr, itin, pattern>
-  { }
-}
-
-// RI16 Format
-class RI16Form<bits<9> opcode, dag OOL, dag IOL, string asmstr,
-              InstrItinClass itin, list<dag> pattern>
-        : SPUInstr<OOL, IOL, asmstr, itin>
-{
-  bits<16> i16;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-8} = opcode;
-  let Inst{9-24} = i16;
-  let Inst{25-31} = RT;
-}
-
-// Specialized version of the RI16 Format for unconditional branch relative and
-// branch absolute, branch and set link. Note that for branch and set link, the
-// link register doesn't have to be $lr, but this is actually hard coded into
-// the instruction pattern.
-
-let RT = 0 in {
-  class UncondBranch<bits<9> opcode, dag OOL, dag IOL, string asmstr,
-                     list<dag> pattern>
-    : RI16Form<opcode, OOL, IOL, asmstr, BranchResolv, pattern>
-  { }
-
-  class BranchSetLink<bits<9> opcode, dag OOL, dag IOL, string asmstr,
-                      list<dag> pattern>
-        : RI16Form<opcode, OOL, IOL, asmstr, BranchResolv, pattern>
-  { }
-}
-
-//===----------------------------------------------------------------------===//
-// Specialized versions of RI16:
-//===----------------------------------------------------------------------===//
-
-// RI18 Format
-class RI18Form<bits<7> opcode, dag OOL, dag IOL, string asmstr,
-              InstrItinClass itin, list<dag> pattern>
-        : SPUInstr<OOL, IOL, asmstr, itin>
-{
-  bits<18> i18;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-6} = opcode;
-  let Inst{7-24} = i18;
-  let Inst{25-31} = RT;
-}
-
-//===----------------------------------------------------------------------===//
-// Instruction formats for intrinsics:
-//===----------------------------------------------------------------------===//
-
-// RI10 Format for v8i16 intrinsics
-class RI10_Int_v8i16<bits<8> opcode, string opc, InstrItinClass itin,
-                     Intrinsic IntID> :
-  RI10Form<opcode, (outs VECREG:$rT), (ins s10imm:$val, VECREG:$rA),
-           !strconcat(opc, " $rT, $rA, $val"), itin,
-           [(set (v8i16 VECREG:$rT), (IntID (v8i16 VECREG:$rA),
-                                            i16ImmSExt10:$val))] >;
-
-class RI10_Int_v4i32<bits<8> opcode, string opc, InstrItinClass itin,
-                     Intrinsic IntID> :
-  RI10Form<opcode, (outs VECREG:$rT), (ins s10imm:$val, VECREG:$rA),
-           !strconcat(opc, " $rT, $rA, $val"), itin,
-           [(set (v4i32 VECREG:$rT), (IntID (v4i32 VECREG:$rA),
-                                            i32ImmSExt10:$val))] >;
-
-// RR Format for v8i16 intrinsics
-class RR_Int_v8i16<bits<11> opcode, string opc, InstrItinClass itin,
-                   Intrinsic IntID> :
-  RRForm<opcode, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-         !strconcat(opc, " $rT, $rA, $rB"), itin,
-         [(set (v8i16 VECREG:$rT), (IntID (v8i16 VECREG:$rA),
-                                          (v8i16 VECREG:$rB)))] >;
-
-// RR Format for v4i32 intrinsics
-class RR_Int_v4i32<bits<11> opcode, string opc, InstrItinClass itin,
-                   Intrinsic IntID> :
-  RRForm<opcode, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-         !strconcat(opc, " $rT, $rA, $rB"), itin,
-         [(set (v4i32 VECREG:$rT), (IntID (v4i32 VECREG:$rA),
-                                          (v4i32 VECREG:$rB)))] >;
-
-//===----------------------------------------------------------------------===//
-// Pseudo instructions, like call frames:
-//===----------------------------------------------------------------------===//
-
-class Pseudo<dag OOL, dag IOL, string asmstr, list<dag> pattern>
-    : SPUInstr<OOL, IOL, asmstr, NoItinerary> {
-  let OutOperandList = OOL;
-  let InOperandList = IOL;
-  let AsmString   = asmstr;
-  let Pattern = pattern;
-  let Inst{31-0} = 0;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp
deleted file mode 100644
index ecce8e3..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp
+++ /dev/null
@@ -1,617 +0,0 @@
-//===- SPUInstrInfo.cpp - Cell SPU Instruction Information ----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Cell SPU implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPURegisterNames.h"
-#include "SPUInstrInfo.h"
-#include "SPUInstrBuilder.h"
-#include "SPUTargetMachine.h"
-#include "SPUGenInstrInfo.inc"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-
-using namespace llvm;
-
-namespace {
-  //! Predicate for an unconditional branch instruction
-  inline bool isUncondBranch(const MachineInstr *I) {
-    unsigned opc = I->getOpcode();
-
-    return (opc == SPU::BR
-            || opc == SPU::BRA
-            || opc == SPU::BI);
-  }
-
-  //! Predicate for a conditional branch instruction
-  inline bool isCondBranch(const MachineInstr *I) {
-    unsigned opc = I->getOpcode();
-
-    return (opc == SPU::BRNZr32
-            || opc == SPU::BRNZv4i32
-            || opc == SPU::BRZr32
-            || opc == SPU::BRZv4i32
-            || opc == SPU::BRHNZr16
-            || opc == SPU::BRHNZv8i16
-            || opc == SPU::BRHZr16
-            || opc == SPU::BRHZv8i16);
-  }
-}
-
-SPUInstrInfo::SPUInstrInfo(SPUTargetMachine &tm)
-  : TargetInstrInfoImpl(SPUInsts, sizeof(SPUInsts)/sizeof(SPUInsts[0])),
-    TM(tm),
-    RI(*TM.getSubtargetImpl(), *this)
-{ /* NOP */ }
-
-bool
-SPUInstrInfo::isMoveInstr(const MachineInstr& MI,
-                          unsigned& sourceReg,
-                          unsigned& destReg,
-                          unsigned& SrcSR, unsigned& DstSR) const {
-  SrcSR = DstSR = 0;  // No sub-registers.
-
-  switch (MI.getOpcode()) {
-  default:
-    break;
-  case SPU::ORIv4i32:
-  case SPU::ORIr32:
-  case SPU::ORHIv8i16:
-  case SPU::ORHIr16:
-  case SPU::ORHIi8i16:
-  case SPU::ORBIv16i8:
-  case SPU::ORBIr8:
-  case SPU::ORIi16i32:
-  case SPU::ORIi8i32:
-  case SPU::AHIvec:
-  case SPU::AHIr16:
-  case SPU::AIv4i32:
-    assert(MI.getNumOperands() == 3 &&
-           MI.getOperand(0).isReg() &&
-           MI.getOperand(1).isReg() &&
-           MI.getOperand(2).isImm() &&
-           "invalid SPU ORI/ORHI/ORBI/AHI/AI/SFI/SFHI instruction!");
-    if (MI.getOperand(2).getImm() == 0) {
-      sourceReg = MI.getOperand(1).getReg();
-      destReg = MI.getOperand(0).getReg();
-      return true;
-    }
-    break;
-  case SPU::AIr32:
-    assert(MI.getNumOperands() == 3 &&
-           "wrong number of operands to AIr32");
-    if (MI.getOperand(0).isReg() &&
-        MI.getOperand(1).isReg() &&
-        (MI.getOperand(2).isImm() &&
-         MI.getOperand(2).getImm() == 0)) {
-      sourceReg = MI.getOperand(1).getReg();
-      destReg = MI.getOperand(0).getReg();
-      return true;
-    }
-    break;
-  case SPU::LRr8:
-  case SPU::LRr16:
-  case SPU::LRr32:
-  case SPU::LRf32:
-  case SPU::LRr64:
-  case SPU::LRf64:
-  case SPU::LRr128:
-  case SPU::LRv16i8:
-  case SPU::LRv8i16:
-  case SPU::LRv4i32:
-  case SPU::LRv4f32:
-  case SPU::LRv2i64:
-  case SPU::LRv2f64:
-  case SPU::ORv16i8_i8:
-  case SPU::ORv8i16_i16:
-  case SPU::ORv4i32_i32:
-  case SPU::ORv2i64_i64:
-  case SPU::ORv4f32_f32:
-  case SPU::ORv2f64_f64:
-  case SPU::ORi8_v16i8:
-  case SPU::ORi16_v8i16:
-  case SPU::ORi32_v4i32:
-  case SPU::ORi64_v2i64:
-  case SPU::ORf32_v4f32:
-  case SPU::ORf64_v2f64:
-/*
-  case SPU::ORi128_r64:
-  case SPU::ORi128_f64:
-  case SPU::ORi128_r32:
-  case SPU::ORi128_f32:
-  case SPU::ORi128_r16:
-  case SPU::ORi128_r8:
-*/
-  case SPU::ORi128_vec:
-/*
-  case SPU::ORr64_i128:
-  case SPU::ORf64_i128:
-  case SPU::ORr32_i128:
-  case SPU::ORf32_i128:
-  case SPU::ORr16_i128:
-  case SPU::ORr8_i128:
-*/
-  case SPU::ORvec_i128:
-/*
-  case SPU::ORr16_r32:
-  case SPU::ORr8_r32:
-  case SPU::ORf32_r32:
-  case SPU::ORr32_f32:
-  case SPU::ORr32_r16:
-  case SPU::ORr32_r8:
-  case SPU::ORr16_r64:
-  case SPU::ORr8_r64:
-  case SPU::ORr64_r16:
-  case SPU::ORr64_r8:
-*/
-  case SPU::ORr64_r32:
-  case SPU::ORr32_r64:
-  case SPU::ORf32_r32:
-  case SPU::ORr32_f32:
-  case SPU::ORf64_r64:
-  case SPU::ORr64_f64: {
-    assert(MI.getNumOperands() == 2 &&
-           MI.getOperand(0).isReg() &&
-           MI.getOperand(1).isReg() &&
-           "invalid SPU OR<type>_<vec> or LR instruction!");
-    if (MI.getOperand(0).getReg() == MI.getOperand(1).getReg()) {
-      sourceReg = MI.getOperand(1).getReg();
-      destReg = MI.getOperand(0).getReg();
-      return true;
-    }
-    break;
-  }
-  case SPU::ORv16i8:
-  case SPU::ORv8i16:
-  case SPU::ORv4i32:
-  case SPU::ORv2i64:
-  case SPU::ORr8:
-  case SPU::ORr16:
-  case SPU::ORr32:
-  case SPU::ORr64:
-  case SPU::ORr128:
-  case SPU::ORf32:
-  case SPU::ORf64:
-    assert(MI.getNumOperands() == 3 &&
-           MI.getOperand(0).isReg() &&
-           MI.getOperand(1).isReg() &&
-           MI.getOperand(2).isReg() &&
-           "invalid SPU OR(vec|r32|r64|gprc) instruction!");
-    if (MI.getOperand(1).getReg() == MI.getOperand(2).getReg()) {
-      sourceReg = MI.getOperand(1).getReg();
-      destReg = MI.getOperand(0).getReg();
-      return true;
-    }
-    break;
-  }
-
-  return false;
-}
-
-unsigned
-SPUInstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
-                                  int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  default: break;
-  case SPU::LQDv16i8:
-  case SPU::LQDv8i16:
-  case SPU::LQDv4i32:
-  case SPU::LQDv4f32:
-  case SPU::LQDv2f64:
-  case SPU::LQDr128:
-  case SPU::LQDr64:
-  case SPU::LQDr32:
-  case SPU::LQDr16: {
-    const MachineOperand MOp1 = MI->getOperand(1);
-    const MachineOperand MOp2 = MI->getOperand(2);
-    if (MOp1.isImm() && MOp2.isFI()) {
-      FrameIndex = MOp2.getIndex();
-      return MI->getOperand(0).getReg();
-    }
-    break;
-  }
-  }
-  return 0;
-}
-
-unsigned
-SPUInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
-                                 int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  default: break;
-  case SPU::STQDv16i8:
-  case SPU::STQDv8i16:
-  case SPU::STQDv4i32:
-  case SPU::STQDv4f32:
-  case SPU::STQDv2f64:
-  case SPU::STQDr128:
-  case SPU::STQDr64:
-  case SPU::STQDr32:
-  case SPU::STQDr16:
-  case SPU::STQDr8: {
-    const MachineOperand MOp1 = MI->getOperand(1);
-    const MachineOperand MOp2 = MI->getOperand(2);
-    if (MOp1.isImm() && MOp2.isFI()) {
-      FrameIndex = MOp2.getIndex();
-      return MI->getOperand(0).getReg();
-    }
-    break;
-  }
-  }
-  return 0;
-}
-
-bool SPUInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MI,
-                                   unsigned DestReg, unsigned SrcReg,
-                                   const TargetRegisterClass *DestRC,
-                                   const TargetRegisterClass *SrcRC) const
-{
-  // We support cross register class moves for our aliases, such as R3 in any
-  // reg class to any other reg class containing R3.  This is required because
-  // we instruction select bitconvert i64 -> f64 as a noop for example, so our
-  // types have no specific meaning.
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  if (DestRC == SPU::R8CRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRr8), DestReg).addReg(SrcReg);
-  } else if (DestRC == SPU::R16CRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRr16), DestReg).addReg(SrcReg);
-  } else if (DestRC == SPU::R32CRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRr32), DestReg).addReg(SrcReg);
-  } else if (DestRC == SPU::R32FPRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRf32), DestReg).addReg(SrcReg);
-  } else if (DestRC == SPU::R64CRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRr64), DestReg).addReg(SrcReg);
-  } else if (DestRC == SPU::R64FPRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRf64), DestReg).addReg(SrcReg);
-  } else if (DestRC == SPU::GPRCRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRr128), DestReg).addReg(SrcReg);
-  } else if (DestRC == SPU::VECREGRegisterClass) {
-    BuildMI(MBB, MI, DL, get(SPU::LRv16i8), DestReg).addReg(SrcReg);
-  } else {
-    // Attempt to copy unknown/unsupported register class!
-    return false;
-  }
-
-  return true;
-}
-
-void
-SPUInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator MI,
-                                     unsigned SrcReg, bool isKill, int FrameIdx,
-                                     const TargetRegisterClass *RC) const
-{
-  unsigned opc;
-  bool isValidFrameIdx = (FrameIdx < SPUFrameInfo::maxFrameOffset());
-  if (RC == SPU::GPRCRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::STQDr128 : SPU::STQXr128);
-  } else if (RC == SPU::R64CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::STQDr64 : SPU::STQXr64);
-  } else if (RC == SPU::R64FPRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::STQDr64 : SPU::STQXr64);
-  } else if (RC == SPU::R32CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::STQDr32 : SPU::STQXr32);
-  } else if (RC == SPU::R32FPRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::STQDr32 : SPU::STQXr32);
-  } else if (RC == SPU::R16CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::STQDr16 : SPU::STQXr16);
-  } else if (RC == SPU::R8CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::STQDr8 : SPU::STQXr8);
-  } else if (RC == SPU::VECREGRegisterClass) {
-    opc = (isValidFrameIdx) ? SPU::STQDv16i8 : SPU::STQXv16i8;
-  } else {
-    llvm_unreachable("Unknown regclass!");
-  }
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-  addFrameReference(BuildMI(MBB, MI, DL, get(opc))
-                    .addReg(SrcReg, getKillRegState(isKill)), FrameIdx);
-}
-
-void
-SPUInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                        MachineBasicBlock::iterator MI,
-                                        unsigned DestReg, int FrameIdx,
-                                        const TargetRegisterClass *RC) const
-{
-  unsigned opc;
-  bool isValidFrameIdx = (FrameIdx < SPUFrameInfo::maxFrameOffset());
-  if (RC == SPU::GPRCRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::LQDr128 : SPU::LQXr128);
-  } else if (RC == SPU::R64CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::LQDr64 : SPU::LQXr64);
-  } else if (RC == SPU::R64FPRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::LQDr64 : SPU::LQXr64);
-  } else if (RC == SPU::R32CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::LQDr32 : SPU::LQXr32);
-  } else if (RC == SPU::R32FPRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::LQDr32 : SPU::LQXr32);
-  } else if (RC == SPU::R16CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::LQDr16 : SPU::LQXr16);
-  } else if (RC == SPU::R8CRegisterClass) {
-    opc = (isValidFrameIdx ? SPU::LQDr8 : SPU::LQXr8);
-  } else if (RC == SPU::VECREGRegisterClass) {
-    opc = (isValidFrameIdx) ? SPU::LQDv16i8 : SPU::LQXv16i8;
-  } else {
-    llvm_unreachable("Unknown regclass in loadRegFromStackSlot!");
-  }
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-  addFrameReference(BuildMI(MBB, MI, DL, get(opc), DestReg), FrameIdx);
-}
-
-//! Return true if the specified load or store can be folded
-bool
-SPUInstrInfo::canFoldMemoryOperand(const MachineInstr *MI,
-                                   const SmallVectorImpl<unsigned> &Ops) const {
-  if (Ops.size() != 1) return false;
-
-  // Make sure this is a reg-reg copy.
-  unsigned Opc = MI->getOpcode();
-
-  switch (Opc) {
-  case SPU::ORv16i8:
-  case SPU::ORv8i16:
-  case SPU::ORv4i32:
-  case SPU::ORv2i64:
-  case SPU::ORr8:
-  case SPU::ORr16:
-  case SPU::ORr32:
-  case SPU::ORr64:
-  case SPU::ORf32:
-  case SPU::ORf64:
-    if (MI->getOperand(1).getReg() == MI->getOperand(2).getReg())
-      return true;
-    break;
-  }
-
-  return false;
-}
-
-/// foldMemoryOperand - SPU, like PPC, can only fold spills into
-/// copy instructions, turning them into load/store instructions.
-MachineInstr *
-SPUInstrInfo::foldMemoryOperandImpl(MachineFunction &MF,
-                                    MachineInstr *MI,
-                                    const SmallVectorImpl<unsigned> &Ops,
-                                    int FrameIndex) const
-{
-  if (Ops.size() != 1) return 0;
-
-  unsigned OpNum = Ops[0];
-  unsigned Opc = MI->getOpcode();
-  MachineInstr *NewMI = 0;
-
-  switch (Opc) {
-  case SPU::ORv16i8:
-  case SPU::ORv8i16:
-  case SPU::ORv4i32:
-  case SPU::ORv2i64:
-  case SPU::ORr8:
-  case SPU::ORr16:
-  case SPU::ORr32:
-  case SPU::ORr64:
-  case SPU::ORf32:
-  case SPU::ORf64:
-    if (OpNum == 0) {  // move -> store
-      unsigned InReg = MI->getOperand(1).getReg();
-      bool isKill = MI->getOperand(1).isKill();
-      bool isUndef = MI->getOperand(1).isUndef();
-      if (FrameIndex < SPUFrameInfo::maxFrameOffset()) {
-        MachineInstrBuilder MIB = BuildMI(MF, MI->getDebugLoc(),
-                                          get(SPU::STQDr32));
-
-        MIB.addReg(InReg, getKillRegState(isKill) | getUndefRegState(isUndef));
-        NewMI = addFrameReference(MIB, FrameIndex);
-      }
-    } else {           // move -> load
-      unsigned OutReg = MI->getOperand(0).getReg();
-      bool isDead = MI->getOperand(0).isDead();
-      bool isUndef = MI->getOperand(0).isUndef();
-      MachineInstrBuilder MIB = BuildMI(MF, MI->getDebugLoc(), get(Opc));
-
-      MIB.addReg(OutReg, RegState::Define | getDeadRegState(isDead) |
-                 getUndefRegState(isUndef));
-      Opc = (FrameIndex < SPUFrameInfo::maxFrameOffset())
-        ? SPU::STQDr32 : SPU::STQXr32;
-      NewMI = addFrameReference(MIB, FrameIndex);
-    break;
-  }
-  }
-
-  return NewMI;
-}
-
-//! Branch analysis
-/*!
-  \note This code was kiped from PPC. There may be more branch analysis for
-  CellSPU than what's currently done here.
- */
-bool
-SPUInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
-                            MachineBasicBlock *&FBB,
-                            SmallVectorImpl<MachineOperand> &Cond,
-                            bool AllowModify) const {
-  // If the block has no terminators, it just falls into the block after it.
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I))
-    return false;
-
-  // Get the last instruction in the block.
-  MachineInstr *LastInst = I;
-
-  // If there is only one terminator instruction, process it.
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I)) {
-    if (isUncondBranch(LastInst)) {
-      TBB = LastInst->getOperand(0).getMBB();
-      return false;
-    } else if (isCondBranch(LastInst)) {
-      // Block ends with fall-through condbranch.
-      TBB = LastInst->getOperand(1).getMBB();
-      DEBUG(errs() << "Pushing LastInst:               ");
-      DEBUG(LastInst->dump());
-      Cond.push_back(MachineOperand::CreateImm(LastInst->getOpcode()));
-      Cond.push_back(LastInst->getOperand(0));
-      return false;
-    }
-    // Otherwise, don't know what this is.
-    return true;
-  }
-
-  // Get the instruction before it if it's a terminator.
-  MachineInstr *SecondLastInst = I;
-
-  // If there are three terminators, we don't know what sort of block this is.
-  if (SecondLastInst && I != MBB.begin() &&
-      isUnpredicatedTerminator(--I))
-    return true;
-
-  // If the block ends with a conditional and unconditional branch, handle it.
-  if (isCondBranch(SecondLastInst) && isUncondBranch(LastInst)) {
-    TBB =  SecondLastInst->getOperand(1).getMBB();
-    DEBUG(errs() << "Pushing SecondLastInst:         ");
-    DEBUG(SecondLastInst->dump());
-    Cond.push_back(MachineOperand::CreateImm(SecondLastInst->getOpcode()));
-    Cond.push_back(SecondLastInst->getOperand(0));
-    FBB = LastInst->getOperand(0).getMBB();
-    return false;
-  }
-
-  // If the block ends with two unconditional branches, handle it.  The second
-  // one is not executed, so remove it.
-  if (isUncondBranch(SecondLastInst) && isUncondBranch(LastInst)) {
-    TBB = SecondLastInst->getOperand(0).getMBB();
-    I = LastInst;
-    if (AllowModify)
-      I->eraseFromParent();
-    return false;
-  }
-
-  // Otherwise, can't handle this.
-  return true;
-}
-
-unsigned
-SPUInstrInfo::RemoveBranch(MachineBasicBlock &MBB) const {
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin())
-    return 0;
-  --I;
-  if (!isCondBranch(I) && !isUncondBranch(I))
-    return 0;
-
-  // Remove the first branch.
-  DEBUG(errs() << "Removing branch:                ");
-  DEBUG(I->dump());
-  I->eraseFromParent();
-  I = MBB.end();
-  if (I == MBB.begin())
-    return 1;
-
-  --I;
-  if (!(isCondBranch(I) || isUncondBranch(I)))
-    return 1;
-
-  // Remove the second branch.
-  DEBUG(errs() << "Removing second branch:         ");
-  DEBUG(I->dump());
-  I->eraseFromParent();
-  return 2;
-}
-
-unsigned
-SPUInstrInfo::InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                           MachineBasicBlock *FBB,
-                           const SmallVectorImpl<MachineOperand> &Cond) const {
-  // FIXME this should probably have a DebugLoc argument
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-  // Shouldn't be a fall through.
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-  assert((Cond.size() == 2 || Cond.size() == 0) &&
-         "SPU branch conditions have two components!");
-
-  // One-way branch.
-  if (FBB == 0) {
-    if (Cond.empty()) {
-      // Unconditional branch
-      MachineInstrBuilder MIB = BuildMI(&MBB, dl, get(SPU::BR));
-      MIB.addMBB(TBB);
-
-      DEBUG(errs() << "Inserted one-way uncond branch: ");
-      DEBUG((*MIB).dump());
-    } else {
-      // Conditional branch
-      MachineInstrBuilder  MIB = BuildMI(&MBB, dl, get(Cond[0].getImm()));
-      MIB.addReg(Cond[1].getReg()).addMBB(TBB);
-
-      DEBUG(errs() << "Inserted one-way cond branch:   ");
-      DEBUG((*MIB).dump());
-    }
-    return 1;
-  } else {
-    MachineInstrBuilder MIB = BuildMI(&MBB, dl, get(Cond[0].getImm()));
-    MachineInstrBuilder MIB2 = BuildMI(&MBB, dl, get(SPU::BR));
-
-    // Two-way Conditional Branch.
-    MIB.addReg(Cond[1].getReg()).addMBB(TBB);
-    MIB2.addMBB(FBB);
-
-    DEBUG(errs() << "Inserted conditional branch:    ");
-    DEBUG((*MIB).dump());
-    DEBUG(errs() << "part 2: ");
-    DEBUG((*MIB2).dump());
-   return 2;
-  }
-}
-
-bool
-SPUInstrInfo::BlockHasNoFallThrough(const MachineBasicBlock &MBB) const {
-  return (!MBB.empty() && isUncondBranch(&MBB.back()));
-}
-//! Reverses a branch's condition, returning false on success.
-bool
-SPUInstrInfo::ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond)
-  const {
-  // Pretty brainless way of inverting the condition, but it works, considering
-  // there are only two conditions...
-  static struct {
-    unsigned Opc;               //! The incoming opcode
-    unsigned RevCondOpc;        //! The reversed condition opcode
-  } revconds[] = {
-    { SPU::BRNZr32, SPU::BRZr32 },
-    { SPU::BRNZv4i32, SPU::BRZv4i32 },
-    { SPU::BRZr32, SPU::BRNZr32 },
-    { SPU::BRZv4i32, SPU::BRNZv4i32 },
-    { SPU::BRHNZr16, SPU::BRHZr16 },
-    { SPU::BRHNZv8i16, SPU::BRHZv8i16 },
-    { SPU::BRHZr16, SPU::BRHNZr16 },
-    { SPU::BRHZv8i16, SPU::BRHNZv8i16 }
-  };
-
-  unsigned Opc = unsigned(Cond[0].getImm());
-  // Pretty dull mapping between the two conditions that SPU can generate:
-  for (int i = sizeof(revconds)/sizeof(revconds[0]) - 1; i >= 0; --i) {
-    if (revconds[i].Opc == Opc) {
-      Cond[0].setImm(revconds[i].RevCondOpc);
-      return false;
-    }
-  }
-
-  return true;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.h
deleted file mode 100644
index c644a11..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.h
+++ /dev/null
@@ -1,102 +0,0 @@
-//===- SPUInstrInfo.h - Cell SPU Instruction Information --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the CellSPU implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPU_INSTRUCTIONINFO_H
-#define SPU_INSTRUCTIONINFO_H
-
-#include "SPU.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "SPURegisterInfo.h"
-
-namespace llvm {
-  //! Cell SPU instruction information class
-  class SPUInstrInfo : public TargetInstrInfoImpl {
-    SPUTargetMachine &TM;
-    const SPURegisterInfo RI;
-  protected:
-    virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                            MachineInstr* MI,
-                                            const SmallVectorImpl<unsigned> &Ops,
-                                            int FrameIndex) const;
-
-    virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                                MachineInstr* MI,
-                                                const SmallVectorImpl<unsigned> &Ops,
-                                                MachineInstr* LoadMI) const {
-      return 0;
-    }
-
-  public:
-    explicit SPUInstrInfo(SPUTargetMachine &tm);
-
-    /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-    /// such, whenever a client has an instance of instruction info, it should
-    /// always be able to get register info as well (through this method).
-    ///
-    virtual const SPURegisterInfo &getRegisterInfo() const { return RI; }
-
-    /// Return true if the instruction is a register to register move and return
-    /// the source and dest operands and their sub-register indices by reference.
-    virtual bool isMoveInstr(const MachineInstr &MI,
-                             unsigned &SrcReg, unsigned &DstReg,
-                             unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-
-    unsigned isLoadFromStackSlot(const MachineInstr *MI,
-                                 int &FrameIndex) const;
-    unsigned isStoreToStackSlot(const MachineInstr *MI,
-                                int &FrameIndex) const;
-
-    virtual bool copyRegToReg(MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator MI,
-                              unsigned DestReg, unsigned SrcReg,
-                              const TargetRegisterClass *DestRC,
-                              const TargetRegisterClass *SrcRC) const;
-
-    //! Store a register to a stack slot, based on its register class.
-    virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator MBBI,
-                                     unsigned SrcReg, bool isKill, int FrameIndex,
-                                     const TargetRegisterClass *RC) const;
-
-    //! Load a register from a stack slot, based on its register class.
-    virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                      MachineBasicBlock::iterator MBBI,
-                                      unsigned DestReg, int FrameIndex,
-                                      const TargetRegisterClass *RC) const;
-
-    //! Return true if the specified load or store can be folded
-    virtual
-    bool canFoldMemoryOperand(const MachineInstr *MI,
-                              const SmallVectorImpl<unsigned> &Ops) const;
-
-    //! Return true if the specified block does not fall through
-    virtual bool BlockHasNoFallThrough(const MachineBasicBlock &MBB) const;
-
-    //! Reverses a branch's condition, returning false on success.
-    virtual
-    bool ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const;
-
-    virtual bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
-                               MachineBasicBlock *&FBB,
-                               SmallVectorImpl<MachineOperand> &Cond,
-                               bool AllowModify) const;
-
-    virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const;
-
-    virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                              MachineBasicBlock *FBB,
-                              const SmallVectorImpl<MachineOperand> &Cond) const;
-   };
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.td
deleted file mode 100644
index 09849da..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.td
+++ /dev/null
@@ -1,4607 +0,0 @@
-//==- SPUInstrInfo.td - Describe the Cell SPU Instructions -*- tablegen -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// Cell SPU Instructions:
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// TODO Items (not urgent today, but would be nice, low priority)
-//
-// ANDBI, ORBI: SPU constructs a 4-byte constant for these instructions by
-// concatenating the byte argument b as "bbbb". Could recognize this bit pattern
-// in 16-bit and 32-bit constants and reduce instruction count.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Pseudo instructions:
-//===----------------------------------------------------------------------===//
-
-let hasCtrlDep = 1, Defs = [R1], Uses = [R1] in {
-  def ADJCALLSTACKDOWN : Pseudo<(outs), (ins u16imm_i32:$amt),
-                                "${:comment} ADJCALLSTACKDOWN",
-                                [(callseq_start timm:$amt)]>;
-  def ADJCALLSTACKUP   : Pseudo<(outs), (ins u16imm_i32:$amt),
-                                "${:comment} ADJCALLSTACKUP",
-                                [(callseq_end timm:$amt)]>;
-}
-
-//===----------------------------------------------------------------------===//
-// DWARF debugging Pseudo Instructions
-//===----------------------------------------------------------------------===//
-
-def DWARF_LOC : Pseudo<(outs), (ins i32imm:$line, i32imm:$col, i32imm:$file),
-           ".loc $file, $line, $col",
-           [(dwarf_loc (i32 imm:$line), (i32 imm:$col), (i32 imm:$file))]>;
-
-//===----------------------------------------------------------------------===//
-// Loads:
-// NB: The ordering is actually important, since the instruction selection
-// will try each of the instructions in sequence, i.e., the D-form first with
-// the 10-bit displacement, then the A-form with the 16 bit displacement, and
-// finally the X-form with the register-register.
-//===----------------------------------------------------------------------===//
-
-let canFoldAsLoad = 1 in {
-  class LoadDFormVec<ValueType vectype>
-    : RI10Form<0b00101100, (outs VECREG:$rT), (ins dformaddr:$src),
-               "lqd\t$rT, $src",
-               LoadStore,
-               [(set (vectype VECREG:$rT), (load dform_addr:$src))]>
-  { }
-
-  class LoadDForm<RegisterClass rclass>
-    : RI10Form<0b00101100, (outs rclass:$rT), (ins dformaddr:$src),
-               "lqd\t$rT, $src",
-               LoadStore,
-               [(set rclass:$rT, (load dform_addr:$src))]>
-  { }
-
-  multiclass LoadDForms
-  {
-    def v16i8: LoadDFormVec<v16i8>;
-    def v8i16: LoadDFormVec<v8i16>;
-    def v4i32: LoadDFormVec<v4i32>;
-    def v2i64: LoadDFormVec<v2i64>;
-    def v4f32: LoadDFormVec<v4f32>;
-    def v2f64: LoadDFormVec<v2f64>;
-
-    def v2i32: LoadDFormVec<v2i32>;
-
-    def r128:  LoadDForm<GPRC>;
-    def r64:   LoadDForm<R64C>;
-    def r32:   LoadDForm<R32C>;
-    def f32:   LoadDForm<R32FP>;
-    def f64:   LoadDForm<R64FP>;
-    def r16:   LoadDForm<R16C>;
-    def r8:    LoadDForm<R8C>;
-  }
-
-  class LoadAFormVec<ValueType vectype>
-    : RI16Form<0b100001100, (outs VECREG:$rT), (ins addr256k:$src),
-               "lqa\t$rT, $src",
-               LoadStore,
-               [(set (vectype VECREG:$rT), (load aform_addr:$src))]>
-  { }
-
-  class LoadAForm<RegisterClass rclass>
-    : RI16Form<0b100001100, (outs rclass:$rT), (ins addr256k:$src),
-               "lqa\t$rT, $src",
-               LoadStore,
-               [(set rclass:$rT, (load aform_addr:$src))]>
-  { }
-
-  multiclass LoadAForms
-  {
-    def v16i8: LoadAFormVec<v16i8>;
-    def v8i16: LoadAFormVec<v8i16>;
-    def v4i32: LoadAFormVec<v4i32>;
-    def v2i64: LoadAFormVec<v2i64>;
-    def v4f32: LoadAFormVec<v4f32>;
-    def v2f64: LoadAFormVec<v2f64>;
-
-    def v2i32: LoadAFormVec<v2i32>;
-
-    def r128:  LoadAForm<GPRC>;
-    def r64:   LoadAForm<R64C>;
-    def r32:   LoadAForm<R32C>;
-    def f32:   LoadAForm<R32FP>;
-    def f64:   LoadAForm<R64FP>;
-    def r16:   LoadAForm<R16C>;
-    def r8:    LoadAForm<R8C>;
-  }
-
-  class LoadXFormVec<ValueType vectype>
-    : RRForm<0b00100011100, (outs VECREG:$rT), (ins memrr:$src),
-             "lqx\t$rT, $src",
-             LoadStore,
-             [(set (vectype VECREG:$rT), (load xform_addr:$src))]>
-  { }
-
-  class LoadXForm<RegisterClass rclass>
-    : RRForm<0b00100011100, (outs rclass:$rT), (ins memrr:$src),
-             "lqx\t$rT, $src",
-             LoadStore,
-             [(set rclass:$rT, (load xform_addr:$src))]>
-  { }
-
-  multiclass LoadXForms
-  {
-    def v16i8: LoadXFormVec<v16i8>;
-    def v8i16: LoadXFormVec<v8i16>;
-    def v4i32: LoadXFormVec<v4i32>;
-    def v2i64: LoadXFormVec<v2i64>;
-    def v4f32: LoadXFormVec<v4f32>;
-    def v2f64: LoadXFormVec<v2f64>;
-
-    def v2i32: LoadXFormVec<v2i32>;
-
-    def r128:  LoadXForm<GPRC>;
-    def r64:   LoadXForm<R64C>;
-    def r32:   LoadXForm<R32C>;
-    def f32:   LoadXForm<R32FP>;
-    def f64:   LoadXForm<R64FP>;
-    def r16:   LoadXForm<R16C>;
-    def r8:    LoadXForm<R8C>;
-  }
-
-  defm LQA : LoadAForms;
-  defm LQD : LoadDForms;
-  defm LQX : LoadXForms;
-
-/* Load quadword, PC relative: Not much use at this point in time.
-   Might be of use later for relocatable code. It's effectively the
-   same as LQA, but uses PC-relative addressing.
-  def LQR : RI16Form<0b111001100, (outs VECREG:$rT), (ins s16imm:$disp),
-                     "lqr\t$rT, $disp", LoadStore,
-                     [(set VECREG:$rT, (load iaddr:$disp))]>;
- */
-}
-
-//===----------------------------------------------------------------------===//
-// Stores:
-//===----------------------------------------------------------------------===//
-class StoreDFormVec<ValueType vectype>
-  : RI10Form<0b00100100, (outs), (ins VECREG:$rT, dformaddr:$src),
-             "stqd\t$rT, $src",
-             LoadStore,
-             [(store (vectype VECREG:$rT), dform_addr:$src)]>
-{ }
-
-class StoreDForm<RegisterClass rclass>
-  : RI10Form<0b00100100, (outs), (ins rclass:$rT, dformaddr:$src),
-             "stqd\t$rT, $src",
-             LoadStore,
-             [(store rclass:$rT, dform_addr:$src)]>
-{ }
-
-multiclass StoreDForms
-{
-  def v16i8: StoreDFormVec<v16i8>;
-  def v8i16: StoreDFormVec<v8i16>;
-  def v4i32: StoreDFormVec<v4i32>;
-  def v2i64: StoreDFormVec<v2i64>;
-  def v4f32: StoreDFormVec<v4f32>;
-  def v2f64: StoreDFormVec<v2f64>;
-
-  def v2i32: StoreDFormVec<v2i32>;
-
-  def r128:  StoreDForm<GPRC>;
-  def r64:   StoreDForm<R64C>;
-  def r32:   StoreDForm<R32C>;
-  def f32:   StoreDForm<R32FP>;
-  def f64:   StoreDForm<R64FP>;
-  def r16:   StoreDForm<R16C>;
-  def r8:    StoreDForm<R8C>;
-}
-
-class StoreAFormVec<ValueType vectype>
-  : RI16Form<0b0010010, (outs), (ins VECREG:$rT, addr256k:$src),
-             "stqa\t$rT, $src",
-             LoadStore,
-             [(store (vectype VECREG:$rT), aform_addr:$src)]>;
-
-class StoreAForm<RegisterClass rclass>
-  : RI16Form<0b001001, (outs), (ins rclass:$rT, addr256k:$src),
-             "stqa\t$rT, $src",
-             LoadStore,
-             [(store rclass:$rT, aform_addr:$src)]>;
-
-multiclass StoreAForms
-{
-  def v16i8: StoreAFormVec<v16i8>;
-  def v8i16: StoreAFormVec<v8i16>;
-  def v4i32: StoreAFormVec<v4i32>;
-  def v2i64: StoreAFormVec<v2i64>;
-  def v4f32: StoreAFormVec<v4f32>;
-  def v2f64: StoreAFormVec<v2f64>;
-
-  def v2i32: StoreAFormVec<v2i32>;
-
-  def r128:  StoreAForm<GPRC>;
-  def r64:   StoreAForm<R64C>;
-  def r32:   StoreAForm<R32C>;
-  def f32:   StoreAForm<R32FP>;
-  def f64:   StoreAForm<R64FP>;
-  def r16:   StoreAForm<R16C>;
-  def r8:    StoreAForm<R8C>;
-}
-
-class StoreXFormVec<ValueType vectype>
-  : RRForm<0b00100100, (outs), (ins VECREG:$rT, memrr:$src),
-           "stqx\t$rT, $src",
-           LoadStore,
-           [(store (vectype VECREG:$rT), xform_addr:$src)]>
-{ }
-
-class StoreXForm<RegisterClass rclass>
-  : RRForm<0b00100100, (outs), (ins rclass:$rT, memrr:$src),
-           "stqx\t$rT, $src",
-           LoadStore,
-           [(store rclass:$rT, xform_addr:$src)]>
-{ }
-
-multiclass StoreXForms
-{
-  def v16i8: StoreXFormVec<v16i8>;
-  def v8i16: StoreXFormVec<v8i16>;
-  def v4i32: StoreXFormVec<v4i32>;
-  def v2i64: StoreXFormVec<v2i64>;
-  def v4f32: StoreXFormVec<v4f32>;
-  def v2f64: StoreXFormVec<v2f64>;
-
-  def v2i32: StoreXFormVec<v2i32>;
-
-  def r128:  StoreXForm<GPRC>;
-  def r64:   StoreXForm<R64C>;
-  def r32:   StoreXForm<R32C>;
-  def f32:   StoreXForm<R32FP>;
-  def f64:   StoreXForm<R64FP>;
-  def r16:   StoreXForm<R16C>;
-  def r8:    StoreXForm<R8C>;
-}
-
-defm STQD : StoreDForms;
-defm STQA : StoreAForms;
-defm STQX : StoreXForms;
-
-/* Store quadword, PC relative: Not much use at this point in time. Might
-   be useful for relocatable code.
-def STQR : RI16Form<0b111000100, (outs), (ins VECREG:$rT, s16imm:$disp),
-                   "stqr\t$rT, $disp", LoadStore,
-                   [(store VECREG:$rT, iaddr:$disp)]>;
-*/
-
-//===----------------------------------------------------------------------===//
-// Generate Controls for Insertion:
-//===----------------------------------------------------------------------===//
-
-def CBD: RI7Form<0b10101111100, (outs VECREG:$rT), (ins shufaddr:$src),
-    "cbd\t$rT, $src", ShuffleOp,
-    [(set (v16i8 VECREG:$rT), (SPUshufmask dform2_addr:$src))]>;
-
-def CBX: RRForm<0b00101011100, (outs VECREG:$rT), (ins memrr:$src),
-    "cbx\t$rT, $src", ShuffleOp,
-    [(set (v16i8 VECREG:$rT), (SPUshufmask xform_addr:$src))]>;
-
-def CHD: RI7Form<0b10101111100, (outs VECREG:$rT), (ins shufaddr:$src),
-    "chd\t$rT, $src", ShuffleOp,
-    [(set (v8i16 VECREG:$rT), (SPUshufmask dform2_addr:$src))]>;
-
-def CHX: RRForm<0b10101011100, (outs VECREG:$rT), (ins memrr:$src),
-    "chx\t$rT, $src", ShuffleOp,
-    [(set (v8i16 VECREG:$rT), (SPUshufmask xform_addr:$src))]>;
-
-def CWD: RI7Form<0b01101111100, (outs VECREG:$rT), (ins shufaddr:$src),
-    "cwd\t$rT, $src", ShuffleOp,
-    [(set (v4i32 VECREG:$rT), (SPUshufmask dform2_addr:$src))]>;
-
-def CWX: RRForm<0b01101011100, (outs VECREG:$rT), (ins memrr:$src),
-    "cwx\t$rT, $src", ShuffleOp,
-    [(set (v4i32 VECREG:$rT), (SPUshufmask xform_addr:$src))]>;
-
-def CWDf32: RI7Form<0b01101111100, (outs VECREG:$rT), (ins shufaddr:$src),
-    "cwd\t$rT, $src", ShuffleOp,
-    [(set (v4f32 VECREG:$rT), (SPUshufmask dform2_addr:$src))]>;
-
-def CWXf32: RRForm<0b01101011100, (outs VECREG:$rT), (ins memrr:$src),
-    "cwx\t$rT, $src", ShuffleOp,
-    [(set (v4f32 VECREG:$rT), (SPUshufmask xform_addr:$src))]>;
-
-def CDD: RI7Form<0b11101111100, (outs VECREG:$rT), (ins shufaddr:$src),
-    "cdd\t$rT, $src", ShuffleOp,
-    [(set (v2i64 VECREG:$rT), (SPUshufmask dform2_addr:$src))]>;
-
-def CDX: RRForm<0b11101011100, (outs VECREG:$rT), (ins memrr:$src),
-    "cdx\t$rT, $src", ShuffleOp,
-    [(set (v2i64 VECREG:$rT), (SPUshufmask xform_addr:$src))]>;
-
-def CDDf64: RI7Form<0b11101111100, (outs VECREG:$rT), (ins shufaddr:$src),
-    "cdd\t$rT, $src", ShuffleOp,
-    [(set (v2f64 VECREG:$rT), (SPUshufmask dform2_addr:$src))]>;
-
-def CDXf64: RRForm<0b11101011100, (outs VECREG:$rT), (ins memrr:$src),
-    "cdx\t$rT, $src", ShuffleOp,
-    [(set (v2f64 VECREG:$rT), (SPUshufmask xform_addr:$src))]>;
-
-//===----------------------------------------------------------------------===//
-// Constant formation:
-//===----------------------------------------------------------------------===//
-
-def ILHv8i16:
-  RI16Form<0b110000010, (outs VECREG:$rT), (ins s16imm:$val),
-    "ilh\t$rT, $val", ImmLoad,
-    [(set (v8i16 VECREG:$rT), (v8i16 v8i16SExt16Imm:$val))]>;
-
-def ILHr16:
-  RI16Form<0b110000010, (outs R16C:$rT), (ins s16imm:$val),
-    "ilh\t$rT, $val", ImmLoad,
-    [(set R16C:$rT, immSExt16:$val)]>;
-
-// Cell SPU doesn't have a native 8-bit immediate load, but ILH works ("with
-// the right constant")
-def ILHr8:
-  RI16Form<0b110000010, (outs R8C:$rT), (ins s16imm_i8:$val),
-    "ilh\t$rT, $val", ImmLoad,
-    [(set R8C:$rT, immSExt8:$val)]>;
-
-// IL does sign extension!
-
-class ILInst<dag OOL, dag IOL, list<dag> pattern>:
-  RI16Form<0b100000010, OOL, IOL, "il\t$rT, $val",
-           ImmLoad, pattern>;
-
-class ILVecInst<ValueType vectype, Operand immtype, PatLeaf xform>:
-  ILInst<(outs VECREG:$rT), (ins immtype:$val),
-         [(set (vectype VECREG:$rT), (vectype xform:$val))]>;
-
-class ILRegInst<RegisterClass rclass, Operand immtype, PatLeaf xform>:
-  ILInst<(outs rclass:$rT), (ins immtype:$val),
-         [(set rclass:$rT, xform:$val)]>;
-
-multiclass ImmediateLoad
-{
-  def v2i64: ILVecInst<v2i64, s16imm_i64, v2i64SExt16Imm>;
-  def v4i32: ILVecInst<v4i32, s16imm_i32, v4i32SExt16Imm>;
-
-  // TODO: Need v2f64, v4f32
-
-  def r64: ILRegInst<R64C, s16imm_i64, immSExt16>;
-  def r32: ILRegInst<R32C, s16imm_i32, immSExt16>;
-  def f32: ILRegInst<R32FP, s16imm_f32, fpimmSExt16>;
-  def f64: ILRegInst<R64FP, s16imm_f64, fpimmSExt16>;
-}
-
-defm IL : ImmediateLoad;
-
-class ILHUInst<dag OOL, dag IOL, list<dag> pattern>:
-  RI16Form<0b010000010, OOL, IOL, "ilhu\t$rT, $val",
-           ImmLoad, pattern>;
-
-class ILHUVecInst<ValueType vectype, Operand immtype, PatLeaf xform>:
-  ILHUInst<(outs VECREG:$rT), (ins immtype:$val),
-           [(set (vectype VECREG:$rT), (vectype xform:$val))]>;
-
-class ILHURegInst<RegisterClass rclass, Operand immtype, PatLeaf xform>:
-  ILHUInst<(outs rclass:$rT), (ins immtype:$val),
-           [(set rclass:$rT, xform:$val)]>;
-
-multiclass ImmLoadHalfwordUpper
-{
-  def v2i64: ILHUVecInst<v2i64, u16imm_i64, immILHUvec_i64>;
-  def v4i32: ILHUVecInst<v4i32, u16imm_i32, immILHUvec>;
-
-  def r64: ILHURegInst<R64C, u16imm_i64, hi16>;
-  def r32: ILHURegInst<R32C, u16imm_i32, hi16>;
-
-  // Loads the high portion of an address
-  def hi: ILHURegInst<R32C, symbolHi, hi16>;
-
-  // Used in custom lowering constant SFP loads:
-  def f32: ILHURegInst<R32FP, f16imm, hi16_f32>;
-}
-
-defm ILHU : ImmLoadHalfwordUpper;
-
-// Immediate load address (can also be used to load 18-bit unsigned constants,
-// see the zext 16->32 pattern)
-
-class ILAInst<dag OOL, dag IOL, list<dag> pattern>:
-  RI18Form<0b1000010, OOL, IOL, "ila\t$rT, $val",
-           LoadNOP, pattern>;
-
-class ILAVecInst<ValueType vectype, Operand immtype, PatLeaf xform>:
-  ILAInst<(outs VECREG:$rT), (ins immtype:$val),
-          [(set (vectype VECREG:$rT), (vectype xform:$val))]>;
-
-class ILARegInst<RegisterClass rclass, Operand immtype, PatLeaf xform>:
-  ILAInst<(outs rclass:$rT), (ins immtype:$val),
-          [(set rclass:$rT, xform:$val)]>;
-
-multiclass ImmLoadAddress
-{
-  def v2i64: ILAVecInst<v2i64, u18imm, v2i64Uns18Imm>;
-  def v4i32: ILAVecInst<v4i32, u18imm, v4i32Uns18Imm>;
-
-  def r64: ILARegInst<R64C, u18imm_i64, imm18>;
-  def r32: ILARegInst<R32C, u18imm, imm18>;
-  def f32: ILARegInst<R32FP, f18imm, fpimm18>;
-  def f64: ILARegInst<R64FP, f18imm_f64, fpimm18>;
-
-  def hi: ILARegInst<R32C, symbolHi, imm18>;
-  def lo: ILARegInst<R32C, symbolLo, imm18>;
-
-  def lsa: ILAInst<(outs R32C:$rT), (ins symbolLSA:$val),
-                   [/* no pattern */]>;
-}
-
-defm ILA : ImmLoadAddress;
-
-// Immediate OR, Halfword Lower: The "other" part of loading large constants
-// into 32-bit registers. See the anonymous pattern Pat<(i32 imm:$imm), ...>
-// Note that these are really two operand instructions, but they're encoded
-// as three operands with the first two arguments tied-to each other.
-
-class IOHLInst<dag OOL, dag IOL, list<dag> pattern>:
-  RI16Form<0b100000110, OOL, IOL, "iohl\t$rT, $val",
-           ImmLoad, pattern>,
-  RegConstraint<"$rS = $rT">,
-  NoEncode<"$rS">;
-
-class IOHLVecInst<ValueType vectype, Operand immtype /* , PatLeaf xform */>:
-  IOHLInst<(outs VECREG:$rT), (ins VECREG:$rS, immtype:$val),
-           [/* no pattern */]>;
-
-class IOHLRegInst<RegisterClass rclass, Operand immtype /* , PatLeaf xform */>:
-  IOHLInst<(outs rclass:$rT), (ins rclass:$rS, immtype:$val),
-           [/* no pattern */]>;
-
-multiclass ImmOrHalfwordLower
-{
-  def v2i64: IOHLVecInst<v2i64, u16imm_i64>;
-  def v4i32: IOHLVecInst<v4i32, u16imm_i32>;
-
-  def r32: IOHLRegInst<R32C, i32imm>;
-  def f32: IOHLRegInst<R32FP, f32imm>;
-
-  def lo: IOHLRegInst<R32C, symbolLo>;
-}
-
-defm IOHL: ImmOrHalfwordLower;
-
-// Form select mask for bytes using immediate, used in conjunction with the
-// SELB instruction:
-
-class FSMBIVec<ValueType vectype>:
-  RI16Form<0b101001100, (outs VECREG:$rT), (ins u16imm:$val),
-          "fsmbi\t$rT, $val",
-          SelectOp,
-          [(set (vectype VECREG:$rT), (SPUselmask (i16 immU16:$val)))]>;
-
-multiclass FormSelectMaskBytesImm
-{
-  def v16i8: FSMBIVec<v16i8>;
-  def v8i16: FSMBIVec<v8i16>;
-  def v4i32: FSMBIVec<v4i32>;
-  def v2i64: FSMBIVec<v2i64>;
-}
-
-defm FSMBI : FormSelectMaskBytesImm;
-
-// fsmb: Form select mask for bytes. N.B. Input operand, $rA, is 16-bits
-class FSMBInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b01101101100, OOL, IOL, "fsmb\t$rT, $rA", SelectOp,
-             pattern>;
-
-class FSMBRegInst<RegisterClass rclass, ValueType vectype>:
-    FSMBInst<(outs VECREG:$rT), (ins rclass:$rA),
-             [(set (vectype VECREG:$rT), (SPUselmask rclass:$rA))]>;
-
-class FSMBVecInst<ValueType vectype>:
-    FSMBInst<(outs VECREG:$rT), (ins VECREG:$rA),
-             [(set (vectype VECREG:$rT),
-                   (SPUselmask (vectype VECREG:$rA)))]>;
-
-multiclass FormSelectMaskBits {
-  def v16i8_r16: FSMBRegInst<R16C, v16i8>;
-  def v16i8:     FSMBVecInst<v16i8>;
-}
-
-defm FSMB: FormSelectMaskBits;
-
-// fsmh: Form select mask for halfwords. N.B., Input operand, $rA, is
-// only 8-bits wide (even though it's input as 16-bits here)
-
-class FSMHInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b10101101100, OOL, IOL, "fsmh\t$rT, $rA", SelectOp,
-             pattern>;
-
-class FSMHRegInst<RegisterClass rclass, ValueType vectype>:
-    FSMHInst<(outs VECREG:$rT), (ins rclass:$rA),
-             [(set (vectype VECREG:$rT), (SPUselmask rclass:$rA))]>;
-
-class FSMHVecInst<ValueType vectype>:
-    FSMHInst<(outs VECREG:$rT), (ins VECREG:$rA),
-             [(set (vectype VECREG:$rT),
-                   (SPUselmask (vectype VECREG:$rA)))]>;
-
-multiclass FormSelectMaskHalfword {
-  def v8i16_r16: FSMHRegInst<R16C, v8i16>;
-  def v8i16:     FSMHVecInst<v8i16>;
-}
-
-defm FSMH: FormSelectMaskHalfword;
-
-// fsm: Form select mask for words. Like the other fsm* instructions,
-// only the lower 4 bits of $rA are significant.
-
-class FSMInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b00101101100, OOL, IOL, "fsm\t$rT, $rA", SelectOp,
-             pattern>;
-
-class FSMRegInst<ValueType vectype, RegisterClass rclass>:
-    FSMInst<(outs VECREG:$rT), (ins rclass:$rA),
-            [(set (vectype VECREG:$rT), (SPUselmask rclass:$rA))]>;
-
-class FSMVecInst<ValueType vectype>:
-    FSMInst<(outs VECREG:$rT), (ins VECREG:$rA),
-            [(set (vectype VECREG:$rT), (SPUselmask (vectype VECREG:$rA)))]>;
-
-multiclass FormSelectMaskWord {
-  def v4i32: FSMVecInst<v4i32>;
-
-  def r32 :  FSMRegInst<v4i32, R32C>;
-  def r16 :  FSMRegInst<v4i32, R16C>;
-}
-
-defm FSM : FormSelectMaskWord;
-
-// Special case when used for i64 math operations
-multiclass FormSelectMaskWord64 {
-  def r32 : FSMRegInst<v2i64, R32C>;
-  def r16 : FSMRegInst<v2i64, R16C>;
-}
-
-defm FSM64 : FormSelectMaskWord64;
-
-//===----------------------------------------------------------------------===//
-// Integer and Logical Operations:
-//===----------------------------------------------------------------------===//
-
-def AHv8i16:
-  RRForm<0b00010011000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "ah\t$rT, $rA, $rB", IntegerOp,
-    [(set (v8i16 VECREG:$rT), (int_spu_si_ah VECREG:$rA, VECREG:$rB))]>;
-
-def : Pat<(add (v8i16 VECREG:$rA), (v8i16 VECREG:$rB)),
-          (AHv8i16 VECREG:$rA, VECREG:$rB)>;
-
-def AHr16:
-  RRForm<0b00010011000, (outs R16C:$rT), (ins R16C:$rA, R16C:$rB),
-    "ah\t$rT, $rA, $rB", IntegerOp,
-    [(set R16C:$rT, (add R16C:$rA, R16C:$rB))]>;
-
-def AHIvec:
-    RI10Form<0b10111000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-      "ahi\t$rT, $rA, $val", IntegerOp,
-      [(set (v8i16 VECREG:$rT), (add (v8i16 VECREG:$rA),
-                                     v8i16SExt10Imm:$val))]>;
-
-def AHIr16:
-  RI10Form<0b10111000, (outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-    "ahi\t$rT, $rA, $val", IntegerOp,
-    [(set R16C:$rT, (add R16C:$rA, i16ImmSExt10:$val))]>;
-
-// v4i32, i32 add instruction:
-
-class AInst<dag OOL, dag IOL, list<dag> pattern>:
-  RRForm<0b00000011000, OOL, IOL,
-         "a\t$rT, $rA, $rB", IntegerOp,
-         pattern>;
-
-class AVecInst<ValueType vectype>:
-  AInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-        [(set (vectype VECREG:$rT), (add (vectype VECREG:$rA),
-                                         (vectype VECREG:$rB)))]>;
-
-class ARegInst<RegisterClass rclass>:
-  AInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-        [(set rclass:$rT, (add rclass:$rA, rclass:$rB))]>;
-        
-multiclass AddInstruction {
-  def v4i32: AVecInst<v4i32>;
-  def v16i8: AVecInst<v16i8>;
-  
-  def r32:   ARegInst<R32C>;
-}
-
-defm A : AddInstruction;
-
-class AIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI10Form<0b00111000, OOL, IOL,
-             "ai\t$rT, $rA, $val", IntegerOp,
-             pattern>;
-
-class AIVecInst<ValueType vectype, PatLeaf immpred>:
-    AIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-            [(set (vectype VECREG:$rT), (add (vectype VECREG:$rA), immpred:$val))]>;
-
-class AIFPVecInst<ValueType vectype, PatLeaf immpred>:
-    AIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-            [/* no pattern */]>;
-
-class AIRegInst<RegisterClass rclass, PatLeaf immpred>:
-    AIInst<(outs rclass:$rT), (ins rclass:$rA, s10imm_i32:$val),
-           [(set rclass:$rT, (add rclass:$rA, immpred:$val))]>;
-
-// This is used to add epsilons to floating point numbers in the f32 fdiv code:
-class AIFPInst<RegisterClass rclass, PatLeaf immpred>:
-    AIInst<(outs rclass:$rT), (ins rclass:$rA, s10imm_i32:$val),
-           [/* no pattern */]>;
-
-multiclass AddImmediate {
-  def v4i32: AIVecInst<v4i32, v4i32SExt10Imm>;
-
-  def r32: AIRegInst<R32C, i32ImmSExt10>;
-
-  def v4f32: AIFPVecInst<v4f32, v4i32SExt10Imm>;
-  def f32: AIFPInst<R32FP, i32ImmSExt10>;
-}
-
-defm AI : AddImmediate;
-
-def SFHvec:
-    RRForm<0b00010010000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "sfh\t$rT, $rA, $rB", IntegerOp,
-      [(set (v8i16 VECREG:$rT), (sub (v8i16 VECREG:$rA),
-                                     (v8i16 VECREG:$rB)))]>;
-
-def SFHr16:
-    RRForm<0b00010010000, (outs R16C:$rT), (ins R16C:$rA, R16C:$rB),
-      "sfh\t$rT, $rA, $rB", IntegerOp,
-      [(set R16C:$rT, (sub R16C:$rA, R16C:$rB))]>;
-
-def SFHIvec:
-    RI10Form<0b10110000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-      "sfhi\t$rT, $rA, $val", IntegerOp,
-      [(set (v8i16 VECREG:$rT), (sub v8i16SExt10Imm:$val,
-                                     (v8i16 VECREG:$rA)))]>;
-
-def SFHIr16 : RI10Form<0b10110000, (outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-  "sfhi\t$rT, $rA, $val", IntegerOp,
-  [(set R16C:$rT, (sub i16ImmSExt10:$val, R16C:$rA))]>;
-
-def SFvec : RRForm<0b00000010000, (outs VECREG:$rT),
-                                  (ins VECREG:$rA, VECREG:$rB),
-  "sf\t$rT, $rA, $rB", IntegerOp,
-  [(set (v4i32 VECREG:$rT), (sub (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-def SFr32 : RRForm<0b00000010000, (outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-  "sf\t$rT, $rA, $rB", IntegerOp,
-  [(set R32C:$rT, (sub R32C:$rA, R32C:$rB))]>;
-
-def SFIvec:
-    RI10Form<0b00110000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-      "sfi\t$rT, $rA, $val", IntegerOp,
-      [(set (v4i32 VECREG:$rT), (sub v4i32SExt10Imm:$val,
-                                     (v4i32 VECREG:$rA)))]>;
-
-def SFIr32 : RI10Form<0b00110000, (outs R32C:$rT),
-                                  (ins R32C:$rA, s10imm_i32:$val),
-  "sfi\t$rT, $rA, $val", IntegerOp,
-  [(set R32C:$rT, (sub i32ImmSExt10:$val, R32C:$rA))]>;
-
-// ADDX: only available in vector form, doesn't match a pattern.
-class ADDXInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b00000010110, OOL, IOL,
-      "addx\t$rT, $rA, $rB",
-      IntegerOp, pattern>;
-
-class ADDXVecInst<ValueType vectype>:
-    ADDXInst<(outs VECREG:$rT),
-             (ins VECREG:$rA, VECREG:$rB, VECREG:$rCarry),
-             [/* no pattern */]>,
-    RegConstraint<"$rCarry = $rT">,
-    NoEncode<"$rCarry">;
-
-class ADDXRegInst<RegisterClass rclass>:
-    ADDXInst<(outs rclass:$rT),
-             (ins rclass:$rA, rclass:$rB, rclass:$rCarry),
-             [/* no pattern */]>,
-    RegConstraint<"$rCarry = $rT">,
-    NoEncode<"$rCarry">;
-
-multiclass AddExtended {
-  def v2i64 : ADDXVecInst<v2i64>;
-  def v4i32 : ADDXVecInst<v4i32>;
-  def r64 : ADDXRegInst<R64C>;
-  def r32 : ADDXRegInst<R32C>;
-}
-
-defm ADDX : AddExtended;
-
-// CG: Generate carry for add
-class CGInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b01000011000, OOL, IOL,
-      "cg\t$rT, $rA, $rB",
-      IntegerOp, pattern>;
-
-class CGVecInst<ValueType vectype>:
-    CGInst<(outs VECREG:$rT),
-           (ins VECREG:$rA, VECREG:$rB),
-           [/* no pattern */]>;
-
-class CGRegInst<RegisterClass rclass>:
-    CGInst<(outs rclass:$rT),
-           (ins rclass:$rA, rclass:$rB),
-           [/* no pattern */]>;
-
-multiclass CarryGenerate {
-  def v2i64 : CGVecInst<v2i64>;
-  def v4i32 : CGVecInst<v4i32>;
-  def r64 : CGRegInst<R64C>;
-  def r32 : CGRegInst<R32C>;
-}
-
-defm CG : CarryGenerate;
-
-// SFX: Subract from, extended. This is used in conjunction with BG to subtract
-// with carry (borrow, in this case)
-class SFXInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10000010110, OOL, IOL,
-      "sfx\t$rT, $rA, $rB",
-      IntegerOp, pattern>;
-
-class SFXVecInst<ValueType vectype>:
-    SFXInst<(outs VECREG:$rT),
-            (ins VECREG:$rA, VECREG:$rB, VECREG:$rCarry),
-             [/* no pattern */]>,
-    RegConstraint<"$rCarry = $rT">,
-    NoEncode<"$rCarry">;
-
-class SFXRegInst<RegisterClass rclass>:
-    SFXInst<(outs rclass:$rT),
-            (ins rclass:$rA, rclass:$rB, rclass:$rCarry),
-             [/* no pattern */]>,
-    RegConstraint<"$rCarry = $rT">,
-    NoEncode<"$rCarry">;
-
-multiclass SubtractExtended {
-  def v2i64 : SFXVecInst<v2i64>;
-  def v4i32 : SFXVecInst<v4i32>;
-  def r64 : SFXRegInst<R64C>;
-  def r32 : SFXRegInst<R32C>;
-}
-
-defm SFX : SubtractExtended;
-
-// BG: only available in vector form, doesn't match a pattern.
-class BGInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b01000010000, OOL, IOL,
-      "bg\t$rT, $rA, $rB",
-      IntegerOp, pattern>;
-
-class BGVecInst<ValueType vectype>:
-    BGInst<(outs VECREG:$rT),
-           (ins VECREG:$rA, VECREG:$rB),
-           [/* no pattern */]>;
-
-class BGRegInst<RegisterClass rclass>:
-    BGInst<(outs rclass:$rT),
-           (ins rclass:$rA, rclass:$rB),
-           [/* no pattern */]>;
-
-multiclass BorrowGenerate {
-  def v4i32 : BGVecInst<v4i32>;
-  def v2i64 : BGVecInst<v2i64>;
-  def r64 : BGRegInst<R64C>;
-  def r32 : BGRegInst<R32C>;
-}
-
-defm BG : BorrowGenerate;
-
-// BGX: Borrow generate, extended.
-def BGXvec:
-    RRForm<0b11000010110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB,
-                                VECREG:$rCarry),
-      "bgx\t$rT, $rA, $rB", IntegerOp,
-      []>,
-    RegConstraint<"$rCarry = $rT">,
-    NoEncode<"$rCarry">;
-
-// Halfword multiply variants:
-// N.B: These can be used to build up larger quantities (16x16 -> 32)
-
-def MPYv8i16:
-  RRForm<0b00100011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-    "mpy\t$rT, $rA, $rB", IntegerMulDiv,
-    [/* no pattern */]>;
-
-def MPYr16:
-  RRForm<0b00100011110, (outs R16C:$rT), (ins R16C:$rA, R16C:$rB),
-    "mpy\t$rT, $rA, $rB", IntegerMulDiv,
-    [(set R16C:$rT, (mul R16C:$rA, R16C:$rB))]>;
-
-// Unsigned 16-bit multiply:
-
-class MPYUInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b00110011110, OOL, IOL,
-      "mpyu\t$rT, $rA, $rB", IntegerMulDiv,
-      pattern>;
-
-def MPYUv4i32:
-  MPYUInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-           [/* no pattern */]>;
-
-def MPYUr16:
-  MPYUInst<(outs R32C:$rT), (ins R16C:$rA, R16C:$rB),
-           [(set R32C:$rT, (mul (zext R16C:$rA), (zext R16C:$rB)))]>;
-
-def MPYUr32:
-  MPYUInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-           [/* no pattern */]>;
-
-// mpyi: multiply 16 x s10imm -> 32 result.
-
-class MPYIInst<dag OOL, dag IOL, list<dag> pattern>:
-  RI10Form<0b00101110, OOL, IOL,
-    "mpyi\t$rT, $rA, $val", IntegerMulDiv,
-    pattern>;
-
-def MPYIvec:
-  MPYIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-           [(set (v8i16 VECREG:$rT),
-                 (mul (v8i16 VECREG:$rA), v8i16SExt10Imm:$val))]>;
-
-def MPYIr16:
-  MPYIInst<(outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-           [(set R16C:$rT, (mul R16C:$rA, i16ImmSExt10:$val))]>;
-
-// mpyui: same issues as other multiplies, plus, this doesn't match a
-// pattern... but may be used during target DAG selection or lowering
-
-class MPYUIInst<dag OOL, dag IOL, list<dag> pattern>:
-  RI10Form<0b10101110, OOL, IOL,
-           "mpyui\t$rT, $rA, $val", IntegerMulDiv,
-           pattern>;
-    
-def MPYUIvec:
-  MPYUIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-            []>;
-
-def MPYUIr16:
-  MPYUIInst<(outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-            []>;
-
-// mpya: 16 x 16 + 16 -> 32 bit result
-class MPYAInst<dag OOL, dag IOL, list<dag> pattern>:
-  RRRForm<0b0011, OOL, IOL,
-          "mpya\t$rT, $rA, $rB, $rC", IntegerMulDiv,
-          pattern>;
-          
-def MPYAv4i32:
-  MPYAInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-           [(set (v4i32 VECREG:$rT),
-                 (add (v4i32 (bitconvert (mul (v8i16 VECREG:$rA),
-                                              (v8i16 VECREG:$rB)))),
-                      (v4i32 VECREG:$rC)))]>;
-
-def MPYAr32:
-  MPYAInst<(outs R32C:$rT), (ins R16C:$rA, R16C:$rB, R32C:$rC),
-           [(set R32C:$rT, (add (sext (mul R16C:$rA, R16C:$rB)),
-                                R32C:$rC))]>;
-                                
-def MPYAr32_sext:
-  MPYAInst<(outs R32C:$rT), (ins R16C:$rA, R16C:$rB, R32C:$rC),
-           [(set R32C:$rT, (add (mul (sext R16C:$rA), (sext R16C:$rB)),
-                                R32C:$rC))]>;
-
-def MPYAr32_sextinreg:
-  MPYAInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB, R32C:$rC),
-           [(set R32C:$rT, (add (mul (sext_inreg R32C:$rA, i16),
-                                     (sext_inreg R32C:$rB, i16)),
-                                R32C:$rC))]>;
-
-// mpyh: multiply high, used to synthesize 32-bit multiplies
-class MPYHInst<dag OOL, dag IOL, list<dag> pattern>:
-  RRForm<0b10100011110, OOL, IOL,
-         "mpyh\t$rT, $rA, $rB", IntegerMulDiv,
-         pattern>;
-         
-def MPYHv4i32:
-    MPYHInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-             [/* no pattern */]>;
-
-def MPYHr32:
-    MPYHInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-             [/* no pattern */]>;
-
-// mpys: multiply high and shift right (returns the top half of
-// a 16-bit multiply, sign extended to 32 bits.)
-
-class MPYSInst<dag OOL, dag IOL>:
-    RRForm<0b11100011110, OOL, IOL, 
-      "mpys\t$rT, $rA, $rB", IntegerMulDiv,
-      [/* no pattern */]>;
-
-def MPYSv4i32:
-    MPYSInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB)>;
-    
-def MPYSr16:
-    MPYSInst<(outs R32C:$rT), (ins R16C:$rA, R16C:$rB)>;
-
-// mpyhh: multiply high-high (returns the 32-bit result from multiplying
-// the top 16 bits of the $rA, $rB)
-
-class MPYHHInst<dag OOL, dag IOL>:
-  RRForm<0b01100011110, OOL, IOL,
-        "mpyhh\t$rT, $rA, $rB", IntegerMulDiv,
-        [/* no pattern */]>;
-        
-def MPYHHv8i16:
-    MPYHHInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB)>;
-
-def MPYHHr32:
-    MPYHHInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB)>;
-
-// mpyhha: Multiply high-high, add to $rT:
-
-class MPYHHAInst<dag OOL, dag IOL>:
-    RRForm<0b01100010110, OOL, IOL,
-      "mpyhha\t$rT, $rA, $rB", IntegerMulDiv,
-      [/* no pattern */]>;
-
-def MPYHHAvec:
-    MPYHHAInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB)>;
-    
-def MPYHHAr32:
-    MPYHHAInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB)>;
-
-// mpyhhu: Multiply high-high, unsigned, e.g.:
-//
-// +-------+-------+   +-------+-------+   +---------+
-// |  a0   .  a1   | x |  b0   .  b1   | = | a0 x b0 |
-// +-------+-------+   +-------+-------+   +---------+
-//
-// where a0, b0 are the upper 16 bits of the 32-bit word
-
-class MPYHHUInst<dag OOL, dag IOL>:
-    RRForm<0b01110011110, OOL, IOL,
-      "mpyhhu\t$rT, $rA, $rB", IntegerMulDiv,
-      [/* no pattern */]>;
-
-def MPYHHUv4i32:
-    MPYHHUInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB)>;
-    
-def MPYHHUr32:
-    MPYHHUInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB)>;
-
-// mpyhhau: Multiply high-high, unsigned
-
-class MPYHHAUInst<dag OOL, dag IOL>:
-    RRForm<0b01110010110, OOL, IOL,
-      "mpyhhau\t$rT, $rA, $rB", IntegerMulDiv,
-      [/* no pattern */]>;
-
-def MPYHHAUvec:
-    MPYHHAUInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB)>;
-    
-def MPYHHAUr32:
-    MPYHHAUInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB)>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// clz: Count leading zeroes
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-class CLZInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b10100101010, OOL, IOL, "clz\t$rT, $rA",
-             IntegerOp, pattern>;
-
-class CLZRegInst<RegisterClass rclass>:
-    CLZInst<(outs rclass:$rT), (ins rclass:$rA),
-            [(set rclass:$rT, (ctlz rclass:$rA))]>;
-
-class CLZVecInst<ValueType vectype>:
-    CLZInst<(outs VECREG:$rT), (ins VECREG:$rA),
-            [(set (vectype VECREG:$rT), (ctlz (vectype VECREG:$rA)))]>;
-
-multiclass CountLeadingZeroes {
-  def v4i32 : CLZVecInst<v4i32>;
-  def r32   : CLZRegInst<R32C>;
-}
-
-defm CLZ : CountLeadingZeroes;
-
-// cntb: Count ones in bytes (aka "population count")
-//
-// NOTE: This instruction is really a vector instruction, but the custom
-// lowering code uses it in unorthodox ways to support CTPOP for other
-// data types!
-
-def CNTBv16i8:
-    RRForm_1<0b00101101010, (outs VECREG:$rT), (ins VECREG:$rA),
-      "cntb\t$rT, $rA", IntegerOp,
-      [(set (v16i8 VECREG:$rT), (SPUcntb (v16i8 VECREG:$rA)))]>;
-
-def CNTBv8i16 :
-    RRForm_1<0b00101101010, (outs VECREG:$rT), (ins VECREG:$rA),
-      "cntb\t$rT, $rA", IntegerOp,
-      [(set (v8i16 VECREG:$rT), (SPUcntb (v8i16 VECREG:$rA)))]>;
-
-def CNTBv4i32 :
-    RRForm_1<0b00101101010, (outs VECREG:$rT), (ins VECREG:$rA),
-      "cntb\t$rT, $rA", IntegerOp,
-      [(set (v4i32 VECREG:$rT), (SPUcntb (v4i32 VECREG:$rA)))]>;
-
-// gbb: Gather the low order bits from each byte in $rA into a single 16-bit
-// quantity stored into $rT's slot 0, upper 16 bits are zeroed, as are
-// slots 1-3.
-//
-// Note: This instruction "pairs" with the fsmb instruction for all of the
-// various types defined here.
-//
-// Note 2: The "VecInst" and "RegInst" forms refer to the result being either
-// a vector or register.
-
-class GBBInst<dag OOL, dag IOL, list<dag> pattern>:
-  RRForm_1<0b01001101100, OOL, IOL, "gbb\t$rT, $rA", GatherOp, pattern>;
-
-class GBBRegInst<RegisterClass rclass, ValueType vectype>:
-  GBBInst<(outs rclass:$rT), (ins VECREG:$rA),
-          [/* no pattern */]>;
-
-class GBBVecInst<ValueType vectype>:
-  GBBInst<(outs VECREG:$rT), (ins VECREG:$rA),
-          [/* no pattern */]>;
-
-multiclass GatherBitsFromBytes {
-  def v16i8_r32: GBBRegInst<R32C, v16i8>;
-  def v16i8_r16: GBBRegInst<R16C, v16i8>;
-  def v16i8:     GBBVecInst<v16i8>;
-}
-
-defm GBB: GatherBitsFromBytes;
-
-// gbh: Gather all low order bits from each halfword in $rA into a single
-// 8-bit quantity stored in $rT's slot 0, with the upper bits of $rT set to 0
-// and slots 1-3 also set to 0.
-//
-// See notes for GBBInst, above.
-
-class GBHInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b10001101100, OOL, IOL, "gbh\t$rT, $rA", GatherOp,
-             pattern>;
-
-class GBHRegInst<RegisterClass rclass, ValueType vectype>:
-    GBHInst<(outs rclass:$rT), (ins VECREG:$rA),
-            [/* no pattern */]>;
-
-class GBHVecInst<ValueType vectype>:
-    GBHInst<(outs VECREG:$rT), (ins VECREG:$rA),
-            [/* no pattern */]>;
-
-multiclass GatherBitsHalfword {
-  def v8i16_r32: GBHRegInst<R32C, v8i16>;
-  def v8i16_r16: GBHRegInst<R16C, v8i16>;
-  def v8i16:     GBHVecInst<v8i16>;
-}
-
-defm GBH: GatherBitsHalfword;
-
-// gb: Gather all low order bits from each word in $rA into a single
-// 4-bit quantity stored in $rT's slot 0, upper bits in $rT set to 0,
-// as well as slots 1-3.
-//
-// See notes for gbb, above.
-
-class GBInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b00001101100, OOL, IOL, "gb\t$rT, $rA", GatherOp,
-             pattern>;
-
-class GBRegInst<RegisterClass rclass, ValueType vectype>:
-    GBInst<(outs rclass:$rT), (ins VECREG:$rA),
-           [/* no pattern */]>;
-
-class GBVecInst<ValueType vectype>:
-    GBInst<(outs VECREG:$rT), (ins VECREG:$rA),
-           [/* no pattern */]>;
-
-multiclass GatherBitsWord {
-  def v4i32_r32: GBRegInst<R32C, v4i32>;
-  def v4i32_r16: GBRegInst<R16C, v4i32>;
-  def v4i32:     GBVecInst<v4i32>;
-}
-
-defm GB: GatherBitsWord;
-
-// avgb: average bytes
-def AVGB:
-    RRForm<0b11001011000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "avgb\t$rT, $rA, $rB", ByteOp,
-      []>;
-
-// absdb: absolute difference of bytes
-def ABSDB:
-    RRForm<0b11001010000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "absdb\t$rT, $rA, $rB", ByteOp,
-      []>;
-
-// sumb: sum bytes into halfwords
-def SUMB:
-    RRForm<0b11001010010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "sumb\t$rT, $rA, $rB", ByteOp,
-      []>;
-
-// Sign extension operations:
-class XSBHInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b01101101010, OOL, IOL,
-      "xsbh\t$rDst, $rSrc",
-      IntegerOp, pattern>;
-
-class XSBHVecInst<ValueType vectype>:
-    XSBHInst<(outs VECREG:$rDst), (ins VECREG:$rSrc),
-      [(set (v8i16 VECREG:$rDst), (sext (vectype VECREG:$rSrc)))]>;
-
-class XSBHInRegInst<RegisterClass rclass, list<dag> pattern>:
-    XSBHInst<(outs rclass:$rDst), (ins rclass:$rSrc),
-             pattern>;
-
-multiclass ExtendByteHalfword {
-  def v16i8:     XSBHVecInst<v8i16>;
-  def r8:        XSBHInst<(outs R16C:$rDst), (ins R8C:$rSrc),
-                          [(set R16C:$rDst, (sext R8C:$rSrc))]>;
-  def r16:       XSBHInRegInst<R16C,
-                               [(set R16C:$rDst, (sext_inreg R16C:$rSrc, i8))]>;
-
-  // 32-bit form for XSBH: used to sign extend 8-bit quantities to 16-bit
-  // quantities to 32-bit quantities via a 32-bit register (see the sext 8->32
-  // pattern below). Intentionally doesn't match a pattern because we want the
-  // sext 8->32 pattern to do the work for us, namely because we need the extra
-  // XSHWr32.
-  def r32:   XSBHInRegInst<R32C, [/* no pattern */]>;
-  
-  // Same as the 32-bit version, but for i64
-  def r64:   XSBHInRegInst<R64C, [/* no pattern */]>;
-}
-
-defm XSBH : ExtendByteHalfword;
-
-// Sign extend halfwords to words:
-
-class XSHWInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b01101101010, OOL, IOL, "xshw\t$rDest, $rSrc",
-            IntegerOp, pattern>;
-
-class XSHWVecInst<ValueType in_vectype, ValueType out_vectype>:
-    XSHWInst<(outs VECREG:$rDest), (ins VECREG:$rSrc),
-             [(set (out_vectype VECREG:$rDest),
-                   (sext (in_vectype VECREG:$rSrc)))]>;
-
-class XSHWInRegInst<RegisterClass rclass, list<dag> pattern>:
-    XSHWInst<(outs rclass:$rDest), (ins rclass:$rSrc),
-             pattern>;
-             
-class XSHWRegInst<RegisterClass rclass>:
-    XSHWInst<(outs rclass:$rDest), (ins R16C:$rSrc),
-             [(set rclass:$rDest, (sext R16C:$rSrc))]>;
-
-multiclass ExtendHalfwordWord {
-  def v4i32: XSHWVecInst<v4i32, v8i16>;
-  
-  def r16:   XSHWRegInst<R32C>;
-  
-  def r32:   XSHWInRegInst<R32C,
-                          [(set R32C:$rDest, (sext_inreg R32C:$rSrc, i16))]>;
-  def r64:   XSHWInRegInst<R64C, [/* no pattern */]>;
-}
-
-defm XSHW : ExtendHalfwordWord;
-
-// Sign-extend words to doublewords (32->64 bits)
-
-class XSWDInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm_1<0b01100101010, OOL, IOL, "xswd\t$rDst, $rSrc",
-              IntegerOp, pattern>;
-      
-class XSWDVecInst<ValueType in_vectype, ValueType out_vectype>:
-    XSWDInst<(outs VECREG:$rDst), (ins VECREG:$rSrc),
-             [(set (out_vectype VECREG:$rDst),
-                   (sext (out_vectype VECREG:$rSrc)))]>;
-      
-class XSWDRegInst<RegisterClass in_rclass, RegisterClass out_rclass>:
-    XSWDInst<(outs out_rclass:$rDst), (ins in_rclass:$rSrc),
-             [(set out_rclass:$rDst, (sext in_rclass:$rSrc))]>;
-             
-multiclass ExtendWordToDoubleWord {
-  def v2i64: XSWDVecInst<v4i32, v2i64>;
-  def r64:   XSWDRegInst<R32C, R64C>;
-  
-  def r64_inreg: XSWDInst<(outs R64C:$rDst), (ins R64C:$rSrc),
-                          [(set R64C:$rDst, (sext_inreg R64C:$rSrc, i32))]>;
-}
-
-defm XSWD : ExtendWordToDoubleWord;
-
-// AND operations
-
-class ANDInst<dag OOL, dag IOL, list<dag> pattern> :
-    RRForm<0b10000011000, OOL, IOL, "and\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class ANDVecInst<ValueType vectype>:
-    ANDInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-             [(set (vectype VECREG:$rT), (and (vectype VECREG:$rA),
-                                              (vectype VECREG:$rB)))]>;
-
-class ANDRegInst<RegisterClass rclass>:
-    ANDInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-             [(set rclass:$rT, (and rclass:$rA, rclass:$rB))]>;
-
-multiclass BitwiseAnd
-{
-  def v16i8: ANDVecInst<v16i8>;
-  def v8i16: ANDVecInst<v8i16>;
-  def v4i32: ANDVecInst<v4i32>;
-  def v2i64: ANDVecInst<v2i64>;
-
-  def r128:  ANDRegInst<GPRC>;
-  def r64:   ANDRegInst<R64C>;
-  def r32:   ANDRegInst<R32C>;
-  def r16:   ANDRegInst<R16C>;
-  def r8:    ANDRegInst<R8C>;
-
-  //===---------------------------------------------
-  // Special instructions to perform the fabs instruction
-  def fabs32: ANDInst<(outs R32FP:$rT), (ins R32FP:$rA, R32C:$rB),
-                      [/* Intentionally does not match a pattern */]>;
-
-  def fabs64: ANDInst<(outs R64FP:$rT), (ins R64FP:$rA, R64C:$rB),
-                      [/* Intentionally does not match a pattern */]>;
-
-  def fabsvec: ANDInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                       [/* Intentionally does not match a pattern */]>;
-
-  //===---------------------------------------------
-
-  // Hacked form of AND to zero-extend 16-bit quantities to 32-bit
-  // quantities -- see 16->32 zext pattern.
-  //
-  // This pattern is somewhat artificial, since it might match some
-  // compiler generated pattern but it is unlikely to do so.
-
-  def i16i32: ANDInst<(outs R32C:$rT), (ins R16C:$rA, R32C:$rB),
-                      [(set R32C:$rT, (and (zext R16C:$rA), R32C:$rB))]>;
-}
-
-defm AND : BitwiseAnd;
-
-// N.B.: vnot_conv is one of those special target selection pattern fragments,
-// in which we expect there to be a bit_convert on the constant. Bear in mind
-// that llvm translates "not <reg>" to "xor <reg>, -1" (or in this case, a
-// constant -1 vector.)
-
-class ANDCInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10000011010, OOL, IOL, "andc\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class ANDCVecInst<ValueType vectype, PatFrag vnot_frag = vnot>:
-    ANDCInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-             [(set (vectype VECREG:$rT),
-                   (and (vectype VECREG:$rA),
-                        (vnot_frag (vectype VECREG:$rB))))]>;
-
-class ANDCRegInst<RegisterClass rclass>:
-    ANDCInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-             [(set rclass:$rT, (and rclass:$rA, (not rclass:$rB)))]>;
-
-multiclass AndComplement
-{
-  def v16i8: ANDCVecInst<v16i8>;
-  def v8i16: ANDCVecInst<v8i16>;
-  def v4i32: ANDCVecInst<v4i32>;
-  def v2i64: ANDCVecInst<v2i64>;
-
-  def r128: ANDCRegInst<GPRC>;
-  def r64:  ANDCRegInst<R64C>;
-  def r32:  ANDCRegInst<R32C>;
-  def r16:  ANDCRegInst<R16C>;
-  def r8:   ANDCRegInst<R8C>;
-
-  // Sometimes, the xor pattern has a bitcast constant:
-  def v16i8_conv: ANDCVecInst<v16i8, vnot_conv>;
-}
-
-defm ANDC : AndComplement;
-
-class ANDBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI10Form<0b01101000, OOL, IOL, "andbi\t$rT, $rA, $val",
-             ByteOp, pattern>;
-
-multiclass AndByteImm
-{
-  def v16i8: ANDBIInst<(outs VECREG:$rT), (ins VECREG:$rA, u10imm:$val),
-                       [(set (v16i8 VECREG:$rT),
-                             (and (v16i8 VECREG:$rA),
-                                  (v16i8 v16i8U8Imm:$val)))]>;
-
-  def r8: ANDBIInst<(outs R8C:$rT), (ins R8C:$rA, u10imm_i8:$val),
-                    [(set R8C:$rT, (and R8C:$rA, immU8:$val))]>;
-}
-
-defm ANDBI : AndByteImm;
-
-class ANDHIInst<dag OOL, dag IOL, list<dag> pattern> :
-    RI10Form<0b10101000, OOL, IOL, "andhi\t$rT, $rA, $val",
-             ByteOp, pattern>;
-
-multiclass AndHalfwordImm
-{
-  def v8i16: ANDHIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                       [(set (v8i16 VECREG:$rT),
-                             (and (v8i16 VECREG:$rA), v8i16SExt10Imm:$val))]>;
-
-  def r16: ANDHIInst<(outs R16C:$rT), (ins R16C:$rA, u10imm:$val),
-                     [(set R16C:$rT, (and R16C:$rA, i16ImmUns10:$val))]>;
-
-  // Zero-extend i8 to i16:
-  def i8i16: ANDHIInst<(outs R16C:$rT), (ins R8C:$rA, u10imm:$val),
-                      [(set R16C:$rT, (and (zext R8C:$rA), i16ImmUns10:$val))]>;
-}
-
-defm ANDHI : AndHalfwordImm;
-
-class ANDIInst<dag OOL, dag IOL, list<dag> pattern> :
-    RI10Form<0b00101000, OOL, IOL, "andi\t$rT, $rA, $val",
-             IntegerOp, pattern>;
-
-multiclass AndWordImm
-{
-  def v4i32: ANDIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                      [(set (v4i32 VECREG:$rT),
-                            (and (v4i32 VECREG:$rA), v4i32SExt10Imm:$val))]>;
-
-  def r32: ANDIInst<(outs R32C:$rT), (ins R32C:$rA, s10imm_i32:$val),
-                    [(set R32C:$rT, (and R32C:$rA, i32ImmSExt10:$val))]>;
-
-  // Hacked form of ANDI to zero-extend i8 quantities to i32. See the zext 8->32
-  // pattern below.
-  def i8i32: ANDIInst<(outs R32C:$rT), (ins R8C:$rA, s10imm_i32:$val),
-                      [(set R32C:$rT,
-                            (and (zext R8C:$rA), i32ImmSExt10:$val))]>;
-
-  // Hacked form of ANDI to zero-extend i16 quantities to i32. See the
-  // zext 16->32 pattern below.
-  //
-  // Note that this pattern is somewhat artificial, since it might match
-  // something the compiler generates but is unlikely to occur in practice.
-  def i16i32: ANDIInst<(outs R32C:$rT), (ins R16C:$rA, s10imm_i32:$val),
-                       [(set R32C:$rT,
-                             (and (zext R16C:$rA), i32ImmSExt10:$val))]>;
-}
-
-defm ANDI : AndWordImm;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Bitwise OR group:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-// Bitwise "or" (N.B.: These are also register-register copy instructions...)
-class ORInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10000010000, OOL, IOL, "or\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class ORVecInst<ValueType vectype>:
-    ORInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-           [(set (vectype VECREG:$rT), (or (vectype VECREG:$rA),
-                                           (vectype VECREG:$rB)))]>;
-
-class ORRegInst<RegisterClass rclass>:
-    ORInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-           [(set rclass:$rT, (or rclass:$rA, rclass:$rB))]>;
-
-// ORCvtForm: OR conversion form
-//
-// This is used to "convert" the preferred slot to its vector equivalent, as
-// well as convert a vector back to its preferred slot.
-//
-// These are effectively no-ops, but need to exist for proper type conversion
-// and type coercion.
-
-class ORCvtForm<dag OOL, dag IOL, list<dag> pattern = [/* no pattern */]>
-          : SPUInstr<OOL, IOL, "or\t$rT, $rA, $rA", IntegerOp> {
-  bits<7> RA;
-  bits<7> RT;
-
-  let Pattern = pattern;
-
-  let Inst{0-10} = 0b10000010000;
-  let Inst{11-17} = RA;
-  let Inst{18-24} = RA;
-  let Inst{25-31} = RT;
-}
-
-class ORPromoteScalar<RegisterClass rclass>:
-    ORCvtForm<(outs VECREG:$rT), (ins rclass:$rA)>;
-
-class ORExtractElt<RegisterClass rclass>:
-    ORCvtForm<(outs rclass:$rT), (ins VECREG:$rA)>;
-
-/* class ORCvtRegGPRC<RegisterClass rclass>:
-    ORCvtForm<(outs GPRC:$rT), (ins rclass:$rA)>; */
-
-/* class ORCvtGPRCReg<RegisterClass rclass>:
-    ORCvtForm<(outs rclass:$rT), (ins GPRC:$rA)>; */
-    
-class ORCvtFormR32Reg<RegisterClass rclass, list<dag> pattern = [ ]>:
-    ORCvtForm<(outs rclass:$rT), (ins R32C:$rA), pattern>;
-    
-class ORCvtFormRegR32<RegisterClass rclass, list<dag> pattern = [ ]>:
-    ORCvtForm<(outs R32C:$rT), (ins rclass:$rA), pattern>;
-
-class ORCvtFormR64Reg<RegisterClass rclass, list<dag> pattern = [ ]>:
-    ORCvtForm<(outs rclass:$rT), (ins R64C:$rA), pattern>;
-    
-class ORCvtFormRegR64<RegisterClass rclass, list<dag> pattern = [ ]>:
-    ORCvtForm<(outs R64C:$rT), (ins rclass:$rA), pattern>;
-
-class ORCvtGPRCVec:
-    ORCvtForm<(outs VECREG:$rT), (ins GPRC:$rA)>;
-
-class ORCvtVecGPRC:
-    ORCvtForm<(outs GPRC:$rT), (ins VECREG:$rA)>;
-
-multiclass BitwiseOr
-{
-  def v16i8: ORVecInst<v16i8>;
-  def v8i16: ORVecInst<v8i16>;
-  def v4i32: ORVecInst<v4i32>;
-  def v2i64: ORVecInst<v2i64>;
-
-  def v4f32: ORInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                    [(set (v4f32 VECREG:$rT),
-                          (v4f32 (bitconvert (or (v4i32 VECREG:$rA),
-                                                 (v4i32 VECREG:$rB)))))]>;
-
-  def v2f64: ORInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                    [(set (v2f64 VECREG:$rT),
-                          (v2f64 (bitconvert (or (v2i64 VECREG:$rA),
-                                                 (v2i64 VECREG:$rB)))))]>;
-
-  def r128: ORRegInst<GPRC>;
-  def r64:  ORRegInst<R64C>;
-  def r32:  ORRegInst<R32C>;
-  def r16:  ORRegInst<R16C>;
-  def r8:   ORRegInst<R8C>;
-
-  // OR instructions used to copy f32 and f64 registers.
-  def f32: ORInst<(outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB),
-                  [/* no pattern */]>;
-
-  def f64: ORInst<(outs R64FP:$rT), (ins R64FP:$rA, R64FP:$rB),
-                  [/* no pattern */]>;
-
-  // scalar->vector promotion, prefslot2vec:
-  def v16i8_i8:  ORPromoteScalar<R8C>;
-  def v8i16_i16: ORPromoteScalar<R16C>;
-  def v4i32_i32: ORPromoteScalar<R32C>;
-  def v2i64_i64: ORPromoteScalar<R64C>;
-  def v4f32_f32: ORPromoteScalar<R32FP>;
-  def v2f64_f64: ORPromoteScalar<R64FP>;
-
-  // vector->scalar demotion, vec2prefslot:
-  def i8_v16i8:  ORExtractElt<R8C>;
-  def i16_v8i16: ORExtractElt<R16C>;
-  def i32_v4i32: ORExtractElt<R32C>;
-  def i64_v2i64: ORExtractElt<R64C>;
-  def f32_v4f32: ORExtractElt<R32FP>;
-  def f64_v2f64: ORExtractElt<R64FP>;
-
-  // Conversion from vector to GPRC
-  def i128_vec:  ORCvtVecGPRC;
-
-  // Conversion from GPRC to vector
-  def vec_i128:  ORCvtGPRCVec;
-
-/*
-  // Conversion from register to GPRC
-  def i128_r64:  ORCvtRegGPRC<R64C>;
-  def i128_f64:  ORCvtRegGPRC<R64FP>;
-  def i128_r32:  ORCvtRegGPRC<R32C>;
-  def i128_f32:  ORCvtRegGPRC<R32FP>;
-  def i128_r16:  ORCvtRegGPRC<R16C>;
-  def i128_r8:   ORCvtRegGPRC<R8C>;
-
-  // Conversion from GPRC to register
-  def r64_i128:  ORCvtGPRCReg<R64C>;
-  def f64_i128:  ORCvtGPRCReg<R64FP>;
-  def r32_i128:  ORCvtGPRCReg<R32C>;
-  def f32_i128:  ORCvtGPRCReg<R32FP>;
-  def r16_i128:  ORCvtGPRCReg<R16C>;
-  def r8_i128:   ORCvtGPRCReg<R8C>;
-*/
-/*
-  // Conversion from register to R32C:
-  def r32_r16:   ORCvtFormRegR32<R16C>;
-  def r32_r8:    ORCvtFormRegR32<R8C>;
-  
-  // Conversion from R32C to register
-  def r32_r16:   ORCvtFormR32Reg<R16C>;
-  def r32_r8:    ORCvtFormR32Reg<R8C>;
-*/
-  
-  // Conversion from R64C to register:
-  def r32_r64:   ORCvtFormR64Reg<R32C>;
-  // def r16_r64:   ORCvtFormR64Reg<R16C>;
-  // def r8_r64:    ORCvtFormR64Reg<R8C>;
-  
-  // Conversion to R64C from register:
-  def r64_r32:   ORCvtFormRegR64<R32C>;
-  // def r64_r16:   ORCvtFormRegR64<R16C>;
-  // def r64_r8:    ORCvtFormRegR64<R8C>;
-
-  // bitconvert patterns:
-  def r32_f32:   ORCvtFormR32Reg<R32FP,
-                                 [(set R32FP:$rT, (bitconvert R32C:$rA))]>;
-  def f32_r32:   ORCvtFormRegR32<R32FP,
-                                 [(set R32C:$rT, (bitconvert R32FP:$rA))]>;
-
-  def r64_f64:   ORCvtFormR64Reg<R64FP,
-                                 [(set R64FP:$rT, (bitconvert R64C:$rA))]>;
-  def f64_r64:   ORCvtFormRegR64<R64FP,
-                                 [(set R64C:$rT, (bitconvert R64FP:$rA))]>;
-}
-
-defm OR : BitwiseOr;
-
-// scalar->vector promotion patterns (preferred slot to vector):
-def : Pat<(v16i8 (SPUprefslot2vec R8C:$rA)),
-          (ORv16i8_i8 R8C:$rA)>;
-
-def : Pat<(v8i16 (SPUprefslot2vec R16C:$rA)),
-          (ORv8i16_i16 R16C:$rA)>;
-
-def : Pat<(v4i32 (SPUprefslot2vec R32C:$rA)),
-          (ORv4i32_i32 R32C:$rA)>;
-
-def : Pat<(v2i64 (SPUprefslot2vec R64C:$rA)),
-          (ORv2i64_i64 R64C:$rA)>;
-
-def : Pat<(v4f32 (SPUprefslot2vec R32FP:$rA)),
-          (ORv4f32_f32 R32FP:$rA)>;
-
-def : Pat<(v2f64 (SPUprefslot2vec R64FP:$rA)),
-          (ORv2f64_f64 R64FP:$rA)>;
-
-// ORi*_v*: Used to extract vector element 0 (the preferred slot), otherwise
-// known as converting the vector back to its preferred slot
-
-def : Pat<(SPUvec2prefslot (v16i8 VECREG:$rA)),
-          (ORi8_v16i8 VECREG:$rA)>;
-
-def : Pat<(SPUvec2prefslot (v8i16 VECREG:$rA)),
-          (ORi16_v8i16 VECREG:$rA)>;
-
-def : Pat<(SPUvec2prefslot (v4i32 VECREG:$rA)),
-          (ORi32_v4i32 VECREG:$rA)>;
-
-def : Pat<(SPUvec2prefslot (v2i64 VECREG:$rA)),
-          (ORi64_v2i64 VECREG:$rA)>;
-
-def : Pat<(SPUvec2prefslot (v4f32 VECREG:$rA)),
-          (ORf32_v4f32 VECREG:$rA)>;
-
-def : Pat<(SPUvec2prefslot (v2f64 VECREG:$rA)),
-          (ORf64_v2f64 VECREG:$rA)>;
-
-// Load Register: This is an assembler alias for a bitwise OR of a register
-// against itself. It's here because it brings some clarity to assembly
-// language output.
-
-let hasCtrlDep = 1 in {
-    class LRInst<dag OOL, dag IOL>
-              : SPUInstr<OOL, IOL, "lr\t$rT, $rA", IntegerOp> {
-      bits<7> RA;
-      bits<7> RT;
-
-      let Pattern = [/*no pattern*/];
-
-      let Inst{0-10} = 0b10000010000;   /* It's an OR operation */
-      let Inst{11-17} = RA;
-      let Inst{18-24} = RA;
-      let Inst{25-31} = RT;
-    }
-
-    class LRVecInst<ValueType vectype>:
-        LRInst<(outs VECREG:$rT), (ins VECREG:$rA)>;
-
-    class LRRegInst<RegisterClass rclass>:
-        LRInst<(outs rclass:$rT), (ins rclass:$rA)>;
-
-    multiclass LoadRegister {
-      def v2i64: LRVecInst<v2i64>;
-      def v2f64: LRVecInst<v2f64>;
-      def v4i32: LRVecInst<v4i32>;
-      def v4f32: LRVecInst<v4f32>;
-      def v8i16: LRVecInst<v8i16>;
-      def v16i8: LRVecInst<v16i8>;
-
-      def r128:  LRRegInst<GPRC>;
-      def r64:   LRRegInst<R64C>;
-      def f64:   LRRegInst<R64FP>;
-      def r32:   LRRegInst<R32C>;
-      def f32:   LRRegInst<R32FP>;
-      def r16:   LRRegInst<R16C>;
-      def r8:    LRRegInst<R8C>;
-    }
-
-    defm LR: LoadRegister;
-}
-
-// ORC: Bitwise "or" with complement (c = a | ~b)
-
-class ORCInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10010010000, OOL, IOL, "orc\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class ORCVecInst<ValueType vectype>:
-    ORCInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-            [(set (vectype VECREG:$rT), (or (vectype VECREG:$rA),
-                                            (vnot (vectype VECREG:$rB))))]>;
-
-class ORCRegInst<RegisterClass rclass>:
-  ORCInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-          [(set rclass:$rT, (or rclass:$rA, (not rclass:$rB)))]>;
-
-multiclass BitwiseOrComplement
-{
-  def v16i8: ORCVecInst<v16i8>;
-  def v8i16: ORCVecInst<v8i16>;
-  def v4i32: ORCVecInst<v4i32>;
-  def v2i64: ORCVecInst<v2i64>;
-
-  def r128:  ORCRegInst<GPRC>;
-  def r64:   ORCRegInst<R64C>;
-  def r32:   ORCRegInst<R32C>;
-  def r16:   ORCRegInst<R16C>;
-  def r8:    ORCRegInst<R8C>;
-}
-
-defm ORC : BitwiseOrComplement;
-
-// OR byte immediate
-class ORBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI10Form<0b01100000, OOL, IOL, "orbi\t$rT, $rA, $val",
-             IntegerOp, pattern>;
-
-class ORBIVecInst<ValueType vectype, PatLeaf immpred>:
-    ORBIInst<(outs VECREG:$rT), (ins VECREG:$rA, u10imm:$val),
-             [(set (v16i8 VECREG:$rT), (or (vectype VECREG:$rA),
-                                           (vectype immpred:$val)))]>;
-
-multiclass BitwiseOrByteImm
-{
-  def v16i8: ORBIVecInst<v16i8, v16i8U8Imm>;
-
-  def r8: ORBIInst<(outs R8C:$rT), (ins R8C:$rA, u10imm_i8:$val),
-                   [(set R8C:$rT, (or R8C:$rA, immU8:$val))]>;
-}
-
-defm ORBI : BitwiseOrByteImm;
-
-// OR halfword immediate
-class ORHIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI10Form<0b10100000, OOL, IOL, "orhi\t$rT, $rA, $val",
-             IntegerOp, pattern>;
-
-class ORHIVecInst<ValueType vectype, PatLeaf immpred>:
-    ORHIInst<(outs VECREG:$rT), (ins VECREG:$rA, u10imm:$val),
-              [(set (vectype VECREG:$rT), (or (vectype VECREG:$rA),
-                                              immpred:$val))]>;
-
-multiclass BitwiseOrHalfwordImm
-{
-  def v8i16: ORHIVecInst<v8i16, v8i16Uns10Imm>;
-
-  def r16: ORHIInst<(outs R16C:$rT), (ins R16C:$rA, u10imm:$val),
-                    [(set R16C:$rT, (or R16C:$rA, i16ImmUns10:$val))]>;
-
-  // Specialized ORHI form used to promote 8-bit registers to 16-bit
-  def i8i16: ORHIInst<(outs R16C:$rT), (ins R8C:$rA, s10imm:$val),
-                      [(set R16C:$rT, (or (anyext R8C:$rA),
-                                          i16ImmSExt10:$val))]>;
-}
-
-defm ORHI : BitwiseOrHalfwordImm;
-
-class ORIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI10Form<0b00100000, OOL, IOL, "ori\t$rT, $rA, $val",
-             IntegerOp, pattern>;
-
-class ORIVecInst<ValueType vectype, PatLeaf immpred>:
-    ORIInst<(outs VECREG:$rT), (ins VECREG:$rA, u10imm:$val),
-            [(set (vectype VECREG:$rT), (or (vectype VECREG:$rA),
-                                            immpred:$val))]>;
-
-// Bitwise "or" with immediate
-multiclass BitwiseOrImm
-{
-  def v4i32: ORIVecInst<v4i32, v4i32Uns10Imm>;
-
-  def r32: ORIInst<(outs R32C:$rT), (ins R32C:$rA, u10imm_i32:$val),
-                   [(set R32C:$rT, (or R32C:$rA, i32ImmUns10:$val))]>;
-
-  // i16i32: hacked version of the ori instruction to extend 16-bit quantities
-  // to 32-bit quantities. used exclusively to match "anyext" conversions (vide
-  // infra "anyext 16->32" pattern.)
-  def i16i32: ORIInst<(outs R32C:$rT), (ins R16C:$rA, s10imm_i32:$val),
-                      [(set R32C:$rT, (or (anyext R16C:$rA),
-                                          i32ImmSExt10:$val))]>;
-
-  // i8i32: Hacked version of the ORI instruction to extend 16-bit quantities
-  // to 32-bit quantities. Used exclusively to match "anyext" conversions (vide
-  // infra "anyext 16->32" pattern.)
-  def i8i32: ORIInst<(outs R32C:$rT), (ins R8C:$rA, s10imm_i32:$val),
-                     [(set R32C:$rT, (or (anyext R8C:$rA),
-                                         i32ImmSExt10:$val))]>;
-}
-
-defm ORI : BitwiseOrImm;
-
-// ORX: "or" across the vector: or's $rA's word slots leaving the result in
-// $rT[0], slots 1-3 are zeroed.
-//
-// FIXME: Needs to match an intrinsic pattern.
-def ORXv4i32:
-    RRForm<0b10010010000, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "orx\t$rT, $rA, $rB", IntegerOp,
-      []>;
-
-// XOR:
-
-class XORInst<dag OOL, dag IOL, list<dag> pattern> :
-    RRForm<0b10010010000, OOL, IOL, "xor\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class XORVecInst<ValueType vectype>:
-    XORInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-             [(set (vectype VECREG:$rT), (xor (vectype VECREG:$rA),
-                                              (vectype VECREG:$rB)))]>;
-
-class XORRegInst<RegisterClass rclass>:
-    XORInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-             [(set rclass:$rT, (xor rclass:$rA, rclass:$rB))]>;
-
-multiclass BitwiseExclusiveOr
-{
-  def v16i8: XORVecInst<v16i8>;
-  def v8i16: XORVecInst<v8i16>;
-  def v4i32: XORVecInst<v4i32>;
-  def v2i64: XORVecInst<v2i64>;
-
-  def r128:  XORRegInst<GPRC>;
-  def r64:   XORRegInst<R64C>;
-  def r32:   XORRegInst<R32C>;
-  def r16:   XORRegInst<R16C>;
-  def r8:    XORRegInst<R8C>;
-
-  // XOR instructions used to negate f32 and f64 quantities.
-
-  def fneg32: XORInst<(outs R32FP:$rT), (ins R32FP:$rA, R32C:$rB),
-                     [/* no pattern */]>;
-
-  def fneg64: XORInst<(outs R64FP:$rT), (ins R64FP:$rA, R64C:$rB),
-                     [/* no pattern */]>;
-
-  def fnegvec: XORInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                      [/* no pattern, see fneg{32,64} */]>;
-}
-
-defm XOR : BitwiseExclusiveOr;
-
-//==----------------------------------------------------------
-
-class XORBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI10Form<0b01100000, OOL, IOL, "xorbi\t$rT, $rA, $val",
-             IntegerOp, pattern>;
-
-multiclass XorByteImm
-{
-  def v16i8:
-    XORBIInst<(outs VECREG:$rT), (ins VECREG:$rA, u10imm:$val),
-              [(set (v16i8 VECREG:$rT), (xor (v16i8 VECREG:$rA), v16i8U8Imm:$val))]>;
-
-  def r8:
-    XORBIInst<(outs R8C:$rT), (ins R8C:$rA, u10imm_i8:$val),
-              [(set R8C:$rT, (xor R8C:$rA, immU8:$val))]>;
-}
-
-defm XORBI : XorByteImm;
-
-def XORHIv8i16:
-    RI10Form<0b10100000, (outs VECREG:$rT), (ins VECREG:$rA, u10imm:$val),
-      "xorhi\t$rT, $rA, $val", IntegerOp,
-      [(set (v8i16 VECREG:$rT), (xor (v8i16 VECREG:$rA),
-                                      v8i16SExt10Imm:$val))]>;
-
-def XORHIr16:
-    RI10Form<0b10100000, (outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-      "xorhi\t$rT, $rA, $val", IntegerOp,
-      [(set R16C:$rT, (xor R16C:$rA, i16ImmSExt10:$val))]>;
-
-def XORIv4i32:
-    RI10Form<0b00100000, (outs VECREG:$rT), (ins VECREG:$rA, s10imm_i32:$val),
-      "xori\t$rT, $rA, $val", IntegerOp,
-      [(set (v4i32 VECREG:$rT), (xor (v4i32 VECREG:$rA),
-                                     v4i32SExt10Imm:$val))]>;
-
-def XORIr32:
-    RI10Form<0b00100000, (outs R32C:$rT), (ins R32C:$rA, s10imm_i32:$val),
-      "xori\t$rT, $rA, $val", IntegerOp,
-      [(set R32C:$rT, (xor R32C:$rA, i32ImmSExt10:$val))]>;
-
-// NAND:
-
-class NANDInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10010011000, OOL, IOL, "nand\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class NANDVecInst<ValueType vectype>:
-    NANDInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-             [(set (vectype VECREG:$rT), (vnot (and (vectype VECREG:$rA),
-                                                    (vectype VECREG:$rB))))]>;
-class NANDRegInst<RegisterClass rclass>:
-    NANDInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-             [(set rclass:$rT, (not (and rclass:$rA, rclass:$rB)))]>;
-
-multiclass BitwiseNand
-{
-  def v16i8: NANDVecInst<v16i8>;
-  def v8i16: NANDVecInst<v8i16>;
-  def v4i32: NANDVecInst<v4i32>;
-  def v2i64: NANDVecInst<v2i64>;
-
-  def r128:  NANDRegInst<GPRC>;
-  def r64:   NANDRegInst<R64C>;
-  def r32:   NANDRegInst<R32C>;
-  def r16:   NANDRegInst<R16C>;
-  def r8:    NANDRegInst<R8C>;
-}
-
-defm NAND : BitwiseNand;
-
-// NOR:
-
-class NORInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10010010000, OOL, IOL, "nor\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class NORVecInst<ValueType vectype>:
-    NORInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-            [(set (vectype VECREG:$rT), (vnot (or (vectype VECREG:$rA),
-                                                  (vectype VECREG:$rB))))]>;
-class NORRegInst<RegisterClass rclass>:
-    NORInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-            [(set rclass:$rT, (not (or rclass:$rA, rclass:$rB)))]>;
-
-multiclass BitwiseNor
-{
-  def v16i8: NORVecInst<v16i8>;
-  def v8i16: NORVecInst<v8i16>;
-  def v4i32: NORVecInst<v4i32>;
-  def v2i64: NORVecInst<v2i64>;
-
-  def r128:  NORRegInst<GPRC>;
-  def r64:   NORRegInst<R64C>;
-  def r32:   NORRegInst<R32C>;
-  def r16:   NORRegInst<R16C>;
-  def r8:    NORRegInst<R8C>;
-}
-
-defm NOR : BitwiseNor;
-
-// Select bits:
-class SELBInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRRForm<0b1000, OOL, IOL, "selb\t$rT, $rA, $rB, $rC",
-            IntegerOp, pattern>;
-
-class SELBVecInst<ValueType vectype, PatFrag vnot_frag = vnot>:
-  SELBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-           [(set (vectype VECREG:$rT),
-                 (or (and (vectype VECREG:$rC), (vectype VECREG:$rB)),
-                     (and (vnot_frag (vectype VECREG:$rC)),
-                          (vectype VECREG:$rA))))]>;
-
-class SELBVecVCondInst<ValueType vectype>:
-  SELBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-           [(set (vectype VECREG:$rT),
-                 (select (vectype VECREG:$rC),
-                         (vectype VECREG:$rB),
-                         (vectype VECREG:$rA)))]>;
-
-class SELBVecCondInst<ValueType vectype>:
-  SELBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, R32C:$rC),
-           [(set (vectype VECREG:$rT),
-                 (select R32C:$rC,
-                         (vectype VECREG:$rB),
-                         (vectype VECREG:$rA)))]>;
-
-class SELBRegInst<RegisterClass rclass>:
-  SELBInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB, rclass:$rC),
-           [(set rclass:$rT,
-                 (or (and rclass:$rB, rclass:$rC),
-                     (and rclass:$rA, (not rclass:$rC))))]>;
-
-class SELBRegCondInst<RegisterClass rcond, RegisterClass rclass>:
-  SELBInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB, rcond:$rC),
-           [(set rclass:$rT,
-                 (select rcond:$rC, rclass:$rB, rclass:$rA))]>;
-
-multiclass SelectBits
-{
-  def v16i8: SELBVecInst<v16i8>;
-  def v8i16: SELBVecInst<v8i16>;
-  def v4i32: SELBVecInst<v4i32>;
-  def v2i64: SELBVecInst<v2i64, vnot_conv>;
-
-  def r128:  SELBRegInst<GPRC>;
-  def r64:   SELBRegInst<R64C>;
-  def r32:   SELBRegInst<R32C>;
-  def r16:   SELBRegInst<R16C>;
-  def r8:    SELBRegInst<R8C>;
-
-  def v16i8_cond: SELBVecCondInst<v16i8>;
-  def v8i16_cond: SELBVecCondInst<v8i16>;
-  def v4i32_cond: SELBVecCondInst<v4i32>;
-  def v2i64_cond: SELBVecCondInst<v2i64>;
-
-  def v16i8_vcond: SELBVecCondInst<v16i8>;
-  def v8i16_vcond: SELBVecCondInst<v8i16>;
-  def v4i32_vcond: SELBVecCondInst<v4i32>;
-  def v2i64_vcond: SELBVecCondInst<v2i64>;
-
-  def v4f32_cond:
-        SELBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-                 [(set (v4f32 VECREG:$rT),
-                       (select (v4i32 VECREG:$rC),
-                               (v4f32 VECREG:$rB),
-                               (v4f32 VECREG:$rA)))]>;
-
-  // SELBr64_cond is defined in SPU64InstrInfo.td
-  def r32_cond:   SELBRegCondInst<R32C, R32C>;
-  def f32_cond:   SELBRegCondInst<R32C, R32FP>;
-  def r16_cond:   SELBRegCondInst<R16C, R16C>;
-  def r8_cond:    SELBRegCondInst<R8C,  R8C>;
-}
-
-defm SELB : SelectBits;
-
-class SPUselbPatVec<ValueType vectype, SPUInstr inst>:
-   Pat<(SPUselb (vectype VECREG:$rA), (vectype VECREG:$rB), (vectype VECREG:$rC)),
-       (inst VECREG:$rA, VECREG:$rB, VECREG:$rC)>;
-
-def : SPUselbPatVec<v16i8, SELBv16i8>;
-def : SPUselbPatVec<v8i16, SELBv8i16>;
-def : SPUselbPatVec<v4i32, SELBv4i32>;
-def : SPUselbPatVec<v2i64, SELBv2i64>;
-
-class SPUselbPatReg<RegisterClass rclass, SPUInstr inst>:
-   Pat<(SPUselb rclass:$rA, rclass:$rB, rclass:$rC),
-       (inst rclass:$rA, rclass:$rB, rclass:$rC)>;
-
-def : SPUselbPatReg<R8C,   SELBr8>;
-def : SPUselbPatReg<R16C,  SELBr16>;
-def : SPUselbPatReg<R32C,  SELBr32>;
-def : SPUselbPatReg<R64C,  SELBr64>;
-
-// EQV: Equivalence (1 for each same bit, otherwise 0)
-//
-// Note: There are a lot of ways to match this bit operator and these patterns
-// attempt to be as exhaustive as possible.
-
-class EQVInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10010010000, OOL, IOL, "eqv\t$rT, $rA, $rB",
-           IntegerOp, pattern>;
-
-class EQVVecInst<ValueType vectype>:
-    EQVInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-            [(set (vectype VECREG:$rT),
-                  (or (and (vectype VECREG:$rA), (vectype VECREG:$rB)),
-                      (and (vnot (vectype VECREG:$rA)),
-                           (vnot (vectype VECREG:$rB)))))]>;
-
-class EQVRegInst<RegisterClass rclass>:
-    EQVInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-            [(set rclass:$rT, (or (and rclass:$rA, rclass:$rB),
-                                  (and (not rclass:$rA), (not rclass:$rB))))]>;
-
-class EQVVecPattern1<ValueType vectype>:
-  EQVInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          [(set (vectype VECREG:$rT),
-                (xor (vectype VECREG:$rA), (vnot (vectype VECREG:$rB))))]>;
-
-class EQVRegPattern1<RegisterClass rclass>:
-  EQVInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-          [(set rclass:$rT, (xor rclass:$rA, (not rclass:$rB)))]>;
-
-class EQVVecPattern2<ValueType vectype>:
-  EQVInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          [(set (vectype VECREG:$rT),
-                (or (and (vectype VECREG:$rA), (vectype VECREG:$rB)),
-                    (vnot (or (vectype VECREG:$rA), (vectype VECREG:$rB)))))]>;
-
-class EQVRegPattern2<RegisterClass rclass>:
-  EQVInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-          [(set rclass:$rT,
-                (or (and rclass:$rA, rclass:$rB),
-                    (not (or rclass:$rA, rclass:$rB))))]>;
-
-class EQVVecPattern3<ValueType vectype>:
-  EQVInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-          [(set (vectype VECREG:$rT),
-                (not (xor (vectype VECREG:$rA), (vectype VECREG:$rB))))]>;
-
-class EQVRegPattern3<RegisterClass rclass>:
-  EQVInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-          [(set rclass:$rT, (not (xor rclass:$rA, rclass:$rB)))]>;
-
-multiclass BitEquivalence
-{
-  def v16i8: EQVVecInst<v16i8>;
-  def v8i16: EQVVecInst<v8i16>;
-  def v4i32: EQVVecInst<v4i32>;
-  def v2i64: EQVVecInst<v2i64>;
-
-  def v16i8_1: EQVVecPattern1<v16i8>;
-  def v8i16_1: EQVVecPattern1<v8i16>;
-  def v4i32_1: EQVVecPattern1<v4i32>;
-  def v2i64_1: EQVVecPattern1<v2i64>;
-
-  def v16i8_2: EQVVecPattern2<v16i8>;
-  def v8i16_2: EQVVecPattern2<v8i16>;
-  def v4i32_2: EQVVecPattern2<v4i32>;
-  def v2i64_2: EQVVecPattern2<v2i64>;
-
-  def v16i8_3: EQVVecPattern3<v16i8>;
-  def v8i16_3: EQVVecPattern3<v8i16>;
-  def v4i32_3: EQVVecPattern3<v4i32>;
-  def v2i64_3: EQVVecPattern3<v2i64>;
-
-  def r128:  EQVRegInst<GPRC>;
-  def r64:   EQVRegInst<R64C>;
-  def r32:   EQVRegInst<R32C>;
-  def r16:   EQVRegInst<R16C>;
-  def r8:    EQVRegInst<R8C>;
-
-  def r128_1: EQVRegPattern1<GPRC>;
-  def r64_1:  EQVRegPattern1<R64C>;
-  def r32_1:  EQVRegPattern1<R32C>;
-  def r16_1:  EQVRegPattern1<R16C>;
-  def r8_1:   EQVRegPattern1<R8C>;
-
-  def r128_2: EQVRegPattern2<GPRC>;
-  def r64_2:  EQVRegPattern2<R64C>;
-  def r32_2:  EQVRegPattern2<R32C>;
-  def r16_2:  EQVRegPattern2<R16C>;
-  def r8_2:   EQVRegPattern2<R8C>;
-
-  def r128_3: EQVRegPattern3<GPRC>;
-  def r64_3:  EQVRegPattern3<R64C>;
-  def r32_3:  EQVRegPattern3<R32C>;
-  def r16_3:  EQVRegPattern3<R16C>;
-  def r8_3:   EQVRegPattern3<R8C>;
-}
-
-defm EQV: BitEquivalence;
-
-//===----------------------------------------------------------------------===//
-// Vector shuffle...
-//===----------------------------------------------------------------------===//
-// SPUshuffle is generated in LowerVECTOR_SHUFFLE and gets replaced with SHUFB.
-// See the SPUshuffle SDNode operand above, which sets up the DAG pattern
-// matcher to emit something when the LowerVECTOR_SHUFFLE generates a node with
-// the SPUISD::SHUFB opcode.
-//===----------------------------------------------------------------------===//
-
-class SHUFBInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRRForm<0b1000, OOL, IOL, "shufb\t$rT, $rA, $rB, $rC",
-            IntegerOp, pattern>;
-
-class SHUFBVecInst<ValueType resultvec, ValueType maskvec>:
-    SHUFBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-              [(set (resultvec VECREG:$rT),
-                    (SPUshuffle (resultvec VECREG:$rA),
-                                (resultvec VECREG:$rB),
-                                (maskvec VECREG:$rC)))]>;
-
-class SHUFBGPRCInst:
-    SHUFBInst<(outs VECREG:$rT), (ins GPRC:$rA, GPRC:$rB, VECREG:$rC),
-              [/* no pattern */]>;
-
-multiclass ShuffleBytes
-{
-  def v16i8     : SHUFBVecInst<v16i8, v16i8>;
-  def v16i8_m32 : SHUFBVecInst<v16i8, v4i32>;
-  def v8i16     : SHUFBVecInst<v8i16, v16i8>;
-  def v8i16_m32 : SHUFBVecInst<v8i16, v4i32>;
-  def v4i32     : SHUFBVecInst<v4i32, v16i8>;
-  def v4i32_m32 : SHUFBVecInst<v4i32, v4i32>;
-  def v2i64     : SHUFBVecInst<v2i64, v16i8>;
-  def v2i64_m32 : SHUFBVecInst<v2i64, v4i32>;
-
-  def v4f32     : SHUFBVecInst<v4f32, v16i8>;
-  def v4f32_m32 : SHUFBVecInst<v4f32, v4i32>;
-
-  def v2f64     : SHUFBVecInst<v2f64, v16i8>;
-  def v2f64_m32 : SHUFBVecInst<v2f64, v4i32>;
-
-  def gprc      : SHUFBGPRCInst;
-}
-
-defm SHUFB : ShuffleBytes;
-
-//===----------------------------------------------------------------------===//
-// Shift and rotate group:
-//===----------------------------------------------------------------------===//
-
-class SHLHInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b11111010000, OOL, IOL, "shlh\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class SHLHVecInst<ValueType vectype>:
-    SHLHInst<(outs VECREG:$rT), (ins VECREG:$rA, R16C:$rB),
-             [(set (vectype VECREG:$rT),
-                   (SPUvec_shl (vectype VECREG:$rA), R16C:$rB))]>;
-
-multiclass ShiftLeftHalfword
-{
-  def v8i16: SHLHVecInst<v8i16>;
-  def r16:   SHLHInst<(outs R16C:$rT), (ins R16C:$rA, R16C:$rB),
-                      [(set R16C:$rT, (shl R16C:$rA, R16C:$rB))]>;
-  def r16_r32: SHLHInst<(outs R16C:$rT), (ins R16C:$rA, R32C:$rB),
-                        [(set R16C:$rT, (shl R16C:$rA, R32C:$rB))]>;
-}
-
-defm SHLH : ShiftLeftHalfword;
-
-//===----------------------------------------------------------------------===//
-
-class SHLHIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b11111010000, OOL, IOL, "shlhi\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class SHLHIVecInst<ValueType vectype>:
-    SHLHIInst<(outs VECREG:$rT), (ins VECREG:$rA, u7imm:$val),
-              [(set (vectype VECREG:$rT),
-                    (SPUvec_shl (vectype VECREG:$rA), (i16 uimm7:$val)))]>;
-
-multiclass ShiftLeftHalfwordImm
-{
-  def v8i16: SHLHIVecInst<v8i16>;
-  def r16: SHLHIInst<(outs R16C:$rT), (ins R16C:$rA, u7imm:$val),
-                     [(set R16C:$rT, (shl R16C:$rA, (i16 uimm7:$val)))]>;
-}
-
-defm SHLHI : ShiftLeftHalfwordImm;
-
-def : Pat<(SPUvec_shl (v8i16 VECREG:$rA), (i32 uimm7:$val)),
-          (SHLHIv8i16 VECREG:$rA, uimm7:$val)>;
-
-def : Pat<(shl R16C:$rA, (i32 uimm7:$val)),
-          (SHLHIr16 R16C:$rA, uimm7:$val)>;
-
-//===----------------------------------------------------------------------===//
-
-class SHLInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b11111010000, OOL, IOL, "shl\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-multiclass ShiftLeftWord
-{
-  def v4i32:
-      SHLInst<(outs VECREG:$rT), (ins VECREG:$rA, R16C:$rB),
-              [(set (v4i32 VECREG:$rT),
-                    (SPUvec_shl (v4i32 VECREG:$rA), R16C:$rB))]>;
-  def r32:
-      SHLInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-              [(set R32C:$rT, (shl R32C:$rA, R32C:$rB))]>;
-}
-
-defm SHL: ShiftLeftWord;
-
-//===----------------------------------------------------------------------===//
-
-class SHLIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b11111010000, OOL, IOL, "shli\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-multiclass ShiftLeftWordImm
-{
-  def v4i32:
-    SHLIInst<(outs VECREG:$rT), (ins VECREG:$rA, u7imm_i32:$val),
-             [(set (v4i32 VECREG:$rT),
-                   (SPUvec_shl (v4i32 VECREG:$rA), (i32 uimm7:$val)))]>;
-
-  def r32:
-    SHLIInst<(outs R32C:$rT), (ins R32C:$rA, u7imm_i32:$val),
-             [(set R32C:$rT, (shl R32C:$rA, (i32 uimm7:$val)))]>;
-}
-
-defm SHLI : ShiftLeftWordImm;
-
-//===----------------------------------------------------------------------===//
-// SHLQBI vec form: Note that this will shift the entire vector (the 128-bit
-// register) to the left. Vector form is here to ensure type correctness.
-//
-// The shift count is in the lowest 3 bits (29-31) of $rB, so only a bit shift
-// of 7 bits is actually possible.
-//
-// Note also that SHLQBI/SHLQBII are used in conjunction with SHLQBY/SHLQBYI
-// to shift i64 and i128. SHLQBI is the residual left over after shifting by
-// bytes with SHLQBY.
-
-class SHLQBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b11011011100, OOL, IOL, "shlqbi\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class SHLQBIVecInst<ValueType vectype>:
-    SHLQBIInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-               [(set (vectype VECREG:$rT),
-                     (SPUshlquad_l_bits (vectype VECREG:$rA), R32C:$rB))]>;
-
-class SHLQBIRegInst<RegisterClass rclass>:
-    SHLQBIInst<(outs rclass:$rT), (ins rclass:$rA, R32C:$rB),
-               [/* no pattern */]>;
-
-multiclass ShiftLeftQuadByBits
-{
-  def v16i8: SHLQBIVecInst<v16i8>;
-  def v8i16: SHLQBIVecInst<v8i16>;
-  def v4i32: SHLQBIVecInst<v4i32>;
-  def v4f32: SHLQBIVecInst<v4f32>;
-  def v2i64: SHLQBIVecInst<v2i64>;
-  def v2f64: SHLQBIVecInst<v2f64>;
-
-  def r128:  SHLQBIRegInst<GPRC>;
-}
-
-defm SHLQBI : ShiftLeftQuadByBits;
-
-// See note above on SHLQBI. In this case, the predicate actually does then
-// enforcement, whereas with SHLQBI, we have to "take it on faith."
-class SHLQBIIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b11011111100, OOL, IOL, "shlqbii\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class SHLQBIIVecInst<ValueType vectype>:
-    SHLQBIIInst<(outs VECREG:$rT), (ins VECREG:$rA, u7imm_i32:$val),
-                [(set (vectype VECREG:$rT),
-                      (SPUshlquad_l_bits (vectype VECREG:$rA), (i32 bitshift:$val)))]>;
-
-multiclass ShiftLeftQuadByBitsImm
-{
-  def v16i8 : SHLQBIIVecInst<v16i8>;
-  def v8i16 : SHLQBIIVecInst<v8i16>;
-  def v4i32 : SHLQBIIVecInst<v4i32>;
-  def v4f32 : SHLQBIIVecInst<v4f32>;
-  def v2i64 : SHLQBIIVecInst<v2i64>;
-  def v2f64 : SHLQBIIVecInst<v2f64>;
-}
-
-defm SHLQBII : ShiftLeftQuadByBitsImm;
-
-// SHLQBY, SHLQBYI vector forms: Shift the entire vector to the left by bytes,
-// not by bits. See notes above on SHLQBI.
-
-class SHLQBYInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b11111011100, OOL, IOL, "shlqby\t$rT, $rA, $rB",
-            RotateShift, pattern>;
-
-class SHLQBYVecInst<ValueType vectype>:
-    SHLQBYInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-               [(set (vectype VECREG:$rT),
-                     (SPUshlquad_l_bytes (vectype VECREG:$rA), R32C:$rB))]>;
-
-multiclass ShiftLeftQuadBytes
-{
-  def v16i8: SHLQBYVecInst<v16i8>;
-  def v8i16: SHLQBYVecInst<v8i16>;
-  def v4i32: SHLQBYVecInst<v4i32>;
-  def v4f32: SHLQBYVecInst<v4f32>;
-  def v2i64: SHLQBYVecInst<v2i64>;
-  def v2f64: SHLQBYVecInst<v2f64>;
-  def r128: SHLQBYInst<(outs GPRC:$rT), (ins GPRC:$rA, R32C:$rB),
-                       [(set GPRC:$rT, (SPUshlquad_l_bytes GPRC:$rA, R32C:$rB))]>;
-}
-
-defm SHLQBY: ShiftLeftQuadBytes;
-
-class SHLQBYIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b11111111100, OOL, IOL, "shlqbyi\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class SHLQBYIVecInst<ValueType vectype>:
-    SHLQBYIInst<(outs VECREG:$rT), (ins VECREG:$rA, u7imm_i32:$val),
-                [(set (vectype VECREG:$rT),
-                      (SPUshlquad_l_bytes (vectype VECREG:$rA), (i32 uimm7:$val)))]>;
-
-multiclass ShiftLeftQuadBytesImm
-{
-  def v16i8: SHLQBYIVecInst<v16i8>;
-  def v8i16: SHLQBYIVecInst<v8i16>;
-  def v4i32: SHLQBYIVecInst<v4i32>;
-  def v4f32: SHLQBYIVecInst<v4f32>;
-  def v2i64: SHLQBYIVecInst<v2i64>;
-  def v2f64: SHLQBYIVecInst<v2f64>;
-  def r128:  SHLQBYIInst<(outs GPRC:$rT), (ins GPRC:$rA, u7imm_i32:$val),
-                         [(set GPRC:$rT,
-                               (SPUshlquad_l_bytes GPRC:$rA, (i32 uimm7:$val)))]>;
-}
-
-defm SHLQBYI : ShiftLeftQuadBytesImm;
-
-class SHLQBYBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b00111001111, OOL, IOL, "shlqbybi\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class SHLQBYBIVecInst<ValueType vectype>:
-    SHLQBYBIInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-                [/* no pattern */]>;
-
-class SHLQBYBIRegInst<RegisterClass rclass>:
-    SHLQBYBIInst<(outs rclass:$rT), (ins rclass:$rA, R32C:$rB),
-                 [/* no pattern */]>;
-
-multiclass ShiftLeftQuadBytesBitCount
-{
-  def v16i8: SHLQBYBIVecInst<v16i8>;
-  def v8i16: SHLQBYBIVecInst<v8i16>;
-  def v4i32: SHLQBYBIVecInst<v4i32>;
-  def v4f32: SHLQBYBIVecInst<v4f32>;
-  def v2i64: SHLQBYBIVecInst<v2i64>;
-  def v2f64: SHLQBYBIVecInst<v2f64>;
-
-  def r128:  SHLQBYBIRegInst<GPRC>;
-}
-
-defm SHLQBYBI : ShiftLeftQuadBytesBitCount;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate halfword:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-class ROTHInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b00111010000, OOL, IOL, "roth\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class ROTHVecInst<ValueType vectype>:
-    ROTHInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-             [(set (vectype VECREG:$rT),
-                   (SPUvec_rotl VECREG:$rA, VECREG:$rB))]>;
-
-class ROTHRegInst<RegisterClass rclass>:
-    ROTHInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
-             [(set rclass:$rT, (rotl rclass:$rA, rclass:$rB))]>;
-
-multiclass RotateLeftHalfword
-{
-  def v8i16: ROTHVecInst<v8i16>;
-  def r16: ROTHRegInst<R16C>;
-}
-
-defm ROTH: RotateLeftHalfword;
-
-def ROTHr16_r32: ROTHInst<(outs R16C:$rT), (ins R16C:$rA, R32C:$rB),
-                          [(set R16C:$rT, (rotl R16C:$rA, R32C:$rB))]>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate halfword, immediate:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-class ROTHIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b00111110000, OOL, IOL, "rothi\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class ROTHIVecInst<ValueType vectype>:
-    ROTHIInst<(outs VECREG:$rT), (ins VECREG:$rA, u7imm:$val),
-              [(set (vectype VECREG:$rT),
-                    (SPUvec_rotl VECREG:$rA, (i16 uimm7:$val)))]>;
-
-multiclass RotateLeftHalfwordImm
-{
-  def v8i16: ROTHIVecInst<v8i16>;
-  def r16: ROTHIInst<(outs R16C:$rT), (ins R16C:$rA, u7imm:$val),
-                     [(set R16C:$rT, (rotl R16C:$rA, (i16 uimm7:$val)))]>;
-  def r16_r32: ROTHIInst<(outs R16C:$rT), (ins R16C:$rA, u7imm_i32:$val),
-                         [(set R16C:$rT, (rotl R16C:$rA, (i32 uimm7:$val)))]>;
-}
-
-defm ROTHI: RotateLeftHalfwordImm;
-
-def : Pat<(SPUvec_rotl VECREG:$rA, (i32 uimm7:$val)),
-          (ROTHIv8i16 VECREG:$rA, imm:$val)>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate word:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b00011010000, OOL, IOL, "rot\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class ROTVecInst<ValueType vectype>:
-    ROTInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-            [(set (vectype VECREG:$rT),
-                  (SPUvec_rotl (vectype VECREG:$rA), R32C:$rB))]>;
-
-class ROTRegInst<RegisterClass rclass>:
-    ROTInst<(outs rclass:$rT), (ins rclass:$rA, R32C:$rB),
-            [(set rclass:$rT,
-                  (rotl rclass:$rA, R32C:$rB))]>;
-
-multiclass RotateLeftWord
-{
-  def v4i32: ROTVecInst<v4i32>;
-  def r32:   ROTRegInst<R32C>;
-}
-
-defm ROT: RotateLeftWord;
-
-// The rotate amount is in the same bits whether we've got an 8-bit, 16-bit or
-// 32-bit register
-def ROTr32_r16_anyext:
-    ROTInst<(outs R32C:$rT), (ins R32C:$rA, R16C:$rB),
-            [(set R32C:$rT, (rotl R32C:$rA, (i32 (anyext R16C:$rB))))]>;
-
-def : Pat<(rotl R32C:$rA, (i32 (zext R16C:$rB))),
-          (ROTr32_r16_anyext R32C:$rA, R16C:$rB)>;
-
-def : Pat<(rotl R32C:$rA, (i32 (sext R16C:$rB))),
-          (ROTr32_r16_anyext R32C:$rA, R16C:$rB)>;
-
-def ROTr32_r8_anyext:
-    ROTInst<(outs R32C:$rT), (ins R32C:$rA, R8C:$rB),
-            [(set R32C:$rT, (rotl R32C:$rA, (i32 (anyext R8C:$rB))))]>;
-
-def : Pat<(rotl R32C:$rA, (i32 (zext R8C:$rB))),
-          (ROTr32_r8_anyext R32C:$rA, R8C:$rB)>;
-
-def : Pat<(rotl R32C:$rA, (i32 (sext R8C:$rB))),
-          (ROTr32_r8_anyext R32C:$rA, R8C:$rB)>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate word, immediate
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b00011110000, OOL, IOL, "roti\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class ROTIVecInst<ValueType vectype, Operand optype, ValueType inttype, PatLeaf pred>:
-    ROTIInst<(outs VECREG:$rT), (ins VECREG:$rA, optype:$val),
-             [(set (vectype VECREG:$rT),
-                   (SPUvec_rotl (vectype VECREG:$rA), (inttype pred:$val)))]>;
-
-class ROTIRegInst<RegisterClass rclass, Operand optype, ValueType inttype, PatLeaf pred>:
-    ROTIInst<(outs rclass:$rT), (ins rclass:$rA, optype:$val),
-             [(set rclass:$rT, (rotl rclass:$rA, (inttype pred:$val)))]>;
-
-multiclass RotateLeftWordImm
-{
-  def v4i32: ROTIVecInst<v4i32, u7imm_i32, i32, uimm7>;
-  def v4i32_i16: ROTIVecInst<v4i32, u7imm, i16, uimm7>;
-  def v4i32_i8:  ROTIVecInst<v4i32, u7imm_i8, i8, uimm7>;
-
-  def r32:       ROTIRegInst<R32C, u7imm_i32, i32, uimm7>;
-  def r32_i16:   ROTIRegInst<R32C, u7imm, i16, uimm7>;
-  def r32_i8:    ROTIRegInst<R32C, u7imm_i8, i8, uimm7>;
-}
-
-defm ROTI : RotateLeftWordImm;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate quad by byte (count)
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTQBYInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b00111011100, OOL, IOL, "rotqby\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class ROTQBYVecInst<ValueType vectype>:
-    ROTQBYInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-               [(set (vectype VECREG:$rT),
-                     (SPUrotbytes_left (vectype VECREG:$rA), R32C:$rB))]>;
-
-multiclass RotateQuadLeftByBytes
-{
-  def v16i8: ROTQBYVecInst<v16i8>;
-  def v8i16: ROTQBYVecInst<v8i16>;
-  def v4i32: ROTQBYVecInst<v4i32>;
-  def v4f32: ROTQBYVecInst<v4f32>;
-  def v2i64: ROTQBYVecInst<v2i64>;
-  def v2f64: ROTQBYVecInst<v2f64>;
-}
-
-defm ROTQBY: RotateQuadLeftByBytes;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate quad by byte (count), immediate
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTQBYIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b00111111100, OOL, IOL, "rotqbyi\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class ROTQBYIVecInst<ValueType vectype>:
-    ROTQBYIInst<(outs VECREG:$rT), (ins VECREG:$rA, u7imm:$val),
-                [(set (vectype VECREG:$rT),
-                      (SPUrotbytes_left (vectype VECREG:$rA), (i16 uimm7:$val)))]>;
-
-multiclass RotateQuadByBytesImm
-{
-  def v16i8: ROTQBYIVecInst<v16i8>;
-  def v8i16: ROTQBYIVecInst<v8i16>;
-  def v4i32: ROTQBYIVecInst<v4i32>;
-  def v4f32: ROTQBYIVecInst<v4f32>;
-  def v2i64: ROTQBYIVecInst<v2i64>;
-  def vfi64: ROTQBYIVecInst<v2f64>;
-}
-
-defm ROTQBYI: RotateQuadByBytesImm;
-
-// See ROTQBY note above.
-class ROTQBYBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b00110011100, OOL, IOL,
-      "rotqbybi\t$rT, $rA, $shift",
-      RotateShift, pattern>;
-
-class ROTQBYBIVecInst<ValueType vectype, RegisterClass rclass>:
-    ROTQBYBIInst<(outs VECREG:$rT), (ins VECREG:$rA, rclass:$shift),
-      [(set (vectype VECREG:$rT),
-            (SPUrotbytes_left_bits (vectype VECREG:$rA), rclass:$shift))]>;
-
-multiclass RotateQuadByBytesByBitshift {
-  def v16i8_r32: ROTQBYBIVecInst<v16i8, R32C>;
-  def v8i16_r32: ROTQBYBIVecInst<v8i16, R32C>;
-  def v4i32_r32: ROTQBYBIVecInst<v4i32, R32C>;
-  def v2i64_r32: ROTQBYBIVecInst<v2i64, R32C>;
-}
-
-defm ROTQBYBI : RotateQuadByBytesByBitshift;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// See ROTQBY note above.
-//
-// Assume that the user of this instruction knows to shift the rotate count
-// into bit 29
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTQBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b00011011100, OOL, IOL, "rotqbi\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class ROTQBIVecInst<ValueType vectype>:
-    ROTQBIInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-               [/* no pattern yet */]>;
-
-class ROTQBIRegInst<RegisterClass rclass>:
-    ROTQBIInst<(outs rclass:$rT), (ins rclass:$rA, R32C:$rB),
-               [/* no pattern yet */]>;
-
-multiclass RotateQuadByBitCount
-{
-  def v16i8: ROTQBIVecInst<v16i8>;
-  def v8i16: ROTQBIVecInst<v8i16>;
-  def v4i32: ROTQBIVecInst<v4i32>;
-  def v2i64: ROTQBIVecInst<v2i64>;
-
-  def r128:  ROTQBIRegInst<GPRC>;
-  def r64:   ROTQBIRegInst<R64C>;
-}
-
-defm ROTQBI: RotateQuadByBitCount;
-
-class ROTQBIIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b00011111100, OOL, IOL, "rotqbii\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class ROTQBIIVecInst<ValueType vectype, Operand optype, ValueType inttype,
-                     PatLeaf pred>:
-    ROTQBIIInst<(outs VECREG:$rT), (ins VECREG:$rA, optype:$val),
-                [/* no pattern yet */]>;
-
-class ROTQBIIRegInst<RegisterClass rclass, Operand optype, ValueType inttype,
-                     PatLeaf pred>:
-    ROTQBIIInst<(outs rclass:$rT), (ins rclass:$rA, optype:$val),
-                [/* no pattern yet */]>;
-
-multiclass RotateQuadByBitCountImm
-{
-  def v16i8: ROTQBIIVecInst<v16i8, u7imm_i32, i32, uimm7>;
-  def v8i16: ROTQBIIVecInst<v8i16, u7imm_i32, i32, uimm7>;
-  def v4i32: ROTQBIIVecInst<v4i32, u7imm_i32, i32, uimm7>;
-  def v2i64: ROTQBIIVecInst<v2i64, u7imm_i32, i32, uimm7>;
-
-  def r128:  ROTQBIIRegInst<GPRC, u7imm_i32, i32, uimm7>;
-  def r64:   ROTQBIIRegInst<R64C, u7imm_i32, i32, uimm7>;
-}
-
-defm ROTQBII : RotateQuadByBitCountImm;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// ROTHM v8i16 form:
-// NOTE(1): No vector rotate is generated by the C/C++ frontend (today),
-//          so this only matches a synthetically generated/lowered code
-//          fragment.
-// NOTE(2): $rB must be negated before the right rotate!
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTHMInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10111010000, OOL, IOL, "rothm\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-def ROTHMv8i16:
-    ROTHMInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-              [/* see patterns below - $rB must be negated */]>;
-
-def : Pat<(SPUvec_srl (v8i16 VECREG:$rA), R32C:$rB),
-          (ROTHMv8i16 VECREG:$rA, (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(SPUvec_srl (v8i16 VECREG:$rA), R16C:$rB),
-          (ROTHMv8i16 VECREG:$rA,
-                      (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(SPUvec_srl (v8i16 VECREG:$rA), R8C:$rB),
-          (ROTHMv8i16 VECREG:$rA,
-                      (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB) ), 0))>;
-
-// ROTHM r16 form: Rotate 16-bit quantity to right, zero fill at the left
-// Note: This instruction doesn't match a pattern because rB must be negated
-// for the instruction to work. Thus, the pattern below the instruction!
-
-def ROTHMr16:
-    ROTHMInst<(outs R16C:$rT), (ins R16C:$rA, R32C:$rB),
-              [/* see patterns below - $rB must be negated! */]>;
-
-def : Pat<(srl R16C:$rA, R32C:$rB),
-          (ROTHMr16 R16C:$rA, (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(srl R16C:$rA, R16C:$rB),
-          (ROTHMr16 R16C:$rA,
-                    (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(srl R16C:$rA, R8C:$rB),
-          (ROTHMr16 R16C:$rA,
-                    (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB) ), 0))>;
-
-// ROTHMI v8i16 form: See the comment for ROTHM v8i16. The difference here is
-// that the immediate can be complemented, so that the user doesn't have to
-// worry about it.
-
-class ROTHMIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b10111110000, OOL, IOL, "rothmi\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-def ROTHMIv8i16:
-    ROTHMIInst<(outs VECREG:$rT), (ins VECREG:$rA, rothNeg7imm:$val),
-               [/* no pattern */]>;
-
-def : Pat<(SPUvec_srl (v8i16 VECREG:$rA), (i32 imm:$val)),
-          (ROTHMIv8i16 VECREG:$rA, imm:$val)>;
-
-def: Pat<(SPUvec_srl (v8i16 VECREG:$rA), (i16 imm:$val)),
-         (ROTHMIv8i16 VECREG:$rA, imm:$val)>;
-
-def: Pat<(SPUvec_srl (v8i16 VECREG:$rA), (i8 imm:$val)),
-         (ROTHMIv8i16 VECREG:$rA, imm:$val)>;
-
-def ROTHMIr16:
-    ROTHMIInst<(outs R16C:$rT), (ins R16C:$rA, rothNeg7imm:$val),
-               [/* no pattern */]>;
-
-def: Pat<(srl R16C:$rA, (i32 uimm7:$val)),
-         (ROTHMIr16 R16C:$rA, uimm7:$val)>;
-
-def: Pat<(srl R16C:$rA, (i16 uimm7:$val)),
-         (ROTHMIr16 R16C:$rA, uimm7:$val)>;
-
-def: Pat<(srl R16C:$rA, (i8 uimm7:$val)),
-         (ROTHMIr16 R16C:$rA, uimm7:$val)>;
-
-// ROTM v4i32 form: See the ROTHM v8i16 comments.
-class ROTMInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10011010000, OOL, IOL, "rotm\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-def ROTMv4i32:
-    ROTMInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-             [/* see patterns below - $rB must be negated */]>;
-
-def : Pat<(SPUvec_srl VECREG:$rA, R32C:$rB),
-          (ROTMv4i32 VECREG:$rA, (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(SPUvec_srl VECREG:$rA, R16C:$rB),
-          (ROTMv4i32 VECREG:$rA,
-                     (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(SPUvec_srl VECREG:$rA, R8C:$rB),
-          (ROTMv4i32 VECREG:$rA,
-                     (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB)), 0))>;
-
-def ROTMr32:
-    ROTMInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-             [/* see patterns below - $rB must be negated */]>;
-
-def : Pat<(srl R32C:$rA, R32C:$rB),
-          (ROTMr32 R32C:$rA, (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(srl R32C:$rA, R16C:$rB),
-          (ROTMr32 R32C:$rA,
-                   (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(srl R32C:$rA, R8C:$rB),
-          (ROTMr32 R32C:$rA,
-                   (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB)), 0))>;
-
-// ROTMI v4i32 form: See the comment for ROTHM v8i16.
-def ROTMIv4i32:
-    RI7Form<0b10011110000, (outs VECREG:$rT), (ins VECREG:$rA, rotNeg7imm:$val),
-      "rotmi\t$rT, $rA, $val", RotateShift,
-      [(set (v4i32 VECREG:$rT),
-            (SPUvec_srl VECREG:$rA, (i32 uimm7:$val)))]>;
-
-def : Pat<(SPUvec_srl VECREG:$rA, (i16 uimm7:$val)),
-          (ROTMIv4i32 VECREG:$rA, uimm7:$val)>;
-
-def : Pat<(SPUvec_srl VECREG:$rA, (i8 uimm7:$val)),
-          (ROTMIv4i32 VECREG:$rA, uimm7:$val)>;
-
-// ROTMI r32 form: know how to complement the immediate value.
-def ROTMIr32:
-    RI7Form<0b10011110000, (outs R32C:$rT), (ins R32C:$rA, rotNeg7imm:$val),
-      "rotmi\t$rT, $rA, $val", RotateShift,
-      [(set R32C:$rT, (srl R32C:$rA, (i32 uimm7:$val)))]>;
-
-def : Pat<(srl R32C:$rA, (i16 imm:$val)),
-          (ROTMIr32 R32C:$rA, uimm7:$val)>;
-
-def : Pat<(srl R32C:$rA, (i8 imm:$val)),
-          (ROTMIr32 R32C:$rA, uimm7:$val)>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// ROTQMBY: This is a vector form merely so that when used in an
-// instruction pattern, type checking will succeed. This instruction assumes
-// that the user knew to negate $rB.
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTQMBYInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10111011100, OOL, IOL, "rotqmby\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class ROTQMBYVecInst<ValueType vectype>:
-    ROTQMBYInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-                [/* no pattern, $rB must be negated */]>;
-
-class ROTQMBYRegInst<RegisterClass rclass>:
-    ROTQMBYInst<(outs rclass:$rT), (ins rclass:$rA, R32C:$rB),
-                [/* no pattern */]>;
-
-multiclass RotateQuadBytes
-{
-  def v16i8: ROTQMBYVecInst<v16i8>;
-  def v8i16: ROTQMBYVecInst<v8i16>;
-  def v4i32: ROTQMBYVecInst<v4i32>;
-  def v2i64: ROTQMBYVecInst<v2i64>;
-
-  def r128: ROTQMBYRegInst<GPRC>;
-  def r64:  ROTQMBYRegInst<R64C>;
-}
-
-defm ROTQMBY : RotateQuadBytes;
-
-class ROTQMBYIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b10111111100, OOL, IOL, "rotqmbyi\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class ROTQMBYIVecInst<ValueType vectype>:
-    ROTQMBYIInst<(outs VECREG:$rT), (ins VECREG:$rA, rotNeg7imm:$val),
-                 [/* no pattern */]>;
-
-class ROTQMBYIRegInst<RegisterClass rclass, Operand optype, ValueType inttype,
-                      PatLeaf pred>:
-    ROTQMBYIInst<(outs rclass:$rT), (ins rclass:$rA, optype:$val),
-                 [/* no pattern */]>;
-
-// 128-bit zero extension form:
-class ROTQMBYIZExtInst<RegisterClass rclass, Operand optype, PatLeaf pred>:
-    ROTQMBYIInst<(outs GPRC:$rT), (ins rclass:$rA, optype:$val),
-                 [/* no pattern */]>;
-
-multiclass RotateQuadBytesImm
-{
-  def v16i8: ROTQMBYIVecInst<v16i8>;
-  def v8i16: ROTQMBYIVecInst<v8i16>;
-  def v4i32: ROTQMBYIVecInst<v4i32>;
-  def v2i64: ROTQMBYIVecInst<v2i64>;
-
-  def r128:  ROTQMBYIRegInst<GPRC, rotNeg7imm, i32, uimm7>;
-  def r64:   ROTQMBYIRegInst<R64C, rotNeg7imm, i32, uimm7>;
-  
-  def r128_zext_r8:  ROTQMBYIZExtInst<R8C, rotNeg7imm, uimm7>;
-  def r128_zext_r16: ROTQMBYIZExtInst<R16C, rotNeg7imm, uimm7>;
-  def r128_zext_r32: ROTQMBYIZExtInst<R32C, rotNeg7imm, uimm7>;
-  def r128_zext_r64: ROTQMBYIZExtInst<R64C, rotNeg7imm, uimm7>;
-}
-
-defm ROTQMBYI : RotateQuadBytesImm;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate right and mask by bit count
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTQMBYBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10110011100, OOL, IOL, "rotqmbybi\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class ROTQMBYBIVecInst<ValueType vectype>:
-    ROTQMBYBIInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-                  [/* no pattern, */]>;
-
-multiclass RotateMaskQuadByBitCount
-{
-  def v16i8: ROTQMBYBIVecInst<v16i8>;
-  def v8i16: ROTQMBYBIVecInst<v8i16>;
-  def v4i32: ROTQMBYBIVecInst<v4i32>;
-  def v2i64: ROTQMBYBIVecInst<v2i64>;
-}
-
-defm ROTQMBYBI: RotateMaskQuadByBitCount;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate quad and mask by bits
-// Note that the rotate amount has to be negated
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTQMBIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b10011011100, OOL, IOL, "rotqmbi\t$rT, $rA, $rB",
-           RotateShift, pattern>;
-
-class ROTQMBIVecInst<ValueType vectype>:
-    ROTQMBIInst<(outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-                [/* no pattern */]>;
-
-class ROTQMBIRegInst<RegisterClass rclass>:
-    ROTQMBIInst<(outs rclass:$rT), (ins rclass:$rA, R32C:$rB),
-                [/* no pattern */]>;
-
-multiclass RotateMaskQuadByBits
-{
-  def v16i8: ROTQMBIVecInst<v16i8>;
-  def v8i16: ROTQMBIVecInst<v8i16>;
-  def v4i32: ROTQMBIVecInst<v4i32>;
-  def v2i64: ROTQMBIVecInst<v2i64>;
-
-  def r128:  ROTQMBIRegInst<GPRC>;
-  def r64:   ROTQMBIRegInst<R64C>;
-}
-
-defm ROTQMBI: RotateMaskQuadByBits;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Rotate quad and mask by bits, immediate
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class ROTQMBIIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RI7Form<0b10011111100, OOL, IOL, "rotqmbii\t$rT, $rA, $val",
-            RotateShift, pattern>;
-
-class ROTQMBIIVecInst<ValueType vectype>:
-   ROTQMBIIInst<(outs VECREG:$rT), (ins VECREG:$rA, rotNeg7imm:$val),
-                 [/* no pattern */]>;
-
-class ROTQMBIIRegInst<RegisterClass rclass>:
-   ROTQMBIIInst<(outs rclass:$rT), (ins rclass:$rA, rotNeg7imm:$val),
-                 [/* no pattern */]>;
-
-multiclass RotateMaskQuadByBitsImm
-{
-  def v16i8: ROTQMBIIVecInst<v16i8>;
-  def v8i16: ROTQMBIIVecInst<v8i16>;
-  def v4i32: ROTQMBIIVecInst<v4i32>;
-  def v2i64: ROTQMBIIVecInst<v2i64>;
-
-  def r128:  ROTQMBIIRegInst<GPRC>;
-  def r64:   ROTQMBIIRegInst<R64C>;
-}
-
-defm ROTQMBII: RotateMaskQuadByBitsImm;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-def ROTMAHv8i16:
-    RRForm<0b01111010000, (outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-      "rotmah\t$rT, $rA, $rB", RotateShift,
-      [/* see patterns below - $rB must be negated */]>;
-
-def : Pat<(SPUvec_sra VECREG:$rA, R32C:$rB),
-          (ROTMAHv8i16 VECREG:$rA, (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(SPUvec_sra VECREG:$rA, R16C:$rB),
-          (ROTMAHv8i16 VECREG:$rA,
-                       (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(SPUvec_sra VECREG:$rA, R8C:$rB),
-          (ROTMAHv8i16 VECREG:$rA,
-                       (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB)), 0))>;
-
-def ROTMAHr16:
-    RRForm<0b01111010000, (outs R16C:$rT), (ins R16C:$rA, R32C:$rB),
-      "rotmah\t$rT, $rA, $rB", RotateShift,
-      [/* see patterns below - $rB must be negated */]>;
-
-def : Pat<(sra R16C:$rA, R32C:$rB),
-          (ROTMAHr16 R16C:$rA, (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(sra R16C:$rA, R16C:$rB),
-          (ROTMAHr16 R16C:$rA,
-                     (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(sra R16C:$rA, R8C:$rB),
-          (ROTMAHr16 R16C:$rA,
-                     (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB)), 0))>;
-
-def ROTMAHIv8i16:
-    RRForm<0b01111110000, (outs VECREG:$rT), (ins VECREG:$rA, rothNeg7imm:$val),
-      "rotmahi\t$rT, $rA, $val", RotateShift,
-      [(set (v8i16 VECREG:$rT),
-            (SPUvec_sra (v8i16 VECREG:$rA), (i32 uimm7:$val)))]>;
-
-def : Pat<(SPUvec_sra (v8i16 VECREG:$rA), (i16 uimm7:$val)),
-          (ROTMAHIv8i16 (v8i16 VECREG:$rA), (i32 uimm7:$val))>;
-
-def : Pat<(SPUvec_sra (v8i16 VECREG:$rA), (i8 uimm7:$val)),
-          (ROTMAHIv8i16 (v8i16 VECREG:$rA), (i32 uimm7:$val))>;
-
-def ROTMAHIr16:
-    RRForm<0b01111110000, (outs R16C:$rT), (ins R16C:$rA, rothNeg7imm_i16:$val),
-      "rotmahi\t$rT, $rA, $val", RotateShift,
-      [(set R16C:$rT, (sra R16C:$rA, (i16 uimm7:$val)))]>;
-
-def : Pat<(sra R16C:$rA, (i32 imm:$val)),
-          (ROTMAHIr16 R16C:$rA, uimm7:$val)>;
-
-def : Pat<(sra R16C:$rA, (i8 imm:$val)),
-          (ROTMAHIr16 R16C:$rA, uimm7:$val)>;
-
-def ROTMAv4i32:
-    RRForm<0b01011010000, (outs VECREG:$rT), (ins VECREG:$rA, R32C:$rB),
-      "rotma\t$rT, $rA, $rB", RotateShift,
-      [/* see patterns below - $rB must be negated */]>;
-
-def : Pat<(SPUvec_sra VECREG:$rA, R32C:$rB),
-          (ROTMAv4i32 (v4i32 VECREG:$rA), (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(SPUvec_sra VECREG:$rA, R16C:$rB),
-          (ROTMAv4i32 (v4i32 VECREG:$rA),
-                      (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(SPUvec_sra VECREG:$rA, R8C:$rB),
-          (ROTMAv4i32 (v4i32 VECREG:$rA),
-                      (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB)), 0))>;
-
-def ROTMAr32:
-    RRForm<0b01011010000, (outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-      "rotma\t$rT, $rA, $rB", RotateShift,
-      [/* see patterns below - $rB must be negated */]>;
-
-def : Pat<(sra R32C:$rA, R32C:$rB),
-          (ROTMAr32 R32C:$rA, (SFIr32 R32C:$rB, 0))>;
-
-def : Pat<(sra R32C:$rA, R16C:$rB),
-          (ROTMAr32 R32C:$rA,
-                    (SFIr32 (XSHWr16 R16C:$rB), 0))>;
-
-def : Pat<(sra R32C:$rA, R8C:$rB),
-          (ROTMAr32 R32C:$rA,
-                    (SFIr32 (XSHWr16 (XSBHr8 R8C:$rB)), 0))>;
-
-class ROTMAIInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b01011110000, OOL, IOL,
-      "rotmai\t$rT, $rA, $val",
-      RotateShift, pattern>;
-
-class ROTMAIVecInst<ValueType vectype, Operand intop, ValueType inttype>:
-    ROTMAIInst<(outs VECREG:$rT), (ins VECREG:$rA, intop:$val),
-      [(set (vectype VECREG:$rT),
-            (SPUvec_sra VECREG:$rA, (inttype uimm7:$val)))]>;
-
-class ROTMAIRegInst<RegisterClass rclass, Operand intop, ValueType inttype>:
-    ROTMAIInst<(outs rclass:$rT), (ins rclass:$rA, intop:$val),
-      [(set rclass:$rT, (sra rclass:$rA, (inttype uimm7:$val)))]>;
-
-multiclass RotateMaskAlgebraicImm {
-  def v2i64_i32 : ROTMAIVecInst<v2i64, rotNeg7imm, i32>;
-  def v4i32_i32 : ROTMAIVecInst<v4i32, rotNeg7imm, i32>;
-  def r64_i32 : ROTMAIRegInst<R64C, rotNeg7imm, i32>;
-  def r32_i32 : ROTMAIRegInst<R32C, rotNeg7imm, i32>;
-}
-
-defm ROTMAI : RotateMaskAlgebraicImm;
-
-//===----------------------------------------------------------------------===//
-// Branch and conditionals:
-//===----------------------------------------------------------------------===//
-
-let isTerminator = 1, isBarrier = 1 in {
-  // Halt If Equal (r32 preferred slot only, no vector form)
-  def HEQr32:
-    RRForm_3<0b00011011110, (outs), (ins R32C:$rA, R32C:$rB),
-      "heq\t$rA, $rB", BranchResolv,
-      [/* no pattern to match */]>;
-
-  def HEQIr32 :
-    RI10Form_2<0b11111110, (outs), (ins R32C:$rA, s10imm:$val),
-      "heqi\t$rA, $val", BranchResolv,
-      [/* no pattern to match */]>;
-
-  // HGT/HGTI: These instructions use signed arithmetic for the comparison,
-  // contrasting with HLGT/HLGTI, which use unsigned comparison:
-  def HGTr32:
-    RRForm_3<0b00011010010, (outs), (ins R32C:$rA, R32C:$rB),
-      "hgt\t$rA, $rB", BranchResolv,
-      [/* no pattern to match */]>;
-
-  def HGTIr32:
-    RI10Form_2<0b11110010, (outs), (ins R32C:$rA, s10imm:$val),
-      "hgti\t$rA, $val", BranchResolv,
-      [/* no pattern to match */]>;
-
-  def HLGTr32:
-    RRForm_3<0b00011011010, (outs), (ins R32C:$rA, R32C:$rB),
-      "hlgt\t$rA, $rB", BranchResolv,
-      [/* no pattern to match */]>;
-
-  def HLGTIr32:
-    RI10Form_2<0b11111010, (outs), (ins R32C:$rA, s10imm:$val),
-      "hlgti\t$rA, $val", BranchResolv,
-      [/* no pattern to match */]>;
-}
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// Comparison operators for i8, i16 and i32:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class CEQBInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00001011110, OOL, IOL, "ceqb\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpEqualByte
-{
-  def v16i8 :
-    CEQBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      [(set (v16i8 VECREG:$rT), (seteq (v8i16 VECREG:$rA),
-                                       (v8i16 VECREG:$rB)))]>;
-
-  def r8 :
-    CEQBInst<(outs R8C:$rT), (ins R8C:$rA, R8C:$rB),
-             [(set R8C:$rT, (seteq R8C:$rA, R8C:$rB))]>;
-}
-
-class CEQBIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b01111110, OOL, IOL, "ceqbi\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpEqualByteImm
-{
-  def v16i8 :
-    CEQBIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm_i8:$val),
-              [(set (v16i8 VECREG:$rT), (seteq (v16i8 VECREG:$rA),
-                                               v16i8SExt8Imm:$val))]>;
-  def r8:
-    CEQBIInst<(outs R8C:$rT), (ins R8C:$rA, s10imm_i8:$val),
-             [(set R8C:$rT, (seteq R8C:$rA, immSExt8:$val))]>;
-}
-
-class CEQHInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00010011110, OOL, IOL, "ceqh\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpEqualHalfword
-{
-  def v8i16 : CEQHInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                       [(set (v8i16 VECREG:$rT), (seteq (v8i16 VECREG:$rA),
-                                                        (v8i16 VECREG:$rB)))]>;
-
-  def r16 : CEQHInst<(outs R16C:$rT), (ins R16C:$rA, R16C:$rB),
-                     [(set R16C:$rT, (seteq R16C:$rA, R16C:$rB))]>;
-}
-
-class CEQHIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b10111110, OOL, IOL, "ceqhi\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpEqualHalfwordImm
-{
-  def v8i16 : CEQHIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                        [(set (v8i16 VECREG:$rT),
-                              (seteq (v8i16 VECREG:$rA),
-                                     (v8i16 v8i16SExt10Imm:$val)))]>;
-  def r16 : CEQHIInst<(outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-                      [(set R16C:$rT, (seteq R16C:$rA, i16ImmSExt10:$val))]>;
-}
-
-class CEQInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00000011110, OOL, IOL, "ceq\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpEqualWord
-{
-  def v4i32 : CEQInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                      [(set (v4i32 VECREG:$rT),
-                            (seteq (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-  def r32 : CEQInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-                    [(set R32C:$rT, (seteq R32C:$rA, R32C:$rB))]>;
-}
-
-class CEQIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b00111110, OOL, IOL, "ceqi\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpEqualWordImm
-{
-  def v4i32 : CEQIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                       [(set (v4i32 VECREG:$rT),
-                             (seteq (v4i32 VECREG:$rA),
-                                    (v4i32 v4i32SExt16Imm:$val)))]>;
-
-  def r32: CEQIInst<(outs R32C:$rT), (ins R32C:$rA, s10imm_i32:$val),
-                    [(set R32C:$rT, (seteq R32C:$rA, i32ImmSExt10:$val))]>;
-}
-
-class CGTBInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00001010010, OOL, IOL, "cgtb\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpGtrByte
-{
-  def v16i8 :
-    CGTBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      [(set (v16i8 VECREG:$rT), (setgt (v8i16 VECREG:$rA),
-                                       (v8i16 VECREG:$rB)))]>;
-
-  def r8 :
-    CGTBInst<(outs R8C:$rT), (ins R8C:$rA, R8C:$rB),
-             [(set R8C:$rT, (setgt R8C:$rA, R8C:$rB))]>;
-}
-
-class CGTBIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b01110010, OOL, IOL, "cgtbi\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpGtrByteImm
-{
-  def v16i8 :
-    CGTBIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm_i8:$val),
-              [(set (v16i8 VECREG:$rT), (setgt (v16i8 VECREG:$rA),
-                                               v16i8SExt8Imm:$val))]>;
-  def r8:
-    CGTBIInst<(outs R8C:$rT), (ins R8C:$rA, s10imm_i8:$val),
-              [(set R8C:$rT, (setgt R8C:$rA, immSExt8:$val))]>;
-}
-
-class CGTHInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00010010010, OOL, IOL, "cgth\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpGtrHalfword
-{
-  def v8i16 : CGTHInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                       [(set (v8i16 VECREG:$rT), (setgt (v8i16 VECREG:$rA),
-                                                        (v8i16 VECREG:$rB)))]>;
-
-  def r16 : CGTHInst<(outs R16C:$rT), (ins R16C:$rA, R16C:$rB),
-                     [(set R16C:$rT, (setgt R16C:$rA, R16C:$rB))]>;
-}
-
-class CGTHIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b10110010, OOL, IOL, "cgthi\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpGtrHalfwordImm
-{
-  def v8i16 : CGTHIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                        [(set (v8i16 VECREG:$rT),
-                              (setgt (v8i16 VECREG:$rA),
-                                     (v8i16 v8i16SExt10Imm:$val)))]>;
-  def r16 : CGTHIInst<(outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-                      [(set R16C:$rT, (setgt R16C:$rA, i16ImmSExt10:$val))]>;
-}
-
-class CGTInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00000010010, OOL, IOL, "cgt\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpGtrWord
-{
-  def v4i32 : CGTInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                      [(set (v4i32 VECREG:$rT),
-                            (setgt (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-  def r32 : CGTInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-                    [(set R32C:$rT, (setgt R32C:$rA, R32C:$rB))]>;
-}
-
-class CGTIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b00110010, OOL, IOL, "cgti\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpGtrWordImm
-{
-  def v4i32 : CGTIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                       [(set (v4i32 VECREG:$rT),
-                             (setgt (v4i32 VECREG:$rA),
-                                    (v4i32 v4i32SExt16Imm:$val)))]>;
-
-  def r32: CGTIInst<(outs R32C:$rT), (ins R32C:$rA, s10imm_i32:$val),
-                    [(set R32C:$rT, (setgt R32C:$rA, i32ImmSExt10:$val))]>;
-
-  // CGTIv4f32, CGTIf32: These are used in the f32 fdiv instruction sequence:
-  def v4f32: CGTIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                       [(set (v4i32 VECREG:$rT),
-                             (setgt (v4i32 (bitconvert (v4f32 VECREG:$rA))),
-                                    (v4i32 v4i32SExt16Imm:$val)))]>;
-
-  def f32:   CGTIInst<(outs R32C:$rT), (ins R32FP:$rA, s10imm_i32:$val),
-                      [/* no pattern */]>;
-}
-
-class CLGTBInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00001011010, OOL, IOL, "clgtb\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpLGtrByte
-{
-  def v16i8 :
-    CLGTBInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      [(set (v16i8 VECREG:$rT), (setugt (v8i16 VECREG:$rA),
-                                       (v8i16 VECREG:$rB)))]>;
-
-  def r8 :
-    CLGTBInst<(outs R8C:$rT), (ins R8C:$rA, R8C:$rB),
-             [(set R8C:$rT, (setugt R8C:$rA, R8C:$rB))]>;
-}
-
-class CLGTBIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b01111010, OOL, IOL, "clgtbi\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpLGtrByteImm
-{
-  def v16i8 :
-    CLGTBIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm_i8:$val),
-              [(set (v16i8 VECREG:$rT), (setugt (v16i8 VECREG:$rA),
-                                               v16i8SExt8Imm:$val))]>;
-  def r8:
-    CLGTBIInst<(outs R8C:$rT), (ins R8C:$rA, s10imm_i8:$val),
-             [(set R8C:$rT, (setugt R8C:$rA, immSExt8:$val))]>;
-}
-
-class CLGTHInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00010011010, OOL, IOL, "clgth\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpLGtrHalfword
-{
-  def v8i16 : CLGTHInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                       [(set (v8i16 VECREG:$rT), (setugt (v8i16 VECREG:$rA),
-                                                        (v8i16 VECREG:$rB)))]>;
-
-  def r16 : CLGTHInst<(outs R16C:$rT), (ins R16C:$rA, R16C:$rB),
-                     [(set R16C:$rT, (setugt R16C:$rA, R16C:$rB))]>;
-}
-
-class CLGTHIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b10111010, OOL, IOL, "clgthi\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpLGtrHalfwordImm
-{
-  def v8i16 : CLGTHIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                         [(set (v8i16 VECREG:$rT),
-                               (setugt (v8i16 VECREG:$rA),
-                                       (v8i16 v8i16SExt10Imm:$val)))]>;
-  def r16 : CLGTHIInst<(outs R16C:$rT), (ins R16C:$rA, s10imm:$val),
-                       [(set R16C:$rT, (setugt R16C:$rA, i16ImmSExt10:$val))]>;
-}
-
-class CLGTInst<dag OOL, dag IOL, list<dag> pattern> :
-  RRForm<0b00000011010, OOL, IOL, "clgt\t$rT, $rA, $rB",
-         ByteOp, pattern>;
-
-multiclass CmpLGtrWord
-{
-  def v4i32 : CLGTInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-                      [(set (v4i32 VECREG:$rT),
-                            (setugt (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)))]>;
-
-  def r32 : CLGTInst<(outs R32C:$rT), (ins R32C:$rA, R32C:$rB),
-                     [(set R32C:$rT, (setugt R32C:$rA, R32C:$rB))]>;
-}
-
-class CLGTIInst<dag OOL, dag IOL, list<dag> pattern> :
-  RI10Form<0b00111010, OOL, IOL, "clgti\t$rT, $rA, $val",
-           ByteOp, pattern>;
-
-multiclass CmpLGtrWordImm
-{
-  def v4i32 : CLGTIInst<(outs VECREG:$rT), (ins VECREG:$rA, s10imm:$val),
-                       [(set (v4i32 VECREG:$rT),
-                             (setugt (v4i32 VECREG:$rA),
-                                    (v4i32 v4i32SExt16Imm:$val)))]>;
-
-  def r32: CLGTIInst<(outs R32C:$rT), (ins R32C:$rA, s10imm_i32:$val),
-                     [(set R32C:$rT, (setugt R32C:$rA, i32ImmSExt10:$val))]>;
-}
-
-defm CEQB   : CmpEqualByte;
-defm CEQBI  : CmpEqualByteImm;
-defm CEQH   : CmpEqualHalfword;
-defm CEQHI  : CmpEqualHalfwordImm;
-defm CEQ    : CmpEqualWord;
-defm CEQI   : CmpEqualWordImm;
-defm CGTB   : CmpGtrByte;
-defm CGTBI  : CmpGtrByteImm;
-defm CGTH   : CmpGtrHalfword;
-defm CGTHI  : CmpGtrHalfwordImm;
-defm CGT    : CmpGtrWord;
-defm CGTI   : CmpGtrWordImm;
-defm CLGTB  : CmpLGtrByte;
-defm CLGTBI : CmpLGtrByteImm;
-defm CLGTH  : CmpLGtrHalfword;
-defm CLGTHI : CmpLGtrHalfwordImm;
-defm CLGT   : CmpLGtrWord;
-defm CLGTI  : CmpLGtrWordImm;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// For SETCC primitives not supported above (setlt, setle, setge, etc.)
-// define a pattern to generate the right code, as a binary operator
-// (in a manner of speaking.)
-//
-// Notes:
-// 1. This only matches the setcc set of conditionals. Special pattern
-//    matching is used for select conditionals.
-//
-// 2. The "DAG" versions of these classes is almost exclusively used for
-//    i64 comparisons. See the tblgen fundamentals documentation for what
-//    ".ResultInstrs[0]" means; see TargetSelectionDAG.td and the Pattern
-//    class for where ResultInstrs originates.
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class SETCCNegCondReg<PatFrag cond, RegisterClass rclass, ValueType inttype,
-                      SPUInstr xorinst, SPUInstr cmpare>:
-  Pat<(cond rclass:$rA, rclass:$rB),
-      (xorinst (cmpare rclass:$rA, rclass:$rB), (inttype -1))>;
-
-class SETCCNegCondImm<PatFrag cond, RegisterClass rclass, ValueType inttype,
-                      PatLeaf immpred, SPUInstr xorinst, SPUInstr cmpare>:
-  Pat<(cond rclass:$rA, (inttype immpred:$imm)),
-      (xorinst (cmpare rclass:$rA, (inttype immpred:$imm)), (inttype -1))>;
-
-def : SETCCNegCondReg<setne, R8C, i8, XORBIr8,  CEQBr8>;
-def : SETCCNegCondImm<setne, R8C, i8, immSExt8, XORBIr8, CEQBIr8>;
-
-def : SETCCNegCondReg<setne, R16C, i16, XORHIr16,     CEQHr16>;
-def : SETCCNegCondImm<setne, R16C, i16, i16ImmSExt10, XORHIr16, CEQHIr16>;
-
-def : SETCCNegCondReg<setne, R32C, i32, XORIr32, CEQr32>;
-def : SETCCNegCondImm<setne, R32C, i32, i32ImmSExt10, XORIr32, CEQIr32>;
-
-class SETCCBinOpReg<PatFrag cond, RegisterClass rclass,
-                    SPUInstr binop, SPUInstr cmpOp1, SPUInstr cmpOp2>:
-    Pat<(cond rclass:$rA, rclass:$rB),
-        (binop (cmpOp1 rclass:$rA, rclass:$rB),
-               (cmpOp2 rclass:$rA, rclass:$rB))>;
-
-class SETCCBinOpImm<PatFrag cond, RegisterClass rclass, PatLeaf immpred,
-                    ValueType immtype,
-                    SPUInstr binop, SPUInstr cmpOp1, SPUInstr cmpOp2>:
-    Pat<(cond rclass:$rA, (immtype immpred:$imm)),
-        (binop (cmpOp1 rclass:$rA, (immtype immpred:$imm)),
-               (cmpOp2 rclass:$rA, (immtype immpred:$imm)))>;
-
-def : SETCCBinOpReg<setge, R8C, ORr8, CGTBr8, CEQBr8>;
-def : SETCCBinOpImm<setge, R8C, immSExt8, i8, ORr8, CGTBIr8, CEQBIr8>;
-def : SETCCBinOpReg<setlt, R8C, NORr8, CGTBr8, CEQBr8>;
-def : SETCCBinOpImm<setlt, R8C, immSExt8, i8, NORr8, CGTBIr8, CEQBIr8>;
-def : Pat<(setle R8C:$rA, R8C:$rB),
-          (XORBIr8 (CGTBr8 R8C:$rA, R8C:$rB), 0xff)>;
-def :  Pat<(setle R8C:$rA, immU8:$imm),
-           (XORBIr8 (CGTBIr8 R8C:$rA, immU8:$imm), 0xff)>;
-
-def : SETCCBinOpReg<setge, R16C, ORr16, CGTHr16, CEQHr16>;
-def : SETCCBinOpImm<setge, R16C, i16ImmSExt10, i16,
-                    ORr16, CGTHIr16, CEQHIr16>;
-def : SETCCBinOpReg<setlt, R16C, NORr16, CGTHr16, CEQHr16>;
-def : SETCCBinOpImm<setlt, R16C, i16ImmSExt10, i16, NORr16, CGTHIr16, CEQHIr16>;
-def : Pat<(setle R16C:$rA, R16C:$rB),
-          (XORHIr16 (CGTHr16 R16C:$rA, R16C:$rB), 0xffff)>;
-def : Pat<(setle R16C:$rA, i16ImmSExt10:$imm),
-          (XORHIr16 (CGTHIr16 R16C:$rA, i16ImmSExt10:$imm), 0xffff)>;
-
-def : SETCCBinOpReg<setge, R32C, ORr32, CGTr32, CEQr32>;
-def : SETCCBinOpImm<setge, R32C, i32ImmSExt10, i32,
-                    ORr32, CGTIr32, CEQIr32>;
-def : SETCCBinOpReg<setlt, R32C, NORr32, CGTr32, CEQr32>;
-def : SETCCBinOpImm<setlt, R32C, i32ImmSExt10, i32, NORr32, CGTIr32, CEQIr32>;
-def : Pat<(setle R32C:$rA, R32C:$rB),
-          (XORIr32 (CGTr32 R32C:$rA, R32C:$rB), 0xffffffff)>;
-def : Pat<(setle R32C:$rA, i32ImmSExt10:$imm),
-          (XORIr32 (CGTIr32 R32C:$rA, i32ImmSExt10:$imm), 0xffffffff)>;
-
-def : SETCCBinOpReg<setuge, R8C, ORr8, CLGTBr8, CEQBr8>;
-def : SETCCBinOpImm<setuge, R8C, immSExt8, i8, ORr8, CLGTBIr8, CEQBIr8>;
-def : SETCCBinOpReg<setult, R8C, NORr8, CLGTBr8, CEQBr8>;
-def : SETCCBinOpImm<setult, R8C, immSExt8, i8, NORr8, CLGTBIr8, CEQBIr8>;
-def : Pat<(setule R8C:$rA, R8C:$rB),
-          (XORBIr8 (CLGTBr8 R8C:$rA, R8C:$rB), 0xff)>;
-def :  Pat<(setule R8C:$rA, immU8:$imm),
-           (XORBIr8 (CLGTBIr8 R8C:$rA, immU8:$imm), 0xff)>;
-
-def : SETCCBinOpReg<setuge, R16C, ORr16, CLGTHr16, CEQHr16>;
-def : SETCCBinOpImm<setuge, R16C, i16ImmSExt10, i16,
-                    ORr16, CLGTHIr16, CEQHIr16>;
-def : SETCCBinOpReg<setult, R16C, NORr16, CLGTHr16, CEQHr16>;
-def : SETCCBinOpImm<setult, R16C, i16ImmSExt10, i16, NORr16,
-                    CLGTHIr16, CEQHIr16>;
-def : Pat<(setule R16C:$rA, R16C:$rB),
-          (XORHIr16 (CLGTHr16 R16C:$rA, R16C:$rB), 0xffff)>;
-def :  Pat<(setule R16C:$rA, i16ImmSExt10:$imm),
-           (XORHIr16 (CLGTHIr16 R16C:$rA, i16ImmSExt10:$imm), 0xffff)>;
-
-def : SETCCBinOpReg<setuge, R32C, ORr32, CLGTr32, CEQr32>;
-def : SETCCBinOpImm<setuge, R32C, i32ImmSExt10, i32,
-                    ORr32, CLGTIr32, CEQIr32>;
-def : SETCCBinOpReg<setult, R32C, NORr32, CLGTr32, CEQr32>;
-def : SETCCBinOpImm<setult, R32C, i32ImmSExt10, i32, NORr32, CLGTIr32, CEQIr32>;
-def : Pat<(setule R32C:$rA, R32C:$rB),
-          (XORIr32 (CLGTr32 R32C:$rA, R32C:$rB), 0xffffffff)>;
-def : Pat<(setule R32C:$rA, i32ImmSExt10:$imm),
-          (XORIr32 (CLGTIr32 R32C:$rA, i32ImmSExt10:$imm), 0xffffffff)>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// select conditional patterns:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-class SELECTNegCondReg<PatFrag cond, RegisterClass rclass, ValueType inttype,
-                       SPUInstr selinstr, SPUInstr cmpare>:
-  Pat<(select (inttype (cond rclass:$rA, rclass:$rB)),
-              rclass:$rTrue, rclass:$rFalse),
-      (selinstr rclass:$rTrue, rclass:$rFalse,
-                (cmpare rclass:$rA, rclass:$rB))>;
-
-class SELECTNegCondImm<PatFrag cond, RegisterClass rclass, ValueType inttype,
-                       PatLeaf immpred, SPUInstr selinstr, SPUInstr cmpare>:
-  Pat<(select (inttype (cond rclass:$rA, immpred:$imm)),
-              rclass:$rTrue, rclass:$rFalse),
-      (selinstr rclass:$rTrue, rclass:$rFalse,
-                (cmpare rclass:$rA, immpred:$imm))>;
-
-def : SELECTNegCondReg<setne, R8C, i8, SELBr8, CEQBr8>;
-def : SELECTNegCondImm<setne, R8C, i8, immSExt8, SELBr8, CEQBIr8>;
-def : SELECTNegCondReg<setle, R8C, i8, SELBr8, CGTBr8>;
-def : SELECTNegCondImm<setle, R8C, i8, immSExt8, SELBr8, CGTBr8>;
-def : SELECTNegCondReg<setule, R8C, i8, SELBr8, CLGTBr8>;
-def : SELECTNegCondImm<setule, R8C, i8, immU8, SELBr8, CLGTBIr8>;
-
-def : SELECTNegCondReg<setne, R16C, i16, SELBr16, CEQHr16>;
-def : SELECTNegCondImm<setne, R16C, i16, i16ImmSExt10, SELBr16, CEQHIr16>;
-def : SELECTNegCondReg<setle, R16C, i16, SELBr16, CGTHr16>;
-def : SELECTNegCondImm<setle, R16C, i16, i16ImmSExt10, SELBr16, CGTHIr16>;
-def : SELECTNegCondReg<setule, R16C, i16, SELBr16, CLGTHr16>;
-def : SELECTNegCondImm<setule, R16C, i16, i16ImmSExt10, SELBr16, CLGTHIr16>;
-
-def : SELECTNegCondReg<setne, R32C, i32, SELBr32, CEQr32>;
-def : SELECTNegCondImm<setne, R32C, i32, i32ImmSExt10, SELBr32, CEQIr32>;
-def : SELECTNegCondReg<setle, R32C, i32, SELBr32, CGTr32>;
-def : SELECTNegCondImm<setle, R32C, i32, i32ImmSExt10, SELBr32, CGTIr32>;
-def : SELECTNegCondReg<setule, R32C, i32, SELBr32, CLGTr32>;
-def : SELECTNegCondImm<setule, R32C, i32, i32ImmSExt10, SELBr32, CLGTIr32>;
-
-class SELECTBinOpReg<PatFrag cond, RegisterClass rclass, ValueType inttype,
-                     SPUInstr selinstr, SPUInstr binop, SPUInstr cmpOp1,
-                     SPUInstr cmpOp2>:
-  Pat<(select (inttype (cond rclass:$rA, rclass:$rB)),
-              rclass:$rTrue, rclass:$rFalse),
-      (selinstr rclass:$rFalse, rclass:$rTrue,
-                (binop (cmpOp1 rclass:$rA, rclass:$rB),
-                       (cmpOp2 rclass:$rA, rclass:$rB)))>;
-
-class SELECTBinOpImm<PatFrag cond, RegisterClass rclass, PatLeaf immpred,
-                     ValueType inttype,
-                     SPUInstr selinstr, SPUInstr binop, SPUInstr cmpOp1,
-                     SPUInstr cmpOp2>:
-    Pat<(select (inttype (cond rclass:$rA, (inttype immpred:$imm))),
-                rclass:$rTrue, rclass:$rFalse),
-        (selinstr rclass:$rFalse, rclass:$rTrue,
-                  (binop (cmpOp1 rclass:$rA, (inttype immpred:$imm)),
-                         (cmpOp2 rclass:$rA, (inttype immpred:$imm))))>;
-
-def : SELECTBinOpReg<setge, R8C, i8, SELBr8, ORr8, CGTBr8, CEQBr8>;
-def : SELECTBinOpImm<setge, R8C, immSExt8, i8,
-                     SELBr8, ORr8, CGTBIr8, CEQBIr8>;
-
-def : SELECTBinOpReg<setge, R16C, i16, SELBr16, ORr16, CGTHr16, CEQHr16>;
-def : SELECTBinOpImm<setge, R16C, i16ImmSExt10, i16,
-                     SELBr16, ORr16, CGTHIr16, CEQHIr16>;
-
-def : SELECTBinOpReg<setge, R32C, i32, SELBr32, ORr32, CGTr32, CEQr32>;
-def : SELECTBinOpImm<setge, R32C, i32ImmSExt10, i32,
-                     SELBr32, ORr32, CGTIr32, CEQIr32>;
-
-def : SELECTBinOpReg<setuge, R8C, i8, SELBr8, ORr8, CLGTBr8, CEQBr8>;
-def : SELECTBinOpImm<setuge, R8C, immSExt8, i8,
-                     SELBr8, ORr8, CLGTBIr8, CEQBIr8>;
-
-def : SELECTBinOpReg<setuge, R16C, i16, SELBr16, ORr16, CLGTHr16, CEQHr16>;
-def : SELECTBinOpImm<setuge, R16C, i16ImmUns10, i16,
-                     SELBr16, ORr16, CLGTHIr16, CEQHIr16>;
-
-def : SELECTBinOpReg<setuge, R32C, i32, SELBr32, ORr32, CLGTr32, CEQr32>;
-def : SELECTBinOpImm<setuge, R32C, i32ImmUns10, i32,
-                     SELBr32, ORr32, CLGTIr32, CEQIr32>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-let isCall = 1,
-  // All calls clobber the non-callee-saved registers:
-  Defs = [R0, R1, R2, R3, R4, R5, R6, R7, R8, R9,
-          R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,
-          R20,R21,R22,R23,R24,R25,R26,R27,R28,R29,
-          R30,R31,R32,R33,R34,R35,R36,R37,R38,R39,
-          R40,R41,R42,R43,R44,R45,R46,R47,R48,R49,
-          R50,R51,R52,R53,R54,R55,R56,R57,R58,R59,
-          R60,R61,R62,R63,R64,R65,R66,R67,R68,R69,
-          R70,R71,R72,R73,R74,R75,R76,R77,R78,R79],
-  // All of these instructions use $lr (aka $0)
-  Uses = [R0]  in {
-  // Branch relative and set link: Used if we actually know that the target
-  // is within [-32768, 32767] bytes of the target
-  def BRSL:
-    BranchSetLink<0b011001100, (outs), (ins relcalltarget:$func, variable_ops),
-      "brsl\t$$lr, $func",
-      [(SPUcall (SPUpcrel tglobaladdr:$func, 0))]>;
-
-  // Branch absolute and set link: Used if we actually know that the target
-  // is an absolute address
-  def BRASL:
-    BranchSetLink<0b011001100, (outs), (ins calltarget:$func, variable_ops),
-      "brasl\t$$lr, $func",
-      [(SPUcall (SPUaform tglobaladdr:$func, 0))]>;
-
-  // Branch indirect and set link if external data. These instructions are not
-  // actually generated, matched by an intrinsic:
-  def BISLED_00: BISLEDForm<0b11, "bisled\t$$lr, $func", [/* empty pattern */]>;
-  def BISLED_E0: BISLEDForm<0b10, "bisled\t$$lr, $func", [/* empty pattern */]>;
-  def BISLED_0D: BISLEDForm<0b01, "bisled\t$$lr, $func", [/* empty pattern */]>;
-  def BISLED_ED: BISLEDForm<0b00, "bisled\t$$lr, $func", [/* empty pattern */]>;
-
-  // Branch indirect and set link. This is the "X-form" address version of a
-  // function call
-  def BISL:
-    BIForm<0b10010101100, "bisl\t$$lr, $func", [(SPUcall R32C:$func)]>;
-}
-
-// Support calls to external symbols:      
-def : Pat<(SPUcall (SPUpcrel texternalsym:$func, 0)),
-          (BRSL texternalsym:$func)>;
-      
-def : Pat<(SPUcall (SPUaform texternalsym:$func, 0)),
-          (BRASL texternalsym:$func)>;
-
-// Unconditional branches:
-let isBranch = 1, isTerminator = 1, hasCtrlDep = 1, isBarrier = 1 in {
-  def BR :
-    UncondBranch<0b001001100, (outs), (ins brtarget:$dest),
-      "br\t$dest",
-      [(br bb:$dest)]>;
-
-  // Unconditional, absolute address branch
-  def BRA:
-    UncondBranch<0b001100000, (outs), (ins brtarget:$dest),
-      "bra\t$dest",
-      [/* no pattern */]>;
-
-  // Indirect branch
-  def BI:
-    BIForm<0b00010101100, "bi\t$func", [(brind R32C:$func)]>;
-
-  // Conditional branches:
-  class BRNZInst<dag IOL, list<dag> pattern>:
-    RI16Form<0b010000100, (outs), IOL, "brnz\t$rCond,$dest",
-             BranchResolv, pattern>;
-
-  class BRNZRegInst<RegisterClass rclass>:
-    BRNZInst<(ins rclass:$rCond, brtarget:$dest),
-             [(brcond rclass:$rCond, bb:$dest)]>;
-
-  class BRNZVecInst<ValueType vectype>:
-    BRNZInst<(ins VECREG:$rCond, brtarget:$dest),
-             [(brcond (vectype VECREG:$rCond), bb:$dest)]>;
-
-  multiclass BranchNotZero {
-    def v4i32 : BRNZVecInst<v4i32>;
-    def r32   : BRNZRegInst<R32C>;
-  }
-
-  defm BRNZ : BranchNotZero;
-
-  class BRZInst<dag IOL, list<dag> pattern>:
-    RI16Form<0b000000100, (outs), IOL, "brz\t$rT,$dest",
-             BranchResolv, pattern>;
-
-  class BRZRegInst<RegisterClass rclass>:
-    BRZInst<(ins rclass:$rT, brtarget:$dest), [/* no pattern */]>;
-
-  class BRZVecInst<ValueType vectype>:
-    BRZInst<(ins VECREG:$rT, brtarget:$dest), [/* no pattern */]>;
-
-  multiclass BranchZero {
-    def v4i32: BRZVecInst<v4i32>;
-    def r32:   BRZRegInst<R32C>;
-  }
-
-  defm BRZ: BranchZero;
-
-  // Note: LLVM doesn't do branch conditional, indirect. Otherwise these would
-  // be useful:
-  /*
-  class BINZInst<dag IOL, list<dag> pattern>:
-   BICondForm<0b10010100100, (outs), IOL, "binz\t$rA, $dest", pattern>;
-
-  class BINZRegInst<RegisterClass rclass>:
-    BINZInst<(ins rclass:$rA, brtarget:$dest),
-             [(brcond rclass:$rA, R32C:$dest)]>;
-
-  class BINZVecInst<ValueType vectype>:
-    BINZInst<(ins VECREG:$rA, R32C:$dest),
-             [(brcond (vectype VECREG:$rA), R32C:$dest)]>;
-
-  multiclass BranchNotZeroIndirect {
-    def v4i32: BINZVecInst<v4i32>;
-    def r32:   BINZRegInst<R32C>;
-  }
-
-  defm BINZ: BranchNotZeroIndirect;
-
-  class BIZInst<dag IOL, list<dag> pattern>:
-    BICondForm<0b00010100100, (outs), IOL, "biz\t$rA, $func", pattern>;
-
-  class BIZRegInst<RegisterClass rclass>:
-    BIZInst<(ins rclass:$rA, R32C:$func), [/* no pattern */]>;
-
-  class BIZVecInst<ValueType vectype>:
-    BIZInst<(ins VECREG:$rA, R32C:$func), [/* no pattern */]>;
-
-  multiclass BranchZeroIndirect {
-    def v4i32: BIZVecInst<v4i32>;
-    def r32:   BIZRegInst<R32C>;
-  }
-
-  defm BIZ: BranchZeroIndirect;
-  */
-
-  class BRHNZInst<dag IOL, list<dag> pattern>:
-    RI16Form<0b011000100, (outs), IOL, "brhnz\t$rCond,$dest", BranchResolv,
-             pattern>;
-
-  class BRHNZRegInst<RegisterClass rclass>:
-    BRHNZInst<(ins rclass:$rCond, brtarget:$dest),
-              [(brcond rclass:$rCond, bb:$dest)]>;
-
-  class BRHNZVecInst<ValueType vectype>:
-    BRHNZInst<(ins VECREG:$rCond, brtarget:$dest), [/* no pattern */]>;
-
-  multiclass BranchNotZeroHalfword {
-    def v8i16: BRHNZVecInst<v8i16>;
-    def r16:   BRHNZRegInst<R16C>;
-  }
-
-  defm BRHNZ: BranchNotZeroHalfword;
-
-  class BRHZInst<dag IOL, list<dag> pattern>:
-    RI16Form<0b001000100, (outs), IOL, "brhz\t$rT,$dest", BranchResolv,
-             pattern>;
-
-  class BRHZRegInst<RegisterClass rclass>:
-    BRHZInst<(ins rclass:$rT, brtarget:$dest), [/* no pattern */]>;
-
-  class BRHZVecInst<ValueType vectype>:
-    BRHZInst<(ins VECREG:$rT, brtarget:$dest), [/* no pattern */]>;
-
-  multiclass BranchZeroHalfword {
-    def v8i16: BRHZVecInst<v8i16>;
-    def r16:   BRHZRegInst<R16C>;
-  }
-
-  defm BRHZ: BranchZeroHalfword;
-}
-
-//===----------------------------------------------------------------------===//
-// setcc and brcond patterns:
-//===----------------------------------------------------------------------===//
-
-def : Pat<(brcond (i16 (seteq R16C:$rA, 0)), bb:$dest),
-          (BRHZr16 R16C:$rA, bb:$dest)>;
-def : Pat<(brcond (i16 (setne R16C:$rA, 0)), bb:$dest),
-          (BRHNZr16 R16C:$rA, bb:$dest)>;
-
-def : Pat<(brcond (i32 (seteq R32C:$rA, 0)), bb:$dest),
-          (BRZr32 R32C:$rA, bb:$dest)>;
-def : Pat<(brcond (i32 (setne R32C:$rA, 0)), bb:$dest),
-          (BRNZr32 R32C:$rA, bb:$dest)>;
-
-multiclass BranchCondEQ<PatFrag cond, SPUInstr brinst16, SPUInstr brinst32>
-{
-  def r16imm: Pat<(brcond (i16 (cond R16C:$rA, i16ImmSExt10:$val)), bb:$dest),
-                  (brinst16 (CEQHIr16 R16C:$rA, i16ImmSExt10:$val), bb:$dest)>;
-
-  def r16 : Pat<(brcond (i16 (cond R16C:$rA, R16C:$rB)), bb:$dest),
-                (brinst16 (CEQHr16 R16C:$rA, R16:$rB), bb:$dest)>;
-
-  def r32imm : Pat<(brcond (i32 (cond R32C:$rA, i32ImmSExt10:$val)), bb:$dest),
-                   (brinst32 (CEQIr32 R32C:$rA, i32ImmSExt10:$val), bb:$dest)>;
-
-  def r32 : Pat<(brcond (i32 (cond R32C:$rA, R32C:$rB)), bb:$dest),
-                (brinst32 (CEQr32 R32C:$rA, R32C:$rB), bb:$dest)>;
-}
-
-defm BRCONDeq : BranchCondEQ<seteq, BRHNZr16, BRNZr32>;
-defm BRCONDne : BranchCondEQ<setne, BRHZr16, BRZr32>;
-
-multiclass BranchCondLGT<PatFrag cond, SPUInstr brinst16, SPUInstr brinst32>
-{
-  def r16imm : Pat<(brcond (i16 (cond R16C:$rA, i16ImmSExt10:$val)), bb:$dest),
-                   (brinst16 (CLGTHIr16 R16C:$rA, i16ImmSExt10:$val), bb:$dest)>;
-
-  def r16 : Pat<(brcond (i16 (cond R16C:$rA, R16C:$rB)), bb:$dest),
-                (brinst16 (CLGTHr16 R16C:$rA, R16:$rB), bb:$dest)>;
-
-  def r32imm : Pat<(brcond (i32 (cond R32C:$rA, i32ImmSExt10:$val)), bb:$dest),
-                   (brinst32 (CLGTIr32 R32C:$rA, i32ImmSExt10:$val), bb:$dest)>;
-
-  def r32 : Pat<(brcond (i32 (cond R32C:$rA, R32C:$rB)), bb:$dest),
-                (brinst32 (CLGTr32 R32C:$rA, R32C:$rB), bb:$dest)>;
-}
-
-defm BRCONDugt : BranchCondLGT<setugt, BRHNZr16, BRNZr32>;
-defm BRCONDule : BranchCondLGT<setule, BRHZr16, BRZr32>;
-
-multiclass BranchCondLGTEQ<PatFrag cond, SPUInstr orinst16, SPUInstr brinst16,
-                           SPUInstr orinst32, SPUInstr brinst32>
-{
-  def r16imm: Pat<(brcond (i16 (cond R16C:$rA, i16ImmSExt10:$val)), bb:$dest),
-                  (brinst16 (orinst16 (CLGTHIr16 R16C:$rA, i16ImmSExt10:$val),
-                                      (CEQHIr16 R16C:$rA, i16ImmSExt10:$val)),
-                            bb:$dest)>;
-
-  def r16: Pat<(brcond (i16 (cond R16C:$rA, R16C:$rB)), bb:$dest),
-               (brinst16 (orinst16 (CLGTHr16 R16C:$rA, R16:$rB),
-                                   (CEQHr16 R16C:$rA, R16:$rB)),
-                         bb:$dest)>;
-
-  def r32imm : Pat<(brcond (i32 (cond R32C:$rA, i32ImmSExt10:$val)), bb:$dest),
-                   (brinst32 (orinst32 (CLGTIr32 R32C:$rA, i32ImmSExt10:$val),
-                                       (CEQIr32 R32C:$rA, i32ImmSExt10:$val)),
-                             bb:$dest)>;
-
-  def r32 : Pat<(brcond (i32 (cond R32C:$rA, R32C:$rB)), bb:$dest),
-                (brinst32 (orinst32 (CLGTr32 R32C:$rA, R32C:$rB),
-                                    (CEQr32 R32C:$rA, R32C:$rB)),
-                          bb:$dest)>;
-}
-
-defm BRCONDuge : BranchCondLGTEQ<setuge, ORr16, BRHNZr16, ORr32, BRNZr32>;
-defm BRCONDult : BranchCondLGTEQ<setult, ORr16, BRHZr16, ORr32, BRZr32>;
-
-multiclass BranchCondGT<PatFrag cond, SPUInstr brinst16, SPUInstr brinst32>
-{
-  def r16imm : Pat<(brcond (i16 (cond R16C:$rA, i16ImmSExt10:$val)), bb:$dest),
-                   (brinst16 (CGTHIr16 R16C:$rA, i16ImmSExt10:$val), bb:$dest)>;
-
-  def r16 : Pat<(brcond (i16 (cond R16C:$rA, R16C:$rB)), bb:$dest),
-                (brinst16 (CGTHr16 R16C:$rA, R16:$rB), bb:$dest)>;
-
-  def r32imm : Pat<(brcond (i32 (cond R32C:$rA, i32ImmSExt10:$val)), bb:$dest),
-                   (brinst32 (CGTIr32 R32C:$rA, i32ImmSExt10:$val), bb:$dest)>;
-
-  def r32 : Pat<(brcond (i32 (cond R32C:$rA, R32C:$rB)), bb:$dest),
-                (brinst32 (CGTr32 R32C:$rA, R32C:$rB), bb:$dest)>;
-}
-
-defm BRCONDgt : BranchCondGT<setgt, BRHNZr16, BRNZr32>;
-defm BRCONDle : BranchCondGT<setle, BRHZr16, BRZr32>;
-
-multiclass BranchCondGTEQ<PatFrag cond, SPUInstr orinst16, SPUInstr brinst16,
-                          SPUInstr orinst32, SPUInstr brinst32>
-{
-  def r16imm: Pat<(brcond (i16 (cond R16C:$rA, i16ImmSExt10:$val)), bb:$dest),
-                  (brinst16 (orinst16 (CGTHIr16 R16C:$rA, i16ImmSExt10:$val),
-                                      (CEQHIr16 R16C:$rA, i16ImmSExt10:$val)),
-                            bb:$dest)>;
-
-  def r16: Pat<(brcond (i16 (cond R16C:$rA, R16C:$rB)), bb:$dest),
-               (brinst16 (orinst16 (CGTHr16 R16C:$rA, R16:$rB),
-                                   (CEQHr16 R16C:$rA, R16:$rB)),
-                         bb:$dest)>;
-
-  def r32imm : Pat<(brcond (i32 (cond R32C:$rA, i32ImmSExt10:$val)), bb:$dest),
-                   (brinst32 (orinst32 (CGTIr32 R32C:$rA, i32ImmSExt10:$val),
-                                       (CEQIr32 R32C:$rA, i32ImmSExt10:$val)),
-                             bb:$dest)>;
-
-  def r32 : Pat<(brcond (i32 (cond R32C:$rA, R32C:$rB)), bb:$dest),
-                (brinst32 (orinst32 (CGTr32 R32C:$rA, R32C:$rB),
-                                    (CEQr32 R32C:$rA, R32C:$rB)),
-                          bb:$dest)>;
-}
-
-defm BRCONDge : BranchCondGTEQ<setge, ORr16, BRHNZr16, ORr32, BRNZr32>;
-defm BRCONDlt : BranchCondGTEQ<setlt, ORr16, BRHZr16, ORr32, BRZr32>;
-
-let isTerminator = 1, isBarrier = 1 in {
-  let isReturn = 1 in {
-    def RET:
-        RETForm<"bi\t$$lr", [(retflag)]>;
-  }
-}
-
-//===----------------------------------------------------------------------===//
-// Single precision floating point instructions
-//===----------------------------------------------------------------------===//
-
-class FAInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b01011000100, OOL, IOL, "fa\t$rT, $rA, $rB",
-           SPrecFP, pattern>;
-
-class FAVecInst<ValueType vectype>:
-    FAInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-             [(set (vectype VECREG:$rT),
-                   (fadd (vectype VECREG:$rA), (vectype VECREG:$rB)))]>;
-
-multiclass SFPAdd
-{
-  def v4f32: FAVecInst<v4f32>;
-  def f32:   FAInst<(outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB),
-                    [(set R32FP:$rT, (fadd R32FP:$rA, R32FP:$rB))]>;
-}
-
-defm FA : SFPAdd;
-
-class FSInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b01011000100, OOL, IOL, "fs\t$rT, $rA, $rB",
-           SPrecFP, pattern>;
-
-class FSVecInst<ValueType vectype>:
-    FSInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-           [(set (vectype VECREG:$rT),
-                 (fsub (vectype VECREG:$rA), (vectype VECREG:$rB)))]>;
-
-multiclass SFPSub
-{
-  def v4f32: FSVecInst<v4f32>;
-  def f32:   FSInst<(outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB),
-                    [(set R32FP:$rT, (fsub R32FP:$rA, R32FP:$rB))]>;
-}
-
-defm FS : SFPSub;
-
-// Floating point reciprocal estimate
-
-class FRESTInst<dag OOL, dag IOL>:
-  RRForm_1<0b00110111000, OOL, IOL,
-           "frest\t$rT, $rA", SPrecFP,
-           [/* no pattern */]>;
-
-def FRESTv4f32 :
-    FRESTInst<(outs VECREG:$rT), (ins VECREG:$rA)>;
-
-def FRESTf32 :
-    FRESTInst<(outs R32FP:$rT), (ins R32FP:$rA)>;
-
-// Floating point interpolate (used in conjunction with reciprocal estimate)
-def FIv4f32 :
-    RRForm<0b00101011110, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "fi\t$rT, $rA, $rB", SPrecFP,
-      [/* no pattern */]>;
-
-def FIf32 :
-    RRForm<0b00101011110, (outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB),
-      "fi\t$rT, $rA, $rB", SPrecFP,
-      [/* no pattern */]>;
-
-//--------------------------------------------------------------------------
-// Basic single precision floating point comparisons:
-//
-// Note: There is no support on SPU for single precision NaN. Consequently,
-// ordered and unordered comparisons are the same.
-//--------------------------------------------------------------------------
-
-def FCEQf32 :
-    RRForm<0b01000011110, (outs R32C:$rT), (ins R32FP:$rA, R32FP:$rB),
-      "fceq\t$rT, $rA, $rB", SPrecFP,
-      [(set R32C:$rT, (setueq R32FP:$rA, R32FP:$rB))]>;
-
-def : Pat<(setoeq R32FP:$rA, R32FP:$rB),
-          (FCEQf32 R32FP:$rA, R32FP:$rB)>;
-
-def FCMEQf32 :
-    RRForm<0b01010011110, (outs R32C:$rT), (ins R32FP:$rA, R32FP:$rB),
-      "fcmeq\t$rT, $rA, $rB", SPrecFP,
-      [(set R32C:$rT, (setueq (fabs R32FP:$rA), (fabs R32FP:$rB)))]>;
-
-def : Pat<(setoeq (fabs R32FP:$rA), (fabs R32FP:$rB)),
-          (FCMEQf32 R32FP:$rA, R32FP:$rB)>;
-
-def FCGTf32 :
-    RRForm<0b01000011010, (outs R32C:$rT), (ins R32FP:$rA, R32FP:$rB),
-      "fcgt\t$rT, $rA, $rB", SPrecFP,
-      [(set R32C:$rT, (setugt R32FP:$rA, R32FP:$rB))]>;
-
-def : Pat<(setugt R32FP:$rA, R32FP:$rB),
-          (FCGTf32 R32FP:$rA, R32FP:$rB)>;
-
-def FCMGTf32 :
-    RRForm<0b01010011010, (outs R32C:$rT), (ins R32FP:$rA, R32FP:$rB),
-      "fcmgt\t$rT, $rA, $rB", SPrecFP,
-      [(set R32C:$rT, (setugt (fabs R32FP:$rA), (fabs R32FP:$rB)))]>;
-
-def : Pat<(setugt (fabs R32FP:$rA), (fabs R32FP:$rB)),
-          (FCMGTf32 R32FP:$rA, R32FP:$rB)>;
-
-//--------------------------------------------------------------------------
-// Single precision floating point comparisons and SETCC equivalents:
-//--------------------------------------------------------------------------
-
-def : SETCCNegCondReg<setune, R32FP, i32, XORIr32, FCEQf32>;
-def : SETCCNegCondReg<setone, R32FP, i32, XORIr32, FCEQf32>;
-
-def : SETCCBinOpReg<setuge, R32FP, ORr32, FCGTf32, FCEQf32>;
-def : SETCCBinOpReg<setoge, R32FP, ORr32, FCGTf32, FCEQf32>;
-
-def : SETCCBinOpReg<setult, R32FP, NORr32, FCGTf32, FCEQf32>;
-def : SETCCBinOpReg<setolt, R32FP, NORr32, FCGTf32, FCEQf32>;
-
-def : Pat<(setule R32FP:$rA, R32FP:$rB),
-          (XORIr32 (FCGTf32 R32FP:$rA, R32FP:$rB), 0xffffffff)>;
-def : Pat<(setole R32FP:$rA, R32FP:$rB),
-          (XORIr32 (FCGTf32 R32FP:$rA, R32FP:$rB), 0xffffffff)>;
-
-// FP Status and Control Register Write
-// Why isn't rT a don't care in the ISA?
-// Should we create a special RRForm_3 for this guy and zero out the rT?
-def FSCRWf32 :
-    RRForm_1<0b01011101110, (outs R32FP:$rT), (ins R32FP:$rA),
-      "fscrwr\t$rA", SPrecFP,
-      [/* This instruction requires an intrinsic. Note: rT is unused. */]>;
-
-// FP Status and Control Register Read
-def FSCRRf32 :
-    RRForm_2<0b01011101110, (outs R32FP:$rT), (ins),
-      "fscrrd\t$rT", SPrecFP,
-      [/* This instruction requires an intrinsic */]>;
-
-// llvm instruction space
-// How do these map onto cell instructions?
-// fdiv rA rB
-//   frest rC rB        # c = 1/b (both lines)
-//   fi rC rB rC
-//   fm rD rA rC        # d = a * 1/b
-//   fnms rB rD rB rA # b = - (d * b - a) --should == 0 in a perfect world
-//   fma rB rB rC rD            # b = b * c + d
-//                              = -(d *b -a) * c + d
-//                              = a * c - c ( a *b *c - a)
-
-// fcopysign (???)
-
-// Library calls:
-// These llvm instructions will actually map to library calls.
-// All that's needed, then, is to check that the appropriate library is
-// imported and do a brsl to the proper function name.
-// frem # fmod(x, y): x - (x/y) * y
-// (Note: fmod(double, double), fmodf(float,float)
-// fsqrt?
-// fsin?
-// fcos?
-// Unimplemented SPU instruction space
-// floating reciprocal absolute square root estimate (frsqest)
-
-// The following are probably just intrinsics
-// status and control register write
-// status and control register read
-
-//--------------------------------------
-// Floating point multiply instructions
-//--------------------------------------
-
-def FMv4f32:
-    RRForm<0b00100011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "fm\t$rT, $rA, $rB", SPrecFP,
-      [(set (v4f32 VECREG:$rT), (fmul (v4f32 VECREG:$rA),
-                                      (v4f32 VECREG:$rB)))]>;
-
-def FMf32 :
-    RRForm<0b01100011010, (outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB),
-      "fm\t$rT, $rA, $rB", SPrecFP,
-      [(set R32FP:$rT, (fmul R32FP:$rA, R32FP:$rB))]>;
-
-// Floating point multiply and add
-// e.g. d = c + (a * b)
-def FMAv4f32:
-    RRRForm<0b0111, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-      "fma\t$rT, $rA, $rB, $rC", SPrecFP,
-      [(set (v4f32 VECREG:$rT),
-            (fadd (v4f32 VECREG:$rC),
-                  (fmul (v4f32 VECREG:$rA), (v4f32 VECREG:$rB))))]>;
-
-def FMAf32:
-    RRRForm<0b0111, (outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB, R32FP:$rC),
-      "fma\t$rT, $rA, $rB, $rC", SPrecFP,
-      [(set R32FP:$rT, (fadd R32FP:$rC, (fmul R32FP:$rA, R32FP:$rB)))]>;
-
-// FP multiply and subtract
-// Subtracts value in rC from product
-// res = a * b - c
-def FMSv4f32 :
-    RRRForm<0b0111, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-      "fms\t$rT, $rA, $rB, $rC", SPrecFP,
-      [(set (v4f32 VECREG:$rT),
-            (fsub (fmul (v4f32 VECREG:$rA), (v4f32 VECREG:$rB)),
-                  (v4f32 VECREG:$rC)))]>;
-
-def FMSf32 :
-    RRRForm<0b0111, (outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB, R32FP:$rC),
-      "fms\t$rT, $rA, $rB, $rC", SPrecFP,
-      [(set R32FP:$rT,
-            (fsub (fmul R32FP:$rA, R32FP:$rB), R32FP:$rC))]>;
-
-// Floating Negative Mulitply and Subtract
-// Subtracts product from value in rC
-// res = fneg(fms a b c)
-//     = - (a * b - c)
-//     = c - a * b
-// NOTE: subtraction order
-// fsub a b = a - b
-// fs a b = b - a?
-def FNMSf32 :
-    RRRForm<0b1101, (outs R32FP:$rT), (ins R32FP:$rA, R32FP:$rB, R32FP:$rC),
-      "fnms\t$rT, $rA, $rB, $rC", SPrecFP,
-      [(set R32FP:$rT, (fsub R32FP:$rC, (fmul R32FP:$rA, R32FP:$rB)))]>;
-
-def FNMSv4f32 :
-    RRRForm<0b1101, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-      "fnms\t$rT, $rA, $rB, $rC", SPrecFP,
-      [(set (v4f32 VECREG:$rT),
-            (fsub (v4f32 VECREG:$rC),
-                  (fmul (v4f32 VECREG:$rA),
-                        (v4f32 VECREG:$rB))))]>;
-
-//--------------------------------------
-// Floating Point Conversions
-// Signed conversions:
-def CSiFv4f32:
-    CVTIntFPForm<0b0101101110, (outs VECREG:$rT), (ins VECREG:$rA),
-      "csflt\t$rT, $rA, 0", SPrecFP,
-      [(set (v4f32 VECREG:$rT), (sint_to_fp (v4i32 VECREG:$rA)))]>;
-
-// Convert signed integer to floating point
-def CSiFf32 :
-    CVTIntFPForm<0b0101101110, (outs R32FP:$rT), (ins R32C:$rA),
-      "csflt\t$rT, $rA, 0", SPrecFP,
-      [(set R32FP:$rT, (sint_to_fp R32C:$rA))]>;
-
-// Convert unsigned into to float
-def CUiFv4f32 :
-    CVTIntFPForm<0b1101101110, (outs VECREG:$rT), (ins VECREG:$rA),
-      "cuflt\t$rT, $rA, 0", SPrecFP,
-      [(set (v4f32 VECREG:$rT), (uint_to_fp (v4i32 VECREG:$rA)))]>;
-
-def CUiFf32 :
-    CVTIntFPForm<0b1101101110, (outs R32FP:$rT), (ins R32C:$rA),
-      "cuflt\t$rT, $rA, 0", SPrecFP,
-      [(set R32FP:$rT, (uint_to_fp R32C:$rA))]>;
-
-// Convert float to unsigned int
-// Assume that scale = 0
-
-def CFUiv4f32 :
-    CVTIntFPForm<0b1101101110, (outs VECREG:$rT), (ins VECREG:$rA),
-      "cfltu\t$rT, $rA, 0", SPrecFP,
-      [(set (v4i32 VECREG:$rT), (fp_to_uint (v4f32 VECREG:$rA)))]>;
-
-def CFUif32 :
-    CVTIntFPForm<0b1101101110, (outs R32C:$rT), (ins R32FP:$rA),
-      "cfltu\t$rT, $rA, 0", SPrecFP,
-      [(set R32C:$rT, (fp_to_uint R32FP:$rA))]>;
-
-// Convert float to signed int
-// Assume that scale = 0
-
-def CFSiv4f32 :
-    CVTIntFPForm<0b1101101110, (outs VECREG:$rT), (ins VECREG:$rA),
-      "cflts\t$rT, $rA, 0", SPrecFP,
-      [(set (v4i32 VECREG:$rT), (fp_to_sint (v4f32 VECREG:$rA)))]>;
-
-def CFSif32 :
-    CVTIntFPForm<0b1101101110, (outs R32C:$rT), (ins R32FP:$rA),
-      "cflts\t$rT, $rA, 0", SPrecFP,
-      [(set R32C:$rT, (fp_to_sint R32FP:$rA))]>;
-
-//===----------------------------------------------------------------------==//
-// Single<->Double precision conversions
-//===----------------------------------------------------------------------==//
-
-// NOTE: We use "vec" name suffix here to avoid confusion (e.g. input is a
-// v4f32, output is v2f64--which goes in the name?)
-
-// Floating point extend single to double
-// NOTE: Not sure if passing in v4f32 to FESDvec is correct since it
-// operates on two double-word slots (i.e. 1st and 3rd fp numbers
-// are ignored).
-def FESDvec :
-    RRForm_1<0b00011101110, (outs VECREG:$rT), (ins VECREG:$rA),
-      "fesd\t$rT, $rA", SPrecFP,
-      [(set (v2f64 VECREG:$rT), (fextend (v4f32 VECREG:$rA)))]>;
-
-def FESDf32 :
-    RRForm_1<0b00011101110, (outs R64FP:$rT), (ins R32FP:$rA),
-      "fesd\t$rT, $rA", SPrecFP,
-      [(set R64FP:$rT, (fextend R32FP:$rA))]>;
-
-// Floating point round double to single
-//def FRDSvec :
-//    RRForm_1<0b10011101110, (outs VECREG:$rT), (ins VECREG:$rA),
-//      "frds\t$rT, $rA,", SPrecFP,
-//      [(set (v4f32 R32FP:$rT), (fround (v2f64 R64FP:$rA)))]>;
-
-def FRDSf64 :
-    RRForm_1<0b10011101110, (outs R32FP:$rT), (ins R64FP:$rA),
-      "frds\t$rT, $rA", SPrecFP,
-      [(set R32FP:$rT, (fround R64FP:$rA))]>;
-
-//ToDo include anyextend?
-
-//===----------------------------------------------------------------------==//
-// Double precision floating point instructions
-//===----------------------------------------------------------------------==//
-def FAf64 :
-    RRForm<0b00110011010, (outs R64FP:$rT), (ins R64FP:$rA, R64FP:$rB),
-      "dfa\t$rT, $rA, $rB", DPrecFP,
-      [(set R64FP:$rT, (fadd R64FP:$rA, R64FP:$rB))]>;
-
-def FAv2f64 :
-    RRForm<0b00110011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "dfa\t$rT, $rA, $rB", DPrecFP,
-      [(set (v2f64 VECREG:$rT), (fadd (v2f64 VECREG:$rA), (v2f64 VECREG:$rB)))]>;
-
-def FSf64 :
-    RRForm<0b10100011010, (outs R64FP:$rT), (ins R64FP:$rA, R64FP:$rB),
-      "dfs\t$rT, $rA, $rB", DPrecFP,
-      [(set R64FP:$rT, (fsub R64FP:$rA, R64FP:$rB))]>;
-
-def FSv2f64 :
-    RRForm<0b10100011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "dfs\t$rT, $rA, $rB", DPrecFP,
-      [(set (v2f64 VECREG:$rT),
-            (fsub (v2f64 VECREG:$rA), (v2f64 VECREG:$rB)))]>;
-
-def FMf64 :
-    RRForm<0b01100011010, (outs R64FP:$rT), (ins R64FP:$rA, R64FP:$rB),
-      "dfm\t$rT, $rA, $rB", DPrecFP,
-      [(set R64FP:$rT, (fmul R64FP:$rA, R64FP:$rB))]>;
-
-def FMv2f64:
-    RRForm<0b00100011010, (outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
-      "dfm\t$rT, $rA, $rB", DPrecFP,
-      [(set (v2f64 VECREG:$rT),
-            (fmul (v2f64 VECREG:$rA), (v2f64 VECREG:$rB)))]>;
-
-def FMAf64:
-    RRForm<0b00111010110, (outs R64FP:$rT),
-                          (ins R64FP:$rA, R64FP:$rB, R64FP:$rC),
-      "dfma\t$rT, $rA, $rB", DPrecFP,
-      [(set R64FP:$rT, (fadd R64FP:$rC, (fmul R64FP:$rA, R64FP:$rB)))]>,
-    RegConstraint<"$rC = $rT">,
-    NoEncode<"$rC">;
-
-def FMAv2f64:
-    RRForm<0b00111010110, (outs VECREG:$rT),
-                          (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-      "dfma\t$rT, $rA, $rB", DPrecFP,
-      [(set (v2f64 VECREG:$rT),
-            (fadd (v2f64 VECREG:$rC),
-                  (fmul (v2f64 VECREG:$rA), (v2f64 VECREG:$rB))))]>,
-    RegConstraint<"$rC = $rT">,
-    NoEncode<"$rC">;
-
-def FMSf64 :
-    RRForm<0b10111010110, (outs R64FP:$rT),
-                          (ins R64FP:$rA, R64FP:$rB, R64FP:$rC),
-      "dfms\t$rT, $rA, $rB", DPrecFP,
-      [(set R64FP:$rT, (fsub (fmul R64FP:$rA, R64FP:$rB), R64FP:$rC))]>,
-    RegConstraint<"$rC = $rT">,
-    NoEncode<"$rC">;
-
-def FMSv2f64 :
-    RRForm<0b10111010110, (outs VECREG:$rT),
-                          (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-      "dfms\t$rT, $rA, $rB", DPrecFP,
-      [(set (v2f64 VECREG:$rT),
-            (fsub (fmul (v2f64 VECREG:$rA), (v2f64 VECREG:$rB)),
-                  (v2f64 VECREG:$rC)))]>;
-
-// DFNMS: - (a * b - c)
-// - (a * b) + c => c - (a * b)
-
-class DFNMSInst<dag OOL, dag IOL, list<dag> pattern>:
-    RRForm<0b01111010110, OOL, IOL, "dfnms\t$rT, $rA, $rB",
-           DPrecFP, pattern>,
-    RegConstraint<"$rC = $rT">,
-    NoEncode<"$rC">;
-
-class DFNMSVecInst<list<dag> pattern>:
-    DFNMSInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-              pattern>;
-
-class DFNMSRegInst<list<dag> pattern>:
-    DFNMSInst<(outs R64FP:$rT), (ins R64FP:$rA, R64FP:$rB, R64FP:$rC),
-             pattern>;
-
-multiclass DFMultiplySubtract
-{
-  def v2f64 : DFNMSVecInst<[(set (v2f64 VECREG:$rT), 
-                                 (fsub (v2f64 VECREG:$rC),
-                                       (fmul (v2f64 VECREG:$rA),
-                                             (v2f64 VECREG:$rB))))]>;
-
-  def f64 : DFNMSRegInst<[(set R64FP:$rT,
-                               (fsub R64FP:$rC,
-                                     (fmul R64FP:$rA, R64FP:$rB)))]>;
-}
-
-defm DFNMS : DFMultiplySubtract;
-
-// - (a * b + c)
-// - (a * b) - c
-def FNMAf64 :
-    RRForm<0b11111010110, (outs R64FP:$rT),
-                          (ins R64FP:$rA, R64FP:$rB, R64FP:$rC),
-      "dfnma\t$rT, $rA, $rB", DPrecFP,
-      [(set R64FP:$rT, (fneg (fadd R64FP:$rC, (fmul R64FP:$rA, R64FP:$rB))))]>,
-    RegConstraint<"$rC = $rT">,
-    NoEncode<"$rC">;
-
-def FNMAv2f64 :
-    RRForm<0b11111010110, (outs VECREG:$rT),
-                          (ins VECREG:$rA, VECREG:$rB, VECREG:$rC),
-      "dfnma\t$rT, $rA, $rB", DPrecFP,
-      [(set (v2f64 VECREG:$rT),
-            (fneg (fadd (v2f64 VECREG:$rC),
-                        (fmul (v2f64 VECREG:$rA),
-                              (v2f64 VECREG:$rB)))))]>,
-    RegConstraint<"$rC = $rT">,
-    NoEncode<"$rC">;
-
-//===----------------------------------------------------------------------==//
-// Floating point negation and absolute value
-//===----------------------------------------------------------------------==//
-
-def : Pat<(fneg (v4f32 VECREG:$rA)),
-          (XORfnegvec (v4f32 VECREG:$rA),
-                      (v4f32 (ILHUv4i32 0x8000)))>;
-
-def : Pat<(fneg R32FP:$rA),
-          (XORfneg32 R32FP:$rA, (ILHUr32 0x8000))>;
-
-// Floating point absolute value
-// Note: f64 fabs is custom-selected.
-
-def : Pat<(fabs R32FP:$rA),
-          (ANDfabs32 R32FP:$rA, (IOHLr32 (ILHUr32 0x7fff), 0xffff))>;
-
-def : Pat<(fabs (v4f32 VECREG:$rA)),
-          (ANDfabsvec (v4f32 VECREG:$rA),
-                      (IOHLv4i32 (ILHUv4i32 0x7fff), 0xffff))>;
-
-//===----------------------------------------------------------------------===//
-// Hint for branch instructions:
-//===----------------------------------------------------------------------===//
-
-/* def HBR : SPUInstr<(outs), (ins), "hbr\t" */
-
-//===----------------------------------------------------------------------===//
-// Execution, Load NOP (execute NOPs belong in even pipeline, load NOPs belong
-// in the odd pipeline)
-//===----------------------------------------------------------------------===//
-
-def ENOP : SPUInstr<(outs), (ins), "enop", ExecNOP> {
-  let Pattern = [];
-
-  let Inst{0-10} = 0b10000000010;
-  let Inst{11-17} = 0;
-  let Inst{18-24} = 0;
-  let Inst{25-31} = 0;
-}
-
-def LNOP : SPUInstr<(outs), (ins), "lnop", LoadNOP> {
-  let Pattern = [];
-
-  let Inst{0-10} = 0b10000000000;
-  let Inst{11-17} = 0;
-  let Inst{18-24} = 0;
-  let Inst{25-31} = 0;
-}
-
-//===----------------------------------------------------------------------===//
-// Bit conversions (type conversions between vector/packed types)
-// NOTE: Promotions are handled using the XS* instructions.
-//===----------------------------------------------------------------------===//
-def : Pat<(v16i8 (bitconvert (v8i16 VECREG:$src))), (v16i8 VECREG:$src)>;
-def : Pat<(v16i8 (bitconvert (v4i32 VECREG:$src))), (v16i8 VECREG:$src)>;
-def : Pat<(v16i8 (bitconvert (v2i64 VECREG:$src))), (v16i8 VECREG:$src)>;
-def : Pat<(v16i8 (bitconvert (v4f32 VECREG:$src))), (v16i8 VECREG:$src)>;
-def : Pat<(v16i8 (bitconvert (v2f64 VECREG:$src))), (v16i8 VECREG:$src)>;
-
-def : Pat<(v8i16 (bitconvert (v16i8 VECREG:$src))), (v8i16 VECREG:$src)>;
-def : Pat<(v8i16 (bitconvert (v4i32 VECREG:$src))), (v8i16 VECREG:$src)>;
-def : Pat<(v8i16 (bitconvert (v2i64 VECREG:$src))), (v8i16 VECREG:$src)>;
-def : Pat<(v8i16 (bitconvert (v4f32 VECREG:$src))), (v8i16 VECREG:$src)>;
-def : Pat<(v8i16 (bitconvert (v2f64 VECREG:$src))), (v8i16 VECREG:$src)>;
-
-def : Pat<(v4i32 (bitconvert (v16i8 VECREG:$src))), (v4i32 VECREG:$src)>;
-def : Pat<(v4i32 (bitconvert (v8i16 VECREG:$src))), (v4i32 VECREG:$src)>;
-def : Pat<(v4i32 (bitconvert (v2i64 VECREG:$src))), (v4i32 VECREG:$src)>;
-def : Pat<(v4i32 (bitconvert (v4f32 VECREG:$src))), (v4i32 VECREG:$src)>;
-def : Pat<(v4i32 (bitconvert (v2f64 VECREG:$src))), (v4i32 VECREG:$src)>;
-
-def : Pat<(v2i64 (bitconvert (v16i8 VECREG:$src))), (v2i64 VECREG:$src)>;
-def : Pat<(v2i64 (bitconvert (v8i16 VECREG:$src))), (v2i64 VECREG:$src)>;
-def : Pat<(v2i64 (bitconvert (v4i32 VECREG:$src))), (v2i64 VECREG:$src)>;
-def : Pat<(v2i64 (bitconvert (v4f32 VECREG:$src))), (v2i64 VECREG:$src)>;
-def : Pat<(v2i64 (bitconvert (v2f64 VECREG:$src))), (v2i64 VECREG:$src)>;
-
-def : Pat<(v4f32 (bitconvert (v16i8 VECREG:$src))), (v4f32 VECREG:$src)>;
-def : Pat<(v4f32 (bitconvert (v8i16 VECREG:$src))), (v4f32 VECREG:$src)>;
-def : Pat<(v4f32 (bitconvert (v2i64 VECREG:$src))), (v4f32 VECREG:$src)>;
-def : Pat<(v4f32 (bitconvert (v4i32 VECREG:$src))), (v4f32 VECREG:$src)>;
-def : Pat<(v4f32 (bitconvert (v2f64 VECREG:$src))), (v4f32 VECREG:$src)>;
-
-def : Pat<(v2f64 (bitconvert (v16i8 VECREG:$src))), (v2f64 VECREG:$src)>;
-def : Pat<(v2f64 (bitconvert (v8i16 VECREG:$src))), (v2f64 VECREG:$src)>;
-def : Pat<(v2f64 (bitconvert (v4i32 VECREG:$src))), (v2f64 VECREG:$src)>;
-def : Pat<(v2f64 (bitconvert (v2i64 VECREG:$src))), (v2f64 VECREG:$src)>;
-def : Pat<(v2f64 (bitconvert (v2f64 VECREG:$src))), (v2f64 VECREG:$src)>;
-
-def : Pat<(i128 (bitconvert (v16i8 VECREG:$src))),
-          (ORi128_vec VECREG:$src)>;
-def : Pat<(i128 (bitconvert (v8i16 VECREG:$src))),
-          (ORi128_vec VECREG:$src)>;
-def : Pat<(i128 (bitconvert (v4i32 VECREG:$src))),
-          (ORi128_vec VECREG:$src)>;
-def : Pat<(i128 (bitconvert (v2i64 VECREG:$src))),
-          (ORi128_vec VECREG:$src)>;
-def : Pat<(i128 (bitconvert (v4f32 VECREG:$src))),
-          (ORi128_vec VECREG:$src)>;
-def : Pat<(i128 (bitconvert (v2f64 VECREG:$src))),
-          (ORi128_vec VECREG:$src)>;
-
-def : Pat<(v16i8 (bitconvert (i128 GPRC:$src))),
-          (v16i8 (ORvec_i128 GPRC:$src))>;
-def : Pat<(v8i16 (bitconvert (i128 GPRC:$src))),
-          (v8i16 (ORvec_i128 GPRC:$src))>;
-def : Pat<(v4i32 (bitconvert (i128 GPRC:$src))),
-          (v4i32 (ORvec_i128 GPRC:$src))>;
-def : Pat<(v2i64 (bitconvert (i128 GPRC:$src))),
-          (v2i64 (ORvec_i128 GPRC:$src))>;
-def : Pat<(v4f32 (bitconvert (i128 GPRC:$src))),
-          (v4f32 (ORvec_i128 GPRC:$src))>;
-def : Pat<(v2f64 (bitconvert (i128 GPRC:$src))),
-          (v2f64 (ORvec_i128 GPRC:$src))>;
-
-//===----------------------------------------------------------------------===//
-// Instruction patterns:
-//===----------------------------------------------------------------------===//
-
-// General 32-bit constants:
-def : Pat<(i32 imm:$imm),
-          (IOHLr32 (ILHUr32 (HI16 imm:$imm)), (LO16 imm:$imm))>;
-
-// Single precision float constants:
-def : Pat<(f32 fpimm:$imm),
-          (IOHLf32 (ILHUf32 (HI16_f32 fpimm:$imm)), (LO16_f32 fpimm:$imm))>;
-
-// General constant 32-bit vectors
-def : Pat<(v4i32 v4i32Imm:$imm),
-          (IOHLv4i32 (v4i32 (ILHUv4i32 (HI16_vec v4i32Imm:$imm))),
-                     (LO16_vec v4i32Imm:$imm))>;
-
-// 8-bit constants
-def : Pat<(i8 imm:$imm),
-          (ILHr8 imm:$imm)>;
-
-//===----------------------------------------------------------------------===//
-// Zero/Any/Sign extensions
-//===----------------------------------------------------------------------===//
-
-// sext 8->32: Sign extend bytes to words
-def : Pat<(sext_inreg R32C:$rSrc, i8),
-          (XSHWr32 (XSBHr32 R32C:$rSrc))>;
-
-def : Pat<(i32 (sext R8C:$rSrc)),
-          (XSHWr16 (XSBHr8 R8C:$rSrc))>;
-
-// sext 8->64: Sign extend bytes to double word
-def : Pat<(sext_inreg R64C:$rSrc, i8),
-          (XSWDr64_inreg (XSHWr64 (XSBHr64 R64C:$rSrc)))>;
-          
-def : Pat<(i64 (sext R8C:$rSrc)),
-          (XSWDr64 (XSHWr16 (XSBHr8 R8C:$rSrc)))>;
-
-// zext 8->16: Zero extend bytes to halfwords
-def : Pat<(i16 (zext R8C:$rSrc)),
-          (ANDHIi8i16 R8C:$rSrc, 0xff)>;
-
-// zext 8->32: Zero extend bytes to words
-def : Pat<(i32 (zext R8C:$rSrc)),
-          (ANDIi8i32 R8C:$rSrc, 0xff)>;
-
-// zext 8->64: Zero extend bytes to double words
-def : Pat<(i64 (zext R8C:$rSrc)),
-          (ORi64_v2i64 (SELBv4i32 (ROTQMBYv4i32
-                                    (ORv4i32_i32 (ANDIi8i32 R8C:$rSrc, 0xff)),
-                                    0x4),
-                                  (ILv4i32 0x0),
-                                  (FSMBIv4i32 0x0f0f)))>;
-
-// anyext 8->16: Extend 8->16 bits, irrespective of sign, preserves high bits
-def : Pat<(i16 (anyext R8C:$rSrc)),
-          (ORHIi8i16 R8C:$rSrc, 0)>;
-
-// anyext 8->32: Extend 8->32 bits, irrespective of sign, preserves high bits
-def : Pat<(i32 (anyext R8C:$rSrc)),
-          (ORIi8i32 R8C:$rSrc, 0)>;
-
-// sext 16->64: Sign extend halfword to double word
-def : Pat<(sext_inreg R64C:$rSrc, i16),
-          (XSWDr64_inreg (XSHWr64 R64C:$rSrc))>;
-          
-def : Pat<(sext R16C:$rSrc),
-          (XSWDr64 (XSHWr16 R16C:$rSrc))>;
-
-// zext 16->32: Zero extend halfwords to words
-def : Pat<(i32 (zext R16C:$rSrc)),
-          (ANDi16i32 R16C:$rSrc, (ILAr32 0xffff))>;
-
-def : Pat<(i32 (zext (and R16C:$rSrc, 0xf))),
-          (ANDIi16i32 R16C:$rSrc, 0xf)>;
-
-def : Pat<(i32 (zext (and R16C:$rSrc, 0xff))),
-          (ANDIi16i32 R16C:$rSrc, 0xff)>;
-
-def : Pat<(i32 (zext (and R16C:$rSrc, 0xfff))),
-          (ANDIi16i32 R16C:$rSrc, 0xfff)>;
-
-// anyext 16->32: Extend 16->32 bits, irrespective of sign
-def : Pat<(i32 (anyext R16C:$rSrc)),
-          (ORIi16i32 R16C:$rSrc, 0)>;
-
-//===----------------------------------------------------------------------===//
-// Truncates:
-// These truncates are for the SPU's supported types (i8, i16, i32). i64 and
-// above are custom lowered.
-//===----------------------------------------------------------------------===//
-
-def : Pat<(i8 (trunc GPRC:$src)),
-          (ORi8_v16i8
-            (SHUFBgprc GPRC:$src, GPRC:$src,
-                       (IOHLv4i32 (ILHUv4i32 0x0f0f), 0x0f0f)))>;
-
-def : Pat<(i8 (trunc R64C:$src)),
-          (ORi8_v16i8
-            (SHUFBv2i64_m32
-              (ORv2i64_i64 R64C:$src),
-              (ORv2i64_i64 R64C:$src),
-              (IOHLv4i32 (ILHUv4i32 0x0707), 0x0707)))>;
-
-def : Pat<(i8 (trunc R32C:$src)),
-          (ORi8_v16i8
-            (SHUFBv4i32_m32
-               (ORv4i32_i32 R32C:$src),
-               (ORv4i32_i32 R32C:$src),
-               (IOHLv4i32 (ILHUv4i32 0x0303), 0x0303)))>;
-
-def : Pat<(i8 (trunc R16C:$src)),
-          (ORi8_v16i8
-            (SHUFBv4i32_m32
-               (ORv8i16_i16 R16C:$src),
-               (ORv8i16_i16 R16C:$src),
-               (IOHLv4i32 (ILHUv4i32 0x0303), 0x0303)))>;
-
-def : Pat<(i16 (trunc GPRC:$src)),
-          (ORi16_v8i16
-            (SHUFBgprc GPRC:$src, GPRC:$src,
-                       (IOHLv4i32 (ILHUv4i32 0x0e0f), 0x0e0f)))>;
-
-def : Pat<(i16 (trunc R64C:$src)),
-          (ORi16_v8i16
-            (SHUFBv2i64_m32
-              (ORv2i64_i64 R64C:$src),
-              (ORv2i64_i64 R64C:$src),
-              (IOHLv4i32 (ILHUv4i32 0x0607), 0x0607)))>;
-
-def : Pat<(i16 (trunc R32C:$src)),
-          (ORi16_v8i16
-            (SHUFBv4i32_m32
-               (ORv4i32_i32 R32C:$src),
-               (ORv4i32_i32 R32C:$src),
-               (IOHLv4i32 (ILHUv4i32 0x0203), 0x0203)))>;
-
-def : Pat<(i32 (trunc GPRC:$src)),
-          (ORi32_v4i32
-            (SHUFBgprc GPRC:$src, GPRC:$src,
-                       (IOHLv4i32 (ILHUv4i32 0x0c0d), 0x0e0f)))>;
-
-def : Pat<(i32 (trunc R64C:$src)),
-          (ORi32_v4i32
-            (SHUFBv2i64_m32
-              (ORv2i64_i64 R64C:$src),
-              (ORv2i64_i64 R64C:$src),
-              (IOHLv4i32 (ILHUv4i32 0x0405), 0x0607)))>;
-
-//===----------------------------------------------------------------------===//
-// Address generation: SPU, like PPC, has to split addresses into high and
-// low parts in order to load them into a register.
-//===----------------------------------------------------------------------===//
-
-def : Pat<(SPUaform tglobaladdr:$in, 0),  (ILAlsa tglobaladdr:$in)>;
-def : Pat<(SPUaform texternalsym:$in, 0), (ILAlsa texternalsym:$in)>;
-def : Pat<(SPUaform tjumptable:$in, 0),   (ILAlsa tjumptable:$in)>;
-def : Pat<(SPUaform tconstpool:$in, 0),   (ILAlsa  tconstpool:$in)>;
-
-def : Pat<(SPUindirect (SPUhi tglobaladdr:$in, 0),
-                       (SPUlo tglobaladdr:$in, 0)),
-          (IOHLlo (ILHUhi tglobaladdr:$in), tglobaladdr:$in)>;
-
-def : Pat<(SPUindirect (SPUhi texternalsym:$in, 0),
-                       (SPUlo texternalsym:$in, 0)),
-          (IOHLlo (ILHUhi texternalsym:$in), texternalsym:$in)>;
-
-def : Pat<(SPUindirect (SPUhi tjumptable:$in, 0),
-                       (SPUlo tjumptable:$in, 0)),
-          (IOHLlo (ILHUhi tjumptable:$in), tjumptable:$in)>;
-
-def : Pat<(SPUindirect (SPUhi tconstpool:$in, 0),
-                       (SPUlo tconstpool:$in, 0)),
-          (IOHLlo (ILHUhi tconstpool:$in), tconstpool:$in)>;
-
-def : Pat<(add (SPUhi tglobaladdr:$in, 0), (SPUlo tglobaladdr:$in, 0)),
-          (IOHLlo (ILHUhi tglobaladdr:$in), tglobaladdr:$in)>;
-
-def : Pat<(add (SPUhi texternalsym:$in, 0), (SPUlo texternalsym:$in, 0)),
-          (IOHLlo (ILHUhi texternalsym:$in), texternalsym:$in)>;
-
-def : Pat<(add (SPUhi tjumptable:$in, 0), (SPUlo tjumptable:$in, 0)),
-          (IOHLlo (ILHUhi tjumptable:$in), tjumptable:$in)>;
-
-def : Pat<(add (SPUhi tconstpool:$in, 0), (SPUlo tconstpool:$in, 0)),
-          (IOHLlo (ILHUhi tconstpool:$in), tconstpool:$in)>;
-
-// Intrinsics:
-include "CellSDKIntrinsics.td"
-// Various math operator instruction sequences
-include "SPUMathInstr.td"
-// 64-bit "instructions"/support
-include "SPU64InstrInfo.td"
-// 128-bit "instructions"/support
-include "SPU128InstrInfo.td"
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.cpp
deleted file mode 100644
index 1c921ab..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- SPUMCAsmInfo.cpp - Cell SPU asm properties ------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the SPUMCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPUMCAsmInfo.h"
-using namespace llvm;
-
-SPULinuxMCAsmInfo::SPULinuxMCAsmInfo(const Target &T, const StringRef &TT) {
-  ZeroDirective = "\t.space\t";
-  SetDirective = "\t.set";
-  Data64bitsDirective = "\t.quad\t";
-  AlignmentIsInBytes = false;
-  LCOMMDirective = "\t.lcomm\t";
-      
-  PCSymbol = ".";
-  CommentString = "#";
-  GlobalPrefix = "";
-  PrivateGlobalPrefix = ".L";
-
-  // Has leb128, .loc and .file
-  HasLEB128 = true;
-  HasDotLocAndDotFile = true;
-
-  SupportsDebugInformation = true;
-  NeedsSet = true;
-
-  // Exception handling is not supported on CellSPU (think about it: you only
-  // have 256K for code+data. Would you support exception handling?)
-  ExceptionsType = ExceptionHandling::None;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.h
deleted file mode 100644
index 8d75ea8..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.h
+++ /dev/null
@@ -1,28 +0,0 @@
-//===-- SPUMCAsmInfo.h - Cell SPU asm properties ---------------*- C++ -*--===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the SPUMCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPUTARGETASMINFO_H
-#define SPUTARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-  
-  struct SPULinuxMCAsmInfo : public MCAsmInfo {
-    explicit SPULinuxMCAsmInfo(const Target &T, const StringRef &TT);
-  };
-} // namespace llvm
-
-#endif /* SPUTARGETASMINFO_H */
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMachineFunction.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUMachineFunction.h
deleted file mode 100644
index 6a66967..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMachineFunction.h
+++ /dev/null
@@ -1,43 +0,0 @@
-//===-- SPUMachineFunctionInfo.h - Private data used for CellSPU --*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the IBM Cell SPU specific subclass of MachineFunctionInfo.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPU_MACHINE_FUNCTION_INFO_H
-#define SPU_MACHINE_FUNCTION_INFO_H
-
-#include "llvm/CodeGen/MachineFunction.h"
-
-namespace llvm {
-
-/// SPUFunctionInfo - Cell SPU target-specific information for each
-/// MachineFunction
-class SPUFunctionInfo : public MachineFunctionInfo {
-private:
-  /// UsesLR - Indicates whether LR is used in the current function.
-  ///
-  bool UsesLR;
-
-public:
-  SPUFunctionInfo(MachineFunction& MF) 
-  : UsesLR(false)
-  {}
-
-  void setUsesLR(bool U) { UsesLR = U; }
-  bool usesLR()          { return UsesLR; }
-
-};
-
-} // end of namespace llvm
-
-
-#endif
-
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMathInstr.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPUMathInstr.td
deleted file mode 100644
index 80ebde3..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUMathInstr.td
+++ /dev/null
@@ -1,97 +0,0 @@
-//======--- SPUMathInst.td - Cell SPU math operations -*- tablegen -*---======//
-//
-//                     Cell SPU math operations
-//
-// This target description file contains instruction sequences for various
-// math operations, such as vector multiplies, i32 multiply, etc., for the
-// SPU's i32, i16 i8 and corresponding vector types.
-//
-// Any resemblance to libsimdmath or the Cell SDK simdmath library is
-// purely and completely coincidental.
-//===----------------------------------------------------------------------===//
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// v16i8 multiply instruction sequence:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-def : Pat<(mul (v16i8 VECREG:$rA), (v16i8 VECREG:$rB)),
-          (ORv4i32
-           (ANDv4i32
-            (SELBv4i32 (MPYv8i16 VECREG:$rA, VECREG:$rB),
-                       (SHLHIv8i16 (MPYv8i16 (ROTMAHIv8i16 VECREG:$rA, 8),
-                                             (ROTMAHIv8i16 VECREG:$rB, 8)), 8),
-                       (FSMBIv8i16 0x2222)),
-            (ILAv4i32 0x0000ffff)),
-           (SHLIv4i32
-            (SELBv4i32 (MPYv8i16 (ROTMAIv4i32_i32 VECREG:$rA, 16),
-                                 (ROTMAIv4i32_i32 VECREG:$rB, 16)),
-                       (SHLHIv8i16 (MPYv8i16 (ROTMAIv4i32_i32 VECREG:$rA, 8),
-                                             (ROTMAIv4i32_i32 VECREG:$rB, 8)), 8),
-                       (FSMBIv8i16 0x2222)), 16))>;
-                        
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// v8i16 multiply instruction sequence:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-def : Pat<(mul (v8i16 VECREG:$rA), (v8i16 VECREG:$rB)),
-          (SELBv8i16 (MPYv8i16 VECREG:$rA, VECREG:$rB),
-                     (SHLIv4i32 (MPYHHv8i16 VECREG:$rA, VECREG:$rB), 16),
-                     (FSMBIv8i16 0xcccc))>;
-                 
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// v4i32, i32 multiply instruction sequence:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-def MPYv4i32:
-  Pat<(mul (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)),
-      (Av4i32
-        (Av4i32 (MPYHv4i32 VECREG:$rA, VECREG:$rB),
-                (MPYHv4i32 VECREG:$rB, VECREG:$rA)),
-        (MPYUv4i32 VECREG:$rA, VECREG:$rB))>;
-
-def MPYi32:
-  Pat<(mul R32C:$rA, R32C:$rB),
-      (Ar32
-        (Ar32 (MPYHr32 R32C:$rA, R32C:$rB),
-              (MPYHr32 R32C:$rB, R32C:$rA)),
-        (MPYUr32 R32C:$rA, R32C:$rB))>;
-
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-// f32, v4f32 divide instruction sequence:
-//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-// Reciprocal estimate and interpolation
-def Interpf32: CodeFrag<(FIf32 R32FP:$rB, (FRESTf32 R32FP:$rB))>;
-// Division estimate
-def DivEstf32: CodeFrag<(FMf32 R32FP:$rA, Interpf32.Fragment)>;
-// Newton-Raphson iteration
-def NRaphf32: CodeFrag<(FMAf32 (FNMSf32 DivEstf32.Fragment, R32FP:$rB, R32FP:$rA),
-                               Interpf32.Fragment,
-                               DivEstf32.Fragment)>;
-// Epsilon addition
-def Epsilonf32: CodeFrag<(AIf32 NRaphf32.Fragment, 1)>;
-
-def : Pat<(fdiv R32FP:$rA, R32FP:$rB),
-          (SELBf32_cond NRaphf32.Fragment,
-                        Epsilonf32.Fragment,
-                        (CGTIf32 (FNMSf32 R32FP:$rB, Epsilonf32.Fragment, R32FP:$rA), -1))>;
-
-// Reciprocal estimate and interpolation
-def Interpv4f32: CodeFrag<(FIv4f32 (v4f32 VECREG:$rB), (FRESTv4f32 (v4f32 VECREG:$rB)))>;
-// Division estimate
-def DivEstv4f32: CodeFrag<(FMv4f32 (v4f32 VECREG:$rA), Interpv4f32.Fragment)>;
-// Newton-Raphson iteration
-def NRaphv4f32: CodeFrag<(FMAv4f32 (FNMSv4f32 DivEstv4f32.Fragment,
-                                              (v4f32 VECREG:$rB),
-                                              (v4f32 VECREG:$rA)),
-                                   Interpv4f32.Fragment,
-                                   DivEstv4f32.Fragment)>;
-// Epsilon addition
-def Epsilonv4f32: CodeFrag<(AIv4f32 NRaphv4f32.Fragment, 1)>;
-
-def : Pat<(fdiv (v4f32 VECREG:$rA), (v4f32 VECREG:$rB)),
-          (SELBv4f32_cond NRaphv4f32.Fragment,
-                        Epsilonv4f32.Fragment,
-                        (CGTIv4f32 (FNMSv4f32 (v4f32 VECREG:$rB),
-                                              Epsilonv4f32.Fragment,
-                                              (v4f32 VECREG:$rA)), -1))>;
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUNodes.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPUNodes.td
deleted file mode 100644
index c722e4b..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUNodes.td
+++ /dev/null
@@ -1,156 +0,0 @@
-//===- SPUNodes.td - Specialized SelectionDAG nodes used for CellSPU ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Type profiles and SelectionDAG nodes used by CellSPU
-//
-//===----------------------------------------------------------------------===//
-
-// Type profile for a call sequence
-def SDT_SPUCallSeq : SDTypeProfile<0, 1, [ SDTCisVT<0, i32> ]>;
-
-// SPU_GenControl: Type profile for generating control words for insertions
-def SPU_GenControl : SDTypeProfile<1, 1, []>;
-def SPUshufmask    : SDNode<"SPUISD::SHUFFLE_MASK", SPU_GenControl, []>;
-
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_SPUCallSeq,
-                           [SDNPHasChain, SDNPOutFlag]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_SPUCallSeq,
-                           [SDNPHasChain, SDNPOutFlag]>;
-//===----------------------------------------------------------------------===//
-// Operand constraints:
-//===----------------------------------------------------------------------===//
-
-def SDT_SPUCall   : SDTypeProfile<0, -1, [SDTCisInt<0>]>;
-def SPUcall       : SDNode<"SPUISD::CALL", SDT_SPUCall,
-                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-// Operand type constraints for vector shuffle/permute operations
-def SDT_SPUshuffle   : SDTypeProfile<1, 3, [
-  SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>
-]>;
-
-// Vector binary operator type constraints (needs a further constraint to
-// ensure that operand 0 is a vector...):
-
-def SPUVecBinop: SDTypeProfile<1, 2, [
-  SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>
-]>;
-
-// Trinary operators, e.g., addx, carry generate
-def SPUIntTrinaryOp : SDTypeProfile<1, 3, [
-  SDTCisSameAs<0, 1>, SDTCisSameAs<0, 2>, SDTCisSameAs<0, 3>, SDTCisInt<0>
-]>;
-
-// SELECT_MASK type constraints: There are several variations for the various
-// vector types (this avoids having to bit_convert all over the place.)
-def SPUselmask_type: SDTypeProfile<1, 1, [
-  SDTCisInt<1>
-]>;
-
-// SELB type constraints:
-def SPUselb_type: SDTypeProfile<1, 3, [
-  SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>, SDTCisSameAs<0, 3> ]>;
-
-// SPU Vector shift pseudo-instruction type constraints
-def SPUvecshift_type: SDTypeProfile<1, 2, [
-  SDTCisSameAs<0, 1>, SDTCisInt<2>]>;
-
-// "marker" type for i64 operators that need a shuffle mask
-// (i.e., uses cg or bg or another instruction that needs to
-// use shufb to get things in the right place.)
-// Op0: The result
-// Op1, 2: LHS, RHS
-// Op3: Carry-generate shuffle mask
-
-def SPUmarker_type : SDTypeProfile<1, 3, [
-  SDTCisInt<0>, SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2> ]>;
-
-//===----------------------------------------------------------------------===//
-// Synthetic/pseudo-instructions
-//===----------------------------------------------------------------------===//
-
-// SPU CNTB:
-def SPUcntb : SDNode<"SPUISD::CNTB", SDTIntUnaryOp>;
-
-// SPU vector shuffle node, matched by the SPUISD::SHUFB enum (see
-// SPUISelLowering.h):
-def SPUshuffle: SDNode<"SPUISD::SHUFB", SDT_SPUshuffle, []>;
-
-// Shift left quadword by bits and bytes
-def SPUshlquad_l_bits: SDNode<"SPUISD::SHLQUAD_L_BITS", SPUvecshift_type, []>;
-def SPUshlquad_l_bytes: SDNode<"SPUISD::SHLQUAD_L_BYTES", SPUvecshift_type, []>;
-
-// Vector shifts (ISD::SHL,SRL,SRA are for _integers_ only):
-def SPUvec_shl: SDNode<"ISD::SHL", SPUvecshift_type, []>;
-def SPUvec_srl: SDNode<"ISD::SRL", SPUvecshift_type, []>;
-def SPUvec_sra: SDNode<"ISD::SRA", SPUvecshift_type, []>;
-
-def SPUvec_rotl: SDNode<"SPUISD::VEC_ROTL", SPUvecshift_type, []>;
-def SPUvec_rotr: SDNode<"SPUISD::VEC_ROTR", SPUvecshift_type, []>;
-
-// Vector rotate left, bits shifted out of the left are rotated in on the right
-def SPUrotbytes_left: SDNode<"SPUISD::ROTBYTES_LEFT",
-                             SPUvecshift_type, []>;
-
-// Vector rotate left by bytes, but the count is given in bits and the SPU
-// internally converts it to bytes (saves an instruction to mask off lower
-// three bits)
-def SPUrotbytes_left_bits : SDNode<"SPUISD::ROTBYTES_LEFT_BITS",
-                                   SPUvecshift_type>;
-
-// SPU form select mask for bytes, immediate
-def SPUselmask: SDNode<"SPUISD::SELECT_MASK", SPUselmask_type, []>;
-
-// SPU select bits instruction
-def SPUselb: SDNode<"SPUISD::SELB", SPUselb_type, []>;
-
-def SDTprefslot2vec: SDTypeProfile<1, 1, []>;
-def SPUprefslot2vec: SDNode<"SPUISD::PREFSLOT2VEC", SDTprefslot2vec, []>;
-
-def SPU_vec_demote   : SDTypeProfile<1, 1, []>;
-def SPUvec2prefslot: SDNode<"SPUISD::VEC2PREFSLOT", SPU_vec_demote, []>;
-
-// Address high and low components, used for [r+r] type addressing
-def SPUhi : SDNode<"SPUISD::Hi", SDTIntBinOp, []>;
-def SPUlo : SDNode<"SPUISD::Lo", SDTIntBinOp, []>;
-
-// PC-relative address
-def SPUpcrel : SDNode<"SPUISD::PCRelAddr", SDTIntBinOp, []>;
-
-// A-Form local store addresses
-def SPUaform : SDNode<"SPUISD::AFormAddr", SDTIntBinOp, []>;
-
-// Indirect [D-Form "imm($reg)" and X-Form "$reg($reg)"] addresses
-def SPUindirect : SDNode<"SPUISD::IndirectAddr", SDTIntBinOp, []>;
-
-// i64 markers: supplies extra operands used to generate the i64 operator
-// instruction sequences
-def SPUadd64 : SDNode<"SPUISD::ADD64_MARKER", SPUmarker_type, []>;
-def SPUsub64 : SDNode<"SPUISD::SUB64_MARKER", SPUmarker_type, []>;
-def SPUmul64 : SDNode<"SPUISD::MUL64_MARKER", SPUmarker_type, []>;
-
-//===----------------------------------------------------------------------===//
-// Constraints: (taken from PPCInstrInfo.td)
-//===----------------------------------------------------------------------===//
-
-class RegConstraint<string C> {
-  string Constraints = C;
-}
-
-class NoEncode<string E> {
-  string DisableEncoding = E;
-}
-
-//===----------------------------------------------------------------------===//
-// Return (flag isn't quite what it means: the operations are flagged so that
-// instruction scheduling doesn't disassociate them.)
-//===----------------------------------------------------------------------===//
-
-def retflag     : SDNode<"SPUISD::RET_FLAG", SDTNone,
-                         [SDNPHasChain, SDNPOptInFlag]>;
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUOperands.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPUOperands.td
deleted file mode 100644
index 802628f..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUOperands.td
+++ /dev/null
@@ -1,655 +0,0 @@
-//===- SPUOperands.td - Cell SPU Instruction Operands ------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-// Cell SPU Instruction Operands:
-//===----------------------------------------------------------------------===//
-
-def LO16 : SDNodeXForm<imm, [{
-  unsigned val = N->getZExtValue();
-  // Transformation function: get the low 16 bits.
-  return getI32Imm(val & 0xffff);
-}]>;
-
-def LO16_vec : SDNodeXForm<scalar_to_vector, [{
-  SDValue OpVal(0, 0);
-
-  // Transformation function: get the low 16 bit immediate from a build_vector
-  // node.
-  assert(N->getOpcode() == ISD::BUILD_VECTOR
-         && "LO16_vec got something other than a BUILD_VECTOR");
-
-  // Get first constant operand...
-  for (unsigned i = 0, e = N->getNumOperands();
-       OpVal.getNode() == 0 && i != e; ++i) {
-    if (N->getOperand(i).getOpcode() == ISD::UNDEF) continue;
-    if (OpVal.getNode() == 0)
-      OpVal = N->getOperand(i);
-  }
-  
-  assert(OpVal.getNode() != 0 && "LO16_vec did not locate a <defined> node");
-  ConstantSDNode *CN = cast<ConstantSDNode>(OpVal);
-  return getI32Imm((unsigned)CN->getZExtValue() & 0xffff);
-}]>;
-
-// Transform an immediate, returning the high 16 bits shifted down:
-def HI16 : SDNodeXForm<imm, [{
-  return getI32Imm((unsigned)N->getZExtValue() >> 16);
-}]>;
-
-// Transformation function: shift the high 16 bit immediate from a build_vector
-// node into the low 16 bits, and return a 16-bit constant.
-def HI16_vec : SDNodeXForm<scalar_to_vector, [{
-  SDValue OpVal(0, 0);
-
-  assert(N->getOpcode() == ISD::BUILD_VECTOR
-         && "HI16_vec got something other than a BUILD_VECTOR");
-  
-  // Get first constant operand...
-  for (unsigned i = 0, e = N->getNumOperands();
-       OpVal.getNode() == 0 && i != e; ++i) {
-    if (N->getOperand(i).getOpcode() == ISD::UNDEF) continue;
-    if (OpVal.getNode() == 0)
-      OpVal = N->getOperand(i);
-  }
-  
-  assert(OpVal.getNode() != 0 && "HI16_vec did not locate a <defined> node");
-  ConstantSDNode *CN = cast<ConstantSDNode>(OpVal);
-  return getI32Imm((unsigned)CN->getZExtValue() >> 16);
-}]>;
-
-// simm7 predicate - True if the immediate fits in an 7-bit signed
-// field.
-def simm7: PatLeaf<(imm), [{
-  int sextVal = int(N->getSExtValue());
-  return (sextVal >= -64 && sextVal <= 63);
-}]>;
-
-// uimm7 predicate - True if the immediate fits in an 7-bit unsigned
-// field.
-def uimm7: PatLeaf<(imm), [{
-  return (N->getZExtValue() <= 0x7f);
-}]>;
-
-// immSExt8 predicate - True if the immediate fits in an 8-bit sign extended
-// field.
-def immSExt8  : PatLeaf<(imm), [{
-  int Value = int(N->getSExtValue());
-  return (Value >= -(1 << 8) && Value <= (1 << 8) - 1);
-}]>;
-
-// immU8: immediate, unsigned 8-bit quantity
-def immU8 : PatLeaf<(imm), [{
-  return (N->getZExtValue() <= 0xff);
-}]>;
-
-// i64ImmSExt10 predicate - True if the i64 immediate fits in a 10-bit sign
-// extended field.  Used by RI10Form instructions like 'ldq'.
-def i64ImmSExt10  : PatLeaf<(imm), [{
-  return isI64IntS10Immediate(N);
-}]>;
-
-// i32ImmSExt10 predicate - True if the i32 immediate fits in a 10-bit sign
-// extended field.  Used by RI10Form instructions like 'ldq'.
-def i32ImmSExt10  : PatLeaf<(imm), [{
-  return isI32IntS10Immediate(N);
-}]>;
-
-// i32ImmUns10 predicate - True if the i32 immediate fits in a 10-bit unsigned
-// field.  Used by RI10Form instructions like 'ldq'.
-def i32ImmUns10  : PatLeaf<(imm), [{
-  return isI32IntU10Immediate(N);
-}]>;
-
-// i16ImmSExt10 predicate - True if the i16 immediate fits in a 10-bit sign
-// extended field.  Used by RI10Form instructions like 'ldq'.
-def i16ImmSExt10  : PatLeaf<(imm), [{
-  return isI16IntS10Immediate(N);
-}]>;
-
-// i16ImmUns10 predicate - True if the i16 immediate fits into a 10-bit unsigned
-// value. Used by RI10Form instructions.
-def i16ImmUns10 : PatLeaf<(imm), [{
-  return isI16IntU10Immediate(N);
-}]>;
-
-def immSExt16  : PatLeaf<(imm), [{
-  // immSExt16 predicate - True if the immediate fits in a 16-bit sign extended
-  // field.
-  short Ignored;
-  return isIntS16Immediate(N, Ignored);
-}]>;
-
-def immZExt16  : PatLeaf<(imm), [{
-  // immZExt16 predicate - True if the immediate fits in a 16-bit zero extended
-  // field.
-  return (uint64_t)N->getZExtValue() == (unsigned short)N->getZExtValue();
-}], LO16>;
-
-def immU16 : PatLeaf<(imm), [{
-  // immU16 predicate- True if the immediate fits into a 16-bit unsigned field.
-  return (uint64_t)N->getZExtValue() == (N->getZExtValue() & 0xffff);
-}]>;
-
-def imm18  : PatLeaf<(imm), [{
-  // imm18 predicate: True if the immediate fits into an 18-bit unsigned field.
-  int Value = (int) N->getZExtValue();
-  return ((Value & ((1 << 19) - 1)) == Value);
-}]>;
-
-def lo16 : PatLeaf<(imm), [{
-  // lo16 predicate - returns true if the immediate has all zeros in the
-  // low order bits and is a 32-bit constant:
-  if (N->getValueType(0) == MVT::i32) {
-    uint32_t val = N->getZExtValue();
-    return ((val & 0x0000ffff) == val);
-  }
-
-  return false;
-}], LO16>;
-
-def hi16 : PatLeaf<(imm), [{
-  // hi16 predicate - returns true if the immediate has all zeros in the
-  // low order bits and is a 32-bit constant:
-  if (N->getValueType(0) == MVT::i32) {
-    uint32_t val = uint32_t(N->getZExtValue());
-    return ((val & 0xffff0000) == val);
-  } else if (N->getValueType(0) == MVT::i64) {
-    uint64_t val = N->getZExtValue();
-    return ((val & 0xffff0000ULL) == val);
-  }
-
-  return false;
-}], HI16>;
-
-def bitshift : PatLeaf<(imm), [{
-  // bitshift predicate - returns true if 0 < imm <= 7 for SHLQBII
-  // (shift left quadword by bits immediate)
-  int64_t Val = N->getZExtValue();
-  return (Val > 0 && Val <= 7);
-}]>;
-
-//===----------------------------------------------------------------------===//
-// Floating point operands:
-//===----------------------------------------------------------------------===//
-
-// Transform a float, returning the high 16 bits shifted down, as if
-// the float was really an unsigned integer:
-def HI16_f32 : SDNodeXForm<fpimm, [{
-  float fval = N->getValueAPF().convertToFloat();
-  return getI32Imm(FloatToBits(fval) >> 16);
-}]>;
-
-// Transformation function on floats: get the low 16 bits as if the float was
-// an unsigned integer.
-def LO16_f32 : SDNodeXForm<fpimm, [{
-  float fval = N->getValueAPF().convertToFloat();
-  return getI32Imm(FloatToBits(fval) & 0xffff);
-}]>;
-
-def FPimm_sext16 : SDNodeXForm<fpimm, [{
-  float fval = N->getValueAPF().convertToFloat();
-  return getI32Imm((int) ((FloatToBits(fval) << 16) >> 16));
-}]>;
-
-def FPimm_u18 : SDNodeXForm<fpimm, [{
-  float fval = N->getValueAPF().convertToFloat();
-  return getI32Imm(FloatToBits(fval) & ((1 << 19) - 1));
-}]>;
-
-def fpimmSExt16 : PatLeaf<(fpimm), [{
-  short Ignored;
-  return isFPS16Immediate(N, Ignored);  
-}], FPimm_sext16>;
-
-// Does the SFP constant only have upp 16 bits set?
-def hi16_f32 : PatLeaf<(fpimm), [{
-  if (N->getValueType(0) == MVT::f32) {
-    uint32_t val = FloatToBits(N->getValueAPF().convertToFloat());
-    return ((val & 0xffff0000) == val);
-  }
-
-  return false;
-}], HI16_f32>;
-
-// Does the SFP constant fit into 18 bits?
-def fpimm18  : PatLeaf<(fpimm), [{
-  if (N->getValueType(0) == MVT::f32) {
-    uint32_t Value = FloatToBits(N->getValueAPF().convertToFloat());
-    return ((Value & ((1 << 19) - 1)) == Value);
-  }
-
-  return false;
-}], FPimm_u18>;
-
-//===----------------------------------------------------------------------===//
-// 64-bit operands (TODO):
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// build_vector operands:
-//===----------------------------------------------------------------------===//
-
-// v16i8SExt8Imm_xform function: convert build_vector to 8-bit sign extended
-// immediate constant load for v16i8 vectors. N.B.: The incoming constant has
-// to be a 16-bit quantity with the upper and lower bytes equal (e.g., 0x2a2a).
-def v16i8SExt8Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i8imm(N, *CurDAG, MVT::i8);
-}]>;
-
-// v16i8SExt8Imm: Predicate test for 8-bit sign extended immediate constant
-// load, works in conjunction with its transform function. N.B.: This relies the
-// incoming constant being a 16-bit quantity, where the upper and lower bytes
-// are EXACTLY the same (e.g., 0x2a2a)
-def v16i8SExt8Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i8imm(N, *CurDAG, MVT::i8).getNode() != 0;
-}], v16i8SExt8Imm_xform>;
-
-// v16i8U8Imm_xform function: convert build_vector to unsigned 8-bit
-// immediate constant load for v16i8 vectors. N.B.: The incoming constant has
-// to be a 16-bit quantity with the upper and lower bytes equal (e.g., 0x2a2a).
-def v16i8U8Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i8imm(N, *CurDAG, MVT::i8);
-}]>;
-
-// v16i8U8Imm: Predicate test for unsigned 8-bit immediate constant
-// load, works in conjunction with its transform function. N.B.: This relies the
-// incoming constant being a 16-bit quantity, where the upper and lower bytes
-// are EXACTLY the same (e.g., 0x2a2a)
-def v16i8U8Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i8imm(N, *CurDAG, MVT::i8).getNode() != 0;
-}], v16i8U8Imm_xform>;
-
-// v8i16SExt8Imm_xform function: convert build_vector to 8-bit sign extended
-// immediate constant load for v8i16 vectors.
-def v8i16SExt8Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i8imm(N, *CurDAG, MVT::i16);
-}]>;
-
-// v8i16SExt8Imm: Predicate test for 8-bit sign extended immediate constant
-// load, works in conjunction with its transform function.
-def v8i16SExt8Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i8imm(N, *CurDAG, MVT::i16).getNode() != 0;
-}], v8i16SExt8Imm_xform>;
-
-// v8i16SExt10Imm_xform function: convert build_vector to 16-bit sign extended
-// immediate constant load for v8i16 vectors.
-def v8i16SExt10Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i16);
-}]>;
-
-// v8i16SExt10Imm: Predicate test for 16-bit sign extended immediate constant
-// load, works in conjunction with its transform function.
-def v8i16SExt10Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i16).getNode() != 0;
-}], v8i16SExt10Imm_xform>;
-
-// v8i16Uns10Imm_xform function: convert build_vector to 16-bit unsigned
-// immediate constant load for v8i16 vectors.
-def v8i16Uns10Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i16);
-}]>;
-
-// v8i16Uns10Imm: Predicate test for 16-bit unsigned immediate constant
-// load, works in conjunction with its transform function.
-def v8i16Uns10Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i16).getNode() != 0;
-}], v8i16Uns10Imm_xform>;
-
-// v8i16SExt16Imm_xform function: convert build_vector to 16-bit sign extended
-// immediate constant load for v8i16 vectors.
-def v8i16Uns16Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i16imm(N, *CurDAG, MVT::i16);
-}]>;
-
-// v8i16SExt16Imm: Predicate test for 16-bit sign extended immediate constant
-// load, works in conjunction with its transform function.
-def v8i16SExt16Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i16imm(N, *CurDAG, MVT::i16).getNode() != 0;
-}], v8i16Uns16Imm_xform>;
-
-// v4i32SExt10Imm_xform function: convert build_vector to 10-bit sign extended
-// immediate constant load for v4i32 vectors.
-def v4i32SExt10Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i32);
-}]>;
-
-// v4i32SExt10Imm: Predicate test for 10-bit sign extended immediate constant
-// load, works in conjunction with its transform function.
-def v4i32SExt10Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i32).getNode() != 0;
-}], v4i32SExt10Imm_xform>;
-
-// v4i32Uns10Imm_xform function: convert build_vector to 10-bit unsigned
-// immediate constant load for v4i32 vectors.
-def v4i32Uns10Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i32);
-}]>;
-
-// v4i32Uns10Imm: Predicate test for 10-bit unsigned immediate constant
-// load, works in conjunction with its transform function.
-def v4i32Uns10Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i32).getNode() != 0;
-}], v4i32Uns10Imm_xform>;
-
-// v4i32SExt16Imm_xform function: convert build_vector to 16-bit sign extended
-// immediate constant load for v4i32 vectors.
-def v4i32SExt16Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i16imm(N, *CurDAG, MVT::i32);
-}]>;
-
-// v4i32SExt16Imm: Predicate test for 16-bit sign extended immediate constant
-// load, works in conjunction with its transform function.
-def v4i32SExt16Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i16imm(N, *CurDAG, MVT::i32).getNode() != 0;
-}], v4i32SExt16Imm_xform>;
-
-// v4i32Uns18Imm_xform function: convert build_vector to 18-bit unsigned
-// immediate constant load for v4i32 vectors.
-def v4i32Uns18Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_u18imm(N, *CurDAG, MVT::i32);
-}]>;
-
-// v4i32Uns18Imm: Predicate test for 18-bit unsigned immediate constant load,
-// works in conjunction with its transform function.
-def v4i32Uns18Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_u18imm(N, *CurDAG, MVT::i32).getNode() != 0;
-}], v4i32Uns18Imm_xform>;
-
-// ILHUvec_get_imm xform function: convert build_vector to ILHUvec imm constant
-// load.
-def ILHUvec_get_imm: SDNodeXForm<build_vector, [{
-  return SPU::get_ILHUvec_imm(N, *CurDAG, MVT::i32);
-}]>;
-
-/// immILHUvec: Predicate test for a ILHU constant vector.
-def immILHUvec: PatLeaf<(build_vector), [{
-  return SPU::get_ILHUvec_imm(N, *CurDAG, MVT::i32).getNode() != 0;
-}], ILHUvec_get_imm>;
-
-// Catch-all for any other i32 vector constants
-def v4i32_get_imm: SDNodeXForm<build_vector, [{
-  return SPU::get_v4i32_imm(N, *CurDAG);
-}]>;
-
-def v4i32Imm: PatLeaf<(build_vector), [{
-  return SPU::get_v4i32_imm(N, *CurDAG).getNode() != 0;
-}], v4i32_get_imm>;
-
-// v2i64SExt10Imm_xform function: convert build_vector to 10-bit sign extended
-// immediate constant load for v2i64 vectors.
-def v2i64SExt10Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i64);
-}]>;
-
-// v2i64SExt10Imm: Predicate test for 10-bit sign extended immediate constant
-// load, works in conjunction with its transform function.
-def v2i64SExt10Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i10imm(N, *CurDAG, MVT::i64).getNode() != 0;
-}], v2i64SExt10Imm_xform>;
-
-// v2i64SExt16Imm_xform function: convert build_vector to 16-bit sign extended
-// immediate constant load for v2i64 vectors.
-def v2i64SExt16Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_i16imm(N, *CurDAG, MVT::i64);
-}]>;
-
-// v2i64SExt16Imm: Predicate test for 16-bit sign extended immediate constant
-// load, works in conjunction with its transform function.
-def v2i64SExt16Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_i16imm(N, *CurDAG, MVT::i64).getNode() != 0;
-}], v2i64SExt16Imm_xform>;
-
-// v2i64Uns18Imm_xform function: convert build_vector to 18-bit unsigned
-// immediate constant load for v2i64 vectors.
-def v2i64Uns18Imm_xform: SDNodeXForm<build_vector, [{
-  return SPU::get_vec_u18imm(N, *CurDAG, MVT::i64);
-}]>;
-
-// v2i64Uns18Imm: Predicate test for 18-bit unsigned immediate constant load,
-// works in conjunction with its transform function.
-def v2i64Uns18Imm: PatLeaf<(build_vector), [{
-  return SPU::get_vec_u18imm(N, *CurDAG, MVT::i64).getNode() != 0;
-}], v2i64Uns18Imm_xform>;
-
-/// immILHUvec: Predicate test for a ILHU constant vector.
-def immILHUvec_i64: PatLeaf<(build_vector), [{
-  return SPU::get_ILHUvec_imm(N, *CurDAG, MVT::i64).getNode() != 0;
-}], ILHUvec_get_imm>;
-
-// Catch-all for any other i32 vector constants
-def v2i64_get_imm: SDNodeXForm<build_vector, [{
-  return SPU::get_v2i64_imm(N, *CurDAG);
-}]>;
-
-def v2i64Imm: PatLeaf<(build_vector), [{
-  return SPU::get_v2i64_imm(N, *CurDAG).getNode() != 0;
-}], v2i64_get_imm>;
-
-//===----------------------------------------------------------------------===//
-// Operand Definitions.
-
-def s7imm: Operand<i8> {
-  let PrintMethod = "printS7ImmOperand";
-}
-
-def s7imm_i8: Operand<i8> {
-  let PrintMethod = "printS7ImmOperand";
-}
-
-def u7imm: Operand<i16> {
-  let PrintMethod = "printU7ImmOperand";
-}
-
-def u7imm_i8: Operand<i8> {
-  let PrintMethod = "printU7ImmOperand";
-}
-
-def u7imm_i32: Operand<i32> {
-  let PrintMethod = "printU7ImmOperand";
-}
-
-// Halfword, signed 10-bit constant
-def s10imm : Operand<i16> {
-  let PrintMethod = "printS10ImmOperand";
-}
-
-def s10imm_i8: Operand<i8> {
-  let PrintMethod = "printS10ImmOperand";
-}
-
-def s10imm_i32: Operand<i32> {
-  let PrintMethod = "printS10ImmOperand";
-}
-
-def s10imm_i64: Operand<i64> {
-  let PrintMethod = "printS10ImmOperand";
-}
-
-// Unsigned 10-bit integers:
-def u10imm: Operand<i16> {
-  let PrintMethod = "printU10ImmOperand";
-}
-
-def u10imm_i8: Operand<i8> {
-  let PrintMethod = "printU10ImmOperand";
-}
-
-def u10imm_i32: Operand<i32> {
-  let PrintMethod = "printU10ImmOperand";
-}
-
-def s16imm  : Operand<i16> {
-  let PrintMethod = "printS16ImmOperand";
-}
-
-def s16imm_i8: Operand<i8> {
-  let PrintMethod = "printS16ImmOperand";
-}
-
-def s16imm_i32: Operand<i32> {
-  let PrintMethod = "printS16ImmOperand";
-}
-
-def s16imm_i64: Operand<i64> {
-  let PrintMethod = "printS16ImmOperand";
-}
-
-def s16imm_f32: Operand<f32> {
-  let PrintMethod = "printS16ImmOperand";
-}
-
-def s16imm_f64: Operand<f64> {
-  let PrintMethod = "printS16ImmOperand";
-}
-
-def u16imm_i64 : Operand<i64> {
-  let PrintMethod = "printU16ImmOperand";
-}
-
-def u16imm_i32 : Operand<i32> {
-  let PrintMethod = "printU16ImmOperand";
-}
-
-def u16imm : Operand<i16> {
-  let PrintMethod = "printU16ImmOperand";
-}
-
-def f16imm : Operand<f32> {
-  let PrintMethod = "printU16ImmOperand";
-}
-
-def s18imm  : Operand<i32> {
-  let PrintMethod = "printS18ImmOperand";
-}
-
-def u18imm : Operand<i32> {
-  let PrintMethod = "printU18ImmOperand";
-}
-
-def u18imm_i64 : Operand<i64> {
-  let PrintMethod = "printU18ImmOperand";
-}
-
-def f18imm : Operand<f32> {
-  let PrintMethod = "printU18ImmOperand";
-}
-
-def f18imm_f64 : Operand<f64> {
-  let PrintMethod = "printU18ImmOperand";
-}
-
-// Negated 7-bit halfword rotate immediate operands
-def rothNeg7imm : Operand<i32> {
-  let PrintMethod = "printROTHNeg7Imm";
-}
-
-def rothNeg7imm_i16 : Operand<i16> {
-  let PrintMethod = "printROTHNeg7Imm";
-}
-
-// Negated 7-bit word rotate immediate operands
-def rotNeg7imm : Operand<i32> {
-  let PrintMethod = "printROTNeg7Imm";
-}
-
-def rotNeg7imm_i16 : Operand<i16> {
-  let PrintMethod = "printROTNeg7Imm";
-}
-
-def rotNeg7imm_i8 : Operand<i8> {
-  let PrintMethod = "printROTNeg7Imm";
-}
-
-def target : Operand<OtherVT> {
-  let PrintMethod = "printBranchOperand";
-}
-
-// Absolute address call target
-def calltarget : Operand<iPTR> {
-  let PrintMethod = "printCallOperand";
-  let MIOperandInfo = (ops u18imm:$calldest);
-}
-
-// PC relative call target
-def relcalltarget : Operand<iPTR> {
-  let PrintMethod = "printPCRelativeOperand";
-  let MIOperandInfo = (ops s16imm:$calldest);
-}
-
-// Branch targets:
-def brtarget : Operand<OtherVT> {
-  let PrintMethod = "printPCRelativeOperand";
-}
-
-// Hint for branch target
-def hbrtarget : Operand<OtherVT> {
-  let PrintMethod = "printHBROperand";
-}
-
-// Indirect call target
-def indcalltarget : Operand<iPTR> {
-  let PrintMethod = "printCallOperand";
-  let MIOperandInfo = (ops ptr_rc:$calldest);
-}
-
-def symbolHi: Operand<i32> {
-  let PrintMethod = "printSymbolHi";
-}
-
-def symbolLo: Operand<i32> {
-  let PrintMethod = "printSymbolLo";
-}
-
-def symbolLSA: Operand<i32> {
-  let PrintMethod = "printSymbolLSA";
-}
-
-// Shuffle address memory operaand [s7imm(reg) d-format]
-def shufaddr : Operand<iPTR> {
-  let PrintMethod = "printShufAddr";
-  let MIOperandInfo = (ops s7imm:$imm, ptr_rc:$reg);
-}
-
-// memory s10imm(reg) operand
-def dformaddr : Operand<iPTR> {
-  let PrintMethod = "printDFormAddr";
-  let MIOperandInfo = (ops s10imm:$imm, ptr_rc:$reg);
-}
-
-// 256K local store address
-// N.B.: The tblgen code generator expects to have two operands, an offset
-// and a pointer. Of these, only the immediate is actually used.
-def addr256k : Operand<iPTR> {
-  let PrintMethod = "printAddr256K";
-  let MIOperandInfo = (ops s16imm:$imm, ptr_rc:$reg);
-}
-
-// memory s18imm(reg) operand
-def memri18 : Operand<iPTR> {
-  let PrintMethod = "printMemRegImmS18";
-  let MIOperandInfo = (ops s18imm:$imm, ptr_rc:$reg);
-}
-
-// memory register + register operand
-def memrr : Operand<iPTR> {
-  let PrintMethod = "printMemRegReg";
-  let MIOperandInfo = (ops ptr_rc:$reg_a, ptr_rc:$reg_b);
-}
-
-// Define SPU-specific addressing modes: These come in three basic
-// flavors:
-//
-// D-form   : [r+I10] (10-bit signed offset + reg)
-// X-form   : [r+r]   (reg+reg)
-// A-form   : abs     (256K LSA offset)
-// D-form(2): [r+I7]  (7-bit signed offset + reg)
-
-def dform_addr   : ComplexPattern<iPTR, 2, "SelectDFormAddr",     [], []>;
-def xform_addr   : ComplexPattern<iPTR, 2, "SelectXFormAddr",     [], []>;
-def aform_addr   : ComplexPattern<iPTR, 2, "SelectAFormAddr",     [], []>;
-def dform2_addr  : ComplexPattern<iPTR, 2, "SelectDForm2Addr",    [], []>;
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp
deleted file mode 100644
index d974b7a..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp
+++ /dev/null
@@ -1,619 +0,0 @@
-//===- SPURegisterInfo.cpp - Cell SPU Register Information ----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Cell implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "reginfo"
-#include "SPU.h"
-#include "SPURegisterInfo.h"
-#include "SPURegisterNames.h"
-#include "SPUInstrBuilder.h"
-#include "SPUSubtarget.h"
-#include "SPUMachineFunction.h"
-#include "SPUFrameInfo.h"
-#include "llvm/Constants.h"
-#include "llvm/Type.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/MathExtras.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/ADT/STLExtras.h"
-#include <cstdlib>
-
-using namespace llvm;
-
-/// getRegisterNumbering - Given the enum value for some register, e.g.
-/// PPC::F14, return the number that it corresponds to (e.g. 14).
-unsigned SPURegisterInfo::getRegisterNumbering(unsigned RegEnum) {
-  using namespace SPU;
-  switch (RegEnum) {
-  case SPU::R0: return 0;
-  case SPU::R1: return 1;
-  case SPU::R2: return 2;
-  case SPU::R3: return 3;
-  case SPU::R4: return 4;
-  case SPU::R5: return 5;
-  case SPU::R6: return 6;
-  case SPU::R7: return 7;
-  case SPU::R8: return 8;
-  case SPU::R9: return 9;
-  case SPU::R10: return 10;
-  case SPU::R11: return 11;
-  case SPU::R12: return 12;
-  case SPU::R13: return 13;
-  case SPU::R14: return 14;
-  case SPU::R15: return 15;
-  case SPU::R16: return 16;
-  case SPU::R17: return 17;
-  case SPU::R18: return 18;
-  case SPU::R19: return 19;
-  case SPU::R20: return 20;
-  case SPU::R21: return 21;
-  case SPU::R22: return 22;
-  case SPU::R23: return 23;
-  case SPU::R24: return 24;
-  case SPU::R25: return 25;
-  case SPU::R26: return 26;
-  case SPU::R27: return 27;
-  case SPU::R28: return 28;
-  case SPU::R29: return 29;
-  case SPU::R30: return 30;
-  case SPU::R31: return 31;
-  case SPU::R32: return 32;
-  case SPU::R33: return 33;
-  case SPU::R34: return 34;
-  case SPU::R35: return 35;
-  case SPU::R36: return 36;
-  case SPU::R37: return 37;
-  case SPU::R38: return 38;
-  case SPU::R39: return 39;
-  case SPU::R40: return 40;
-  case SPU::R41: return 41;
-  case SPU::R42: return 42;
-  case SPU::R43: return 43;
-  case SPU::R44: return 44;
-  case SPU::R45: return 45;
-  case SPU::R46: return 46;
-  case SPU::R47: return 47;
-  case SPU::R48: return 48;
-  case SPU::R49: return 49;
-  case SPU::R50: return 50;
-  case SPU::R51: return 51;
-  case SPU::R52: return 52;
-  case SPU::R53: return 53;
-  case SPU::R54: return 54;
-  case SPU::R55: return 55;
-  case SPU::R56: return 56;
-  case SPU::R57: return 57;
-  case SPU::R58: return 58;
-  case SPU::R59: return 59;
-  case SPU::R60: return 60;
-  case SPU::R61: return 61;
-  case SPU::R62: return 62;
-  case SPU::R63: return 63;
-  case SPU::R64: return 64;
-  case SPU::R65: return 65;
-  case SPU::R66: return 66;
-  case SPU::R67: return 67;
-  case SPU::R68: return 68;
-  case SPU::R69: return 69;
-  case SPU::R70: return 70;
-  case SPU::R71: return 71;
-  case SPU::R72: return 72;
-  case SPU::R73: return 73;
-  case SPU::R74: return 74;
-  case SPU::R75: return 75;
-  case SPU::R76: return 76;
-  case SPU::R77: return 77;
-  case SPU::R78: return 78;
-  case SPU::R79: return 79;
-  case SPU::R80: return 80;
-  case SPU::R81: return 81;
-  case SPU::R82: return 82;
-  case SPU::R83: return 83;
-  case SPU::R84: return 84;
-  case SPU::R85: return 85;
-  case SPU::R86: return 86;
-  case SPU::R87: return 87;
-  case SPU::R88: return 88;
-  case SPU::R89: return 89;
-  case SPU::R90: return 90;
-  case SPU::R91: return 91;
-  case SPU::R92: return 92;
-  case SPU::R93: return 93;
-  case SPU::R94: return 94;
-  case SPU::R95: return 95;
-  case SPU::R96: return 96;
-  case SPU::R97: return 97;
-  case SPU::R98: return 98;
-  case SPU::R99: return 99;
-  case SPU::R100: return 100;
-  case SPU::R101: return 101;
-  case SPU::R102: return 102;
-  case SPU::R103: return 103;
-  case SPU::R104: return 104;
-  case SPU::R105: return 105;
-  case SPU::R106: return 106;
-  case SPU::R107: return 107;
-  case SPU::R108: return 108;
-  case SPU::R109: return 109;
-  case SPU::R110: return 110;
-  case SPU::R111: return 111;
-  case SPU::R112: return 112;
-  case SPU::R113: return 113;
-  case SPU::R114: return 114;
-  case SPU::R115: return 115;
-  case SPU::R116: return 116;
-  case SPU::R117: return 117;
-  case SPU::R118: return 118;
-  case SPU::R119: return 119;
-  case SPU::R120: return 120;
-  case SPU::R121: return 121;
-  case SPU::R122: return 122;
-  case SPU::R123: return 123;
-  case SPU::R124: return 124;
-  case SPU::R125: return 125;
-  case SPU::R126: return 126;
-  case SPU::R127: return 127;
-  default:
-    llvm_report_error("Unhandled reg in SPURegisterInfo::getRegisterNumbering");
-  }
-}
-
-SPURegisterInfo::SPURegisterInfo(const SPUSubtarget &subtarget,
-                                 const TargetInstrInfo &tii) :
-  SPUGenRegisterInfo(SPU::ADJCALLSTACKDOWN, SPU::ADJCALLSTACKUP),
-  Subtarget(subtarget),
-  TII(tii)
-{
-}
-
-// SPU's 128-bit registers used for argument passing:
-static const unsigned SPU_ArgRegs[] = {
-  SPU::R3,  SPU::R4,  SPU::R5,  SPU::R6,  SPU::R7,  SPU::R8,  SPU::R9,
-  SPU::R10, SPU::R11, SPU::R12, SPU::R13, SPU::R14, SPU::R15, SPU::R16,
-  SPU::R17, SPU::R18, SPU::R19, SPU::R20, SPU::R21, SPU::R22, SPU::R23,
-  SPU::R24, SPU::R25, SPU::R26, SPU::R27, SPU::R28, SPU::R29, SPU::R30,
-  SPU::R31, SPU::R32, SPU::R33, SPU::R34, SPU::R35, SPU::R36, SPU::R37,
-  SPU::R38, SPU::R39, SPU::R40, SPU::R41, SPU::R42, SPU::R43, SPU::R44,
-  SPU::R45, SPU::R46, SPU::R47, SPU::R48, SPU::R49, SPU::R50, SPU::R51,
-  SPU::R52, SPU::R53, SPU::R54, SPU::R55, SPU::R56, SPU::R57, SPU::R58,
-  SPU::R59, SPU::R60, SPU::R61, SPU::R62, SPU::R63, SPU::R64, SPU::R65,
-  SPU::R66, SPU::R67, SPU::R68, SPU::R69, SPU::R70, SPU::R71, SPU::R72,
-  SPU::R73, SPU::R74, SPU::R75, SPU::R76, SPU::R77, SPU::R78, SPU::R79
-};
-
-const unsigned *
-SPURegisterInfo::getArgRegs()
-{
-  return SPU_ArgRegs;
-}
-
-unsigned
-SPURegisterInfo::getNumArgRegs()
-{
-  return sizeof(SPU_ArgRegs) / sizeof(SPU_ArgRegs[0]);
-}
-
-/// getPointerRegClass - Return the register class to use to hold pointers.
-/// This is used for addressing modes.
-const TargetRegisterClass *
-SPURegisterInfo::getPointerRegClass(unsigned Kind) const {
-  return &SPU::R32CRegClass;
-}
-
-const unsigned *
-SPURegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const
-{
-  // Cell ABI calling convention
-  static const unsigned SPU_CalleeSaveRegs[] = {
-    SPU::R80, SPU::R81, SPU::R82, SPU::R83,
-    SPU::R84, SPU::R85, SPU::R86, SPU::R87,
-    SPU::R88, SPU::R89, SPU::R90, SPU::R91,
-    SPU::R92, SPU::R93, SPU::R94, SPU::R95,
-    SPU::R96, SPU::R97, SPU::R98, SPU::R99,
-    SPU::R100, SPU::R101, SPU::R102, SPU::R103,
-    SPU::R104, SPU::R105, SPU::R106, SPU::R107,
-    SPU::R108, SPU::R109, SPU::R110, SPU::R111,
-    SPU::R112, SPU::R113, SPU::R114, SPU::R115,
-    SPU::R116, SPU::R117, SPU::R118, SPU::R119,
-    SPU::R120, SPU::R121, SPU::R122, SPU::R123,
-    SPU::R124, SPU::R125, SPU::R126, SPU::R127,
-    SPU::R2,    /* environment pointer */
-    SPU::R1,    /* stack pointer */
-    SPU::R0,    /* link register */
-    0 /* end */
-  };
-
-  return SPU_CalleeSaveRegs;
-}
-
-const TargetRegisterClass* const*
-SPURegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const
-{
-  // Cell ABI Calling Convention
-  static const TargetRegisterClass * const SPU_CalleeSaveRegClasses[] = {
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, &SPU::GPRCRegClass, &SPU::GPRCRegClass,
-    &SPU::GPRCRegClass, /* environment pointer */
-    &SPU::GPRCRegClass, /* stack pointer */
-    &SPU::GPRCRegClass, /* link register */
-    0 /* end */
-  };
-
-  return SPU_CalleeSaveRegClasses;
-}
-
-/*!
- R0 (link register), R1 (stack pointer) and R2 (environment pointer -- this is
- generally unused) are the Cell's reserved registers
- */
-BitVector SPURegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  BitVector Reserved(getNumRegs());
-  Reserved.set(SPU::R0);                // LR
-  Reserved.set(SPU::R1);                // SP
-  Reserved.set(SPU::R2);                // environment pointer
-  return Reserved;
-}
-
-//===----------------------------------------------------------------------===//
-// Stack Frame Processing methods
-//===----------------------------------------------------------------------===//
-
-// needsFP - Return true if the specified function should have a dedicated frame
-// pointer register.  This is true if the function has variable sized allocas or
-// if frame pointer elimination is disabled.
-//
-static bool needsFP(const MachineFunction &MF) {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  return NoFramePointerElim || MFI->hasVarSizedObjects();
-}
-
-//--------------------------------------------------------------------------
-// hasFP - Return true if the specified function actually has a dedicated frame
-// pointer register.  This is true if the function needs a frame pointer and has
-// a non-zero stack size.
-bool
-SPURegisterInfo::hasFP(const MachineFunction &MF) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  return MFI->getStackSize() && needsFP(MF);
-}
-
-//--------------------------------------------------------------------------
-void
-SPURegisterInfo::eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                               MachineBasicBlock &MBB,
-                                               MachineBasicBlock::iterator I)
-  const
-{
-  // Simply discard ADJCALLSTACKDOWN, ADJCALLSTACKUP instructions.
-  MBB.erase(I);
-}
-
-void
-SPURegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj,
-                                     RegScavenger *RS) const
-{
-  unsigned i = 0;
-  MachineInstr &MI = *II;
-  MachineBasicBlock &MBB = *MI.getParent();
-  MachineFunction &MF = *MBB.getParent();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-
-  while (!MI.getOperand(i).isFI()) {
-    ++i;
-    assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
-  }
-
-  MachineOperand &SPOp = MI.getOperand(i);
-  int FrameIndex = SPOp.getIndex();
-
-  // Now add the frame object offset to the offset from r1.
-  int Offset = MFI->getObjectOffset(FrameIndex);
-
-  // Most instructions, except for generated FrameIndex additions using AIr32
-  // and ILAr32, have the immediate in operand 1. AIr32 and ILAr32 have the
-  // immediate in operand 2.
-  unsigned OpNo = 1;
-  if (MI.getOpcode() == SPU::AIr32 || MI.getOpcode() == SPU::ILAr32)
-    OpNo = 2;
-
-  MachineOperand &MO = MI.getOperand(OpNo);
-
-  // Offset is biased by $lr's slot at the bottom.
-  Offset += MO.getImm() + MFI->getStackSize() + SPUFrameInfo::minStackSize();
-  assert((Offset & 0xf) == 0
-         && "16-byte alignment violated in eliminateFrameIndex");
-
-  // Replace the FrameIndex with base register with $sp (aka $r1)
-  SPOp.ChangeToRegister(SPU::R1, false);
-  if (Offset > SPUFrameInfo::maxFrameOffset()
-      || Offset < SPUFrameInfo::minFrameOffset()) {
-    errs() << "Large stack adjustment ("
-         << Offset
-         << ") in SPURegisterInfo::eliminateFrameIndex.";
-  } else {
-    MO.ChangeToImmediate(Offset);
-  }
-}
-
-/// determineFrameLayout - Determine the size of the frame and maximum call
-/// frame size.
-void
-SPURegisterInfo::determineFrameLayout(MachineFunction &MF) const
-{
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-
-  // Get the number of bytes to allocate from the FrameInfo
-  unsigned FrameSize = MFI->getStackSize();
-
-  // Get the alignments provided by the target, and the maximum alignment
-  // (if any) of the fixed frame objects.
-  unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment();
-  unsigned Align = std::max(TargetAlign, MFI->getMaxAlignment());
-  assert(isPowerOf2_32(Align) && "Alignment is not power of 2");
-  unsigned AlignMask = Align - 1;
-
-  // Get the maximum call frame size of all the calls.
-  unsigned maxCallFrameSize = MFI->getMaxCallFrameSize();
-
-  // If we have dynamic alloca then maxCallFrameSize needs to be aligned so
-  // that allocations will be aligned.
-  if (MFI->hasVarSizedObjects())
-    maxCallFrameSize = (maxCallFrameSize + AlignMask) & ~AlignMask;
-
-  // Update maximum call frame size.
-  MFI->setMaxCallFrameSize(maxCallFrameSize);
-
-  // Include call frame size in total.
-  FrameSize += maxCallFrameSize;
-
-  // Make sure the frame is aligned.
-  FrameSize = (FrameSize + AlignMask) & ~AlignMask;
-
-  // Update frame info.
-  MFI->setStackSize(FrameSize);
-}
-
-void SPURegisterInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                                           RegScavenger *RS)
-  const {
-  // Mark LR and SP unused, since the prolog spills them to stack and
-  // we don't want anyone else to spill them for us.
-  //
-  // Also, unless R2 is really used someday, don't spill it automatically.
-  MF.getRegInfo().setPhysRegUnused(SPU::R0);
-  MF.getRegInfo().setPhysRegUnused(SPU::R1);
-  MF.getRegInfo().setPhysRegUnused(SPU::R2);
-}
-
-void SPURegisterInfo::emitPrologue(MachineFunction &MF) const
-{
-  MachineBasicBlock &MBB = MF.front();   // Prolog goes in entry BB
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineModuleInfo *MMI = MFI->getMachineModuleInfo();
-  DebugLoc dl = (MBBI != MBB.end() ?
-                 MBBI->getDebugLoc() : DebugLoc::getUnknownLoc());
-
-  // Prepare for debug frame info.
-  bool hasDebugInfo = MMI && MMI->hasDebugInfo();
-  unsigned FrameLabelId = 0;
-
-  // Move MBBI back to the beginning of the function.
-  MBBI = MBB.begin();
-
-  // Work out frame sizes.
-  determineFrameLayout(MF);
-  int FrameSize = MFI->getStackSize();
-
-  assert((FrameSize & 0xf) == 0
-         && "SPURegisterInfo::emitPrologue: FrameSize not aligned");
-
-  if (FrameSize > 0 || MFI->hasCalls()) {
-    FrameSize = -(FrameSize + SPUFrameInfo::minStackSize());
-    if (hasDebugInfo) {
-      // Mark effective beginning of when frame pointer becomes valid.
-      FrameLabelId = MMI->NextLabelID();
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::DBG_LABEL)).addImm(FrameLabelId);
-    }
-
-    // Adjust stack pointer, spilling $lr -> 16($sp) and $sp -> -FrameSize($sp)
-    // for the ABI
-    BuildMI(MBB, MBBI, dl, TII.get(SPU::STQDr32), SPU::R0).addImm(16)
-      .addReg(SPU::R1);
-    if (isS10Constant(FrameSize)) {
-      // Spill $sp to adjusted $sp
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::STQDr32), SPU::R1).addImm(FrameSize)
-        .addReg(SPU::R1);
-      // Adjust $sp by required amout
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::AIr32), SPU::R1).addReg(SPU::R1)
-        .addImm(FrameSize);
-    } else if (FrameSize <= (1 << 16) - 1 && FrameSize >= -(1 << 16)) {
-      // Frame size can be loaded into ILr32n, so temporarily spill $r2 and use
-      // $r2 to adjust $sp:
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::STQDr128), SPU::R2)
-        .addImm(-16)
-        .addReg(SPU::R1);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::ILr32), SPU::R2)
-        .addImm(FrameSize);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::STQDr32), SPU::R1)
-        .addReg(SPU::R2)
-        .addReg(SPU::R1);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::Ar32), SPU::R1)
-        .addReg(SPU::R1)
-        .addReg(SPU::R2);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::SFIr32), SPU::R2)
-        .addReg(SPU::R2)
-        .addImm(16);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::LQXr128), SPU::R2)
-        .addReg(SPU::R2)
-        .addReg(SPU::R1);
-    } else {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "Unhandled frame size: " << FrameSize;
-      llvm_report_error(Msg.str());
-    }
-
-    if (hasDebugInfo) {
-      std::vector<MachineMove> &Moves = MMI->getFrameMoves();
-
-      // Show update of SP.
-      MachineLocation SPDst(MachineLocation::VirtualFP);
-      MachineLocation SPSrc(MachineLocation::VirtualFP, -FrameSize);
-      Moves.push_back(MachineMove(FrameLabelId, SPDst, SPSrc));
-
-      // Add callee saved registers to move list.
-      const std::vector<CalleeSavedInfo> &CSI = MFI->getCalleeSavedInfo();
-      for (unsigned I = 0, E = CSI.size(); I != E; ++I) {
-        int Offset = MFI->getObjectOffset(CSI[I].getFrameIdx());
-        unsigned Reg = CSI[I].getReg();
-        if (Reg == SPU::R0) continue;
-        MachineLocation CSDst(MachineLocation::VirtualFP, Offset);
-        MachineLocation CSSrc(Reg);
-        Moves.push_back(MachineMove(FrameLabelId, CSDst, CSSrc));
-      }
-
-      // Mark effective beginning of when frame pointer is ready.
-      unsigned ReadyLabelId = MMI->NextLabelID();
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::DBG_LABEL)).addImm(ReadyLabelId);
-
-      MachineLocation FPDst(SPU::R1);
-      MachineLocation FPSrc(MachineLocation::VirtualFP);
-      Moves.push_back(MachineMove(ReadyLabelId, FPDst, FPSrc));
-    }
-  } else {
-    // This is a leaf function -- insert a branch hint iff there are
-    // sufficient number instructions in the basic block. Note that
-    // this is just a best guess based on the basic block's size.
-    if (MBB.size() >= (unsigned) SPUFrameInfo::branchHintPenalty()) {
-      MachineBasicBlock::iterator MBBI = prior(MBB.end());
-      dl = MBBI->getDebugLoc();
-
-      // Insert terminator label
-      unsigned BranchLabelId = MMI->NextLabelID();
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::DBG_LABEL)).addImm(BranchLabelId);
-    }
-  }
-}
-
-void
-SPURegisterInfo::emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const
-{
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  int FrameSize = MFI->getStackSize();
-  int LinkSlotOffset = SPUFrameInfo::stackSlotSize();
-  DebugLoc dl = MBBI->getDebugLoc();
-
-  assert(MBBI->getOpcode() == SPU::RET &&
-         "Can only insert epilog into returning blocks");
-  assert((FrameSize & 0xf) == 0
-         && "SPURegisterInfo::emitEpilogue: FrameSize not aligned");
-  if (FrameSize > 0 || MFI->hasCalls()) {
-    FrameSize = FrameSize + SPUFrameInfo::minStackSize();
-    if (isS10Constant(FrameSize + LinkSlotOffset)) {
-      // Reload $lr, adjust $sp by required amount
-      // Note: We do this to slightly improve dual issue -- not by much, but it
-      // is an opportunity for dual issue.
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::LQDr128), SPU::R0)
-        .addImm(FrameSize + LinkSlotOffset)
-        .addReg(SPU::R1);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::AIr32), SPU::R1)
-        .addReg(SPU::R1)
-        .addImm(FrameSize);
-    } else if (FrameSize <= (1 << 16) - 1 && FrameSize >= -(1 << 16)) {
-      // Frame size can be loaded into ILr32n, so temporarily spill $r2 and use
-      // $r2 to adjust $sp:
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::STQDr128), SPU::R2)
-        .addImm(16)
-        .addReg(SPU::R1);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::ILr32), SPU::R2)
-        .addImm(FrameSize);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::Ar32), SPU::R1)
-        .addReg(SPU::R1)
-        .addReg(SPU::R2);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::LQDr128), SPU::R0)
-        .addImm(16)
-        .addReg(SPU::R2);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::SFIr32), SPU::R2).
-        addReg(SPU::R2)
-        .addImm(16);
-      BuildMI(MBB, MBBI, dl, TII.get(SPU::LQXr128), SPU::R2)
-        .addReg(SPU::R2)
-        .addReg(SPU::R1);
-    } else {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "Unhandled frame size: " << FrameSize;
-      llvm_report_error(Msg.str());
-    }
-   }
-}
-
-unsigned
-SPURegisterInfo::getRARegister() const
-{
-  return SPU::R0;
-}
-
-unsigned
-SPURegisterInfo::getFrameRegister(MachineFunction &MF) const
-{
-  return SPU::R1;
-}
-
-void
-SPURegisterInfo::getInitialFrameState(std::vector<MachineMove> &Moves) const
-{
-  // Initial state of the frame pointer is R1.
-  MachineLocation Dst(MachineLocation::VirtualFP);
-  MachineLocation Src(SPU::R1, 0);
-  Moves.push_back(MachineMove(0, Dst, Src));
-}
-
-
-int
-SPURegisterInfo::getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  // FIXME: Most probably dwarf numbers differs for Linux and Darwin
-  return SPUGenRegisterInfo::getDwarfRegNumFull(RegNum, 0);
-}
-
-#include "SPUGenRegisterInfo.inc"
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.h
deleted file mode 100644
index 0d3bbbe..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.h
+++ /dev/null
@@ -1,102 +0,0 @@
-//===- SPURegisterInfo.h - Cell SPU Register Information Impl ----*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Cell SPU implementation of the TargetRegisterInfo
-// class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPU_REGISTERINFO_H
-#define SPU_REGISTERINFO_H
-
-#include "SPU.h"
-#include "SPUGenRegisterInfo.h.inc"
-
-namespace llvm {
-  class SPUSubtarget;
-  class TargetInstrInfo;
-  class Type;
-
-  class SPURegisterInfo : public SPUGenRegisterInfo {
-  private:
-    const SPUSubtarget &Subtarget;
-    const TargetInstrInfo &TII;
-
-    //! Predicate: Does the machine function use the link register?
-    bool usesLR(MachineFunction &MF) const;
-
-  public:
-    SPURegisterInfo(const SPUSubtarget &subtarget, const TargetInstrInfo &tii);
-    
-    //! Translate a register's enum value to a register number
-    /*!
-      This method translates a register's enum value to it's regiser number,
-      e.g. SPU::R14 -> 14.
-     */
-    static unsigned getRegisterNumbering(unsigned RegEnum);
-
-    /// getPointerRegClass - Return the register class to use to hold pointers.
-    /// This is used for addressing modes.
-    virtual const TargetRegisterClass *
-    getPointerRegClass(unsigned Kind = 0) const;
-
-    //! Return the array of callee-saved registers
-    virtual const unsigned* getCalleeSavedRegs(const MachineFunction *MF) const;
-
-    //! Return the register class array of the callee-saved registers
-    virtual const TargetRegisterClass* const *
-      getCalleeSavedRegClasses(const MachineFunction *MF) const;
-
-    //! Return the reserved registers
-    BitVector getReservedRegs(const MachineFunction &MF) const;
-
-    //! Prediate: Target has dedicated frame pointer
-    bool hasFP(const MachineFunction &MF) const;
-    //! Eliminate the call frame setup pseudo-instructions
-    void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                       MachineBasicBlock &MBB,
-                                       MachineBasicBlock::iterator I) const;
-    //! Convert frame indicies into machine operands
-    void eliminateFrameIndex(MachineBasicBlock::iterator II, int,
-                             RegScavenger *RS) const;
-    //! Determine the frame's layour
-    void determineFrameLayout(MachineFunction &MF) const;
-
-    void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                              RegScavenger *RS = NULL) const;
-    //! Emit the function prologue
-    void emitPrologue(MachineFunction &MF) const;
-    //! Emit the function epilogue
-    void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-    //! Get return address register (LR, aka R0)
-    unsigned getRARegister() const;
-    //! Get the stack frame register (SP, aka R1)
-    unsigned getFrameRegister(MachineFunction &MF) const;
-    //! Perform target-specific stack frame setup.
-    void getInitialFrameState(std::vector<MachineMove> &Moves) const;
-
-    //------------------------------------------------------------------------
-    // New methods added:
-    //------------------------------------------------------------------------
-
-    //! Return the array of argument passing registers
-    /*!
-      \note The size of this array is returned by getArgRegsSize().
-     */
-    static const unsigned *getArgRegs();
-
-    //! Return the size of the argument passing register array
-    static unsigned getNumArgRegs();
-
-    //! Get DWARF debugging register number
-    int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-  };
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.td
deleted file mode 100644
index bb88f2b..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.td
+++ /dev/null
@@ -1,429 +0,0 @@
-//===- SPURegisterInfo.td - The Cell SPU Register File -----*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-class SPUReg<string n> : Register<n> {
-  let Namespace = "SPU";
-}
-
-// The SPU's register are all 128-bits wide, which makes specifying the
-// registers relatively easy, if relatively mundane:
-
-class SPUVecReg<bits<7> num, string n> : SPUReg<n> {
-  field bits<7> Num = num;
-}
-
-def R0 : SPUVecReg<0, "$lr">, DwarfRegNum<[0]>;
-def R1 : SPUVecReg<1, "$sp">, DwarfRegNum<[1]>;
-def R2 : SPUVecReg<2, "$2">, DwarfRegNum<[2]>;
-def R3 : SPUVecReg<3, "$3">, DwarfRegNum<[3]>;
-def R4 : SPUVecReg<4, "$4">, DwarfRegNum<[4]>;
-def R5 : SPUVecReg<5, "$5">, DwarfRegNum<[5]>;
-def R6 : SPUVecReg<6, "$6">, DwarfRegNum<[6]>;
-def R7 : SPUVecReg<7, "$7">, DwarfRegNum<[7]>;
-def R8 : SPUVecReg<8, "$8">, DwarfRegNum<[8]>;
-def R9 : SPUVecReg<9, "$9">, DwarfRegNum<[9]>;
-def R10 : SPUVecReg<10, "$10">, DwarfRegNum<[10]>;
-def R11 : SPUVecReg<11, "$11">, DwarfRegNum<[11]>;
-def R12 : SPUVecReg<12, "$12">, DwarfRegNum<[12]>;
-def R13 : SPUVecReg<13, "$13">, DwarfRegNum<[13]>;
-def R14 : SPUVecReg<14, "$14">, DwarfRegNum<[14]>;
-def R15 : SPUVecReg<15, "$15">, DwarfRegNum<[15]>;
-def R16 : SPUVecReg<16, "$16">, DwarfRegNum<[16]>;
-def R17 : SPUVecReg<17, "$17">, DwarfRegNum<[17]>;
-def R18 : SPUVecReg<18, "$18">, DwarfRegNum<[18]>;
-def R19 : SPUVecReg<19, "$19">, DwarfRegNum<[19]>;
-def R20 : SPUVecReg<20, "$20">, DwarfRegNum<[20]>;
-def R21 : SPUVecReg<21, "$21">, DwarfRegNum<[21]>;
-def R22 : SPUVecReg<22, "$22">, DwarfRegNum<[22]>;
-def R23 : SPUVecReg<23, "$23">, DwarfRegNum<[23]>;
-def R24 : SPUVecReg<24, "$24">, DwarfRegNum<[24]>;
-def R25 : SPUVecReg<25, "$25">, DwarfRegNum<[25]>;
-def R26 : SPUVecReg<26, "$26">, DwarfRegNum<[26]>;
-def R27 : SPUVecReg<27, "$27">, DwarfRegNum<[27]>;
-def R28 : SPUVecReg<28, "$28">, DwarfRegNum<[28]>;
-def R29 : SPUVecReg<29, "$29">, DwarfRegNum<[29]>;
-def R30 : SPUVecReg<30, "$30">, DwarfRegNum<[30]>;
-def R31 : SPUVecReg<31, "$31">, DwarfRegNum<[31]>;
-def R32 : SPUVecReg<32, "$32">, DwarfRegNum<[32]>;
-def R33 : SPUVecReg<33, "$33">, DwarfRegNum<[33]>;
-def R34 : SPUVecReg<34, "$34">, DwarfRegNum<[34]>;
-def R35 : SPUVecReg<35, "$35">, DwarfRegNum<[35]>;
-def R36 : SPUVecReg<36, "$36">, DwarfRegNum<[36]>;
-def R37 : SPUVecReg<37, "$37">, DwarfRegNum<[37]>;
-def R38 : SPUVecReg<38, "$38">, DwarfRegNum<[38]>;
-def R39 : SPUVecReg<39, "$39">, DwarfRegNum<[39]>;
-def R40 : SPUVecReg<40, "$40">, DwarfRegNum<[40]>;
-def R41 : SPUVecReg<41, "$41">, DwarfRegNum<[41]>;
-def R42 : SPUVecReg<42, "$42">, DwarfRegNum<[42]>;
-def R43 : SPUVecReg<43, "$43">, DwarfRegNum<[43]>;
-def R44 : SPUVecReg<44, "$44">, DwarfRegNum<[44]>;
-def R45 : SPUVecReg<45, "$45">, DwarfRegNum<[45]>;
-def R46 : SPUVecReg<46, "$46">, DwarfRegNum<[46]>;
-def R47 : SPUVecReg<47, "$47">, DwarfRegNum<[47]>;
-def R48 : SPUVecReg<48, "$48">, DwarfRegNum<[48]>;
-def R49 : SPUVecReg<49, "$49">, DwarfRegNum<[49]>;
-def R50 : SPUVecReg<50, "$50">, DwarfRegNum<[50]>;
-def R51 : SPUVecReg<51, "$51">, DwarfRegNum<[51]>;
-def R52 : SPUVecReg<52, "$52">, DwarfRegNum<[52]>;
-def R53 : SPUVecReg<53, "$53">, DwarfRegNum<[53]>;
-def R54 : SPUVecReg<54, "$54">, DwarfRegNum<[54]>;
-def R55 : SPUVecReg<55, "$55">, DwarfRegNum<[55]>;
-def R56 : SPUVecReg<56, "$56">, DwarfRegNum<[56]>;
-def R57 : SPUVecReg<57, "$57">, DwarfRegNum<[57]>;
-def R58 : SPUVecReg<58, "$58">, DwarfRegNum<[58]>;
-def R59 : SPUVecReg<59, "$59">, DwarfRegNum<[59]>;
-def R60 : SPUVecReg<60, "$60">, DwarfRegNum<[60]>;
-def R61 : SPUVecReg<61, "$61">, DwarfRegNum<[61]>;
-def R62 : SPUVecReg<62, "$62">, DwarfRegNum<[62]>;
-def R63 : SPUVecReg<63, "$63">, DwarfRegNum<[63]>;
-def R64 : SPUVecReg<64, "$64">, DwarfRegNum<[64]>;
-def R65 : SPUVecReg<65, "$65">, DwarfRegNum<[65]>;
-def R66 : SPUVecReg<66, "$66">, DwarfRegNum<[66]>;
-def R67 : SPUVecReg<67, "$67">, DwarfRegNum<[67]>;
-def R68 : SPUVecReg<68, "$68">, DwarfRegNum<[68]>;
-def R69 : SPUVecReg<69, "$69">, DwarfRegNum<[69]>;
-def R70 : SPUVecReg<70, "$70">, DwarfRegNum<[70]>;
-def R71 : SPUVecReg<71, "$71">, DwarfRegNum<[71]>;
-def R72 : SPUVecReg<72, "$72">, DwarfRegNum<[72]>;
-def R73 : SPUVecReg<73, "$73">, DwarfRegNum<[73]>;
-def R74 : SPUVecReg<74, "$74">, DwarfRegNum<[74]>;
-def R75 : SPUVecReg<75, "$75">, DwarfRegNum<[75]>;
-def R76 : SPUVecReg<76, "$76">, DwarfRegNum<[76]>;
-def R77 : SPUVecReg<77, "$77">, DwarfRegNum<[77]>;
-def R78 : SPUVecReg<78, "$78">, DwarfRegNum<[78]>;
-def R79 : SPUVecReg<79, "$79">, DwarfRegNum<[79]>;
-def R80 : SPUVecReg<80, "$80">, DwarfRegNum<[80]>;
-def R81 : SPUVecReg<81, "$81">, DwarfRegNum<[81]>;
-def R82 : SPUVecReg<82, "$82">, DwarfRegNum<[82]>;
-def R83 : SPUVecReg<83, "$83">, DwarfRegNum<[83]>;
-def R84 : SPUVecReg<84, "$84">, DwarfRegNum<[84]>;
-def R85 : SPUVecReg<85, "$85">, DwarfRegNum<[85]>;
-def R86 : SPUVecReg<86, "$86">, DwarfRegNum<[86]>;
-def R87 : SPUVecReg<87, "$87">, DwarfRegNum<[87]>;
-def R88 : SPUVecReg<88, "$88">, DwarfRegNum<[88]>;
-def R89 : SPUVecReg<89, "$89">, DwarfRegNum<[89]>;
-def R90 : SPUVecReg<90, "$90">, DwarfRegNum<[90]>;
-def R91 : SPUVecReg<91, "$91">, DwarfRegNum<[91]>;
-def R92 : SPUVecReg<92, "$92">, DwarfRegNum<[92]>;
-def R93 : SPUVecReg<93, "$93">, DwarfRegNum<[93]>;
-def R94 : SPUVecReg<94, "$94">, DwarfRegNum<[94]>;
-def R95 : SPUVecReg<95, "$95">, DwarfRegNum<[95]>;
-def R96 : SPUVecReg<96, "$96">, DwarfRegNum<[96]>;
-def R97 : SPUVecReg<97, "$97">, DwarfRegNum<[97]>;
-def R98 : SPUVecReg<98, "$98">, DwarfRegNum<[98]>;
-def R99 : SPUVecReg<99, "$99">, DwarfRegNum<[99]>;
-def R100 : SPUVecReg<100, "$100">, DwarfRegNum<[100]>;
-def R101 : SPUVecReg<101, "$101">, DwarfRegNum<[101]>;
-def R102 : SPUVecReg<102, "$102">, DwarfRegNum<[102]>;
-def R103 : SPUVecReg<103, "$103">, DwarfRegNum<[103]>;
-def R104 : SPUVecReg<104, "$104">, DwarfRegNum<[104]>;
-def R105 : SPUVecReg<105, "$105">, DwarfRegNum<[105]>;
-def R106 : SPUVecReg<106, "$106">, DwarfRegNum<[106]>;
-def R107 : SPUVecReg<107, "$107">, DwarfRegNum<[107]>;
-def R108 : SPUVecReg<108, "$108">, DwarfRegNum<[108]>;
-def R109 : SPUVecReg<109, "$109">, DwarfRegNum<[109]>;
-def R110 : SPUVecReg<110, "$110">, DwarfRegNum<[110]>;
-def R111 : SPUVecReg<111, "$111">, DwarfRegNum<[111]>;
-def R112 : SPUVecReg<112, "$112">, DwarfRegNum<[112]>;
-def R113 : SPUVecReg<113, "$113">, DwarfRegNum<[113]>;
-def R114 : SPUVecReg<114, "$114">, DwarfRegNum<[114]>;
-def R115 : SPUVecReg<115, "$115">, DwarfRegNum<[115]>;
-def R116 : SPUVecReg<116, "$116">, DwarfRegNum<[116]>;
-def R117 : SPUVecReg<117, "$117">, DwarfRegNum<[117]>;
-def R118 : SPUVecReg<118, "$118">, DwarfRegNum<[118]>;
-def R119 : SPUVecReg<119, "$119">, DwarfRegNum<[119]>;
-def R120 : SPUVecReg<120, "$120">, DwarfRegNum<[120]>;
-def R121 : SPUVecReg<121, "$121">, DwarfRegNum<[121]>;
-def R122 : SPUVecReg<122, "$122">, DwarfRegNum<[122]>;
-def R123 : SPUVecReg<123, "$123">, DwarfRegNum<[123]>;
-def R124 : SPUVecReg<124, "$124">, DwarfRegNum<[124]>;
-def R125 : SPUVecReg<125, "$125">, DwarfRegNum<[125]>;
-def R126 : SPUVecReg<126, "$126">, DwarfRegNum<[126]>;
-def R127 : SPUVecReg<127, "$127">, DwarfRegNum<[127]>;
-
-/* Need floating point status register here: */
-/* def FPCSR : ... */
-
-// The SPU's registers as 128-bit wide entities, and can function as general
-// purpose registers, where the operands are in the "preferred slot":
-def GPRC : RegisterClass<"SPU", [i128], 128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    GPRCClass::iterator
-    GPRCClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    GPRCClass::iterator
-    GPRCClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
-
-// The SPU's registers as 64-bit wide (double word integer) "preferred slot":
-def R64C : RegisterClass<"SPU", [i64], 128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    R64CClass::iterator
-    R64CClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    R64CClass::iterator
-    R64CClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
-
-// The SPU's registers as 64-bit wide (double word) FP "preferred slot":
-def R64FP : RegisterClass<"SPU", [f64], 128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    R64FPClass::iterator
-    R64FPClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    R64FPClass::iterator
-    R64FPClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
-
-// The SPU's registers as 32-bit wide (word) "preferred slot":
-def R32C : RegisterClass<"SPU", [i32], 128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    R32CClass::iterator
-    R32CClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    R32CClass::iterator
-    R32CClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
-
-// The SPU's registers as single precision floating point "preferred slot":
-def R32FP : RegisterClass<"SPU", [f32], 128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    R32FPClass::iterator
-    R32FPClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    R32FPClass::iterator
-    R32FPClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
-
-// The SPU's registers as 16-bit wide (halfword) "preferred slot":
-def R16C : RegisterClass<"SPU", [i16], 128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    R16CClass::iterator
-    R16CClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    R16CClass::iterator
-    R16CClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
-
-// The SPU's registers as 8-bit wide (byte) "preferred slot":
-def R8C : RegisterClass<"SPU", [i8], 128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    R8CClass::iterator
-    R8CClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    R8CClass::iterator
-    R8CClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
-
-// The SPU's registers as vector registers:
-def VECREG : RegisterClass<"SPU",
-                           [v16i8,v8i16,v2i32,v4i32,v4f32,v2i64,v2f64],
-                           128,
- [
-   /* volatile register */
-   R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, 
-   R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31,
-   R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46,
-   R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61,
-   R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76,
-   R77, R78, R79,
-   /* non-volatile register: take hint from PPC and allocate in reverse order */
-   R127, R126, R125, R124, R123, R122, R121, R120, R119, R118, R117, R116, R115,
-   R114, R113, R112, R111, R110, R109, R108, R107, R106, R105, R104, R103, R102,
-   R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87,
-   R86, R85, R84, R83, R82, R81, R80, 
-   /* environment ptr, SP, LR */ 
-   R2, R1, R0 ]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    VECREGClass::iterator
-    VECREGClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    VECREGClass::iterator
-    VECREGClass::allocation_order_end(const MachineFunction &MF) const {
-      return end()-3;  // don't allocate R2, R1, or R0 (envp, sp, lr)
-    }
-  }];
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterNames.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterNames.h
deleted file mode 100644
index 6c3afdf..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterNames.h
+++ /dev/null
@@ -1,18 +0,0 @@
-//===- SPURegisterNames.h - Wrapper header for SPU register names -*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPU_REGISTER_NAMES_H
-#define SPU_REGISTER_NAMES_H
-
-// Define symbolic names for Cell registers.  This defines a mapping from
-// register name to register number.
-//
-#include "SPUGenRegisterNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUSchedule.td b/libclamav/c++/llvm/lib/Target/CellSPU/SPUSchedule.td
deleted file mode 100644
index 785dc46..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUSchedule.td
+++ /dev/null
@@ -1,57 +0,0 @@
-//===- SPUSchedule.td - Cell Scheduling Definitions --------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Even pipeline:
-
-def EVEN_UNIT : FuncUnit;       // Even execution unit: (PC & 0x7 == 000)
-def ODD_UNIT  : FuncUnit;       // Odd execution unit:  (PC & 0x7 == 100)
-
-//===----------------------------------------------------------------------===//
-// Instruction Itinerary classes used for Cell SPU
-//===----------------------------------------------------------------------===//
-
-def LoadStore    : InstrItinClass;              // ODD_UNIT
-def BranchHints  : InstrItinClass;              // ODD_UNIT
-def BranchResolv : InstrItinClass;              // ODD_UNIT
-def ChanOpSPR    : InstrItinClass;              // ODD_UNIT
-def ShuffleOp    : InstrItinClass;              // ODD_UNIT
-def SelectOp     : InstrItinClass;              // ODD_UNIT
-def GatherOp     : InstrItinClass;              // ODD_UNIT
-def LoadNOP      : InstrItinClass;              // ODD_UNIT
-def ExecNOP      : InstrItinClass;              // EVEN_UNIT
-def SPrecFP      : InstrItinClass;              // EVEN_UNIT
-def DPrecFP      : InstrItinClass;              // EVEN_UNIT
-def FPInt        : InstrItinClass;              // EVEN_UNIT (FP<->integer)
-def ByteOp       : InstrItinClass;              // EVEN_UNIT
-def IntegerOp    : InstrItinClass;              // EVEN_UNIT
-def IntegerMulDiv: InstrItinClass;              // EVEN_UNIT
-def RotateShift  : InstrItinClass;              // EVEN_UNIT
-def ImmLoad      : InstrItinClass;              // EVEN_UNIT
-
-/* Note: The itinerary for the Cell SPU is somewhat contrived... */
-def SPUItineraries : ProcessorItineraries<[
-  InstrItinData<LoadStore   , [InstrStage<6,  [ODD_UNIT]>]>,
-  InstrItinData<BranchHints , [InstrStage<6,  [ODD_UNIT]>]>,
-  InstrItinData<BranchResolv, [InstrStage<4,  [ODD_UNIT]>]>,
-  InstrItinData<ChanOpSPR   , [InstrStage<6,  [ODD_UNIT]>]>,
-  InstrItinData<ShuffleOp   , [InstrStage<4,  [ODD_UNIT]>]>,
-  InstrItinData<SelectOp    , [InstrStage<4,  [ODD_UNIT]>]>,
-  InstrItinData<GatherOp    , [InstrStage<4,  [ODD_UNIT]>]>,
-  InstrItinData<LoadNOP     , [InstrStage<1,  [ODD_UNIT]>]>,
-  InstrItinData<ExecNOP     , [InstrStage<1,  [EVEN_UNIT]>]>,
-  InstrItinData<SPrecFP     , [InstrStage<6,  [EVEN_UNIT]>]>,
-  InstrItinData<DPrecFP     , [InstrStage<13, [EVEN_UNIT]>]>,
-  InstrItinData<FPInt       , [InstrStage<2,  [EVEN_UNIT]>]>,
-  InstrItinData<ByteOp      , [InstrStage<4,  [EVEN_UNIT]>]>,
-  InstrItinData<IntegerOp   , [InstrStage<2,  [EVEN_UNIT]>]>,
-  InstrItinData<RotateShift , [InstrStage<4,  [EVEN_UNIT]>]>,
-  InstrItinData<IntegerMulDiv,[InstrStage<7,  [EVEN_UNIT]>]>,
-  InstrItinData<ImmLoad     , [InstrStage<2,  [EVEN_UNIT]>]>
-  ]>;
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUSubtarget.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUSubtarget.cpp
deleted file mode 100644
index 0f18b7f..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUSubtarget.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//===- SPUSubtarget.cpp - STI Cell SPU Subtarget Information --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the CellSPU-specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPUSubtarget.h"
-#include "SPU.h"
-#include "SPUGenSubtarget.inc"
-
-using namespace llvm;
-
-SPUSubtarget::SPUSubtarget(const std::string &TT, const std::string &FS) :
-  StackAlignment(16),
-  ProcDirective(SPU::DEFAULT_PROC),
-  UseLargeMem(false)
-{
-  // Should be the target SPU processor type. For now, since there's only
-  // one, simply default to the current "v0" default:
-  std::string default_cpu("v0");
-
-  // Parse features string.
-  ParseSubtargetFeatures(FS, default_cpu);
-}
-
-/// SetJITMode - This is called to inform the subtarget info that we are
-/// producing code for the JIT.
-void SPUSubtarget::SetJITMode() {
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUSubtarget.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUSubtarget.h
deleted file mode 100644
index 94ac73c..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUSubtarget.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//===-- SPUSubtarget.h - Define Subtarget for the Cell SPU ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Cell SPU-specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CELLSUBTARGET_H
-#define CELLSUBTARGET_H
-
-#include "llvm/Target/TargetInstrItineraries.h"
-#include "llvm/Target/TargetSubtarget.h"
-
-#include <string>
-
-namespace llvm {
-  class GlobalValue;
-
-  namespace SPU {
-    enum {
-      PROC_NONE,
-      DEFAULT_PROC
-    };
-  }
-    
-  class SPUSubtarget : public TargetSubtarget {
-  protected:
-    /// stackAlignment - The minimum alignment known to hold of the stack frame
-    /// on entry to the function and which must be maintained by every function.
-    unsigned StackAlignment;
-    
-    /// Selected instruction itineraries (one entry per itinerary class.)
-    InstrItineraryData InstrItins;
-
-    /// Which SPU processor (this isn't really used, but it's there to keep
-    /// the C compiler happy)
-    unsigned ProcDirective;
-
-    /// Use (assume) large memory -- effectively disables the LQA/STQA
-    /// instructions that assume 259K local store.
-    bool UseLargeMem;
-    
-  public:
-    /// This constructor initializes the data members to match that
-    /// of the specified triple.
-    ///
-    SPUSubtarget(const std::string &TT, const std::string &FS);
-    
-    /// ParseSubtargetFeatures - Parses features string setting specified 
-    /// subtarget options.  Definition of function is auto generated by tblgen.
-    std::string ParseSubtargetFeatures(const std::string &FS,
-                                       const std::string &CPU);
-
-    /// SetJITMode - This is called to inform the subtarget info that we are
-    /// producing code for the JIT.
-    void SetJITMode();
-
-    /// getStackAlignment - Returns the minimum alignment known to hold of the
-    /// stack frame on entry to the function and which must be maintained by
-    /// every function for this subtarget.
-    unsigned getStackAlignment() const { return StackAlignment; }
-    
-    /// getInstrItins - Return the instruction itineraies based on subtarget 
-    /// selection.
-    const InstrItineraryData &getInstrItineraryData() const {
-      return InstrItins;
-    }
-
-    /// Use large memory addressing predicate
-    bool usingLargeMem() const {
-      return UseLargeMem;
-    }
-
-    /// getTargetDataString - Return the pointer size and type alignment
-    /// properties of this subtarget.
-    const char *getTargetDataString() const {
-      return "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128"
-             "-i16:16:128-i8:8:128-i1:8:128-a:0:128-v64:128:128-v128:128:128"
-             "-s:128:128";
-    }
-  };
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp
deleted file mode 100644
index 6500067..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//===-- SPUTargetMachine.cpp - Define TargetMachine for Cell SPU ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Top-level implementation for the Cell SPU target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPU.h"
-#include "SPURegisterNames.h"
-#include "SPUMCAsmInfo.h"
-#include "SPUTargetMachine.h"
-#include "llvm/PassManager.h"
-#include "llvm/CodeGen/RegAllocRegistry.h"
-#include "llvm/CodeGen/SchedulerRegistry.h"
-#include "llvm/Target/TargetRegistry.h"
-
-using namespace llvm;
-
-extern "C" void LLVMInitializeCellSPUTarget() { 
-  // Register the target.
-  RegisterTargetMachine<SPUTargetMachine> X(TheCellSPUTarget);
-  RegisterAsmInfo<SPULinuxMCAsmInfo> Y(TheCellSPUTarget);
-}
-
-const std::pair<unsigned, int> *
-SPUFrameInfo::getCalleeSaveSpillSlots(unsigned &NumEntries) const {
-  NumEntries = 1;
-  return &LR[0];
-}
-
-SPUTargetMachine::SPUTargetMachine(const Target &T, const std::string &TT,
-                                   const std::string &FS)
-  : LLVMTargetMachine(T, TT),
-    Subtarget(TT, FS),
-    DataLayout(Subtarget.getTargetDataString()),
-    InstrInfo(*this),
-    FrameInfo(*this),
-    TLInfo(*this),
-    InstrItins(Subtarget.getInstrItineraryData()) {
-  // For the time being, use static relocations, since there's really no
-  // support for PIC yet.
-  setRelocationModel(Reloc::Static);
-}
-
-//===----------------------------------------------------------------------===//
-// Pass Pipeline Configuration
-//===----------------------------------------------------------------------===//
-
-bool SPUTargetMachine::addInstSelector(PassManagerBase &PM,
-                                       CodeGenOpt::Level OptLevel) {
-  // Install an instruction selector.
-  PM.add(createSPUISelDag(*this));
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.h b/libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.h
deleted file mode 100644
index 9fdcfe9..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//===-- SPUTargetMachine.h - Define TargetMachine for Cell SPU ----*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the CellSPU-specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPU_TARGETMACHINE_H
-#define SPU_TARGETMACHINE_H
-
-#include "SPUSubtarget.h"
-#include "SPUInstrInfo.h"
-#include "SPUISelLowering.h"
-#include "SPUFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-
-namespace llvm {
-class PassManager;
-class GlobalValue;
-class TargetFrameInfo;
-
-/// SPUTargetMachine
-///
-class SPUTargetMachine : public LLVMTargetMachine {
-  SPUSubtarget        Subtarget;
-  const TargetData    DataLayout;
-  SPUInstrInfo        InstrInfo;
-  SPUFrameInfo        FrameInfo;
-  SPUTargetLowering   TLInfo;
-  InstrItineraryData  InstrItins;
-public:
-  SPUTargetMachine(const Target &T, const std::string &TT,
-                   const std::string &FS);
-
-  /// Return the subtarget implementation object
-  virtual const SPUSubtarget     *getSubtargetImpl() const {
-    return &Subtarget;
-  }
-  virtual const SPUInstrInfo     *getInstrInfo() const {
-    return &InstrInfo;
-  }
-  virtual const SPUFrameInfo     *getFrameInfo() const {
-    return &FrameInfo;
-  }
-  /*!
-    \note Cell SPU does not support JIT today. It could support JIT at some
-    point.
-   */
-  virtual       TargetJITInfo    *getJITInfo() {
-    return NULL;
-  }
-
-  virtual       SPUTargetLowering *getTargetLowering() const { 
-   return const_cast<SPUTargetLowering*>(&TLInfo); 
-  }
-
-  virtual const SPURegisterInfo *getRegisterInfo() const {
-    return &InstrInfo.getRegisterInfo();
-  }
-  
-  virtual const TargetData *getTargetData() const {
-    return &DataLayout;
-  }
-
-  virtual const InstrItineraryData getInstrItineraryData() const {
-    return InstrItins;
-  }
-  
-  // Pass Pipeline Configuration
-  virtual bool addInstSelector(PassManagerBase &PM,
-                               CodeGenOpt::Level OptLevel);
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 928d0fe..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMCellSPUInfo
-  CellSPUTargetInfo.cpp
-  )
-
-add_dependencies(LLVMCellSPUInfo CellSPUCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp
deleted file mode 100644
index 049ea23..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===-- CellSPUTargetInfo.cpp - CellSPU Target Implementation -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SPU.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheCellSPUTarget;
-
-extern "C" void LLVMInitializeCellSPUTargetInfo() { 
-  RegisterTarget<Triple::cellspu> 
-    X(TheCellSPUTarget, "cellspu", "STI CBEA Cell SPU [experimental]");
-}
diff --git a/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/Makefile
deleted file mode 100644
index 9cb6827..0000000
--- a/libclamav/c++/llvm/lib/Target/CellSPU/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/CellSPU/TargetInfo/Makefile --------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMCellSPUInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/CppBackend/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/CppBackend/CMakeLists.txt
deleted file mode 100644
index f8182b8..0000000
--- a/libclamav/c++/llvm/lib/Target/CppBackend/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-add_llvm_target(CppBackend
-  CPPBackend.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Target/CppBackend/CPPBackend.cpp b/libclamav/c++/llvm/lib/Target/CppBackend/CPPBackend.cpp
deleted file mode 100644
index e9b3aa9..0000000
--- a/libclamav/c++/llvm/lib/Target/CppBackend/CPPBackend.cpp
+++ /dev/null
@@ -1,2027 +0,0 @@
-//===-- CPPBackend.cpp - Library for converting LLVM code to C++ code -----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the writing of the LLVM IR as a set of C++ calls to the
-// LLVM IR interface. The input module is assumed to be verified.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CPPTargetMachine.h"
-#include "llvm/CallingConv.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/InlineAsm.h"
-#include "llvm/Instruction.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/PassManager.h"
-#include "llvm/TypeSymbolTable.h"
-#include "llvm/ADT/SmallPtrSet.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Config/config.h"
-#include <algorithm>
-#include <set>
-
-using namespace llvm;
-
-static cl::opt<std::string>
-FuncName("cppfname", cl::desc("Specify the name of the generated function"),
-         cl::value_desc("function name"));
-
-enum WhatToGenerate {
-  GenProgram,
-  GenModule,
-  GenContents,
-  GenFunction,
-  GenFunctions,
-  GenInline,
-  GenVariable,
-  GenType
-};
-
-static cl::opt<WhatToGenerate> GenerationType("cppgen", cl::Optional,
-  cl::desc("Choose what kind of output to generate"),
-  cl::init(GenProgram),
-  cl::values(
-    clEnumValN(GenProgram,  "program",   "Generate a complete program"),
-    clEnumValN(GenModule,   "module",    "Generate a module definition"),
-    clEnumValN(GenContents, "contents",  "Generate contents of a module"),
-    clEnumValN(GenFunction, "function",  "Generate a function definition"),
-    clEnumValN(GenFunctions,"functions", "Generate all function definitions"),
-    clEnumValN(GenInline,   "inline",    "Generate an inline function"),
-    clEnumValN(GenVariable, "variable",  "Generate a variable definition"),
-    clEnumValN(GenType,     "type",      "Generate a type definition"),
-    clEnumValEnd
-  )
-);
-
-static cl::opt<std::string> NameToGenerate("cppfor", cl::Optional,
-  cl::desc("Specify the name of the thing to generate"),
-  cl::init("!bad!"));
-
-extern "C" void LLVMInitializeCppBackendTarget() {
-  // Register the target.
-  RegisterTargetMachine<CPPTargetMachine> X(TheCppBackendTarget);
-}
-
-namespace {
-  typedef std::vector<const Type*> TypeList;
-  typedef std::map<const Type*,std::string> TypeMap;
-  typedef std::map<const Value*,std::string> ValueMap;
-  typedef std::set<std::string> NameSet;
-  typedef std::set<const Type*> TypeSet;
-  typedef std::set<const Value*> ValueSet;
-  typedef std::map<const Value*,std::string> ForwardRefMap;
-
-  /// CppWriter - This class is the main chunk of code that converts an LLVM
-  /// module to a C++ translation unit.
-  class CppWriter : public ModulePass {
-    formatted_raw_ostream &Out;
-    const Module *TheModule;
-    uint64_t uniqueNum;
-    TypeMap TypeNames;
-    ValueMap ValueNames;
-    TypeMap UnresolvedTypes;
-    TypeList TypeStack;
-    NameSet UsedNames;
-    TypeSet DefinedTypes;
-    ValueSet DefinedValues;
-    ForwardRefMap ForwardRefs;
-    bool is_inline;
-
-  public:
-    static char ID;
-    explicit CppWriter(formatted_raw_ostream &o) :
-      ModulePass(&ID), Out(o), uniqueNum(0), is_inline(false) {}
-
-    virtual const char *getPassName() const { return "C++ backend"; }
-
-    bool runOnModule(Module &M);
-
-    void printProgram(const std::string& fname, const std::string& modName );
-    void printModule(const std::string& fname, const std::string& modName );
-    void printContents(const std::string& fname, const std::string& modName );
-    void printFunction(const std::string& fname, const std::string& funcName );
-    void printFunctions();
-    void printInline(const std::string& fname, const std::string& funcName );
-    void printVariable(const std::string& fname, const std::string& varName );
-    void printType(const std::string& fname, const std::string& typeName );
-
-    void error(const std::string& msg);
-
-  private:
-    void printLinkageType(GlobalValue::LinkageTypes LT);
-    void printVisibilityType(GlobalValue::VisibilityTypes VisTypes);
-    void printCallingConv(unsigned cc);
-    void printEscapedString(const std::string& str);
-    void printCFP(const ConstantFP* CFP);
-
-    std::string getCppName(const Type* val);
-    inline void printCppName(const Type* val);
-
-    std::string getCppName(const Value* val);
-    inline void printCppName(const Value* val);
-
-    void printAttributes(const AttrListPtr &PAL, const std::string &name);
-    bool printTypeInternal(const Type* Ty);
-    inline void printType(const Type* Ty);
-    void printTypes(const Module* M);
-
-    void printConstant(const Constant *CPV);
-    void printConstants(const Module* M);
-
-    void printVariableUses(const GlobalVariable *GV);
-    void printVariableHead(const GlobalVariable *GV);
-    void printVariableBody(const GlobalVariable *GV);
-
-    void printFunctionUses(const Function *F);
-    void printFunctionHead(const Function *F);
-    void printFunctionBody(const Function *F);
-    void printInstruction(const Instruction *I, const std::string& bbname);
-    std::string getOpName(Value*);
-
-    void printModuleBody();
-  };
-
-  static unsigned indent_level = 0;
-  inline formatted_raw_ostream& nl(formatted_raw_ostream& Out, int delta = 0) {
-    Out << "\n";
-    if (delta >= 0 || indent_level >= unsigned(-delta))
-      indent_level += delta;
-    for (unsigned i = 0; i < indent_level; ++i)
-      Out << "  ";
-    return Out;
-  }
-
-  inline void in() { indent_level++; }
-  inline void out() { if (indent_level >0) indent_level--; }
-
-  inline void
-  sanitize(std::string& str) {
-    for (size_t i = 0; i < str.length(); ++i)
-      if (!isalnum(str[i]) && str[i] != '_')
-        str[i] = '_';
-  }
-
-  inline std::string
-  getTypePrefix(const Type* Ty ) {
-    switch (Ty->getTypeID()) {
-    case Type::VoidTyID:     return "void_";
-    case Type::IntegerTyID:
-      return std::string("int") + utostr(cast<IntegerType>(Ty)->getBitWidth()) +
-        "_";
-    case Type::FloatTyID:    return "float_";
-    case Type::DoubleTyID:   return "double_";
-    case Type::LabelTyID:    return "label_";
-    case Type::FunctionTyID: return "func_";
-    case Type::StructTyID:   return "struct_";
-    case Type::ArrayTyID:    return "array_";
-    case Type::PointerTyID:  return "ptr_";
-    case Type::VectorTyID:   return "packed_";
-    case Type::OpaqueTyID:   return "opaque_";
-    default:                 return "other_";
-    }
-    return "unknown_";
-  }
-
-  // Looks up the type in the symbol table and returns a pointer to its name or
-  // a null pointer if it wasn't found. Note that this isn't the same as the
-  // Mode::getTypeName function which will return an empty string, not a null
-  // pointer if the name is not found.
-  inline const std::string*
-  findTypeName(const TypeSymbolTable& ST, const Type* Ty) {
-    TypeSymbolTable::const_iterator TI = ST.begin();
-    TypeSymbolTable::const_iterator TE = ST.end();
-    for (;TI != TE; ++TI)
-      if (TI->second == Ty)
-        return &(TI->first);
-    return 0;
-  }
-
-  void CppWriter::error(const std::string& msg) {
-    llvm_report_error(msg);
-  }
-
-  // printCFP - Print a floating point constant .. very carefully :)
-  // This makes sure that conversion to/from floating yields the same binary
-  // result so that we don't lose precision.
-  void CppWriter::printCFP(const ConstantFP *CFP) {
-    bool ignored;
-    APFloat APF = APFloat(CFP->getValueAPF());  // copy
-    if (CFP->getType() == Type::getFloatTy(CFP->getContext()))
-      APF.convert(APFloat::IEEEdouble, APFloat::rmNearestTiesToEven, &ignored);
-    Out << "ConstantFP::get(getGlobalContext(), ";
-    Out << "APFloat(";
-#if HAVE_PRINTF_A
-    char Buffer[100];
-    sprintf(Buffer, "%A", APF.convertToDouble());
-    if ((!strncmp(Buffer, "0x", 2) ||
-         !strncmp(Buffer, "-0x", 3) ||
-         !strncmp(Buffer, "+0x", 3)) &&
-        APF.bitwiseIsEqual(APFloat(atof(Buffer)))) {
-      if (CFP->getType() == Type::getDoubleTy(CFP->getContext()))
-        Out << "BitsToDouble(" << Buffer << ")";
-      else
-        Out << "BitsToFloat((float)" << Buffer << ")";
-      Out << ")";
-    } else {
-#endif
-      std::string StrVal = ftostr(CFP->getValueAPF());
-
-      while (StrVal[0] == ' ')
-        StrVal.erase(StrVal.begin());
-
-      // Check to make sure that the stringized number is not some string like
-      // "Inf" or NaN.  Check that the string matches the "[-+]?[0-9]" regex.
-      if (((StrVal[0] >= '0' && StrVal[0] <= '9') ||
-           ((StrVal[0] == '-' || StrVal[0] == '+') &&
-            (StrVal[1] >= '0' && StrVal[1] <= '9'))) &&
-          (CFP->isExactlyValue(atof(StrVal.c_str())))) {
-        if (CFP->getType() == Type::getDoubleTy(CFP->getContext()))
-          Out <<  StrVal;
-        else
-          Out << StrVal << "f";
-      } else if (CFP->getType() == Type::getDoubleTy(CFP->getContext()))
-        Out << "BitsToDouble(0x"
-            << utohexstr(CFP->getValueAPF().bitcastToAPInt().getZExtValue())
-            << "ULL) /* " << StrVal << " */";
-      else
-        Out << "BitsToFloat(0x"
-            << utohexstr((uint32_t)CFP->getValueAPF().
-                                        bitcastToAPInt().getZExtValue())
-            << "U) /* " << StrVal << " */";
-      Out << ")";
-#if HAVE_PRINTF_A
-    }
-#endif
-    Out << ")";
-  }
-
-  void CppWriter::printCallingConv(unsigned cc){
-    // Print the calling convention.
-    switch (cc) {
-    case CallingConv::C:     Out << "CallingConv::C"; break;
-    case CallingConv::Fast:  Out << "CallingConv::Fast"; break;
-    case CallingConv::Cold:  Out << "CallingConv::Cold"; break;
-    case CallingConv::FirstTargetCC: Out << "CallingConv::FirstTargetCC"; break;
-    default:                 Out << cc; break;
-    }
-  }
-
-  void CppWriter::printLinkageType(GlobalValue::LinkageTypes LT) {
-    switch (LT) {
-    case GlobalValue::InternalLinkage:
-      Out << "GlobalValue::InternalLinkage"; break;
-    case GlobalValue::PrivateLinkage:
-      Out << "GlobalValue::PrivateLinkage"; break;
-    case GlobalValue::LinkerPrivateLinkage:
-      Out << "GlobalValue::LinkerPrivateLinkage"; break;
-    case GlobalValue::AvailableExternallyLinkage:
-      Out << "GlobalValue::AvailableExternallyLinkage "; break;
-    case GlobalValue::LinkOnceAnyLinkage:
-      Out << "GlobalValue::LinkOnceAnyLinkage "; break;
-    case GlobalValue::LinkOnceODRLinkage:
-      Out << "GlobalValue::LinkOnceODRLinkage "; break;
-    case GlobalValue::WeakAnyLinkage:
-      Out << "GlobalValue::WeakAnyLinkage"; break;
-    case GlobalValue::WeakODRLinkage:
-      Out << "GlobalValue::WeakODRLinkage"; break;
-    case GlobalValue::AppendingLinkage:
-      Out << "GlobalValue::AppendingLinkage"; break;
-    case GlobalValue::ExternalLinkage:
-      Out << "GlobalValue::ExternalLinkage"; break;
-    case GlobalValue::DLLImportLinkage:
-      Out << "GlobalValue::DLLImportLinkage"; break;
-    case GlobalValue::DLLExportLinkage:
-      Out << "GlobalValue::DLLExportLinkage"; break;
-    case GlobalValue::ExternalWeakLinkage:
-      Out << "GlobalValue::ExternalWeakLinkage"; break;
-    case GlobalValue::GhostLinkage:
-      Out << "GlobalValue::GhostLinkage"; break;
-    case GlobalValue::CommonLinkage:
-      Out << "GlobalValue::CommonLinkage"; break;
-    }
-  }
-
-  void CppWriter::printVisibilityType(GlobalValue::VisibilityTypes VisType) {
-    switch (VisType) {
-    default: llvm_unreachable("Unknown GVar visibility");
-    case GlobalValue::DefaultVisibility:
-      Out << "GlobalValue::DefaultVisibility";
-      break;
-    case GlobalValue::HiddenVisibility:
-      Out << "GlobalValue::HiddenVisibility";
-      break;
-    case GlobalValue::ProtectedVisibility:
-      Out << "GlobalValue::ProtectedVisibility";
-      break;
-    }
-  }
-
-  // printEscapedString - Print each character of the specified string, escaping
-  // it if it is not printable or if it is an escape char.
-  void CppWriter::printEscapedString(const std::string &Str) {
-    for (unsigned i = 0, e = Str.size(); i != e; ++i) {
-      unsigned char C = Str[i];
-      if (isprint(C) && C != '"' && C != '\\') {
-        Out << C;
-      } else {
-        Out << "\\x"
-            << (char) ((C/16  < 10) ? ( C/16 +'0') : ( C/16 -10+'A'))
-            << (char)(((C&15) < 10) ? ((C&15)+'0') : ((C&15)-10+'A'));
-      }
-    }
-  }
-
-  std::string CppWriter::getCppName(const Type* Ty) {
-    // First, handle the primitive types .. easy
-    if (Ty->isPrimitiveType() || Ty->isInteger()) {
-      switch (Ty->getTypeID()) {
-      case Type::VoidTyID:   return "Type::getVoidTy(getGlobalContext())";
-      case Type::IntegerTyID: {
-        unsigned BitWidth = cast<IntegerType>(Ty)->getBitWidth();
-        return "IntegerType::get(getGlobalContext(), " + utostr(BitWidth) + ")";
-      }
-      case Type::X86_FP80TyID: return "Type::getX86_FP80Ty(getGlobalContext())";
-      case Type::FloatTyID:    return "Type::getFloatTy(getGlobalContext())";
-      case Type::DoubleTyID:   return "Type::getDoubleTy(getGlobalContext())";
-      case Type::LabelTyID:    return "Type::getLabelTy(getGlobalContext())";
-      default:
-        error("Invalid primitive type");
-        break;
-      }
-      // shouldn't be returned, but make it sensible
-      return "Type::getVoidTy(getGlobalContext())";
-    }
-
-    // Now, see if we've seen the type before and return that
-    TypeMap::iterator I = TypeNames.find(Ty);
-    if (I != TypeNames.end())
-      return I->second;
-
-    // Okay, let's build a new name for this type. Start with a prefix
-    const char* prefix = 0;
-    switch (Ty->getTypeID()) {
-    case Type::FunctionTyID:    prefix = "FuncTy_"; break;
-    case Type::StructTyID:      prefix = "StructTy_"; break;
-    case Type::ArrayTyID:       prefix = "ArrayTy_"; break;
-    case Type::PointerTyID:     prefix = "PointerTy_"; break;
-    case Type::OpaqueTyID:      prefix = "OpaqueTy_"; break;
-    case Type::VectorTyID:      prefix = "VectorTy_"; break;
-    default:                    prefix = "OtherTy_"; break; // prevent breakage
-    }
-
-    // See if the type has a name in the symboltable and build accordingly
-    const std::string* tName = findTypeName(TheModule->getTypeSymbolTable(), Ty);
-    std::string name;
-    if (tName)
-      name = std::string(prefix) + *tName;
-    else
-      name = std::string(prefix) + utostr(uniqueNum++);
-    sanitize(name);
-
-    // Save the name
-    return TypeNames[Ty] = name;
-  }
-
-  void CppWriter::printCppName(const Type* Ty) {
-    printEscapedString(getCppName(Ty));
-  }
-
-  std::string CppWriter::getCppName(const Value* val) {
-    std::string name;
-    ValueMap::iterator I = ValueNames.find(val);
-    if (I != ValueNames.end() && I->first == val)
-      return  I->second;
-
-    if (const GlobalVariable* GV = dyn_cast<GlobalVariable>(val)) {
-      name = std::string("gvar_") +
-        getTypePrefix(GV->getType()->getElementType());
-    } else if (isa<Function>(val)) {
-      name = std::string("func_");
-    } else if (const Constant* C = dyn_cast<Constant>(val)) {
-      name = std::string("const_") + getTypePrefix(C->getType());
-    } else if (const Argument* Arg = dyn_cast<Argument>(val)) {
-      if (is_inline) {
-        unsigned argNum = std::distance(Arg->getParent()->arg_begin(),
-                                        Function::const_arg_iterator(Arg)) + 1;
-        name = std::string("arg_") + utostr(argNum);
-        NameSet::iterator NI = UsedNames.find(name);
-        if (NI != UsedNames.end())
-          name += std::string("_") + utostr(uniqueNum++);
-        UsedNames.insert(name);
-        return ValueNames[val] = name;
-      } else {
-        name = getTypePrefix(val->getType());
-      }
-    } else {
-      name = getTypePrefix(val->getType());
-    }
-    if (val->hasName())
-      name += val->getName();
-    else
-      name += utostr(uniqueNum++);
-    sanitize(name);
-    NameSet::iterator NI = UsedNames.find(name);
-    if (NI != UsedNames.end())
-      name += std::string("_") + utostr(uniqueNum++);
-    UsedNames.insert(name);
-    return ValueNames[val] = name;
-  }
-
-  void CppWriter::printCppName(const Value* val) {
-    printEscapedString(getCppName(val));
-  }
-
-  void CppWriter::printAttributes(const AttrListPtr &PAL,
-                                  const std::string &name) {
-    Out << "AttrListPtr " << name << "_PAL;";
-    nl(Out);
-    if (!PAL.isEmpty()) {
-      Out << '{'; in(); nl(Out);
-      Out << "SmallVector<AttributeWithIndex, 4> Attrs;"; nl(Out);
-      Out << "AttributeWithIndex PAWI;"; nl(Out);
-      for (unsigned i = 0; i < PAL.getNumSlots(); ++i) {
-        unsigned index = PAL.getSlot(i).Index;
-        Attributes attrs = PAL.getSlot(i).Attrs;
-        Out << "PAWI.Index = " << index << "U; PAWI.Attrs = 0 ";
-#define HANDLE_ATTR(X)                 \
-        if (attrs & Attribute::X)      \
-          Out << " | Attribute::" #X;  \
-        attrs &= ~Attribute::X;
-        
-        HANDLE_ATTR(SExt);
-        HANDLE_ATTR(ZExt);
-        HANDLE_ATTR(NoReturn);
-        HANDLE_ATTR(InReg);
-        HANDLE_ATTR(StructRet);
-        HANDLE_ATTR(NoUnwind);
-        HANDLE_ATTR(NoAlias);
-        HANDLE_ATTR(ByVal);
-        HANDLE_ATTR(Nest);
-        HANDLE_ATTR(ReadNone);
-        HANDLE_ATTR(ReadOnly);
-        HANDLE_ATTR(InlineHint);
-        HANDLE_ATTR(NoInline);
-        HANDLE_ATTR(AlwaysInline);
-        HANDLE_ATTR(OptimizeForSize);
-        HANDLE_ATTR(StackProtect);
-        HANDLE_ATTR(StackProtectReq);
-        HANDLE_ATTR(NoCapture);
-#undef HANDLE_ATTR
-        assert(attrs == 0 && "Unhandled attribute!");
-        Out << ";";
-        nl(Out);
-        Out << "Attrs.push_back(PAWI);";
-        nl(Out);
-      }
-      Out << name << "_PAL = AttrListPtr::get(Attrs.begin(), Attrs.end());";
-      nl(Out);
-      out(); nl(Out);
-      Out << '}'; nl(Out);
-    }
-  }
-
-  bool CppWriter::printTypeInternal(const Type* Ty) {
-    // We don't print definitions for primitive types
-    if (Ty->isPrimitiveType() || Ty->isInteger())
-      return false;
-
-    // If we already defined this type, we don't need to define it again.
-    if (DefinedTypes.find(Ty) != DefinedTypes.end())
-      return false;
-
-    // Everything below needs the name for the type so get it now.
-    std::string typeName(getCppName(Ty));
-
-    // Search the type stack for recursion. If we find it, then generate this
-    // as an OpaqueType, but make sure not to do this multiple times because
-    // the type could appear in multiple places on the stack. Once the opaque
-    // definition is issued, it must not be re-issued. Consequently we have to
-    // check the UnresolvedTypes list as well.
-    TypeList::const_iterator TI = std::find(TypeStack.begin(), TypeStack.end(),
-                                            Ty);
-    if (TI != TypeStack.end()) {
-      TypeMap::const_iterator I = UnresolvedTypes.find(Ty);
-      if (I == UnresolvedTypes.end()) {
-        Out << "PATypeHolder " << typeName;
-        Out << "_fwd = OpaqueType::get(getGlobalContext());";
-        nl(Out);
-        UnresolvedTypes[Ty] = typeName;
-      }
-      return true;
-    }
-
-    // We're going to print a derived type which, by definition, contains other
-    // types. So, push this one we're printing onto the type stack to assist with
-    // recursive definitions.
-    TypeStack.push_back(Ty);
-
-    // Print the type definition
-    switch (Ty->getTypeID()) {
-    case Type::FunctionTyID:  {
-      const FunctionType* FT = cast<FunctionType>(Ty);
-      Out << "std::vector<const Type*>" << typeName << "_args;";
-      nl(Out);
-      FunctionType::param_iterator PI = FT->param_begin();
-      FunctionType::param_iterator PE = FT->param_end();
-      for (; PI != PE; ++PI) {
-        const Type* argTy = static_cast<const Type*>(*PI);
-        bool isForward = printTypeInternal(argTy);
-        std::string argName(getCppName(argTy));
-        Out << typeName << "_args.push_back(" << argName;
-        if (isForward)
-          Out << "_fwd";
-        Out << ");";
-        nl(Out);
-      }
-      bool isForward = printTypeInternal(FT->getReturnType());
-      std::string retTypeName(getCppName(FT->getReturnType()));
-      Out << "FunctionType* " << typeName << " = FunctionType::get(";
-      in(); nl(Out) << "/*Result=*/" << retTypeName;
-      if (isForward)
-        Out << "_fwd";
-      Out << ",";
-      nl(Out) << "/*Params=*/" << typeName << "_args,";
-      nl(Out) << "/*isVarArg=*/" << (FT->isVarArg() ? "true" : "false") << ");";
-      out();
-      nl(Out);
-      break;
-    }
-    case Type::StructTyID: {
-      const StructType* ST = cast<StructType>(Ty);
-      Out << "std::vector<const Type*>" << typeName << "_fields;";
-      nl(Out);
-      StructType::element_iterator EI = ST->element_begin();
-      StructType::element_iterator EE = ST->element_end();
-      for (; EI != EE; ++EI) {
-        const Type* fieldTy = static_cast<const Type*>(*EI);
-        bool isForward = printTypeInternal(fieldTy);
-        std::string fieldName(getCppName(fieldTy));
-        Out << typeName << "_fields.push_back(" << fieldName;
-        if (isForward)
-          Out << "_fwd";
-        Out << ");";
-        nl(Out);
-      }
-      Out << "StructType* " << typeName << " = StructType::get("
-          << "mod->getContext(), "
-          << typeName << "_fields, /*isPacked=*/"
-          << (ST->isPacked() ? "true" : "false") << ");";
-      nl(Out);
-      break;
-    }
-    case Type::ArrayTyID: {
-      const ArrayType* AT = cast<ArrayType>(Ty);
-      const Type* ET = AT->getElementType();
-      bool isForward = printTypeInternal(ET);
-      std::string elemName(getCppName(ET));
-      Out << "ArrayType* " << typeName << " = ArrayType::get("
-          << elemName << (isForward ? "_fwd" : "")
-          << ", " << utostr(AT->getNumElements()) << ");";
-      nl(Out);
-      break;
-    }
-    case Type::PointerTyID: {
-      const PointerType* PT = cast<PointerType>(Ty);
-      const Type* ET = PT->getElementType();
-      bool isForward = printTypeInternal(ET);
-      std::string elemName(getCppName(ET));
-      Out << "PointerType* " << typeName << " = PointerType::get("
-          << elemName << (isForward ? "_fwd" : "")
-          << ", " << utostr(PT->getAddressSpace()) << ");";
-      nl(Out);
-      break;
-    }
-    case Type::VectorTyID: {
-      const VectorType* PT = cast<VectorType>(Ty);
-      const Type* ET = PT->getElementType();
-      bool isForward = printTypeInternal(ET);
-      std::string elemName(getCppName(ET));
-      Out << "VectorType* " << typeName << " = VectorType::get("
-          << elemName << (isForward ? "_fwd" : "")
-          << ", " << utostr(PT->getNumElements()) << ");";
-      nl(Out);
-      break;
-    }
-    case Type::OpaqueTyID: {
-      Out << "OpaqueType* " << typeName;
-      Out << " = OpaqueType::get(getGlobalContext());";
-      nl(Out);
-      break;
-    }
-    default:
-      error("Invalid TypeID");
-    }
-
-    // If the type had a name, make sure we recreate it.
-    const std::string* progTypeName =
-      findTypeName(TheModule->getTypeSymbolTable(),Ty);
-    if (progTypeName) {
-      Out << "mod->addTypeName(\"" << *progTypeName << "\", "
-          << typeName << ");";
-      nl(Out);
-    }
-
-    // Pop us off the type stack
-    TypeStack.pop_back();
-
-    // Indicate that this type is now defined.
-    DefinedTypes.insert(Ty);
-
-    // Early resolve as many unresolved types as possible. Search the unresolved
-    // types map for the type we just printed. Now that its definition is complete
-    // we can resolve any previous references to it. This prevents a cascade of
-    // unresolved types.
-    TypeMap::iterator I = UnresolvedTypes.find(Ty);
-    if (I != UnresolvedTypes.end()) {
-      Out << "cast<OpaqueType>(" << I->second
-          << "_fwd.get())->refineAbstractTypeTo(" << I->second << ");";
-      nl(Out);
-      Out << I->second << " = cast<";
-      switch (Ty->getTypeID()) {
-      case Type::FunctionTyID: Out << "FunctionType"; break;
-      case Type::ArrayTyID:    Out << "ArrayType"; break;
-      case Type::StructTyID:   Out << "StructType"; break;
-      case Type::VectorTyID:   Out << "VectorType"; break;
-      case Type::PointerTyID:  Out << "PointerType"; break;
-      case Type::OpaqueTyID:   Out << "OpaqueType"; break;
-      default:                 Out << "NoSuchDerivedType"; break;
-      }
-      Out << ">(" << I->second << "_fwd.get());";
-      nl(Out); nl(Out);
-      UnresolvedTypes.erase(I);
-    }
-
-    // Finally, separate the type definition from other with a newline.
-    nl(Out);
-
-    // We weren't a recursive type
-    return false;
-  }
-
-  // Prints a type definition. Returns true if it could not resolve all the
-  // types in the definition but had to use a forward reference.
-  void CppWriter::printType(const Type* Ty) {
-    assert(TypeStack.empty());
-    TypeStack.clear();
-    printTypeInternal(Ty);
-    assert(TypeStack.empty());
-  }
-
-  void CppWriter::printTypes(const Module* M) {
-    // Walk the symbol table and print out all its types
-    const TypeSymbolTable& symtab = M->getTypeSymbolTable();
-    for (TypeSymbolTable::const_iterator TI = symtab.begin(), TE = symtab.end();
-         TI != TE; ++TI) {
-
-      // For primitive types and types already defined, just add a name
-      TypeMap::const_iterator TNI = TypeNames.find(TI->second);
-      if (TI->second->isInteger() || TI->second->isPrimitiveType() ||
-          TNI != TypeNames.end()) {
-        Out << "mod->addTypeName(\"";
-        printEscapedString(TI->first);
-        Out << "\", " << getCppName(TI->second) << ");";
-        nl(Out);
-        // For everything else, define the type
-      } else {
-        printType(TI->second);
-      }
-    }
-
-    // Add all of the global variables to the value table...
-    for (Module::const_global_iterator I = TheModule->global_begin(),
-           E = TheModule->global_end(); I != E; ++I) {
-      if (I->hasInitializer())
-        printType(I->getInitializer()->getType());
-      printType(I->getType());
-    }
-
-    // Add all the functions to the table
-    for (Module::const_iterator FI = TheModule->begin(), FE = TheModule->end();
-         FI != FE; ++FI) {
-      printType(FI->getReturnType());
-      printType(FI->getFunctionType());
-      // Add all the function arguments
-      for (Function::const_arg_iterator AI = FI->arg_begin(),
-             AE = FI->arg_end(); AI != AE; ++AI) {
-        printType(AI->getType());
-      }
-
-      // Add all of the basic blocks and instructions
-      for (Function::const_iterator BB = FI->begin(),
-             E = FI->end(); BB != E; ++BB) {
-        printType(BB->getType());
-        for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E;
-             ++I) {
-          printType(I->getType());
-          for (unsigned i = 0; i < I->getNumOperands(); ++i)
-            printType(I->getOperand(i)->getType());
-        }
-      }
-    }
-  }
-
-
-  // printConstant - Print out a constant pool entry...
-  void CppWriter::printConstant(const Constant *CV) {
-    // First, if the constant is actually a GlobalValue (variable or function)
-    // or its already in the constant list then we've printed it already and we
-    // can just return.
-    if (isa<GlobalValue>(CV) || ValueNames.find(CV) != ValueNames.end())
-      return;
-
-    std::string constName(getCppName(CV));
-    std::string typeName(getCppName(CV->getType()));
-
-    if (isa<GlobalValue>(CV)) {
-      // Skip variables and functions, we emit them elsewhere
-      return;
-    }
-
-    if (const ConstantInt *CI = dyn_cast<ConstantInt>(CV)) {
-      std::string constValue = CI->getValue().toString(10, true);
-      Out << "ConstantInt* " << constName
-          << " = ConstantInt::get(getGlobalContext(), APInt("
-          << cast<IntegerType>(CI->getType())->getBitWidth()
-          << ",  StringRef(\"" <<  constValue << "\"), 10));";
-    } else if (isa<ConstantAggregateZero>(CV)) {
-      Out << "ConstantAggregateZero* " << constName
-          << " = ConstantAggregateZero::get(" << typeName << ");";
-    } else if (isa<ConstantPointerNull>(CV)) {
-      Out << "ConstantPointerNull* " << constName
-          << " = ConstantPointerNull::get(" << typeName << ");";
-    } else if (const ConstantFP *CFP = dyn_cast<ConstantFP>(CV)) {
-      Out << "ConstantFP* " << constName << " = ";
-      printCFP(CFP);
-      Out << ";";
-    } else if (const ConstantArray *CA = dyn_cast<ConstantArray>(CV)) {
-      if (CA->isString() &&
-          CA->getType()->getElementType() ==
-              Type::getInt8Ty(CA->getContext())) {
-        Out << "Constant* " << constName <<
-               " = ConstantArray::get(getGlobalContext(), \"";
-        std::string tmp = CA->getAsString();
-        bool nullTerminate = false;
-        if (tmp[tmp.length()-1] == 0) {
-          tmp.erase(tmp.length()-1);
-          nullTerminate = true;
-        }
-        printEscapedString(tmp);
-        // Determine if we want null termination or not.
-        if (nullTerminate)
-          Out << "\", true"; // Indicate that the null terminator should be
-                             // added.
-        else
-          Out << "\", false";// No null terminator
-        Out << ");";
-      } else {
-        Out << "std::vector<Constant*> " << constName << "_elems;";
-        nl(Out);
-        unsigned N = CA->getNumOperands();
-        for (unsigned i = 0; i < N; ++i) {
-          printConstant(CA->getOperand(i)); // recurse to print operands
-          Out << constName << "_elems.push_back("
-              << getCppName(CA->getOperand(i)) << ");";
-          nl(Out);
-        }
-        Out << "Constant* " << constName << " = ConstantArray::get("
-            << typeName << ", " << constName << "_elems);";
-      }
-    } else if (const ConstantStruct *CS = dyn_cast<ConstantStruct>(CV)) {
-      Out << "std::vector<Constant*> " << constName << "_fields;";
-      nl(Out);
-      unsigned N = CS->getNumOperands();
-      for (unsigned i = 0; i < N; i++) {
-        printConstant(CS->getOperand(i));
-        Out << constName << "_fields.push_back("
-            << getCppName(CS->getOperand(i)) << ");";
-        nl(Out);
-      }
-      Out << "Constant* " << constName << " = ConstantStruct::get("
-          << typeName << ", " << constName << "_fields);";
-    } else if (const ConstantVector *CP = dyn_cast<ConstantVector>(CV)) {
-      Out << "std::vector<Constant*> " << constName << "_elems;";
-      nl(Out);
-      unsigned N = CP->getNumOperands();
-      for (unsigned i = 0; i < N; ++i) {
-        printConstant(CP->getOperand(i));
-        Out << constName << "_elems.push_back("
-            << getCppName(CP->getOperand(i)) << ");";
-        nl(Out);
-      }
-      Out << "Constant* " << constName << " = ConstantVector::get("
-          << typeName << ", " << constName << "_elems);";
-    } else if (isa<UndefValue>(CV)) {
-      Out << "UndefValue* " << constName << " = UndefValue::get("
-          << typeName << ");";
-    } else if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(CV)) {
-      if (CE->getOpcode() == Instruction::GetElementPtr) {
-        Out << "std::vector<Constant*> " << constName << "_indices;";
-        nl(Out);
-        printConstant(CE->getOperand(0));
-        for (unsigned i = 1; i < CE->getNumOperands(); ++i ) {
-          printConstant(CE->getOperand(i));
-          Out << constName << "_indices.push_back("
-              << getCppName(CE->getOperand(i)) << ");";
-          nl(Out);
-        }
-        Out << "Constant* " << constName
-            << " = ConstantExpr::getGetElementPtr("
-            << getCppName(CE->getOperand(0)) << ", "
-            << "&" << constName << "_indices[0], "
-            << constName << "_indices.size()"
-            << " );";
-      } else if (CE->isCast()) {
-        printConstant(CE->getOperand(0));
-        Out << "Constant* " << constName << " = ConstantExpr::getCast(";
-        switch (CE->getOpcode()) {
-        default: llvm_unreachable("Invalid cast opcode");
-        case Instruction::Trunc: Out << "Instruction::Trunc"; break;
-        case Instruction::ZExt:  Out << "Instruction::ZExt"; break;
-        case Instruction::SExt:  Out << "Instruction::SExt"; break;
-        case Instruction::FPTrunc:  Out << "Instruction::FPTrunc"; break;
-        case Instruction::FPExt:  Out << "Instruction::FPExt"; break;
-        case Instruction::FPToUI:  Out << "Instruction::FPToUI"; break;
-        case Instruction::FPToSI:  Out << "Instruction::FPToSI"; break;
-        case Instruction::UIToFP:  Out << "Instruction::UIToFP"; break;
-        case Instruction::SIToFP:  Out << "Instruction::SIToFP"; break;
-        case Instruction::PtrToInt:  Out << "Instruction::PtrToInt"; break;
-        case Instruction::IntToPtr:  Out << "Instruction::IntToPtr"; break;
-        case Instruction::BitCast:  Out << "Instruction::BitCast"; break;
-        }
-        Out << ", " << getCppName(CE->getOperand(0)) << ", "
-            << getCppName(CE->getType()) << ");";
-      } else {
-        unsigned N = CE->getNumOperands();
-        for (unsigned i = 0; i < N; ++i ) {
-          printConstant(CE->getOperand(i));
-        }
-        Out << "Constant* " << constName << " = ConstantExpr::";
-        switch (CE->getOpcode()) {
-        case Instruction::Add:    Out << "getAdd(";  break;
-        case Instruction::FAdd:   Out << "getFAdd(";  break;
-        case Instruction::Sub:    Out << "getSub("; break;
-        case Instruction::FSub:   Out << "getFSub("; break;
-        case Instruction::Mul:    Out << "getMul("; break;
-        case Instruction::FMul:   Out << "getFMul("; break;
-        case Instruction::UDiv:   Out << "getUDiv("; break;
-        case Instruction::SDiv:   Out << "getSDiv("; break;
-        case Instruction::FDiv:   Out << "getFDiv("; break;
-        case Instruction::URem:   Out << "getURem("; break;
-        case Instruction::SRem:   Out << "getSRem("; break;
-        case Instruction::FRem:   Out << "getFRem("; break;
-        case Instruction::And:    Out << "getAnd("; break;
-        case Instruction::Or:     Out << "getOr("; break;
-        case Instruction::Xor:    Out << "getXor("; break;
-        case Instruction::ICmp:
-          Out << "getICmp(ICmpInst::ICMP_";
-          switch (CE->getPredicate()) {
-          case ICmpInst::ICMP_EQ:  Out << "EQ"; break;
-          case ICmpInst::ICMP_NE:  Out << "NE"; break;
-          case ICmpInst::ICMP_SLT: Out << "SLT"; break;
-          case ICmpInst::ICMP_ULT: Out << "ULT"; break;
-          case ICmpInst::ICMP_SGT: Out << "SGT"; break;
-          case ICmpInst::ICMP_UGT: Out << "UGT"; break;
-          case ICmpInst::ICMP_SLE: Out << "SLE"; break;
-          case ICmpInst::ICMP_ULE: Out << "ULE"; break;
-          case ICmpInst::ICMP_SGE: Out << "SGE"; break;
-          case ICmpInst::ICMP_UGE: Out << "UGE"; break;
-          default: error("Invalid ICmp Predicate");
-          }
-          break;
-        case Instruction::FCmp:
-          Out << "getFCmp(FCmpInst::FCMP_";
-          switch (CE->getPredicate()) {
-          case FCmpInst::FCMP_FALSE: Out << "FALSE"; break;
-          case FCmpInst::FCMP_ORD:   Out << "ORD"; break;
-          case FCmpInst::FCMP_UNO:   Out << "UNO"; break;
-          case FCmpInst::FCMP_OEQ:   Out << "OEQ"; break;
-          case FCmpInst::FCMP_UEQ:   Out << "UEQ"; break;
-          case FCmpInst::FCMP_ONE:   Out << "ONE"; break;
-          case FCmpInst::FCMP_UNE:   Out << "UNE"; break;
-          case FCmpInst::FCMP_OLT:   Out << "OLT"; break;
-          case FCmpInst::FCMP_ULT:   Out << "ULT"; break;
-          case FCmpInst::FCMP_OGT:   Out << "OGT"; break;
-          case FCmpInst::FCMP_UGT:   Out << "UGT"; break;
-          case FCmpInst::FCMP_OLE:   Out << "OLE"; break;
-          case FCmpInst::FCMP_ULE:   Out << "ULE"; break;
-          case FCmpInst::FCMP_OGE:   Out << "OGE"; break;
-          case FCmpInst::FCMP_UGE:   Out << "UGE"; break;
-          case FCmpInst::FCMP_TRUE:  Out << "TRUE"; break;
-          default: error("Invalid FCmp Predicate");
-          }
-          break;
-        case Instruction::Shl:     Out << "getShl("; break;
-        case Instruction::LShr:    Out << "getLShr("; break;
-        case Instruction::AShr:    Out << "getAShr("; break;
-        case Instruction::Select:  Out << "getSelect("; break;
-        case Instruction::ExtractElement: Out << "getExtractElement("; break;
-        case Instruction::InsertElement:  Out << "getInsertElement("; break;
-        case Instruction::ShuffleVector:  Out << "getShuffleVector("; break;
-        default:
-          error("Invalid constant expression");
-          break;
-        }
-        Out << getCppName(CE->getOperand(0));
-        for (unsigned i = 1; i < CE->getNumOperands(); ++i)
-          Out << ", " << getCppName(CE->getOperand(i));
-        Out << ");";
-      }
-    } else {
-      error("Bad Constant");
-      Out << "Constant* " << constName << " = 0; ";
-    }
-    nl(Out);
-  }
-
-  void CppWriter::printConstants(const Module* M) {
-    // Traverse all the global variables looking for constant initializers
-    for (Module::const_global_iterator I = TheModule->global_begin(),
-           E = TheModule->global_end(); I != E; ++I)
-      if (I->hasInitializer())
-        printConstant(I->getInitializer());
-
-    // Traverse the LLVM functions looking for constants
-    for (Module::const_iterator FI = TheModule->begin(), FE = TheModule->end();
-         FI != FE; ++FI) {
-      // Add all of the basic blocks and instructions
-      for (Function::const_iterator BB = FI->begin(),
-             E = FI->end(); BB != E; ++BB) {
-        for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E;
-             ++I) {
-          for (unsigned i = 0; i < I->getNumOperands(); ++i) {
-            if (Constant* C = dyn_cast<Constant>(I->getOperand(i))) {
-              printConstant(C);
-            }
-          }
-        }
-      }
-    }
-  }
-
-  void CppWriter::printVariableUses(const GlobalVariable *GV) {
-    nl(Out) << "// Type Definitions";
-    nl(Out);
-    printType(GV->getType());
-    if (GV->hasInitializer()) {
-      Constant* Init = GV->getInitializer();
-      printType(Init->getType());
-      if (Function* F = dyn_cast<Function>(Init)) {
-        nl(Out)<< "/ Function Declarations"; nl(Out);
-        printFunctionHead(F);
-      } else if (GlobalVariable* gv = dyn_cast<GlobalVariable>(Init)) {
-        nl(Out) << "// Global Variable Declarations"; nl(Out);
-        printVariableHead(gv);
-      } else  {
-        nl(Out) << "// Constant Definitions"; nl(Out);
-        printConstant(gv);
-      }
-      if (GlobalVariable* gv = dyn_cast<GlobalVariable>(Init)) {
-        nl(Out) << "// Global Variable Definitions"; nl(Out);
-        printVariableBody(gv);
-      }
-    }
-  }
-
-  void CppWriter::printVariableHead(const GlobalVariable *GV) {
-    nl(Out) << "GlobalVariable* " << getCppName(GV);
-    if (is_inline) {
-      Out << " = mod->getGlobalVariable(getGlobalContext(), ";
-      printEscapedString(GV->getName());
-      Out << ", " << getCppName(GV->getType()->getElementType()) << ",true)";
-      nl(Out) << "if (!" << getCppName(GV) << ") {";
-      in(); nl(Out) << getCppName(GV);
-    }
-    Out << " = new GlobalVariable(/*Module=*/*mod, ";
-    nl(Out) << "/*Type=*/";
-    printCppName(GV->getType()->getElementType());
-    Out << ",";
-    nl(Out) << "/*isConstant=*/" << (GV->isConstant()?"true":"false");
-    Out << ",";
-    nl(Out) << "/*Linkage=*/";
-    printLinkageType(GV->getLinkage());
-    Out << ",";
-    nl(Out) << "/*Initializer=*/0, ";
-    if (GV->hasInitializer()) {
-      Out << "// has initializer, specified below";
-    }
-    nl(Out) << "/*Name=*/\"";
-    printEscapedString(GV->getName());
-    Out << "\");";
-    nl(Out);
-
-    if (GV->hasSection()) {
-      printCppName(GV);
-      Out << "->setSection(\"";
-      printEscapedString(GV->getSection());
-      Out << "\");";
-      nl(Out);
-    }
-    if (GV->getAlignment()) {
-      printCppName(GV);
-      Out << "->setAlignment(" << utostr(GV->getAlignment()) << ");";
-      nl(Out);
-    }
-    if (GV->getVisibility() != GlobalValue::DefaultVisibility) {
-      printCppName(GV);
-      Out << "->setVisibility(";
-      printVisibilityType(GV->getVisibility());
-      Out << ");";
-      nl(Out);
-    }
-    if (is_inline) {
-      out(); Out << "}"; nl(Out);
-    }
-  }
-
-  void CppWriter::printVariableBody(const GlobalVariable *GV) {
-    if (GV->hasInitializer()) {
-      printCppName(GV);
-      Out << "->setInitializer(";
-      Out << getCppName(GV->getInitializer()) << ");";
-      nl(Out);
-    }
-  }
-
-  std::string CppWriter::getOpName(Value* V) {
-    if (!isa<Instruction>(V) || DefinedValues.find(V) != DefinedValues.end())
-      return getCppName(V);
-
-    // See if its alread in the map of forward references, if so just return the
-    // name we already set up for it
-    ForwardRefMap::const_iterator I = ForwardRefs.find(V);
-    if (I != ForwardRefs.end())
-      return I->second;
-
-    // This is a new forward reference. Generate a unique name for it
-    std::string result(std::string("fwdref_") + utostr(uniqueNum++));
-
-    // Yes, this is a hack. An Argument is the smallest instantiable value that
-    // we can make as a placeholder for the real value. We'll replace these
-    // Argument instances later.
-    Out << "Argument* " << result << " = new Argument("
-        << getCppName(V->getType()) << ");";
-    nl(Out);
-    ForwardRefs[V] = result;
-    return result;
-  }
-
-  // printInstruction - This member is called for each Instruction in a function.
-  void CppWriter::printInstruction(const Instruction *I,
-                                   const std::string& bbname) {
-    std::string iName(getCppName(I));
-
-    // Before we emit this instruction, we need to take care of generating any
-    // forward references. So, we get the names of all the operands in advance
-    std::string* opNames = new std::string[I->getNumOperands()];
-    for (unsigned i = 0; i < I->getNumOperands(); i++) {
-      opNames[i] = getOpName(I->getOperand(i));
-    }
-
-    switch (I->getOpcode()) {
-    default:
-      error("Invalid instruction");
-      break;
-
-    case Instruction::Ret: {
-      const ReturnInst* ret =  cast<ReturnInst>(I);
-      Out << "ReturnInst::Create(getGlobalContext(), "
-          << (ret->getReturnValue() ? opNames[0] + ", " : "") << bbname << ");";
-      break;
-    }
-    case Instruction::Br: {
-      const BranchInst* br = cast<BranchInst>(I);
-      Out << "BranchInst::Create(" ;
-      if (br->getNumOperands() == 3 ) {
-        Out << opNames[2] << ", "
-            << opNames[1] << ", "
-            << opNames[0] << ", ";
-
-      } else if (br->getNumOperands() == 1) {
-        Out << opNames[0] << ", ";
-      } else {
-        error("Branch with 2 operands?");
-      }
-      Out << bbname << ");";
-      break;
-    }
-    case Instruction::Switch: {
-      const SwitchInst* sw = cast<SwitchInst>(I);
-      Out << "SwitchInst* " << iName << " = SwitchInst::Create("
-          << opNames[0] << ", "
-          << opNames[1] << ", "
-          << sw->getNumCases() << ", " << bbname << ");";
-      nl(Out);
-      for (unsigned i = 2; i < sw->getNumOperands(); i += 2 ) {
-        Out << iName << "->addCase("
-            << opNames[i] << ", "
-            << opNames[i+1] << ");";
-        nl(Out);
-      }
-      break;
-    }
-    case Instruction::Invoke: {
-      const InvokeInst* inv = cast<InvokeInst>(I);
-      Out << "std::vector<Value*> " << iName << "_params;";
-      nl(Out);
-      for (unsigned i = 3; i < inv->getNumOperands(); ++i) {
-        Out << iName << "_params.push_back("
-            << opNames[i] << ");";
-        nl(Out);
-      }
-      Out << "InvokeInst *" << iName << " = InvokeInst::Create("
-          << opNames[0] << ", "
-          << opNames[1] << ", "
-          << opNames[2] << ", "
-          << iName << "_params.begin(), " << iName << "_params.end(), \"";
-      printEscapedString(inv->getName());
-      Out << "\", " << bbname << ");";
-      nl(Out) << iName << "->setCallingConv(";
-      printCallingConv(inv->getCallingConv());
-      Out << ");";
-      printAttributes(inv->getAttributes(), iName);
-      Out << iName << "->setAttributes(" << iName << "_PAL);";
-      nl(Out);
-      break;
-    }
-    case Instruction::Unwind: {
-      Out << "new UnwindInst("
-          << bbname << ");";
-      break;
-    }
-    case Instruction::Unreachable: {
-      Out << "new UnreachableInst("
-          << "getGlobalContext(), "
-          << bbname << ");";
-      break;
-    }
-    case Instruction::Add:
-    case Instruction::FAdd:
-    case Instruction::Sub:
-    case Instruction::FSub:
-    case Instruction::Mul:
-    case Instruction::FMul:
-    case Instruction::UDiv:
-    case Instruction::SDiv:
-    case Instruction::FDiv:
-    case Instruction::URem:
-    case Instruction::SRem:
-    case Instruction::FRem:
-    case Instruction::And:
-    case Instruction::Or:
-    case Instruction::Xor:
-    case Instruction::Shl:
-    case Instruction::LShr:
-    case Instruction::AShr:{
-      Out << "BinaryOperator* " << iName << " = BinaryOperator::Create(";
-      switch (I->getOpcode()) {
-      case Instruction::Add: Out << "Instruction::Add"; break;
-      case Instruction::FAdd: Out << "Instruction::FAdd"; break;
-      case Instruction::Sub: Out << "Instruction::Sub"; break;
-      case Instruction::FSub: Out << "Instruction::FSub"; break;
-      case Instruction::Mul: Out << "Instruction::Mul"; break;
-      case Instruction::FMul: Out << "Instruction::FMul"; break;
-      case Instruction::UDiv:Out << "Instruction::UDiv"; break;
-      case Instruction::SDiv:Out << "Instruction::SDiv"; break;
-      case Instruction::FDiv:Out << "Instruction::FDiv"; break;
-      case Instruction::URem:Out << "Instruction::URem"; break;
-      case Instruction::SRem:Out << "Instruction::SRem"; break;
-      case Instruction::FRem:Out << "Instruction::FRem"; break;
-      case Instruction::And: Out << "Instruction::And"; break;
-      case Instruction::Or:  Out << "Instruction::Or";  break;
-      case Instruction::Xor: Out << "Instruction::Xor"; break;
-      case Instruction::Shl: Out << "Instruction::Shl"; break;
-      case Instruction::LShr:Out << "Instruction::LShr"; break;
-      case Instruction::AShr:Out << "Instruction::AShr"; break;
-      default: Out << "Instruction::BadOpCode"; break;
-      }
-      Out << ", " << opNames[0] << ", " << opNames[1] << ", \"";
-      printEscapedString(I->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::FCmp: {
-      Out << "FCmpInst* " << iName << " = new FCmpInst(*" << bbname << ", ";
-      switch (cast<FCmpInst>(I)->getPredicate()) {
-      case FCmpInst::FCMP_FALSE: Out << "FCmpInst::FCMP_FALSE"; break;
-      case FCmpInst::FCMP_OEQ  : Out << "FCmpInst::FCMP_OEQ"; break;
-      case FCmpInst::FCMP_OGT  : Out << "FCmpInst::FCMP_OGT"; break;
-      case FCmpInst::FCMP_OGE  : Out << "FCmpInst::FCMP_OGE"; break;
-      case FCmpInst::FCMP_OLT  : Out << "FCmpInst::FCMP_OLT"; break;
-      case FCmpInst::FCMP_OLE  : Out << "FCmpInst::FCMP_OLE"; break;
-      case FCmpInst::FCMP_ONE  : Out << "FCmpInst::FCMP_ONE"; break;
-      case FCmpInst::FCMP_ORD  : Out << "FCmpInst::FCMP_ORD"; break;
-      case FCmpInst::FCMP_UNO  : Out << "FCmpInst::FCMP_UNO"; break;
-      case FCmpInst::FCMP_UEQ  : Out << "FCmpInst::FCMP_UEQ"; break;
-      case FCmpInst::FCMP_UGT  : Out << "FCmpInst::FCMP_UGT"; break;
-      case FCmpInst::FCMP_UGE  : Out << "FCmpInst::FCMP_UGE"; break;
-      case FCmpInst::FCMP_ULT  : Out << "FCmpInst::FCMP_ULT"; break;
-      case FCmpInst::FCMP_ULE  : Out << "FCmpInst::FCMP_ULE"; break;
-      case FCmpInst::FCMP_UNE  : Out << "FCmpInst::FCMP_UNE"; break;
-      case FCmpInst::FCMP_TRUE : Out << "FCmpInst::FCMP_TRUE"; break;
-      default: Out << "FCmpInst::BAD_ICMP_PREDICATE"; break;
-      }
-      Out << ", " << opNames[0] << ", " << opNames[1] << ", \"";
-      printEscapedString(I->getName());
-      Out << "\");";
-      break;
-    }
-    case Instruction::ICmp: {
-      Out << "ICmpInst* " << iName << " = new ICmpInst(*" << bbname << ", ";
-      switch (cast<ICmpInst>(I)->getPredicate()) {
-      case ICmpInst::ICMP_EQ:  Out << "ICmpInst::ICMP_EQ";  break;
-      case ICmpInst::ICMP_NE:  Out << "ICmpInst::ICMP_NE";  break;
-      case ICmpInst::ICMP_ULE: Out << "ICmpInst::ICMP_ULE"; break;
-      case ICmpInst::ICMP_SLE: Out << "ICmpInst::ICMP_SLE"; break;
-      case ICmpInst::ICMP_UGE: Out << "ICmpInst::ICMP_UGE"; break;
-      case ICmpInst::ICMP_SGE: Out << "ICmpInst::ICMP_SGE"; break;
-      case ICmpInst::ICMP_ULT: Out << "ICmpInst::ICMP_ULT"; break;
-      case ICmpInst::ICMP_SLT: Out << "ICmpInst::ICMP_SLT"; break;
-      case ICmpInst::ICMP_UGT: Out << "ICmpInst::ICMP_UGT"; break;
-      case ICmpInst::ICMP_SGT: Out << "ICmpInst::ICMP_SGT"; break;
-      default: Out << "ICmpInst::BAD_ICMP_PREDICATE"; break;
-      }
-      Out << ", " << opNames[0] << ", " << opNames[1] << ", \"";
-      printEscapedString(I->getName());
-      Out << "\");";
-      break;
-    }
-    case Instruction::Malloc: {
-      const MallocInst* mallocI = cast<MallocInst>(I);
-      Out << "MallocInst* " << iName << " = new MallocInst("
-          << getCppName(mallocI->getAllocatedType()) << ", ";
-      if (mallocI->isArrayAllocation())
-        Out << opNames[0] << ", " ;
-      Out << "\"";
-      printEscapedString(mallocI->getName());
-      Out << "\", " << bbname << ");";
-      if (mallocI->getAlignment())
-        nl(Out) << iName << "->setAlignment("
-            << mallocI->getAlignment() << ");";
-      break;
-    }
-    case Instruction::Free: {
-      Out << "FreeInst* " << iName << " = new FreeInst("
-          << getCppName(I->getOperand(0)) << ", " << bbname << ");";
-      break;
-    }
-    case Instruction::Alloca: {
-      const AllocaInst* allocaI = cast<AllocaInst>(I);
-      Out << "AllocaInst* " << iName << " = new AllocaInst("
-          << getCppName(allocaI->getAllocatedType()) << ", ";
-      if (allocaI->isArrayAllocation())
-        Out << opNames[0] << ", ";
-      Out << "\"";
-      printEscapedString(allocaI->getName());
-      Out << "\", " << bbname << ");";
-      if (allocaI->getAlignment())
-        nl(Out) << iName << "->setAlignment("
-            << allocaI->getAlignment() << ");";
-      break;
-    }
-    case Instruction::Load:{
-      const LoadInst* load = cast<LoadInst>(I);
-      Out << "LoadInst* " << iName << " = new LoadInst("
-          << opNames[0] << ", \"";
-      printEscapedString(load->getName());
-      Out << "\", " << (load->isVolatile() ? "true" : "false" )
-          << ", " << bbname << ");";
-      break;
-    }
-    case Instruction::Store: {
-      const StoreInst* store = cast<StoreInst>(I);
-      Out << " new StoreInst("
-          << opNames[0] << ", "
-          << opNames[1] << ", "
-          << (store->isVolatile() ? "true" : "false")
-          << ", " << bbname << ");";
-      break;
-    }
-    case Instruction::GetElementPtr: {
-      const GetElementPtrInst* gep = cast<GetElementPtrInst>(I);
-      if (gep->getNumOperands() <= 2) {
-        Out << "GetElementPtrInst* " << iName << " = GetElementPtrInst::Create("
-            << opNames[0];
-        if (gep->getNumOperands() == 2)
-          Out << ", " << opNames[1];
-      } else {
-        Out << "std::vector<Value*> " << iName << "_indices;";
-        nl(Out);
-        for (unsigned i = 1; i < gep->getNumOperands(); ++i ) {
-          Out << iName << "_indices.push_back("
-              << opNames[i] << ");";
-          nl(Out);
-        }
-        Out << "Instruction* " << iName << " = GetElementPtrInst::Create("
-            << opNames[0] << ", " << iName << "_indices.begin(), "
-            << iName << "_indices.end()";
-      }
-      Out << ", \"";
-      printEscapedString(gep->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::PHI: {
-      const PHINode* phi = cast<PHINode>(I);
-
-      Out << "PHINode* " << iName << " = PHINode::Create("
-          << getCppName(phi->getType()) << ", \"";
-      printEscapedString(phi->getName());
-      Out << "\", " << bbname << ");";
-      nl(Out) << iName << "->reserveOperandSpace("
-        << phi->getNumIncomingValues()
-          << ");";
-      nl(Out);
-      for (unsigned i = 0; i < phi->getNumOperands(); i+=2) {
-        Out << iName << "->addIncoming("
-            << opNames[i] << ", " << opNames[i+1] << ");";
-        nl(Out);
-      }
-      break;
-    }
-    case Instruction::Trunc:
-    case Instruction::ZExt:
-    case Instruction::SExt:
-    case Instruction::FPTrunc:
-    case Instruction::FPExt:
-    case Instruction::FPToUI:
-    case Instruction::FPToSI:
-    case Instruction::UIToFP:
-    case Instruction::SIToFP:
-    case Instruction::PtrToInt:
-    case Instruction::IntToPtr:
-    case Instruction::BitCast: {
-      const CastInst* cst = cast<CastInst>(I);
-      Out << "CastInst* " << iName << " = new ";
-      switch (I->getOpcode()) {
-      case Instruction::Trunc:    Out << "TruncInst"; break;
-      case Instruction::ZExt:     Out << "ZExtInst"; break;
-      case Instruction::SExt:     Out << "SExtInst"; break;
-      case Instruction::FPTrunc:  Out << "FPTruncInst"; break;
-      case Instruction::FPExt:    Out << "FPExtInst"; break;
-      case Instruction::FPToUI:   Out << "FPToUIInst"; break;
-      case Instruction::FPToSI:   Out << "FPToSIInst"; break;
-      case Instruction::UIToFP:   Out << "UIToFPInst"; break;
-      case Instruction::SIToFP:   Out << "SIToFPInst"; break;
-      case Instruction::PtrToInt: Out << "PtrToIntInst"; break;
-      case Instruction::IntToPtr: Out << "IntToPtrInst"; break;
-      case Instruction::BitCast:  Out << "BitCastInst"; break;
-      default: assert(!"Unreachable"); break;
-      }
-      Out << "(" << opNames[0] << ", "
-          << getCppName(cst->getType()) << ", \"";
-      printEscapedString(cst->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::Call:{
-      const CallInst* call = cast<CallInst>(I);
-      if (const InlineAsm* ila = dyn_cast<InlineAsm>(call->getCalledValue())) {
-        Out << "InlineAsm* " << getCppName(ila) << " = InlineAsm::get("
-            << getCppName(ila->getFunctionType()) << ", \""
-            << ila->getAsmString() << "\", \""
-            << ila->getConstraintString() << "\","
-            << (ila->hasSideEffects() ? "true" : "false") << ");";
-        nl(Out);
-      }
-      if (call->getNumOperands() > 2) {
-        Out << "std::vector<Value*> " << iName << "_params;";
-        nl(Out);
-        for (unsigned i = 1; i < call->getNumOperands(); ++i) {
-          Out << iName << "_params.push_back(" << opNames[i] << ");";
-          nl(Out);
-        }
-        Out << "CallInst* " << iName << " = CallInst::Create("
-            << opNames[0] << ", " << iName << "_params.begin(), "
-            << iName << "_params.end(), \"";
-      } else if (call->getNumOperands() == 2) {
-        Out << "CallInst* " << iName << " = CallInst::Create("
-            << opNames[0] << ", " << opNames[1] << ", \"";
-      } else {
-        Out << "CallInst* " << iName << " = CallInst::Create(" << opNames[0]
-            << ", \"";
-      }
-      printEscapedString(call->getName());
-      Out << "\", " << bbname << ");";
-      nl(Out) << iName << "->setCallingConv(";
-      printCallingConv(call->getCallingConv());
-      Out << ");";
-      nl(Out) << iName << "->setTailCall("
-          << (call->isTailCall() ? "true":"false");
-      Out << ");";
-      printAttributes(call->getAttributes(), iName);
-      Out << iName << "->setAttributes(" << iName << "_PAL);";
-      nl(Out);
-      break;
-    }
-    case Instruction::Select: {
-      const SelectInst* sel = cast<SelectInst>(I);
-      Out << "SelectInst* " << getCppName(sel) << " = SelectInst::Create(";
-      Out << opNames[0] << ", " << opNames[1] << ", " << opNames[2] << ", \"";
-      printEscapedString(sel->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::UserOp1:
-      /// FALL THROUGH
-    case Instruction::UserOp2: {
-      /// FIXME: What should be done here?
-      break;
-    }
-    case Instruction::VAArg: {
-      const VAArgInst* va = cast<VAArgInst>(I);
-      Out << "VAArgInst* " << getCppName(va) << " = new VAArgInst("
-          << opNames[0] << ", " << getCppName(va->getType()) << ", \"";
-      printEscapedString(va->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::ExtractElement: {
-      const ExtractElementInst* eei = cast<ExtractElementInst>(I);
-      Out << "ExtractElementInst* " << getCppName(eei)
-          << " = new ExtractElementInst(" << opNames[0]
-          << ", " << opNames[1] << ", \"";
-      printEscapedString(eei->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::InsertElement: {
-      const InsertElementInst* iei = cast<InsertElementInst>(I);
-      Out << "InsertElementInst* " << getCppName(iei)
-          << " = InsertElementInst::Create(" << opNames[0]
-          << ", " << opNames[1] << ", " << opNames[2] << ", \"";
-      printEscapedString(iei->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::ShuffleVector: {
-      const ShuffleVectorInst* svi = cast<ShuffleVectorInst>(I);
-      Out << "ShuffleVectorInst* " << getCppName(svi)
-          << " = new ShuffleVectorInst(" << opNames[0]
-          << ", " << opNames[1] << ", " << opNames[2] << ", \"";
-      printEscapedString(svi->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::ExtractValue: {
-      const ExtractValueInst *evi = cast<ExtractValueInst>(I);
-      Out << "std::vector<unsigned> " << iName << "_indices;";
-      nl(Out);
-      for (unsigned i = 0; i < evi->getNumIndices(); ++i) {
-        Out << iName << "_indices.push_back("
-            << evi->idx_begin()[i] << ");";
-        nl(Out);
-      }
-      Out << "ExtractValueInst* " << getCppName(evi)
-          << " = ExtractValueInst::Create(" << opNames[0]
-          << ", "
-          << iName << "_indices.begin(), " << iName << "_indices.end(), \"";
-      printEscapedString(evi->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-    case Instruction::InsertValue: {
-      const InsertValueInst *ivi = cast<InsertValueInst>(I);
-      Out << "std::vector<unsigned> " << iName << "_indices;";
-      nl(Out);
-      for (unsigned i = 0; i < ivi->getNumIndices(); ++i) {
-        Out << iName << "_indices.push_back("
-            << ivi->idx_begin()[i] << ");";
-        nl(Out);
-      }
-      Out << "InsertValueInst* " << getCppName(ivi)
-          << " = InsertValueInst::Create(" << opNames[0]
-          << ", " << opNames[1] << ", "
-          << iName << "_indices.begin(), " << iName << "_indices.end(), \"";
-      printEscapedString(ivi->getName());
-      Out << "\", " << bbname << ");";
-      break;
-    }
-  }
-  DefinedValues.insert(I);
-  nl(Out);
-  delete [] opNames;
-}
-
-  // Print out the types, constants and declarations needed by one function
-  void CppWriter::printFunctionUses(const Function* F) {
-    nl(Out) << "// Type Definitions"; nl(Out);
-    if (!is_inline) {
-      // Print the function's return type
-      printType(F->getReturnType());
-
-      // Print the function's function type
-      printType(F->getFunctionType());
-
-      // Print the types of each of the function's arguments
-      for (Function::const_arg_iterator AI = F->arg_begin(), AE = F->arg_end();
-           AI != AE; ++AI) {
-        printType(AI->getType());
-      }
-    }
-
-    // Print type definitions for every type referenced by an instruction and
-    // make a note of any global values or constants that are referenced
-    SmallPtrSet<GlobalValue*,64> gvs;
-    SmallPtrSet<Constant*,64> consts;
-    for (Function::const_iterator BB = F->begin(), BE = F->end();
-         BB != BE; ++BB){
-      for (BasicBlock::const_iterator I = BB->begin(), E = BB->end();
-           I != E; ++I) {
-        // Print the type of the instruction itself
-        printType(I->getType());
-
-        // Print the type of each of the instruction's operands
-        for (unsigned i = 0; i < I->getNumOperands(); ++i) {
-          Value* operand = I->getOperand(i);
-          printType(operand->getType());
-
-          // If the operand references a GVal or Constant, make a note of it
-          if (GlobalValue* GV = dyn_cast<GlobalValue>(operand)) {
-            gvs.insert(GV);
-            if (GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV))
-              if (GVar->hasInitializer())
-                consts.insert(GVar->getInitializer());
-          } else if (Constant* C = dyn_cast<Constant>(operand))
-            consts.insert(C);
-        }
-      }
-    }
-
-    // Print the function declarations for any functions encountered
-    nl(Out) << "// Function Declarations"; nl(Out);
-    for (SmallPtrSet<GlobalValue*,64>::iterator I = gvs.begin(), E = gvs.end();
-         I != E; ++I) {
-      if (Function* Fun = dyn_cast<Function>(*I)) {
-        if (!is_inline || Fun != F)
-          printFunctionHead(Fun);
-      }
-    }
-
-    // Print the global variable declarations for any variables encountered
-    nl(Out) << "// Global Variable Declarations"; nl(Out);
-    for (SmallPtrSet<GlobalValue*,64>::iterator I = gvs.begin(), E = gvs.end();
-         I != E; ++I) {
-      if (GlobalVariable* F = dyn_cast<GlobalVariable>(*I))
-        printVariableHead(F);
-    }
-
-  // Print the constants found
-    nl(Out) << "// Constant Definitions"; nl(Out);
-    for (SmallPtrSet<Constant*,64>::iterator I = consts.begin(),
-           E = consts.end(); I != E; ++I) {
-      printConstant(*I);
-    }
-
-    // Process the global variables definitions now that all the constants have
-    // been emitted. These definitions just couple the gvars with their constant
-    // initializers.
-    nl(Out) << "// Global Variable Definitions"; nl(Out);
-    for (SmallPtrSet<GlobalValue*,64>::iterator I = gvs.begin(), E = gvs.end();
-         I != E; ++I) {
-      if (GlobalVariable* GV = dyn_cast<GlobalVariable>(*I))
-        printVariableBody(GV);
-    }
-  }
-
-  void CppWriter::printFunctionHead(const Function* F) {
-    nl(Out) << "Function* " << getCppName(F);
-    if (is_inline) {
-      Out << " = mod->getFunction(\"";
-      printEscapedString(F->getName());
-      Out << "\", " << getCppName(F->getFunctionType()) << ");";
-      nl(Out) << "if (!" << getCppName(F) << ") {";
-      nl(Out) << getCppName(F);
-    }
-    Out<< " = Function::Create(";
-    nl(Out,1) << "/*Type=*/" << getCppName(F->getFunctionType()) << ",";
-    nl(Out) << "/*Linkage=*/";
-    printLinkageType(F->getLinkage());
-    Out << ",";
-    nl(Out) << "/*Name=*/\"";
-    printEscapedString(F->getName());
-    Out << "\", mod); " << (F->isDeclaration()? "// (external, no body)" : "");
-    nl(Out,-1);
-    printCppName(F);
-    Out << "->setCallingConv(";
-    printCallingConv(F->getCallingConv());
-    Out << ");";
-    nl(Out);
-    if (F->hasSection()) {
-      printCppName(F);
-      Out << "->setSection(\"" << F->getSection() << "\");";
-      nl(Out);
-    }
-    if (F->getAlignment()) {
-      printCppName(F);
-      Out << "->setAlignment(" << F->getAlignment() << ");";
-      nl(Out);
-    }
-    if (F->getVisibility() != GlobalValue::DefaultVisibility) {
-      printCppName(F);
-      Out << "->setVisibility(";
-      printVisibilityType(F->getVisibility());
-      Out << ");";
-      nl(Out);
-    }
-    if (F->hasGC()) {
-      printCppName(F);
-      Out << "->setGC(\"" << F->getGC() << "\");";
-      nl(Out);
-    }
-    if (is_inline) {
-      Out << "}";
-      nl(Out);
-    }
-    printAttributes(F->getAttributes(), getCppName(F));
-    printCppName(F);
-    Out << "->setAttributes(" << getCppName(F) << "_PAL);";
-    nl(Out);
-  }
-
-  void CppWriter::printFunctionBody(const Function *F) {
-    if (F->isDeclaration())
-      return; // external functions have no bodies.
-
-    // Clear the DefinedValues and ForwardRefs maps because we can't have
-    // cross-function forward refs
-    ForwardRefs.clear();
-    DefinedValues.clear();
-
-    // Create all the argument values
-    if (!is_inline) {
-      if (!F->arg_empty()) {
-        Out << "Function::arg_iterator args = " << getCppName(F)
-            << "->arg_begin();";
-        nl(Out);
-      }
-      for (Function::const_arg_iterator AI = F->arg_begin(), AE = F->arg_end();
-           AI != AE; ++AI) {
-        Out << "Value* " << getCppName(AI) << " = args++;";
-        nl(Out);
-        if (AI->hasName()) {
-          Out << getCppName(AI) << "->setName(\"" << AI->getName() << "\");";
-          nl(Out);
-        }
-      }
-    }
-
-    // Create all the basic blocks
-    nl(Out);
-    for (Function::const_iterator BI = F->begin(), BE = F->end();
-         BI != BE; ++BI) {
-      std::string bbname(getCppName(BI));
-      Out << "BasicBlock* " << bbname <<
-             " = BasicBlock::Create(getGlobalContext(), \"";
-      if (BI->hasName())
-        printEscapedString(BI->getName());
-      Out << "\"," << getCppName(BI->getParent()) << ",0);";
-      nl(Out);
-    }
-
-    // Output all of its basic blocks... for the function
-    for (Function::const_iterator BI = F->begin(), BE = F->end();
-         BI != BE; ++BI) {
-      std::string bbname(getCppName(BI));
-      nl(Out) << "// Block " << BI->getName() << " (" << bbname << ")";
-      nl(Out);
-
-      // Output all of the instructions in the basic block...
-      for (BasicBlock::const_iterator I = BI->begin(), E = BI->end();
-           I != E; ++I) {
-        printInstruction(I,bbname);
-      }
-    }
-
-    // Loop over the ForwardRefs and resolve them now that all instructions
-    // are generated.
-    if (!ForwardRefs.empty()) {
-      nl(Out) << "// Resolve Forward References";
-      nl(Out);
-    }
-
-    while (!ForwardRefs.empty()) {
-      ForwardRefMap::iterator I = ForwardRefs.begin();
-      Out << I->second << "->replaceAllUsesWith("
-          << getCppName(I->first) << "); delete " << I->second << ";";
-      nl(Out);
-      ForwardRefs.erase(I);
-    }
-  }
-
-  void CppWriter::printInline(const std::string& fname,
-                              const std::string& func) {
-    const Function* F = TheModule->getFunction(func);
-    if (!F) {
-      error(std::string("Function '") + func + "' not found in input module");
-      return;
-    }
-    if (F->isDeclaration()) {
-      error(std::string("Function '") + func + "' is external!");
-      return;
-    }
-    nl(Out) << "BasicBlock* " << fname << "(Module* mod, Function *"
-            << getCppName(F);
-    unsigned arg_count = 1;
-    for (Function::const_arg_iterator AI = F->arg_begin(), AE = F->arg_end();
-         AI != AE; ++AI) {
-      Out << ", Value* arg_" << arg_count;
-    }
-    Out << ") {";
-    nl(Out);
-    is_inline = true;
-    printFunctionUses(F);
-    printFunctionBody(F);
-    is_inline = false;
-    Out << "return " << getCppName(F->begin()) << ";";
-    nl(Out) << "}";
-    nl(Out);
-  }
-
-  void CppWriter::printModuleBody() {
-    // Print out all the type definitions
-    nl(Out) << "// Type Definitions"; nl(Out);
-    printTypes(TheModule);
-
-    // Functions can call each other and global variables can reference them so
-    // define all the functions first before emitting their function bodies.
-    nl(Out) << "// Function Declarations"; nl(Out);
-    for (Module::const_iterator I = TheModule->begin(), E = TheModule->end();
-         I != E; ++I)
-      printFunctionHead(I);
-
-    // Process the global variables declarations. We can't initialze them until
-    // after the constants are printed so just print a header for each global
-    nl(Out) << "// Global Variable Declarations\n"; nl(Out);
-    for (Module::const_global_iterator I = TheModule->global_begin(),
-           E = TheModule->global_end(); I != E; ++I) {
-      printVariableHead(I);
-    }
-
-    // Print out all the constants definitions. Constants don't recurse except
-    // through GlobalValues. All GlobalValues have been declared at this point
-    // so we can proceed to generate the constants.
-    nl(Out) << "// Constant Definitions"; nl(Out);
-    printConstants(TheModule);
-
-    // Process the global variables definitions now that all the constants have
-    // been emitted. These definitions just couple the gvars with their constant
-    // initializers.
-    nl(Out) << "// Global Variable Definitions"; nl(Out);
-    for (Module::const_global_iterator I = TheModule->global_begin(),
-           E = TheModule->global_end(); I != E; ++I) {
-      printVariableBody(I);
-    }
-
-    // Finally, we can safely put out all of the function bodies.
-    nl(Out) << "// Function Definitions"; nl(Out);
-    for (Module::const_iterator I = TheModule->begin(), E = TheModule->end();
-         I != E; ++I) {
-      if (!I->isDeclaration()) {
-        nl(Out) << "// Function: " << I->getName() << " (" << getCppName(I)
-                << ")";
-        nl(Out) << "{";
-        nl(Out,1);
-        printFunctionBody(I);
-        nl(Out,-1) << "}";
-        nl(Out);
-      }
-    }
-  }
-
-  void CppWriter::printProgram(const std::string& fname,
-                               const std::string& mName) {
-    Out << "#include <llvm/LLVMContext.h>\n";
-    Out << "#include <llvm/Module.h>\n";
-    Out << "#include <llvm/DerivedTypes.h>\n";
-    Out << "#include <llvm/Constants.h>\n";
-    Out << "#include <llvm/GlobalVariable.h>\n";
-    Out << "#include <llvm/Function.h>\n";
-    Out << "#include <llvm/CallingConv.h>\n";
-    Out << "#include <llvm/BasicBlock.h>\n";
-    Out << "#include <llvm/Instructions.h>\n";
-    Out << "#include <llvm/InlineAsm.h>\n";
-    Out << "#include <llvm/Support/FormattedStream.h>\n";
-    Out << "#include <llvm/Support/MathExtras.h>\n";
-    Out << "#include <llvm/Pass.h>\n";
-    Out << "#include <llvm/PassManager.h>\n";
-    Out << "#include <llvm/ADT/SmallVector.h>\n";
-    Out << "#include <llvm/Analysis/Verifier.h>\n";
-    Out << "#include <llvm/Assembly/PrintModulePass.h>\n";
-    Out << "#include <algorithm>\n";
-    Out << "using namespace llvm;\n\n";
-    Out << "Module* " << fname << "();\n\n";
-    Out << "int main(int argc, char**argv) {\n";
-    Out << "  Module* Mod = " << fname << "();\n";
-    Out << "  verifyModule(*Mod, PrintMessageAction);\n";
-    Out << "  PassManager PM;\n";
-    Out << "  PM.add(createPrintModulePass(&outs()));\n";
-    Out << "  PM.run(*Mod);\n";
-    Out << "  return 0;\n";
-    Out << "}\n\n";
-    printModule(fname,mName);
-  }
-
-  void CppWriter::printModule(const std::string& fname,
-                              const std::string& mName) {
-    nl(Out) << "Module* " << fname << "() {";
-    nl(Out,1) << "// Module Construction";
-    nl(Out) << "Module* mod = new Module(\"";
-    printEscapedString(mName);
-    Out << "\", getGlobalContext());";
-    if (!TheModule->getTargetTriple().empty()) {
-      nl(Out) << "mod->setDataLayout(\"" << TheModule->getDataLayout() << "\");";
-    }
-    if (!TheModule->getTargetTriple().empty()) {
-      nl(Out) << "mod->setTargetTriple(\"" << TheModule->getTargetTriple()
-              << "\");";
-    }
-
-    if (!TheModule->getModuleInlineAsm().empty()) {
-      nl(Out) << "mod->setModuleInlineAsm(\"";
-      printEscapedString(TheModule->getModuleInlineAsm());
-      Out << "\");";
-    }
-    nl(Out);
-
-    // Loop over the dependent libraries and emit them.
-    Module::lib_iterator LI = TheModule->lib_begin();
-    Module::lib_iterator LE = TheModule->lib_end();
-    while (LI != LE) {
-      Out << "mod->addLibrary(\"" << *LI << "\");";
-      nl(Out);
-      ++LI;
-    }
-    printModuleBody();
-    nl(Out) << "return mod;";
-    nl(Out,-1) << "}";
-    nl(Out);
-  }
-
-  void CppWriter::printContents(const std::string& fname,
-                                const std::string& mName) {
-    Out << "\nModule* " << fname << "(Module *mod) {\n";
-    Out << "\nmod->setModuleIdentifier(\"";
-    printEscapedString(mName);
-    Out << "\");\n";
-    printModuleBody();
-    Out << "\nreturn mod;\n";
-    Out << "\n}\n";
-  }
-
-  void CppWriter::printFunction(const std::string& fname,
-                                const std::string& funcName) {
-    const Function* F = TheModule->getFunction(funcName);
-    if (!F) {
-      error(std::string("Function '") + funcName + "' not found in input module");
-      return;
-    }
-    Out << "\nFunction* " << fname << "(Module *mod) {\n";
-    printFunctionUses(F);
-    printFunctionHead(F);
-    printFunctionBody(F);
-    Out << "return " << getCppName(F) << ";\n";
-    Out << "}\n";
-  }
-
-  void CppWriter::printFunctions() {
-    const Module::FunctionListType &funcs = TheModule->getFunctionList();
-    Module::const_iterator I  = funcs.begin();
-    Module::const_iterator IE = funcs.end();
-
-    for (; I != IE; ++I) {
-      const Function &func = *I;
-      if (!func.isDeclaration()) {
-        std::string name("define_");
-        name += func.getName();
-        printFunction(name, func.getName());
-      }
-    }
-  }
-
-  void CppWriter::printVariable(const std::string& fname,
-                                const std::string& varName) {
-    const GlobalVariable* GV = TheModule->getNamedGlobal(varName);
-
-    if (!GV) {
-      error(std::string("Variable '") + varName + "' not found in input module");
-      return;
-    }
-    Out << "\nGlobalVariable* " << fname << "(Module *mod) {\n";
-    printVariableUses(GV);
-    printVariableHead(GV);
-    printVariableBody(GV);
-    Out << "return " << getCppName(GV) << ";\n";
-    Out << "}\n";
-  }
-
-  void CppWriter::printType(const std::string& fname,
-                            const std::string& typeName) {
-    const Type* Ty = TheModule->getTypeByName(typeName);
-    if (!Ty) {
-      error(std::string("Type '") + typeName + "' not found in input module");
-      return;
-    }
-    Out << "\nType* " << fname << "(Module *mod) {\n";
-    printType(Ty);
-    Out << "return " << getCppName(Ty) << ";\n";
-    Out << "}\n";
-  }
-
-  bool CppWriter::runOnModule(Module &M) {
-    TheModule = &M;
-
-    // Emit a header
-    Out << "// Generated by llvm2cpp - DO NOT MODIFY!\n\n";
-
-    // Get the name of the function we're supposed to generate
-    std::string fname = FuncName.getValue();
-
-    // Get the name of the thing we are to generate
-    std::string tgtname = NameToGenerate.getValue();
-    if (GenerationType == GenModule ||
-        GenerationType == GenContents ||
-        GenerationType == GenProgram ||
-        GenerationType == GenFunctions) {
-      if (tgtname == "!bad!") {
-        if (M.getModuleIdentifier() == "-")
-          tgtname = "<stdin>";
-        else
-          tgtname = M.getModuleIdentifier();
-      }
-    } else if (tgtname == "!bad!")
-      error("You must use the -for option with -gen-{function,variable,type}");
-
-    switch (WhatToGenerate(GenerationType)) {
-     case GenProgram:
-      if (fname.empty())
-        fname = "makeLLVMModule";
-      printProgram(fname,tgtname);
-      break;
-     case GenModule:
-      if (fname.empty())
-        fname = "makeLLVMModule";
-      printModule(fname,tgtname);
-      break;
-     case GenContents:
-      if (fname.empty())
-        fname = "makeLLVMModuleContents";
-      printContents(fname,tgtname);
-      break;
-     case GenFunction:
-      if (fname.empty())
-        fname = "makeLLVMFunction";
-      printFunction(fname,tgtname);
-      break;
-     case GenFunctions:
-      printFunctions();
-      break;
-     case GenInline:
-      if (fname.empty())
-        fname = "makeLLVMInline";
-      printInline(fname,tgtname);
-      break;
-     case GenVariable:
-      if (fname.empty())
-        fname = "makeLLVMVariable";
-      printVariable(fname,tgtname);
-      break;
-     case GenType:
-      if (fname.empty())
-        fname = "makeLLVMType";
-      printType(fname,tgtname);
-      break;
-     default:
-      error("Invalid generation option");
-    }
-
-    return false;
-  }
-}
-
-char CppWriter::ID = 0;
-
-//===----------------------------------------------------------------------===//
-//                       External Interface declaration
-//===----------------------------------------------------------------------===//
-
-bool CPPTargetMachine::addPassesToEmitWholeFile(PassManager &PM,
-                                                formatted_raw_ostream &o,
-                                                CodeGenFileType FileType,
-                                                CodeGenOpt::Level OptLevel) {
-  if (FileType != TargetMachine::AssemblyFile) return true;
-  PM.add(new CppWriter(o));
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/CppBackend/CPPTargetMachine.h b/libclamav/c++/llvm/lib/Target/CppBackend/CPPTargetMachine.h
deleted file mode 100644
index 1f74f76..0000000
--- a/libclamav/c++/llvm/lib/Target/CppBackend/CPPTargetMachine.h
+++ /dev/null
@@ -1,43 +0,0 @@
-//===-- CPPTargetMachine.h - TargetMachine for the C++ backend --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the TargetMachine that is used by the C++ backend.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CPPTARGETMACHINE_H
-#define CPPTARGETMACHINE_H
-
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-
-namespace llvm {
-
-class formatted_raw_ostream;
-
-struct CPPTargetMachine : public TargetMachine {
-  CPPTargetMachine(const Target &T, const std::string &TT,
-                   const std::string &FS)
-    : TargetMachine(T) {}
-
-  virtual bool WantsWholeFile() const { return true; }
-  virtual bool addPassesToEmitWholeFile(PassManager &PM,
-                                        formatted_raw_ostream &Out,
-                                        CodeGenFileType FileType,
-                                        CodeGenOpt::Level OptLevel);
-
-  virtual const TargetData *getTargetData() const { return 0; }
-};
-
-extern Target TheCppBackendTarget;
-
-} // End llvm namespace
-
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/CppBackend/Makefile b/libclamav/c++/llvm/lib/Target/CppBackend/Makefile
deleted file mode 100644
index dc9cf48..0000000
--- a/libclamav/c++/llvm/lib/Target/CppBackend/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- lib/Target/CppBackend/Makefile --- ------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../..
-LIBRARYNAME = LLVMCppBackend
-
-DIRS = TargetInfo
-
-include $(LEVEL)/Makefile.common
-
-CompileCommonOpts += -Wno-format
diff --git a/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/CMakeLists.txt
deleted file mode 100644
index edaf5d3..0000000
--- a/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMCppBackendInfo
-  CppBackendTargetInfo.cpp
-  )
-
diff --git a/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp
deleted file mode 100644
index d0aeb12..0000000
--- a/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- CppBackendTargetInfo.cpp - CppBackend Target Implementation -------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CPPTargetMachine.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheCppBackendTarget;
-
-static unsigned CppBackend_TripleMatchQuality(const std::string &TT) {
-  // This class always works, but shouldn't be the default in most cases.
-  return 1;
-}
-
-extern "C" void LLVMInitializeCppBackendTargetInfo() { 
-  TargetRegistry::RegisterTarget(TheCppBackendTarget, "cpp",    
-                                  "C++ backend",
-                                  &CppBackend_TripleMatchQuality);
-}
diff --git a/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/Makefile
deleted file mode 100644
index 6e68283..0000000
--- a/libclamav/c++/llvm/lib/Target/CppBackend/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/CppBackend/TargetInfo/Makefile -----------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMCppBackendInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/MSIL/CMakeLists.txt
deleted file mode 100644
index b1d47ef..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-add_llvm_target(MSIL
-  MSILWriter.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/MSILWriter.cpp b/libclamav/c++/llvm/lib/Target/MSIL/MSILWriter.cpp
deleted file mode 100644
index 0a83779..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/MSILWriter.cpp
+++ /dev/null
@@ -1,1714 +0,0 @@
-//===-- MSILWriter.cpp - Library for converting LLVM code to MSIL ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This library converts LLVM code to MSIL code.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSILWriter.h"
-#include "llvm/CallingConv.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/IntrinsicInst.h"
-#include "llvm/TypeSymbolTable.h"
-#include "llvm/Analysis/ConstantsScanner.h"
-#include "llvm/Support/CallSite.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/InstVisitor.h"
-#include "llvm/Support/MathExtras.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/CodeGen/Passes.h"
-using namespace llvm;
-
-namespace llvm {
-  // TargetMachine for the MSIL 
-  struct VISIBILITY_HIDDEN MSILTarget : public TargetMachine {
-    MSILTarget(const Target &T, const std::string &TT, const std::string &FS)
-      : TargetMachine(T) {}
-
-    virtual bool WantsWholeFile() const { return true; }
-    virtual bool addPassesToEmitWholeFile(PassManager &PM,
-                                          formatted_raw_ostream &Out,
-                                          CodeGenFileType FileType,
-                                          CodeGenOpt::Level OptLevel);
-
-    virtual const TargetData *getTargetData() const { return 0; }
-  };
-}
-
-extern "C" void LLVMInitializeMSILTarget() {
-  // Register the target.
-  RegisterTargetMachine<MSILTarget> X(TheMSILTarget);
-}
-
-bool MSILModule::runOnModule(Module &M) {
-  ModulePtr = &M;
-  TD = &getAnalysis<TargetData>();
-  bool Changed = false;
-  // Find named types.  
-  TypeSymbolTable& Table = M.getTypeSymbolTable();
-  std::set<const Type *> Types = getAnalysis<FindUsedTypes>().getTypes();
-  for (TypeSymbolTable::iterator I = Table.begin(), E = Table.end(); I!=E; ) {
-    if (!isa<StructType>(I->second) && !isa<OpaqueType>(I->second))
-      Table.remove(I++);
-    else {
-      std::set<const Type *>::iterator T = Types.find(I->second);
-      if (T==Types.end())
-        Table.remove(I++);
-      else {
-        Types.erase(T);
-        ++I;
-      }
-    }
-  }
-  // Find unnamed types.
-  unsigned RenameCounter = 0;
-  for (std::set<const Type *>::const_iterator I = Types.begin(),
-       E = Types.end(); I!=E; ++I)
-    if (const StructType *STy = dyn_cast<StructType>(*I)) {
-      while (ModulePtr->addTypeName("unnamed$"+utostr(RenameCounter), STy))
-        ++RenameCounter;
-      Changed = true;
-    }
-  // Pointer for FunctionPass.
-  UsedTypes = &getAnalysis<FindUsedTypes>().getTypes();
-  return Changed;
-}
-
-char MSILModule::ID = 0;
-char MSILWriter::ID = 0;
-
-bool MSILWriter::runOnFunction(Function &F) {
-  if (F.isDeclaration()) return false;
-
-  // Do not codegen any 'available_externally' functions at all, they have
-  // definitions outside the translation unit.
-  if (F.hasAvailableExternallyLinkage())
-    return false;
-
-  LInfo = &getAnalysis<LoopInfo>();
-  printFunction(F);
-  return false;
-}
-
-
-bool MSILWriter::doInitialization(Module &M) {
-  ModulePtr = &M;
-  Mang = new Mangler(M);
-  Out << ".assembly extern mscorlib {}\n";
-  Out << ".assembly MSIL {}\n\n";
-  Out << "// External\n";
-  printExternals();
-  Out << "// Declarations\n";
-  printDeclarations(M.getTypeSymbolTable());
-  Out << "// Definitions\n";
-  printGlobalVariables();
-  Out << "// Startup code\n";
-  printModuleStartup();
-  return false;
-}
-
-
-bool MSILWriter::doFinalization(Module &M) {
-  delete Mang;
-  return false;
-}
-
-
-void MSILWriter::printModuleStartup() {
-  Out <<
-  ".method static public int32 $MSIL_Startup() {\n"
-  "\t.entrypoint\n"
-  "\t.locals (native int i)\n"
-  "\t.locals (native int argc)\n"
-  "\t.locals (native int ptr)\n"
-  "\t.locals (void* argv)\n"
-  "\t.locals (string[] args)\n"
-  "\tcall\tstring[] [mscorlib]System.Environment::GetCommandLineArgs()\n"
-  "\tdup\n"
-  "\tstloc\targs\n"
-  "\tldlen\n"
-  "\tconv.i4\n"
-  "\tdup\n"
-  "\tstloc\targc\n";
-  printPtrLoad(TD->getPointerSize());
-  Out <<
-  "\tmul\n"
-  "\tlocalloc\n"
-  "\tstloc\targv\n"
-  "\tldc.i4.0\n"
-  "\tstloc\ti\n"
-  "L_01:\n"
-  "\tldloc\ti\n"
-  "\tldloc\targc\n"
-  "\tceq\n"
-  "\tbrtrue\tL_02\n"
-  "\tldloc\targs\n"
-  "\tldloc\ti\n"
-  "\tldelem.ref\n"
-  "\tcall\tnative int [mscorlib]System.Runtime.InteropServices.Marshal::"
-           "StringToHGlobalAnsi(string)\n"
-  "\tstloc\tptr\n"
-  "\tldloc\targv\n"
-  "\tldloc\ti\n";
-  printPtrLoad(TD->getPointerSize());
-  Out << 
-  "\tmul\n"
-  "\tadd\n"
-  "\tldloc\tptr\n"
-  "\tstind.i\n"
-  "\tldloc\ti\n"
-  "\tldc.i4.1\n"
-  "\tadd\n"
-  "\tstloc\ti\n"
-  "\tbr\tL_01\n"
-  "L_02:\n"
-  "\tcall void $MSIL_Init()\n";
-
-  // Call user 'main' function.
-  const Function* F = ModulePtr->getFunction("main");
-  if (!F || F->isDeclaration()) {
-    Out << "\tldc.i4.0\n\tret\n}\n";
-    return;
-  }
-  bool BadSig = true;
-  std::string Args("");
-  Function::const_arg_iterator Arg1,Arg2;
-
-  switch (F->arg_size()) {
-  case 0:
-    BadSig = false;
-    break;
-  case 1:
-    Arg1 = F->arg_begin();
-    if (Arg1->getType()->isInteger()) {
-      Out << "\tldloc\targc\n";
-      Args = getTypeName(Arg1->getType());
-      BadSig = false;
-    }
-    break;
-  case 2:
-    Arg1 = Arg2 = F->arg_begin(); ++Arg2;
-    if (Arg1->getType()->isInteger() && 
-        Arg2->getType()->getTypeID() == Type::PointerTyID) {
-      Out << "\tldloc\targc\n\tldloc\targv\n";
-      Args = getTypeName(Arg1->getType())+","+getTypeName(Arg2->getType());
-      BadSig = false;
-    }
-    break;
-  default:
-    BadSig = true;
-  }
-
-  bool RetVoid = (F->getReturnType()->getTypeID() == Type::VoidTyID);
-  if (BadSig || (!F->getReturnType()->isInteger() && !RetVoid)) {
-    Out << "\tldc.i4.0\n";
-  } else {
-    Out << "\tcall\t" << getTypeName(F->getReturnType()) <<
-      getConvModopt(F->getCallingConv()) << "main(" << Args << ")\n";
-    if (RetVoid)
-      Out << "\tldc.i4.0\n";
-    else
-      Out << "\tconv.i4\n";
-  }
-  Out << "\tret\n}\n";
-}
-
-bool MSILWriter::isZeroValue(const Value* V) {
-  if (const Constant *C = dyn_cast<Constant>(V))
-    return C->isNullValue();
-  return false;
-}
-
-
-std::string MSILWriter::getValueName(const Value* V) {
-  std::string Name;
-  if (const GlobalValue *GV = dyn_cast<GlobalValue>(V))
-    Name = Mang->getMangledName(GV);
-  else {
-    unsigned &No = AnonValueNumbers[V];
-    if (No == 0) No = ++NextAnonValueNumber;
-    Name = "tmp" + utostr(No);
-  }
-  
-  // Name into the quotes allow control and space characters.
-  return "'"+Name+"'";
-}
-
-
-std::string MSILWriter::getLabelName(const std::string& Name) {
-  if (Name.find('.')!=std::string::npos) {
-    std::string Tmp(Name);
-    // Replace unaccepable characters in the label name.
-    for (std::string::iterator I = Tmp.begin(), E = Tmp.end(); I!=E; ++I)
-      if (*I=='.') *I = '@';
-    return Tmp;
-  }
-  return Name;
-}
-
-
-std::string MSILWriter::getLabelName(const Value* V) {
-  std::string Name;
-  if (const GlobalValue *GV = dyn_cast<GlobalValue>(V))
-    Name = Mang->getMangledName(GV);
-  else {
-    unsigned &No = AnonValueNumbers[V];
-    if (No == 0) No = ++NextAnonValueNumber;
-    Name = "tmp" + utostr(No);
-  }
-  
-  return getLabelName(Name);
-}
-
-
-std::string MSILWriter::getConvModopt(unsigned CallingConvID) {
-  switch (CallingConvID) {
-  case CallingConv::C:
-  case CallingConv::Cold:
-  case CallingConv::Fast:
-    return "modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl) ";
-  case CallingConv::X86_FastCall:
-    return "modopt([mscorlib]System.Runtime.CompilerServices.CallConvFastcall) ";
-  case CallingConv::X86_StdCall:
-    return "modopt([mscorlib]System.Runtime.CompilerServices.CallConvStdcall) ";
-  default:
-    errs() << "CallingConvID = " << CallingConvID << '\n';
-    llvm_unreachable("Unsupported calling convention");
-  }
-  return ""; // Not reached
-}
-
-
-std::string MSILWriter::getArrayTypeName(Type::TypeID TyID, const Type* Ty) {
-  std::string Tmp = "";
-  const Type* ElemTy = Ty;
-  assert(Ty->getTypeID()==TyID && "Invalid type passed");
-  // Walk trought array element types.
-  for (;;) {
-    // Multidimensional array.
-    if (ElemTy->getTypeID()==TyID) {
-      if (const ArrayType* ATy = dyn_cast<ArrayType>(ElemTy))
-        Tmp += utostr(ATy->getNumElements());
-      else if (const VectorType* VTy = dyn_cast<VectorType>(ElemTy))
-        Tmp += utostr(VTy->getNumElements());
-      ElemTy = cast<SequentialType>(ElemTy)->getElementType();
-    }
-    // Base element type found.
-    if (ElemTy->getTypeID()!=TyID) break;
-    Tmp += ",";
-  }
-  return getTypeName(ElemTy, false, true)+"["+Tmp+"]";
-}
-
-
-std::string MSILWriter::getPrimitiveTypeName(const Type* Ty, bool isSigned) {
-  unsigned NumBits = 0;
-  switch (Ty->getTypeID()) {
-  case Type::VoidTyID:
-    return "void ";
-  case Type::IntegerTyID:
-    NumBits = getBitWidth(Ty);
-    if(NumBits==1)
-      return "bool ";
-    if (!isSigned)
-      return "unsigned int"+utostr(NumBits)+" ";
-    return "int"+utostr(NumBits)+" ";
-  case Type::FloatTyID:
-    return "float32 ";
-  case Type::DoubleTyID:
-    return "float64 "; 
-  default:
-    errs() << "Type = " << *Ty << '\n';
-    llvm_unreachable("Invalid primitive type");
-  }
-  return ""; // Not reached
-}
-
-
-std::string MSILWriter::getTypeName(const Type* Ty, bool isSigned,
-                                    bool isNested) {
-  if (Ty->isPrimitiveType() || Ty->isInteger())
-    return getPrimitiveTypeName(Ty,isSigned);
-  // FIXME: "OpaqueType" support
-  switch (Ty->getTypeID()) {
-  case Type::PointerTyID:
-    return "void* ";
-  case Type::StructTyID:
-    if (isNested)
-      return ModulePtr->getTypeName(Ty);
-    return "valuetype '"+ModulePtr->getTypeName(Ty)+"' ";
-  case Type::ArrayTyID:
-    if (isNested)
-      return getArrayTypeName(Ty->getTypeID(),Ty);
-    return "valuetype '"+getArrayTypeName(Ty->getTypeID(),Ty)+"' ";
-  case Type::VectorTyID:
-    if (isNested)
-      return getArrayTypeName(Ty->getTypeID(),Ty);
-    return "valuetype '"+getArrayTypeName(Ty->getTypeID(),Ty)+"' ";
-  default:
-    errs() << "Type = " << *Ty << '\n';
-    llvm_unreachable("Invalid type in getTypeName()");
-  }
-  return ""; // Not reached
-}
-
-
-MSILWriter::ValueType MSILWriter::getValueLocation(const Value* V) {
-  // Function argument
-  if (isa<Argument>(V))
-    return ArgumentVT;
-  // Function
-  else if (const Function* F = dyn_cast<Function>(V))
-    return F->hasLocalLinkage() ? InternalVT : GlobalVT;
-  // Variable
-  else if (const GlobalVariable* G = dyn_cast<GlobalVariable>(V))
-    return G->hasLocalLinkage() ? InternalVT : GlobalVT;
-  // Constant
-  else if (isa<Constant>(V))
-    return isa<ConstantExpr>(V) ? ConstExprVT : ConstVT;
-  // Local variable
-  return LocalVT;
-}
-
-
-std::string MSILWriter::getTypePostfix(const Type* Ty, bool Expand,
-                                       bool isSigned) {
-  unsigned NumBits = 0;
-  switch (Ty->getTypeID()) {
-  // Integer constant, expanding for stack operations.
-  case Type::IntegerTyID:
-    NumBits = getBitWidth(Ty);
-    // Expand integer value to "int32" or "int64".
-    if (Expand) return (NumBits<=32 ? "i4" : "i8");
-    if (NumBits==1) return "i1";
-    return (isSigned ? "i" : "u")+utostr(NumBits/8);
-  // Float constant.
-  case Type::FloatTyID:
-    return "r4";
-  case Type::DoubleTyID:
-    return "r8";
-  case Type::PointerTyID:
-    return "i"+utostr(TD->getTypeAllocSize(Ty));
-  default:
-    errs() << "TypeID = " << Ty->getTypeID() << '\n';
-    llvm_unreachable("Invalid type in TypeToPostfix()");
-  }
-  return ""; // Not reached
-}
-
-
-void MSILWriter::printConvToPtr() {
-  switch (ModulePtr->getPointerSize()) {
-  case Module::Pointer32:
-    printSimpleInstruction("conv.u4");
-    break;
-  case Module::Pointer64:
-    printSimpleInstruction("conv.u8");
-    break;
-  default:
-    llvm_unreachable("Module use not supporting pointer size");
-  }
-}
-
-
-void MSILWriter::printPtrLoad(uint64_t N) {
-  switch (ModulePtr->getPointerSize()) {
-  case Module::Pointer32:
-    printSimpleInstruction("ldc.i4",utostr(N).c_str());
-    // FIXME: Need overflow test?
-    if (!isUInt32(N)) {
-      errs() << "Value = " << utostr(N) << '\n';
-      llvm_unreachable("32-bit pointer overflowed");
-    }
-    break;
-  case Module::Pointer64:
-    printSimpleInstruction("ldc.i8",utostr(N).c_str());
-    break;
-  default:
-    llvm_unreachable("Module use not supporting pointer size");
-  }
-}
-
-
-void MSILWriter::printValuePtrLoad(const Value* V) {
-  printValueLoad(V);
-  printConvToPtr();
-}
-
-
-void MSILWriter::printConstLoad(const Constant* C) {
-  if (const ConstantInt* CInt = dyn_cast<ConstantInt>(C)) {
-    // Integer constant
-    Out << "\tldc." << getTypePostfix(C->getType(),true) << '\t';
-    if (CInt->isMinValue(true))
-      Out << CInt->getSExtValue();
-    else
-      Out << CInt->getZExtValue();
-  } else if (const ConstantFP* FP = dyn_cast<ConstantFP>(C)) {
-    // Float constant
-    uint64_t X;
-    unsigned Size;
-    if (FP->getType()->getTypeID()==Type::FloatTyID) {
-      X = (uint32_t)FP->getValueAPF().bitcastToAPInt().getZExtValue();
-      Size = 4;  
-    } else {
-      X = FP->getValueAPF().bitcastToAPInt().getZExtValue();
-      Size = 8;  
-    }
-    Out << "\tldc.r" << Size << "\t( " << utohexstr(X) << ')';
-  } else if (isa<UndefValue>(C)) {
-    // Undefined constant value = NULL.
-    printPtrLoad(0);
-  } else {
-    errs() << "Constant = " << *C << '\n';
-    llvm_unreachable("Invalid constant value");
-  }
-  Out << '\n';
-}
-
-
-void MSILWriter::printValueLoad(const Value* V) {
-  MSILWriter::ValueType Location = getValueLocation(V);
-  switch (Location) {
-  // Global variable or function address.
-  case GlobalVT:
-  case InternalVT:
-    if (const Function* F = dyn_cast<Function>(V)) {
-      std::string Name = getConvModopt(F->getCallingConv())+getValueName(F);
-      printSimpleInstruction("ldftn",
-        getCallSignature(F->getFunctionType(),NULL,Name).c_str());
-    } else {
-      std::string Tmp;
-      const Type* ElemTy = cast<PointerType>(V->getType())->getElementType();
-      if (Location==GlobalVT && cast<GlobalVariable>(V)->hasDLLImportLinkage()) {
-        Tmp = "void* "+getValueName(V);
-        printSimpleInstruction("ldsfld",Tmp.c_str());
-      } else {
-        Tmp = getTypeName(ElemTy)+getValueName(V);
-        printSimpleInstruction("ldsflda",Tmp.c_str());
-      }
-    }
-    break;
-  // Function argument.
-  case ArgumentVT:
-    printSimpleInstruction("ldarg",getValueName(V).c_str());
-    break;
-  // Local function variable.
-  case LocalVT:
-    printSimpleInstruction("ldloc",getValueName(V).c_str());
-    break;
-  // Constant value.
-  case ConstVT:
-    if (isa<ConstantPointerNull>(V))
-      printPtrLoad(0);
-    else
-      printConstLoad(cast<Constant>(V));
-    break;
-  // Constant expression.
-  case ConstExprVT:
-    printConstantExpr(cast<ConstantExpr>(V));
-    break;
-  default:
-    errs() << "Value = " << *V << '\n';
-    llvm_unreachable("Invalid value location");
-  }
-}
-
-
-void MSILWriter::printValueSave(const Value* V) {
-  switch (getValueLocation(V)) {
-  case ArgumentVT:
-    printSimpleInstruction("starg",getValueName(V).c_str());
-    break;
-  case LocalVT:
-    printSimpleInstruction("stloc",getValueName(V).c_str());
-    break;
-  default:
-    errs() << "Value  = " << *V << '\n';
-    llvm_unreachable("Invalid value location");
-  }
-}
-
-
-void MSILWriter::printBinaryInstruction(const char* Name, const Value* Left,
-                                        const Value* Right) {
-  printValueLoad(Left);
-  printValueLoad(Right);
-  Out << '\t' << Name << '\n';
-}
-
-
-void MSILWriter::printSimpleInstruction(const char* Inst, const char* Operand) {
-  if(Operand) 
-    Out << '\t' << Inst << '\t' << Operand << '\n';
-  else
-    Out << '\t' << Inst << '\n';
-}
-
-
-void MSILWriter::printPHICopy(const BasicBlock* Src, const BasicBlock* Dst) {
-  for (BasicBlock::const_iterator I = Dst->begin(), E = Dst->end();
-       isa<PHINode>(I); ++I) {
-    const PHINode* Phi = cast<PHINode>(I);
-    const Value* Val = Phi->getIncomingValueForBlock(Src);
-    if (isa<UndefValue>(Val)) continue;
-    printValueLoad(Val);
-    printValueSave(Phi);
-  }
-}
-
-
-void MSILWriter::printBranchToBlock(const BasicBlock* CurrBB,
-                                    const BasicBlock* TrueBB,
-                                    const BasicBlock* FalseBB) {
-  if (TrueBB==FalseBB) {
-    // "TrueBB" and "FalseBB" destination equals
-    printPHICopy(CurrBB,TrueBB);
-    printSimpleInstruction("pop");
-    printSimpleInstruction("br",getLabelName(TrueBB).c_str());
-  } else if (FalseBB==NULL) {
-    // If "FalseBB" not used the jump have condition
-    printPHICopy(CurrBB,TrueBB);
-    printSimpleInstruction("brtrue",getLabelName(TrueBB).c_str());
-  } else if (TrueBB==NULL) {
-    // If "TrueBB" not used the jump is unconditional
-    printPHICopy(CurrBB,FalseBB);
-    printSimpleInstruction("br",getLabelName(FalseBB).c_str());
-  } else {
-    // Copy PHI instructions for each block
-    std::string TmpLabel;
-    // Print PHI instructions for "TrueBB"
-    if (isa<PHINode>(TrueBB->begin())) {
-      TmpLabel = getLabelName(TrueBB)+"$phi_"+utostr(getUniqID());
-      printSimpleInstruction("brtrue",TmpLabel.c_str());
-    } else {
-      printSimpleInstruction("brtrue",getLabelName(TrueBB).c_str());
-    }
-    // Print PHI instructions for "FalseBB"
-    if (isa<PHINode>(FalseBB->begin())) {
-      printPHICopy(CurrBB,FalseBB);
-      printSimpleInstruction("br",getLabelName(FalseBB).c_str());
-    } else {
-      printSimpleInstruction("br",getLabelName(FalseBB).c_str());
-    }
-    if (isa<PHINode>(TrueBB->begin())) {
-      // Handle "TrueBB" PHI Copy
-      Out << TmpLabel << ":\n";
-      printPHICopy(CurrBB,TrueBB);
-      printSimpleInstruction("br",getLabelName(TrueBB).c_str());
-    }
-  }
-}
-
-
-void MSILWriter::printBranchInstruction(const BranchInst* Inst) {
-  if (Inst->isUnconditional()) {
-    printBranchToBlock(Inst->getParent(),NULL,Inst->getSuccessor(0));
-  } else {
-    printValueLoad(Inst->getCondition());
-    printBranchToBlock(Inst->getParent(),Inst->getSuccessor(0),
-                       Inst->getSuccessor(1));
-  }
-}
-
-
-void MSILWriter::printSelectInstruction(const Value* Cond, const Value* VTrue,
-                                        const Value* VFalse) {
-  std::string TmpLabel = std::string("select$true_")+utostr(getUniqID());
-  printValueLoad(VTrue);
-  printValueLoad(Cond);
-  printSimpleInstruction("brtrue",TmpLabel.c_str());
-  printSimpleInstruction("pop");
-  printValueLoad(VFalse);
-  Out << TmpLabel << ":\n";
-}
-
-
-void MSILWriter::printIndirectLoad(const Value* V) {
-  const Type* Ty = V->getType();
-  printValueLoad(V);
-  if (const PointerType* P = dyn_cast<PointerType>(Ty))
-    Ty = P->getElementType();
-  std::string Tmp = "ldind."+getTypePostfix(Ty, false);
-  printSimpleInstruction(Tmp.c_str());
-}
-
-
-void MSILWriter::printIndirectSave(const Value* Ptr, const Value* Val) {
-  printValueLoad(Ptr);
-  printValueLoad(Val);
-  printIndirectSave(Val->getType());
-}
-
-
-void MSILWriter::printIndirectSave(const Type* Ty) {
-  // Instruction need signed postfix for any type.
-  std::string postfix = getTypePostfix(Ty, false);
-  if (*postfix.begin()=='u') *postfix.begin() = 'i';
-  postfix = "stind."+postfix;
-  printSimpleInstruction(postfix.c_str());
-}
-
-
-void MSILWriter::printCastInstruction(unsigned int Op, const Value* V,
-                                      const Type* Ty, const Type* SrcTy) {
-  std::string Tmp("");
-  printValueLoad(V);
-  switch (Op) {
-  // Signed
-  case Instruction::SExt:
-    // If sign extending int, convert first from unsigned to signed
-    // with the same bit size - because otherwise we will loose the sign.
-    if (SrcTy) {
-      Tmp = "conv."+getTypePostfix(SrcTy,false,true);
-      printSimpleInstruction(Tmp.c_str());
-    }
-    // FALLTHROUGH
-  case Instruction::SIToFP:
-  case Instruction::FPToSI:
-    Tmp = "conv."+getTypePostfix(Ty,false,true);
-    printSimpleInstruction(Tmp.c_str());
-    break;
-  // Unsigned
-  case Instruction::FPTrunc:
-  case Instruction::FPExt:
-  case Instruction::UIToFP:
-  case Instruction::Trunc:
-  case Instruction::ZExt:
-  case Instruction::FPToUI:
-  case Instruction::PtrToInt:
-  case Instruction::IntToPtr:
-    Tmp = "conv."+getTypePostfix(Ty,false);
-    printSimpleInstruction(Tmp.c_str());
-    break;
-  // Do nothing
-  case Instruction::BitCast:
-    // FIXME: meaning that ld*/st* instruction do not change data format.
-    break;
-  default:
-    errs() << "Opcode = " << Op << '\n';
-    llvm_unreachable("Invalid conversion instruction");
-  }
-}
-
-
-void MSILWriter::printGepInstruction(const Value* V, gep_type_iterator I,
-                                     gep_type_iterator E) {
-  unsigned Size;
-  // Load address
-  printValuePtrLoad(V);
-  // Calculate element offset.
-  for (; I!=E; ++I){
-    Size = 0;
-    const Value* IndexValue = I.getOperand();
-    if (const StructType* StrucTy = dyn_cast<StructType>(*I)) {
-      uint64_t FieldIndex = cast<ConstantInt>(IndexValue)->getZExtValue();
-      // Offset is the sum of all previous structure fields.
-      for (uint64_t F = 0; F<FieldIndex; ++F)
-        Size += TD->getTypeAllocSize(StrucTy->getContainedType((unsigned)F));
-      printPtrLoad(Size);
-      printSimpleInstruction("add");
-      continue;
-    } else if (const SequentialType* SeqTy = dyn_cast<SequentialType>(*I)) {
-      Size = TD->getTypeAllocSize(SeqTy->getElementType());
-    } else {
-      Size = TD->getTypeAllocSize(*I);
-    }
-    // Add offset of current element to stack top.
-    if (!isZeroValue(IndexValue)) {
-      // Constant optimization.
-      if (const ConstantInt* C = dyn_cast<ConstantInt>(IndexValue)) {
-        if (C->getValue().isNegative()) {
-          printPtrLoad(C->getValue().abs().getZExtValue()*Size);
-          printSimpleInstruction("sub");
-          continue;
-        } else
-          printPtrLoad(C->getZExtValue()*Size);
-      } else {
-        printPtrLoad(Size);
-        printValuePtrLoad(IndexValue);
-        printSimpleInstruction("mul");
-      }
-      printSimpleInstruction("add");
-    }
-  }
-}
-
-
-std::string MSILWriter::getCallSignature(const FunctionType* Ty,
-                                         const Instruction* Inst,
-                                         std::string Name) {
-  std::string Tmp("");
-  if (Ty->isVarArg()) Tmp += "vararg ";
-  // Name and return type.
-  Tmp += getTypeName(Ty->getReturnType())+Name+"(";
-  // Function argument type list.
-  unsigned NumParams = Ty->getNumParams();
-  for (unsigned I = 0; I!=NumParams; ++I) {
-    if (I!=0) Tmp += ",";
-    Tmp += getTypeName(Ty->getParamType(I));
-  }
-  // CLR needs to know the exact amount of parameters received by vararg
-  // function, because caller cleans the stack.
-  if (Ty->isVarArg() && Inst) {
-    // Origin to function arguments in "CallInst" or "InvokeInst".
-    unsigned Org = isa<InvokeInst>(Inst) ? 3 : 1;
-    // Print variable argument types.
-    unsigned NumOperands = Inst->getNumOperands()-Org;
-    if (NumParams<NumOperands) {
-      if (NumParams!=0) Tmp += ", ";
-      Tmp += "... , ";
-      for (unsigned J = NumParams; J!=NumOperands; ++J) {
-        if (J!=NumParams) Tmp += ", ";
-        Tmp += getTypeName(Inst->getOperand(J+Org)->getType());
-      }
-    }
-  }
-  return Tmp+")";
-}
-
-
-void MSILWriter::printFunctionCall(const Value* FnVal,
-                                   const Instruction* Inst) {
-  // Get function calling convention.
-  std::string Name = "";
-  if (const CallInst* Call = dyn_cast<CallInst>(Inst))
-    Name = getConvModopt(Call->getCallingConv());
-  else if (const InvokeInst* Invoke = dyn_cast<InvokeInst>(Inst))
-    Name = getConvModopt(Invoke->getCallingConv());
-  else {
-    errs() << "Instruction = " << Inst->getName() << '\n';
-    llvm_unreachable("Need \"Invoke\" or \"Call\" instruction only");
-  }
-  if (const Function* F = dyn_cast<Function>(FnVal)) {
-    // Direct call.
-    Name += getValueName(F);
-    printSimpleInstruction("call",
-      getCallSignature(F->getFunctionType(),Inst,Name).c_str());
-  } else {
-    // Indirect function call.
-    const PointerType* PTy = cast<PointerType>(FnVal->getType());
-    const FunctionType* FTy = cast<FunctionType>(PTy->getElementType());
-    // Load function address.
-    printValueLoad(FnVal);
-    printSimpleInstruction("calli",getCallSignature(FTy,Inst,Name).c_str());
-  }
-}
-
-
-void MSILWriter::printIntrinsicCall(const IntrinsicInst* Inst) {
-  std::string Name;
-  switch (Inst->getIntrinsicID()) {
-  case Intrinsic::vastart:
-    Name = getValueName(Inst->getOperand(1));
-    Name.insert(Name.length()-1,"$valist");
-    // Obtain the argument handle.
-    printSimpleInstruction("ldloca",Name.c_str());
-    printSimpleInstruction("arglist");
-    printSimpleInstruction("call",
-      "instance void [mscorlib]System.ArgIterator::.ctor"
-      "(valuetype [mscorlib]System.RuntimeArgumentHandle)");
-    // Save as pointer type "void*"
-    printValueLoad(Inst->getOperand(1));
-    printSimpleInstruction("ldloca",Name.c_str());
-    printIndirectSave(PointerType::getUnqual(
-          IntegerType::get(Inst->getContext(), 8)));
-    break;
-  case Intrinsic::vaend:
-    // Close argument list handle.
-    printIndirectLoad(Inst->getOperand(1));
-    printSimpleInstruction("call","instance void [mscorlib]System.ArgIterator::End()");
-    break;
-  case Intrinsic::vacopy:
-    // Copy "ArgIterator" valuetype.
-    printIndirectLoad(Inst->getOperand(1));
-    printIndirectLoad(Inst->getOperand(2));
-    printSimpleInstruction("cpobj","[mscorlib]System.ArgIterator");
-    break;        
-  default:
-    errs() << "Intrinsic ID = " << Inst->getIntrinsicID() << '\n';
-    llvm_unreachable("Invalid intrinsic function");
-  }
-}
-
-
-void MSILWriter::printCallInstruction(const Instruction* Inst) {
-  if (isa<IntrinsicInst>(Inst)) {
-    // Handle intrinsic function.
-    printIntrinsicCall(cast<IntrinsicInst>(Inst));
-  } else {
-    // Load arguments to stack and call function.
-    for (int I = 1, E = Inst->getNumOperands(); I!=E; ++I)
-      printValueLoad(Inst->getOperand(I));
-    printFunctionCall(Inst->getOperand(0),Inst);
-  }
-}
-
-
-void MSILWriter::printICmpInstruction(unsigned Predicate, const Value* Left,
-                                      const Value* Right) {
-  switch (Predicate) {
-  case ICmpInst::ICMP_EQ:
-    printBinaryInstruction("ceq",Left,Right);
-    break;
-  case ICmpInst::ICMP_NE:
-    // Emulate = not neg (Op1 eq Op2)
-    printBinaryInstruction("ceq",Left,Right);
-    printSimpleInstruction("neg");
-    printSimpleInstruction("not");
-    break;
-  case ICmpInst::ICMP_ULE:
-  case ICmpInst::ICMP_SLE:
-    // Emulate = (Op1 eq Op2) or (Op1 lt Op2)
-    printBinaryInstruction("ceq",Left,Right);
-    if (Predicate==ICmpInst::ICMP_ULE)
-      printBinaryInstruction("clt.un",Left,Right);
-    else
-      printBinaryInstruction("clt",Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case ICmpInst::ICMP_UGE:
-  case ICmpInst::ICMP_SGE:
-    // Emulate = (Op1 eq Op2) or (Op1 gt Op2)
-    printBinaryInstruction("ceq",Left,Right);
-    if (Predicate==ICmpInst::ICMP_UGE)
-      printBinaryInstruction("cgt.un",Left,Right);
-    else
-      printBinaryInstruction("cgt",Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case ICmpInst::ICMP_ULT:
-    printBinaryInstruction("clt.un",Left,Right);
-    break;
-  case ICmpInst::ICMP_SLT:
-    printBinaryInstruction("clt",Left,Right);
-    break;
-  case ICmpInst::ICMP_UGT:
-    printBinaryInstruction("cgt.un",Left,Right);
-    break;
-  case ICmpInst::ICMP_SGT:
-    printBinaryInstruction("cgt",Left,Right);
-    break;
-  default:
-    errs() << "Predicate = " << Predicate << '\n';
-    llvm_unreachable("Invalid icmp predicate");
-  }
-}
-
-
-void MSILWriter::printFCmpInstruction(unsigned Predicate, const Value* Left,
-                                      const Value* Right) {
-  // FIXME: Correct comparison
-  std::string NanFunc = "bool [mscorlib]System.Double::IsNaN(float64)";
-  switch (Predicate) {
-  case FCmpInst::FCMP_UGT:
-    // X >  Y || llvm_fcmp_uno(X, Y)
-    printBinaryInstruction("cgt",Left,Right);
-    printFCmpInstruction(FCmpInst::FCMP_UNO,Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_OGT:
-    // X >  Y
-    printBinaryInstruction("cgt",Left,Right);
-    break;
-  case FCmpInst::FCMP_UGE:
-    // X >= Y || llvm_fcmp_uno(X, Y)
-    printBinaryInstruction("ceq",Left,Right);
-    printBinaryInstruction("cgt",Left,Right);
-    printSimpleInstruction("or");
-    printFCmpInstruction(FCmpInst::FCMP_UNO,Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_OGE:
-    // X >= Y
-    printBinaryInstruction("ceq",Left,Right);
-    printBinaryInstruction("cgt",Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_ULT:
-    // X <  Y || llvm_fcmp_uno(X, Y)
-    printBinaryInstruction("clt",Left,Right);
-    printFCmpInstruction(FCmpInst::FCMP_UNO,Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_OLT:
-    // X <  Y
-    printBinaryInstruction("clt",Left,Right);
-    break;
-  case FCmpInst::FCMP_ULE:
-    // X <= Y || llvm_fcmp_uno(X, Y)
-    printBinaryInstruction("ceq",Left,Right);
-    printBinaryInstruction("clt",Left,Right);
-    printSimpleInstruction("or");
-    printFCmpInstruction(FCmpInst::FCMP_UNO,Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_OLE:
-    // X <= Y
-    printBinaryInstruction("ceq",Left,Right);
-    printBinaryInstruction("clt",Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_UEQ:
-    // X == Y || llvm_fcmp_uno(X, Y)
-    printBinaryInstruction("ceq",Left,Right);
-    printFCmpInstruction(FCmpInst::FCMP_UNO,Left,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_OEQ:
-    // X == Y
-    printBinaryInstruction("ceq",Left,Right);
-    break;
-  case FCmpInst::FCMP_UNE:
-    // X != Y
-    printBinaryInstruction("ceq",Left,Right);
-    printSimpleInstruction("neg");
-    printSimpleInstruction("not");
-    break;
-  case FCmpInst::FCMP_ONE:
-    // X != Y && llvm_fcmp_ord(X, Y)
-    printBinaryInstruction("ceq",Left,Right);
-    printSimpleInstruction("not");
-    break;
-  case FCmpInst::FCMP_ORD:
-    // return X == X && Y == Y
-    printBinaryInstruction("ceq",Left,Left);
-    printBinaryInstruction("ceq",Right,Right);
-    printSimpleInstruction("or");
-    break;
-  case FCmpInst::FCMP_UNO:
-    // X != X || Y != Y
-    printBinaryInstruction("ceq",Left,Left);
-    printSimpleInstruction("not");
-    printBinaryInstruction("ceq",Right,Right);
-    printSimpleInstruction("not");
-    printSimpleInstruction("or");
-    break;
-  default:
-    llvm_unreachable("Illegal FCmp predicate");
-  }
-}
-
-
-void MSILWriter::printInvokeInstruction(const InvokeInst* Inst) {
-  std::string Label = "leave$normal_"+utostr(getUniqID());
-  Out << ".try {\n";
-  // Load arguments
-  for (int I = 3, E = Inst->getNumOperands(); I!=E; ++I)
-    printValueLoad(Inst->getOperand(I));
-  // Print call instruction
-  printFunctionCall(Inst->getOperand(0),Inst);
-  // Save function result and leave "try" block
-  printValueSave(Inst);
-  printSimpleInstruction("leave",Label.c_str());
-  Out << "}\n";
-  Out << "catch [mscorlib]System.Exception {\n";
-  // Redirect to unwind block
-  printSimpleInstruction("pop");
-  printBranchToBlock(Inst->getParent(),NULL,Inst->getUnwindDest());
-  Out << "}\n" << Label << ":\n";
-  // Redirect to continue block
-  printBranchToBlock(Inst->getParent(),NULL,Inst->getNormalDest());
-}
-
-
-void MSILWriter::printSwitchInstruction(const SwitchInst* Inst) {
-  // FIXME: Emulate with IL "switch" instruction
-  // Emulate = if () else if () else if () else ...
-  for (unsigned int I = 1, E = Inst->getNumCases(); I!=E; ++I) {
-    printValueLoad(Inst->getCondition());
-    printValueLoad(Inst->getCaseValue(I));
-    printSimpleInstruction("ceq");
-    // Condition jump to successor block
-    printBranchToBlock(Inst->getParent(),Inst->getSuccessor(I),NULL);
-  }
-  // Jump to default block
-  printBranchToBlock(Inst->getParent(),NULL,Inst->getDefaultDest());
-}
-
-
-void MSILWriter::printVAArgInstruction(const VAArgInst* Inst) {
-  printIndirectLoad(Inst->getOperand(0));
-  printSimpleInstruction("call",
-    "instance typedref [mscorlib]System.ArgIterator::GetNextArg()");
-  printSimpleInstruction("refanyval","void*");
-  std::string Name = 
-    "ldind."+getTypePostfix(PointerType::getUnqual(
-            IntegerType::get(Inst->getContext(), 8)),false);
-  printSimpleInstruction(Name.c_str());
-}
-
-
-void MSILWriter::printAllocaInstruction(const AllocaInst* Inst) {
-  uint64_t Size = TD->getTypeAllocSize(Inst->getAllocatedType());
-  // Constant optimization.
-  if (const ConstantInt* CInt = dyn_cast<ConstantInt>(Inst->getOperand(0))) {
-    printPtrLoad(CInt->getZExtValue()*Size);
-  } else {
-    printPtrLoad(Size);
-    printValueLoad(Inst->getOperand(0));
-    printSimpleInstruction("mul");
-  }
-  printSimpleInstruction("localloc");
-}
-
-
-void MSILWriter::printInstruction(const Instruction* Inst) {
-  const Value *Left = 0, *Right = 0;
-  if (Inst->getNumOperands()>=1) Left = Inst->getOperand(0);
-  if (Inst->getNumOperands()>=2) Right = Inst->getOperand(1);
-  // Print instruction
-  // FIXME: "ShuffleVector","ExtractElement","InsertElement" support.
-  switch (Inst->getOpcode()) {
-  // Terminator
-  case Instruction::Ret:
-    if (Inst->getNumOperands()) {
-      printValueLoad(Left);
-      printSimpleInstruction("ret");
-    } else
-      printSimpleInstruction("ret");
-    break;
-  case Instruction::Br:
-    printBranchInstruction(cast<BranchInst>(Inst));
-    break;
-  // Binary
-  case Instruction::Add:
-  case Instruction::FAdd:
-    printBinaryInstruction("add",Left,Right);
-    break;
-  case Instruction::Sub:
-  case Instruction::FSub:
-    printBinaryInstruction("sub",Left,Right);
-    break;
-  case Instruction::Mul:
-  case Instruction::FMul:
-    printBinaryInstruction("mul",Left,Right);
-    break;
-  case Instruction::UDiv:
-    printBinaryInstruction("div.un",Left,Right);
-    break;
-  case Instruction::SDiv:
-  case Instruction::FDiv:
-    printBinaryInstruction("div",Left,Right);
-    break;
-  case Instruction::URem:
-    printBinaryInstruction("rem.un",Left,Right);
-    break;
-  case Instruction::SRem:
-  case Instruction::FRem:
-    printBinaryInstruction("rem",Left,Right);
-    break;
-  // Binary Condition
-  case Instruction::ICmp:
-    printICmpInstruction(cast<ICmpInst>(Inst)->getPredicate(),Left,Right);
-    break;
-  case Instruction::FCmp:
-    printFCmpInstruction(cast<FCmpInst>(Inst)->getPredicate(),Left,Right);
-    break;
-  // Bitwise Binary
-  case Instruction::And:
-    printBinaryInstruction("and",Left,Right);
-    break;
-  case Instruction::Or:
-    printBinaryInstruction("or",Left,Right);
-    break;
-  case Instruction::Xor:
-    printBinaryInstruction("xor",Left,Right);
-    break;
-  case Instruction::Shl:
-    printValueLoad(Left);
-    printValueLoad(Right);
-    printSimpleInstruction("conv.i4");
-    printSimpleInstruction("shl");
-    break;
-  case Instruction::LShr:
-    printValueLoad(Left);
-    printValueLoad(Right);
-    printSimpleInstruction("conv.i4");
-    printSimpleInstruction("shr.un");
-    break;
-  case Instruction::AShr:
-    printValueLoad(Left);
-    printValueLoad(Right);
-    printSimpleInstruction("conv.i4");
-    printSimpleInstruction("shr");
-    break;
-  case Instruction::Select:
-    printSelectInstruction(Inst->getOperand(0),Inst->getOperand(1),Inst->getOperand(2));
-    break;
-  case Instruction::Load:
-    printIndirectLoad(Inst->getOperand(0));
-    break;
-  case Instruction::Store:
-    printIndirectSave(Inst->getOperand(1), Inst->getOperand(0));
-    break;
-  case Instruction::SExt:
-    printCastInstruction(Inst->getOpcode(),Left,
-                         cast<CastInst>(Inst)->getDestTy(),
-                         cast<CastInst>(Inst)->getSrcTy());
-    break;
-  case Instruction::Trunc:
-  case Instruction::ZExt:
-  case Instruction::FPTrunc:
-  case Instruction::FPExt:
-  case Instruction::UIToFP:
-  case Instruction::SIToFP:
-  case Instruction::FPToUI:
-  case Instruction::FPToSI:
-  case Instruction::PtrToInt:
-  case Instruction::IntToPtr:
-  case Instruction::BitCast:
-    printCastInstruction(Inst->getOpcode(),Left,
-                         cast<CastInst>(Inst)->getDestTy());
-    break;
-  case Instruction::GetElementPtr:
-    printGepInstruction(Inst->getOperand(0),gep_type_begin(Inst),
-                        gep_type_end(Inst));
-    break;
-  case Instruction::Call:
-    printCallInstruction(cast<CallInst>(Inst));
-    break;
-  case Instruction::Invoke:
-    printInvokeInstruction(cast<InvokeInst>(Inst));
-    break;
-  case Instruction::Unwind:
-    printSimpleInstruction("newobj",
-      "instance void [mscorlib]System.Exception::.ctor()");
-    printSimpleInstruction("throw");
-    break;
-  case Instruction::Switch:
-    printSwitchInstruction(cast<SwitchInst>(Inst));
-    break;
-  case Instruction::Alloca:
-    printAllocaInstruction(cast<AllocaInst>(Inst));
-    break;
-  case Instruction::Malloc:
-    llvm_unreachable("LowerAllocationsPass used");
-    break;
-  case Instruction::Free:
-    llvm_unreachable("LowerAllocationsPass used");
-    break;
-  case Instruction::Unreachable:
-    printSimpleInstruction("ldstr", "\"Unreachable instruction\"");
-    printSimpleInstruction("newobj",
-      "instance void [mscorlib]System.Exception::.ctor(string)");
-    printSimpleInstruction("throw");
-    break;
-  case Instruction::VAArg:
-    printVAArgInstruction(cast<VAArgInst>(Inst));
-    break;
-  default:
-    errs() << "Instruction = " << Inst->getName() << '\n';
-    llvm_unreachable("Unsupported instruction");
-  }
-}
-
-
-void MSILWriter::printLoop(const Loop* L) {
-  Out << getLabelName(L->getHeader()->getName()) << ":\n";
-  const std::vector<BasicBlock*>& blocks = L->getBlocks();
-  for (unsigned I = 0, E = blocks.size(); I!=E; I++) {
-    BasicBlock* BB = blocks[I];
-    Loop* BBLoop = LInfo->getLoopFor(BB);
-    if (BBLoop == L)
-      printBasicBlock(BB);
-    else if (BB==BBLoop->getHeader() && BBLoop->getParentLoop()==L)
-      printLoop(BBLoop);
-  }
-  printSimpleInstruction("br",getLabelName(L->getHeader()->getName()).c_str());
-}
-
-
-void MSILWriter::printBasicBlock(const BasicBlock* BB) {
-  Out << getLabelName(BB) << ":\n";
-  for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E; ++I) {
-    const Instruction* Inst = I;
-    // Comment llvm original instruction
-    // Out << "\n//" << *Inst << "\n";
-    // Do not handle PHI instruction in current block
-    if (Inst->getOpcode()==Instruction::PHI) continue;
-    // Print instruction
-    printInstruction(Inst);
-    // Save result
-    if (Inst->getType()!=Type::getVoidTy(BB->getContext())) {
-      // Do not save value after invoke, it done in "try" block
-      if (Inst->getOpcode()==Instruction::Invoke) continue;
-      printValueSave(Inst);
-    }
-  }
-}
-
-
-void MSILWriter::printLocalVariables(const Function& F) {
-  std::string Name;
-  const Type* Ty = NULL;
-  std::set<const Value*> Printed;
-  const Value* VaList = NULL;
-  unsigned StackDepth = 8;
-  // Find local variables
-  for (const_inst_iterator I = inst_begin(&F), E = inst_end(&F); I!=E; ++I) {
-    if (I->getOpcode()==Instruction::Call ||
-        I->getOpcode()==Instruction::Invoke) {
-      // Test stack depth.
-      if (StackDepth<I->getNumOperands())
-        StackDepth = I->getNumOperands();
-    }
-    const AllocaInst* AI = dyn_cast<AllocaInst>(&*I);
-    if (AI && !isa<GlobalVariable>(AI)) {
-      // Local variable allocation.
-      Ty = PointerType::getUnqual(AI->getAllocatedType());
-      Name = getValueName(AI);
-      Out << "\t.locals (" << getTypeName(Ty) << Name << ")\n";
-    } else if (I->getType()!=Type::getVoidTy(F.getContext())) {
-      // Operation result.
-      Ty = I->getType();
-      Name = getValueName(&*I);
-      Out << "\t.locals (" << getTypeName(Ty) << Name << ")\n";
-    }
-    // Test on 'va_list' variable    
-    bool isVaList = false;     
-    if (const VAArgInst* VaInst = dyn_cast<VAArgInst>(&*I)) {
-      // "va_list" as "va_arg" instruction operand.
-      isVaList = true;
-      VaList = VaInst->getOperand(0);
-    } else if (const IntrinsicInst* Inst = dyn_cast<IntrinsicInst>(&*I)) {
-      // "va_list" as intrinsic function operand. 
-      switch (Inst->getIntrinsicID()) {
-      case Intrinsic::vastart:
-      case Intrinsic::vaend:
-      case Intrinsic::vacopy:
-        isVaList = true;
-        VaList = Inst->getOperand(1);
-        break;
-      default:
-        isVaList = false;
-      }
-    }
-    // Print "va_list" variable.
-    if (isVaList && Printed.insert(VaList).second) {
-      Name = getValueName(VaList);
-      Name.insert(Name.length()-1,"$valist");
-      Out << "\t.locals (valuetype [mscorlib]System.ArgIterator "
-          << Name << ")\n";
-    }
-  }
-  printSimpleInstruction(".maxstack",utostr(StackDepth*2).c_str());
-}
-
-
-void MSILWriter::printFunctionBody(const Function& F) {
-  // Print body
-  for (Function::const_iterator I = F.begin(), E = F.end(); I!=E; ++I) {
-    if (Loop *L = LInfo->getLoopFor(I)) {
-      if (L->getHeader()==I && L->getParentLoop()==0)
-        printLoop(L);
-    } else {
-      printBasicBlock(I);
-    }
-  }
-}
-
-
-void MSILWriter::printConstantExpr(const ConstantExpr* CE) {
-  const Value *left = 0, *right = 0;
-  if (CE->getNumOperands()>=1) left = CE->getOperand(0);
-  if (CE->getNumOperands()>=2) right = CE->getOperand(1);
-  // Print instruction
-  switch (CE->getOpcode()) {
-  case Instruction::Trunc:
-  case Instruction::ZExt:
-  case Instruction::SExt:
-  case Instruction::FPTrunc:
-  case Instruction::FPExt:
-  case Instruction::UIToFP:
-  case Instruction::SIToFP:
-  case Instruction::FPToUI:
-  case Instruction::FPToSI:
-  case Instruction::PtrToInt:
-  case Instruction::IntToPtr:
-  case Instruction::BitCast:
-    printCastInstruction(CE->getOpcode(),left,CE->getType());
-    break;
-  case Instruction::GetElementPtr:
-    printGepInstruction(CE->getOperand(0),gep_type_begin(CE),gep_type_end(CE));
-    break;
-  case Instruction::ICmp:
-    printICmpInstruction(CE->getPredicate(),left,right);
-    break;
-  case Instruction::FCmp:
-    printFCmpInstruction(CE->getPredicate(),left,right);
-    break;
-  case Instruction::Select:
-    printSelectInstruction(CE->getOperand(0),CE->getOperand(1),CE->getOperand(2));
-    break;
-  case Instruction::Add:
-  case Instruction::FAdd:
-    printBinaryInstruction("add",left,right);
-    break;
-  case Instruction::Sub:
-  case Instruction::FSub:
-    printBinaryInstruction("sub",left,right);
-    break;
-  case Instruction::Mul:
-  case Instruction::FMul:
-    printBinaryInstruction("mul",left,right);
-    break;
-  case Instruction::UDiv:
-    printBinaryInstruction("div.un",left,right);
-    break;
-  case Instruction::SDiv:
-  case Instruction::FDiv:
-    printBinaryInstruction("div",left,right);
-    break;
-  case Instruction::URem:
-    printBinaryInstruction("rem.un",left,right);
-    break;
-  case Instruction::SRem:
-  case Instruction::FRem:
-    printBinaryInstruction("rem",left,right);
-    break;
-  case Instruction::And:
-    printBinaryInstruction("and",left,right);
-    break;
-  case Instruction::Or:
-    printBinaryInstruction("or",left,right);
-    break;
-  case Instruction::Xor:
-    printBinaryInstruction("xor",left,right);
-    break;
-  case Instruction::Shl:
-    printBinaryInstruction("shl",left,right);
-    break;
-  case Instruction::LShr:
-    printBinaryInstruction("shr.un",left,right);
-    break;
-  case Instruction::AShr:
-    printBinaryInstruction("shr",left,right);
-    break;
-  default:
-    errs() << "Expression = " << *CE << "\n";
-    llvm_unreachable("Invalid constant expression");
-  }
-}
-
-
-void MSILWriter::printStaticInitializerList() {
-  // List of global variables with uninitialized fields.
-  for (std::map<const GlobalVariable*,std::vector<StaticInitializer> >::iterator
-       VarI = StaticInitList.begin(), VarE = StaticInitList.end(); VarI!=VarE;
-       ++VarI) {
-    const std::vector<StaticInitializer>& InitList = VarI->second;
-    if (InitList.empty()) continue;
-    // For each uninitialized field.
-    for (std::vector<StaticInitializer>::const_iterator I = InitList.begin(),
-         E = InitList.end(); I!=E; ++I) {
-      if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(I->constant)) {
-        // Out << "\n// Init " << getValueName(VarI->first) << ", offset " <<
-        //  utostr(I->offset) << ", type "<< *I->constant->getType() << "\n\n";
-        // Load variable address
-        printValueLoad(VarI->first);
-        // Add offset
-        if (I->offset!=0) {
-          printPtrLoad(I->offset);
-          printSimpleInstruction("add");
-        }
-        // Load value
-        printConstantExpr(CE);
-        // Save result at offset
-        std::string postfix = getTypePostfix(CE->getType(),true);
-        if (*postfix.begin()=='u') *postfix.begin() = 'i';
-        postfix = "stind."+postfix;
-        printSimpleInstruction(postfix.c_str());
-      } else {
-        errs() << "Constant = " << *I->constant << '\n';
-        llvm_unreachable("Invalid static initializer");
-      }
-    }
-  }
-}
-
-
-void MSILWriter::printFunction(const Function& F) {
-  bool isSigned = F.paramHasAttr(0, Attribute::SExt);
-  Out << "\n.method static ";
-  Out << (F.hasLocalLinkage() ? "private " : "public ");
-  if (F.isVarArg()) Out << "vararg ";
-  Out << getTypeName(F.getReturnType(),isSigned) << 
-    getConvModopt(F.getCallingConv()) << getValueName(&F) << '\n';
-  // Arguments
-  Out << "\t(";
-  unsigned ArgIdx = 1;
-  for (Function::const_arg_iterator I = F.arg_begin(), E = F.arg_end(); I!=E;
-       ++I, ++ArgIdx) {
-    isSigned = F.paramHasAttr(ArgIdx, Attribute::SExt);
-    if (I!=F.arg_begin()) Out << ", ";
-    Out << getTypeName(I->getType(),isSigned) << getValueName(I);
-  }
-  Out << ") cil managed\n";
-  // Body
-  Out << "{\n";
-  printLocalVariables(F);
-  printFunctionBody(F);
-  Out << "}\n";
-}
-
-
-void MSILWriter::printDeclarations(const TypeSymbolTable& ST) {
-  std::string Name;
-  std::set<const Type*> Printed;
-  for (std::set<const Type*>::const_iterator
-       UI = UsedTypes->begin(), UE = UsedTypes->end(); UI!=UE; ++UI) {
-    const Type* Ty = *UI;
-    if (isa<ArrayType>(Ty) || isa<VectorType>(Ty) || isa<StructType>(Ty))
-      Name = getTypeName(Ty, false, true);
-    // Type with no need to declare.
-    else continue;
-    // Print not duplicated type
-    if (Printed.insert(Ty).second) {
-      Out << ".class value explicit ansi sealed '" << Name << "'";
-      Out << " { .pack " << 1 << " .size " << TD->getTypeAllocSize(Ty);
-      Out << " }\n\n";
-    }
-  }
-}
-
-
-unsigned int MSILWriter::getBitWidth(const Type* Ty) {
-  unsigned int N = Ty->getPrimitiveSizeInBits();
-  assert(N!=0 && "Invalid type in getBitWidth()");
-  switch (N) {
-  case 1:
-  case 8:
-  case 16:
-  case 32:
-  case 64:
-    return N;
-  default:
-    errs() << "Bits = " << N << '\n';
-    llvm_unreachable("Unsupported integer width");
-  }
-  return 0; // Not reached
-}
-
-
-void MSILWriter::printStaticConstant(const Constant* C, uint64_t& Offset) {
-  uint64_t TySize = 0;
-  const Type* Ty = C->getType();
-  // Print zero initialized constant.
-  if (isa<ConstantAggregateZero>(C) || C->isNullValue()) {
-    TySize = TD->getTypeAllocSize(C->getType());
-    Offset += TySize;
-    Out << "int8 (0) [" << TySize << "]";
-    return;
-  }
-  // Print constant initializer
-  switch (Ty->getTypeID()) {
-  case Type::IntegerTyID: {
-    TySize = TD->getTypeAllocSize(Ty);
-    const ConstantInt* Int = cast<ConstantInt>(C);
-    Out << getPrimitiveTypeName(Ty,true) << "(" << Int->getSExtValue() << ")";
-    break;
-  }
-  case Type::FloatTyID:
-  case Type::DoubleTyID: {
-    TySize = TD->getTypeAllocSize(Ty);
-    const ConstantFP* FP = cast<ConstantFP>(C);
-    if (Ty->getTypeID() == Type::FloatTyID)
-      Out << "int32 (" << 
-        (uint32_t)FP->getValueAPF().bitcastToAPInt().getZExtValue() << ')';
-    else
-      Out << "int64 (" << 
-        FP->getValueAPF().bitcastToAPInt().getZExtValue() << ')';
-    break;
-  }
-  case Type::ArrayTyID:
-  case Type::VectorTyID:
-  case Type::StructTyID:
-    for (unsigned I = 0, E = C->getNumOperands(); I<E; I++) {
-      if (I!=0) Out << ",\n";
-      printStaticConstant(C->getOperand(I),Offset);
-    }
-    break;
-  case Type::PointerTyID:
-    TySize = TD->getTypeAllocSize(C->getType());
-    // Initialize with global variable address
-    if (const GlobalVariable *G = dyn_cast<GlobalVariable>(C)) {
-      std::string name = getValueName(G);
-      Out << "&(" << name.insert(name.length()-1,"$data") << ")";
-    } else {
-      // Dynamic initialization
-      if (!isa<ConstantPointerNull>(C) && !C->isNullValue())
-        InitListPtr->push_back(StaticInitializer(C,Offset));
-      // Null pointer initialization
-      if (TySize==4) Out << "int32 (0)";
-      else if (TySize==8) Out << "int64 (0)";
-      else llvm_unreachable("Invalid pointer size");
-    }
-    break;
-  default:
-    errs() << "TypeID = " << Ty->getTypeID() << '\n';
-    llvm_unreachable("Invalid type in printStaticConstant()");
-  }
-  // Increase offset.
-  Offset += TySize;
-}
-
-
-void MSILWriter::printStaticInitializer(const Constant* C,
-                                        const std::string& Name) {
-  switch (C->getType()->getTypeID()) {
-  case Type::IntegerTyID:
-  case Type::FloatTyID:
-  case Type::DoubleTyID: 
-    Out << getPrimitiveTypeName(C->getType(), false);
-    break;
-  case Type::ArrayTyID:
-  case Type::VectorTyID:
-  case Type::StructTyID:
-  case Type::PointerTyID:
-    Out << getTypeName(C->getType());
-    break;
-  default:
-    errs() << "Type = " << *C << "\n";
-    llvm_unreachable("Invalid constant type");
-  }
-  // Print initializer
-  std::string label = Name;
-  label.insert(label.length()-1,"$data");
-  Out << Name << " at " << label << '\n';
-  Out << ".data " << label << " = {\n";
-  uint64_t offset = 0;
-  printStaticConstant(C,offset);
-  Out << "\n}\n\n";
-}
-
-
-void MSILWriter::printVariableDefinition(const GlobalVariable* G) {
-  const Constant* C = G->getInitializer();
-  if (C->isNullValue() || isa<ConstantAggregateZero>(C) || isa<UndefValue>(C))
-    InitListPtr = 0;
-  else
-    InitListPtr = &StaticInitList[G];
-  printStaticInitializer(C,getValueName(G));
-}
-
-
-void MSILWriter::printGlobalVariables() {
-  if (ModulePtr->global_empty()) return;
-  Module::global_iterator I,E;
-  for (I = ModulePtr->global_begin(), E = ModulePtr->global_end(); I!=E; ++I) {
-    // Variable definition
-    Out << ".field static " << (I->isDeclaration() ? "public " :
-                                                     "private ");
-    if (I->isDeclaration()) {
-      Out << getTypeName(I->getType()) << getValueName(&*I) << "\n\n";
-    } else
-      printVariableDefinition(&*I);
-  }
-}
-
-
-const char* MSILWriter::getLibraryName(const Function* F) {
-  return getLibraryForSymbol(F->getName(), true, F->getCallingConv());
-}
-
-
-const char* MSILWriter::getLibraryName(const GlobalVariable* GV) {
-  return getLibraryForSymbol(Mang->getMangledName(GV), false, 0);
-}
-
-
-const char* MSILWriter::getLibraryForSymbol(const StringRef &Name, 
-                                            bool isFunction,
-                                            unsigned CallingConv) {
-  // TODO: Read *.def file with function and libraries definitions.
-  return "MSVCRT.DLL";  
-}
-
-
-void MSILWriter::printExternals() {
-  Module::const_iterator I,E;
-  // Functions.
-  for (I=ModulePtr->begin(),E=ModulePtr->end(); I!=E; ++I) {
-    // Skip intrisics
-    if (I->isIntrinsic()) continue;
-    if (I->isDeclaration()) {
-      const Function* F = I; 
-      std::string Name = getConvModopt(F->getCallingConv())+getValueName(F);
-      std::string Sig = 
-        getCallSignature(cast<FunctionType>(F->getFunctionType()), NULL, Name);
-      Out << ".method static hidebysig pinvokeimpl(\""
-          << getLibraryName(F) << "\")\n\t" << Sig << " preservesig {}\n\n";
-    }
-  }
-  // External variables and static initialization.
-  Out <<
-  ".method public hidebysig static pinvokeimpl(\"KERNEL32.DLL\" ansi winapi)"
-  "  native int LoadLibrary(string) preservesig {}\n"
-  ".method public hidebysig static pinvokeimpl(\"KERNEL32.DLL\" ansi winapi)"
-  "  native int GetProcAddress(native int, string) preservesig {}\n";
-  Out <<
-  ".method private static void* $MSIL_Import(string lib,string sym)\n"
-  " managed cil\n{\n"
-  "\tldarg\tlib\n"
-  "\tcall\tnative int LoadLibrary(string)\n"
-  "\tldarg\tsym\n"
-  "\tcall\tnative int GetProcAddress(native int,string)\n"
-  "\tdup\n"
-  "\tbrtrue\tL_01\n"
-  "\tldstr\t\"Can no import variable\"\n"
-  "\tnewobj\tinstance void [mscorlib]System.Exception::.ctor(string)\n"
-  "\tthrow\n"
-  "L_01:\n"
-  "\tret\n"
-  "}\n\n"
-  ".method static private void $MSIL_Init() managed cil\n{\n";
-  printStaticInitializerList();
-  // Foreach global variable.
-  for (Module::global_iterator I = ModulePtr->global_begin(),
-       E = ModulePtr->global_end(); I!=E; ++I) {
-    if (!I->isDeclaration() || !I->hasDLLImportLinkage()) continue;
-    // Use "LoadLibrary"/"GetProcAddress" to recive variable address.
-    std::string Label = "not_null$_"+utostr(getUniqID());
-    std::string Tmp = getTypeName(I->getType())+getValueName(&*I);
-    printSimpleInstruction("ldsflda",Tmp.c_str());
-    Out << "\tldstr\t\"" << getLibraryName(&*I) << "\"\n";
-    Out << "\tldstr\t\"" << Mang->getMangledName(&*I) << "\"\n";
-    printSimpleInstruction("call","void* $MSIL_Import(string,string)");
-    printIndirectSave(I->getType());
-  }
-  printSimpleInstruction("ret");
-  Out << "}\n\n";
-}
-
-
-//===----------------------------------------------------------------------===//
-//                      External Interface declaration
-//===----------------------------------------------------------------------===//
-
-bool MSILTarget::addPassesToEmitWholeFile(PassManager &PM,
-                                          formatted_raw_ostream &o,
-                                          CodeGenFileType FileType,
-                                          CodeGenOpt::Level OptLevel)
-{
-  if (FileType != TargetMachine::AssemblyFile) return true;
-  MSILWriter* Writer = new MSILWriter(o);
-  PM.add(createGCLoweringPass());
-  PM.add(createLowerAllocationsPass(true));
-  // FIXME: Handle switch trougth native IL instruction "switch"
-  PM.add(createLowerSwitchPass());
-  PM.add(createCFGSimplificationPass());
-  PM.add(new MSILModule(Writer->UsedTypes,Writer->TD));
-  PM.add(Writer);
-  PM.add(createGCInfoDeleter());
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/MSILWriter.h b/libclamav/c++/llvm/lib/Target/MSIL/MSILWriter.h
deleted file mode 100644
index aa9e075..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/MSILWriter.h
+++ /dev/null
@@ -1,259 +0,0 @@
-//===-- MSILWriter.h - TargetMachine for the MSIL ---------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the MSILWriter that is used by the MSIL.
-//
-//===----------------------------------------------------------------------===//
-#ifndef MSILWRITER_H
-#define MSILWRITER_H
-
-#include "llvm/Constants.h"
-#include "llvm/Module.h"
-#include "llvm/Instructions.h"
-#include "llvm/IntrinsicInst.h"
-#include "llvm/Pass.h"
-#include "llvm/PassManager.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Analysis/FindUsedTypes.h"
-#include "llvm/Analysis/LoopInfo.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/GetElementPtrTypeIterator.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Support/Mangler.h"
-
-namespace llvm {
-  extern Target TheMSILTarget;
-
-  class MSILModule : public ModulePass {
-    Module *ModulePtr;
-    const std::set<const Type *>*& UsedTypes;
-    const TargetData*& TD;
-
-  public:
-    static char ID;
-    MSILModule(const std::set<const Type *>*& _UsedTypes,
-               const TargetData*& _TD)
-      : ModulePass(&ID), UsedTypes(_UsedTypes), TD(_TD) {}
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<FindUsedTypes>();
-      AU.addRequired<TargetData>();
-    }
-
-    virtual const char *getPassName() const {
-      return "MSIL backend definitions";
-    }
-
-    virtual bool runOnModule(Module &M);
-
-  };
-
-  class MSILWriter : public FunctionPass {
-    struct StaticInitializer {
-      const Constant* constant;
-      uint64_t offset;
-      
-      StaticInitializer()
-        : constant(0), offset(0) {}
-
-      StaticInitializer(const Constant* _constant, uint64_t _offset)
-        : constant(_constant), offset(_offset) {} 
-    };
-
-    uint64_t UniqID;
-
-    uint64_t getUniqID() {
-      return ++UniqID;
-    }
-
-  public:
-    formatted_raw_ostream &Out;
-    Module* ModulePtr;
-    const TargetData* TD;
-    Mangler* Mang;
-    LoopInfo *LInfo;
-    std::vector<StaticInitializer>* InitListPtr;
-    std::map<const GlobalVariable*,std::vector<StaticInitializer> >
-      StaticInitList;
-    const std::set<const Type *>* UsedTypes;
-    static char ID;
-    DenseMap<const Value*, unsigned> AnonValueNumbers;
-    unsigned NextAnonValueNumber;
-
-    MSILWriter(formatted_raw_ostream &o) : FunctionPass(&ID), Out(o),
-         NextAnonValueNumber(0) {
-      UniqID = 0;
-    }
-
-    enum ValueType {
-      UndefVT,
-      GlobalVT,
-      InternalVT,
-      ArgumentVT,
-      LocalVT,
-      ConstVT,
-      ConstExprVT
-    };
-
-    bool isVariable(ValueType V) {
-      return V==GlobalVT || V==InternalVT || V==ArgumentVT || V==LocalVT;
-    }
-
-    bool isConstValue(ValueType V) {
-      return V==ConstVT || V==ConstExprVT;
-    }
-
-    virtual const char *getPassName() const { return "MSIL backend"; }
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<LoopInfo>();
-      AU.setPreservesAll();
-    }
-
-    bool runOnFunction(Function &F);
-
-    virtual bool doInitialization(Module &M);
-
-    virtual bool doFinalization(Module &M);
-
-    void printModuleStartup();
-
-    bool isZeroValue(const Value* V);
-
-    std::string getValueName(const Value* V);
-
-    std::string getLabelName(const Value* V);
-
-    std::string getLabelName(const std::string& Name);
-
-    std::string getConvModopt(unsigned CallingConvID);
-
-    std::string getArrayTypeName(Type::TypeID TyID, const Type* Ty);
-
-    std::string getPrimitiveTypeName(const Type* Ty, bool isSigned);
-
-    std::string getFunctionTypeName(const Type* Ty);
-
-    std::string getPointerTypeName(const Type* Ty);
-
-    std::string getTypeName(const Type* Ty, bool isSigned = false,
-                            bool isNested = false);
-
-    ValueType getValueLocation(const Value* V);
-
-    std::string getTypePostfix(const Type* Ty, bool Expand,
-                               bool isSigned = false);
-
-    void printConvToPtr();
-
-    void printPtrLoad(uint64_t N);
-
-    void printValuePtrLoad(const Value* V);
-
-    void printConstLoad(const Constant* C);
-
-    void printValueLoad(const Value* V);
-
-    void printValueSave(const Value* V);
-
-    void printBinaryInstruction(const char* Name, const Value* Left,
-                                const Value* Right);
-
-    void printSimpleInstruction(const char* Inst, const char* Operand = NULL);
-
-    void printPHICopy(const BasicBlock* Src, const BasicBlock* Dst);
-
-    void printBranchToBlock(const BasicBlock* CurrBB,
-                            const BasicBlock* TrueBB,
-                            const BasicBlock* FalseBB);
-
-    void printBranchInstruction(const BranchInst* Inst);
-
-    void printSelectInstruction(const Value* Cond, const Value* VTrue,
-                                const Value* VFalse);
-
-    void printIndirectLoad(const Value* V);
-
-    void printIndirectSave(const Value* Ptr, const Value* Val);
-
-    void printIndirectSave(const Type* Ty);
-
-    void printCastInstruction(unsigned int Op, const Value* V,
-                              const Type* Ty, const Type* SrcTy=0);
-
-    void printGepInstruction(const Value* V, gep_type_iterator I,
-                             gep_type_iterator E);
-
-    std::string getCallSignature(const FunctionType* Ty,
-                                 const Instruction* Inst,
-                                 std::string Name);
-
-    void printFunctionCall(const Value* FnVal, const Instruction* Inst);
-
-    void printIntrinsicCall(const IntrinsicInst* Inst);
-
-    void printCallInstruction(const Instruction* Inst);
-
-    void printICmpInstruction(unsigned Predicate, const Value* Left,
-                              const Value* Right);
-
-    void printFCmpInstruction(unsigned Predicate, const Value* Left,
-                              const Value* Right);
-
-    void printInvokeInstruction(const InvokeInst* Inst);
-
-    void printSwitchInstruction(const SwitchInst* Inst);
-
-    void printVAArgInstruction(const VAArgInst* Inst);
-
-    void printAllocaInstruction(const AllocaInst* Inst);
-
-    void printInstruction(const Instruction* Inst);
-
-    void printLoop(const Loop* L);
-
-    void printBasicBlock(const BasicBlock* BB);
-    
-    void printLocalVariables(const Function& F);
-
-    void printFunctionBody(const Function& F);
-
-    void printConstantExpr(const ConstantExpr* CE);
-
-    void printStaticInitializerList();
-
-    void printFunction(const Function& F);
-
-    void printDeclarations(const TypeSymbolTable& ST);
-
-    unsigned int getBitWidth(const Type* Ty);
-
-    void printStaticConstant(const Constant* C, uint64_t& Offset);
-
-    void printStaticInitializer(const Constant* C, const std::string& Name);
-
-    void printVariableDefinition(const GlobalVariable* G);
-
-    void printGlobalVariables();
-
-    const char* getLibraryName(const Function* F);
-
-    const char* getLibraryName(const GlobalVariable* GV); 
-    
-    const char* getLibraryForSymbol(const StringRef &Name, bool isFunction,
-                                    unsigned CallingConv);
-
-    void printExternals();
-  };
-
-}
-
-#endif
-
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/Makefile b/libclamav/c++/llvm/lib/Target/MSIL/Makefile
deleted file mode 100644
index 8057cc7..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- lib/Target/MSIL/Makefile ----------------------------*- Makefile -*-===##
-#
-#		      The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../..
-LIBRARYNAME = LLVMMSIL
-
-DIRS = TargetInfo
-
-include $(LEVEL)/Makefile.common
-
-CompileCommonOpts := $(CompileCommonOpts) -Wno-format
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/README.TXT b/libclamav/c++/llvm/lib/Target/MSIL/README.TXT
deleted file mode 100644
index d797c71..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/README.TXT
+++ /dev/null
@@ -1,26 +0,0 @@
-//===---------------------------------------------------------------------===// 
-
-Vector instructions support.
-
-ShuffleVector
-ExtractElement
-InsertElement
-
-//===---------------------------------------------------------------------===// 
-
-Add "OpaqueType" type.
-
-//===---------------------------------------------------------------------===// 
-
-"switch" instruction emulation with CLI "switch" instruction.
-
-//===---------------------------------------------------------------------===// 
-
-Write linker for external function, because function export need to know 
-dynamic library where function located.
-
-.method static hidebysig pinvokeimpl("msvcrt.dll" cdecl)
-    void free(void*) preservesig {}
-
-
-
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 9f0c3a0..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMMSILInfo
-  MSILTargetInfo.cpp
-  )
-
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp
deleted file mode 100644
index dfd4281..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/MSILTargetInfo.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- MSILTargetInfo.cpp - MSIL Target Implementation -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSILWriter.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheMSILTarget;
-
-static unsigned MSIL_TripleMatchQuality(const std::string &TT) {
-  // This class always works, but shouldn't be the default in most cases.
-  return 1;
-}
-
-extern "C" void LLVMInitializeMSILTargetInfo() { 
-  TargetRegistry::RegisterTarget(TheMSILTarget, "msil",    
-                                  "MSIL backend",
-                                  &MSIL_TripleMatchQuality);
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/Makefile
deleted file mode 100644
index 30b0950..0000000
--- a/libclamav/c++/llvm/lib/Target/MSIL/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/MSIL/TargetInfo/Makefile -----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMMSILInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 6e66887..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMMSP430AsmPrinter
-  MSP430AsmPrinter.cpp
-  )
-add_dependencies(LLVMMSP430AsmPrinter MSP430CodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp
deleted file mode 100644
index 6e2e959..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp
+++ /dev/null
@@ -1,265 +0,0 @@
-//===-- MSP430AsmPrinter.cpp - MSP430 LLVM assembly writer ----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to the MSP430 assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "asm-printer"
-#include "MSP430.h"
-#include "MSP430InstrInfo.h"
-#include "MSP430MCAsmInfo.h"
-#include "MSP430TargetMachine.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/ErrorHandling.h"
-
-using namespace llvm;
-
-STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-namespace {
-  class VISIBILITY_HIDDEN MSP430AsmPrinter : public AsmPrinter {
-  public:
-    MSP430AsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                     const MCAsmInfo *MAI, bool V)
-      : AsmPrinter(O, TM, MAI, V) {}
-
-    virtual const char *getPassName() const {
-      return "MSP430 Assembly Printer";
-    }
-
-    void printOperand(const MachineInstr *MI, int OpNum,
-                      const char* Modifier = 0);
-    void printSrcMemOperand(const MachineInstr *MI, int OpNum,
-                            const char* Modifier = 0);
-    void printCCOperand(const MachineInstr *MI, int OpNum);
-    void printInstruction(const MachineInstr *MI);  // autogenerated.
-    void printMachineInstruction(const MachineInstr * MI);
-    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                         unsigned AsmVariant,
-                         const char *ExtraCode);
-
-    void emitFunctionHeader(const MachineFunction &MF);
-    bool runOnMachineFunction(MachineFunction &F);
-
-    virtual void PrintGlobalVariable(const GlobalVariable *GV) {
-      // FIXME: No support for global variables?
-    }
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AsmPrinter::getAnalysisUsage(AU);
-      AU.setPreservesAll();
-    }
-  };
-} // end of anonymous namespace
-
-#include "MSP430GenAsmWriter.inc"
-
-
-void MSP430AsmPrinter::emitFunctionHeader(const MachineFunction &MF) {
-  const Function *F = MF.getFunction();
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-
-  unsigned FnAlign = MF.getAlignment();
-  EmitAlignment(FnAlign, F);
-
-  switch (F->getLinkage()) {
-  default: llvm_unreachable("Unknown linkage type!");
-  case Function::InternalLinkage:  // Symbols default to internal.
-  case Function::PrivateLinkage:
-  case Function::LinkerPrivateLinkage:
-    break;
-  case Function::ExternalLinkage:
-    O << "\t.globl\t" << CurrentFnName << '\n';
-    break;
-  case Function::LinkOnceAnyLinkage:
-  case Function::LinkOnceODRLinkage:
-  case Function::WeakAnyLinkage:
-  case Function::WeakODRLinkage:
-    O << "\t.weak\t" << CurrentFnName << '\n';
-    break;
-  }
-
-  printVisibility(CurrentFnName, F->getVisibility());
-
-  O << "\t.type\t" << CurrentFnName << ", at function\n"
-    << CurrentFnName << ":\n";
-}
-
-bool MSP430AsmPrinter::runOnMachineFunction(MachineFunction &MF) {
-  SetupMachineFunction(MF);
-  O << "\n\n";
-
-  // Print the 'header' of function
-  emitFunctionHeader(MF);
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    // Print a label for the basic block.
-    if (!VerboseAsm && (I->pred_empty() || I->isOnlyReachableByFallthrough())) {
-      // This is an entry block or a block that's only reachable via a
-      // fallthrough edge. In non-VerboseAsm mode, don't print the label.
-    } else {
-      printBasicBlockLabel(I, true, true, VerboseAsm);
-      O << '\n';
-    }
-
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II)
-      // Print the assembly for the instruction.
-      printMachineInstruction(II);
-  }
-
-  if (MAI->hasDotTypeDotSizeDirective())
-    O << "\t.size\t" << CurrentFnName << ", .-" << CurrentFnName << '\n';
-
-  // We didn't modify anything
-  return false;
-}
-
-void MSP430AsmPrinter::printMachineInstruction(const MachineInstr *MI) {
-  ++EmittedInsts;
-
-  // Call the autogenerated instruction printer routines.
-  printInstruction(MI);
-}
-
-void MSP430AsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
-                                    const char* Modifier) {
-  const MachineOperand &MO = MI->getOperand(OpNum);
-  switch (MO.getType()) {
-  case MachineOperand::MO_Register:
-    assert (TargetRegisterInfo::isPhysicalRegister(MO.getReg()) &&
-            "Virtual registers should be already mapped!");
-    O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
-    return;
-  case MachineOperand::MO_Immediate:
-    if (!Modifier || strcmp(Modifier, "nohash"))
-      O << '#';
-    O << MO.getImm();
-    return;
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB());
-    return;
-  case MachineOperand::MO_GlobalAddress: {
-    bool isMemOp  = Modifier && !strcmp(Modifier, "mem");
-    bool isCallOp = Modifier && !strcmp(Modifier, "call");
-    std::string Name = Mang->getMangledName(MO.getGlobal());
-    assert(MO.getOffset() == 0 && "No offsets allowed!");
-
-    if (isCallOp)
-      O << '#';
-    else if (isMemOp)
-      O << '&';
-
-    O << Name;
-
-    return;
-  }
-  case MachineOperand::MO_ExternalSymbol: {
-    bool isCallOp = Modifier && !strcmp(Modifier, "call");
-    std::string Name(MAI->getGlobalPrefix());
-    Name += MO.getSymbolName();
-    if (isCallOp)
-      O << '#';
-    O << Name;
-    return;
-  }
-  default:
-    llvm_unreachable("Not implemented yet!");
-  }
-}
-
-void MSP430AsmPrinter::printSrcMemOperand(const MachineInstr *MI, int OpNum,
-                                          const char* Modifier) {
-  const MachineOperand &Base = MI->getOperand(OpNum);
-  const MachineOperand &Disp = MI->getOperand(OpNum+1);
-
-  if (Base.isGlobal())
-    printOperand(MI, OpNum, "mem");
-  else if (Disp.isImm() && !Base.getReg())
-    printOperand(MI, OpNum);
-  else if (Base.getReg()) {
-    if (Disp.getImm()) {
-      printOperand(MI, OpNum + 1, "nohash");
-      O << '(';
-      printOperand(MI, OpNum);
-      O << ')';
-    } else {
-      O << '@';
-      printOperand(MI, OpNum);
-    }
-  } else
-    llvm_unreachable("Unsupported memory operand");
-}
-
-void MSP430AsmPrinter::printCCOperand(const MachineInstr *MI, int OpNum) {
-  unsigned CC = MI->getOperand(OpNum).getImm();
-
-  switch (CC) {
-  default:
-   llvm_unreachable("Unsupported CC code");
-   break;
-  case MSP430::COND_E:
-   O << "eq";
-   break;
-  case MSP430::COND_NE:
-   O << "ne";
-   break;
-  case MSP430::COND_HS:
-   O << "hs";
-   break;
-  case MSP430::COND_LO:
-   O << "lo";
-   break;
-  case MSP430::COND_GE:
-   O << "ge";
-   break;
-  case MSP430::COND_L:
-   O << 'l';
-   break;
-  }
-}
-
-/// PrintAsmOperand - Print out an operand for an inline asm expression.
-///
-bool MSP430AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                                       unsigned AsmVariant,
-                                       const char *ExtraCode) {
-  // Does this asm operand have a single letter operand modifier?
-  if (ExtraCode && ExtraCode[0])
-    return true; // Unknown modifier.
-
-  printOperand(MI, OpNo);
-  return false;
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeMSP430AsmPrinter() {
-  RegisterAsmPrinter<MSP430AsmPrinter> X(TheMSP430Target);
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/Makefile
index 4f340c6..e69de29 100644
--- a/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/Makefile
+++ b/libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/Makefile
@@ -1,15 +0,0 @@
-##===- lib/Target/MSP430/AsmPrinter/Makefile ---------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMMSP430AsmPrinter
-
-# Hack: we need to include 'main' MSP430 target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/MSP430/CMakeLists.txt
deleted file mode 100644
index 60e0bb1..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS MSP430.td)
-
-tablegen(MSP430GenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(MSP430GenRegisterNames.inc -gen-register-enums)
-tablegen(MSP430GenRegisterInfo.inc -gen-register-desc)
-tablegen(MSP430GenInstrNames.inc -gen-instr-enums)
-tablegen(MSP430GenInstrInfo.inc -gen-instr-desc)
-tablegen(MSP430GenAsmWriter.inc -gen-asm-writer)
-tablegen(MSP430GenDAGISel.inc -gen-dag-isel)
-tablegen(MSP430GenCallingConv.inc -gen-callingconv)
-tablegen(MSP430GenSubtarget.inc -gen-subtarget)
-
-add_llvm_target(MSP430CodeGen
-  MSP430InstrInfo.cpp
-  MSP430ISelDAGToDAG.cpp
-  MSP430ISelLowering.cpp
-  MSP430MCAsmInfo.cpp
-  MSP430RegisterInfo.cpp
-  MSP430Subtarget.cpp
-  MSP430TargetMachine.cpp
-  )
-
-target_link_libraries (LLVMMSP430CodeGen LLVMSelectionDAG)
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430.h
deleted file mode 100644
index d9f5f86..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//==-- MSP430.h - Top-level interface for MSP430 representation --*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in
-// the LLVM MSP430 backend.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_MSP430_H
-#define LLVM_TARGET_MSP430_H
-
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-  class MSP430TargetMachine;
-  class FunctionPass;
-  class formatted_raw_ostream;
-
-  FunctionPass *createMSP430ISelDag(MSP430TargetMachine &TM,
-                                    CodeGenOpt::Level OptLevel);
-
-  extern Target TheMSP430Target;
-
-} // end namespace llvm;
-
-// Defines symbolic names for MSP430 registers.
-// This defines a mapping from register name to register number.
-#include "MSP430GenRegisterNames.inc"
-
-// Defines symbolic names for the MSP430 instructions.
-#include "MSP430GenInstrNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430.td b/libclamav/c++/llvm/lib/Target/MSP430/MSP430.td
deleted file mode 100644
index 89313ab..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430.td
+++ /dev/null
@@ -1,60 +0,0 @@
-//===- MSP430.td - Describe the MSP430 Target Machine ---------*- tblgen -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This is the top level entry point for the MSP430 target.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Target-independent interfaces
-//===----------------------------------------------------------------------===//
-
-include "llvm/Target/Target.td"
-
-//===----------------------------------------------------------------------===//
-// Subtarget Features. 
-//===----------------------------------------------------------------------===//
-def FeatureX
- : SubtargetFeature<"ext", "ExtendedInsts", "true",
-                    "Enable MSP430-X extensions">;
-
-//===----------------------------------------------------------------------===//
-// MSP430 supported processors.
-//===----------------------------------------------------------------------===//
-class Proc<string Name, list<SubtargetFeature> Features>
- : Processor<Name, NoItineraries, Features>;
-
-def : Proc<"generic",         []>;
-
-//===----------------------------------------------------------------------===//
-// Register File Description
-//===----------------------------------------------------------------------===//
-
-include "MSP430RegisterInfo.td"
-
-//===----------------------------------------------------------------------===//
-// Calling Convention Description
-//===----------------------------------------------------------------------===//
-
-include "MSP430CallingConv.td"
-
-//===----------------------------------------------------------------------===//
-// Instruction Descriptions
-//===----------------------------------------------------------------------===//
-
-include "MSP430InstrInfo.td"
-
-def MSP430InstrInfo : InstrInfo {} 
-
-//===----------------------------------------------------------------------===//
-// Target Declaration
-//===----------------------------------------------------------------------===//
-
-def MSP430 : Target {
-  let InstructionSet = MSP430InstrInfo;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430CallingConv.td b/libclamav/c++/llvm/lib/Target/MSP430/MSP430CallingConv.td
deleted file mode 100644
index ad27cc9..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430CallingConv.td
+++ /dev/null
@@ -1,37 +0,0 @@
-//==- MSP430CallingConv.td - Calling Conventions for MSP430 -*- tablegen -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This describes the calling conventions for MSP430 architecture.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// MSP430 Return Value Calling Convention
-//===----------------------------------------------------------------------===//
-def RetCC_MSP430 : CallingConv<[
-  // i8 are returned in registers R15B, R14B, R13B, R12B
-  CCIfType<[i8], CCAssignToReg<[R15B, R14B, R13B, R12B]>>,
-
-  // i16 are returned in registers R15, R14, R13, R12
-  CCIfType<[i16], CCAssignToReg<[R15W, R14W, R13W, R12W]>>
-]>;
-
-//===----------------------------------------------------------------------===//
-// MSP430 Argument Calling Conventions
-//===----------------------------------------------------------------------===//
-def CC_MSP430 : CallingConv<[
-  // Promote i8 arguments to i16.
-  CCIfType<[i8], CCPromoteToType<i16>>,
-
-  // The first 4 integer arguments of non-varargs functions are passed in
-  // integer registers.
-  CCIfNotVarArg<CCIfType<[i16], CCAssignToReg<[R15W, R14W, R13W, R12W]>>>,
-
-  // Integer values get stored in stack slots that are 2 bytes in
-  // size and 2-byte aligned.
-  CCIfType<[i16], CCAssignToStack<2, 2>>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
deleted file mode 100644
index 7a34c6f..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-//===-- MSP430ISelDAGToDAG.cpp - A dag to dag inst selector for MSP430 ----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the MSP430 target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSP430.h"
-#include "MSP430ISelLowering.h"
-#include "MSP430TargetMachine.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/Constants.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/Target/TargetLowering.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-/// MSP430DAGToDAGISel - MSP430 specific code to select MSP430 machine
-/// instructions for SelectionDAG operations.
-///
-namespace {
-  class MSP430DAGToDAGISel : public SelectionDAGISel {
-    MSP430TargetLowering &Lowering;
-    const MSP430Subtarget &Subtarget;
-
-  public:
-    MSP430DAGToDAGISel(MSP430TargetMachine &TM, CodeGenOpt::Level OptLevel)
-      : SelectionDAGISel(TM, OptLevel),
-        Lowering(*TM.getTargetLowering()),
-        Subtarget(*TM.getSubtargetImpl()) { }
-
-    virtual void InstructionSelect();
-
-    virtual const char *getPassName() const {
-      return "MSP430 DAG->DAG Pattern Instruction Selection";
-    }
-
-    // Include the pieces autogenerated from the target description.
-  #include "MSP430GenDAGISel.inc"
-
-  private:
-    SDNode *Select(SDValue Op);
-    bool SelectAddr(SDValue Op, SDValue Addr, SDValue &Base, SDValue &Disp);
-
-  #ifndef NDEBUG
-    unsigned Indent;
-  #endif
-  };
-}  // end anonymous namespace
-
-/// createMSP430ISelDag - This pass converts a legalized DAG into a
-/// MSP430-specific DAG, ready for instruction scheduling.
-///
-FunctionPass *llvm::createMSP430ISelDag(MSP430TargetMachine &TM,
-                                        CodeGenOpt::Level OptLevel) {
-  return new MSP430DAGToDAGISel(TM, OptLevel);
-}
-
-// FIXME: This is pretty dummy routine and needs to be rewritten in the future.
-bool MSP430DAGToDAGISel::SelectAddr(SDValue Op, SDValue Addr,
-                                    SDValue &Base, SDValue &Disp) {
-  // Try to match frame address first.
-  if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(Addr)) {
-    Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i16);
-    Disp = CurDAG->getTargetConstant(0, MVT::i16);
-    return true;
-  }
-
-  switch (Addr.getOpcode()) {
-  case ISD::ADD:
-   // Operand is a result from ADD with constant operand which fits into i16.
-   if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) {
-      uint64_t CVal = CN->getZExtValue();
-      // Offset should fit into 16 bits.
-      if (((CVal << 48) >> 48) == CVal) {
-        SDValue N0 = Addr.getOperand(0);
-        if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(N0))
-          Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i16);
-        else
-          Base = N0;
-
-        Disp = CurDAG->getTargetConstant(CVal, MVT::i16);
-        return true;
-      }
-    }
-    break;
-  case MSP430ISD::Wrapper:
-    SDValue N0 = Addr.getOperand(0);
-    if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(N0)) {
-      Base = CurDAG->getTargetGlobalAddress(G->getGlobal(),
-                                            MVT::i16, G->getOffset());
-      Disp = CurDAG->getTargetConstant(0, MVT::i16);
-      return true;
-    } else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(N0)) {
-      Base = CurDAG->getTargetExternalSymbol(E->getSymbol(), MVT::i16);
-      Disp = CurDAG->getTargetConstant(0, MVT::i16);
-    }
-    break;
-  };
-
-  Base = Addr;
-  Disp = CurDAG->getTargetConstant(0, MVT::i16);
-
-  return true;
-}
-
-
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void MSP430DAGToDAGISel::InstructionSelect() {
-  DEBUG(BB->dump());
-
-  // Codegen the basic block.
-  DEBUG(errs() << "===== Instruction selection begins:\n");
-  DEBUG(Indent = 0);
-  SelectRoot(*CurDAG);
-  DEBUG(errs() << "===== Instruction selection ends:\n");
-
-  CurDAG->RemoveDeadNodes();
-}
-
-SDNode *MSP430DAGToDAGISel::Select(SDValue Op) {
-  SDNode *Node = Op.getNode();
-  DebugLoc dl = Op.getDebugLoc();
-
-  // Dump information about the Node being selected
-  DEBUG(errs().indent(Indent) << "Selecting: ");
-  DEBUG(Node->dump(CurDAG));
-  DEBUG(errs() << "\n");
-  DEBUG(Indent += 2);
-
-  // If we have a custom node, we already have selected!
-  if (Node->isMachineOpcode()) {
-    DEBUG(errs().indent(Indent-2) << "== ";
-          Node->dump(CurDAG);
-          errs() << "\n");
-    DEBUG(Indent -= 2);
-    return NULL;
-  }
-
-  // Few custom selection stuff.
-  switch (Node->getOpcode()) {
-  default: break;
-  case ISD::FrameIndex: {
-    assert(Op.getValueType() == MVT::i16);
-    int FI = cast<FrameIndexSDNode>(Node)->getIndex();
-    SDValue TFI = CurDAG->getTargetFrameIndex(FI, MVT::i16);
-    if (Node->hasOneUse())
-      return CurDAG->SelectNodeTo(Node, MSP430::ADD16ri, MVT::i16,
-                                  TFI, CurDAG->getTargetConstant(0, MVT::i16));
-    return CurDAG->getTargetNode(MSP430::ADD16ri, dl, MVT::i16,
-                                 TFI, CurDAG->getTargetConstant(0, MVT::i16));
-  }
-  }
-
-  // Select the default instruction
-  SDNode *ResNode = SelectCode(Op);
-
-  DEBUG(errs() << std::string(Indent-2, ' ') << "=> ");
-  if (ResNode == NULL || ResNode == Op.getNode())
-    DEBUG(Op.getNode()->dump(CurDAG));
-  else
-    DEBUG(ResNode->dump(CurDAG));
-  DEBUG(errs() << "\n");
-  DEBUG(Indent -= 2);
-
-  return ResNode;
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp b/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
deleted file mode 100644
index 4c3e398..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
+++ /dev/null
@@ -1,740 +0,0 @@
-//===-- MSP430ISelLowering.cpp - MSP430 DAG Lowering Implementation  ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the MSP430TargetLowering class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "msp430-lower"
-
-#include "MSP430ISelLowering.h"
-#include "MSP430.h"
-#include "MSP430TargetMachine.h"
-#include "MSP430Subtarget.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/GlobalVariable.h"
-#include "llvm/GlobalAlias.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/VectorExtras.h"
-using namespace llvm;
-
-MSP430TargetLowering::MSP430TargetLowering(MSP430TargetMachine &tm) :
-  TargetLowering(tm, new TargetLoweringObjectFileELF()),
-  Subtarget(*tm.getSubtargetImpl()), TM(tm) {
-
-  // Set up the register classes.
-  addRegisterClass(MVT::i8,  MSP430::GR8RegisterClass);
-  addRegisterClass(MVT::i16, MSP430::GR16RegisterClass);
-
-  // Compute derived properties from the register classes
-  computeRegisterProperties();
-
-  // Provide all sorts of operation actions
-
-  // Division is expensive
-  setIntDivIsCheap(false);
-
-  // Even if we have only 1 bit shift here, we can perform
-  // shifts of the whole bitwidth 1 bit per step.
-  setShiftAmountType(MVT::i8);
-
-  setStackPointerRegisterToSaveRestore(MSP430::SPW);
-  setBooleanContents(ZeroOrOneBooleanContent);
-  setSchedulingPreference(SchedulingForLatency);
-
-  setLoadExtAction(ISD::EXTLOAD,  MVT::i1, Promote);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i8, Expand);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i16, Expand);
-
-  // We don't have any truncstores
-  setTruncStoreAction(MVT::i16, MVT::i8, Expand);
-
-  setOperationAction(ISD::SRA,              MVT::i8,    Custom);
-  setOperationAction(ISD::SHL,              MVT::i8,    Custom);
-  setOperationAction(ISD::SRL,              MVT::i8,    Custom);
-  setOperationAction(ISD::SRA,              MVT::i16,   Custom);
-  setOperationAction(ISD::SHL,              MVT::i16,   Custom);
-  setOperationAction(ISD::SRL,              MVT::i16,   Custom);
-  setOperationAction(ISD::ROTL,             MVT::i8,    Expand);
-  setOperationAction(ISD::ROTR,             MVT::i8,    Expand);
-  setOperationAction(ISD::ROTL,             MVT::i16,   Expand);
-  setOperationAction(ISD::ROTR,             MVT::i16,   Expand);
-  setOperationAction(ISD::GlobalAddress,    MVT::i16,   Custom);
-  setOperationAction(ISD::ExternalSymbol,   MVT::i16,   Custom);
-  setOperationAction(ISD::BR_JT,            MVT::Other, Expand);
-  setOperationAction(ISD::BRIND,            MVT::Other, Expand);
-  setOperationAction(ISD::BR_CC,            MVT::i8,    Custom);
-  setOperationAction(ISD::BR_CC,            MVT::i16,   Custom);
-  setOperationAction(ISD::BRCOND,           MVT::Other, Expand);
-  setOperationAction(ISD::SETCC,            MVT::i8,    Expand);
-  setOperationAction(ISD::SETCC,            MVT::i16,   Expand);
-  setOperationAction(ISD::SELECT,           MVT::i8,    Expand);
-  setOperationAction(ISD::SELECT,           MVT::i16,   Expand);
-  setOperationAction(ISD::SELECT_CC,        MVT::i8,    Custom);
-  setOperationAction(ISD::SELECT_CC,        MVT::i16,   Custom);
-  setOperationAction(ISD::SIGN_EXTEND,      MVT::i16,   Custom);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand);
-
-  setOperationAction(ISD::CTTZ,             MVT::i8,    Expand);
-  setOperationAction(ISD::CTTZ,             MVT::i16,   Expand);
-  setOperationAction(ISD::CTLZ,             MVT::i8,    Expand);
-  setOperationAction(ISD::CTLZ,             MVT::i16,   Expand);
-  setOperationAction(ISD::CTPOP,            MVT::i8,    Expand);
-  setOperationAction(ISD::CTPOP,            MVT::i16,   Expand);
-
-  setOperationAction(ISD::SHL_PARTS,        MVT::i8,    Expand);
-  setOperationAction(ISD::SHL_PARTS,        MVT::i16,   Expand);
-  setOperationAction(ISD::SRL_PARTS,        MVT::i8,    Expand);
-  setOperationAction(ISD::SRL_PARTS,        MVT::i16,   Expand);
-  setOperationAction(ISD::SRA_PARTS,        MVT::i8,    Expand);
-  setOperationAction(ISD::SRA_PARTS,        MVT::i16,   Expand);
-
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1,   Expand);
-
-  // FIXME: Implement efficiently multiplication by a constant
-  setOperationAction(ISD::MUL,              MVT::i16,   Expand);
-  setOperationAction(ISD::MULHS,            MVT::i16,   Expand);
-  setOperationAction(ISD::MULHU,            MVT::i16,   Expand);
-  setOperationAction(ISD::SMUL_LOHI,        MVT::i16,   Expand);
-  setOperationAction(ISD::UMUL_LOHI,        MVT::i16,   Expand);
-
-  setOperationAction(ISD::UDIV,             MVT::i16,   Expand);
-  setOperationAction(ISD::UDIVREM,          MVT::i16,   Expand);
-  setOperationAction(ISD::UREM,             MVT::i16,   Expand);
-  setOperationAction(ISD::SDIV,             MVT::i16,   Expand);
-  setOperationAction(ISD::SDIVREM,          MVT::i16,   Expand);
-  setOperationAction(ISD::SREM,             MVT::i16,   Expand);
-}
-
-SDValue MSP430TargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) {
-  switch (Op.getOpcode()) {
-  case ISD::SHL: // FALLTHROUGH
-  case ISD::SRL:
-  case ISD::SRA:              return LowerShifts(Op, DAG);
-  case ISD::GlobalAddress:    return LowerGlobalAddress(Op, DAG);
-  case ISD::ExternalSymbol:   return LowerExternalSymbol(Op, DAG);
-  case ISD::BR_CC:            return LowerBR_CC(Op, DAG);
-  case ISD::SELECT_CC:        return LowerSELECT_CC(Op, DAG);
-  case ISD::SIGN_EXTEND:      return LowerSIGN_EXTEND(Op, DAG);
-  default:
-    llvm_unreachable("unimplemented operand");
-    return SDValue();
-  }
-}
-
-/// getFunctionAlignment - Return the Log2 alignment of this function.
-unsigned MSP430TargetLowering::getFunctionAlignment(const Function *F) const {
-  return F->hasFnAttr(Attribute::OptimizeForSize) ? 1 : 4;
-}
-
-//===----------------------------------------------------------------------===//
-//                       MSP430 Inline Assembly Support
-//===----------------------------------------------------------------------===//
-
-/// getConstraintType - Given a constraint letter, return the type of
-/// constraint it is for this target.
-TargetLowering::ConstraintType
-MSP430TargetLowering::getConstraintType(const std::string &Constraint) const {
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-    case 'r':
-      return C_RegisterClass;
-    default:
-      break;
-    }
-  }
-  return TargetLowering::getConstraintType(Constraint);
-}
-
-std::pair<unsigned, const TargetRegisterClass*>
-MSP430TargetLowering::
-getRegForInlineAsmConstraint(const std::string &Constraint,
-                             EVT VT) const {
-  if (Constraint.size() == 1) {
-    // GCC Constraint Letters
-    switch (Constraint[0]) {
-    default: break;
-    case 'r':   // GENERAL_REGS
-      if (VT == MVT::i8)
-        return std::make_pair(0U, MSP430::GR8RegisterClass);
-
-      return std::make_pair(0U, MSP430::GR16RegisterClass);
-    }
-  }
-
-  return TargetLowering::getRegForInlineAsmConstraint(Constraint, VT);
-}
-
-//===----------------------------------------------------------------------===//
-//                      Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-#include "MSP430GenCallingConv.inc"
-
-SDValue
-MSP430TargetLowering::LowerFormalArguments(SDValue Chain,
-                                           unsigned CallConv,
-                                           bool isVarArg,
-                                           const SmallVectorImpl<ISD::InputArg>
-                                             &Ins,
-                                           DebugLoc dl,
-                                           SelectionDAG &DAG,
-                                           SmallVectorImpl<SDValue> &InVals) {
-
-  switch (CallConv) {
-  default:
-    llvm_unreachable("Unsupported calling convention");
-  case CallingConv::C:
-  case CallingConv::Fast:
-    return LowerCCCArguments(Chain, CallConv, isVarArg, Ins, dl, DAG, InVals);
-  }
-}
-
-SDValue
-MSP430TargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                                unsigned CallConv, bool isVarArg,
-                                bool isTailCall,
-                                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                const SmallVectorImpl<ISD::InputArg> &Ins,
-                                DebugLoc dl, SelectionDAG &DAG,
-                                SmallVectorImpl<SDValue> &InVals) {
-
-  switch (CallConv) {
-  default:
-    llvm_unreachable("Unsupported calling convention");
-  case CallingConv::Fast:
-  case CallingConv::C:
-    return LowerCCCCallTo(Chain, Callee, CallConv, isVarArg, isTailCall,
-                          Outs, Ins, dl, DAG, InVals);
-  }
-}
-
-/// LowerCCCArguments - transform physical registers into virtual registers and
-/// generate load operations for arguments places on the stack.
-// FIXME: struct return stuff
-// FIXME: varargs
-SDValue
-MSP430TargetLowering::LowerCCCArguments(SDValue Chain,
-                                        unsigned CallConv,
-                                        bool isVarArg,
-                                        const SmallVectorImpl<ISD::InputArg>
-                                          &Ins,
-                                        DebugLoc dl,
-                                        SelectionDAG &DAG,
-                                        SmallVectorImpl<SDValue> &InVals) {
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineRegisterInfo &RegInfo = MF.getRegInfo();
-
-  // Assign locations to all of the incoming arguments.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-  CCInfo.AnalyzeFormalArguments(Ins, CC_MSP430);
-
-  assert(!isVarArg && "Varargs not supported yet");
-
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-    if (VA.isRegLoc()) {
-      // Arguments passed in registers
-      EVT RegVT = VA.getLocVT();
-      switch (RegVT.getSimpleVT().SimpleTy) {
-      default: 
-        {
-#ifndef NDEBUG
-          errs() << "LowerFormalArguments Unhandled argument type: "
-               << RegVT.getSimpleVT().SimpleTy << "\n";
-#endif
-          llvm_unreachable(0);
-        }
-      case MVT::i16:
-        unsigned VReg =
-          RegInfo.createVirtualRegister(MSP430::GR16RegisterClass);
-        RegInfo.addLiveIn(VA.getLocReg(), VReg);
-        SDValue ArgValue = DAG.getCopyFromReg(Chain, dl, VReg, RegVT);
-
-        // If this is an 8-bit value, it is really passed promoted to 16
-        // bits. Insert an assert[sz]ext to capture this, then truncate to the
-        // right size.
-        if (VA.getLocInfo() == CCValAssign::SExt)
-          ArgValue = DAG.getNode(ISD::AssertSext, dl, RegVT, ArgValue,
-                                 DAG.getValueType(VA.getValVT()));
-        else if (VA.getLocInfo() == CCValAssign::ZExt)
-          ArgValue = DAG.getNode(ISD::AssertZext, dl, RegVT, ArgValue,
-                                 DAG.getValueType(VA.getValVT()));
-
-        if (VA.getLocInfo() != CCValAssign::Full)
-          ArgValue = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), ArgValue);
-
-        InVals.push_back(ArgValue);
-      }
-    } else {
-      // Sanity check
-      assert(VA.isMemLoc());
-      // Load the argument to a virtual register
-      unsigned ObjSize = VA.getLocVT().getSizeInBits()/8;
-      if (ObjSize > 2) {
-        errs() << "LowerFormalArguments Unhandled argument type: "
-             << VA.getLocVT().getSimpleVT().SimpleTy
-             << "\n";
-      }
-      // Create the frame index object for this incoming parameter...
-      int FI = MFI->CreateFixedObject(ObjSize, VA.getLocMemOffset());
-
-      // Create the SelectionDAG nodes corresponding to a load
-      //from this parameter
-      SDValue FIN = DAG.getFrameIndex(FI, MVT::i16);
-      InVals.push_back(DAG.getLoad(VA.getLocVT(), dl, Chain, FIN,
-                                   PseudoSourceValue::getFixedStack(FI), 0));
-    }
-  }
-
-  return Chain;
-}
-
-SDValue
-MSP430TargetLowering::LowerReturn(SDValue Chain,
-                                  unsigned CallConv, bool isVarArg,
-                                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                  DebugLoc dl, SelectionDAG &DAG) {
-
-  // CCValAssign - represent the assignment of the return value to a location
-  SmallVector<CCValAssign, 16> RVLocs;
-
-  // CCState - Info about the registers and stack slot.
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-
-  // Analize return values.
-  CCInfo.AnalyzeReturn(Outs, RetCC_MSP430);
-
-  // If this is the first return lowered for this function, add the regs to the
-  // liveout set for the function.
-  if (DAG.getMachineFunction().getRegInfo().liveout_empty()) {
-    for (unsigned i = 0; i != RVLocs.size(); ++i)
-      if (RVLocs[i].isRegLoc())
-        DAG.getMachineFunction().getRegInfo().addLiveOut(RVLocs[i].getLocReg());
-  }
-
-  SDValue Flag;
-
-  // Copy the result values into the output registers.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-    assert(VA.isRegLoc() && "Can only return in registers!");
-
-    Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(),
-                             Outs[i].Val, Flag);
-
-    // Guarantee that all emitted copies are stuck together,
-    // avoiding something bad.
-    Flag = Chain.getValue(1);
-  }
-
-  if (Flag.getNode())
-    return DAG.getNode(MSP430ISD::RET_FLAG, dl, MVT::Other, Chain, Flag);
-
-  // Return Void
-  return DAG.getNode(MSP430ISD::RET_FLAG, dl, MVT::Other, Chain);
-}
-
-/// LowerCCCCallTo - functions arguments are copied from virtual regs to
-/// (physical regs)/(stack frame), CALLSEQ_START and CALLSEQ_END are emitted.
-/// TODO: sret.
-SDValue
-MSP430TargetLowering::LowerCCCCallTo(SDValue Chain, SDValue Callee,
-                                     unsigned CallConv, bool isVarArg,
-                                     bool isTailCall,
-                                     const SmallVectorImpl<ISD::OutputArg>
-                                       &Outs,
-                                     const SmallVectorImpl<ISD::InputArg> &Ins,
-                                     DebugLoc dl, SelectionDAG &DAG,
-                                     SmallVectorImpl<SDValue> &InVals) {
-  // Analyze operands of the call, assigning locations to each operand.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-
-  CCInfo.AnalyzeCallOperands(Outs, CC_MSP430);
-
-  // Get a count of how many bytes are to be pushed on the stack.
-  unsigned NumBytes = CCInfo.getNextStackOffset();
-
-  Chain = DAG.getCALLSEQ_START(Chain ,DAG.getConstant(NumBytes,
-                                                      getPointerTy(), true));
-
-  SmallVector<std::pair<unsigned, SDValue>, 4> RegsToPass;
-  SmallVector<SDValue, 12> MemOpChains;
-  SDValue StackPtr;
-
-  // Walk the register/memloc assignments, inserting copies/loads.
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-
-    SDValue Arg = Outs[i].Val;
-
-    // Promote the value if needed.
-    switch (VA.getLocInfo()) {
-      default: llvm_unreachable("Unknown loc info!");
-      case CCValAssign::Full: break;
-      case CCValAssign::SExt:
-        Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::ZExt:
-        Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::AExt:
-        Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-    }
-
-    // Arguments that can be passed on register must be kept at RegsToPass
-    // vector
-    if (VA.isRegLoc()) {
-      RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-    } else {
-      assert(VA.isMemLoc());
-
-      if (StackPtr.getNode() == 0)
-        StackPtr = DAG.getCopyFromReg(Chain, dl, MSP430::SPW, getPointerTy());
-
-      SDValue PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(),
-                                   StackPtr,
-                                   DAG.getIntPtrConstant(VA.getLocMemOffset()));
-
-
-      MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff,
-                                         PseudoSourceValue::getStack(),
-                                         VA.getLocMemOffset()));
-    }
-  }
-
-  // Transform all store nodes into one single node because all store nodes are
-  // independent of each other.
-  if (!MemOpChains.empty())
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                        &MemOpChains[0], MemOpChains.size());
-
-  // Build a sequence of copy-to-reg nodes chained together with token chain and
-  // flag operands which copy the outgoing args into registers.  The InFlag in
-  // necessary since all emited instructions must be stuck together.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first,
-                             RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  // If the callee is a GlobalAddress node (quite common, every direct call is)
-  // turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
-  // Likewise ExternalSymbol -> TargetExternalSymbol.
-  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
-    Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i16);
-  else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
-    Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i16);
-
-  // Returns a chain & a flag for retval copy to use.
-  SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Flag);
-  SmallVector<SDValue, 8> Ops;
-  Ops.push_back(Chain);
-  Ops.push_back(Callee);
-
-  // Add argument registers to the end of the list so that they are
-  // known live into the call.
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i)
-    Ops.push_back(DAG.getRegister(RegsToPass[i].first,
-                                  RegsToPass[i].second.getValueType()));
-
-  if (InFlag.getNode())
-    Ops.push_back(InFlag);
-
-  Chain = DAG.getNode(MSP430ISD::CALL, dl, NodeTys, &Ops[0], Ops.size());
-  InFlag = Chain.getValue(1);
-
-  // Create the CALLSEQ_END node.
-  Chain = DAG.getCALLSEQ_END(Chain,
-                             DAG.getConstant(NumBytes, getPointerTy(), true),
-                             DAG.getConstant(0, getPointerTy(), true),
-                             InFlag);
-  InFlag = Chain.getValue(1);
-
-  // Handle result values, copying them out of physregs into vregs that we
-  // return.
-  return LowerCallResult(Chain, InFlag, CallConv, isVarArg, Ins, dl,
-                         DAG, InVals);
-}
-
-/// LowerCallResult - Lower the result values of a call into the
-/// appropriate copies out of appropriate physical registers.
-///
-SDValue
-MSP430TargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
-                                      unsigned CallConv, bool isVarArg,
-                                      const SmallVectorImpl<ISD::InputArg> &Ins,
-                                      DebugLoc dl, SelectionDAG &DAG,
-                                      SmallVectorImpl<SDValue> &InVals) {
-
-  // Assign locations to each value returned by this call.
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-
-  CCInfo.AnalyzeCallResult(Ins, RetCC_MSP430);
-
-  // Copy all of the result registers out of their specified physreg.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    Chain = DAG.getCopyFromReg(Chain, dl, RVLocs[i].getLocReg(),
-                               RVLocs[i].getValVT(), InFlag).getValue(1);
-    InFlag = Chain.getValue(2);
-    InVals.push_back(Chain.getValue(0));
-  }
-
-  return Chain;
-}
-
-SDValue MSP430TargetLowering::LowerShifts(SDValue Op,
-                                          SelectionDAG &DAG) {
-  unsigned Opc = Op.getOpcode();
-  SDNode* N = Op.getNode();
-  EVT VT = Op.getValueType();
-  DebugLoc dl = N->getDebugLoc();
-
-  // We currently only lower shifts of constant argument.
-  if (!isa<ConstantSDNode>(N->getOperand(1)))
-    return SDValue();
-
-  uint64_t ShiftAmount = cast<ConstantSDNode>(N->getOperand(1))->getZExtValue();
-
-  // Expand the stuff into sequence of shifts.
-  // FIXME: for some shift amounts this might be done better!
-  // E.g.: foo >> (8 + N) => sxt(swpb(foo)) >> N
-  SDValue Victim = N->getOperand(0);
-
-  if (Opc == ISD::SRL && ShiftAmount) {
-    // Emit a special goodness here:
-    // srl A, 1 => clrc; rrc A
-    Victim = DAG.getNode(MSP430ISD::RRC, dl, VT, Victim);
-    ShiftAmount -= 1;
-  }
-
-  while (ShiftAmount--)
-    Victim = DAG.getNode((Opc == ISD::SHL ? MSP430ISD::RLA : MSP430ISD::RRA),
-                         dl, VT, Victim);
-
-  return Victim;
-}
-
-SDValue MSP430TargetLowering::LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) {
-  const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
-  int64_t Offset = cast<GlobalAddressSDNode>(Op)->getOffset();
-
-  // Create the TargetGlobalAddress node, folding in the constant offset.
-  SDValue Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), Offset);
-  return DAG.getNode(MSP430ISD::Wrapper, Op.getDebugLoc(),
-                     getPointerTy(), Result);
-}
-
-SDValue MSP430TargetLowering::LowerExternalSymbol(SDValue Op,
-                                                  SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  const char *Sym = cast<ExternalSymbolSDNode>(Op)->getSymbol();
-  SDValue Result = DAG.getTargetExternalSymbol(Sym, getPointerTy());
-
-  return DAG.getNode(MSP430ISD::Wrapper, dl, getPointerTy(), Result);;
-}
-
-static SDValue EmitCMP(SDValue &LHS, SDValue &RHS, unsigned &TargetCC,
-                       ISD::CondCode CC,
-                       DebugLoc dl, SelectionDAG &DAG) {
-  // FIXME: Handle bittests someday
-  assert(!LHS.getValueType().isFloatingPoint() && "We don't handle FP yet");
-
-  // FIXME: Handle jump negative someday
-  TargetCC = MSP430::COND_INVALID;
-  switch (CC) {
-  default: llvm_unreachable("Invalid integer condition!");
-  case ISD::SETEQ:
-    TargetCC = MSP430::COND_E;  // aka COND_Z
-    break;
-  case ISD::SETNE:
-    TargetCC = MSP430::COND_NE; // aka COND_NZ
-    break;
-  case ISD::SETULE:
-    std::swap(LHS, RHS);        // FALLTHROUGH
-  case ISD::SETUGE:
-    TargetCC = MSP430::COND_HS; // aka COND_C
-    break;
-  case ISD::SETUGT:
-    std::swap(LHS, RHS);        // FALLTHROUGH
-  case ISD::SETULT:
-    TargetCC = MSP430::COND_LO; // aka COND_NC
-    break;
-  case ISD::SETLE:
-    std::swap(LHS, RHS);        // FALLTHROUGH
-  case ISD::SETGE:
-    TargetCC = MSP430::COND_GE;
-    break;
-  case ISD::SETGT:
-    std::swap(LHS, RHS);        // FALLTHROUGH
-  case ISD::SETLT:
-    TargetCC = MSP430::COND_L;
-    break;
-  }
-
-  return DAG.getNode(MSP430ISD::CMP, dl, MVT::Flag, LHS, RHS);
-}
-
-
-SDValue MSP430TargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue Chain = Op.getOperand(0);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(1))->get();
-  SDValue LHS   = Op.getOperand(2);
-  SDValue RHS   = Op.getOperand(3);
-  SDValue Dest  = Op.getOperand(4);
-  DebugLoc dl   = Op.getDebugLoc();
-
-  unsigned TargetCC = MSP430::COND_INVALID;
-  SDValue Flag = EmitCMP(LHS, RHS, TargetCC, CC, dl, DAG);
-
-  return DAG.getNode(MSP430ISD::BR_CC, dl, Op.getValueType(),
-                     Chain,
-                     Dest, DAG.getConstant(TargetCC, MVT::i8),
-                     Flag);
-}
-
-SDValue MSP430TargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue LHS    = Op.getOperand(0);
-  SDValue RHS    = Op.getOperand(1);
-  SDValue TrueV  = Op.getOperand(2);
-  SDValue FalseV = Op.getOperand(3);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(4))->get();
-  DebugLoc dl    = Op.getDebugLoc();
-
-  unsigned TargetCC = MSP430::COND_INVALID;
-  SDValue Flag = EmitCMP(LHS, RHS, TargetCC, CC, dl, DAG);
-
-  SDVTList VTs = DAG.getVTList(Op.getValueType(), MVT::Flag);
-  SmallVector<SDValue, 4> Ops;
-  Ops.push_back(TrueV);
-  Ops.push_back(FalseV);
-  Ops.push_back(DAG.getConstant(TargetCC, MVT::i8));
-  Ops.push_back(Flag);
-
-  return DAG.getNode(MSP430ISD::SELECT_CC, dl, VTs, &Ops[0], Ops.size());
-}
-
-SDValue MSP430TargetLowering::LowerSIGN_EXTEND(SDValue Op,
-                                               SelectionDAG &DAG) {
-  SDValue Val = Op.getOperand(0);
-  EVT VT      = Op.getValueType();
-  DebugLoc dl = Op.getDebugLoc();
-
-  assert(VT == MVT::i16 && "Only support i16 for now!");
-
-  return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, VT,
-                     DAG.getNode(ISD::ANY_EXTEND, dl, VT, Val),
-                     DAG.getValueType(Val.getValueType()));
-}
-
-const char *MSP430TargetLowering::getTargetNodeName(unsigned Opcode) const {
-  switch (Opcode) {
-  default: return NULL;
-  case MSP430ISD::RET_FLAG:           return "MSP430ISD::RET_FLAG";
-  case MSP430ISD::RRA:                return "MSP430ISD::RRA";
-  case MSP430ISD::RLA:                return "MSP430ISD::RLA";
-  case MSP430ISD::RRC:                return "MSP430ISD::RRC";
-  case MSP430ISD::CALL:               return "MSP430ISD::CALL";
-  case MSP430ISD::Wrapper:            return "MSP430ISD::Wrapper";
-  case MSP430ISD::BR_CC:              return "MSP430ISD::BR_CC";
-  case MSP430ISD::CMP:                return "MSP430ISD::CMP";
-  case MSP430ISD::SELECT_CC:          return "MSP430ISD::SELECT_CC";
-  }
-}
-
-//===----------------------------------------------------------------------===//
-//  Other Lowering Code
-//===----------------------------------------------------------------------===//
-
-MachineBasicBlock*
-MSP430TargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                  MachineBasicBlock *BB) const {
-  const TargetInstrInfo &TII = *getTargetMachine().getInstrInfo();
-  DebugLoc dl = MI->getDebugLoc();
-  assert((MI->getOpcode() == MSP430::Select16 ||
-          MI->getOpcode() == MSP430::Select8) &&
-         "Unexpected instr type to insert");
-
-  // To "insert" a SELECT instruction, we actually have to insert the diamond
-  // control-flow pattern.  The incoming instruction knows the destination vreg
-  // to set, the condition code register to branch on, the true/false values to
-  // select between, and a branch opcode to use.
-  const BasicBlock *LLVM_BB = BB->getBasicBlock();
-  MachineFunction::iterator I = BB;
-  ++I;
-
-  //  thisMBB:
-  //  ...
-  //   TrueVal = ...
-  //   cmpTY ccX, r1, r2
-  //   jCC copy1MBB
-  //   fallthrough --> copy0MBB
-  MachineBasicBlock *thisMBB = BB;
-  MachineFunction *F = BB->getParent();
-  MachineBasicBlock *copy0MBB = F->CreateMachineBasicBlock(LLVM_BB);
-  MachineBasicBlock *copy1MBB = F->CreateMachineBasicBlock(LLVM_BB);
-  BuildMI(BB, dl, TII.get(MSP430::JCC))
-    .addMBB(copy1MBB)
-    .addImm(MI->getOperand(3).getImm());
-  F->insert(I, copy0MBB);
-  F->insert(I, copy1MBB);
-  // Update machine-CFG edges by transferring all successors of the current
-  // block to the new block which will contain the Phi node for the select.
-  copy1MBB->transferSuccessors(BB);
-  // Next, add the true and fallthrough blocks as its successors.
-  BB->addSuccessor(copy0MBB);
-  BB->addSuccessor(copy1MBB);
-
-  //  copy0MBB:
-  //   %FalseValue = ...
-  //   # fallthrough to copy1MBB
-  BB = copy0MBB;
-
-  // Update machine-CFG edges
-  BB->addSuccessor(copy1MBB);
-
-  //  copy1MBB:
-  //   %Result = phi [ %FalseValue, copy0MBB ], [ %TrueValue, thisMBB ]
-  //  ...
-  BB = copy1MBB;
-  BuildMI(BB, dl, TII.get(MSP430::PHI),
-          MI->getOperand(0).getReg())
-    .addReg(MI->getOperand(2).getReg()).addMBB(copy0MBB)
-    .addReg(MI->getOperand(1).getReg()).addMBB(thisMBB);
-
-  F->DeleteMachineInstr(MI);   // The pseudo instruction is gone now.
-  return BB;
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.h
deleted file mode 100644
index 7947b0f..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.h
+++ /dev/null
@@ -1,143 +0,0 @@
-//==-- MSP430ISelLowering.h - MSP430 DAG Lowering Interface ------*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that MSP430 uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_MSP430_ISELLOWERING_H
-#define LLVM_TARGET_MSP430_ISELLOWERING_H
-
-#include "MSP430.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLowering.h"
-
-namespace llvm {
-  namespace MSP430ISD {
-    enum {
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-
-      /// Return with a flag operand. Operand 0 is the chain operand.
-      RET_FLAG,
-
-      /// Y = R{R,L}A X, rotate right (left) arithmetically
-      RRA, RLA,
-
-      /// Y = RRC X, rotate right via carry
-      RRC,
-
-      /// CALL - These operations represent an abstract call
-      /// instruction, which includes a bunch of information.
-      CALL,
-
-      /// Wrapper - A wrapper node for TargetConstantPool, TargetExternalSymbol,
-      /// and TargetGlobalAddress.
-      Wrapper,
-
-      /// CMP - Compare instruction.
-      CMP,
-
-      /// SetCC. Operand 0 is condition code, and operand 1 is the flag
-      /// operand produced by a CMP instruction.
-      SETCC,
-
-      /// MSP430 conditional branches. Operand 0 is the chain operand, operand 1
-      /// is the block to branch if condition is true, operand 2 is the
-      /// condition code, and operand 3 is the flag operand produced by a CMP
-      /// instruction.
-      BR_CC,
-
-      /// SELECT_CC. Operand 0 and operand 1 are selection variable, operand 3
-      /// is condition code and operand 4 is flag operand.
-      SELECT_CC
-    };
-  }
-
-  class MSP430Subtarget;
-  class MSP430TargetMachine;
-
-  class MSP430TargetLowering : public TargetLowering {
-  public:
-    explicit MSP430TargetLowering(MSP430TargetMachine &TM);
-
-    /// LowerOperation - Provide custom lowering hooks for some operations.
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-
-    /// getTargetNodeName - This method returns the name of a target specific
-    /// DAG node.
-    virtual const char *getTargetNodeName(unsigned Opcode) const;
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *F) const;
-
-    SDValue LowerShifts(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerExternalSymbol(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSIGN_EXTEND(SDValue Op, SelectionDAG &DAG);
-
-    TargetLowering::ConstraintType
-    getConstraintType(const std::string &Constraint) const;
-    std::pair<unsigned, const TargetRegisterClass*>
-    getRegForInlineAsmConstraint(const std::string &Constraint, EVT VT) const;
-
-    MachineBasicBlock* EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                   MachineBasicBlock *BB) const;
-
-  private:
-    SDValue LowerCCCCallTo(SDValue Chain, SDValue Callee,
-                           unsigned CallConv, bool isVarArg,
-                           bool isTailCall,
-                           const SmallVectorImpl<ISD::OutputArg> &Outs,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-
-    SDValue LowerCCCArguments(SDValue Chain,
-                              unsigned CallConv,
-                              bool isVarArg,
-                              const SmallVectorImpl<ISD::InputArg> &Ins,
-                              DebugLoc dl,
-                              SelectionDAG &DAG,
-                              SmallVectorImpl<SDValue> &InVals);
-
-    SDValue LowerCallResult(SDValue Chain, SDValue InFlag,
-                            unsigned CallConv, bool isVarArg,
-                            const SmallVectorImpl<ISD::InputArg> &Ins,
-                            DebugLoc dl, SelectionDAG &DAG,
-                            SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv, bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg, bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-
-    const MSP430Subtarget &Subtarget;
-    const MSP430TargetMachine &TM;
-  };
-} // namespace llvm
-
-#endif // LLVM_TARGET_MSP430_ISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrFormats.td b/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrFormats.td
deleted file mode 100644
index 61b3399..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrFormats.td
+++ /dev/null
@@ -1,67 +0,0 @@
-//===- MSP430InstrFormats.td - MSP430 Instruction Formats-----*- tblgen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Describe MSP430 instructions format here
-//
-
-// Generic MSP430 Format
-class MSP430Inst<dag outs, dag ins, string asmstr> : Instruction {
-  field bits<16> Inst;
-
-  let Namespace = "MSP430";
-
-  dag OutOperandList = outs;
-  dag InOperandList  = ins;
-
-  let AsmString   = asmstr;
-}
-
-// FIXME: Create different classes for different addressing modes.
-
-// MSP430 Double Operand (Format I) Instructions
-class IForm<bits<4> opcode, bit ad, bit bw, bits<2> as,
-            dag outs, dag ins, string asmstr, list<dag> pattern>
-  : MSP430Inst<outs, ins, asmstr> {
-  let Pattern = pattern;
-  
-  let Inst{12-15} = opcode;
-  let Inst{7}     = ad;
-  let Inst{6}     = bw;
-  let Inst{4-5}   = as;
-}
-
-// MSP430 Single Operand (Format II) Instructions
-class IIForm<bits<9> opcode, bit bw, bits<2> ad,
-             dag outs, dag ins, string asmstr, list<dag> pattern>
-  : MSP430Inst<outs, ins, asmstr> {
-  let Pattern = pattern;
-  
-  let Inst{7-15} = opcode;
-  let Inst{6}    = bw;
-  let Inst{4-5}  = ad;
-}
-
-// MSP430 Conditional Jumps Instructions
-class CJForm<bits<3> opcode, bits<3> cond, bit s,
-             dag outs, dag ins, string asmstr, list<dag> pattern>
-  : MSP430Inst<outs, ins, asmstr> {
-  let Pattern = pattern;
-  
-  let Inst{13-15} = opcode;
-  let Inst{10-12} = cond;
-  let Inst{9}     = s;
-}
-
-// Pseudo instructions
-class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
-  : MSP430Inst<outs, ins, asmstr> {
-  let Pattern = pattern;
-  let Inst{15-0} = 0;
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp b/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp
deleted file mode 100644
index 37fbb6d..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-//===- MSP430InstrInfo.cpp - MSP430 Instruction Information ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the MSP430 implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSP430.h"
-#include "MSP430InstrInfo.h"
-#include "MSP430MachineFunctionInfo.h"
-#include "MSP430TargetMachine.h"
-#include "MSP430GenInstrInfo.inc"
-#include "llvm/Function.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-#include "llvm/Support/ErrorHandling.h"
-
-using namespace llvm;
-
-MSP430InstrInfo::MSP430InstrInfo(MSP430TargetMachine &tm)
-  : TargetInstrInfoImpl(MSP430Insts, array_lengthof(MSP430Insts)),
-    RI(tm, *this), TM(tm) {}
-
-void MSP430InstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
-                                          MachineBasicBlock::iterator MI,
-                                    unsigned SrcReg, bool isKill, int FrameIdx,
-                                    const TargetRegisterClass *RC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  if (RC == &MSP430::GR16RegClass)
-    BuildMI(MBB, MI, DL, get(MSP430::MOV16mr))
-      .addFrameIndex(FrameIdx).addImm(0)
-      .addReg(SrcReg, getKillRegState(isKill));
-  else if (RC == &MSP430::GR8RegClass)
-    BuildMI(MBB, MI, DL, get(MSP430::MOV8mr))
-      .addFrameIndex(FrameIdx).addImm(0)
-      .addReg(SrcReg, getKillRegState(isKill));
-  else
-    llvm_unreachable("Cannot store this register to stack slot!");
-}
-
-void MSP430InstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                           MachineBasicBlock::iterator MI,
-                                           unsigned DestReg, int FrameIdx,
-                                           const TargetRegisterClass *RC) const{
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  if (RC == &MSP430::GR16RegClass)
-    BuildMI(MBB, MI, DL, get(MSP430::MOV16rm))
-      .addReg(DestReg).addFrameIndex(FrameIdx).addImm(0);
-  else if (RC == &MSP430::GR8RegClass)
-    BuildMI(MBB, MI, DL, get(MSP430::MOV8rm))
-      .addReg(DestReg).addFrameIndex(FrameIdx).addImm(0);
-  else
-    llvm_unreachable("Cannot store this register to stack slot!");
-}
-
-bool MSP430InstrInfo::copyRegToReg(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator I,
-                                   unsigned DestReg, unsigned SrcReg,
-                                   const TargetRegisterClass *DestRC,
-                                   const TargetRegisterClass *SrcRC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  if (DestRC == SrcRC) {
-    unsigned Opc;
-    if (DestRC == &MSP430::GR16RegClass) {
-      Opc = MSP430::MOV16rr;
-    } else if (DestRC == &MSP430::GR8RegClass) {
-      Opc = MSP430::MOV8rr;
-    } else {
-      return false;
-    }
-
-    BuildMI(MBB, I, DL, get(Opc), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  return false;
-}
-
-bool
-MSP430InstrInfo::isMoveInstr(const MachineInstr& MI,
-                             unsigned &SrcReg, unsigned &DstReg,
-                             unsigned &SrcSubIdx, unsigned &DstSubIdx) const {
-  SrcSubIdx = DstSubIdx = 0; // No sub-registers yet.
-
-  switch (MI.getOpcode()) {
-  default:
-    return false;
-  case MSP430::MOV8rr:
-  case MSP430::MOV16rr:
-   assert(MI.getNumOperands() >= 2 &&
-           MI.getOperand(0).isReg() &&
-           MI.getOperand(1).isReg() &&
-           "invalid register-register move instruction");
-    SrcReg = MI.getOperand(1).getReg();
-    DstReg = MI.getOperand(0).getReg();
-    return true;
-  }
-}
-
-bool
-MSP430InstrInfo::spillCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                           MachineBasicBlock::iterator MI,
-                                const std::vector<CalleeSavedInfo> &CSI) const {
-  if (CSI.empty())
-    return false;
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  MachineFunction &MF = *MBB.getParent();
-  MSP430MachineFunctionInfo *MFI = MF.getInfo<MSP430MachineFunctionInfo>();
-  MFI->setCalleeSavedFrameSize(CSI.size() * 2);
-
-  for (unsigned i = CSI.size(); i != 0; --i) {
-    unsigned Reg = CSI[i-1].getReg();
-    // Add the callee-saved register as live-in. It's killed at the spill.
-    MBB.addLiveIn(Reg);
-    BuildMI(MBB, MI, DL, get(MSP430::PUSH16r))
-      .addReg(Reg, RegState::Kill);
-  }
-  return true;
-}
-
-bool
-MSP430InstrInfo::restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                             MachineBasicBlock::iterator MI,
-                                const std::vector<CalleeSavedInfo> &CSI) const {
-  if (CSI.empty())
-    return false;
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  for (unsigned i = 0, e = CSI.size(); i != e; ++i)
-    BuildMI(MBB, MI, DL, get(MSP430::POP16r), CSI[i].getReg());
-
-  return true;
-}
-
-unsigned
-MSP430InstrInfo::InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                              MachineBasicBlock *FBB,
-                            const SmallVectorImpl<MachineOperand> &Cond) const {
-  // FIXME this should probably have a DebugLoc operand
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-
-  // Shouldn't be a fall through.
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-  assert((Cond.size() == 1 || Cond.size() == 0) &&
-         "MSP430 branch conditions have one component!");
-
-  if (Cond.empty()) {
-    // Unconditional branch?
-    assert(!FBB && "Unconditional branch with multiple successors!");
-    BuildMI(&MBB, dl, get(MSP430::JMP)).addMBB(TBB);
-    return 1;
-  }
-
-  // Conditional branch.
-  unsigned Count = 0;
-  llvm_unreachable("Implement conditional branches!");
-
-  return Count;
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.h
deleted file mode 100644
index e07aaca..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//===- MSP430InstrInfo.h - MSP430 Instruction Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the MSP430 implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_MSP430INSTRINFO_H
-#define LLVM_TARGET_MSP430INSTRINFO_H
-
-#include "llvm/Target/TargetInstrInfo.h"
-#include "MSP430RegisterInfo.h"
-
-namespace llvm {
-
-class MSP430TargetMachine;
-
-namespace MSP430 {
-  // MSP430 specific condition code.
-  enum CondCode {
-    COND_E  = 0,  // aka COND_Z
-    COND_NE = 1,  // aka COND_NZ
-    COND_HS = 2,  // aka COND_C
-    COND_LO = 3,  // aka COND_NC
-    COND_GE = 4,
-    COND_L  = 5,
-
-    COND_INVALID
-  };
-}
-
-class MSP430InstrInfo : public TargetInstrInfoImpl {
-  const MSP430RegisterInfo RI;
-  MSP430TargetMachine &TM;
-public:
-  explicit MSP430InstrInfo(MSP430TargetMachine &TM);
-
-  /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-  /// such, whenever a client has an instance of instruction info, it should
-  /// always be able to get register info as well (through this method).
-  ///
-  virtual const TargetRegisterInfo &getRegisterInfo() const { return RI; }
-
-  bool copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                    unsigned DestReg, unsigned SrcReg,
-                    const TargetRegisterClass *DestRC,
-                    const TargetRegisterClass *SrcRC) const;
-
-  bool isMoveInstr(const MachineInstr& MI,
-                   unsigned &SrcReg, unsigned &DstReg,
-                   unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-
-  virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MI,
-                                   unsigned SrcReg, bool isKill,
-                                   int FrameIndex,
-                                   const TargetRegisterClass *RC) const;
-  virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MI,
-                                    unsigned DestReg, int FrameIdx,
-                                    const TargetRegisterClass *RC) const;
-
-  virtual bool spillCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                         MachineBasicBlock::iterator MI,
-                                 const std::vector<CalleeSavedInfo> &CSI) const;
-  virtual bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                           MachineBasicBlock::iterator MI,
-                                 const std::vector<CalleeSavedInfo> &CSI) const;
-
-  virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                                MachineBasicBlock *FBB,
-                             const SmallVectorImpl<MachineOperand> &Cond) const;
-
-};
-
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.td b/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.td
deleted file mode 100644
index b5f9491..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.td
+++ /dev/null
@@ -1,848 +0,0 @@
-//===- MSP430InstrInfo.td - MSP430 Instruction defs -----------*- tblgen-*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file describes the MSP430 instructions in TableGen format.
-//
-//===----------------------------------------------------------------------===//
-
-include "MSP430InstrFormats.td"
-
-//===----------------------------------------------------------------------===//
-// Type Constraints.
-//===----------------------------------------------------------------------===//
-class SDTCisI8<int OpNum> : SDTCisVT<OpNum, i8>;
-class SDTCisI16<int OpNum> : SDTCisVT<OpNum, i16>;
-
-//===----------------------------------------------------------------------===//
-// Type Profiles.
-//===----------------------------------------------------------------------===//
-def SDT_MSP430Call         : SDTypeProfile<0, -1, [SDTCisVT<0, iPTR>]>;
-def SDT_MSP430CallSeqStart : SDCallSeqStart<[SDTCisVT<0, i16>]>;
-def SDT_MSP430CallSeqEnd   : SDCallSeqEnd<[SDTCisVT<0, i16>, SDTCisVT<1, i16>]>;
-def SDT_MSP430Wrapper      : SDTypeProfile<1, 1, [SDTCisSameAs<0, 1>, SDTCisPtrTy<0>]>;
-def SDT_MSP430Cmp          : SDTypeProfile<0, 2, [SDTCisSameAs<0, 1>]>;
-def SDT_MSP430BrCC         : SDTypeProfile<0, 2, [SDTCisVT<0, OtherVT>,
-                                                  SDTCisVT<1, i8>]>;
-def SDT_MSP430SelectCC     : SDTypeProfile<1, 3, [SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>, 
-                                                  SDTCisVT<3, i8>]>;
-
-//===----------------------------------------------------------------------===//
-// MSP430 Specific Node Definitions.
-//===----------------------------------------------------------------------===//
-def MSP430retflag : SDNode<"MSP430ISD::RET_FLAG", SDTNone,
-                     [SDNPHasChain, SDNPOptInFlag]>;
-
-def MSP430rra     : SDNode<"MSP430ISD::RRA", SDTIntUnaryOp, []>;
-def MSP430rla     : SDNode<"MSP430ISD::RLA", SDTIntUnaryOp, []>;
-def MSP430rrc     : SDNode<"MSP430ISD::RRC", SDTIntUnaryOp, []>;
-
-def MSP430call    : SDNode<"MSP430ISD::CALL", SDT_MSP430Call,
-                     [SDNPHasChain, SDNPOutFlag, SDNPOptInFlag]>;
-def MSP430callseq_start :
-                 SDNode<"ISD::CALLSEQ_START", SDT_MSP430CallSeqStart,
-                        [SDNPHasChain, SDNPOutFlag]>;
-def MSP430callseq_end :
-                 SDNode<"ISD::CALLSEQ_END",   SDT_MSP430CallSeqEnd,
-                        [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>;
-def MSP430cmp     : SDNode<"MSP430ISD::CMP", SDT_MSP430Cmp, [SDNPOutFlag]>;
-def MSP430brcc    : SDNode<"MSP430ISD::BR_CC", SDT_MSP430BrCC, [SDNPHasChain, SDNPInFlag]>;
-def MSP430selectcc: SDNode<"MSP430ISD::SELECT_CC", SDT_MSP430SelectCC, [SDNPInFlag]>;
-
-//===----------------------------------------------------------------------===//
-// MSP430 Operand Definitions.
-//===----------------------------------------------------------------------===//
-
-// Address operands
-def memsrc : Operand<i16> {
-  let PrintMethod = "printSrcMemOperand";
-  let MIOperandInfo = (ops GR16, i16imm);
-}
-
-def memdst : Operand<i16> {
-  let PrintMethod = "printSrcMemOperand";
-  let MIOperandInfo = (ops GR16, i16imm);
-}
-
-// Branch targets have OtherVT type.
-def brtarget : Operand<OtherVT>;
-
-// Operand for printing out a condition code.
-def cc : Operand<i8> {
-  let PrintMethod = "printCCOperand";
-}
-
-//===----------------------------------------------------------------------===//
-// MSP430 Complex Pattern Definitions.
-//===----------------------------------------------------------------------===//
-
-def addr : ComplexPattern<iPTR, 2, "SelectAddr", [], []>;
-
-//===----------------------------------------------------------------------===//
-// Pattern Fragments
-def zextloadi16i8 : PatFrag<(ops node:$ptr), (i16 (zextloadi8 node:$ptr))>;
-def  extloadi16i8 : PatFrag<(ops node:$ptr), (i16 ( extloadi8 node:$ptr))>;
-
-//===----------------------------------------------------------------------===//
-// Instruction list..
-
-// ADJCALLSTACKDOWN/UP implicitly use/def SP because they may be expanded into
-// a stack adjustment and the codegen must know that they may modify the stack
-// pointer before prolog-epilog rewriting occurs.
-// Pessimistically assume ADJCALLSTACKDOWN / ADJCALLSTACKUP will become
-// sub / add which can clobber SRW.
-let Defs = [SPW, SRW], Uses = [SPW] in {
-def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i16imm:$amt),
-                              "#ADJCALLSTACKDOWN",
-                              [(MSP430callseq_start timm:$amt)]>;
-def ADJCALLSTACKUP   : Pseudo<(outs), (ins i16imm:$amt1, i16imm:$amt2),
-                              "#ADJCALLSTACKUP",
-                              [(MSP430callseq_end timm:$amt1, timm:$amt2)]>;
-}
-
-let usesCustomDAGSchedInserter = 1 in {
-  def Select8  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2, i8imm:$cc),
-                        "# Select8 PSEUDO",
-                        [(set GR8:$dst,
-                          (MSP430selectcc GR8:$src1, GR8:$src2, imm:$cc))]>;
-  def Select16 : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2, i8imm:$cc),
-                        "# Select16 PSEUDO",
-                        [(set GR16:$dst,
-                          (MSP430selectcc GR16:$src1, GR16:$src2, imm:$cc))]>;
-}
-
-let neverHasSideEffects = 1 in
-def NOP : Pseudo<(outs), (ins), "nop", []>;
-
-//===----------------------------------------------------------------------===//
-//  Control Flow Instructions...
-//
-
-// FIXME: Provide proper encoding!
-let isReturn = 1, isTerminator = 1 in {
-  def RET : Pseudo<(outs), (ins), "ret", [(MSP430retflag)]>;
-}
-
-let isBranch = 1, isTerminator = 1 in {
-
-// Direct branch
-let isBarrier = 1 in
-  def JMP : Pseudo<(outs), (ins brtarget:$dst),
-                   "jmp\t$dst",
-                   [(br bb:$dst)]>;
-
-// Conditional branches
-let Uses = [SRW] in
-  def JCC : Pseudo<(outs), (ins brtarget:$dst, cc:$cc),
-                            "j$cc $dst",
-                            [(MSP430brcc bb:$dst, imm:$cc)]>;
-} // isBranch, isTerminator
-
-//===----------------------------------------------------------------------===//
-//  Call Instructions...
-//
-let isCall = 1 in
-  // All calls clobber the non-callee saved registers. SPW is marked as
-  // a use to prevent stack-pointer assignments that appear immediately
-  // before calls from potentially appearing dead. Uses for argument
-  // registers are added manually.
-  let Defs = [R12W, R13W, R14W, R15W, SRW],
-      Uses = [SPW] in {
-    def CALLi     : Pseudo<(outs), (ins i16imm:$dst, variable_ops),
-                           "call\t${dst:call}", [(MSP430call imm:$dst)]>;
-    def CALLr     : Pseudo<(outs), (ins GR16:$dst, variable_ops),
-                           "call\t$dst", [(MSP430call GR16:$dst)]>;
-    def CALLm     : Pseudo<(outs), (ins memsrc:$dst, variable_ops),
-                           "call\t${dst:mem}", [(MSP430call (load addr:$dst))]>;
-  }
-
-
-//===----------------------------------------------------------------------===//
-//  Miscellaneous Instructions...
-//
-let Defs = [SPW], Uses = [SPW], neverHasSideEffects=1 in {
-let mayLoad = 1 in
-def POP16r   : Pseudo<(outs GR16:$reg), (ins), "pop.w\t$reg", []>;
-
-let mayStore = 1 in
-def PUSH16r  : Pseudo<(outs), (ins GR16:$reg), "push.w\t$reg",[]>;
-}
-
-//===----------------------------------------------------------------------===//
-// Move Instructions
-
-// FIXME: Provide proper encoding!
-let neverHasSideEffects = 1 in {
-def MOV8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src),
-                     "mov.b\t{$src, $dst}",
-                     []>;
-def MOV16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src),
-                     "mov.w\t{$src, $dst}",
-                     []>;
-}
-
-// FIXME: Provide proper encoding!
-let isReMaterializable = 1, isAsCheapAsAMove = 1 in {
-def MOV8ri  : Pseudo<(outs GR8:$dst), (ins i8imm:$src),
-                     "mov.b\t{$src, $dst}",
-                     [(set GR8:$dst, imm:$src)]>;
-def MOV16ri : Pseudo<(outs GR16:$dst), (ins i16imm:$src),
-                     "mov.w\t{$src, $dst}",
-                     [(set GR16:$dst, imm:$src)]>;
-}
-
-let canFoldAsLoad = 1, isReMaterializable = 1, mayHaveSideEffects = 1 in {
-def MOV8rm  : Pseudo<(outs GR8:$dst), (ins memsrc:$src),
-                "mov.b\t{$src, $dst}",
-                [(set GR8:$dst, (load addr:$src))]>;
-def MOV16rm : Pseudo<(outs GR16:$dst), (ins memsrc:$src),
-                "mov.w\t{$src, $dst}",
-                [(set GR16:$dst, (load addr:$src))]>;
-}
-
-def MOVZX16rr8 : Pseudo<(outs GR16:$dst), (ins GR8:$src),
-                "mov.b\t{$src, $dst}",
-                [(set GR16:$dst, (zext GR8:$src))]>;
-def MOVZX16rm8 : Pseudo<(outs GR16:$dst), (ins memsrc:$src),
-                "mov.b\t{$src, $dst}",
-                [(set GR16:$dst, (zextloadi16i8 addr:$src))]>;
-
-// Any instruction that defines a 8-bit result leaves the high half of the
-// register. Truncate can be lowered to EXTRACT_SUBREG, and CopyFromReg may
-// be copying from a truncate, but any other 8-bit operation will zero-extend
-// up to 16 bits.
-def def8 : PatLeaf<(i8 GR8:$src), [{
-  return N->getOpcode() != ISD::TRUNCATE &&
-         N->getOpcode() != TargetInstrInfo::EXTRACT_SUBREG &&
-         N->getOpcode() != ISD::CopyFromReg;
-}]>;
-
-// In the case of a 8-bit def that is known to implicitly zero-extend,
-// we can use a SUBREG_TO_REG.
-def : Pat<(i16 (zext def8:$src)),
-          (SUBREG_TO_REG (i16 0), GR8:$src, subreg_8bit)>;
-
-
-def MOV8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "mov.b\t{$src, $dst}",
-                [(store (i8 imm:$src), addr:$dst)]>;
-def MOV16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "mov.w\t{$src, $dst}",
-                [(store (i16 imm:$src), addr:$dst)]>;
-
-def MOV8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "mov.b\t{$src, $dst}",
-                [(store GR8:$src, addr:$dst)]>;
-def MOV16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "mov.w\t{$src, $dst}",
-                [(store GR16:$src, addr:$dst)]>;
-
-//===----------------------------------------------------------------------===//
-// Arithmetic Instructions
-
-let isTwoAddress = 1 in {
-
-let Defs = [SRW] in {
-
-let isCommutable = 1 in { // X = ADD Y, Z  == X = ADD Z, Y
-// FIXME: Provide proper encoding!
-def ADD8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
-                     "add.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (add GR8:$src1, GR8:$src2)),
-                      (implicit SRW)]>;
-def ADD16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
-                     "add.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (add GR16:$src1, GR16:$src2)),
-                      (implicit SRW)]>;
-}
-
-def ADD8rm  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, memsrc:$src2),
-                     "add.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (add GR8:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-def ADD16rm : Pseudo<(outs GR16:$dst), (ins GR16:$src1, memsrc:$src2),
-                     "add.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (add GR16:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-
-def ADD8ri  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, i8imm:$src2),
-                     "add.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (add GR8:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-def ADD16ri : Pseudo<(outs GR16:$dst), (ins GR16:$src1, i16imm:$src2),
-                     "add.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (add GR16:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-
-let isTwoAddress = 0 in {
-def ADD8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "add.b\t{$src, $dst}",
-                [(store (add (load addr:$dst), GR8:$src), addr:$dst),
-                 (implicit SRW)]>;
-def ADD16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "add.w\t{$src, $dst}",
-                [(store (add (load addr:$dst), GR16:$src), addr:$dst),
-                 (implicit SRW)]>;
-
-def ADD8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "add.b\t{$src, $dst}",
-                [(store (add (load addr:$dst), (i8 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-def ADD16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "add.w\t{$src, $dst}",
-                [(store (add (load addr:$dst), (i16 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-
-def ADD8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "add.b\t{$src, $dst}",
-                [(store (add (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-def ADD16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "add.w\t{$src, $dst}",
-                [(store (add (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-}
-
-let Uses = [SRW] in {
-
-let isCommutable = 1 in { // X = ADDC Y, Z  == X = ADDC Z, Y
-def ADC8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
-                     "addc.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (adde GR8:$src1, GR8:$src2)),
-                      (implicit SRW)]>;
-def ADC16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
-                     "addc.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (adde GR16:$src1, GR16:$src2)),
-                      (implicit SRW)]>;
-} // isCommutable
-
-def ADC8ri  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, i8imm:$src2),
-                     "addc.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (adde GR8:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-def ADC16ri : Pseudo<(outs GR16:$dst), (ins GR16:$src1, i16imm:$src2),
-                     "addc.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (adde GR16:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-
-def ADC8rm  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, memsrc:$src2),
-                     "addc.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (adde GR8:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-def ADC16rm : Pseudo<(outs GR16:$dst), (ins GR16:$src1, memsrc:$src2),
-                     "addc.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (adde GR16:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-
-let isTwoAddress = 0 in {
-def ADC8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "addc.b\t{$src, $dst}",
-                [(store (adde (load addr:$dst), GR8:$src), addr:$dst),
-                 (implicit SRW)]>;
-def ADC16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "addc.w\t{$src, $dst}",
-                [(store (adde (load addr:$dst), GR16:$src), addr:$dst),
-                 (implicit SRW)]>;
-
-def ADC8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "addc.b\t{$src, $dst}",
-                [(store (adde (load addr:$dst), (i8 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-def ADC16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "addc.w\t{$src, $dst}",
-                [(store (adde (load addr:$dst), (i16 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-
-def ADC8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "addc.b\t{$src, $dst}",
-                [(store (adde (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-def ADC16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "addc.w\t{$src, $dst}",
-                [(store (adde (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-}
-
-} // Uses = [SRW]
-
-let isCommutable = 1 in { // X = AND Y, Z  == X = AND Z, Y
-def AND8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
-                     "and.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (and GR8:$src1, GR8:$src2)),
-                      (implicit SRW)]>;
-def AND16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
-                     "and.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (and GR16:$src1, GR16:$src2)),
-                      (implicit SRW)]>;
-}
-
-def AND8ri  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, i8imm:$src2),
-                     "and.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (and GR8:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-def AND16ri : Pseudo<(outs GR16:$dst), (ins GR16:$src1, i16imm:$src2),
-                     "and.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (and GR16:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-
-def AND8rm  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, memsrc:$src2),
-                     "and.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (and GR8:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-def AND16rm : Pseudo<(outs GR16:$dst), (ins GR16:$src1, memsrc:$src2),
-                     "and.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (and GR16:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-
-let isTwoAddress = 0 in {
-def AND8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "and.b\t{$src, $dst}",
-                [(store (and (load addr:$dst), GR8:$src), addr:$dst),
-                 (implicit SRW)]>;
-def AND16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "and.w\t{$src, $dst}",
-                [(store (and (load addr:$dst), GR16:$src), addr:$dst),
-                 (implicit SRW)]>;
-
-def AND8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "and.b\t{$src, $dst}",
-                [(store (and (load addr:$dst), (i8 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-def AND16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "and.w\t{$src, $dst}",
-                [(store (and (load addr:$dst), (i16 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-
-def AND8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "and.b\t{$src, $dst}",
-                [(store (and (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-def AND16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "and.w\t{$src, $dst}",
-                [(store (and (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-}
-
-
-let isCommutable = 1 in { // X = XOR Y, Z  == X = XOR Z, Y
-def XOR8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
-                     "xor.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (xor GR8:$src1, GR8:$src2)),
-                      (implicit SRW)]>;
-def XOR16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
-                     "xor.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (xor GR16:$src1, GR16:$src2)),
-                      (implicit SRW)]>;
-}
-
-def XOR8ri  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, i8imm:$src2),
-                     "xor.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (xor GR8:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-def XOR16ri : Pseudo<(outs GR16:$dst), (ins GR16:$src1, i16imm:$src2),
-                     "xor.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (xor GR16:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-
-def XOR8rm  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, memsrc:$src2),
-                     "xor.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (xor GR8:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-def XOR16rm : Pseudo<(outs GR16:$dst), (ins GR16:$src1, memsrc:$src2),
-                     "xor.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (xor GR16:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-
-let isTwoAddress = 0 in {
-def XOR8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "xor.b\t{$src, $dst}",
-                [(store (xor (load addr:$dst), GR8:$src), addr:$dst),
-                 (implicit SRW)]>;
-def XOR16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "xor.w\t{$src, $dst}",
-                [(store (xor (load addr:$dst), GR16:$src), addr:$dst),
-                 (implicit SRW)]>;
-
-def XOR8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "xor.b\t{$src, $dst}",
-                [(store (xor (load addr:$dst), (i8 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-def XOR16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "xor.w\t{$src, $dst}",
-                [(store (xor (load addr:$dst), (i16 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-
-def XOR8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "xor.b\t{$src, $dst}",
-                [(store (xor (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-def XOR16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "xor.w\t{$src, $dst}",
-                [(store (xor (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-}
-
-
-def SUB8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
-                     "sub.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (sub GR8:$src1, GR8:$src2)),
-                      (implicit SRW)]>;
-def SUB16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
-                     "sub.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (sub GR16:$src1, GR16:$src2)),
-                      (implicit SRW)]>;
-
-def SUB8ri  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, i8imm:$src2),
-                     "sub.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (sub GR8:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-def SUB16ri : Pseudo<(outs GR16:$dst), (ins GR16:$src1, i16imm:$src2),
-                     "sub.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (sub GR16:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-
-def SUB8rm  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, memsrc:$src2),
-                     "sub.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (sub GR8:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-def SUB16rm : Pseudo<(outs GR16:$dst), (ins GR16:$src1, memsrc:$src2),
-                     "sub.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (sub GR16:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-
-let isTwoAddress = 0 in {
-def SUB8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "sub.b\t{$src, $dst}",
-                [(store (sub (load addr:$dst), GR8:$src), addr:$dst),
-                 (implicit SRW)]>;
-def SUB16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "sub.w\t{$src, $dst}",
-                [(store (sub (load addr:$dst), GR16:$src), addr:$dst),
-                 (implicit SRW)]>;
-
-def SUB8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "sub.b\t{$src, $dst}",
-                [(store (sub (load addr:$dst), (i8 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-def SUB16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "sub.w\t{$src, $dst}",
-                [(store (sub (load addr:$dst), (i16 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-
-def SUB8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "sub.b\t{$src, $dst}",
-                [(store (sub (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-def SUB16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "sub.w\t{$src, $dst}",
-                [(store (sub (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-}
-
-let Uses = [SRW] in {
-def SBC8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
-                     "subc.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (sube GR8:$src1, GR8:$src2)),
-                      (implicit SRW)]>;
-def SBC16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
-                     "subc.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (sube GR16:$src1, GR16:$src2)),
-                      (implicit SRW)]>;
-
-def SBC8ri  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, i8imm:$src2),
-                     "subc.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (sube GR8:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-def SBC16ri : Pseudo<(outs GR16:$dst), (ins GR16:$src1, i16imm:$src2),
-                     "subc.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (sube GR16:$src1, imm:$src2)),
-                      (implicit SRW)]>;
-
-def SBC8rm  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, memsrc:$src2),
-                     "subc.b\t{$src2, $dst}",
-                     [(set GR8:$dst, (sube GR8:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-def SBC16rm : Pseudo<(outs GR16:$dst), (ins GR16:$src1, memsrc:$src2),
-                     "subc.w\t{$src2, $dst}",
-                     [(set GR16:$dst, (sube GR16:$src1, (load addr:$src2))),
-                      (implicit SRW)]>;
-
-let isTwoAddress = 0 in {
-def SBC8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "subc.b\t{$src, $dst}",
-                [(store (sube (load addr:$dst), GR8:$src), addr:$dst),
-                 (implicit SRW)]>;
-def SBC16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "subc.w\t{$src, $dst}",
-                [(store (sube (load addr:$dst), GR16:$src), addr:$dst),
-                 (implicit SRW)]>;
-
-def SBC8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "subc.b\t{$src, $dst}",
-                [(store (sube (load addr:$dst), (i8 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-def SBC16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "subc.w\t{$src, $dst}",
-                [(store (sube (load addr:$dst), (i16 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-
-def SBC8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "subc.b\t{$src, $dst}",
-                [(store (sube (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-def SBC16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "subc.w\t{$src, $dst}",
-                [(store (sube (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-}
-
-} // Uses = [SRW]
-
-// FIXME: Provide proper encoding!
-def SAR8r1  : Pseudo<(outs GR8:$dst), (ins GR8:$src),
-                     "rra.b\t$dst",
-                     [(set GR8:$dst, (MSP430rra GR8:$src)),
-                      (implicit SRW)]>;
-def SAR16r1 : Pseudo<(outs GR16:$dst), (ins GR16:$src),
-                     "rra.w\t$dst",
-                     [(set GR16:$dst, (MSP430rra GR16:$src)),
-                      (implicit SRW)]>;
-
-def SHL8r1  : Pseudo<(outs GR8:$dst), (ins GR8:$src),
-                     "rla.b\t$dst",
-                     [(set GR8:$dst, (MSP430rla GR8:$src)),
-                      (implicit SRW)]>;
-def SHL16r1 : Pseudo<(outs GR16:$dst), (ins GR16:$src),
-                     "rla.w\t$dst",
-                     [(set GR16:$dst, (MSP430rla GR16:$src)),
-                      (implicit SRW)]>;
-
-def SAR8r1c  : Pseudo<(outs GR8:$dst), (ins GR8:$src),
-                      "clrc\n\t"
-                      "rrc.b\t$dst",
-                      [(set GR8:$dst, (MSP430rrc GR8:$src)),
-                       (implicit SRW)]>;
-def SAR16r1c : Pseudo<(outs GR16:$dst), (ins GR16:$src),
-                      "clrc\n\t"
-                      "rrc.w\t$dst",
-                      [(set GR16:$dst, (MSP430rrc GR16:$src)),
-                       (implicit SRW)]>;
-
-def SEXT16r : Pseudo<(outs GR16:$dst), (ins GR16:$src),
-                     "sxt\t$dst",
-                     [(set GR16:$dst, (sext_inreg GR16:$src, i8)),
-                      (implicit SRW)]>;
-
-} // Defs = [SRW]
-
-def SWPB16r : Pseudo<(outs GR16:$dst), (ins GR16:$src),
-                     "swpb\t$dst",
-                     [(set GR16:$dst, (bswap GR16:$src))]>;
-
-let isCommutable = 1 in { // X = OR Y, Z  == X = OR Z, Y
-def OR8rr  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, GR8:$src2),
-                    "bis.b\t{$src2, $dst}",
-                    [(set GR8:$dst, (or GR8:$src1, GR8:$src2))]>;
-def OR16rr : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
-                    "bis.w\t{$src2, $dst}",
-                    [(set GR16:$dst, (or GR16:$src1, GR16:$src2))]>;
-}
-
-def OR8ri  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, i8imm:$src2),
-                    "bis.b\t{$src2, $dst}",
-                    [(set GR8:$dst, (or GR8:$src1, imm:$src2))]>;
-def OR16ri : Pseudo<(outs GR16:$dst), (ins GR16:$src1, i16imm:$src2),
-                    "bis.w\t{$src2, $dst}",
-                    [(set GR16:$dst, (or GR16:$src1, imm:$src2))]>;
-
-def OR8rm  : Pseudo<(outs GR8:$dst), (ins GR8:$src1, memsrc:$src2),
-                    "bis.b\t{$src2, $dst}",
-                    [(set GR8:$dst, (or GR8:$src1, (load addr:$src2)))]>;
-def OR16rm : Pseudo<(outs GR16:$dst), (ins GR16:$src1, memsrc:$src2),
-                    "bis.w\t{$src2, $dst}",
-                    [(set GR16:$dst, (or GR16:$src1, (load addr:$src2)))]>;
-
-let isTwoAddress = 0 in {
-def OR8mr  : Pseudo<(outs), (ins memdst:$dst, GR8:$src),
-                "bis.b\t{$src, $dst}",
-                [(store (or (load addr:$dst), GR8:$src), addr:$dst),
-                 (implicit SRW)]>;
-def OR16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
-                "bis.w\t{$src, $dst}",
-                [(store (or (load addr:$dst), GR16:$src), addr:$dst),
-                 (implicit SRW)]>;
-
-def OR8mi  : Pseudo<(outs), (ins memdst:$dst, i8imm:$src),
-                "bis.b\t{$src, $dst}",
-                [(store (or (load addr:$dst), (i8 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-def OR16mi : Pseudo<(outs), (ins memdst:$dst, i16imm:$src),
-                "bis.w\t{$src, $dst}",
-                [(store (or (load addr:$dst), (i16 imm:$src)), addr:$dst),
-                 (implicit SRW)]>;
-
-def OR8mm  : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "bis.b\t{$src, $dst}",
-                [(store (or (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-def OR16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
-                "bis.w\t{$src, $dst}",
-                [(store (or (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-                 (implicit SRW)]>;
-}
-
-} // isTwoAddress = 1
-
-// Integer comparisons
-let Defs = [SRW] in {
-def CMP8rr  : Pseudo<(outs), (ins GR8:$src1, GR8:$src2),
-                     "cmp.b\t{$src1, $src2}",
-                     [(MSP430cmp GR8:$src1, GR8:$src2), (implicit SRW)]>;
-def CMP16rr : Pseudo<(outs), (ins GR16:$src1, GR16:$src2),
-                     "cmp.w\t{$src1, $src2}",
-                     [(MSP430cmp GR16:$src1, GR16:$src2), (implicit SRW)]>;
-
-def CMP8ir  : Pseudo<(outs), (ins i8imm:$src1, GR8:$src2),
-                   "cmp.b\t{$src1, $src2}",
-                   [(MSP430cmp imm:$src1, GR8:$src2), (implicit SRW)]>;
-def CMP16ir : Pseudo<(outs), (ins i16imm:$src1, GR16:$src2),
-                     "cmp.w\t{$src1, $src2}",
-                     [(MSP430cmp imm:$src1, GR16:$src2), (implicit SRW)]>;
-
-def CMP8im  : Pseudo<(outs), (ins i8imm:$src1, memsrc:$src2),
-                     "cmp.b\t{$src1, $src2}",
-                      [(MSP430cmp (i8 imm:$src1), (load addr:$src2)), (implicit SRW)]>;
-def CMP16im : Pseudo<(outs), (ins i16imm:$src1, memsrc:$src2),
-                     "cmp.w\t{$src1, $src2}",
-                      [(MSP430cmp (i16 imm:$src1), (load addr:$src2)), (implicit SRW)]>;
-
-def CMP8rm  : Pseudo<(outs), (ins GR8:$src1, memsrc:$src2),
-                     "cmp.b\t{$src1, $src2}",
-                     [(MSP430cmp GR8:$src1, (load addr:$src2)), (implicit SRW)]>;
-def CMP16rm : Pseudo<(outs), (ins GR16:$src1, memsrc:$src2),
-                     "cmp.w\t{$src1, $src2}",
-                     [(MSP430cmp GR16:$src1, (load addr:$src2)), (implicit SRW)]>;
-
-def CMP8mr  : Pseudo<(outs), (ins memsrc:$src1, GR8:$src2),
-                "cmp.b\t{$src1, $src2}",
-                [(MSP430cmp (load addr:$src1), GR8:$src2), (implicit SRW)]>;
-def CMP16mr : Pseudo<(outs), (ins memsrc:$src1, GR16:$src2),
-                "cmp.w\t{$src1, $src2}",
-                [(MSP430cmp (load addr:$src1), GR16:$src2), (implicit SRW)]>;
-
-def CMP8mi0 : Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.b\t{$src1, #0}",
-                [(MSP430cmp (load addr:$src1), (i8 0)), (implicit SRW)]>;
-def CMP16mi0: Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.w\t{$src1, #0}",
-                [(MSP430cmp (load addr:$src1), (i16 0)), (implicit SRW)]>;
-def CMP8mi1 : Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.b\t{$src1, #1}",
-                [(MSP430cmp (load addr:$src1), (i8 1)), (implicit SRW)]>;
-def CMP16mi1: Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.w\t{$src1, #1}",
-                [(MSP430cmp (load addr:$src1), (i16 1)), (implicit SRW)]>;
-def CMP8mi2 : Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.b\t{$src1, #2}",
-                [(MSP430cmp (load addr:$src1), (i8 2)), (implicit SRW)]>;
-def CMP16mi2: Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.w\t{$src1, #2}",
-                [(MSP430cmp (load addr:$src1), (i16 2)), (implicit SRW)]>;
-def CMP8mi4 : Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.b\t{$src1, #4}",
-                [(MSP430cmp (load addr:$src1), (i8 4)), (implicit SRW)]>;
-def CMP16mi4: Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.w\t{$src1, #4}",
-                [(MSP430cmp (load addr:$src1), (i16 4)), (implicit SRW)]>;
-def CMP8mi8 : Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.b\t{$src1, #8}",
-                [(MSP430cmp (load addr:$src1), (i8 8)), (implicit SRW)]>;
-def CMP16mi8: Pseudo<(outs), (ins memsrc:$src1),
-                "cmp.w\t{$src1, #8}",
-                [(MSP430cmp (load addr:$src1), (i16 8)), (implicit SRW)]>;
-
-} // Defs = [SRW]
-
-//===----------------------------------------------------------------------===//
-// Non-Instruction Patterns
-
-// extload
-def : Pat<(extloadi16i8 addr:$src), (MOVZX16rm8 addr:$src)>;
-
-// anyext
-def : Pat<(anyext addr:$src), (MOVZX16rr8 GR8:$src)>;
-
-// truncs
-def : Pat<(i8 (trunc GR16:$src)),
-          (EXTRACT_SUBREG GR16:$src, subreg_8bit)>;
-
-// GlobalAddress, ExternalSymbol
-def : Pat<(i16 (MSP430Wrapper tglobaladdr:$dst)), (MOV16ri tglobaladdr:$dst)>;
-def : Pat<(i16 (MSP430Wrapper texternalsym:$dst)), (MOV16ri texternalsym:$dst)>;
-
-def : Pat<(add GR16:$src1, (MSP430Wrapper tglobaladdr :$src2)),
-          (ADD16ri GR16:$src1, tglobaladdr:$src2)>;
-def : Pat<(add GR16:$src1, (MSP430Wrapper texternalsym:$src2)),
-          (ADD16ri GR16:$src1, texternalsym:$src2)>;
-
-def : Pat<(store (i16 (MSP430Wrapper tglobaladdr:$src)), addr:$dst),
-          (MOV16mi addr:$dst, tglobaladdr:$src)>;
-def : Pat<(store (i16 (MSP430Wrapper texternalsym:$src)), addr:$dst),
-          (MOV16mi addr:$dst, texternalsym:$src)>;
-
-// calls
-def : Pat<(MSP430call (i16 tglobaladdr:$dst)),
-          (CALLi tglobaladdr:$dst)>;
-def : Pat<(MSP430call (i16 texternalsym:$dst)),
-          (CALLi texternalsym:$dst)>;
-
-// add and sub always produce carry
-def : Pat<(addc GR16:$src1, GR16:$src2),
-          (ADD16rr GR16:$src1, GR16:$src2)>;
-def : Pat<(addc GR16:$src1, (load addr:$src2)),
-          (ADD16rm GR16:$src1, addr:$src2)>;
-def : Pat<(addc GR16:$src1, imm:$src2),
-          (ADD16ri GR16:$src1, imm:$src2)>;
-def : Pat<(store (addc (load addr:$dst), GR16:$src), addr:$dst),
-          (ADD16mr addr:$dst, GR16:$src)>;
-def : Pat<(store (addc (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-          (ADD16mm addr:$dst, addr:$src)>;
-
-def : Pat<(addc GR8:$src1, GR8:$src2),
-          (ADD8rr GR8:$src1, GR8:$src2)>;
-def : Pat<(addc GR8:$src1, (load addr:$src2)),
-          (ADD8rm GR8:$src1, addr:$src2)>;
-def : Pat<(addc GR8:$src1, imm:$src2),
-          (ADD8ri GR8:$src1, imm:$src2)>;
-def : Pat<(store (addc (load addr:$dst), GR8:$src), addr:$dst),
-          (ADD8mr addr:$dst, GR8:$src)>;
-def : Pat<(store (addc (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-          (ADD8mm addr:$dst, addr:$src)>;
-
-def : Pat<(subc GR16:$src1, GR16:$src2),
-          (SUB16rr GR16:$src1, GR16:$src2)>;
-def : Pat<(subc GR16:$src1, (load addr:$src2)),
-          (SUB16rm GR16:$src1, addr:$src2)>;
-def : Pat<(subc GR16:$src1, imm:$src2),
-          (SUB16ri GR16:$src1, imm:$src2)>;
-def : Pat<(store (subc (load addr:$dst), GR16:$src), addr:$dst),
-          (SUB16mr addr:$dst, GR16:$src)>;
-def : Pat<(store (subc (load addr:$dst), (i16 (load addr:$src))), addr:$dst),
-          (SUB16mm addr:$dst, addr:$src)>;
-
-def : Pat<(subc GR8:$src1, GR8:$src2),
-          (SUB8rr GR8:$src1, GR8:$src2)>;
-def : Pat<(subc GR8:$src1, (load addr:$src2)),
-          (SUB8rm GR8:$src1, addr:$src2)>;
-def : Pat<(subc GR8:$src1, imm:$src2),
-          (SUB8ri GR8:$src1, imm:$src2)>;
-def : Pat<(store (subc (load addr:$dst), GR8:$src), addr:$dst),
-          (SUB8mr addr:$dst, GR8:$src)>;
-def : Pat<(store (subc (load addr:$dst), (i8 (load addr:$src))), addr:$dst),
-          (SUB8mm addr:$dst, addr:$src)>;
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.cpp
deleted file mode 100644
index 2309a5f..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- MSP430MCAsmInfo.cpp - MSP430 asm properties -----------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the MSP430MCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSP430MCAsmInfo.h"
-using namespace llvm;
-
-MSP430MCAsmInfo::MSP430MCAsmInfo(const Target &T, const StringRef &TT) {
-  AlignmentIsInBytes = false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.h
deleted file mode 100644
index 8318029..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.h
+++ /dev/null
@@ -1,28 +0,0 @@
-//=====-- MSP430MCAsmInfo.h - MSP430 asm properties -----------*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the MSP430MCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MSP430TARGETASMINFO_H
-#define MSP430TARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-  struct MSP430MCAsmInfo : public MCAsmInfo {
-    explicit MSP430MCAsmInfo(const Target &T, const StringRef &TT);
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h
deleted file mode 100644
index 1d26ae3..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===- MSP430MachineFuctionInfo.h - MSP430 machine function info -*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares MSP430-specific per-machine-function information.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MSP430MACHINEFUNCTIONINFO_H
-#define MSP430MACHINEFUNCTIONINFO_H
-
-#include "llvm/CodeGen/MachineFunction.h"
-
-namespace llvm {
-
-/// MSP430MachineFunctionInfo - This class is derived from MachineFunction and
-/// contains private MSP430 target-specific information for each MachineFunction.
-class MSP430MachineFunctionInfo : public MachineFunctionInfo {
-  /// CalleeSavedFrameSize - Size of the callee-saved register portion of the
-  /// stack frame in bytes.
-  unsigned CalleeSavedFrameSize;
-
-public:
-  MSP430MachineFunctionInfo() : CalleeSavedFrameSize(0) {}
-
-  explicit MSP430MachineFunctionInfo(MachineFunction &MF)
-    : CalleeSavedFrameSize(0) {}
-
-  unsigned getCalleeSavedFrameSize() const { return CalleeSavedFrameSize; }
-  void setCalleeSavedFrameSize(unsigned bytes) { CalleeSavedFrameSize = bytes; }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp
deleted file mode 100644
index 72994eb..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp
+++ /dev/null
@@ -1,366 +0,0 @@
-//===- MSP430RegisterInfo.cpp - MSP430 Register Information ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the MSP430 implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "msp430-reg-info"
-
-#include "MSP430.h"
-#include "MSP430MachineFunctionInfo.h"
-#include "MSP430RegisterInfo.h"
-#include "MSP430TargetMachine.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/Support/ErrorHandling.h"
-
-using namespace llvm;
-
-// FIXME: Provide proper call frame setup / destroy opcodes.
-MSP430RegisterInfo::MSP430RegisterInfo(MSP430TargetMachine &tm,
-                                       const TargetInstrInfo &tii)
-  : MSP430GenRegisterInfo(MSP430::ADJCALLSTACKDOWN, MSP430::ADJCALLSTACKUP),
-    TM(tm), TII(tii) {
-  StackAlign = TM.getFrameInfo()->getStackAlignment();
-}
-
-const unsigned*
-MSP430RegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
-  static const unsigned CalleeSavedRegs[] = {
-    MSP430::FPW, MSP430::R5W, MSP430::R6W, MSP430::R7W,
-    MSP430::R8W, MSP430::R9W, MSP430::R10W, MSP430::R11W,
-    0
-  };
-
-  return CalleeSavedRegs;
-}
-
-const TargetRegisterClass *const *
-MSP430RegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const {
-  static const TargetRegisterClass * const CalleeSavedRegClasses[] = {
-    &MSP430::GR16RegClass, &MSP430::GR16RegClass,
-    &MSP430::GR16RegClass, &MSP430::GR16RegClass,
-    &MSP430::GR16RegClass, &MSP430::GR16RegClass,
-    &MSP430::GR16RegClass, &MSP430::GR16RegClass,
-    0
-  };
-
-  return CalleeSavedRegClasses;
-}
-
-BitVector MSP430RegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  BitVector Reserved(getNumRegs());
-
-  // Mark 4 special registers as reserved.
-  Reserved.set(MSP430::PCW);
-  Reserved.set(MSP430::SPW);
-  Reserved.set(MSP430::SRW);
-  Reserved.set(MSP430::CGW);
-
-  // Mark frame pointer as reserved if needed.
-  if (hasFP(MF))
-    Reserved.set(MSP430::FPW);
-
-  return Reserved;
-}
-
-const TargetRegisterClass *
-MSP430RegisterInfo::getPointerRegClass(unsigned Kind) const {
-  return &MSP430::GR16RegClass;
-}
-
-
-bool MSP430RegisterInfo::hasFP(const MachineFunction &MF) const {
-  return NoFramePointerElim || MF.getFrameInfo()->hasVarSizedObjects();
-}
-
-bool MSP430RegisterInfo::hasReservedCallFrame(MachineFunction &MF) const {
-  return !MF.getFrameInfo()->hasVarSizedObjects();
-}
-
-void MSP430RegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  if (!hasReservedCallFrame(MF)) {
-    // If the stack pointer can be changed after prologue, turn the
-    // adjcallstackup instruction into a 'sub SPW, <amt>' and the
-    // adjcallstackdown instruction into 'add SPW, <amt>'
-    // TODO: consider using push / pop instead of sub + store / add
-    MachineInstr *Old = I;
-    uint64_t Amount = Old->getOperand(0).getImm();
-    if (Amount != 0) {
-      // We need to keep the stack aligned properly.  To do this, we round the
-      // amount of space needed for the outgoing arguments up to the next
-      // alignment boundary.
-      Amount = (Amount+StackAlign-1)/StackAlign*StackAlign;
-
-      MachineInstr *New = 0;
-      if (Old->getOpcode() == getCallFrameSetupOpcode()) {
-        New = BuildMI(MF, Old->getDebugLoc(),
-                      TII.get(MSP430::SUB16ri), MSP430::SPW)
-          .addReg(MSP430::SPW).addImm(Amount);
-      } else {
-        assert(Old->getOpcode() == getCallFrameDestroyOpcode());
-        // factor out the amount the callee already popped.
-        uint64_t CalleeAmt = Old->getOperand(1).getImm();
-        Amount -= CalleeAmt;
-        if (Amount)
-          New = BuildMI(MF, Old->getDebugLoc(),
-                        TII.get(MSP430::ADD16ri), MSP430::SPW)
-            .addReg(MSP430::SPW).addImm(Amount);
-      }
-
-      if (New) {
-        // The SRW implicit def is dead.
-        New->getOperand(3).setIsDead();
-
-        // Replace the pseudo instruction with a new instruction...
-        MBB.insert(I, New);
-      }
-    }
-  } else if (I->getOpcode() == getCallFrameDestroyOpcode()) {
-    // If we are performing frame pointer elimination and if the callee pops
-    // something off the stack pointer, add it back.
-    if (uint64_t CalleeAmt = I->getOperand(1).getImm()) {
-      MachineInstr *Old = I;
-      MachineInstr *New =
-        BuildMI(MF, Old->getDebugLoc(), TII.get(MSP430::SUB16ri),
-                MSP430::SPW).addReg(MSP430::SPW).addImm(CalleeAmt);
-      // The SRW implicit def is dead.
-      New->getOperand(3).setIsDead();
-
-      MBB.insert(I, New);
-    }
-  }
-
-  MBB.erase(I);
-}
-
-void
-MSP430RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
-                                        int SPAdj, RegScavenger *RS) const {
-  assert(SPAdj == 0 && "Unexpected");
-
-  unsigned i = 0;
-  MachineInstr &MI = *II;
-  MachineBasicBlock &MBB = *MI.getParent();
-  MachineFunction &MF = *MBB.getParent();
-  DebugLoc dl = MI.getDebugLoc();
-  while (!MI.getOperand(i).isFI()) {
-    ++i;
-    assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
-  }
-
-  int FrameIndex = MI.getOperand(i).getIndex();
-
-  unsigned BasePtr = (hasFP(MF) ? MSP430::FPW : MSP430::SPW);
-  int Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex);
-
-  // Skip the saved PC
-  Offset += 2;
-
-  if (!hasFP(MF))
-    Offset += MF.getFrameInfo()->getStackSize();
-  else
-    Offset += 2; // Skip the saved FPW
-
-  // Fold imm into offset
-  Offset += MI.getOperand(i+1).getImm();
-
-  if (MI.getOpcode() == MSP430::ADD16ri) {
-    // This is actually "load effective address" of the stack slot
-    // instruction. We have only two-address instructions, thus we need to
-    // expand it into mov + add
-
-    MI.setDesc(TII.get(MSP430::MOV16rr));
-    MI.getOperand(i).ChangeToRegister(BasePtr, false);
-
-    if (Offset == 0)
-      return;
-
-    // We need to materialize the offset via add instruction.
-    unsigned DstReg = MI.getOperand(0).getReg();
-    if (Offset < 0)
-      BuildMI(MBB, next(II), dl, TII.get(MSP430::SUB16ri), DstReg)
-        .addReg(DstReg).addImm(-Offset);
-    else
-      BuildMI(MBB, next(II), dl, TII.get(MSP430::ADD16ri), DstReg)
-        .addReg(DstReg).addImm(Offset);
-
-    return;
-  }
-
-  MI.getOperand(i).ChangeToRegister(BasePtr, false);
-  MI.getOperand(i+1).ChangeToImmediate(Offset);
-}
-
-void
-MSP430RegisterInfo::processFunctionBeforeFrameFinalized(MachineFunction &MF)
-                                                                         const {
-  // Create a frame entry for the FPW register that must be saved.
-  if (hasFP(MF)) {
-    int FrameIdx = MF.getFrameInfo()->CreateFixedObject(2, -4);
-    assert(FrameIdx == MF.getFrameInfo()->getObjectIndexBegin() &&
-           "Slot for FPW register must be last in order to be found!");
-    FrameIdx = 0;
-  }
-}
-
-
-void MSP430RegisterInfo::emitPrologue(MachineFunction &MF) const {
-  MachineBasicBlock &MBB = MF.front();   // Prolog goes in entry BB
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MSP430MachineFunctionInfo *MSP430FI = MF.getInfo<MSP430MachineFunctionInfo>();
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  DebugLoc DL = (MBBI != MBB.end() ? MBBI->getDebugLoc() :
-                 DebugLoc::getUnknownLoc());
-
-  // Get the number of bytes to allocate from the FrameInfo.
-  uint64_t StackSize = MFI->getStackSize();
-
-  uint64_t NumBytes = 0;
-  if (hasFP(MF)) {
-    // Calculate required stack adjustment
-    uint64_t FrameSize = StackSize - 2;
-    NumBytes = FrameSize - MSP430FI->getCalleeSavedFrameSize();
-
-    // Get the offset of the stack slot for the EBP register... which is
-    // guaranteed to be the last slot by processFunctionBeforeFrameFinalized.
-    // Update the frame offset adjustment.
-    MFI->setOffsetAdjustment(-NumBytes);
-
-    // Save FPW into the appropriate stack slot...
-    BuildMI(MBB, MBBI, DL, TII.get(MSP430::PUSH16r))
-      .addReg(MSP430::FPW, RegState::Kill);
-
-    // Update FPW with the new base value...
-    BuildMI(MBB, MBBI, DL, TII.get(MSP430::MOV16rr), MSP430::FPW)
-      .addReg(MSP430::SPW);
-
-    // Mark the FramePtr as live-in in every block except the entry.
-    for (MachineFunction::iterator I = next(MF.begin()), E = MF.end();
-         I != E; ++I)
-      I->addLiveIn(MSP430::FPW);
-
-  } else
-    NumBytes = StackSize - MSP430FI->getCalleeSavedFrameSize();
-
-  // Skip the callee-saved push instructions.
-  while (MBBI != MBB.end() && (MBBI->getOpcode() == MSP430::PUSH16r))
-    ++MBBI;
-
-  if (MBBI != MBB.end())
-    DL = MBBI->getDebugLoc();
-
-  if (NumBytes) { // adjust stack pointer: SPW -= numbytes
-    // If there is an SUB16ri of SPW immediately before this instruction, merge
-    // the two.
-    //NumBytes -= mergeSPUpdates(MBB, MBBI, true);
-    // If there is an ADD16ri or SUB16ri of SPW immediately after this
-    // instruction, merge the two instructions.
-    // mergeSPUpdatesDown(MBB, MBBI, &NumBytes);
-
-    if (NumBytes) {
-      MachineInstr *MI =
-        BuildMI(MBB, MBBI, DL, TII.get(MSP430::SUB16ri), MSP430::SPW)
-        .addReg(MSP430::SPW).addImm(NumBytes);
-      // The SRW implicit def is dead.
-      MI->getOperand(3).setIsDead();
-    }
-  }
-}
-
-void MSP430RegisterInfo::emitEpilogue(MachineFunction &MF,
-                                      MachineBasicBlock &MBB) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  MSP430MachineFunctionInfo *MSP430FI = MF.getInfo<MSP430MachineFunctionInfo>();
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  unsigned RetOpcode = MBBI->getOpcode();
-  DebugLoc DL = MBBI->getDebugLoc();
-
-  switch (RetOpcode) {
-  case MSP430::RET: break;  // These are ok
-  default:
-    llvm_unreachable("Can only insert epilog into returning blocks");
-  }
-
-  // Get the number of bytes to allocate from the FrameInfo
-  uint64_t StackSize = MFI->getStackSize();
-  unsigned CSSize = MSP430FI->getCalleeSavedFrameSize();
-  uint64_t NumBytes = 0;
-
-  if (hasFP(MF)) {
-    // Calculate required stack adjustment
-    uint64_t FrameSize = StackSize - 2;
-    NumBytes = FrameSize - CSSize;
-
-    // pop FPW.
-    BuildMI(MBB, MBBI, DL, TII.get(MSP430::POP16r), MSP430::FPW);
-  } else
-    NumBytes = StackSize - CSSize;
-
-  // Skip the callee-saved pop instructions.
-  MachineBasicBlock::iterator LastCSPop = MBBI;
-  while (MBBI != MBB.begin()) {
-    MachineBasicBlock::iterator PI = prior(MBBI);
-    unsigned Opc = PI->getOpcode();
-    if (Opc != MSP430::POP16r && !PI->getDesc().isTerminator())
-      break;
-    --MBBI;
-  }
-
-  DL = MBBI->getDebugLoc();
-
-  // If there is an ADD16ri or SUB16ri of SPW immediately before this
-  // instruction, merge the two instructions.
-  //if (NumBytes || MFI->hasVarSizedObjects())
-  //  mergeSPUpdatesUp(MBB, MBBI, StackPtr, &NumBytes);
-
-  if (MFI->hasVarSizedObjects()) {
-    BuildMI(MBB, MBBI, DL,
-            TII.get(MSP430::MOV16rr), MSP430::SPW).addReg(MSP430::FPW);
-    if (CSSize) {
-      MachineInstr *MI =
-        BuildMI(MBB, MBBI, DL,
-                TII.get(MSP430::SUB16ri), MSP430::SPW)
-        .addReg(MSP430::SPW).addImm(CSSize);
-      // The SRW implicit def is dead.
-      MI->getOperand(3).setIsDead();
-    }
-  } else {
-    // adjust stack pointer back: SPW += numbytes
-    if (NumBytes) {
-      MachineInstr *MI =
-        BuildMI(MBB, MBBI, DL, TII.get(MSP430::ADD16ri), MSP430::SPW)
-        .addReg(MSP430::SPW).addImm(NumBytes);
-      // The SRW implicit def is dead.
-      MI->getOperand(3).setIsDead();
-    }
-  }
-}
-
-unsigned MSP430RegisterInfo::getRARegister() const {
-  return MSP430::PCW;
-}
-
-unsigned MSP430RegisterInfo::getFrameRegister(MachineFunction &MF) const {
-  return hasFP(MF) ? MSP430::FPW : MSP430::SPW;
-}
-
-int MSP430RegisterInfo::getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  llvm_unreachable("Not implemented yet!");
-  return 0;
-}
-
-#include "MSP430GenRegisterInfo.inc"
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.h
deleted file mode 100644
index 69007ab..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.h
+++ /dev/null
@@ -1,70 +0,0 @@
-//===- MSP430RegisterInfo.h - MSP430 Register Information Impl --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the MSP430 implementation of the MRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_MSP430REGISTERINFO_H
-#define LLVM_TARGET_MSP430REGISTERINFO_H
-
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "MSP430GenRegisterInfo.h.inc"
-
-namespace llvm {
-
-class TargetInstrInfo;
-class MSP430TargetMachine;
-
-struct MSP430RegisterInfo : public MSP430GenRegisterInfo {
-private:
-  MSP430TargetMachine &TM;
-  const TargetInstrInfo &TII;
-
-  /// StackAlign - Default stack alignment.
-  ///
-  unsigned StackAlign;
-public:
-  MSP430RegisterInfo(MSP430TargetMachine &tm, const TargetInstrInfo &tii);
-
-  /// Code Generation virtual methods...
-  const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const;
-
-  const TargetRegisterClass* const*
-    getCalleeSavedRegClasses(const MachineFunction *MF = 0) const;
-
-  BitVector getReservedRegs(const MachineFunction &MF) const;
-  const TargetRegisterClass* getPointerRegClass(unsigned Kind = 0) const;
-
-  bool hasFP(const MachineFunction &MF) const;
-  bool hasReservedCallFrame(MachineFunction &MF) const;
-
-  void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                     MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I) const;
-
-  void eliminateFrameIndex(MachineBasicBlock::iterator II,
-                           int SPAdj, RegScavenger *RS = NULL) const;
-
-  void emitPrologue(MachineFunction &MF) const;
-  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-
-  void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
-
-  // Debug information queries.
-  unsigned getRARegister() const;
-  unsigned getFrameRegister(MachineFunction &MF) const;
-
-  //! Get DWARF debugging register number
-  int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-};
-
-} // end namespace llvm
-
-#endif // LLVM_TARGET_MSP430REGISTERINFO_H
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.td b/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.td
deleted file mode 100644
index 4078626..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.td
+++ /dev/null
@@ -1,122 +0,0 @@
-//===- MSP430RegisterInfo.td - MSP430 Register defs ----------*- tblgen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Declarations that describe the MSP430 register file
-//===----------------------------------------------------------------------===//
-
-class MSP430Reg<bits<4> num, string n> : Register<n> {
-  field bits<4> Num = num;
-  let Namespace = "MSP430";
-}
-
-class MSP430RegWithSubregs<bits<4> num, string n, list<Register> subregs> 
-  : RegisterWithSubRegs<n, subregs> {
-  field bits<4> Num = num;
-  let Namespace = "MSP430";
-}
-
-//===----------------------------------------------------------------------===//
-//  Registers
-//===----------------------------------------------------------------------===//
-
-def PCB  : MSP430Reg<0,  "r0">;
-def SPB  : MSP430Reg<1,  "r1">;
-def SRB  : MSP430Reg<2,  "r2">;
-def CGB  : MSP430Reg<3,  "r3">;
-def FPB  : MSP430Reg<4,  "r4">;
-def R5B  : MSP430Reg<5,  "r5">;
-def R6B  : MSP430Reg<6,  "r6">;
-def R7B  : MSP430Reg<7,  "r7">;
-def R8B  : MSP430Reg<8,  "r8">;
-def R9B  : MSP430Reg<9,  "r9">;
-def R10B : MSP430Reg<10, "r10">;
-def R11B : MSP430Reg<11, "r11">;
-def R12B : MSP430Reg<12, "r12">;
-def R13B : MSP430Reg<13, "r13">;
-def R14B : MSP430Reg<14, "r14">;
-def R15B : MSP430Reg<15, "r15">;
-
-def PCW  : MSP430RegWithSubregs<0,  "r0",  [PCB]>;
-def SPW  : MSP430RegWithSubregs<1,  "r1",  [SPB]>;
-def SRW  : MSP430RegWithSubregs<2,  "r2",  [SRB]>;
-def CGW  : MSP430RegWithSubregs<3,  "r3",  [CGB]>;
-def FPW  : MSP430RegWithSubregs<4,  "r4",  [FPB]>;
-def R5W  : MSP430RegWithSubregs<5,  "r5",  [R5B]>;
-def R6W  : MSP430RegWithSubregs<6,  "r6",  [R6B]>;
-def R7W  : MSP430RegWithSubregs<7,  "r7",  [R7B]>;
-def R8W  : MSP430RegWithSubregs<8,  "r8",  [R8B]>;
-def R9W  : MSP430RegWithSubregs<9,  "r9",  [R9B]>;
-def R10W : MSP430RegWithSubregs<10, "r10", [R10B]>;
-def R11W : MSP430RegWithSubregs<11, "r11", [R11B]>;
-def R12W : MSP430RegWithSubregs<12, "r12", [R12B]>;
-def R13W : MSP430RegWithSubregs<13, "r13", [R13B]>;
-def R14W : MSP430RegWithSubregs<14, "r14", [R14B]>;
-def R15W : MSP430RegWithSubregs<15, "r15", [R15B]>;
-
-def : SubRegSet<1, [PCW, SPW, SRW, CGW, FPW,
-                    R5W, R6W, R7W, R8W, R9W, R10W, R11W, R12W, R13W, R14W, R15W],
-                   [PCB, SPB, SRB, CGB, FPB,
-                    R5B, R6B, R7B, R8B, R9B, R10B, R11B, R12B, R13B, R14B, R15B]>;
-
-def subreg_8bit : PatLeaf<(i32 1)>;
-
-def GR8 : RegisterClass<"MSP430", [i8], 8,
-   // Volatile registers
-  [R12B, R13B, R14B, R15B, R11B, R10B, R9B, R8B, R7B, R6B, R5B,
-   // Frame pointer, sometimes allocable
-   FPB,
-   // Volatile, but not allocable
-   PCB, SPB, SRB, CGB]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    GR8Class::iterator
-    GR8Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      // Depending on whether the function uses frame pointer or not, last 5 or 4
-      // registers on the list above are reserved
-      if (RI->hasFP(MF))
-        return end()-5;
-      else
-        return end()-4;
-    }
-  }];
-}
-
-def GR16 : RegisterClass<"MSP430", [i16], 16,
-   // Volatile registers
-  [R12W, R13W, R14W, R15W, R11W, R10W, R9W, R8W, R7W, R6W, R5W,
-   // Frame pointer, sometimes allocable
-   FPW,
-   // Volatile, but not allocable
-   PCW, SPW, SRW, CGW]>
-{
-  let SubRegClassList = [GR8];
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    GR16Class::iterator
-    GR16Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      // Depending on whether the function uses frame pointer or not, last 5 or 4
-      // registers on the list above are reserved
-      if (RI->hasFP(MF))
-        return end()-5;
-      else
-        return end()-4;
-    }
-  }];
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430Subtarget.cpp b/libclamav/c++/llvm/lib/Target/MSP430/MSP430Subtarget.cpp
deleted file mode 100644
index 1346cb9..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430Subtarget.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//===- MSP430Subtarget.cpp - MSP430 Subtarget Information ---------*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the MSP430 specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSP430Subtarget.h"
-#include "MSP430.h"
-#include "MSP430GenSubtarget.inc"
-
-using namespace llvm;
-
-MSP430Subtarget::MSP430Subtarget(const std::string &TT, const std::string &FS) {
-  std::string CPU = "generic";
-
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430Subtarget.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430Subtarget.h
deleted file mode 100644
index 1070544..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430Subtarget.h
+++ /dev/null
@@ -1,38 +0,0 @@
-//====-- MSP430Subtarget.h - Define Subtarget for the MSP430 ---*- C++ -*--===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the MSP430 specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_MSP430_SUBTARGET_H
-#define LLVM_TARGET_MSP430_SUBTARGET_H
-
-#include "llvm/Target/TargetSubtarget.h"
-
-#include <string>
-
-namespace llvm {
-
-class MSP430Subtarget : public TargetSubtarget {
-  bool ExtendedInsts;
-public:
-  /// This constructor initializes the data members to match that
-  /// of the specified triple.
-  ///
-  MSP430Subtarget(const std::string &TT, const std::string &FS);
-
-  /// ParseSubtargetFeatures - Parses features string setting specified
-  /// subtarget options.  Definition of function is auto generated by tblgen.
-  std::string ParseSubtargetFeatures(const std::string &FS,
-                                     const std::string &CPU);
-};
-} // End llvm namespace
-
-#endif  // LLVM_TARGET_MSP430_SUBTARGET_H
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp b/libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp
deleted file mode 100644
index 5e21f8e..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-//===-- MSP430TargetMachine.cpp - Define TargetMachine for MSP430 ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Top-level implementation for the MSP430 target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSP430.h"
-#include "MSP430MCAsmInfo.h"
-#include "MSP430TargetMachine.h"
-#include "llvm/PassManager.h"
-#include "llvm/CodeGen/Passes.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-extern "C" void LLVMInitializeMSP430Target() {
-  // Register the target.
-  RegisterTargetMachine<MSP430TargetMachine> X(TheMSP430Target);
-  RegisterAsmInfo<MSP430MCAsmInfo> Z(TheMSP430Target);
-}
-
-MSP430TargetMachine::MSP430TargetMachine(const Target &T,
-                                         const std::string &TT,
-                                         const std::string &FS) :
-  LLVMTargetMachine(T, TT),
-  Subtarget(TT, FS),
-  // FIXME: Check TargetData string.
-  DataLayout("e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"),
-  InstrInfo(*this), TLInfo(*this),
-  FrameInfo(TargetFrameInfo::StackGrowsDown, 2, -2) { }
-
-
-bool MSP430TargetMachine::addInstSelector(PassManagerBase &PM,
-                                          CodeGenOpt::Level OptLevel) {
-  // Install an instruction selector.
-  PM.add(createMSP430ISelDag(*this, OptLevel));
-  return false;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.h b/libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.h
deleted file mode 100644
index d386140..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.h
+++ /dev/null
@@ -1,62 +0,0 @@
-//==-- MSP430TargetMachine.h - Define TargetMachine for MSP430 ---*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the MSP430 specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-
-#ifndef LLVM_TARGET_MSP430_TARGETMACHINE_H
-#define LLVM_TARGET_MSP430_TARGETMACHINE_H
-
-#include "MSP430InstrInfo.h"
-#include "MSP430ISelLowering.h"
-#include "MSP430RegisterInfo.h"
-#include "MSP430Subtarget.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-
-/// MSP430TargetMachine
-///
-class MSP430TargetMachine : public LLVMTargetMachine {
-  MSP430Subtarget        Subtarget;
-  const TargetData       DataLayout;       // Calculates type size & alignment
-  MSP430InstrInfo        InstrInfo;
-  MSP430TargetLowering   TLInfo;
-
-  // MSP430 does not have any call stack frame, therefore not having
-  // any MSP430 specific FrameInfo class.
-  TargetFrameInfo       FrameInfo;
-
-public:
-  MSP430TargetMachine(const Target &T, const std::string &TT,
-                      const std::string &FS);
-
-  virtual const TargetFrameInfo *getFrameInfo() const { return &FrameInfo; }
-  virtual const MSP430InstrInfo *getInstrInfo() const  { return &InstrInfo; }
-  virtual const TargetData *getTargetData() const     { return &DataLayout;}
-  virtual const MSP430Subtarget *getSubtargetImpl() const { return &Subtarget; }
-
-  virtual const TargetRegisterInfo *getRegisterInfo() const {
-    return &InstrInfo.getRegisterInfo();
-  }
-
-  virtual MSP430TargetLowering *getTargetLowering() const {
-    return const_cast<MSP430TargetLowering*>(&TLInfo);
-  }
-
-  virtual bool addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-}; // MSP430TargetMachine.
-
-} // end namespace llvm
-
-#endif // LLVM_TARGET_MSP430_TARGETMACHINE_H
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/Makefile b/libclamav/c++/llvm/lib/Target/MSP430/Makefile
deleted file mode 100644
index 4b18bc9..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-##===- lib/Target/MSP430/Makefile --------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source 
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMMSP430CodeGen
-TARGET = MSP430
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = MSP430GenRegisterInfo.h.inc MSP430GenRegisterNames.inc \
-		MSP430GenRegisterInfo.inc MSP430GenInstrNames.inc \
-		MSP430GenInstrInfo.inc MSP430GenAsmWriter.inc \
-		MSP430GenDAGISel.inc MSP430GenCallingConv.inc \
-		MSP430GenSubtarget.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/README.txt b/libclamav/c++/llvm/lib/Target/MSP430/README.txt
deleted file mode 100644
index b14e93d..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/README.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-//===---------------------------------------------------------------------===//
-// MSP430 backend.
-//===---------------------------------------------------------------------===//
-
-DISCLAIMER: Thid backend should be considered as highly experimental. I never
-seen nor worked with this MCU, all information was gathered from datasheet
-only. The original intention of making this backend was to write documentation
-of form "How to write backend for dummies" :) Thes notes hopefully will be
-available pretty soon.
-
-Some things are incomplete / not implemented yet (this list surely is not
-complete as well):
-
-0. Implement asmprinting for variables :)
-
-1. Verify, how stuff is handling implicit zext with 8 bit operands (this might
-be modelled currently in improper way - should we need to mark the superreg as
-def for every 8 bit instruction?).
-
-2. Libcalls: multiplication, division, remainder. Note, that calling convention
-for libcalls is incomptible with calling convention of libcalls of msp430-gcc
-(these cannot be used though due to license restriction).
-
-3. Implement multiplication / division by constant (dag combiner hook?).
-
-4. Implement non-constant shifts.
-
-5. Implement varargs stuff.
-
-6. Verify and fix (if needed) how's stuff playing with i32 / i64.
-
-7. Implement floating point stuff (softfp?)
-
-8. Implement instruction encoding for (possible) direct code emission in the
-future.
-
-9. Since almost all instructions set flags - implement brcond / select in better
-way (currently they emit explicit comparison).
-
-10. Handle imm in comparisons in better way (see comment in MSP430InstrInfo.td)
-
-11. Implement hooks for better memory op folding, etc.
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 1d408d0..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMMSP430Info
-  MSP430TargetInfo.cpp
-  )
-
-add_dependencies(LLVMMSP430Info MSP430Table_gen)
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp b/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp
deleted file mode 100644
index f9ca5c4..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//===-- MSP430TargetInfo.cpp - MSP430 Target Implementation ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MSP430.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheMSP430Target;
-
-extern "C" void LLVMInitializeMSP430TargetInfo() { 
-  RegisterTarget<Triple::msp430> 
-    X(TheMSP430Target, "msp430", "MSP430 [experimental]");
-}
diff --git a/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/Makefile
deleted file mode 100644
index abb08f2..0000000
--- a/libclamav/c++/llvm/lib/Target/MSP430/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/MSP430/TargetInfo/Makefile ---------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMMSP430Info
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 56c68a6..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}/..
-  ${CMAKE_CURRENT_SOURCE_DIR}/..
-  )
-
-add_llvm_library(LLVMMipsAsmPrinter
-  MipsAsmPrinter.cpp
-  )
-add_dependencies(LLVMMipsAsmPrinter MipsCodeGenTable_gen)
\ No newline at end of file
diff --git a/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/Makefile
deleted file mode 100644
index a2fecf4..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- lib/Target/Mips/AsmPrinter/Makefile -----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../../..
-LIBRARYNAME = LLVMMipsAsmPrinter
-
-# Hack: we need to include 'main' Mips target directory to grab
-# private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
deleted file mode 100644
index 78f8424..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
+++ /dev/null
@@ -1,540 +0,0 @@
-//===-- MipsAsmPrinter.cpp - Mips LLVM assembly writer --------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to GAS-format MIPS assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "mips-asm-printer"
-
-#include "Mips.h"
-#include "MipsSubtarget.h"
-#include "MipsInstrInfo.h"
-#include "MipsTargetMachine.h"
-#include "MipsMachineFunction.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetLoweringObjectFile.h" 
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/MathExtras.h"
-#include <cctype>
-
-using namespace llvm;
-
-STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-namespace {
-  class VISIBILITY_HIDDEN MipsAsmPrinter : public AsmPrinter {
-    const MipsSubtarget *Subtarget;
-  public:
-    explicit MipsAsmPrinter(formatted_raw_ostream &O, TargetMachine &TM, 
-                            const MCAsmInfo *T, bool V)
-      : AsmPrinter(O, TM, T, V) {
-      Subtarget = &TM.getSubtarget<MipsSubtarget>();
-    }
-
-    virtual const char *getPassName() const {
-      return "Mips Assembly Printer";
-    }
-
-    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, 
-                         unsigned AsmVariant, const char *ExtraCode);
-    void printOperand(const MachineInstr *MI, int opNum);
-    void printUnsignedImm(const MachineInstr *MI, int opNum);
-    void printMemOperand(const MachineInstr *MI, int opNum, 
-                         const char *Modifier = 0);
-    void printFCCOperand(const MachineInstr *MI, int opNum, 
-                         const char *Modifier = 0);
-    void PrintGlobalVariable(const GlobalVariable *GVar);
-    void printSavedRegsBitmask(MachineFunction &MF);
-    void printHex32(unsigned int Value);
-
-    const char *emitCurrentABIString();
-    void emitFunctionStart(MachineFunction &MF);
-    void emitFunctionEnd(MachineFunction &MF);
-    void emitFrameDirective(MachineFunction &MF);
-
-    void printInstruction(const MachineInstr *MI);  // autogenerated.
-    bool runOnMachineFunction(MachineFunction &F);
-    bool doInitialization(Module &M);
-  };
-} // end of anonymous namespace
-
-#include "MipsGenAsmWriter.inc"
-
-//===----------------------------------------------------------------------===//
-//
-//  Mips Asm Directives
-//
-//  -- Frame directive "frame Stackpointer, Stacksize, RARegister"
-//  Describe the stack frame.
-//
-//  -- Mask directives "(f)mask  bitmask, offset" 
-//  Tells the assembler which registers are saved and where.
-//  bitmask - contain a little endian bitset indicating which registers are 
-//            saved on function prologue (e.g. with a 0x80000000 mask, the 
-//            assembler knows the register 31 (RA) is saved at prologue.
-//  offset  - the position before stack pointer subtraction indicating where 
-//            the first saved register on prologue is located. (e.g. with a
-//
-//  Consider the following function prologue:
-//
-//    .frame  $fp,48,$ra
-//    .mask   0xc0000000,-8
-//       addiu $sp, $sp, -48
-//       sw $ra, 40($sp)
-//       sw $fp, 36($sp)
-//
-//    With a 0xc0000000 mask, the assembler knows the register 31 (RA) and 
-//    30 (FP) are saved at prologue. As the save order on prologue is from 
-//    left to right, RA is saved first. A -8 offset means that after the 
-//    stack pointer subtration, the first register in the mask (RA) will be
-//    saved at address 48-8=40.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Mask directives
-//===----------------------------------------------------------------------===//
-
-// Create a bitmask with all callee saved registers for CPU or Floating Point 
-// registers. For CPU registers consider RA, GP and FP for saving if necessary.
-void MipsAsmPrinter::
-printSavedRegsBitmask(MachineFunction &MF)
-{
-  const TargetRegisterInfo &RI = *TM.getRegisterInfo();
-  MipsFunctionInfo *MipsFI = MF.getInfo<MipsFunctionInfo>();
-             
-  // CPU and FPU Saved Registers Bitmasks
-  unsigned int CPUBitmask = 0;
-  unsigned int FPUBitmask = 0;
-
-  // Set the CPU and FPU Bitmasks
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  const std::vector<CalleeSavedInfo> &CSI = MFI->getCalleeSavedInfo();
-  for (unsigned i = 0, e = CSI.size(); i != e; ++i) {
-    unsigned RegNum = MipsRegisterInfo::getRegisterNumbering(CSI[i].getReg());
-    if (CSI[i].getRegClass() == Mips::CPURegsRegisterClass)
-      CPUBitmask |= (1 << RegNum);
-    else
-      FPUBitmask |= (1 << RegNum);
-  }
-
-  // Return Address and Frame registers must also be set in CPUBitmask.
-  if (RI.hasFP(MF)) 
-    CPUBitmask |= (1 << MipsRegisterInfo::
-                getRegisterNumbering(RI.getFrameRegister(MF)));
-  
-  if (MF.getFrameInfo()->hasCalls()) 
-    CPUBitmask |= (1 << MipsRegisterInfo::
-                getRegisterNumbering(RI.getRARegister()));
-
-  // Print CPUBitmask
-  O << "\t.mask \t"; printHex32(CPUBitmask); O << ','
-    << MipsFI->getCPUTopSavedRegOff() << '\n';
-
-  // Print FPUBitmask
-  O << "\t.fmask\t"; printHex32(FPUBitmask); O << ","
-    << MipsFI->getFPUTopSavedRegOff() << '\n';
-}
-
-// Print a 32 bit hex number with all numbers.
-void MipsAsmPrinter::
-printHex32(unsigned int Value) 
-{
-  O << "0x";
-  for (int i = 7; i >= 0; i--) 
-    O << utohexstr( (Value & (0xF << (i*4))) >> (i*4) );
-}
-
-//===----------------------------------------------------------------------===//
-// Frame and Set directives
-//===----------------------------------------------------------------------===//
-
-/// Frame Directive
-void MipsAsmPrinter::emitFrameDirective(MachineFunction &MF) {
-  const TargetRegisterInfo &RI = *TM.getRegisterInfo();
-
-  unsigned stackReg  = RI.getFrameRegister(MF);
-  unsigned returnReg = RI.getRARegister();
-  unsigned stackSize = MF.getFrameInfo()->getStackSize();
-
-
-  O << "\t.frame\t" << '$' << LowercaseString(RI.get(stackReg).AsmName)
-                    << ',' << stackSize << ','
-                    << '$' << LowercaseString(RI.get(returnReg).AsmName)
-                    << '\n';
-}
-
-/// Emit Set directives.
-const char *MipsAsmPrinter::emitCurrentABIString() {  
-  switch(Subtarget->getTargetABI()) {
-    case MipsSubtarget::O32:  return "abi32";  
-    case MipsSubtarget::O64:  return "abiO64";
-    case MipsSubtarget::N32:  return "abiN32";
-    case MipsSubtarget::N64:  return "abi64";
-    case MipsSubtarget::EABI: return "eabi32"; // TODO: handle eabi64
-    default: break;
-  }
-
-  llvm_unreachable("Unknown Mips ABI");
-  return NULL;
-}  
-
-/// Emit the directives used by GAS on the start of functions
-void MipsAsmPrinter::emitFunctionStart(MachineFunction &MF) {
-  // Print out the label for the function.
-  const Function *F = MF.getFunction();
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-
-  // 2 bits aligned
-  EmitAlignment(MF.getAlignment(), F);
-
-  O << "\t.globl\t"  << CurrentFnName << '\n';
-  O << "\t.ent\t"    << CurrentFnName << '\n';
-
-  printVisibility(CurrentFnName, F->getVisibility());
-
-  if ((MAI->hasDotTypeDotSizeDirective()) && Subtarget->isLinux())
-    O << "\t.type\t"   << CurrentFnName << ", @function\n";
-
-  O << CurrentFnName << ":\n";
-
-  emitFrameDirective(MF);
-  printSavedRegsBitmask(MF);
-
-  O << '\n';
-}
-
-/// Emit the directives used by GAS on the end of functions
-void MipsAsmPrinter::emitFunctionEnd(MachineFunction &MF) {
-  // There are instruction for this macros, but they must
-  // always be at the function end, and we can't emit and
-  // break with BB logic. 
-  O << "\t.set\tmacro\n"; 
-  O << "\t.set\treorder\n"; 
-
-  O << "\t.end\t" << CurrentFnName << '\n';
-  if (MAI->hasDotTypeDotSizeDirective() && !Subtarget->isLinux())
-    O << "\t.size\t" << CurrentFnName << ", .-" << CurrentFnName << '\n';
-}
-
-/// runOnMachineFunction - This uses the printMachineInstruction()
-/// method to print assembly for each instruction.
-bool MipsAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
-  this->MF = &MF;
-
-  SetupMachineFunction(MF);
-
-  // Print out constants referenced by the function
-  EmitConstantPool(MF.getConstantPool());
-
-  // Print out jump tables referenced by the function
-  EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-
-  O << "\n\n";
-
-  // Emit the function start directives
-  emitFunctionStart(MF);
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-
-    // Print a label for the basic block.
-    if (I != MF.begin()) {
-      printBasicBlockLabel(I, true, true);
-      O << '\n';
-    }
-
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-      // Print the assembly for the instruction.
-      printInstruction(II);
-      ++EmittedInsts;
-    }
-
-    // Each Basic Block is separated by a newline
-    O << '\n';
-  }
-
-  // Emit function end directives
-  emitFunctionEnd(MF);
-
-  // We didn't modify anything.
-  return false;
-}
-
-// Print out an operand for an inline asm expression.
-bool MipsAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, 
-                                     unsigned AsmVariant,const char *ExtraCode){
-  // Does this asm operand have a single letter operand modifier?
-  if (ExtraCode && ExtraCode[0]) 
-    return true; // Unknown modifier.
-
-  printOperand(MI, OpNo);
-  return false;
-}
-
-void MipsAsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
-  const MachineOperand &MO = MI->getOperand(opNum);
-  const TargetRegisterInfo  &RI = *TM.getRegisterInfo();
-  bool closeP = false;
-  bool isPIC = (TM.getRelocationModel() == Reloc::PIC_);
-  bool isCodeLarge = (TM.getCodeModel() == CodeModel::Large);
-
-  // %hi and %lo used on mips gas to load global addresses on
-  // static code. %got is used to load global addresses when 
-  // using PIC_. %call16 is used to load direct call targets
-  // on PIC_ and small code size. %call_lo and %call_hi load 
-  // direct call targets on PIC_ and large code size.
-  if (MI->getOpcode() == Mips::LUi && !MO.isReg() && !MO.isImm()) {
-    if ((isPIC) && (isCodeLarge))
-      O << "%call_hi(";
-    else
-      O << "%hi(";
-    closeP = true;
-  } else if ((MI->getOpcode() == Mips::ADDiu) && !MO.isReg() && !MO.isImm()) {
-    const MachineOperand &firstMO = MI->getOperand(opNum-1);
-    if (firstMO.getReg() == Mips::GP)
-      O << "%gp_rel(";
-    else
-      O << "%lo(";
-    closeP = true;
-  } else if ((isPIC) && (MI->getOpcode() == Mips::LW) &&
-             (!MO.isReg()) && (!MO.isImm())) {
-    const MachineOperand &firstMO = MI->getOperand(opNum-1);
-    const MachineOperand &lastMO  = MI->getOperand(opNum+1);
-    if ((firstMO.isReg()) && (lastMO.isReg())) {
-      if ((firstMO.getReg() == Mips::T9) && (lastMO.getReg() == Mips::GP) 
-          && (!isCodeLarge))
-        O << "%call16(";
-      else if ((firstMO.getReg() != Mips::T9) && (lastMO.getReg() == Mips::GP))
-        O << "%got(";
-      else if ((firstMO.getReg() == Mips::T9) && (lastMO.getReg() != Mips::GP) 
-               && (isCodeLarge))
-        O << "%call_lo(";
-      closeP = true;
-    }
-  }
- 
-  switch (MO.getType()) 
-  {
-    case MachineOperand::MO_Register:
-      if (TargetRegisterInfo::isPhysicalRegister(MO.getReg()))
-        O << '$' << LowercaseString (RI.get(MO.getReg()).AsmName);
-      else
-        O << '$' << MO.getReg();
-      break;
-
-    case MachineOperand::MO_Immediate:
-      O << (short int)MO.getImm();
-      break;
-
-    case MachineOperand::MO_MachineBasicBlock:
-      printBasicBlockLabel(MO.getMBB());
-      return;
-
-    case MachineOperand::MO_GlobalAddress:
-      O << Mang->getMangledName(MO.getGlobal());
-      break;
-
-    case MachineOperand::MO_ExternalSymbol:
-      O << MO.getSymbolName();
-      break;
-
-    case MachineOperand::MO_JumpTableIndex:
-      O << MAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber()
-      << '_' << MO.getIndex();
-      break;
-
-    case MachineOperand::MO_ConstantPoolIndex:
-      O << MAI->getPrivateGlobalPrefix() << "CPI"
-        << getFunctionNumber() << "_" << MO.getIndex();
-      break;
-  
-    default:
-      llvm_unreachable("<unknown operand type>");
-  }
-
-  if (closeP) O << ")";
-}
-
-void MipsAsmPrinter::printUnsignedImm(const MachineInstr *MI, int opNum) {
-  const MachineOperand &MO = MI->getOperand(opNum);
-  if (MO.getType() == MachineOperand::MO_Immediate)
-    O << (unsigned short int)MO.getImm();
-  else 
-    printOperand(MI, opNum);
-}
-
-void MipsAsmPrinter::
-printMemOperand(const MachineInstr *MI, int opNum, const char *Modifier) {
-  // when using stack locations for not load/store instructions
-  // print the same way as all normal 3 operand instructions.
-  if (Modifier && !strcmp(Modifier, "stackloc")) {
-    printOperand(MI, opNum+1);
-    O << ", ";
-    printOperand(MI, opNum);
-    return;
-  }
-
-  // Load/Store memory operands -- imm($reg) 
-  // If PIC target the target is loaded as the 
-  // pattern lw $25,%call16($28)
-  printOperand(MI, opNum);
-  O << "(";
-  printOperand(MI, opNum+1);
-  O << ")";
-}
-
-void MipsAsmPrinter::
-printFCCOperand(const MachineInstr *MI, int opNum, const char *Modifier) {
-  const MachineOperand& MO = MI->getOperand(opNum);
-  O << Mips::MipsFCCToString((Mips::CondCode)MO.getImm()); 
-}
-
-bool MipsAsmPrinter::doInitialization(Module &M) {
-  // FIXME: Use SwitchSection.
-  
-  // Tell the assembler which ABI we are using
-  O << "\t.section .mdebug." << emitCurrentABIString() << '\n';
-
-  // TODO: handle O64 ABI
-  if (Subtarget->isABI_EABI())
-    O << "\t.section .gcc_compiled_long" << 
-      (Subtarget->isGP32bit() ? "32" : "64") << '\n';
-
-  // return to previous section
-  O << "\t.previous" << '\n'; 
-
-  return AsmPrinter::doInitialization(M);
-}
-
-void MipsAsmPrinter::PrintGlobalVariable(const GlobalVariable *GVar) {
-  const TargetData *TD = TM.getTargetData();
-
-  if (!GVar->hasInitializer())
-    return;   // External global require no code
-
-  // Check to see if this is a special global used by LLVM, if so, emit it.
-  if (EmitSpecialLLVMGlobal(GVar))
-    return;
-
-  O << "\n\n";
-  std::string name = Mang->getMangledName(GVar);
-  Constant *C = GVar->getInitializer();
-  const Type *CTy = C->getType();
-  unsigned Size = TD->getTypeAllocSize(CTy);
-  const ConstantArray *CVA = dyn_cast<ConstantArray>(C);
-  bool printSizeAndType = true;
-
-  // A data structure or array is aligned in memory to the largest
-  // alignment boundary required by any data type inside it (this matches
-  // the Preferred Type Alignment). For integral types, the alignment is
-  // the type size.
-  unsigned Align;
-  if (CTy->getTypeID() == Type::IntegerTyID ||
-      CTy->getTypeID() == Type::VoidTyID) {
-    assert(!(Size & (Size-1)) && "Alignment is not a power of two!");
-    Align = Log2_32(Size);
-  } else
-    Align = TD->getPreferredTypeAlignmentShift(CTy);
-
-  printVisibility(name, GVar->getVisibility());
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(GVar, Mang,
-                                                                  TM));
-
-  if (C->isNullValue() && !GVar->hasSection()) {
-    if (!GVar->isThreadLocal() &&
-        (GVar->hasLocalLinkage() || GVar->isWeakForLinker())) {
-      if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
-
-      if (GVar->hasLocalLinkage())
-        O << "\t.local\t" << name << '\n';
-
-      O << MAI->getCOMMDirective() << name << ',' << Size;
-      if (MAI->getCOMMDirectiveTakesAlignment())
-        O << ',' << (1 << Align);
-
-      O << '\n';
-      return;
-    }
-  }
-  switch (GVar->getLinkage()) {
-   case GlobalValue::LinkOnceAnyLinkage:
-   case GlobalValue::LinkOnceODRLinkage:
-   case GlobalValue::CommonLinkage:
-   case GlobalValue::WeakAnyLinkage:
-   case GlobalValue::WeakODRLinkage:
-    // FIXME: Verify correct for weak.
-    // Nonnull linkonce -> weak
-    O << "\t.weak " << name << '\n';
-    break;
-   case GlobalValue::AppendingLinkage:
-    // FIXME: appending linkage variables should go into a section of their name
-    // or something.  For now, just emit them as external.
-   case GlobalValue::ExternalLinkage:
-    // If external or appending, declare as a global symbol
-    O << MAI->getGlobalDirective() << name << '\n';
-    // Fall Through
-   case GlobalValue::PrivateLinkage:
-   case GlobalValue::LinkerPrivateLinkage:
-   case GlobalValue::InternalLinkage:
-    if (CVA && CVA->isCString())
-      printSizeAndType = false;
-    break;
-   case GlobalValue::GhostLinkage:
-    llvm_unreachable("Should not have any unmaterialized functions!");
-   case GlobalValue::DLLImportLinkage:
-    llvm_unreachable("DLLImport linkage is not supported by this target!");
-   case GlobalValue::DLLExportLinkage:
-    llvm_unreachable("DLLExport linkage is not supported by this target!");
-   default:
-    llvm_unreachable("Unknown linkage type!");
-  }
-
-  EmitAlignment(Align, GVar);
-
-  if (MAI->hasDotTypeDotSizeDirective() && printSizeAndType) {
-    O << "\t.type " << name << ", at object\n";
-    O << "\t.size " << name << ',' << Size << '\n';
-  }
-
-  O << name << ":\n";
-  EmitGlobalConstant(C);
-}
-
-
-// Force static initialization.
-extern "C" void LLVMInitializeMipsAsmPrinter() { 
-  RegisterAsmPrinter<MipsAsmPrinter> X(TheMipsTarget);
-  RegisterAsmPrinter<MipsAsmPrinter> Y(TheMipselTarget);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Mips/CMakeLists.txt
deleted file mode 100644
index 0e3bf5a..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS Mips.td)
-
-tablegen(MipsGenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(MipsGenRegisterNames.inc -gen-register-enums)
-tablegen(MipsGenRegisterInfo.inc -gen-register-desc)
-tablegen(MipsGenInstrNames.inc -gen-instr-enums)
-tablegen(MipsGenInstrInfo.inc -gen-instr-desc)
-tablegen(MipsGenAsmWriter.inc -gen-asm-writer)
-tablegen(MipsGenDAGISel.inc -gen-dag-isel)
-tablegen(MipsGenCallingConv.inc -gen-callingconv)
-tablegen(MipsGenSubtarget.inc -gen-subtarget)
-
-add_llvm_target(MipsCodeGen
-  MipsDelaySlotFiller.cpp
-  MipsInstrInfo.cpp
-  MipsISelDAGToDAG.cpp
-  MipsISelLowering.cpp
-  MipsMCAsmInfo.cpp
-  MipsRegisterInfo.cpp
-  MipsSubtarget.cpp
-  MipsTargetMachine.cpp
-  MipsTargetObjectFile.cpp
-  )
-
-target_link_libraries (LLVMMipsCodeGen LLVMSelectionDAG)
diff --git a/libclamav/c++/llvm/lib/Target/Mips/Makefile b/libclamav/c++/llvm/lib/Target/Mips/Makefile
deleted file mode 100644
index 0780345..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-##===- lib/Target/Mips/Makefile ----------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMMipsCodeGen
-TARGET = Mips
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = MipsGenRegisterInfo.h.inc MipsGenRegisterNames.inc \
-                MipsGenRegisterInfo.inc MipsGenInstrNames.inc \
-                MipsGenInstrInfo.inc MipsGenAsmWriter.inc \
-                MipsGenDAGISel.inc MipsGenCallingConv.inc \
-                MipsGenSubtarget.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/Mips/Mips.h b/libclamav/c++/llvm/lib/Target/Mips/Mips.h
deleted file mode 100644
index a9ab050..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/Mips.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- Mips.h - Top-level interface for Mips representation ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in 
-// the LLVM Mips back-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TARGET_MIPS_H
-#define TARGET_MIPS_H
-
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-  class MipsTargetMachine;
-  class FunctionPass;
-  class MachineCodeEmitter;
-  class formatted_raw_ostream;
-
-  FunctionPass *createMipsISelDag(MipsTargetMachine &TM);
-  FunctionPass *createMipsDelaySlotFillerPass(MipsTargetMachine &TM);
-
-  extern Target TheMipsTarget;
-  extern Target TheMipselTarget;
-
-} // end namespace llvm;
-
-// Defines symbolic names for Mips registers.  This defines a mapping from
-// register name to register number.
-#include "MipsGenRegisterNames.inc"
-
-// Defines symbolic names for the Mips instructions.
-#include "MipsGenInstrNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Mips/Mips.td b/libclamav/c++/llvm/lib/Target/Mips/Mips.td
deleted file mode 100644
index 79a78d8..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/Mips.td
+++ /dev/null
@@ -1,88 +0,0 @@
-//===- Mips.td - Describe the Mips Target Machine ---------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This is the top level entry point for the Mips target.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Target-independent interfaces
-//===----------------------------------------------------------------------===//
-
-include "llvm/Target/Target.td"
-
-//===----------------------------------------------------------------------===//
-// Register File, Calling Conv, Instruction Descriptions
-//===----------------------------------------------------------------------===//
-
-include "MipsRegisterInfo.td"
-include "MipsSchedule.td"
-include "MipsInstrInfo.td"
-include "MipsCallingConv.td"
-
-def MipsInstrInfo : InstrInfo {
-  let TSFlagsFields = [];
-  let TSFlagsShifts = [];
-}
-
-//===----------------------------------------------------------------------===//
-// Mips Subtarget features                                                    //
-//===----------------------------------------------------------------------===//
-
-def FeatureGP64Bit     : SubtargetFeature<"gp64", "IsGP64bit", "true",
-                                "General Purpose Registers are 64-bit wide.">;
-def FeatureFP64Bit     : SubtargetFeature<"fp64", "IsFP64bit", "true",
-                                "Support 64-bit FP registers.">;
-def FeatureSingleFloat : SubtargetFeature<"single-float", "IsSingleFloat",
-                                "true", "Only supports single precision float">;
-def FeatureMips1       : SubtargetFeature<"mips1", "MipsArchVersion", "Mips1",
-                                "Mips1 ISA Support">;
-def FeatureMips2       : SubtargetFeature<"mips2", "MipsArchVersion", "Mips2",
-                                "Mips2 ISA Support">;
-def FeatureO32         : SubtargetFeature<"o32", "MipsABI", "O32",
-                                "Enable o32 ABI">;
-def FeatureEABI        : SubtargetFeature<"eabi", "MipsABI", "EABI",
-                                "Enable eabi ABI">;
-def FeatureVFPU        : SubtargetFeature<"vfpu", "HasVFPU", 
-                                "true", "Enable vector FPU instructions.">;
-def FeatureSEInReg     : SubtargetFeature<"seinreg", "HasSEInReg", "true", 
-                                "Enable 'signext in register' instructions.">;
-def FeatureCondMov     : SubtargetFeature<"condmov", "HasCondMov", "true", 
-                                "Enable 'conditional move' instructions.">;
-def FeatureMulDivAdd   : SubtargetFeature<"muldivadd", "HasMulDivAdd", "true",
-                                "Enable 'multiply add/sub' instructions.">;
-def FeatureMinMax      : SubtargetFeature<"minmax", "HasMinMax", "true",
-                                "Enable 'min/max' instructions.">;
-def FeatureSwap        : SubtargetFeature<"swap", "HasSwap", "true",
-                                "Enable 'byte/half swap' instructions.">;
-def FeatureBitCount    : SubtargetFeature<"bitcount", "HasBitCount", "true",
-                                "Enable 'count leading bits' instructions.">;
-
-//===----------------------------------------------------------------------===//
-// Mips processors supported.
-//===----------------------------------------------------------------------===//
-
-class Proc<string Name, list<SubtargetFeature> Features>
- : Processor<Name, MipsGenericItineraries, Features>;
-
-def : Proc<"mips1", [FeatureMips1]>;
-def : Proc<"r2000", [FeatureMips1]>;
-def : Proc<"r3000", [FeatureMips1]>;
-
-def : Proc<"mips2", [FeatureMips2]>;
-def : Proc<"r6000", [FeatureMips2]>;
-
-// Allegrex is a 32bit subset of r4000, both for interger and fp registers, 
-// but much more similar to Mips2 than Mips3. It also contains some of 
-// Mips32/Mips32r2 instructions and a custom vector fpu processor. 
-def : Proc<"allegrex", [FeatureMips2, FeatureSingleFloat, FeatureEABI, 
-      FeatureVFPU, FeatureSEInReg, FeatureCondMov, FeatureMulDivAdd,
-      FeatureMinMax, FeatureSwap, FeatureBitCount]>;
-
-def Mips : Target {
-  let InstructionSet = MipsInstrInfo;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsCallingConv.td b/libclamav/c++/llvm/lib/Target/Mips/MipsCallingConv.td
deleted file mode 100644
index 01fe92e..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsCallingConv.td
+++ /dev/null
@@ -1,86 +0,0 @@
-//===- MipsCallingConv.td - Calling Conventions for Mips --------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-// This describes the calling conventions for Mips architecture.
-//===----------------------------------------------------------------------===//
-
-/// CCIfSubtarget - Match if the current subtarget has a feature F.
-class CCIfSubtarget<string F, CCAction A>: 
-  CCIf<!strconcat("State.getTarget().getSubtarget<MipsSubtarget>().", F), A>;
-
-//===----------------------------------------------------------------------===//
-// Mips O32 Calling Convention
-//===----------------------------------------------------------------------===//
-
-// Only the return rules are defined here for O32. The rules for argument 
-// passing are defined in MipsISelLowering.cpp.
-def RetCC_MipsO32 : CallingConv<[
-  // i32 are returned in registers V0, V1
-  CCIfType<[i32], CCAssignToReg<[V0, V1]>>,
-
-  // f32 are returned in registers F0, F1
-  CCIfType<[f32], CCAssignToReg<[F0, F1]>>,
-
-  // f64 are returned in register D0
-  CCIfType<[f64], CCIfSubtarget<"isNotSingleFloat()", CCAssignToReg<[D0]>>>
-]>;
-
-//===----------------------------------------------------------------------===//
-// Mips EABI Calling Convention
-//===----------------------------------------------------------------------===//
-
-def CC_MipsEABI : CallingConv<[
-  // Promote i8/i16 arguments to i32.
-  CCIfType<[i8, i16], CCPromoteToType<i32>>,
-
-  // Integer arguments are passed in integer registers.
-  CCIfType<[i32], CCAssignToReg<[A0, A1, A2, A3, T0, T1, T2, T3]>>,
-
-  // Single fp arguments are passed in pairs within 32-bit mode 
-  CCIfType<[f32], CCIfSubtarget<"isSingleFloat()", 
-                  CCAssignToReg<[F12, F13, F14, F15, F16, F17, F18, F19]>>>,
-
-  CCIfType<[f32], CCIfSubtarget<"isNotSingleFloat()", 
-                  CCAssignToReg<[F12, F14, F16, F18]>>>,
-
-  // The first 4 doubl fp arguments are passed in single fp registers.
-  CCIfType<[f64], CCIfSubtarget<"isNotSingleFloat()", 
-                  CCAssignToReg<[D6, D7, D8, D9]>>>,
-
-  // Integer values get stored in stack slots that are 4 bytes in
-  // size and 4-byte aligned.
-  CCIfType<[i32, f32], CCAssignToStack<4, 4>>,
-
-  // Integer values get stored in stack slots that are 8 bytes in
-  // size and 8-byte aligned.
-  CCIfType<[f64], CCIfSubtarget<"isNotSingleFloat()", CCAssignToStack<8, 8>>>
-]>;
-
-def RetCC_MipsEABI : CallingConv<[
-  // i32 are returned in registers V0, V1
-  CCIfType<[i32], CCAssignToReg<[V0, V1]>>,
-
-  // f32 are returned in registers F0, F1
-  CCIfType<[f32], CCAssignToReg<[F0, F1]>>,
-
-  // f64 are returned in register D0
-  CCIfType<[f64], CCIfSubtarget<"isNotSingleFloat()", CCAssignToReg<[D0]>>>
-]>;
-
-//===----------------------------------------------------------------------===//
-// Mips Calling Convention Dispatch
-//===----------------------------------------------------------------------===//
-
-def CC_Mips : CallingConv<[
-  CCIfSubtarget<"isABI_EABI()", CCDelegateTo<CC_MipsEABI>>
-]>;
-
-def RetCC_Mips : CallingConv<[
-  CCIfSubtarget<"isABI_EABI()", CCDelegateTo<RetCC_MipsEABI>>,
-  CCDelegateTo<RetCC_MipsO32>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
deleted file mode 100644
index a2b615d..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//===-- DelaySlotFiller.cpp - Mips delay slot filler ---------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Simple pass to fills delay slots with NOPs.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "delay-slot-filler"
-
-#include "Mips.h"
-#include "MipsTargetMachine.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/ADT/Statistic.h"
-
-using namespace llvm;
-
-STATISTIC(FilledSlots, "Number of delay slots filled");
-
-namespace {
-  struct Filler : public MachineFunctionPass {
-
-    TargetMachine &TM;
-    const TargetInstrInfo *TII;
-
-    static char ID;
-    Filler(TargetMachine &tm) 
-      : MachineFunctionPass(&ID), TM(tm), TII(tm.getInstrInfo()) { }
-
-    virtual const char *getPassName() const {
-      return "Mips Delay Slot Filler";
-    }
-
-    bool runOnMachineBasicBlock(MachineBasicBlock &MBB);
-    bool runOnMachineFunction(MachineFunction &F) {
-      bool Changed = false;
-      for (MachineFunction::iterator FI = F.begin(), FE = F.end();
-           FI != FE; ++FI)
-        Changed |= runOnMachineBasicBlock(*FI);
-      return Changed;
-    }
-
-  };
-  char Filler::ID = 0;
-} // end of anonymous namespace
-
-/// runOnMachineBasicBlock - Fill in delay slots for the given basic block.
-/// Currently, we fill delay slots with NOPs. We assume there is only one
-/// delay slot per delayed instruction.
-bool Filler::
-runOnMachineBasicBlock(MachineBasicBlock &MBB) 
-{
-  bool Changed = false;
-  for (MachineBasicBlock::iterator I = MBB.begin(); I != MBB.end(); ++I)
-    if (I->getDesc().hasDelaySlot()) {
-      MachineBasicBlock::iterator J = I;
-      ++J;
-      BuildMI(MBB, J, I->getDebugLoc(), TII->get(Mips::NOP));
-      ++FilledSlots;
-      Changed = true;
-    }
-  return Changed;
-}
-
-/// createMipsDelaySlotFillerPass - Returns a pass that fills in delay
-/// slots in Mips MachineFunctions
-FunctionPass *llvm::createMipsDelaySlotFillerPass(MipsTargetMachine &tm) {
-  return new Filler(tm);
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp
deleted file mode 100644
index ca72ff0..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp
+++ /dev/null
@@ -1,379 +0,0 @@
-//===-- MipsISelDAGToDAG.cpp - A dag to dag inst selector for Mips --------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the MIPS target.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "mips-isel"
-#include "Mips.h"
-#include "MipsISelLowering.h"
-#include "MipsMachineFunction.h"
-#include "MipsRegisterInfo.h"
-#include "MipsSubtarget.h"
-#include "MipsTargetMachine.h"
-#include "llvm/GlobalValue.h"
-#include "llvm/Instructions.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/Support/CFG.h"
-#include "llvm/Type.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// Instruction Selector Implementation
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// MipsDAGToDAGISel - MIPS specific code to select MIPS machine
-// instructions for SelectionDAG operations.
-//===----------------------------------------------------------------------===//
-namespace {
-
-class VISIBILITY_HIDDEN MipsDAGToDAGISel : public SelectionDAGISel {
-
-  /// TM - Keep a reference to MipsTargetMachine.
-  MipsTargetMachine &TM;
-
-  /// Subtarget - Keep a pointer to the MipsSubtarget around so that we can
-  /// make the right decision when generating code for different targets.
-  const MipsSubtarget &Subtarget;
- 
-public:
-  explicit MipsDAGToDAGISel(MipsTargetMachine &tm) :
-  SelectionDAGISel(tm),
-  TM(tm), Subtarget(tm.getSubtarget<MipsSubtarget>()) {}
-  
-  virtual void InstructionSelect();
-
-  // Pass Name
-  virtual const char *getPassName() const {
-    return "MIPS DAG->DAG Pattern Instruction Selection";
-  } 
-  
-
-private:  
-  // Include the pieces autogenerated from the target description.
-  #include "MipsGenDAGISel.inc"
-
-  /// getTargetMachine - Return a reference to the TargetMachine, casted
-  /// to the target-specific type.
-  const MipsTargetMachine &getTargetMachine() {
-    return static_cast<const MipsTargetMachine &>(TM);
-  }
-
-  /// getInstrInfo - Return a reference to the TargetInstrInfo, casted
-  /// to the target-specific type.
-  const MipsInstrInfo *getInstrInfo() {
-    return getTargetMachine().getInstrInfo();
-  }
-
-  SDNode *getGlobalBaseReg();
-  SDNode *Select(SDValue N);
-
-  // Complex Pattern.
-  bool SelectAddr(SDValue Op, SDValue N, 
-                  SDValue &Base, SDValue &Offset);
-
-
-  // getI32Imm - Return a target constant with the specified
-  // value, of type i32.
-  inline SDValue getI32Imm(unsigned Imm) {
-    return CurDAG->getTargetConstant(Imm, MVT::i32);
-  }
-
-
-  #ifndef NDEBUG
-  unsigned Indent;
-  #endif
-};
-
-}
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void MipsDAGToDAGISel::InstructionSelect() {
-  DEBUG(BB->dump());
-  // Codegen the basic block.
-  DEBUG(errs() << "===== Instruction selection begins:\n");
-  DEBUG(Indent = 0);
-
-  // Select target instructions for the DAG.
-  SelectRoot(*CurDAG);
-
-  DEBUG(errs() << "===== Instruction selection ends:\n");
-
-  CurDAG->RemoveDeadNodes();
-}
-
-/// getGlobalBaseReg - Output the instructions required to put the
-/// GOT address into a register.
-SDNode *MipsDAGToDAGISel::getGlobalBaseReg() {
-  unsigned GlobalBaseReg = getInstrInfo()->getGlobalBaseReg(MF);
-  return CurDAG->getRegister(GlobalBaseReg, TLI.getPointerTy()).getNode();
-}
-
-/// ComplexPattern used on MipsInstrInfo
-/// Used on Mips Load/Store instructions
-bool MipsDAGToDAGISel::
-SelectAddr(SDValue Op, SDValue Addr, SDValue &Offset, SDValue &Base)
-{
-  // if Address is FI, get the TargetFrameIndex.
-  if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(Addr)) {
-    Base   = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-    Offset = CurDAG->getTargetConstant(0, MVT::i32);
-    return true;
-  }
-    
-  // on PIC code Load GA
-  if (TM.getRelocationModel() == Reloc::PIC_) {
-    if ((Addr.getOpcode() == ISD::TargetGlobalAddress) || 
-        (Addr.getOpcode() == ISD::TargetJumpTable)){
-      Base   = CurDAG->getRegister(Mips::GP, MVT::i32);
-      Offset = Addr;
-      return true;
-    }
-  } else {
-    if ((Addr.getOpcode() == ISD::TargetExternalSymbol ||
-        Addr.getOpcode() == ISD::TargetGlobalAddress))
-      return false;
-  }    
-  
-  // Operand is a result from an ADD.
-  if (Addr.getOpcode() == ISD::ADD) {
-    if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) {
-      if (Predicate_immSExt16(CN)) {
-
-        // If the first operand is a FI, get the TargetFI Node
-        if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>
-                                    (Addr.getOperand(0))) {
-          Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-        } else {
-          Base = Addr.getOperand(0);
-        }
-
-        Offset = CurDAG->getTargetConstant(CN->getZExtValue(), MVT::i32);
-        return true;
-      }
-    }
-  }
-
-  Base   = Addr;
-  Offset = CurDAG->getTargetConstant(0, MVT::i32);
-  return true;
-}
-
-/// Select instructions not customized! Used for
-/// expanded, promoted and normal instructions
-SDNode* MipsDAGToDAGISel::Select(SDValue N) {
-  SDNode *Node = N.getNode();
-  unsigned Opcode = Node->getOpcode();
-  DebugLoc dl = Node->getDebugLoc();
-
-  // Dump information about the Node being selected
-  DEBUG(errs().indent(Indent) << "Selecting: ";
-        Node->dump(CurDAG);
-        errs() << "\n");
-  DEBUG(Indent += 2);
-
-  // If we have a custom node, we already have selected!
-  if (Node->isMachineOpcode()) {
-    DEBUG(errs().indent(Indent-2) << "== ";
-          Node->dump(CurDAG);
-          errs() << "\n");
-    DEBUG(Indent -= 2);
-    return NULL;
-  }
-
-  ///
-  // Instruction Selection not handled by the auto-generated 
-  // tablegen selection should be handled here.
-  /// 
-  switch(Opcode) {
-
-    default: break;
-
-    case ISD::SUBE: 
-    case ISD::ADDE: {
-      SDValue InFlag = Node->getOperand(2), CmpLHS;
-      unsigned Opc = InFlag.getOpcode(); Opc=Opc;
-      assert(((Opc == ISD::ADDC || Opc == ISD::ADDE) || 
-              (Opc == ISD::SUBC || Opc == ISD::SUBE)) &&  
-             "(ADD|SUB)E flag operand must come from (ADD|SUB)C/E insn");
-
-      unsigned MOp;
-      if (Opcode == ISD::ADDE) {
-        CmpLHS = InFlag.getValue(0);
-        MOp = Mips::ADDu;
-      } else { 
-        CmpLHS = InFlag.getOperand(0);
-        MOp = Mips::SUBu;
-      }
-
-      SDValue Ops[] = { CmpLHS, InFlag.getOperand(1) };
-
-      SDValue LHS = Node->getOperand(0);
-      SDValue RHS = Node->getOperand(1);
-
-      EVT VT = LHS.getValueType();
-      SDNode *Carry = CurDAG->getTargetNode(Mips::SLTu, dl, VT, Ops, 2);
-      SDNode *AddCarry = CurDAG->getTargetNode(Mips::ADDu, dl, VT, 
-                                               SDValue(Carry,0), RHS);
-
-      return CurDAG->SelectNodeTo(N.getNode(), MOp, VT, MVT::Flag,
-                                  LHS, SDValue(AddCarry,0));
-    }
-
-    /// Mul/Div with two results
-    case ISD::SDIVREM:
-    case ISD::UDIVREM:
-    case ISD::SMUL_LOHI:
-    case ISD::UMUL_LOHI: {
-      SDValue Op1 = Node->getOperand(0);
-      SDValue Op2 = Node->getOperand(1);
-
-      unsigned Op;
-      if (Opcode == ISD::UMUL_LOHI || Opcode == ISD::SMUL_LOHI)
-        Op = (Opcode == ISD::UMUL_LOHI ? Mips::MULTu : Mips::MULT);
-      else
-        Op = (Opcode == ISD::UDIVREM ? Mips::DIVu : Mips::DIV);
-
-      SDNode *Node = CurDAG->getTargetNode(Op, dl, MVT::Flag, Op1, Op2);
-
-      SDValue InFlag = SDValue(Node, 0);
-      SDNode *Lo = CurDAG->getTargetNode(Mips::MFLO, dl, MVT::i32, 
-                                         MVT::Flag, InFlag);
-      InFlag = SDValue(Lo,1);
-      SDNode *Hi = CurDAG->getTargetNode(Mips::MFHI, dl, MVT::i32, InFlag);
-
-      if (!N.getValue(0).use_empty()) 
-        ReplaceUses(N.getValue(0), SDValue(Lo,0));
-
-      if (!N.getValue(1).use_empty()) 
-        ReplaceUses(N.getValue(1), SDValue(Hi,0));
-
-      return NULL;
-    }
-
-    /// Special Muls
-    case ISD::MUL: 
-    case ISD::MULHS:
-    case ISD::MULHU: {
-      SDValue MulOp1 = Node->getOperand(0);
-      SDValue MulOp2 = Node->getOperand(1);
-
-      unsigned MulOp  = (Opcode == ISD::MULHU ? Mips::MULTu : Mips::MULT);
-      SDNode *MulNode = CurDAG->getTargetNode(MulOp, dl, 
-                                              MVT::Flag, MulOp1, MulOp2);
-
-      SDValue InFlag = SDValue(MulNode, 0);
-
-      if (MulOp == ISD::MUL)
-        return CurDAG->getTargetNode(Mips::MFLO, dl, MVT::i32, InFlag);
-      else
-        return CurDAG->getTargetNode(Mips::MFHI, dl, MVT::i32, InFlag);
-    }
-
-    /// Div/Rem operations
-    case ISD::SREM:
-    case ISD::UREM:
-    case ISD::SDIV: 
-    case ISD::UDIV: {
-      SDValue Op1 = Node->getOperand(0);
-      SDValue Op2 = Node->getOperand(1);
-
-      unsigned Op, MOp;
-      if (Opcode == ISD::SDIV || Opcode == ISD::UDIV) {
-        Op  = (Opcode == ISD::SDIV ? Mips::DIV : Mips::DIVu);
-        MOp = Mips::MFLO;
-      } else {
-        Op  = (Opcode == ISD::SREM ? Mips::DIV : Mips::DIVu);
-        MOp = Mips::MFHI;
-      }
-      SDNode *Node = CurDAG->getTargetNode(Op, dl, MVT::Flag, Op1, Op2);
-
-      SDValue InFlag = SDValue(Node, 0);
-      return CurDAG->getTargetNode(MOp, dl, MVT::i32, InFlag);
-    }
-
-    // Get target GOT address.
-    case ISD::GLOBAL_OFFSET_TABLE:
-      return getGlobalBaseReg();
-
-    /// Handle direct and indirect calls when using PIC. On PIC, when 
-    /// GOT is smaller than about 64k (small code) the GA target is 
-    /// loaded with only one instruction. Otherwise GA's target must 
-    /// be loaded with 3 instructions. 
-    case MipsISD::JmpLink: {
-      if (TM.getRelocationModel() == Reloc::PIC_) {
-        //bool isCodeLarge = (TM.getCodeModel() == CodeModel::Large);
-        SDValue Chain  = Node->getOperand(0);
-        SDValue Callee = Node->getOperand(1);
-        SDValue T9Reg = CurDAG->getRegister(Mips::T9, MVT::i32);
-        SDValue InFlag(0, 0);
-
-        if ( (isa<GlobalAddressSDNode>(Callee)) ||
-             (isa<ExternalSymbolSDNode>(Callee)) )
-        {
-          /// Direct call for global addresses and external symbols
-          SDValue GPReg = CurDAG->getRegister(Mips::GP, MVT::i32);
-
-          // Use load to get GOT target
-          SDValue Ops[] = { Callee, GPReg, Chain };
-          SDValue Load = SDValue(CurDAG->getTargetNode(Mips::LW, dl, MVT::i32, 
-                                     MVT::Other, Ops, 3), 0);
-          Chain = Load.getValue(1);
-
-          // Call target must be on T9
-          Chain = CurDAG->getCopyToReg(Chain, dl, T9Reg, Load, InFlag);
-        } else 
-          /// Indirect call
-          Chain = CurDAG->getCopyToReg(Chain, dl, T9Reg, Callee, InFlag);
-
-        // Emit Jump and Link Register
-        SDNode *ResNode = CurDAG->getTargetNode(Mips::JALR, dl, MVT::Other,
-                                  MVT::Flag, T9Reg, Chain);
-        Chain  = SDValue(ResNode, 0);
-        InFlag = SDValue(ResNode, 1);
-        ReplaceUses(SDValue(Node, 0), Chain);
-        ReplaceUses(SDValue(Node, 1), InFlag);
-        return ResNode;
-      } 
-    }
-  }
-
-  // Select the default instruction
-  SDNode *ResNode = SelectCode(N);
-
-  DEBUG(errs().indent(Indent-2) << "=> ");
-  if (ResNode == NULL || ResNode == N.getNode())
-    DEBUG(N.getNode()->dump(CurDAG));
-  else
-    DEBUG(ResNode->dump(CurDAG));
-  DEBUG(errs() << "\n");
-  DEBUG(Indent -= 2);
-
-  return ResNode;
-}
-
-/// createMipsISelDag - This pass converts a legalized DAG into a 
-/// MIPS-specific DAG, ready for instruction scheduling.
-FunctionPass *llvm::createMipsISelDag(MipsTargetMachine &TM) {
-  return new MipsDAGToDAGISel(TM);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.cpp
deleted file mode 100644
index 710bc94..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.cpp
+++ /dev/null
@@ -1,1210 +0,0 @@
-//===-- MipsISelLowering.cpp - Mips DAG Lowering Implementation -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that Mips uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "mips-lower"
-#include "MipsISelLowering.h"
-#include "MipsMachineFunction.h"
-#include "MipsTargetMachine.h"
-#include "MipsTargetObjectFile.h"
-#include "MipsSubtarget.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/GlobalVariable.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-using namespace llvm;
-
-const char *MipsTargetLowering::getTargetNodeName(unsigned Opcode) const {
-  switch (Opcode) {
-    case MipsISD::JmpLink    : return "MipsISD::JmpLink";
-    case MipsISD::Hi         : return "MipsISD::Hi";
-    case MipsISD::Lo         : return "MipsISD::Lo";
-    case MipsISD::GPRel      : return "MipsISD::GPRel";
-    case MipsISD::Ret        : return "MipsISD::Ret";
-    case MipsISD::CMov       : return "MipsISD::CMov";
-    case MipsISD::SelectCC   : return "MipsISD::SelectCC";
-    case MipsISD::FPSelectCC : return "MipsISD::FPSelectCC";
-    case MipsISD::FPBrcond   : return "MipsISD::FPBrcond";
-    case MipsISD::FPCmp      : return "MipsISD::FPCmp";
-    case MipsISD::FPRound    : return "MipsISD::FPRound";
-    default                  : return NULL;
-  }
-}
-
-MipsTargetLowering::
-MipsTargetLowering(MipsTargetMachine &TM)
-  : TargetLowering(TM, new MipsTargetObjectFile()) {
-  Subtarget = &TM.getSubtarget<MipsSubtarget>();
-
-  // Mips does not have i1 type, so use i32 for
-  // setcc operations results (slt, sgt, ...). 
-  setBooleanContents(ZeroOrOneBooleanContent);
-
-  // JumpTable targets must use GOT when using PIC_
-  setUsesGlobalOffsetTable(true);
-
-  // Set up the register classes
-  addRegisterClass(MVT::i32, Mips::CPURegsRegisterClass);
-  addRegisterClass(MVT::f32, Mips::FGR32RegisterClass);
-
-  // When dealing with single precision only, use libcalls
-  if (!Subtarget->isSingleFloat())
-    if (!Subtarget->isFP64bit())
-      addRegisterClass(MVT::f64, Mips::AFGR64RegisterClass);
-
-  // Legal fp constants
-  addLegalFPImmediate(APFloat(+0.0f));
-
-  // Load extented operations for i1 types must be promoted 
-  setLoadExtAction(ISD::EXTLOAD,  MVT::i1,  Promote);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i1,  Promote);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1,  Promote);
-
-  // MIPS doesn't have extending float->double load/store
-  setLoadExtAction(ISD::EXTLOAD, MVT::f32, Expand);
-  setTruncStoreAction(MVT::f64, MVT::f32, Expand);
-
-  // Used by legalize types to correctly generate the setcc result. 
-  // Without this, every float setcc comes with a AND/OR with the result, 
-  // we don't want this, since the fpcmp result goes to a flag register, 
-  // which is used implicitly by brcond and select operations.
-  AddPromotedToType(ISD::SETCC, MVT::i1, MVT::i32);
-
-  // Mips Custom Operations
-  setOperationAction(ISD::GlobalAddress,      MVT::i32,   Custom);
-  setOperationAction(ISD::GlobalTLSAddress,   MVT::i32,   Custom);
-  setOperationAction(ISD::JumpTable,          MVT::i32,   Custom);
-  setOperationAction(ISD::ConstantPool,       MVT::i32,   Custom);
-  setOperationAction(ISD::SELECT,             MVT::f32,   Custom);
-  setOperationAction(ISD::SELECT,             MVT::f64,   Custom);
-  setOperationAction(ISD::SELECT,             MVT::i32,   Custom);
-  setOperationAction(ISD::SETCC,              MVT::f32,   Custom);
-  setOperationAction(ISD::SETCC,              MVT::f64,   Custom);
-  setOperationAction(ISD::BRCOND,             MVT::Other, Custom);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32,   Custom);
-  setOperationAction(ISD::FP_TO_SINT,         MVT::i32,   Custom);
-
-  // We custom lower AND/OR to handle the case where the DAG contain 'ands/ors' 
-  // with operands comming from setcc fp comparions. This is necessary since 
-  // the result from these setcc are in a flag registers (FCR31).
-  setOperationAction(ISD::AND,              MVT::i32,   Custom);
-  setOperationAction(ISD::OR,               MVT::i32,   Custom);
-
-  // Operations not directly supported by Mips.
-  setOperationAction(ISD::BR_JT,             MVT::Other, Expand);
-  setOperationAction(ISD::BR_CC,             MVT::Other, Expand);
-  setOperationAction(ISD::SELECT_CC,         MVT::Other, Expand);
-  setOperationAction(ISD::UINT_TO_FP,        MVT::i32,   Expand);
-  setOperationAction(ISD::FP_TO_UINT,        MVT::i32,   Expand);
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1,    Expand);
-  setOperationAction(ISD::CTPOP,             MVT::i32,   Expand);
-  setOperationAction(ISD::CTTZ,              MVT::i32,   Expand);
-  setOperationAction(ISD::ROTL,              MVT::i32,   Expand);
-  setOperationAction(ISD::ROTR,              MVT::i32,   Expand);
-  setOperationAction(ISD::SHL_PARTS,         MVT::i32,   Expand);
-  setOperationAction(ISD::SRA_PARTS,         MVT::i32,   Expand);
-  setOperationAction(ISD::SRL_PARTS,         MVT::i32,   Expand);
-  setOperationAction(ISD::FCOPYSIGN,         MVT::f32,   Expand);
-  setOperationAction(ISD::FCOPYSIGN,         MVT::f64,   Expand);
-  setOperationAction(ISD::FSIN,              MVT::f32,   Expand);
-  setOperationAction(ISD::FCOS,              MVT::f32,   Expand);
-  setOperationAction(ISD::FPOWI,             MVT::f32,   Expand);
-  setOperationAction(ISD::FPOW,              MVT::f32,   Expand);
-  setOperationAction(ISD::FLOG,              MVT::f32,   Expand);
-  setOperationAction(ISD::FLOG2,             MVT::f32,   Expand);
-  setOperationAction(ISD::FLOG10,            MVT::f32,   Expand);
-  setOperationAction(ISD::FEXP,              MVT::f32,   Expand);
-
-  // We don't have line number support yet.
-  setOperationAction(ISD::DBG_STOPPOINT,     MVT::Other, Expand);
-  setOperationAction(ISD::DEBUG_LOC,         MVT::Other, Expand);
-  setOperationAction(ISD::DBG_LABEL,         MVT::Other, Expand);
-  setOperationAction(ISD::EH_LABEL,          MVT::Other, Expand);
-
-  // Use the default for now
-  setOperationAction(ISD::STACKSAVE,         MVT::Other, Expand);
-  setOperationAction(ISD::STACKRESTORE,      MVT::Other, Expand);
-  setOperationAction(ISD::MEMBARRIER,        MVT::Other, Expand);
-
-  if (Subtarget->isSingleFloat())
-    setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
-
-  if (!Subtarget->hasSEInReg()) {
-    setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8,  Expand);
-    setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
-  }
-
-  if (!Subtarget->hasBitCount())
-    setOperationAction(ISD::CTLZ, MVT::i32, Expand);
-
-  if (!Subtarget->hasSwap())
-    setOperationAction(ISD::BSWAP, MVT::i32, Expand);
-
-  setStackPointerRegisterToSaveRestore(Mips::SP);
-  computeRegisterProperties();
-}
-
-MVT::SimpleValueType MipsTargetLowering::getSetCCResultType(EVT VT) const {
-  return MVT::i32;
-}
-
-/// getFunctionAlignment - Return the Log2 alignment of this function.
-unsigned MipsTargetLowering::getFunctionAlignment(const Function *) const {
-  return 2;
-}
-
-SDValue MipsTargetLowering::
-LowerOperation(SDValue Op, SelectionDAG &DAG) 
-{
-  switch (Op.getOpcode()) 
-  {
-    case ISD::AND:                return LowerANDOR(Op, DAG);
-    case ISD::BRCOND:             return LowerBRCOND(Op, DAG);
-    case ISD::ConstantPool:       return LowerConstantPool(Op, DAG);
-    case ISD::DYNAMIC_STACKALLOC: return LowerDYNAMIC_STACKALLOC(Op, DAG);
-    case ISD::FP_TO_SINT:         return LowerFP_TO_SINT(Op, DAG);
-    case ISD::GlobalAddress:      return LowerGlobalAddress(Op, DAG);
-    case ISD::GlobalTLSAddress:   return LowerGlobalTLSAddress(Op, DAG);
-    case ISD::JumpTable:          return LowerJumpTable(Op, DAG);
-    case ISD::OR:                 return LowerANDOR(Op, DAG);
-    case ISD::SELECT:             return LowerSELECT(Op, DAG);
-    case ISD::SETCC:              return LowerSETCC(Op, DAG);
-  }
-  return SDValue();
-}
-
-//===----------------------------------------------------------------------===//
-//  Lower helper functions
-//===----------------------------------------------------------------------===//
-
-// AddLiveIn - This helper function adds the specified physical register to the
-// MachineFunction as a live in value.  It also creates a corresponding
-// virtual register for it.
-static unsigned
-AddLiveIn(MachineFunction &MF, unsigned PReg, TargetRegisterClass *RC) 
-{
-  assert(RC->contains(PReg) && "Not the correct regclass!");
-  unsigned VReg = MF.getRegInfo().createVirtualRegister(RC);
-  MF.getRegInfo().addLiveIn(PReg, VReg);
-  return VReg;
-}
-
-// Get fp branch code (not opcode) from condition code.
-static Mips::FPBranchCode GetFPBranchCodeFromCond(Mips::CondCode CC) {
-  if (CC >= Mips::FCOND_F && CC <= Mips::FCOND_NGT)
-    return Mips::BRANCH_T;
-
-  if (CC >= Mips::FCOND_T && CC <= Mips::FCOND_GT)
-    return Mips::BRANCH_F;
-
-  return Mips::BRANCH_INVALID;
-}
-  
-static unsigned FPBranchCodeToOpc(Mips::FPBranchCode BC) {
-  switch(BC) {
-    default:
-      llvm_unreachable("Unknown branch code");
-    case Mips::BRANCH_T  : return Mips::BC1T;
-    case Mips::BRANCH_F  : return Mips::BC1F;
-    case Mips::BRANCH_TL : return Mips::BC1TL;
-    case Mips::BRANCH_FL : return Mips::BC1FL;
-  }
-}
-
-static Mips::CondCode FPCondCCodeToFCC(ISD::CondCode CC) {
-  switch (CC) {
-  default: llvm_unreachable("Unknown fp condition code!");
-  case ISD::SETEQ:  
-  case ISD::SETOEQ: return Mips::FCOND_EQ;
-  case ISD::SETUNE: return Mips::FCOND_OGL;
-  case ISD::SETLT:  
-  case ISD::SETOLT: return Mips::FCOND_OLT;
-  case ISD::SETGT:  
-  case ISD::SETOGT: return Mips::FCOND_OGT;
-  case ISD::SETLE:  
-  case ISD::SETOLE: return Mips::FCOND_OLE; 
-  case ISD::SETGE:
-  case ISD::SETOGE: return Mips::FCOND_OGE;
-  case ISD::SETULT: return Mips::FCOND_ULT;
-  case ISD::SETULE: return Mips::FCOND_ULE; 
-  case ISD::SETUGT: return Mips::FCOND_UGT;
-  case ISD::SETUGE: return Mips::FCOND_UGE;
-  case ISD::SETUO:  return Mips::FCOND_UN; 
-  case ISD::SETO:   return Mips::FCOND_OR;
-  case ISD::SETNE:  
-  case ISD::SETONE: return Mips::FCOND_NEQ;
-  case ISD::SETUEQ: return Mips::FCOND_UEQ;
-  }
-}
-
-MachineBasicBlock *
-MipsTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                MachineBasicBlock *BB) const {
-  const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
-  bool isFPCmp = false;
-  DebugLoc dl = MI->getDebugLoc();
-
-  switch (MI->getOpcode()) {
-  default: assert(false && "Unexpected instr type to insert");
-  case Mips::Select_FCC:
-  case Mips::Select_FCC_S32:
-  case Mips::Select_FCC_D32:
-    isFPCmp = true; // FALL THROUGH
-  case Mips::Select_CC:
-  case Mips::Select_CC_S32:
-  case Mips::Select_CC_D32: {
-    // To "insert" a SELECT_CC instruction, we actually have to insert the
-    // diamond control-flow pattern.  The incoming instruction knows the
-    // destination vreg to set, the condition code register to branch on, the
-    // true/false values to select between, and a branch opcode to use.
-    const BasicBlock *LLVM_BB = BB->getBasicBlock();
-    MachineFunction::iterator It = BB;
-    ++It;
-
-    //  thisMBB:
-    //  ...
-    //   TrueVal = ...
-    //   setcc r1, r2, r3
-    //   bNE   r1, r0, copy1MBB
-    //   fallthrough --> copy0MBB
-    MachineBasicBlock *thisMBB  = BB;
-    MachineFunction *F = BB->getParent();
-    MachineBasicBlock *copy0MBB = F->CreateMachineBasicBlock(LLVM_BB);
-    MachineBasicBlock *sinkMBB  = F->CreateMachineBasicBlock(LLVM_BB);
-
-    // Emit the right instruction according to the type of the operands compared
-    if (isFPCmp) {
-      // Find the condiction code present in the setcc operation.
-      Mips::CondCode CC = (Mips::CondCode)MI->getOperand(4).getImm();
-      // Get the branch opcode from the branch code.
-      unsigned Opc = FPBranchCodeToOpc(GetFPBranchCodeFromCond(CC));
-      BuildMI(BB, dl, TII->get(Opc)).addMBB(sinkMBB);
-    } else
-      BuildMI(BB, dl, TII->get(Mips::BNE)).addReg(MI->getOperand(1).getReg())
-        .addReg(Mips::ZERO).addMBB(sinkMBB);
-
-    F->insert(It, copy0MBB);
-    F->insert(It, sinkMBB);
-    // Update machine-CFG edges by first adding all successors of the current
-    // block to the new block which will contain the Phi node for the select.
-    for(MachineBasicBlock::succ_iterator i = BB->succ_begin(),
-        e = BB->succ_end(); i != e; ++i)
-      sinkMBB->addSuccessor(*i);
-    // Next, remove all successors of the current block, and add the true
-    // and fallthrough blocks as its successors.
-    while(!BB->succ_empty())
-      BB->removeSuccessor(BB->succ_begin());
-    BB->addSuccessor(copy0MBB);
-    BB->addSuccessor(sinkMBB);
-
-    //  copy0MBB:
-    //   %FalseValue = ...
-    //   # fallthrough to sinkMBB
-    BB = copy0MBB;
-
-    // Update machine-CFG edges
-    BB->addSuccessor(sinkMBB);
-
-    //  sinkMBB:
-    //   %Result = phi [ %FalseValue, copy0MBB ], [ %TrueValue, thisMBB ]
-    //  ...
-    BB = sinkMBB;
-    BuildMI(BB, dl, TII->get(Mips::PHI), MI->getOperand(0).getReg())
-      .addReg(MI->getOperand(2).getReg()).addMBB(copy0MBB)
-      .addReg(MI->getOperand(3).getReg()).addMBB(thisMBB);
-
-    F->DeleteMachineInstr(MI);   // The pseudo instruction is gone now.
-    return BB;
-  }
-  }
-}
-
-//===----------------------------------------------------------------------===//
-//  Misc Lower Operation implementation
-//===----------------------------------------------------------------------===//
-
-SDValue MipsTargetLowering::
-LowerFP_TO_SINT(SDValue Op, SelectionDAG &DAG)
-{
-  if (!Subtarget->isMips1())
-    return Op;
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  unsigned CCReg = AddLiveIn(MF, Mips::FCR31, Mips::CCRRegisterClass);
-
-  SDValue Chain = DAG.getEntryNode();
-  DebugLoc dl = Op.getDebugLoc();
-  SDValue Src = Op.getOperand(0);
-
-  // Set the condition register
-  SDValue CondReg = DAG.getCopyFromReg(Chain, dl, CCReg, MVT::i32);
-  CondReg = DAG.getCopyToReg(Chain, dl, Mips::AT, CondReg);
-  CondReg = DAG.getCopyFromReg(CondReg, dl, Mips::AT, MVT::i32);
-
-  SDValue Cst = DAG.getConstant(3, MVT::i32);
-  SDValue Or = DAG.getNode(ISD::OR, dl, MVT::i32, CondReg, Cst);
-  Cst = DAG.getConstant(2, MVT::i32);
-  SDValue Xor = DAG.getNode(ISD::XOR, dl, MVT::i32, Or, Cst);
-
-  SDValue InFlag(0, 0);
-  CondReg = DAG.getCopyToReg(Chain, dl, Mips::FCR31, Xor, InFlag);
-
-  // Emit the round instruction and bit convert to integer
-  SDValue Trunc = DAG.getNode(MipsISD::FPRound, dl, MVT::f32,
-                              Src, CondReg.getValue(1));
-  SDValue BitCvt = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::i32, Trunc);
-  return BitCvt;
-}
-
-SDValue MipsTargetLowering::
-LowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG)
-{
-  SDValue Chain = Op.getOperand(0);
-  SDValue Size = Op.getOperand(1);
-  DebugLoc dl = Op.getDebugLoc();
-
-  // Get a reference from Mips stack pointer
-  SDValue StackPointer = DAG.getCopyFromReg(Chain, dl, Mips::SP, MVT::i32);
-
-  // Subtract the dynamic size from the actual stack size to
-  // obtain the new stack size.
-  SDValue Sub = DAG.getNode(ISD::SUB, dl, MVT::i32, StackPointer, Size);
-
-  // The Sub result contains the new stack start address, so it 
-  // must be placed in the stack pointer register.
-  Chain = DAG.getCopyToReg(StackPointer.getValue(1), dl, Mips::SP, Sub);
-  
-  // This node always has two return values: a new stack pointer 
-  // value and a chain
-  SDValue Ops[2] = { Sub, Chain };
-  return DAG.getMergeValues(Ops, 2, dl);
-}
-
-SDValue MipsTargetLowering::
-LowerANDOR(SDValue Op, SelectionDAG &DAG)
-{
-  SDValue LHS   = Op.getOperand(0);
-  SDValue RHS   = Op.getOperand(1);
-  DebugLoc dl   = Op.getDebugLoc();
-
-  if (LHS.getOpcode() != MipsISD::FPCmp || RHS.getOpcode() != MipsISD::FPCmp)
-    return Op;
-
-  SDValue True  = DAG.getConstant(1, MVT::i32);
-  SDValue False = DAG.getConstant(0, MVT::i32);
-
-  SDValue LSEL = DAG.getNode(MipsISD::FPSelectCC, dl, True.getValueType(), 
-                             LHS, True, False, LHS.getOperand(2));
-  SDValue RSEL = DAG.getNode(MipsISD::FPSelectCC, dl, True.getValueType(), 
-                             RHS, True, False, RHS.getOperand(2));
-
-  return DAG.getNode(Op.getOpcode(), dl, MVT::i32, LSEL, RSEL);
-}
-
-SDValue MipsTargetLowering::
-LowerBRCOND(SDValue Op, SelectionDAG &DAG)
-{
-  // The first operand is the chain, the second is the condition, the third is 
-  // the block to branch to if the condition is true.
-  SDValue Chain = Op.getOperand(0);
-  SDValue Dest = Op.getOperand(2);
-  DebugLoc dl = Op.getDebugLoc();
-
-  if (Op.getOperand(1).getOpcode() != MipsISD::FPCmp)
-    return Op;
-  
-  SDValue CondRes = Op.getOperand(1);
-  SDValue CCNode  = CondRes.getOperand(2);
-  Mips::CondCode CC =
-    (Mips::CondCode)cast<ConstantSDNode>(CCNode)->getZExtValue();
-  SDValue BrCode = DAG.getConstant(GetFPBranchCodeFromCond(CC), MVT::i32); 
-
-  return DAG.getNode(MipsISD::FPBrcond, dl, Op.getValueType(), Chain, BrCode, 
-             Dest, CondRes);
-}
-
-SDValue MipsTargetLowering::
-LowerSETCC(SDValue Op, SelectionDAG &DAG)
-{
-  // The operands to this are the left and right operands to compare (ops #0, 
-  // and #1) and the condition code to compare them with (op #2) as a 
-  // CondCodeSDNode.
-  SDValue LHS = Op.getOperand(0); 
-  SDValue RHS = Op.getOperand(1);
-  DebugLoc dl = Op.getDebugLoc();
-
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(2))->get();
-  
-  return DAG.getNode(MipsISD::FPCmp, dl, Op.getValueType(), LHS, RHS, 
-                 DAG.getConstant(FPCondCCodeToFCC(CC), MVT::i32));
-}
-
-SDValue MipsTargetLowering::
-LowerSELECT(SDValue Op, SelectionDAG &DAG) 
-{
-  SDValue Cond  = Op.getOperand(0); 
-  SDValue True  = Op.getOperand(1);
-  SDValue False = Op.getOperand(2);
-  DebugLoc dl = Op.getDebugLoc();
-
-  // if the incomming condition comes from a integer compare, the select 
-  // operation must be SelectCC or a conditional move if the subtarget 
-  // supports it.
-  if (Cond.getOpcode() != MipsISD::FPCmp) {
-    if (Subtarget->hasCondMov() && !True.getValueType().isFloatingPoint())
-      return Op;
-    return DAG.getNode(MipsISD::SelectCC, dl, True.getValueType(), 
-                       Cond, True, False);
-  }
-
-  // if the incomming condition comes from fpcmp, the select
-  // operation must use FPSelectCC.
-  SDValue CCNode = Cond.getOperand(2);
-  return DAG.getNode(MipsISD::FPSelectCC, dl, True.getValueType(), 
-                     Cond, True, False, CCNode);
-}
-
-SDValue MipsTargetLowering::LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) {
-  // FIXME there isn't actually debug info here
-  DebugLoc dl = Op.getDebugLoc();
-  GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
-  SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
-
-  if (getTargetMachine().getRelocationModel() != Reloc::PIC_) {
-    SDVTList VTs = DAG.getVTList(MVT::i32);
-    
-    MipsTargetObjectFile &TLOF = (MipsTargetObjectFile&)getObjFileLowering();
-    
-    // %gp_rel relocation
-    if (TLOF.IsGlobalInSmallSection(GV, getTargetMachine())) { 
-      SDValue GPRelNode = DAG.getNode(MipsISD::GPRel, dl, VTs, &GA, 1);
-      SDValue GOT = DAG.getGLOBAL_OFFSET_TABLE(MVT::i32);
-      return DAG.getNode(ISD::ADD, dl, MVT::i32, GOT, GPRelNode); 
-    }
-    // %hi/%lo relocation
-    SDValue HiPart = DAG.getNode(MipsISD::Hi, dl, VTs, &GA, 1);
-    SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, GA);
-    return DAG.getNode(ISD::ADD, dl, MVT::i32, HiPart, Lo);
-
-  } else { // Abicall relocations, TODO: make this cleaner.
-    SDValue ResNode = DAG.getLoad(MVT::i32, dl, 
-                                  DAG.getEntryNode(), GA, NULL, 0);
-    // On functions and global targets not internal linked only
-    // a load from got/GP is necessary for PIC to work.
-    if (!GV->hasLocalLinkage() || isa<Function>(GV))
-      return ResNode;
-    SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, GA);
-    return DAG.getNode(ISD::ADD, dl, MVT::i32, ResNode, Lo);
-  }
-
-  llvm_unreachable("Dont know how to handle GlobalAddress");
-  return SDValue(0,0);
-}
-
-SDValue MipsTargetLowering::
-LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG)
-{
-  llvm_unreachable("TLS not implemented for MIPS.");
-  return SDValue(); // Not reached
-}
-
-SDValue MipsTargetLowering::
-LowerJumpTable(SDValue Op, SelectionDAG &DAG) 
-{
-  SDValue ResNode;
-  SDValue HiPart; 
-  // FIXME there isn't actually debug info here
-  DebugLoc dl = Op.getDebugLoc();
-
-  EVT PtrVT = Op.getValueType();
-  JumpTableSDNode *JT  = cast<JumpTableSDNode>(Op);
-  SDValue JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT);
-
-  if (getTargetMachine().getRelocationModel() != Reloc::PIC_) {
-    SDVTList VTs = DAG.getVTList(MVT::i32);
-    SDValue Ops[] = { JTI };
-    HiPart = DAG.getNode(MipsISD::Hi, dl, VTs, Ops, 1);
-  } else // Emit Load from Global Pointer
-    HiPart = DAG.getLoad(MVT::i32, dl, DAG.getEntryNode(), JTI, NULL, 0);
-
-  SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, JTI);
-  ResNode = DAG.getNode(ISD::ADD, dl, MVT::i32, HiPart, Lo);
-
-  return ResNode;
-}
-
-SDValue MipsTargetLowering::
-LowerConstantPool(SDValue Op, SelectionDAG &DAG) 
-{
-  SDValue ResNode;
-  ConstantPoolSDNode *N = cast<ConstantPoolSDNode>(Op);
-  Constant *C = N->getConstVal();
-  SDValue CP = DAG.getTargetConstantPool(C, MVT::i32, N->getAlignment());
-  // FIXME there isn't actually debug info here
-  DebugLoc dl = Op.getDebugLoc();
-
-  // gp_rel relocation
-  // FIXME: we should reference the constant pool using small data sections, 
-  // but the asm printer currently doens't support this feature without
-  // hacking it. This feature should come soon so we can uncomment the 
-  // stuff below.
-  //if (IsInSmallSection(C->getType())) {
-  //  SDValue GPRelNode = DAG.getNode(MipsISD::GPRel, MVT::i32, CP);
-  //  SDValue GOT = DAG.getGLOBAL_OFFSET_TABLE(MVT::i32);
-  //  ResNode = DAG.getNode(ISD::ADD, MVT::i32, GOT, GPRelNode); 
-  //} else { // %hi/%lo relocation
-    SDValue HiPart = DAG.getNode(MipsISD::Hi, dl, MVT::i32, CP);
-    SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, CP);
-    ResNode = DAG.getNode(ISD::ADD, dl, MVT::i32, HiPart, Lo);
-  //}
-
-  return ResNode;
-}
-
-//===----------------------------------------------------------------------===//
-//                      Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-#include "MipsGenCallingConv.inc"
-
-//===----------------------------------------------------------------------===//
-// TODO: Implement a generic logic using tblgen that can support this. 
-// Mips O32 ABI rules:
-// ---
-// i32 - Passed in A0, A1, A2, A3 and stack
-// f32 - Only passed in f32 registers if no int reg has been used yet to hold 
-//       an argument. Otherwise, passed in A1, A2, A3 and stack.
-// f64 - Only passed in two aliased f32 registers if no int reg has been used 
-//       yet to hold an argument. Otherwise, use A2, A3 and stack. If A1 is 
-//       not used, it must be shadowed. If only A3 is avaiable, shadow it and
-//       go to stack.
-//===----------------------------------------------------------------------===//
-
-static bool CC_MipsO32(unsigned ValNo, EVT ValVT,
-                       EVT LocVT, CCValAssign::LocInfo LocInfo,
-                       ISD::ArgFlagsTy ArgFlags, CCState &State) {
-
-  static const unsigned IntRegsSize=4, FloatRegsSize=2; 
-
-  static const unsigned IntRegs[] = {
-      Mips::A0, Mips::A1, Mips::A2, Mips::A3
-  };
-  static const unsigned F32Regs[] = {
-      Mips::F12, Mips::F14
-  };
-  static const unsigned F64Regs[] = {
-      Mips::D6, Mips::D7
-  };
-
-  unsigned Reg=0;
-  unsigned UnallocIntReg = State.getFirstUnallocated(IntRegs, IntRegsSize);
-  bool IntRegUsed = (IntRegs[UnallocIntReg] != (unsigned (Mips::A0)));
-
-  // Promote i8 and i16
-  if (LocVT == MVT::i8 || LocVT == MVT::i16) {
-    LocVT = MVT::i32;
-    if (ArgFlags.isSExt())
-      LocInfo = CCValAssign::SExt;
-    else if (ArgFlags.isZExt())
-      LocInfo = CCValAssign::ZExt;
-    else
-      LocInfo = CCValAssign::AExt;
-  }
-
-  if (ValVT == MVT::i32 || (ValVT == MVT::f32 && IntRegUsed)) {
-    Reg = State.AllocateReg(IntRegs, IntRegsSize);
-    IntRegUsed = true;
-    LocVT = MVT::i32;
-  }
-
-  if (ValVT.isFloatingPoint() && !IntRegUsed) {
-    if (ValVT == MVT::f32)
-      Reg = State.AllocateReg(F32Regs, FloatRegsSize);
-    else
-      Reg = State.AllocateReg(F64Regs, FloatRegsSize);
-  }
-
-  if (ValVT == MVT::f64 && IntRegUsed) {
-    if (UnallocIntReg != IntRegsSize) {
-      // If we hit register A3 as the first not allocated, we must
-      // mark it as allocated (shadow) and use the stack instead.
-      if (IntRegs[UnallocIntReg] != (unsigned (Mips::A3)))
-        Reg = Mips::A2;
-      for (;UnallocIntReg < IntRegsSize; ++UnallocIntReg)
-        State.AllocateReg(UnallocIntReg);
-    } 
-    LocVT = MVT::i32;
-  }
-
-  if (!Reg) {
-    unsigned SizeInBytes = ValVT.getSizeInBits() >> 3;
-    unsigned Offset = State.AllocateStack(SizeInBytes, SizeInBytes);
-    State.addLoc(CCValAssign::getMem(ValNo, ValVT, Offset, LocVT, LocInfo));
-  } else
-    State.addLoc(CCValAssign::getReg(ValNo, ValVT, Reg, LocVT, LocInfo));
-
-  return false; // CC must always match
-}
-
-//===----------------------------------------------------------------------===//
-//                  Call Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-/// LowerCall - functions arguments are copied from virtual regs to
-/// (physical regs)/(stack frame), CALLSEQ_START and CALLSEQ_END are emitted.
-/// TODO: isVarArg, isTailCall.
-SDValue
-MipsTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                              unsigned CallConv, bool isVarArg,
-                              bool isTailCall,
-                              const SmallVectorImpl<ISD::OutputArg> &Outs,
-                              const SmallVectorImpl<ISD::InputArg> &Ins,
-                              DebugLoc dl, SelectionDAG &DAG,
-                              SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-
-  // Analyze operands of the call, assigning locations to each operand.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(), ArgLocs,
-                 *DAG.getContext());
-
-  // To meet O32 ABI, Mips must always allocate 16 bytes on
-  // the stack (even if less than 4 are used as arguments)
-  if (Subtarget->isABI_O32()) {
-    int VTsize = EVT(MVT::i32).getSizeInBits()/8;
-    MFI->CreateFixedObject(VTsize, (VTsize*3));
-    CCInfo.AnalyzeCallOperands(Outs, CC_MipsO32);
-  } else
-    CCInfo.AnalyzeCallOperands(Outs, CC_Mips);
-  
-  // Get a count of how many bytes are to be pushed on the stack.
-  unsigned NumBytes = CCInfo.getNextStackOffset();
-  Chain = DAG.getCALLSEQ_START(Chain, DAG.getIntPtrConstant(NumBytes, true));
-
-  // With EABI is it possible to have 16 args on registers.
-  SmallVector<std::pair<unsigned, SDValue>, 16> RegsToPass;
-  SmallVector<SDValue, 8> MemOpChains;
-
-  // First/LastArgStackLoc contains the first/last 
-  // "at stack" argument location.
-  int LastArgStackLoc = 0;
-  unsigned FirstStackArgLoc = (Subtarget->isABI_EABI() ? 0 : 16);
-
-  // Walk the register/memloc assignments, inserting copies/loads.
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    SDValue Arg = Outs[i].Val;
-    CCValAssign &VA = ArgLocs[i];
-
-    // Promote the value if needed.
-    switch (VA.getLocInfo()) {
-    default: llvm_unreachable("Unknown loc info!");
-    case CCValAssign::Full: 
-      if (Subtarget->isABI_O32() && VA.isRegLoc()) {
-        if (VA.getValVT() == MVT::f32 && VA.getLocVT() == MVT::i32)
-          Arg = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::i32, Arg);
-        if (VA.getValVT() == MVT::f64 && VA.getLocVT() == MVT::i32) {
-          Arg = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::i64, Arg);
-          SDValue Lo = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32, Arg,
-                                   DAG.getConstant(0, getPointerTy()));
-          SDValue Hi = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32, Arg,
-                                   DAG.getConstant(1, getPointerTy()));
-          RegsToPass.push_back(std::make_pair(VA.getLocReg(), Lo));
-          RegsToPass.push_back(std::make_pair(VA.getLocReg()+1, Hi));
-          continue;
-        }  
-      }
-      break;
-    case CCValAssign::SExt:
-      Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg);
-      break;
-    case CCValAssign::ZExt:
-      Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg);
-      break;
-    case CCValAssign::AExt:
-      Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg);
-      break;
-    }
-    
-    // Arguments that can be passed on register must be kept at 
-    // RegsToPass vector
-    if (VA.isRegLoc()) {
-      RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-      continue;
-    }
-    
-    // Register can't get to this point...
-    assert(VA.isMemLoc());
-    
-    // Create the frame index object for this incoming parameter
-    // This guarantees that when allocating Local Area the firsts
-    // 16 bytes which are alwayes reserved won't be overwritten
-    // if O32 ABI is used. For EABI the first address is zero.
-    LastArgStackLoc = (FirstStackArgLoc + VA.getLocMemOffset());
-    int FI = MFI->CreateFixedObject(VA.getValVT().getSizeInBits()/8,
-                                    LastArgStackLoc);
-
-    SDValue PtrOff = DAG.getFrameIndex(FI,getPointerTy());
-
-    // emit ISD::STORE whichs stores the 
-    // parameter value to a stack Location
-    MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0));
-  }
-
-  // Transform all store nodes into one single node because all store
-  // nodes are independent of each other.
-  if (!MemOpChains.empty())     
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
-                        &MemOpChains[0], MemOpChains.size());
-
-  // Build a sequence of copy-to-reg nodes chained together with token 
-  // chain and flag operands which copy the outgoing args into registers.
-  // The InFlag in necessary since all emited instructions must be
-  // stuck together.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, 
-                             RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  // If the callee is a GlobalAddress/ExternalSymbol node (quite common, every
-  // direct call is) turn it into a TargetGlobalAddress/TargetExternalSymbol 
-  // node so that legalize doesn't hack it. 
-  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee)) 
-    Callee = DAG.getTargetGlobalAddress(G->getGlobal(), getPointerTy());
-  else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee))
-    Callee = DAG.getTargetExternalSymbol(S->getSymbol(), getPointerTy());
-
-  // MipsJmpLink = #chain, #target_address, #opt_in_flags...
-  //             = Chain, Callee, Reg#1, Reg#2, ...  
-  //
-  // Returns a chain & a flag for retval copy to use.
-  SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Flag);
-  SmallVector<SDValue, 8> Ops;
-  Ops.push_back(Chain);
-  Ops.push_back(Callee);
-
-  // Add argument registers to the end of the list so that they are 
-  // known live into the call.
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i)
-    Ops.push_back(DAG.getRegister(RegsToPass[i].first,
-                                  RegsToPass[i].second.getValueType()));
-
-  if (InFlag.getNode())
-    Ops.push_back(InFlag);
-
-  Chain  = DAG.getNode(MipsISD::JmpLink, dl, NodeTys, &Ops[0], Ops.size());
-  InFlag = Chain.getValue(1);
-
-  // Create the CALLSEQ_END node.
-  Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(NumBytes, true),
-                             DAG.getIntPtrConstant(0, true), InFlag);
-  InFlag = Chain.getValue(1);
-
-  // Create a stack location to hold GP when PIC is used. This stack 
-  // location is used on function prologue to save GP and also after all 
-  // emited CALL's to restore GP. 
-  if (getTargetMachine().getRelocationModel() == Reloc::PIC_) {
-      // Function can have an arbitrary number of calls, so 
-      // hold the LastArgStackLoc with the biggest offset.
-      int FI;
-      MipsFunctionInfo *MipsFI = MF.getInfo<MipsFunctionInfo>();
-      if (LastArgStackLoc >= MipsFI->getGPStackOffset()) {
-        LastArgStackLoc = (!LastArgStackLoc) ? (16) : (LastArgStackLoc+4);
-        // Create the frame index only once. SPOffset here can be anything 
-        // (this will be fixed on processFunctionBeforeFrameFinalized)
-        if (MipsFI->getGPStackOffset() == -1) {
-          FI = MFI->CreateFixedObject(4, 0);
-          MipsFI->setGPFI(FI);
-        }
-        MipsFI->setGPStackOffset(LastArgStackLoc);
-      }
-
-      // Reload GP value.
-      FI = MipsFI->getGPFI();
-      SDValue FIN = DAG.getFrameIndex(FI,getPointerTy());
-      SDValue GPLoad = DAG.getLoad(MVT::i32, dl, Chain, FIN, NULL, 0);
-      Chain = GPLoad.getValue(1);
-      Chain = DAG.getCopyToReg(Chain, dl, DAG.getRegister(Mips::GP, MVT::i32), 
-                               GPLoad, SDValue(0,0));
-      InFlag = Chain.getValue(1);
-  }      
-
-  // Handle result values, copying them out of physregs into vregs that we
-  // return.
-  return LowerCallResult(Chain, InFlag, CallConv, isVarArg,
-                         Ins, dl, DAG, InVals);
-}
-
-/// LowerCallResult - Lower the result values of a call into the
-/// appropriate copies out of appropriate physical registers.
-SDValue
-MipsTargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
-                                    unsigned CallConv, bool isVarArg,
-                                    const SmallVectorImpl<ISD::InputArg> &Ins,
-                                    DebugLoc dl, SelectionDAG &DAG,
-                                    SmallVectorImpl<SDValue> &InVals) {
-
-  // Assign locations to each value returned by this call.
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-
-  CCInfo.AnalyzeCallResult(Ins, RetCC_Mips);
-
-  // Copy all of the result registers out of their specified physreg.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    Chain = DAG.getCopyFromReg(Chain, dl, RVLocs[i].getLocReg(),
-                               RVLocs[i].getValVT(), InFlag).getValue(1);
-    InFlag = Chain.getValue(2);
-    InVals.push_back(Chain.getValue(0));
-  }
-
-  return Chain;
-}
-
-//===----------------------------------------------------------------------===//
-//             Formal Arguments Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-/// LowerFormalArguments - transform physical registers into
-/// virtual registers and generate load operations for
-/// arguments places on the stack.
-/// TODO: isVarArg
-SDValue
-MipsTargetLowering::LowerFormalArguments(SDValue Chain,
-                                         unsigned CallConv, bool isVarArg,
-                                         const SmallVectorImpl<ISD::InputArg>
-                                           &Ins,
-                                         DebugLoc dl, SelectionDAG &DAG,
-                                         SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MipsFunctionInfo *MipsFI = MF.getInfo<MipsFunctionInfo>();
-
-  unsigned StackReg = MF.getTarget().getRegisterInfo()->getFrameRegister(MF);
-
-  // Assign locations to all of the incoming arguments.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-
-  if (Subtarget->isABI_O32())
-    CCInfo.AnalyzeFormalArguments(Ins, CC_MipsO32);
-  else
-    CCInfo.AnalyzeFormalArguments(Ins, CC_Mips);
-
-  SDValue StackPtr;
-
-  unsigned FirstStackArgLoc = (Subtarget->isABI_EABI() ? 0 : 16);
-
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-
-    // Arguments stored on registers
-    if (VA.isRegLoc()) {
-      EVT RegVT = VA.getLocVT();
-      TargetRegisterClass *RC = 0;
-
-      if (RegVT == MVT::i32)
-        RC = Mips::CPURegsRegisterClass; 
-      else if (RegVT == MVT::f32) 
-        RC = Mips::FGR32RegisterClass;
-      else if (RegVT == MVT::f64) {
-        if (!Subtarget->isSingleFloat()) 
-          RC = Mips::AFGR64RegisterClass;
-      } else  
-        llvm_unreachable("RegVT not supported by LowerFormalArguments Lowering");
-
-      // Transform the arguments stored on 
-      // physical registers into virtual ones
-      unsigned Reg = AddLiveIn(DAG.getMachineFunction(), VA.getLocReg(), RC);
-      SDValue ArgValue = DAG.getCopyFromReg(Chain, dl, Reg, RegVT);
-      
-      // If this is an 8 or 16-bit value, it has been passed promoted 
-      // to 32 bits.  Insert an assert[sz]ext to capture this, then 
-      // truncate to the right size.
-      if (VA.getLocInfo() != CCValAssign::Full) {
-        unsigned Opcode = 0;
-        if (VA.getLocInfo() == CCValAssign::SExt)
-          Opcode = ISD::AssertSext;
-        else if (VA.getLocInfo() == CCValAssign::ZExt)
-          Opcode = ISD::AssertZext;
-        if (Opcode)
-          ArgValue = DAG.getNode(Opcode, dl, RegVT, ArgValue, 
-                                 DAG.getValueType(VA.getValVT()));
-        ArgValue = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), ArgValue);
-      }
-
-      // Handle O32 ABI cases: i32->f32 and (i32,i32)->f64 
-      if (Subtarget->isABI_O32()) {
-        if (RegVT == MVT::i32 && VA.getValVT() == MVT::f32) 
-          ArgValue = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f32, ArgValue);
-        if (RegVT == MVT::i32 && VA.getValVT() == MVT::f64) {
-          unsigned Reg2 = AddLiveIn(DAG.getMachineFunction(), 
-                                    VA.getLocReg()+1, RC);
-          SDValue ArgValue2 = DAG.getCopyFromReg(Chain, dl, Reg2, RegVT);
-          SDValue Hi = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f32, ArgValue);
-          SDValue Lo = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f32, ArgValue2);
-          ArgValue = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::f64, Lo, Hi);
-        }
-      }
-
-      InVals.push_back(ArgValue);
-
-      // To meet ABI, when VARARGS are passed on registers, the registers
-      // must have their values written to the caller stack frame. 
-      if ((isVarArg) && (Subtarget->isABI_O32())) {
-        if (StackPtr.getNode() == 0)
-          StackPtr = DAG.getRegister(StackReg, getPointerTy());
-     
-        // The stack pointer offset is relative to the caller stack frame. 
-        // Since the real stack size is unknown here, a negative SPOffset 
-        // is used so there's a way to adjust these offsets when the stack
-        // size get known (on EliminateFrameIndex). A dummy SPOffset is 
-        // used instead of a direct negative address (which is recorded to
-        // be used on emitPrologue) to avoid mis-calc of the first stack 
-        // offset on PEI::calculateFrameObjectOffsets.
-        // Arguments are always 32-bit.
-        int FI = MFI->CreateFixedObject(4, 0);
-        MipsFI->recordStoreVarArgsFI(FI, -(4+(i*4)));
-        SDValue PtrOff = DAG.getFrameIndex(FI, getPointerTy());
-      
-        // emit ISD::STORE whichs stores the 
-        // parameter value to a stack Location
-        InVals.push_back(DAG.getStore(Chain, dl, ArgValue, PtrOff, NULL, 0));
-      }
-
-    } else { // VA.isRegLoc()
-
-      // sanity check
-      assert(VA.isMemLoc());
-      
-      // The stack pointer offset is relative to the caller stack frame. 
-      // Since the real stack size is unknown here, a negative SPOffset 
-      // is used so there's a way to adjust these offsets when the stack
-      // size get known (on EliminateFrameIndex). A dummy SPOffset is 
-      // used instead of a direct negative address (which is recorded to
-      // be used on emitPrologue) to avoid mis-calc of the first stack 
-      // offset on PEI::calculateFrameObjectOffsets.
-      // Arguments are always 32-bit.
-      unsigned ArgSize = VA.getLocVT().getSizeInBits()/8;
-      int FI = MFI->CreateFixedObject(ArgSize, 0);
-      MipsFI->recordLoadArgsFI(FI, -(ArgSize+
-        (FirstStackArgLoc + VA.getLocMemOffset())));
-
-      // Create load nodes to retrieve arguments from the stack
-      SDValue FIN = DAG.getFrameIndex(FI, getPointerTy());
-      InVals.push_back(DAG.getLoad(VA.getValVT(), dl, Chain, FIN, NULL, 0));
-    }
-  }
-
-  // The mips ABIs for returning structs by value requires that we copy
-  // the sret argument into $v0 for the return. Save the argument into
-  // a virtual register so that we can access it from the return points.
-  if (DAG.getMachineFunction().getFunction()->hasStructRetAttr()) {
-    unsigned Reg = MipsFI->getSRetReturnReg();
-    if (!Reg) {
-      Reg = MF.getRegInfo().createVirtualRegister(getRegClassFor(MVT::i32));
-      MipsFI->setSRetReturnReg(Reg);
-    }
-    SDValue Copy = DAG.getCopyToReg(DAG.getEntryNode(), dl, Reg, InVals[0]);
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Copy, Chain);
-  }
-
-  return Chain;
-}
-
-//===----------------------------------------------------------------------===//
-//               Return Value Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-SDValue
-MipsTargetLowering::LowerReturn(SDValue Chain,
-                                unsigned CallConv, bool isVarArg,
-                                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                DebugLoc dl, SelectionDAG &DAG) {
-
-  // CCValAssign - represent the assignment of
-  // the return value to a location
-  SmallVector<CCValAssign, 16> RVLocs;
-
-  // CCState - Info about the registers and stack slot.
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-
-  // Analize return values.
-  CCInfo.AnalyzeReturn(Outs, RetCC_Mips);
-
-  // If this is the first return lowered for this function, add 
-  // the regs to the liveout set for the function.
-  if (DAG.getMachineFunction().getRegInfo().liveout_empty()) {
-    for (unsigned i = 0; i != RVLocs.size(); ++i)
-      if (RVLocs[i].isRegLoc())
-        DAG.getMachineFunction().getRegInfo().addLiveOut(RVLocs[i].getLocReg());
-  }
-
-  SDValue Flag;
-
-  // Copy the result values into the output registers.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-    assert(VA.isRegLoc() && "Can only return in registers!");
-
-    Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), 
-                             Outs[i].Val, Flag);
-
-    // guarantee that all emitted copies are
-    // stuck together, avoiding something bad
-    Flag = Chain.getValue(1);
-  }
-
-  // The mips ABIs for returning structs by value requires that we copy
-  // the sret argument into $v0 for the return. We saved the argument into
-  // a virtual register in the entry block, so now we copy the value out
-  // and into $v0.
-  if (DAG.getMachineFunction().getFunction()->hasStructRetAttr()) {
-    MachineFunction &MF      = DAG.getMachineFunction();
-    MipsFunctionInfo *MipsFI = MF.getInfo<MipsFunctionInfo>();
-    unsigned Reg = MipsFI->getSRetReturnReg();
-
-    if (!Reg) 
-      llvm_unreachable("sret virtual register not created in the entry block");
-    SDValue Val = DAG.getCopyFromReg(Chain, dl, Reg, getPointerTy());
-
-    Chain = DAG.getCopyToReg(Chain, dl, Mips::V0, Val, Flag);
-    Flag = Chain.getValue(1);
-  }
-
-  // Return on Mips is always a "jr $ra"
-  if (Flag.getNode())
-    return DAG.getNode(MipsISD::Ret, dl, MVT::Other, 
-                       Chain, DAG.getRegister(Mips::RA, MVT::i32), Flag);
-  else // Return Void
-    return DAG.getNode(MipsISD::Ret, dl, MVT::Other, 
-                       Chain, DAG.getRegister(Mips::RA, MVT::i32));
-}
-
-//===----------------------------------------------------------------------===//
-//                           Mips Inline Assembly Support
-//===----------------------------------------------------------------------===//
-
-/// getConstraintType - Given a constraint letter, return the type of
-/// constraint it is for this target.
-MipsTargetLowering::ConstraintType MipsTargetLowering::
-getConstraintType(const std::string &Constraint) const 
-{
-  // Mips specific constrainy 
-  // GCC config/mips/constraints.md
-  //
-  // 'd' : An address register. Equivalent to r 
-  //       unless generating MIPS16 code. 
-  // 'y' : Equivalent to r; retained for 
-  //       backwards compatibility. 
-  // 'f' : Floating Point registers.      
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-      default : break;
-      case 'd':     
-      case 'y': 
-      case 'f':
-        return C_RegisterClass;
-        break;
-    }
-  }
-  return TargetLowering::getConstraintType(Constraint);
-}
-
-/// getRegClassForInlineAsmConstraint - Given a constraint letter (e.g. "r"),
-/// return a list of registers that can be used to satisfy the constraint.
-/// This should only be used for C_RegisterClass constraints.
-std::pair<unsigned, const TargetRegisterClass*> MipsTargetLowering::
-getRegForInlineAsmConstraint(const std::string &Constraint, EVT VT) const
-{
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-    case 'r':
-      return std::make_pair(0U, Mips::CPURegsRegisterClass);
-    case 'f':
-      if (VT == MVT::f32)
-        return std::make_pair(0U, Mips::FGR32RegisterClass);
-      if (VT == MVT::f64)    
-        if ((!Subtarget->isSingleFloat()) && (!Subtarget->isFP64bit()))
-          return std::make_pair(0U, Mips::AFGR64RegisterClass);
-    }
-  }
-  return TargetLowering::getRegForInlineAsmConstraint(Constraint, VT);
-}
-
-/// Given a register class constraint, like 'r', if this corresponds directly
-/// to an LLVM register class, return a register of 0 and the register class
-/// pointer.
-std::vector<unsigned> MipsTargetLowering::
-getRegClassForInlineAsmConstraint(const std::string &Constraint,
-                                  EVT VT) const
-{
-  if (Constraint.size() != 1)
-    return std::vector<unsigned>();
-
-  switch (Constraint[0]) {         
-    default : break;
-    case 'r':
-    // GCC Mips Constraint Letters
-    case 'd':     
-    case 'y': 
-      return make_vector<unsigned>(Mips::T0, Mips::T1, Mips::T2, Mips::T3, 
-             Mips::T4, Mips::T5, Mips::T6, Mips::T7, Mips::S0, Mips::S1, 
-             Mips::S2, Mips::S3, Mips::S4, Mips::S5, Mips::S6, Mips::S7, 
-             Mips::T8, 0);
-
-    case 'f':
-      if (VT == MVT::f32) {
-        if (Subtarget->isSingleFloat())
-          return make_vector<unsigned>(Mips::F2, Mips::F3, Mips::F4, Mips::F5,
-                 Mips::F6, Mips::F7, Mips::F8, Mips::F9, Mips::F10, Mips::F11,
-                 Mips::F20, Mips::F21, Mips::F22, Mips::F23, Mips::F24,
-                 Mips::F25, Mips::F26, Mips::F27, Mips::F28, Mips::F29,
-                 Mips::F30, Mips::F31, 0);
-        else
-          return make_vector<unsigned>(Mips::F2, Mips::F4, Mips::F6, Mips::F8, 
-                 Mips::F10, Mips::F20, Mips::F22, Mips::F24, Mips::F26, 
-                 Mips::F28, Mips::F30, 0);
-      }
-
-      if (VT == MVT::f64)    
-        if ((!Subtarget->isSingleFloat()) && (!Subtarget->isFP64bit()))
-          return make_vector<unsigned>(Mips::D1, Mips::D2, Mips::D3, Mips::D4, 
-                 Mips::D5, Mips::D10, Mips::D11, Mips::D12, Mips::D13, 
-                 Mips::D14, Mips::D15, 0);
-  }
-  return std::vector<unsigned>();
-}
-
-bool
-MipsTargetLowering::isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const {
-  // The Mips target isn't yet aware of offsets.
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.h b/libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.h
deleted file mode 100644
index c30d57e..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.h
+++ /dev/null
@@ -1,151 +0,0 @@
-//===-- MipsISelLowering.h - Mips DAG Lowering Interface --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that Mips uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MipsISELLOWERING_H
-#define MipsISELLOWERING_H
-
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLowering.h"
-#include "Mips.h"
-#include "MipsSubtarget.h"
-
-namespace llvm {
-  namespace MipsISD {
-    enum NodeType {
-      // Start the numbering from where ISD NodeType finishes.
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-
-      // Jump and link (call)
-      JmpLink,
-
-      // Get the Higher 16 bits from a 32-bit immediate
-      // No relation with Mips Hi register
-      Hi, 
-
-      // Get the Lower 16 bits from a 32-bit immediate
-      // No relation with Mips Lo register
-      Lo, 
-
-      // Handle gp_rel (small data/bss sections) relocation.
-      GPRel,
-
-      // Conditional Move
-      CMov,
-
-      // Select CC Pseudo Instruction
-      SelectCC,
-
-      // Floating Point Select CC Pseudo Instruction
-      FPSelectCC,
-
-      // Floating Point Branch Conditional
-      FPBrcond,
-
-      // Floating Point Compare
-      FPCmp,
-
-      // Floating Point Rounding
-      FPRound,
-
-      // Return 
-      Ret
-    };
-  }
-
-  //===--------------------------------------------------------------------===//
-  // TargetLowering Implementation
-  //===--------------------------------------------------------------------===//
-  
-  class MipsTargetLowering : public TargetLowering  {
-  public:
-
-    explicit MipsTargetLowering(MipsTargetMachine &TM);
-
-    /// LowerOperation - Provide custom lowering hooks for some operations.
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-
-    /// getTargetNodeName - This method returns the name of a target specific 
-    //  DAG node.
-    virtual const char *getTargetNodeName(unsigned Opcode) const;
-
-    /// getSetCCResultType - get the ISD::SETCC result ValueType
-    MVT::SimpleValueType getSetCCResultType(EVT VT) const;
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *F) const;
-  private:
-    // Subtarget Info
-    const MipsSubtarget *Subtarget;
-
-
-    // Lower Operand helpers
-    SDValue LowerCallResult(SDValue Chain, SDValue InFlag,
-                            unsigned CallConv, bool isVarArg,
-                            const SmallVectorImpl<ISD::InputArg> &Ins,
-                            DebugLoc dl, SelectionDAG &DAG,
-                            SmallVectorImpl<SDValue> &InVals);
-
-    // Lower Operand specifics
-    SDValue LowerANDOR(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerBRCOND(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerFP_TO_SINT(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSELECT(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG);
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv, bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg,
-                bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-
-    virtual MachineBasicBlock *EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                   MachineBasicBlock *MBB) const;
-
-    // Inline asm support
-    ConstraintType getConstraintType(const std::string &Constraint) const;
-
-    std::pair<unsigned, const TargetRegisterClass*> 
-              getRegForInlineAsmConstraint(const std::string &Constraint,
-              EVT VT) const;
-
-    std::vector<unsigned>
-    getRegClassForInlineAsmConstraint(const std::string &Constraint,
-              EVT VT) const;
-
-    virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
-  };
-}
-
-#endif // MipsISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrFPU.td b/libclamav/c++/llvm/lib/Target/Mips/MipsInstrFPU.td
deleted file mode 100644
index b6a6d2f..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrFPU.td
+++ /dev/null
@@ -1,304 +0,0 @@
-//===- MipsInstrFPU.td - Mips FPU Instruction Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Mips implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Floating Point Instructions
-// ------------------------
-// * 64bit fp:
-//    - 32 64-bit registers (default mode)
-//    - 16 even 32-bit registers (32-bit compatible mode) for
-//      single and double access.
-// * 32bit fp:
-//    - 16 even 32-bit registers - single and double (aliased)
-//    - 32 32-bit registers (within single-only mode)
-//===----------------------------------------------------------------------===//
-
-// Floating Point Compare and Branch
-def SDT_MipsFPBrcond : SDTypeProfile<0, 3, [SDTCisSameAs<0, 2>, SDTCisInt<0>,
-                                     SDTCisVT<1, OtherVT>]>;
-def SDT_MipsFPCmp : SDTypeProfile<0, 3, [SDTCisSameAs<0, 1>, SDTCisFP<0>, 
-                                  SDTCisInt<2>]>;
-def SDT_MipsFPSelectCC : SDTypeProfile<1, 4, [SDTCisInt<1>, SDTCisInt<4>,
-                                  SDTCisSameAs<0, 2>, SDTCisSameAs<2, 3>]>;
-
-def MipsFPRound : SDNode<"MipsISD::FPRound", SDTFPRoundOp, [SDNPOptInFlag]>;
-def MipsFPBrcond : SDNode<"MipsISD::FPBrcond", SDT_MipsFPBrcond, 
-                          [SDNPHasChain]>; 
-def MipsFPCmp : SDNode<"MipsISD::FPCmp", SDT_MipsFPCmp>;
-def MipsFPSelectCC : SDNode<"MipsISD::FPSelectCC", SDT_MipsFPSelectCC>;
-
-// Operand for printing out a condition code.
-let PrintMethod = "printFCCOperand" in
-  def condcode : Operand<i32>;
-
-//===----------------------------------------------------------------------===//
-// Feature predicates.
-//===----------------------------------------------------------------------===//
-
-def In32BitMode      : Predicate<"!Subtarget.isFP64bit()">;
-def IsSingleFloat    : Predicate<"Subtarget.isSingleFloat()">;
-def IsNotSingleFloat : Predicate<"!Subtarget.isSingleFloat()">;
-
-//===----------------------------------------------------------------------===//
-// Instruction Class Templates
-//
-// A set of multiclasses is used to address the register usage. 
-//
-// S32 - single precision in 16 32bit even fp registers
-//       single precision in 32 32bit fp registers in SingleOnly mode
-// S64 - single precision in 32 64bit fp registers (In64BitMode)
-// D32 - double precision in 16 32bit even fp registers
-// D64 - double precision in 32 64bit fp registers (In64BitMode)
-//
-// Only S32 and D32 are supported right now.
-//===----------------------------------------------------------------------===//
-
-multiclass FFR1_1<bits<6> funct, string asmstr> 
-{
-  def _S32 : FFR<0x11, funct, 0x0, (outs FGR32:$fd), (ins FGR32:$fs),
-      !strconcat(asmstr, ".s $fd, $fs"), []>;
-
-  def _D32  : FFR<0x11, funct, 0x1, (outs FGR32:$fd), (ins AFGR64:$fs),
-      !strconcat(asmstr, ".d $fd, $fs"), []>, Requires<[In32BitMode]>;
-}
-
-multiclass FFR1_2<bits<6> funct, string asmstr, SDNode FOp> 
-{
-  def _S32 : FFR<0x11, funct, 0x0, (outs FGR32:$fd), (ins FGR32:$fs),
-                 !strconcat(asmstr, ".s $fd, $fs"), 
-                 [(set FGR32:$fd, (FOp FGR32:$fs))]>;
-
-  def _D32  : FFR<0x11, funct, 0x1, (outs AFGR64:$fd), (ins AFGR64:$fs),
-                 !strconcat(asmstr, ".d $fd, $fs"), 
-                 [(set AFGR64:$fd, (FOp AFGR64:$fs))]>, Requires<[In32BitMode]>;
-}
-
-class FFR1_3<bits<6> funct, bits<5> fmt, RegisterClass RcSrc, 
-              RegisterClass RcDst, string asmstr>: 
-  FFR<0x11, funct, fmt, (outs RcSrc:$fd), (ins RcDst:$fs), 
-      !strconcat(asmstr, " $fd, $fs"), []>; 
-
-
-multiclass FFR1_4<bits<6> funct, string asmstr, SDNode FOp> {
-  def _S32 : FFR<0x11, funct, 0x0, (outs FGR32:$fd), 
-                 (ins FGR32:$fs, FGR32:$ft), 
-                 !strconcat(asmstr, ".s $fd, $fs, $ft"),
-                 [(set FGR32:$fd, (FOp FGR32:$fs, FGR32:$ft))]>;
-
-  def _D32 : FFR<0x11, funct, 0x1, (outs AFGR64:$fd), 
-                 (ins AFGR64:$fs, AFGR64:$ft), 
-                 !strconcat(asmstr, ".d $fd, $fs, $ft"),
-                 [(set AFGR64:$fd, (FOp AFGR64:$fs, AFGR64:$ft))]>,
-                 Requires<[In32BitMode]>;
-}
-
-//===----------------------------------------------------------------------===//
-// Floating Point Instructions
-//===----------------------------------------------------------------------===//
-
-let ft = 0 in {
-  defm FLOOR_W : FFR1_1<0b001111, "floor.w">;
-  defm CEIL_W  : FFR1_1<0b001110, "ceil.w">;
-  defm ROUND_W : FFR1_1<0b001100, "round.w">;
-  defm TRUNC_W : FFR1_1<0b001101, "trunc.w">;
-  defm CVTW    : FFR1_1<0b100100, "cvt.w">;
-  defm FMOV    : FFR1_1<0b000110, "mov">;
-
-  defm FABS    : FFR1_2<0b000101, "abs",  fabs>; 
-  defm FNEG    : FFR1_2<0b000111, "neg",  fneg>; 
-  defm FSQRT   : FFR1_2<0b000100, "sqrt", fsqrt>;
-
-  /// Convert to Single Precison
-  def CVTS_W32 : FFR1_3<0b100000, 0x2, FGR32,  FGR32,  "cvt.s.w">;
-
-  let Predicates = [IsNotSingleFloat] in {
-    /// Ceil to long signed integer
-    def CEIL_LS   : FFR1_3<0b001010, 0x0, FGR32, FGR32, "ceil.l">;
-    def CEIL_LD   : FFR1_3<0b001010, 0x1, AFGR64, AFGR64, "ceil.l">;
-
-    /// Round to long signed integer
-    def ROUND_LS  : FFR1_3<0b001000, 0x0, FGR32, FGR32, "round.l">;
-    def ROUND_LD  : FFR1_3<0b001000, 0x1, AFGR64, AFGR64, "round.l">;
-
-    /// Floor to long signed integer
-    def FLOOR_LS  : FFR1_3<0b001011, 0x0, FGR32, FGR32, "floor.l">;
-    def FLOOR_LD  : FFR1_3<0b001011, 0x1, AFGR64, AFGR64, "floor.l">;
-
-    /// Trunc to long signed integer
-    def TRUNC_LS  : FFR1_3<0b001001, 0x0, FGR32, FGR32, "trunc.l">;
-    def TRUNC_LD  : FFR1_3<0b001001, 0x1, AFGR64, AFGR64, "trunc.l">;
-
-    /// Convert to long signed integer
-    def CVTL_S    : FFR1_3<0b100101, 0x0, FGR32, FGR32, "cvt.l">; 
-    def CVTL_D    : FFR1_3<0b100101, 0x1, AFGR64, AFGR64, "cvt.l">; 
-
-    /// Convert to Double Precison 
-    def CVTD_S32 : FFR1_3<0b100001, 0x0, AFGR64, FGR32, "cvt.d.s">; 
-    def CVTD_W32 : FFR1_3<0b100001, 0x2, AFGR64, FGR32, "cvt.d.w">; 
-    def CVTD_L32 : FFR1_3<0b100001, 0x3, AFGR64, AFGR64, "cvt.d.l">; 
-                   
-    /// Convert to Single Precison
-    def CVTS_D32 : FFR1_3<0b100000, 0x1, FGR32, AFGR64, "cvt.s.d">;
-    def CVTS_L32 : FFR1_3<0b100000, 0x3, FGR32, AFGR64, "cvt.s.l">; 
-  }
-}
-
-// The odd-numbered registers are only referenced when doing loads,
-// stores, and moves between floating-point and integer registers.
-// When defining instructions, we reference all 32-bit registers, 
-// regardless of register aliasing.
-let fd = 0 in {
-  /// Move Control Registers From/To CPU Registers
-  def CFC1  : FFR<0x11, 0x0, 0x2, (outs CPURegs:$rt), (ins CCR:$fs),
-                  "cfc1 $rt, $fs", []>;
-
-  def CTC1  : FFR<0x11, 0x0, 0x6, (outs CCR:$rt), (ins CPURegs:$fs),
-                  "ctc1 $fs, $rt", []>;
-                  
-  def MFC1  : FFR<0x11, 0x00, 0x00, (outs CPURegs:$rt), (ins FGR32:$fs),
-                  "mfc1 $rt, $fs", []>;
-
-  def MTC1  : FFR<0x11, 0x00, 0x04, (outs FGR32:$fs), (ins CPURegs:$rt),
-                  "mtc1 $rt, $fs", []>;
-}
-
-/// Floating Point Memory Instructions
-let Predicates = [IsNotSingleFloat] in {
-  def LDC1 : FFI<0b110101, (outs AFGR64:$ft), (ins mem:$addr), 
-                 "ldc1 $ft, $addr", [(set AFGR64:$ft, (load addr:$addr))]>;
-
-  def SDC1 : FFI<0b111101, (outs), (ins AFGR64:$ft, mem:$addr), 
-                 "sdc1 $ft, $addr", [(store AFGR64:$ft, addr:$addr)]>;
-}
-
-// LWC1 and SWC1 can always be emited with odd registers.
-def LWC1  : FFI<0b110001, (outs FGR32:$ft), (ins mem:$addr), "lwc1 $ft, $addr",
-               [(set FGR32:$ft, (load addr:$addr))]>; 
-def SWC1  : FFI<0b111001, (outs), (ins FGR32:$ft, mem:$addr), "swc1 $ft, $addr",
-               [(store FGR32:$ft, addr:$addr)]>; 
-
-/// Floating-point Aritmetic
-defm FADD : FFR1_4<0x10, "add", fadd>;
-defm FDIV : FFR1_4<0x03, "div", fdiv>;
-defm FMUL : FFR1_4<0x02, "mul", fmul>;
-defm FSUB : FFR1_4<0x01, "sub", fsub>;
-
-//===----------------------------------------------------------------------===//
-// Floating Point Branch Codes
-//===----------------------------------------------------------------------===//
-// Mips branch codes. These correspond to condcode in MipsInstrInfo.h. 
-// They must be kept in synch.
-def MIPS_BRANCH_F  : PatLeaf<(i32 0)>;
-def MIPS_BRANCH_T  : PatLeaf<(i32 1)>;
-def MIPS_BRANCH_FL : PatLeaf<(i32 2)>;
-def MIPS_BRANCH_TL : PatLeaf<(i32 3)>;
-
-/// Floating Point Branch of False/True (Likely)
-let isBranch=1, isTerminator=1, hasDelaySlot=1, base=0x8, Uses=[FCR31] in {
-  class FBRANCH<PatLeaf op, string asmstr> : FFI<0x11, (outs), 
-        (ins brtarget:$dst), !strconcat(asmstr, " $dst"),
-        [(MipsFPBrcond op, bb:$dst, FCR31)]>;
-}
-def BC1F  : FBRANCH<MIPS_BRANCH_F,  "bc1f">;
-def BC1T  : FBRANCH<MIPS_BRANCH_T,  "bc1t">;
-def BC1FL : FBRANCH<MIPS_BRANCH_FL, "bc1fl">;
-def BC1TL : FBRANCH<MIPS_BRANCH_TL, "bc1tl">;
-
-//===----------------------------------------------------------------------===//
-// Floating Point Flag Conditions
-//===----------------------------------------------------------------------===//
-// Mips condition codes. They must correspond to condcode in MipsInstrInfo.h. 
-// They must be kept in synch.
-def MIPS_FCOND_F    : PatLeaf<(i32 0)>;
-def MIPS_FCOND_UN   : PatLeaf<(i32 1)>;
-def MIPS_FCOND_EQ   : PatLeaf<(i32 2)>;
-def MIPS_FCOND_UEQ  : PatLeaf<(i32 3)>;
-def MIPS_FCOND_OLT  : PatLeaf<(i32 4)>;
-def MIPS_FCOND_ULT  : PatLeaf<(i32 5)>;
-def MIPS_FCOND_OLE  : PatLeaf<(i32 6)>;
-def MIPS_FCOND_ULE  : PatLeaf<(i32 7)>;
-def MIPS_FCOND_SF   : PatLeaf<(i32 8)>;
-def MIPS_FCOND_NGLE : PatLeaf<(i32 9)>;
-def MIPS_FCOND_SEQ  : PatLeaf<(i32 10)>;
-def MIPS_FCOND_NGL  : PatLeaf<(i32 11)>;
-def MIPS_FCOND_LT   : PatLeaf<(i32 12)>;
-def MIPS_FCOND_NGE  : PatLeaf<(i32 13)>;
-def MIPS_FCOND_LE   : PatLeaf<(i32 14)>;
-def MIPS_FCOND_NGT  : PatLeaf<(i32 15)>;
-
-/// Floating Point Compare
-let hasDelaySlot = 1, Defs=[FCR31] in {
-  def FCMP_S32 : FCC<0x0, (outs), (ins FGR32:$fs, FGR32:$ft, condcode:$cc),
-      "c.$cc.s $fs, $ft", [(MipsFPCmp FGR32:$fs, FGR32:$ft, imm:$cc), 
-      (implicit FCR31)]>;
-  
-  def FCMP_D32 : FCC<0x1, (outs), (ins AFGR64:$fs, AFGR64:$ft, condcode:$cc),
-      "c.$cc.d $fs, $ft", [(MipsFPCmp AFGR64:$fs, AFGR64:$ft, imm:$cc),
-      (implicit FCR31)]>, Requires<[In32BitMode]>;
-}
-
-//===----------------------------------------------------------------------===//
-// Floating Point Pseudo-Instructions
-//===----------------------------------------------------------------------===//
-
-// For some explanation, see Select_CC at MipsInstrInfo.td. We also embedd a 
-// condiciton code to enable easy handling by the Custom Inserter.
-let usesCustomDAGSchedInserter = 1, Uses=[FCR31] in {
-  class PseudoFPSelCC<RegisterClass RC, string asmstr> : 
-    MipsPseudo<(outs RC:$dst), 
-               (ins CPURegs:$CmpRes, RC:$T, RC:$F, condcode:$cc), asmstr, 
-               [(set RC:$dst, (MipsFPSelectCC CPURegs:$CmpRes, RC:$T, RC:$F,
-                 imm:$cc))]>;
-}
-
-// The values to be selected are fp but the condition test is with integers.
-def Select_CC_S32 : PseudoSelCC<FGR32, "# MipsSelect_CC_S32_f32">;
-def Select_CC_D32 : PseudoSelCC<AFGR64, "# MipsSelect_CC_D32_f32">,
-                    Requires<[In32BitMode]>;
-
-// The values to be selected are int but the condition test is done with fp.
-def Select_FCC     : PseudoFPSelCC<CPURegs, "# MipsSelect_FCC">;
-
-// The values to be selected and the condition test is done with fp.
-def Select_FCC_S32 : PseudoFPSelCC<FGR32, "# MipsSelect_FCC_S32_f32">;
-def Select_FCC_D32 : PseudoFPSelCC<AFGR64, "# MipsSelect_FCC_D32_f32">, 
-                     Requires<[In32BitMode]>;
-
-def MOVCCRToCCR : MipsPseudo<(outs CCR:$dst), (ins CCR:$src), 
-                             "# MOVCCRToCCR", []>; 
-
-//===----------------------------------------------------------------------===//
-// Floating Point Patterns
-//===----------------------------------------------------------------------===//
-def fpimm0 : PatLeaf<(fpimm), [{
-  return N->isExactlyValue(+0.0);
-}]>;
-
-def : Pat<(f32 fpimm0), (MTC1 ZERO)>;
-
-def : Pat<(f32 (sint_to_fp CPURegs:$src)), (CVTS_W32 (MTC1 CPURegs:$src))>;
-def : Pat<(f64 (sint_to_fp CPURegs:$src)), (CVTD_W32 (MTC1 CPURegs:$src))>;
-
-def : Pat<(i32 (fp_to_sint FGR32:$src)), (MFC1 (TRUNC_W_S32 FGR32:$src))>;
-
-def : Pat<(i32 (bitconvert FGR32:$src)),  (MFC1 FGR32:$src)>;
-def : Pat<(f32 (bitconvert CPURegs:$src)), (MTC1 CPURegs:$src)>;
-
-let Predicates = [In32BitMode] in { 
-  def : Pat<(f32 (fround AFGR64:$src)), (CVTS_D32 AFGR64:$src)>;
-  def : Pat<(f64 (fextend FGR32:$src)), (CVTD_S32 FGR32:$src)>;
-}
-
-// MipsFPRound is only emitted for MipsI targets.
-def : Pat<(f32 (MipsFPRound AFGR64:$src)), (CVTW_D32 AFGR64:$src)>;
-
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrFormats.td b/libclamav/c++/llvm/lib/Target/Mips/MipsInstrFormats.td
deleted file mode 100644
index 0853272..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrFormats.td
+++ /dev/null
@@ -1,182 +0,0 @@
-//===- MipsRegisterInfo.td - Mips Register defs -----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Describe MIPS instructions format
-//
-//  CPU INSTRUCTION FORMATS
-//
-//  opcode  - operation code.
-//  rs      - src reg.
-//  rt      - dst reg (on a 2 regs instr) or src reg (on a 3 reg instr).
-//  rd      - dst reg, only used on 3 regs instr.
-//  shamt   - only used on shift instructions, contains the shift amount.
-//  funct   - combined with opcode field give us an operation code.
-//
-//===----------------------------------------------------------------------===//
-
-// Generic Mips Format
-class MipsInst<dag outs, dag ins, string asmstr, list<dag> pattern, 
-               InstrItinClass itin>: Instruction 
-{
-  field bits<32> Inst;
-
-  let Namespace = "Mips";
-
-  bits<6> opcode;
-
-  // Top 5 bits are the 'opcode' field
-  let Inst{31-26} = opcode;   
-  
-  dag OutOperandList = outs;
-  dag InOperandList  = ins;
-
-  let AsmString   = asmstr;
-  let Pattern     = pattern;
-  let Itinerary   = itin;
-}
-
-// Mips Pseudo Instructions Format
-class MipsPseudo<dag outs, dag ins, string asmstr, list<dag> pattern>:
-      MipsInst<outs, ins, asmstr, pattern, IIPseudo>;
-
-//===----------------------------------------------------------------------===//
-// Format R instruction class in Mips : <|opcode|rs|rt|rd|shamt|funct|>
-//===----------------------------------------------------------------------===//
-
-class FR<bits<6> op, bits<6> _funct, dag outs, dag ins, string asmstr,
-         list<dag> pattern, InstrItinClass itin>:
-      MipsInst<outs, ins, asmstr, pattern, itin> 
-{
-  bits<5>  rd;
-  bits<5>  rs;
-  bits<5>  rt;
-  bits<5>  shamt;
-  bits<6>  funct;
-
-  let opcode = op;
-  let funct  = _funct;
-
-  let Inst{25-21} = rs;
-  let Inst{20-16} = rt; 
-  let Inst{15-11} = rd;
-  let Inst{10-6}  = shamt;
-  let Inst{5-0}   = funct;
-}
-
-//===----------------------------------------------------------------------===//
-// Format I instruction class in Mips : <|opcode|rs|rt|immediate|>
-//===----------------------------------------------------------------------===//
-
-class FI<bits<6> op, dag outs, dag ins, string asmstr, list<dag> pattern,
-         InstrItinClass itin>: MipsInst<outs, ins, asmstr, pattern, itin> 
-{
-  bits<5>  rt;
-  bits<5>  rs;
-  bits<16> imm16;
-
-  let opcode = op;
-
-  let Inst{25-21} = rs;
-  let Inst{20-16} = rt; 
-  let Inst{15-0}  = imm16;
-}
-
-//===----------------------------------------------------------------------===//
-// Format J instruction class in Mips : <|opcode|address|>
-//===----------------------------------------------------------------------===//
-
-class FJ<bits<6> op, dag outs, dag ins, string asmstr, list<dag> pattern,
-         InstrItinClass itin>: MipsInst<outs, ins, asmstr, pattern, itin> 
-{
-  bits<26> addr;
-
-  let opcode = op;
-  
-  let Inst{25-0} = addr;
-}
-
-//===----------------------------------------------------------------------===//
-//
-//  FLOATING POINT INSTRUCTION FORMATS
-//
-//  opcode  - operation code.
-//  fs      - src reg.
-//  ft      - dst reg (on a 2 regs instr) or src reg (on a 3 reg instr).
-//  fd      - dst reg, only used on 3 regs instr.
-//  fmt     - double or single precision.
-//  funct   - combined with opcode field give us an operation code.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Format FR instruction class in Mips : <|opcode|fmt|ft|fs|fd|funct|>
-//===----------------------------------------------------------------------===//
-
-class FFR<bits<6> op, bits<6> _funct, bits<5> _fmt, dag outs, dag ins, 
-          string asmstr, list<dag> pattern> : 
-          MipsInst<outs, ins, asmstr, pattern, NoItinerary> 
-{
-  bits<5>  fd;
-  bits<5>  fs;
-  bits<5>  ft;
-  bits<5>  fmt;
-  bits<6>  funct;
-
-  let opcode = op;
-  let funct  = _funct;
-  let fmt    = _fmt;
-
-  let Inst{25-21} = fmt;
-  let Inst{20-16} = ft; 
-  let Inst{15-11} = fs;
-  let Inst{10-6}  = fd;
-  let Inst{5-0}   = funct;
-}
-
-//===----------------------------------------------------------------------===//
-// Format FI instruction class in Mips : <|opcode|base|ft|immediate|>
-//===----------------------------------------------------------------------===//
-
-class FFI<bits<6> op, dag outs, dag ins, string asmstr, list<dag> pattern>: 
-          MipsInst<outs, ins, asmstr, pattern, NoItinerary> 
-{
-  bits<5>  ft;
-  bits<5>  base;
-  bits<16> imm16;
-
-  let opcode = op;
-
-  let Inst{25-21} = base;
-  let Inst{20-16} = ft; 
-  let Inst{15-0}  = imm16;
-}
-
-//===----------------------------------------------------------------------===//
-// Compare instruction class in Mips : <|010001|fmt|ft|fs|0000011|condcode|>
-//===----------------------------------------------------------------------===//
-
-class FCC<bits<5> _fmt, dag outs, dag ins, string asmstr, list<dag> pattern> : 
-          MipsInst<outs, ins, asmstr, pattern, NoItinerary> 
-{
-  bits<5>  fs;
-  bits<5>  ft;
-  bits<4>  cc;
-  bits<5>  fmt;
-
-  let opcode = 0x11;
-  let fmt    = _fmt;
-
-  let Inst{25-21} = fmt;
-  let Inst{20-16} = ft; 
-  let Inst{15-11} = fs;
-  let Inst{10-6}  = 0;
-  let Inst{5-4}   = 0b11;
-  let Inst{3-0}   = cc;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.cpp
deleted file mode 100644
index 9159904..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.cpp
+++ /dev/null
@@ -1,615 +0,0 @@
-//===- MipsInstrInfo.cpp - Mips Instruction Information ---------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Mips implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MipsInstrInfo.h"
-#include "MipsTargetMachine.h"
-#include "MipsMachineFunction.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "MipsGenInstrInfo.inc"
-
-using namespace llvm;
-
-MipsInstrInfo::MipsInstrInfo(MipsTargetMachine &tm)
-  : TargetInstrInfoImpl(MipsInsts, array_lengthof(MipsInsts)),
-    TM(tm), RI(*TM.getSubtargetImpl(), *this) {}
-
-static bool isZeroImm(const MachineOperand &op) {
-  return op.isImm() && op.getImm() == 0;
-}
-
-/// Return true if the instruction is a register to register move and
-/// leave the source and dest operands in the passed parameters.
-bool MipsInstrInfo::
-isMoveInstr(const MachineInstr &MI, unsigned &SrcReg, unsigned &DstReg,
-            unsigned &SrcSubIdx, unsigned &DstSubIdx) const 
-{
-  SrcSubIdx = DstSubIdx = 0; // No sub-registers.
-
-  // addu $dst, $src, $zero || addu $dst, $zero, $src
-  // or   $dst, $src, $zero || or   $dst, $zero, $src
-  if ((MI.getOpcode() == Mips::ADDu) || (MI.getOpcode() == Mips::OR)) {
-    if (MI.getOperand(1).getReg() == Mips::ZERO) {
-      DstReg = MI.getOperand(0).getReg();
-      SrcReg = MI.getOperand(2).getReg();
-      return true;
-    } else if (MI.getOperand(2).getReg() == Mips::ZERO) {
-      DstReg = MI.getOperand(0).getReg();
-      SrcReg = MI.getOperand(1).getReg();
-      return true;
-    }
-  }
-
-  // mov $fpDst, $fpSrc
-  // mfc $gpDst, $fpSrc
-  // mtc $fpDst, $gpSrc
-  if (MI.getOpcode() == Mips::FMOV_S32 || 
-      MI.getOpcode() == Mips::FMOV_D32 || 
-      MI.getOpcode() == Mips::MFC1 || 
-      MI.getOpcode() == Mips::MTC1 ||
-      MI.getOpcode() == Mips::MOVCCRToCCR) {
-    DstReg = MI.getOperand(0).getReg();
-    SrcReg = MI.getOperand(1).getReg();
-    return true;
-  }
-
-  // addiu $dst, $src, 0
-  if (MI.getOpcode() == Mips::ADDiu) {
-    if ((MI.getOperand(1).isReg()) && (isZeroImm(MI.getOperand(2)))) {
-      DstReg = MI.getOperand(0).getReg();
-      SrcReg = MI.getOperand(1).getReg();
-      return true;
-    }
-  }
-
-  return false;
-}
-
-/// isLoadFromStackSlot - If the specified machine instruction is a direct
-/// load from a stack slot, return the virtual or physical register number of
-/// the destination along with the FrameIndex of the loaded stack slot.  If
-/// not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than loading from the stack slot.
-unsigned MipsInstrInfo::
-isLoadFromStackSlot(const MachineInstr *MI, int &FrameIndex) const 
-{
-  if ((MI->getOpcode() == Mips::LW) || (MI->getOpcode() == Mips::LWC1) ||
-      (MI->getOpcode() == Mips::LDC1)) {
-    if ((MI->getOperand(2).isFI()) && // is a stack slot
-        (MI->getOperand(1).isImm()) &&  // the imm is zero
-        (isZeroImm(MI->getOperand(1)))) {
-      FrameIndex = MI->getOperand(2).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-  }
-
-  return 0;
-}
-
-/// isStoreToStackSlot - If the specified machine instruction is a direct
-/// store to a stack slot, return the virtual or physical register number of
-/// the source reg along with the FrameIndex of the loaded stack slot.  If
-/// not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than storing to the stack slot.
-unsigned MipsInstrInfo::
-isStoreToStackSlot(const MachineInstr *MI, int &FrameIndex) const 
-{
-  if ((MI->getOpcode() == Mips::SW) || (MI->getOpcode() == Mips::SWC1) ||
-      (MI->getOpcode() == Mips::SDC1)) {
-    if ((MI->getOperand(2).isFI()) && // is a stack slot
-        (MI->getOperand(1).isImm()) &&  // the imm is zero
-        (isZeroImm(MI->getOperand(1)))) {
-      FrameIndex = MI->getOperand(2).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-  }
-  return 0;
-}
-
-/// insertNoop - If data hazard condition is found insert the target nop
-/// instruction.
-void MipsInstrInfo::
-insertNoop(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI) const 
-{
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-  BuildMI(MBB, MI, DL, get(Mips::NOP));
-}
-
-bool MipsInstrInfo::
-copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-             unsigned DestReg, unsigned SrcReg,
-             const TargetRegisterClass *DestRC,
-             const TargetRegisterClass *SrcRC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  if (DestRC != SrcRC) {
-
-    // Copy to/from FCR31 condition register
-    if ((DestRC == Mips::CPURegsRegisterClass) && 
-        (SrcRC == Mips::CCRRegisterClass))
-      BuildMI(MBB, I, DL, get(Mips::CFC1), DestReg).addReg(SrcReg);
-    else if ((DestRC == Mips::CCRRegisterClass) && 
-        (SrcRC == Mips::CPURegsRegisterClass))
-      BuildMI(MBB, I, DL, get(Mips::CTC1), DestReg).addReg(SrcReg);
-
-    // Moves between coprocessors and cpu
-    else if ((DestRC == Mips::CPURegsRegisterClass) && 
-        (SrcRC == Mips::FGR32RegisterClass))
-      BuildMI(MBB, I, DL, get(Mips::MFC1), DestReg).addReg(SrcReg);
-    else if ((DestRC == Mips::FGR32RegisterClass) &&
-             (SrcRC == Mips::CPURegsRegisterClass))
-      BuildMI(MBB, I, DL, get(Mips::MTC1), DestReg).addReg(SrcReg);
-
-    // Move from/to Hi/Lo registers
-    else if ((DestRC == Mips::HILORegisterClass) &&
-             (SrcRC == Mips::CPURegsRegisterClass)) {
-      unsigned Opc = (DestReg == Mips::HI) ? Mips::MTHI : Mips::MTLO;
-      BuildMI(MBB, I, DL, get(Opc), DestReg);
-    } else if ((SrcRC == Mips::HILORegisterClass) &&
-               (DestRC == Mips::CPURegsRegisterClass)) {
-      unsigned Opc = (SrcReg == Mips::HI) ? Mips::MFHI : Mips::MFLO;
-      BuildMI(MBB, I, DL, get(Opc), DestReg);
-
-    // Can't copy this register
-    } else
-      return false; 
-
-    return true;
-  }
-
-  if (DestRC == Mips::CPURegsRegisterClass)
-    BuildMI(MBB, I, DL, get(Mips::ADDu), DestReg).addReg(Mips::ZERO)
-      .addReg(SrcReg);
-  else if (DestRC == Mips::FGR32RegisterClass) 
-    BuildMI(MBB, I, DL, get(Mips::FMOV_S32), DestReg).addReg(SrcReg);
-  else if (DestRC == Mips::AFGR64RegisterClass)
-    BuildMI(MBB, I, DL, get(Mips::FMOV_D32), DestReg).addReg(SrcReg);
-  else if (DestRC == Mips::CCRRegisterClass)
-    BuildMI(MBB, I, DL, get(Mips::MOVCCRToCCR), DestReg).addReg(SrcReg);
-  else
-    // Can't copy this register
-    return false;
-  
-  return true;
-}
-
-void MipsInstrInfo::
-storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                    unsigned SrcReg, bool isKill, int FI, 
-                    const TargetRegisterClass *RC) const {
-  unsigned Opc;
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  if (RC == Mips::CPURegsRegisterClass) 
-    Opc = Mips::SW;
-  else if (RC == Mips::FGR32RegisterClass)
-    Opc = Mips::SWC1;
-  else {
-    assert(RC == Mips::AFGR64RegisterClass);
-    Opc = Mips::SDC1;
-  }
-  
-  BuildMI(MBB, I, DL, get(Opc)).addReg(SrcReg, getKillRegState(isKill))
-          .addImm(0).addFrameIndex(FI);
-}
-
-void MipsInstrInfo::
-loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                     unsigned DestReg, int FI,
-                     const TargetRegisterClass *RC) const 
-{
-  unsigned Opc;
-  if (RC == Mips::CPURegsRegisterClass) 
-    Opc = Mips::LW;
-  else if (RC == Mips::FGR32RegisterClass)
-    Opc = Mips::LWC1;
-  else {
-    assert(RC == Mips::AFGR64RegisterClass);
-    Opc = Mips::LDC1;
-  }
-  
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-  BuildMI(MBB, I, DL, get(Opc), DestReg).addImm(0).addFrameIndex(FI);
-}
-
-MachineInstr *MipsInstrInfo::
-foldMemoryOperandImpl(MachineFunction &MF,
-                      MachineInstr* MI,
-                      const SmallVectorImpl<unsigned> &Ops, int FI) const 
-{
-  if (Ops.size() != 1) return NULL;
-
-  MachineInstr *NewMI = NULL;
-
-  switch (MI->getOpcode()) {
-  case Mips::ADDu:
-    if ((MI->getOperand(0).isReg()) &&
-        (MI->getOperand(1).isReg()) &&
-        (MI->getOperand(1).getReg() == Mips::ZERO) &&
-        (MI->getOperand(2).isReg())) {
-      if (Ops[0] == 0) {    // COPY -> STORE
-        unsigned SrcReg = MI->getOperand(2).getReg();
-        bool isKill = MI->getOperand(2).isKill();
-        bool isUndef = MI->getOperand(2).isUndef();
-        NewMI = BuildMI(MF, MI->getDebugLoc(), get(Mips::SW))
-          .addReg(SrcReg, getKillRegState(isKill) | getUndefRegState(isUndef))
-          .addImm(0).addFrameIndex(FI);
-      } else {              // COPY -> LOAD
-        unsigned DstReg = MI->getOperand(0).getReg();
-        bool isDead = MI->getOperand(0).isDead();
-        bool isUndef = MI->getOperand(0).isUndef();
-        NewMI = BuildMI(MF, MI->getDebugLoc(), get(Mips::LW))
-          .addReg(DstReg, RegState::Define | getDeadRegState(isDead) |
-                  getUndefRegState(isUndef))
-          .addImm(0).addFrameIndex(FI);
-      }
-    }
-    break;
-  case Mips::FMOV_S32:
-  case Mips::FMOV_D32:
-    if ((MI->getOperand(0).isReg()) &&
-        (MI->getOperand(1).isReg())) {
-      const TargetRegisterClass 
-        *RC = RI.getRegClass(MI->getOperand(0).getReg());
-      unsigned StoreOpc, LoadOpc;
-
-      if (RC == Mips::FGR32RegisterClass) {
-        LoadOpc = Mips::LWC1; StoreOpc = Mips::SWC1;
-      } else {
-        assert(RC == Mips::AFGR64RegisterClass);
-        LoadOpc = Mips::LDC1; StoreOpc = Mips::SDC1;
-      }
-
-      if (Ops[0] == 0) {    // COPY -> STORE
-        unsigned SrcReg = MI->getOperand(1).getReg();
-        bool isKill = MI->getOperand(1).isKill();
-        bool isUndef = MI->getOperand(2).isUndef();
-        NewMI = BuildMI(MF, MI->getDebugLoc(), get(StoreOpc))
-          .addReg(SrcReg, getKillRegState(isKill) | getUndefRegState(isUndef))
-          .addImm(0).addFrameIndex(FI) ;
-      } else {              // COPY -> LOAD
-        unsigned DstReg = MI->getOperand(0).getReg();
-        bool isDead = MI->getOperand(0).isDead();
-        bool isUndef = MI->getOperand(0).isUndef();
-        NewMI = BuildMI(MF, MI->getDebugLoc(), get(LoadOpc))
-          .addReg(DstReg, RegState::Define | getDeadRegState(isDead) |
-                  getUndefRegState(isUndef))
-          .addImm(0).addFrameIndex(FI);
-      }
-    }
-    break;
-  }
-
-  return NewMI;
-}
-
-//===----------------------------------------------------------------------===//
-// Branch Analysis
-//===----------------------------------------------------------------------===//
-
-/// GetCondFromBranchOpc - Return the Mips CC that matches 
-/// the correspondent Branch instruction opcode.
-static Mips::CondCode GetCondFromBranchOpc(unsigned BrOpc) 
-{
-  switch (BrOpc) {
-  default: return Mips::COND_INVALID;
-  case Mips::BEQ  : return Mips::COND_E;
-  case Mips::BNE  : return Mips::COND_NE;
-  case Mips::BGTZ : return Mips::COND_GZ;
-  case Mips::BGEZ : return Mips::COND_GEZ;
-  case Mips::BLTZ : return Mips::COND_LZ;
-  case Mips::BLEZ : return Mips::COND_LEZ;
-
-  // We dont do fp branch analysis yet!  
-  case Mips::BC1T : 
-  case Mips::BC1F : return Mips::COND_INVALID;
-  }
-}
-
-/// GetCondBranchFromCond - Return the Branch instruction
-/// opcode that matches the cc.
-unsigned Mips::GetCondBranchFromCond(Mips::CondCode CC) 
-{
-  switch (CC) {
-  default: llvm_unreachable("Illegal condition code!");
-  case Mips::COND_E   : return Mips::BEQ;
-  case Mips::COND_NE  : return Mips::BNE;
-  case Mips::COND_GZ  : return Mips::BGTZ;
-  case Mips::COND_GEZ : return Mips::BGEZ;
-  case Mips::COND_LZ  : return Mips::BLTZ;
-  case Mips::COND_LEZ : return Mips::BLEZ;
-
-  case Mips::FCOND_F:
-  case Mips::FCOND_UN:
-  case Mips::FCOND_EQ:
-  case Mips::FCOND_UEQ:
-  case Mips::FCOND_OLT:
-  case Mips::FCOND_ULT:
-  case Mips::FCOND_OLE:
-  case Mips::FCOND_ULE:
-  case Mips::FCOND_SF:
-  case Mips::FCOND_NGLE:
-  case Mips::FCOND_SEQ:
-  case Mips::FCOND_NGL:
-  case Mips::FCOND_LT:
-  case Mips::FCOND_NGE:
-  case Mips::FCOND_LE:
-  case Mips::FCOND_NGT: return Mips::BC1T;
-
-  case Mips::FCOND_T:
-  case Mips::FCOND_OR:
-  case Mips::FCOND_NEQ:
-  case Mips::FCOND_OGL:
-  case Mips::FCOND_UGE:
-  case Mips::FCOND_OGE:
-  case Mips::FCOND_UGT:
-  case Mips::FCOND_OGT:
-  case Mips::FCOND_ST:
-  case Mips::FCOND_GLE:
-  case Mips::FCOND_SNE:
-  case Mips::FCOND_GL:
-  case Mips::FCOND_NLT:
-  case Mips::FCOND_GE:
-  case Mips::FCOND_NLE:
-  case Mips::FCOND_GT: return Mips::BC1F;
-  }
-}
-
-/// GetOppositeBranchCondition - Return the inverse of the specified 
-/// condition, e.g. turning COND_E to COND_NE.
-Mips::CondCode Mips::GetOppositeBranchCondition(Mips::CondCode CC) 
-{
-  switch (CC) {
-  default: llvm_unreachable("Illegal condition code!");
-  case Mips::COND_E   : return Mips::COND_NE;
-  case Mips::COND_NE  : return Mips::COND_E;
-  case Mips::COND_GZ  : return Mips::COND_LEZ;
-  case Mips::COND_GEZ : return Mips::COND_LZ;
-  case Mips::COND_LZ  : return Mips::COND_GEZ;
-  case Mips::COND_LEZ : return Mips::COND_GZ;
-  case Mips::FCOND_F  : return Mips::FCOND_T;
-  case Mips::FCOND_UN : return Mips::FCOND_OR;
-  case Mips::FCOND_EQ : return Mips::FCOND_NEQ;
-  case Mips::FCOND_UEQ: return Mips::FCOND_OGL;
-  case Mips::FCOND_OLT: return Mips::FCOND_UGE;
-  case Mips::FCOND_ULT: return Mips::FCOND_OGE;
-  case Mips::FCOND_OLE: return Mips::FCOND_UGT;
-  case Mips::FCOND_ULE: return Mips::FCOND_OGT;
-  case Mips::FCOND_SF:  return Mips::FCOND_ST;
-  case Mips::FCOND_NGLE:return Mips::FCOND_GLE;
-  case Mips::FCOND_SEQ: return Mips::FCOND_SNE;
-  case Mips::FCOND_NGL: return Mips::FCOND_GL;
-  case Mips::FCOND_LT:  return Mips::FCOND_NLT;
-  case Mips::FCOND_NGE: return Mips::FCOND_GE;
-  case Mips::FCOND_LE:  return Mips::FCOND_NLE;
-  case Mips::FCOND_NGT: return Mips::FCOND_GT;
-  }
-}
-
-bool MipsInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB, 
-                                  MachineBasicBlock *&TBB,
-                                  MachineBasicBlock *&FBB,
-                                  SmallVectorImpl<MachineOperand> &Cond,
-                                  bool AllowModify) const 
-{
-  // If the block has no terminators, it just falls into the block after it.
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I))
-    return false;
-  
-  // Get the last instruction in the block.
-  MachineInstr *LastInst = I;
-  
-  // If there is only one terminator instruction, process it.
-  unsigned LastOpc = LastInst->getOpcode();
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I)) {
-    if (!LastInst->getDesc().isBranch())
-      return true;
-
-    // Unconditional branch
-    if (LastOpc == Mips::J) {
-      TBB = LastInst->getOperand(0).getMBB();
-      return false;
-    }
-
-    Mips::CondCode BranchCode = GetCondFromBranchOpc(LastInst->getOpcode());
-    if (BranchCode == Mips::COND_INVALID)
-      return true;  // Can't handle indirect branch.
-
-    // Conditional branch
-    // Block ends with fall-through condbranch.
-    if (LastOpc != Mips::COND_INVALID) {
-      int LastNumOp = LastInst->getNumOperands();
-
-      TBB = LastInst->getOperand(LastNumOp-1).getMBB();
-      Cond.push_back(MachineOperand::CreateImm(BranchCode));
-
-      for (int i=0; i<LastNumOp-1; i++) {
-        Cond.push_back(LastInst->getOperand(i));
-      }
-
-      return false;
-    }
-  }
-  
-  // Get the instruction before it if it is a terminator.
-  MachineInstr *SecondLastInst = I;
-  
-  // If there are three terminators, we don't know what sort of block this is.
-  if (SecondLastInst && I != MBB.begin() && isUnpredicatedTerminator(--I))
-    return true;
-
-  // If the block ends with Mips::J and a Mips::BNE/Mips::BEQ, handle it.
-  unsigned SecondLastOpc    = SecondLastInst->getOpcode();
-  Mips::CondCode BranchCode = GetCondFromBranchOpc(SecondLastOpc);
-
-  if (BranchCode != Mips::COND_INVALID && LastOpc == Mips::J) {
-    int SecondNumOp = SecondLastInst->getNumOperands();
-
-    TBB = SecondLastInst->getOperand(SecondNumOp-1).getMBB();
-    Cond.push_back(MachineOperand::CreateImm(BranchCode));
-
-    for (int i=0; i<SecondNumOp-1; i++) {
-      Cond.push_back(SecondLastInst->getOperand(i));
-    }
-
-    FBB = LastInst->getOperand(0).getMBB();
-    return false;
-  }
-  
-  // If the block ends with two unconditional branches, handle it. The last 
-  // one is not executed, so remove it.
-  if ((SecondLastOpc == Mips::J) && (LastOpc == Mips::J)) {
-    TBB = SecondLastInst->getOperand(0).getMBB();
-    I = LastInst;
-    if (AllowModify)
-      I->eraseFromParent();
-    return false;
-  }
-
-  // Otherwise, can't handle this.
-  return true;
-}
-
-unsigned MipsInstrInfo::
-InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, 
-             MachineBasicBlock *FBB,
-             const SmallVectorImpl<MachineOperand> &Cond) const {
-  // FIXME this should probably have a DebugLoc argument
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-  // Shouldn't be a fall through.
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-  assert((Cond.size() == 3 || Cond.size() == 2 || Cond.size() == 0) &&
-         "Mips branch conditions can have two|three components!");
-
-  if (FBB == 0) { // One way branch.
-    if (Cond.empty()) {
-      // Unconditional branch?
-      BuildMI(&MBB, dl, get(Mips::J)).addMBB(TBB);
-    } else {
-      // Conditional branch.
-      unsigned Opc = GetCondBranchFromCond((Mips::CondCode)Cond[0].getImm());
-      const TargetInstrDesc &TID = get(Opc);
-
-      if (TID.getNumOperands() == 3)
-        BuildMI(&MBB, dl, TID).addReg(Cond[1].getReg())
-                          .addReg(Cond[2].getReg())
-                          .addMBB(TBB);
-      else
-        BuildMI(&MBB, dl, TID).addReg(Cond[1].getReg())
-                          .addMBB(TBB);
-
-    }                             
-    return 1;
-  }
-  
-  // Two-way Conditional branch.
-  unsigned Opc = GetCondBranchFromCond((Mips::CondCode)Cond[0].getImm());
-  const TargetInstrDesc &TID = get(Opc);
-
-  if (TID.getNumOperands() == 3)
-    BuildMI(&MBB, dl, TID).addReg(Cond[1].getReg()).addReg(Cond[2].getReg())
-                      .addMBB(TBB);
-  else
-    BuildMI(&MBB, dl, TID).addReg(Cond[1].getReg()).addMBB(TBB);
-
-  BuildMI(&MBB, dl, get(Mips::J)).addMBB(FBB);
-  return 2;
-}
-
-unsigned MipsInstrInfo::
-RemoveBranch(MachineBasicBlock &MBB) const 
-{
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin()) return 0;
-  --I;
-  if (I->getOpcode() != Mips::J && 
-      GetCondFromBranchOpc(I->getOpcode()) == Mips::COND_INVALID)
-    return 0;
-  
-  // Remove the branch.
-  I->eraseFromParent();
-  
-  I = MBB.end();
-  
-  if (I == MBB.begin()) return 1;
-  --I;
-  if (GetCondFromBranchOpc(I->getOpcode()) == Mips::COND_INVALID)
-    return 1;
-  
-  // Remove the branch.
-  I->eraseFromParent();
-  return 2;
-}
-
-/// BlockHasNoFallThrough - Analyze if MachineBasicBlock does not
-/// fall-through into its successor block.
-bool MipsInstrInfo::
-BlockHasNoFallThrough(const MachineBasicBlock &MBB) const 
-{
-  if (MBB.empty()) return false;
-  
-  switch (MBB.back().getOpcode()) {
-  case Mips::RET:     // Return.
-  case Mips::JR:      // Indirect branch.
-  case Mips::J:       // Uncond branch.
-    return true;
-  default: return false;
-  }
-}
-
-/// ReverseBranchCondition - Return the inverse opcode of the 
-/// specified Branch instruction.
-bool MipsInstrInfo::
-ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const 
-{
-  assert( (Cond.size() == 3 || Cond.size() == 2) && 
-          "Invalid Mips branch condition!");
-  Cond[0].setImm(GetOppositeBranchCondition((Mips::CondCode)Cond[0].getImm()));
-  return false;
-}
-
-/// getGlobalBaseReg - Return a virtual register initialized with the
-/// the global base register value. Output instructions required to
-/// initialize the register in the function entry block, if necessary.
-///
-unsigned MipsInstrInfo::getGlobalBaseReg(MachineFunction *MF) const {
-  MipsFunctionInfo *MipsFI = MF->getInfo<MipsFunctionInfo>();
-  unsigned GlobalBaseReg = MipsFI->getGlobalBaseReg();
-  if (GlobalBaseReg != 0)
-    return GlobalBaseReg;
-
-  // Insert the set of GlobalBaseReg into the first MBB of the function
-  MachineBasicBlock &FirstMBB = MF->front();
-  MachineBasicBlock::iterator MBBI = FirstMBB.begin();
-  MachineRegisterInfo &RegInfo = MF->getRegInfo();
-  const TargetInstrInfo *TII = MF->getTarget().getInstrInfo();
-
-  GlobalBaseReg = RegInfo.createVirtualRegister(Mips::CPURegsRegisterClass);
-  bool Ok = TII->copyRegToReg(FirstMBB, MBBI, GlobalBaseReg, Mips::GP,
-                              Mips::CPURegsRegisterClass,
-                              Mips::CPURegsRegisterClass);
-  assert(Ok && "Couldn't assign to global base register!");
-  Ok = Ok; // Silence warning when assertions are turned off.
-  RegInfo.addLiveIn(Mips::GP);
-
-  MipsFI->setGlobalBaseReg(GlobalBaseReg);
-  return GlobalBaseReg;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.h b/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.h
deleted file mode 100644
index ebb9f8a..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.h
+++ /dev/null
@@ -1,220 +0,0 @@
-//===- MipsInstrInfo.h - Mips Instruction Information -----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Mips implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MIPSINSTRUCTIONINFO_H
-#define MIPSINSTRUCTIONINFO_H
-
-#include "Mips.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "MipsRegisterInfo.h"
-
-namespace llvm {
-
-namespace Mips {
-
-  // Mips Branch Codes
-  enum FPBranchCode {
-    BRANCH_F,
-    BRANCH_T,
-    BRANCH_FL,
-    BRANCH_TL,
-    BRANCH_INVALID
-  };
-
-  // Mips Condition Codes
-  enum CondCode {
-    // To be used with float branch True
-    FCOND_F,
-    FCOND_UN,
-    FCOND_EQ,
-    FCOND_UEQ,
-    FCOND_OLT,
-    FCOND_ULT,
-    FCOND_OLE,
-    FCOND_ULE,
-    FCOND_SF,
-    FCOND_NGLE,
-    FCOND_SEQ,
-    FCOND_NGL,
-    FCOND_LT,
-    FCOND_NGE,
-    FCOND_LE,
-    FCOND_NGT,
-
-    // To be used with float branch False
-    // This conditions have the same mnemonic as the
-    // above ones, but are used with a branch False;
-    FCOND_T,
-    FCOND_OR,
-    FCOND_NEQ,
-    FCOND_OGL,
-    FCOND_UGE,
-    FCOND_OGE,
-    FCOND_UGT,
-    FCOND_OGT,
-    FCOND_ST,
-    FCOND_GLE,
-    FCOND_SNE,
-    FCOND_GL,
-    FCOND_NLT,
-    FCOND_GE,
-    FCOND_NLE,
-    FCOND_GT,
-
-    // Only integer conditions
-    COND_E,
-    COND_GZ,
-    COND_GEZ,
-    COND_LZ,
-    COND_LEZ,
-    COND_NE,
-    COND_INVALID
-  };
-  
-  // Turn condition code into conditional branch opcode.
-  unsigned GetCondBranchFromCond(CondCode CC);
-
-  /// GetOppositeBranchCondition - Return the inverse of the specified cond,
-  /// e.g. turning COND_E to COND_NE.
-  CondCode GetOppositeBranchCondition(Mips::CondCode CC);
-
-  /// MipsCCToString - Map each FP condition code to its string
-  inline static const char *MipsFCCToString(Mips::CondCode CC) 
-  {
-    switch (CC) {
-      default: llvm_unreachable("Unknown condition code");
-      case FCOND_F:
-      case FCOND_T:   return "f";
-      case FCOND_UN:
-      case FCOND_OR:  return "un";
-      case FCOND_EQ: 
-      case FCOND_NEQ: return "eq";
-      case FCOND_UEQ:
-      case FCOND_OGL: return "ueq";
-      case FCOND_OLT:
-      case FCOND_UGE: return "olt";
-      case FCOND_ULT:
-      case FCOND_OGE: return "ult";
-      case FCOND_OLE:
-      case FCOND_UGT: return "ole";
-      case FCOND_ULE:
-      case FCOND_OGT: return "ule";
-      case FCOND_SF:
-      case FCOND_ST:  return "sf";
-      case FCOND_NGLE:
-      case FCOND_GLE: return "ngle";
-      case FCOND_SEQ:
-      case FCOND_SNE: return "seq";
-      case FCOND_NGL:
-      case FCOND_GL:  return "ngl";
-      case FCOND_LT:
-      case FCOND_NLT: return "lt";
-      case FCOND_NGE:
-      case FCOND_GE:  return "ge";
-      case FCOND_LE:
-      case FCOND_NLE: return "nle";
-      case FCOND_NGT:
-      case FCOND_GT:  return "gt";
-    }
-  }
-}
-
-class MipsInstrInfo : public TargetInstrInfoImpl {
-  MipsTargetMachine &TM;
-  const MipsRegisterInfo RI;
-public:
-  explicit MipsInstrInfo(MipsTargetMachine &TM);
-
-  /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-  /// such, whenever a client has an instance of instruction info, it should
-  /// always be able to get register info as well (through this method).
-  ///
-  virtual const MipsRegisterInfo &getRegisterInfo() const { return RI; }
-
-  /// Return true if the instruction is a register to register move and return
-  /// the source and dest operands and their sub-register indices by reference.
-  virtual bool isMoveInstr(const MachineInstr &MI,
-                           unsigned &SrcReg, unsigned &DstReg,
-                           unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-  
-  /// isLoadFromStackSlot - If the specified machine instruction is a direct
-  /// load from a stack slot, return the virtual or physical register number of
-  /// the destination along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than loading from the stack slot.
-  virtual unsigned isLoadFromStackSlot(const MachineInstr *MI,
-                                       int &FrameIndex) const;
-  
-  /// isStoreToStackSlot - If the specified machine instruction is a direct
-  /// store to a stack slot, return the virtual or physical register number of
-  /// the source reg along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than storing to the stack slot.
-  virtual unsigned isStoreToStackSlot(const MachineInstr *MI,
-                                      int &FrameIndex) const;
- 
-  /// Branch Analysis
-  virtual bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
-                             MachineBasicBlock *&FBB,
-                             SmallVectorImpl<MachineOperand> &Cond,
-                             bool AllowModify) const;
-  virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const;
-  virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                                MachineBasicBlock *FBB,
-                            const SmallVectorImpl<MachineOperand> &Cond) const;
-  virtual bool copyRegToReg(MachineBasicBlock &MBB, 
-                            MachineBasicBlock::iterator I,
-                            unsigned DestReg, unsigned SrcReg,
-                            const TargetRegisterClass *DestRC,
-                            const TargetRegisterClass *SrcRC) const;
-  virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MBBI,
-                                   unsigned SrcReg, bool isKill, int FrameIndex,
-                                   const TargetRegisterClass *RC) const;
-
-  virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MBBI,
-                                    unsigned DestReg, int FrameIndex,
-                                    const TargetRegisterClass *RC) const;
-
-  virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                              MachineInstr* MI,
-                                           const SmallVectorImpl<unsigned> &Ops,
-                                              int FrameIndex) const;
-
-  virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                              MachineInstr* MI,
-                                           const SmallVectorImpl<unsigned> &Ops,
-                                              MachineInstr* LoadMI) const {
-    return 0;
-  }
-  
-  virtual bool BlockHasNoFallThrough(const MachineBasicBlock &MBB) const;
-  virtual
-  bool ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const;
-
-  /// Insert nop instruction when hazard condition is found
-  virtual void insertNoop(MachineBasicBlock &MBB, 
-                          MachineBasicBlock::iterator MI) const;
-
-  /// getGlobalBaseReg - Return a virtual register initialized with the
-  /// the global base register value. Output instructions required to
-  /// initialize the register in the function entry block, if necessary.
-  ///
-  unsigned getGlobalBaseReg(MachineFunction *MF) const;
-};
-
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.td b/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.td
deleted file mode 100644
index b9276fe..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.td
+++ /dev/null
@@ -1,707 +0,0 @@
-//===- MipsInstrInfo.td - Mips Register defs --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Instruction format superclass
-//===----------------------------------------------------------------------===//
-
-include "MipsInstrFormats.td"
-
-//===----------------------------------------------------------------------===//
-// Mips profiles and nodes
-//===----------------------------------------------------------------------===//
-
-def SDT_MipsRet          : SDTypeProfile<0, 1, [SDTCisInt<0>]>;
-def SDT_MipsJmpLink      : SDTypeProfile<0, 1, [SDTCisVT<0, iPTR>]>;
-def SDT_MipsSelectCC     : SDTypeProfile<1, 3, [SDTCisSameAs<0, 2>, 
-                                         SDTCisSameAs<2, 3>, SDTCisInt<1>]>;
-def SDT_MipsCMov         : SDTypeProfile<1, 4, [SDTCisSameAs<0, 1>, 
-                                         SDTCisSameAs<1, 2>, SDTCisSameAs<3, 4>,
-                                         SDTCisInt<4>]>;
-def SDT_MipsCallSeqStart : SDCallSeqStart<[SDTCisVT<0, i32>]>;
-def SDT_MipsCallSeqEnd   : SDCallSeqEnd<[SDTCisVT<0, i32>, SDTCisVT<1, i32>]>;
-
-// Call
-def MipsJmpLink : SDNode<"MipsISD::JmpLink",SDT_MipsJmpLink, [SDNPHasChain,
-                         SDNPOutFlag]>;
-
-// Hi and Lo nodes are used to handle global addresses. Used on 
-// MipsISelLowering to lower stuff like GlobalAddress, ExternalSymbol 
-// static model. (nothing to do with Mips Registers Hi and Lo)
-def MipsHi    : SDNode<"MipsISD::Hi", SDTIntUnaryOp>;
-def MipsLo    : SDNode<"MipsISD::Lo", SDTIntUnaryOp>;
-def MipsGPRel : SDNode<"MipsISD::GPRel", SDTIntUnaryOp>;
-
-// Return
-def MipsRet : SDNode<"MipsISD::Ret", SDT_MipsRet, [SDNPHasChain, 
-                     SDNPOptInFlag]>;
-
-// These are target-independent nodes, but have target-specific formats.
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_MipsCallSeqStart,
-                           [SDNPHasChain, SDNPOutFlag]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END", SDT_MipsCallSeqEnd,
-                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-// Select Condition Code
-def MipsSelectCC  : SDNode<"MipsISD::SelectCC", SDT_MipsSelectCC>;
-
-// Conditional Move
-def MipsCMov      : SDNode<"MipsISD::CMov", SDT_MipsCMov>;
-
-//===----------------------------------------------------------------------===//
-// Mips Instruction Predicate Definitions.
-//===----------------------------------------------------------------------===//
-def HasSEInReg  : Predicate<"Subtarget.hasSEInReg()">;
-def HasBitCount : Predicate<"Subtarget.hasBitCount()">;
-def HasSwap     : Predicate<"Subtarget.hasSwap()">;
-def HasCondMov  : Predicate<"Subtarget.hasCondMov()">;
-
-//===----------------------------------------------------------------------===//
-// Mips Operand, Complex Patterns and Transformations Definitions.
-//===----------------------------------------------------------------------===//
-
-// Instruction operand types
-def brtarget    : Operand<OtherVT>;
-def calltarget  : Operand<i32>;
-def simm16      : Operand<i32>;
-def shamt       : Operand<i32>;
-
-// Unsigned Operand
-def uimm16      : Operand<i32> {
-  let PrintMethod = "printUnsignedImm";
-}
-
-// Address operand
-def mem : Operand<i32> {
-  let PrintMethod = "printMemOperand";
-  let MIOperandInfo = (ops simm16, CPURegs);
-}
-
-// Transformation Function - get the lower 16 bits.
-def LO16 : SDNodeXForm<imm, [{
-  return getI32Imm((unsigned)N->getZExtValue() & 0xFFFF);
-}]>;
-
-// Transformation Function - get the higher 16 bits.
-def HI16 : SDNodeXForm<imm, [{
-  return getI32Imm((unsigned)N->getZExtValue() >> 16);
-}]>;
-
-// Node immediate fits as 16-bit sign extended on target immediate.
-// e.g. addi, andi
-def immSExt16  : PatLeaf<(imm), [{
-  if (N->getValueType(0) == MVT::i32)
-    return (int32_t)N->getZExtValue() == (short)N->getZExtValue();
-  else
-    return (int64_t)N->getZExtValue() == (short)N->getZExtValue();
-}]>;
-
-// Node immediate fits as 16-bit zero extended on target immediate.
-// The LO16 param means that only the lower 16 bits of the node
-// immediate are caught.
-// e.g. addiu, sltiu
-def immZExt16  : PatLeaf<(imm), [{
-  if (N->getValueType(0) == MVT::i32)
-    return (uint32_t)N->getZExtValue() == (unsigned short)N->getZExtValue();
-  else
-    return (uint64_t)N->getZExtValue() == (unsigned short)N->getZExtValue();
-}], LO16>;
-
-// shamt field must fit in 5 bits.
-def immZExt5 : PatLeaf<(imm), [{
-  return N->getZExtValue() == ((N->getZExtValue()) & 0x1f) ;
-}]>;
-
-// Mips Address Mode! SDNode frameindex could possibily be a match
-// since load and store instructions from stack used it.
-def addr : ComplexPattern<i32, 2, "SelectAddr", [frameindex], []>;
-
-//===----------------------------------------------------------------------===//
-// Instructions specific format
-//===----------------------------------------------------------------------===//
-
-// Arithmetic 3 register operands
-let isCommutable = 1 in
-class ArithR<bits<6> op, bits<6> func, string instr_asm, SDNode OpNode,
-             InstrItinClass itin>:
-  FR< op,
-      func,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, CPURegs:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (OpNode CPURegs:$b, CPURegs:$c))], itin>;
-
-let isCommutable = 1 in
-class ArithOverflowR<bits<6> op, bits<6> func, string instr_asm>:
-  FR< op,
-      func,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, CPURegs:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [], IIAlu>;
-
-// Arithmetic 2 register operands
-class ArithI<bits<6> op, string instr_asm, SDNode OpNode,
-             Operand Od, PatLeaf imm_type> :
-  FI< op,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, Od:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (OpNode CPURegs:$b, imm_type:$c))], IIAlu>;
-
-class ArithOverflowI<bits<6> op, string instr_asm, SDNode OpNode,
-             Operand Od, PatLeaf imm_type> :
-  FI< op,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, Od:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [], IIAlu>;
-
-// Arithmetic Multiply ADD/SUB
-let rd=0 in
-class MArithR<bits<6> func, string instr_asm> :
-  FR< 0x1c,
-      func,
-      (outs CPURegs:$rs),
-      (ins CPURegs:$rt),
-      !strconcat(instr_asm, "\t$rs, $rt"),
-      [], IIImul>;
-
-//  Logical
-class LogicR<bits<6> func, string instr_asm, SDNode OpNode>:
-  FR< 0x00,
-      func,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, CPURegs:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (OpNode CPURegs:$b, CPURegs:$c))], IIAlu>;
-
-class LogicI<bits<6> op, string instr_asm, SDNode OpNode>:
-  FI< op,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, uimm16:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (OpNode CPURegs:$b, immZExt16:$c))], IIAlu>;
-
-class LogicNOR<bits<6> op, bits<6> func, string instr_asm>:
-  FR< op,
-      func,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, CPURegs:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (not (or CPURegs:$b, CPURegs:$c)))], IIAlu>;
-
-// Shifts
-let rt = 0 in
-class LogicR_shift_imm<bits<6> func, string instr_asm, SDNode OpNode>:
-  FR< 0x00,
-      func,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, shamt:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (OpNode CPURegs:$b, immZExt5:$c))], IIAlu>;
-
-class LogicR_shift_reg<bits<6> func, string instr_asm, SDNode OpNode>:
-  FR< 0x00,
-      func,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, CPURegs:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (OpNode CPURegs:$b, CPURegs:$c))], IIAlu>;
-
-// Load Upper Imediate
-class LoadUpper<bits<6> op, string instr_asm>:
-  FI< op,
-      (outs CPURegs:$dst),
-      (ins uimm16:$imm),
-      !strconcat(instr_asm, "\t$dst, $imm"),
-      [], IIAlu>;
-
-// Memory Load/Store
-let canFoldAsLoad = 1, hasDelaySlot = 1 in
-class LoadM<bits<6> op, string instr_asm, PatFrag OpNode>:
-  FI< op,
-      (outs CPURegs:$dst),
-      (ins mem:$addr),
-      !strconcat(instr_asm, "\t$dst, $addr"),
-      [(set CPURegs:$dst, (OpNode addr:$addr))], IILoad>;
-
-class StoreM<bits<6> op, string instr_asm, PatFrag OpNode>:
-  FI< op,
-      (outs),
-      (ins CPURegs:$dst, mem:$addr),
-      !strconcat(instr_asm, "\t$dst, $addr"),
-      [(OpNode CPURegs:$dst, addr:$addr)], IIStore>;
-
-// Conditional Branch
-let isBranch = 1, isTerminator=1, hasDelaySlot = 1 in {
-class CBranch<bits<6> op, string instr_asm, PatFrag cond_op>:
-  FI< op,
-      (outs),
-      (ins CPURegs:$a, CPURegs:$b, brtarget:$offset),
-      !strconcat(instr_asm, "\t$a, $b, $offset"),
-      [(brcond (cond_op CPURegs:$a, CPURegs:$b), bb:$offset)],
-      IIBranch>;
-
-
-class CBranchZero<bits<6> op, string instr_asm, PatFrag cond_op>:
-  FI< op,
-      (outs),
-      (ins CPURegs:$src, brtarget:$offset),
-      !strconcat(instr_asm, "\t$src, $offset"),
-      [(brcond (cond_op CPURegs:$src, 0), bb:$offset)],
-      IIBranch>;
-}
-
-// SetCC
-class SetCC_R<bits<6> op, bits<6> func, string instr_asm,
-      PatFrag cond_op>:
-  FR< op,
-      func,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, CPURegs:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (cond_op CPURegs:$b, CPURegs:$c))],
-      IIAlu>;
-
-class SetCC_I<bits<6> op, string instr_asm, PatFrag cond_op,
-      Operand Od, PatLeaf imm_type>:
-  FI< op,
-      (outs CPURegs:$dst),
-      (ins CPURegs:$b, Od:$c),
-      !strconcat(instr_asm, "\t$dst, $b, $c"),
-      [(set CPURegs:$dst, (cond_op CPURegs:$b, imm_type:$c))],
-      IIAlu>;
-
-// Unconditional branch
-let isBranch=1, isTerminator=1, isBarrier=1, hasDelaySlot = 1 in
-class JumpFJ<bits<6> op, string instr_asm>:
-  FJ< op,
-      (outs),
-      (ins brtarget:$target),
-      !strconcat(instr_asm, "\t$target"),
-      [(br bb:$target)], IIBranch>;
-
-let isBranch=1, isTerminator=1, isBarrier=1, rd=0, hasDelaySlot = 1 in
-class JumpFR<bits<6> op, bits<6> func, string instr_asm>:
-  FR< op,
-      func,
-      (outs),
-      (ins CPURegs:$target),
-      !strconcat(instr_asm, "\t$target"),
-      [(brind CPURegs:$target)], IIBranch>;
-
-// Jump and Link (Call)
-let isCall=1, hasDelaySlot=1,
-  // All calls clobber the non-callee saved registers...
-  Defs = [AT, V0, V1, A0, A1, A2, A3, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, 
-          K0, K1, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13,
-          F14, F15, F16, F17, F18, F19], Uses = [GP] in {
-  class JumpLink<bits<6> op, string instr_asm>:
-    FJ< op,
-        (outs),
-        (ins calltarget:$target),
-        !strconcat(instr_asm, "\t$target"),
-        [(MipsJmpLink imm:$target)], IIBranch>;
-
-  let rd=31 in
-  class JumpLinkReg<bits<6> op, bits<6> func, string instr_asm>:
-    FR< op,
-        func,
-        (outs),
-        (ins CPURegs:$rs),
-        !strconcat(instr_asm, "\t$rs"),
-        [(MipsJmpLink CPURegs:$rs)], IIBranch>;
-
-  class BranchLink<string instr_asm>:
-    FI< 0x1,
-        (outs),
-        (ins CPURegs:$rs, brtarget:$target),
-        !strconcat(instr_asm, "\t$rs, $target"),
-        [], IIBranch>;
-}
-
-// Mul, Div
-class MulDiv<bits<6> func, string instr_asm, InstrItinClass itin>:
-  FR< 0x00,
-      func,
-      (outs),
-      (ins CPURegs:$a, CPURegs:$b),
-      !strconcat(instr_asm, "\t$a, $b"),
-      [], itin>;
-
-// Move from Hi/Lo
-class MoveFromLOHI<bits<6> func, string instr_asm>:
-  FR< 0x00,
-      func,
-      (outs CPURegs:$dst),
-      (ins),
-      !strconcat(instr_asm, "\t$dst"),
-      [], IIHiLo>;
-
-class MoveToLOHI<bits<6> func, string instr_asm>:
-  FR< 0x00,
-      func,
-      (outs),
-      (ins CPURegs:$src),
-      !strconcat(instr_asm, "\t$src"),
-      [], IIHiLo>;
-
-class EffectiveAddress<string instr_asm> :
-  FI<0x09,
-     (outs CPURegs:$dst),
-     (ins mem:$addr),
-     instr_asm,
-     [(set CPURegs:$dst, addr:$addr)], IIAlu>;
-
-// Count Leading Ones/Zeros in Word
-class CountLeading<bits<6> func, string instr_asm, SDNode CountOp>:
-  FR< 0x1c, func, (outs CPURegs:$dst), (ins CPURegs:$src),
-      !strconcat(instr_asm, "\t$dst, $src"), 
-      [(set CPURegs:$dst, (CountOp CPURegs:$src))], IIAlu>;
-
-// Sign Extend in Register.
-class SignExtInReg<bits<6> func, string instr_asm, ValueType vt>:
-  FR< 0x3f, func, (outs CPURegs:$dst), (ins CPURegs:$src),
-      !strconcat(instr_asm, "\t$dst, $src"),
-      [(set CPURegs:$dst, (sext_inreg CPURegs:$src, vt))], NoItinerary>;
-
-// Byte Swap
-class ByteSwap<bits<6> func, string instr_asm>:
-  FR< 0x1f, func, (outs CPURegs:$dst), (ins CPURegs:$src),
-      !strconcat(instr_asm, "\t$dst, $src"),
-      [(set CPURegs:$dst, (bswap CPURegs:$src))], NoItinerary>;
-
-// Conditional Move
-class CondMov<bits<6> func, string instr_asm, PatLeaf MovCode>:
-  FR< 0x00, func, (outs CPURegs:$dst), (ins CPURegs:$F, CPURegs:$T, 
-      CPURegs:$cond), !strconcat(instr_asm, "\t$dst, $T, $cond"), 
-      [(set CPURegs:$dst, (MipsCMov CPURegs:$F, CPURegs:$T, 
-                           CPURegs:$cond, MovCode))], NoItinerary>;
-
-//===----------------------------------------------------------------------===//
-// Pseudo instructions
-//===----------------------------------------------------------------------===//
-
-// As stack alignment is always done with addiu, we need a 16-bit immediate
-let Defs = [SP], Uses = [SP] in {
-def ADJCALLSTACKDOWN : MipsPseudo<(outs), (ins uimm16:$amt),
-                                  "!ADJCALLSTACKDOWN $amt",
-                                  [(callseq_start timm:$amt)]>;
-def ADJCALLSTACKUP   : MipsPseudo<(outs), (ins uimm16:$amt1, uimm16:$amt2),
-                                  "!ADJCALLSTACKUP $amt1",
-                                  [(callseq_end timm:$amt1, timm:$amt2)]>;
-}
-
-// Some assembly macros need to avoid pseudoinstructions and assembler
-// automatic reodering, we should reorder ourselves.
-def MACRO     : MipsPseudo<(outs), (ins), ".set\tmacro",     []>;
-def REORDER   : MipsPseudo<(outs), (ins), ".set\treorder",   []>;
-def NOMACRO   : MipsPseudo<(outs), (ins), ".set\tnomacro",   []>;
-def NOREORDER : MipsPseudo<(outs), (ins), ".set\tnoreorder", []>;
-
-// When handling PIC code the assembler needs .cpload and .cprestore
-// directives. If the real instructions corresponding these directives
-// are used, we have the same behavior, but get also a bunch of warnings
-// from the assembler.
-def CPLOAD : MipsPseudo<(outs), (ins CPURegs:$picreg), ".cpload\t$picreg", []>;
-def CPRESTORE : MipsPseudo<(outs), (ins uimm16:$loc), ".cprestore\t$loc\n", []>;
-
-// The supported Mips ISAs dont have any instruction close to the SELECT_CC 
-// operation. The solution is to create a Mips pseudo SELECT_CC instruction
-// (MipsSelectCC), use LowerSELECT_CC to generate this instruction and finally 
-// replace it for real supported nodes into EmitInstrWithCustomInserter
-let usesCustomDAGSchedInserter = 1 in {
-  class PseudoSelCC<RegisterClass RC, string asmstr>: 
-    MipsPseudo<(outs RC:$dst), (ins CPURegs:$CmpRes, RC:$T, RC:$F), asmstr, 
-    [(set RC:$dst, (MipsSelectCC CPURegs:$CmpRes, RC:$T, RC:$F))]>;
-}
-
-def Select_CC : PseudoSelCC<CPURegs, "# MipsSelect_CC_i32">;
-
-//===----------------------------------------------------------------------===//
-// Instruction definition
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// MipsI Instructions
-//===----------------------------------------------------------------------===//
-
-/// Arithmetic Instructions (ALU Immediate)
-def ADDiu   : ArithI<0x09, "addiu", add, simm16, immSExt16>;
-def ADDi    : ArithOverflowI<0x08, "addi",  add, simm16, immSExt16>;
-def SLTi    : SetCC_I<0x0a, "slti", setlt, simm16, immSExt16>;
-def SLTiu   : SetCC_I<0x0b, "sltiu", setult, simm16, immSExt16>;
-def ANDi    : LogicI<0x0c, "andi", and>;
-def ORi     : LogicI<0x0d, "ori",  or>;
-def XORi    : LogicI<0x0e, "xori",  xor>;
-def LUi     : LoadUpper<0x0f, "lui">;
-
-/// Arithmetic Instructions (3-Operand, R-Type)
-def ADDu    : ArithR<0x00, 0x21, "addu", add, IIAlu>;
-def SUBu    : ArithR<0x00, 0x23, "subu", sub, IIAlu>;
-def ADD     : ArithOverflowR<0x00, 0x20, "add">;
-def SUB     : ArithOverflowR<0x00, 0x22, "sub">;
-def SLT     : SetCC_R<0x00, 0x2a, "slt", setlt>;
-def SLTu    : SetCC_R<0x00, 0x2b, "sltu", setult>;
-def AND     : LogicR<0x24, "and", and>;
-def OR      : LogicR<0x25, "or",  or>;
-def XOR     : LogicR<0x26, "xor", xor>;
-def NOR     : LogicNOR<0x00, 0x27, "nor">;
-
-/// Shift Instructions
-def SLL     : LogicR_shift_imm<0x00, "sll", shl>;
-def SRL     : LogicR_shift_imm<0x02, "srl", srl>;
-def SRA     : LogicR_shift_imm<0x03, "sra", sra>;
-def SLLV    : LogicR_shift_reg<0x04, "sllv", shl>;
-def SRLV    : LogicR_shift_reg<0x06, "srlv", srl>;
-def SRAV    : LogicR_shift_reg<0x07, "srav", sra>;
-
-/// Load and Store Instructions
-def LB      : LoadM<0x20, "lb",  sextloadi8>;
-def LBu     : LoadM<0x24, "lbu", zextloadi8>;
-def LH      : LoadM<0x21, "lh",  sextloadi16>;
-def LHu     : LoadM<0x25, "lhu", zextloadi16>;
-def LW      : LoadM<0x23, "lw",  load>;
-def SB      : StoreM<0x28, "sb", truncstorei8>;
-def SH      : StoreM<0x29, "sh", truncstorei16>;
-def SW      : StoreM<0x2b, "sw", store>;
-
-/// Jump and Branch Instructions
-def J       : JumpFJ<0x02, "j">;
-def JR      : JumpFR<0x00, 0x08, "jr">;
-def JAL     : JumpLink<0x03, "jal">;
-def JALR    : JumpLinkReg<0x00, 0x09, "jalr">;
-def BEQ     : CBranch<0x04, "beq", seteq>;
-def BNE     : CBranch<0x05, "bne", setne>;
-
-let rt=1 in
-  def BGEZ  : CBranchZero<0x01, "bgez", setge>;
-
-let rt=0 in {
-  def BGTZ  : CBranchZero<0x07, "bgtz", setgt>;
-  def BLEZ  : CBranchZero<0x07, "blez", setle>;
-  def BLTZ  : CBranchZero<0x01, "bltz", setlt>;
-}
-
-def BGEZAL  : BranchLink<"bgezal">;
-def BLTZAL  : BranchLink<"bltzal">;
-
-let isReturn=1, isTerminator=1, hasDelaySlot=1,
-    isBarrier=1, hasCtrlDep=1, rs=0, rt=0, shamt=0 in
-  def RET : FR <0x00, 0x02, (outs), (ins CPURegs:$target),
-                "jr\t$target", [(MipsRet CPURegs:$target)], IIBranch>;
-
-/// Multiply and Divide Instructions. 
-let Defs = [HI, LO] in {
-  def MULT    : MulDiv<0x18, "mult", IIImul>;
-  def MULTu   : MulDiv<0x19, "multu", IIImul>;
-  def DIV     : MulDiv<0x1a, "div", IIIdiv>;
-  def DIVu    : MulDiv<0x1b, "divu", IIIdiv>;
-}
-
-let Defs = [HI] in
-  def MTHI  : MoveToLOHI<0x11, "mthi">;
-let Defs = [LO] in
-  def MTLO  : MoveToLOHI<0x13, "mtlo">;
-
-let Uses = [HI] in
-  def MFHI  : MoveFromLOHI<0x10, "mfhi">;
-let Uses = [LO] in
-  def MFLO  : MoveFromLOHI<0x12, "mflo">;
-
-/// Sign Ext In Register Instructions.
-let Predicates = [HasSEInReg] in {
-  let shamt = 0x10, rs = 0 in
-    def SEB : SignExtInReg<0x21, "seb", i8>;
-
-  let shamt = 0x18, rs = 0 in
-    def SEH : SignExtInReg<0x20, "seh", i16>;
-}
-
-/// Count Leading
-let Predicates = [HasBitCount] in {
-  let rt = 0 in
-    def CLZ : CountLeading<0b010110, "clz", ctlz>;
-}
-
-/// Byte Swap
-let Predicates = [HasSwap] in {
-  let shamt = 0x3, rs = 0 in
-    def WSBW : ByteSwap<0x20, "wsbw">;
-}
-
-/// Conditional Move
-def MIPS_CMOV_ZERO  : PatLeaf<(i32 0)>;
-def MIPS_CMOV_NZERO : PatLeaf<(i32 1)>;
-
-let Predicates = [HasCondMov], isTwoAddress = 1 in {
-  def MOVN : CondMov<0x0a, "movn", MIPS_CMOV_NZERO>;
-  def MOVZ : CondMov<0x0b, "movz", MIPS_CMOV_ZERO>;
-}
-
-/// No operation
-let addr=0 in
-  def NOP   : FJ<0, (outs), (ins), "nop", [], IIAlu>;
-
-// FrameIndexes are legalized when they are operands from load/store
-// instructions. The same not happens for stack address copies, so an
-// add op with mem ComplexPattern is used and the stack address copy
-// can be matched. It's similar to Sparc LEA_ADDRi
-def LEA_ADDiu : EffectiveAddress<"addiu\t$dst, ${addr:stackloc}">;
-
-// MADD*/MSUB* are not part of MipsI either.
-//def MADD    : MArithR<0x00, "madd">;
-//def MADDU   : MArithR<0x01, "maddu">;
-//def MSUB    : MArithR<0x04, "msub">;
-//def MSUBU   : MArithR<0x05, "msubu">;
-
-// MUL is a assembly macro in the current used ISAs. In recent ISA's
-// it is a real instruction.
-//def MUL   : ArithR<0x1c, 0x02, "mul", mul, IIImul>;
-
-//===----------------------------------------------------------------------===//
-//  Arbitrary patterns that map to one or more instructions
-//===----------------------------------------------------------------------===//
-
-// Small immediates
-def : Pat<(i32 immSExt16:$in),
-          (ADDiu ZERO, imm:$in)>;
-def : Pat<(i32 immZExt16:$in),
-          (ORi ZERO, imm:$in)>;
-
-// Arbitrary immediates
-def : Pat<(i32 imm:$imm),
-          (ORi (LUi (HI16 imm:$imm)), (LO16 imm:$imm))>;
-
-// Carry patterns
-def : Pat<(subc CPURegs:$lhs, CPURegs:$rhs),
-          (SUBu CPURegs:$lhs, CPURegs:$rhs)>;
-def : Pat<(addc CPURegs:$lhs, CPURegs:$rhs),
-          (ADDu CPURegs:$lhs, CPURegs:$rhs)>;
-def : Pat<(addc  CPURegs:$src, imm:$imm),
-          (ADDiu CPURegs:$src, imm:$imm)>;
-
-// Call
-def : Pat<(MipsJmpLink (i32 tglobaladdr:$dst)),
-          (JAL tglobaladdr:$dst)>;
-def : Pat<(MipsJmpLink (i32 texternalsym:$dst)),
-          (JAL texternalsym:$dst)>;
-def : Pat<(MipsJmpLink CPURegs:$dst),
-          (JALR CPURegs:$dst)>;
-
-// hi/lo relocs
-def : Pat<(MipsHi tglobaladdr:$in), (LUi tglobaladdr:$in)>;
-def : Pat<(add CPURegs:$hi, (MipsLo tglobaladdr:$lo)),
-          (ADDiu CPURegs:$hi, tglobaladdr:$lo)>;
-
-def : Pat<(MipsHi tjumptable:$in), (LUi tjumptable:$in)>;
-def : Pat<(add CPURegs:$hi, (MipsLo tjumptable:$lo)),
-          (ADDiu CPURegs:$hi, tjumptable:$lo)>;
-
-def : Pat<(MipsHi tconstpool:$in), (LUi tconstpool:$in)>;
-def : Pat<(add CPURegs:$hi, (MipsLo tconstpool:$lo)),
-          (ADDiu CPURegs:$hi, tconstpool:$lo)>;
-
-// gp_rel relocs
-def : Pat<(add CPURegs:$gp, (MipsGPRel tglobaladdr:$in)), 
-          (ADDiu CPURegs:$gp, tglobaladdr:$in)>;
-def : Pat<(add CPURegs:$gp, (MipsGPRel tconstpool:$in)), 
-          (ADDiu CPURegs:$gp, tconstpool:$in)>;
-
-// Mips does not have "not", so we expand our way
-def : Pat<(not CPURegs:$in),
-          (NOR CPURegs:$in, ZERO)>;
-
-// extended load and stores
-def : Pat<(extloadi1  addr:$src), (LBu addr:$src)>;
-def : Pat<(extloadi8  addr:$src), (LBu addr:$src)>;
-def : Pat<(extloadi16 addr:$src), (LHu addr:$src)>;
-
-// peepholes
-def : Pat<(store (i32 0), addr:$dst), (SW ZERO, addr:$dst)>;
-
-// brcond patterns
-def : Pat<(brcond (setne CPURegs:$lhs, 0), bb:$dst),
-          (BNE CPURegs:$lhs, ZERO, bb:$dst)>;
-def : Pat<(brcond (seteq CPURegs:$lhs, 0), bb:$dst),
-          (BEQ CPURegs:$lhs, ZERO, bb:$dst)>;
-
-def : Pat<(brcond (setge CPURegs:$lhs, CPURegs:$rhs), bb:$dst),
-          (BEQ (SLT CPURegs:$lhs, CPURegs:$rhs), ZERO, bb:$dst)>;
-def : Pat<(brcond (setuge CPURegs:$lhs, CPURegs:$rhs), bb:$dst),
-          (BEQ (SLTu CPURegs:$lhs, CPURegs:$rhs), ZERO, bb:$dst)>;
-def : Pat<(brcond (setge CPURegs:$lhs, immSExt16:$rhs), bb:$dst),
-          (BEQ (SLTi CPURegs:$lhs, immSExt16:$rhs), ZERO, bb:$dst)>;
-def : Pat<(brcond (setuge CPURegs:$lhs, immSExt16:$rhs), bb:$dst),
-          (BEQ (SLTiu CPURegs:$lhs, immSExt16:$rhs), ZERO, bb:$dst)>;
-
-def : Pat<(brcond (setle CPURegs:$lhs, CPURegs:$rhs), bb:$dst),
-          (BEQ (SLT CPURegs:$rhs, CPURegs:$lhs), ZERO, bb:$dst)>;
-def : Pat<(brcond (setule CPURegs:$lhs, CPURegs:$rhs), bb:$dst),
-          (BEQ (SLTu CPURegs:$rhs, CPURegs:$lhs), ZERO, bb:$dst)>;
-
-def : Pat<(brcond CPURegs:$cond, bb:$dst),
-          (BNE CPURegs:$cond, ZERO, bb:$dst)>;
-
-// select patterns
-def : Pat<(select (setge CPURegs:$lhs, CPURegs:$rhs), CPURegs:$T, CPURegs:$F),
-          (MOVZ CPURegs:$F, CPURegs:$T, (SLT CPURegs:$lhs, CPURegs:$rhs))>;
-def : Pat<(select (setuge CPURegs:$lhs, CPURegs:$rhs), CPURegs:$T, CPURegs:$F),
-          (MOVZ CPURegs:$F, CPURegs:$T, (SLTu CPURegs:$lhs, CPURegs:$rhs))>;
-def : Pat<(select (setge CPURegs:$lhs, immSExt16:$rhs), CPURegs:$T, CPURegs:$F),
-          (MOVZ CPURegs:$F, CPURegs:$T, (SLTi CPURegs:$lhs, immSExt16:$rhs))>;
-def : Pat<(select (setuge CPURegs:$lh, immSExt16:$rh), CPURegs:$T, CPURegs:$F),
-          (MOVZ CPURegs:$F, CPURegs:$T, (SLTiu CPURegs:$lh, immSExt16:$rh))>;
-
-def : Pat<(select (setle CPURegs:$lhs, CPURegs:$rhs), CPURegs:$T, CPURegs:$F),
-          (MOVZ CPURegs:$F, CPURegs:$T, (SLT CPURegs:$rhs, CPURegs:$lhs))>;
-def : Pat<(select (setule CPURegs:$lhs, CPURegs:$rhs), CPURegs:$T, CPURegs:$F),
-          (MOVZ CPURegs:$F, CPURegs:$T, (SLTu CPURegs:$rhs, CPURegs:$lhs))>;
-
-def : Pat<(select (seteq CPURegs:$lhs, CPURegs:$rhs), CPURegs:$T, CPURegs:$F),
-          (MOVZ CPURegs:$F, CPURegs:$T, (XOR CPURegs:$lhs, CPURegs:$rhs))>;
-def : Pat<(select (setne CPURegs:$lhs, CPURegs:$rhs), CPURegs:$T, CPURegs:$F),
-          (MOVN CPURegs:$F, CPURegs:$T, (XOR CPURegs:$lhs, CPURegs:$rhs))>;
-
-def : Pat<(select CPURegs:$cond, CPURegs:$T, CPURegs:$F), 
-          (MOVN CPURegs:$F, CPURegs:$T, CPURegs:$cond)>;
-
-// setcc patterns
-def : Pat<(seteq CPURegs:$lhs, CPURegs:$rhs),
-          (SLTu (XOR CPURegs:$lhs, CPURegs:$rhs), 1)>;
-def : Pat<(setne CPURegs:$lhs, CPURegs:$rhs),
-          (SLTu ZERO, (XOR CPURegs:$lhs, CPURegs:$rhs))>;
-
-def : Pat<(setle CPURegs:$lhs, CPURegs:$rhs),
-          (XORi (SLT CPURegs:$rhs, CPURegs:$lhs), 1)>;
-def : Pat<(setule CPURegs:$lhs, CPURegs:$rhs),
-          (XORi (SLTu CPURegs:$rhs, CPURegs:$lhs), 1)>;
-
-def : Pat<(setgt CPURegs:$lhs, CPURegs:$rhs),
-          (SLT CPURegs:$rhs, CPURegs:$lhs)>;
-def : Pat<(setugt CPURegs:$lhs, CPURegs:$rhs),
-          (SLTu CPURegs:$rhs, CPURegs:$lhs)>;
-
-def : Pat<(setge CPURegs:$lhs, CPURegs:$rhs),
-          (XORi (SLT CPURegs:$lhs, CPURegs:$rhs), 1)>;
-def : Pat<(setuge CPURegs:$lhs, CPURegs:$rhs),
-          (XORi (SLTu CPURegs:$lhs, CPURegs:$rhs), 1)>;
-
-def : Pat<(setge CPURegs:$lhs, immSExt16:$rhs),
-          (XORi (SLTi CPURegs:$lhs, immSExt16:$rhs), 1)>;
-def : Pat<(setuge CPURegs:$lhs, immSExt16:$rhs),
-          (XORi (SLTiu CPURegs:$lhs, immSExt16:$rhs), 1)>;
-
-//===----------------------------------------------------------------------===//
-// Floating Point Support
-//===----------------------------------------------------------------------===//
-
-include "MipsInstrFPU.td"
-
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.cpp
deleted file mode 100644
index 60ef1c9..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- MipsMCAsmInfo.cpp - Mips asm properties ---------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the MipsMCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MipsMCAsmInfo.h"
-using namespace llvm;
-
-MipsMCAsmInfo::MipsMCAsmInfo(const Target &T, const StringRef &TT) {
-  AlignmentIsInBytes          = false;
-  COMMDirectiveTakesAlignment = true;
-  Data16bitsDirective         = "\t.half\t";
-  Data32bitsDirective         = "\t.word\t";
-  Data64bitsDirective         = 0;
-  PrivateGlobalPrefix         = "$";
-  CommentString               = "#";
-  ZeroDirective               = "\t.space\t";
-  PICJumpTableDirective       = "\t.gpword\t";
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.h b/libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.h
deleted file mode 100644
index 33a4b5e..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.h
+++ /dev/null
@@ -1,30 +0,0 @@
-//=====-- MipsMCAsmInfo.h - Mips asm properties ---------------*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the MipsMCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MIPSTARGETASMINFO_H
-#define MIPSTARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-  
-  class MipsMCAsmInfo : public MCAsmInfo {
-  public:
-    explicit MipsMCAsmInfo(const Target &T, const StringRef &TT);
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsMachineFunction.h b/libclamav/c++/llvm/lib/Target/Mips/MipsMachineFunction.h
deleted file mode 100644
index 949c78a..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsMachineFunction.h
+++ /dev/null
@@ -1,139 +0,0 @@
-//===-- MipsMachineFunctionInfo.h - Private data used for Mips ----*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Mips specific subclass of MachineFunctionInfo.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MIPS_MACHINE_FUNCTION_INFO_H
-#define MIPS_MACHINE_FUNCTION_INFO_H
-
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/VectorExtras.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-
-namespace llvm {
-
-/// MipsFunctionInfo - This class is derived from MachineFunction private
-/// Mips target-specific information for each MachineFunction.
-class MipsFunctionInfo : public MachineFunctionInfo {
-
-private:
-  /// Holds for each function where on the stack the Frame Pointer must be 
-  /// saved. This is used on Prologue and Epilogue to emit FP save/restore
-  int FPStackOffset;
-
-  /// Holds for each function where on the stack the Return Address must be 
-  /// saved. This is used on Prologue and Epilogue to emit RA save/restore
-  int RAStackOffset;
-
-  /// At each function entry, two special bitmask directives must be emitted
-  /// to help debugging, for CPU and FPU callee saved registers. Both need
-  /// the negative offset from the final stack size and its higher registers
-  /// location on the stack.
-  int CPUTopSavedRegOff;
-  int FPUTopSavedRegOff;
-
-  /// MipsFIHolder - Holds a FrameIndex and it's Stack Pointer Offset
-  struct MipsFIHolder {
-
-    int FI;
-    int SPOffset;
-
-    MipsFIHolder(int FrameIndex, int StackPointerOffset)
-      : FI(FrameIndex), SPOffset(StackPointerOffset) {}
-  };
-
-  /// When PIC is used the GP must be saved on the stack on the function 
-  /// prologue and must be reloaded from this stack location after every 
-  /// call. A reference to its stack location and frame index must be kept 
-  /// to be used on emitPrologue and processFunctionBeforeFrameFinalized.
-  MipsFIHolder GPHolder;
-
-  /// On LowerFormalArguments the stack size is unknown, so the Stack
-  /// Pointer Offset calculation of "not in register arguments" must be 
-  /// postponed to emitPrologue. 
-  SmallVector<MipsFIHolder, 16> FnLoadArgs;
-  bool HasLoadArgs;
-
-  // When VarArgs, we must write registers back to caller stack, preserving 
-  // on register arguments. Since the stack size is unknown on 
-  // LowerFormalArguments, the Stack Pointer Offset calculation must be
-  // postponed to emitPrologue. 
-  SmallVector<MipsFIHolder, 4> FnStoreVarArgs;
-  bool HasStoreVarArgs;
-
-  /// SRetReturnReg - Some subtargets require that sret lowering includes
-  /// returning the value of the returned struct in a register. This field
-  /// holds the virtual register into which the sret argument is passed.
-  unsigned SRetReturnReg;
-
-  /// GlobalBaseReg - keeps track of the virtual register initialized for
-  /// use as the global base register. This is used for PIC in some PIC
-  /// relocation models.
-  unsigned GlobalBaseReg;
-
-public:
-  MipsFunctionInfo(MachineFunction& MF) 
-  : FPStackOffset(0), RAStackOffset(0), CPUTopSavedRegOff(0), 
-    FPUTopSavedRegOff(0), GPHolder(-1,-1), HasLoadArgs(false), 
-    HasStoreVarArgs(false), SRetReturnReg(0), GlobalBaseReg(0)
-  {}
-
-  int getFPStackOffset() const { return FPStackOffset; }
-  void setFPStackOffset(int Off) { FPStackOffset = Off; }
-
-  int getRAStackOffset() const { return RAStackOffset; }
-  void setRAStackOffset(int Off) { RAStackOffset = Off; }
-
-  int getCPUTopSavedRegOff() const { return CPUTopSavedRegOff; }
-  void setCPUTopSavedRegOff(int Off) { CPUTopSavedRegOff = Off; }
-
-  int getFPUTopSavedRegOff() const { return FPUTopSavedRegOff; }
-  void setFPUTopSavedRegOff(int Off) { FPUTopSavedRegOff = Off; }
-
-  int getGPStackOffset() const { return GPHolder.SPOffset; }
-  int getGPFI() const { return GPHolder.FI; }
-  void setGPStackOffset(int Off) { GPHolder.SPOffset = Off; }
-  void setGPFI(int FI) { GPHolder.FI = FI; }
-
-  bool hasLoadArgs() const { return HasLoadArgs; }
-  bool hasStoreVarArgs() const { return HasStoreVarArgs; } 
-
-  void recordLoadArgsFI(int FI, int SPOffset) {
-    if (!HasLoadArgs) HasLoadArgs=true;
-    FnLoadArgs.push_back(MipsFIHolder(FI, SPOffset));
-  }
-  void recordStoreVarArgsFI(int FI, int SPOffset) {
-    if (!HasStoreVarArgs) HasStoreVarArgs=true;
-    FnStoreVarArgs.push_back(MipsFIHolder(FI, SPOffset));
-  }
-
-  void adjustLoadArgsFI(MachineFrameInfo *MFI) const {
-    if (!hasLoadArgs()) return;
-    for (unsigned i = 0, e = FnLoadArgs.size(); i != e; ++i) 
-      MFI->setObjectOffset( FnLoadArgs[i].FI, FnLoadArgs[i].SPOffset );
-  }
-  void adjustStoreVarArgsFI(MachineFrameInfo *MFI) const {
-    if (!hasStoreVarArgs()) return; 
-    for (unsigned i = 0, e = FnStoreVarArgs.size(); i != e; ++i) 
-      MFI->setObjectOffset( FnStoreVarArgs[i].FI, FnStoreVarArgs[i].SPOffset );
-  }
-
-  unsigned getSRetReturnReg() const { return SRetReturnReg; }
-  void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; }
-
-  unsigned getGlobalBaseReg() const { return GlobalBaseReg; }
-  void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; }
-};
-
-} // end of namespace llvm
-
-#endif // MIPS_MACHINE_FUNCTION_INFO_H
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.cpp
deleted file mode 100644
index bc3388a..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.cpp
+++ /dev/null
@@ -1,529 +0,0 @@
-//===- MipsRegisterInfo.cpp - MIPS Register Information -== -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the MIPS implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "mips-reg-info"
-
-#include "Mips.h"
-#include "MipsSubtarget.h"
-#include "MipsRegisterInfo.h"
-#include "MipsMachineFunction.h"
-#include "llvm/Constants.h"
-#include "llvm/Type.h"
-#include "llvm/Function.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/ADT/STLExtras.h"
-
-using namespace llvm;
-
-MipsRegisterInfo::MipsRegisterInfo(const MipsSubtarget &ST, 
-                                   const TargetInstrInfo &tii)
-  : MipsGenRegisterInfo(Mips::ADJCALLSTACKDOWN, Mips::ADJCALLSTACKUP),
-    Subtarget(ST), TII(tii) {}
-
-/// getRegisterNumbering - Given the enum value for some register, e.g.
-/// Mips::RA, return the number that it corresponds to (e.g. 31).
-unsigned MipsRegisterInfo::
-getRegisterNumbering(unsigned RegEnum) 
-{
-  switch (RegEnum) {
-    case Mips::ZERO : case Mips::F0 : case Mips::D0 : return 0;
-    case Mips::AT   : case Mips::F1 : return 1;
-    case Mips::V0   : case Mips::F2 : case Mips::D1 : return 2;
-    case Mips::V1   : case Mips::F3 : return 3;
-    case Mips::A0   : case Mips::F4 : case Mips::D2 : return 4;
-    case Mips::A1   : case Mips::F5 : return 5;
-    case Mips::A2   : case Mips::F6 : case Mips::D3 : return 6;
-    case Mips::A3   : case Mips::F7 : return 7;
-    case Mips::T0   : case Mips::F8 : case Mips::D4 : return 8;
-    case Mips::T1   : case Mips::F9 : return 9;
-    case Mips::T2   : case Mips::F10: case Mips::D5: return 10;
-    case Mips::T3   : case Mips::F11: return 11;
-    case Mips::T4   : case Mips::F12: case Mips::D6: return 12;
-    case Mips::T5   : case Mips::F13: return 13;
-    case Mips::T6   : case Mips::F14: case Mips::D7: return 14;
-    case Mips::T7   : case Mips::F15: return 15;
-    case Mips::T8   : case Mips::F16: case Mips::D8: return 16;
-    case Mips::T9   : case Mips::F17: return 17;
-    case Mips::S0   : case Mips::F18: case Mips::D9: return 18;
-    case Mips::S1   : case Mips::F19: return 19;
-    case Mips::S2   : case Mips::F20: case Mips::D10: return 20;
-    case Mips::S3   : case Mips::F21: return 21;
-    case Mips::S4   : case Mips::F22: case Mips::D11: return 22;
-    case Mips::S5   : case Mips::F23: return 23;
-    case Mips::S6   : case Mips::F24: case Mips::D12: return 24;
-    case Mips::S7   : case Mips::F25: return 25;
-    case Mips::K0   : case Mips::F26: case Mips::D13: return 26;
-    case Mips::K1   : case Mips::F27: return 27;
-    case Mips::GP   : case Mips::F28: case Mips::D14: return 28;
-    case Mips::SP   : case Mips::F29: return 29;
-    case Mips::FP   : case Mips::F30: case Mips::D15: return 30;
-    case Mips::RA   : case Mips::F31: return 31;
-    default: llvm_unreachable("Unknown register number!");
-  }    
-  return 0; // Not reached
-}
-
-unsigned MipsRegisterInfo::getPICCallReg() { return Mips::T9; }
-
-//===----------------------------------------------------------------------===//
-// Callee Saved Registers methods 
-//===----------------------------------------------------------------------===//
-
-/// Mips Callee Saved Registers
-const unsigned* MipsRegisterInfo::
-getCalleeSavedRegs(const MachineFunction *MF) const 
-{
-  // Mips callee-save register range is $16-$23, $f20-$f30
-  static const unsigned SingleFloatOnlyCalleeSavedRegs[] = {
-    Mips::S0, Mips::S1, Mips::S2, Mips::S3, 
-    Mips::S4, Mips::S5, Mips::S6, Mips::S7,
-    Mips::F20, Mips::F21, Mips::F22, Mips::F23, Mips::F24, Mips::F25, 
-    Mips::F26, Mips::F27, Mips::F28, Mips::F29, Mips::F30, 0
-  };
-
-  static const unsigned BitMode32CalleeSavedRegs[] = {
-    Mips::S0, Mips::S1, Mips::S2, Mips::S3, 
-    Mips::S4, Mips::S5, Mips::S6, Mips::S7,
-    Mips::F20, Mips::F22, Mips::F24, Mips::F26, Mips::F28, Mips::F30, 
-    Mips::D10, Mips::D11, Mips::D12, Mips::D13, Mips::D14, Mips::D15,0
-  };
-
-  if (Subtarget.isSingleFloat())
-    return SingleFloatOnlyCalleeSavedRegs;
-  else
-    return BitMode32CalleeSavedRegs;
-}
-
-/// Mips Callee Saved Register Classes
-const TargetRegisterClass* const* 
-MipsRegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const 
-{
-  static const TargetRegisterClass * const SingleFloatOnlyCalleeSavedRC[] = {
-    &Mips::CPURegsRegClass, &Mips::CPURegsRegClass, &Mips::CPURegsRegClass, 
-    &Mips::CPURegsRegClass, &Mips::CPURegsRegClass, &Mips::CPURegsRegClass,
-    &Mips::CPURegsRegClass, &Mips::CPURegsRegClass,
-    &Mips::FGR32RegClass, &Mips::FGR32RegClass, &Mips::FGR32RegClass, 
-    &Mips::FGR32RegClass, &Mips::FGR32RegClass, &Mips::FGR32RegClass, 
-    &Mips::FGR32RegClass, &Mips::FGR32RegClass, &Mips::FGR32RegClass, 
-    &Mips::FGR32RegClass, &Mips::FGR32RegClass, 0
-  };
-
-  static const TargetRegisterClass * const BitMode32CalleeSavedRC[] = {
-    &Mips::CPURegsRegClass, &Mips::CPURegsRegClass, &Mips::CPURegsRegClass, 
-    &Mips::CPURegsRegClass, &Mips::CPURegsRegClass, &Mips::CPURegsRegClass,
-    &Mips::CPURegsRegClass, &Mips::CPURegsRegClass,
-    &Mips::FGR32RegClass, &Mips::FGR32RegClass, &Mips::FGR32RegClass, 
-    &Mips::FGR32RegClass, &Mips::FGR32RegClass, &Mips::FGR32RegClass,
-    &Mips::AFGR64RegClass, &Mips::AFGR64RegClass, &Mips::AFGR64RegClass, 
-    &Mips::AFGR64RegClass, &Mips::AFGR64RegClass, &Mips::AFGR64RegClass, 0
-  };
-
-  if (Subtarget.isSingleFloat())
-    return SingleFloatOnlyCalleeSavedRC;
-  else
-    return BitMode32CalleeSavedRC;
-}
-
-BitVector MipsRegisterInfo::
-getReservedRegs(const MachineFunction &MF) const
-{
-  BitVector Reserved(getNumRegs());
-  Reserved.set(Mips::ZERO);
-  Reserved.set(Mips::AT);
-  Reserved.set(Mips::K0);
-  Reserved.set(Mips::K1);
-  Reserved.set(Mips::GP);
-  Reserved.set(Mips::SP);
-  Reserved.set(Mips::FP);
-  Reserved.set(Mips::RA);
-
-  // SRV4 requires that odd register can't be used.
-  if (!Subtarget.isSingleFloat())
-    for (unsigned FReg=(Mips::F0)+1; FReg < Mips::F30; FReg+=2)
-      Reserved.set(FReg);
-  
-  return Reserved;
-}
-
-//===----------------------------------------------------------------------===//
-//
-// Stack Frame Processing methods
-// +----------------------------+
-//
-// The stack is allocated decrementing the stack pointer on
-// the first instruction of a function prologue. Once decremented,
-// all stack referencesare are done thought a positive offset
-// from the stack/frame pointer, so the stack is considering
-// to grow up! Otherwise terrible hacks would have to be made
-// to get this stack ABI compliant :)
-//
-//  The stack frame required by the ABI (after call):
-//  Offset
-//
-//  0                 ----------
-//  4                 Args to pass 
-//  .                 saved $GP  (used in PIC)
-//  .                 Alloca allocations
-//  .                 Local Area
-//  .                 CPU "Callee Saved" Registers
-//  .                 saved FP
-//  .                 saved RA
-//  .                 FPU "Callee Saved" Registers
-//  StackSize         -----------
-//
-// Offset - offset from sp after stack allocation on function prologue
-//
-// The sp is the stack pointer subtracted/added from the stack size
-// at the Prologue/Epilogue
-//
-// References to the previous stack (to obtain arguments) are done
-// with offsets that exceeds the stack size: (stacksize+(4*(num_arg-1))
-//
-// Examples:
-// - reference to the actual stack frame
-//   for any local area var there is smt like : FI >= 0, StackOffset: 4
-//     sw REGX, 4(SP)
-//
-// - reference to previous stack frame
-//   suppose there's a load to the 5th arguments : FI < 0, StackOffset: 16.
-//   The emitted instruction will be something like:
-//     lw REGX, 16+StackSize(SP)
-//
-// Since the total stack size is unknown on LowerFormalArguments, all
-// stack references (ObjectOffset) created to reference the function 
-// arguments, are negative numbers. This way, on eliminateFrameIndex it's
-// possible to detect those references and the offsets are adjusted to
-// their real location.
-//
-//===----------------------------------------------------------------------===//
-
-void MipsRegisterInfo::adjustMipsStackFrame(MachineFunction &MF) const
-{
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MipsFunctionInfo *MipsFI = MF.getInfo<MipsFunctionInfo>();
-  const std::vector<CalleeSavedInfo> &CSI = MFI->getCalleeSavedInfo();
-  unsigned StackAlign = MF.getTarget().getFrameInfo()->getStackAlignment();
-
-  // Min and Max CSI FrameIndex.
-  int MinCSFI = -1, MaxCSFI = -1; 
-
-  // See the description at MipsMachineFunction.h
-  int TopCPUSavedRegOff = -1, TopFPUSavedRegOff = -1;
-
-  // Replace the dummy '0' SPOffset by the negative offsets, as explained on 
-  // LowerFormalArguments. Leaving '0' for while is necessary to avoid
-  // the approach done by calculateFrameObjectOffsets to the stack frame.
-  MipsFI->adjustLoadArgsFI(MFI);
-  MipsFI->adjustStoreVarArgsFI(MFI); 
-
-  // It happens that the default stack frame allocation order does not directly 
-  // map to the convention used for mips. So we must fix it. We move the callee 
-  // save register slots after the local variables area, as described in the
-  // stack frame above.
-  unsigned CalleeSavedAreaSize = 0;
-  if (!CSI.empty()) {
-    MinCSFI = CSI[0].getFrameIdx();
-    MaxCSFI = CSI[CSI.size()-1].getFrameIdx();
-  }
-  for (unsigned i = 0, e = CSI.size(); i != e; ++i)
-    CalleeSavedAreaSize += MFI->getObjectAlignment(CSI[i].getFrameIdx());
-
-  // Adjust local variables. They should come on the stack right
-  // after the arguments.
-  int LastOffsetFI = -1;
-  for (int i = 0, e = MFI->getObjectIndexEnd(); i != e; ++i) {
-    if (i >= MinCSFI && i <= MaxCSFI)
-      continue;
-    if (MFI->isDeadObjectIndex(i))
-      continue;
-    unsigned Offset = MFI->getObjectOffset(i) - CalleeSavedAreaSize;
-    if (LastOffsetFI == -1)
-      LastOffsetFI = i;
-    if (Offset > MFI->getObjectOffset(LastOffsetFI))
-      LastOffsetFI = i;
-    MFI->setObjectOffset(i, Offset);
-  }
-
-  // Adjust CPU Callee Saved Registers Area. Registers RA and FP must
-  // be saved in this CPU Area there is the need. This whole Area must 
-  // be aligned to the default Stack Alignment requirements.
-  unsigned StackOffset = 0;
-  unsigned RegSize = Subtarget.isGP32bit() ? 4 : 8;
-
-  if (LastOffsetFI >= 0)
-    StackOffset = MFI->getObjectOffset(LastOffsetFI)+ 
-                  MFI->getObjectSize(LastOffsetFI);
-  StackOffset = ((StackOffset+StackAlign-1)/StackAlign*StackAlign);
-
-  for (unsigned i = 0, e = CSI.size(); i != e ; ++i) {
-    if (CSI[i].getRegClass() != Mips::CPURegsRegisterClass)
-      break;
-    MFI->setObjectOffset(CSI[i].getFrameIdx(), StackOffset);
-    TopCPUSavedRegOff = StackOffset;
-    StackOffset += MFI->getObjectAlignment(CSI[i].getFrameIdx());
-  }
-
-  if (hasFP(MF)) {
-    MFI->setObjectOffset(MFI->CreateStackObject(RegSize, RegSize), 
-                         StackOffset);
-    MipsFI->setFPStackOffset(StackOffset);
-    TopCPUSavedRegOff = StackOffset;
-    StackOffset += RegSize;
-  }
-
-  if (MFI->hasCalls()) {
-    MFI->setObjectOffset(MFI->CreateStackObject(RegSize, RegSize), 
-                         StackOffset);
-    MipsFI->setRAStackOffset(StackOffset);
-    TopCPUSavedRegOff = StackOffset;
-    StackOffset += RegSize;
-  }
-  StackOffset = ((StackOffset+StackAlign-1)/StackAlign*StackAlign);
-  
-  // Adjust FPU Callee Saved Registers Area. This Area must be 
-  // aligned to the default Stack Alignment requirements.
-  for (unsigned i = 0, e = CSI.size(); i != e; ++i) {
-    if (CSI[i].getRegClass() == Mips::CPURegsRegisterClass)
-      continue;
-    MFI->setObjectOffset(CSI[i].getFrameIdx(), StackOffset);
-    TopFPUSavedRegOff = StackOffset;
-    StackOffset += MFI->getObjectAlignment(CSI[i].getFrameIdx());
-  }
-  StackOffset = ((StackOffset+StackAlign-1)/StackAlign*StackAlign);
-
-  // Update frame info
-  MFI->setStackSize(StackOffset);
-
-  // Recalculate the final tops offset. The final values must be '0'
-  // if there isn't a callee saved register for CPU or FPU, otherwise
-  // a negative offset is needed.
-  if (TopCPUSavedRegOff >= 0)
-    MipsFI->setCPUTopSavedRegOff(TopCPUSavedRegOff-StackOffset);
-
-  if (TopFPUSavedRegOff >= 0)
-    MipsFI->setFPUTopSavedRegOff(TopFPUSavedRegOff-StackOffset);
-}
-
-// hasFP - Return true if the specified function should have a dedicated frame
-// pointer register.  This is true if the function has variable sized allocas or
-// if frame pointer elimination is disabled.
-bool MipsRegisterInfo::
-hasFP(const MachineFunction &MF) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  return NoFramePointerElim || MFI->hasVarSizedObjects();
-}
-
-// This function eliminate ADJCALLSTACKDOWN, 
-// ADJCALLSTACKUP pseudo instructions
-void MipsRegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  // Simply discard ADJCALLSTACKDOWN, ADJCALLSTACKUP instructions.
-  MBB.erase(I);
-}
-
-// FrameIndex represent objects inside a abstract stack.
-// We must replace FrameIndex with an stack/frame pointer
-// direct reference.
-void MipsRegisterInfo::
-eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, 
-                    RegScavenger *RS) const 
-{
-  MachineInstr &MI = *II;
-  MachineFunction &MF = *MI.getParent()->getParent();
-
-  unsigned i = 0;
-  while (!MI.getOperand(i).isFI()) {
-    ++i;
-    assert(i < MI.getNumOperands() && 
-           "Instr doesn't have FrameIndex operand!");
-  }
-
-  DEBUG(errs() << "\nFunction : " << MF.getFunction()->getName() << "\n";
-        errs() << "<--------->\n" << MI);
-
-  int FrameIndex = MI.getOperand(i).getIndex();
-  int stackSize  = MF.getFrameInfo()->getStackSize();
-  int spOffset   = MF.getFrameInfo()->getObjectOffset(FrameIndex);
-
-  DEBUG(errs() << "FrameIndex : " << FrameIndex << "\n"
-               << "spOffset   : " << spOffset << "\n"
-               << "stackSize  : " << stackSize << "\n");
-
-  // as explained on LowerFormalArguments, detect negative offsets
-  // and adjust SPOffsets considering the final stack size.
-  int Offset = ((spOffset < 0) ? (stackSize + (-(spOffset+4))) : (spOffset));
-  Offset    += MI.getOperand(i-1).getImm();
-
-  DEBUG(errs() << "Offset     : " << Offset << "\n" << "<--------->\n");
-
-  MI.getOperand(i-1).ChangeToImmediate(Offset);
-  MI.getOperand(i).ChangeToRegister(getFrameRegister(MF), false);
-}
-
-void MipsRegisterInfo::
-emitPrologue(MachineFunction &MF) const 
-{
-  MachineBasicBlock &MBB   = MF.front();
-  MachineFrameInfo *MFI    = MF.getFrameInfo();
-  MipsFunctionInfo *MipsFI = MF.getInfo<MipsFunctionInfo>();
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  DebugLoc dl = (MBBI != MBB.end() ?
-                 MBBI->getDebugLoc() : DebugLoc::getUnknownLoc());
-  bool isPIC = (MF.getTarget().getRelocationModel() == Reloc::PIC_);
-
-  // Get the right frame order for Mips.
-  adjustMipsStackFrame(MF);
-
-  // Get the number of bytes to allocate from the FrameInfo.
-  unsigned StackSize = MFI->getStackSize();
-
-  // No need to allocate space on the stack.
-  if (StackSize == 0 && !MFI->hasCalls()) return;
-
-  int FPOffset = MipsFI->getFPStackOffset();
-  int RAOffset = MipsFI->getRAStackOffset();
-
-  BuildMI(MBB, MBBI, dl, TII.get(Mips::NOREORDER));
-  
-  // TODO: check need from GP here.
-  if (isPIC && Subtarget.isABI_O32()) 
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::CPLOAD)).addReg(getPICCallReg());
-  BuildMI(MBB, MBBI, dl, TII.get(Mips::NOMACRO));
-
-  // Adjust stack : addi sp, sp, (-imm)
-  BuildMI(MBB, MBBI, dl, TII.get(Mips::ADDiu), Mips::SP)
-      .addReg(Mips::SP).addImm(-StackSize);
-
-  // Save the return address only if the function isnt a leaf one.
-  // sw  $ra, stack_loc($sp)
-  if (MFI->hasCalls()) { 
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::SW))
-        .addReg(Mips::RA).addImm(RAOffset).addReg(Mips::SP);
-  }
-
-  // if framepointer enabled, save it and set it
-  // to point to the stack pointer
-  if (hasFP(MF)) {
-    // sw  $fp,stack_loc($sp)
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::SW))
-      .addReg(Mips::FP).addImm(FPOffset).addReg(Mips::SP);
-
-    // move $fp, $sp
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::ADDu), Mips::FP)
-      .addReg(Mips::SP).addReg(Mips::ZERO);
-  }
-
-  // PIC speficic function prologue
-  if ((isPIC) && (MFI->hasCalls())) {
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::CPRESTORE))
-      .addImm(MipsFI->getGPStackOffset());
-  }
-}
-
-void MipsRegisterInfo::
-emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const 
-{
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  MachineFrameInfo *MFI            = MF.getFrameInfo();
-  MipsFunctionInfo *MipsFI         = MF.getInfo<MipsFunctionInfo>();
-  DebugLoc dl = MBBI->getDebugLoc();
-
-  // Get the number of bytes from FrameInfo
-  int NumBytes = (int) MFI->getStackSize();
-
-  // Get the FI's where RA and FP are saved.
-  int FPOffset = MipsFI->getFPStackOffset();
-  int RAOffset = MipsFI->getRAStackOffset();
-
-  // if framepointer enabled, restore it and restore the
-  // stack pointer
-  if (hasFP(MF)) {
-    // move $sp, $fp
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::ADDu), Mips::SP)
-      .addReg(Mips::FP).addReg(Mips::ZERO);
-
-    // lw  $fp,stack_loc($sp)
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::LW), Mips::FP)
-      .addImm(FPOffset).addReg(Mips::SP);
-  }
-
-  // Restore the return address only if the function isnt a leaf one.
-  // lw  $ra, stack_loc($sp)
-  if (MFI->hasCalls()) { 
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::LW), Mips::RA)
-      .addImm(RAOffset).addReg(Mips::SP);
-  }
-
-  // adjust stack  : insert addi sp, sp, (imm)
-  if (NumBytes) {
-    BuildMI(MBB, MBBI, dl, TII.get(Mips::ADDiu), Mips::SP)
-      .addReg(Mips::SP).addImm(NumBytes);
-  }
-}
-
-
-void MipsRegisterInfo::
-processFunctionBeforeFrameFinalized(MachineFunction &MF) const {
-  // Set the SPOffset on the FI where GP must be saved/loaded.
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  bool isPIC = (MF.getTarget().getRelocationModel() == Reloc::PIC_);
-  if (MFI->hasCalls() && isPIC) { 
-    MipsFunctionInfo *MipsFI = MF.getInfo<MipsFunctionInfo>();
-    MFI->setObjectOffset(MipsFI->getGPFI(), MipsFI->getGPStackOffset());
-  }    
-}
-
-unsigned MipsRegisterInfo::
-getRARegister() const {
-  return Mips::RA;
-}
-
-unsigned MipsRegisterInfo::
-getFrameRegister(MachineFunction &MF) const {
-  return hasFP(MF) ? Mips::FP : Mips::SP;
-}
-
-unsigned MipsRegisterInfo::
-getEHExceptionRegister() const {
-  llvm_unreachable("What is the exception register");
-  return 0;
-}
-
-unsigned MipsRegisterInfo::
-getEHHandlerRegister() const {
-  llvm_unreachable("What is the exception handler register");
-  return 0;
-}
-
-int MipsRegisterInfo::
-getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  llvm_unreachable("What is the dwarf register number");
-  return -1;
-}
-
-#include "MipsGenRegisterInfo.inc"
-
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.h b/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.h
deleted file mode 100644
index fdb8cd0..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//===- MipsRegisterInfo.h - Mips Register Information Impl ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Mips implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MIPSREGISTERINFO_H
-#define MIPSREGISTERINFO_H
-
-#include "Mips.h"
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "MipsGenRegisterInfo.h.inc"
-
-namespace llvm {
-class MipsSubtarget;
-class TargetInstrInfo;
-class Type;
-
-struct MipsRegisterInfo : public MipsGenRegisterInfo {
-  const MipsSubtarget &Subtarget;
-  const TargetInstrInfo &TII;
-  
-  MipsRegisterInfo(const MipsSubtarget &Subtarget, const TargetInstrInfo &tii);
-
-  /// getRegisterNumbering - Given the enum value for some register, e.g.
-  /// Mips::RA, return the number that it corresponds to (e.g. 31).
-  static unsigned getRegisterNumbering(unsigned RegEnum);
-
-  /// Get PIC indirect call register
-  static unsigned getPICCallReg();
-
-  /// Adjust the Mips stack frame.
-  void adjustMipsStackFrame(MachineFunction &MF) const;
-
-  /// Code Generation virtual methods...
-  const unsigned *getCalleeSavedRegs(const MachineFunction* MF = 0) const;
-
-  const TargetRegisterClass* const*
-  getCalleeSavedRegClasses(const MachineFunction* MF = 0) const;
-
-  BitVector getReservedRegs(const MachineFunction &MF) const;
-
-  bool hasFP(const MachineFunction &MF) const;
-
-  void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                     MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I) const;
-
-  /// Stack Frame Processing Methods
-  void eliminateFrameIndex(MachineBasicBlock::iterator II,
-                           int SPAdj, RegScavenger *RS = NULL) const;
-
-  void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
-
-  void emitPrologue(MachineFunction &MF) const;
-  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-  
-  /// Debug information queries.
-  unsigned getRARegister() const;
-  unsigned getFrameRegister(MachineFunction &MF) const;
-
-  /// Exception handling queries.
-  unsigned getEHExceptionRegister() const;
-  unsigned getEHHandlerRegister() const;
-
-  int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.td b/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.td
deleted file mode 100644
index bbb275c..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.td
+++ /dev/null
@@ -1,252 +0,0 @@
-//===- MipsRegisterInfo.td - Mips Register defs -----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Declarations that describe the MIPS register file
-//===----------------------------------------------------------------------===//
-
-// We have banks of 32 registers each.
-class MipsReg<string n> : Register<n> {
-  field bits<5> Num;
-  let Namespace = "Mips";
-}
-
-// Mips CPU Registers
-class MipsGPRReg<bits<5> num, string n> : MipsReg<n> {
-  let Num = num;
-}
-
-// Mips 32-bit FPU Registers
-class FPR<bits<5> num, string n> : MipsReg<n> {
-  let Num = num;
-}
-
-// Mips 64-bit (aliased) FPU Registers
-class AFPR<bits<5> num, string n, list<Register> aliases> : MipsReg<n> {
-  let Num = num;
-  let Aliases = aliases;
-}
-
-//===----------------------------------------------------------------------===//
-//  Registers
-//===----------------------------------------------------------------------===//
-
-let Namespace = "Mips" in {
-
-  // General Purpose Registers
-  def ZERO : MipsGPRReg< 0, "ZERO">, DwarfRegNum<[0]>;
-  def AT   : MipsGPRReg< 1, "AT">,   DwarfRegNum<[1]>;
-  def V0   : MipsGPRReg< 2, "2">,    DwarfRegNum<[2]>;
-  def V1   : MipsGPRReg< 3, "3">,    DwarfRegNum<[3]>;
-  def A0   : MipsGPRReg< 4, "4">,    DwarfRegNum<[5]>;
-  def A1   : MipsGPRReg< 5, "5">,    DwarfRegNum<[5]>;
-  def A2   : MipsGPRReg< 6, "6">,    DwarfRegNum<[6]>;
-  def A3   : MipsGPRReg< 7, "7">,    DwarfRegNum<[7]>;
-  def T0   : MipsGPRReg< 8, "8">,    DwarfRegNum<[8]>;
-  def T1   : MipsGPRReg< 9, "9">,    DwarfRegNum<[9]>;
-  def T2   : MipsGPRReg< 10, "10">,  DwarfRegNum<[10]>;
-  def T3   : MipsGPRReg< 11, "11">,  DwarfRegNum<[11]>;
-  def T4   : MipsGPRReg< 12, "12">,  DwarfRegNum<[12]>;
-  def T5   : MipsGPRReg< 13, "13">,  DwarfRegNum<[13]>;
-  def T6   : MipsGPRReg< 14, "14">,  DwarfRegNum<[14]>;
-  def T7   : MipsGPRReg< 15, "15">,  DwarfRegNum<[15]>;
-  def S0   : MipsGPRReg< 16, "16">,  DwarfRegNum<[16]>;
-  def S1   : MipsGPRReg< 17, "17">,  DwarfRegNum<[17]>;
-  def S2   : MipsGPRReg< 18, "18">,  DwarfRegNum<[18]>;
-  def S3   : MipsGPRReg< 19, "19">,  DwarfRegNum<[19]>;
-  def S4   : MipsGPRReg< 20, "20">,  DwarfRegNum<[20]>;
-  def S5   : MipsGPRReg< 21, "21">,  DwarfRegNum<[21]>;
-  def S6   : MipsGPRReg< 22, "22">,  DwarfRegNum<[22]>;
-  def S7   : MipsGPRReg< 23, "23">,  DwarfRegNum<[23]>;
-  def T8   : MipsGPRReg< 24, "24">,  DwarfRegNum<[24]>;
-  def T9   : MipsGPRReg< 25, "25">,  DwarfRegNum<[25]>;
-  def K0   : MipsGPRReg< 26, "26">,  DwarfRegNum<[26]>;
-  def K1   : MipsGPRReg< 27, "27">,  DwarfRegNum<[27]>;
-  def GP   : MipsGPRReg< 28, "GP">,  DwarfRegNum<[28]>;
-  def SP   : MipsGPRReg< 29, "SP">,  DwarfRegNum<[29]>;
-  def FP   : MipsGPRReg< 30, "FP">,  DwarfRegNum<[30]>;
-  def RA   : MipsGPRReg< 31, "RA">,  DwarfRegNum<[31]>;
-  
-  /// Mips Single point precision FPU Registers
-  def F0  : FPR< 0,  "F0">, DwarfRegNum<[32]>;
-  def F1  : FPR< 1,  "F1">, DwarfRegNum<[33]>;
-  def F2  : FPR< 2,  "F2">, DwarfRegNum<[34]>;
-  def F3  : FPR< 3,  "F3">, DwarfRegNum<[35]>;
-  def F4  : FPR< 4,  "F4">, DwarfRegNum<[36]>;
-  def F5  : FPR< 5,  "F5">, DwarfRegNum<[37]>;
-  def F6  : FPR< 6,  "F6">, DwarfRegNum<[38]>;
-  def F7  : FPR< 7,  "F7">, DwarfRegNum<[39]>;
-  def F8  : FPR< 8,  "F8">, DwarfRegNum<[40]>;
-  def F9  : FPR< 9,  "F9">, DwarfRegNum<[41]>;
-  def F10 : FPR<10, "F10">, DwarfRegNum<[42]>;
-  def F11 : FPR<11, "F11">, DwarfRegNum<[43]>;
-  def F12 : FPR<12, "F12">, DwarfRegNum<[44]>;
-  def F13 : FPR<13, "F13">, DwarfRegNum<[45]>;
-  def F14 : FPR<14, "F14">, DwarfRegNum<[46]>;
-  def F15 : FPR<15, "F15">, DwarfRegNum<[47]>;
-  def F16 : FPR<16, "F16">, DwarfRegNum<[48]>;
-  def F17 : FPR<17, "F17">, DwarfRegNum<[49]>;
-  def F18 : FPR<18, "F18">, DwarfRegNum<[50]>;
-  def F19 : FPR<19, "F19">, DwarfRegNum<[51]>;
-  def F20 : FPR<20, "F20">, DwarfRegNum<[52]>;
-  def F21 : FPR<21, "F21">, DwarfRegNum<[53]>;
-  def F22 : FPR<22, "F22">, DwarfRegNum<[54]>;
-  def F23 : FPR<23, "F23">, DwarfRegNum<[55]>;
-  def F24 : FPR<24, "F24">, DwarfRegNum<[56]>;
-  def F25 : FPR<25, "F25">, DwarfRegNum<[57]>;
-  def F26 : FPR<26, "F26">, DwarfRegNum<[58]>;
-  def F27 : FPR<27, "F27">, DwarfRegNum<[59]>;
-  def F28 : FPR<28, "F28">, DwarfRegNum<[60]>;
-  def F29 : FPR<29, "F29">, DwarfRegNum<[61]>;
-  def F30 : FPR<30, "F30">, DwarfRegNum<[62]>;
-  def F31 : FPR<31, "F31">, DwarfRegNum<[63]>;
-  
-  /// Mips Double point precision FPU Registers (aliased
-  /// with the single precision to hold 64 bit values)
-  def D0  : AFPR< 0,  "F0", [F0,   F1]>, DwarfRegNum<[32]>;
-  def D1  : AFPR< 2,  "F2", [F2,   F3]>, DwarfRegNum<[34]>;
-  def D2  : AFPR< 4,  "F4", [F4,   F5]>, DwarfRegNum<[36]>;
-  def D3  : AFPR< 6,  "F6", [F6,   F7]>, DwarfRegNum<[38]>;
-  def D4  : AFPR< 8,  "F8", [F8,   F9]>, DwarfRegNum<[40]>;
-  def D5  : AFPR<10, "F10", [F10, F11]>, DwarfRegNum<[42]>;
-  def D6  : AFPR<12, "F12", [F12, F13]>, DwarfRegNum<[44]>;
-  def D7  : AFPR<14, "F14", [F14, F15]>, DwarfRegNum<[46]>;
-  def D8  : AFPR<16, "F16", [F16, F17]>, DwarfRegNum<[48]>;
-  def D9  : AFPR<18, "F18", [F18, F19]>, DwarfRegNum<[50]>;
-  def D10 : AFPR<20, "F20", [F20, F21]>, DwarfRegNum<[52]>;
-  def D11 : AFPR<22, "F22", [F22, F23]>, DwarfRegNum<[54]>;
-  def D12 : AFPR<24, "F24", [F24, F25]>, DwarfRegNum<[56]>;
-  def D13 : AFPR<26, "F26", [F26, F27]>, DwarfRegNum<[58]>;
-  def D14 : AFPR<28, "F28", [F28, F29]>, DwarfRegNum<[60]>;
-  def D15 : AFPR<30, "F30", [F30, F31]>, DwarfRegNum<[62]>;
-
-  // Hi/Lo registers
-  def HI  : Register<"hi">, DwarfRegNum<[64]>;
-  def LO  : Register<"lo">, DwarfRegNum<[65]>;
-
-  // Status flags register
-  def FCR31 : Register<"31">;
-}
-
-//===----------------------------------------------------------------------===//
-// Register Classes
-//===----------------------------------------------------------------------===//
-
-def CPURegs : RegisterClass<"Mips", [i32], 32, 
-  // Return Values and Arguments
-  [V0, V1, A0, A1, A2, A3,
-  // Not preserved across procedure calls
-  T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, 
-  // Callee save
-  S0, S1, S2, S3, S4, S5, S6, S7,
-  // Reserved
-  ZERO, AT, K0, K1, GP, SP, FP, RA]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    CPURegsClass::iterator
-    CPURegsClass::allocation_order_end(const MachineFunction &MF) const {
-      // The last 8 registers on the list above are reserved
-      return end()-8;
-    }
-  }];
-}
-
-// 64bit fp:
-// * FGR64  - 32 64-bit registers
-// * AFGR64 - 16 32-bit even registers (32-bit FP Mode) 
-//
-// 32bit fp:
-// * FGR32 - 16 32-bit even registers
-// * FGR32 - 32 32-bit registers (single float only mode)
-def FGR32 : RegisterClass<"Mips", [f32], 32, 
-  // Return Values and Arguments
-  [F0, F1, F2, F3, F12, F13, F14, F15,
-  // Not preserved across procedure calls
-  F4, F5, F6, F7, F8, F9, F10, F11, F16, F17, F18, F19, 
-  // Callee save
-  F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30,
-  // Reserved
-  F31]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-
-    static const unsigned MIPS_FGR32[] = {
-      Mips::F0,  Mips::F1,  Mips::F2,  Mips::F3,  Mips::F12,  Mips::F13, 
-      Mips::F14, Mips::F15, Mips::F4,  Mips::F5,  Mips::F6,   Mips::F7, 
-      Mips::F8,  Mips::F9,  Mips::F10, Mips::F11, Mips::F16,  Mips::F17, 
-      Mips::F18, Mips::F19, Mips::F20, Mips::F21, Mips::F22,  Mips::F23, 
-      Mips::F24, Mips::F25, Mips::F26, Mips::F27, Mips::F28,  Mips::F29, 
-      Mips::F30
-    };
-
-    static const unsigned MIPS_SVR4_FGR32[] = {
-      Mips::F0,  Mips::F2,  Mips::F12, Mips::F14, Mips::F4, 
-      Mips::F6,  Mips::F8,  Mips::F10, Mips::F16, Mips::F18, 
-      Mips::F20, Mips::F22, Mips::F24, Mips::F26, Mips::F28, Mips::F30,
-    };
-
-    FGR32Class::iterator
-    FGR32Class::allocation_order_begin(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const MipsSubtarget &Subtarget = TM.getSubtarget<MipsSubtarget>();
-
-      if (Subtarget.isSingleFloat())
-        return MIPS_FGR32;
-      else
-        return MIPS_SVR4_FGR32; 
-    }
-
-    FGR32Class::iterator
-    FGR32Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const MipsSubtarget &Subtarget = TM.getSubtarget<MipsSubtarget>();
-
-      if (Subtarget.isSingleFloat())
-        return MIPS_FGR32 + (sizeof(MIPS_FGR32) / sizeof(unsigned));
-      else
-        return MIPS_SVR4_FGR32 + (sizeof(MIPS_SVR4_FGR32) / sizeof(unsigned));
-    }
-  }];
-}
-
-def AFGR64 : RegisterClass<"Mips", [f64], 64, 
-  // Return Values and Arguments
-  [D0, D1, D6, D7,
-  // Not preserved across procedure calls
-  D2, D3, D4, D5, D8, D9, 
-  // Callee save
-  D10, D11, D12, D13, D14,
-  // Reserved
-  D15]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    AFGR64Class::iterator
-    AFGR64Class::allocation_order_end(const MachineFunction &MF) const {
-      // The last register on the list above is reserved
-      return end()-1;
-    }
-  }];
-}
-
-// Condition Register for floating point operations
-def CCR  : RegisterClass<"Mips", [i32], 32, [FCR31]>;
-
-// Hi/Lo Registers
-def HILO : RegisterClass<"Mips", [i32], 32, [HI, LO]>;
-
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsSchedule.td b/libclamav/c++/llvm/lib/Target/Mips/MipsSchedule.td
deleted file mode 100644
index 0c3ca57..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsSchedule.td
+++ /dev/null
@@ -1,63 +0,0 @@
-//===- MipsSchedule.td - Mips Scheduling Definitions ------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Functional units across Mips chips sets. Based on GCC/Mips backend files.
-//===----------------------------------------------------------------------===//
-def ALU     : FuncUnit;
-def IMULDIV : FuncUnit;
-
-//===----------------------------------------------------------------------===//
-// Instruction Itinerary classes used for Mips 
-//===----------------------------------------------------------------------===//
-def IIAlu              : InstrItinClass;
-def IILoad             : InstrItinClass;
-def IIStore            : InstrItinClass;
-def IIXfer             : InstrItinClass;
-def IIBranch           : InstrItinClass;
-def IIHiLo             : InstrItinClass;
-def IIImul             : InstrItinClass;
-def IIIdiv             : InstrItinClass;
-def IIFcvt             : InstrItinClass;
-def IIFmove            : InstrItinClass;
-def IIFcmp             : InstrItinClass;
-def IIFadd             : InstrItinClass;
-def IIFmulSingle       : InstrItinClass;
-def IIFmulDouble       : InstrItinClass;
-def IIFdivSingle       : InstrItinClass;
-def IIFdivDouble       : InstrItinClass;
-def IIFsqrtSingle      : InstrItinClass;
-def IIFsqrtDouble      : InstrItinClass;
-def IIFrecipFsqrtStep  : InstrItinClass;
-def IIPseudo           : InstrItinClass;
-
-//===----------------------------------------------------------------------===//
-// Mips Generic instruction itineraries.
-//===----------------------------------------------------------------------===//
-def MipsGenericItineraries : ProcessorItineraries<[
-  InstrItinData<IIAlu              , [InstrStage<1,  [ALU]>]>,
-  InstrItinData<IILoad             , [InstrStage<3,  [ALU]>]>,
-  InstrItinData<IIStore            , [InstrStage<1,  [ALU]>]>,
-  InstrItinData<IIXfer             , [InstrStage<2,  [ALU]>]>,
-  InstrItinData<IIBranch           , [InstrStage<1,  [ALU]>]>,
-  InstrItinData<IIHiLo             , [InstrStage<1,  [IMULDIV]>]>,
-  InstrItinData<IIImul             , [InstrStage<17, [IMULDIV]>]>,
-  InstrItinData<IIIdiv             , [InstrStage<38, [IMULDIV]>]>,
-  InstrItinData<IIFcvt             , [InstrStage<1,  [ALU]>]>,
-  InstrItinData<IIFmove            , [InstrStage<2,  [ALU]>]>,
-  InstrItinData<IIFcmp             , [InstrStage<3,  [ALU]>]>,
-  InstrItinData<IIFadd             , [InstrStage<4,  [ALU]>]>,
-  InstrItinData<IIFmulSingle       , [InstrStage<7,  [ALU]>]>,
-  InstrItinData<IIFmulDouble       , [InstrStage<8,  [ALU]>]>,
-  InstrItinData<IIFdivSingle       , [InstrStage<23, [ALU]>]>,
-  InstrItinData<IIFdivDouble       , [InstrStage<36, [ALU]>]>,
-  InstrItinData<IIFsqrtSingle      , [InstrStage<54, [ALU]>]>,
-  InstrItinData<IIFsqrtDouble      , [InstrStage<12, [ALU]>]>,
-  InstrItinData<IIFrecipFsqrtStep  , [InstrStage<5,  [ALU]>]>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsSubtarget.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsSubtarget.cpp
deleted file mode 100644
index db114da..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsSubtarget.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===- MipsSubtarget.cpp - Mips Subtarget Information -----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Mips specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MipsSubtarget.h"
-#include "Mips.h"
-#include "MipsGenSubtarget.inc"
-using namespace llvm;
-
-MipsSubtarget::MipsSubtarget(const std::string &TT, const std::string &FS,
-                             bool little) : 
-  MipsArchVersion(Mips1), MipsABI(O32), IsLittle(little), IsSingleFloat(false),
-  IsFP64bit(false), IsGP64bit(false), HasVFPU(false), IsLinux(true),
-  HasSEInReg(false), HasCondMov(false), HasMulDivAdd(false), HasMinMax(false),
-  HasSwap(false), HasBitCount(false)
-{
-  std::string CPU = "mips1";
-  MipsArchVersion = Mips1;
-
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-
-  // Is the target system Linux ?
-  if (TT.find("linux") == std::string::npos)
-    IsLinux = false;
-
-  // When only the target triple is specified and is 
-  // a allegrex target, set the features. We also match
-  // big and little endian allegrex cores (dont really
-  // know if a big one exists)
-  if (TT.find("mipsallegrex") != std::string::npos ||
-      TT.find("psp") != std::string::npos) {
-    MipsABI = EABI;
-    IsSingleFloat = true;
-    MipsArchVersion = Mips2;
-    HasVFPU = true; // Enables Allegrex Vector FPU (not supported yet)
-    HasSEInReg = true;
-    HasBitCount = true;
-    HasSwap = true;
-    HasCondMov = true;
-  }
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsSubtarget.h b/libclamav/c++/llvm/lib/Target/Mips/MipsSubtarget.h
deleted file mode 100644
index 1d6f87d..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsSubtarget.h
+++ /dev/null
@@ -1,123 +0,0 @@
-//=====-- MipsSubtarget.h - Define Subtarget for the Mips -----*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Mips specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MIPSSUBTARGET_H
-#define MIPSSUBTARGET_H
-
-#include "llvm/Target/TargetSubtarget.h"
-#include "llvm/Target/TargetMachine.h"
-
-#include <string>
-
-namespace llvm {
-
-class MipsSubtarget : public TargetSubtarget {
-
-public:
-  enum MipsABIEnum {
-    O32, O64, N32, N64, EABI
-  }; 
-
-protected:
-
-  enum MipsArchEnum {
-    Mips1, Mips2, Mips3, Mips4, Mips32, Mips32r2, Mips64, Mips64r2
-  };
-
-  // Mips architecture version 
-  MipsArchEnum MipsArchVersion;
-
-  // Mips supported ABIs 
-  MipsABIEnum MipsABI;
-
-  // IsLittle - The target is Little Endian
-  bool IsLittle;
-
-  // IsSingleFloat - The target only supports single precision float
-  // point operations. This enable the target to use all 32 32-bit
-  // floating point registers instead of only using even ones.
-  bool IsSingleFloat;
-
-  // IsFP64bit - The target processor has 64-bit floating point registers.
-  bool IsFP64bit;
-
-  // IsFP64bit - General-purpose registers are 64 bits wide
-  bool IsGP64bit;
-
-  // HasVFPU - Processor has a vector floating point unit.
-  bool HasVFPU;
-
-  // isLinux - Target system is Linux. Is false we consider ELFOS for now.
-  bool IsLinux;
-
-  /// Features related to the presence of specific instructions.
-  
-  // HasSEInReg - SEB and SEH (signext in register) instructions.
-  bool HasSEInReg;
-
-  // HasCondMov - Conditional mov (MOVZ, MOVN) instructions.
-  bool HasCondMov;
-
-  // HasMulDivAdd - Multiply add and sub (MADD, MADDu, MSUB, MSUBu) 
-  // instructions.
-  bool HasMulDivAdd;
-
-  // HasMinMax - MIN and MAX instructions.
-  bool HasMinMax;
-
-  // HasSwap - Byte and half swap instructions.
-  bool HasSwap;
-
-  // HasBitCount - Count leading '1' and '0' bits.
-  bool HasBitCount;
-
-  InstrItineraryData InstrItins;
-
-public:
-
-  /// Only O32 and EABI supported right now.
-  bool isABI_EABI() const { return MipsABI == EABI; }
-  bool isABI_O32() const { return MipsABI == O32; }
-  unsigned getTargetABI() const { return MipsABI; }
-
-  /// This constructor initializes the data members to match that
-  /// of the specified triple.
-  MipsSubtarget(const std::string &TT, const std::string &FS, bool little);
-  
-  /// ParseSubtargetFeatures - Parses features string setting specified 
-  /// subtarget options.  Definition of function is auto generated by tblgen.
-  std::string ParseSubtargetFeatures(const std::string &FS,
-                                     const std::string &CPU);
-
-  bool isMips1() const { return MipsArchVersion == Mips1; }
-
-  bool isLittle() const { return IsLittle; }
-  bool isFP64bit() const { return IsFP64bit; };
-  bool isGP64bit() const { return IsGP64bit; };
-  bool isGP32bit() const { return !IsGP64bit; };
-  bool isSingleFloat() const { return IsSingleFloat; };
-  bool isNotSingleFloat() const { return !IsSingleFloat; };
-  bool hasVFPU() const { return HasVFPU; };
-  bool isLinux() const { return IsLinux; };
-
-  /// Features related to the presence of specific instructions.
-  bool hasSEInReg()   const { return HasSEInReg; };
-  bool hasCondMov()   const { return HasCondMov; };
-  bool hasMulDivAdd() const { return HasMulDivAdd; };
-  bool hasMinMax()    const { return HasMinMax; };
-  bool hasSwap()      const { return HasSwap; };
-  bool hasBitCount()  const { return HasBitCount; };
-};
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.cpp
deleted file mode 100644
index 4fa5450..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//===-- MipsTargetMachine.cpp - Define TargetMachine for Mips -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Implements the info about Mips target spec.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Mips.h"
-#include "MipsMCAsmInfo.h"
-#include "MipsTargetMachine.h"
-#include "llvm/PassManager.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-extern "C" void LLVMInitializeMipsTarget() {
-  // Register the target.
-  RegisterTargetMachine<MipsTargetMachine> X(TheMipsTarget);
-  RegisterTargetMachine<MipselTargetMachine> Y(TheMipselTarget);
-  RegisterAsmInfo<MipsMCAsmInfo> A(TheMipsTarget);
-  RegisterAsmInfo<MipsMCAsmInfo> B(TheMipselTarget);
-}
-
-// DataLayout --> Big-endian, 32-bit pointer/ABI/alignment
-// The stack is always 8 byte aligned
-// On function prologue, the stack is created by decrementing
-// its pointer. Once decremented, all references are done with positive
-// offset from the stack/frame pointer, using StackGrowsUp enables 
-// an easier handling.
-// Using CodeModel::Large enables different CALL behavior.
-MipsTargetMachine::
-MipsTargetMachine(const Target &T, const std::string &TT, const std::string &FS,
-                  bool isLittle=false):
-  LLVMTargetMachine(T, TT),
-  Subtarget(TT, FS, isLittle), 
-  DataLayout(isLittle ? std::string("e-p:32:32:32-i8:8:32-i16:16:32") :
-                        std::string("E-p:32:32:32-i8:8:32-i16:16:32")), 
-  InstrInfo(*this), 
-  FrameInfo(TargetFrameInfo::StackGrowsUp, 8, 0),
-  TLInfo(*this) {
-  // Abicall enables PIC by default
-  if (getRelocationModel() == Reloc::Default) {
-    if (Subtarget.isABI_O32())
-      setRelocationModel(Reloc::PIC_);
-    else
-      setRelocationModel(Reloc::Static);
-  }
-
-  // TODO: create an option to enable long calls, like -mlong-calls, 
-  // that would be our CodeModel::Large. It must not work with Abicall.
-  if (getCodeModel() == CodeModel::Default)
-    setCodeModel(CodeModel::Small);
-}
-
-MipselTargetMachine::
-MipselTargetMachine(const Target &T, const std::string &TT,
-                    const std::string &FS) :
-  MipsTargetMachine(T, TT, FS, true) {}
-
-// Install an instruction selector pass using 
-// the ISelDag to gen Mips code.
-bool MipsTargetMachine::
-addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel) 
-{
-  PM.add(createMipsISelDag(*this));
-  return false;
-}
-
-// Implemented by targets that want to run passes immediately before 
-// machine code is emitted. return true if -print-machineinstrs should 
-// print out the code after the passes.
-bool MipsTargetMachine::
-addPreEmitPass(PassManagerBase &PM, CodeGenOpt::Level OptLevel) 
-{
-  PM.add(createMipsDelaySlotFillerPass(*this));
-  return true;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.h b/libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.h
deleted file mode 100644
index c3428be..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.h
+++ /dev/null
@@ -1,71 +0,0 @@
-//===-- MipsTargetMachine.h - Define TargetMachine for Mips -00--*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Mips specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MIPSTARGETMACHINE_H
-#define MIPSTARGETMACHINE_H
-
-#include "MipsSubtarget.h"
-#include "MipsInstrInfo.h"
-#include "MipsISelLowering.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetFrameInfo.h"
-
-namespace llvm {
-  class formatted_raw_ostream;
-  
-  class MipsTargetMachine : public LLVMTargetMachine {
-    MipsSubtarget       Subtarget;
-    const TargetData    DataLayout; // Calculates type size & alignment
-    MipsInstrInfo       InstrInfo;
-    TargetFrameInfo     FrameInfo;
-    MipsTargetLowering  TLInfo;
-  public:
-    MipsTargetMachine(const Target &T, const std::string &TT,
-                      const std::string &FS, bool isLittle);
-    
-    virtual const MipsInstrInfo   *getInstrInfo()     const 
-    { return &InstrInfo; }
-    virtual const TargetFrameInfo *getFrameInfo()     const 
-    { return &FrameInfo; }
-    virtual const MipsSubtarget   *getSubtargetImpl() const 
-    { return &Subtarget; }
-    virtual const TargetData      *getTargetData()    const 
-    { return &DataLayout;}
-
-    virtual const MipsRegisterInfo *getRegisterInfo()  const {
-      return &InstrInfo.getRegisterInfo();
-    }
-
-    virtual MipsTargetLowering   *getTargetLowering() const { 
-      return const_cast<MipsTargetLowering*>(&TLInfo); 
-    }
-
-    // Pass Pipeline Configuration
-    virtual bool addInstSelector(PassManagerBase &PM,
-                                 CodeGenOpt::Level OptLevel);
-    virtual bool addPreEmitPass(PassManagerBase &PM,
-                                CodeGenOpt::Level OptLevel);
-  };
-
-/// MipselTargetMachine - Mipsel target machine.
-///
-class MipselTargetMachine : public MipsTargetMachine {
-public:
-  MipselTargetMachine(const Target &T, const std::string &TT,
-                      const std::string &FS);
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp b/libclamav/c++/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp
deleted file mode 100644
index 85e9d65..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//===-- MipsTargetObjectFile.cpp - Mips object files ----------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MipsTargetObjectFile.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/GlobalVariable.h"
-#include "llvm/MC/MCSectionELF.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Support/CommandLine.h"
-using namespace llvm;
-
-static cl::opt<unsigned>
-SSThreshold("mips-ssection-threshold", cl::Hidden,
-            cl::desc("Small data and bss section threshold size (default=8)"),
-            cl::init(8));
-
-void MipsTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
-  TargetLoweringObjectFileELF::Initialize(Ctx, TM);
- 
-  SmallDataSection =
-    getELFSection(".sdata", MCSectionELF::SHT_PROGBITS,
-                  MCSectionELF::SHF_WRITE | MCSectionELF::SHF_ALLOC,
-                  SectionKind::getDataRel());
-  
-  SmallBSSSection =
-    getELFSection(".sbss", MCSectionELF::SHT_NOBITS,
-                  MCSectionELF::SHF_WRITE | MCSectionELF::SHF_ALLOC,
-                  SectionKind::getBSS());
-  
-}
-
-// A address must be loaded from a small section if its size is less than the 
-// small section size threshold. Data in this section must be addressed using 
-// gp_rel operator.
-static bool IsInSmallSection(uint64_t Size) {
-  return Size > 0 && Size <= SSThreshold;
-}
-
-bool MipsTargetObjectFile::IsGlobalInSmallSection(const GlobalValue *GV,
-                                                const TargetMachine &TM) const {
-  if (GV->isDeclaration() || GV->hasAvailableExternallyLinkage())
-    return false;
-  
-  return IsGlobalInSmallSection(GV, TM, getKindForGlobal(GV, TM));
-}
-
-/// IsGlobalInSmallSection - Return true if this global address should be
-/// placed into small data/bss section.
-bool MipsTargetObjectFile::
-IsGlobalInSmallSection(const GlobalValue *GV, const TargetMachine &TM,
-                       SectionKind Kind) const {
-  // Only global variables, not functions.
-  const GlobalVariable *GVA = dyn_cast<GlobalVariable>(GV);
-  if (!GVA)
-    return false;
-  
-  // We can only do this for datarel or BSS objects for now.
-  if (!Kind.isBSS() && !Kind.isDataRel())
-    return false;
-  
-  // If this is a internal constant string, there is a special
-  // section for it, but not in small data/bss.
-  if (Kind.isMergeable1ByteCString())
-    return false;
-
-  const Type *Ty = GV->getType()->getElementType();
-  return IsInSmallSection(TM.getTargetData()->getTypeAllocSize(Ty));
-}
-
-
-
-const MCSection *MipsTargetObjectFile::
-SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
-                       Mangler *Mang, const TargetMachine &TM) const {
-  // TODO: Could also support "weak" symbols as well with ".gnu.linkonce.s.*"
-  // sections?
-  
-  // Handle Small Section classification here.
-  if (Kind.isBSS() && IsGlobalInSmallSection(GV, TM, Kind))
-    return SmallBSSSection;
-  if (Kind.isDataNoRel() && IsGlobalInSmallSection(GV, TM, Kind))
-    return SmallDataSection;
-  
-  // Otherwise, we work the same as ELF.
-  return TargetLoweringObjectFileELF::SelectSectionForGlobal(GV, Kind, Mang,TM);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetObjectFile.h b/libclamav/c++/llvm/lib/Target/Mips/MipsTargetObjectFile.h
deleted file mode 100644
index 32e0436..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/MipsTargetObjectFile.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- llvm/Target/MipsTargetObjectFile.h - Mips Object Info ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_MIPS_TARGETOBJECTFILE_H
-#define LLVM_TARGET_MIPS_TARGETOBJECTFILE_H
-
-#include "llvm/Target/TargetLoweringObjectFile.h"
-
-namespace llvm {
-
-  class MipsTargetObjectFile : public TargetLoweringObjectFileELF {
-    const MCSection *SmallDataSection;
-    const MCSection *SmallBSSSection;
-  public:
-    
-    void Initialize(MCContext &Ctx, const TargetMachine &TM);
-
-    
-    /// IsGlobalInSmallSection - Return true if this global address should be
-    /// placed into small data/bss section.
-    bool IsGlobalInSmallSection(const GlobalValue *GV,
-                                const TargetMachine &TM, SectionKind Kind)const;
-    bool IsGlobalInSmallSection(const GlobalValue *GV,
-                                const TargetMachine &TM) const;  
-    
-    const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
-                                            SectionKind Kind,
-                                            Mangler *Mang,
-                                            const TargetMachine &TM) const;
-      
-    // TODO: Classify globals as mips wishes.
-  };
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 6e5d56b..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMMipsInfo
-  MipsTargetInfo.cpp
-  )
-
-add_dependencies(LLVMMipsInfo MipsCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/Makefile
deleted file mode 100644
index 32f4e16..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/Mips/TargetInfo/Makefile -----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMMipsInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
deleted file mode 100644
index cc3d61e..0000000
--- a/libclamav/c++/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//===-- MipsTargetInfo.cpp - Mips Target Implementation -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Mips.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheMipsTarget, llvm::TheMipselTarget;
-
-extern "C" void LLVMInitializeMipsTargetInfo() { 
-  RegisterTarget<Triple::mips> X(TheMipsTarget, "mips", "Mips");
-
-  RegisterTarget<Triple::mipsel> Y(TheMipselTarget, "mipsel", "Mipsel");
-}
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 2e1b809..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-include_directories(
-  ${CMAKE_CURRENT_BINARY_DIR}/..
-  ${CMAKE_CURRENT_SOURCE_DIR}/..
-  )
-
-add_llvm_library(LLVMPIC16AsmPrinter
-  PIC16AsmPrinter.cpp
-  )
-add_dependencies(LLVMPIC16AsmPrinter PIC16CodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/Makefile
index f4db57e..e69de29 100644
--- a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/Makefile
+++ b/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/Makefile
@@ -1,15 +0,0 @@
-##===- lib/Target/PIC16/AsmPrinter/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMPIC16AsmPrinter
-
-# Hack: we need to include 'main' pic16 target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp
deleted file mode 100644
index 5c33bed..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp
+++ /dev/null
@@ -1,482 +0,0 @@
-//===-- PIC16AsmPrinter.cpp - PIC16 LLVM assembly writer ------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to PIC16 assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16AsmPrinter.h"
-#include "MCSectionPIC16.h"
-#include "PIC16MCAsmInfo.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/Module.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
-#include <cstring>
-using namespace llvm;
-
-#include "PIC16GenAsmWriter.inc"
-
-PIC16AsmPrinter::PIC16AsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                                 const MCAsmInfo *T, bool V)
-: AsmPrinter(O, TM, T, V), DbgInfo(O, T) {
-  PTLI = static_cast<PIC16TargetLowering*>(TM.getTargetLowering());
-  PMAI = static_cast<const PIC16MCAsmInfo*>(T);
-  PTOF = (PIC16TargetObjectFile*)&PTLI->getObjFileLowering();
-}
-
-bool PIC16AsmPrinter::printMachineInstruction(const MachineInstr *MI) {
-  printInstruction(MI);
-  return true;
-}
-
-/// runOnMachineFunction - This emits the frame section, autos section and 
-/// assembly for each instruction. Also takes care of function begin debug
-/// directive and file begin debug directive (if required) for the function.
-///
-bool PIC16AsmPrinter::runOnMachineFunction(MachineFunction &MF) {
-  this->MF = &MF;
-
-  // This calls the base class function required to be called at beginning
-  // of runOnMachineFunction.
-  SetupMachineFunction(MF);
-
-  // Get the mangled name.
-  const Function *F = MF.getFunction();
-  CurrentFnName = Mang->getMangledName(F);
-
-  // Emit the function frame (args and temps).
-  EmitFunctionFrame(MF);
-
-  DbgInfo.BeginFunction(MF);
-
-  // Emit the autos section of function.
-  EmitAutos(CurrentFnName);
-
-  // Now emit the instructions of function in its code section.
-  const MCSection *fCodeSection = 
-    getObjFileLowering().getSectionForFunction(CurrentFnName);
-  // Start the Code Section.
-  O <<  "\n";
-  OutStreamer.SwitchSection(fCodeSection);
-
-  // Emit the frame address of the function at the beginning of code.
-  O << "\tretlw  low(" << PAN::getFrameLabel(CurrentFnName) << ")\n";
-  O << "\tretlw  high(" << PAN::getFrameLabel(CurrentFnName) << ")\n";
-
-  // Emit function start label.
-  O << CurrentFnName << ":\n";
-
-  DebugLoc CurDL;
-  O << "\n"; 
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-
-    // Print a label for the basic block.
-    if (I != MF.begin()) {
-      printBasicBlockLabel(I, true);
-      O << '\n';
-    }
-    
-    // Print a basic block.
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-
-      // Emit the line directive if source line changed.
-      const DebugLoc DL = II->getDebugLoc();
-      if (!DL.isUnknown() && DL != CurDL) {
-        DbgInfo.ChangeDebugLoc(MF, DL);
-        CurDL = DL;
-      }
-        
-      // Print the assembly for the instruction.
-      printMachineInstruction(II);
-    }
-  }
-  
-  // Emit function end debug directives.
-  DbgInfo.EndFunction(MF);
-
-  return false;  // we didn't modify anything.
-}
-
-
-// printOperand - print operand of insn.
-void PIC16AsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
-  const MachineOperand &MO = MI->getOperand(opNum);
-
-  switch (MO.getType()) {
-    case MachineOperand::MO_Register:
-      if (TargetRegisterInfo::isPhysicalRegister(MO.getReg()))
-        O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
-      else
-        llvm_unreachable("not implemented");
-      return;
-
-    case MachineOperand::MO_Immediate:
-      O << (int)MO.getImm();
-      return;
-
-    case MachineOperand::MO_GlobalAddress: {
-      std::string Sname = Mang->getMangledName(MO.getGlobal());
-      // FIXME: currently we do not have a memcpy def coming in the module
-      // by any chance, as we do not link in those as .bc lib. So these calls
-      // are always external and it is safe to emit an extern.
-      if (PAN::isMemIntrinsic(Sname)) {
-        LibcallDecls.push_back(createESName(Sname));
-      }
-
-      O << Sname;
-      break;
-    }
-    case MachineOperand::MO_ExternalSymbol: {
-       const char *Sname = MO.getSymbolName();
-
-      // If its a libcall name, record it to decls section.
-      if (PAN::getSymbolTag(Sname) == PAN::LIBCALL) {
-        LibcallDecls.push_back(Sname);
-      }
-
-      // Record a call to intrinsic to print the extern declaration for it.
-      std::string Sym = Sname;  
-      if (PAN::isMemIntrinsic(Sym)) {
-        Sym = PAN::addPrefix(Sym);
-        LibcallDecls.push_back(createESName(Sym));
-      }
-
-      O  << Sym;
-      break;
-    }
-    case MachineOperand::MO_MachineBasicBlock:
-      printBasicBlockLabel(MO.getMBB());
-      return;
-
-    default:
-      llvm_unreachable(" Operand type not supported.");
-  }
-}
-
-/// printCCOperand - Print the cond code operand.
-///
-void PIC16AsmPrinter::printCCOperand(const MachineInstr *MI, int opNum) {
-  int CC = (int)MI->getOperand(opNum).getImm();
-  O << PIC16CondCodeToString((PIC16CC::CondCodes)CC);
-}
-
-// This function is used to sort the decls list.
-// should return true if s1 should come before s2.
-static bool is_before(const char *s1, const char *s2) {
-  return strcmp(s1, s2) <= 0;
-}
-
-// This is used by list::unique below. 
-// unique will filter out duplicates if it knows them.
-static bool is_duplicate(const char *s1, const char *s2) {
-  return !strcmp(s1, s2);
-}
-
-/// printLibcallDecls - print the extern declarations for compiler 
-/// intrinsics.
-///
-void PIC16AsmPrinter::printLibcallDecls() {
-  // If no libcalls used, return.
-  if (LibcallDecls.empty()) return;
-
-  O << MAI->getCommentString() << "External decls for libcalls - BEGIN." <<"\n";
-  // Remove duplicate entries.
-  LibcallDecls.sort(is_before);
-  LibcallDecls.unique(is_duplicate);
-
-  for (std::list<const char*>::const_iterator I = LibcallDecls.begin(); 
-       I != LibcallDecls.end(); I++) {
-    O << MAI->getExternDirective() << *I << "\n";
-    O << MAI->getExternDirective() << PAN::getArgsLabel(*I) << "\n";
-    O << MAI->getExternDirective() << PAN::getRetvalLabel(*I) << "\n";
-  }
-  O << MAI->getCommentString() << "External decls for libcalls - END." <<"\n";
-}
-
-/// doInitialization - Perfrom Module level initializations here.
-/// One task that we do here is to sectionize all global variables.
-/// The MemSelOptimizer pass depends on the sectionizing.
-///
-bool PIC16AsmPrinter::doInitialization(Module &M) {
-  bool Result = AsmPrinter::doInitialization(M);
-
-  // FIXME:: This is temporary solution to generate the include file.
-  // The processor should be passed to llc as in input and the header file
-  // should be generated accordingly.
-  O << "\n\t#include P16F1937.INC\n";
-
-  // Set the section names for all globals.
-  for (Module::global_iterator I = M.global_begin(), E = M.global_end();
-       I != E; ++I)
-    if (!I->isDeclaration() && !I->hasAvailableExternallyLinkage()) {
-      const MCSection *S = getObjFileLowering().SectionForGlobal(I, Mang, TM);
-      
-      I->setSection(((const MCSectionPIC16*)S)->getName());
-    }
-
-  DbgInfo.BeginModule(M);
-  EmitFunctionDecls(M);
-  EmitUndefinedVars(M);
-  EmitDefinedVars(M);
-  EmitIData(M);
-  EmitUData(M);
-  EmitRomData(M);
-  return Result;
-}
-
-/// Emit extern decls for functions imported from other modules, and emit
-/// global declarations for function defined in this module and which are
-/// available to other modules.
-///
-void PIC16AsmPrinter::EmitFunctionDecls(Module &M) {
- // Emit declarations for external functions.
-  O <<"\n"<<MAI->getCommentString() << "Function Declarations - BEGIN." <<"\n";
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; I++) {
-    if (I->isIntrinsic())
-      continue;
-
-    std::string Name = Mang->getMangledName(I);
-    if (Name.compare("@abort") == 0)
-      continue;
-    
-    if (!I->isDeclaration() && !I->hasExternalLinkage())
-      continue;
-
-    // Do not emit memcpy, memset, and memmove here.
-    // Calls to these routines can be generated in two ways,
-    // 1. User calling the standard lib function
-    // 2. Codegen generating these calls for llvm intrinsics.
-    // In the first case a prototype is alread availale, while in
-    // second case the call is via and externalsym and the prototype is missing.
-    // So declarations for these are currently always getting printing by
-    // tracking both kind of references in printInstrunction.
-    if (I->isDeclaration() && PAN::isMemIntrinsic(Name)) continue;
-
-    const char *directive = I->isDeclaration() ? MAI->getExternDirective() :
-                                                 MAI->getGlobalDirective();
-      
-    O << directive << Name << "\n";
-    O << directive << PAN::getRetvalLabel(Name) << "\n";
-    O << directive << PAN::getArgsLabel(Name) << "\n";
-  }
-
-  O << MAI->getCommentString() << "Function Declarations - END." <<"\n";
-}
-
-// Emit variables imported from other Modules.
-void PIC16AsmPrinter::EmitUndefinedVars(Module &M) {
-  std::vector<const GlobalVariable*> Items = PTOF->ExternalVarDecls->Items;
-  if (!Items.size()) return;
-
-  O << "\n" << MAI->getCommentString() << "Imported Variables - BEGIN" << "\n";
-  for (unsigned j = 0; j < Items.size(); j++) {
-    O << MAI->getExternDirective() << Mang->getMangledName(Items[j]) << "\n";
-  }
-  O << MAI->getCommentString() << "Imported Variables - END" << "\n";
-}
-
-// Emit variables defined in this module and are available to other modules.
-void PIC16AsmPrinter::EmitDefinedVars(Module &M) {
-  std::vector<const GlobalVariable*> Items = PTOF->ExternalVarDefs->Items;
-  if (!Items.size()) return;
-
-  O << "\n" << MAI->getCommentString() << "Exported Variables - BEGIN" << "\n";
-  for (unsigned j = 0; j < Items.size(); j++) {
-    O << MAI->getGlobalDirective() << Mang->getMangledName(Items[j]) << "\n";
-  }
-  O <<  MAI->getCommentString() << "Exported Variables - END" << "\n";
-}
-
-// Emit initialized data placed in ROM.
-void PIC16AsmPrinter::EmitRomData(Module &M) {
-  // Print ROM Data section.
-  const std::vector<PIC16Section*> &ROSections = PTOF->ROSections;
-  for (unsigned i = 0; i < ROSections.size(); i++) {
-    const std::vector<const GlobalVariable*> &Items = ROSections[i]->Items;
-    if (!Items.size()) continue;
-    O << "\n";
-    OutStreamer.SwitchSection(PTOF->ROSections[i]->S_);
-    for (unsigned j = 0; j < Items.size(); j++) {
-      O << Mang->getMangledName(Items[j]);
-      Constant *C = Items[j]->getInitializer();
-      int AddrSpace = Items[j]->getType()->getAddressSpace();
-      EmitGlobalConstant(C, AddrSpace);
-    }
-  }
-}
-
-bool PIC16AsmPrinter::doFinalization(Module &M) {
-  printLibcallDecls();
-  EmitRemainingAutos();
-  DbgInfo.EndModule(M);
-  O << "\n\t" << "END\n";
-  return AsmPrinter::doFinalization(M);
-}
-
-void PIC16AsmPrinter::EmitFunctionFrame(MachineFunction &MF) {
-  const Function *F = MF.getFunction();
-  std::string FuncName = Mang->getMangledName(F);
-  const TargetData *TD = TM.getTargetData();
-  // Emit the data section name.
-  O << "\n"; 
-  
-  const MCSection *fPDataSection =
-    getObjFileLowering().getSectionForFunctionFrame(CurrentFnName);
-  OutStreamer.SwitchSection(fPDataSection);
-  
-  // Emit function frame label
-  O << PAN::getFrameLabel(CurrentFnName) << ":\n";
-
-  const Type *RetType = F->getReturnType();
-  unsigned RetSize = 0; 
-  if (RetType->getTypeID() != Type::VoidTyID) 
-    RetSize = TD->getTypeAllocSize(RetType);
-  
-  //Emit function return value space
-  // FIXME: Do not emit RetvalLable when retsize is zero. To do this
-  // we will need to avoid printing a global directive for Retval label
-  // in emitExternandGloblas.
-  if(RetSize > 0)
-     O << PAN::getRetvalLabel(CurrentFnName) << " RES " << RetSize << "\n";
-  else
-     O << PAN::getRetvalLabel(CurrentFnName) << ": \n";
-   
-  // Emit variable to hold the space for function arguments 
-  unsigned ArgSize = 0;
-  for (Function::const_arg_iterator argi = F->arg_begin(),
-           arge = F->arg_end(); argi != arge ; ++argi) {
-    const Type *Ty = argi->getType();
-    ArgSize += TD->getTypeAllocSize(Ty);
-   }
-
-  O << PAN::getArgsLabel(CurrentFnName) << " RES " << ArgSize << "\n";
-
-  // Emit temporary space
-  int TempSize = PTLI->GetTmpSize();
-  if (TempSize > 0)
-    O << PAN::getTempdataLabel(CurrentFnName) << " RES  " << TempSize << '\n';
-}
-
-void PIC16AsmPrinter::EmitIData(Module &M) {
-
-  // Print all IDATA sections.
-  const std::vector<PIC16Section*> &IDATASections = PTOF->IDATASections;
-  for (unsigned i = 0; i < IDATASections.size(); i++) {
-    O << "\n";
-    if (IDATASections[i]->S_->getName().find("llvm.") != std::string::npos)
-      continue;
-    OutStreamer.SwitchSection(IDATASections[i]->S_);
-    std::vector<const GlobalVariable*> Items = IDATASections[i]->Items;
-    for (unsigned j = 0; j < Items.size(); j++) {
-      std::string Name = Mang->getMangledName(Items[j]);
-      Constant *C = Items[j]->getInitializer();
-      int AddrSpace = Items[j]->getType()->getAddressSpace();
-      O << Name;
-      EmitGlobalConstant(C, AddrSpace);
-    }
-  }
-}
-
-void PIC16AsmPrinter::EmitUData(Module &M) {
-  const TargetData *TD = TM.getTargetData();
-
-  // Print all BSS sections.
-  const std::vector<PIC16Section*> &BSSSections = PTOF->BSSSections;
-  for (unsigned i = 0; i < BSSSections.size(); i++) {
-    O << "\n";
-    OutStreamer.SwitchSection(BSSSections[i]->S_);
-    std::vector<const GlobalVariable*> Items = BSSSections[i]->Items;
-    for (unsigned j = 0; j < Items.size(); j++) {
-      std::string Name = Mang->getMangledName(Items[j]);
-      Constant *C = Items[j]->getInitializer();
-      const Type *Ty = C->getType();
-      unsigned Size = TD->getTypeAllocSize(Ty);
-
-      O << Name << " RES " << Size << "\n";
-    }
-  }
-}
-
-void PIC16AsmPrinter::EmitAutos(std::string FunctName) {
-  // Section names for all globals are already set.
-  const TargetData *TD = TM.getTargetData();
-
-  // Now print Autos section for this function.
-  std::string SectionName = PAN::getAutosSectionName(FunctName);
-  const std::vector<PIC16Section*> &AutosSections = PTOF->AutosSections;
-  for (unsigned i = 0; i < AutosSections.size(); i++) {
-    O << "\n";
-    if (AutosSections[i]->S_->getName() == SectionName) { 
-      // Set the printing status to true
-      AutosSections[i]->setPrintedStatus(true);
-      OutStreamer.SwitchSection(AutosSections[i]->S_);
-      const std::vector<const GlobalVariable*> &Items = AutosSections[i]->Items;
-      for (unsigned j = 0; j < Items.size(); j++) {
-        std::string VarName = Mang->getMangledName(Items[j]);
-        Constant *C = Items[j]->getInitializer();
-        const Type *Ty = C->getType();
-        unsigned Size = TD->getTypeAllocSize(Ty);
-        // Emit memory reserve directive.
-        O << VarName << "  RES  " << Size << "\n";
-      }
-      break;
-    }
-  }
-}
-
-// Print autos that were not printed during the code printing of functions.
-// As the functions might themselves would have got deleted by the optimizer.
-void PIC16AsmPrinter::EmitRemainingAutos() {
-  const TargetData *TD = TM.getTargetData();
-
-  // Now print Autos section for this function.
-  std::vector <PIC16Section *>AutosSections = PTOF->AutosSections;
-  for (unsigned i = 0; i < AutosSections.size(); i++) {
-    
-    // if the section is already printed then don't print again
-    if (AutosSections[i]->isPrinted()) 
-      continue;
-
-    // Set status as printed
-    AutosSections[i]->setPrintedStatus(true);
-
-    O << "\n";
-    OutStreamer.SwitchSection(AutosSections[i]->S_);
-    const std::vector<const GlobalVariable*> &Items = AutosSections[i]->Items;
-    for (unsigned j = 0; j < Items.size(); j++) {
-      std::string VarName = Mang->getMangledName(Items[j]);
-      Constant *C = Items[j]->getInitializer();
-      const Type *Ty = C->getType();
-      unsigned Size = TD->getTypeAllocSize(Ty);
-      // Emit memory reserve directive.
-      O << VarName << "  RES  " << Size << "\n";
-    }
-  }
-}
-
-
-extern "C" void LLVMInitializePIC16AsmPrinter() { 
-  RegisterAsmPrinter<PIC16AsmPrinter> X(ThePIC16Target);
-}
-
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h b/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h
deleted file mode 100644
index 8510eaa..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//===-- PIC16AsmPrinter.h - PIC16 LLVM assembly writer ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to PIC16 assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16ASMPRINTER_H
-#define PIC16ASMPRINTER_H
-
-#include "PIC16.h"
-#include "PIC16TargetMachine.h"
-#include "PIC16DebugInfo.h"
-#include "PIC16MCAsmInfo.h"
-#include "PIC16TargetObjectFile.h"
-#include "llvm/Analysis/DebugInfo.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Target/TargetMachine.h"
-#include <list>
-#include <string>
-
-namespace llvm {
-  class VISIBILITY_HIDDEN PIC16AsmPrinter : public AsmPrinter {
-  public:
-    explicit PIC16AsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                             const MCAsmInfo *T, bool V);
-  private:
-    virtual const char *getPassName() const {
-      return "PIC16 Assembly Printer";
-    }
-    
-    PIC16TargetObjectFile &getObjFileLowering() const {
-      return (PIC16TargetObjectFile &)AsmPrinter::getObjFileLowering();
-    }
-
-    bool runOnMachineFunction(MachineFunction &F);
-    void printOperand(const MachineInstr *MI, int opNum);
-    void printCCOperand(const MachineInstr *MI, int opNum);
-    void printInstruction(const MachineInstr *MI); // definition autogenerated.
-    bool printMachineInstruction(const MachineInstr *MI);
-    void EmitFunctionDecls (Module &M);
-    void EmitUndefinedVars (Module &M);
-    void EmitDefinedVars (Module &M);
-    void EmitIData (Module &M);
-    void EmitUData (Module &M);
-    void EmitAutos (std::string FunctName);
-    void EmitRemainingAutos ();
-    void EmitRomData (Module &M);
-    void EmitFunctionFrame(MachineFunction &MF);
-    void printLibcallDecls();
-  protected:
-    bool doInitialization(Module &M);
-    bool doFinalization(Module &M);
-
-    /// PrintGlobalVariable - Emit the specified global variable and its
-    /// initializer to the output stream.
-    virtual void PrintGlobalVariable(const GlobalVariable *GV) {
-      // PIC16 doesn't use normal hooks for this.
-    }
-    
-  private:
-    PIC16TargetObjectFile *PTOF;
-    PIC16TargetLowering *PTLI;
-    PIC16DbgInfo DbgInfo;
-    const PIC16MCAsmInfo *PMAI;
-    std::list<const char *> LibcallDecls; // List of extern decls.
-  };
-} // end of namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/PIC16/CMakeLists.txt
deleted file mode 100644
index 0ee88f9..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS PIC16.td)
-
-tablegen(PIC16GenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(PIC16GenRegisterNames.inc -gen-register-enums)
-tablegen(PIC16GenRegisterInfo.inc -gen-register-desc)
-tablegen(PIC16GenInstrNames.inc -gen-instr-enums)
-tablegen(PIC16GenInstrInfo.inc -gen-instr-desc)
-tablegen(PIC16GenAsmWriter.inc -gen-asm-writer)
-tablegen(PIC16GenDAGISel.inc -gen-dag-isel)
-tablegen(PIC16GenCallingConv.inc -gen-callingconv)
-tablegen(PIC16GenSubtarget.inc -gen-subtarget)
-
-add_llvm_target(PIC16
-  PIC16DebugInfo.cpp
-  PIC16InstrInfo.cpp
-  PIC16ISelDAGToDAG.cpp
-  PIC16ISelLowering.cpp
-  PIC16MemSelOpt.cpp
-  PIC16MCAsmInfo.cpp
-  PIC16RegisterInfo.cpp
-  PIC16Subtarget.cpp
-  PIC16TargetMachine.cpp
-  PIC16TargetObjectFile.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/MCSectionPIC16.h b/libclamav/c++/llvm/lib/Target/PIC16/MCSectionPIC16.h
deleted file mode 100644
index 3ae432e..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/MCSectionPIC16.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//===- MCSectionPIC16.h - PIC16-specific section representation -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the MCSectionPIC16 class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_PIC16SECTION_H
-#define LLVM_PIC16SECTION_H
-
-#include "llvm/MC/MCSection.h"
-
-namespace llvm {
-
-  /// MCSectionPIC16 - Represents a physical section in PIC16 COFF.
-  /// Contains data objects.
-  ///
-  class MCSectionPIC16 : public MCSection {
-    /// Name of the section to uniquely identify it.
-    std::string Name;
-
-    /// User can specify an address at which a section should be placed. 
-    /// Negative value here means user hasn't specified any. 
-    int Address; 
-
-    /// FIXME: Keep overlay information here. uncomment the decl below.
-    /// Overlay information - Sections with same color can be overlaid on
-    /// one another.
-    /// std::string Color; 
-
-    /// Conatined data objects.
-    std::vector<const GlobalVariable *>Items;
-
-    /// Total size of all data objects contained here.
-    unsigned Size;
-    
-    MCSectionPIC16(const StringRef &name, SectionKind K, int addr)
-      : MCSection(K), Name(name), Address(addr) {
-    }
-    
-  public:
-    /// Return the name of the section.
-    const std::string &getName() const { return Name; }
-
-    /// Return the Address of the section.
-    int getAddress() const { return Address; }
-
-    /// PIC16 Terminology for section kinds is as below.
-    /// UDATA - BSS
-    /// IDATA - initialized data (equiv to Metadata) 
-    /// ROMDATA - ReadOnly.
-    /// UDATA_OVR - Sections that can be overlaid. Section of such type is
-    ///             used to contain function autos an frame. We can think of
-    ///             it as equiv to llvm ThreadBSS)
-    /// So, let's have some convenience functions to Map PIC16 Section types 
-    /// to SectionKind just for the sake of better readability.
-    static SectionKind UDATA_Kind() { return SectionKind::getBSS(); } 
-    static SectionKind IDATA_Kind() { return SectionKind::getMetadata(); }
-    static SectionKind ROMDATA_Kind() { return SectionKind::getReadOnly(); }
-    static SectionKind UDATA_OVR_Kind() { return SectionKind::getThreadBSS(); }
-
-    // If we could just do getKind() == UDATA_Kind() ?
-    bool isUDATA_Kind() { return getKind().isBSS(); }
-    bool isIDATA_Kind() { return getKind().isMetadata(); }
-    bool isROMDATA_Kind() { return getKind().isMetadata(); }
-    bool isUDATA_OVR_Kind() { return getKind().isThreadBSS(); }
-
-    /// This would be the only way to create a section. 
-    static MCSectionPIC16 *Create(const StringRef &Name, SectionKind K, 
-                                  int Address, MCContext &Ctx);
-    
-    /// Override this as PIC16 has its own way of printing switching
-    /// to a section.
-    virtual void PrintSwitchToSection(const MCAsmInfo &MAI,
-                                      raw_ostream &OS) const;
-  };
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/Makefile b/libclamav/c++/llvm/lib/Target/PIC16/Makefile
deleted file mode 100644
index f913675..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-##===- lib/Target/PIC16/Makefile ---------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source 
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMPIC16CodeGen
-TARGET = PIC16
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = PIC16GenRegisterInfo.h.inc PIC16GenRegisterNames.inc \
-		PIC16GenRegisterInfo.inc PIC16GenInstrNames.inc \
-		PIC16GenInstrInfo.inc PIC16GenAsmWriter.inc \
-		PIC16GenDAGISel.inc PIC16GenCallingConv.inc \
-		PIC16GenSubtarget.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16.h
deleted file mode 100644
index 8a3704d..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16.h
+++ /dev/null
@@ -1,369 +0,0 @@
-//===-- PIC16.h - Top-level interface for PIC16 representation --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in 
-// the LLVM PIC16 back-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_PIC16_H
-#define LLVM_TARGET_PIC16_H
-
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Target/TargetMachine.h"
-#include <cassert>
-#include <sstream>
-#include <cstring>
-#include <string>
-
-namespace llvm {
-  class PIC16TargetMachine;
-  class FunctionPass;
-  class MachineCodeEmitter;
-  class formatted_raw_ostream;
-
-namespace PIC16CC {
-  enum CondCodes {
-    EQ,
-    NE,
-    LT,
-    LE,
-    GT,
-    GE,
-    ULT,
-    UGT,
-    ULE,
-    UGE
-  };
-}
-  // A Central class to manage all ABI naming conventions.
-  // PAN - [P]ic16 [A]BI [N]ames
-  class PAN {
-    public:
-    // Map the name of the symbol to its section name.
-    // Current ABI:
-    // -----------------------------------------------------
-    // ALL Names are prefixed with the symobl '@'.
-    // ------------------------------------------------------
-    // Global variables do not have any '.' in their names.
-    // These are maily function names and global variable names.
-    // Example - @foo,  @i
-    // -------------------------------------------------------
-    // Functions and auto variables.
-    // Names are mangled as <prefix><funcname>.<tag>.<varname>
-    // Where <prefix> is '@' and <tag> is any one of
-    // the following
-    // .auto. - an automatic var of a function.
-    // .temp. - temproray data of a function.
-    // .ret.  - return value label for a function.
-    // .frame. - Frame label for a function where retval, args
-    //           and temps are stored.
-    // .args. - Label used to pass arguments to a direct call.
-    // Example - Function name:   @foo
-    //           Its frame:       @foo.frame.
-    //           Its retval:      @foo.ret.
-    //           Its local vars:  @foo.auto.a
-    //           Its temp data:   @foo.temp.
-    //           Its arg passing: @foo.args.
-    //----------------------------------------------
-    // Libcall - compiler generated libcall names must start with .lib.
-    //           This id will be used to emit extern decls for libcalls.
-    // Example - libcall name:   @.lib.sra.i8
-    //           To pass args:   @.lib.sra.i8.args.
-    //           To return val:  @.lib.sra.i8.ret.
-    //----------------------------------------------
-    // SECTION Names
-    // uninitialized globals - @udata.<num>.#
-    // initialized globals - @idata.<num>.#
-    // Function frame - @<func>.frame_section.
-    // Function autos - @<func>.autos_section.
-    // Declarations - Enclosed in comments. No section for them.
-    //----------------------------------------------------------
-    
-    // Tags used to mangle different names. 
-    enum TAGS {
-      PREFIX_SYMBOL,
-      GLOBAL,
-      STATIC_LOCAL,
-      AUTOS_LABEL,
-      FRAME_LABEL,
-      RET_LABEL,
-      ARGS_LABEL,
-      TEMPS_LABEL,
-      
-      LIBCALL,
-      
-      FRAME_SECTION,
-      AUTOS_SECTION,
-      CODE_SECTION
-    };
-
-    // Textual names of the tags.
-    inline static const char *getTagName(TAGS tag) {
-      switch (tag) {
-      default: return "";
-      case PREFIX_SYMBOL:    return "@";
-      case AUTOS_LABEL:       return ".auto.";
-      case FRAME_LABEL:       return ".frame.";
-      case TEMPS_LABEL:       return ".temp.";
-      case ARGS_LABEL:       return ".args.";
-      case RET_LABEL:       return ".ret.";
-      case LIBCALL:       return ".lib.";
-      case FRAME_SECTION:       return ".frame_section.";
-      case AUTOS_SECTION:       return ".autos_section.";
-      case CODE_SECTION:       return ".code_section.";
-      }
-    }
-
-    // Get tag type for the Symbol.
-    inline static TAGS getSymbolTag(const std::string &Sym) {
-      if (Sym.find(getTagName(TEMPS_LABEL)) != std::string::npos)
-        return TEMPS_LABEL;
-
-      if (Sym.find(getTagName(FRAME_LABEL)) != std::string::npos)
-        return FRAME_LABEL;
-
-      if (Sym.find(getTagName(RET_LABEL)) != std::string::npos)
-        return RET_LABEL;
-
-      if (Sym.find(getTagName(ARGS_LABEL)) != std::string::npos)
-        return ARGS_LABEL;
-
-      if (Sym.find(getTagName(AUTOS_LABEL)) != std::string::npos)
-        return AUTOS_LABEL;
-
-      if (Sym.find(getTagName(LIBCALL)) != std::string::npos)
-        return LIBCALL;
-
-      // It does not have any Tag. So its a true global or static local.
-      if (Sym.find(".") == std::string::npos) 
-        return GLOBAL;
-      
-      // If a . is there, then it may be static local.
-      // We should mangle these as well in clang.
-      if (Sym.find(".") != std::string::npos) 
-        return STATIC_LOCAL;
- 
-      assert (0 && "Could not determine Symbol's tag");
-      return PREFIX_SYMBOL; // Silence warning when assertions are turned off.
-    }
-
-    // addPrefix - add prefix symbol to a name if there isn't one already.
-    inline static std::string addPrefix (const std::string &Name) {
-      std::string prefix = getTagName (PREFIX_SYMBOL);
-
-      // If this name already has a prefix, nothing to do.
-      if (Name.compare(0, prefix.size(), prefix) == 0)
-        return Name;
-
-      return prefix + Name;
-    }
-
-    // Get mangled func name from a mangled sym name.
-    // In all cases func name is the first component before a '.'.
-    static inline std::string getFuncNameForSym(const std::string &Sym1) {
-      assert (getSymbolTag(Sym1) != GLOBAL && "not belongs to a function");
-
-      std::string Sym = addPrefix(Sym1);
-
-      // Position of the . after func name. That's where func name ends.
-      size_t func_name_end = Sym.find ('.');
-
-      return Sym.substr (0, func_name_end);
-    }
-
-    // Get Frame start label for a func.
-    static std::string getFrameLabel(const std::string &Func) {
-      std::string Func1 = addPrefix(Func);
-      std::string tag = getTagName(FRAME_LABEL);
-      return Func1 + tag;
-    }
-
-    static std::string getRetvalLabel(const std::string &Func) {
-      std::string Func1 = addPrefix(Func);
-      std::string tag = getTagName(RET_LABEL);
-      return Func1 + tag;
-    }
-
-    static std::string getArgsLabel(const std::string &Func) {
-      std::string Func1 = addPrefix(Func);
-      std::string tag = getTagName(ARGS_LABEL);
-      return Func1 + tag;
-    }
-
-    static std::string getTempdataLabel(const std::string &Func) {
-      std::string Func1 = addPrefix(Func);
-      std::string tag = getTagName(TEMPS_LABEL);
-      return Func1 + tag;
-    }
-
-    static std::string getFrameSectionName(const std::string &Func) {
-      std::string Func1 = addPrefix(Func);
-      std::string tag = getTagName(FRAME_SECTION);
-      return Func1 + tag + "# UDATA_OVR";
-    }
-
-    static std::string getAutosSectionName(const std::string &Func) {
-      std::string Func1 = addPrefix(Func);
-      std::string tag = getTagName(AUTOS_SECTION);
-      return Func1 + tag + "# UDATA_OVR";
-    }
-
-    static std::string getCodeSectionName(const std::string &Func) {
-      std::string Func1 = addPrefix(Func);
-      std::string tag = getTagName(CODE_SECTION);
-      return Func1 + tag + "# CODE";
-    }
-
-    // udata, romdata and idata section names are generated by a given number.
-    // @udata.<num>.# 
-    static std::string getUdataSectionName(unsigned num, 
-                                           std::string prefix = "") {
-       std::ostringstream o;
-       o << getTagName(PREFIX_SYMBOL) << prefix << "udata." << num 
-         << ".# UDATA"; 
-       return o.str(); 
-    }
-
-    static std::string getRomdataSectionName(unsigned num,
-                                             std::string prefix = "") {
-       std::ostringstream o;
-       o << getTagName(PREFIX_SYMBOL) << prefix << "romdata." << num 
-         << ".# ROMDATA";
-       return o.str();
-    }
-
-    static std::string getIdataSectionName(unsigned num,
-                                           std::string prefix = "") {
-       std::ostringstream o;
-       o << getTagName(PREFIX_SYMBOL) << prefix << "idata." << num 
-         << ".# IDATA"; 
-       return o.str(); 
-    }
-
-    inline static bool isLocalName (const std::string &Name) {
-      if (getSymbolTag(Name) == AUTOS_LABEL)
-        return true;
-
-      return false;
-    }
-
-    inline static bool isMemIntrinsic (const std::string &Name) {
-      if (Name.compare("@memcpy") == 0 || Name.compare("@memset") == 0 ||
-          Name.compare("@memmove") == 0) {
-        return true;
-      }
-      
-      return false;
-    }
-
-    inline static bool isLocalToFunc (std::string &Func, std::string &Var) {
-      if (! isLocalName(Var)) return false;
-
-      std::string Func1 = addPrefix(Func);
-      // Extract func name of the varilable.
-      const std::string &fname = getFuncNameForSym(Var);
-
-      if (fname.compare(Func1) == 0)
-        return true;
-
-      return false;
-    }
-
-
-    // Get the section for the given external symbol names.
-    // This tries to find the type (Tag) of the symbol from its mangled name
-    // and return appropriate section name for it.
-    static inline std::string getSectionNameForSym(const std::string &Sym1) {
-      std::string Sym = addPrefix(Sym1);
-
-      std::string SectionName;
- 
-      std::string Fname = getFuncNameForSym (Sym);
-      TAGS id = getSymbolTag (Sym);
-
-      switch (id) {
-        default : assert (0 && "Could not determine external symbol type");
-        case FRAME_LABEL:
-        case RET_LABEL:
-        case TEMPS_LABEL:
-        case ARGS_LABEL:  {
-          return getFrameSectionName(Fname);
-        }
-        case AUTOS_LABEL: {
-          return getAutosSectionName(Fname);
-        }
-      }
-    }
-  }; // class PAN.
-
-
-  // External symbol names require memory to live till the program end.
-  // So we have to allocate it and keep.
-  inline static const char *createESName (const std::string &name) {
-    char *tmpName = new char[name.size() + 1];
-    strcpy (tmpName, name.c_str());
-    return tmpName;
-  }
-
-
-
-  inline static const char *PIC16CondCodeToString(PIC16CC::CondCodes CC) {
-    switch (CC) {
-    default: llvm_unreachable("Unknown condition code");
-    case PIC16CC::NE:  return "ne";
-    case PIC16CC::EQ:   return "eq";
-    case PIC16CC::LT:   return "lt";
-    case PIC16CC::ULT:   return "lt";
-    case PIC16CC::LE:  return "le";
-    case PIC16CC::ULE:  return "le";
-    case PIC16CC::GT:  return "gt";
-    case PIC16CC::UGT:  return "gt";
-    case PIC16CC::GE:   return "ge";
-    case PIC16CC::UGE:   return "ge";
-    }
-  }
-
-  inline static bool isSignedComparison(PIC16CC::CondCodes CC) {
-    switch (CC) {
-    default: llvm_unreachable("Unknown condition code");
-    case PIC16CC::NE:  
-    case PIC16CC::EQ: 
-    case PIC16CC::LT:
-    case PIC16CC::LE:
-    case PIC16CC::GE:
-    case PIC16CC::GT:
-      return true;
-    case PIC16CC::ULT:
-    case PIC16CC::UGT:
-    case PIC16CC::ULE:
-    case PIC16CC::UGE:
-      return false;   // condition codes for unsigned comparison. 
-    }
-  }
-
-
-
-  FunctionPass *createPIC16ISelDag(PIC16TargetMachine &TM);
-  // Banksel optimizer pass.
-  FunctionPass *createPIC16MemSelOptimizerPass();
-
-  extern Target ThePIC16Target;
-  extern Target TheCooperTarget;
-  
-} // end namespace llvm;
-
-// Defines symbolic names for PIC16 registers.  This defines a mapping from
-// register name to register number.
-#include "PIC16GenRegisterNames.inc"
-
-// Defines symbolic names for the PIC16 instructions.
-#include "PIC16GenInstrNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16.td b/libclamav/c++/llvm/lib/Target/PIC16/PIC16.td
deleted file mode 100644
index b2b9b1c..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16.td
+++ /dev/null
@@ -1,40 +0,0 @@
-//===- PIC16.td - Describe the PIC16 Target Machine -----------*- tblgen -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This is the top level entry point for the PIC16 target.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Target-independent interfaces
-//===----------------------------------------------------------------------===//
-
-include "llvm/Target/Target.td"
-
-include "PIC16RegisterInfo.td"
-include "PIC16InstrInfo.td"
-
-//===----------------------------------------------------------------------===//
-// Subtarget Features. 
-//===----------------------------------------------------------------------===//
-def FeatureCooper : SubtargetFeature<"cooper", "IsCooper", "true",
-                                     "PIC16 Cooper ISA Support">;
-
-//===----------------------------------------------------------------------===//
-// PIC16 supported processors.
-//===----------------------------------------------------------------------===//
-
-def : Processor<"generic", NoItineraries, []>;
-def : Processor<"cooper", NoItineraries, [FeatureCooper]>;
-
-
-def PIC16InstrInfo : InstrInfo {} 
-
-def PIC16 : Target {
-  let InstructionSet = PIC16InstrInfo;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.cpp
deleted file mode 100644
index 4dcd84d..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.cpp
+++ /dev/null
@@ -1,491 +0,0 @@
-
-//===-- PIC16DebugInfo.cpp - Implementation for PIC16 Debug Information ======//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the helper functions for representing debug information.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16.h"
-#include "PIC16DebugInfo.h" 
-#include "llvm/GlobalVariable.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Support/DebugLoc.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/ADT/SmallString.h"
-
-using namespace llvm;
-
-/// PopulateDebugInfo - Populate the TypeNo, Aux[] and TagName from Ty.
-///
-void PIC16DbgInfo::PopulateDebugInfo (DIType Ty, unsigned short &TypeNo,
-                                      bool &HasAux, int Aux[], 
-                                      std::string &TagName) {
-  if (Ty.isBasicType(Ty.getTag())) 
-    PopulateBasicTypeInfo (Ty, TypeNo);
-  else if (Ty.isDerivedType(Ty.getTag())) 
-    PopulateDerivedTypeInfo (Ty, TypeNo, HasAux, Aux, TagName);
-  else if (Ty.isCompositeType(Ty.getTag())) 
-    PopulateCompositeTypeInfo (Ty, TypeNo, HasAux, Aux, TagName);
-  else {
-    TypeNo = PIC16Dbg::T_NULL;
-    HasAux = false;
-  }
-  return;
-}
-
-/// PopulateBasicTypeInfo- Populate TypeNo for basic type from Ty.
-///
-void PIC16DbgInfo::PopulateBasicTypeInfo (DIType Ty, unsigned short &TypeNo) {
-  std::string Name = "";
-  Ty.getName(Name);
-  unsigned short BaseTy = GetTypeDebugNumber(Name);
-  TypeNo = TypeNo << PIC16Dbg::S_BASIC;
-  TypeNo = TypeNo | (0xffff & BaseTy);
-}
-
-/// PopulateDerivedTypeInfo - Populate TypeNo, Aux[], TagName for derived type 
-/// from Ty. Derived types are mostly pointers.
-///
-void PIC16DbgInfo::PopulateDerivedTypeInfo (DIType Ty, unsigned short &TypeNo,
-                                            bool &HasAux, int Aux[],
-                                            std::string &TagName) {
-
-  switch(Ty.getTag())
-  {
-    case dwarf::DW_TAG_pointer_type:
-      TypeNo = TypeNo << PIC16Dbg::S_DERIVED;
-      TypeNo = TypeNo | PIC16Dbg::DT_PTR;
-      break;
-    default:
-      TypeNo = TypeNo << PIC16Dbg::S_DERIVED;
-  }
-  
-  // We also need to encode the the information about the base type of
-  // pointer in TypeNo.
-  DIType BaseType = DIDerivedType(Ty.getNode()).getTypeDerivedFrom();
-  PopulateDebugInfo(BaseType, TypeNo, HasAux, Aux, TagName);
-}
-
-/// PopulateArrayTypeInfo - Populate TypeNo, Aux[] for array from Ty.
-void PIC16DbgInfo::PopulateArrayTypeInfo (DIType Ty, unsigned short &TypeNo,
-                                          bool &HasAux, int Aux[],
-                                          std::string &TagName) {
-
-  DICompositeType CTy = DICompositeType(Ty.getNode());
-  DIArray Elements = CTy.getTypeArray();
-  unsigned short size = 1;
-  unsigned short Dimension[4]={0,0,0,0};
-  for (unsigned i = 0, N = Elements.getNumElements(); i < N; ++i) {
-    DIDescriptor Element = Elements.getElement(i);
-    if (Element.getTag() == dwarf::DW_TAG_subrange_type) {
-      TypeNo = TypeNo << PIC16Dbg::S_DERIVED;
-      TypeNo = TypeNo | PIC16Dbg::DT_ARY;
-      DISubrange SubRange = DISubrange(Element.getNode());
-      Dimension[i] = SubRange.getHi() - SubRange.getLo() + 1;
-      // Each dimension is represented by 2 bytes starting at byte 9.
-      Aux[8+i*2+0] = Dimension[i];
-      Aux[8+i*2+1] = Dimension[i] >> 8;
-      size = size * Dimension[i];
-    }
-  }
-  HasAux = true;
-  // In auxillary entry for array, 7th and 8th byte represent array size.
-  Aux[6] = size & 0xff;
-  Aux[7] = size >> 8;
-  DIType BaseType = CTy.getTypeDerivedFrom();
-  PopulateDebugInfo(BaseType, TypeNo, HasAux, Aux, TagName);
-}
-
-/// PopulateStructOrUnionTypeInfo - Populate TypeNo, Aux[] , TagName for 
-/// structure or union.
-///
-void PIC16DbgInfo::PopulateStructOrUnionTypeInfo (DIType Ty, 
-                                                  unsigned short &TypeNo,
-                                                  bool &HasAux, int Aux[],
-                                                  std::string &TagName) {
-  DICompositeType CTy = DICompositeType(Ty.getNode());
-  TypeNo = TypeNo << PIC16Dbg::S_BASIC;
-  if (Ty.getTag() == dwarf::DW_TAG_structure_type)
-    TypeNo = TypeNo | PIC16Dbg::T_STRUCT;
-  else
-    TypeNo = TypeNo | PIC16Dbg::T_UNION;
-  CTy.getName(TagName);
-  // UniqueSuffix is .number where number is obtained from
-  // llvm.dbg.composite<number>.
-  // FIXME: This will break when composite type is not represented by
-  // llvm.dbg.composite* global variable. Since we need to revisit 
-  // PIC16DebugInfo implementation anyways after the MDNodes based 
-  // framework is done, let us continue with the way it is.
-  std::string UniqueSuffix = "." + Ty.getNode()->getNameStr().substr(18);
-  TagName += UniqueSuffix;
-  unsigned short size = CTy.getSizeInBits()/8;
-  // 7th and 8th byte represent size.
-  HasAux = true;
-  Aux[6] = size & 0xff;
-  Aux[7] = size >> 8;
-}
-
-/// PopulateEnumTypeInfo - Populate TypeNo for enum from Ty.
-void PIC16DbgInfo::PopulateEnumTypeInfo (DIType Ty, unsigned short &TypeNo) {
-  TypeNo = TypeNo << PIC16Dbg::S_BASIC;
-  TypeNo = TypeNo | PIC16Dbg::T_ENUM;
-}
-
-/// PopulateCompositeTypeInfo - Populate TypeNo, Aux[] and TagName for 
-/// composite types from Ty.
-///
-void PIC16DbgInfo::PopulateCompositeTypeInfo (DIType Ty, unsigned short &TypeNo,
-                                              bool &HasAux, int Aux[],
-                                              std::string &TagName) {
-  switch (Ty.getTag()) {
-    case dwarf::DW_TAG_array_type: {
-      PopulateArrayTypeInfo (Ty, TypeNo, HasAux, Aux, TagName);
-      break;
-    }
-    case dwarf:: DW_TAG_union_type:
-    case dwarf::DW_TAG_structure_type: {
-      PopulateStructOrUnionTypeInfo (Ty, TypeNo, HasAux, Aux, TagName);
-      break;
-    }
-    case dwarf::DW_TAG_enumeration_type: {
-      PopulateEnumTypeInfo (Ty, TypeNo);
-      break;
-    }
-    default:
-      TypeNo = TypeNo << PIC16Dbg::S_DERIVED;
-  }
-}
-
-/// GetTypeDebugNumber - Get debug type number for given type.
-///
-unsigned PIC16DbgInfo::GetTypeDebugNumber(std::string &type)  {
-  if (type == "char")
-    return PIC16Dbg::T_CHAR;
-  else if (type == "short")
-    return PIC16Dbg::T_SHORT;
-  else if (type == "int")
-    return PIC16Dbg::T_INT;
-  else if (type == "long")
-    return PIC16Dbg::T_LONG;
-  else if (type == "unsigned char")
-    return PIC16Dbg::T_UCHAR;
-  else if (type == "unsigned short")
-    return PIC16Dbg::T_USHORT;
-  else if (type == "unsigned int")
-    return PIC16Dbg::T_UINT;
-  else if (type == "unsigned long")
-    return PIC16Dbg::T_ULONG;
-  else
-    return 0;
-}
- 
-/// GetStorageClass - Get storage class for give debug variable.
-///
-short PIC16DbgInfo::getStorageClass(DIGlobalVariable DIGV) {
-  short ClassNo;
-  if (PAN::isLocalName(DIGV.getGlobal()->getName())) {
-    // Generating C_AUTO here fails due to error in linker. Change it once
-    // linker is fixed.
-    ClassNo = PIC16Dbg::C_STAT;
-  }
-  else if (DIGV.isLocalToUnit())
-    ClassNo = PIC16Dbg::C_STAT;
-  else
-    ClassNo = PIC16Dbg::C_EXT;
-  return ClassNo;
-}
-
-/// BeginModule - Emit necessary debug info to start a Module and do other
-/// required initializations.
-void PIC16DbgInfo::BeginModule(Module &M) {
-  // Emit file directive for module.
-  DebugInfoFinder DbgFinder;
-  DbgFinder.processModule(M);
-  if (DbgFinder.compile_unit_count() != 0) {
-    // FIXME : What if more then one CUs are present in a module ?
-    MDNode *CU = *DbgFinder.compile_unit_begin();
-    EmitDebugDirectives = true;
-    SwitchToCU(CU);
-  }
-  // Emit debug info for decls of composite types.
-  EmitCompositeTypeDecls(M);
-}
-
-/// Helper to find first valid debug loc for a function.
-///
-static const DebugLoc GetDebugLocForFunction(const MachineFunction &MF) {
-  DebugLoc DL;
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-      DL = II->getDebugLoc();
-      if (!DL.isUnknown())
-        return DL;
-    }
-  }
-  return DL;
-}
-
-/// BeginFunction - Emit necessary debug info to start a function.
-///
-void PIC16DbgInfo::BeginFunction(const MachineFunction &MF) {
-  if (! EmitDebugDirectives) return;
-  
-  // Retreive the first valid debug Loc and process it.
-  const DebugLoc &DL = GetDebugLocForFunction(MF);
-  // Emit debug info only if valid debug info is available.
-  if (!DL.isUnknown()) {
-    ChangeDebugLoc(MF, DL, true);
-    EmitFunctBeginDI(MF.getFunction());
-  } 
-  // Set current line to 0 so that.line directive is genearted after .bf.
-  CurLine = 0;
-}
-
-/// ChangeDebugLoc - Take necessary steps when DebugLoc changes.
-/// CurFile and CurLine may change as a result of this.
-///
-void PIC16DbgInfo::ChangeDebugLoc(const MachineFunction &MF,  
-                                  const DebugLoc &DL, bool IsInBeginFunction) {
-  if (! EmitDebugDirectives) return;
-  assert (! DL.isUnknown()  && "can't change to invalid debug loc");
-
-  MDNode *CU = MF.getDebugLocTuple(DL).CompileUnit;
-  unsigned line = MF.getDebugLocTuple(DL).Line;
-
-  SwitchToCU(CU);
-  SwitchToLine(line, IsInBeginFunction);
-}
-
-/// SwitchToLine - Emit line directive for a new line.
-///
-void PIC16DbgInfo::SwitchToLine(unsigned Line, bool IsInBeginFunction) {
-  if (CurLine == Line) return;
-  if (!IsInBeginFunction)  O << "\n\t.line " << Line << "\n";
-  CurLine = Line;
-}
-
-/// EndFunction - Emit .ef for end of function.
-///
-void PIC16DbgInfo::EndFunction(const MachineFunction &MF) {
-  if (! EmitDebugDirectives) return;
-  const DebugLoc &DL = GetDebugLocForFunction(MF);
-  // Emit debug info only if valid debug info is available.
-  if (!DL.isUnknown())
-    EmitFunctEndDI(MF.getFunction(), CurLine);
-}
-
-/// EndModule - Emit .eof for end of module.
-///
-void PIC16DbgInfo::EndModule(Module &M) {
-  if (! EmitDebugDirectives) return;
-  EmitVarDebugInfo(M);
-  if (CurFile != "") O << "\n\t.eof";
-}
- 
-/// EmitCompositeTypeElements - Emit debug information for members of a 
-/// composite type.
-/// 
-void PIC16DbgInfo::EmitCompositeTypeElements (DICompositeType CTy,
-                                              std::string SuffixNo) {
-  unsigned long Value = 0;
-  DIArray Elements = CTy.getTypeArray();
-  for (unsigned i = 0, N = Elements.getNumElements(); i < N; i++) {
-    DIDescriptor Element = Elements.getElement(i);
-    unsigned short TypeNo = 0;
-    bool HasAux = false;
-    int ElementAux[PIC16Dbg::AuxSize] = { 0 };
-    std::string TagName = "";
-    std::string ElementName;
-    DIDerivedType DITy(Element.getNode());
-    DITy.getName(ElementName);
-    unsigned short ElementSize = DITy.getSizeInBits()/8;
-    // Get mangleddd name for this structure/union  element.
-    std::string MangMemName = ElementName + SuffixNo;
-    PopulateDebugInfo(DITy, TypeNo, HasAux, ElementAux, TagName);
-    short Class = 0;
-    if( CTy.getTag() == dwarf::DW_TAG_union_type)
-      Class = PIC16Dbg::C_MOU;
-    else if  (CTy.getTag() == dwarf::DW_TAG_structure_type)
-      Class = PIC16Dbg::C_MOS;
-    EmitSymbol(MangMemName.c_str(), Class, TypeNo, Value);
-    if (CTy.getTag() == dwarf::DW_TAG_structure_type)
-      Value += ElementSize;
-    if (HasAux)
-      EmitAuxEntry(MangMemName.c_str(), ElementAux, PIC16Dbg::AuxSize, TagName);
-  }
-}
-
-/// EmitCompositeTypeDecls - Emit composite type declarations like structure 
-/// and union declarations.
-///
-void PIC16DbgInfo::EmitCompositeTypeDecls(Module &M) {
-  DebugInfoFinder DbgFinder;
-  DbgFinder.processModule(M);
-  for (DebugInfoFinder::iterator I = DbgFinder.type_begin(),
-         E = DbgFinder.type_end(); I != E; ++I) {
-    DICompositeType CTy(*I);
-    if (CTy.isNull())
-      continue;
-    if (CTy.getTag() == dwarf::DW_TAG_union_type ||
-        CTy.getTag() == dwarf::DW_TAG_structure_type ) {
-      std::string Name;
-      CTy.getName(Name);
-      // Get the number after llvm.dbg.composite and make UniqueSuffix from 
-      // it.
-      std::string DIVar = CTy.getNode()->getNameStr();
-      std::string UniqueSuffix = "." + DIVar.substr(18);
-      std::string MangledCTyName = Name + UniqueSuffix;
-      unsigned short size = CTy.getSizeInBits()/8;
-      int Aux[PIC16Dbg::AuxSize] = {0};
-      // 7th and 8th byte represent size of structure/union.
-      Aux[6] = size & 0xff;
-      Aux[7] = size >> 8;
-      // Emit .def for structure/union tag.
-      if( CTy.getTag() == dwarf::DW_TAG_union_type)
-        EmitSymbol(MangledCTyName.c_str(), PIC16Dbg::C_UNTAG);
-      else if  (CTy.getTag() == dwarf::DW_TAG_structure_type) 
-        EmitSymbol(MangledCTyName.c_str(), PIC16Dbg::C_STRTAG);
-      
-      // Emit auxiliary debug information for structure/union tag. 
-      EmitAuxEntry(MangledCTyName.c_str(), Aux, PIC16Dbg::AuxSize);
-      
-      // Emit members.
-      EmitCompositeTypeElements (CTy, UniqueSuffix);
-      
-      // Emit mangled Symbol for end of structure/union.
-      std::string EOSSymbol = ".eos" + UniqueSuffix;
-      EmitSymbol(EOSSymbol.c_str(), PIC16Dbg::C_EOS);
-      EmitAuxEntry(EOSSymbol.c_str(), Aux, PIC16Dbg::AuxSize, 
-                   MangledCTyName.c_str());
-    }
-  }
-}
-
-
-/// EmitFunctBeginDI - Emit .bf for function.
-///
-void PIC16DbgInfo::EmitFunctBeginDI(const Function *F) {
-  std::string FunctName = F->getName();
-  if (EmitDebugDirectives) {
-    std::string FunctBeginSym = ".bf." + FunctName;
-    std::string BlockBeginSym = ".bb." + FunctName;
-
-    int BFAux[PIC16Dbg::AuxSize] = {0};
-    BFAux[4] = CurLine;
-    BFAux[5] = CurLine >> 8;
-
-    // Emit debug directives for beginning of function.
-    EmitSymbol(FunctBeginSym, PIC16Dbg::C_FCN);
-    EmitAuxEntry(FunctBeginSym, BFAux, PIC16Dbg::AuxSize);
-
-    EmitSymbol(BlockBeginSym, PIC16Dbg::C_BLOCK);
-    EmitAuxEntry(BlockBeginSym, BFAux, PIC16Dbg::AuxSize);
-  }
-}
-
-/// EmitFunctEndDI - Emit .ef for function end.
-///
-void PIC16DbgInfo::EmitFunctEndDI(const Function *F, unsigned Line) {
-  std::string FunctName = F->getName();
-  if (EmitDebugDirectives) {
-    std::string FunctEndSym = ".ef." + FunctName;
-    std::string BlockEndSym = ".eb." + FunctName;
-
-    // Emit debug directives for end of function.
-    EmitSymbol(BlockEndSym, PIC16Dbg::C_BLOCK);
-    int EFAux[PIC16Dbg::AuxSize] = {0};
-    // 5th and 6th byte stand for line number.
-    EFAux[4] = CurLine;
-    EFAux[5] = CurLine >> 8;
-    EmitAuxEntry(BlockEndSym, EFAux, PIC16Dbg::AuxSize);
-    EmitSymbol(FunctEndSym, PIC16Dbg::C_FCN);
-    EmitAuxEntry(FunctEndSym, EFAux, PIC16Dbg::AuxSize);
-  }
-}
-
-/// EmitAuxEntry - Emit Auxiliary debug information.
-///
-void PIC16DbgInfo::EmitAuxEntry(const std::string VarName, int Aux[], int Num,
-                                std::string TagName) {
-  O << "\n\t.dim " << VarName << ", 1" ;
-  // TagName is emitted in case of structure/union objects.
-  if (TagName != "")
-    O << ", " << TagName;
-  for (int i = 0; i<Num; i++)
-    O << "," << Aux[i];
-}
-
-/// EmitSymbol - Emit .def for a symbol. Value is offset for the member.
-///
-void PIC16DbgInfo::EmitSymbol(std::string Name, short Class, unsigned short
-                              Type, unsigned long Value) {
-  O << "\n\t" << ".def "<< Name << ", type = " << Type << ", class = " 
-    << Class;
-  if (Value > 0)
-    O  << ", value = " << Value;
-}
-
-/// EmitVarDebugInfo - Emit debug information for all variables.
-///
-void PIC16DbgInfo::EmitVarDebugInfo(Module &M) {
-  DebugInfoFinder DbgFinder;
-  DbgFinder.processModule(M);
-  
-  for (DebugInfoFinder::iterator I = DbgFinder.global_variable_begin(),
-         E = DbgFinder.global_variable_end(); I != E; ++I) {
-    DIGlobalVariable DIGV(*I);
-    DIType Ty = DIGV.getType();
-    unsigned short TypeNo = 0;
-    bool HasAux = false;
-    int Aux[PIC16Dbg::AuxSize] = { 0 };
-    std::string TagName = "";
-    std::string VarName = MAI->getGlobalPrefix()+DIGV.getGlobal()->getNameStr();
-    PopulateDebugInfo(Ty, TypeNo, HasAux, Aux, TagName);
-    // Emit debug info only if type information is availaible.
-    if (TypeNo != PIC16Dbg::T_NULL) {
-      O << "\n\t.type " << VarName << ", " << TypeNo;
-      short ClassNo = getStorageClass(DIGV);
-      O << "\n\t.class " << VarName << ", " << ClassNo;
-      if (HasAux) 
-        EmitAuxEntry(VarName, Aux, PIC16Dbg::AuxSize, TagName);
-    }
-  }
-  O << "\n";
-}
-
-/// SwitchToCU - Switch to a new compilation unit.
-///
-void PIC16DbgInfo::SwitchToCU(MDNode *CU) {
-  // Get the file path from CU.
-  DICompileUnit cu(CU);
-  std::string DirName, FileName;
-  std::string FilePath = cu.getDirectory(DirName) + "/" + 
-                         cu.getFilename(FileName);
-
-  // Nothing to do if source file is still same.
-  if ( FilePath == CurFile ) return;
-
-  // Else, close the current one and start a new.
-  if (CurFile != "") O << "\n\t.eof";
-  O << "\n\t.file\t\"" << FilePath << "\"\n" ;
-  CurFile = FilePath;
-  CurLine = 0;
-}
-
-/// EmitEOF - Emit .eof for end of file.
-///
-void PIC16DbgInfo::EmitEOF() {
-  if (CurFile != "")
-    O << "\n\t.EOF";
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.h
deleted file mode 100644
index 54e27c7..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.h
+++ /dev/null
@@ -1,157 +0,0 @@
-//===-- PIC16DebugInfo.h - Interfaces for PIC16 Debug Information ============//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the helper functions for representing debug information.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16DBG_H
-#define PIC16DBG_H
-
-#include "llvm/Analysis/DebugInfo.h"
-#include "llvm/Module.h"
-
-namespace llvm {
-  class MachineFunction;
-  class DebugLoc;
-  namespace PIC16Dbg {
-    enum VarType {
-      T_NULL,
-      T_VOID,
-      T_CHAR,
-      T_SHORT,
-      T_INT,
-      T_LONG,
-      T_FLOAT,
-      T_DOUBLE,
-      T_STRUCT,
-      T_UNION,
-      T_ENUM,
-      T_MOE,
-      T_UCHAR,
-      T_USHORT,
-      T_UINT,
-      T_ULONG
-    };
-    enum DerivedType {
-      DT_NONE,
-      DT_PTR,
-      DT_FCN,
-      DT_ARY
-    };
-    enum TypeSize {
-      S_BASIC = 5,
-      S_DERIVED = 3
-    };
-    enum DbgClass {
-      C_NULL,
-      C_AUTO,
-      C_EXT,
-      C_STAT,
-      C_REG,
-      C_EXTDEF,
-      C_LABEL,
-      C_ULABEL,
-      C_MOS,
-      C_ARG,
-      C_STRTAG,
-      C_MOU,
-      C_UNTAG,
-      C_TPDEF,
-      C_USTATIC,
-      C_ENTAG,
-      C_MOE,
-      C_REGPARM,
-      C_FIELD,
-      C_AUTOARG,
-      C_LASTENT,
-      C_BLOCK = 100,
-      C_FCN,
-      C_EOS,
-      C_FILE,
-      C_LINE,
-      C_ALIAS,
-      C_HIDDEN,
-      C_EOF,
-      C_LIST,
-      C_SECTION,
-      C_EFCN = 255
-    };
-    enum SymbolSize {
-      AuxSize =20
-    };
-  }
-
-  class formatted_raw_ostream;
-
-  class PIC16DbgInfo {
-    formatted_raw_ostream &O;
-    const MCAsmInfo *MAI;
-    std::string CurFile;
-    unsigned CurLine;
-
-    // EmitDebugDirectives is set if debug information is available. Default
-    // value for it is false.
-    bool EmitDebugDirectives;
-
-  public:
-    PIC16DbgInfo(formatted_raw_ostream &o, const MCAsmInfo *T)
-      : O(o), MAI(T) {
-      CurFile = "";
-      CurLine = 0;
-      EmitDebugDirectives = false; 
-    }
-
-    void BeginModule (Module &M);
-    void BeginFunction (const MachineFunction &MF);
-    void ChangeDebugLoc (const MachineFunction &MF, const DebugLoc &DL,
-                         bool IsInBeginFunction = false);
-    void EndFunction (const MachineFunction &MF);
-    void EndModule (Module &M);
-
-
-    private:
-    void SwitchToCU (MDNode *CU);
-    void SwitchToLine (unsigned Line, bool IsInBeginFunction = false);
-
-    void PopulateDebugInfo (DIType Ty, unsigned short &TypeNo, bool &HasAux,
-                           int Aux[], std::string &TypeName);
-    void PopulateBasicTypeInfo (DIType Ty, unsigned short &TypeNo);
-    void PopulateDerivedTypeInfo (DIType Ty, unsigned short &TypeNo, 
-                                  bool &HasAux, int Aux[],
-                                  std::string &TypeName);
-
-    void PopulateCompositeTypeInfo (DIType Ty, unsigned short &TypeNo,
-                                    bool &HasAux, int Aux[],
-                                    std::string &TypeName);
-    void PopulateArrayTypeInfo (DIType Ty, unsigned short &TypeNo,
-                                bool &HasAux, int Aux[],
-                                std::string &TypeName);
-
-    void PopulateStructOrUnionTypeInfo (DIType Ty, unsigned short &TypeNo,
-                                        bool &HasAux, int Aux[],
-                                        std::string &TypeName);
-    void PopulateEnumTypeInfo (DIType Ty, unsigned short &TypeNo);
-
-    unsigned GetTypeDebugNumber(std::string &Type);
-    short getStorageClass(DIGlobalVariable DIGV);
-    void EmitFunctBeginDI(const Function *F);
-    void EmitCompositeTypeDecls(Module &M);
-    void EmitCompositeTypeElements (DICompositeType CTy, std::string Suffix);
-    void EmitFunctEndDI(const Function *F, unsigned Line);
-    void EmitAuxEntry(const std::string VarName, int Aux[], 
-                      int num = PIC16Dbg::AuxSize, std::string TagName = "");
-    inline void EmitSymbol(std::string Name, short Class, 
-                           unsigned short Type = PIC16Dbg::T_NULL, 
-                           unsigned long Value = 0);
-    void EmitVarDebugInfo(Module &M);
-    void EmitEOF();
-  };
-} // end namespace llvm;
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelDAGToDAG.cpp
deleted file mode 100644
index cc57d12..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelDAGToDAG.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//===-- PIC16ISelDAGToDAG.cpp - A dag to dag inst selector for PIC16 ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the PIC16 target.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "pic16-isel"
-
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include "PIC16ISelDAGToDAG.h"
-#include "llvm/Support/Debug.h"
-
-using namespace llvm;
-
-/// createPIC16ISelDag - This pass converts a legalized DAG into a
-/// PIC16-specific DAG, ready for instruction scheduling.
-FunctionPass *llvm::createPIC16ISelDag(PIC16TargetMachine &TM) {
-  return new PIC16DAGToDAGISel(TM);
-}
-
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void PIC16DAGToDAGISel::InstructionSelect() {
-  DEBUG(BB->dump());
-  SelectRoot(*CurDAG);
-  CurDAG->RemoveDeadNodes();
-}
-
-/// Select - Select instructions not customized! Used for
-/// expanded, promoted and normal instructions.
-SDNode* PIC16DAGToDAGISel::Select(SDValue N) {
-
-  // Select the default instruction.
-  SDNode *ResNode = SelectCode(N);
-
-  return ResNode;
-}
-
-
-// SelectDirectAddr - Match a direct address for DAG. 
-// A direct address could be a globaladdress or externalsymbol.
-bool PIC16DAGToDAGISel::SelectDirectAddr(SDValue Op, SDValue N, 
-                                      SDValue &Address) {
-  // Return true if TGA or ES.
-  if (N.getOpcode() == ISD::TargetGlobalAddress
-      || N.getOpcode() == ISD::TargetExternalSymbol) {
-    Address = N;
-    return true;
-  }
-
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelDAGToDAG.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelDAGToDAG.h
deleted file mode 100644
index 3a2f6b4..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelDAGToDAG.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//===-- PIC16ISelDAGToDAG.cpp - A dag to dag inst selector for PIC16 ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the PIC16 target.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "pic16-isel"
-
-#include "PIC16.h"
-#include "PIC16ISelLowering.h"
-#include "PIC16RegisterInfo.h"
-#include "PIC16TargetMachine.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Intrinsics.h"
-using namespace llvm;
-
-namespace {
-
-class VISIBILITY_HIDDEN PIC16DAGToDAGISel : public SelectionDAGISel {
-
-  /// TM - Keep a reference to PIC16TargetMachine.
-  PIC16TargetMachine &TM;
-
-  /// PIC16Lowering - This object fully describes how to lower LLVM code to an
-  /// PIC16-specific SelectionDAG.
-  PIC16TargetLowering &PIC16Lowering;
-
-public:
-  explicit PIC16DAGToDAGISel(PIC16TargetMachine &tm) : 
-        SelectionDAGISel(tm),
-        TM(tm), PIC16Lowering(*TM.getTargetLowering()) {}
-  
-  // Pass Name
-  virtual const char *getPassName() const {
-    return "PIC16 DAG->DAG Pattern Instruction Selection";
-  } 
-
-  virtual void InstructionSelect();
-  
-private:
-  // Include the pieces autogenerated from the target description.
-#include "PIC16GenDAGISel.inc"
-
-  SDNode *Select(SDValue N);
-
-  // Match direct address complex pattern.
-  bool SelectDirectAddr(SDValue Op, SDValue N, SDValue &Address);
-
-};
-
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.cpp
deleted file mode 100644
index 7a5b5ff..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.cpp
+++ /dev/null
@@ -1,1891 +0,0 @@
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that PIC16 uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "pic16-lower"
-#include "PIC16ISelLowering.h"
-#include "PIC16TargetObjectFile.h"
-#include "PIC16TargetMachine.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/GlobalValue.h"
-#include "llvm/Function.h"
-#include "llvm/CallingConv.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/Support/ErrorHandling.h"
-
-
-using namespace llvm;
-
-static const char *getIntrinsicName(unsigned opcode) {
-  std::string Basename;
-  switch(opcode) {
-  default: llvm_unreachable("do not know intrinsic name");
-  // Arithmetic Right shift for integer types.
-  case PIC16ISD::SRA_I8: Basename = "sra.i8"; break;
-  case RTLIB::SRA_I16: Basename = "sra.i16"; break;
-  case RTLIB::SRA_I32: Basename = "sra.i32"; break;
-
-  // Left shift for integer types.
-  case PIC16ISD::SLL_I8: Basename = "sll.i8"; break;
-  case RTLIB::SHL_I16: Basename = "sll.i16"; break;
-  case RTLIB::SHL_I32: Basename = "sll.i32"; break;
-
-  // Logical Right Shift for integer types.
-  case PIC16ISD::SRL_I8: Basename = "srl.i8"; break;
-  case RTLIB::SRL_I16: Basename = "srl.i16"; break;
-  case RTLIB::SRL_I32: Basename = "srl.i32"; break;
-
-  // Multiply for integer types.
-  case PIC16ISD::MUL_I8: Basename = "mul.i8"; break;
-  case RTLIB::MUL_I16: Basename = "mul.i16"; break;
-  case RTLIB::MUL_I32: Basename = "mul.i32"; break;
-
-  // Signed division for integers.
-  case RTLIB::SDIV_I16: Basename = "sdiv.i16"; break;
-  case RTLIB::SDIV_I32: Basename = "sdiv.i32"; break;
-
-  // Unsigned division for integers.
-  case RTLIB::UDIV_I16: Basename = "udiv.i16"; break;
-  case RTLIB::UDIV_I32: Basename = "udiv.i32"; break;
-
-  // Signed Modulas for integers.
-  case RTLIB::SREM_I16: Basename = "srem.i16"; break;
-  case RTLIB::SREM_I32: Basename = "srem.i32"; break;
-
-  // Unsigned Modulas for integers.
-  case RTLIB::UREM_I16: Basename = "urem.i16"; break;
-  case RTLIB::UREM_I32: Basename = "urem.i32"; break;
-
-  //////////////////////
-  // LIBCALLS FOR FLOATS
-  //////////////////////
-
-  // Float to signed integrals
-  case RTLIB::FPTOSINT_F32_I8: Basename = "f32_to_si32"; break;
-  case RTLIB::FPTOSINT_F32_I16: Basename = "f32_to_si32"; break;
-  case RTLIB::FPTOSINT_F32_I32: Basename = "f32_to_si32"; break;
-
-  // Signed integrals to float. char and int are first sign extended to i32 
-  // before being converted to float, so an I8_F32 or I16_F32 isn't required.
-  case RTLIB::SINTTOFP_I32_F32: Basename = "si32_to_f32"; break;
-
-  // Float to Unsigned conversions.
-  // Signed conversion can be used for unsigned conversion as well.
-  // In signed and unsigned versions only the interpretation of the 
-  // MSB is different. Bit representation remains the same. 
-  case RTLIB::FPTOUINT_F32_I8: Basename = "f32_to_si32"; break;
-  case RTLIB::FPTOUINT_F32_I16: Basename = "f32_to_si32"; break;
-  case RTLIB::FPTOUINT_F32_I32: Basename = "f32_to_si32"; break;
-
-  // Unsigned to Float conversions. char and int are first zero extended 
-  // before being converted to float.
-  case RTLIB::UINTTOFP_I32_F32: Basename = "ui32_to_f32"; break;
-               
-  // Floating point add, sub, mul, div.
-  case RTLIB::ADD_F32: Basename = "add.f32"; break;
-  case RTLIB::SUB_F32: Basename = "sub.f32"; break;
-  case RTLIB::MUL_F32: Basename = "mul.f32"; break;
-  case RTLIB::DIV_F32: Basename = "div.f32"; break;
-
-  // Floating point comparison
-  case RTLIB::O_F32: Basename = "unordered.f32"; break;
-  case RTLIB::UO_F32: Basename = "unordered.f32"; break;
-  case RTLIB::OLE_F32: Basename = "le.f32"; break;
-  case RTLIB::OGE_F32: Basename = "ge.f32"; break;
-  case RTLIB::OLT_F32: Basename = "lt.f32"; break;
-  case RTLIB::OGT_F32: Basename = "gt.f32"; break;
-  case RTLIB::OEQ_F32: Basename = "eq.f32"; break;
-  case RTLIB::UNE_F32: Basename = "neq.f32"; break;
-  }
-  
-  std::string prefix = PAN::getTagName(PAN::PREFIX_SYMBOL);
-  std::string tagname = PAN::getTagName(PAN::LIBCALL);
-  std::string Fullname = prefix + tagname + Basename; 
-
-  // The name has to live through program life.
-  return createESName(Fullname);
-}
-
-// getStdLibCallName - Get the name for the standard library function.
-static const char *getStdLibCallName(unsigned opcode) {
-  std::string BaseName;
-  switch(opcode) {
-    case RTLIB::COS_F32: BaseName = "cos";
-      break;
-    case RTLIB::SIN_F32: BaseName = "sin";
-      break;
-    case RTLIB::MEMCPY: BaseName = "memcpy";
-      break;
-    case RTLIB::MEMSET: BaseName = "memset";
-      break;
-    case RTLIB::MEMMOVE: BaseName = "memmove";
-      break;
-    default: llvm_unreachable("do not know std lib call name");
-  }
-  std::string prefix = PAN::getTagName(PAN::PREFIX_SYMBOL);
-  std::string LibCallName = prefix + BaseName;
-
-  // The name has to live through program life.
-  return createESName(LibCallName);
-}
-
-// PIC16TargetLowering Constructor.
-PIC16TargetLowering::PIC16TargetLowering(PIC16TargetMachine &TM)
-  : TargetLowering(TM, new PIC16TargetObjectFile()), TmpSize(0) {
- 
-  Subtarget = &TM.getSubtarget<PIC16Subtarget>();
-
-  addRegisterClass(MVT::i8, PIC16::GPRRegisterClass);
-
-  setShiftAmountType(MVT::i8);
-  
-  // Std lib call names
-  setLibcallName(RTLIB::COS_F32, getStdLibCallName(RTLIB::COS_F32));
-  setLibcallName(RTLIB::SIN_F32, getStdLibCallName(RTLIB::SIN_F32));
-  setLibcallName(RTLIB::MEMCPY, getStdLibCallName(RTLIB::MEMCPY));
-  setLibcallName(RTLIB::MEMSET, getStdLibCallName(RTLIB::MEMSET));
-  setLibcallName(RTLIB::MEMMOVE, getStdLibCallName(RTLIB::MEMMOVE));
-
-  // SRA library call names
-  setPIC16LibcallName(PIC16ISD::SRA_I8, getIntrinsicName(PIC16ISD::SRA_I8));
-  setLibcallName(RTLIB::SRA_I16, getIntrinsicName(RTLIB::SRA_I16));
-  setLibcallName(RTLIB::SRA_I32, getIntrinsicName(RTLIB::SRA_I32));
-
-  // SHL library call names
-  setPIC16LibcallName(PIC16ISD::SLL_I8, getIntrinsicName(PIC16ISD::SLL_I8));
-  setLibcallName(RTLIB::SHL_I16, getIntrinsicName(RTLIB::SHL_I16));
-  setLibcallName(RTLIB::SHL_I32, getIntrinsicName(RTLIB::SHL_I32));
-
-  // SRL library call names
-  setPIC16LibcallName(PIC16ISD::SRL_I8, getIntrinsicName(PIC16ISD::SRL_I8));
-  setLibcallName(RTLIB::SRL_I16, getIntrinsicName(RTLIB::SRL_I16));
-  setLibcallName(RTLIB::SRL_I32, getIntrinsicName(RTLIB::SRL_I32));
-
-  // MUL Library call names
-  setPIC16LibcallName(PIC16ISD::MUL_I8, getIntrinsicName(PIC16ISD::MUL_I8));
-  setLibcallName(RTLIB::MUL_I16, getIntrinsicName(RTLIB::MUL_I16));
-  setLibcallName(RTLIB::MUL_I32, getIntrinsicName(RTLIB::MUL_I32));
-
-  // Signed division lib call names
-  setLibcallName(RTLIB::SDIV_I16, getIntrinsicName(RTLIB::SDIV_I16));
-  setLibcallName(RTLIB::SDIV_I32, getIntrinsicName(RTLIB::SDIV_I32));
-
-  // Unsigned division lib call names
-  setLibcallName(RTLIB::UDIV_I16, getIntrinsicName(RTLIB::UDIV_I16));
-  setLibcallName(RTLIB::UDIV_I32, getIntrinsicName(RTLIB::UDIV_I32));
-
-  // Signed remainder lib call names
-  setLibcallName(RTLIB::SREM_I16, getIntrinsicName(RTLIB::SREM_I16));
-  setLibcallName(RTLIB::SREM_I32, getIntrinsicName(RTLIB::SREM_I32));
-
-  // Unsigned remainder lib call names
-  setLibcallName(RTLIB::UREM_I16, getIntrinsicName(RTLIB::UREM_I16));
-  setLibcallName(RTLIB::UREM_I32, getIntrinsicName(RTLIB::UREM_I32));
- 
-  // Floating point to signed int conversions.
-  setLibcallName(RTLIB::FPTOSINT_F32_I8, 
-                 getIntrinsicName(RTLIB::FPTOSINT_F32_I8));
-  setLibcallName(RTLIB::FPTOSINT_F32_I16, 
-                 getIntrinsicName(RTLIB::FPTOSINT_F32_I16));
-  setLibcallName(RTLIB::FPTOSINT_F32_I32, 
-                 getIntrinsicName(RTLIB::FPTOSINT_F32_I32));
-
-  // Signed int to floats.
-  setLibcallName(RTLIB::SINTTOFP_I32_F32, 
-                 getIntrinsicName(RTLIB::SINTTOFP_I32_F32));
-
-  // Floating points to unsigned ints.
-  setLibcallName(RTLIB::FPTOUINT_F32_I8, 
-                 getIntrinsicName(RTLIB::FPTOUINT_F32_I8));
-  setLibcallName(RTLIB::FPTOUINT_F32_I16, 
-                 getIntrinsicName(RTLIB::FPTOUINT_F32_I16));
-  setLibcallName(RTLIB::FPTOUINT_F32_I32, 
-                 getIntrinsicName(RTLIB::FPTOUINT_F32_I32));
-
-  // Unsigned int to floats.
-  setLibcallName(RTLIB::UINTTOFP_I32_F32, 
-                 getIntrinsicName(RTLIB::UINTTOFP_I32_F32));
-
-  // Floating point add, sub, mul ,div.
-  setLibcallName(RTLIB::ADD_F32, getIntrinsicName(RTLIB::ADD_F32));
-  setLibcallName(RTLIB::SUB_F32, getIntrinsicName(RTLIB::SUB_F32));
-  setLibcallName(RTLIB::MUL_F32, getIntrinsicName(RTLIB::MUL_F32));
-  setLibcallName(RTLIB::DIV_F32, getIntrinsicName(RTLIB::DIV_F32));
-
-  // Floationg point comparison
-  setLibcallName(RTLIB::UO_F32, getIntrinsicName(RTLIB::UO_F32));
-  setLibcallName(RTLIB::OLE_F32, getIntrinsicName(RTLIB::OLE_F32));
-  setLibcallName(RTLIB::OGE_F32, getIntrinsicName(RTLIB::OGE_F32));
-  setLibcallName(RTLIB::OLT_F32, getIntrinsicName(RTLIB::OLT_F32));
-  setLibcallName(RTLIB::OGT_F32, getIntrinsicName(RTLIB::OGT_F32));
-  setLibcallName(RTLIB::OEQ_F32, getIntrinsicName(RTLIB::OEQ_F32));
-  setLibcallName(RTLIB::UNE_F32, getIntrinsicName(RTLIB::UNE_F32));
-
-  // Return value comparisons of floating point calls. 
-  setCmpLibcallCC(RTLIB::OEQ_F32, ISD::SETNE);
-  setCmpLibcallCC(RTLIB::UNE_F32, ISD::SETNE);
-  setCmpLibcallCC(RTLIB::OLT_F32, ISD::SETNE);
-  setCmpLibcallCC(RTLIB::OLE_F32, ISD::SETNE);
-  setCmpLibcallCC(RTLIB::OGE_F32, ISD::SETNE);
-  setCmpLibcallCC(RTLIB::OGT_F32, ISD::SETNE);
-  setCmpLibcallCC(RTLIB::UO_F32, ISD::SETNE);
-  setCmpLibcallCC(RTLIB::O_F32, ISD::SETEQ);
-
-  setOperationAction(ISD::GlobalAddress, MVT::i16, Custom);
-  setOperationAction(ISD::ExternalSymbol, MVT::i16, Custom);
-
-  setOperationAction(ISD::LOAD,   MVT::i8,  Legal);
-  setOperationAction(ISD::LOAD,   MVT::i16, Custom);
-  setOperationAction(ISD::LOAD,   MVT::i32, Custom);
-
-  setOperationAction(ISD::STORE,  MVT::i8,  Legal);
-  setOperationAction(ISD::STORE,  MVT::i16, Custom);
-  setOperationAction(ISD::STORE,  MVT::i32, Custom);
-  setOperationAction(ISD::STORE,  MVT::i64, Custom);
-
-  setOperationAction(ISD::ADDE,    MVT::i8,  Custom);
-  setOperationAction(ISD::ADDC,    MVT::i8,  Custom);
-  setOperationAction(ISD::SUBE,    MVT::i8,  Custom);
-  setOperationAction(ISD::SUBC,    MVT::i8,  Custom);
-  setOperationAction(ISD::SUB,    MVT::i8,  Custom);
-  setOperationAction(ISD::ADD,    MVT::i8,  Custom);
-  setOperationAction(ISD::ADD,    MVT::i16, Custom);
-
-  setOperationAction(ISD::OR,     MVT::i8,  Custom);
-  setOperationAction(ISD::AND,    MVT::i8,  Custom);
-  setOperationAction(ISD::XOR,    MVT::i8,  Custom);
-
-  setOperationAction(ISD::FrameIndex, MVT::i16, Custom);
-
-  setOperationAction(ISD::MUL,    MVT::i8,  Custom);
-
-  setOperationAction(ISD::SMUL_LOHI,    MVT::i8,  Expand);
-  setOperationAction(ISD::UMUL_LOHI,    MVT::i8,  Expand);
-  setOperationAction(ISD::MULHU,        MVT::i8, Expand);
-  setOperationAction(ISD::MULHS,        MVT::i8, Expand);
-
-  setOperationAction(ISD::SRA,    MVT::i8,  Custom);
-  setOperationAction(ISD::SHL,    MVT::i8,  Custom);
-  setOperationAction(ISD::SRL,    MVT::i8,  Custom);
-
-  setOperationAction(ISD::ROTL,    MVT::i8,  Expand);
-  setOperationAction(ISD::ROTR,    MVT::i8,  Expand);
-
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
-
-  // PIC16 does not support shift parts
-  setOperationAction(ISD::SRA_PARTS,    MVT::i8, Expand);
-  setOperationAction(ISD::SHL_PARTS,    MVT::i8, Expand);
-  setOperationAction(ISD::SRL_PARTS,    MVT::i8, Expand);
-
-
-  // PIC16 does not have a SETCC, expand it to SELECT_CC.
-  setOperationAction(ISD::SETCC,  MVT::i8, Expand);
-  setOperationAction(ISD::SELECT,  MVT::i8, Expand);
-  setOperationAction(ISD::BRCOND, MVT::Other, Expand);
-  setOperationAction(ISD::BRIND, MVT::Other, Expand);
-
-  setOperationAction(ISD::SELECT_CC,  MVT::i8, Custom);
-  setOperationAction(ISD::BR_CC,  MVT::i8, Custom);
-
-  //setOperationAction(ISD::TRUNCATE, MVT::i16, Custom);
-  setTruncStoreAction(MVT::i16,   MVT::i8,  Custom);
-
-  // Now deduce the information based on the above mentioned 
-  // actions
-  computeRegisterProperties();
-}
-
-// getOutFlag - Extract the flag result if the Op has it.
-static SDValue getOutFlag(SDValue &Op) {
-  // Flag is the last value of the node.
-  SDValue Flag = Op.getValue(Op.getNode()->getNumValues() - 1);
-
-  assert (Flag.getValueType() == MVT::Flag 
-          && "Node does not have an out Flag");
-
-  return Flag;
-}
-// Get the TmpOffset for FrameIndex
-unsigned PIC16TargetLowering::GetTmpOffsetForFI(unsigned FI, unsigned size) {
-  std::map<unsigned, unsigned>::iterator 
-            MapIt = FiTmpOffsetMap.find(FI);
-  if (MapIt != FiTmpOffsetMap.end())
-      return MapIt->second;
-
-  // This FI (FrameIndex) is not yet mapped, so map it
-  FiTmpOffsetMap[FI] = TmpSize; 
-  TmpSize += size;
-  return FiTmpOffsetMap[FI];
-}
-
-// To extract chain value from the SDValue Nodes
-// This function will help to maintain the chain extracting
-// code at one place. In case of any change in future it will
-// help maintain the code.
-static SDValue getChain(SDValue &Op) { 
-  SDValue Chain = Op.getValue(Op.getNode()->getNumValues() - 1);
-
-  // If the last value returned in Flag then the chain is
-  // second last value returned.
-  if (Chain.getValueType() == MVT::Flag)
-    Chain = Op.getValue(Op.getNode()->getNumValues() - 2);
-  
-  // All nodes may not produce a chain. Therefore following assert
-  // verifies that the node is returning a chain only.
-  assert (Chain.getValueType() == MVT::Other 
-          && "Node does not have a chain");
-
-  return Chain;
-}
-
-/// PopulateResults - Helper function to LowerOperation.
-/// If a node wants to return multiple results after lowering,
-/// it stuffs them into an array of SDValue called Results.
-
-static void PopulateResults(SDValue N, SmallVectorImpl<SDValue>&Results) {
-  if (N.getOpcode() == ISD::MERGE_VALUES) {
-    int NumResults = N.getNumOperands();
-    for( int i = 0; i < NumResults; i++)
-      Results.push_back(N.getOperand(i));
-  }
-  else
-    Results.push_back(N);
-}
-
-MVT::SimpleValueType
-PIC16TargetLowering::getSetCCResultType(EVT ValType) const {
-  return MVT::i8;
-}
-
-/// The type legalizer framework of generating legalizer can generate libcalls
-/// only when the operand/result types are illegal.
-/// PIC16 needs to generate libcalls even for the legal types (i8) for some ops.
-/// For example an arithmetic right shift. These functions are used to lower
-/// such operations that generate libcall for legal types.
-
-void 
-PIC16TargetLowering::setPIC16LibcallName(PIC16ISD::PIC16Libcall Call,
-                                         const char *Name) {
-  PIC16LibcallNames[Call] = Name; 
-}
-
-const char *
-PIC16TargetLowering::getPIC16LibcallName(PIC16ISD::PIC16Libcall Call) {
-  return PIC16LibcallNames[Call];
-}
-
-SDValue
-PIC16TargetLowering::MakePIC16Libcall(PIC16ISD::PIC16Libcall Call,
-                                      EVT RetVT, const SDValue *Ops,
-                                      unsigned NumOps, bool isSigned,
-                                      SelectionDAG &DAG, DebugLoc dl) {
-
-  TargetLowering::ArgListTy Args;
-  Args.reserve(NumOps);
-
-  TargetLowering::ArgListEntry Entry;
-  for (unsigned i = 0; i != NumOps; ++i) {
-    Entry.Node = Ops[i];
-    Entry.Ty = Entry.Node.getValueType().getTypeForEVT(*DAG.getContext());
-    Entry.isSExt = isSigned;
-    Entry.isZExt = !isSigned;
-    Args.push_back(Entry);
-  }
-
-  SDValue Callee = DAG.getExternalSymbol(getPIC16LibcallName(Call), MVT::i16);
-
-   const Type *RetTy = RetVT.getTypeForEVT(*DAG.getContext());
-   std::pair<SDValue,SDValue> CallInfo = 
-     LowerCallTo(DAG.getEntryNode(), RetTy, isSigned, !isSigned, false,
-                 false, 0, CallingConv::C, false,
-                 /*isReturnValueUsed=*/true,
-                 Callee, Args, DAG, dl);
-
-  return CallInfo.first;
-}
-
-const char *PIC16TargetLowering::getTargetNodeName(unsigned Opcode) const {
-  switch (Opcode) {
-  default:                         return NULL;
-  case PIC16ISD::Lo:               return "PIC16ISD::Lo";
-  case PIC16ISD::Hi:               return "PIC16ISD::Hi";
-  case PIC16ISD::MTLO:             return "PIC16ISD::MTLO";
-  case PIC16ISD::MTHI:             return "PIC16ISD::MTHI";
-  case PIC16ISD::MTPCLATH:         return "PIC16ISD::MTPCLATH";
-  case PIC16ISD::PIC16Connect:     return "PIC16ISD::PIC16Connect";
-  case PIC16ISD::Banksel:          return "PIC16ISD::Banksel";
-  case PIC16ISD::PIC16Load:        return "PIC16ISD::PIC16Load";
-  case PIC16ISD::PIC16LdArg:       return "PIC16ISD::PIC16LdArg";
-  case PIC16ISD::PIC16LdWF:        return "PIC16ISD::PIC16LdWF";
-  case PIC16ISD::PIC16Store:       return "PIC16ISD::PIC16Store";
-  case PIC16ISD::PIC16StWF:        return "PIC16ISD::PIC16StWF";
-  case PIC16ISD::BCF:              return "PIC16ISD::BCF";
-  case PIC16ISD::LSLF:             return "PIC16ISD::LSLF";
-  case PIC16ISD::LRLF:             return "PIC16ISD::LRLF";
-  case PIC16ISD::RLF:              return "PIC16ISD::RLF";
-  case PIC16ISD::RRF:              return "PIC16ISD::RRF";
-  case PIC16ISD::CALL:             return "PIC16ISD::CALL";
-  case PIC16ISD::CALLW:            return "PIC16ISD::CALLW";
-  case PIC16ISD::SUBCC:            return "PIC16ISD::SUBCC";
-  case PIC16ISD::SELECT_ICC:       return "PIC16ISD::SELECT_ICC";
-  case PIC16ISD::BRCOND:           return "PIC16ISD::BRCOND";
-  case PIC16ISD::RET:              return "PIC16ISD::RET";
-  case PIC16ISD::Dummy:            return "PIC16ISD::Dummy";
-  }
-}
-
-void PIC16TargetLowering::ReplaceNodeResults(SDNode *N,
-                                             SmallVectorImpl<SDValue>&Results,
-                                             SelectionDAG &DAG) {
-
-  switch (N->getOpcode()) {
-    case ISD::GlobalAddress:
-      Results.push_back(ExpandGlobalAddress(N, DAG));
-      return;
-    case ISD::ExternalSymbol:
-      Results.push_back(ExpandExternalSymbol(N, DAG));
-      return;
-    case ISD::STORE:
-      Results.push_back(ExpandStore(N, DAG));
-      return;
-    case ISD::LOAD:
-      PopulateResults(ExpandLoad(N, DAG), Results);
-      return;
-    case ISD::ADD:
-      // Results.push_back(ExpandAdd(N, DAG));
-      return;
-    case ISD::FrameIndex:
-      Results.push_back(ExpandFrameIndex(N, DAG));
-      return;
-    default:
-      assert (0 && "not implemented");
-      return;
-  }
-}
-
-SDValue PIC16TargetLowering::ExpandFrameIndex(SDNode *N, SelectionDAG &DAG) {
-
-  // Currently handling FrameIndex of size MVT::i16 only
-  // One example of this scenario is when return value is written on
-  // FrameIndex#0
-
-  if (N->getValueType(0) != MVT::i16)
-    return SDValue();
-
-  // Expand the FrameIndex into ExternalSymbol and a Constant node
-  // The constant will represent the frame index number
-  // Get the current function frame
-  MachineFunction &MF = DAG.getMachineFunction();
-  const Function *Func = MF.getFunction();
-  const std::string Name = Func->getName();
-  
-  FrameIndexSDNode *FR = dyn_cast<FrameIndexSDNode>(SDValue(N,0));
-  // FIXME there isn't really debug info here
-  DebugLoc dl = FR->getDebugLoc();
-
-  // Expand FrameIndex like GlobalAddress and ExternalSymbol
-  // Also use Offset field for lo and hi parts. The default 
-  // offset is zero.
-
-  SDValue ES;
-  int FrameOffset;
-  SDValue FI = SDValue(N,0);
-  LegalizeFrameIndex(FI, DAG, ES, FrameOffset);
-  SDValue Offset = DAG.getConstant(FrameOffset, MVT::i8);
-  SDValue Lo = DAG.getNode(PIC16ISD::Lo, dl, MVT::i8, ES, Offset);
-  SDValue Hi = DAG.getNode(PIC16ISD::Hi, dl, MVT::i8, ES, Offset);
-  return DAG.getNode(ISD::BUILD_PAIR, dl, N->getValueType(0), Lo, Hi);
-}
-
-
-SDValue PIC16TargetLowering::ExpandStore(SDNode *N, SelectionDAG &DAG) { 
-  StoreSDNode *St = cast<StoreSDNode>(N);
-  SDValue Chain = St->getChain();
-  SDValue Src = St->getValue();
-  SDValue Ptr = St->getBasePtr();
-  EVT ValueType = Src.getValueType();
-  unsigned StoreOffset = 0;
-  DebugLoc dl = N->getDebugLoc();
-
-  SDValue PtrLo, PtrHi;
-  LegalizeAddress(Ptr, DAG, PtrLo, PtrHi, StoreOffset, dl);
- 
-  if (ValueType == MVT::i8) {
-    return DAG.getNode (PIC16ISD::PIC16Store, dl, MVT::Other, Chain, Src,
-                        PtrLo, PtrHi, 
-                        DAG.getConstant (0 + StoreOffset, MVT::i8));
-  }
-  else if (ValueType == MVT::i16) {
-    // Get the Lo and Hi parts from MERGE_VALUE or BUILD_PAIR.
-    SDValue SrcLo, SrcHi;
-    GetExpandedParts(Src, DAG, SrcLo, SrcHi);
-    SDValue ChainLo = Chain, ChainHi = Chain;
-    // FIXME: This makes unsafe assumptions. The Chain may be a TokenFactor
-    // created for an unrelated purpose, in which case it may not have
-    // exactly two operands. Also, even if it does have two operands, they
-    // may not be the low and high parts of an aligned load that was split.
-    if (Chain.getOpcode() == ISD::TokenFactor) {
-      ChainLo = Chain.getOperand(0);
-      ChainHi = Chain.getOperand(1);
-    }
-    SDValue Store1 = DAG.getNode(PIC16ISD::PIC16Store, dl, MVT::Other,
-                                 ChainLo,
-                                 SrcLo, PtrLo, PtrHi,
-                                 DAG.getConstant (0 + StoreOffset, MVT::i8));
-
-    SDValue Store2 = DAG.getNode(PIC16ISD::PIC16Store, dl, MVT::Other, ChainHi, 
-                                 SrcHi, PtrLo, PtrHi,
-                                 DAG.getConstant (1 + StoreOffset, MVT::i8));
-
-    return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, getChain(Store1),
-                       getChain(Store2));
-  }
-  else if (ValueType == MVT::i32) {
-    // Get the Lo and Hi parts from MERGE_VALUE or BUILD_PAIR.
-    SDValue SrcLo, SrcHi;
-    GetExpandedParts(Src, DAG, SrcLo, SrcHi);
-
-    // Get the expanded parts of each of SrcLo and SrcHi.
-    SDValue SrcLo1, SrcLo2, SrcHi1, SrcHi2;
-    GetExpandedParts(SrcLo, DAG, SrcLo1, SrcLo2);
-    GetExpandedParts(SrcHi, DAG, SrcHi1, SrcHi2);
-
-    SDValue ChainLo = Chain, ChainHi = Chain;
-    // FIXME: This makes unsafe assumptions; see the FIXME above.
-    if (Chain.getOpcode() == ISD::TokenFactor) {  
-      ChainLo = Chain.getOperand(0);
-      ChainHi = Chain.getOperand(1);
-    }
-    SDValue ChainLo1 = ChainLo, ChainLo2 = ChainLo, ChainHi1 = ChainHi,
-            ChainHi2 = ChainHi;
-    // FIXME: This makes unsafe assumptions; see the FIXME above.
-    if (ChainLo.getOpcode() == ISD::TokenFactor) {
-      ChainLo1 = ChainLo.getOperand(0);
-      ChainLo2 = ChainLo.getOperand(1);
-    }
-    // FIXME: This makes unsafe assumptions; see the FIXME above.
-    if (ChainHi.getOpcode() == ISD::TokenFactor) {
-      ChainHi1 = ChainHi.getOperand(0);
-      ChainHi2 = ChainHi.getOperand(1);
-    }
-    SDValue Store1 = DAG.getNode(PIC16ISD::PIC16Store, dl, MVT::Other,
-                                 ChainLo1,
-                                 SrcLo1, PtrLo, PtrHi,
-                                 DAG.getConstant (0 + StoreOffset, MVT::i8));
-
-    SDValue Store2 = DAG.getNode(PIC16ISD::PIC16Store, dl, MVT::Other, ChainLo2,
-                                 SrcLo2, PtrLo, PtrHi,
-                                 DAG.getConstant (1 + StoreOffset, MVT::i8));
-
-    SDValue Store3 = DAG.getNode(PIC16ISD::PIC16Store, dl, MVT::Other, ChainHi1,
-                                 SrcHi1, PtrLo, PtrHi,
-                                 DAG.getConstant (2 + StoreOffset, MVT::i8));
-
-    SDValue Store4 = DAG.getNode(PIC16ISD::PIC16Store, dl, MVT::Other, ChainHi2,
-                                 SrcHi2, PtrLo, PtrHi,
-                                 DAG.getConstant (3 + StoreOffset, MVT::i8));
-
-    SDValue RetLo =  DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
-                                 getChain(Store1), getChain(Store2));
-    SDValue RetHi =  DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
-                                 getChain(Store3), getChain(Store4));
-    return  DAG.getNode(ISD::TokenFactor, dl, MVT::Other, RetLo, RetHi);
-
-  } else if (ValueType == MVT::i64) {
-    SDValue SrcLo, SrcHi;
-    GetExpandedParts(Src, DAG, SrcLo, SrcHi);
-    SDValue ChainLo = Chain, ChainHi = Chain;
-    // FIXME: This makes unsafe assumptions; see the FIXME above.
-    if (Chain.getOpcode() == ISD::TokenFactor) {
-      ChainLo = Chain.getOperand(0);
-      ChainHi = Chain.getOperand(1);
-    }
-    SDValue Store1 = DAG.getStore(ChainLo, dl, SrcLo, Ptr, NULL,
-                                  0 + StoreOffset);
-
-    Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr,
-                      DAG.getConstant(4, Ptr.getValueType()));
-    SDValue Store2 = DAG.getStore(ChainHi, dl, SrcHi, Ptr, NULL,
-                                  1 + StoreOffset);
-
-    return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Store1,
-                       Store2);
-  } else {
-    assert (0 && "value type not supported");
-    return SDValue();
-  }
-}
-
-SDValue PIC16TargetLowering::ExpandExternalSymbol(SDNode *N, SelectionDAG &DAG)
-{
-  ExternalSymbolSDNode *ES = dyn_cast<ExternalSymbolSDNode>(SDValue(N, 0));
-  // FIXME there isn't really debug info here
-  DebugLoc dl = ES->getDebugLoc();
-
-  SDValue TES = DAG.getTargetExternalSymbol(ES->getSymbol(), MVT::i8);
-  SDValue Offset = DAG.getConstant(0, MVT::i8);
-  SDValue Lo = DAG.getNode(PIC16ISD::Lo, dl, MVT::i8, TES, Offset);
-  SDValue Hi = DAG.getNode(PIC16ISD::Hi, dl, MVT::i8, TES, Offset);
-
-  return DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i16, Lo, Hi);
-}
-
-// ExpandGlobalAddress - 
-SDValue PIC16TargetLowering::ExpandGlobalAddress(SDNode *N, SelectionDAG &DAG) {
-  GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(SDValue(N, 0));
-  // FIXME there isn't really debug info here
-  DebugLoc dl = G->getDebugLoc();
-  
-  SDValue TGA = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i8,
-                                           G->getOffset());
-
-  SDValue Offset = DAG.getConstant(0, MVT::i8);
-  SDValue Lo = DAG.getNode(PIC16ISD::Lo, dl, MVT::i8, TGA, Offset);
-  SDValue Hi = DAG.getNode(PIC16ISD::Hi, dl, MVT::i8, TGA, Offset);
-
-  return DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i16, Lo, Hi);
-}
-
-bool PIC16TargetLowering::isDirectAddress(const SDValue &Op) {
-  assert (Op.getNode() != NULL && "Can't operate on NULL SDNode!!");
-
-  if (Op.getOpcode() == ISD::BUILD_PAIR) {
-   if (Op.getOperand(0).getOpcode() == PIC16ISD::Lo) 
-     return true;
-  }
-  return false;
-}
-
-// Return true if DirectAddress is in ROM_SPACE
-bool PIC16TargetLowering::isRomAddress(const SDValue &Op) {
-
-  // RomAddress is a GlobalAddress in ROM_SPACE_
-  // If the Op is not a GlobalAddress return NULL without checking
-  // anything further.
-  if (!isDirectAddress(Op))
-    return false; 
-
-  // Its a GlobalAddress.
-  // It is BUILD_PAIR((PIC16Lo TGA), (PIC16Hi TGA)) and Op is BUILD_PAIR
-  SDValue TGA = Op.getOperand(0).getOperand(0);
-  GlobalAddressSDNode *GSDN = dyn_cast<GlobalAddressSDNode>(TGA);
-
-  if (GSDN->getAddressSpace() == PIC16ISD::ROM_SPACE)
-    return true;
-
-  // Any other address space return it false
-  return false;
-}
-
-
-// GetExpandedParts - This function is on the similiar lines as
-// the GetExpandedInteger in type legalizer is. This returns expanded
-// parts of Op in Lo and Hi. 
-
-void PIC16TargetLowering::GetExpandedParts(SDValue Op, SelectionDAG &DAG,
-                                           SDValue &Lo, SDValue &Hi) {  
-  SDNode *N = Op.getNode();
-  DebugLoc dl = N->getDebugLoc();
-  EVT NewVT = getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
-
-  // Extract the lo component.
-  Lo = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, NewVT, Op,
-                   DAG.getConstant(0, MVT::i8));
-
-  // extract the hi component
-  Hi = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, NewVT, Op,
-                   DAG.getConstant(1, MVT::i8));
-}
-
-// Legalize FrameIndex into ExternalSymbol and offset.
-void 
-PIC16TargetLowering::LegalizeFrameIndex(SDValue Op, SelectionDAG &DAG,
-                                        SDValue &ES, int &Offset) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  const Function *Func = MF.getFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  const std::string Name = Func->getName();
-
-  FrameIndexSDNode *FR = dyn_cast<FrameIndexSDNode>(Op);
-
-  // FrameIndices are not stack offsets. But they represent the request
-  // for space on stack. That space requested may be more than one byte. 
-  // Therefore, to calculate the stack offset that a FrameIndex aligns
-  // with, we need to traverse all the FrameIndices available earlier in 
-  // the list and add their requested size.
-  unsigned FIndex = FR->getIndex();
-  const char *tmpName;
-  if (FIndex < ReservedFrameCount) {
-    tmpName = createESName(PAN::getFrameLabel(Name));
-    ES = DAG.getTargetExternalSymbol(tmpName, MVT::i8);
-    Offset = 0;
-    for (unsigned i=0; i<FIndex ; ++i) {
-      Offset += MFI->getObjectSize(i);
-    }
-  } else {
-   // FrameIndex has been made for some temporary storage 
-    tmpName = createESName(PAN::getTempdataLabel(Name));
-    ES = DAG.getTargetExternalSymbol(tmpName, MVT::i8);
-    Offset = GetTmpOffsetForFI(FIndex, MFI->getObjectSize(FIndex));
-  }
-
-  return;
-}
-
-// This function legalizes the PIC16 Addresses. If the Pointer is  
-//  -- Direct address variable residing 
-//     --> then a Banksel for that variable will be created.
-//  -- Rom variable            
-//     --> then it will be treated as an indirect address.
-//  -- Indirect address 
-//     --> then the address will be loaded into FSR
-//  -- ADD with constant operand
-//     --> then constant operand of ADD will be returned as Offset
-//         and non-constant operand of ADD will be treated as pointer.
-// Returns the high and lo part of the address, and the offset(in case of ADD).
-
-void PIC16TargetLowering::LegalizeAddress(SDValue Ptr, SelectionDAG &DAG, 
-                                          SDValue &Lo, SDValue &Hi,
-                                          unsigned &Offset, DebugLoc dl) {
-
-  // Offset, by default, should be 0
-  Offset = 0;
-
-  // If the pointer is ADD with constant,
-  // return the constant value as the offset  
-  if (Ptr.getOpcode() == ISD::ADD) {
-    SDValue OperLeft = Ptr.getOperand(0);
-    SDValue OperRight = Ptr.getOperand(1);
-    if ((OperLeft.getOpcode() == ISD::Constant) &&
-        (dyn_cast<ConstantSDNode>(OperLeft)->getZExtValue() < 32 )) {
-      Offset = dyn_cast<ConstantSDNode>(OperLeft)->getZExtValue();
-      Ptr = OperRight;
-    } else if ((OperRight.getOpcode() == ISD::Constant)  &&
-               (dyn_cast<ConstantSDNode>(OperRight)->getZExtValue() < 32 )){
-      Offset = dyn_cast<ConstantSDNode>(OperRight)->getZExtValue();
-      Ptr = OperLeft;
-    }
-  }
-
-  // If the pointer is Type i8 and an external symbol
-  // then treat it as direct address.
-  // One example for such case is storing and loading
-  // from function frame during a call
-  if (Ptr.getValueType() == MVT::i8) {
-    switch (Ptr.getOpcode()) {
-    case ISD::TargetExternalSymbol:
-      Lo = Ptr;
-      Hi = DAG.getConstant(1, MVT::i8);
-      return;
-    }
-  }
-
-  // Expansion of FrameIndex has Lo/Hi parts
-  if (isDirectAddress(Ptr)) { 
-      SDValue TFI = Ptr.getOperand(0).getOperand(0); 
-      int FrameOffset;
-      if (TFI.getOpcode() == ISD::TargetFrameIndex) {
-        LegalizeFrameIndex(TFI, DAG, Lo, FrameOffset);
-        Hi = DAG.getConstant(1, MVT::i8);
-        Offset += FrameOffset; 
-        return;
-      } else if (TFI.getOpcode() == ISD::TargetExternalSymbol) {
-        // FrameIndex has already been expanded.
-        // Now just make use of its expansion
-        Lo = TFI;
-        Hi = DAG.getConstant(1, MVT::i8);
-        SDValue FOffset = Ptr.getOperand(0).getOperand(1);
-        assert (FOffset.getOpcode() == ISD::Constant && 
-                          "Invalid operand of PIC16ISD::Lo");
-        Offset += dyn_cast<ConstantSDNode>(FOffset)->getZExtValue();
-        return;
-      }
-  }
-
-  if (isDirectAddress(Ptr) && !isRomAddress(Ptr)) {
-    // Direct addressing case for RAM variables. The Hi part is constant
-    // and the Lo part is the TGA itself.
-    Lo = Ptr.getOperand(0).getOperand(0);
-
-    // For direct addresses Hi is a constant. Value 1 for the constant
-    // signifies that banksel needs to generated for it. Value 0 for
-    // the constant signifies that banksel does not need to be generated 
-    // for it. Mark it as 1 now and optimize later. 
-    Hi = DAG.getConstant(1, MVT::i8);
-    return; 
-  }
-
-  // Indirect addresses. Get the hi and lo parts of ptr. 
-  GetExpandedParts(Ptr, DAG, Lo, Hi);
-
-  // Put the hi and lo parts into FSR.
-  Lo = DAG.getNode(PIC16ISD::MTLO, dl, MVT::i8, Lo);
-  Hi = DAG.getNode(PIC16ISD::MTHI, dl, MVT::i8, Hi);
-
-  return;
-}
-
-SDValue PIC16TargetLowering::ExpandLoad(SDNode *N, SelectionDAG &DAG) {
-  LoadSDNode *LD = dyn_cast<LoadSDNode>(SDValue(N, 0));
-  SDValue Chain = LD->getChain();
-  SDValue Ptr = LD->getBasePtr();
-  DebugLoc dl = LD->getDebugLoc();
-
-  SDValue Load, Offset;
-  SDVTList Tys; 
-  EVT VT, NewVT;
-  SDValue PtrLo, PtrHi;
-  unsigned LoadOffset;
-
-  // Legalize direct/indirect addresses. This will give the lo and hi parts
-  // of the address and the offset.
-  LegalizeAddress(Ptr, DAG, PtrLo, PtrHi, LoadOffset, dl);
-
-  // Load from the pointer (direct address or FSR) 
-  VT = N->getValueType(0);
-  unsigned NumLoads = VT.getSizeInBits() / 8; 
-  std::vector<SDValue> PICLoads;
-  unsigned iter;
-  EVT MemVT = LD->getMemoryVT();
-  if(ISD::isNON_EXTLoad(N)) {
-    for (iter=0; iter<NumLoads ; ++iter) {
-      // Add the pointer offset if any
-      Offset = DAG.getConstant(iter + LoadOffset, MVT::i8);
-      Tys = DAG.getVTList(MVT::i8, MVT::Other); 
-      Load = DAG.getNode(PIC16ISD::PIC16Load, dl, Tys, Chain, PtrLo, PtrHi,
-                         Offset); 
-      PICLoads.push_back(Load);
-    }
-  } else {
-    // If it is extended load then use PIC16Load for Memory Bytes
-    // and for all extended bytes perform action based on type of
-    // extention - i.e. SignExtendedLoad or ZeroExtendedLoad
-
-    
-    // For extended loads this is the memory value type
-    // i.e. without any extension
-    EVT MemVT = LD->getMemoryVT();
-    unsigned MemBytes = MemVT.getSizeInBits() / 8;
-    // if MVT::i1 is extended to MVT::i8 then MemBytes will be zero
-    // So set it to one
-    if (MemBytes == 0) MemBytes = 1;
-    
-    unsigned ExtdBytes = VT.getSizeInBits() / 8;
-    Offset = DAG.getConstant(LoadOffset, MVT::i8);
-
-    Tys = DAG.getVTList(MVT::i8, MVT::Other); 
-    // For MemBytes generate PIC16Load with proper offset
-    for (iter=0; iter < MemBytes; ++iter) {
-      // Add the pointer offset if any
-      Offset = DAG.getConstant(iter + LoadOffset, MVT::i8);
-      Load = DAG.getNode(PIC16ISD::PIC16Load, dl, Tys, Chain, PtrLo, PtrHi,
-                         Offset); 
-      PICLoads.push_back(Load);
-    }
-
-    // For SignExtendedLoad
-    if (ISD::isSEXTLoad(N)) {
-      // For all ExtdBytes use the Right Shifted(Arithmetic) Value of the 
-      // highest MemByte
-      SDValue SRA = DAG.getNode(ISD::SRA, dl, MVT::i8, Load, 
-                                DAG.getConstant(7, MVT::i8));
-      for (iter=MemBytes; iter<ExtdBytes; ++iter) { 
-        PICLoads.push_back(SRA);
-      }
-    } else if (ISD::isZEXTLoad(N) || ISD::isEXTLoad(N)) {
-    //} else if (ISD::isZEXTLoad(N)) {
-      // ZeroExtendedLoad -- For all ExtdBytes use constant 0
-      SDValue ConstZero = DAG.getConstant(0, MVT::i8);
-      for (iter=MemBytes; iter<ExtdBytes; ++iter) { 
-        PICLoads.push_back(ConstZero);
-      }
-    }
-  }
-  SDValue BP;
-
-  if (VT == MVT::i8) {
-    // Operand of Load is illegal -- Load itself is legal
-    return PICLoads[0];
-  }
-  else if (VT == MVT::i16) {
-    BP = DAG.getNode(ISD::BUILD_PAIR, dl, VT, PICLoads[0], PICLoads[1]);
-    if (MemVT == MVT::i8)
-      Chain = getChain(PICLoads[0]);
-    else
-      Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
-                          getChain(PICLoads[0]), getChain(PICLoads[1]));
-  } else if (VT == MVT::i32) {
-    SDValue BPs[2];
-    BPs[0] = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i16, 
-                         PICLoads[0], PICLoads[1]);
-    BPs[1] = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i16,
-                         PICLoads[2], PICLoads[3]);
-    BP = DAG.getNode(ISD::BUILD_PAIR, dl, VT, BPs[0], BPs[1]);
-    if (MemVT == MVT::i8)
-      Chain = getChain(PICLoads[0]);
-    else if (MemVT == MVT::i16)
-      Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
-                          getChain(PICLoads[0]), getChain(PICLoads[1]));
-    else {
-      SDValue Chains[2];
-      Chains[0] = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                              getChain(PICLoads[0]), getChain(PICLoads[1]));
-      Chains[1] = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                              getChain(PICLoads[2]), getChain(PICLoads[3]));
-      Chain =  DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                           Chains[0], Chains[1]);
-    }
-  }
-  Tys = DAG.getVTList(VT, MVT::Other); 
-  return DAG.getNode(ISD::MERGE_VALUES, dl, Tys, BP, Chain);
-}
-
-SDValue PIC16TargetLowering::LowerShift(SDValue Op, SelectionDAG &DAG) {
-  // We should have handled larger operands in type legalizer itself.
-  assert (Op.getValueType() == MVT::i8 && "illegal shift to lower");
- 
-  SDNode *N = Op.getNode();
-  SDValue Value = N->getOperand(0);
-  SDValue Amt = N->getOperand(1);
-  PIC16ISD::PIC16Libcall CallCode;
-  switch (N->getOpcode()) {
-  case ISD::SRA:
-    CallCode = PIC16ISD::SRA_I8;
-    break;
-  case ISD::SHL:
-    CallCode = PIC16ISD::SLL_I8;
-    break;
-  case ISD::SRL:
-    CallCode = PIC16ISD::SRL_I8;
-    break;
-  default:
-    assert ( 0 && "This shift is not implemented yet.");
-    return SDValue();
-  }
-  SmallVector<SDValue, 2> Ops(2);
-  Ops[0] = Value;
-  Ops[1] = Amt;
-  SDValue Call = MakePIC16Libcall(CallCode, N->getValueType(0), &Ops[0], 2, 
-                                  true, DAG, N->getDebugLoc());
-  return Call;
-}
-
-SDValue PIC16TargetLowering::LowerMUL(SDValue Op, SelectionDAG &DAG) {
-  // We should have handled larger operands in type legalizer itself.
-  assert (Op.getValueType() == MVT::i8 && "illegal multiply to lower");
-
-  SDNode *N = Op.getNode();
-  SmallVector<SDValue, 2> Ops(2);
-  Ops[0] = N->getOperand(0);
-  Ops[1] = N->getOperand(1);
-  SDValue Call = MakePIC16Libcall(PIC16ISD::MUL_I8, N->getValueType(0), 
-                                  &Ops[0], 2, true, DAG, N->getDebugLoc());
-  return Call;
-}
-
-void
-PIC16TargetLowering::LowerOperationWrapper(SDNode *N,
-                                           SmallVectorImpl<SDValue>&Results,
-                                           SelectionDAG &DAG) {
-  SDValue Op = SDValue(N, 0);
-  SDValue Res;
-  unsigned i;
-  switch (Op.getOpcode()) {
-    case ISD::LOAD:
-      Res = ExpandLoad(Op.getNode(), DAG); break;
-    default: {
-      // All other operations are handled in LowerOperation.
-      Res = LowerOperation(Op, DAG);
-      if (Res.getNode())
-        Results.push_back(Res);
-        
-      return; 
-    }
-  }
-
-  N = Res.getNode();
-  unsigned NumValues = N->getNumValues(); 
-  for (i = 0; i < NumValues ; i++) {
-    Results.push_back(SDValue(N, i)); 
-  }
-}
-
-SDValue PIC16TargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) {
-  switch (Op.getOpcode()) {
-    case ISD::ADD:
-    case ISD::ADDC:
-    case ISD::ADDE:
-      return LowerADD(Op, DAG);
-    case ISD::SUB:
-    case ISD::SUBC:
-    case ISD::SUBE:
-      return LowerSUB(Op, DAG);
-    case ISD::LOAD:
-      return ExpandLoad(Op.getNode(), DAG);
-    case ISD::STORE:
-      return ExpandStore(Op.getNode(), DAG);
-    case ISD::MUL:
-      return LowerMUL(Op, DAG);
-    case ISD::SHL:
-    case ISD::SRA:
-    case ISD::SRL:
-      return LowerShift(Op, DAG);
-    case ISD::OR:
-    case ISD::AND:
-    case ISD::XOR:
-      return LowerBinOp(Op, DAG);
-    case ISD::BR_CC:
-      return LowerBR_CC(Op, DAG);
-    case ISD::SELECT_CC:
-      return LowerSELECT_CC(Op, DAG);
-  }
-  return SDValue();
-}
-
-SDValue PIC16TargetLowering::ConvertToMemOperand(SDValue Op,
-                                                 SelectionDAG &DAG,
-                                                 DebugLoc dl) {
-  assert (Op.getValueType() == MVT::i8 
-          && "illegal value type to store on stack.");
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  const Function *Func = MF.getFunction();
-  const std::string FuncName = Func->getName();
-
-
-  // Put the value on stack.
-  // Get a stack slot index and convert to es.
-  int FI = MF.getFrameInfo()->CreateStackObject(1, 1);
-  const char *tmpName = createESName(PAN::getTempdataLabel(FuncName));
-  SDValue ES = DAG.getTargetExternalSymbol(tmpName, MVT::i8);
-
-  // Store the value to ES.
-  SDValue Store = DAG.getNode (PIC16ISD::PIC16Store, dl, MVT::Other,
-                               DAG.getEntryNode(),
-                               Op, ES, 
-                               DAG.getConstant (1, MVT::i8), // Banksel.
-                               DAG.getConstant (GetTmpOffsetForFI(FI, 1), 
-                                                MVT::i8));
-
-  // Load the value from ES.
-  SDVTList Tys = DAG.getVTList(MVT::i8, MVT::Other);
-  SDValue Load = DAG.getNode(PIC16ISD::PIC16Load, dl, Tys, Store,
-                             ES, DAG.getConstant (1, MVT::i8),
-                             DAG.getConstant (GetTmpOffsetForFI(FI, 1), 
-                             MVT::i8));
-    
-  return Load.getValue(0);
-}
-
-SDValue PIC16TargetLowering::
-LowerIndirectCallArguments(SDValue Chain, SDValue InFlag,
-                           SDValue DataAddr_Lo, SDValue DataAddr_Hi,
-                           const SmallVectorImpl<ISD::OutputArg> &Outs,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG) {
-  unsigned NumOps = Outs.size();
-
-  // If call has no arguments then do nothing and return.
-  if (NumOps == 0)
-    return Chain;
-
-  std::vector<SDValue> Ops;
-  SDVTList Tys = DAG.getVTList(MVT::Other, MVT::Flag);
-  SDValue Arg, StoreRet;
-
-  // For PIC16 ABI the arguments come after the return value. 
-  unsigned RetVals = Ins.size();
-  for (unsigned i = 0, ArgOffset = RetVals; i < NumOps; i++) {
-    // Get the arguments
-    Arg = Outs[i].Val;
-    
-    Ops.clear();
-    Ops.push_back(Chain);
-    Ops.push_back(Arg);
-    Ops.push_back(DataAddr_Lo);
-    Ops.push_back(DataAddr_Hi);
-    Ops.push_back(DAG.getConstant(ArgOffset, MVT::i8));
-    Ops.push_back(InFlag);
-
-    StoreRet = DAG.getNode (PIC16ISD::PIC16StWF, dl, Tys, &Ops[0], Ops.size());
-
-    Chain = getChain(StoreRet);
-    InFlag = getOutFlag(StoreRet);
-    ArgOffset++;
-  }
-  return Chain;
-}
-
-SDValue PIC16TargetLowering::
-LowerDirectCallArguments(SDValue ArgLabel, SDValue Chain, SDValue InFlag,
-                         const SmallVectorImpl<ISD::OutputArg> &Outs,
-                         DebugLoc dl, SelectionDAG &DAG) {
-  unsigned NumOps = Outs.size();
-  std::string Name;
-  SDValue Arg, StoreAt;
-  EVT ArgVT;
-  unsigned Size=0;
-
-  // If call has no arguments then do nothing and return.
-  if (NumOps == 0)
-    return Chain; 
-
-  // FIXME: This portion of code currently assumes only
-  // primitive types being passed as arguments.
-
-  // Legalize the address before use
-  SDValue PtrLo, PtrHi;
-  unsigned AddressOffset;
-  int StoreOffset = 0;
-  LegalizeAddress(ArgLabel, DAG, PtrLo, PtrHi, AddressOffset, dl);
-  SDValue StoreRet;
-
-  std::vector<SDValue> Ops;
-  SDVTList Tys = DAG.getVTList(MVT::Other, MVT::Flag);
-  for (unsigned i=0, Offset = 0; i<NumOps; i++) {
-    // Get the argument
-    Arg = Outs[i].Val;
-    StoreOffset = (Offset + AddressOffset);
-   
-    // Store the argument on frame
-
-    Ops.clear();
-    Ops.push_back(Chain);
-    Ops.push_back(Arg);
-    Ops.push_back(PtrLo);
-    Ops.push_back(PtrHi);
-    Ops.push_back(DAG.getConstant(StoreOffset, MVT::i8));
-    Ops.push_back(InFlag);
-
-    StoreRet = DAG.getNode (PIC16ISD::PIC16StWF, dl, Tys, &Ops[0], Ops.size());
-
-    Chain = getChain(StoreRet);
-    InFlag = getOutFlag(StoreRet);
-
-    // Update the frame offset to be used for next argument
-    ArgVT = Arg.getValueType();
-    Size = ArgVT.getSizeInBits();
-    Size = Size/8;    // Calculate size in bytes
-    Offset += Size;   // Increase the frame offset
-  }
-  return Chain;
-}
-
-SDValue PIC16TargetLowering::
-LowerIndirectCallReturn(SDValue Chain, SDValue InFlag,
-                        SDValue DataAddr_Lo, SDValue DataAddr_Hi,
-                        const SmallVectorImpl<ISD::InputArg> &Ins,
-                        DebugLoc dl, SelectionDAG &DAG,
-                        SmallVectorImpl<SDValue> &InVals) {
-  unsigned RetVals = Ins.size();
-
-  // If call does not have anything to return
-  // then do nothing and go back.
-  if (RetVals == 0)
-    return Chain;
-
-  // Call has something to return
-  SDValue LoadRet;
-
-  SDVTList Tys = DAG.getVTList(MVT::i8, MVT::Other, MVT::Flag);
-  for(unsigned i=0;i<RetVals;i++) {
-    LoadRet = DAG.getNode(PIC16ISD::PIC16LdWF, dl, Tys, Chain, DataAddr_Lo,
-                          DataAddr_Hi, DAG.getConstant(i, MVT::i8),
-                          InFlag);
-    InFlag = getOutFlag(LoadRet);
-    Chain = getChain(LoadRet);
-    InVals.push_back(LoadRet);
-  }
-  return Chain;
-}
-
-SDValue PIC16TargetLowering::
-LowerDirectCallReturn(SDValue RetLabel, SDValue Chain, SDValue InFlag,
-                      const SmallVectorImpl<ISD::InputArg> &Ins,
-                      DebugLoc dl, SelectionDAG &DAG,
-                      SmallVectorImpl<SDValue> &InVals) {
-
-  // Currently handling primitive types only. They will come in
-  // i8 parts
-  unsigned RetVals = Ins.size();
-
-  // Return immediately if the return type is void
-  if (RetVals == 0)
-    return Chain;
-
-  // Call has something to return
-  
-  // Legalize the address before use
-  SDValue LdLo, LdHi;
-  unsigned LdOffset;
-  LegalizeAddress(RetLabel, DAG, LdLo, LdHi, LdOffset, dl);
-
-  SDVTList Tys = DAG.getVTList(MVT::i8, MVT::Other, MVT::Flag);
-  SDValue LoadRet;
- 
-  for(unsigned i=0, Offset=0;i<RetVals;i++) {
-
-    LoadRet = DAG.getNode(PIC16ISD::PIC16LdWF, dl, Tys, Chain, LdLo, LdHi,
-                          DAG.getConstant(LdOffset + Offset, MVT::i8),
-                          InFlag);
-
-    InFlag = getOutFlag(LoadRet);
-
-    Chain = getChain(LoadRet);
-    Offset++;
-    InVals.push_back(LoadRet);
-  }
-
-  return Chain;
-}
-
-SDValue
-PIC16TargetLowering::LowerReturn(SDValue Chain,
-                                 unsigned CallConv, bool isVarArg,
-                                 const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                 DebugLoc dl, SelectionDAG &DAG) {
-
-  // Number of values to return 
-  unsigned NumRet = Outs.size();
-
-  // Function returns value always on stack with the offset starting
-  // from 0 
-  MachineFunction &MF = DAG.getMachineFunction();
-  const Function *F = MF.getFunction();
-  std::string FuncName = F->getName();
-
-  const char *tmpName = createESName(PAN::getFrameLabel(FuncName));
-  SDVTList VTs  = DAG.getVTList (MVT::i8, MVT::Other);
-  SDValue ES = DAG.getTargetExternalSymbol(tmpName, MVT::i8);
-  SDValue BS = DAG.getConstant(1, MVT::i8);
-  SDValue RetVal;
-  for(unsigned i=0;i<NumRet; ++i) {
-    RetVal = Outs[i].Val;
-    Chain =  DAG.getNode (PIC16ISD::PIC16Store, dl, MVT::Other, Chain, RetVal,
-                        ES, BS,
-                        DAG.getConstant (i, MVT::i8));
-      
-  }
-  return DAG.getNode(PIC16ISD::RET, dl, MVT::Other, Chain);
-}
-
-void PIC16TargetLowering::
-GetDataAddress(DebugLoc dl, SDValue Callee, SDValue &Chain, 
-               SDValue &DataAddr_Lo, SDValue &DataAddr_Hi,
-               SelectionDAG &DAG) {
-   assert (Callee.getOpcode() == PIC16ISD::PIC16Connect
-           && "Don't know what to do of such callee!!");
-   SDValue ZeroOperand = DAG.getConstant(0, MVT::i8);
-   SDValue SeqStart  = DAG.getCALLSEQ_START(Chain, ZeroOperand);
-   Chain = getChain(SeqStart);
-   SDValue OperFlag = getOutFlag(SeqStart); // To manage the data dependency
-
-   // Get the Lo and Hi part of code address
-   SDValue Lo = Callee.getOperand(0);
-   SDValue Hi = Callee.getOperand(1);
-
-   SDValue Data_Lo, Data_Hi;
-   SDVTList Tys = DAG.getVTList(MVT::i8, MVT::Other, MVT::Flag);
-   // Subtract 2 from Address to get the Lower part of DataAddress.
-   SDVTList VTList = DAG.getVTList(MVT::i8, MVT::Flag);
-   Data_Lo = DAG.getNode(ISD::SUBC, dl, VTList, Lo, 
-                         DAG.getConstant(2, MVT::i8));
-   SDValue Ops[3] = { Hi, DAG.getConstant(0, MVT::i8), Data_Lo.getValue(1)};
-   Data_Hi = DAG.getNode(ISD::SUBE, dl, VTList, Ops, 3);
-   SDValue PCLATH = DAG.getNode(PIC16ISD::MTPCLATH, dl, MVT::i8, Data_Hi);
-   Callee = DAG.getNode(PIC16ISD::PIC16Connect, dl, MVT::i8, Data_Lo, PCLATH);
-   SDValue Call = DAG.getNode(PIC16ISD::CALLW, dl, Tys, Chain, Callee,
-                              OperFlag);
-   Chain = getChain(Call);
-   OperFlag = getOutFlag(Call);
-   SDValue SeqEnd = DAG.getCALLSEQ_END(Chain, ZeroOperand, ZeroOperand,
-                                       OperFlag);
-   Chain = getChain(SeqEnd);
-   OperFlag = getOutFlag(SeqEnd);
-
-   // Low part of Data Address 
-   DataAddr_Lo = DAG.getNode(PIC16ISD::MTLO, dl, MVT::i8, Call, OperFlag);
-
-   // Make the second call.
-   SeqStart  = DAG.getCALLSEQ_START(Chain, ZeroOperand);
-   Chain = getChain(SeqStart);
-   OperFlag = getOutFlag(SeqStart); // To manage the data dependency
-
-   // Subtract 1 from Address to get high part of data address.
-   Data_Lo = DAG.getNode(ISD::SUBC, dl, VTList, Lo, 
-                         DAG.getConstant(1, MVT::i8));
-   SDValue HiOps[3] = { Hi, DAG.getConstant(0, MVT::i8), Data_Lo.getValue(1)};
-   Data_Hi = DAG.getNode(ISD::SUBE, dl, VTList, HiOps, 3);
-   PCLATH = DAG.getNode(PIC16ISD::MTPCLATH, dl, MVT::i8, Data_Hi);
-
-   // Use new Lo to make another CALLW
-   Callee = DAG.getNode(PIC16ISD::PIC16Connect, dl, MVT::i8, Data_Lo, PCLATH);
-   Call = DAG.getNode(PIC16ISD::CALLW, dl, Tys, Chain, Callee, OperFlag);
-   Chain = getChain(Call);
-   OperFlag = getOutFlag(Call);
-   SeqEnd = DAG.getCALLSEQ_END(Chain, ZeroOperand, ZeroOperand,
-                                        OperFlag);
-   Chain = getChain(SeqEnd);
-   OperFlag = getOutFlag(SeqEnd);
-   // Hi part of Data Address
-   DataAddr_Hi = DAG.getNode(PIC16ISD::MTHI, dl, MVT::i8, Call, OperFlag);
-}
-
-SDValue
-PIC16TargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                               unsigned CallConv, bool isVarArg,
-                               bool isTailCall,
-                               const SmallVectorImpl<ISD::OutputArg> &Outs,
-                               const SmallVectorImpl<ISD::InputArg> &Ins,
-                               DebugLoc dl, SelectionDAG &DAG,
-                               SmallVectorImpl<SDValue> &InVals) {
-
-    assert(Callee.getValueType() == MVT::i16 &&
-           "Don't know how to legalize this call node!!!");
-
-    // The flag to track if this is a direct or indirect call.
-    bool IsDirectCall = true;    
-    unsigned RetVals = Ins.size();
-    unsigned NumArgs = Outs.size();
-
-    SDValue DataAddr_Lo, DataAddr_Hi; 
-    if (!isa<GlobalAddressSDNode>(Callee) &&
-        !isa<ExternalSymbolSDNode>(Callee)) {
-       IsDirectCall = false;    // This is indirect call
-
-       // If this is an indirect call then to pass the arguments
-       // and read the return value back, we need the data address
-       // of the function being called.
-       // To get the data address two more calls need to be made.
-
-       // Come here for indirect calls
-       SDValue Lo, Hi;
-       // Indirect addresses. Get the hi and lo parts of ptr.
-       GetExpandedParts(Callee, DAG, Lo, Hi);
-       // Connect Lo and Hi parts of the callee with the PIC16Connect
-       Callee = DAG.getNode(PIC16ISD::PIC16Connect, dl, MVT::i8, Lo, Hi);
-
-       // Read DataAddress only if we have to pass arguments or 
-       // read return value. 
-       if ((RetVals > 0) || (NumArgs > 0)) 
-         GetDataAddress(dl, Callee, Chain, DataAddr_Lo, DataAddr_Hi, DAG);
-    }
-
-    SDValue ZeroOperand = DAG.getConstant(0, MVT::i8);
-
-    // Start the call sequence.
-    // Carring the Constant 0 along the CALLSEQSTART
-    // because there is nothing else to carry.
-    SDValue SeqStart  = DAG.getCALLSEQ_START(Chain, ZeroOperand);
-    Chain = getChain(SeqStart);
-    SDValue OperFlag = getOutFlag(SeqStart); // To manage the data dependency
-    std::string Name;
-
-    // For any direct call - callee will be GlobalAddressNode or
-    // ExternalSymbol
-    SDValue ArgLabel, RetLabel;
-    if (IsDirectCall) { 
-       // Considering the GlobalAddressNode case here.
-       if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee)) {
-          GlobalValue *GV = G->getGlobal();
-          Callee = DAG.getTargetGlobalAddress(GV, MVT::i8);
-          Name = G->getGlobal()->getName();
-       } else {// Considering the ExternalSymbol case here
-          ExternalSymbolSDNode *ES = dyn_cast<ExternalSymbolSDNode>(Callee);
-          Callee = DAG.getTargetExternalSymbol(ES->getSymbol(), MVT::i8); 
-          Name = ES->getSymbol();
-       }
-
-       // Label for argument passing
-       const char *argFrame = createESName(PAN::getArgsLabel(Name));
-       ArgLabel = DAG.getTargetExternalSymbol(argFrame, MVT::i8);
-
-       // Label for reading return value
-       const char *retName = createESName(PAN::getRetvalLabel(Name));
-       RetLabel = DAG.getTargetExternalSymbol(retName, MVT::i8);
-    } else {
-       // if indirect call
-       SDValue CodeAddr_Lo = Callee.getOperand(0);
-       SDValue CodeAddr_Hi = Callee.getOperand(1);
-
-       /*CodeAddr_Lo = DAG.getNode(ISD::ADD, dl, MVT::i8, CodeAddr_Lo,
-                                 DAG.getConstant(2, MVT::i8));*/
-
-       // move Hi part in PCLATH
-       CodeAddr_Hi = DAG.getNode(PIC16ISD::MTPCLATH, dl, MVT::i8, CodeAddr_Hi);
-       Callee = DAG.getNode(PIC16ISD::PIC16Connect, dl, MVT::i8, CodeAddr_Lo,
-                            CodeAddr_Hi);
-    } 
-
-    // Pass the argument to function before making the call.
-    SDValue CallArgs;
-    if (IsDirectCall) {
-      CallArgs = LowerDirectCallArguments(ArgLabel, Chain, OperFlag,
-                                          Outs, dl, DAG);
-      Chain = getChain(CallArgs);
-      OperFlag = getOutFlag(CallArgs);
-    } else {
-      CallArgs = LowerIndirectCallArguments(Chain, OperFlag, DataAddr_Lo,
-                                            DataAddr_Hi, Outs, Ins, dl, DAG);
-      Chain = getChain(CallArgs);
-      OperFlag = getOutFlag(CallArgs);
-    }
-
-    SDVTList Tys = DAG.getVTList(MVT::Other, MVT::Flag);
-    SDValue PICCall = DAG.getNode(PIC16ISD::CALL, dl, Tys, Chain, Callee,
-                                  OperFlag);
-    Chain = getChain(PICCall);
-    OperFlag = getOutFlag(PICCall);
-
-
-    // Carrying the Constant 0 along the CALLSEQSTART
-    // because there is nothing else to carry.
-    SDValue SeqEnd = DAG.getCALLSEQ_END(Chain, ZeroOperand, ZeroOperand,
-                                        OperFlag);
-    Chain = getChain(SeqEnd);
-    OperFlag = getOutFlag(SeqEnd);
-
-    // Lower the return value reading after the call.
-    if (IsDirectCall)
-      return LowerDirectCallReturn(RetLabel, Chain, OperFlag,
-                                   Ins, dl, DAG, InVals);
-    else
-      return LowerIndirectCallReturn(Chain, OperFlag, DataAddr_Lo,
-                                     DataAddr_Hi, Ins, dl, DAG, InVals);
-}
-
-bool PIC16TargetLowering::isDirectLoad(const SDValue Op) {
-  if (Op.getOpcode() == PIC16ISD::PIC16Load)
-    if (Op.getOperand(1).getOpcode() == ISD::TargetGlobalAddress
-     || Op.getOperand(1).getOpcode() == ISD::TargetExternalSymbol)
-      return true;
-  return false;
-}
-
-// NeedToConvertToMemOp - Returns true if one of the operands of the
-// operation 'Op' needs to be put into memory. Also returns the
-// operand no. of the operand to be converted in 'MemOp'. Remember, PIC16 has 
-// no instruction that can operation on two registers. Most insns take
-// one register and one memory operand (addwf) / Constant (addlw).
-bool PIC16TargetLowering::NeedToConvertToMemOp(SDValue Op, unsigned &MemOp) {
-  // If one of the operand is a constant, return false.
-  if (Op.getOperand(0).getOpcode() == ISD::Constant ||
-      Op.getOperand(1).getOpcode() == ISD::Constant)
-    return false;    
-
-  // Return false if one of the operands is already a direct
-  // load and that operand has only one use.
-  if (isDirectLoad(Op.getOperand(0))) {
-    if (Op.getOperand(0).hasOneUse())
-      return false;
-    else 
-      MemOp = 0;
-  }
-  if (isDirectLoad(Op.getOperand(1))) {
-    if (Op.getOperand(1).hasOneUse())
-      return false;
-    else 
-      MemOp = 1; 
-  }
-  return true;
-}  
-
-// LowerBinOp - Lower a commutative binary operation that does not
-// affect status flag carry.
-SDValue PIC16TargetLowering::LowerBinOp(SDValue Op, SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-
-  // We should have handled larger operands in type legalizer itself.
-  assert (Op.getValueType() == MVT::i8 && "illegal Op to lower");
-
-  unsigned MemOp = 1;
-  if (NeedToConvertToMemOp(Op, MemOp)) {
-    // Put one value on stack.
-    SDValue NewVal = ConvertToMemOperand (Op.getOperand(MemOp), DAG, dl);
-
-    return DAG.getNode(Op.getOpcode(), dl, MVT::i8, Op.getOperand(MemOp ^ 1),
-    NewVal);
-  }
-  else {
-    return Op;
-  }
-}
-
-// LowerADD - Lower all types of ADD operations including the ones
-// that affects carry.
-SDValue PIC16TargetLowering::LowerADD(SDValue Op, SelectionDAG &DAG) {
-  // We should have handled larger operands in type legalizer itself.
-  assert (Op.getValueType() == MVT::i8 && "illegal add to lower");
-  DebugLoc dl = Op.getDebugLoc();
-  unsigned MemOp = 1;
-  if (NeedToConvertToMemOp(Op, MemOp)) {
-    // Put one value on stack.
-    SDValue NewVal = ConvertToMemOperand (Op.getOperand(MemOp), DAG, dl);
-    
-    // ADDC and ADDE produce two results.
-    SDVTList Tys = DAG.getVTList(MVT::i8, MVT::Flag);
-
-    // ADDE has three operands, the last one is the carry bit.
-    if (Op.getOpcode() == ISD::ADDE)
-      return DAG.getNode(Op.getOpcode(), dl, Tys, Op.getOperand(MemOp ^ 1),
-                         NewVal, Op.getOperand(2));
-    // ADDC has two operands.
-    else if (Op.getOpcode() == ISD::ADDC)
-      return DAG.getNode(Op.getOpcode(), dl, Tys, Op.getOperand(MemOp ^ 1),
-                         NewVal);
-    // ADD it is. It produces only one result.
-    else
-      return DAG.getNode(Op.getOpcode(), dl, MVT::i8, Op.getOperand(MemOp ^ 1),
-                         NewVal);
-  }
-  else
-    return Op;
-}
-
-SDValue PIC16TargetLowering::LowerSUB(SDValue Op, SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  // We should have handled larger operands in type legalizer itself.
-  assert (Op.getValueType() == MVT::i8 && "illegal sub to lower");
-
-  // Nothing to do if the first operand is already a direct load and it has
-  // only one use.
-  if (isDirectLoad(Op.getOperand(0)) && Op.getOperand(0).hasOneUse())
-    return Op;
-
-  // Put first operand on stack.
-  SDValue NewVal = ConvertToMemOperand (Op.getOperand(0), DAG, dl);
-
-  SDVTList Tys = DAG.getVTList(MVT::i8, MVT::Flag);
-  switch (Op.getOpcode()) {
-    default:
-      assert (0 && "Opcode unknown."); 
-    case ISD::SUBE:
-      return DAG.getNode(Op.getOpcode(), dl, Tys, NewVal, Op.getOperand(1),
-                         Op.getOperand(2));
-      break;
-    case ISD::SUBC:
-      return DAG.getNode(Op.getOpcode(), dl, Tys, NewVal, Op.getOperand(1));
-      break;
-    case ISD::SUB:
-      return DAG.getNode(Op.getOpcode(), dl, MVT::i8, NewVal, Op.getOperand(1));
-      break;
-  }
-}
-
-void PIC16TargetLowering::InitReservedFrameCount(const Function *F) {
-  unsigned NumArgs = F->arg_size();
-
-  bool isVoidFunc = (F->getReturnType()->getTypeID() == Type::VoidTyID);
-
-  if (isVoidFunc)
-    ReservedFrameCount = NumArgs;
-  else
-    ReservedFrameCount = NumArgs + 1;
-}
-
-// LowerFormalArguments - Argument values are loaded from the
-// <fname>.args + offset. All arguments are already broken to leaglized
-// types, so the offset just runs from 0 to NumArgVals - 1.
-
-SDValue
-PIC16TargetLowering::LowerFormalArguments(SDValue Chain,
-                                          unsigned CallConv,
-                                          bool isVarArg,
-                                      const SmallVectorImpl<ISD::InputArg> &Ins,
-                                          DebugLoc dl,
-                                          SelectionDAG &DAG,
-                                          SmallVectorImpl<SDValue> &InVals) {
-  unsigned NumArgVals = Ins.size();
-
-  // Get the callee's name to create the <fname>.args label to pass args.
-  MachineFunction &MF = DAG.getMachineFunction();
-  const Function *F = MF.getFunction();
-  std::string FuncName = F->getName();
-
-  // Reset the map of FI and TmpOffset 
-  ResetTmpOffsetMap();
-  // Initialize the ReserveFrameCount
-  InitReservedFrameCount(F);
-
-  // Create the <fname>.args external symbol.
-  const char *tmpName = createESName(PAN::getArgsLabel(FuncName));
-  SDValue ES = DAG.getTargetExternalSymbol(tmpName, MVT::i8);
-
-  // Load arg values from the label + offset.
-  SDVTList VTs  = DAG.getVTList (MVT::i8, MVT::Other);
-  SDValue BS = DAG.getConstant(1, MVT::i8);
-  for (unsigned i = 0; i < NumArgVals ; ++i) {
-    SDValue Offset = DAG.getConstant(i, MVT::i8);
-    SDValue PICLoad = DAG.getNode(PIC16ISD::PIC16LdArg, dl, VTs, Chain, ES, BS,
-                                  Offset);
-    Chain = getChain(PICLoad);
-    InVals.push_back(PICLoad);
-  }
-
-  return Chain;
-}
-
-// Perform DAGCombine of PIC16Load.
-// FIXME - Need a more elaborate comment here.
-SDValue PIC16TargetLowering::
-PerformPIC16LoadCombine(SDNode *N, DAGCombinerInfo &DCI) const {
-  SelectionDAG &DAG = DCI.DAG;
-  SDValue Chain = N->getOperand(0); 
-  if (N->hasNUsesOfValue(0, 0)) {
-    DAG.ReplaceAllUsesOfValueWith(SDValue(N,1), Chain);
-  }
-  return SDValue();
-}
-
-// For all the functions with arguments some STORE nodes are generated 
-// that store the argument on the frameindex. However in PIC16 the arguments
-// are passed on stack only. Therefore these STORE nodes are redundant. 
-// To remove these STORE nodes will be removed in PerformStoreCombine 
-//
-// Currently this function is doint nothing and will be updated for removing
-// unwanted store operations
-SDValue PIC16TargetLowering::
-PerformStoreCombine(SDNode *N, DAGCombinerInfo &DCI) const {
-  return SDValue(N, 0);
-  /*
-  // Storing an undef value is of no use, so remove it
-  if (isStoringUndef(N, Chain, DAG)) {
-    return Chain; // remove the store and return the chain
-  }
-  //else everything is ok.
-  return SDValue(N, 0);
-  */
-}
-
-SDValue PIC16TargetLowering::PerformDAGCombine(SDNode *N, 
-                                               DAGCombinerInfo &DCI) const {
-  switch (N->getOpcode()) {
-  case ISD::STORE:   
-   return PerformStoreCombine(N, DCI); 
-  case PIC16ISD::PIC16Load:   
-    return PerformPIC16LoadCombine(N, DCI);
-  }
-  return SDValue();
-}
-
-static PIC16CC::CondCodes IntCCToPIC16CC(ISD::CondCode CC) {
-  switch (CC) {
-  default: llvm_unreachable("Unknown condition code!");
-  case ISD::SETNE:  return PIC16CC::NE;
-  case ISD::SETEQ:  return PIC16CC::EQ;
-  case ISD::SETGT:  return PIC16CC::GT;
-  case ISD::SETGE:  return PIC16CC::GE;
-  case ISD::SETLT:  return PIC16CC::LT;
-  case ISD::SETLE:  return PIC16CC::LE;
-  case ISD::SETULT: return PIC16CC::ULT;
-  case ISD::SETULE: return PIC16CC::ULE;
-  case ISD::SETUGE: return PIC16CC::UGE;
-  case ISD::SETUGT: return PIC16CC::UGT;
-  }
-}
-
-// Look at LHS/RHS/CC and see if they are a lowered setcc instruction.  If so
-// set LHS/RHS and SPCC to the LHS/RHS of the setcc and SPCC to the condition.
-static void LookThroughSetCC(SDValue &LHS, SDValue &RHS,
-                             ISD::CondCode CC, unsigned &SPCC) {
-  if (isa<ConstantSDNode>(RHS) &&
-      cast<ConstantSDNode>(RHS)->getZExtValue() == 0 &&
-      CC == ISD::SETNE &&
-      (LHS.getOpcode() == PIC16ISD::SELECT_ICC &&
-        LHS.getOperand(3).getOpcode() == PIC16ISD::SUBCC) &&
-      isa<ConstantSDNode>(LHS.getOperand(0)) &&
-      isa<ConstantSDNode>(LHS.getOperand(1)) &&
-      cast<ConstantSDNode>(LHS.getOperand(0))->getZExtValue() == 1 &&
-      cast<ConstantSDNode>(LHS.getOperand(1))->getZExtValue() == 0) {
-    SDValue CMPCC = LHS.getOperand(3);
-    SPCC = cast<ConstantSDNode>(LHS.getOperand(2))->getZExtValue();
-    LHS = CMPCC.getOperand(0);
-    RHS = CMPCC.getOperand(1);
-  }
-}
-
-// Returns appropriate CMP insn and corresponding condition code in PIC16CC
-SDValue PIC16TargetLowering::getPIC16Cmp(SDValue LHS, SDValue RHS, 
-                                         unsigned CC, SDValue &PIC16CC, 
-                                         SelectionDAG &DAG, DebugLoc dl) {
-  PIC16CC::CondCodes CondCode = (PIC16CC::CondCodes) CC;
-
-  // PIC16 sub is literal - W. So Swap the operands and condition if needed.
-  // i.e. a < 12 can be rewritten as 12 > a.
-  if (RHS.getOpcode() == ISD::Constant) {
-
-    SDValue Tmp = LHS;
-    LHS = RHS;
-    RHS = Tmp;
-
-    switch (CondCode) {
-    default: break;
-    case PIC16CC::LT:
-      CondCode = PIC16CC::GT; 
-      break;
-    case PIC16CC::GT:
-      CondCode = PIC16CC::LT; 
-      break;
-    case PIC16CC::ULT:
-      CondCode = PIC16CC::UGT; 
-      break;
-    case PIC16CC::UGT:
-      CondCode = PIC16CC::ULT; 
-      break;
-    case PIC16CC::GE:
-      CondCode = PIC16CC::LE; 
-      break;
-    case PIC16CC::LE:
-      CondCode = PIC16CC::GE;
-      break;
-    case PIC16CC::ULE:
-      CondCode = PIC16CC::UGE;
-      break;
-    case PIC16CC::UGE:
-      CondCode = PIC16CC::ULE;
-      break;
-    }
-  }
-
-  PIC16CC = DAG.getConstant(CondCode, MVT::i8);
-
-  // These are signed comparisons. 
-  SDValue Mask = DAG.getConstant(128, MVT::i8);
-  if (isSignedComparison(CondCode)) {
-    LHS = DAG.getNode (ISD::XOR, dl, MVT::i8, LHS, Mask);
-    RHS = DAG.getNode (ISD::XOR, dl, MVT::i8, RHS, Mask); 
-  }
-
-  SDVTList VTs = DAG.getVTList (MVT::i8, MVT::Flag);
-  // We can use a subtract operation to set the condition codes. But
-  // we need to put one operand in memory if required.
-  // Nothing to do if the first operand is already a valid type (direct load 
-  // for subwf and literal for sublw) and it is used by this operation only. 
-  if ((LHS.getOpcode() == ISD::Constant || isDirectLoad(LHS)) 
-      && LHS.hasOneUse())
-    return DAG.getNode(PIC16ISD::SUBCC, dl, VTs, LHS, RHS);
-
-  // else convert the first operand to mem.
-  LHS = ConvertToMemOperand (LHS, DAG, dl);
-  return DAG.getNode(PIC16ISD::SUBCC, dl, VTs, LHS, RHS);
-}
-
-
-SDValue PIC16TargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue LHS = Op.getOperand(0);
-  SDValue RHS = Op.getOperand(1);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(4))->get();
-  SDValue TrueVal = Op.getOperand(2);
-  SDValue FalseVal = Op.getOperand(3);
-  unsigned ORIGCC = ~0;
-  DebugLoc dl = Op.getDebugLoc();
-
-  // If this is a select_cc of a "setcc", and if the setcc got lowered into
-  // an CMP[IF]CC/SELECT_[IF]CC pair, find the original compared values.
-  // i.e.
-  // A setcc: lhs, rhs, cc is expanded by llvm to 
-  // select_cc: result of setcc, 0, 1, 0, setne
-  // We can think of it as:
-  // select_cc: lhs, rhs, 1, 0, cc
-  LookThroughSetCC(LHS, RHS, CC, ORIGCC);
-  if (ORIGCC == ~0U) ORIGCC = IntCCToPIC16CC (CC);
-
-  SDValue PIC16CC;
-  SDValue Cmp = getPIC16Cmp(LHS, RHS, ORIGCC, PIC16CC, DAG, dl);
-
-  return DAG.getNode (PIC16ISD::SELECT_ICC, dl, TrueVal.getValueType(), TrueVal,
-                      FalseVal, PIC16CC, Cmp.getValue(1)); 
-}
-
-MachineBasicBlock *
-PIC16TargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                 MachineBasicBlock *BB) const {
-  const TargetInstrInfo &TII = *getTargetMachine().getInstrInfo();
-  unsigned CC = (PIC16CC::CondCodes)MI->getOperand(3).getImm();
-  DebugLoc dl = MI->getDebugLoc();
-
-  // To "insert" a SELECT_CC instruction, we actually have to insert the diamond
-  // control-flow pattern.  The incoming instruction knows the destination vreg
-  // to set, the condition code register to branch on, the true/false values to
-  // select between, and a branch opcode to use.
-  const BasicBlock *LLVM_BB = BB->getBasicBlock();
-  MachineFunction::iterator It = BB;
-  ++It;
-
-  //  thisMBB:
-  //  ...
-  //   TrueVal = ...
-  //   [f]bCC copy1MBB
-  //   fallthrough --> copy0MBB
-  MachineBasicBlock *thisMBB = BB;
-  MachineFunction *F = BB->getParent();
-  MachineBasicBlock *copy0MBB = F->CreateMachineBasicBlock(LLVM_BB);
-  MachineBasicBlock *sinkMBB = F->CreateMachineBasicBlock(LLVM_BB);
-  BuildMI(BB, dl, TII.get(PIC16::pic16brcond)).addMBB(sinkMBB).addImm(CC);
-  F->insert(It, copy0MBB);
-  F->insert(It, sinkMBB);
-
-  // Update machine-CFG edges by transferring all successors of the current
-  // block to the new block which will contain the Phi node for the select.
-  sinkMBB->transferSuccessors(BB);
-  // Next, add the true and fallthrough blocks as its successors.
-  BB->addSuccessor(copy0MBB);
-  BB->addSuccessor(sinkMBB);
-
-  //  copy0MBB:
-  //   %FalseValue = ...
-  //   # fallthrough to sinkMBB
-  BB = copy0MBB;
-
-  // Update machine-CFG edges
-  BB->addSuccessor(sinkMBB);
-
-  //  sinkMBB:
-  //   %Result = phi [ %FalseValue, copy0MBB ], [ %TrueValue, thisMBB ]
-  //  ...
-  BB = sinkMBB;
-  BuildMI(BB, dl, TII.get(PIC16::PHI), MI->getOperand(0).getReg())
-    .addReg(MI->getOperand(2).getReg()).addMBB(copy0MBB)
-    .addReg(MI->getOperand(1).getReg()).addMBB(thisMBB);
-
-  F->DeleteMachineInstr(MI);   // The pseudo instruction is gone now.
-  return BB;
-}
-
-
-SDValue PIC16TargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue Chain = Op.getOperand(0);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(1))->get();
-  SDValue LHS = Op.getOperand(2);   // LHS of the condition.
-  SDValue RHS = Op.getOperand(3);   // RHS of the condition.
-  SDValue Dest = Op.getOperand(4);  // BB to jump to
-  unsigned ORIGCC = ~0;
-  DebugLoc dl = Op.getDebugLoc();
-
-  // If this is a br_cc of a "setcc", and if the setcc got lowered into
-  // an CMP[IF]CC/SELECT_[IF]CC pair, find the original compared values.
-  LookThroughSetCC(LHS, RHS, CC, ORIGCC);
-  if (ORIGCC == ~0U) ORIGCC = IntCCToPIC16CC (CC);
-
-  // Get the Compare insn and condition code.
-  SDValue PIC16CC;
-  SDValue Cmp = getPIC16Cmp(LHS, RHS, ORIGCC, PIC16CC, DAG, dl);
-
-  return DAG.getNode(PIC16ISD::BRCOND, dl, MVT::Other, Chain, Dest, PIC16CC, 
-                     Cmp.getValue(1));
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.h
deleted file mode 100644
index aee39f0..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.h
+++ /dev/null
@@ -1,254 +0,0 @@
-//===-- PIC16ISelLowering.h - PIC16 DAG Lowering Interface ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that PIC16 uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16ISELLOWERING_H
-#define PIC16ISELLOWERING_H
-
-#include "PIC16.h"
-#include "PIC16Subtarget.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLowering.h"
-#include <map>
-
-namespace llvm {
-  namespace PIC16ISD {
-    enum NodeType {
-      // Start the numbering from where ISD NodeType finishes.
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-
-      Lo,            // Low 8-bits of GlobalAddress.
-      Hi,            // High 8-bits of GlobalAddress.
-      PIC16Load,
-      PIC16LdArg,   // This is replica of PIC16Load but used to load function 
-                    // arguments and is being used for facilitating for some 
-                    // store removal optimizations. 
-
-      PIC16LdWF,
-      PIC16Store,
-      PIC16StWF,
-      Banksel,
-      MTLO,          // Move to low part of FSR
-      MTHI,          // Move to high part of FSR
-      MTPCLATH,      // Move to PCLATCH
-      PIC16Connect,  // General connector for PIC16 nodes
-      BCF,
-      LSLF,          // PIC16 Logical shift left
-      LRLF,          // PIC16 Logical shift right
-      RLF,           // Rotate left through carry
-      RRF,           // Rotate right through carry
-      CALL,          // PIC16 Call instruction 
-      CALLW,         // PIC16 CALLW instruction 
-      SUBCC,         // Compare for equality or inequality.
-      SELECT_ICC,    // Psuedo to be caught in schedular and expanded to brcond.
-      BRCOND,        // Conditional branch.
-      RET,           // Return.
-      Dummy
-    };
-
-    // Keep track of different address spaces. 
-    enum AddressSpace {
-      RAM_SPACE = 0,   // RAM address space
-      ROM_SPACE = 1    // ROM address space number is 1
-    };
-    enum PIC16Libcall {
-      MUL_I8 = RTLIB::UNKNOWN_LIBCALL + 1,
-      SRA_I8,
-      SLL_I8,
-      SRL_I8,
-      PIC16UnknownCall
-    };
-  }
-
-
-  //===--------------------------------------------------------------------===//
-  // TargetLowering Implementation
-  //===--------------------------------------------------------------------===//
-  class PIC16TargetLowering : public TargetLowering {
-  public:
-    explicit PIC16TargetLowering(PIC16TargetMachine &TM);
-
-    /// getTargetNodeName - This method returns the name of a target specific
-    /// DAG node.
-    virtual const char *getTargetNodeName(unsigned Opcode) const;
-    /// getSetCCResultType - Return the ISD::SETCC ValueType
-    virtual MVT::SimpleValueType getSetCCResultType(EVT ValType) const;
-    SDValue LowerShift(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerMUL(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerADD(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSUB(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerBinOp(SDValue Op, SelectionDAG &DAG);
-    // Call returns
-    SDValue 
-    LowerDirectCallReturn(SDValue RetLabel, SDValue Chain, SDValue InFlag,
-                          const SmallVectorImpl<ISD::InputArg> &Ins,
-                          DebugLoc dl, SelectionDAG &DAG,
-                          SmallVectorImpl<SDValue> &InVals);
-    SDValue 
-    LowerIndirectCallReturn(SDValue Chain, SDValue InFlag,
-                             SDValue DataAddr_Lo, SDValue DataAddr_Hi,
-                            const SmallVectorImpl<ISD::InputArg> &Ins,
-                            DebugLoc dl, SelectionDAG &DAG,
-                            SmallVectorImpl<SDValue> &InVals);
-
-    // Call arguments
-    SDValue 
-    LowerDirectCallArguments(SDValue ArgLabel, SDValue Chain, SDValue InFlag,
-                             const SmallVectorImpl<ISD::OutputArg> &Outs,
-                             DebugLoc dl, SelectionDAG &DAG);
-
-    SDValue 
-    LowerIndirectCallArguments(SDValue Chain, SDValue InFlag,
-                               SDValue DataAddr_Lo, SDValue DataAddr_Hi, 
-                               const SmallVectorImpl<ISD::OutputArg> &Outs,
-                               const SmallVectorImpl<ISD::InputArg> &Ins,
-                               DebugLoc dl, SelectionDAG &DAG);
-
-    SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG);
-    SDValue getPIC16Cmp(SDValue LHS, SDValue RHS, unsigned OrigCC, SDValue &CC,
-                        SelectionDAG &DAG, DebugLoc dl);
-    virtual MachineBasicBlock *EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                  MachineBasicBlock *MBB) const;
-
-
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-    virtual void ReplaceNodeResults(SDNode *N,
-                                    SmallVectorImpl<SDValue> &Results,
-                                    SelectionDAG &DAG);
-    virtual void LowerOperationWrapper(SDNode *N,
-                                       SmallVectorImpl<SDValue> &Results,
-                                       SelectionDAG &DAG);
-
-    virtual SDValue
-    LowerFormalArguments(SDValue Chain,
-                         unsigned CallConv,
-                         bool isVarArg,
-                         const SmallVectorImpl<ISD::InputArg> &Ins,
-                         DebugLoc dl, SelectionDAG &DAG,
-                         SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg, bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-
-    SDValue ExpandStore(SDNode *N, SelectionDAG &DAG);
-    SDValue ExpandLoad(SDNode *N, SelectionDAG &DAG);
-    SDValue ExpandGlobalAddress(SDNode *N, SelectionDAG &DAG);
-    SDValue ExpandExternalSymbol(SDNode *N, SelectionDAG &DAG);
-    SDValue ExpandFrameIndex(SDNode *N, SelectionDAG &DAG);
-
-    SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const; 
-    SDValue PerformPIC16LoadCombine(SDNode *N, DAGCombinerInfo &DCI) const; 
-    SDValue PerformStoreCombine(SDNode *N, DAGCombinerInfo &DCI) const; 
-
-    // This function returns the Tmp Offset for FrameIndex. If any TmpOffset 
-    // already exists for the FI then it returns the same else it creates the 
-    // new offset and returns.
-    unsigned GetTmpOffsetForFI(unsigned FI, unsigned slot_size); 
-    void ResetTmpOffsetMap() { FiTmpOffsetMap.clear(); SetTmpSize(0); }
-    void InitReservedFrameCount(const Function *F); 
-
-    // Return the size of Tmp variable 
-    unsigned GetTmpSize() { return TmpSize; }
-    void SetTmpSize(unsigned Size) { TmpSize = Size; }
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *) const {
-      // FIXME: The function never seems to be aligned.
-      return 1;
-    }
-  private:
-    // If the Node is a BUILD_PAIR representing a direct Address,
-    // then this function will return true.
-    bool isDirectAddress(const SDValue &Op);
-
-    // If the Node is a DirectAddress in ROM_SPACE then this 
-    // function will return true
-    bool isRomAddress(const SDValue &Op);
-
-    // Extract the Lo and Hi component of Op. 
-    void GetExpandedParts(SDValue Op, SelectionDAG &DAG, SDValue &Lo, 
-                          SDValue &Hi); 
-
-
-    // Load pointer can be a direct or indirect address. In PIC16 direct
-    // addresses need Banksel and Indirect addresses need to be loaded to
-    // FSR first. Handle address specific cases here.
-    void LegalizeAddress(SDValue Ptr, SelectionDAG &DAG, SDValue &Chain, 
-                         SDValue &NewPtr, unsigned &Offset, DebugLoc dl);
-
-    // FrameIndex should be broken down into ExternalSymbol and FrameOffset. 
-    void LegalizeFrameIndex(SDValue Op, SelectionDAG &DAG, SDValue &ES, 
-                            int &Offset);
-
-    // For indirect calls data address of the callee frame need to be
-    // extracted. This function fills the arguments DataAddr_Lo and 
-    // DataAddr_Hi with the address of the callee frame.
-    void GetDataAddress(DebugLoc dl, SDValue Callee, SDValue &Chain,
-                        SDValue &DataAddr_Lo, SDValue &DataAddr_Hi,
-                        SelectionDAG &DAG); 
-
-    // We can not have both operands of a binary operation in W.
-    // This function is used to put one operand on stack and generate a load.
-    SDValue ConvertToMemOperand(SDValue Op, SelectionDAG &DAG, DebugLoc dl); 
-
-    // This function checks if we need to put an operand of an operation on
-    // stack and generate a load or not.
-    bool NeedToConvertToMemOp(SDValue Op, unsigned &MemOp); 
-
-    /// Subtarget - Keep a pointer to the PIC16Subtarget around so that we can
-    /// make the right decision when generating code for different targets.
-    const PIC16Subtarget *Subtarget;
-
-
-    // Extending the LIB Call framework of LLVM
-    // to hold the names of PIC16Libcalls.
-    const char *PIC16LibcallNames[PIC16ISD::PIC16UnknownCall]; 
-
-    // To set and retrieve the lib call names.
-    void setPIC16LibcallName(PIC16ISD::PIC16Libcall Call, const char *Name);
-    const char *getPIC16LibcallName(PIC16ISD::PIC16Libcall Call);
-
-    // Make PIC16 Libcall.
-    SDValue MakePIC16Libcall(PIC16ISD::PIC16Libcall Call, EVT RetVT, 
-                             const SDValue *Ops, unsigned NumOps, bool isSigned,
-                             SelectionDAG &DAG, DebugLoc dl);
-
-    // Check if operation has a direct load operand.
-    inline bool isDirectLoad(const SDValue Op);
-
-  private:
-    // The frameindexes generated for spill/reload are stack based.
-    // This maps maintain zero based indexes for these FIs.
-    std::map<unsigned, unsigned> FiTmpOffsetMap;
-    unsigned TmpSize;
-
-    // These are the frames for return value and argument passing 
-    // These FrameIndices will be expanded to foo.frame external symbol
-    // and all others will be expanded to foo.tmp external symbol.
-    unsigned ReservedFrameCount; 
-  };
-} // namespace llvm
-
-#endif // PIC16ISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrFormats.td b/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrFormats.td
deleted file mode 100644
index e213ea8..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrFormats.td
+++ /dev/null
@@ -1,117 +0,0 @@
-//===- PIC16InstrFormats.td - PIC16 Instruction Formats-------*- tblgen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Describe PIC16 instructions format
-//
-//  All the possible PIC16 fields are:
-//
-//  opcode  - operation code.
-//  f       - 7-bit register file address.
-//  d       - 1-bit direction specifier
-//  k       - 8/11 bit literals
-//  b       - 3 bits bit num specifier
-//
-//===----------------------------------------------------------------------===//
-
-// Generic PIC16 Format
-// PIC16 Instructions are 14-bit wide.
-
-// FIXME: Add Cooper Specific Formats if any.
-
-class PIC16Inst<dag outs, dag ins, string asmstr, list<dag> pattern>
-  : Instruction {
-  field bits<14> Inst;
-
-  let Namespace = "PIC16";
-  dag OutOperandList = outs;
-  dag InOperandList = ins;
-  let AsmString = asmstr;
-  let Pattern = pattern;
-}
-
-
-//===----------------------------------------------------------------------===//
-// Byte Oriented instruction class in PIC16 : <|opcode|d|f|>
-// opcode = 6 bits.
-// d = direction = 1 bit.
-// f = file register address = 7 bits.
-//===----------------------------------------------------------------------===//
-
-class ByteFormat<bits<6> opcode, dag outs, dag ins, string asmstr,
-                 list<dag> pattern>
-  :PIC16Inst<outs, ins, asmstr, pattern> {
-  bits<1>  d;
-  bits<7>  f;
-
-  let Inst{13-8} = opcode;
-
-  let Inst{7} = d;
-  let Inst{6-0} = f; 
-}
-
-//===----------------------------------------------------------------------===//
-// Bit Oriented instruction class in PIC16 : <|opcode|b|f|>
-// opcode = 4 bits.
-// b = bit specifier = 3 bits.
-// f = file register address = 7 bits.
-//===----------------------------------------------------------------------===//
-
-class BitFormat<bits<4> opcode, dag outs, dag ins, string asmstr, 
-                list<dag> pattern>
-  : PIC16Inst<outs, ins, asmstr, pattern> {
-  bits<3>  b;
-  bits<7>  f;
-
-  let Inst{13-10} = opcode;
-
-  let Inst{9-7} = b;
-  let Inst{6-0} = f; 
-}
-
-//===----------------------------------------------------------------------===//
-// Literal Format instruction class in PIC16 : <|opcode|k|>
-// opcode = 6 bits
-// k = literal = 8 bits
-//===----------------------------------------------------------------------===//
-
-class LiteralFormat<bits<6> opcode, dag outs, dag ins, string asmstr, 
-                    list<dag> pattern>
-  : PIC16Inst<outs, ins, asmstr, pattern> {
-  bits<8> k;
-  
-  let Inst{13-8} = opcode;
-
-  let Inst{7-0} = k; 
-}
-
-//===----------------------------------------------------------------------===//
-// Control Format instruction class in PIC16 : <|opcode|k|>
-// opcode = 3 bits.
-// k = jump address = 11 bits.
-//===----------------------------------------------------------------------===//
-
-class ControlFormat<bits<3> opcode, dag outs, dag ins, string asmstr, 
-                    list<dag> pattern>
-  : PIC16Inst<outs, ins, asmstr, pattern> {
-  bits<11> k;
-
-  let Inst{13-11} = opcode;
-
-  let Inst{10-0} = k; 
-}
-
-//===----------------------------------------------------------------------===//
-// Pseudo instruction class in PIC16
-//===----------------------------------------------------------------------===//
-
-class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
-  : PIC16Inst<outs, ins, asmstr, pattern> {
-   let Inst{13-6} = 0;
-}
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.cpp
deleted file mode 100644
index cb0c41b..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-//===- PIC16InstrInfo.cpp - PIC16 Instruction Information -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the PIC16 implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16.h"
-#include "PIC16InstrInfo.h"
-#include "PIC16TargetMachine.h"
-#include "PIC16GenInstrInfo.inc"
-#include "llvm/Function.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/Support/ErrorHandling.h"
-#include <cstdio>
-
-
-using namespace llvm;
-
-// FIXME: Add the subtarget support on this constructor.
-PIC16InstrInfo::PIC16InstrInfo(PIC16TargetMachine &tm)
-  : TargetInstrInfoImpl(PIC16Insts, array_lengthof(PIC16Insts)),
-    TM(tm), 
-    RegInfo(*this, *TM.getSubtargetImpl()) {}
-
-
-/// isStoreToStackSlot - If the specified machine instruction is a direct
-/// store to a stack slot, return the virtual or physical register number of
-/// the source reg along with the FrameIndex of the loaded stack slot.  
-/// If not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than storing to the stack slot.
-unsigned PIC16InstrInfo::isStoreToStackSlot(const MachineInstr *MI,
-                                            int &FrameIndex) const {
-  if (MI->getOpcode() == PIC16::movwf 
-      && MI->getOperand(0).isReg()
-      && MI->getOperand(1).isSymbol()) {
-    FrameIndex = MI->getOperand(1).getIndex();
-    return MI->getOperand(0).getReg();
-  }
-  return 0;
-}
-
-/// isLoadFromStackSlot - If the specified machine instruction is a direct
-/// load from a stack slot, return the virtual or physical register number of
-/// the dest reg along with the FrameIndex of the stack slot.  
-/// If not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than storing to the stack slot.
-unsigned PIC16InstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
-                                            int &FrameIndex) const {
-  if (MI->getOpcode() == PIC16::movf 
-      && MI->getOperand(0).isReg()
-      && MI->getOperand(1).isSymbol()) {
-    FrameIndex = MI->getOperand(1).getIndex();
-    return MI->getOperand(0).getReg();
-  }
-  return 0;
-}
-
-
-void PIC16InstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB, 
-                                         MachineBasicBlock::iterator I,
-                                         unsigned SrcReg, bool isKill, int FI,
-                                         const TargetRegisterClass *RC) const {
-  PIC16TargetLowering *PTLI = TM.getTargetLowering();
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  const Function *Func = MBB.getParent()->getFunction();
-  const std::string FuncName = Func->getName();
-
-  const char *tmpName = createESName(PAN::getTempdataLabel(FuncName));
-
-  // On the order of operands here: think "movwf SrcReg, tmp_slot, offset".
-  if (RC == PIC16::GPRRegisterClass) {
-    //MachineFunction &MF = *MBB.getParent();
-    //MachineRegisterInfo &RI = MF.getRegInfo();
-    BuildMI(MBB, I, DL, get(PIC16::movwf))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addImm(PTLI->GetTmpOffsetForFI(FI, 1))
-      .addExternalSymbol(tmpName)
-      .addImm(1); // Emit banksel for it.
-  }
-  else if (RC == PIC16::FSR16RegisterClass) {
-    // This is a 16-bit register and the frameindex given by llvm is of
-    // size two here. Break this index N into two zero based indexes and 
-    // put one into the map. The second one is always obtained by adding 1
-    // to the first zero based index. In fact it is going to use 3 slots
-    // as saving FSRs corrupts W also and hence we need to save/restore W also.
-
-    unsigned opcode = (SrcReg == PIC16::FSR0) ? PIC16::save_fsr0 
-                                                 : PIC16::save_fsr1;
-    BuildMI(MBB, I, DL, get(opcode))
-      .addReg(SrcReg, getKillRegState(isKill))
-      .addImm(PTLI->GetTmpOffsetForFI(FI, 3))
-      .addExternalSymbol(tmpName)
-      .addImm(1); // Emit banksel for it.
-  }
-  else
-    llvm_unreachable("Can't store this register to stack slot");
-}
-
-void PIC16InstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB, 
-                                          MachineBasicBlock::iterator I,
-                                          unsigned DestReg, int FI,
-                                          const TargetRegisterClass *RC) const {
-  PIC16TargetLowering *PTLI = TM.getTargetLowering();
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  const Function *Func = MBB.getParent()->getFunction();
-  const std::string FuncName = Func->getName();
-
-  const char *tmpName = createESName(PAN::getTempdataLabel(FuncName));
-
-  // On the order of operands here: think "movf FrameIndex, W".
-  if (RC == PIC16::GPRRegisterClass) {
-    //MachineFunction &MF = *MBB.getParent();
-    //MachineRegisterInfo &RI = MF.getRegInfo();
-    BuildMI(MBB, I, DL, get(PIC16::movf), DestReg)
-      .addImm(PTLI->GetTmpOffsetForFI(FI, 1))
-      .addExternalSymbol(tmpName)
-      .addImm(1); // Emit banksel for it.
-  }
-  else if (RC == PIC16::FSR16RegisterClass) {
-    // This is a 16-bit register and the frameindex given by llvm is of
-    // size two here. Break this index N into two zero based indexes and 
-    // put one into the map. The second one is always obtained by adding 1
-    // to the first zero based index. In fact it is going to use 3 slots
-    // as saving FSRs corrupts W also and hence we need to save/restore W also.
-
-    unsigned opcode = (DestReg == PIC16::FSR0) ? PIC16::restore_fsr0 
-                                                 : PIC16::restore_fsr1;
-    BuildMI(MBB, I, DL, get(opcode), DestReg)
-      .addImm(PTLI->GetTmpOffsetForFI(FI, 3))
-      .addExternalSymbol(tmpName)
-      .addImm(1); // Emit banksel for it.
-  }
-  else
-    llvm_unreachable("Can't load this register from stack slot");
-}
-
-bool PIC16InstrInfo::copyRegToReg (MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator I,
-                                   unsigned DestReg, unsigned SrcReg,
-                                   const TargetRegisterClass *DestRC,
-                                   const TargetRegisterClass *SrcRC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  if (DestRC == PIC16::FSR16RegisterClass) {
-    BuildMI(MBB, I, DL, get(PIC16::copy_fsr), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  if (DestRC == PIC16::GPRRegisterClass) {
-    BuildMI(MBB, I, DL, get(PIC16::copy_w), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  // Not yet supported.
-  return false;
-}
-
-bool PIC16InstrInfo::isMoveInstr(const MachineInstr &MI,
-                                 unsigned &SrcReg, unsigned &DestReg,
-                                 unsigned &SrcSubIdx, unsigned &DstSubIdx) const {
-  SrcSubIdx = DstSubIdx = 0; // No sub-registers.
-
-  if (MI.getOpcode() == PIC16::copy_fsr
-      || MI.getOpcode() == PIC16::copy_w) {
-    DestReg = MI.getOperand(0).getReg();
-    SrcReg = MI.getOperand(1).getReg();
-    return true;
-  }
-
-  return false;
-}
-
-/// InsertBranch - Insert a branch into the end of the specified
-/// MachineBasicBlock.  This operands to this method are the same as those
-/// returned by AnalyzeBranch.  This is invoked in cases where AnalyzeBranch
-/// returns success and when an unconditional branch (TBB is non-null, FBB is
-/// null, Cond is empty) needs to be inserted. It returns the number of
-/// instructions inserted.
-unsigned PIC16InstrInfo::
-InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, 
-             MachineBasicBlock *FBB,
-             const SmallVectorImpl<MachineOperand> &Cond) const {
-  // Shouldn't be a fall through.
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-
-  if (FBB == 0) { // One way branch.
-    if (Cond.empty()) {
-      // Unconditional branch?
-      DebugLoc dl = DebugLoc::getUnknownLoc();
-      BuildMI(&MBB, dl, get(PIC16::br_uncond)).addMBB(TBB);
-    }
-    return 1;
-  }
-
-  // FIXME: If the there are some conditions specified then conditional branch
-  // should be generated.   
-  // For the time being no instruction is being generated therefore
-  // returning NULL.
-  return 0;
-}
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.h
deleted file mode 100644
index 85c0984..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//===- PIC16InstrInfo.h - PIC16 Instruction Information----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the niversity of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the PIC16 implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16INSTRUCTIONINFO_H
-#define PIC16INSTRUCTIONINFO_H
-
-#include "PIC16.h"
-#include "PIC16RegisterInfo.h"
-#include "llvm/Target/TargetInstrInfo.h"
-
-namespace llvm {
-
-
-class PIC16InstrInfo : public TargetInstrInfoImpl 
-{
-  PIC16TargetMachine &TM;
-  const PIC16RegisterInfo RegInfo;
-public:
-  explicit PIC16InstrInfo(PIC16TargetMachine &TM);
-
-  virtual const PIC16RegisterInfo &getRegisterInfo() const { return RegInfo; }
-
-  /// isLoadFromStackSlot - If the specified machine instruction is a direct
-  /// load from a stack slot, return the virtual or physical register number of
-  /// the destination along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than loading from the stack slot.
-  virtual unsigned isLoadFromStackSlot(const MachineInstr *MI, 
-                                       int &FrameIndex) const;
-                                                                               
-  /// isStoreToStackSlot - If the specified machine instruction is a direct
-  /// store to a stack slot, return the virtual or physical register number of
-  /// the source reg along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than storing to the stack slot.
-  virtual unsigned isStoreToStackSlot(const MachineInstr *MI, 
-                                      int &FrameIndex) const;
-
-  virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MBBI,
-                                   unsigned SrcReg, bool isKill, int FrameIndex,
-                                   const TargetRegisterClass *RC) const;
-                                                                               
-  virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MBBI,
-                                    unsigned DestReg, int FrameIndex,
-                                    const TargetRegisterClass *RC) const;
-  virtual bool copyRegToReg(MachineBasicBlock &MBB,
-                            MachineBasicBlock::iterator MBBI,
-                            unsigned DestReg, unsigned SrcReg,
-                            const TargetRegisterClass *DestRC,
-                            const TargetRegisterClass *SrcRC) const;
-  virtual bool isMoveInstr(const MachineInstr &MI,
-                           unsigned &SrcReg, unsigned &DstReg,
-                           unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-
-  virtual 
-  unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                        MachineBasicBlock *FBB,
-                        const SmallVectorImpl<MachineOperand> &Cond) const; 
-
-  };
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.td b/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.td
deleted file mode 100644
index 250ca0a..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.td
+++ /dev/null
@@ -1,527 +0,0 @@
-//===- PIC16InstrInfo.td - PIC16 Instruction defs -------------*- tblgen-*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file describes the PIC16 instructions in TableGen format.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// PIC16 Specific Type Constraints.
-//===----------------------------------------------------------------------===//
-class SDTCisI8<int OpNum> : SDTCisVT<OpNum, i8>;
-class SDTCisI16<int OpNum> : SDTCisVT<OpNum, i16>;
-
-//===----------------------------------------------------------------------===//
-// PIC16 Specific Type Profiles.
-//===----------------------------------------------------------------------===//
-
-// Generic type profiles for i8/i16 unary/binary operations.
-// Taking one i8 or i16 and producing void.
-def SDTI8VoidOp : SDTypeProfile<0, 1, [SDTCisI8<0>]>;
-def SDTI16VoidOp : SDTypeProfile<0, 1, [SDTCisI16<0>]>;
-
-// Taking one value and producing an output of same type.
-def SDTI8UnaryOp : SDTypeProfile<1, 1, [SDTCisI8<0>, SDTCisI8<1>]>;
-def SDTI16UnaryOp : SDTypeProfile<1, 1, [SDTCisI16<0>, SDTCisI16<1>]>;
-
-// Taking two values and producing an output of same type.
-def SDTI8BinOp : SDTypeProfile<1, 2, [SDTCisI8<0>, SDTCisI8<1>, SDTCisI8<2>]>;
-def SDTI16BinOp : SDTypeProfile<1, 2, [SDTCisI16<0>, SDTCisI16<1>, 
-                                       SDTCisI16<2>]>;
-
-// Node specific type profiles.
-def SDT_PIC16Load : SDTypeProfile<1, 3, [SDTCisI8<0>, SDTCisI8<1>, 
-                                          SDTCisI8<2>, SDTCisI8<3>]>;
-
-def SDT_PIC16Store : SDTypeProfile<0, 4, [SDTCisI8<0>, SDTCisI8<1>, 
-                                          SDTCisI8<2>, SDTCisI8<3>]>;
-
-def SDT_PIC16Connect : SDTypeProfile<1, 2, [SDTCisI8<0>, SDTCisI8<1>,
-                                            SDTCisI8<2>]>;
-
-// PIC16ISD::CALL type prorile
-def SDT_PIC16call : SDTypeProfile<0, -1, [SDTCisInt<0>]>;
-def SDT_PIC16callw : SDTypeProfile<1, -1, [SDTCisInt<0>]>;
-
-// PIC16ISD::BRCOND
-def SDT_PIC16Brcond: SDTypeProfile<0, 2, 
-                                   [SDTCisVT<0, OtherVT>, SDTCisI8<1>]>;
-
-// PIC16ISD::BRCOND
-def SDT_PIC16Selecticc: SDTypeProfile<1, 3, 
-                                   [SDTCisI8<0>, SDTCisI8<1>, SDTCisI8<2>,
-                                    SDTCisI8<3>]>;
-
-//===----------------------------------------------------------------------===//
-// PIC16 addressing modes matching via DAG.
-//===----------------------------------------------------------------------===//
-def diraddr : ComplexPattern<i8, 1, "SelectDirectAddr", [], []>;
-
-//===----------------------------------------------------------------------===//
-// PIC16 Specific Node Definitions.
-//===----------------------------------------------------------------------===//
-def PIC16callseq_start : SDNode<"ISD::CALLSEQ_START", SDTI8VoidOp,
-                                [SDNPHasChain, SDNPOutFlag]>;
-def PIC16callseq_end   : SDNode<"ISD::CALLSEQ_END", SDTI8VoidOp, 
-                                [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-// Low 8-bits of GlobalAddress.
-def PIC16Lo : SDNode<"PIC16ISD::Lo", SDTI8BinOp>;  
-
-// High 8-bits of GlobalAddress.
-def PIC16Hi : SDNode<"PIC16ISD::Hi", SDTI8BinOp>;
-
-// The MTHI and MTLO nodes are used only to match them in the incoming 
-// DAG for replacement by corresponding set_fsrhi, set_fsrlo insntructions.
-// These nodes are not used for defining any instructions.
-def MTLO     : SDNode<"PIC16ISD::MTLO", SDTI8UnaryOp>;
-def MTHI     : SDNode<"PIC16ISD::MTHI", SDTI8UnaryOp>;
-def MTPCLATH : SDNode<"PIC16ISD::MTPCLATH", SDTI8UnaryOp>;
-
-// Node to generate Bank Select for a GlobalAddress.
-def Banksel : SDNode<"PIC16ISD::Banksel", SDTI8UnaryOp>;
-
-// Node to match a direct store operation.
-def PIC16Store : SDNode<"PIC16ISD::PIC16Store", SDT_PIC16Store, [SDNPHasChain]>;
-def PIC16StWF : SDNode<"PIC16ISD::PIC16StWF", SDT_PIC16Store, 
-                       [SDNPHasChain, SDNPInFlag, SDNPOutFlag]>;
-
-// Node to match a direct load operation.
-def PIC16Load  : SDNode<"PIC16ISD::PIC16Load", SDT_PIC16Load, [SDNPHasChain]>;
-def PIC16LdArg  : SDNode<"PIC16ISD::PIC16LdArg", SDT_PIC16Load, [SDNPHasChain]>;
-def PIC16LdWF  : SDNode<"PIC16ISD::PIC16LdWF", SDT_PIC16Load, 
-                       [SDNPHasChain, SDNPInFlag, SDNPOutFlag]>;
-def PIC16Connect: SDNode<"PIC16ISD::PIC16Connect", SDT_PIC16Connect, []>;
-
-// Node to match PIC16 call
-def PIC16call : SDNode<"PIC16ISD::CALL", SDT_PIC16call,
-                              [SDNPHasChain , SDNPOptInFlag, SDNPOutFlag]>;
-def PIC16callw : SDNode<"PIC16ISD::CALLW", SDT_PIC16callw,
-                              [SDNPHasChain , SDNPOptInFlag, SDNPOutFlag]>;
-
-// Node to match a comparison instruction.
-def PIC16Subcc : SDNode<"PIC16ISD::SUBCC", SDTI8BinOp, [SDNPOutFlag]>;
-
-// Node to match a conditional branch.
-def PIC16Brcond : SDNode<"PIC16ISD::BRCOND", SDT_PIC16Brcond, 
-                         [SDNPHasChain, SDNPInFlag]>;
-
-def PIC16Selecticc : SDNode<"PIC16ISD::SELECT_ICC", SDT_PIC16Selecticc, 
-                         [SDNPInFlag]>;
-
-def PIC16ret       : SDNode<"PIC16ISD::RET", SDTNone, [SDNPHasChain]>;
-
-//===----------------------------------------------------------------------===//
-// PIC16 Operand Definitions.
-//===----------------------------------------------------------------------===//
-def i8mem : Operand<i8>;
-def brtarget: Operand<OtherVT>;
-
-// Operand for printing out a condition code.
-let PrintMethod = "printCCOperand" in
-  def CCOp : Operand<i8>;
-
-include "PIC16InstrFormats.td"
-
-//===----------------------------------------------------------------------===//
-// PIC16 Common Classes.
-//===----------------------------------------------------------------------===//
-
-// W = W Op F : Load the value from F and do Op to W.
-let isTwoAddress = 1, mayLoad = 1 in
-class BinOpFW<bits<6> OpCode, string OpcStr, SDNode OpNode>:
-  ByteFormat<OpCode, (outs GPR:$dst),
-             (ins GPR:$src, i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi),
-              !strconcat(OpcStr, " $ptrlo + $offset, W"),
-             [(set GPR:$dst, (OpNode GPR:$src, (PIC16Load diraddr:$ptrlo,
-                                             (i8 imm:$ptrhi),
-                                             (i8 imm:$offset))))]>;
-
-// F = F Op W : Load the value from F, do op with W and store in F.
-// This insn class is not marked as TwoAddress because the reg is
-// being used as a source operand only. (Remember a TwoAddress insn
-// needs a copyRegToReg.)
-let mayStore = 1 in
-class BinOpWF<bits<6> OpCode, string OpcStr, SDNode OpNode>:
-  ByteFormat<OpCode, (outs),
-             (ins GPR:$src, i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi),
-              !strconcat(OpcStr, " $ptrlo + $offset"),
-             [(PIC16Store (OpNode GPR:$src, (PIC16Load diraddr:$ptrlo,
-                                             (i8 imm:$ptrhi),
-                                             (i8 imm:$offset))),
-                                             diraddr:$ptrlo,
-                                             (i8 imm:$ptrhi), (i8 imm:$offset)
-                                             )]>;
-
-// W = W Op L : Do Op of L with W and place result in W.
-let isTwoAddress = 1 in
-class BinOpLW<bits<6> opcode, string OpcStr, SDNode OpNode> :
-  LiteralFormat<opcode, (outs GPR:$dst),
-                (ins GPR:$src, i8imm:$literal),
-                !strconcat(OpcStr, " $literal"),
-                [(set GPR:$dst, (OpNode GPR:$src, (i8 imm:$literal)))]>;
-
-//===----------------------------------------------------------------------===//
-// PIC16 Instructions.
-//===----------------------------------------------------------------------===//
-
-// Pseudo-instructions.
-def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i8imm:$amt),
-                       "!ADJCALLSTACKDOWN $amt",
-                       [(PIC16callseq_start imm:$amt)]>;
-
-def ADJCALLSTACKUP : Pseudo<(outs), (ins i8imm:$amt),
-                       "!ADJCALLSTACKUP $amt", 
-                       [(PIC16callseq_end imm:$amt)]>;
-
-//-----------------------------------
-// Vaious movlw insn patterns.
-//-----------------------------------
-let isReMaterializable = 1 in {
-// Move 8-bit literal to W.
-def movlw : BitFormat<12, (outs GPR:$dst), (ins i8imm:$src),
-                      "movlw $src",
-                      [(set GPR:$dst, (i8 imm:$src))]>;
-
-// Move a Lo(TGA) to W.
-def movlw_lo_1 : BitFormat<12, (outs GPR:$dst), (ins i8imm:$src, i8imm:$src2),
-                      "movlw LOW(${src} + ${src2})",
-                      [(set GPR:$dst, (PIC16Lo tglobaladdr:$src, imm:$src2 ))]>;
-
-// Move a Lo(TES) to W.
-def movlw_lo_2 : BitFormat<12, (outs GPR:$dst), (ins i8imm:$src, i8imm:$src2),
-                      "movlw LOW(${src} + ${src2})",
-                      [(set GPR:$dst, (PIC16Lo texternalsym:$src, imm:$src2 ))]>;
-
-// Move a Hi(TGA) to W.
-def movlw_hi_1 : BitFormat<12, (outs GPR:$dst), (ins i8imm:$src, i8imm:$src2),
-                      "movlw HIGH(${src} + ${src2})",
-                      [(set GPR:$dst, (PIC16Hi tglobaladdr:$src, imm:$src2))]>;
-
-// Move a Hi(TES) to W.
-def movlw_hi_2 : BitFormat<12, (outs GPR:$dst), (ins i8imm:$src, i8imm:$src2),
-                      "movlw HIGH(${src} + ${src2})",
-                      [(set GPR:$dst, (PIC16Hi texternalsym:$src, imm:$src2))]>;
-}
-
-//-------------------
-// FSR setting insns. 
-//-------------------
-// These insns are matched via a DAG replacement pattern.
-def set_fsrlo:
-  ByteFormat<0, (outs FSR16:$fsr), 
-             (ins GPR:$val),
-             "movwf ${fsr}L",
-             []>;
-
-let isTwoAddress = 1 in
-def set_fsrhi:
-  ByteFormat<0, (outs FSR16:$dst), 
-             (ins FSR16:$src, GPR:$val),
-             "movwf ${dst}H",
-             []>;
-
-def set_pclath:
-  ByteFormat<0, (outs PCLATHR:$dst), 
-             (ins GPR:$val),
-             "movwf ${dst}",
-             [(set PCLATHR:$dst , (MTPCLATH GPR:$val))]>;
-
-//----------------------------
-// copyRegToReg 
-// copyRegToReg insns. These are dummy. They should always be deleted
-// by the optimizer and never be present in the final generated code.
-// if they are, then we have to write correct macros for these insns.
-//----------------------------
-def copy_fsr:
-  Pseudo<(outs FSR16:$dst), (ins FSR16:$src), "copy_fsr $dst, $src", []>;
-
-def copy_w:
-  Pseudo<(outs GPR:$dst), (ins GPR:$src), "copy_w $dst, $src", []>;
-
-class SAVE_FSR<string OpcStr>:
-  Pseudo<(outs), 
-         (ins FSR16:$src, i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi), 
-         !strconcat(OpcStr, " $ptrlo, $offset"),
-         []>; 
- 
-def save_fsr0: SAVE_FSR<"save_fsr0">;
-def save_fsr1: SAVE_FSR<"save_fsr1">;
-
-class RESTORE_FSR<string OpcStr>:
-  Pseudo<(outs FSR16:$dst), 
-         (ins i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi), 
-         !strconcat(OpcStr, " $ptrlo, $offset"),
-         []>; 
-
-def restore_fsr0: RESTORE_FSR<"restore_fsr0">;
-def restore_fsr1: RESTORE_FSR<"restore_fsr1">;
-
-//--------------------------
-// Store to memory
-//-------------------------
-
-// Direct store.
-// Input operands are: val = W, ptrlo = GA, offset = offset, ptrhi = banksel.
-let mayStore = 1 in
-class MOVWF_INSN<bits<6> OpCode, SDNode OpNodeDest, SDNode Op>:
-  ByteFormat<0, (outs), 
-             (ins GPR:$val, i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi),
-             "movwf ${ptrlo} + ${offset}",
-             [(Op GPR:$val, OpNodeDest:$ptrlo, (i8 imm:$ptrhi), 
-               (i8 imm:$offset))]>;
-
-// Store W to a Global Address.
-def movwf : MOVWF_INSN<0, tglobaladdr, PIC16Store>;
-
-// Store W to an External Symobol.
-def movwf_1 : MOVWF_INSN<0, texternalsym, PIC16Store>;
-
-// Store with InFlag and OutFlag
-// This is same as movwf_1 but has a flag. A flag is required to 
-// order the stores while passing the params to function.
-def movwf_2 : MOVWF_INSN<0, texternalsym, PIC16StWF>;
-
-// Indirect store. Matched via a DAG replacement pattern.
-def store_indirect : 
-  ByteFormat<0, (outs), 
-             (ins GPR:$val, FSR16:$fsr, i8imm:$offset),
-             "movwi $offset[$fsr]",
-             []>;
-
-//----------------------------
-// Load from memory
-//----------------------------
-// Direct load.
-// Input Operands are: ptrlo = GA, offset = offset, ptrhi = banksel.
-// Output: dst = W
-let Defs = [STATUS], mayLoad = 1 in
-class MOVF_INSN<bits<6> OpCode, SDNode OpNodeSrc, SDNode Op>:
-  ByteFormat<0, (outs GPR:$dst), 
-             (ins i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi),
-             "movf ${ptrlo} + ${offset}, W",
-             [(set GPR:$dst, 
-               (Op OpNodeSrc:$ptrlo, (i8 imm:$ptrhi),
-               (i8 imm:$offset)))]>;
-
-// Load from a GA.
-def movf : MOVF_INSN<0, tglobaladdr, PIC16Load>;
-
-// Load from an ES.
-def movf_1 : MOVF_INSN<0, texternalsym, PIC16Load>;
-def movf_1_1 : MOVF_INSN<0, texternalsym, PIC16LdArg>;
-
-// Load with InFlag and OutFlag
-// This is same as movf_1 but has a flag. A flag is required to 
-// order the loads while copying the return value of a function.
-def movf_2 : MOVF_INSN<0, texternalsym, PIC16LdWF>;
-
-// Indirect load. Matched via a DAG replacement pattern.
-def load_indirect : 
-  ByteFormat<0, (outs GPR:$dst), 
-             (ins FSR16:$fsr, i8imm:$offset),
-             "moviw $offset[$fsr]",
-             []>;
-
-//-------------------------
-// Bitwise operations patterns
-//--------------------------
-// W = W op [F]
-let Defs = [STATUS] in {
-def OrFW :  BinOpFW<0, "iorwf", or>;
-def XOrFW : BinOpFW<0, "xorwf", xor>;
-def AndFW : BinOpFW<0, "andwf", and>;
-
-// F = W op [F]
-def OrWF :  BinOpWF<0, "iorwf", or>;
-def XOrWF : BinOpWF<0, "xorwf", xor>;
-def AndWF : BinOpWF<0, "andwf", and>;
-
-//-------------------------
-// Various add/sub patterns.
-//-------------------------
-
-// W = W + [F]
-def addfw_1: BinOpFW<0, "addwf", add>;
-def addfw_2: BinOpFW<0, "addwf", addc>;
-
-let Uses = [STATUS] in
-def addfwc: BinOpFW<0, "addwfc", adde>;  // With Carry.
-
-// F = W + [F]
-def addwf_1: BinOpWF<0, "addwf", add>;
-def addwf_2: BinOpWF<0, "addwf", addc>;
-let Uses = [STATUS] in
-def addwfc: BinOpWF<0, "addwfc", adde>;  // With Carry.
-}
-
-// W -= [F] ; load from F and sub the value from W.
-let isTwoAddress = 1, mayLoad = 1 in
-class SUBFW<bits<6> OpCode, string OpcStr, SDNode OpNode>:
-  ByteFormat<OpCode, (outs GPR:$dst),
-             (ins GPR:$src, i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi),
-              !strconcat(OpcStr, " $ptrlo + $offset, W"),
-             [(set GPR:$dst, (OpNode (PIC16Load diraddr:$ptrlo,
-                                      (i8 imm:$ptrhi), (i8 imm:$offset)),
-                                      GPR:$src))]>;
-let Defs = [STATUS] in {
-def subfw_1: SUBFW<0, "subwf", sub>;
-def subfw_2: SUBFW<0, "subwf", subc>;
-
-let Uses = [STATUS] in
-def subfwb: SUBFW<0, "subwfb", sube>;  // With Borrow.
-
-}
-let Defs = [STATUS], isTerminator = 1 in
-def subfw_cc: SUBFW<0, "subwf", PIC16Subcc>;
-
-// [F] -= W ; 
-let mayStore = 1 in
-class SUBWF<bits<6> OpCode, string OpcStr, SDNode OpNode>:
-  ByteFormat<OpCode, (outs),
-             (ins GPR:$src, i8imm:$offset, i8mem:$ptrlo, i8imm:$ptrhi),
-              !strconcat(OpcStr, " $ptrlo + $offset"),
-             [(PIC16Store (OpNode (PIC16Load diraddr:$ptrlo,
-                                      (i8 imm:$ptrhi), (i8 imm:$offset)),
-                                      GPR:$src), diraddr:$ptrlo,
-                                      (i8 imm:$ptrhi), (i8 imm:$offset))]>;
-
-let Defs = [STATUS] in {
-def subwf_1: SUBWF<0, "subwf", sub>;
-def subwf_2: SUBWF<0, "subwf", subc>;
-
-let Uses = [STATUS] in
-  def subwfb: SUBWF<0, "subwfb", sube>;  // With Borrow.
-
-def subwf_cc: SUBWF<0, "subwf", PIC16Subcc>;
-}
-
-// addlw 
-let Defs = [STATUS] in {
-def addlw_1 : BinOpLW<0, "addlw", add>;
-def addlw_2 : BinOpLW<0, "addlw", addc>;
-
-let Uses = [STATUS] in
-def addlwc : BinOpLW<0, "addlwc", adde>; // With Carry. (Assembler macro).
-
-// bitwise operations involving a literal and w.
-def andlw : BinOpLW<0, "andlw", and>;
-def xorlw : BinOpLW<0, "xorlw", xor>;
-def orlw  : BinOpLW<0, "iorlw", or>;
-}
-
-// sublw 
-// W = C - W ; sub W from literal. (Without borrow).
-let isTwoAddress = 1 in
-class SUBLW<bits<6> opcode, SDNode OpNode> :
-  LiteralFormat<opcode, (outs GPR:$dst),
-                (ins GPR:$src, i8imm:$literal),
-                "sublw $literal",
-                [(set GPR:$dst, (OpNode (i8 imm:$literal), GPR:$src))]>;
-
-let Defs = [STATUS] in {
-def sublw_1 : SUBLW<0, sub>;
-def sublw_2 : SUBLW<0, subc>;
-}
-let Defs = [STATUS], isTerminator = 1 in 
-def sublw_cc : SUBLW<0, PIC16Subcc>;
-
-// Call instruction.
-let isCall = 1,
-    Defs = [W, FSR0, FSR1] in {
-    def CALL: LiteralFormat<0x1, (outs), (ins i8imm:$func),
-            //"call ${func} + 2",
-            "call ${func}",
-            [(PIC16call diraddr:$func)]>;
-}
-
-let isCall = 1,
-    Defs = [W, FSR0, FSR1] in {
-    def CALL_1: LiteralFormat<0x1, (outs), (ins GPR:$func, PCLATHR:$pc),
-            "callw",
-            [(PIC16call (PIC16Connect GPR:$func, PCLATHR:$pc))]>;
-}
-
-let isCall = 1,
-    Defs = [FSR0, FSR1] in {
-    def CALLW: LiteralFormat<0x1, (outs GPR:$dest), 
-                                  (ins GPR:$func, PCLATHR:$pc),
-            "callw",
-            [(set GPR:$dest, (PIC16callw (PIC16Connect GPR:$func, PCLATHR:$pc)))]>;
-}
-
-let Uses = [STATUS], isBranch = 1, isTerminator = 1, hasDelaySlot = 0 in
-def pic16brcond: ControlFormat<0x0, (outs), (ins brtarget:$dst, CCOp:$cc),
-                          "b$cc $dst",
-                          [(PIC16Brcond bb:$dst, imm:$cc)]>;
-
-// Unconditional branch.
-let isBranch = 1, isTerminator = 1, hasDelaySlot = 0 in
-def br_uncond: ControlFormat<0x0, (outs), (ins brtarget:$dst),
-                          "goto $dst",
-                          [(br bb:$dst)]>;
-
-// SELECT_CC_* - Used to implement the SELECT_CC DAG operation.  Expanded by the
-// scheduler into a branch sequence.
-let usesCustomDAGSchedInserter = 1 in {   // Expanded by the scheduler.
-  def SELECT_CC_Int_ICC
-   : Pseudo<(outs GPR:$dst), (ins GPR:$T, GPR:$F, i8imm:$Cond),
-            "; SELECT_CC_Int_ICC PSEUDO!",
-            [(set GPR:$dst, (PIC16Selecticc GPR:$T, GPR:$F,
-                                             imm:$Cond))]>;
-}
-
-
-// Banksel.
-def banksel : 
-  Pseudo<(outs),
-         (ins i8mem:$ptr),
-         "banksel $ptr",
-         []>;
-
-def pagesel : 
-  Pseudo<(outs),
-         (ins i8mem:$ptr),
-         "movlp $ptr",
-         []>;
-
-
-// Return insn.
-let isTerminator = 1, isBarrier = 1, isReturn = 1 in
-def Return : 
-  ControlFormat<0, (outs), (ins), "return", [(PIC16ret)]>;
-
-//===----------------------------------------------------------------------===//
-// PIC16 Replacment Patterns.
-//===----------------------------------------------------------------------===//
-
-// Identify an indirect store and select insns for it.
-def : Pat<(PIC16Store GPR:$val, (MTLO GPR:$loaddr), (MTHI GPR:$hiaddr), 
-           imm:$offset),
-          (store_indirect GPR:$val, 
-           (set_fsrhi (set_fsrlo GPR:$loaddr), GPR:$hiaddr),
-           imm:$offset)>;
-
-def : Pat<(PIC16StWF GPR:$val, (MTLO GPR:$loaddr), (MTHI GPR:$hiaddr), 
-           imm:$offset),
-          (store_indirect GPR:$val, 
-           (set_fsrhi (set_fsrlo GPR:$loaddr), GPR:$hiaddr),
-           imm:$offset)>;
-
-// Identify an indirect load and select insns for it.
-def : Pat<(PIC16Load (MTLO GPR:$loaddr), (MTHI GPR:$hiaddr), 
-           imm:$offset),
-          (load_indirect  (set_fsrhi (set_fsrlo GPR:$loaddr), GPR:$hiaddr),
-           imm:$offset)>;
-
-def : Pat<(PIC16LdWF (MTLO GPR:$loaddr), (MTHI GPR:$hiaddr), 
-           imm:$offset),
-          (load_indirect  (set_fsrhi (set_fsrlo GPR:$loaddr), GPR:$hiaddr),
-           imm:$offset)>;
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.cpp
deleted file mode 100644
index a17d1a8..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//===-- PIC16MCAsmInfo.cpp - PIC16 asm properties -------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the PIC16MCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16MCAsmInfo.h"
-
-// FIXME: Layering violation to get enums and static function, should be moved
-// to separate headers.
-#include "PIC16.h"
-#include "PIC16ISelLowering.h"
-using namespace llvm;
-
-PIC16MCAsmInfo::PIC16MCAsmInfo(const Target &T, const StringRef &TT) {
-  CommentString = ";";
-  GlobalPrefix = PAN::getTagName(PAN::PREFIX_SYMBOL);
-  GlobalDirective = "\tglobal\t";
-  ExternDirective = "\textern\t";
-
-  Data8bitsDirective = " db ";
-  Data16bitsDirective = " dw ";
-  Data32bitsDirective = " dl ";
-  Data64bitsDirective = NULL;
-  ZeroDirective = NULL;
-  AsciiDirective = " dt ";
-  AscizDirective = NULL;
-    
-  RomData8bitsDirective = " dw ";
-  RomData16bitsDirective = " rom_di ";
-  RomData32bitsDirective = " rom_dl ";
-    
-    
-  // Set it to false because we weed to generate c file name and not bc file
-  // name.
-  HasSingleParameterDotFile = false;
-}
-
-const char *PIC16MCAsmInfo::getDataASDirective(unsigned Size,
-                                               unsigned AS) const {
-  if (AS != PIC16ISD::ROM_SPACE)
-    return 0;
-  
-  switch (Size) {
-  case  8: return RomData8bitsDirective;
-  case 16: return RomData16bitsDirective;
-  case 32: return RomData32bitsDirective;
-  default: return NULL;
-  }
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.h
deleted file mode 100644
index e84db85..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.h
+++ /dev/null
@@ -1,35 +0,0 @@
-//=====-- PIC16MCAsmInfo.h - PIC16 asm properties -------------*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the PIC16MCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16TARGETASMINFO_H
-#define PIC16TARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-
-  class PIC16MCAsmInfo : public MCAsmInfo {
-    const char *RomData8bitsDirective;
-    const char *RomData16bitsDirective;
-    const char *RomData32bitsDirective;
-  public:    
-    PIC16MCAsmInfo(const Target &T, const StringRef &TT);
-    
-    virtual const char *getDataASDirective(unsigned size, unsigned AS) const;
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16MemSelOpt.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16MemSelOpt.cpp
deleted file mode 100644
index c9ebb57..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16MemSelOpt.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-//===-- PIC16MemSelOpt.cpp - PIC16 banksel optimizer  --------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the pass which optimizes the emitting of banksel 
-// instructions before accessing data memory. This currently works within
-// a basic block only and keep tracks of the last accessed memory bank.
-// If memory access continues to be in the same bank it just makes banksel
-// immediate, which is a part of the insn accessing the data memory, from 1
-// to zero. The asm printer emits a banksel only if that immediate is 1. 
-//
-// FIXME: this is not implemented yet.  The banksel pass only works on local
-// basic blocks.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "pic16-codegen"
-#include "PIC16.h"
-#include "PIC16InstrInfo.h"
-#include "PIC16MCAsmInfo.h"
-#include "PIC16TargetMachine.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/Passes.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/GlobalValue.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Support/Compiler.h"
-
-using namespace llvm;
-
-namespace {
-  struct VISIBILITY_HIDDEN MemSelOpt : public MachineFunctionPass {
-    static char ID;
-    MemSelOpt() : MachineFunctionPass(&ID) {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addPreservedID(MachineLoopInfoID);
-      AU.addPreservedID(MachineDominatorsID);
-      MachineFunctionPass::getAnalysisUsage(AU);
-    }
-
-    virtual bool runOnMachineFunction(MachineFunction &MF);
-
-    virtual const char *getPassName() const { 
-      return "PIC16 Memsel Optimizer"; 
-    }
-
-   bool processBasicBlock(MachineFunction &MF, MachineBasicBlock &MBB);
-   bool processInstruction(MachineInstr *MI);
-
-  private:
-    const TargetInstrInfo *TII; // Machine instruction info.
-    MachineBasicBlock *MBB;     // Current basic block
-    std::string CurBank;
-
-  };
-  char MemSelOpt::ID = 0;
-}
-
-FunctionPass *llvm::createPIC16MemSelOptimizerPass() { 
-  return new MemSelOpt(); 
-}
-
-
-/// runOnMachineFunction - Loop over all of the basic blocks, transforming FP
-/// register references into FP stack references.
-///
-bool MemSelOpt::runOnMachineFunction(MachineFunction &MF) {
-  TII = MF.getTarget().getInstrInfo();
-  bool Changed = false;
-  for (MachineFunction::iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    Changed |= processBasicBlock(MF, *I);
-  }
-
-  return Changed;
-}
-
-/// processBasicBlock - Loop over all of the instructions in the basic block,
-/// transforming FP instructions into their stack form.
-///
-bool MemSelOpt::processBasicBlock(MachineFunction &MF, MachineBasicBlock &BB) {
-  bool Changed = false;
-  MBB = &BB;
-
-  // Let us assume that when entering a basic block now bank is selected.
-  // Ideally we should look at the predecessors for this information.
-  CurBank=""; 
-
-  for (MachineBasicBlock::iterator I = BB.begin(); I != BB.end(); ++I) {
-    Changed |= processInstruction(I);
-  }
-  return Changed;
-}
-
-bool MemSelOpt::processInstruction(MachineInstr *MI) {
-  bool Changed = false;
-
-  unsigned NumOperands = MI->getNumOperands();
-  if (NumOperands == 0) return false;
-
-
-  // If this insn is not going to access any memory, return.
-  const TargetInstrDesc &TID = TII->get(MI->getOpcode());
-  if (!(TID.isBranch() || TID.isCall() || TID.mayLoad() || TID.mayStore()))
-    return false;
-
-  // Scan for the memory address operand.
-  // FIXME: Should we use standard interfaces like memoperands_iterator,
-  // hasMemOperand() etc ?
-  int MemOpPos = -1;
-  for (unsigned i = 0; i < NumOperands; i++) {
-    MachineOperand Op = MI->getOperand(i);
-    if (Op.getType() ==  MachineOperand::MO_GlobalAddress ||
-        Op.getType() ==  MachineOperand::MO_ExternalSymbol || 
-        Op.getType() ==  MachineOperand::MO_MachineBasicBlock) {
-      // We found one mem operand. Next one may be BS.
-      MemOpPos = i;
-      break;
-    }
-  }
-
-  // If we did not find an insn accessing memory. Continue.
-  if (MemOpPos == -1) return Changed;
- 
-  // Get the MemOp.
-  MachineOperand &Op = MI->getOperand(MemOpPos);
-
-  // If this is a pagesel material, handle it first.
-  if (MI->getOpcode() == PIC16::CALL ||
-      MI->getOpcode() == PIC16::br_uncond) {
-    DebugLoc dl = MI->getDebugLoc();
-    BuildMI(*MBB, MI, dl, TII->get(PIC16::pagesel)).
-      addOperand(Op);
-    return true;
-  }
-
-  // Get the section name(NewBank) for MemOp.
-  // This assumes that the section names for globals are laready set by
-  // AsmPrinter->doInitialization.
-  std::string NewBank = CurBank;
-  if (Op.getType() ==  MachineOperand::MO_GlobalAddress &&
-      Op.getGlobal()->getType()->getAddressSpace() == PIC16ISD::RAM_SPACE) {
-    NewBank = Op.getGlobal()->getSection();
-  } else if (Op.getType() ==  MachineOperand::MO_ExternalSymbol) {
-    // External Symbol is generated for temp data and arguments. They are
-    // in fpdata.<functionname>.# section.
-    std::string Sym = Op.getSymbolName();
-    NewBank = PAN::getSectionNameForSym(Sym);
-  }
- 
-  // If the previous and new section names are same, we don't need to
-  // emit banksel. 
-  if (NewBank.compare(CurBank) != 0 ) {
-    DebugLoc dl = MI->getDebugLoc();
-    BuildMI(*MBB, MI, dl, TII->get(PIC16::banksel)).
-      addOperand(Op);
-    Changed = true;
-    CurBank = NewBank;
-  }
-
-  return Changed;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.cpp
deleted file mode 100644
index bbdb353..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-//===- PIC16RegisterInfo.cpp - PIC16 Register Information -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the PIC16 implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "pic16-reg-info"
-
-#include "PIC16.h"
-#include "PIC16RegisterInfo.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/Support/ErrorHandling.h"
-
-using namespace llvm;
-
-PIC16RegisterInfo::PIC16RegisterInfo(const TargetInstrInfo &tii,
-                                     const PIC16Subtarget &st)
-  : PIC16GenRegisterInfo(PIC16::ADJCALLSTACKDOWN, PIC16::ADJCALLSTACKUP),
-    TII(tii),
-    ST(st) {}
-
-#include "PIC16GenRegisterInfo.inc"
-
-/// PIC16 Callee Saved Registers
-const unsigned* PIC16RegisterInfo::
-getCalleeSavedRegs(const MachineFunction *MF) const {
-  static const unsigned CalleeSavedRegs[] = { 0 };
-  return CalleeSavedRegs;
-}
-
-// PIC16 Callee Saved Reg Classes
-const TargetRegisterClass* const*
-PIC16RegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const {
-  static const TargetRegisterClass * const CalleeSavedRegClasses[] = { 0 };
-  return CalleeSavedRegClasses;
-}
-
-BitVector PIC16RegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  BitVector Reserved(getNumRegs());
-  return Reserved;
-}
-
-bool PIC16RegisterInfo::hasFP(const MachineFunction &MF) const {
-  return false;
-}
-
-void PIC16RegisterInfo::
-eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj,
-                    RegScavenger *RS) const
-{    /* NOT YET IMPLEMENTED */  }
-
-void PIC16RegisterInfo::emitPrologue(MachineFunction &MF) const
-{    /* NOT YET IMPLEMENTED */  }
-
-void PIC16RegisterInfo::
-emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const
-{    /* NOT YET IMPLEMENTED */  }
-
-int PIC16RegisterInfo::
-getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  llvm_unreachable("Not keeping track of debug information yet!!");
-  return -1;
-}
-
-unsigned PIC16RegisterInfo::getFrameRegister(MachineFunction &MF) const {
-  llvm_unreachable("PIC16 Does not have any frame register");
-  return 0;
-}
-
-unsigned PIC16RegisterInfo::getRARegister() const {
-  llvm_unreachable("PIC16 Does not have any return address register");
-  return 0;
-}
-
-// This function eliminates ADJCALLSTACKDOWN,
-// ADJCALLSTACKUP pseudo instructions
-void PIC16RegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  // Simply discard ADJCALLSTACKDOWN,
-  // ADJCALLSTACKUP instructions.
-  MBB.erase(I);
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.h
deleted file mode 100644
index 83689d0..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.h
+++ /dev/null
@@ -1,68 +0,0 @@
-//===- PIC16RegisterInfo.h - PIC16 Register Information Impl ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the PIC16 implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16REGISTERINFO_H
-#define PIC16REGISTERINFO_H
-
-#include "PIC16GenRegisterInfo.h.inc"
-#include "llvm/Target/TargetRegisterInfo.h"
-
-namespace llvm {
-
-// Forward Declarations.
-  class PIC16Subtarget;
-  class TargetInstrInfo;
-
-class PIC16RegisterInfo : public PIC16GenRegisterInfo {
-  private:
-    const TargetInstrInfo &TII;
-    const PIC16Subtarget &ST;
-  
-  public:
-    PIC16RegisterInfo(const TargetInstrInfo &tii, 
-                      const PIC16Subtarget &st);
-
-
-  //------------------------------------------------------
-  // Pure virtual functions from TargetRegisterInfo
-  //------------------------------------------------------
-
-  // PIC16 callee saved registers
-  virtual const unsigned* 
-  getCalleeSavedRegs(const MachineFunction *MF = 0) const;
-
-  // PIC16 callee saved register classes
-  virtual const TargetRegisterClass* const *
-  getCalleeSavedRegClasses(const MachineFunction *MF) const;
-
-  virtual BitVector getReservedRegs(const MachineFunction &MF) const;
-  virtual bool hasFP(const MachineFunction &MF) const;
-
-  virtual void eliminateFrameIndex(MachineBasicBlock::iterator MI,
-                        int SPAdj, RegScavenger *RS=NULL) const;
-
-  void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                     MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I) const;
-
-  virtual void emitPrologue(MachineFunction &MF) const;
-  virtual void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-  virtual int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-  virtual unsigned getFrameRegister(MachineFunction &MF) const;
-  virtual unsigned getRARegister() const;
-
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.td b/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.td
deleted file mode 100644
index 2959d91..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.td
+++ /dev/null
@@ -1,33 +0,0 @@
-//===- PIC16RegisterInfo.td - PIC16 Register defs ------------*- tblgen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Declarations that describe the PIC16 register file
-//===----------------------------------------------------------------------===//
-
-class PIC16Reg<string n> : Register<n> {
-  let Namespace = "PIC16";
-}
-
-// PIC16 Registers.
-def W   : PIC16Reg<"W">;
-def FSR0   : PIC16Reg<"FSR0">;
-def FSR1   : PIC16Reg<"FSR1">;
-def BS     : PIC16Reg<"BS">;
-def PCLATH : PIC16Reg<"PCLATH">;
-
-def STATUS : PIC16Reg<"STATUS">;
-
-// PIC16 Register classes.
-def GPR     : RegisterClass<"PIC16", [i8],  8, [W]>;
-def FSR16   : RegisterClass<"PIC16", [i16], 8, [FSR0, FSR1]>;
-def BSR     : RegisterClass<"PIC16", [i8],  8, [BS]>;
-def PCLATHR : RegisterClass<"PIC16", [i8],  8, [PCLATH]>;
-def STATUSR : RegisterClass<"PIC16", [i8],  8, [STATUS]>;
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16Subtarget.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16Subtarget.cpp
deleted file mode 100644
index 33fc3fb..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16Subtarget.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- PIC16Subtarget.cpp - PIC16 Subtarget Information -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the PIC16 specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16Subtarget.h"
-#include "PIC16GenSubtarget.inc"
-
-using namespace llvm;
-
-PIC16Subtarget::PIC16Subtarget(const std::string &TT, const std::string &FS, 
-                               bool Cooper)
-  :IsCooper(Cooper)
-{
-  std::string CPU = "generic";
-
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-}
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16Subtarget.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16Subtarget.h
deleted file mode 100644
index 81e3783..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16Subtarget.h
+++ /dev/null
@@ -1,44 +0,0 @@
-//=====-- PIC16Subtarget.h - Define Subtarget for the PIC16 ---*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the PIC16 specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PIC16SUBTARGET_H
-#define PIC16SUBTARGET_H
-
-#include "llvm/Target/TargetSubtarget.h"
-
-#include <string>
-
-namespace llvm {
-
-class PIC16Subtarget : public TargetSubtarget {
-
-  // IsCooper - Target ISA is Cooper.
-  bool IsCooper;
-
-public:
-  /// This constructor initializes the data members to match that
-  /// of the specified triple.
-  ///
-  PIC16Subtarget(const std::string &TT, const std::string &FS, bool Cooper);
-  
-  /// isCooper - Returns true if the target ISA is Cooper.
-  bool isCooper() const { return IsCooper; }
-
-  /// ParseSubtargetFeatures - Parses features string setting specified 
-  /// subtarget options.  Definition of function is auto generated by tblgen.
-  std::string ParseSubtargetFeatures(const std::string &FS,
-                                     const std::string &CPU);
-};
-} // End llvm namespace
-
-#endif  // PIC16SUBTARGET_H
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.cpp
deleted file mode 100644
index 08307e7..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//===-- PIC16TargetMachine.cpp - Define TargetMachine for PIC16 -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Top-level implementation for the PIC16 target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16.h"
-#include "PIC16MCAsmInfo.h"
-#include "PIC16TargetMachine.h"
-#include "llvm/PassManager.h"
-#include "llvm/CodeGen/Passes.h"
-#include "llvm/Target/TargetRegistry.h"
-
-using namespace llvm;
-
-extern "C" void LLVMInitializePIC16Target() {
-  // Register the target. Curretnly the codegen works for
-  // enhanced pic16 mid-range.
-  RegisterTargetMachine<PIC16TargetMachine> X(ThePIC16Target);
-  RegisterAsmInfo<PIC16MCAsmInfo> A(ThePIC16Target);
-}
-
-
-// PIC16TargetMachine - Enhanced PIC16 mid-range Machine. May also represent
-// a Traditional Machine if 'Trad' is true.
-PIC16TargetMachine::PIC16TargetMachine(const Target &T, const std::string &TT,
-                                       const std::string &FS, bool Trad)
-: LLVMTargetMachine(T, TT),
-  Subtarget(TT, FS, Trad),
-  DataLayout("e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"), 
-  InstrInfo(*this), TLInfo(*this),
-  FrameInfo(TargetFrameInfo::StackGrowsUp, 8, 0) { }
-
-
-bool PIC16TargetMachine::addInstSelector(PassManagerBase &PM,
-                                         CodeGenOpt::Level OptLevel) {
-  // Install an instruction selector.
-  PM.add(createPIC16ISelDag(*this));
-  return false;
-}
-
-bool PIC16TargetMachine::addPreEmitPass(PassManagerBase &PM, 
-                                         CodeGenOpt::Level OptLevel) {
-  PM.add(createPIC16MemSelOptimizerPass());
-  return true;  // -print-machineinstr should print after this.
-}
-
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.h
deleted file mode 100644
index b11fdd5..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.h
+++ /dev/null
@@ -1,64 +0,0 @@
-//===-- PIC16TargetMachine.h - Define TargetMachine for PIC16 ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the PIC16 specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-
-#ifndef PIC16_TARGETMACHINE_H
-#define PIC16_TARGETMACHINE_H
-
-#include "PIC16InstrInfo.h"
-#include "PIC16ISelLowering.h"
-#include "PIC16RegisterInfo.h"
-#include "PIC16Subtarget.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-
-/// PIC16TargetMachine
-///
-class PIC16TargetMachine : public LLVMTargetMachine {
-  PIC16Subtarget        Subtarget;
-  const TargetData      DataLayout;       // Calculates type size & alignment
-  PIC16InstrInfo        InstrInfo;
-  PIC16TargetLowering   TLInfo;
-
-  // PIC16 does not have any call stack frame, therefore not having 
-  // any PIC16 specific FrameInfo class.
-  TargetFrameInfo       FrameInfo;
-
-public:
-  PIC16TargetMachine(const Target &T, const std::string &TT,
-                     const std::string &FS, bool Cooper = false);
-
-  virtual const TargetFrameInfo *getFrameInfo() const { return &FrameInfo; }
-  virtual const PIC16InstrInfo *getInstrInfo() const  { return &InstrInfo; }
-  virtual const TargetData *getTargetData() const     { return &DataLayout;}
-  virtual const PIC16Subtarget *getSubtargetImpl() const { return &Subtarget; }
- 
-  virtual const PIC16RegisterInfo *getRegisterInfo() const { 
-    return &(InstrInfo.getRegisterInfo()); 
-  }
-
-  virtual PIC16TargetLowering *getTargetLowering() const { 
-    return const_cast<PIC16TargetLowering*>(&TLInfo); 
-  }
-
-  virtual bool addInstSelector(PassManagerBase &PM,
-                               CodeGenOpt::Level OptLevel);
-  virtual bool addPreEmitPass(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-}; // PIC16TargetMachine.
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.cpp b/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.cpp
deleted file mode 100644
index beb7cc7..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.cpp
+++ /dev/null
@@ -1,436 +0,0 @@
-//===-- PIC16TargetObjectFile.cpp - PIC16 object files --------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16TargetObjectFile.h"
-#include "MCSectionPIC16.h"
-#include "PIC16ISelLowering.h"
-#include "PIC16TargetMachine.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/MC/MCSection.h"
-#include "llvm/MC/MCContext.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-
-MCSectionPIC16 *MCSectionPIC16::Create(const StringRef &Name, SectionKind K, 
-                                       int Address, MCContext &Ctx) {
-  return new (Ctx) MCSectionPIC16(Name, K, Address);
-}
-
-
-void MCSectionPIC16::PrintSwitchToSection(const MCAsmInfo &MAI,
-                                          raw_ostream &OS) const {
-  OS << getName() << '\n';
-}
-
-
-
-
-PIC16TargetObjectFile::PIC16TargetObjectFile()
-  : ExternalVarDecls(0), ExternalVarDefs(0) {
-}
-
-const MCSectionPIC16 *PIC16TargetObjectFile::
-getPIC16Section(const char *Name, SectionKind Kind, int Address) const {
-  MCSectionPIC16 *&Entry = SectionsByName[Name];
-  if (Entry)
-    return Entry;
-
-  return Entry = MCSectionPIC16::Create(Name, Kind, Address, getContext());
-}
-
-
-void PIC16TargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &tm){
-  TargetLoweringObjectFile::Initialize(Ctx, tm);
-  TM = &tm;
-  
-  BSSSection = getPIC16Section("udata.# UDATA", SectionKind::getBSS());
-  ReadOnlySection = getPIC16Section("romdata.# ROMDATA", 
-                                    SectionKind::getReadOnly());
-  DataSection = getPIC16Section("idata.# IDATA", SectionKind::getDataRel());
-  
-  // Need because otherwise a .text symbol is emitted by DwarfWriter
-  // in BeginModule, and gpasm cribbs for that .text symbol.
-  TextSection = getPIC16Section("", SectionKind::getText());
-
-  ROSections.push_back(new PIC16Section((MCSectionPIC16*)ReadOnlySection));
-  
-  // FIXME: I don't know what the classification of these sections really is.
-  ExternalVarDecls = new PIC16Section(getPIC16Section("ExternalVarDecls",
-                                      SectionKind::getMetadata()));
-  ExternalVarDefs = new PIC16Section(getPIC16Section("ExternalVarDefs",
-                                      SectionKind::getMetadata()));
-}
-
-const MCSection *PIC16TargetObjectFile::
-getSectionForFunction(const std::string &FnName) const {
-  std::string T = PAN::getCodeSectionName(FnName);
-  return getPIC16Section(T.c_str(), SectionKind::getText());
-}
-
-
-const MCSection *PIC16TargetObjectFile::
-getSectionForFunctionFrame(const std::string &FnName) const {
-  std::string T = PAN::getFrameSectionName(FnName);
-  return getPIC16Section(T.c_str(), SectionKind::getDataRel());
-}
-
-const MCSection *
-PIC16TargetObjectFile::getBSSSectionForGlobal(const GlobalVariable *GV) const {
-  assert(GV->hasInitializer() && "This global doesn't need space");
-  Constant *C = GV->getInitializer();
-  assert(C->isNullValue() && "Unitialized globals has non-zero initializer");
-
-  // Find how much space this global needs.
-  const TargetData *TD = TM->getTargetData();
-  const Type *Ty = C->getType(); 
-  unsigned ValSize = TD->getTypeAllocSize(Ty);
- 
-  // Go through all BSS Sections and assign this variable
-  // to the first available section having enough space.
-  PIC16Section *FoundBSS = NULL;
-  for (unsigned i = 0; i < BSSSections.size(); i++) {
-    if (DataBankSize - BSSSections[i]->Size >= ValSize) {
-      FoundBSS = BSSSections[i];
-      break;
-    }
-  }
-
-  // No BSS section spacious enough was found. Crate a new one.
-  if (!FoundBSS) {
-    std::string name = PAN::getUdataSectionName(BSSSections.size());
-    const MCSectionPIC16 *NewSection
-      = getPIC16Section(name.c_str(), /*FIXME*/ SectionKind::getMetadata());
-
-    FoundBSS = new PIC16Section(NewSection);
-
-    // Add this newly created BSS section to the list of BSSSections.
-    BSSSections.push_back(FoundBSS);
-  }
-  
-  // Insert the GV into this BSS.
-  FoundBSS->Items.push_back(GV);
-  FoundBSS->Size += ValSize;
-  return FoundBSS->S_;
-} 
-
-const MCSection *
-PIC16TargetObjectFile::getIDATASectionForGlobal(const GlobalVariable *GV) const{
-  assert(GV->hasInitializer() && "This global doesn't need space");
-  Constant *C = GV->getInitializer();
-  assert(!C->isNullValue() && "initialized globals has zero initializer");
-  assert(GV->getType()->getAddressSpace() == PIC16ISD::RAM_SPACE &&
-         "can split initialized RAM data only");
-
-  // Find how much space this global needs.
-  const TargetData *TD = TM->getTargetData();
-  const Type *Ty = C->getType(); 
-  unsigned ValSize = TD->getTypeAllocSize(Ty);
- 
-  // Go through all IDATA Sections and assign this variable
-  // to the first available section having enough space.
-  PIC16Section *FoundIDATA = NULL;
-  for (unsigned i = 0; i < IDATASections.size(); i++) {
-    if (DataBankSize - IDATASections[i]->Size >= ValSize) {
-      FoundIDATA = IDATASections[i]; 
-      break;
-    }
-  }
-
-  // No IDATA section spacious enough was found. Crate a new one.
-  if (!FoundIDATA) {
-    std::string name = PAN::getIdataSectionName(IDATASections.size());
-    const MCSectionPIC16 *NewSection =
-      getPIC16Section(name.c_str(), /*FIXME*/ SectionKind::getMetadata());
-
-    FoundIDATA = new PIC16Section(NewSection);
-
-    // Add this newly created IDATA section to the list of IDATASections.
-    IDATASections.push_back(FoundIDATA);
-  }
-  
-  // Insert the GV into this IDATA.
-  FoundIDATA->Items.push_back(GV);
-  FoundIDATA->Size += ValSize;
-  return FoundIDATA->S_;
-} 
-
-// Get the section for an automatic variable of a function.
-// For PIC16 they are globals only with mangled names.
-const MCSection *
-PIC16TargetObjectFile::getSectionForAuto(const GlobalVariable *GV) const {
-
-  const std::string name = PAN::getSectionNameForSym(GV->getName());
-
-  // Go through all Auto Sections and assign this variable
-  // to the appropriate section.
-  PIC16Section *FoundAutoSec = NULL;
-  for (unsigned i = 0; i < AutosSections.size(); i++) {
-    if (AutosSections[i]->S_->getName() == name) {
-      FoundAutoSec = AutosSections[i];
-      break;
-    }
-  }
-
-  // No Auto section was found. Crate a new one.
-  if (!FoundAutoSec) {
-    const MCSectionPIC16 *NewSection =
-      getPIC16Section(name.c_str(), /*FIXME*/ SectionKind::getMetadata());
-
-    FoundAutoSec = new PIC16Section(NewSection);
-
-    // Add this newly created autos section to the list of AutosSections.
-    AutosSections.push_back(FoundAutoSec);
-  }
-
-  // Insert the auto into this section.
-  FoundAutoSec->Items.push_back(GV);
-
-  return FoundAutoSec->S_;
-}
-
-
-// Override default implementation to put the true globals into
-// multiple data sections if required.
-const MCSection *
-PIC16TargetObjectFile::SelectSectionForGlobal(const GlobalValue *GV1,
-                                              SectionKind Kind,
-                                              Mangler *Mang,
-                                              const TargetMachine &TM) const {
-  // We select the section based on the initializer here, so it really
-  // has to be a GlobalVariable.
-  const GlobalVariable *GV = dyn_cast<GlobalVariable>(GV1); 
-  if (!GV)
-    return TargetLoweringObjectFile::SelectSectionForGlobal(GV1, Kind, Mang,TM);
-
-  // Record External Var Decls.
-  if (GV->isDeclaration()) {
-    ExternalVarDecls->Items.push_back(GV);
-    return ExternalVarDecls->S_;
-  }
-    
-  assert(GV->hasInitializer() && "A def without initializer?");
-
-  // First, if this is an automatic variable for a function, get the section
-  // name for it and return.
-  std::string name = GV->getName();
-  if (PAN::isLocalName(name))
-    return getSectionForAuto(GV);
-
-  // Record Exteranl Var Defs.
-  if (GV->hasExternalLinkage() || GV->hasCommonLinkage())
-    ExternalVarDefs->Items.push_back(GV);
-
-  // See if this is an uninitialized global.
-  const Constant *C = GV->getInitializer();
-  if (C->isNullValue()) 
-    return getBSSSectionForGlobal(GV); 
-
-  // If this is initialized data in RAM. Put it in the correct IDATA section.
-  if (GV->getType()->getAddressSpace() == PIC16ISD::RAM_SPACE) 
-    return getIDATASectionForGlobal(GV);
-
-  // This is initialized data in rom, put it in the readonly section.
-  if (GV->getType()->getAddressSpace() == PIC16ISD::ROM_SPACE) 
-    return getROSectionForGlobal(GV);
-
-  // Else let the default implementation take care of it.
-  return TargetLoweringObjectFile::SelectSectionForGlobal(GV, Kind, Mang,TM);
-}
-
-PIC16TargetObjectFile::~PIC16TargetObjectFile() {
-  for (unsigned i = 0; i < BSSSections.size(); i++)
-    delete BSSSections[i]; 
-  for (unsigned i = 0; i < IDATASections.size(); i++)
-    delete IDATASections[i]; 
-  for (unsigned i = 0; i < AutosSections.size(); i++)
-    delete AutosSections[i]; 
-  for (unsigned i = 0; i < ROSections.size(); i++)
-    delete ROSections[i];
-  delete ExternalVarDecls;
-  delete ExternalVarDefs;
-}
-
-
-/// getSpecialCasedSectionGlobals - Allow the target to completely override
-/// section assignment of a global.
-const MCSection *PIC16TargetObjectFile::
-getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, 
-                         Mangler *Mang, const TargetMachine &TM) const {
-  assert(GV->hasSection());
-  
-  if (const GlobalVariable *GVar = cast<GlobalVariable>(GV)) {
-    std::string SectName = GVar->getSection();
-    // If address for a variable is specified, get the address and create
-    // section.
-    std::string AddrStr = "Address=";
-    if (SectName.compare(0, AddrStr.length(), AddrStr) == 0) {
-      std::string SectAddr = SectName.substr(AddrStr.length());
-      return CreateSectionForGlobal(GVar, Mang, SectAddr);
-    }
-     
-    // Create the section specified with section attribute. 
-    return CreateSectionForGlobal(GVar, Mang);
-  }
-
-  return getPIC16Section(GV->getSection().c_str(), Kind);
-}
-
-// Create a new section for global variable. If Addr is given then create
-// section at that address else create by name.
-const MCSection *
-PIC16TargetObjectFile::CreateSectionForGlobal(const GlobalVariable *GV,
-                                              Mangler *Mang,
-                                              const std::string &Addr) const {
-  // See if this is an uninitialized global.
-  const Constant *C = GV->getInitializer();
-  if (C->isNullValue())
-    return CreateBSSSectionForGlobal(GV, Addr);
-
-  // If this is initialized data in RAM. Put it in the correct IDATA section.
-  if (GV->getType()->getAddressSpace() == PIC16ISD::RAM_SPACE)
-    return CreateIDATASectionForGlobal(GV, Addr);
-
-  // This is initialized data in rom, put it in the readonly section.
-  if (GV->getType()->getAddressSpace() == PIC16ISD::ROM_SPACE) 
-    return CreateROSectionForGlobal(GV, Addr);
-
-  // Else let the default implementation take care of it.
-  return TargetLoweringObjectFile::SectionForGlobal(GV, Mang, *TM);
-}
-
-// Create uninitialized section for a variable.
-const MCSection *
-PIC16TargetObjectFile::CreateBSSSectionForGlobal(const GlobalVariable *GV,
-                                                 std::string Addr) const {
-  assert(GV->hasInitializer() && "This global doesn't need space");
-  assert(GV->getInitializer()->isNullValue() &&
-         "Unitialized global has non-zero initializer");
-  std::string Name;
-  // If address is given then create a section at that address else create a
-  // section by section name specified in GV.
-  PIC16Section *FoundBSS = NULL;
-  if (Addr.empty()) { 
-    Name = GV->getSection() + " UDATA";
-    for (unsigned i = 0; i < BSSSections.size(); i++) {
-      if (BSSSections[i]->S_->getName() == Name) {
-        FoundBSS = BSSSections[i];
-        break;
-      }
-    }
-  } else {
-    std::string Prefix = GV->getNameStr() + "." + Addr + ".";
-    Name = PAN::getUdataSectionName(BSSSections.size(), Prefix) + " " + Addr;
-  }
-  
-  PIC16Section *NewBSS = FoundBSS;
-  if (NewBSS == NULL) {
-    const MCSectionPIC16 *NewSection =
-      getPIC16Section(Name.c_str(), SectionKind::getBSS());
-    NewBSS = new PIC16Section(NewSection);
-    BSSSections.push_back(NewBSS);
-  }
-
-  // Insert the GV into this BSS.
-  NewBSS->Items.push_back(GV);
-
-  // We do not want to put any  GV without explicit section into this section
-  // so set its size to DatabankSize.
-  NewBSS->Size = DataBankSize;
-  return NewBSS->S_;
-}
-
-// Get rom section for a variable. Currently there can be only one rom section
-// unless a variable explicitly requests a section.
-const MCSection *
-PIC16TargetObjectFile::getROSectionForGlobal(const GlobalVariable *GV) const {
-  ROSections[0]->Items.push_back(GV);
-  return ROSections[0]->S_;
-}
-
-// Create initialized data section for a variable.
-const MCSection *
-PIC16TargetObjectFile::CreateIDATASectionForGlobal(const GlobalVariable *GV,
-                                                   std::string Addr) const {
-  assert(GV->hasInitializer() && "This global doesn't need space");
-  assert(!GV->getInitializer()->isNullValue() &&
-         "initialized global has zero initializer");
-  assert(GV->getType()->getAddressSpace() == PIC16ISD::RAM_SPACE &&
-         "can be used for initialized RAM data only");
-
-  std::string Name;
-  // If address is given then create a section at that address else create a
-  // section by section name specified in GV.
-  PIC16Section *FoundIDATASec = NULL;
-  if (Addr.empty()) {
-    Name = GV->getSection() + " IDATA";
-    for (unsigned i = 0; i < IDATASections.size(); i++) {
-      if (IDATASections[i]->S_->getName() == Name) {
-        FoundIDATASec = IDATASections[i];
-        break;
-      }
-    }
-  } else {
-    std::string Prefix = GV->getNameStr() + "." + Addr + ".";
-    Name = PAN::getIdataSectionName(IDATASections.size(), Prefix) + " " + Addr;
-  }
-
-  PIC16Section *NewIDATASec = FoundIDATASec;
-  if (NewIDATASec == NULL) {
-    const MCSectionPIC16 *NewSection =
-      getPIC16Section(Name.c_str(), /* FIXME */SectionKind::getMetadata());
-    NewIDATASec = new PIC16Section(NewSection);
-    IDATASections.push_back(NewIDATASec);
-  }
-  // Insert the GV into this IDATA Section.
-  NewIDATASec->Items.push_back(GV);
-  // We do not want to put any  GV without explicit section into this section 
-  // so set its size to DatabankSize.
-  NewIDATASec->Size = DataBankSize;
-  return NewIDATASec->S_;
-}
-
-// Create a section in rom for a variable.
-const MCSection *
-PIC16TargetObjectFile::CreateROSectionForGlobal(const GlobalVariable *GV,
-                                                std::string Addr) const {
-  assert(GV->getType()->getAddressSpace() == PIC16ISD::ROM_SPACE &&
-         "can be used for ROM data only");
-
-  std::string Name;
-  // If address is given then create a section at that address else create a
-  // section by section name specified in GV.
-  PIC16Section *FoundROSec = NULL;
-  if (Addr.empty()) {
-    Name = GV->getSection() + " ROMDATA";
-    for (unsigned i = 1; i < ROSections.size(); i++) {
-      if (ROSections[i]->S_->getName() == Name) {
-        FoundROSec = ROSections[i];
-        break;
-      }
-    }
-  } else {
-    std::string Prefix = GV->getNameStr() + "." + Addr + ".";
-    Name = PAN::getRomdataSectionName(ROSections.size(), Prefix) + " " + Addr;
-  }
-
-  PIC16Section *NewRomSec = FoundROSec;
-  if (NewRomSec == NULL) {
-    const MCSectionPIC16 *NewSection =
-      getPIC16Section(Name.c_str(), SectionKind::getReadOnly());
-    NewRomSec = new PIC16Section(NewSection);
-    ROSections.push_back(NewRomSec);
-  }
-
-  // Insert the GV into this ROM Section.
-  NewRomSec->Items.push_back(GV);
-  return NewRomSec->S_;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.h b/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.h
deleted file mode 100644
index 3589780..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.h
+++ /dev/null
@@ -1,119 +0,0 @@
-//===-- PIC16TargetObjectFile.h - PIC16 Object Info -------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_PIC16_TARGETOBJECTFILE_H
-#define LLVM_TARGET_PIC16_TARGETOBJECTFILE_H
-
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/ADT/StringMap.h"
-#include <vector>
-#include <string>
-
-namespace llvm {
-  class GlobalVariable;
-  class Module;
-  class PIC16TargetMachine;
-  class MCSectionPIC16;
-  
-  enum { DataBankSize = 80 };
-
-  /// PIC16 Splits the global data into mulitple udata and idata sections.
-  /// Each udata and idata section needs to contain a list of globals that
-  /// they contain, in order to avoid scanning over all the global values 
-  /// again and printing only those that match the current section. 
-  /// Keeping values inside the sections make printing a section much easier.
-  ///
-  /// FIXME: MOVE ALL THIS STUFF TO MCSectionPIC16.
-  ///
-  struct PIC16Section {
-    const MCSectionPIC16 *S_; // Connection to actual Section.
-    unsigned Size;  // Total size of the objects contained.
-    bool SectionPrinted;
-    std::vector<const GlobalVariable*> Items;
-    
-    PIC16Section(const MCSectionPIC16 *s) {
-      S_ = s;
-      Size = 0;
-      SectionPrinted = false;
-    }
-    bool isPrinted() const { return SectionPrinted; }
-    void setPrintedStatus(bool status) { SectionPrinted = status; } 
-  };
-  
-  class PIC16TargetObjectFile : public TargetLoweringObjectFile {
-    /// SectionsByName - Bindings of names to allocated sections.
-    mutable StringMap<MCSectionPIC16*> SectionsByName;
-
-    const TargetMachine *TM;
-    
-    const MCSectionPIC16 *getPIC16Section(const char *Name,
-                                          SectionKind K, 
-                                          int Address = -1) const;
-  public:
-    mutable std::vector<PIC16Section*> BSSSections;
-    mutable std::vector<PIC16Section*> IDATASections;
-    mutable std::vector<PIC16Section*> AutosSections;
-    mutable std::vector<PIC16Section*> ROSections;
-    mutable PIC16Section *ExternalVarDecls;
-    mutable PIC16Section *ExternalVarDefs;
-
-    PIC16TargetObjectFile();
-    ~PIC16TargetObjectFile();
-    
-    void Initialize(MCContext &Ctx, const TargetMachine &TM);
-
-    
-    virtual const MCSection *
-    getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, 
-                             Mangler *Mang, const TargetMachine &TM) const;
-    
-    virtual const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
-                                                    SectionKind Kind,
-                                                    Mangler *Mang,
-                                                    const TargetMachine&) const;
-
-    const MCSection *getSectionForFunction(const std::string &FnName) const;
-    const MCSection *getSectionForFunctionFrame(const std::string &FnName)const;
-    
-    
-  private:
-    std::string getSectionNameForSym(const std::string &Sym) const;
-
-    const MCSection *getBSSSectionForGlobal(const GlobalVariable *GV) const;
-    const MCSection *getIDATASectionForGlobal(const GlobalVariable *GV) const;
-    const MCSection *getSectionForAuto(const GlobalVariable *GV) const;
-    const MCSection *CreateBSSSectionForGlobal(const GlobalVariable *GV,
-                                               std::string Addr = "") const;
-    const MCSection *CreateIDATASectionForGlobal(const GlobalVariable *GV,
-                                                 std::string Addr = "") const;
-    const MCSection *getROSectionForGlobal(const GlobalVariable *GV) const;
-    const MCSection *CreateROSectionForGlobal(const GlobalVariable *GV,
-                                              std::string Addr = "") const;
-    const MCSection *CreateSectionForGlobal(const GlobalVariable *GV,
-                                            Mangler *Mang,
-                                            const std::string &Addr = "") const;
-  public:
-    void SetSectionForGVs(Module &M);
-    const std::vector<PIC16Section*> &getBSSSections() const {
-      return BSSSections;
-    }
-    const std::vector<PIC16Section*> &getIDATASections() const {
-      return IDATASections;
-    }
-    const std::vector<PIC16Section*> &getAutosSections() const {
-      return AutosSections;
-    }
-    const std::vector<PIC16Section*> &getROSections() const {
-      return ROSections;
-    }
-    
-  };
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/CMakeLists.txt
deleted file mode 100644
index bfc6ff4..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMPIC16Info
-  PIC16TargetInfo.cpp
-  )
-
-add_dependencies(LLVMPIC16Info PIC16Table_gen)
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/Makefile
deleted file mode 100644
index 76609f6..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/PIC16/TargetInfo/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMPIC16Info
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp b/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp
deleted file mode 100644
index 46cc819..0000000
--- a/libclamav/c++/llvm/lib/Target/PIC16/TargetInfo/PIC16TargetInfo.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//===-- PIC16TargetInfo.cpp - PIC16 Target Implementation -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "PIC16.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::ThePIC16Target, llvm::TheCooperTarget;
-
-extern "C" void LLVMInitializePIC16TargetInfo() { 
-  RegisterTarget<> X(ThePIC16Target, "pic16", "PIC16 14-bit [experimental]");
-
-  RegisterTarget<> Y(TheCooperTarget, "cooper", "PIC16 Cooper [experimental]");
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index e3ca18e..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMSparcAsmPrinter
-  SparcAsmPrinter.cpp
-  )
-add_dependencies(LLVMSparcAsmPrinter SparcCodeGenTable_gen)
\ No newline at end of file
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/Makefile
deleted file mode 100644
index a856828..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/Sparc/AsmPrinter/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMSparcAsmPrinter
-
-# Hack: we need to include 'main' Sparc target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
deleted file mode 100644
index b94b718..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-//===-- SparcAsmPrinter.cpp - Sparc LLVM assembly writer ------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to GAS-format SPARC assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "asm-printer"
-#include "Sparc.h"
-#include "SparcInstrInfo.h"
-#include "SparcTargetMachine.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/MathExtras.h"
-#include <cctype>
-#include <cstring>
-#include <map>
-using namespace llvm;
-
-STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-namespace {
-  class VISIBILITY_HIDDEN SparcAsmPrinter : public AsmPrinter {
-    /// We name each basic block in a Function with a unique number, so
-    /// that we can consistently refer to them later. This is cleared
-    /// at the beginning of each call to runOnMachineFunction().
-    ///
-    typedef std::map<const Value *, unsigned> ValueMapTy;
-    ValueMapTy NumberForBB;
-    unsigned BBNumber;
-  public:
-    explicit SparcAsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                             const MCAsmInfo *T, bool V)
-      : AsmPrinter(O, TM, T, V), BBNumber(0) {}
-
-    virtual const char *getPassName() const {
-      return "Sparc Assembly Printer";
-    }
-
-    void PrintGlobalVariable(const GlobalVariable *GVar);
-    void printOperand(const MachineInstr *MI, int opNum);
-    void printMemOperand(const MachineInstr *MI, int opNum,
-                         const char *Modifier = 0);
-    void printCCOperand(const MachineInstr *MI, int opNum);
-
-    void printInstruction(const MachineInstr *MI);  // autogenerated.
-    bool runOnMachineFunction(MachineFunction &F);
-    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                       unsigned AsmVariant, const char *ExtraCode);
-    bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
-                             unsigned AsmVariant, const char *ExtraCode);
-  };
-} // end of anonymous namespace
-
-#include "SparcGenAsmWriter.inc"
-
-
-/// runOnMachineFunction - This uses the printInstruction()
-/// method to print assembly for each instruction.
-///
-bool SparcAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
-  this->MF = &MF;
-
-  SetupMachineFunction(MF);
-
-  // Print out constants referenced by the function
-  EmitConstantPool(MF.getConstantPool());
-
-  // BBNumber is used here so that a given Printer will never give two
-  // BBs the same name. (If you have a better way, please let me know!)
-
-  O << "\n\n";
-
-  // Print out the label for the function.
-  const Function *F = MF.getFunction();
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-  EmitAlignment(MF.getAlignment(), F);
-  O << "\t.globl\t" << CurrentFnName << '\n';
-
-  printVisibility(CurrentFnName, F->getVisibility());
-
-  O << "\t.type\t" << CurrentFnName << ", #function\n";
-  O << CurrentFnName << ":\n";
-
-  // Number each basic block so that we can consistently refer to them
-  // in PC-relative references.
-  // FIXME: Why not use the MBB numbers?
-  NumberForBB.clear();
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    NumberForBB[I->getBasicBlock()] = BBNumber++;
-  }
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    // Print a label for the basic block.
-    if (I != MF.begin()) {
-      printBasicBlockLabel(I, true, true);
-      O << '\n';
-    }
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-      // Print the assembly for the instruction.
-      printInstruction(II);
-      ++EmittedInsts;
-    }
-  }
-
-  // We didn't modify anything.
-  return false;
-}
-
-void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
-  const MachineOperand &MO = MI->getOperand (opNum);
-  const TargetRegisterInfo &RI = *TM.getRegisterInfo();
-  bool CloseParen = false;
-  if (MI->getOpcode() == SP::SETHIi && !MO.isReg() && !MO.isImm()) {
-    O << "%hi(";
-    CloseParen = true;
-  } else if ((MI->getOpcode() == SP::ORri || MI->getOpcode() == SP::ADDri) &&
-             !MO.isReg() && !MO.isImm()) {
-    O << "%lo(";
-    CloseParen = true;
-  }
-  switch (MO.getType()) {
-  case MachineOperand::MO_Register:
-    if (TargetRegisterInfo::isPhysicalRegister(MO.getReg()))
-      O << "%" << LowercaseString (RI.get(MO.getReg()).AsmName);
-    else
-      O << "%reg" << MO.getReg();
-    break;
-
-  case MachineOperand::MO_Immediate:
-    O << (int)MO.getImm();
-    break;
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB());
-    return;
-  case MachineOperand::MO_GlobalAddress:
-    O << Mang->getMangledName(MO.getGlobal());
-    break;
-  case MachineOperand::MO_ExternalSymbol:
-    O << MO.getSymbolName();
-    break;
-  case MachineOperand::MO_ConstantPoolIndex:
-    O << MAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << "_"
-      << MO.getIndex();
-    break;
-  default:
-    llvm_unreachable("<unknown operand type>");
-  }
-  if (CloseParen) O << ")";
-}
-
-void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,
-                                      const char *Modifier) {
-  printOperand(MI, opNum);
-
-  // If this is an ADD operand, emit it like normal operands.
-  if (Modifier && !strcmp(Modifier, "arith")) {
-    O << ", ";
-    printOperand(MI, opNum+1);
-    return;
-  }
-
-  if (MI->getOperand(opNum+1).isReg() &&
-      MI->getOperand(opNum+1).getReg() == SP::G0)
-    return;   // don't print "+%g0"
-  if (MI->getOperand(opNum+1).isImm() &&
-      MI->getOperand(opNum+1).getImm() == 0)
-    return;   // don't print "+0"
-
-  O << "+";
-  if (MI->getOperand(opNum+1).isGlobal() ||
-      MI->getOperand(opNum+1).isCPI()) {
-    O << "%lo(";
-    printOperand(MI, opNum+1);
-    O << ")";
-  } else {
-    printOperand(MI, opNum+1);
-  }
-}
-
-void SparcAsmPrinter::printCCOperand(const MachineInstr *MI, int opNum) {
-  int CC = (int)MI->getOperand(opNum).getImm();
-  O << SPARCCondCodeToString((SPCC::CondCodes)CC);
-}
-
-void SparcAsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) {
-  const TargetData *TD = TM.getTargetData();
-
-  if (!GVar->hasInitializer())
-    return;  // External global require no code
-
-  // Check to see if this is a special global used by LLVM, if so, emit it.
-  if (EmitSpecialLLVMGlobal(GVar))
-    return;
-
-  O << "\n\n";
-  std::string name = Mang->getMangledName(GVar);
-  Constant *C = GVar->getInitializer();
-  unsigned Size = TD->getTypeAllocSize(C->getType());
-  unsigned Align = TD->getPreferredAlignment(GVar);
-
-  printVisibility(name, GVar->getVisibility());
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(GVar, Mang,
-                                                                  TM));
-
-  if (C->isNullValue() && !GVar->hasSection()) {
-    if (!GVar->isThreadLocal() &&
-        (GVar->hasLocalLinkage() || GVar->isWeakForLinker())) {
-      if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
-
-      if (GVar->hasLocalLinkage())
-        O << "\t.local " << name << '\n';
-
-      O << MAI->getCOMMDirective() << name << ',' << Size;
-      if (MAI->getCOMMDirectiveTakesAlignment())
-        O << ',' << (1 << Align);
-
-      O << '\n';
-      return;
-    }
-  }
-
-  switch (GVar->getLinkage()) {
-   case GlobalValue::CommonLinkage:
-   case GlobalValue::LinkOnceAnyLinkage:
-   case GlobalValue::LinkOnceODRLinkage:
-   case GlobalValue::WeakAnyLinkage: // FIXME: Verify correct for weak.
-   case GlobalValue::WeakODRLinkage: // FIXME: Verify correct for weak.
-    // Nonnull linkonce -> weak
-    O << "\t.weak " << name << '\n';
-    break;
-   case GlobalValue::AppendingLinkage:
-    // FIXME: appending linkage variables should go into a section of
-    // their name or something.  For now, just emit them as external.
-   case GlobalValue::ExternalLinkage:
-    // If external or appending, declare as a global symbol
-    O << MAI->getGlobalDirective() << name << '\n';
-    // FALL THROUGH
-   case GlobalValue::PrivateLinkage:
-   case GlobalValue::LinkerPrivateLinkage:
-   case GlobalValue::InternalLinkage:
-    break;
-   case GlobalValue::GhostLinkage:
-    llvm_unreachable("Should not have any unmaterialized functions!");
-   case GlobalValue::DLLImportLinkage:
-    llvm_unreachable("DLLImport linkage is not supported by this target!");
-   case GlobalValue::DLLExportLinkage:
-    llvm_unreachable("DLLExport linkage is not supported by this target!");
-   default:
-    llvm_unreachable("Unknown linkage type!");
-  }
-
-  EmitAlignment(Align, GVar);
-
-  if (MAI->hasDotTypeDotSizeDirective()) {
-    O << "\t.type " << name << ",#object\n";
-    O << "\t.size " << name << ',' << Size << '\n';
-  }
-
-  O << name << ":\n";
-  EmitGlobalConstant(C);
-}
-
-/// PrintAsmOperand - Print out an operand for an inline asm expression.
-///
-bool SparcAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                                      unsigned AsmVariant,
-                                      const char *ExtraCode) {
-  if (ExtraCode && ExtraCode[0]) {
-    if (ExtraCode[1] != 0) return true; // Unknown modifier.
-
-    switch (ExtraCode[0]) {
-    default: return true;  // Unknown modifier.
-    case 'r':
-     break;
-    }
-  }
-
-  printOperand(MI, OpNo);
-
-  return false;
-}
-
-bool SparcAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
-                                            unsigned OpNo,
-                                            unsigned AsmVariant,
-                                            const char *ExtraCode) {
-  if (ExtraCode && ExtraCode[0])
-    return true;  // Unknown modifier
-
-  O << '[';
-  printMemOperand(MI, OpNo);
-  O << ']';
-
-  return false;
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeSparcAsmPrinter() { 
-  RegisterAsmPrinter<SparcAsmPrinter> X(TheSparcTarget);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Sparc/CMakeLists.txt
deleted file mode 100644
index 74f320a..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS Sparc.td)
-
-tablegen(SparcGenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(SparcGenRegisterNames.inc -gen-register-enums)
-tablegen(SparcGenRegisterInfo.inc -gen-register-desc)
-tablegen(SparcGenInstrNames.inc -gen-instr-enums)
-tablegen(SparcGenInstrInfo.inc -gen-instr-desc)
-tablegen(SparcGenAsmWriter.inc -gen-asm-writer)
-tablegen(SparcGenDAGISel.inc -gen-dag-isel)
-tablegen(SparcGenSubtarget.inc -gen-subtarget)
-tablegen(SparcGenCallingConv.inc -gen-callingconv)
-
-add_llvm_target(SparcCodeGen
-  DelaySlotFiller.cpp
-  FPMover.cpp
-  SparcInstrInfo.cpp
-  SparcISelDAGToDAG.cpp
-  SparcISelLowering.cpp
-  SparcMCAsmInfo.cpp
-  SparcRegisterInfo.cpp
-  SparcSubtarget.cpp
-  SparcTargetMachine.cpp
-  )
-
-target_link_libraries (LLVMSparcCodeGen LLVMSelectionDAG)
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/DelaySlotFiller.cpp b/libclamav/c++/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
deleted file mode 100644
index 15b26c2..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//===-- DelaySlotFiller.cpp - SPARC delay slot filler ---------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a simple local pass that fills delay slots with NOPs.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "delayslotfiller"
-#include "Sparc.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/ADT/Statistic.h"
-using namespace llvm;
-
-STATISTIC(FilledSlots, "Number of delay slots filled");
-
-namespace {
-  struct Filler : public MachineFunctionPass {
-    /// Target machine description which we query for reg. names, data
-    /// layout, etc.
-    ///
-    TargetMachine &TM;
-    const TargetInstrInfo *TII;
-
-    static char ID;
-    Filler(TargetMachine &tm) 
-      : MachineFunctionPass(&ID), TM(tm), TII(tm.getInstrInfo()) { }
-
-    virtual const char *getPassName() const {
-      return "SPARC Delay Slot Filler";
-    }
-
-    bool runOnMachineBasicBlock(MachineBasicBlock &MBB);
-    bool runOnMachineFunction(MachineFunction &F) {
-      bool Changed = false;
-      for (MachineFunction::iterator FI = F.begin(), FE = F.end();
-           FI != FE; ++FI)
-        Changed |= runOnMachineBasicBlock(*FI);
-      return Changed;
-    }
-
-  };
-  char Filler::ID = 0;
-} // end of anonymous namespace
-
-/// createSparcDelaySlotFillerPass - Returns a pass that fills in delay
-/// slots in Sparc MachineFunctions
-///
-FunctionPass *llvm::createSparcDelaySlotFillerPass(TargetMachine &tm) {
-  return new Filler(tm);
-}
-
-/// runOnMachineBasicBlock - Fill in delay slots for the given basic block.
-/// Currently, we fill delay slots with NOPs. We assume there is only one
-/// delay slot per delayed instruction.
-///
-bool Filler::runOnMachineBasicBlock(MachineBasicBlock &MBB) {
-  bool Changed = false;
-  for (MachineBasicBlock::iterator I = MBB.begin(); I != MBB.end(); ++I)
-    if (I->getDesc().hasDelaySlot()) {
-      MachineBasicBlock::iterator J = I;
-      ++J;
-      BuildMI(MBB, J, DebugLoc::getUnknownLoc(), TII->get(SP::NOP));
-      ++FilledSlots;
-      Changed = true;
-    }
-  return Changed;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/FPMover.cpp b/libclamav/c++/llvm/lib/Target/Sparc/FPMover.cpp
deleted file mode 100644
index 88b0927..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/FPMover.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//===-- FPMover.cpp - Sparc double-precision floating point move fixer ----===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Expand FpMOVD/FpABSD/FpNEGD instructions into their single-precision pieces.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "fpmover"
-#include "Sparc.h"
-#include "SparcSubtarget.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-STATISTIC(NumFpDs , "Number of instructions translated");
-STATISTIC(NoopFpDs, "Number of noop instructions removed");
-
-namespace {
-  struct FPMover : public MachineFunctionPass {
-    /// Target machine description which we query for reg. names, data
-    /// layout, etc.
-    ///
-    TargetMachine &TM;
-    
-    static char ID;
-    explicit FPMover(TargetMachine &tm) 
-      : MachineFunctionPass(&ID), TM(tm) { }
-
-    virtual const char *getPassName() const {
-      return "Sparc Double-FP Move Fixer";
-    }
-
-    bool runOnMachineBasicBlock(MachineBasicBlock &MBB);
-    bool runOnMachineFunction(MachineFunction &F);
-  };
-  char FPMover::ID = 0;
-} // end of anonymous namespace
-
-/// createSparcFPMoverPass - Returns a pass that turns FpMOVD
-/// instructions into FMOVS instructions
-///
-FunctionPass *llvm::createSparcFPMoverPass(TargetMachine &tm) {
-  return new FPMover(tm);
-}
-
-/// getDoubleRegPair - Given a DFP register, return the even and odd FP
-/// registers that correspond to it.
-static void getDoubleRegPair(unsigned DoubleReg, unsigned &EvenReg,
-                             unsigned &OddReg) {
-  static const unsigned EvenHalvesOfPairs[] = {
-    SP::F0, SP::F2, SP::F4, SP::F6, SP::F8, SP::F10, SP::F12, SP::F14,
-    SP::F16, SP::F18, SP::F20, SP::F22, SP::F24, SP::F26, SP::F28, SP::F30
-  };
-  static const unsigned OddHalvesOfPairs[] = {
-    SP::F1, SP::F3, SP::F5, SP::F7, SP::F9, SP::F11, SP::F13, SP::F15,
-    SP::F17, SP::F19, SP::F21, SP::F23, SP::F25, SP::F27, SP::F29, SP::F31
-  };
-  static const unsigned DoubleRegsInOrder[] = {
-    SP::D0, SP::D1, SP::D2, SP::D3, SP::D4, SP::D5, SP::D6, SP::D7, SP::D8,
-    SP::D9, SP::D10, SP::D11, SP::D12, SP::D13, SP::D14, SP::D15
-  };
-  for (unsigned i = 0; i < sizeof(DoubleRegsInOrder)/sizeof(unsigned); ++i)
-    if (DoubleRegsInOrder[i] == DoubleReg) {
-      EvenReg = EvenHalvesOfPairs[i];
-      OddReg = OddHalvesOfPairs[i];
-      return;
-    }
-  llvm_unreachable("Can't find reg");
-}
-
-/// runOnMachineBasicBlock - Fixup FpMOVD instructions in this MBB.
-///
-bool FPMover::runOnMachineBasicBlock(MachineBasicBlock &MBB) {
-  bool Changed = false;
-  for (MachineBasicBlock::iterator I = MBB.begin(); I != MBB.end(); ) {
-    MachineInstr *MI = I++;
-    DebugLoc dl = MI->getDebugLoc();
-    if (MI->getOpcode() == SP::FpMOVD || MI->getOpcode() == SP::FpABSD ||
-        MI->getOpcode() == SP::FpNEGD) {
-      Changed = true;
-      unsigned DestDReg = MI->getOperand(0).getReg();
-      unsigned SrcDReg  = MI->getOperand(1).getReg();
-      if (DestDReg == SrcDReg && MI->getOpcode() == SP::FpMOVD) {
-        MBB.erase(MI);   // Eliminate the noop copy.
-        ++NoopFpDs;
-        continue;
-      }
-      
-      unsigned EvenSrcReg = 0, OddSrcReg = 0, EvenDestReg = 0, OddDestReg = 0;
-      getDoubleRegPair(DestDReg, EvenDestReg, OddDestReg);
-      getDoubleRegPair(SrcDReg, EvenSrcReg, OddSrcReg);
-
-      const TargetInstrInfo *TII = TM.getInstrInfo();
-      if (MI->getOpcode() == SP::FpMOVD)
-        MI->setDesc(TII->get(SP::FMOVS));
-      else if (MI->getOpcode() == SP::FpNEGD)
-        MI->setDesc(TII->get(SP::FNEGS));
-      else if (MI->getOpcode() == SP::FpABSD)
-        MI->setDesc(TII->get(SP::FABSS));
-      else
-        llvm_unreachable("Unknown opcode!");
-        
-      MI->getOperand(0).setReg(EvenDestReg);
-      MI->getOperand(1).setReg(EvenSrcReg);
-      DEBUG(errs() << "FPMover: the modified instr is: " << *MI);
-      // Insert copy for the other half of the double.
-      if (DestDReg != SrcDReg) {
-        MI = BuildMI(MBB, I, dl, TM.getInstrInfo()->get(SP::FMOVS), OddDestReg)
-          .addReg(OddSrcReg);
-        DEBUG(errs() << "FPMover: the inserted instr is: " << *MI);
-      }
-      ++NumFpDs;
-    }
-  }
-  return Changed;
-}
-
-bool FPMover::runOnMachineFunction(MachineFunction &F) {
-  // If the target has V9 instructions, the fp-mover pseudos will never be
-  // emitted.  Avoid a scan of the instructions to improve compile time.
-  if (TM.getSubtarget<SparcSubtarget>().isV9())
-    return false;
-  
-  bool Changed = false;
-  for (MachineFunction::iterator FI = F.begin(), FE = F.end();
-       FI != FE; ++FI)
-    Changed |= runOnMachineBasicBlock(*FI);
-  return Changed;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/Makefile b/libclamav/c++/llvm/lib/Target/Sparc/Makefile
deleted file mode 100644
index 6714b4d..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-##===- lib/Target/Sparc/Makefile ---------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMSparcCodeGen
-TARGET = Sparc
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = SparcGenRegisterInfo.h.inc SparcGenRegisterNames.inc \
-                SparcGenRegisterInfo.inc SparcGenInstrNames.inc \
-                SparcGenInstrInfo.inc SparcGenAsmWriter.inc \
-                SparcGenDAGISel.inc SparcGenSubtarget.inc SparcGenCallingConv.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/README.txt b/libclamav/c++/llvm/lib/Target/Sparc/README.txt
deleted file mode 100644
index cc24abf..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/README.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-
-To-do
------
-
-* Keep the address of the constant pool in a register instead of forming its
-  address all of the time.
-* We can fold small constant offsets into the %hi/%lo references to constant
-  pool addresses as well.
-* When in V9 mode, register allocate %icc[0-3].
-* Add support for isel'ing UMUL_LOHI instead of marking it as Expand.
-* Emit the 'Branch on Integer Register with Prediction' instructions.  It's
-  not clear how to write a pattern for this though:
-
-float %t1(int %a, int* %p) {
-        %C = seteq int %a, 0
-        br bool %C, label %T, label %F
-T:
-        store int 123, int* %p
-        br label %F
-F:
-        ret float undef
-}
-
-codegens to this:
-
-t1:
-        save -96, %o6, %o6
-1)      subcc %i0, 0, %l0
-1)      bne .LBBt1_2    ! F
-        nop
-.LBBt1_1:       ! T
-        or %g0, 123, %l0
-        st %l0, [%i1]
-.LBBt1_2:       ! F
-        restore %g0, %g0, %g0
-        retl
-        nop
-
-1) should be replaced with a brz in V9 mode.
-
-* Same as above, but emit conditional move on register zero (p192) in V9 
-  mode.  Testcase:
-
-int %t1(int %a, int %b) {
-        %C = seteq int %a, 0
-        %D = select bool %C, int %a, int %b
-        ret int %D
-}
-
-* Emit MULX/[SU]DIVX instructions in V9 mode instead of fiddling 
-  with the Y register, if they are faster.
-
-* Codegen bswap(load)/store(bswap) -> load/store ASI
-
-* Implement frame pointer elimination, e.g. eliminate save/restore for 
-  leaf fns.
-* Fill delay slots
-
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/Sparc.h b/libclamav/c++/llvm/lib/Target/Sparc/Sparc.h
deleted file mode 100644
index bb5155e..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/Sparc.h
+++ /dev/null
@@ -1,120 +0,0 @@
-//===-- Sparc.h - Top-level interface for Sparc representation --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in the LLVM
-// Sparc back-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TARGET_SPARC_H
-#define TARGET_SPARC_H
-
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Target/TargetMachine.h"
-#include <cassert>
-
-namespace llvm {
-  class FunctionPass;
-  class SparcTargetMachine;
-  class formatted_raw_ostream;
-
-  FunctionPass *createSparcISelDag(SparcTargetMachine &TM);
-  FunctionPass *createSparcDelaySlotFillerPass(TargetMachine &TM);
-  FunctionPass *createSparcFPMoverPass(TargetMachine &TM);
-
-  extern Target TheSparcTarget;
-
-} // end namespace llvm;
-
-// Defines symbolic names for Sparc registers.  This defines a mapping from
-// register name to register number.
-//
-#include "SparcGenRegisterNames.inc"
-
-// Defines symbolic names for the Sparc instructions.
-//
-#include "SparcGenInstrNames.inc"
-
-
-namespace llvm {
-  // Enums corresponding to Sparc condition codes, both icc's and fcc's.  These
-  // values must be kept in sync with the ones in the .td file.
-  namespace SPCC {
-    enum CondCodes {
-      //ICC_A   =  8   ,  // Always
-      //ICC_N   =  0   ,  // Never
-      ICC_NE  =  9   ,  // Not Equal
-      ICC_E   =  1   ,  // Equal
-      ICC_G   = 10   ,  // Greater
-      ICC_LE  =  2   ,  // Less or Equal
-      ICC_GE  = 11   ,  // Greater or Equal
-      ICC_L   =  3   ,  // Less
-      ICC_GU  = 12   ,  // Greater Unsigned
-      ICC_LEU =  4   ,  // Less or Equal Unsigned
-      ICC_CC  = 13   ,  // Carry Clear/Great or Equal Unsigned
-      ICC_CS  =  5   ,  // Carry Set/Less Unsigned
-      ICC_POS = 14   ,  // Positive
-      ICC_NEG =  6   ,  // Negative
-      ICC_VC  = 15   ,  // Overflow Clear
-      ICC_VS  =  7   ,  // Overflow Set
-      
-      //FCC_A   =  8+16,  // Always
-      //FCC_N   =  0+16,  // Never
-      FCC_U   =  7+16,  // Unordered
-      FCC_G   =  6+16,  // Greater
-      FCC_UG  =  5+16,  // Unordered or Greater
-      FCC_L   =  4+16,  // Less
-      FCC_UL  =  3+16,  // Unordered or Less
-      FCC_LG  =  2+16,  // Less or Greater
-      FCC_NE  =  1+16,  // Not Equal
-      FCC_E   =  9+16,  // Equal
-      FCC_UE  = 10+16,  // Unordered or Equal
-      FCC_GE  = 11+16,  // Greater or Equal
-      FCC_UGE = 12+16,  // Unordered or Greater or Equal
-      FCC_LE  = 13+16,  // Less or Equal
-      FCC_ULE = 14+16,  // Unordered or Less or Equal
-      FCC_O   = 15+16   // Ordered
-    };
-  }
-  
-  inline static const char *SPARCCondCodeToString(SPCC::CondCodes CC) {
-    switch (CC) {
-    default: llvm_unreachable("Unknown condition code");
-    case SPCC::ICC_NE:  return "ne";
-    case SPCC::ICC_E:   return "e";
-    case SPCC::ICC_G:   return "g";
-    case SPCC::ICC_LE:  return "le";
-    case SPCC::ICC_GE:  return "ge";
-    case SPCC::ICC_L:   return "l";
-    case SPCC::ICC_GU:  return "gu";
-    case SPCC::ICC_LEU: return "leu";
-    case SPCC::ICC_CC:  return "cc";
-    case SPCC::ICC_CS:  return "cs";
-    case SPCC::ICC_POS: return "pos";
-    case SPCC::ICC_NEG: return "neg";
-    case SPCC::ICC_VC:  return "vc";
-    case SPCC::ICC_VS:  return "vs";
-    case SPCC::FCC_U:   return "u";
-    case SPCC::FCC_G:   return "g";
-    case SPCC::FCC_UG:  return "ug";
-    case SPCC::FCC_L:   return "l";
-    case SPCC::FCC_UL:  return "ul";
-    case SPCC::FCC_LG:  return "lg";
-    case SPCC::FCC_NE:  return "ne";
-    case SPCC::FCC_E:   return "e";
-    case SPCC::FCC_UE:  return "ue";
-    case SPCC::FCC_GE:  return "ge";
-    case SPCC::FCC_UGE: return "uge";
-    case SPCC::FCC_LE:  return "le";
-    case SPCC::FCC_ULE: return "ule";
-    case SPCC::FCC_O:   return "o";
-    }       
-  }
-}  // end namespace llvm
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/Sparc.td b/libclamav/c++/llvm/lib/Target/Sparc/Sparc.td
deleted file mode 100644
index 53ea8f4..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/Sparc.td
+++ /dev/null
@@ -1,76 +0,0 @@
-//===- Sparc.td - Describe the Sparc Target Machine -------------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Target-independent interfaces which we are implementing
-//===----------------------------------------------------------------------===//
-
-include "llvm/Target/Target.td"
-
-//===----------------------------------------------------------------------===//
-// SPARC Subtarget features.
-//
- 
-def FeatureV9
-  : SubtargetFeature<"v9", "IsV9", "true",
-                     "Enable SPARC-V9 instructions">;
-def FeatureV8Deprecated
-  : SubtargetFeature<"deprecated-v8", "V8DeprecatedInsts", "true",
-                     "Enable deprecated V8 instructions in V9 mode">;
-def FeatureVIS
-  : SubtargetFeature<"vis", "IsVIS", "true",
-                     "Enable UltraSPARC Visual Instruction Set extensions">;
-
-//===----------------------------------------------------------------------===//
-// Register File, Calling Conv, Instruction Descriptions
-//===----------------------------------------------------------------------===//
-
-include "SparcRegisterInfo.td"
-include "SparcCallingConv.td"
-include "SparcInstrInfo.td"
-
-def SparcInstrInfo : InstrInfo {
-  // Define how we want to layout our target-specific information field.
-  let TSFlagsFields = [];
-  let TSFlagsShifts = [];
-}
-
-//===----------------------------------------------------------------------===//
-// SPARC processors supported.
-//===----------------------------------------------------------------------===//
-
-class Proc<string Name, list<SubtargetFeature> Features>
- : Processor<Name, NoItineraries, Features>;
-
-def : Proc<"generic",         []>;
-def : Proc<"v8",              []>;
-def : Proc<"supersparc",      []>;
-def : Proc<"sparclite",       []>;
-def : Proc<"f934",            []>;
-def : Proc<"hypersparc",      []>;
-def : Proc<"sparclite86x",    []>;
-def : Proc<"sparclet",        []>;
-def : Proc<"tsc701",          []>;
-def : Proc<"v9",              [FeatureV9]>;
-def : Proc<"ultrasparc",      [FeatureV9, FeatureV8Deprecated]>;
-def : Proc<"ultrasparc3",     [FeatureV9, FeatureV8Deprecated]>;
-def : Proc<"ultrasparc3-vis", [FeatureV9, FeatureV8Deprecated, FeatureVIS]>;
-
-
-//===----------------------------------------------------------------------===//
-// Declare the target which we are implementing
-//===----------------------------------------------------------------------===//
-
-def Sparc : Target {
-  // Pull in Instruction Info:
-  let InstructionSet = SparcInstrInfo;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcCallingConv.td b/libclamav/c++/llvm/lib/Target/Sparc/SparcCallingConv.td
deleted file mode 100644
index 33ecfdf..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcCallingConv.td
+++ /dev/null
@@ -1,32 +0,0 @@
-//===- SparcCallingConv.td - Calling Conventions Sparc -----*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This describes the calling conventions for the Sparc architectures.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Return Value Calling Conventions
-//===----------------------------------------------------------------------===//
-
-// Sparc 32-bit C return-value convention.
-def RetCC_Sparc32 : CallingConv<[
-  CCIfType<[i32], CCAssignToReg<[I0, I1, I2, I3, I4, I5]>>,
-  CCIfType<[f32], CCAssignToReg<[F0, F1, F2, F3]>>,
-  CCIfType<[f64], CCAssignToReg<[D0, D1]>>
-]>;
-
-// Sparc 32-bit C Calling convention.
-def CC_Sparc32 : CallingConv<[
-  // All arguments get passed in integer registers if there is space.
-  CCIfType<[i32, f32, f64], CCAssignToReg<[I0, I1, I2, I3, I4, I5]>>,
-  
-  // Alternatively, they are assigned to the stack in 4-byte aligned units.
-  CCAssignToStack<4, 4>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
deleted file mode 100644
index e1b9b59..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-//===-- SparcISelDAGToDAG.cpp - A dag to dag inst selector for Sparc ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the SPARC target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SparcISelLowering.h"
-#include "SparcTargetMachine.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// Instruction Selector Implementation
-//===----------------------------------------------------------------------===//
-
-//===--------------------------------------------------------------------===//
-/// SparcDAGToDAGISel - SPARC specific code to select SPARC machine
-/// instructions for SelectionDAG operations.
-///
-namespace {
-class SparcDAGToDAGISel : public SelectionDAGISel {
-  /// Subtarget - Keep a pointer to the Sparc Subtarget around so that we can
-  /// make the right decision when generating code for different targets.
-  const SparcSubtarget &Subtarget;
-public:
-  explicit SparcDAGToDAGISel(SparcTargetMachine &TM)
-    : SelectionDAGISel(TM),
-      Subtarget(TM.getSubtarget<SparcSubtarget>()) {
-  }
-
-  SDNode *Select(SDValue Op);
-
-  // Complex Pattern Selectors.
-  bool SelectADDRrr(SDValue Op, SDValue N, SDValue &R1, SDValue &R2);
-  bool SelectADDRri(SDValue Op, SDValue N, SDValue &Base,
-                    SDValue &Offset);
-
-  /// SelectInlineAsmMemoryOperand - Implement addressing mode selection for
-  /// inline asm expressions.
-  virtual bool SelectInlineAsmMemoryOperand(const SDValue &Op,
-                                            char ConstraintCode,
-                                            std::vector<SDValue> &OutOps);
-
-  /// InstructionSelect - This callback is invoked by
-  /// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-  virtual void InstructionSelect();
-
-  virtual const char *getPassName() const {
-    return "SPARC DAG->DAG Pattern Instruction Selection";
-  }
-
-  // Include the pieces autogenerated from the target description.
-#include "SparcGenDAGISel.inc"
-};
-}  // end anonymous namespace
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void SparcDAGToDAGISel::InstructionSelect() {
-  DEBUG(BB->dump());
-
-  // Select target instructions for the DAG.
-  SelectRoot(*CurDAG);
-  CurDAG->RemoveDeadNodes();
-}
-
-bool SparcDAGToDAGISel::SelectADDRri(SDValue Op, SDValue Addr,
-                                     SDValue &Base, SDValue &Offset) {
-  if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(Addr)) {
-    Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-    Offset = CurDAG->getTargetConstant(0, MVT::i32);
-    return true;
-  }
-  if (Addr.getOpcode() == ISD::TargetExternalSymbol ||
-      Addr.getOpcode() == ISD::TargetGlobalAddress)
-    return false;  // direct calls.
-
-  if (Addr.getOpcode() == ISD::ADD) {
-    if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) {
-      if (Predicate_simm13(CN)) {
-        if (FrameIndexSDNode *FIN =
-                dyn_cast<FrameIndexSDNode>(Addr.getOperand(0))) {
-          // Constant offset from frame ref.
-          Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-        } else {
-          Base = Addr.getOperand(0);
-        }
-        Offset = CurDAG->getTargetConstant(CN->getZExtValue(), MVT::i32);
-        return true;
-      }
-    }
-    if (Addr.getOperand(0).getOpcode() == SPISD::Lo) {
-      Base = Addr.getOperand(1);
-      Offset = Addr.getOperand(0).getOperand(0);
-      return true;
-    }
-    if (Addr.getOperand(1).getOpcode() == SPISD::Lo) {
-      Base = Addr.getOperand(0);
-      Offset = Addr.getOperand(1).getOperand(0);
-      return true;
-    }
-  }
-  Base = Addr;
-  Offset = CurDAG->getTargetConstant(0, MVT::i32);
-  return true;
-}
-
-bool SparcDAGToDAGISel::SelectADDRrr(SDValue Op, SDValue Addr,
-                                     SDValue &R1,  SDValue &R2) {
-  if (Addr.getOpcode() == ISD::FrameIndex) return false;
-  if (Addr.getOpcode() == ISD::TargetExternalSymbol ||
-      Addr.getOpcode() == ISD::TargetGlobalAddress)
-    return false;  // direct calls.
-
-  if (Addr.getOpcode() == ISD::ADD) {
-    if (isa<ConstantSDNode>(Addr.getOperand(1)) &&
-        Predicate_simm13(Addr.getOperand(1).getNode()))
-      return false;  // Let the reg+imm pattern catch this!
-    if (Addr.getOperand(0).getOpcode() == SPISD::Lo ||
-        Addr.getOperand(1).getOpcode() == SPISD::Lo)
-      return false;  // Let the reg+imm pattern catch this!
-    R1 = Addr.getOperand(0);
-    R2 = Addr.getOperand(1);
-    return true;
-  }
-
-  R1 = Addr;
-  R2 = CurDAG->getRegister(SP::G0, MVT::i32);
-  return true;
-}
-
-SDNode *SparcDAGToDAGISel::Select(SDValue Op) {
-  SDNode *N = Op.getNode();
-  DebugLoc dl = N->getDebugLoc();
-  if (N->isMachineOpcode())
-    return NULL;   // Already selected.
-
-  switch (N->getOpcode()) {
-  default: break;
-  case ISD::SDIV:
-  case ISD::UDIV: {
-    // FIXME: should use a custom expander to expose the SRA to the dag.
-    SDValue DivLHS = N->getOperand(0);
-    SDValue DivRHS = N->getOperand(1);
-
-    // Set the Y register to the high-part.
-    SDValue TopPart;
-    if (N->getOpcode() == ISD::SDIV) {
-      TopPart = SDValue(CurDAG->getTargetNode(SP::SRAri, dl, MVT::i32, DivLHS,
-                                   CurDAG->getTargetConstant(31, MVT::i32)), 0);
-    } else {
-      TopPart = CurDAG->getRegister(SP::G0, MVT::i32);
-    }
-    TopPart = SDValue(CurDAG->getTargetNode(SP::WRYrr, dl, MVT::Flag, TopPart,
-                                     CurDAG->getRegister(SP::G0, MVT::i32)), 0);
-
-    // FIXME: Handle div by immediate.
-    unsigned Opcode = N->getOpcode() == ISD::SDIV ? SP::SDIVrr : SP::UDIVrr;
-    return CurDAG->SelectNodeTo(N, Opcode, MVT::i32, DivLHS, DivRHS,
-                                TopPart);
-  }
-  case ISD::MULHU:
-  case ISD::MULHS: {
-    // FIXME: Handle mul by immediate.
-    SDValue MulLHS = N->getOperand(0);
-    SDValue MulRHS = N->getOperand(1);
-    unsigned Opcode = N->getOpcode() == ISD::MULHU ? SP::UMULrr : SP::SMULrr;
-    SDNode *Mul = CurDAG->getTargetNode(Opcode, dl, MVT::i32, MVT::Flag,
-                                        MulLHS, MulRHS);
-    // The high part is in the Y register.
-    return CurDAG->SelectNodeTo(N, SP::RDY, MVT::i32, SDValue(Mul, 1));
-    return NULL;
-  }
-  }
-
-  return SelectCode(Op);
-}
-
-
-/// SelectInlineAsmMemoryOperand - Implement addressing mode selection for
-/// inline asm expressions.
-bool
-SparcDAGToDAGISel::SelectInlineAsmMemoryOperand(const SDValue &Op,
-                                                char ConstraintCode,
-                                                std::vector<SDValue> &OutOps) {
-  SDValue Op0, Op1;
-  switch (ConstraintCode) {
-  default: return true;
-  case 'm':   // memory
-   if (!SelectADDRrr(Op, Op, Op0, Op1))
-     SelectADDRri(Op, Op, Op0, Op1);
-   break;
-  }
-
-  OutOps.push_back(Op0);
-  OutOps.push_back(Op1);
-  return false;
-}
-
-/// createSparcISelDag - This pass converts a legalized DAG into a
-/// SPARC-specific DAG, ready for instruction scheduling.
-///
-FunctionPass *llvm::createSparcISelDag(SparcTargetMachine &TM) {
-  return new SparcDAGToDAGISel(TM);
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.cpp b/libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.cpp
deleted file mode 100644
index ae77a8c..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.cpp
+++ /dev/null
@@ -1,1058 +0,0 @@
-//===-- SparcISelLowering.cpp - Sparc DAG Lowering Implementation ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the interfaces that Sparc uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SparcISelLowering.h"
-#include "SparcTargetMachine.h"
-#include "llvm/Function.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/ADT/VectorExtras.h"
-#include "llvm/Support/ErrorHandling.h"
-using namespace llvm;
-
-
-//===----------------------------------------------------------------------===//
-// Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-#include "SparcGenCallingConv.inc"
-
-SDValue
-SparcTargetLowering::LowerReturn(SDValue Chain,
-                                 unsigned CallConv, bool isVarArg,
-                                 const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                 DebugLoc dl, SelectionDAG &DAG) {
-
-  // CCValAssign - represent the assignment of the return value to locations.
-  SmallVector<CCValAssign, 16> RVLocs;
-
-  // CCState - Info about the registers and stack slot.
-  CCState CCInfo(CallConv, isVarArg, DAG.getTarget(),
-                 RVLocs, *DAG.getContext());
-
-  // Analize return values.
-  CCInfo.AnalyzeReturn(Outs, RetCC_Sparc32);
-
-  // If this is the first return lowered for this function, add the regs to the
-  // liveout set for the function.
-  if (DAG.getMachineFunction().getRegInfo().liveout_empty()) {
-    for (unsigned i = 0; i != RVLocs.size(); ++i)
-      if (RVLocs[i].isRegLoc())
-        DAG.getMachineFunction().getRegInfo().addLiveOut(RVLocs[i].getLocReg());
-  }
-
-  SDValue Flag;
-
-  // Copy the result values into the output registers.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-    assert(VA.isRegLoc() && "Can only return in registers!");
-
-    Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), 
-                             Outs[i].Val, Flag);
-
-    // Guarantee that all emitted copies are stuck together with flags.
-    Flag = Chain.getValue(1);
-  }
-
-  if (Flag.getNode())
-    return DAG.getNode(SPISD::RET_FLAG, dl, MVT::Other, Chain, Flag);
-  return DAG.getNode(SPISD::RET_FLAG, dl, MVT::Other, Chain);
-}
-
-/// LowerFormalArguments - V8 uses a very simple ABI, where all values are
-/// passed in either one or two GPRs, including FP values.  TODO: we should
-/// pass FP values in FP registers for fastcc functions.
-SDValue
-SparcTargetLowering::LowerFormalArguments(SDValue Chain,
-                                          unsigned CallConv, bool isVarArg,
-                                          const SmallVectorImpl<ISD::InputArg>
-                                            &Ins,
-                                          DebugLoc dl, SelectionDAG &DAG,
-                                          SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineRegisterInfo &RegInfo = MF.getRegInfo();
-
-  // Assign locations to all of the incoming arguments.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-  CCInfo.AnalyzeFormalArguments(Ins, CC_Sparc32);
-
-  static const unsigned ArgRegs[] = {
-    SP::I0, SP::I1, SP::I2, SP::I3, SP::I4, SP::I5
-  };
-  const unsigned *CurArgReg = ArgRegs, *ArgRegEnd = ArgRegs+6;
-  unsigned ArgOffset = 68;
-
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    SDValue ArgValue;
-    CCValAssign &VA = ArgLocs[i];
-    // FIXME: We ignore the register assignments of AnalyzeFormalArguments
-    // because it doesn't know how to split a double into two i32 registers.
-    EVT ObjectVT = VA.getValVT();
-    switch (ObjectVT.getSimpleVT().SimpleTy) {
-    default: llvm_unreachable("Unhandled argument type!");
-    case MVT::i1:
-    case MVT::i8:
-    case MVT::i16:
-    case MVT::i32:
-      if (!Ins[i].Used) {                  // Argument is dead.
-        if (CurArgReg < ArgRegEnd) ++CurArgReg;
-        InVals.push_back(DAG.getUNDEF(ObjectVT));
-      } else if (CurArgReg < ArgRegEnd) {  // Lives in an incoming GPR
-        unsigned VReg = RegInfo.createVirtualRegister(&SP::IntRegsRegClass);
-        MF.getRegInfo().addLiveIn(*CurArgReg++, VReg);
-        SDValue Arg = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i32);
-        if (ObjectVT != MVT::i32) {
-          unsigned AssertOp = ISD::AssertSext;
-          Arg = DAG.getNode(AssertOp, dl, MVT::i32, Arg,
-                            DAG.getValueType(ObjectVT));
-          Arg = DAG.getNode(ISD::TRUNCATE, dl, ObjectVT, Arg);
-        }
-        InVals.push_back(Arg);
-      } else {
-        int FrameIdx = MF.getFrameInfo()->CreateFixedObject(4, ArgOffset);
-        SDValue FIPtr = DAG.getFrameIndex(FrameIdx, MVT::i32);
-        SDValue Load;
-        if (ObjectVT == MVT::i32) {
-          Load = DAG.getLoad(MVT::i32, dl, Chain, FIPtr, NULL, 0);
-        } else {
-          ISD::LoadExtType LoadOp = ISD::SEXTLOAD;
-
-          // Sparc is big endian, so add an offset based on the ObjectVT.
-          unsigned Offset = 4-std::max(1U, ObjectVT.getSizeInBits()/8);
-          FIPtr = DAG.getNode(ISD::ADD, dl, MVT::i32, FIPtr,
-                              DAG.getConstant(Offset, MVT::i32));
-          Load = DAG.getExtLoad(LoadOp, dl, MVT::i32, Chain, FIPtr,
-                                NULL, 0, ObjectVT);
-          Load = DAG.getNode(ISD::TRUNCATE, dl, ObjectVT, Load);
-        }
-        InVals.push_back(Load);
-      }
-
-      ArgOffset += 4;
-      break;
-    case MVT::f32:
-      if (!Ins[i].Used) {                  // Argument is dead.
-        if (CurArgReg < ArgRegEnd) ++CurArgReg;
-        InVals.push_back(DAG.getUNDEF(ObjectVT));
-      } else if (CurArgReg < ArgRegEnd) {  // Lives in an incoming GPR
-        // FP value is passed in an integer register.
-        unsigned VReg = RegInfo.createVirtualRegister(&SP::IntRegsRegClass);
-        MF.getRegInfo().addLiveIn(*CurArgReg++, VReg);
-        SDValue Arg = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i32);
-
-        Arg = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f32, Arg);
-        InVals.push_back(Arg);
-      } else {
-        int FrameIdx = MF.getFrameInfo()->CreateFixedObject(4, ArgOffset);
-        SDValue FIPtr = DAG.getFrameIndex(FrameIdx, MVT::i32);
-        SDValue Load = DAG.getLoad(MVT::f32, dl, Chain, FIPtr, NULL, 0);
-        InVals.push_back(Load);
-      }
-      ArgOffset += 4;
-      break;
-
-    case MVT::i64:
-    case MVT::f64:
-      if (!Ins[i].Used) {                // Argument is dead.
-        if (CurArgReg < ArgRegEnd) ++CurArgReg;
-        if (CurArgReg < ArgRegEnd) ++CurArgReg;
-        InVals.push_back(DAG.getUNDEF(ObjectVT));
-      } else {
-        SDValue HiVal;
-        if (CurArgReg < ArgRegEnd) {  // Lives in an incoming GPR
-          unsigned VRegHi = RegInfo.createVirtualRegister(&SP::IntRegsRegClass);
-          MF.getRegInfo().addLiveIn(*CurArgReg++, VRegHi);
-          HiVal = DAG.getCopyFromReg(Chain, dl, VRegHi, MVT::i32);
-        } else {
-          int FrameIdx = MF.getFrameInfo()->CreateFixedObject(4, ArgOffset);
-          SDValue FIPtr = DAG.getFrameIndex(FrameIdx, MVT::i32);
-          HiVal = DAG.getLoad(MVT::i32, dl, Chain, FIPtr, NULL, 0);
-        }
-
-        SDValue LoVal;
-        if (CurArgReg < ArgRegEnd) {  // Lives in an incoming GPR
-          unsigned VRegLo = RegInfo.createVirtualRegister(&SP::IntRegsRegClass);
-          MF.getRegInfo().addLiveIn(*CurArgReg++, VRegLo);
-          LoVal = DAG.getCopyFromReg(Chain, dl, VRegLo, MVT::i32);
-        } else {
-          int FrameIdx = MF.getFrameInfo()->CreateFixedObject(4, ArgOffset+4);
-          SDValue FIPtr = DAG.getFrameIndex(FrameIdx, MVT::i32);
-          LoVal = DAG.getLoad(MVT::i32, dl, Chain, FIPtr, NULL, 0);
-        }
-
-        // Compose the two halves together into an i64 unit.
-        SDValue WholeValue =
-          DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, LoVal, HiVal);
-
-        // If we want a double, do a bit convert.
-        if (ObjectVT == MVT::f64)
-          WholeValue = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f64, WholeValue);
-
-        InVals.push_back(WholeValue);
-      }
-      ArgOffset += 8;
-      break;
-    }
-  }
-
-  // Store remaining ArgRegs to the stack if this is a varargs function.
-  if (isVarArg) {
-    // Remember the vararg offset for the va_start implementation.
-    VarArgsFrameOffset = ArgOffset;
-
-    std::vector<SDValue> OutChains;
-
-    for (; CurArgReg != ArgRegEnd; ++CurArgReg) {
-      unsigned VReg = RegInfo.createVirtualRegister(&SP::IntRegsRegClass);
-      MF.getRegInfo().addLiveIn(*CurArgReg, VReg);
-      SDValue Arg = DAG.getCopyFromReg(DAG.getRoot(), dl, VReg, MVT::i32);
-
-      int FrameIdx = MF.getFrameInfo()->CreateFixedObject(4, ArgOffset);
-      SDValue FIPtr = DAG.getFrameIndex(FrameIdx, MVT::i32);
-
-      OutChains.push_back(DAG.getStore(DAG.getRoot(), dl, Arg, FIPtr, NULL, 0));
-      ArgOffset += 4;
-    }
-
-    if (!OutChains.empty()) {
-      OutChains.push_back(Chain);
-      Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                          &OutChains[0], OutChains.size());
-    }
-  }
-
-  return Chain;
-}
-
-SDValue
-SparcTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                               unsigned CallConv, bool isVarArg,
-                               bool isTailCall,
-                               const SmallVectorImpl<ISD::OutputArg> &Outs,
-                               const SmallVectorImpl<ISD::InputArg> &Ins,
-                               DebugLoc dl, SelectionDAG &DAG,
-                               SmallVectorImpl<SDValue> &InVals) {
-
-#if 0
-  // Analyze operands of the call, assigning locations to each operand.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, DAG.getTarget(), ArgLocs);
-  CCInfo.AnalyzeCallOperands(Outs, CC_Sparc32);
-
-  // Get the size of the outgoing arguments stack space requirement.
-  unsigned ArgsSize = CCInfo.getNextStackOffset();
-  // FIXME: We can't use this until f64 is known to take two GPRs.
-#else
-  (void)CC_Sparc32;
-
-  // Count the size of the outgoing arguments.
-  unsigned ArgsSize = 0;
-  for (unsigned i = 0, e = Outs.size(); i != e; ++i) {
-    switch (Outs[i].Val.getValueType().getSimpleVT().SimpleTy) {
-      default: llvm_unreachable("Unknown value type!");
-      case MVT::i1:
-      case MVT::i8:
-      case MVT::i16:
-      case MVT::i32:
-      case MVT::f32:
-        ArgsSize += 4;
-        break;
-      case MVT::i64:
-      case MVT::f64:
-        ArgsSize += 8;
-        break;
-    }
-  }
-  if (ArgsSize > 4*6)
-    ArgsSize -= 4*6;    // Space for first 6 arguments is prereserved.
-  else
-    ArgsSize = 0;
-#endif
-
-  // Keep stack frames 8-byte aligned.
-  ArgsSize = (ArgsSize+7) & ~7;
-
-  Chain = DAG.getCALLSEQ_START(Chain, DAG.getIntPtrConstant(ArgsSize, true));
-
-  SmallVector<std::pair<unsigned, SDValue>, 8> RegsToPass;
-  SmallVector<SDValue, 8> MemOpChains;
-
-#if 0
-  // Walk the register/memloc assignments, inserting copies/loads.
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-    SDValue Arg = Outs[i].Val;
-
-    // Promote the value if needed.
-    switch (VA.getLocInfo()) {
-    default: llvm_unreachable("Unknown loc info!");
-    case CCValAssign::Full: break;
-    case CCValAssign::SExt:
-      Arg = DAG.getNode(ISD::SIGN_EXTEND, VA.getLocVT(), Arg);
-      break;
-    case CCValAssign::ZExt:
-      Arg = DAG.getNode(ISD::ZERO_EXTEND, VA.getLocVT(), Arg);
-      break;
-    case CCValAssign::AExt:
-      Arg = DAG.getNode(ISD::ANY_EXTEND, VA.getLocVT(), Arg);
-      break;
-    }
-
-    // Arguments that can be passed on register must be kept at
-    // RegsToPass vector
-    if (VA.isRegLoc()) {
-      RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-      continue;
-    }
-
-    assert(VA.isMemLoc());
-
-    // Create a store off the stack pointer for this argument.
-    SDValue StackPtr = DAG.getRegister(SP::O6, MVT::i32);
-    // FIXME: VERIFY THAT 68 IS RIGHT.
-    SDValue PtrOff = DAG.getIntPtrConstant(VA.getLocMemOffset()+68);
-    PtrOff = DAG.getNode(ISD::ADD, MVT::i32, StackPtr, PtrOff);
-    MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, NULL, 0));
-  }
-
-#else
-  static const unsigned ArgRegs[] = {
-    SP::I0, SP::I1, SP::I2, SP::I3, SP::I4, SP::I5
-  };
-  unsigned ArgOffset = 68;
-
-  for (unsigned i = 0, e = Outs.size(); i != e; ++i) {
-    SDValue Val = Outs[i].Val;
-    EVT ObjectVT = Val.getValueType();
-    SDValue ValToStore(0, 0);
-    unsigned ObjSize;
-    switch (ObjectVT.getSimpleVT().SimpleTy) {
-    default: llvm_unreachable("Unhandled argument type!");
-    case MVT::i32:
-      ObjSize = 4;
-
-      if (RegsToPass.size() >= 6) {
-        ValToStore = Val;
-      } else {
-        RegsToPass.push_back(std::make_pair(ArgRegs[RegsToPass.size()], Val));
-      }
-      break;
-    case MVT::f32:
-      ObjSize = 4;
-      if (RegsToPass.size() >= 6) {
-        ValToStore = Val;
-      } else {
-        // Convert this to a FP value in an int reg.
-        Val = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::i32, Val);
-        RegsToPass.push_back(std::make_pair(ArgRegs[RegsToPass.size()], Val));
-      }
-      break;
-    case MVT::f64: {
-      ObjSize = 8;
-      if (RegsToPass.size() >= 6) {
-        ValToStore = Val;    // Whole thing is passed in memory.
-        break;
-      }
-
-      // Break into top and bottom parts by storing to the stack and loading
-      // out the parts as integers.  Top part goes in a reg.
-      SDValue StackPtr = DAG.CreateStackTemporary(MVT::f64, MVT::i32);
-      SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, 
-                                   Val, StackPtr, NULL, 0);
-      // Sparc is big-endian, so the high part comes first.
-      SDValue Hi = DAG.getLoad(MVT::i32, dl, Store, StackPtr, NULL, 0, 0);
-      // Increment the pointer to the other half.
-      StackPtr = DAG.getNode(ISD::ADD, dl, StackPtr.getValueType(), StackPtr,
-                             DAG.getIntPtrConstant(4));
-      // Load the low part.
-      SDValue Lo = DAG.getLoad(MVT::i32, dl, Store, StackPtr, NULL, 0, 0);
-
-      RegsToPass.push_back(std::make_pair(ArgRegs[RegsToPass.size()], Hi));
-
-      if (RegsToPass.size() >= 6) {
-        ValToStore = Lo;
-        ArgOffset += 4;
-        ObjSize = 4;
-      } else {
-        RegsToPass.push_back(std::make_pair(ArgRegs[RegsToPass.size()], Lo));
-      }
-      break;
-    }
-    case MVT::i64: {
-      ObjSize = 8;
-      if (RegsToPass.size() >= 6) {
-        ValToStore = Val;    // Whole thing is passed in memory.
-        break;
-      }
-
-      // Split the value into top and bottom part.  Top part goes in a reg.
-      SDValue Hi = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32, Val,
-                                 DAG.getConstant(1, MVT::i32));
-      SDValue Lo = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32, Val,
-                                 DAG.getConstant(0, MVT::i32));
-      RegsToPass.push_back(std::make_pair(ArgRegs[RegsToPass.size()], Hi));
-
-      if (RegsToPass.size() >= 6) {
-        ValToStore = Lo;
-        ArgOffset += 4;
-        ObjSize = 4;
-      } else {
-        RegsToPass.push_back(std::make_pair(ArgRegs[RegsToPass.size()], Lo));
-      }
-      break;
-    }
-    }
-
-    if (ValToStore.getNode()) {
-      SDValue StackPtr = DAG.getRegister(SP::O6, MVT::i32);
-      SDValue PtrOff = DAG.getConstant(ArgOffset, MVT::i32);
-      PtrOff = DAG.getNode(ISD::ADD, dl, MVT::i32, StackPtr, PtrOff);
-      MemOpChains.push_back(DAG.getStore(Chain, dl, ValToStore, 
-                                         PtrOff, NULL, 0));
-    }
-    ArgOffset += ObjSize;
-  }
-#endif
-
-  // Emit all stores, make sure the occur before any copies into physregs.
-  if (!MemOpChains.empty())
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                        &MemOpChains[0], MemOpChains.size());
-
-  // Build a sequence of copy-to-reg nodes chained together with token
-  // chain and flag operands which copy the outgoing args into registers.
-  // The InFlag in necessary since all emited instructions must be
-  // stuck together.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    unsigned Reg = RegsToPass[i].first;
-    // Remap I0->I7 -> O0->O7.
-    if (Reg >= SP::I0 && Reg <= SP::I7)
-      Reg = Reg-SP::I0+SP::O0;
-
-    Chain = DAG.getCopyToReg(Chain, dl, Reg, RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  // If the callee is a GlobalAddress node (quite common, every direct call is)
-  // turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
-  // Likewise ExternalSymbol -> TargetExternalSymbol.
-  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
-    Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i32);
-  else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
-    Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i32);
-
-  std::vector<EVT> NodeTys;
-  NodeTys.push_back(MVT::Other);   // Returns a chain
-  NodeTys.push_back(MVT::Flag);    // Returns a flag for retval copy to use.
-  SDValue Ops[] = { Chain, Callee, InFlag };
-  Chain = DAG.getNode(SPISD::CALL, dl, NodeTys, Ops, InFlag.getNode() ? 3 : 2);
-  InFlag = Chain.getValue(1);
-
-  Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(ArgsSize, true),
-                             DAG.getIntPtrConstant(0, true), InFlag);
-  InFlag = Chain.getValue(1);
-
-  // Assign locations to each value returned by this call.
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState RVInfo(CallConv, isVarArg, DAG.getTarget(),
-                 RVLocs, *DAG.getContext());
-
-  RVInfo.AnalyzeCallResult(Ins, RetCC_Sparc32);
-
-  // Copy all of the result registers out of their specified physreg.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    unsigned Reg = RVLocs[i].getLocReg();
-
-    // Remap I0->I7 -> O0->O7.
-    if (Reg >= SP::I0 && Reg <= SP::I7)
-      Reg = Reg-SP::I0+SP::O0;
-
-    Chain = DAG.getCopyFromReg(Chain, dl, Reg,
-                               RVLocs[i].getValVT(), InFlag).getValue(1);
-    InFlag = Chain.getValue(2);
-    InVals.push_back(Chain.getValue(0));
-  }
-
-  return Chain;
-}
-
-
-
-//===----------------------------------------------------------------------===//
-// TargetLowering Implementation
-//===----------------------------------------------------------------------===//
-
-/// IntCondCCodeToICC - Convert a DAG integer condition code to a SPARC ICC
-/// condition.
-static SPCC::CondCodes IntCondCCodeToICC(ISD::CondCode CC) {
-  switch (CC) {
-  default: llvm_unreachable("Unknown integer condition code!");
-  case ISD::SETEQ:  return SPCC::ICC_E;
-  case ISD::SETNE:  return SPCC::ICC_NE;
-  case ISD::SETLT:  return SPCC::ICC_L;
-  case ISD::SETGT:  return SPCC::ICC_G;
-  case ISD::SETLE:  return SPCC::ICC_LE;
-  case ISD::SETGE:  return SPCC::ICC_GE;
-  case ISD::SETULT: return SPCC::ICC_CS;
-  case ISD::SETULE: return SPCC::ICC_LEU;
-  case ISD::SETUGT: return SPCC::ICC_GU;
-  case ISD::SETUGE: return SPCC::ICC_CC;
-  }
-}
-
-/// FPCondCCodeToFCC - Convert a DAG floatingp oint condition code to a SPARC
-/// FCC condition.
-static SPCC::CondCodes FPCondCCodeToFCC(ISD::CondCode CC) {
-  switch (CC) {
-  default: llvm_unreachable("Unknown fp condition code!");
-  case ISD::SETEQ:
-  case ISD::SETOEQ: return SPCC::FCC_E;
-  case ISD::SETNE:
-  case ISD::SETUNE: return SPCC::FCC_NE;
-  case ISD::SETLT:
-  case ISD::SETOLT: return SPCC::FCC_L;
-  case ISD::SETGT:
-  case ISD::SETOGT: return SPCC::FCC_G;
-  case ISD::SETLE:
-  case ISD::SETOLE: return SPCC::FCC_LE;
-  case ISD::SETGE:
-  case ISD::SETOGE: return SPCC::FCC_GE;
-  case ISD::SETULT: return SPCC::FCC_UL;
-  case ISD::SETULE: return SPCC::FCC_ULE;
-  case ISD::SETUGT: return SPCC::FCC_UG;
-  case ISD::SETUGE: return SPCC::FCC_UGE;
-  case ISD::SETUO:  return SPCC::FCC_U;
-  case ISD::SETO:   return SPCC::FCC_O;
-  case ISD::SETONE: return SPCC::FCC_LG;
-  case ISD::SETUEQ: return SPCC::FCC_UE;
-  }
-}
-
-SparcTargetLowering::SparcTargetLowering(TargetMachine &TM)
-  : TargetLowering(TM, new TargetLoweringObjectFileELF()) {
-
-  // Set up the register classes.
-  addRegisterClass(MVT::i32, SP::IntRegsRegisterClass);
-  addRegisterClass(MVT::f32, SP::FPRegsRegisterClass);
-  addRegisterClass(MVT::f64, SP::DFPRegsRegisterClass);
-
-  // Turn FP extload into load/fextend
-  setLoadExtAction(ISD::EXTLOAD, MVT::f32, Expand);
-  // Sparc doesn't have i1 sign extending load
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);
-  // Turn FP truncstore into trunc + store.
-  setTruncStoreAction(MVT::f64, MVT::f32, Expand);
-
-  // Custom legalize GlobalAddress nodes into LO/HI parts.
-  setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
-  setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
-  setOperationAction(ISD::ConstantPool , MVT::i32, Custom);
-
-  // Sparc doesn't have sext_inreg, replace them with shl/sra
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8 , Expand);
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1 , Expand);
-
-  // Sparc has no REM or DIVREM operations.
-  setOperationAction(ISD::UREM, MVT::i32, Expand);
-  setOperationAction(ISD::SREM, MVT::i32, Expand);
-  setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
-  setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
-
-  // Custom expand fp<->sint
-  setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
-  setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
-
-  // Expand fp<->uint
-  setOperationAction(ISD::FP_TO_UINT, MVT::i32, Expand);
-  setOperationAction(ISD::UINT_TO_FP, MVT::i32, Expand);
-
-  setOperationAction(ISD::BIT_CONVERT, MVT::f32, Expand);
-  setOperationAction(ISD::BIT_CONVERT, MVT::i32, Expand);
-
-  // Sparc has no select or setcc: expand to SELECT_CC.
-  setOperationAction(ISD::SELECT, MVT::i32, Expand);
-  setOperationAction(ISD::SELECT, MVT::f32, Expand);
-  setOperationAction(ISD::SELECT, MVT::f64, Expand);
-  setOperationAction(ISD::SETCC, MVT::i32, Expand);
-  setOperationAction(ISD::SETCC, MVT::f32, Expand);
-  setOperationAction(ISD::SETCC, MVT::f64, Expand);
-
-  // Sparc doesn't have BRCOND either, it has BR_CC.
-  setOperationAction(ISD::BRCOND, MVT::Other, Expand);
-  setOperationAction(ISD::BRIND, MVT::Other, Expand);
-  setOperationAction(ISD::BR_JT, MVT::Other, Expand);
-  setOperationAction(ISD::BR_CC, MVT::i32, Custom);
-  setOperationAction(ISD::BR_CC, MVT::f32, Custom);
-  setOperationAction(ISD::BR_CC, MVT::f64, Custom);
-
-  setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
-  setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
-  setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
-
-  // SPARC has no intrinsics for these particular operations.
-  setOperationAction(ISD::MEMBARRIER, MVT::Other, Expand);
-
-  setOperationAction(ISD::FSIN , MVT::f64, Expand);
-  setOperationAction(ISD::FCOS , MVT::f64, Expand);
-  setOperationAction(ISD::FREM , MVT::f64, Expand);
-  setOperationAction(ISD::FSIN , MVT::f32, Expand);
-  setOperationAction(ISD::FCOS , MVT::f32, Expand);
-  setOperationAction(ISD::FREM , MVT::f32, Expand);
-  setOperationAction(ISD::CTPOP, MVT::i32, Expand);
-  setOperationAction(ISD::CTTZ , MVT::i32, Expand);
-  setOperationAction(ISD::CTLZ , MVT::i32, Expand);
-  setOperationAction(ISD::ROTL , MVT::i32, Expand);
-  setOperationAction(ISD::ROTR , MVT::i32, Expand);
-  setOperationAction(ISD::BSWAP, MVT::i32, Expand);
-  setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
-  setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
-  setOperationAction(ISD::FPOW , MVT::f64, Expand);
-  setOperationAction(ISD::FPOW , MVT::f32, Expand);
-
-  setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
-  setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
-  setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
-
-  // FIXME: Sparc provides these multiplies, but we don't have them yet.
-  setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
-  setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
-
-  // We don't have line number support yet.
-  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
-  setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
-  setOperationAction(ISD::DBG_LABEL, MVT::Other, Expand);
-  setOperationAction(ISD::EH_LABEL, MVT::Other, Expand);
-
-  // VASTART needs to be custom lowered to use the VarArgsFrameIndex.
-  setOperationAction(ISD::VASTART           , MVT::Other, Custom);
-  // VAARG needs to be lowered to not do unaligned accesses for doubles.
-  setOperationAction(ISD::VAARG             , MVT::Other, Custom);
-
-  // Use the default implementation.
-  setOperationAction(ISD::VACOPY            , MVT::Other, Expand);
-  setOperationAction(ISD::VAEND             , MVT::Other, Expand);
-  setOperationAction(ISD::STACKSAVE         , MVT::Other, Expand);
-  setOperationAction(ISD::STACKRESTORE      , MVT::Other, Expand);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32  , Custom);
-
-  // No debug info support yet.
-  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
-  setOperationAction(ISD::DBG_LABEL, MVT::Other, Expand);
-  setOperationAction(ISD::EH_LABEL, MVT::Other, Expand);
-
-  setStackPointerRegisterToSaveRestore(SP::O6);
-
-  if (TM.getSubtarget<SparcSubtarget>().isV9())
-    setOperationAction(ISD::CTPOP, MVT::i32, Legal);
-
-  computeRegisterProperties();
-}
-
-const char *SparcTargetLowering::getTargetNodeName(unsigned Opcode) const {
-  switch (Opcode) {
-  default: return 0;
-  case SPISD::CMPICC:     return "SPISD::CMPICC";
-  case SPISD::CMPFCC:     return "SPISD::CMPFCC";
-  case SPISD::BRICC:      return "SPISD::BRICC";
-  case SPISD::BRFCC:      return "SPISD::BRFCC";
-  case SPISD::SELECT_ICC: return "SPISD::SELECT_ICC";
-  case SPISD::SELECT_FCC: return "SPISD::SELECT_FCC";
-  case SPISD::Hi:         return "SPISD::Hi";
-  case SPISD::Lo:         return "SPISD::Lo";
-  case SPISD::FTOI:       return "SPISD::FTOI";
-  case SPISD::ITOF:       return "SPISD::ITOF";
-  case SPISD::CALL:       return "SPISD::CALL";
-  case SPISD::RET_FLAG:   return "SPISD::RET_FLAG";
-  }
-}
-
-/// isMaskedValueZeroForTargetNode - Return true if 'Op & Mask' is known to
-/// be zero. Op is expected to be a target specific node. Used by DAG
-/// combiner.
-void SparcTargetLowering::computeMaskedBitsForTargetNode(const SDValue Op,
-                                                         const APInt &Mask,
-                                                         APInt &KnownZero,
-                                                         APInt &KnownOne,
-                                                         const SelectionDAG &DAG,
-                                                         unsigned Depth) const {
-  APInt KnownZero2, KnownOne2;
-  KnownZero = KnownOne = APInt(Mask.getBitWidth(), 0);   // Don't know anything.
-
-  switch (Op.getOpcode()) {
-  default: break;
-  case SPISD::SELECT_ICC:
-  case SPISD::SELECT_FCC:
-    DAG.ComputeMaskedBits(Op.getOperand(1), Mask, KnownZero, KnownOne,
-                          Depth+1);
-    DAG.ComputeMaskedBits(Op.getOperand(0), Mask, KnownZero2, KnownOne2,
-                          Depth+1);
-    assert((KnownZero & KnownOne) == 0 && "Bits known to be one AND zero?");
-    assert((KnownZero2 & KnownOne2) == 0 && "Bits known to be one AND zero?");
-
-    // Only known if known in both the LHS and RHS.
-    KnownOne &= KnownOne2;
-    KnownZero &= KnownZero2;
-    break;
-  }
-}
-
-// Look at LHS/RHS/CC and see if they are a lowered setcc instruction.  If so
-// set LHS/RHS and SPCC to the LHS/RHS of the setcc and SPCC to the condition.
-static void LookThroughSetCC(SDValue &LHS, SDValue &RHS,
-                             ISD::CondCode CC, unsigned &SPCC) {
-  if (isa<ConstantSDNode>(RHS) &&
-      cast<ConstantSDNode>(RHS)->getZExtValue() == 0 &&
-      CC == ISD::SETNE &&
-      ((LHS.getOpcode() == SPISD::SELECT_ICC &&
-        LHS.getOperand(3).getOpcode() == SPISD::CMPICC) ||
-       (LHS.getOpcode() == SPISD::SELECT_FCC &&
-        LHS.getOperand(3).getOpcode() == SPISD::CMPFCC)) &&
-      isa<ConstantSDNode>(LHS.getOperand(0)) &&
-      isa<ConstantSDNode>(LHS.getOperand(1)) &&
-      cast<ConstantSDNode>(LHS.getOperand(0))->getZExtValue() == 1 &&
-      cast<ConstantSDNode>(LHS.getOperand(1))->getZExtValue() == 0) {
-    SDValue CMPCC = LHS.getOperand(3);
-    SPCC = cast<ConstantSDNode>(LHS.getOperand(2))->getZExtValue();
-    LHS = CMPCC.getOperand(0);
-    RHS = CMPCC.getOperand(1);
-  }
-}
-
-static SDValue LowerGLOBALADDRESS(SDValue Op, SelectionDAG &DAG) {
-  GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
-  // FIXME there isn't really any debug info here
-  DebugLoc dl = Op.getDebugLoc();
-  SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
-  SDValue Hi = DAG.getNode(SPISD::Hi, dl, MVT::i32, GA);
-  SDValue Lo = DAG.getNode(SPISD::Lo, dl, MVT::i32, GA);
-  return DAG.getNode(ISD::ADD, dl, MVT::i32, Lo, Hi);
-}
-
-static SDValue LowerCONSTANTPOOL(SDValue Op, SelectionDAG &DAG) {
-  ConstantPoolSDNode *N = cast<ConstantPoolSDNode>(Op);
-  // FIXME there isn't really any debug info here
-  DebugLoc dl = Op.getDebugLoc();
-  Constant *C = N->getConstVal();
-  SDValue CP = DAG.getTargetConstantPool(C, MVT::i32, N->getAlignment());
-  SDValue Hi = DAG.getNode(SPISD::Hi, dl, MVT::i32, CP);
-  SDValue Lo = DAG.getNode(SPISD::Lo, dl, MVT::i32, CP);
-  return DAG.getNode(ISD::ADD, dl, MVT::i32, Lo, Hi);
-}
-
-static SDValue LowerFP_TO_SINT(SDValue Op, SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  // Convert the fp value to integer in an FP register.
-  assert(Op.getValueType() == MVT::i32);
-  Op = DAG.getNode(SPISD::FTOI, dl, MVT::f32, Op.getOperand(0));
-  return DAG.getNode(ISD::BIT_CONVERT, dl, MVT::i32, Op);
-}
-
-static SDValue LowerSINT_TO_FP(SDValue Op, SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  assert(Op.getOperand(0).getValueType() == MVT::i32);
-  SDValue Tmp = DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f32, Op.getOperand(0));
-  // Convert the int value to FP in an FP register.
-  return DAG.getNode(SPISD::ITOF, dl, Op.getValueType(), Tmp);
-}
-
-static SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue Chain = Op.getOperand(0);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(1))->get();
-  SDValue LHS = Op.getOperand(2);
-  SDValue RHS = Op.getOperand(3);
-  SDValue Dest = Op.getOperand(4);
-  DebugLoc dl = Op.getDebugLoc();
-  unsigned Opc, SPCC = ~0U;
-
-  // If this is a br_cc of a "setcc", and if the setcc got lowered into
-  // an CMP[IF]CC/SELECT_[IF]CC pair, find the original compared values.
-  LookThroughSetCC(LHS, RHS, CC, SPCC);
-
-  // Get the condition flag.
-  SDValue CompareFlag;
-  if (LHS.getValueType() == MVT::i32) {
-    std::vector<EVT> VTs;
-    VTs.push_back(MVT::i32);
-    VTs.push_back(MVT::Flag);
-    SDValue Ops[2] = { LHS, RHS };
-    CompareFlag = DAG.getNode(SPISD::CMPICC, dl, VTs, Ops, 2).getValue(1);
-    if (SPCC == ~0U) SPCC = IntCondCCodeToICC(CC);
-    Opc = SPISD::BRICC;
-  } else {
-    CompareFlag = DAG.getNode(SPISD::CMPFCC, dl, MVT::Flag, LHS, RHS);
-    if (SPCC == ~0U) SPCC = FPCondCCodeToFCC(CC);
-    Opc = SPISD::BRFCC;
-  }
-  return DAG.getNode(Opc, dl, MVT::Other, Chain, Dest,
-                     DAG.getConstant(SPCC, MVT::i32), CompareFlag);
-}
-
-static SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue LHS = Op.getOperand(0);
-  SDValue RHS = Op.getOperand(1);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(4))->get();
-  SDValue TrueVal = Op.getOperand(2);
-  SDValue FalseVal = Op.getOperand(3);
-  DebugLoc dl = Op.getDebugLoc();
-  unsigned Opc, SPCC = ~0U;
-
-  // If this is a select_cc of a "setcc", and if the setcc got lowered into
-  // an CMP[IF]CC/SELECT_[IF]CC pair, find the original compared values.
-  LookThroughSetCC(LHS, RHS, CC, SPCC);
-
-  SDValue CompareFlag;
-  if (LHS.getValueType() == MVT::i32) {
-    std::vector<EVT> VTs;
-    VTs.push_back(LHS.getValueType());   // subcc returns a value
-    VTs.push_back(MVT::Flag);
-    SDValue Ops[2] = { LHS, RHS };
-    CompareFlag = DAG.getNode(SPISD::CMPICC, dl, VTs, Ops, 2).getValue(1);
-    Opc = SPISD::SELECT_ICC;
-    if (SPCC == ~0U) SPCC = IntCondCCodeToICC(CC);
-  } else {
-    CompareFlag = DAG.getNode(SPISD::CMPFCC, dl, MVT::Flag, LHS, RHS);
-    Opc = SPISD::SELECT_FCC;
-    if (SPCC == ~0U) SPCC = FPCondCCodeToFCC(CC);
-  }
-  return DAG.getNode(Opc, dl, TrueVal.getValueType(), TrueVal, FalseVal,
-                     DAG.getConstant(SPCC, MVT::i32), CompareFlag);
-}
-
-static SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG,
-                              SparcTargetLowering &TLI) {
-  // vastart just stores the address of the VarArgsFrameIndex slot into the
-  // memory location argument.
-  DebugLoc dl = Op.getDebugLoc();
-  SDValue Offset = DAG.getNode(ISD::ADD, dl, MVT::i32,
-                                 DAG.getRegister(SP::I6, MVT::i32),
-                                 DAG.getConstant(TLI.getVarArgsFrameOffset(),
-                                                 MVT::i32));
-  const Value *SV = cast<SrcValueSDNode>(Op.getOperand(2))->getValue();
-  return DAG.getStore(Op.getOperand(0), dl, Offset, Op.getOperand(1), SV, 0);
-}
-
-static SDValue LowerVAARG(SDValue Op, SelectionDAG &DAG) {
-  SDNode *Node = Op.getNode();
-  EVT VT = Node->getValueType(0);
-  SDValue InChain = Node->getOperand(0);
-  SDValue VAListPtr = Node->getOperand(1);
-  const Value *SV = cast<SrcValueSDNode>(Node->getOperand(2))->getValue();
-  DebugLoc dl = Node->getDebugLoc();
-  SDValue VAList = DAG.getLoad(MVT::i32, dl, InChain, VAListPtr, SV, 0);
-  // Increment the pointer, VAList, to the next vaarg
-  SDValue NextPtr = DAG.getNode(ISD::ADD, dl, MVT::i32, VAList,
-                                  DAG.getConstant(VT.getSizeInBits()/8,
-                                                  MVT::i32));
-  // Store the incremented VAList to the legalized pointer
-  InChain = DAG.getStore(VAList.getValue(1), dl, NextPtr,
-                         VAListPtr, SV, 0);
-  // Load the actual argument out of the pointer VAList, unless this is an
-  // f64 load.
-  if (VT != MVT::f64)
-    return DAG.getLoad(VT, dl, InChain, VAList, NULL, 0);
-
-  // Otherwise, load it as i64, then do a bitconvert.
-  SDValue V = DAG.getLoad(MVT::i64, dl, InChain, VAList, NULL, 0);
-
-  // Bit-Convert the value to f64.
-  SDValue Ops[2] = {
-    DAG.getNode(ISD::BIT_CONVERT, dl, MVT::f64, V),
-    V.getValue(1)
-  };
-  return DAG.getMergeValues(Ops, 2, dl);
-}
-
-static SDValue LowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG) {
-  SDValue Chain = Op.getOperand(0);  // Legalize the chain.
-  SDValue Size  = Op.getOperand(1);  // Legalize the size.
-  DebugLoc dl = Op.getDebugLoc();
-
-  unsigned SPReg = SP::O6;
-  SDValue SP = DAG.getCopyFromReg(Chain, dl, SPReg, MVT::i32);
-  SDValue NewSP = DAG.getNode(ISD::SUB, dl, MVT::i32, SP, Size); // Value
-  Chain = DAG.getCopyToReg(SP.getValue(1), dl, SPReg, NewSP);    // Output chain
-
-  // The resultant pointer is actually 16 words from the bottom of the stack,
-  // to provide a register spill area.
-  SDValue NewVal = DAG.getNode(ISD::ADD, dl, MVT::i32, NewSP,
-                                 DAG.getConstant(96, MVT::i32));
-  SDValue Ops[2] = { NewVal, Chain };
-  return DAG.getMergeValues(Ops, 2, dl);
-}
-
-
-SDValue SparcTargetLowering::
-LowerOperation(SDValue Op, SelectionDAG &DAG) {
-  switch (Op.getOpcode()) {
-  default: llvm_unreachable("Should not custom lower this!");
-  // Frame & Return address.  Currently unimplemented
-  case ISD::RETURNADDR: return SDValue();
-  case ISD::FRAMEADDR:  return SDValue();
-  case ISD::GlobalTLSAddress:
-    llvm_unreachable("TLS not implemented for Sparc.");
-  case ISD::GlobalAddress:      return LowerGLOBALADDRESS(Op, DAG);
-  case ISD::ConstantPool:       return LowerCONSTANTPOOL(Op, DAG);
-  case ISD::FP_TO_SINT:         return LowerFP_TO_SINT(Op, DAG);
-  case ISD::SINT_TO_FP:         return LowerSINT_TO_FP(Op, DAG);
-  case ISD::BR_CC:              return LowerBR_CC(Op, DAG);
-  case ISD::SELECT_CC:          return LowerSELECT_CC(Op, DAG);
-  case ISD::VASTART:            return LowerVASTART(Op, DAG, *this);
-  case ISD::VAARG:              return LowerVAARG(Op, DAG);
-  case ISD::DYNAMIC_STACKALLOC: return LowerDYNAMIC_STACKALLOC(Op, DAG);
-  }
-}
-
-MachineBasicBlock *
-SparcTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                 MachineBasicBlock *BB) const {
-  const TargetInstrInfo &TII = *getTargetMachine().getInstrInfo();
-  unsigned BROpcode;
-  unsigned CC;
-  DebugLoc dl = MI->getDebugLoc();
-  // Figure out the conditional branch opcode to use for this select_cc.
-  switch (MI->getOpcode()) {
-  default: llvm_unreachable("Unknown SELECT_CC!");
-  case SP::SELECT_CC_Int_ICC:
-  case SP::SELECT_CC_FP_ICC:
-  case SP::SELECT_CC_DFP_ICC:
-    BROpcode = SP::BCOND;
-    break;
-  case SP::SELECT_CC_Int_FCC:
-  case SP::SELECT_CC_FP_FCC:
-  case SP::SELECT_CC_DFP_FCC:
-    BROpcode = SP::FBCOND;
-    break;
-  }
-
-  CC = (SPCC::CondCodes)MI->getOperand(3).getImm();
-
-  // To "insert" a SELECT_CC instruction, we actually have to insert the diamond
-  // control-flow pattern.  The incoming instruction knows the destination vreg
-  // to set, the condition code register to branch on, the true/false values to
-  // select between, and a branch opcode to use.
-  const BasicBlock *LLVM_BB = BB->getBasicBlock();
-  MachineFunction::iterator It = BB;
-  ++It;
-
-  //  thisMBB:
-  //  ...
-  //   TrueVal = ...
-  //   [f]bCC copy1MBB
-  //   fallthrough --> copy0MBB
-  MachineBasicBlock *thisMBB = BB;
-  MachineFunction *F = BB->getParent();
-  MachineBasicBlock *copy0MBB = F->CreateMachineBasicBlock(LLVM_BB);
-  MachineBasicBlock *sinkMBB = F->CreateMachineBasicBlock(LLVM_BB);
-  BuildMI(BB, dl, TII.get(BROpcode)).addMBB(sinkMBB).addImm(CC);
-  F->insert(It, copy0MBB);
-  F->insert(It, sinkMBB);
-  // Update machine-CFG edges by transferring all successors of the current
-  // block to the new block which will contain the Phi node for the select.
-  sinkMBB->transferSuccessors(BB);
-  // Next, add the true and fallthrough blocks as its successors.
-  BB->addSuccessor(copy0MBB);
-  BB->addSuccessor(sinkMBB);
-
-  //  copy0MBB:
-  //   %FalseValue = ...
-  //   # fallthrough to sinkMBB
-  BB = copy0MBB;
-
-  // Update machine-CFG edges
-  BB->addSuccessor(sinkMBB);
-
-  //  sinkMBB:
-  //   %Result = phi [ %FalseValue, copy0MBB ], [ %TrueValue, thisMBB ]
-  //  ...
-  BB = sinkMBB;
-  BuildMI(BB, dl, TII.get(SP::PHI), MI->getOperand(0).getReg())
-    .addReg(MI->getOperand(2).getReg()).addMBB(copy0MBB)
-    .addReg(MI->getOperand(1).getReg()).addMBB(thisMBB);
-
-  F->DeleteMachineInstr(MI);   // The pseudo instruction is gone now.
-  return BB;
-}
-
-//===----------------------------------------------------------------------===//
-//                         Sparc Inline Assembly Support
-//===----------------------------------------------------------------------===//
-
-/// getConstraintType - Given a constraint letter, return the type of
-/// constraint it is for this target.
-SparcTargetLowering::ConstraintType
-SparcTargetLowering::getConstraintType(const std::string &Constraint) const {
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-    default:  break;
-    case 'r': return C_RegisterClass;
-    }
-  }
-
-  return TargetLowering::getConstraintType(Constraint);
-}
-
-std::pair<unsigned, const TargetRegisterClass*>
-SparcTargetLowering::getRegForInlineAsmConstraint(const std::string &Constraint,
-                                                  EVT VT) const {
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-    case 'r':
-      return std::make_pair(0U, SP::IntRegsRegisterClass);
-    }
-  }
-
-  return TargetLowering::getRegForInlineAsmConstraint(Constraint, VT);
-}
-
-std::vector<unsigned> SparcTargetLowering::
-getRegClassForInlineAsmConstraint(const std::string &Constraint,
-                                  EVT VT) const {
-  if (Constraint.size() != 1)
-    return std::vector<unsigned>();
-
-  switch (Constraint[0]) {
-  default: break;
-  case 'r':
-    return make_vector<unsigned>(SP::L0, SP::L1, SP::L2, SP::L3,
-                                 SP::L4, SP::L5, SP::L6, SP::L7,
-                                 SP::I0, SP::I1, SP::I2, SP::I3,
-                                 SP::I4, SP::I5,
-                                 SP::O0, SP::O1, SP::O2, SP::O3,
-                                 SP::O4, SP::O5, SP::O7, 0);
-  }
-
-  return std::vector<unsigned>();
-}
-
-bool
-SparcTargetLowering::isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const {
-  // The Sparc target isn't yet aware of offsets.
-  return false;
-}
-
-/// getFunctionAlignment - Return the Log2 alignment of this function.
-unsigned SparcTargetLowering::getFunctionAlignment(const Function *) const {
-  return 4;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.h b/libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.h
deleted file mode 100644
index 912f2ba..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.h
+++ /dev/null
@@ -1,102 +0,0 @@
-//===-- SparcISelLowering.h - Sparc DAG Lowering Interface ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that Sparc uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPARC_ISELLOWERING_H
-#define SPARC_ISELLOWERING_H
-
-#include "llvm/Target/TargetLowering.h"
-#include "Sparc.h"
-
-namespace llvm {
-  namespace SPISD {
-    enum {
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-      CMPICC,      // Compare two GPR operands, set icc.
-      CMPFCC,      // Compare two FP operands, set fcc.
-      BRICC,       // Branch to dest on icc condition
-      BRFCC,       // Branch to dest on fcc condition
-      SELECT_ICC,  // Select between two values using the current ICC flags.
-      SELECT_FCC,  // Select between two values using the current FCC flags.
-
-      Hi, Lo,      // Hi/Lo operations, typically on a global address.
-
-      FTOI,        // FP to Int within a FP register.
-      ITOF,        // Int to FP within a FP register.
-
-      CALL,        // A call instruction.
-      RET_FLAG     // Return with a flag operand.
-    };
-  }
-
-  class SparcTargetLowering : public TargetLowering {
-    int VarArgsFrameOffset;   // Frame offset to start of varargs area.
-  public:
-    SparcTargetLowering(TargetMachine &TM);
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-
-    int getVarArgsFrameOffset() const { return VarArgsFrameOffset; }
-
-    /// computeMaskedBitsForTargetNode - Determine which of the bits specified
-    /// in Mask are known to be either zero or one and return them in the
-    /// KnownZero/KnownOne bitsets.
-    virtual void computeMaskedBitsForTargetNode(const SDValue Op,
-                                                const APInt &Mask,
-                                                APInt &KnownZero,
-                                                APInt &KnownOne,
-                                                const SelectionDAG &DAG,
-                                                unsigned Depth = 0) const;
-
-    virtual MachineBasicBlock *EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                   MachineBasicBlock *MBB) const;
-
-    virtual const char *getTargetNodeName(unsigned Opcode) const;
-
-    ConstraintType getConstraintType(const std::string &Constraint) const;
-    std::pair<unsigned, const TargetRegisterClass*>
-    getRegForInlineAsmConstraint(const std::string &Constraint, EVT VT) const;
-    std::vector<unsigned>
-    getRegClassForInlineAsmConstraint(const std::string &Constraint,
-                                      EVT VT) const;
-
-    virtual bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const;
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *F) const;
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv,
-                           bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg,
-                bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-  };
-} // end namespace llvm
-
-#endif    // SPARC_ISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrFormats.td b/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrFormats.td
deleted file mode 100644
index 6535259..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrFormats.td
+++ /dev/null
@@ -1,114 +0,0 @@
-//===- SparcInstrFormats.td - Sparc Instruction Formats ----*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-
-class InstSP<dag outs, dag ins, string asmstr, list<dag> pattern> : Instruction {
-  field bits<32> Inst;
-
-  let Namespace = "SP";
-
-  bits<2> op;
-  let Inst{31-30} = op;               // Top two bits are the 'op' field
-  
-  dag OutOperandList = outs;
-  dag InOperandList = ins;
-  let AsmString   = asmstr;
-  let Pattern = pattern;
-}
-
-//===----------------------------------------------------------------------===//
-// Format #2 instruction classes in the Sparc
-//===----------------------------------------------------------------------===//
-
-// Format 2 instructions
-class F2<dag outs, dag ins, string asmstr, list<dag> pattern>
-   : InstSP<outs, ins, asmstr, pattern> {
-  bits<3>  op2;
-  bits<22> imm22;
-  let op          = 0;    // op = 0
-  let Inst{24-22} = op2;
-  let Inst{21-0}  = imm22;
-}
-
-// Specific F2 classes: SparcV8 manual, page 44
-//
-class F2_1<bits<3> op2Val, dag outs, dag ins, string asmstr, list<dag> pattern>
-   : F2<outs, ins, asmstr, pattern> {
-  bits<5>  rd;
-
-  let op2         = op2Val;
-
-  let Inst{29-25} = rd;
-}
-
-class F2_2<bits<4> condVal, bits<3> op2Val, dag outs, dag ins, string asmstr, 
-           list<dag> pattern> : F2<outs, ins, asmstr, pattern> {
-  bits<4>   cond;
-  bit       annul = 0;     // currently unused
-
-  let cond        = condVal;
-  let op2         = op2Val;
-
-  let Inst{29}    = annul;
-  let Inst{28-25} = cond;
-}
-
-//===----------------------------------------------------------------------===//
-// Format #3 instruction classes in the Sparc
-//===----------------------------------------------------------------------===//
-
-class F3<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstSP<outs, ins, asmstr, pattern> {
-  bits<5> rd;
-  bits<6> op3;
-  bits<5> rs1;
-  let op{1} = 1;   // Op = 2 or 3
-  let Inst{29-25} = rd;
-  let Inst{24-19} = op3;
-  let Inst{18-14} = rs1;
-}
-
-// Specific F3 classes: SparcV8 manual, page 44
-//
-class F3_1<bits<2> opVal, bits<6> op3val, dag outs, dag ins,
-           string asmstr, list<dag> pattern> : F3<outs, ins, asmstr, pattern> {
-  bits<8> asi = 0; // asi not currently used
-  bits<5> rs2;
-
-  let op         = opVal;
-  let op3        = op3val;
-
-  let Inst{13}   = 0;     // i field = 0
-  let Inst{12-5} = asi;   // address space identifier
-  let Inst{4-0}  = rs2;
-}
-
-class F3_2<bits<2> opVal, bits<6> op3val, dag outs, dag ins, 
-           string asmstr, list<dag> pattern> : F3<outs, ins, asmstr, pattern> {
-  bits<13> simm13;
-
-  let op         = opVal;
-  let op3        = op3val;
-
-  let Inst{13}   = 1;     // i field = 1
-  let Inst{12-0} = simm13;
-}
-
-// floating-point
-class F3_3<bits<2> opVal, bits<6> op3val, bits<9> opfval, dag outs, dag ins,
-           string asmstr, list<dag> pattern> : F3<outs, ins, asmstr, pattern> {
-  bits<5> rs2;
-
-  let op         = opVal;
-  let op3        = op3val;
-
-  let Inst{13-5} = opfval;   // fp opcode
-  let Inst{4-0}  = rs2;
-}
-
-
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.cpp b/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.cpp
deleted file mode 100644
index baf5d11..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-//===- SparcInstrInfo.cpp - Sparc Instruction Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Sparc implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SparcInstrInfo.h"
-#include "SparcSubtarget.h"
-#include "Sparc.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "SparcGenInstrInfo.inc"
-using namespace llvm;
-
-SparcInstrInfo::SparcInstrInfo(SparcSubtarget &ST)
-  : TargetInstrInfoImpl(SparcInsts, array_lengthof(SparcInsts)),
-    RI(ST, *this), Subtarget(ST) {
-}
-
-static bool isZeroImm(const MachineOperand &op) {
-  return op.isImm() && op.getImm() == 0;
-}
-
-/// Return true if the instruction is a register to register move and
-/// leave the source and dest operands in the passed parameters.
-///
-bool SparcInstrInfo::isMoveInstr(const MachineInstr &MI,
-                                 unsigned &SrcReg, unsigned &DstReg,
-                                 unsigned &SrcSR, unsigned &DstSR) const {
-  SrcSR = DstSR = 0; // No sub-registers.
-
-  // We look for 3 kinds of patterns here:
-  // or with G0 or 0
-  // add with G0 or 0
-  // fmovs or FpMOVD (pseudo double move).
-  if (MI.getOpcode() == SP::ORrr || MI.getOpcode() == SP::ADDrr) {
-    if (MI.getOperand(1).getReg() == SP::G0) {
-      DstReg = MI.getOperand(0).getReg();
-      SrcReg = MI.getOperand(2).getReg();
-      return true;
-    } else if (MI.getOperand(2).getReg() == SP::G0) {
-      DstReg = MI.getOperand(0).getReg();
-      SrcReg = MI.getOperand(1).getReg();
-      return true;
-    }
-  } else if ((MI.getOpcode() == SP::ORri || MI.getOpcode() == SP::ADDri) &&
-             isZeroImm(MI.getOperand(2)) && MI.getOperand(1).isReg()) {
-    DstReg = MI.getOperand(0).getReg();
-    SrcReg = MI.getOperand(1).getReg();
-    return true;
-  } else if (MI.getOpcode() == SP::FMOVS || MI.getOpcode() == SP::FpMOVD ||
-             MI.getOpcode() == SP::FMOVD) {
-    SrcReg = MI.getOperand(1).getReg();
-    DstReg = MI.getOperand(0).getReg();
-    return true;
-  }
-  return false;
-}
-
-/// isLoadFromStackSlot - If the specified machine instruction is a direct
-/// load from a stack slot, return the virtual or physical register number of
-/// the destination along with the FrameIndex of the loaded stack slot.  If
-/// not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than loading from the stack slot.
-unsigned SparcInstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
-                                             int &FrameIndex) const {
-  if (MI->getOpcode() == SP::LDri ||
-      MI->getOpcode() == SP::LDFri ||
-      MI->getOpcode() == SP::LDDFri) {
-    if (MI->getOperand(1).isFI() && MI->getOperand(2).isImm() &&
-        MI->getOperand(2).getImm() == 0) {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-  }
-  return 0;
-}
-
-/// isStoreToStackSlot - If the specified machine instruction is a direct
-/// store to a stack slot, return the virtual or physical register number of
-/// the source reg along with the FrameIndex of the loaded stack slot.  If
-/// not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than storing to the stack slot.
-unsigned SparcInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
-                                            int &FrameIndex) const {
-  if (MI->getOpcode() == SP::STri ||
-      MI->getOpcode() == SP::STFri ||
-      MI->getOpcode() == SP::STDFri) {
-    if (MI->getOperand(0).isFI() && MI->getOperand(1).isImm() &&
-        MI->getOperand(1).getImm() == 0) {
-      FrameIndex = MI->getOperand(0).getIndex();
-      return MI->getOperand(2).getReg();
-    }
-  }
-  return 0;
-}
-
-unsigned
-SparcInstrInfo::InsertBranch(MachineBasicBlock &MBB,MachineBasicBlock *TBB,
-                             MachineBasicBlock *FBB,
-                             const SmallVectorImpl<MachineOperand> &Cond)const{
-  // FIXME this should probably take a DebugLoc argument
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-  // Can only insert uncond branches so far.
-  assert(Cond.empty() && !FBB && TBB && "Can only handle uncond branches!");
-  BuildMI(&MBB, dl, get(SP::BA)).addMBB(TBB);
-  return 1;
-}
-
-bool SparcInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
-                                  MachineBasicBlock::iterator I,
-                                  unsigned DestReg, unsigned SrcReg,
-                                  const TargetRegisterClass *DestRC,
-                                  const TargetRegisterClass *SrcRC) const {
-  if (DestRC != SrcRC) {
-    // Not yet supported!
-    return false;
-  }
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  if (DestRC == SP::IntRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::ORrr), DestReg).addReg(SP::G0).addReg(SrcReg);
-  else if (DestRC == SP::FPRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::FMOVS), DestReg).addReg(SrcReg);
-  else if (DestRC == SP::DFPRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(Subtarget.isV9() ? SP::FMOVD : SP::FpMOVD),DestReg)
-      .addReg(SrcReg);
-  else
-    // Can't copy this register
-    return false;
-
-  return true;
-}
-
-void SparcInstrInfo::
-storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                    unsigned SrcReg, bool isKill, int FI,
-                    const TargetRegisterClass *RC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  // On the order of operands here: think "[FrameIdx + 0] = SrcReg".
-  if (RC == SP::IntRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::STri)).addFrameIndex(FI).addImm(0)
-      .addReg(SrcReg, getKillRegState(isKill));
-  else if (RC == SP::FPRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::STFri)).addFrameIndex(FI).addImm(0)
-      .addReg(SrcReg,  getKillRegState(isKill));
-  else if (RC == SP::DFPRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::STDFri)).addFrameIndex(FI).addImm(0)
-      .addReg(SrcReg,  getKillRegState(isKill));
-  else
-    llvm_unreachable("Can't store this register to stack slot");
-}
-
-void SparcInstrInfo::
-loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                     unsigned DestReg, int FI,
-                     const TargetRegisterClass *RC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  if (RC == SP::IntRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::LDri), DestReg).addFrameIndex(FI).addImm(0);
-  else if (RC == SP::FPRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::LDFri), DestReg).addFrameIndex(FI).addImm(0);
-  else if (RC == SP::DFPRegsRegisterClass)
-    BuildMI(MBB, I, DL, get(SP::LDDFri), DestReg).addFrameIndex(FI).addImm(0);
-  else
-    llvm_unreachable("Can't load this register from stack slot");
-}
-
-MachineInstr *SparcInstrInfo::foldMemoryOperandImpl(MachineFunction &MF,
-                                                    MachineInstr* MI,
-                                          const SmallVectorImpl<unsigned> &Ops,
-                                                    int FI) const {
-  if (Ops.size() != 1) return NULL;
-
-  unsigned OpNum = Ops[0];
-  bool isFloat = false;
-  MachineInstr *NewMI = NULL;
-  switch (MI->getOpcode()) {
-  case SP::ORrr:
-    if (MI->getOperand(1).isReg() && MI->getOperand(1).getReg() == SP::G0&&
-        MI->getOperand(0).isReg() && MI->getOperand(2).isReg()) {
-      if (OpNum == 0)    // COPY -> STORE
-        NewMI = BuildMI(MF, MI->getDebugLoc(), get(SP::STri))
-          .addFrameIndex(FI)
-          .addImm(0)
-          .addReg(MI->getOperand(2).getReg());
-      else               // COPY -> LOAD
-        NewMI = BuildMI(MF, MI->getDebugLoc(), get(SP::LDri),
-                        MI->getOperand(0).getReg())
-          .addFrameIndex(FI)
-          .addImm(0);
-    }
-    break;
-  case SP::FMOVS:
-    isFloat = true;
-    // FALLTHROUGH
-  case SP::FMOVD:
-    if (OpNum == 0) { // COPY -> STORE
-      unsigned SrcReg = MI->getOperand(1).getReg();
-      bool isKill = MI->getOperand(1).isKill();
-      bool isUndef = MI->getOperand(1).isUndef();
-      NewMI = BuildMI(MF, MI->getDebugLoc(),
-                      get(isFloat ? SP::STFri : SP::STDFri))
-        .addFrameIndex(FI)
-        .addImm(0)
-        .addReg(SrcReg, getKillRegState(isKill) | getUndefRegState(isUndef));
-    } else {             // COPY -> LOAD
-      unsigned DstReg = MI->getOperand(0).getReg();
-      bool isDead = MI->getOperand(0).isDead();
-      bool isUndef = MI->getOperand(0).isUndef();
-      NewMI = BuildMI(MF, MI->getDebugLoc(),
-                      get(isFloat ? SP::LDFri : SP::LDDFri))
-        .addReg(DstReg, RegState::Define |
-                getDeadRegState(isDead) | getUndefRegState(isUndef))
-        .addFrameIndex(FI)
-        .addImm(0);
-    }
-    break;
-  }
-
-  return NewMI;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.h b/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.h
deleted file mode 100644
index 4a51ae5..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.h
+++ /dev/null
@@ -1,104 +0,0 @@
-//===- SparcInstrInfo.h - Sparc Instruction Information ---------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Sparc implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPARCINSTRUCTIONINFO_H
-#define SPARCINSTRUCTIONINFO_H
-
-#include "llvm/Target/TargetInstrInfo.h"
-#include "SparcRegisterInfo.h"
-
-namespace llvm {
-
-/// SPII - This namespace holds all of the target specific flags that
-/// instruction info tracks.
-///
-namespace SPII {
-  enum {
-    Pseudo = (1<<0),
-    Load = (1<<1),
-    Store = (1<<2),
-    DelaySlot = (1<<3)
-  };
-}
-
-class SparcInstrInfo : public TargetInstrInfoImpl {
-  const SparcRegisterInfo RI;
-  const SparcSubtarget& Subtarget;
-public:
-  explicit SparcInstrInfo(SparcSubtarget &ST);
-
-  /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-  /// such, whenever a client has an instance of instruction info, it should
-  /// always be able to get register info as well (through this method).
-  ///
-  virtual const SparcRegisterInfo &getRegisterInfo() const { return RI; }
-
-  /// Return true if the instruction is a register to register move and return
-  /// the source and dest operands and their sub-register indices by reference.
-  virtual bool isMoveInstr(const MachineInstr &MI,
-                           unsigned &SrcReg, unsigned &DstReg,
-                           unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-  
-  /// isLoadFromStackSlot - If the specified machine instruction is a direct
-  /// load from a stack slot, return the virtual or physical register number of
-  /// the destination along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than loading from the stack slot.
-  virtual unsigned isLoadFromStackSlot(const MachineInstr *MI,
-                                       int &FrameIndex) const;
-  
-  /// isStoreToStackSlot - If the specified machine instruction is a direct
-  /// store to a stack slot, return the virtual or physical register number of
-  /// the source reg along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than storing to the stack slot.
-  virtual unsigned isStoreToStackSlot(const MachineInstr *MI,
-                                      int &FrameIndex) const;
-  
-  
-  virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                                MachineBasicBlock *FBB,
-                            const SmallVectorImpl<MachineOperand> &Cond) const;
-
-  virtual bool copyRegToReg(MachineBasicBlock &MBB,
-                            MachineBasicBlock::iterator I,
-                            unsigned DestReg, unsigned SrcReg,
-                            const TargetRegisterClass *DestRC,
-                            const TargetRegisterClass *SrcRC) const;
-  
-  virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MBBI,
-                                   unsigned SrcReg, bool isKill, int FrameIndex,
-                                   const TargetRegisterClass *RC) const;
-
-  virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MBBI,
-                                    unsigned DestReg, int FrameIndex,
-                                    const TargetRegisterClass *RC) const;
-  
-  virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                              MachineInstr* MI,
-                                           const SmallVectorImpl<unsigned> &Ops,
-                                              int FrameIndex) const;
-
-  virtual MachineInstr* foldMemoryOperandImpl(MachineFunction &MF,
-                                              MachineInstr* MI,
-                                           const SmallVectorImpl<unsigned> &Ops,
-                                              MachineInstr* LoadMI) const {
-    return 0;
-  }
-};
-
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.td b/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.td
deleted file mode 100644
index fcb4626..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.td
+++ /dev/null
@@ -1,767 +0,0 @@
-//===- SparcInstrInfo.td - Target Description for Sparc Target ------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file describes the Sparc instructions in TableGen format.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Instruction format superclass
-//===----------------------------------------------------------------------===//
-
-include "SparcInstrFormats.td"
-
-//===----------------------------------------------------------------------===//
-// Feature predicates.
-//===----------------------------------------------------------------------===//
-
-// HasV9 - This predicate is true when the target processor supports V9
-// instructions.  Note that the machine may be running in 32-bit mode.
-def HasV9   : Predicate<"Subtarget.isV9()">;
-
-// HasNoV9 - This predicate is true when the target doesn't have V9
-// instructions.  Use of this is just a hack for the isel not having proper
-// costs for V8 instructions that are more expensive than their V9 ones.
-def HasNoV9 : Predicate<"!Subtarget.isV9()">;
-
-// HasVIS - This is true when the target processor has VIS extensions.
-def HasVIS : Predicate<"Subtarget.isVIS()">;
-
-// UseDeprecatedInsts - This predicate is true when the target processor is a
-// V8, or when it is V9 but the V8 deprecated instructions are efficient enough
-// to use when appropriate.  In either of these cases, the instruction selector
-// will pick deprecated instructions.
-def UseDeprecatedInsts : Predicate<"Subtarget.useDeprecatedV8Instructions()">;
-
-//===----------------------------------------------------------------------===//
-// Instruction Pattern Stuff
-//===----------------------------------------------------------------------===//
-
-def simm11  : PatLeaf<(imm), [{
-  // simm11 predicate - True if the imm fits in a 11-bit sign extended field.
-  return (((int)N->getZExtValue() << (32-11)) >> (32-11)) ==
-         (int)N->getZExtValue();
-}]>;
-
-def simm13  : PatLeaf<(imm), [{
-  // simm13 predicate - True if the imm fits in a 13-bit sign extended field.
-  return (((int)N->getZExtValue() << (32-13)) >> (32-13)) ==
-         (int)N->getZExtValue();
-}]>;
-
-def LO10 : SDNodeXForm<imm, [{
-  return CurDAG->getTargetConstant((unsigned)N->getZExtValue() & 1023,
-                                   MVT::i32);
-}]>;
-
-def HI22 : SDNodeXForm<imm, [{
-  // Transformation function: shift the immediate value down into the low bits.
-  return CurDAG->getTargetConstant((unsigned)N->getZExtValue() >> 10, MVT::i32);
-}]>;
-
-def SETHIimm : PatLeaf<(imm), [{
-  return (((unsigned)N->getZExtValue() >> 10) << 10) ==
-         (unsigned)N->getZExtValue();
-}], HI22>;
-
-// Addressing modes.
-def ADDRrr : ComplexPattern<i32, 2, "SelectADDRrr", [], []>;
-def ADDRri : ComplexPattern<i32, 2, "SelectADDRri", [frameindex], []>;
-
-// Address operands
-def MEMrr : Operand<i32> {
-  let PrintMethod = "printMemOperand";
-  let MIOperandInfo = (ops IntRegs, IntRegs);
-}
-def MEMri : Operand<i32> {
-  let PrintMethod = "printMemOperand";
-  let MIOperandInfo = (ops IntRegs, i32imm);
-}
-
-// Branch targets have OtherVT type.
-def brtarget : Operand<OtherVT>;
-def calltarget : Operand<i32>;
-
-// Operand for printing out a condition code.
-let PrintMethod = "printCCOperand" in
-  def CCOp : Operand<i32>;
-
-def SDTSPcmpfcc : 
-SDTypeProfile<0, 2, [SDTCisFP<0>, SDTCisSameAs<0, 1>]>;
-def SDTSPbrcc : 
-SDTypeProfile<0, 2, [SDTCisVT<0, OtherVT>, SDTCisVT<1, i32>]>;
-def SDTSPselectcc :
-SDTypeProfile<1, 3, [SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>, SDTCisVT<3, i32>]>;
-def SDTSPFTOI :
-SDTypeProfile<1, 1, [SDTCisVT<0, f32>, SDTCisFP<1>]>;
-def SDTSPITOF :
-SDTypeProfile<1, 1, [SDTCisFP<0>, SDTCisVT<1, f32>]>;
-
-def SPcmpicc : SDNode<"SPISD::CMPICC", SDTIntBinOp, [SDNPOutFlag]>;
-def SPcmpfcc : SDNode<"SPISD::CMPFCC", SDTSPcmpfcc, [SDNPOutFlag]>;
-def SPbricc : SDNode<"SPISD::BRICC", SDTSPbrcc, [SDNPHasChain, SDNPInFlag]>;
-def SPbrfcc : SDNode<"SPISD::BRFCC", SDTSPbrcc, [SDNPHasChain, SDNPInFlag]>;
-
-def SPhi    : SDNode<"SPISD::Hi", SDTIntUnaryOp>;
-def SPlo    : SDNode<"SPISD::Lo", SDTIntUnaryOp>;
-
-def SPftoi  : SDNode<"SPISD::FTOI", SDTSPFTOI>;
-def SPitof  : SDNode<"SPISD::ITOF", SDTSPITOF>;
-
-def SPselecticc : SDNode<"SPISD::SELECT_ICC", SDTSPselectcc, [SDNPInFlag]>;
-def SPselectfcc : SDNode<"SPISD::SELECT_FCC", SDTSPselectcc, [SDNPInFlag]>;
-
-//  These are target-independent nodes, but have target-specific formats.
-def SDT_SPCallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i32> ]>;
-def SDT_SPCallSeqEnd   : SDCallSeqEnd<[ SDTCisVT<0, i32>,
-                                        SDTCisVT<1, i32> ]>;
-
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_SPCallSeqStart,
-                           [SDNPHasChain, SDNPOutFlag]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_SPCallSeqEnd,
-                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-def SDT_SPCall    : SDTypeProfile<0, 1, [SDTCisVT<0, i32>]>;
-def call          : SDNode<"SPISD::CALL", SDT_SPCall,
-                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-def retflag       : SDNode<"SPISD::RET_FLAG", SDTNone,
-                           [SDNPHasChain, SDNPOptInFlag]>;
-
-//===----------------------------------------------------------------------===//
-// SPARC Flag Conditions
-//===----------------------------------------------------------------------===//
-
-// Note that these values must be kept in sync with the CCOp::CondCode enum
-// values.
-class ICC_VAL<int N> : PatLeaf<(i32 N)>;
-def ICC_NE  : ICC_VAL< 9>;  // Not Equal
-def ICC_E   : ICC_VAL< 1>;  // Equal
-def ICC_G   : ICC_VAL<10>;  // Greater
-def ICC_LE  : ICC_VAL< 2>;  // Less or Equal
-def ICC_GE  : ICC_VAL<11>;  // Greater or Equal
-def ICC_L   : ICC_VAL< 3>;  // Less
-def ICC_GU  : ICC_VAL<12>;  // Greater Unsigned
-def ICC_LEU : ICC_VAL< 4>;  // Less or Equal Unsigned
-def ICC_CC  : ICC_VAL<13>;  // Carry Clear/Great or Equal Unsigned
-def ICC_CS  : ICC_VAL< 5>;  // Carry Set/Less Unsigned
-def ICC_POS : ICC_VAL<14>;  // Positive
-def ICC_NEG : ICC_VAL< 6>;  // Negative
-def ICC_VC  : ICC_VAL<15>;  // Overflow Clear
-def ICC_VS  : ICC_VAL< 7>;  // Overflow Set
-
-class FCC_VAL<int N> : PatLeaf<(i32 N)>;
-def FCC_U   : FCC_VAL<23>;  // Unordered
-def FCC_G   : FCC_VAL<22>;  // Greater
-def FCC_UG  : FCC_VAL<21>;  // Unordered or Greater
-def FCC_L   : FCC_VAL<20>;  // Less
-def FCC_UL  : FCC_VAL<19>;  // Unordered or Less
-def FCC_LG  : FCC_VAL<18>;  // Less or Greater
-def FCC_NE  : FCC_VAL<17>;  // Not Equal
-def FCC_E   : FCC_VAL<25>;  // Equal
-def FCC_UE  : FCC_VAL<24>;  // Unordered or Equal
-def FCC_GE  : FCC_VAL<25>;  // Greater or Equal
-def FCC_UGE : FCC_VAL<26>;  // Unordered or Greater or Equal
-def FCC_LE  : FCC_VAL<27>;  // Less or Equal
-def FCC_ULE : FCC_VAL<28>;  // Unordered or Less or Equal
-def FCC_O   : FCC_VAL<29>;  // Ordered
-
-//===----------------------------------------------------------------------===//
-// Instruction Class Templates
-//===----------------------------------------------------------------------===//
-
-/// F3_12 multiclass - Define a normal F3_1/F3_2 pattern in one shot.
-multiclass F3_12<string OpcStr, bits<6> Op3Val, SDNode OpNode> {
-  def rr  : F3_1<2, Op3Val, 
-                 (outs IntRegs:$dst), (ins IntRegs:$b, IntRegs:$c),
-                 !strconcat(OpcStr, " $b, $c, $dst"),
-                 [(set IntRegs:$dst, (OpNode IntRegs:$b, IntRegs:$c))]>;
-  def ri  : F3_2<2, Op3Val,
-                 (outs IntRegs:$dst), (ins IntRegs:$b, i32imm:$c),
-                 !strconcat(OpcStr, " $b, $c, $dst"),
-                 [(set IntRegs:$dst, (OpNode IntRegs:$b, simm13:$c))]>;
-}
-
-/// F3_12np multiclass - Define a normal F3_1/F3_2 pattern in one shot, with no
-/// pattern.
-multiclass F3_12np<string OpcStr, bits<6> Op3Val> {
-  def rr  : F3_1<2, Op3Val, 
-                 (outs IntRegs:$dst), (ins IntRegs:$b, IntRegs:$c),
-                 !strconcat(OpcStr, " $b, $c, $dst"), []>;
-  def ri  : F3_2<2, Op3Val,
-                 (outs IntRegs:$dst), (ins IntRegs:$b, i32imm:$c),
-                 !strconcat(OpcStr, " $b, $c, $dst"), []>;
-}
-
-//===----------------------------------------------------------------------===//
-// Instructions
-//===----------------------------------------------------------------------===//
-
-// Pseudo instructions.
-class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
-   : InstSP<outs, ins, asmstr, pattern>;
-
-let Defs = [O6], Uses = [O6] in {
-def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt),
-                               "!ADJCALLSTACKDOWN $amt",
-                               [(callseq_start timm:$amt)]>;
-def ADJCALLSTACKUP : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2),
-                            "!ADJCALLSTACKUP $amt1",
-                            [(callseq_end timm:$amt1, timm:$amt2)]>;
-}
-
-// FpMOVD/FpNEGD/FpABSD - These are lowered to single-precision ops by the 
-// fpmover pass.
-let Predicates = [HasNoV9] in {  // Only emit these in V8 mode.
-  def FpMOVD : Pseudo<(outs DFPRegs:$dst), (ins DFPRegs:$src),
-                      "!FpMOVD $src, $dst", []>;
-  def FpNEGD : Pseudo<(outs DFPRegs:$dst), (ins DFPRegs:$src),
-                      "!FpNEGD $src, $dst",
-                      [(set DFPRegs:$dst, (fneg DFPRegs:$src))]>;
-  def FpABSD : Pseudo<(outs DFPRegs:$dst), (ins DFPRegs:$src),
-                      "!FpABSD $src, $dst",
-                      [(set DFPRegs:$dst, (fabs DFPRegs:$src))]>;
-}
-
-// SELECT_CC_* - Used to implement the SELECT_CC DAG operation.  Expanded by the
-// scheduler into a branch sequence.  This has to handle all permutations of
-// selection between i32/f32/f64 on ICC and FCC.
-let usesCustomDAGSchedInserter = 1 in {   // Expanded by the scheduler.
-  def SELECT_CC_Int_ICC
-   : Pseudo<(outs IntRegs:$dst), (ins IntRegs:$T, IntRegs:$F, i32imm:$Cond),
-            "; SELECT_CC_Int_ICC PSEUDO!",
-            [(set IntRegs:$dst, (SPselecticc IntRegs:$T, IntRegs:$F,
-                                             imm:$Cond))]>;
-  def SELECT_CC_Int_FCC
-   : Pseudo<(outs IntRegs:$dst), (ins IntRegs:$T, IntRegs:$F, i32imm:$Cond),
-            "; SELECT_CC_Int_FCC PSEUDO!",
-            [(set IntRegs:$dst, (SPselectfcc IntRegs:$T, IntRegs:$F,
-                                             imm:$Cond))]>;
-  def SELECT_CC_FP_ICC
-   : Pseudo<(outs FPRegs:$dst), (ins FPRegs:$T, FPRegs:$F, i32imm:$Cond),
-            "; SELECT_CC_FP_ICC PSEUDO!",
-            [(set FPRegs:$dst, (SPselecticc FPRegs:$T, FPRegs:$F,
-                                            imm:$Cond))]>;
-  def SELECT_CC_FP_FCC
-   : Pseudo<(outs FPRegs:$dst), (ins FPRegs:$T, FPRegs:$F, i32imm:$Cond),
-            "; SELECT_CC_FP_FCC PSEUDO!",
-            [(set FPRegs:$dst, (SPselectfcc FPRegs:$T, FPRegs:$F,
-                                            imm:$Cond))]>;
-  def SELECT_CC_DFP_ICC
-   : Pseudo<(outs DFPRegs:$dst), (ins DFPRegs:$T, DFPRegs:$F, i32imm:$Cond),
-            "; SELECT_CC_DFP_ICC PSEUDO!",
-            [(set DFPRegs:$dst, (SPselecticc DFPRegs:$T, DFPRegs:$F,
-                                             imm:$Cond))]>;
-  def SELECT_CC_DFP_FCC
-   : Pseudo<(outs DFPRegs:$dst), (ins DFPRegs:$T, DFPRegs:$F, i32imm:$Cond),
-            "; SELECT_CC_DFP_FCC PSEUDO!",
-            [(set DFPRegs:$dst, (SPselectfcc DFPRegs:$T, DFPRegs:$F,
-                                             imm:$Cond))]>;
-}
-
-
-// Section A.3 - Synthetic Instructions, p. 85
-// special cases of JMPL:
-let isReturn = 1, isTerminator = 1, hasDelaySlot = 1 in {
-  let rd = O7.Num, rs1 = G0.Num, simm13 = 8 in
-    def RETL: F3_2<2, 0b111000, (outs), (ins), "retl", [(retflag)]>;
-}
-
-// Section B.1 - Load Integer Instructions, p. 90
-def LDSBrr : F3_1<3, 0b001001,
-                  (outs IntRegs:$dst), (ins MEMrr:$addr),
-                  "ldsb [$addr], $dst",
-                  [(set IntRegs:$dst, (sextloadi8 ADDRrr:$addr))]>;
-def LDSBri : F3_2<3, 0b001001,
-                  (outs IntRegs:$dst), (ins MEMri:$addr),
-                  "ldsb [$addr], $dst",
-                  [(set IntRegs:$dst, (sextloadi8 ADDRri:$addr))]>;
-def LDSHrr : F3_1<3, 0b001010,
-                  (outs IntRegs:$dst), (ins MEMrr:$addr),
-                  "ldsh [$addr], $dst",
-                  [(set IntRegs:$dst, (sextloadi16 ADDRrr:$addr))]>;
-def LDSHri : F3_2<3, 0b001010,
-                  (outs IntRegs:$dst), (ins MEMri:$addr),
-                  "ldsh [$addr], $dst",
-                  [(set IntRegs:$dst, (sextloadi16 ADDRri:$addr))]>;
-def LDUBrr : F3_1<3, 0b000001,
-                  (outs IntRegs:$dst), (ins MEMrr:$addr),
-                  "ldub [$addr], $dst",
-                  [(set IntRegs:$dst, (zextloadi8 ADDRrr:$addr))]>;
-def LDUBri : F3_2<3, 0b000001,
-                  (outs IntRegs:$dst), (ins MEMri:$addr),
-                  "ldub [$addr], $dst",
-                  [(set IntRegs:$dst, (zextloadi8 ADDRri:$addr))]>;
-def LDUHrr : F3_1<3, 0b000010,
-                  (outs IntRegs:$dst), (ins MEMrr:$addr),
-                  "lduh [$addr], $dst",
-                  [(set IntRegs:$dst, (zextloadi16 ADDRrr:$addr))]>;
-def LDUHri : F3_2<3, 0b000010,
-                  (outs IntRegs:$dst), (ins MEMri:$addr),
-                  "lduh [$addr], $dst",
-                  [(set IntRegs:$dst, (zextloadi16 ADDRri:$addr))]>;
-def LDrr   : F3_1<3, 0b000000,
-                  (outs IntRegs:$dst), (ins MEMrr:$addr),
-                  "ld [$addr], $dst",
-                  [(set IntRegs:$dst, (load ADDRrr:$addr))]>;
-def LDri   : F3_2<3, 0b000000,
-                  (outs IntRegs:$dst), (ins MEMri:$addr),
-                  "ld [$addr], $dst",
-                  [(set IntRegs:$dst, (load ADDRri:$addr))]>;
-
-// Section B.2 - Load Floating-point Instructions, p. 92
-def LDFrr  : F3_1<3, 0b100000,
-                  (outs FPRegs:$dst), (ins MEMrr:$addr),
-                  "ld [$addr], $dst",
-                  [(set FPRegs:$dst, (load ADDRrr:$addr))]>;
-def LDFri  : F3_2<3, 0b100000,
-                  (outs FPRegs:$dst), (ins MEMri:$addr),
-                  "ld [$addr], $dst",
-                  [(set FPRegs:$dst, (load ADDRri:$addr))]>;
-def LDDFrr : F3_1<3, 0b100011,
-                  (outs DFPRegs:$dst), (ins MEMrr:$addr),
-                  "ldd [$addr], $dst",
-                  [(set DFPRegs:$dst, (load ADDRrr:$addr))]>;
-def LDDFri : F3_2<3, 0b100011,
-                  (outs DFPRegs:$dst), (ins MEMri:$addr),
-                  "ldd [$addr], $dst",
-                  [(set DFPRegs:$dst, (load ADDRri:$addr))]>;
-
-// Section B.4 - Store Integer Instructions, p. 95
-def STBrr : F3_1<3, 0b000101,
-                 (outs), (ins MEMrr:$addr, IntRegs:$src),
-                 "stb $src, [$addr]",
-                 [(truncstorei8 IntRegs:$src, ADDRrr:$addr)]>;
-def STBri : F3_2<3, 0b000101,
-                 (outs), (ins MEMri:$addr, IntRegs:$src),
-                 "stb $src, [$addr]",
-                 [(truncstorei8 IntRegs:$src, ADDRri:$addr)]>;
-def STHrr : F3_1<3, 0b000110,
-                 (outs), (ins MEMrr:$addr, IntRegs:$src),
-                 "sth $src, [$addr]",
-                 [(truncstorei16 IntRegs:$src, ADDRrr:$addr)]>;
-def STHri : F3_2<3, 0b000110,
-                 (outs), (ins MEMri:$addr, IntRegs:$src),
-                 "sth $src, [$addr]",
-                 [(truncstorei16 IntRegs:$src, ADDRri:$addr)]>;
-def STrr  : F3_1<3, 0b000100,
-                 (outs), (ins MEMrr:$addr, IntRegs:$src),
-                 "st $src, [$addr]",
-                 [(store IntRegs:$src, ADDRrr:$addr)]>;
-def STri  : F3_2<3, 0b000100,
-                 (outs), (ins MEMri:$addr, IntRegs:$src),
-                 "st $src, [$addr]",
-                 [(store IntRegs:$src, ADDRri:$addr)]>;
-
-// Section B.5 - Store Floating-point Instructions, p. 97
-def STFrr   : F3_1<3, 0b100100,
-                   (outs), (ins MEMrr:$addr, FPRegs:$src),
-                   "st $src, [$addr]",
-                   [(store FPRegs:$src, ADDRrr:$addr)]>;
-def STFri   : F3_2<3, 0b100100,
-                   (outs), (ins MEMri:$addr, FPRegs:$src),
-                   "st $src, [$addr]",
-                   [(store FPRegs:$src, ADDRri:$addr)]>;
-def STDFrr  : F3_1<3, 0b100111,
-                   (outs), (ins MEMrr:$addr, DFPRegs:$src),
-                   "std  $src, [$addr]",
-                   [(store DFPRegs:$src, ADDRrr:$addr)]>;
-def STDFri  : F3_2<3, 0b100111,
-                   (outs), (ins MEMri:$addr, DFPRegs:$src),
-                   "std $src, [$addr]",
-                   [(store DFPRegs:$src, ADDRri:$addr)]>;
-
-// Section B.9 - SETHI Instruction, p. 104
-def SETHIi: F2_1<0b100,
-                 (outs IntRegs:$dst), (ins i32imm:$src),
-                 "sethi $src, $dst",
-                 [(set IntRegs:$dst, SETHIimm:$src)]>;
-
-// Section B.10 - NOP Instruction, p. 105
-// (It's a special case of SETHI)
-let rd = 0, imm22 = 0 in
-  def NOP : F2_1<0b100, (outs), (ins), "nop", []>;
-
-// Section B.11 - Logical Instructions, p. 106
-defm AND    : F3_12<"and", 0b000001, and>;
-
-def ANDNrr  : F3_1<2, 0b000101,
-                   (outs IntRegs:$dst), (ins IntRegs:$b, IntRegs:$c),
-                   "andn $b, $c, $dst",
-                   [(set IntRegs:$dst, (and IntRegs:$b, (not IntRegs:$c)))]>;
-def ANDNri  : F3_2<2, 0b000101,
-                   (outs IntRegs:$dst), (ins IntRegs:$b, i32imm:$c),
-                   "andn $b, $c, $dst", []>;
-
-defm OR     : F3_12<"or", 0b000010, or>;
-
-def ORNrr   : F3_1<2, 0b000110,
-                   (outs IntRegs:$dst), (ins IntRegs:$b, IntRegs:$c),
-                   "orn $b, $c, $dst",
-                   [(set IntRegs:$dst, (or IntRegs:$b, (not IntRegs:$c)))]>;
-def ORNri   : F3_2<2, 0b000110,
-                   (outs IntRegs:$dst), (ins IntRegs:$b, i32imm:$c),
-                   "orn $b, $c, $dst", []>;
-defm XOR    : F3_12<"xor", 0b000011, xor>;
-
-def XNORrr  : F3_1<2, 0b000111,
-                   (outs IntRegs:$dst), (ins IntRegs:$b, IntRegs:$c),
-                   "xnor $b, $c, $dst",
-                   [(set IntRegs:$dst, (not (xor IntRegs:$b, IntRegs:$c)))]>;
-def XNORri  : F3_2<2, 0b000111,
-                   (outs IntRegs:$dst), (ins IntRegs:$b, i32imm:$c),
-                   "xnor $b, $c, $dst", []>;
-
-// Section B.12 - Shift Instructions, p. 107
-defm SLL : F3_12<"sll", 0b100101, shl>;
-defm SRL : F3_12<"srl", 0b100110, srl>;
-defm SRA : F3_12<"sra", 0b100111, sra>;
-
-// Section B.13 - Add Instructions, p. 108
-defm ADD   : F3_12<"add", 0b000000, add>;
-
-// "LEA" forms of add (patterns to make tblgen happy)
-def LEA_ADDri   : F3_2<2, 0b000000,
-                   (outs IntRegs:$dst), (ins MEMri:$addr),
-                   "add ${addr:arith}, $dst",
-                   [(set IntRegs:$dst, ADDRri:$addr)]>;
-                   
-defm ADDCC  : F3_12<"addcc", 0b010000, addc>;
-defm ADDX  : F3_12<"addx", 0b001000, adde>;
-
-// Section B.15 - Subtract Instructions, p. 110
-defm SUB    : F3_12  <"sub"  , 0b000100, sub>;
-defm SUBX   : F3_12  <"subx" , 0b001100, sube>;
-defm SUBCC  : F3_12  <"subcc", 0b010100, SPcmpicc>;
-
-def SUBXCCrr: F3_1<2, 0b011100, 
-                   (outs IntRegs:$dst), (ins IntRegs:$b, IntRegs:$c),
-                   "subxcc $b, $c, $dst", []>;
-
-// Section B.18 - Multiply Instructions, p. 113
-defm UMUL : F3_12np<"umul", 0b001010>;
-defm SMUL : F3_12  <"smul", 0b001011, mul>;
-
-
-// Section B.19 - Divide Instructions, p. 115
-defm UDIV : F3_12np<"udiv", 0b001110>;
-defm SDIV : F3_12np<"sdiv", 0b001111>;
-
-// Section B.20 - SAVE and RESTORE, p. 117
-defm SAVE    : F3_12np<"save"   , 0b111100>;
-defm RESTORE : F3_12np<"restore", 0b111101>;
-
-// Section B.21 - Branch on Integer Condition Codes Instructions, p. 119
-
-// conditional branch class:
-class BranchSP<bits<4> cc, dag ins, string asmstr, list<dag> pattern>
- : F2_2<cc, 0b010, (outs), ins, asmstr, pattern> {
-  let isBranch = 1;
-  let isTerminator = 1;
-  let hasDelaySlot = 1;
-}
-
-let isBarrier = 1 in
-  def BA   : BranchSP<0b1000, (ins brtarget:$dst),
-                      "ba $dst",
-                      [(br bb:$dst)]>;
-                      
-// FIXME: the encoding for the JIT should look at the condition field.
-def BCOND : BranchSP<0, (ins brtarget:$dst, CCOp:$cc),
-                     "b$cc $dst",
-                     [(SPbricc bb:$dst, imm:$cc)]>;
-
-
-// Section B.22 - Branch on Floating-point Condition Codes Instructions, p. 121
-
-// floating-point conditional branch class:
-class FPBranchSP<bits<4> cc, dag ins, string asmstr, list<dag> pattern>
- : F2_2<cc, 0b110, (outs), ins, asmstr, pattern> {
-  let isBranch = 1;
-  let isTerminator = 1;
-  let hasDelaySlot = 1;
-}
-
-// FIXME: the encoding for the JIT should look at the condition field.
-def FBCOND  : FPBranchSP<0, (ins brtarget:$dst, CCOp:$cc),
-                      "fb$cc $dst",
-                      [(SPbrfcc bb:$dst, imm:$cc)]>;
-
-
-// Section B.24 - Call and Link Instruction, p. 125
-// This is the only Format 1 instruction
-let Uses = [O0, O1, O2, O3, O4, O5],
-    hasDelaySlot = 1, isCall = 1,
-    Defs = [O0, O1, O2, O3, O4, O5, O7, G1, G2, G3, G4, G5, G6, G7,
-    D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15] in { 
-  def CALL : InstSP<(outs), (ins calltarget:$dst),
-                    "call $dst", []> {
-    bits<30> disp;
-    let op = 1;
-    let Inst{29-0} = disp;
-  }
-  
-  // indirect calls
-  def JMPLrr : F3_1<2, 0b111000,
-                    (outs), (ins MEMrr:$ptr),
-                    "call $ptr",
-                    [(call  ADDRrr:$ptr)]>;
-  def JMPLri : F3_2<2, 0b111000,
-                    (outs), (ins MEMri:$ptr),
-                    "call $ptr",
-                    [(call  ADDRri:$ptr)]>;
-}
-
-// Section B.28 - Read State Register Instructions
-def RDY : F3_1<2, 0b101000,
-               (outs IntRegs:$dst), (ins),
-               "rd %y, $dst", []>;
-
-// Section B.29 - Write State Register Instructions
-def WRYrr : F3_1<2, 0b110000,
-                 (outs), (ins IntRegs:$b, IntRegs:$c),
-                 "wr $b, $c, %y", []>;
-def WRYri : F3_2<2, 0b110000,
-                 (outs), (ins IntRegs:$b, i32imm:$c),
-                 "wr $b, $c, %y", []>;
-
-// Convert Integer to Floating-point Instructions, p. 141
-def FITOS : F3_3<2, 0b110100, 0b011000100,
-                 (outs FPRegs:$dst), (ins FPRegs:$src),
-                 "fitos $src, $dst",
-                 [(set FPRegs:$dst, (SPitof FPRegs:$src))]>;
-def FITOD : F3_3<2, 0b110100, 0b011001000, 
-                 (outs DFPRegs:$dst), (ins FPRegs:$src),
-                 "fitod $src, $dst",
-                 [(set DFPRegs:$dst, (SPitof FPRegs:$src))]>;
-
-// Convert Floating-point to Integer Instructions, p. 142
-def FSTOI : F3_3<2, 0b110100, 0b011010001,
-                 (outs FPRegs:$dst), (ins FPRegs:$src),
-                 "fstoi $src, $dst",
-                 [(set FPRegs:$dst, (SPftoi FPRegs:$src))]>;
-def FDTOI : F3_3<2, 0b110100, 0b011010010,
-                 (outs FPRegs:$dst), (ins DFPRegs:$src),
-                 "fdtoi $src, $dst",
-                 [(set FPRegs:$dst, (SPftoi DFPRegs:$src))]>;
-
-// Convert between Floating-point Formats Instructions, p. 143
-def FSTOD : F3_3<2, 0b110100, 0b011001001, 
-                 (outs DFPRegs:$dst), (ins FPRegs:$src),
-                 "fstod $src, $dst",
-                 [(set DFPRegs:$dst, (fextend FPRegs:$src))]>;
-def FDTOS : F3_3<2, 0b110100, 0b011000110,
-                 (outs FPRegs:$dst), (ins DFPRegs:$src),
-                 "fdtos $src, $dst",
-                 [(set FPRegs:$dst, (fround DFPRegs:$src))]>;
-
-// Floating-point Move Instructions, p. 144
-def FMOVS : F3_3<2, 0b110100, 0b000000001,
-                 (outs FPRegs:$dst), (ins FPRegs:$src),
-                 "fmovs $src, $dst", []>;
-def FNEGS : F3_3<2, 0b110100, 0b000000101, 
-                 (outs FPRegs:$dst), (ins FPRegs:$src),
-                 "fnegs $src, $dst",
-                 [(set FPRegs:$dst, (fneg FPRegs:$src))]>;
-def FABSS : F3_3<2, 0b110100, 0b000001001, 
-                 (outs FPRegs:$dst), (ins FPRegs:$src),
-                 "fabss $src, $dst",
-                 [(set FPRegs:$dst, (fabs FPRegs:$src))]>;
-
-
-// Floating-point Square Root Instructions, p.145
-def FSQRTS : F3_3<2, 0b110100, 0b000101001, 
-                  (outs FPRegs:$dst), (ins FPRegs:$src),
-                  "fsqrts $src, $dst",
-                  [(set FPRegs:$dst, (fsqrt FPRegs:$src))]>;
-def FSQRTD : F3_3<2, 0b110100, 0b000101010, 
-                  (outs DFPRegs:$dst), (ins DFPRegs:$src),
-                  "fsqrtd $src, $dst",
-                  [(set DFPRegs:$dst, (fsqrt DFPRegs:$src))]>;
-
-
-
-// Floating-point Add and Subtract Instructions, p. 146
-def FADDS  : F3_3<2, 0b110100, 0b001000001,
-                  (outs FPRegs:$dst), (ins FPRegs:$src1, FPRegs:$src2),
-                  "fadds $src1, $src2, $dst",
-                  [(set FPRegs:$dst, (fadd FPRegs:$src1, FPRegs:$src2))]>;
-def FADDD  : F3_3<2, 0b110100, 0b001000010,
-                  (outs DFPRegs:$dst), (ins DFPRegs:$src1, DFPRegs:$src2),
-                  "faddd $src1, $src2, $dst",
-                  [(set DFPRegs:$dst, (fadd DFPRegs:$src1, DFPRegs:$src2))]>;
-def FSUBS  : F3_3<2, 0b110100, 0b001000101,
-                  (outs FPRegs:$dst), (ins FPRegs:$src1, FPRegs:$src2),
-                  "fsubs $src1, $src2, $dst",
-                  [(set FPRegs:$dst, (fsub FPRegs:$src1, FPRegs:$src2))]>;
-def FSUBD  : F3_3<2, 0b110100, 0b001000110,
-                  (outs DFPRegs:$dst), (ins DFPRegs:$src1, DFPRegs:$src2),
-                  "fsubd $src1, $src2, $dst",
-                  [(set DFPRegs:$dst, (fsub DFPRegs:$src1, DFPRegs:$src2))]>;
-
-// Floating-point Multiply and Divide Instructions, p. 147
-def FMULS  : F3_3<2, 0b110100, 0b001001001,
-                  (outs FPRegs:$dst), (ins FPRegs:$src1, FPRegs:$src2),
-                  "fmuls $src1, $src2, $dst",
-                  [(set FPRegs:$dst, (fmul FPRegs:$src1, FPRegs:$src2))]>;
-def FMULD  : F3_3<2, 0b110100, 0b001001010,
-                  (outs DFPRegs:$dst), (ins DFPRegs:$src1, DFPRegs:$src2),
-                  "fmuld $src1, $src2, $dst",
-                  [(set DFPRegs:$dst, (fmul DFPRegs:$src1, DFPRegs:$src2))]>;
-def FSMULD : F3_3<2, 0b110100, 0b001101001,
-                  (outs DFPRegs:$dst), (ins FPRegs:$src1, FPRegs:$src2),
-                  "fsmuld $src1, $src2, $dst",
-                  [(set DFPRegs:$dst, (fmul (fextend FPRegs:$src1),
-                                            (fextend FPRegs:$src2)))]>;
-def FDIVS  : F3_3<2, 0b110100, 0b001001101,
-                 (outs FPRegs:$dst), (ins FPRegs:$src1, FPRegs:$src2),
-                 "fdivs $src1, $src2, $dst",
-                 [(set FPRegs:$dst, (fdiv FPRegs:$src1, FPRegs:$src2))]>;
-def FDIVD  : F3_3<2, 0b110100, 0b001001110,
-                 (outs DFPRegs:$dst), (ins DFPRegs:$src1, DFPRegs:$src2),
-                 "fdivd $src1, $src2, $dst",
-                 [(set DFPRegs:$dst, (fdiv DFPRegs:$src1, DFPRegs:$src2))]>;
-
-// Floating-point Compare Instructions, p. 148
-// Note: the 2nd template arg is different for these guys.
-// Note 2: the result of a FCMP is not available until the 2nd cycle
-// after the instr is retired, but there is no interlock. This behavior
-// is modelled with a forced noop after the instruction.
-def FCMPS  : F3_3<2, 0b110101, 0b001010001,
-                  (outs), (ins FPRegs:$src1, FPRegs:$src2),
-                  "fcmps $src1, $src2\n\tnop",
-                  [(SPcmpfcc FPRegs:$src1, FPRegs:$src2)]>;
-def FCMPD  : F3_3<2, 0b110101, 0b001010010,
-                  (outs), (ins DFPRegs:$src1, DFPRegs:$src2),
-                  "fcmpd $src1, $src2\n\tnop",
-                  [(SPcmpfcc DFPRegs:$src1, DFPRegs:$src2)]>;
-
-
-//===----------------------------------------------------------------------===//
-// V9 Instructions
-//===----------------------------------------------------------------------===//
-
-// V9 Conditional Moves.
-let Predicates = [HasV9], isTwoAddress = 1 in {
-  // Move Integer Register on Condition (MOVcc) p. 194 of the V9 manual.
-  // FIXME: Add instruction encodings for the JIT some day.
-  def MOVICCrr
-    : Pseudo<(outs IntRegs:$dst), (ins IntRegs:$T, IntRegs:$F, CCOp:$cc),
-             "mov$cc %icc, $F, $dst",
-             [(set IntRegs:$dst,
-                         (SPselecticc IntRegs:$F, IntRegs:$T, imm:$cc))]>;
-  def MOVICCri
-    : Pseudo<(outs IntRegs:$dst), (ins IntRegs:$T, i32imm:$F, CCOp:$cc),
-             "mov$cc %icc, $F, $dst",
-             [(set IntRegs:$dst,
-                          (SPselecticc simm11:$F, IntRegs:$T, imm:$cc))]>;
-
-  def MOVFCCrr
-    : Pseudo<(outs IntRegs:$dst), (ins IntRegs:$T, IntRegs:$F, CCOp:$cc),
-             "mov$cc %fcc0, $F, $dst",
-             [(set IntRegs:$dst,
-                         (SPselectfcc IntRegs:$F, IntRegs:$T, imm:$cc))]>;
-  def MOVFCCri
-    : Pseudo<(outs IntRegs:$dst), (ins IntRegs:$T, i32imm:$F, CCOp:$cc),
-             "mov$cc %fcc0, $F, $dst",
-             [(set IntRegs:$dst,
-                          (SPselectfcc simm11:$F, IntRegs:$T, imm:$cc))]>;
-
-  def FMOVS_ICC
-    : Pseudo<(outs FPRegs:$dst), (ins FPRegs:$T, FPRegs:$F, CCOp:$cc),
-             "fmovs$cc %icc, $F, $dst",
-             [(set FPRegs:$dst,
-                         (SPselecticc FPRegs:$F, FPRegs:$T, imm:$cc))]>;
-  def FMOVD_ICC
-    : Pseudo<(outs DFPRegs:$dst), (ins DFPRegs:$T, DFPRegs:$F, CCOp:$cc),
-             "fmovd$cc %icc, $F, $dst",
-             [(set DFPRegs:$dst,
-                         (SPselecticc DFPRegs:$F, DFPRegs:$T, imm:$cc))]>;
-  def FMOVS_FCC
-    : Pseudo<(outs FPRegs:$dst), (ins FPRegs:$T, FPRegs:$F, CCOp:$cc),
-             "fmovs$cc %fcc0, $F, $dst",
-             [(set FPRegs:$dst,
-                         (SPselectfcc FPRegs:$F, FPRegs:$T, imm:$cc))]>;
-  def FMOVD_FCC
-    : Pseudo<(outs DFPRegs:$dst), (ins DFPRegs:$T, DFPRegs:$F, CCOp:$cc),
-             "fmovd$cc %fcc0, $F, $dst",
-             [(set DFPRegs:$dst,
-                         (SPselectfcc DFPRegs:$F, DFPRegs:$T, imm:$cc))]>;
-
-}
-
-// Floating-Point Move Instructions, p. 164 of the V9 manual.
-let Predicates = [HasV9] in {
-  def FMOVD : F3_3<2, 0b110100, 0b000000010,
-                   (outs DFPRegs:$dst), (ins DFPRegs:$src),
-                   "fmovd $src, $dst", []>;
-  def FNEGD : F3_3<2, 0b110100, 0b000000110, 
-                   (outs DFPRegs:$dst), (ins DFPRegs:$src),
-                   "fnegd $src, $dst",
-                   [(set DFPRegs:$dst, (fneg DFPRegs:$src))]>;
-  def FABSD : F3_3<2, 0b110100, 0b000001010, 
-                   (outs DFPRegs:$dst), (ins DFPRegs:$src),
-                   "fabsd $src, $dst",
-                   [(set DFPRegs:$dst, (fabs DFPRegs:$src))]>;
-}
-
-// POPCrr - This does a ctpop of a 64-bit register.  As such, we have to clear
-// the top 32-bits before using it.  To do this clearing, we use a SLLri X,0.
-def POPCrr : F3_1<2, 0b101110, 
-                  (outs IntRegs:$dst), (ins IntRegs:$src),
-                  "popc $src, $dst", []>, Requires<[HasV9]>;
-def : Pat<(ctpop IntRegs:$src),
-          (POPCrr (SLLri IntRegs:$src, 0))>;
-
-//===----------------------------------------------------------------------===//
-// Non-Instruction Patterns
-//===----------------------------------------------------------------------===//
-
-// Small immediates.
-def : Pat<(i32 simm13:$val),
-          (ORri G0, imm:$val)>;
-// Arbitrary immediates.
-def : Pat<(i32 imm:$val),
-          (ORri (SETHIi (HI22 imm:$val)), (LO10 imm:$val))>;
-
-// subc
-def : Pat<(subc IntRegs:$b, IntRegs:$c),
-          (SUBCCrr IntRegs:$b, IntRegs:$c)>;
-def : Pat<(subc IntRegs:$b, simm13:$val),
-          (SUBCCri IntRegs:$b, imm:$val)>;
-
-// Global addresses, constant pool entries
-def : Pat<(SPhi tglobaladdr:$in), (SETHIi tglobaladdr:$in)>;
-def : Pat<(SPlo tglobaladdr:$in), (ORri G0, tglobaladdr:$in)>;
-def : Pat<(SPhi tconstpool:$in), (SETHIi tconstpool:$in)>;
-def : Pat<(SPlo tconstpool:$in), (ORri G0, tconstpool:$in)>;
-
-// Add reg, lo.  This is used when taking the addr of a global/constpool entry.
-def : Pat<(add IntRegs:$r, (SPlo tglobaladdr:$in)),
-          (ADDri IntRegs:$r, tglobaladdr:$in)>;
-def : Pat<(add IntRegs:$r, (SPlo tconstpool:$in)),
-          (ADDri IntRegs:$r, tconstpool:$in)>;
-
-// Calls: 
-def : Pat<(call tglobaladdr:$dst),
-          (CALL tglobaladdr:$dst)>;
-def : Pat<(call texternalsym:$dst),
-          (CALL texternalsym:$dst)>;
-
-// Map integer extload's to zextloads.
-def : Pat<(i32 (extloadi1 ADDRrr:$src)), (LDUBrr ADDRrr:$src)>;
-def : Pat<(i32 (extloadi1 ADDRri:$src)), (LDUBri ADDRri:$src)>;
-def : Pat<(i32 (extloadi8 ADDRrr:$src)), (LDUBrr ADDRrr:$src)>;
-def : Pat<(i32 (extloadi8 ADDRri:$src)), (LDUBri ADDRri:$src)>;
-def : Pat<(i32 (extloadi16 ADDRrr:$src)), (LDUHrr ADDRrr:$src)>;
-def : Pat<(i32 (extloadi16 ADDRri:$src)), (LDUHri ADDRri:$src)>;
-
-// zextload bool -> zextload byte
-def : Pat<(i32 (zextloadi1 ADDRrr:$src)), (LDUBrr ADDRrr:$src)>;
-def : Pat<(i32 (zextloadi1 ADDRri:$src)), (LDUBri ADDRri:$src)>;
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.cpp
deleted file mode 100644
index c45d124..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===-- SparcMCAsmInfo.cpp - Sparc asm properties -------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the SparcMCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SparcMCAsmInfo.h"
-#include "llvm/ADT/SmallVector.h"
-using namespace llvm;
-
-SparcELFMCAsmInfo::SparcELFMCAsmInfo(const Target &T, const StringRef &TT) {
-  Data16bitsDirective = "\t.half\t";
-  Data32bitsDirective = "\t.word\t";
-  Data64bitsDirective = 0;  // .xword is only supported by V9.
-  ZeroDirective = "\t.skip\t";
-  CommentString = "!";
-  COMMDirectiveTakesAlignment = true;
-  
-  SunStyleELFSectionSwitchSyntax = true;
-  UsesELFSectionDirectiveForBSS = true;
-
-  WeakRefDirective = "\t.weak\t";
-  SetDirective = "\t.set\t";
-
-  PrivateGlobalPrefix = ".L";
-}
-
-
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.h b/libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.h
deleted file mode 100644
index 12d6ef4..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.h
+++ /dev/null
@@ -1,28 +0,0 @@
-//=====-- SparcMCAsmInfo.h - Sparc asm properties -------------*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the SparcMCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPARCTARGETASMINFO_H
-#define SPARCTARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-  struct SparcELFMCAsmInfo : public MCAsmInfo {
-    explicit SparcELFMCAsmInfo(const Target &T, const StringRef &TT);
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
deleted file mode 100644
index 2acce3d..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-//===- SparcRegisterInfo.cpp - SPARC Register Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the SPARC implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Sparc.h"
-#include "SparcRegisterInfo.h"
-#include "SparcSubtarget.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Type.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/ADT/STLExtras.h"
-using namespace llvm;
-
-SparcRegisterInfo::SparcRegisterInfo(SparcSubtarget &st,
-                                     const TargetInstrInfo &tii)
-  : SparcGenRegisterInfo(SP::ADJCALLSTACKDOWN, SP::ADJCALLSTACKUP),
-    Subtarget(st), TII(tii) {
-}
-
-const unsigned* SparcRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
-                                                                         const {
-  static const unsigned CalleeSavedRegs[] = { 0 };
-  return CalleeSavedRegs;
-}
-
-BitVector SparcRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  BitVector Reserved(getNumRegs());
-  Reserved.set(SP::G2);
-  Reserved.set(SP::G3);
-  Reserved.set(SP::G4);
-  Reserved.set(SP::O6);
-  Reserved.set(SP::I6);
-  Reserved.set(SP::I7);
-  Reserved.set(SP::G0);
-  Reserved.set(SP::G5);
-  Reserved.set(SP::G6);
-  Reserved.set(SP::G7);
-  return Reserved;
-}
-
-
-const TargetRegisterClass* const*
-SparcRegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const {
-  static const TargetRegisterClass * const CalleeSavedRegClasses[] = { 0 };
-  return CalleeSavedRegClasses;
-}
-
-bool SparcRegisterInfo::hasFP(const MachineFunction &MF) const {
-  return false;
-}
-
-void SparcRegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  MachineInstr &MI = *I;
-  DebugLoc dl = MI.getDebugLoc();
-  int Size = MI.getOperand(0).getImm();
-  if (MI.getOpcode() == SP::ADJCALLSTACKDOWN)
-    Size = -Size;
-  if (Size)
-    BuildMI(MBB, I, dl, TII.get(SP::ADDri), SP::O6).addReg(SP::O6).addImm(Size);
-  MBB.erase(I);
-}
-
-void SparcRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
-                                            int SPAdj, RegScavenger *RS) const {
-  assert(SPAdj == 0 && "Unexpected");
-
-  unsigned i = 0;
-  MachineInstr &MI = *II;
-  DebugLoc dl = MI.getDebugLoc();
-  while (!MI.getOperand(i).isFI()) {
-    ++i;
-    assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
-  }
-
-  int FrameIndex = MI.getOperand(i).getIndex();
-
-  // Addressable stack objects are accessed using neg. offsets from %fp
-  MachineFunction &MF = *MI.getParent()->getParent();
-  int Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex) +
-               MI.getOperand(i+1).getImm();
-
-  // Replace frame index with a frame pointer reference.
-  if (Offset >= -4096 && Offset <= 4095) {
-    // If the offset is small enough to fit in the immediate field, directly
-    // encode it.
-    MI.getOperand(i).ChangeToRegister(SP::I6, false);
-    MI.getOperand(i+1).ChangeToImmediate(Offset);
-  } else {
-    // Otherwise, emit a G1 = SETHI %hi(offset).  FIXME: it would be better to 
-    // scavenge a register here instead of reserving G1 all of the time.
-    unsigned OffHi = (unsigned)Offset >> 10U;
-    BuildMI(*MI.getParent(), II, dl, TII.get(SP::SETHIi), SP::G1).addImm(OffHi);
-    // Emit G1 = G1 + I6
-    BuildMI(*MI.getParent(), II, dl, TII.get(SP::ADDrr), SP::G1).addReg(SP::G1)
-      .addReg(SP::I6);
-    // Insert: G1+%lo(offset) into the user.
-    MI.getOperand(i).ChangeToRegister(SP::G1, false);
-    MI.getOperand(i+1).ChangeToImmediate(Offset & ((1 << 10)-1));
-  }
-}
-
-void SparcRegisterInfo::
-processFunctionBeforeFrameFinalized(MachineFunction &MF) const {}
-
-void SparcRegisterInfo::emitPrologue(MachineFunction &MF) const {
-  MachineBasicBlock &MBB = MF.front();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  DebugLoc dl = (MBBI != MBB.end() ?
-                 MBBI->getDebugLoc() : DebugLoc::getUnknownLoc());
-
-  // Get the number of bytes to allocate from the FrameInfo
-  int NumBytes = (int) MFI->getStackSize();
-
-  // Emit the correct save instruction based on the number of bytes in
-  // the frame. Minimum stack frame size according to V8 ABI is:
-  //   16 words for register window spill
-  //    1 word for address of returned aggregate-value
-  // +  6 words for passing parameters on the stack
-  // ----------
-  //   23 words * 4 bytes per word = 92 bytes
-  NumBytes += 92;
-
-  // Round up to next doubleword boundary -- a double-word boundary
-  // is required by the ABI.
-  NumBytes = (NumBytes + 7) & ~7;
-  NumBytes = -NumBytes;
-  
-  if (NumBytes >= -4096) {
-    BuildMI(MBB, MBBI, dl, TII.get(SP::SAVEri), SP::O6)
-      .addReg(SP::O6).addImm(NumBytes);
-  } else {
-    // Emit this the hard way.  This clobbers G1 which we always know is 
-    // available here.
-    unsigned OffHi = (unsigned)NumBytes >> 10U;
-    BuildMI(MBB, MBBI, dl, TII.get(SP::SETHIi), SP::G1).addImm(OffHi);
-    // Emit G1 = G1 + I6
-    BuildMI(MBB, MBBI, dl, TII.get(SP::ORri), SP::G1)
-      .addReg(SP::G1).addImm(NumBytes & ((1 << 10)-1));
-    BuildMI(MBB, MBBI, dl, TII.get(SP::SAVErr), SP::O6)
-      .addReg(SP::O6).addReg(SP::G1);
-  }
-}
-
-void SparcRegisterInfo::emitEpilogue(MachineFunction &MF,
-                                     MachineBasicBlock &MBB) const {
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  DebugLoc dl = MBBI->getDebugLoc();
-  assert(MBBI->getOpcode() == SP::RETL &&
-         "Can only put epilog before 'retl' instruction!");
-  BuildMI(MBB, MBBI, dl, TII.get(SP::RESTORErr), SP::G0).addReg(SP::G0)
-    .addReg(SP::G0);
-}
-
-unsigned SparcRegisterInfo::getRARegister() const {
-  llvm_unreachable("What is the return address register");
-  return 0;
-}
-
-unsigned SparcRegisterInfo::getFrameRegister(MachineFunction &MF) const {
-  llvm_unreachable("What is the frame register");
-  return SP::G1;
-}
-
-unsigned SparcRegisterInfo::getEHExceptionRegister() const {
-  llvm_unreachable("What is the exception register");
-  return 0;
-}
-
-unsigned SparcRegisterInfo::getEHHandlerRegister() const {
-  llvm_unreachable("What is the exception handler register");
-  return 0;
-}
-
-int SparcRegisterInfo::getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  llvm_unreachable("What is the dwarf register number");
-  return -1;
-}
-
-#include "SparcGenRegisterInfo.inc"
-
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.h b/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.h
deleted file mode 100644
index fc863f3..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//===- SparcRegisterInfo.h - Sparc Register Information Impl ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the Sparc implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPARCREGISTERINFO_H
-#define SPARCREGISTERINFO_H
-
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "SparcGenRegisterInfo.h.inc"
-
-namespace llvm {
-
-class SparcSubtarget;
-class TargetInstrInfo;
-class Type;
-
-struct SparcRegisterInfo : public SparcGenRegisterInfo {
-  SparcSubtarget &Subtarget;
-  const TargetInstrInfo &TII;
-  
-  SparcRegisterInfo(SparcSubtarget &st, const TargetInstrInfo &tii);
-
-  /// Code Generation virtual methods...  
-  const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const;
-
-  const TargetRegisterClass* const* getCalleeSavedRegClasses(
-                                     const MachineFunction *MF = 0) const;
-
-  BitVector getReservedRegs(const MachineFunction &MF) const;
-
-  bool hasFP(const MachineFunction &MF) const;
-
-  void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                     MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I) const;
-
-  void eliminateFrameIndex(MachineBasicBlock::iterator II,
-                           int SPAdj, RegScavenger *RS = NULL) const;
-
-  void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
-
-  void emitPrologue(MachineFunction &MF) const;
-  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-  
-  // Debug information queries.
-  unsigned getRARegister() const;
-  unsigned getFrameRegister(MachineFunction &MF) const;
-
-  // Exception handling queries.
-  unsigned getEHExceptionRegister() const;
-  unsigned getEHHandlerRegister() const;
-
-  int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.td b/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.td
deleted file mode 100644
index e3a50ca..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.td
+++ /dev/null
@@ -1,158 +0,0 @@
-//===- SparcRegisterInfo.td - Sparc Register defs ----------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Declarations that describe the Sparc register file 
-//===----------------------------------------------------------------------===//
-
-class SparcReg<string n> : Register<n> {
-  field bits<5> Num;
-  let Namespace = "SP";
-}
-
-// Registers are identified with 5-bit ID numbers.
-// Ri - 32-bit integer registers
-class Ri<bits<5> num, string n> : SparcReg<n> {
-  let Num = num;
-}
-// Rf - 32-bit floating-point registers
-class Rf<bits<5> num, string n> : SparcReg<n> {
-  let Num = num;
-}
-// Rd - Slots in the FP register file for 64-bit floating-point values.
-class Rd<bits<5> num, string n, list<Register> subregs> : SparcReg<n> {
-  let Num = num;
-  let SubRegs = subregs;
-}
-
-// Integer registers
-def G0 : Ri< 0, "G0">, DwarfRegNum<[0]>;
-def G1 : Ri< 1, "G1">, DwarfRegNum<[1]>;
-def G2 : Ri< 2, "G2">, DwarfRegNum<[2]>; 
-def G3 : Ri< 3, "G3">, DwarfRegNum<[3]>;
-def G4 : Ri< 4, "G4">, DwarfRegNum<[4]>;
-def G5 : Ri< 5, "G5">, DwarfRegNum<[5]>; 
-def G6 : Ri< 6, "G6">, DwarfRegNum<[6]>;
-def G7 : Ri< 7, "G7">, DwarfRegNum<[7]>;
-def O0 : Ri< 8, "O0">, DwarfRegNum<[8]>;
-def O1 : Ri< 9, "O1">, DwarfRegNum<[9]>;
-def O2 : Ri<10, "O2">, DwarfRegNum<[10]>; 
-def O3 : Ri<11, "O3">, DwarfRegNum<[11]>;
-def O4 : Ri<12, "O4">, DwarfRegNum<[12]>;
-def O5 : Ri<13, "O5">, DwarfRegNum<[13]>; 
-def O6 : Ri<14, "O6">, DwarfRegNum<[14]>;
-def O7 : Ri<15, "O7">, DwarfRegNum<[15]>;
-def L0 : Ri<16, "L0">, DwarfRegNum<[16]>;
-def L1 : Ri<17, "L1">, DwarfRegNum<[17]>;
-def L2 : Ri<18, "L2">, DwarfRegNum<[18]>; 
-def L3 : Ri<19, "L3">, DwarfRegNum<[19]>;
-def L4 : Ri<20, "L4">, DwarfRegNum<[20]>;
-def L5 : Ri<21, "L5">, DwarfRegNum<[21]>; 
-def L6 : Ri<22, "L6">, DwarfRegNum<[22]>;
-def L7 : Ri<23, "L7">, DwarfRegNum<[23]>;
-def I0 : Ri<24, "I0">, DwarfRegNum<[24]>;
-def I1 : Ri<25, "I1">, DwarfRegNum<[25]>;
-def I2 : Ri<26, "I2">, DwarfRegNum<[26]>; 
-def I3 : Ri<27, "I3">, DwarfRegNum<[27]>;
-def I4 : Ri<28, "I4">, DwarfRegNum<[28]>;
-def I5 : Ri<29, "I5">, DwarfRegNum<[29]>; 
-def I6 : Ri<30, "I6">, DwarfRegNum<[30]>;
-def I7 : Ri<31, "I7">, DwarfRegNum<[31]>;
-
-// Floating-point registers
-def F0  : Rf< 0,  "F0">, DwarfRegNum<[32]>;
-def F1  : Rf< 1,  "F1">, DwarfRegNum<[33]>;
-def F2  : Rf< 2,  "F2">, DwarfRegNum<[34]>; 
-def F3  : Rf< 3,  "F3">, DwarfRegNum<[35]>;
-def F4  : Rf< 4,  "F4">, DwarfRegNum<[36]>;
-def F5  : Rf< 5,  "F5">, DwarfRegNum<[37]>; 
-def F6  : Rf< 6,  "F6">, DwarfRegNum<[38]>;
-def F7  : Rf< 7,  "F7">, DwarfRegNum<[39]>;
-def F8  : Rf< 8,  "F8">, DwarfRegNum<[40]>; 
-def F9  : Rf< 9,  "F9">, DwarfRegNum<[41]>;
-def F10 : Rf<10, "F10">, DwarfRegNum<[42]>;
-def F11 : Rf<11, "F11">, DwarfRegNum<[43]>; 
-def F12 : Rf<12, "F12">, DwarfRegNum<[44]>;
-def F13 : Rf<13, "F13">, DwarfRegNum<[45]>;
-def F14 : Rf<14, "F14">, DwarfRegNum<[46]>; 
-def F15 : Rf<15, "F15">, DwarfRegNum<[47]>;
-def F16 : Rf<16, "F16">, DwarfRegNum<[48]>;
-def F17 : Rf<17, "F17">, DwarfRegNum<[49]>; 
-def F18 : Rf<18, "F18">, DwarfRegNum<[50]>;
-def F19 : Rf<19, "F19">, DwarfRegNum<[51]>;
-def F20 : Rf<20, "F20">, DwarfRegNum<[52]>; 
-def F21 : Rf<21, "F21">, DwarfRegNum<[53]>;
-def F22 : Rf<22, "F22">, DwarfRegNum<[54]>;
-def F23 : Rf<23, "F23">, DwarfRegNum<[55]>;
-def F24 : Rf<24, "F24">, DwarfRegNum<[56]>;
-def F25 : Rf<25, "F25">, DwarfRegNum<[57]>;
-def F26 : Rf<26, "F26">, DwarfRegNum<[58]>; 
-def F27 : Rf<27, "F27">, DwarfRegNum<[59]>;
-def F28 : Rf<28, "F28">, DwarfRegNum<[60]>;
-def F29 : Rf<29, "F29">, DwarfRegNum<[61]>; 
-def F30 : Rf<30, "F30">, DwarfRegNum<[62]>;
-def F31 : Rf<31, "F31">, DwarfRegNum<[63]>;
-
-// Aliases of the F* registers used to hold 64-bit fp values (doubles)
-def D0  : Rd< 0,  "F0", [F0,   F1]>, DwarfRegNum<[32]>;
-def D1  : Rd< 2,  "F2", [F2,   F3]>, DwarfRegNum<[34]>; 
-def D2  : Rd< 4,  "F4", [F4,   F5]>, DwarfRegNum<[36]>;
-def D3  : Rd< 6,  "F6", [F6,   F7]>, DwarfRegNum<[38]>; 
-def D4  : Rd< 8,  "F8", [F8,   F9]>, DwarfRegNum<[40]>;
-def D5  : Rd<10, "F10", [F10, F11]>, DwarfRegNum<[42]>;
-def D6  : Rd<12, "F12", [F12, F13]>, DwarfRegNum<[44]>;
-def D7  : Rd<14, "F14", [F14, F15]>, DwarfRegNum<[46]>; 
-def D8  : Rd<16, "F16", [F16, F17]>, DwarfRegNum<[48]>;
-def D9  : Rd<18, "F18", [F18, F19]>, DwarfRegNum<[50]>; 
-def D10 : Rd<20, "F20", [F20, F21]>, DwarfRegNum<[52]>;
-def D11 : Rd<22, "F22", [F22, F23]>, DwarfRegNum<[54]>;
-def D12 : Rd<24, "F24", [F24, F25]>, DwarfRegNum<[56]>;
-def D13 : Rd<26, "F26", [F26, F27]>, DwarfRegNum<[58]>; 
-def D14 : Rd<28, "F28", [F28, F29]>, DwarfRegNum<[60]>;
-def D15 : Rd<30, "F30", [F30, F31]>, DwarfRegNum<[62]>;
-
-// Register classes.
-//
-// FIXME: the register order should be defined in terms of the preferred
-// allocation order...
-//
-def IntRegs : RegisterClass<"SP", [i32], 32, [L0, L1, L2, L3, L4, L5, L6, L7,
-                                     I0, I1, I2, I3, I4, I5,
-                                     O0, O1, O2, O3, O4, O5, O7,
-
-   // FIXME: G1 reserved for now for large imm generation by frame code.
-                                     G1,
-                                     // Non-allocatable regs:
-                                     G2, G3, G4, // FIXME: OK for use only in
-                                                 // applications, not libraries.
-                                     O6, // stack ptr
-                                     I6, // frame ptr
-                                     I7, // return address
-                                     G0, // constant zero
-                                     G5, G6, G7 // reserved for kernel
-                                     ]> {
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    IntRegsClass::iterator
-    IntRegsClass::allocation_order_end(const MachineFunction &MF) const {
-      // FIXME: These special regs should be taken out of the regclass!
-      return end()-10  // Don't allocate special registers
-         -1;  // FIXME: G1 reserved for large imm generation by frame code.
-    }
-  }];
-}
-
-def FPRegs : RegisterClass<"SP", [f32], 32, [F0, F1, F2, F3, F4, F5, F6, F7, F8,
-  F9, F10, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, F21, F22,
-  F23, F24, F25, F26, F27, F28, F29, F30, F31]>;
-
-def DFPRegs : RegisterClass<"SP", [f64], 64, [D0, D1, D2, D3, D4, D5, D6, D7,
-  D8, D9, D10, D11, D12, D13, D14, D15]>;
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcSubtarget.cpp b/libclamav/c++/llvm/lib/Target/Sparc/SparcSubtarget.cpp
deleted file mode 100644
index 8a88cc0..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcSubtarget.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===- SparcSubtarget.cpp - SPARC Subtarget Information -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SPARC specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SparcSubtarget.h"
-#include "SparcGenSubtarget.inc"
-using namespace llvm;
-
-// FIXME: temporary.
-#include "llvm/Support/CommandLine.h"
-namespace {
-  cl::opt<bool> EnableV9("enable-sparc-v9-insts", cl::Hidden,
-                          cl::desc("Enable V9 instructions in the V8 target"));
-}
-
-SparcSubtarget::SparcSubtarget(const std::string &TT, const std::string &FS) {
-  // Set the default features.
-  IsV9 = false;
-  V8DeprecatedInsts = false;
-  IsVIS = false;
-  
-  // Determine default and user specified characteristics
-  std::string CPU = "generic";
-
-  // FIXME: autodetect host here!
-  CPU = "v9";   // What is a good way to detect V9?
-  
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-
-  // Unless explicitly enabled, disable the V9 instructions.
-  if (!EnableV9)
-    IsV9 = false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcSubtarget.h b/libclamav/c++/llvm/lib/Target/Sparc/SparcSubtarget.h
deleted file mode 100644
index 4377034..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcSubtarget.h
+++ /dev/null
@@ -1,42 +0,0 @@
-//=====-- SparcSubtarget.h - Define Subtarget for the SPARC ----*- C++ -*-====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the SPARC specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPARC_SUBTARGET_H
-#define SPARC_SUBTARGET_H
-
-#include "llvm/Target/TargetSubtarget.h"
-#include <string>
-
-namespace llvm {
-
-class SparcSubtarget : public TargetSubtarget {
-  bool IsV9;
-  bool V8DeprecatedInsts;
-  bool IsVIS;
-public:
-  SparcSubtarget(const std::string &TT, const std::string &FS);
-
-  bool isV9() const { return IsV9; }
-  bool isVIS() const { return IsVIS; }
-  bool useDeprecatedV8Instructions() const { return V8DeprecatedInsts; }
-  
-  /// ParseSubtargetFeatures - Parses features string setting specified 
-  /// subtarget options.  Definition of function is auto generated by tblgen.
-  std::string ParseSubtargetFeatures(const std::string &FS,
-                                     const std::string &CPU);
-
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.cpp b/libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.cpp
deleted file mode 100644
index 3a38115..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===-- SparcTargetMachine.cpp - Define TargetMachine for Sparc -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#include "SparcMCAsmInfo.h"
-#include "SparcTargetMachine.h"
-#include "Sparc.h"
-#include "llvm/PassManager.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-extern "C" void LLVMInitializeSparcTarget() {
-  // Register the target.
-  RegisterTargetMachine<SparcTargetMachine> X(TheSparcTarget);
-  RegisterAsmInfo<SparcELFMCAsmInfo> Y(TheSparcTarget);
-
-}
-
-/// SparcTargetMachine ctor - Create an ILP32 architecture model
-///
-SparcTargetMachine::SparcTargetMachine(const Target &T, const std::string &TT, 
-                                       const std::string &FS)
-  : LLVMTargetMachine(T, TT),
-    DataLayout("E-p:32:32-f128:128:128"),
-    Subtarget(TT, FS), TLInfo(*this), InstrInfo(Subtarget),
-    FrameInfo(TargetFrameInfo::StackGrowsDown, 8, 0) {
-}
-
-bool SparcTargetMachine::addInstSelector(PassManagerBase &PM,
-                                         CodeGenOpt::Level OptLevel) {
-  PM.add(createSparcISelDag(*this));
-  return false;
-}
-
-/// addPreEmitPass - This pass may be implemented by targets that want to run
-/// passes immediately before machine code is emitted.  This should return
-/// true if -print-machineinstrs should print out the code after the passes.
-bool SparcTargetMachine::addPreEmitPass(PassManagerBase &PM,
-                                        CodeGenOpt::Level OptLevel){
-  PM.add(createSparcFPMoverPass(*this));
-  PM.add(createSparcDelaySlotFillerPass(*this));
-  return true;
-}
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.h b/libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.h
deleted file mode 100644
index cce5510..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.h
+++ /dev/null
@@ -1,54 +0,0 @@
-//===-- SparcTargetMachine.h - Define TargetMachine for Sparc ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the Sparc specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SPARCTARGETMACHINE_H
-#define SPARCTARGETMACHINE_H
-
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "SparcInstrInfo.h"
-#include "SparcSubtarget.h"
-#include "SparcISelLowering.h"
-
-namespace llvm {
-
-class SparcTargetMachine : public LLVMTargetMachine {
-  const TargetData DataLayout;       // Calculates type size & alignment
-  SparcSubtarget Subtarget;
-  SparcTargetLowering TLInfo;
-  SparcInstrInfo InstrInfo;
-  TargetFrameInfo FrameInfo;
-public:
-  SparcTargetMachine(const Target &T, const std::string &TT,
-                     const std::string &FS);
-
-  virtual const SparcInstrInfo *getInstrInfo() const { return &InstrInfo; }
-  virtual const TargetFrameInfo  *getFrameInfo() const { return &FrameInfo; }
-  virtual const SparcSubtarget   *getSubtargetImpl() const{ return &Subtarget; }
-  virtual const SparcRegisterInfo *getRegisterInfo() const {
-    return &InstrInfo.getRegisterInfo();
-  }
-  virtual SparcTargetLowering* getTargetLowering() const {
-    return const_cast<SparcTargetLowering*>(&TLInfo);
-  }
-  virtual const TargetData       *getTargetData() const { return &DataLayout; }
-
-  // Pass Pipeline Configuration
-  virtual bool addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-  virtual bool addPreEmitPass(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 870b56a..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMSparcInfo
-  SparcTargetInfo.cpp
-  )
-
-add_dependencies(LLVMSparcInfo SparcCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/Makefile
deleted file mode 100644
index 641ed87..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/Sparc/TargetInfo/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMSparcInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
deleted file mode 100644
index 5d697bd..0000000
--- a/libclamav/c++/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- SparcTargetInfo.cpp - Sparc Target Implementation -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Sparc.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheSparcTarget;
-
-extern "C" void LLVMInitializeSparcTargetInfo() { 
-  RegisterTarget<Triple::sparc> X(TheSparcTarget, "sparc", "Sparc");
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index c6be83a..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMSystemZAsmPrinter
-  SystemZAsmPrinter.cpp
-  )
-add_dependencies(LLVMSystemZAsmPrinter SystemZCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/Makefile
deleted file mode 100644
index 9a350df..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/SystemZ/AsmPrinter/Makefile --------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMSystemZAsmPrinter
-
-# Hack: we need to include 'main' SystemZ target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp
deleted file mode 100644
index 8586782..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp
+++ /dev/null
@@ -1,386 +0,0 @@
-//===-- SystemZAsmPrinter.cpp - SystemZ LLVM assembly writer ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to the SystemZ assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "asm-printer"
-#include "SystemZ.h"
-#include "SystemZInstrInfo.h"
-#include "SystemZTargetMachine.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/Assembly/Writer.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
-
-using namespace llvm;
-
-STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-namespace {
-  class VISIBILITY_HIDDEN SystemZAsmPrinter : public AsmPrinter {
-  public:
-    SystemZAsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                      const MCAsmInfo *MAI, bool V)
-      : AsmPrinter(O, TM, MAI, V) {}
-
-    virtual const char *getPassName() const {
-      return "SystemZ Assembly Printer";
-    }
-
-    void printOperand(const MachineInstr *MI, int OpNum,
-                      const char* Modifier = 0);
-    void printPCRelImmOperand(const MachineInstr *MI, int OpNum);
-    void printRIAddrOperand(const MachineInstr *MI, int OpNum,
-                            const char* Modifier = 0);
-    void printRRIAddrOperand(const MachineInstr *MI, int OpNum,
-                             const char* Modifier = 0);
-    void printS16ImmOperand(const MachineInstr *MI, int OpNum) {
-      O << (int16_t)MI->getOperand(OpNum).getImm();
-    }
-    void printS32ImmOperand(const MachineInstr *MI, int OpNum) {
-      O << (int32_t)MI->getOperand(OpNum).getImm();
-    }
-
-    void printInstruction(const MachineInstr *MI);  // autogenerated.
-    void printMachineInstruction(const MachineInstr * MI);
-
-    void emitFunctionHeader(const MachineFunction &MF);
-    bool runOnMachineFunction(MachineFunction &F);
-    void PrintGlobalVariable(const GlobalVariable* GVar);
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AsmPrinter::getAnalysisUsage(AU);
-      AU.setPreservesAll();
-    }
-  };
-} // end of anonymous namespace
-
-#include "SystemZGenAsmWriter.inc"
-
-void SystemZAsmPrinter::emitFunctionHeader(const MachineFunction &MF) {
-  unsigned FnAlign = MF.getAlignment();
-  const Function *F = MF.getFunction();
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-
-  EmitAlignment(FnAlign, F);
-
-  switch (F->getLinkage()) {
-  default: assert(0 && "Unknown linkage type!");
-  case Function::InternalLinkage:  // Symbols default to internal.
-  case Function::PrivateLinkage:
-  case Function::LinkerPrivateLinkage:
-    break;
-  case Function::ExternalLinkage:
-    O << "\t.globl\t" << CurrentFnName << '\n';
-    break;
-  case Function::LinkOnceAnyLinkage:
-  case Function::LinkOnceODRLinkage:
-  case Function::WeakAnyLinkage:
-  case Function::WeakODRLinkage:
-    O << "\t.weak\t" << CurrentFnName << '\n';
-    break;
-  }
-
-  printVisibility(CurrentFnName, F->getVisibility());
-
-  O << "\t.type\t" << CurrentFnName << ", at function\n"
-    << CurrentFnName << ":\n";
-}
-
-bool SystemZAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
-  SetupMachineFunction(MF);
-  O << "\n\n";
-
-  // Print out constants referenced by the function
-  EmitConstantPool(MF.getConstantPool());
-
-  // Print the 'header' of function
-  emitFunctionHeader(MF);
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-    // Print a label for the basic block.
-    if (!VerboseAsm && (I->pred_empty() || I->isOnlyReachableByFallthrough())) {
-      // This is an entry block or a block that's only reachable via a
-      // fallthrough edge. In non-VerboseAsm mode, don't print the label.
-    } else {
-      printBasicBlockLabel(I, true, true, VerboseAsm);
-      O << '\n';
-    }
-
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II)
-      // Print the assembly for the instruction.
-      printMachineInstruction(II);
-  }
-
-  if (MAI->hasDotTypeDotSizeDirective())
-    O << "\t.size\t" << CurrentFnName << ", .-" << CurrentFnName << '\n';
-
-  // Print out jump tables referenced by the function.
-  EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-
-  // We didn't modify anything
-  return false;
-}
-
-void SystemZAsmPrinter::printMachineInstruction(const MachineInstr *MI) {
-  ++EmittedInsts;
-
-  // Call the autogenerated instruction printer routines.
-  printInstruction(MI);
-}
-
-void SystemZAsmPrinter::printPCRelImmOperand(const MachineInstr *MI, int OpNum) {
-  const MachineOperand &MO = MI->getOperand(OpNum);
-  switch (MO.getType()) {
-  case MachineOperand::MO_Immediate:
-    O << MO.getImm();
-    return;
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB(), false, false, VerboseAsm);
-    return;
-  case MachineOperand::MO_GlobalAddress: {
-    const GlobalValue *GV = MO.getGlobal();
-    std::string Name = Mang->getMangledName(GV);
-
-    O << Name;
-
-    // Assemble calls via PLT for externally visible symbols if PIC.
-    if (TM.getRelocationModel() == Reloc::PIC_ &&
-        !GV->hasHiddenVisibility() && !GV->hasProtectedVisibility() &&
-        !GV->hasLocalLinkage())
-      O << "@PLT";
-
-    printOffset(MO.getOffset());
-    return;
-  }
-  case MachineOperand::MO_ExternalSymbol: {
-    std::string Name(MAI->getGlobalPrefix());
-    Name += MO.getSymbolName();
-    O << Name;
-
-    if (TM.getRelocationModel() == Reloc::PIC_)
-      O << "@PLT";
-
-    return;
-  }
-  default:
-    assert(0 && "Not implemented yet!");
-  }
-}
-
-
-void SystemZAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
-                                     const char* Modifier) {
-  const MachineOperand &MO = MI->getOperand(OpNum);
-  switch (MO.getType()) {
-  case MachineOperand::MO_Register: {
-    assert (TargetRegisterInfo::isPhysicalRegister(MO.getReg()) &&
-            "Virtual registers should be already mapped!");
-    unsigned Reg = MO.getReg();
-    if (Modifier && strncmp(Modifier, "subreg", 6) == 0) {
-      if (strncmp(Modifier + 7, "even", 4) == 0)
-        Reg = TRI->getSubReg(Reg, SystemZ::SUBREG_EVEN);
-      else if (strncmp(Modifier + 7, "odd", 3) == 0)
-        Reg = TRI->getSubReg(Reg, SystemZ::SUBREG_ODD);
-      else
-        assert(0 && "Invalid subreg modifier");
-    }
-
-    O << '%' << TRI->getAsmName(Reg);
-    return;
-  }
-  case MachineOperand::MO_Immediate:
-    O << MO.getImm();
-    return;
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB());
-    return;
-  case MachineOperand::MO_JumpTableIndex:
-    O << MAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() << '_'
-      << MO.getIndex();
-
-    return;
-  case MachineOperand::MO_ConstantPoolIndex:
-    O << MAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << '_'
-      << MO.getIndex();
-
-    printOffset(MO.getOffset());
-    break;
-  case MachineOperand::MO_GlobalAddress: {
-    const GlobalValue *GV = MO.getGlobal();
-    std::string Name = Mang->getMangledName(GV);
-
-    O << Name;
-    break;
-  }
-  case MachineOperand::MO_ExternalSymbol: {
-    std::string Name(MAI->getGlobalPrefix());
-    Name += MO.getSymbolName();
-    O << Name;
-    break;
-  }
-  default:
-    assert(0 && "Not implemented yet!");
-  }
-
-  switch (MO.getTargetFlags()) {
-  default:
-    llvm_unreachable("Unknown target flag on GV operand");
-  case SystemZII::MO_NO_FLAG:
-    break;
-  case SystemZII::MO_GOTENT:    O << "@GOTENT";    break;
-  case SystemZII::MO_PLT:       O << "@PLT";       break;
-  }
-
-  printOffset(MO.getOffset());
-}
-
-void SystemZAsmPrinter::printRIAddrOperand(const MachineInstr *MI, int OpNum,
-                                           const char* Modifier) {
-  const MachineOperand &Base = MI->getOperand(OpNum);
-
-  // Print displacement operand.
-  printOperand(MI, OpNum+1);
-
-  // Print base operand (if any)
-  if (Base.getReg()) {
-    O << '(';
-    printOperand(MI, OpNum);
-    O << ')';
-  }
-}
-
-void SystemZAsmPrinter::printRRIAddrOperand(const MachineInstr *MI, int OpNum,
-                                            const char* Modifier) {
-  const MachineOperand &Base = MI->getOperand(OpNum);
-  const MachineOperand &Index = MI->getOperand(OpNum+2);
-
-  // Print displacement operand.
-  printOperand(MI, OpNum+1);
-
-  // Print base operand (if any)
-  if (Base.getReg()) {
-    O << '(';
-    printOperand(MI, OpNum);
-    if (Index.getReg()) {
-      O << ',';
-      printOperand(MI, OpNum+2);
-    }
-    O << ')';
-  } else
-    assert(!Index.getReg() && "Should allocate base register first!");
-}
-
-void SystemZAsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) {
-  const TargetData *TD = TM.getTargetData();
-
-  if (!GVar->hasInitializer())
-    return;   // External global require no code
-
-  // Check to see if this is a special global used by LLVM, if so, emit it.
-  if (EmitSpecialLLVMGlobal(GVar))
-    return;
-
-  std::string name = Mang->getMangledName(GVar);
-  Constant *C = GVar->getInitializer();
-  unsigned Size = TD->getTypeAllocSize(C->getType());
-  unsigned Align = std::max(1U, TD->getPreferredAlignmentLog(GVar));
-
-  printVisibility(name, GVar->getVisibility());
-
-  O << "\t.type\t" << name << ", at object\n";
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(GVar, Mang,
-                                                                  TM));
-
-  if (C->isNullValue() && !GVar->hasSection() &&
-      !GVar->isThreadLocal() &&
-      (GVar->hasLocalLinkage() || GVar->isWeakForLinker())) {
-
-    if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
-
-    if (GVar->hasLocalLinkage())
-      O << "\t.local\t" << name << '\n';
-
-    O << MAI->getCOMMDirective()  << name << ',' << Size;
-    if (MAI->getCOMMDirectiveTakesAlignment())
-      O << ',' << (MAI->getAlignmentIsInBytes() ? (1 << Align) : Align);
-
-    if (VerboseAsm) {
-      O << "\t\t" << MAI->getCommentString() << ' ';
-      WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
-    }
-    O << '\n';
-    return;
-  }
-
-  switch (GVar->getLinkage()) {
-  case GlobalValue::CommonLinkage:
-  case GlobalValue::LinkOnceAnyLinkage:
-  case GlobalValue::LinkOnceODRLinkage:
-  case GlobalValue::WeakAnyLinkage:
-  case GlobalValue::WeakODRLinkage:
-    O << "\t.weak\t" << name << '\n';
-    break;
-  case GlobalValue::DLLExportLinkage:
-  case GlobalValue::AppendingLinkage:
-    // FIXME: appending linkage variables should go into a section of
-    // their name or something.  For now, just emit them as external.
-  case GlobalValue::ExternalLinkage:
-    // If external or appending, declare as a global symbol
-    O << "\t.globl " << name << '\n';
-    // FALL THROUGH
-  case GlobalValue::PrivateLinkage:
-  case GlobalValue::LinkerPrivateLinkage:
-  case GlobalValue::InternalLinkage:
-     break;
-  default:
-    assert(0 && "Unknown linkage type!");
-  }
-
-  // Use 16-bit alignment by default to simplify bunch of stuff
-  EmitAlignment(Align, GVar, 1);
-  O << name << ":";
-  if (VerboseAsm) {
-    O << "\t\t\t\t" << MAI->getCommentString() << ' ';
-    WriteAsOperand(O, GVar, /*PrintType=*/false, GVar->getParent());
-  }
-  O << '\n';
-  if (MAI->hasDotTypeDotSizeDirective())
-    O << "\t.size\t" << name << ", " << Size << '\n';
-
-  EmitGlobalConstant(C);
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeSystemZAsmPrinter() {
-  RegisterAsmPrinter<SystemZAsmPrinter> X(TheSystemZTarget);
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/SystemZ/CMakeLists.txt
deleted file mode 100644
index 81e51d8..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS SystemZ.td)
-
-tablegen(SystemZGenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(SystemZGenRegisterNames.inc -gen-register-enums)
-tablegen(SystemZGenRegisterInfo.inc -gen-register-desc)
-tablegen(SystemZGenInstrNames.inc -gen-instr-enums)
-tablegen(SystemZGenInstrInfo.inc -gen-instr-desc)
-tablegen(SystemZGenAsmWriter.inc -gen-asm-writer)
-tablegen(SystemZGenDAGISel.inc -gen-dag-isel)
-tablegen(SystemZGenCallingConv.inc -gen-callingconv)
-tablegen(SystemZGenSubtarget.inc -gen-subtarget)
-
-add_llvm_target(SystemZCodeGen
-  SystemZISelDAGToDAG.cpp
-  SystemZISelLowering.cpp
-  SystemZInstrInfo.cpp
-  SystemZMCAsmInfo.cpp
-  SystemZRegisterInfo.cpp
-  SystemZSubtarget.cpp
-  SystemZTargetMachine.cpp
-  )
-
-target_link_libraries (LLVMSystemZCodeGen LLVMSelectionDAG)
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/Makefile b/libclamav/c++/llvm/lib/Target/SystemZ/Makefile
deleted file mode 100644
index f1097eb..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-##===- lib/Target/SystemZ/Makefile ---------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMSystemZCodeGen
-TARGET = SystemZ
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = SystemZGenRegisterInfo.h.inc SystemZGenRegisterNames.inc \
-                SystemZGenRegisterInfo.inc SystemZGenInstrNames.inc \
-                SystemZGenInstrInfo.inc SystemZGenAsmWriter.inc \
-                SystemZGenDAGISel.inc SystemZGenSubtarget.inc SystemZGenCallingConv.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZ.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZ.h
deleted file mode 100644
index ea5240a..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZ.h
+++ /dev/null
@@ -1,61 +0,0 @@
-//=-- SystemZ.h - Top-level interface for SystemZ representation -*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in
-// the LLVM SystemZ backend.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_SystemZ_H
-#define LLVM_TARGET_SystemZ_H
-
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-  class SystemZTargetMachine;
-  class FunctionPass;
-  class formatted_raw_ostream;
-
-  namespace SystemZCC {
-    // SystemZ specific condition code. These correspond to SYSTEMZ_*_COND in
-    // SystemZInstrInfo.td. They must be kept in synch.
-    enum CondCodes {
-      O   = 0,
-      H   = 1,
-      NLE = 2,
-      L   = 3,
-      NHE = 4,
-      LH  = 5,
-      NE  = 6,
-      E   = 7,
-      NLH = 8,
-      HE  = 9,
-      NL  = 10,
-      LE  = 11,
-      NH  = 12,
-      NO  = 13,
-      INVALID = -1
-    };
-  }
-
-  FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM,
-                                    CodeGenOpt::Level OptLevel);
-
-  extern Target TheSystemZTarget;
-
-} // end namespace llvm;
-
-// Defines symbolic names for SystemZ registers.
-// This defines a mapping from register name to register number.
-#include "SystemZGenRegisterNames.inc"
-
-// Defines symbolic names for the SystemZ instructions.
-#include "SystemZGenInstrNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZ.td b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZ.td
deleted file mode 100644
index 4c08c08..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZ.td
+++ /dev/null
@@ -1,61 +0,0 @@
-//===- SystemZ.td - Describe the SystemZ Target Machine ------*- tblgen -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This is the top level entry point for the SystemZ target.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Target-independent interfaces
-//===----------------------------------------------------------------------===//
-
-include "llvm/Target/Target.td"
-
-//===----------------------------------------------------------------------===//
-// Subtarget Features. 
-//===----------------------------------------------------------------------===//
-def FeatureZ10 : SubtargetFeature<"z10", "HasZ10Insts", "true",
-                                  "Support Z10 instructions">;
-
-//===----------------------------------------------------------------------===//
-// SystemZ supported processors.
-//===----------------------------------------------------------------------===//
-class Proc<string Name, list<SubtargetFeature> Features>
- : Processor<Name, NoItineraries, Features>;
-
-def : Proc<"z9",  []>;
-def : Proc<"z10", [FeatureZ10]>;
-
-//===----------------------------------------------------------------------===//
-// Register File Description
-//===----------------------------------------------------------------------===//
-
-include "SystemZRegisterInfo.td"
-
-//===----------------------------------------------------------------------===//
-// Calling Convention Description
-//===----------------------------------------------------------------------===//
-
-include "SystemZCallingConv.td"
-
-//===----------------------------------------------------------------------===//
-// Instruction Descriptions
-//===----------------------------------------------------------------------===//
-
-include "SystemZInstrInfo.td"
-include "SystemZInstrFP.td"
-
-def SystemZInstrInfo : InstrInfo {} 
-
-//===----------------------------------------------------------------------===//
-// Target Declaration
-//===----------------------------------------------------------------------===//
-
-def SystemZ : Target {
-  let InstructionSet = SystemZInstrInfo;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZCallingConv.td b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZCallingConv.td
deleted file mode 100644
index c799a9e..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZCallingConv.td
+++ /dev/null
@@ -1,46 +0,0 @@
-//=- SystemZCallingConv.td - Calling Conventions for SystemZ -*- tablegen -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This describes the calling conventions for SystemZ architecture.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// SystemZ Return Value Calling Convention
-//===----------------------------------------------------------------------===//
-def RetCC_SystemZ : CallingConv<[
-  // Promote i8/i16/i32 arguments to i64.
-  CCIfType<[i8, i16, i32], CCPromoteToType<i64>>,
-
-  // i64 is returned in register R2
-  CCIfType<[i64], CCAssignToReg<[R2D, R3D, R4D, R5D]>>,
-
-  // f32 / f64 are returned in F0
-  CCIfType<[f32], CCAssignToReg<[F0S, F2S, F4S, F6S]>>,
-  CCIfType<[f64], CCAssignToReg<[F0L, F2L, F4L, F6L]>>
-]>;
-
-//===----------------------------------------------------------------------===//
-// SystemZ Argument Calling Conventions
-//===----------------------------------------------------------------------===//
-def CC_SystemZ : CallingConv<[
-  // Promote i8/i16/i32 arguments to i64.
-  CCIfType<[i8, i16, i32], CCPromoteToType<i64>>,
-
-  // The first 5 integer arguments of non-varargs functions are passed in
-  // integer registers.
-  CCIfType<[i64], CCAssignToReg<[R2D, R3D, R4D, R5D, R6D]>>,
-
-  // The first 4 floating point arguments of non-varargs functions are passed
-  // in FP registers.
-  CCIfType<[f32], CCAssignToReg<[F0S, F2S, F4S, F6S]>>,
-  CCIfType<[f64], CCAssignToReg<[F0L, F2L, F4L, F6L]>>,
-
-  // Integer values get stored in stack slots that are 8 bytes in
-  // size and 8-byte aligned.
-  CCIfType<[i64, f32, f64], CCAssignToStack<8, 8>>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
deleted file mode 100644
index 6af2f61..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
+++ /dev/null
@@ -1,828 +0,0 @@
-//==-- SystemZISelDAGToDAG.cpp - A dag to dag inst selector for SystemZ ---===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the SystemZ target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SystemZ.h"
-#include "SystemZISelLowering.h"
-#include "SystemZTargetMachine.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/Constants.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/Target/TargetLowering.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-static const unsigned subreg_even32 = 1;
-static const unsigned subreg_odd32  = 2;
-static const unsigned subreg_even   = 3;
-static const unsigned subreg_odd    = 4;
-
-namespace {
-  /// SystemZRRIAddressMode - This corresponds to rriaddr, but uses SDValue's
-  /// instead of register numbers for the leaves of the matched tree.
-  struct SystemZRRIAddressMode {
-    enum {
-      RegBase,
-      FrameIndexBase
-    } BaseType;
-
-    struct {            // This is really a union, discriminated by BaseType!
-      SDValue Reg;
-      int FrameIndex;
-    } Base;
-
-    SDValue IndexReg;
-    int64_t Disp;
-    bool isRI;
-
-    SystemZRRIAddressMode(bool RI = false)
-      : BaseType(RegBase), IndexReg(), Disp(0), isRI(RI) {
-    }
-
-    void dump() {
-      errs() << "SystemZRRIAddressMode " << this << '\n';
-      if (BaseType == RegBase) {
-        errs() << "Base.Reg ";
-        if (Base.Reg.getNode() != 0)
-          Base.Reg.getNode()->dump();
-        else
-          errs() << "nul";
-        errs() << '\n';
-      } else {
-        errs() << " Base.FrameIndex " << Base.FrameIndex << '\n';
-      }
-      if (!isRI) {
-        errs() << "IndexReg ";
-        if (IndexReg.getNode() != 0) IndexReg.getNode()->dump();
-        else errs() << "nul";
-      }
-      errs() << " Disp " << Disp << '\n';
-    }
-  };
-}
-
-/// SystemZDAGToDAGISel - SystemZ specific code to select SystemZ machine
-/// instructions for SelectionDAG operations.
-///
-namespace {
-  class SystemZDAGToDAGISel : public SelectionDAGISel {
-    SystemZTargetLowering &Lowering;
-    const SystemZSubtarget &Subtarget;
-
-    void getAddressOperandsRI(const SystemZRRIAddressMode &AM,
-                            SDValue &Base, SDValue &Disp);
-    void getAddressOperands(const SystemZRRIAddressMode &AM,
-                            SDValue &Base, SDValue &Disp,
-                            SDValue &Index);
-
-  public:
-    SystemZDAGToDAGISel(SystemZTargetMachine &TM, CodeGenOpt::Level OptLevel)
-      : SelectionDAGISel(TM, OptLevel),
-        Lowering(*TM.getTargetLowering()),
-        Subtarget(*TM.getSubtargetImpl()) { }
-
-    virtual void InstructionSelect();
-
-    virtual const char *getPassName() const {
-      return "SystemZ DAG->DAG Pattern Instruction Selection";
-    }
-
-    /// getI8Imm - Return a target constant with the specified value, of type
-    /// i8.
-    inline SDValue getI8Imm(uint64_t Imm) {
-      return CurDAG->getTargetConstant(Imm, MVT::i8);
-    }
-
-    /// getI16Imm - Return a target constant with the specified value, of type
-    /// i16.
-    inline SDValue getI16Imm(uint64_t Imm) {
-      return CurDAG->getTargetConstant(Imm, MVT::i16);
-    }
-
-    /// getI32Imm - Return a target constant with the specified value, of type
-    /// i32.
-    inline SDValue getI32Imm(uint64_t Imm) {
-      return CurDAG->getTargetConstant(Imm, MVT::i32);
-    }
-
-    // Include the pieces autogenerated from the target description.
-    #include "SystemZGenDAGISel.inc"
-
-  private:
-    bool SelectAddrRI12Only(SDValue Op, SDValue& Addr,
-                            SDValue &Base, SDValue &Disp);
-    bool SelectAddrRI12(SDValue Op, SDValue& Addr,
-                        SDValue &Base, SDValue &Disp,
-                        bool is12BitOnly = false);
-    bool SelectAddrRI(SDValue Op, SDValue& Addr,
-                      SDValue &Base, SDValue &Disp);
-    bool SelectAddrRRI12(SDValue Op, SDValue Addr,
-                         SDValue &Base, SDValue &Disp, SDValue &Index);
-    bool SelectAddrRRI20(SDValue Op, SDValue Addr,
-                         SDValue &Base, SDValue &Disp, SDValue &Index);
-    bool SelectLAAddr(SDValue Op, SDValue Addr,
-                      SDValue &Base, SDValue &Disp, SDValue &Index);
-
-    SDNode *Select(SDValue Op);
-
-    bool TryFoldLoad(SDValue P, SDValue N,
-                     SDValue &Base, SDValue &Disp, SDValue &Index);
-
-    bool MatchAddress(SDValue N, SystemZRRIAddressMode &AM,
-                      bool is12Bit, unsigned Depth = 0);
-    bool MatchAddressBase(SDValue N, SystemZRRIAddressMode &AM);
-    bool MatchAddressRI(SDValue N, SystemZRRIAddressMode &AM,
-                        bool is12Bit);
-
-  #ifndef NDEBUG
-    unsigned Indent;
-  #endif
-  };
-}  // end anonymous namespace
-
-/// createSystemZISelDag - This pass converts a legalized DAG into a
-/// SystemZ-specific DAG, ready for instruction scheduling.
-///
-FunctionPass *llvm::createSystemZISelDag(SystemZTargetMachine &TM,
-                                        CodeGenOpt::Level OptLevel) {
-  return new SystemZDAGToDAGISel(TM, OptLevel);
-}
-
-/// isImmSExt20 - This method tests to see if the node is either a 32-bit
-/// or 64-bit immediate, and if the value can be accurately represented as a
-/// sign extension from a 20-bit value. If so, this returns true and the
-/// immediate.
-static bool isImmSExt20(int64_t Val, int64_t &Imm) {
-  if (Val >= -524288 && Val <= 524287) {
-    Imm = Val;
-    return true;
-  }
-  return false;
-}
-
-/// isImmZExt12 - This method tests to see if the node is either a 32-bit
-/// or 64-bit immediate, and if the value can be accurately represented as a
-/// zero extension from a 12-bit value. If so, this returns true and the
-/// immediate.
-static bool isImmZExt12(int64_t Val, int64_t &Imm) {
-  if (Val >= 0 && Val <= 0xFFF) {
-    Imm = Val;
-    return true;
-  }
-  return false;
-}
-
-/// MatchAddress - Add the specified node to the specified addressing mode,
-/// returning true if it cannot be done.  This just pattern matches for the
-/// addressing mode.
-bool SystemZDAGToDAGISel::MatchAddress(SDValue N, SystemZRRIAddressMode &AM,
-                                       bool is12Bit, unsigned Depth) {
-  DebugLoc dl = N.getDebugLoc();
-  DEBUG(errs() << "MatchAddress: "; AM.dump());
-  // Limit recursion.
-  if (Depth > 5)
-    return MatchAddressBase(N, AM);
-
-  // FIXME: We can perform better here. If we have something like
-  // (shift (add A, imm), N), we can try to reassociate stuff and fold shift of
-  // imm into addressing mode.
-  switch (N.getOpcode()) {
-  default: break;
-  case ISD::Constant: {
-    int64_t Val = cast<ConstantSDNode>(N)->getSExtValue();
-    int64_t Imm = 0;
-    bool Match = (is12Bit ?
-                  isImmZExt12(AM.Disp + Val, Imm) :
-                  isImmSExt20(AM.Disp + Val, Imm));
-    if (Match) {
-      AM.Disp = Imm;
-      return false;
-    }
-    break;
-  }
-
-  case ISD::FrameIndex:
-    if (AM.BaseType == SystemZRRIAddressMode::RegBase &&
-        AM.Base.Reg.getNode() == 0) {
-      AM.BaseType = SystemZRRIAddressMode::FrameIndexBase;
-      AM.Base.FrameIndex = cast<FrameIndexSDNode>(N)->getIndex();
-      return false;
-    }
-    break;
-
-  case ISD::SUB: {
-    // Given A-B, if A can be completely folded into the address and
-    // the index field with the index field unused, use -B as the index.
-    // This is a win if a has multiple parts that can be folded into
-    // the address. Also, this saves a mov if the base register has
-    // other uses, since it avoids a two-address sub instruction, however
-    // it costs an additional mov if the index register has other uses.
-
-    // Test if the LHS of the sub can be folded.
-    SystemZRRIAddressMode Backup = AM;
-    if (MatchAddress(N.getNode()->getOperand(0), AM, is12Bit, Depth+1)) {
-      AM = Backup;
-      break;
-    }
-    // Test if the index field is free for use.
-    if (AM.IndexReg.getNode() || AM.isRI) {
-      AM = Backup;
-      break;
-    }
-
-    // If the base is a register with multiple uses, this transformation may
-    // save a mov. Otherwise it's probably better not to do it.
-    if (AM.BaseType == SystemZRRIAddressMode::RegBase &&
-        (!AM.Base.Reg.getNode() || AM.Base.Reg.getNode()->hasOneUse())) {
-      AM = Backup;
-      break;
-    }
-
-    // Ok, the transformation is legal and appears profitable. Go for it.
-    SDValue RHS = N.getNode()->getOperand(1);
-    SDValue Zero = CurDAG->getConstant(0, N.getValueType());
-    SDValue Neg = CurDAG->getNode(ISD::SUB, dl, N.getValueType(), Zero, RHS);
-    AM.IndexReg = Neg;
-
-    // Insert the new nodes into the topological ordering.
-    if (Zero.getNode()->getNodeId() == -1 ||
-        Zero.getNode()->getNodeId() > N.getNode()->getNodeId()) {
-      CurDAG->RepositionNode(N.getNode(), Zero.getNode());
-      Zero.getNode()->setNodeId(N.getNode()->getNodeId());
-    }
-    if (Neg.getNode()->getNodeId() == -1 ||
-        Neg.getNode()->getNodeId() > N.getNode()->getNodeId()) {
-      CurDAG->RepositionNode(N.getNode(), Neg.getNode());
-      Neg.getNode()->setNodeId(N.getNode()->getNodeId());
-    }
-    return false;
-  }
-
-  case ISD::ADD: {
-    SystemZRRIAddressMode Backup = AM;
-    if (!MatchAddress(N.getNode()->getOperand(0), AM, is12Bit, Depth+1) &&
-        !MatchAddress(N.getNode()->getOperand(1), AM, is12Bit, Depth+1))
-      return false;
-    AM = Backup;
-    if (!MatchAddress(N.getNode()->getOperand(1), AM, is12Bit, Depth+1) &&
-        !MatchAddress(N.getNode()->getOperand(0), AM, is12Bit, Depth+1))
-      return false;
-    AM = Backup;
-
-    // If we couldn't fold both operands into the address at the same time,
-    // see if we can just put each operand into a register and fold at least
-    // the add.
-    if (!AM.isRI &&
-        AM.BaseType == SystemZRRIAddressMode::RegBase &&
-        !AM.Base.Reg.getNode() && !AM.IndexReg.getNode()) {
-      AM.Base.Reg = N.getNode()->getOperand(0);
-      AM.IndexReg = N.getNode()->getOperand(1);
-      return false;
-    }
-    break;
-  }
-
-  case ISD::OR:
-    // Handle "X | C" as "X + C" iff X is known to have C bits clear.
-    if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N.getOperand(1))) {
-      SystemZRRIAddressMode Backup = AM;
-      int64_t Offset = CN->getSExtValue();
-      int64_t Imm = 0;
-      bool MatchOffset = (is12Bit ?
-                          isImmZExt12(AM.Disp + Offset, Imm) :
-                          isImmSExt20(AM.Disp + Offset, Imm));
-      // The resultant disp must fit in 12 or 20-bits.
-      if (MatchOffset &&
-          // LHS should be an addr mode.
-          !MatchAddress(N.getOperand(0), AM, is12Bit, Depth+1) &&
-          // Check to see if the LHS & C is zero.
-          CurDAG->MaskedValueIsZero(N.getOperand(0), CN->getAPIntValue())) {
-        AM.Disp = Imm;
-        return false;
-      }
-      AM = Backup;
-    }
-    break;
-  }
-
-  return MatchAddressBase(N, AM);
-}
-
-/// MatchAddressBase - Helper for MatchAddress. Add the specified node to the
-/// specified addressing mode without any further recursion.
-bool SystemZDAGToDAGISel::MatchAddressBase(SDValue N,
-                                           SystemZRRIAddressMode &AM) {
-  // Is the base register already occupied?
-  if (AM.BaseType != SystemZRRIAddressMode::RegBase || AM.Base.Reg.getNode()) {
-    // If so, check to see if the index register is set.
-    if (AM.IndexReg.getNode() == 0 && !AM.isRI) {
-      AM.IndexReg = N;
-      return false;
-    }
-
-    // Otherwise, we cannot select it.
-    return true;
-  }
-
-  // Default, generate it as a register.
-  AM.BaseType = SystemZRRIAddressMode::RegBase;
-  AM.Base.Reg = N;
-  return false;
-}
-
-void SystemZDAGToDAGISel::getAddressOperandsRI(const SystemZRRIAddressMode &AM,
-                                               SDValue &Base, SDValue &Disp) {
-  if (AM.BaseType == SystemZRRIAddressMode::RegBase)
-    Base = AM.Base.Reg;
-  else
-    Base = CurDAG->getTargetFrameIndex(AM.Base.FrameIndex, TLI.getPointerTy());
-  Disp = CurDAG->getTargetConstant(AM.Disp, MVT::i64);
-}
-
-void SystemZDAGToDAGISel::getAddressOperands(const SystemZRRIAddressMode &AM,
-                                             SDValue &Base, SDValue &Disp,
-                                             SDValue &Index) {
-  getAddressOperandsRI(AM, Base, Disp);
-  Index = AM.IndexReg;
-}
-
-/// Returns true if the address can be represented by a base register plus
-/// an unsigned 12-bit displacement [r+imm].
-bool SystemZDAGToDAGISel::SelectAddrRI12Only(SDValue Op, SDValue& Addr,
-                                             SDValue &Base, SDValue &Disp) {
-  return SelectAddrRI12(Op, Addr, Base, Disp, /*is12BitOnly*/true);
-}
-
-bool SystemZDAGToDAGISel::SelectAddrRI12(SDValue Op, SDValue& Addr,
-                                         SDValue &Base, SDValue &Disp,
-                                         bool is12BitOnly) {
-  SystemZRRIAddressMode AM20(/*isRI*/true), AM12(/*isRI*/true);
-  bool Done = false;
-
-  if (!Addr.hasOneUse()) {
-    unsigned Opcode = Addr.getOpcode();
-    if (Opcode != ISD::Constant && Opcode != ISD::FrameIndex) {
-      // If we are able to fold N into addressing mode, then we'll allow it even
-      // if N has multiple uses. In general, addressing computation is used as
-      // addresses by all of its uses. But watch out for CopyToReg uses, that
-      // means the address computation is liveout. It will be computed by a LA
-      // so we want to avoid computing the address twice.
-      for (SDNode::use_iterator UI = Addr.getNode()->use_begin(),
-             UE = Addr.getNode()->use_end(); UI != UE; ++UI) {
-        if (UI->getOpcode() == ISD::CopyToReg) {
-          MatchAddressBase(Addr, AM12);
-          Done = true;
-          break;
-        }
-      }
-    }
-  }
-  if (!Done && MatchAddress(Addr, AM12, /* is12Bit */ true))
-    return false;
-
-  // Check, whether we can match stuff using 20-bit displacements
-  if (!Done && !is12BitOnly &&
-      !MatchAddress(Addr, AM20, /* is12Bit */ false))
-    if (AM12.Disp == 0 && AM20.Disp != 0)
-      return false;
-
-  DEBUG(errs() << "MatchAddress (final): "; AM12.dump());
-
-  EVT VT = Addr.getValueType();
-  if (AM12.BaseType == SystemZRRIAddressMode::RegBase) {
-    if (!AM12.Base.Reg.getNode())
-      AM12.Base.Reg = CurDAG->getRegister(0, VT);
-  }
-
-  assert(AM12.IndexReg.getNode() == 0 && "Invalid reg-imm address mode!");
-
-  getAddressOperandsRI(AM12, Base, Disp);
-
-  return true;
-}
-
-/// Returns true if the address can be represented by a base register plus
-/// a signed 20-bit displacement [r+imm].
-bool SystemZDAGToDAGISel::SelectAddrRI(SDValue Op, SDValue& Addr,
-                                       SDValue &Base, SDValue &Disp) {
-  SystemZRRIAddressMode AM(/*isRI*/true);
-  bool Done = false;
-
-  if (!Addr.hasOneUse()) {
-    unsigned Opcode = Addr.getOpcode();
-    if (Opcode != ISD::Constant && Opcode != ISD::FrameIndex) {
-      // If we are able to fold N into addressing mode, then we'll allow it even
-      // if N has multiple uses. In general, addressing computation is used as
-      // addresses by all of its uses. But watch out for CopyToReg uses, that
-      // means the address computation is liveout. It will be computed by a LA
-      // so we want to avoid computing the address twice.
-      for (SDNode::use_iterator UI = Addr.getNode()->use_begin(),
-             UE = Addr.getNode()->use_end(); UI != UE; ++UI) {
-        if (UI->getOpcode() == ISD::CopyToReg) {
-          MatchAddressBase(Addr, AM);
-          Done = true;
-          break;
-        }
-      }
-    }
-  }
-  if (!Done && MatchAddress(Addr, AM, /* is12Bit */ false))
-    return false;
-
-  DEBUG(errs() << "MatchAddress (final): "; AM.dump());
-
-  EVT VT = Addr.getValueType();
-  if (AM.BaseType == SystemZRRIAddressMode::RegBase) {
-    if (!AM.Base.Reg.getNode())
-      AM.Base.Reg = CurDAG->getRegister(0, VT);
-  }
-
-  assert(AM.IndexReg.getNode() == 0 && "Invalid reg-imm address mode!");
-
-  getAddressOperandsRI(AM, Base, Disp);
-
-  return true;
-}
-
-/// Returns true if the address can be represented by a base register plus
-/// index register plus an unsigned 12-bit displacement [base + idx + imm].
-bool SystemZDAGToDAGISel::SelectAddrRRI12(SDValue Op, SDValue Addr,
-                                SDValue &Base, SDValue &Disp, SDValue &Index) {
-  SystemZRRIAddressMode AM20, AM12;
-  bool Done = false;
-
-  if (!Addr.hasOneUse()) {
-    unsigned Opcode = Addr.getOpcode();
-    if (Opcode != ISD::Constant && Opcode != ISD::FrameIndex) {
-      // If we are able to fold N into addressing mode, then we'll allow it even
-      // if N has multiple uses. In general, addressing computation is used as
-      // addresses by all of its uses. But watch out for CopyToReg uses, that
-      // means the address computation is liveout. It will be computed by a LA
-      // so we want to avoid computing the address twice.
-      for (SDNode::use_iterator UI = Addr.getNode()->use_begin(),
-             UE = Addr.getNode()->use_end(); UI != UE; ++UI) {
-        if (UI->getOpcode() == ISD::CopyToReg) {
-          MatchAddressBase(Addr, AM12);
-          Done = true;
-          break;
-        }
-      }
-    }
-  }
-  if (!Done && MatchAddress(Addr, AM12, /* is12Bit */ true))
-    return false;
-
-  // Check, whether we can match stuff using 20-bit displacements
-  if (!Done && !MatchAddress(Addr, AM20, /* is12Bit */ false))
-    if (AM12.Disp == 0 && AM20.Disp != 0)
-      return false;
-
-  DEBUG(errs() << "MatchAddress (final): "; AM12.dump());
-
-  EVT VT = Addr.getValueType();
-  if (AM12.BaseType == SystemZRRIAddressMode::RegBase) {
-    if (!AM12.Base.Reg.getNode())
-      AM12.Base.Reg = CurDAG->getRegister(0, VT);
-  }
-
-  if (!AM12.IndexReg.getNode())
-    AM12.IndexReg = CurDAG->getRegister(0, VT);
-
-  getAddressOperands(AM12, Base, Disp, Index);
-
-  return true;
-}
-
-/// Returns true if the address can be represented by a base register plus
-/// index register plus a signed 20-bit displacement [base + idx + imm].
-bool SystemZDAGToDAGISel::SelectAddrRRI20(SDValue Op, SDValue Addr,
-                                SDValue &Base, SDValue &Disp, SDValue &Index) {
-  SystemZRRIAddressMode AM;
-  bool Done = false;
-
-  if (!Addr.hasOneUse()) {
-    unsigned Opcode = Addr.getOpcode();
-    if (Opcode != ISD::Constant && Opcode != ISD::FrameIndex) {
-      // If we are able to fold N into addressing mode, then we'll allow it even
-      // if N has multiple uses. In general, addressing computation is used as
-      // addresses by all of its uses. But watch out for CopyToReg uses, that
-      // means the address computation is liveout. It will be computed by a LA
-      // so we want to avoid computing the address twice.
-      for (SDNode::use_iterator UI = Addr.getNode()->use_begin(),
-             UE = Addr.getNode()->use_end(); UI != UE; ++UI) {
-        if (UI->getOpcode() == ISD::CopyToReg) {
-          MatchAddressBase(Addr, AM);
-          Done = true;
-          break;
-        }
-      }
-    }
-  }
-  if (!Done && MatchAddress(Addr, AM, /* is12Bit */ false))
-    return false;
-
-  DEBUG(errs() << "MatchAddress (final): "; AM.dump());
-
-  EVT VT = Addr.getValueType();
-  if (AM.BaseType == SystemZRRIAddressMode::RegBase) {
-    if (!AM.Base.Reg.getNode())
-      AM.Base.Reg = CurDAG->getRegister(0, VT);
-  }
-
-  if (!AM.IndexReg.getNode())
-    AM.IndexReg = CurDAG->getRegister(0, VT);
-
-  getAddressOperands(AM, Base, Disp, Index);
-
-  return true;
-}
-
-/// SelectLAAddr - it calls SelectAddr and determines if the maximal addressing
-/// mode it matches can be cost effectively emitted as an LA/LAY instruction.
-bool SystemZDAGToDAGISel::SelectLAAddr(SDValue Op, SDValue Addr,
-                                  SDValue &Base, SDValue &Disp, SDValue &Index) {
-  SystemZRRIAddressMode AM;
-
-  if (MatchAddress(Addr, AM, false))
-    return false;
-
-  EVT VT = Addr.getValueType();
-  unsigned Complexity = 0;
-  if (AM.BaseType == SystemZRRIAddressMode::RegBase)
-    if (AM.Base.Reg.getNode())
-      Complexity = 1;
-    else
-      AM.Base.Reg = CurDAG->getRegister(0, VT);
-  else if (AM.BaseType == SystemZRRIAddressMode::FrameIndexBase)
-    Complexity = 4;
-
-  if (AM.IndexReg.getNode())
-    Complexity += 1;
-  else
-    AM.IndexReg = CurDAG->getRegister(0, VT);
-
-  if (AM.Disp && (AM.Base.Reg.getNode() || AM.IndexReg.getNode()))
-    Complexity += 1;
-
-  if (Complexity > 2) {
-    getAddressOperands(AM, Base, Disp, Index);
-    return true;
-  }
-
-  return false;
-}
-
-bool SystemZDAGToDAGISel::TryFoldLoad(SDValue P, SDValue N,
-                                 SDValue &Base, SDValue &Disp, SDValue &Index) {
-  if (ISD::isNON_EXTLoad(N.getNode()) &&
-      N.hasOneUse() &&
-      IsLegalAndProfitableToFold(N.getNode(), P.getNode(), P.getNode()))
-    return SelectAddrRRI20(P, N.getOperand(1), Base, Disp, Index);
-  return false;
-}
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void SystemZDAGToDAGISel::InstructionSelect() {
-  DEBUG(BB->dump());
-
-  // Codegen the basic block.
-  DEBUG(errs() << "===== Instruction selection begins:\n");
-  DEBUG(Indent = 0);
-  SelectRoot(*CurDAG);
-  DEBUG(errs() << "===== Instruction selection ends:\n");
-
-  CurDAG->RemoveDeadNodes();
-}
-
-SDNode *SystemZDAGToDAGISel::Select(SDValue Op) {
-  SDNode *Node = Op.getNode();
-  EVT NVT = Node->getValueType(0);
-  DebugLoc dl = Op.getDebugLoc();
-  unsigned Opcode = Node->getOpcode();
-
-  // Dump information about the Node being selected
-  DEBUG(errs().indent(Indent) << "Selecting: ";
-        Node->dump(CurDAG);
-        errs() << "\n");
-  DEBUG(Indent += 2);
-
-  // If we have a custom node, we already have selected!
-  if (Node->isMachineOpcode()) {
-    DEBUG(errs().indent(Indent-2) << "== ";
-          Node->dump(CurDAG);
-          errs() << "\n");
-    DEBUG(Indent -= 2);
-    return NULL; // Already selected.
-  }
-
-  switch (Opcode) {
-  default: break;
-  case ISD::SDIVREM: {
-    unsigned Opc, MOpc;
-    SDValue N0 = Node->getOperand(0);
-    SDValue N1 = Node->getOperand(1);
-
-    EVT ResVT;
-    bool is32Bit = false;
-    switch (NVT.getSimpleVT().SimpleTy) {
-      default: assert(0 && "Unsupported VT!");
-      case MVT::i32:
-        Opc = SystemZ::SDIVREM32r; MOpc = SystemZ::SDIVREM32m;
-        ResVT = MVT::v2i64;
-        is32Bit = true;
-        break;
-      case MVT::i64:
-        Opc = SystemZ::SDIVREM64r; MOpc = SystemZ::SDIVREM64m;
-        ResVT = MVT::v2i64;
-        break;
-    }
-
-    SDValue Tmp0, Tmp1, Tmp2;
-    bool foldedLoad = TryFoldLoad(Op, N1, Tmp0, Tmp1, Tmp2);
-
-    // Prepare the dividend
-    SDNode *Dividend;
-    if (is32Bit)
-      Dividend = CurDAG->getTargetNode(SystemZ::MOVSX64rr32, dl, MVT::i64, N0);
-    else
-      Dividend = N0.getNode();
-
-    // Insert prepared dividend into suitable 'subreg'
-    SDNode *Tmp = CurDAG->getTargetNode(TargetInstrInfo::IMPLICIT_DEF,
-                                        dl, ResVT);
-    Dividend =
-      CurDAG->getTargetNode(TargetInstrInfo::INSERT_SUBREG, dl, ResVT,
-                            SDValue(Tmp, 0), SDValue(Dividend, 0),
-                            CurDAG->getTargetConstant(subreg_odd, MVT::i32));
-
-    SDNode *Result;
-    SDValue DivVal = SDValue(Dividend, 0);
-    if (foldedLoad) {
-      SDValue Ops[] = { DivVal, Tmp0, Tmp1, Tmp2, N1.getOperand(0) };
-      Result = CurDAG->getTargetNode(MOpc, dl, ResVT, Ops, array_lengthof(Ops));
-      // Update the chain.
-      ReplaceUses(N1.getValue(1), SDValue(Result, 0));
-    } else {
-      Result = CurDAG->getTargetNode(Opc, dl, ResVT, SDValue(Dividend, 0), N1);
-    }
-
-    // Copy the division (odd subreg) result, if it is needed.
-    if (!Op.getValue(0).use_empty()) {
-      unsigned SubRegIdx = (is32Bit ? subreg_odd32 : subreg_odd);
-      SDNode *Div = CurDAG->getTargetNode(TargetInstrInfo::EXTRACT_SUBREG,
-                                          dl, NVT,
-                                          SDValue(Result, 0),
-                                          CurDAG->getTargetConstant(SubRegIdx,
-                                                                    MVT::i32));
-
-      ReplaceUses(Op.getValue(0), SDValue(Div, 0));
-      DEBUG(errs().indent(Indent-2) << "=> ";
-            Result->dump(CurDAG);
-            errs() << "\n");
-    }
-
-    // Copy the remainder (even subreg) result, if it is needed.
-    if (!Op.getValue(1).use_empty()) {
-      unsigned SubRegIdx = (is32Bit ? subreg_even32 : subreg_even);
-      SDNode *Rem = CurDAG->getTargetNode(TargetInstrInfo::EXTRACT_SUBREG,
-                                          dl, NVT,
-                                          SDValue(Result, 0),
-                                          CurDAG->getTargetConstant(SubRegIdx,
-                                                                    MVT::i32));
-
-      ReplaceUses(Op.getValue(1), SDValue(Rem, 0));
-      DEBUG(errs().indent(Indent-2) << "=> ";
-            Result->dump(CurDAG);
-            errs() << "\n");
-    }
-
-#ifndef NDEBUG
-    Indent -= 2;
-#endif
-
-    return NULL;
-  }
-  case ISD::UDIVREM: {
-    unsigned Opc, MOpc, ClrOpc;
-    SDValue N0 = Node->getOperand(0);
-    SDValue N1 = Node->getOperand(1);
-    EVT ResVT;
-
-    bool is32Bit = false;
-    switch (NVT.getSimpleVT().SimpleTy) {
-      default: assert(0 && "Unsupported VT!");
-      case MVT::i32:
-        Opc = SystemZ::UDIVREM32r; MOpc = SystemZ::UDIVREM32m;
-        ClrOpc = SystemZ::MOV64Pr0_even;
-        ResVT = MVT::v2i32;
-        is32Bit = true;
-        break;
-      case MVT::i64:
-        Opc = SystemZ::UDIVREM64r; MOpc = SystemZ::UDIVREM64m;
-        ClrOpc = SystemZ::MOV128r0_even;
-        ResVT = MVT::v2i64;
-        break;
-    }
-
-    SDValue Tmp0, Tmp1, Tmp2;
-    bool foldedLoad = TryFoldLoad(Op, N1, Tmp0, Tmp1, Tmp2);
-
-    // Prepare the dividend
-    SDNode *Dividend = N0.getNode();
-
-    // Insert prepared dividend into suitable 'subreg'
-    SDNode *Tmp = CurDAG->getTargetNode(TargetInstrInfo::IMPLICIT_DEF,
-                                        dl, ResVT);
-    {
-      unsigned SubRegIdx = (is32Bit ? subreg_odd32 : subreg_odd);
-      Dividend =
-        CurDAG->getTargetNode(TargetInstrInfo::INSERT_SUBREG, dl, ResVT,
-                              SDValue(Tmp, 0), SDValue(Dividend, 0),
-                              CurDAG->getTargetConstant(SubRegIdx, MVT::i32));
-    }
-
-    // Zero out even subreg
-    Dividend = CurDAG->getTargetNode(ClrOpc, dl, ResVT, SDValue(Dividend, 0));
-
-    SDValue DivVal = SDValue(Dividend, 0);
-    SDNode *Result;
-    if (foldedLoad) {
-      SDValue Ops[] = { DivVal, Tmp0, Tmp1, Tmp2, N1.getOperand(0) };
-      Result = CurDAG->getTargetNode(MOpc, dl,ResVT,
-                                     Ops, array_lengthof(Ops));
-      // Update the chain.
-      ReplaceUses(N1.getValue(1), SDValue(Result, 0));
-    } else {
-      Result = CurDAG->getTargetNode(Opc, dl, ResVT, DivVal, N1);
-    }
-
-    // Copy the division (odd subreg) result, if it is needed.
-    if (!Op.getValue(0).use_empty()) {
-      unsigned SubRegIdx = (is32Bit ? subreg_odd32 : subreg_odd);
-      SDNode *Div = CurDAG->getTargetNode(TargetInstrInfo::EXTRACT_SUBREG,
-                                          dl, NVT,
-                                          SDValue(Result, 0),
-                                          CurDAG->getTargetConstant(SubRegIdx,
-                                                                    MVT::i32));
-      ReplaceUses(Op.getValue(0), SDValue(Div, 0));
-      DEBUG(errs().indent(Indent-2) << "=> ";
-            Result->dump(CurDAG);
-            errs() << "\n");
-    }
-
-    // Copy the remainder (even subreg) result, if it is needed.
-    if (!Op.getValue(1).use_empty()) {
-      unsigned SubRegIdx = (is32Bit ? subreg_even32 : subreg_even);
-      SDNode *Rem = CurDAG->getTargetNode(TargetInstrInfo::EXTRACT_SUBREG,
-                                          dl, NVT,
-                                          SDValue(Result, 0),
-                                          CurDAG->getTargetConstant(SubRegIdx,
-                                                                    MVT::i32));
-      ReplaceUses(Op.getValue(1), SDValue(Rem, 0));
-      DEBUG(errs().indent(Indent-2) << "=> ";
-            Result->dump(CurDAG);
-            errs() << "\n");
-    }
-
-#ifndef NDEBUG
-    Indent -= 2;
-#endif
-
-    return NULL;
-  }
-  }
-
-  // Select the default instruction
-  SDNode *ResNode = SelectCode(Op);
-
-  DEBUG(errs().indent(Indent-2) << "=> ";
-        if (ResNode == NULL || ResNode == Op.getNode())
-          Op.getNode()->dump(CurDAG);
-        else
-          ResNode->dump(CurDAG);
-        errs() << "\n";
-        );
-  DEBUG(Indent -= 2);
-
-  return ResNode;
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
deleted file mode 100644
index 701bff6..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+++ /dev/null
@@ -1,838 +0,0 @@
-//===-- SystemZISelLowering.cpp - SystemZ DAG Lowering Implementation  -----==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SystemZTargetLowering class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "systemz-lower"
-
-#include "SystemZISelLowering.h"
-#include "SystemZ.h"
-#include "SystemZTargetMachine.h"
-#include "SystemZSubtarget.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/GlobalVariable.h"
-#include "llvm/GlobalAlias.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/VectorExtras.h"
-using namespace llvm;
-
-SystemZTargetLowering::SystemZTargetLowering(SystemZTargetMachine &tm) :
-  TargetLowering(tm, new TargetLoweringObjectFileELF()),
-  Subtarget(*tm.getSubtargetImpl()), TM(tm) {
-
-  RegInfo = TM.getRegisterInfo();
-
-  // Set up the register classes.
-  addRegisterClass(MVT::i32,  SystemZ::GR32RegisterClass);
-  addRegisterClass(MVT::i64,  SystemZ::GR64RegisterClass);
-  addRegisterClass(MVT::v2i32,SystemZ::GR64PRegisterClass);
-  addRegisterClass(MVT::v2i64,SystemZ::GR128RegisterClass);
-
-  if (!UseSoftFloat) {
-    addRegisterClass(MVT::f32, SystemZ::FP32RegisterClass);
-    addRegisterClass(MVT::f64, SystemZ::FP64RegisterClass);
-
-    addLegalFPImmediate(APFloat(+0.0));  // lzer
-    addLegalFPImmediate(APFloat(+0.0f)); // lzdr
-    addLegalFPImmediate(APFloat(-0.0));  // lzer + lner
-    addLegalFPImmediate(APFloat(-0.0f)); // lzdr + lndr
-  }
-
-  // Compute derived properties from the register classes
-  computeRegisterProperties();
-
-  // Set shifts properties
-  setShiftAmountType(MVT::i64);
-
-  // Provide all sorts of operation actions
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::EXTLOAD,  MVT::i1, Promote);
-
-  setLoadExtAction(ISD::SEXTLOAD, MVT::f32, Expand);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::f32, Expand);
-  setLoadExtAction(ISD::EXTLOAD,  MVT::f32, Expand);
-
-  setLoadExtAction(ISD::SEXTLOAD, MVT::f64, Expand);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::f64, Expand);
-  setLoadExtAction(ISD::EXTLOAD,  MVT::f64, Expand);
-
-  setStackPointerRegisterToSaveRestore(SystemZ::R15D);
-  setSchedulingPreference(SchedulingForLatency);
-  setBooleanContents(ZeroOrOneBooleanContent);
-
-  setOperationAction(ISD::BR_JT,            MVT::Other, Expand);
-  setOperationAction(ISD::BRCOND,           MVT::Other, Expand);
-  setOperationAction(ISD::BR_CC,            MVT::i32, Custom);
-  setOperationAction(ISD::BR_CC,            MVT::i64, Custom);
-  setOperationAction(ISD::BR_CC,            MVT::f32, Custom);
-  setOperationAction(ISD::BR_CC,            MVT::f64, Custom);
-  setOperationAction(ISD::ConstantPool,     MVT::i32, Custom);
-  setOperationAction(ISD::ConstantPool,     MVT::i64, Custom);
-  setOperationAction(ISD::GlobalAddress,    MVT::i64, Custom);
-  setOperationAction(ISD::JumpTable,        MVT::i64, Custom);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Expand);
-
-  setOperationAction(ISD::SDIV,             MVT::i32, Expand);
-  setOperationAction(ISD::UDIV,             MVT::i32, Expand);
-  setOperationAction(ISD::SDIV,             MVT::i64, Expand);
-  setOperationAction(ISD::UDIV,             MVT::i64, Expand);
-  setOperationAction(ISD::SREM,             MVT::i32, Expand);
-  setOperationAction(ISD::UREM,             MVT::i32, Expand);
-  setOperationAction(ISD::SREM,             MVT::i64, Expand);
-  setOperationAction(ISD::UREM,             MVT::i64, Expand);
-
-  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
-
-  setOperationAction(ISD::CTPOP,            MVT::i32, Expand);
-  setOperationAction(ISD::CTPOP,            MVT::i64, Expand);
-  setOperationAction(ISD::CTTZ,             MVT::i32, Expand);
-  setOperationAction(ISD::CTTZ,             MVT::i64, Expand);
-  setOperationAction(ISD::CTLZ,             MVT::i32, Promote);
-  setOperationAction(ISD::CTLZ,             MVT::i64, Legal);
-
-  // FIXME: Can we lower these 2 efficiently?
-  setOperationAction(ISD::SETCC,            MVT::i32, Expand);
-  setOperationAction(ISD::SETCC,            MVT::i64, Expand);
-  setOperationAction(ISD::SETCC,            MVT::f32, Expand);
-  setOperationAction(ISD::SETCC,            MVT::f64, Expand);
-  setOperationAction(ISD::SELECT,           MVT::i32, Expand);
-  setOperationAction(ISD::SELECT,           MVT::i64, Expand);
-  setOperationAction(ISD::SELECT,           MVT::f32, Expand);
-  setOperationAction(ISD::SELECT,           MVT::f64, Expand);
-  setOperationAction(ISD::SELECT_CC,        MVT::i32, Custom);
-  setOperationAction(ISD::SELECT_CC,        MVT::i64, Custom);
-  setOperationAction(ISD::SELECT_CC,        MVT::f32, Custom);
-  setOperationAction(ISD::SELECT_CC,        MVT::f64, Custom);
-
-  setOperationAction(ISD::MULHS,            MVT::i64, Expand);
-  setOperationAction(ISD::SMUL_LOHI,        MVT::i64, Expand);
-
-  // FIXME: Can we support these natively?
-  setOperationAction(ISD::UMUL_LOHI,        MVT::i64, Expand);
-  setOperationAction(ISD::SRL_PARTS,        MVT::i64, Expand);
-  setOperationAction(ISD::SHL_PARTS,        MVT::i64, Expand);
-  setOperationAction(ISD::SRA_PARTS,        MVT::i64, Expand);
-
-  // Lower some FP stuff
-  setOperationAction(ISD::FSIN,             MVT::f32, Expand);
-  setOperationAction(ISD::FSIN,             MVT::f64, Expand);
-  setOperationAction(ISD::FCOS,             MVT::f32, Expand);
-  setOperationAction(ISD::FCOS,             MVT::f64, Expand);
-  setOperationAction(ISD::FREM,             MVT::f32, Expand);
-  setOperationAction(ISD::FREM,             MVT::f64, Expand);
-
-  // We have only 64-bit bitconverts
-  setOperationAction(ISD::BIT_CONVERT,      MVT::f32, Expand);
-  setOperationAction(ISD::BIT_CONVERT,      MVT::i32, Expand);
-
-  setOperationAction(ISD::UINT_TO_FP,       MVT::i32, Expand);
-  setOperationAction(ISD::UINT_TO_FP,       MVT::i64, Expand);
-  setOperationAction(ISD::FP_TO_UINT,       MVT::i32, Expand);
-  setOperationAction(ISD::FP_TO_UINT,       MVT::i64, Expand);
-
-  setTruncStoreAction(MVT::f64, MVT::f32, Expand);
-}
-
-SDValue SystemZTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) {
-  switch (Op.getOpcode()) {
-  case ISD::BR_CC:            return LowerBR_CC(Op, DAG);
-  case ISD::SELECT_CC:        return LowerSELECT_CC(Op, DAG);
-  case ISD::GlobalAddress:    return LowerGlobalAddress(Op, DAG);
-  case ISD::JumpTable:        return LowerJumpTable(Op, DAG);
-  case ISD::ConstantPool:     return LowerConstantPool(Op, DAG);
-  default:
-    llvm_unreachable("Should not custom lower this!");
-    return SDValue();
-  }
-}
-
-//===----------------------------------------------------------------------===//
-//                       SystemZ Inline Assembly Support
-//===----------------------------------------------------------------------===//
-
-/// getConstraintType - Given a constraint letter, return the type of
-/// constraint it is for this target.
-TargetLowering::ConstraintType
-SystemZTargetLowering::getConstraintType(const std::string &Constraint) const {
-  if (Constraint.size() == 1) {
-    switch (Constraint[0]) {
-    case 'r':
-      return C_RegisterClass;
-    default:
-      break;
-    }
-  }
-  return TargetLowering::getConstraintType(Constraint);
-}
-
-std::pair<unsigned, const TargetRegisterClass*>
-SystemZTargetLowering::
-getRegForInlineAsmConstraint(const std::string &Constraint,
-                             EVT VT) const {
-  if (Constraint.size() == 1) {
-    // GCC Constraint Letters
-    switch (Constraint[0]) {
-    default: break;
-    case 'r':   // GENERAL_REGS
-      if (VT == MVT::i32)
-        return std::make_pair(0U, SystemZ::GR32RegisterClass);
-      else if (VT == MVT::i128)
-        return std::make_pair(0U, SystemZ::GR128RegisterClass);
-
-      return std::make_pair(0U, SystemZ::GR64RegisterClass);
-    }
-  }
-
-  return TargetLowering::getRegForInlineAsmConstraint(Constraint, VT);
-}
-
-//===----------------------------------------------------------------------===//
-//                      Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-#include "SystemZGenCallingConv.inc"
-
-SDValue
-SystemZTargetLowering::LowerFormalArguments(SDValue Chain,
-                                            unsigned CallConv,
-                                            bool isVarArg,
-                                            const SmallVectorImpl<ISD::InputArg>
-                                              &Ins,
-                                            DebugLoc dl,
-                                            SelectionDAG &DAG,
-                                            SmallVectorImpl<SDValue> &InVals) {
-
-  switch (CallConv) {
-  default:
-    llvm_unreachable("Unsupported calling convention");
-  case CallingConv::C:
-  case CallingConv::Fast:
-    return LowerCCCArguments(Chain, CallConv, isVarArg, Ins, dl, DAG, InVals);
-  }
-}
-
-SDValue
-SystemZTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                                 unsigned CallConv, bool isVarArg,
-                                 bool isTailCall,
-                                 const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                 const SmallVectorImpl<ISD::InputArg> &Ins,
-                                 DebugLoc dl, SelectionDAG &DAG,
-                                 SmallVectorImpl<SDValue> &InVals) {
-
-  switch (CallConv) {
-  default:
-    llvm_unreachable("Unsupported calling convention");
-  case CallingConv::Fast:
-  case CallingConv::C:
-    return LowerCCCCallTo(Chain, Callee, CallConv, isVarArg, isTailCall,
-                          Outs, Ins, dl, DAG, InVals);
-  }
-}
-
-/// LowerCCCArguments - transform physical registers into virtual registers and
-/// generate load operations for arguments places on the stack.
-// FIXME: struct return stuff
-// FIXME: varargs
-SDValue
-SystemZTargetLowering::LowerCCCArguments(SDValue Chain,
-                                         unsigned CallConv,
-                                         bool isVarArg,
-                                         const SmallVectorImpl<ISD::InputArg>
-                                           &Ins,
-                                         DebugLoc dl,
-                                         SelectionDAG &DAG,
-                                         SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineRegisterInfo &RegInfo = MF.getRegInfo();
-
-  // Assign locations to all of the incoming arguments.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-  CCInfo.AnalyzeFormalArguments(Ins, CC_SystemZ);
-
-  if (isVarArg)
-    llvm_report_error("Varargs not supported yet");
-
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    SDValue ArgValue;
-    CCValAssign &VA = ArgLocs[i];
-    EVT LocVT = VA.getLocVT();
-    if (VA.isRegLoc()) {
-      // Arguments passed in registers
-      TargetRegisterClass *RC;
-      switch (LocVT.getSimpleVT().SimpleTy) {
-      default:
-#ifndef NDEBUG
-        errs() << "LowerFormalArguments Unhandled argument type: "
-             << LocVT.getSimpleVT().SimpleTy
-             << "\n";
-#endif
-        llvm_unreachable(0);
-      case MVT::i64:
-        RC = SystemZ::GR64RegisterClass;
-        break;
-      case MVT::f32:
-        RC = SystemZ::FP32RegisterClass;
-        break;
-      case MVT::f64:
-        RC = SystemZ::FP64RegisterClass;
-        break;
-      }
-
-      unsigned VReg = RegInfo.createVirtualRegister(RC);
-      RegInfo.addLiveIn(VA.getLocReg(), VReg);
-      ArgValue = DAG.getCopyFromReg(Chain, dl, VReg, LocVT);
-    } else {
-      // Sanity check
-      assert(VA.isMemLoc());
-
-      // Create the nodes corresponding to a load from this parameter slot.
-      // Create the frame index object for this incoming parameter...
-      int FI = MFI->CreateFixedObject(LocVT.getSizeInBits()/8,
-                                      VA.getLocMemOffset());
-
-      // Create the SelectionDAG nodes corresponding to a load
-      // from this parameter
-      SDValue FIN = DAG.getFrameIndex(FI, getPointerTy());
-      ArgValue = DAG.getLoad(LocVT, dl, Chain, FIN,
-                             PseudoSourceValue::getFixedStack(FI), 0);
-    }
-
-    // If this is an 8/16/32-bit value, it is really passed promoted to 64
-    // bits. Insert an assert[sz]ext to capture this, then truncate to the
-    // right size.
-    if (VA.getLocInfo() == CCValAssign::SExt)
-      ArgValue = DAG.getNode(ISD::AssertSext, dl, LocVT, ArgValue,
-                             DAG.getValueType(VA.getValVT()));
-    else if (VA.getLocInfo() == CCValAssign::ZExt)
-      ArgValue = DAG.getNode(ISD::AssertZext, dl, LocVT, ArgValue,
-                             DAG.getValueType(VA.getValVT()));
-
-    if (VA.getLocInfo() != CCValAssign::Full)
-      ArgValue = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), ArgValue);
-
-    InVals.push_back(ArgValue);
-  }
-
-  return Chain;
-}
-
-/// LowerCCCCallTo - functions arguments are copied from virtual regs to
-/// (physical regs)/(stack frame), CALLSEQ_START and CALLSEQ_END are emitted.
-/// TODO: sret.
-SDValue
-SystemZTargetLowering::LowerCCCCallTo(SDValue Chain, SDValue Callee,
-                                      unsigned CallConv, bool isVarArg,
-                                      bool isTailCall,
-                                      const SmallVectorImpl<ISD::OutputArg>
-                                        &Outs,
-                                      const SmallVectorImpl<ISD::InputArg> &Ins,
-                                      DebugLoc dl, SelectionDAG &DAG,
-                                      SmallVectorImpl<SDValue> &InVals) {
-
-  MachineFunction &MF = DAG.getMachineFunction();
-
-  // Offset to first argument stack slot.
-  const unsigned FirstArgOffset = 160;
-
-  // Analyze operands of the call, assigning locations to each operand.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-
-  CCInfo.AnalyzeCallOperands(Outs, CC_SystemZ);
-
-  // Get a count of how many bytes are to be pushed on the stack.
-  unsigned NumBytes = CCInfo.getNextStackOffset();
-
-  Chain = DAG.getCALLSEQ_START(Chain ,DAG.getConstant(NumBytes,
-                                                      getPointerTy(), true));
-
-  SmallVector<std::pair<unsigned, SDValue>, 4> RegsToPass;
-  SmallVector<SDValue, 12> MemOpChains;
-  SDValue StackPtr;
-
-  // Walk the register/memloc assignments, inserting copies/loads.
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-
-    SDValue Arg = Outs[i].Val;
-
-    // Promote the value if needed.
-    switch (VA.getLocInfo()) {
-      default: assert(0 && "Unknown loc info!");
-      case CCValAssign::Full: break;
-      case CCValAssign::SExt:
-        Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::ZExt:
-        Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::AExt:
-        Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-    }
-
-    // Arguments that can be passed on register must be kept at RegsToPass
-    // vector
-    if (VA.isRegLoc()) {
-      RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-    } else {
-      assert(VA.isMemLoc());
-
-      if (StackPtr.getNode() == 0)
-        StackPtr =
-          DAG.getCopyFromReg(Chain, dl,
-                             (RegInfo->hasFP(MF) ?
-                              SystemZ::R11D : SystemZ::R15D),
-                             getPointerTy());
-
-      unsigned Offset = FirstArgOffset + VA.getLocMemOffset();
-      SDValue PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(),
-                                   StackPtr,
-                                   DAG.getIntPtrConstant(Offset));
-
-      MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff,
-                                         PseudoSourceValue::getStack(), Offset));
-    }
-  }
-
-  // Transform all store nodes into one single node because all store nodes are
-  // independent of each other.
-  if (!MemOpChains.empty())
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                        &MemOpChains[0], MemOpChains.size());
-
-  // Build a sequence of copy-to-reg nodes chained together with token chain and
-  // flag operands which copy the outgoing args into registers.  The InFlag in
-  // necessary since all emited instructions must be stuck together.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first,
-                             RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  // If the callee is a GlobalAddress node (quite common, every direct call is)
-  // turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
-  // Likewise ExternalSymbol -> TargetExternalSymbol.
-  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
-    Callee = DAG.getTargetGlobalAddress(G->getGlobal(), getPointerTy());
-  else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
-    Callee = DAG.getTargetExternalSymbol(E->getSymbol(), getPointerTy());
-
-  // Returns a chain & a flag for retval copy to use.
-  SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Flag);
-  SmallVector<SDValue, 8> Ops;
-  Ops.push_back(Chain);
-  Ops.push_back(Callee);
-
-  // Add argument registers to the end of the list so that they are
-  // known live into the call.
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i)
-    Ops.push_back(DAG.getRegister(RegsToPass[i].first,
-                                  RegsToPass[i].second.getValueType()));
-
-  if (InFlag.getNode())
-    Ops.push_back(InFlag);
-
-  Chain = DAG.getNode(SystemZISD::CALL, dl, NodeTys, &Ops[0], Ops.size());
-  InFlag = Chain.getValue(1);
-
-  // Create the CALLSEQ_END node.
-  Chain = DAG.getCALLSEQ_END(Chain,
-                             DAG.getConstant(NumBytes, getPointerTy(), true),
-                             DAG.getConstant(0, getPointerTy(), true),
-                             InFlag);
-  InFlag = Chain.getValue(1);
-
-  // Handle result values, copying them out of physregs into vregs that we
-  // return.
-  return LowerCallResult(Chain, InFlag, CallConv, isVarArg, Ins, dl,
-                         DAG, InVals);
-}
-
-/// LowerCallResult - Lower the result values of a call into the
-/// appropriate copies out of appropriate physical registers.
-///
-SDValue
-SystemZTargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
-                                       unsigned CallConv, bool isVarArg,
-                                       const SmallVectorImpl<ISD::InputArg>
-                                         &Ins,
-                                       DebugLoc dl, SelectionDAG &DAG,
-                                       SmallVectorImpl<SDValue> &InVals) {
-
-  // Assign locations to each value returned by this call.
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(), RVLocs,
-                 *DAG.getContext());
-
-  CCInfo.AnalyzeCallResult(Ins, RetCC_SystemZ);
-
-  // Copy all of the result registers out of their specified physreg.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-
-    Chain = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(),
-                               VA.getLocVT(), InFlag).getValue(1);
-    SDValue RetValue = Chain.getValue(0);
-    InFlag = Chain.getValue(2);
-
-    // If this is an 8/16/32-bit value, it is really passed promoted to 64
-    // bits. Insert an assert[sz]ext to capture this, then truncate to the
-    // right size.
-    if (VA.getLocInfo() == CCValAssign::SExt)
-      RetValue = DAG.getNode(ISD::AssertSext, dl, VA.getLocVT(), RetValue,
-                             DAG.getValueType(VA.getValVT()));
-    else if (VA.getLocInfo() == CCValAssign::ZExt)
-      RetValue = DAG.getNode(ISD::AssertZext, dl, VA.getLocVT(), RetValue,
-                             DAG.getValueType(VA.getValVT()));
-
-    if (VA.getLocInfo() != CCValAssign::Full)
-      RetValue = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), RetValue);
-
-    InVals.push_back(RetValue);
-  }
-
-  return Chain;
-}
-
-
-SDValue
-SystemZTargetLowering::LowerReturn(SDValue Chain,
-                                   unsigned CallConv, bool isVarArg,
-                                   const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                   DebugLoc dl, SelectionDAG &DAG) {
-
-  // CCValAssign - represent the assignment of the return value to a location
-  SmallVector<CCValAssign, 16> RVLocs;
-
-  // CCState - Info about the registers and stack slot.
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-
-  // Analize return values.
-  CCInfo.AnalyzeReturn(Outs, RetCC_SystemZ);
-
-  // If this is the first return lowered for this function, add the regs to the
-  // liveout set for the function.
-  if (DAG.getMachineFunction().getRegInfo().liveout_empty()) {
-    for (unsigned i = 0; i != RVLocs.size(); ++i)
-      if (RVLocs[i].isRegLoc())
-        DAG.getMachineFunction().getRegInfo().addLiveOut(RVLocs[i].getLocReg());
-  }
-
-  SDValue Flag;
-
-  // Copy the result values into the output registers.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-    SDValue ResValue = Outs[i].Val;
-    assert(VA.isRegLoc() && "Can only return in registers!");
-
-    // If this is an 8/16/32-bit value, it is really should be passed promoted
-    // to 64 bits.
-    if (VA.getLocInfo() == CCValAssign::SExt)
-      ResValue = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), ResValue);
-    else if (VA.getLocInfo() == CCValAssign::ZExt)
-      ResValue = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), ResValue);
-    else if (VA.getLocInfo() == CCValAssign::AExt)
-      ResValue = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), ResValue);
-
-    Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), ResValue, Flag);
-
-    // Guarantee that all emitted copies are stuck together,
-    // avoiding something bad.
-    Flag = Chain.getValue(1);
-  }
-
-  if (Flag.getNode())
-    return DAG.getNode(SystemZISD::RET_FLAG, dl, MVT::Other, Chain, Flag);
-
-  // Return Void
-  return DAG.getNode(SystemZISD::RET_FLAG, dl, MVT::Other, Chain);
-}
-
-SDValue SystemZTargetLowering::EmitCmp(SDValue LHS, SDValue RHS,
-                                       ISD::CondCode CC, SDValue &SystemZCC,
-                                       SelectionDAG &DAG) {
-  // FIXME: Emit a test if RHS is zero
-
-  bool isUnsigned = false;
-  SystemZCC::CondCodes TCC;
-  switch (CC) {
-  default:
-    llvm_unreachable("Invalid integer condition!");
-  case ISD::SETEQ:
-  case ISD::SETOEQ:
-    TCC = SystemZCC::E;
-    break;
-  case ISD::SETUEQ:
-    TCC = SystemZCC::NLH;
-    break;
-  case ISD::SETNE:
-  case ISD::SETONE:
-    TCC = SystemZCC::NE;
-    break;
-  case ISD::SETUNE:
-    TCC = SystemZCC::LH;
-    break;
-  case ISD::SETO:
-    TCC = SystemZCC::O;
-    break;
-  case ISD::SETUO:
-    TCC = SystemZCC::NO;
-    break;
-  case ISD::SETULE:
-    if (LHS.getValueType().isFloatingPoint()) {
-      TCC = SystemZCC::NH;
-      break;
-    }
-    isUnsigned = true;   // FALLTHROUGH
-  case ISD::SETLE:
-  case ISD::SETOLE:
-    TCC = SystemZCC::LE;
-    break;
-  case ISD::SETUGE:
-    if (LHS.getValueType().isFloatingPoint()) {
-      TCC = SystemZCC::NL;
-      break;
-    }
-    isUnsigned = true;   // FALLTHROUGH
-  case ISD::SETGE:
-  case ISD::SETOGE:
-    TCC = SystemZCC::HE;
-    break;
-  case ISD::SETUGT:
-    if (LHS.getValueType().isFloatingPoint()) {
-      TCC = SystemZCC::NLE;
-      break;
-    }
-    isUnsigned = true;  // FALLTHROUGH
-  case ISD::SETGT:
-  case ISD::SETOGT:
-    TCC = SystemZCC::H;
-    break;
-  case ISD::SETULT:
-    if (LHS.getValueType().isFloatingPoint()) {
-      TCC = SystemZCC::NHE;
-      break;
-    }
-    isUnsigned = true;  // FALLTHROUGH
-  case ISD::SETLT:
-  case ISD::SETOLT:
-    TCC = SystemZCC::L;
-    break;
-  }
-
-  SystemZCC = DAG.getConstant(TCC, MVT::i32);
-
-  DebugLoc dl = LHS.getDebugLoc();
-  return DAG.getNode((isUnsigned ? SystemZISD::UCMP : SystemZISD::CMP),
-                     dl, MVT::Flag, LHS, RHS);
-}
-
-
-SDValue SystemZTargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue Chain = Op.getOperand(0);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(1))->get();
-  SDValue LHS   = Op.getOperand(2);
-  SDValue RHS   = Op.getOperand(3);
-  SDValue Dest  = Op.getOperand(4);
-  DebugLoc dl   = Op.getDebugLoc();
-
-  SDValue SystemZCC;
-  SDValue Flag = EmitCmp(LHS, RHS, CC, SystemZCC, DAG);
-  return DAG.getNode(SystemZISD::BRCOND, dl, Op.getValueType(),
-                     Chain, Dest, SystemZCC, Flag);
-}
-
-SDValue SystemZTargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) {
-  SDValue LHS    = Op.getOperand(0);
-  SDValue RHS    = Op.getOperand(1);
-  SDValue TrueV  = Op.getOperand(2);
-  SDValue FalseV = Op.getOperand(3);
-  ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(4))->get();
-  DebugLoc dl   = Op.getDebugLoc();
-
-  SDValue SystemZCC;
-  SDValue Flag = EmitCmp(LHS, RHS, CC, SystemZCC, DAG);
-
-  SDVTList VTs = DAG.getVTList(Op.getValueType(), MVT::Flag);
-  SmallVector<SDValue, 4> Ops;
-  Ops.push_back(TrueV);
-  Ops.push_back(FalseV);
-  Ops.push_back(SystemZCC);
-  Ops.push_back(Flag);
-
-  return DAG.getNode(SystemZISD::SELECT, dl, VTs, &Ops[0], Ops.size());
-}
-
-SDValue SystemZTargetLowering::LowerGlobalAddress(SDValue Op,
-                                                  SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
-  int64_t Offset = cast<GlobalAddressSDNode>(Op)->getOffset();
-
-  bool IsPic = getTargetMachine().getRelocationModel() == Reloc::PIC_;
-  bool ExtraLoadRequired =
-    Subtarget.GVRequiresExtraLoad(GV, getTargetMachine(), false);
-
-  SDValue Result;
-  if (!IsPic && !ExtraLoadRequired) {
-    Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), Offset);
-    Offset = 0;
-  } else {
-    unsigned char OpFlags = 0;
-    if (ExtraLoadRequired)
-      OpFlags = SystemZII::MO_GOTENT;
-
-    Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), 0, OpFlags);
-  }
-
-  Result = DAG.getNode(SystemZISD::PCRelativeWrapper, dl,
-                       getPointerTy(), Result);
-
-  if (ExtraLoadRequired)
-    Result = DAG.getLoad(getPointerTy(), dl, DAG.getEntryNode(), Result,
-                         PseudoSourceValue::getGOT(), 0);
-
-  // If there was a non-zero offset that we didn't fold, create an explicit
-  // addition for it.
-  if (Offset != 0)
-    Result = DAG.getNode(ISD::ADD, dl, getPointerTy(), Result,
-                         DAG.getConstant(Offset, getPointerTy()));
-
-  return Result;
-}
-
-// FIXME: PIC here
-SDValue SystemZTargetLowering::LowerJumpTable(SDValue Op,
-                                              SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  JumpTableSDNode *JT = cast<JumpTableSDNode>(Op);
-  SDValue Result = DAG.getTargetJumpTable(JT->getIndex(), getPointerTy());
-
-  return DAG.getNode(SystemZISD::PCRelativeWrapper, dl, getPointerTy(), Result);
-}
-
-
-// FIXME: PIC here
-// FIXME: This is just dirty hack. We need to lower cpool properly
-SDValue SystemZTargetLowering::LowerConstantPool(SDValue Op,
-                                                 SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  ConstantPoolSDNode *CP = cast<ConstantPoolSDNode>(Op);
-
-  SDValue Result = DAG.getTargetConstantPool(CP->getConstVal(), getPointerTy(),
-                                             CP->getAlignment(),
-                                             CP->getOffset());
-
-  return DAG.getNode(SystemZISD::PCRelativeWrapper, dl, getPointerTy(), Result);
-}
-
-const char *SystemZTargetLowering::getTargetNodeName(unsigned Opcode) const {
-  switch (Opcode) {
-  case SystemZISD::RET_FLAG:           return "SystemZISD::RET_FLAG";
-  case SystemZISD::CALL:               return "SystemZISD::CALL";
-  case SystemZISD::BRCOND:             return "SystemZISD::BRCOND";
-  case SystemZISD::CMP:                return "SystemZISD::CMP";
-  case SystemZISD::UCMP:               return "SystemZISD::UCMP";
-  case SystemZISD::SELECT:             return "SystemZISD::SELECT";
-  case SystemZISD::PCRelativeWrapper:  return "SystemZISD::PCRelativeWrapper";
-  default: return NULL;
-  }
-}
-
-//===----------------------------------------------------------------------===//
-//  Other Lowering Code
-//===----------------------------------------------------------------------===//
-
-MachineBasicBlock*
-SystemZTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                   MachineBasicBlock *BB) const {
-  const SystemZInstrInfo &TII = *TM.getInstrInfo();
-  DebugLoc dl = MI->getDebugLoc();
-  assert((MI->getOpcode() == SystemZ::Select32  ||
-          MI->getOpcode() == SystemZ::SelectF32 ||
-          MI->getOpcode() == SystemZ::Select64  ||
-          MI->getOpcode() == SystemZ::SelectF64) &&
-         "Unexpected instr type to insert");
-
-  // To "insert" a SELECT instruction, we actually have to insert the diamond
-  // control-flow pattern.  The incoming instruction knows the destination vreg
-  // to set, the condition code register to branch on, the true/false values to
-  // select between, and a branch opcode to use.
-  const BasicBlock *LLVM_BB = BB->getBasicBlock();
-  MachineFunction::iterator I = BB;
-  ++I;
-
-  //  thisMBB:
-  //  ...
-  //   TrueVal = ...
-  //   cmpTY ccX, r1, r2
-  //   jCC copy1MBB
-  //   fallthrough --> copy0MBB
-  MachineBasicBlock *thisMBB = BB;
-  MachineFunction *F = BB->getParent();
-  MachineBasicBlock *copy0MBB = F->CreateMachineBasicBlock(LLVM_BB);
-  MachineBasicBlock *copy1MBB = F->CreateMachineBasicBlock(LLVM_BB);
-  SystemZCC::CondCodes CC = (SystemZCC::CondCodes)MI->getOperand(3).getImm();
-  BuildMI(BB, dl, TII.getBrCond(CC)).addMBB(copy1MBB);
-  F->insert(I, copy0MBB);
-  F->insert(I, copy1MBB);
-  // Update machine-CFG edges by transferring all successors of the current
-  // block to the new block which will contain the Phi node for the select.
-  copy1MBB->transferSuccessors(BB);
-  // Next, add the true and fallthrough blocks as its successors.
-  BB->addSuccessor(copy0MBB);
-  BB->addSuccessor(copy1MBB);
-
-  //  copy0MBB:
-  //   %FalseValue = ...
-  //   # fallthrough to copy1MBB
-  BB = copy0MBB;
-
-  // Update machine-CFG edges
-  BB->addSuccessor(copy1MBB);
-
-  //  copy1MBB:
-  //   %Result = phi [ %FalseValue, copy0MBB ], [ %TrueValue, thisMBB ]
-  //  ...
-  BB = copy1MBB;
-  BuildMI(BB, dl, TII.get(SystemZ::PHI),
-          MI->getOperand(0).getReg())
-    .addReg(MI->getOperand(2).getReg()).addMBB(copy0MBB)
-    .addReg(MI->getOperand(1).getReg()).addMBB(thisMBB);
-
-  F->DeleteMachineInstr(MI);   // The pseudo instruction is gone now.
-  return BB;
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.h
deleted file mode 100644
index 0c1d825..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.h
+++ /dev/null
@@ -1,140 +0,0 @@
-//==-- SystemZISelLowering.h - SystemZ DAG Lowering Interface ----*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that SystemZ uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_SystemZ_ISELLOWERING_H
-#define LLVM_TARGET_SystemZ_ISELLOWERING_H
-
-#include "SystemZ.h"
-#include "SystemZRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLowering.h"
-
-namespace llvm {
-  namespace SystemZISD {
-    enum {
-      FIRST_NUMBER = ISD::BUILTIN_OP_END,
-
-      /// Return with a flag operand. Operand 0 is the chain operand.
-      RET_FLAG,
-
-      /// CALL - These operations represent an abstract call
-      /// instruction, which includes a bunch of information.
-      CALL,
-
-      /// PCRelativeWrapper - PC relative address
-      PCRelativeWrapper,
-
-      /// CMP, UCMP - Compare instruction
-      CMP,
-      UCMP,
-
-      /// BRCOND - Conditional branch. Operand 0 is chain operand, operand 1 is
-      /// the block to branch if condition is true, operand 2 is condition code
-      /// and operand 3 is the flag operand produced by a CMP instruction.
-      BRCOND,
-
-      /// SELECT - Operands 0 and 1 are selection variables, operand 2 is
-      /// condition code and operand 3 is the flag operand.
-      SELECT
-    };
-  }
-
-  class SystemZSubtarget;
-  class SystemZTargetMachine;
-
-  class SystemZTargetLowering : public TargetLowering {
-  public:
-    explicit SystemZTargetLowering(SystemZTargetMachine &TM);
-
-    /// LowerOperation - Provide custom lowering hooks for some operations.
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-
-    /// getTargetNodeName - This method returns the name of a target specific
-    /// DAG node.
-    virtual const char *getTargetNodeName(unsigned Opcode) const;
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *F) const {
-      return 1;
-    }
-
-    std::pair<unsigned, const TargetRegisterClass*>
-    getRegForInlineAsmConstraint(const std::string &Constraint, EVT VT) const;
-    TargetLowering::ConstraintType
-    getConstraintType(const std::string &Constraint) const;
-
-    SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG);
-
-    SDValue EmitCmp(SDValue LHS, SDValue RHS,
-                    ISD::CondCode CC, SDValue &SystemZCC,
-                    SelectionDAG &DAG);
-
-
-    MachineBasicBlock* EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                   MachineBasicBlock *BB) const;
-
-  private:
-    SDValue LowerCCCCallTo(SDValue Chain, SDValue Callee,
-                           unsigned CallConv, bool isVarArg,
-                           bool isTailCall,
-                           const SmallVectorImpl<ISD::OutputArg> &Outs,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-
-    SDValue LowerCCCArguments(SDValue Chain,
-                              unsigned CallConv,
-                              bool isVarArg,
-                              const SmallVectorImpl<ISD::InputArg> &Ins,
-                              DebugLoc dl,
-                              SelectionDAG &DAG,
-                              SmallVectorImpl<SDValue> &InVals);
-
-    SDValue LowerCallResult(SDValue Chain, SDValue InFlag,
-                            unsigned CallConv, bool isVarArg,
-                            const SmallVectorImpl<ISD::InputArg> &Ins,
-                            DebugLoc dl, SelectionDAG &DAG,
-                            SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv, bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg, bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-
-    const SystemZSubtarget &Subtarget;
-    const SystemZTargetMachine &TM;
-    const SystemZRegisterInfo *RegInfo;
-  };
-} // namespace llvm
-
-#endif // LLVM_TARGET_SystemZ_ISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h
deleted file mode 100644
index 03f708f..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h
+++ /dev/null
@@ -1,127 +0,0 @@
-//===- SystemZInstrBuilder.h - Functions to aid building  insts -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file exposes functions that may be used with BuildMI from the
-// MachineInstrBuilder.h file to handle SystemZ'isms in a clean way.
-//
-// The BuildMem function may be used with the BuildMI function to add entire
-// memory references in a single, typed, function call.
-//
-// For reference, the order of operands for memory references is:
-// (Operand), Base, Displacement, Index.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SYSTEMZINSTRBUILDER_H
-#define SYSTEMZINSTRBUILDER_H
-
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-
-namespace llvm {
-
-/// SystemZAddressMode - This struct holds a generalized full x86 address mode.
-/// The base register can be a frame index, which will eventually be replaced
-/// with R15 or R11 and Disp being offsetted accordingly.
-struct SystemZAddressMode {
-  enum {
-    RegBase,
-    FrameIndexBase
-  } BaseType;
-
-  union {
-    unsigned Reg;
-    int FrameIndex;
-  } Base;
-
-  unsigned IndexReg;
-  int32_t Disp;
-  GlobalValue *GV;
-
-  SystemZAddressMode() : BaseType(RegBase), IndexReg(0), Disp(0) {
-    Base.Reg = 0;
-  }
-};
-
-/// addDirectMem - This function is used to add a direct memory reference to the
-/// current instruction -- that is, a dereference of an address in a register,
-/// with no index or displacement.
-///
-static inline const MachineInstrBuilder &
-addDirectMem(const MachineInstrBuilder &MIB, unsigned Reg) {
-  // Because memory references are always represented with 3
-  // values, this adds: Reg, [0, NoReg] to the instruction.
-  return MIB.addReg(Reg).addImm(0).addReg(0);
-}
-
-static inline const MachineInstrBuilder &
-addOffset(const MachineInstrBuilder &MIB, int Offset) {
-  return MIB.addImm(Offset).addReg(0);
-}
-
-/// addRegOffset - This function is used to add a memory reference of the form
-/// [Reg + Offset], i.e., one with no or index, but with a
-/// displacement. An example is: 10(%r15).
-///
-static inline const MachineInstrBuilder &
-addRegOffset(const MachineInstrBuilder &MIB,
-             unsigned Reg, bool isKill, int Offset) {
-  return addOffset(MIB.addReg(Reg, getKillRegState(isKill)), Offset);
-}
-
-/// addRegReg - This function is used to add a memory reference of the form:
-/// [Reg + Reg].
-static inline const MachineInstrBuilder &
-addRegReg(const MachineInstrBuilder &MIB,
-            unsigned Reg1, bool isKill1, unsigned Reg2, bool isKill2) {
-  return MIB.addReg(Reg1, getKillRegState(isKill1)).addImm(0)
-    .addReg(Reg2, getKillRegState(isKill2));
-}
-
-static inline const MachineInstrBuilder &
-addFullAddress(const MachineInstrBuilder &MIB, const SystemZAddressMode &AM) {
-  if (AM.BaseType == SystemZAddressMode::RegBase)
-    MIB.addReg(AM.Base.Reg);
-  else if (AM.BaseType == SystemZAddressMode::FrameIndexBase)
-    MIB.addFrameIndex(AM.Base.FrameIndex);
-  else
-    assert(0);
-
-  return MIB.addImm(AM.Disp).addReg(AM.IndexReg);
-}
-
-/// addFrameReference - This function is used to add a reference to the base of
-/// an abstract object on the stack frame of the current function.  This
-/// reference has base register as the FrameIndex offset until it is resolved.
-/// This allows a constant offset to be specified as well...
-///
-static inline const MachineInstrBuilder &
-addFrameReference(const MachineInstrBuilder &MIB, int FI, int Offset = 0) {
-  MachineInstr *MI = MIB;
-  MachineFunction &MF = *MI->getParent()->getParent();
-  MachineFrameInfo &MFI = *MF.getFrameInfo();
-  const TargetInstrDesc &TID = MI->getDesc();
-  unsigned Flags = 0;
-  if (TID.mayLoad())
-    Flags |= MachineMemOperand::MOLoad;
-  if (TID.mayStore())
-    Flags |= MachineMemOperand::MOStore;
-  MachineMemOperand MMO(PseudoSourceValue::getFixedStack(FI),
-                        Flags,
-                        MFI.getObjectOffset(FI) + Offset,
-                        MFI.getObjectSize(FI),
-                        MFI.getObjectAlignment(FI));
-  return addOffset(MIB.addFrameIndex(FI), Offset)
-            .addMemOperand(MMO);
-}
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrFP.td b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrFP.td
deleted file mode 100644
index 8a202d4..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrFP.td
+++ /dev/null
@@ -1,340 +0,0 @@
-//===- SystemZInstrFP.td - SystemZ FP Instruction defs --------*- tblgen-*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file describes the SystemZ (binary) floating point instructions in 
-// TableGen format.
-//
-//===----------------------------------------------------------------------===//
-
-// FIXME: multiclassify!
-
-//===----------------------------------------------------------------------===//
-// FP Pattern fragments
-
-def fpimm0 : PatLeaf<(fpimm), [{
-  return N->isExactlyValue(+0.0);
-}]>;
-
-def fpimmneg0 : PatLeaf<(fpimm), [{
-  return N->isExactlyValue(-0.0);
-}]>;
-
-let usesCustomDAGSchedInserter = 1 in {
-  def SelectF32 : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2, i8imm:$cc),
-                        "# SelectF32 PSEUDO",
-                        [(set FP32:$dst,
-                              (SystemZselect FP32:$src1, FP32:$src2, imm:$cc))]>;
-  def SelectF64 : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2, i8imm:$cc),
-                        "# SelectF64 PSEUDO",
-                        [(set FP64:$dst,
-                              (SystemZselect FP64:$src1, FP64:$src2, imm:$cc))]>;
-}
-
-//===----------------------------------------------------------------------===//
-// Move Instructions
-
-// Floating point constant loads.
-let isReMaterializable = 1, isAsCheapAsAMove = 1 in {
-def LD_Fp032 : Pseudo<(outs FP32:$dst), (ins),
-                      "lzer\t{$dst}",
-                      [(set FP32:$dst, fpimm0)]>;
-def LD_Fp064 : Pseudo<(outs FP64:$dst), (ins),
-                      "lzdr\t{$dst}",
-                      [(set FP64:$dst, fpimm0)]>;
-}
-
-let neverHasSideEffects = 1 in {
-def FMOV32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src),
-                      "ler\t{$dst, $src}",
-                      []>;
-def FMOV64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src),
-                      "ldr\t{$dst, $src}",
-                      []>;
-}
-
-let canFoldAsLoad = 1, isReMaterializable = 1, mayHaveSideEffects = 1 in {
-def FMOV32rm  : Pseudo<(outs FP32:$dst), (ins rriaddr12:$src),
-                      "le\t{$dst, $src}",
-                      [(set FP32:$dst, (load rriaddr12:$src))]>;
-def FMOV32rmy : Pseudo<(outs FP32:$dst), (ins rriaddr:$src),
-                      "ley\t{$dst, $src}",
-                      [(set FP32:$dst, (load rriaddr:$src))]>;
-def FMOV64rm  : Pseudo<(outs FP64:$dst), (ins rriaddr12:$src),
-                      "ld\t{$dst, $src}",
-                      [(set FP64:$dst, (load rriaddr12:$src))]>;
-def FMOV64rmy : Pseudo<(outs FP64:$dst), (ins rriaddr:$src),
-                      "ldy\t{$dst, $src}",
-                      [(set FP64:$dst, (load rriaddr:$src))]>;
-}
-
-def FMOV32mr  : Pseudo<(outs), (ins rriaddr12:$dst, FP32:$src),
-                       "ste\t{$src, $dst}",
-                       [(store FP32:$src, rriaddr12:$dst)]>;
-def FMOV32mry : Pseudo<(outs), (ins rriaddr:$dst, FP32:$src),
-                       "stey\t{$src, $dst}",
-                       [(store FP32:$src, rriaddr:$dst)]>;
-def FMOV64mr  : Pseudo<(outs), (ins rriaddr12:$dst, FP64:$src),
-                       "std\t{$src, $dst}",
-                       [(store FP64:$src, rriaddr12:$dst)]>;
-def FMOV64mry : Pseudo<(outs), (ins rriaddr:$dst, FP64:$src),
-                       "stdy\t{$src, $dst}",
-                       [(store FP64:$src, rriaddr:$dst)]>;
-
-def FCOPYSIGN32 : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2),
-                         "cpsdr\t{$dst, $src2, $src1}",
-                         [(set FP32:$dst, (fcopysign FP32:$src1, FP32:$src2))]>;
-def FCOPYSIGN64 : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2),
-                         "cpsdr\t{$dst, $src2, $src1}",
-                         [(set FP64:$dst, (fcopysign FP64:$src1, FP64:$src2))]>;
-
-//===----------------------------------------------------------------------===//
-// Arithmetic Instructions
-
-
-let Defs = [PSW] in {
-def FNEG32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src),
-                       "lcebr\t{$dst, $src}",
-                       [(set FP32:$dst, (fneg FP32:$src)),
-                        (implicit PSW)]>;
-def FNEG64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src),
-                       "lcdbr\t{$dst, $src}",
-                       [(set FP64:$dst, (fneg FP64:$src)),
-                        (implicit PSW)]>;
-
-def FABS32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src),
-                       "lpebr\t{$dst, $src}",
-                       [(set FP32:$dst, (fabs FP32:$src)),
-                        (implicit PSW)]>;
-def FABS64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src),
-                       "lpdbr\t{$dst, $src}",
-                       [(set FP64:$dst, (fabs FP64:$src)),
-                        (implicit PSW)]>;
-
-def FNABS32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src),
-                       "lnebr\t{$dst, $src}",
-                       [(set FP32:$dst, (fneg(fabs FP32:$src))),
-                        (implicit PSW)]>;
-def FNABS64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src),
-                       "lndbr\t{$dst, $src}",
-                       [(set FP64:$dst, (fneg(fabs FP64:$src))),
-                        (implicit PSW)]>;
-}
-
-let isTwoAddress = 1 in {
-let Defs = [PSW] in {
-let isCommutable = 1 in { // X = ADD Y, Z  == X = ADD Z, Y
-def FADD32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2),
-                       "aebr\t{$dst, $src2}",
-                       [(set FP32:$dst, (fadd FP32:$src1, FP32:$src2)),
-                        (implicit PSW)]>;
-def FADD64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2),
-                       "adbr\t{$dst, $src2}",
-                       [(set FP64:$dst, (fadd FP64:$src1, FP64:$src2)),
-                        (implicit PSW)]>;
-}
-
-def FADD32rm : Pseudo<(outs FP32:$dst), (ins FP32:$src1, rriaddr12:$src2),
-                       "aeb\t{$dst, $src2}",
-                       [(set FP32:$dst, (fadd FP32:$src1, (load rriaddr12:$src2))),
-                        (implicit PSW)]>;
-def FADD64rm : Pseudo<(outs FP64:$dst), (ins FP64:$src1, rriaddr12:$src2),
-                       "adb\t{$dst, $src2}",
-                       [(set FP64:$dst, (fadd FP64:$src1, (load rriaddr12:$src2))),
-                        (implicit PSW)]>;
-
-def FSUB32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2),
-                       "sebr\t{$dst, $src2}",
-                       [(set FP32:$dst, (fsub FP32:$src1, FP32:$src2)),
-                        (implicit PSW)]>;
-def FSUB64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2),
-                       "sdbr\t{$dst, $src2}",
-                       [(set FP64:$dst, (fsub FP64:$src1, FP64:$src2)),
-                        (implicit PSW)]>;
-
-def FSUB32rm : Pseudo<(outs FP32:$dst), (ins FP32:$src1, rriaddr12:$src2),
-                       "seb\t{$dst, $src2}",
-                       [(set FP32:$dst, (fsub FP32:$src1, (load rriaddr12:$src2))),
-                        (implicit PSW)]>;
-def FSUB64rm : Pseudo<(outs FP64:$dst), (ins FP64:$src1, rriaddr12:$src2),
-                       "sdb\t{$dst, $src2}",
-                       [(set FP64:$dst, (fsub FP64:$src1, (load rriaddr12:$src2))),
-                        (implicit PSW)]>;
-} // Defs = [PSW]
-
-let isCommutable = 1 in { // X = MUL Y, Z  == X = MUL Z, Y
-def FMUL32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2),
-                       "meebr\t{$dst, $src2}",
-                       [(set FP32:$dst, (fmul FP32:$src1, FP32:$src2))]>;
-def FMUL64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2),
-                       "mdbr\t{$dst, $src2}",
-                       [(set FP64:$dst, (fmul FP64:$src1, FP64:$src2))]>;
-}
-
-def FMUL32rm : Pseudo<(outs FP32:$dst), (ins FP32:$src1, rriaddr12:$src2),
-                       "meeb\t{$dst, $src2}",
-                       [(set FP32:$dst, (fmul FP32:$src1, (load rriaddr12:$src2)))]>;
-def FMUL64rm : Pseudo<(outs FP64:$dst), (ins FP64:$src1, rriaddr12:$src2),
-                       "mdb\t{$dst, $src2}",
-                       [(set FP64:$dst, (fmul FP64:$src1, (load rriaddr12:$src2)))]>;
-
-def FMADD32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2, FP32:$src3),
-                       "maebr\t{$dst, $src3, $src2}",
-                       [(set FP32:$dst, (fadd (fmul FP32:$src2, FP32:$src3),
-                                              FP32:$src1))]>;
-def FMADD32rm : Pseudo<(outs FP32:$dst), (ins FP32:$src1, rriaddr12:$src2, FP32:$src3),
-                       "maeb\t{$dst, $src3, $src2}",
-                       [(set FP32:$dst, (fadd (fmul (load rriaddr12:$src2),
-                                                     FP32:$src3),
-                                              FP32:$src1))]>;
-
-def FMADD64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2, FP64:$src3),
-                       "madbr\t{$dst, $src3, $src2}",
-                       [(set FP64:$dst, (fadd (fmul FP64:$src2, FP64:$src3),
-                                              FP64:$src1))]>;
-def FMADD64rm : Pseudo<(outs FP64:$dst), (ins FP64:$src1, rriaddr12:$src2, FP64:$src3),
-                       "madb\t{$dst, $src3, $src2}",
-                       [(set FP64:$dst, (fadd (fmul (load rriaddr12:$src2),
-                                                     FP64:$src3),
-                                              FP64:$src1))]>;
-
-def FMSUB32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2, FP32:$src3),
-                       "msebr\t{$dst, $src3, $src2}",
-                       [(set FP32:$dst, (fsub (fmul FP32:$src2, FP32:$src3),
-                                              FP32:$src1))]>;
-def FMSUB32rm : Pseudo<(outs FP32:$dst), (ins FP32:$src1, rriaddr12:$src2, FP32:$src3),
-                       "mseb\t{$dst, $src3, $src2}",
-                       [(set FP32:$dst, (fsub (fmul (load rriaddr12:$src2),
-                                                     FP32:$src3),
-                                              FP32:$src1))]>;
-
-def FMSUB64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2, FP64:$src3),
-                       "msdbr\t{$dst, $src3, $src2}",
-                       [(set FP64:$dst, (fsub (fmul FP64:$src2, FP64:$src3),
-                                              FP64:$src1))]>;
-def FMSUB64rm : Pseudo<(outs FP64:$dst), (ins FP64:$src1, rriaddr12:$src2, FP64:$src3),
-                       "msdb\t{$dst, $src3, $src2}",
-                       [(set FP64:$dst, (fsub (fmul (load rriaddr12:$src2),
-                                                     FP64:$src3),
-                                              FP64:$src1))]>;
-
-def FDIV32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src1, FP32:$src2),
-                       "debr\t{$dst, $src2}",
-                       [(set FP32:$dst, (fdiv FP32:$src1, FP32:$src2))]>;
-def FDIV64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src1, FP64:$src2),
-                       "ddbr\t{$dst, $src2}",
-                       [(set FP64:$dst, (fdiv FP64:$src1, FP64:$src2))]>;
-
-def FDIV32rm : Pseudo<(outs FP32:$dst), (ins FP32:$src1, rriaddr12:$src2),
-                       "deb\t{$dst, $src2}",
-                       [(set FP32:$dst, (fdiv FP32:$src1, (load rriaddr12:$src2)))]>;
-def FDIV64rm : Pseudo<(outs FP64:$dst), (ins FP64:$src1, rriaddr12:$src2),
-                       "ddb\t{$dst, $src2}",
-                       [(set FP64:$dst, (fdiv FP64:$src1, (load rriaddr12:$src2)))]>;
-
-} // isTwoAddress = 1
-
-def FSQRT32rr : Pseudo<(outs FP32:$dst), (ins FP32:$src),
-                       "sqebr\t{$dst, $src}",
-                       [(set FP32:$dst, (fsqrt FP32:$src))]>;
-def FSQRT64rr : Pseudo<(outs FP64:$dst), (ins FP64:$src),
-                       "sqdbr\t{$dst, $src}",
-                       [(set FP64:$dst, (fsqrt FP64:$src))]>;
-
-def FSQRT32rm : Pseudo<(outs FP32:$dst), (ins rriaddr12:$src),
-                       "sqeb\t{$dst, $src}",
-                       [(set FP32:$dst, (fsqrt (load rriaddr12:$src)))]>;
-def FSQRT64rm : Pseudo<(outs FP64:$dst), (ins rriaddr12:$src),
-                       "sqdb\t{$dst, $src}",
-                       [(set FP64:$dst, (fsqrt (load rriaddr12:$src)))]>;
-
-def FROUND64r32 : Pseudo<(outs FP32:$dst), (ins FP64:$src),
-                         "ledbr\t{$dst, $src}",
-                         [(set FP32:$dst, (fround FP64:$src))]>;
-
-def FEXT32r64   : Pseudo<(outs FP64:$dst), (ins FP32:$src),
-                         "ldebr\t{$dst, $src}",
-                         [(set FP64:$dst, (fextend FP32:$src))]>;
-def FEXT32m64   : Pseudo<(outs FP64:$dst), (ins rriaddr12:$src),
-                         "ldeb\t{$dst, $src}",
-                         [(set FP64:$dst, (fextend (load rriaddr12:$src)))]>;
-
-let Defs = [PSW] in {
-def FCONVFP32   : Pseudo<(outs FP32:$dst), (ins GR32:$src),
-                         "cefbr\t{$dst, $src}",
-                         [(set FP32:$dst, (sint_to_fp GR32:$src)),
-                          (implicit PSW)]>;
-def FCONVFP32r64: Pseudo<(outs FP32:$dst), (ins GR64:$src),
-                         "cegbr\t{$dst, $src}",
-                         [(set FP32:$dst, (sint_to_fp GR64:$src)),
-                          (implicit PSW)]>;
-
-def FCONVFP64r32: Pseudo<(outs FP64:$dst), (ins GR32:$src),
-                         "cdfbr\t{$dst, $src}",
-                         [(set FP64:$dst, (sint_to_fp GR32:$src)),
-                          (implicit PSW)]>;
-def FCONVFP64   : Pseudo<(outs FP64:$dst), (ins GR64:$src),
-                         "cdgbr\t{$dst, $src}",
-                         [(set FP64:$dst, (sint_to_fp GR64:$src)),
-                          (implicit PSW)]>;
-
-def FCONVGR32   : Pseudo<(outs GR32:$dst), (ins FP32:$src),
-                         "cfebr\t{$dst, 5, $src}",
-                         [(set GR32:$dst, (fp_to_sint FP32:$src)),
-                          (implicit PSW)]>;
-def FCONVGR32r64: Pseudo<(outs GR32:$dst), (ins FP64:$src),
-                         "cfdbr\t{$dst, 5, $src}",
-                         [(set GR32:$dst, (fp_to_sint FP64:$src)),
-                          (implicit PSW)]>;
-
-def FCONVGR64r32: Pseudo<(outs GR64:$dst), (ins FP32:$src),
-                         "cgebr\t{$dst, 5, $src}",
-                         [(set GR64:$dst, (fp_to_sint FP32:$src)),
-                          (implicit PSW)]>;
-def FCONVGR64   : Pseudo<(outs GR64:$dst), (ins FP64:$src),
-                         "cgdbr\t{$dst, 5, $src}",
-                         [(set GR64:$dst, (fp_to_sint FP64:$src)),
-                          (implicit PSW)]>;
-} // Defs = [PSW]
-
-def FBCONVG64   : Pseudo<(outs GR64:$dst), (ins FP64:$src),
-                         "lgdr\t{$dst, $src}",
-                         [(set GR64:$dst, (bitconvert FP64:$src))]>;
-def FBCONVF64   : Pseudo<(outs FP64:$dst), (ins GR64:$src),
-                         "ldgr\t{$dst, $src}",
-                         [(set FP64:$dst, (bitconvert GR64:$src))]>;
-
-//===----------------------------------------------------------------------===//
-// Test instructions (like AND but do not produce any result)
-
-// Integer comparisons
-let Defs = [PSW] in {
-def FCMP32rr : Pseudo<(outs), (ins FP32:$src1, FP32:$src2),
-                      "cebr\t$src1, $src2",
-                      [(SystemZcmp FP32:$src1, FP32:$src2), (implicit PSW)]>;
-def FCMP64rr : Pseudo<(outs), (ins FP64:$src1, FP64:$src2),
-                      "cdbr\t$src1, $src2",
-                      [(SystemZcmp FP64:$src1, FP64:$src2), (implicit PSW)]>;
-
-def FCMP32rm : Pseudo<(outs), (ins FP32:$src1, rriaddr12:$src2),
-                      "ceb\t$src1, $src2",
-                      [(SystemZcmp FP32:$src1, (load rriaddr12:$src2)),
-                       (implicit PSW)]>;
-def FCMP64rm : Pseudo<(outs), (ins FP64:$src1, rriaddr12:$src2),
-                      "cdb\t$src1, $src2",
-                      [(SystemZcmp FP64:$src1, (load rriaddr12:$src2)),
-                       (implicit PSW)]>;
-} // Defs = [PSW]
-
-//===----------------------------------------------------------------------===//
-// Non-Instruction Patterns
-//===----------------------------------------------------------------------===//
-
-// Floating point constant -0.0
-def : Pat<(f32 fpimmneg0), (FNEG32rr (LD_Fp032))>;
-def : Pat<(f64 fpimmneg0), (FNEG64rr (LD_Fp064))>;
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrFormats.td b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrFormats.td
deleted file mode 100644
index b4a8993..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrFormats.td
+++ /dev/null
@@ -1,133 +0,0 @@
-//===- SystemZInstrFormats.td - SystemZ Instruction Formats ----*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-
-// Format specifies the encoding used by the instruction.  This is part of the
-// ad-hoc solution used to emit machine instruction encodings by our machine
-// code emitter.
-class Format<bits<5> val> {
-  bits<5> Value = val;
-}
-
-def Pseudo   : Format<0>;
-def EForm    : Format<1>;
-def IForm    : Format<2>;
-def RIForm   : Format<3>;
-def RIEForm  : Format<4>;
-def RILForm  : Format<5>;
-def RISForm  : Format<6>;
-def RRForm   : Format<7>;
-def RREForm  : Format<8>;
-def RRFForm  : Format<9>;
-def RRRForm  : Format<10>;
-def RRSForm  : Format<11>;
-def RSForm   : Format<12>;
-def RSIForm  : Format<13>;
-def RSILForm : Format<14>;
-def RSYForm  : Format<15>;
-def RXForm   : Format<16>;
-def RXEForm  : Format<17>;
-def RXFForm  : Format<18>;
-def RXYForm  : Format<19>;
-def SForm    : Format<20>;
-def SIForm   : Format<21>;
-def SILForm  : Format<22>;
-def SIYForm  : Format<23>;
-def SSForm   : Format<24>;
-def SSEForm  : Format<25>;
-def SSFForm  : Format<26>;
-
-class InstSystemZ<bits<16> op, Format f, dag outs, dag ins> : Instruction {
-  let Namespace = "SystemZ";
-
-  bits<16> Opcode = op;
-
-  Format Form = f;
-  bits<5> FormBits = Form.Value;
-
-  dag OutOperandList = outs;
-  dag InOperandList = ins;
-}
-
-class I8<bits<8> op, Format f, dag outs, dag ins, string asmstr, 
-         list<dag> pattern> 
-  : InstSystemZ<0, f, outs, ins> {
-  let Opcode{0-7} = op;
-  let Opcode{8-15} = 0;
-
-  let Pattern = pattern;
-  let AsmString = asmstr;
-}
-
-class I12<bits<12> op, Format f, dag outs, dag ins, string asmstr, 
-         list<dag> pattern> 
-  : InstSystemZ<0, f, outs, ins> {
-  let Opcode{0-11} = op;
-  let Opcode{12-15} = 0;
-
-  let Pattern = pattern;
-  let AsmString = asmstr;
-}
-
-class I16<bits<16> op, Format f, dag outs, dag ins, string asmstr,
-         list<dag> pattern>
-  : InstSystemZ<op, f, outs, ins> {
-  let Pattern = pattern;
-  let AsmString = asmstr;
-}
-
-class RRI<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I8<op, RRForm, outs, ins, asmstr, pattern>;
-
-class RII<bits<12> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I12<op, RIForm, outs, ins, asmstr, pattern>;
-
-class RILI<bits<12> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I12<op, RILForm, outs, ins, asmstr, pattern>;
-
-class RREI<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I16<op, RREForm, outs, ins, asmstr, pattern>;
-
-class RXI<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I8<op, RXForm, outs, ins, asmstr, pattern> {
-  let AddedComplexity = 1;
-}
-
-class RXYI<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I16<op, RXYForm, outs, ins, asmstr, pattern>;
-
-class RSI<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I8<op, RSForm, outs, ins, asmstr, pattern> {
-  let AddedComplexity = 1;
-}
-
-class RSYI<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I16<op, RSYForm, outs, ins, asmstr, pattern>;
-
-class SII<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I8<op, SIForm, outs, ins, asmstr, pattern> {
-  let AddedComplexity = 1;
-}
-
-class SIYI<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I16<op, SIYForm, outs, ins, asmstr, pattern>;
-
-class SILI<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
-  : I16<op, SILForm, outs, ins, asmstr, pattern>;
-
-
-//===----------------------------------------------------------------------===//
-// Pseudo instructions
-//===----------------------------------------------------------------------===//
-
-class Pseudo<dag outs, dag ins, string asmstr, list<dag> pattern>
-   : InstSystemZ<0, Pseudo, outs, ins> {
-
-  let Pattern = pattern;
-  let AsmString = asmstr;
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
deleted file mode 100644
index b7dfab5..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+++ /dev/null
@@ -1,672 +0,0 @@
-//===- SystemZInstrInfo.cpp - SystemZ Instruction Information --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the SystemZ implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SystemZ.h"
-#include "SystemZInstrBuilder.h"
-#include "SystemZInstrInfo.h"
-#include "SystemZMachineFunctionInfo.h"
-#include "SystemZTargetMachine.h"
-#include "SystemZGenInstrInfo.inc"
-#include "llvm/Function.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/PseudoSourceValue.h"
-
-using namespace llvm;
-
-SystemZInstrInfo::SystemZInstrInfo(SystemZTargetMachine &tm)
-  : TargetInstrInfoImpl(SystemZInsts, array_lengthof(SystemZInsts)),
-    RI(tm, *this), TM(tm) {
-  // Fill the spill offsets map
-  static const unsigned SpillOffsTab[][2] = {
-    { SystemZ::R2D,  0x10 },
-    { SystemZ::R3D,  0x18 },
-    { SystemZ::R4D,  0x20 },
-    { SystemZ::R5D,  0x28 },
-    { SystemZ::R6D,  0x30 },
-    { SystemZ::R7D,  0x38 },
-    { SystemZ::R8D,  0x40 },
-    { SystemZ::R9D,  0x48 },
-    { SystemZ::R10D, 0x50 },
-    { SystemZ::R11D, 0x58 },
-    { SystemZ::R12D, 0x60 },
-    { SystemZ::R13D, 0x68 },
-    { SystemZ::R14D, 0x70 },
-    { SystemZ::R15D, 0x78 }
-  };
-
-  RegSpillOffsets.grow(SystemZ::NUM_TARGET_REGS);
-
-  for (unsigned i = 0, e = array_lengthof(SpillOffsTab); i != e; ++i)
-    RegSpillOffsets[SpillOffsTab[i][0]] = SpillOffsTab[i][1];
-}
-
-/// isGVStub - Return true if the GV requires an extra load to get the
-/// real address.
-static inline bool isGVStub(GlobalValue *GV, SystemZTargetMachine &TM) {
-  return TM.getSubtarget<SystemZSubtarget>().GVRequiresExtraLoad(GV, TM, false);
-}
-
-void SystemZInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
-                                          MachineBasicBlock::iterator MI,
-                                    unsigned SrcReg, bool isKill, int FrameIdx,
-                                    const TargetRegisterClass *RC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  unsigned Opc = 0;
-  if (RC == &SystemZ::GR32RegClass ||
-      RC == &SystemZ::ADDR32RegClass)
-    Opc = SystemZ::MOV32mr;
-  else if (RC == &SystemZ::GR64RegClass ||
-           RC == &SystemZ::ADDR64RegClass) {
-    Opc = SystemZ::MOV64mr;
-  } else if (RC == &SystemZ::FP32RegClass) {
-    Opc = SystemZ::FMOV32mr;
-  } else if (RC == &SystemZ::FP64RegClass) {
-    Opc = SystemZ::FMOV64mr;
-  } else if (RC == &SystemZ::GR64PRegClass) {
-    Opc = SystemZ::MOV64Pmr;
-  } else if (RC == &SystemZ::GR128RegClass) {
-    Opc = SystemZ::MOV128mr;
-  } else
-    llvm_unreachable("Unsupported regclass to store");
-
-  addFrameReference(BuildMI(MBB, MI, DL, get(Opc)), FrameIdx)
-    .addReg(SrcReg, getKillRegState(isKill));
-}
-
-void SystemZInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                           MachineBasicBlock::iterator MI,
-                                           unsigned DestReg, int FrameIdx,
-                                           const TargetRegisterClass *RC) const{
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  unsigned Opc = 0;
-  if (RC == &SystemZ::GR32RegClass ||
-      RC == &SystemZ::ADDR32RegClass)
-    Opc = SystemZ::MOV32rm;
-  else if (RC == &SystemZ::GR64RegClass ||
-           RC == &SystemZ::ADDR64RegClass) {
-    Opc = SystemZ::MOV64rm;
-  } else if (RC == &SystemZ::FP32RegClass) {
-    Opc = SystemZ::FMOV32rm;
-  } else if (RC == &SystemZ::FP64RegClass) {
-    Opc = SystemZ::FMOV64rm;
-  } else if (RC == &SystemZ::GR64PRegClass) {
-    Opc = SystemZ::MOV64Prm;
-  } else if (RC == &SystemZ::GR128RegClass) {
-    Opc = SystemZ::MOV128rm;
-  } else
-    llvm_unreachable("Unsupported regclass to load");
-
-  addFrameReference(BuildMI(MBB, MI, DL, get(Opc), DestReg), FrameIdx);
-}
-
-bool SystemZInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator I,
-                                    unsigned DestReg, unsigned SrcReg,
-                                    const TargetRegisterClass *DestRC,
-                                    const TargetRegisterClass *SrcRC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  // Determine if DstRC and SrcRC have a common superclass.
-  const TargetRegisterClass *CommonRC = DestRC;
-  if (DestRC == SrcRC)
-    /* Same regclass for source and dest */;
-  else if (CommonRC->hasSuperClass(SrcRC))
-    CommonRC = SrcRC;
-  else if (!CommonRC->hasSubClass(SrcRC))
-    CommonRC = 0;
-
-  if (CommonRC) {
-    if (CommonRC == &SystemZ::GR64RegClass ||
-        CommonRC == &SystemZ::ADDR64RegClass) {
-      BuildMI(MBB, I, DL, get(SystemZ::MOV64rr), DestReg).addReg(SrcReg);
-    } else if (CommonRC == &SystemZ::GR32RegClass ||
-               CommonRC == &SystemZ::ADDR32RegClass) {
-      BuildMI(MBB, I, DL, get(SystemZ::MOV32rr), DestReg).addReg(SrcReg);
-    } else if (CommonRC == &SystemZ::GR64PRegClass) {
-      BuildMI(MBB, I, DL, get(SystemZ::MOV64rrP), DestReg).addReg(SrcReg);
-    } else if (CommonRC == &SystemZ::GR128RegClass) {
-      BuildMI(MBB, I, DL, get(SystemZ::MOV128rr), DestReg).addReg(SrcReg);
-    } else if (CommonRC == &SystemZ::FP32RegClass) {
-      BuildMI(MBB, I, DL, get(SystemZ::FMOV32rr), DestReg).addReg(SrcReg);
-    } else if (CommonRC == &SystemZ::FP64RegClass) {
-      BuildMI(MBB, I, DL, get(SystemZ::FMOV64rr), DestReg).addReg(SrcReg);
-    } else {
-      return false;
-    }
-
-    return true;
-  }
-
-  if ((SrcRC == &SystemZ::GR64RegClass &&
-       DestRC == &SystemZ::ADDR64RegClass) ||
-      (DestRC == &SystemZ::GR64RegClass &&
-       SrcRC == &SystemZ::ADDR64RegClass)) {
-    BuildMI(MBB, I, DL, get(SystemZ::MOV64rr), DestReg).addReg(SrcReg);
-    return true;
-  } else if ((SrcRC == &SystemZ::GR32RegClass &&
-              DestRC == &SystemZ::ADDR32RegClass) ||
-             (DestRC == &SystemZ::GR32RegClass &&
-              SrcRC == &SystemZ::ADDR32RegClass)) {
-    BuildMI(MBB, I, DL, get(SystemZ::MOV32rr), DestReg).addReg(SrcReg);
-    return true;
-  }
-
-  return false;
-}
-
-bool
-SystemZInstrInfo::isMoveInstr(const MachineInstr& MI,
-                              unsigned &SrcReg, unsigned &DstReg,
-                              unsigned &SrcSubIdx, unsigned &DstSubIdx) const {
-  switch (MI.getOpcode()) {
-  default:
-    return false;
-  case SystemZ::MOV32rr:
-  case SystemZ::MOV64rr:
-  case SystemZ::MOV64rrP:
-  case SystemZ::MOV128rr:
-  case SystemZ::FMOV32rr:
-  case SystemZ::FMOV64rr:
-    assert(MI.getNumOperands() >= 2 &&
-           MI.getOperand(0).isReg() &&
-           MI.getOperand(1).isReg() &&
-           "invalid register-register move instruction");
-    SrcReg = MI.getOperand(1).getReg();
-    DstReg = MI.getOperand(0).getReg();
-    SrcSubIdx = MI.getOperand(1).getSubReg();
-    DstSubIdx = MI.getOperand(0).getSubReg();
-    return true;
-  }
-}
-
-unsigned SystemZInstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
-                                               int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  default: break;
-  case SystemZ::MOV32rm:
-  case SystemZ::MOV32rmy:
-  case SystemZ::MOV64rm:
-  case SystemZ::MOVSX32rm8:
-  case SystemZ::MOVSX32rm16y:
-  case SystemZ::MOVSX64rm8:
-  case SystemZ::MOVSX64rm16:
-  case SystemZ::MOVSX64rm32:
-  case SystemZ::MOVZX32rm8:
-  case SystemZ::MOVZX32rm16:
-  case SystemZ::MOVZX64rm8:
-  case SystemZ::MOVZX64rm16:
-  case SystemZ::MOVZX64rm32:
-  case SystemZ::FMOV32rm:
-  case SystemZ::FMOV32rmy:
-  case SystemZ::FMOV64rm:
-  case SystemZ::FMOV64rmy:
-  case SystemZ::MOV64Prm:
-  case SystemZ::MOV64Prmy:
-  case SystemZ::MOV128rm:
-    if (MI->getOperand(1).isFI() &&
-        MI->getOperand(2).isImm() && MI->getOperand(3).isReg() &&
-        MI->getOperand(2).getImm() == 0 && MI->getOperand(3).getReg() == 0) {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-    break;
-  }
-  return 0;
-}
-
-unsigned SystemZInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
-                                              int &FrameIndex) const {
-  switch (MI->getOpcode()) {
-  default: break;
-  case SystemZ::MOV32mr:
-  case SystemZ::MOV32mry:
-  case SystemZ::MOV64mr:
-  case SystemZ::MOV32m8r:
-  case SystemZ::MOV32m8ry:
-  case SystemZ::MOV32m16r:
-  case SystemZ::MOV32m16ry:
-  case SystemZ::MOV64m8r:
-  case SystemZ::MOV64m8ry:
-  case SystemZ::MOV64m16r:
-  case SystemZ::MOV64m16ry:
-  case SystemZ::MOV64m32r:
-  case SystemZ::MOV64m32ry:
-  case SystemZ::FMOV32mr:
-  case SystemZ::FMOV32mry:
-  case SystemZ::FMOV64mr:
-  case SystemZ::FMOV64mry:
-  case SystemZ::MOV64Pmr:
-  case SystemZ::MOV64Pmry:
-  case SystemZ::MOV128mr:
-    if (MI->getOperand(0).isFI() &&
-        MI->getOperand(1).isImm() && MI->getOperand(2).isReg() &&
-        MI->getOperand(1).getImm() == 0 && MI->getOperand(2).getReg() == 0) {
-      FrameIndex = MI->getOperand(0).getIndex();
-      return MI->getOperand(3).getReg();
-    }
-    break;
-  }
-  return 0;
-}
-
-bool SystemZInstrInfo::isInvariantLoad(const MachineInstr *MI) const {
-  for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
-    const MachineOperand &MO = MI->getOperand(i);
-    // Loads from constant pools are trivially invariant.
-    if (MO.isCPI())
-      return true;
-
-    if (MO.isGlobal())
-      return isGVStub(MO.getGlobal(), TM);
-
-    // If this is a load from an invariant stack slot, the load is a constant.
-    if (MO.isFI()) {
-      const MachineFrameInfo &MFI =
-        *MI->getParent()->getParent()->getFrameInfo();
-      int Idx = MO.getIndex();
-      return MFI.isFixedObjectIndex(Idx) && MFI.isImmutableObjectIndex(Idx);
-    }
-  }
-
-  // All other instances of these instructions are presumed to have other
-  // issues.
-  return false;
-}
-
-bool
-SystemZInstrInfo::spillCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                           MachineBasicBlock::iterator MI,
-                                const std::vector<CalleeSavedInfo> &CSI) const {
-  if (CSI.empty())
-    return false;
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  MachineFunction &MF = *MBB.getParent();
-  SystemZMachineFunctionInfo *MFI = MF.getInfo<SystemZMachineFunctionInfo>();
-  unsigned CalleeFrameSize = 0;
-
-  // Scan the callee-saved and find the bounds of register spill area.
-  unsigned LowReg = 0, HighReg = 0, StartOffset = -1U, EndOffset = 0;
-  for (unsigned i = 0, e = CSI.size(); i != e; ++i) {
-    unsigned Reg = CSI[i].getReg();
-    const TargetRegisterClass *RegClass = CSI[i].getRegClass();
-    if (RegClass != &SystemZ::FP64RegClass) {
-      unsigned Offset = RegSpillOffsets[Reg];
-      CalleeFrameSize += 8;
-      if (StartOffset > Offset) {
-        LowReg = Reg; StartOffset = Offset;
-      }
-      if (EndOffset < Offset) {
-        HighReg = Reg; EndOffset = RegSpillOffsets[Reg];
-      }
-    }
-  }
-
-  // Save information for epilogue inserter.
-  MFI->setCalleeSavedFrameSize(CalleeFrameSize);
-  MFI->setLowReg(LowReg); MFI->setHighReg(HighReg);
-
-  // Save GPRs
-  if (StartOffset) {
-    // Build a store instruction. Use STORE MULTIPLE instruction if there are many
-    // registers to store, otherwise - just STORE.
-    MachineInstrBuilder MIB =
-      BuildMI(MBB, MI, DL, get((LowReg == HighReg ?
-                                SystemZ::MOV64mr : SystemZ::MOV64mrm)));
-
-    // Add store operands.
-    MIB.addReg(SystemZ::R15D).addImm(StartOffset);
-    if (LowReg == HighReg)
-      MIB.addReg(0);
-    MIB.addReg(LowReg, RegState::Kill);
-    if (LowReg != HighReg)
-      MIB.addReg(HighReg, RegState::Kill);
-
-    // Do a second scan adding regs as being killed by instruction
-    for (unsigned i = 0, e = CSI.size(); i != e; ++i) {
-      unsigned Reg = CSI[i].getReg();
-      // Add the callee-saved register as live-in. It's killed at the spill.
-      MBB.addLiveIn(Reg);
-      if (Reg != LowReg && Reg != HighReg)
-        MIB.addReg(Reg, RegState::ImplicitKill);
-    }
-  }
-
-  // Save FPRs
-  for (unsigned i = 0, e = CSI.size(); i != e; ++i) {
-    unsigned Reg = CSI[i].getReg();
-    const TargetRegisterClass *RegClass = CSI[i].getRegClass();
-    if (RegClass == &SystemZ::FP64RegClass) {
-      MBB.addLiveIn(Reg);
-      storeRegToStackSlot(MBB, MI, Reg, true, CSI[i].getFrameIdx(), RegClass);
-    }
-  }
-
-  return true;
-}
-
-bool
-SystemZInstrInfo::restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                             MachineBasicBlock::iterator MI,
-                                const std::vector<CalleeSavedInfo> &CSI) const {
-  if (CSI.empty())
-    return false;
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-
-  MachineFunction &MF = *MBB.getParent();
-  const TargetRegisterInfo *RegInfo= MF.getTarget().getRegisterInfo();
-  SystemZMachineFunctionInfo *MFI = MF.getInfo<SystemZMachineFunctionInfo>();
-
-  // Restore FP registers
-  for (unsigned i = 0, e = CSI.size(); i != e; ++i) {
-    unsigned Reg = CSI[i].getReg();
-    const TargetRegisterClass *RegClass = CSI[i].getRegClass();
-    if (RegClass == &SystemZ::FP64RegClass)
-      loadRegFromStackSlot(MBB, MI, Reg, CSI[i].getFrameIdx(), RegClass);
-  }
-
-  // Restore GP registers
-  unsigned LowReg = MFI->getLowReg(), HighReg = MFI->getHighReg();
-  unsigned StartOffset = RegSpillOffsets[LowReg];
-
-  if (StartOffset) {
-    // Build a load instruction. Use LOAD MULTIPLE instruction if there are many
-    // registers to load, otherwise - just LOAD.
-    MachineInstrBuilder MIB =
-      BuildMI(MBB, MI, DL, get((LowReg == HighReg ?
-                                SystemZ::MOV64rm : SystemZ::MOV64rmm)));
-    // Add store operands.
-    MIB.addReg(LowReg, RegState::Define);
-    if (LowReg != HighReg)
-      MIB.addReg(HighReg, RegState::Define);
-
-    MIB.addReg((RegInfo->hasFP(MF) ? SystemZ::R11D : SystemZ::R15D));
-    MIB.addImm(StartOffset);
-    if (LowReg == HighReg)
-      MIB.addReg(0);
-
-    // Do a second scan adding regs as being defined by instruction
-    for (unsigned i = 0, e = CSI.size(); i != e; ++i) {
-      unsigned Reg = CSI[i].getReg();
-      if (Reg != LowReg && Reg != HighReg)
-        MIB.addReg(Reg, RegState::ImplicitDefine);
-    }
-  }
-
-  return true;
-}
-
-bool SystemZInstrInfo::
-ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const {
-  assert(Cond.size() == 1 && "Invalid Xbranch condition!");
-
-  SystemZCC::CondCodes CC = static_cast<SystemZCC::CondCodes>(Cond[0].getImm());
-  Cond[0].setImm(getOppositeCondition(CC));
-  return false;
-}
-
-bool SystemZInstrInfo::BlockHasNoFallThrough(const MachineBasicBlock &MBB)const{
-  if (MBB.empty()) return false;
-
-  switch (MBB.back().getOpcode()) {
-  case SystemZ::RET:   // Return.
-  case SystemZ::JMP:   // Uncond branch.
-  case SystemZ::JMPr:  // Indirect branch.
-    return true;
-  default: return false;
-  }
-}
-
-bool SystemZInstrInfo::isUnpredicatedTerminator(const MachineInstr *MI) const {
-  const TargetInstrDesc &TID = MI->getDesc();
-  if (!TID.isTerminator()) return false;
-
-  // Conditional branch is a special case.
-  if (TID.isBranch() && !TID.isBarrier())
-    return true;
-  if (!TID.isPredicable())
-    return true;
-  return !isPredicated(MI);
-}
-
-bool SystemZInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,
-                                     MachineBasicBlock *&TBB,
-                                     MachineBasicBlock *&FBB,
-                                     SmallVectorImpl<MachineOperand> &Cond,
-                                     bool AllowModify) const {
-  // Start from the bottom of the block and work up, examining the
-  // terminator instructions.
-  MachineBasicBlock::iterator I = MBB.end();
-  while (I != MBB.begin()) {
-    --I;
-    // Working from the bottom, when we see a non-terminator
-    // instruction, we're done.
-    if (!isUnpredicatedTerminator(I))
-      break;
-
-    // A terminator that isn't a branch can't easily be handled
-    // by this analysis.
-    if (!I->getDesc().isBranch())
-      return true;
-
-    // Handle unconditional branches.
-    if (I->getOpcode() == SystemZ::JMP) {
-      if (!AllowModify) {
-        TBB = I->getOperand(0).getMBB();
-        continue;
-      }
-
-      // If the block has any instructions after a JMP, delete them.
-      while (next(I) != MBB.end())
-        next(I)->eraseFromParent();
-      Cond.clear();
-      FBB = 0;
-
-      // Delete the JMP if it's equivalent to a fall-through.
-      if (MBB.isLayoutSuccessor(I->getOperand(0).getMBB())) {
-        TBB = 0;
-        I->eraseFromParent();
-        I = MBB.end();
-        continue;
-      }
-
-      // TBB is used to indicate the unconditinal destination.
-      TBB = I->getOperand(0).getMBB();
-      continue;
-    }
-
-    // Handle conditional branches.
-    SystemZCC::CondCodes BranchCode = getCondFromBranchOpc(I->getOpcode());
-    if (BranchCode == SystemZCC::INVALID)
-      return true;  // Can't handle indirect branch.
-
-    // Working from the bottom, handle the first conditional branch.
-    if (Cond.empty()) {
-      FBB = TBB;
-      TBB = I->getOperand(0).getMBB();
-      Cond.push_back(MachineOperand::CreateImm(BranchCode));
-      continue;
-    }
-
-    // Handle subsequent conditional branches. Only handle the case where all
-    // conditional branches branch to the same destination.
-    assert(Cond.size() == 1);
-    assert(TBB);
-
-    // Only handle the case where all conditional branches branch to
-    // the same destination.
-    if (TBB != I->getOperand(0).getMBB())
-      return true;
-
-    SystemZCC::CondCodes OldBranchCode = (SystemZCC::CondCodes)Cond[0].getImm();
-    // If the conditions are the same, we can leave them alone.
-    if (OldBranchCode == BranchCode)
-      continue;
-
-    return true;
-  }
-
-  return false;
-}
-
-unsigned SystemZInstrInfo::RemoveBranch(MachineBasicBlock &MBB) const {
-  MachineBasicBlock::iterator I = MBB.end();
-  unsigned Count = 0;
-
-  while (I != MBB.begin()) {
-    --I;
-    if (I->getOpcode() != SystemZ::JMP &&
-        getCondFromBranchOpc(I->getOpcode()) == SystemZCC::INVALID)
-      break;
-    // Remove the branch.
-    I->eraseFromParent();
-    I = MBB.end();
-    ++Count;
-  }
-
-  return Count;
-}
-
-unsigned
-SystemZInstrInfo::InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                               MachineBasicBlock *FBB,
-                            const SmallVectorImpl<MachineOperand> &Cond) const {
-  // FIXME: this should probably have a DebugLoc operand
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-  // Shouldn't be a fall through.
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-  assert((Cond.size() == 1 || Cond.size() == 0) &&
-         "SystemZ branch conditions have one component!");
-
-  if (Cond.empty()) {
-    // Unconditional branch?
-    assert(!FBB && "Unconditional branch with multiple successors!");
-    BuildMI(&MBB, dl, get(SystemZ::JMP)).addMBB(TBB);
-    return 1;
-  }
-
-  // Conditional branch.
-  unsigned Count = 0;
-  SystemZCC::CondCodes CC = (SystemZCC::CondCodes)Cond[0].getImm();
-  BuildMI(&MBB, dl, getBrCond(CC)).addMBB(TBB);
-  ++Count;
-
-  if (FBB) {
-    // Two-way Conditional branch. Insert the second branch.
-    BuildMI(&MBB, dl, get(SystemZ::JMP)).addMBB(FBB);
-    ++Count;
-  }
-  return Count;
-}
-
-const TargetInstrDesc&
-SystemZInstrInfo::getBrCond(SystemZCC::CondCodes CC) const {
-  switch (CC) {
-  default:
-   llvm_unreachable("Unknown condition code!");
-  case SystemZCC::O:   return get(SystemZ::JO);
-  case SystemZCC::H:   return get(SystemZ::JH);
-  case SystemZCC::NLE: return get(SystemZ::JNLE);
-  case SystemZCC::L:   return get(SystemZ::JL);
-  case SystemZCC::NHE: return get(SystemZ::JNHE);
-  case SystemZCC::LH:  return get(SystemZ::JLH);
-  case SystemZCC::NE:  return get(SystemZ::JNE);
-  case SystemZCC::E:   return get(SystemZ::JE);
-  case SystemZCC::NLH: return get(SystemZ::JNLH);
-  case SystemZCC::HE:  return get(SystemZ::JHE);
-  case SystemZCC::NL:  return get(SystemZ::JNL);
-  case SystemZCC::LE:  return get(SystemZ::JLE);
-  case SystemZCC::NH:  return get(SystemZ::JNH);
-  case SystemZCC::NO:  return get(SystemZ::JNO);
-  }
-}
-
-SystemZCC::CondCodes
-SystemZInstrInfo::getCondFromBranchOpc(unsigned Opc) const {
-  switch (Opc) {
-  default:            return SystemZCC::INVALID;
-  case SystemZ::JO:   return SystemZCC::O;
-  case SystemZ::JH:   return SystemZCC::H;
-  case SystemZ::JNLE: return SystemZCC::NLE;
-  case SystemZ::JL:   return SystemZCC::L;
-  case SystemZ::JNHE: return SystemZCC::NHE;
-  case SystemZ::JLH:  return SystemZCC::LH;
-  case SystemZ::JNE:  return SystemZCC::NE;
-  case SystemZ::JE:   return SystemZCC::E;
-  case SystemZ::JNLH: return SystemZCC::NLH;
-  case SystemZ::JHE:  return SystemZCC::HE;
-  case SystemZ::JNL:  return SystemZCC::NL;
-  case SystemZ::JLE:  return SystemZCC::LE;
-  case SystemZ::JNH:  return SystemZCC::NH;
-  case SystemZ::JNO:  return SystemZCC::NO;
-  }
-}
-
-SystemZCC::CondCodes
-SystemZInstrInfo::getOppositeCondition(SystemZCC::CondCodes CC) const {
-  switch (CC) {
-  default:
-    llvm_unreachable("Invalid condition!");
-  case SystemZCC::O:   return SystemZCC::NO;
-  case SystemZCC::H:   return SystemZCC::NH;
-  case SystemZCC::NLE: return SystemZCC::LE;
-  case SystemZCC::L:   return SystemZCC::NL;
-  case SystemZCC::NHE: return SystemZCC::HE;
-  case SystemZCC::LH:  return SystemZCC::NLH;
-  case SystemZCC::NE:  return SystemZCC::E;
-  case SystemZCC::E:   return SystemZCC::NE;
-  case SystemZCC::NLH: return SystemZCC::LH;
-  case SystemZCC::HE:  return SystemZCC::NHE;
-  case SystemZCC::NL:  return SystemZCC::L;
-  case SystemZCC::LE:  return SystemZCC::NLE;
-  case SystemZCC::NH:  return SystemZCC::H;
-  case SystemZCC::NO:  return SystemZCC::O;
-  }
-}
-
-const TargetInstrDesc&
-SystemZInstrInfo::getLongDispOpc(unsigned Opc) const {
-  switch (Opc) {
-  default:
-    llvm_unreachable("Don't have long disp version of this instruction");
-  case SystemZ::MOV32mr:   return get(SystemZ::MOV32mry);
-  case SystemZ::MOV32rm:   return get(SystemZ::MOV32rmy);
-  case SystemZ::MOVSX32rm16: return get(SystemZ::MOVSX32rm16y);
-  case SystemZ::MOV32m8r:  return get(SystemZ::MOV32m8ry);
-  case SystemZ::MOV32m16r: return get(SystemZ::MOV32m16ry);
-  case SystemZ::MOV64m8r:  return get(SystemZ::MOV64m8ry);
-  case SystemZ::MOV64m16r: return get(SystemZ::MOV64m16ry);
-  case SystemZ::MOV64m32r: return get(SystemZ::MOV64m32ry);
-  case SystemZ::MOV8mi:    return get(SystemZ::MOV8miy);
-  case SystemZ::MUL32rm:   return get(SystemZ::MUL32rmy);
-  case SystemZ::CMP32rm:   return get(SystemZ::CMP32rmy);
-  case SystemZ::UCMP32rm:  return get(SystemZ::UCMP32rmy);
-  case SystemZ::FMOV32mr:  return get(SystemZ::FMOV32mry);
-  case SystemZ::FMOV64mr:  return get(SystemZ::FMOV64mry);
-  case SystemZ::FMOV32rm:  return get(SystemZ::FMOV32rmy);
-  case SystemZ::FMOV64rm:  return get(SystemZ::FMOV64rmy);
-  case SystemZ::MOV64Pmr:  return get(SystemZ::MOV64Pmry);
-  case SystemZ::MOV64Prm:  return get(SystemZ::MOV64Prmy);
-  }
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.h
deleted file mode 100644
index ba94ced..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.h
+++ /dev/null
@@ -1,120 +0,0 @@
-//===- SystemZInstrInfo.h - SystemZ Instruction Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the SystemZ implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_SYSTEMZINSTRINFO_H
-#define LLVM_TARGET_SYSTEMZINSTRINFO_H
-
-#include "SystemZ.h"
-#include "SystemZRegisterInfo.h"
-#include "llvm/ADT/IndexedMap.h"
-#include "llvm/Target/TargetInstrInfo.h"
-
-namespace llvm {
-
-class SystemZTargetMachine;
-
-/// SystemZII - This namespace holds all of the target specific flags that
-/// instruction info tracks.
-///
-namespace SystemZII {
-  enum {
-    //===------------------------------------------------------------------===//
-    // SystemZ Specific MachineOperand flags.
-
-    MO_NO_FLAG = 0,
-
-    /// MO_GOTENT - On a symbol operand this indicates that the immediate is
-    /// the offset to the location of the symbol name from the base of the GOT.
-    ///
-    ///    SYMBOL_LABEL @GOTENT
-    MO_GOTENT = 1,
-
-    /// MO_PLT - On a symbol operand this indicates that the immediate is
-    /// offset to the PLT entry of symbol name from the current code location.
-    ///
-    ///    SYMBOL_LABEL @PLT
-    MO_PLT = 2
-  };
-}
-
-class SystemZInstrInfo : public TargetInstrInfoImpl {
-  const SystemZRegisterInfo RI;
-  SystemZTargetMachine &TM;
-  IndexedMap<unsigned> RegSpillOffsets;
-public:
-  explicit SystemZInstrInfo(SystemZTargetMachine &TM);
-
-  /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-  /// such, whenever a client has an instance of instruction info, it should
-  /// always be able to get register info as well (through this method).
-  ///
-  virtual const SystemZRegisterInfo &getRegisterInfo() const { return RI; }
-
-  bool copyRegToReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                    unsigned DestReg, unsigned SrcReg,
-                    const TargetRegisterClass *DestRC,
-                    const TargetRegisterClass *SrcRC) const;
-
-  bool isMoveInstr(const MachineInstr& MI,
-                   unsigned &SrcReg, unsigned &DstReg,
-                   unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-  unsigned isLoadFromStackSlot(const MachineInstr *MI, int &FrameIndex) const;
-  unsigned isStoreToStackSlot(const MachineInstr *MI, int &FrameIndex) const;
-  bool isInvariantLoad(const MachineInstr *MI) const;
-
-  virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MI,
-                                   unsigned SrcReg, bool isKill,
-                                   int FrameIndex,
-                                   const TargetRegisterClass *RC) const;
-  virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MI,
-                                    unsigned DestReg, int FrameIdx,
-                                    const TargetRegisterClass *RC) const;
-
-  virtual bool spillCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                         MachineBasicBlock::iterator MI,
-                                 const std::vector<CalleeSavedInfo> &CSI) const;
-  virtual bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                           MachineBasicBlock::iterator MI,
-                                 const std::vector<CalleeSavedInfo> &CSI) const;
-
-  bool ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const;
-  virtual bool BlockHasNoFallThrough(const MachineBasicBlock &MBB) const;
-  virtual bool isUnpredicatedTerminator(const MachineInstr *MI) const;
-  virtual bool AnalyzeBranch(MachineBasicBlock &MBB,
-                             MachineBasicBlock *&TBB,
-                             MachineBasicBlock *&FBB,
-                             SmallVectorImpl<MachineOperand> &Cond,
-                             bool AllowModify) const;
-  virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                                MachineBasicBlock *FBB,
-                             const SmallVectorImpl<MachineOperand> &Cond) const;
-  virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const;
-
-  SystemZCC::CondCodes getOppositeCondition(SystemZCC::CondCodes CC) const;
-  SystemZCC::CondCodes getCondFromBranchOpc(unsigned Opc) const;
-  const TargetInstrDesc& getBrCond(SystemZCC::CondCodes CC) const;
-  const TargetInstrDesc& getLongDispOpc(unsigned Opc) const;
-
-  const TargetInstrDesc& getMemoryInstr(unsigned Opc, int64_t Offset = 0) const {
-    if (Offset < 0 || Offset >= 4096)
-      return getLongDispOpc(Opc);
-    else
-      return get(Opc);
-  }
-};
-
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.td b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
deleted file mode 100644
index 56d75dd..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
+++ /dev/null
@@ -1,1155 +0,0 @@
-//===- SystemZInstrInfo.td - SystemZ Instruction defs ---------*- tblgen-*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file describes the SystemZ instructions in TableGen format.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// SystemZ Instruction Predicate Definitions.
-def IsZ10 : Predicate<"Subtarget.isZ10()">;
-
-include "SystemZInstrFormats.td"
-
-//===----------------------------------------------------------------------===//
-// Type Constraints.
-//===----------------------------------------------------------------------===//
-class SDTCisI8<int OpNum> : SDTCisVT<OpNum, i8>;
-class SDTCisI16<int OpNum> : SDTCisVT<OpNum, i16>;
-class SDTCisI32<int OpNum> : SDTCisVT<OpNum, i32>;
-class SDTCisI64<int OpNum> : SDTCisVT<OpNum, i64>;
-
-//===----------------------------------------------------------------------===//
-// Type Profiles.
-//===----------------------------------------------------------------------===//
-def SDT_SystemZCall         : SDTypeProfile<0, -1, [SDTCisPtrTy<0>]>;
-def SDT_SystemZCallSeqStart : SDCallSeqStart<[SDTCisI64<0>]>;
-def SDT_SystemZCallSeqEnd   : SDCallSeqEnd<[SDTCisI64<0>, SDTCisI64<1>]>;
-def SDT_CmpTest             : SDTypeProfile<0, 2, [SDTCisSameAs<0, 1>]>;
-def SDT_BrCond              : SDTypeProfile<0, 2,
-                                           [SDTCisVT<0, OtherVT>,
-                                            SDTCisI8<1>]>;
-def SDT_SelectCC            : SDTypeProfile<1, 3,
-                                           [SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>,
-                                            SDTCisI8<3>]>;
-def SDT_Address             : SDTypeProfile<1, 1,
-                                            [SDTCisSameAs<0, 1>, SDTCisPtrTy<0>]>;
-
-//===----------------------------------------------------------------------===//
-// SystemZ Specific Node Definitions.
-//===----------------------------------------------------------------------===//
-def SystemZretflag : SDNode<"SystemZISD::RET_FLAG", SDTNone,
-                     [SDNPHasChain, SDNPOptInFlag]>;
-def SystemZcall    : SDNode<"SystemZISD::CALL", SDT_SystemZCall,
-                     [SDNPHasChain, SDNPOutFlag, SDNPOptInFlag]>;
-def SystemZcallseq_start :
-                 SDNode<"ISD::CALLSEQ_START", SDT_SystemZCallSeqStart,
-                        [SDNPHasChain, SDNPOutFlag]>;
-def SystemZcallseq_end :
-                 SDNode<"ISD::CALLSEQ_END",   SDT_SystemZCallSeqEnd,
-                        [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-def SystemZcmp     : SDNode<"SystemZISD::CMP", SDT_CmpTest, [SDNPOutFlag]>;
-def SystemZucmp    : SDNode<"SystemZISD::UCMP", SDT_CmpTest, [SDNPOutFlag]>;
-def SystemZbrcond  : SDNode<"SystemZISD::BRCOND", SDT_BrCond,
-                            [SDNPHasChain, SDNPInFlag]>;
-def SystemZselect  : SDNode<"SystemZISD::SELECT", SDT_SelectCC, [SDNPInFlag]>;
-def SystemZpcrelwrapper : SDNode<"SystemZISD::PCRelativeWrapper", SDT_Address, []>;
-
-
-include "SystemZOperands.td"
-
-//===----------------------------------------------------------------------===//
-// Instruction list..
-
-def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i64imm:$amt),
-                              "#ADJCALLSTACKDOWN",
-                              [(SystemZcallseq_start timm:$amt)]>;
-def ADJCALLSTACKUP   : Pseudo<(outs), (ins i64imm:$amt1, i64imm:$amt2),
-                              "#ADJCALLSTACKUP",
-                              [(SystemZcallseq_end timm:$amt1, timm:$amt2)]>;
-
-let usesCustomDAGSchedInserter = 1 in {
-  def Select32 : Pseudo<(outs GR32:$dst), (ins GR32:$src1, GR32:$src2, i8imm:$cc),
-                        "# Select32 PSEUDO",
-                        [(set GR32:$dst,
-                              (SystemZselect GR32:$src1, GR32:$src2, imm:$cc))]>;
-  def Select64 : Pseudo<(outs GR64:$dst), (ins GR64:$src1, GR64:$src2, i8imm:$cc),
-                        "# Select64 PSEUDO",
-                        [(set GR64:$dst,
-                              (SystemZselect GR64:$src1, GR64:$src2, imm:$cc))]>;
-}
-
-
-//===----------------------------------------------------------------------===//
-//  Control Flow Instructions...
-//
-
-// FIXME: Provide proper encoding!
-let isReturn = 1, isTerminator = 1, isBarrier = 1, hasCtrlDep = 1 in {
-  def RET : Pseudo<(outs), (ins), "br\t%r14", [(SystemZretflag)]>;
-}
-
-let isBranch = 1, isTerminator = 1 in {
-  let isBarrier = 1 in {
-    def JMP  : Pseudo<(outs), (ins brtarget:$dst), "j\t{$dst}", [(br bb:$dst)]>;
-
-    let isIndirectBranch = 1 in
-      def JMPr   : Pseudo<(outs), (ins GR64:$dst), "br\t{$dst}", [(brind GR64:$dst)]>;
-  }
-
-  let Uses = [PSW] in {
-    def JO  : Pseudo<(outs), (ins brtarget:$dst),
-                     "jo\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_O)]>;
-    def JH  : Pseudo<(outs), (ins brtarget:$dst),
-                     "jh\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_H)]>;
-    def JNLE: Pseudo<(outs), (ins brtarget:$dst),
-                     "jnle\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_NLE)]>;
-    def JL  : Pseudo<(outs), (ins brtarget:$dst),
-                     "jl\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_L)]>;
-    def JNHE: Pseudo<(outs), (ins brtarget:$dst),
-                     "jnhe\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_NHE)]>;
-    def JLH : Pseudo<(outs), (ins brtarget:$dst),
-                     "jlh\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_LH)]>;
-    def JNE : Pseudo<(outs), (ins brtarget:$dst),
-                     "jne\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_NE)]>;
-    def JE  : Pseudo<(outs), (ins brtarget:$dst),
-                     "je\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_E)]>;
-    def JNLH: Pseudo<(outs), (ins brtarget:$dst),
-                     "jnlh\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_NLH)]>;
-    def JHE : Pseudo<(outs), (ins brtarget:$dst),
-                     "jhe\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_HE)]>;
-    def JNL : Pseudo<(outs), (ins brtarget:$dst),
-                     "jnl\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_NL)]>;
-    def JLE : Pseudo<(outs), (ins brtarget:$dst),
-                     "jle\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_LE)]>;
-    def JNH : Pseudo<(outs), (ins brtarget:$dst),
-                     "jnh\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_NH)]>;
-    def JNO : Pseudo<(outs), (ins brtarget:$dst),
-                     "jno\t$dst",
-                     [(SystemZbrcond bb:$dst, SYSTEMZ_COND_NO)]>;
-  } // Uses = [PSW]
-} // isBranch = 1
-
-//===----------------------------------------------------------------------===//
-//  Call Instructions...
-//
-
-let isCall = 1 in
-  // All calls clobber the non-callee saved registers. Uses for argument
-  // registers are added manually.
-  let Defs = [R0D, R1D, R2D, R3D, R4D, R5D, R14D,
-              F0L, F1L, F2L, F3L, F4L, F5L, F6L, F7L] in {
-    def CALLi     : Pseudo<(outs), (ins imm_pcrel:$dst, variable_ops),
-                           "brasl\t%r14, $dst", [(SystemZcall imm:$dst)]>;
-    def CALLr     : Pseudo<(outs), (ins ADDR64:$dst, variable_ops),
-                           "basr\t%r14, $dst", [(SystemZcall ADDR64:$dst)]>;
-  }
-
-//===----------------------------------------------------------------------===//
-//  Miscellaneous Instructions.
-//
-
-let isReMaterializable = 1 in
-// FIXME: Provide imm12 variant
-// FIXME: Address should be halfword aligned...
-def LA64r  : RXI<0x47,
-                 (outs GR64:$dst), (ins laaddr:$src),
-                 "lay\t{$dst, $src}",
-                 [(set GR64:$dst, laaddr:$src)]>;
-def LA64rm : RXYI<0x71E3,
-                  (outs GR64:$dst), (ins i64imm:$src),
-                  "larl\t{$dst, $src}",
-                  [(set GR64:$dst,
-                        (SystemZpcrelwrapper tglobaladdr:$src))]>;
-
-let neverHasSideEffects = 1 in
-def NOP : Pseudo<(outs), (ins), "# no-op", []>;
-
-//===----------------------------------------------------------------------===//
-// Move Instructions
-
-let neverHasSideEffects = 1 in {
-def MOV32rr : RRI<0x18,
-                  (outs GR32:$dst), (ins GR32:$src),
-                  "lr\t{$dst, $src}",
-                  []>;
-def MOV64rr : RREI<0xB904,
-                   (outs GR64:$dst), (ins GR64:$src),
-                   "lgr\t{$dst, $src}",
-                   []>;
-def MOV128rr : Pseudo<(outs GR128:$dst), (ins GR128:$src),
-                     "# MOV128 PSEUDO!\n"
-                     "\tlgr\t${dst:subreg_odd}, ${src:subreg_odd}\n"
-                     "\tlgr\t${dst:subreg_even}, ${src:subreg_even}",
-                     []>;
-def MOV64rrP : Pseudo<(outs GR64P:$dst), (ins GR64P:$src),
-                     "# MOV64P PSEUDO!\n"
-                     "\tlr\t${dst:subreg_odd}, ${src:subreg_odd}\n"
-                     "\tlr\t${dst:subreg_even}, ${src:subreg_even}",
-                     []>;
-}
-
-def MOVSX64rr32 : RREI<0xB914,
-                       (outs GR64:$dst), (ins GR32:$src),
-                       "lgfr\t{$dst, $src}",
-                       [(set GR64:$dst, (sext GR32:$src))]>;
-def MOVZX64rr32 : RREI<0xB916,
-                       (outs GR64:$dst), (ins GR32:$src),
-                       "llgfr\t{$dst, $src}",
-                       [(set GR64:$dst, (zext GR32:$src))]>;
-
-let isReMaterializable = 1, isAsCheapAsAMove = 1 in {
-def MOV32ri16 : RII<0x8A7,
-                    (outs GR32:$dst), (ins s16imm:$src),
-                    "lhi\t{$dst, $src}",
-                    [(set GR32:$dst, immSExt16:$src)]>;
-def MOV64ri16 : RII<0x9A7,
-                    (outs GR64:$dst), (ins s16imm64:$src),
-                    "lghi\t{$dst, $src}",
-                    [(set GR64:$dst, immSExt16:$src)]>;
-
-def MOV64rill16 : RII<0xFA5,
-                      (outs GR64:$dst), (ins i64imm:$src),
-                      "llill\t{$dst, $src}",
-                      [(set GR64:$dst, i64ll16:$src)]>;
-def MOV64rilh16 : RII<0xEA5,
-                      (outs GR64:$dst), (ins i64imm:$src),
-                      "llilh\t{$dst, $src}",
-                      [(set GR64:$dst, i64lh16:$src)]>;
-def MOV64rihl16 : RII<0xDA5,
-                      (outs GR64:$dst), (ins i64imm:$src),
-                      "llihl\t{$dst, $src}",
-                      [(set GR64:$dst, i64hl16:$src)]>;
-def MOV64rihh16 : RII<0xCA5,
-                      (outs GR64:$dst), (ins i64imm:$src),
-                      "llihh\t{$dst, $src}",
-                      [(set GR64:$dst, i64hh16:$src)]>;
-
-def MOV64ri32 : RILI<0x1C0,
-                     (outs GR64:$dst), (ins s32imm64:$src),
-                     "lgfi\t{$dst, $src}",
-                     [(set GR64:$dst, immSExt32:$src)]>;
-def MOV64rilo32 : RILI<0xFC0,
-                       (outs GR64:$dst), (ins i64imm:$src),
-                       "llilf\t{$dst, $src}",
-                       [(set GR64:$dst, i64lo32:$src)]>;
-def MOV64rihi32 : RILI<0xEC0, (outs GR64:$dst), (ins i64imm:$src),
-                       "llihf\t{$dst, $src}",
-                       [(set GR64:$dst, i64hi32:$src)]>;
-}
-
-let canFoldAsLoad = 1, isReMaterializable = 1, mayHaveSideEffects = 1 in {
-def MOV32rm  : RXI<0x58,
-                   (outs GR32:$dst), (ins rriaddr12:$src),
-                   "l\t{$dst, $src}",
-                   [(set GR32:$dst, (load rriaddr12:$src))]>;
-def MOV32rmy : RXYI<0x58E3,
-                    (outs GR32:$dst), (ins rriaddr:$src),
-                    "ly\t{$dst, $src}",
-                    [(set GR32:$dst, (load rriaddr:$src))]>;
-def MOV64rm  : RXYI<0x04E3,
-                    (outs GR64:$dst), (ins rriaddr:$src),
-                    "lg\t{$dst, $src}",
-                    [(set GR64:$dst, (load rriaddr:$src))]>;
-def MOV64Prm : Pseudo<(outs GR64P:$dst), (ins rriaddr12:$src),
-                      "# MOV64P PSEUDO!\n"
-                      "\tl\t${dst:subreg_odd},  $src\n"
-                      "\tl\t${dst:subreg_even}, 4+$src",
-                      [(set GR64P:$dst, (load rriaddr12:$src))]>;
-def MOV64Prmy : Pseudo<(outs GR64P:$dst), (ins rriaddr:$src),
-                       "# MOV64P PSEUDO!\n"
-                       "\tly\t${dst:subreg_odd},  $src\n"
-                       "\tly\t${dst:subreg_even}, 4+$src",
-                       [(set GR64P:$dst, (load rriaddr:$src))]>;
-def MOV128rm : Pseudo<(outs GR128:$dst), (ins rriaddr:$src),
-                      "# MOV128 PSEUDO!\n"
-                      "\tlg\t${dst:subreg_odd},  $src\n"
-                      "\tlg\t${dst:subreg_even}, 8+$src",
-                      [(set GR128:$dst, (load rriaddr:$src))]>;
-}
-
-def MOV32mr  : RXI<0x50,
-                   (outs), (ins rriaddr12:$dst, GR32:$src),
-                   "st\t{$src, $dst}",
-                   [(store GR32:$src, rriaddr12:$dst)]>;
-def MOV32mry : RXYI<0x50E3,
-                    (outs), (ins rriaddr:$dst, GR32:$src),
-                    "sty\t{$src, $dst}",
-                    [(store GR32:$src, rriaddr:$dst)]>;
-def MOV64mr  : RXYI<0x24E3,
-                    (outs), (ins rriaddr:$dst, GR64:$src),
-                    "stg\t{$src, $dst}",
-                    [(store GR64:$src, rriaddr:$dst)]>;
-def MOV64Pmr : Pseudo<(outs), (ins rriaddr12:$dst, GR64P:$src),
-                      "# MOV64P PSEUDO!\n"
-                      "\tst\t${src:subreg_odd}, $dst\n"
-                      "\tst\t${src:subreg_even}, 4+$dst",
-                      [(store GR64P:$src, rriaddr12:$dst)]>;
-def MOV64Pmry : Pseudo<(outs), (ins rriaddr:$dst, GR64P:$src),
-                       "# MOV64P PSEUDO!\n"
-                       "\tsty\t${src:subreg_odd}, $dst\n"
-                       "\tsty\t${src:subreg_even}, 4+$dst",
-                       [(store GR64P:$src, rriaddr:$dst)]>;
-def MOV128mr : Pseudo<(outs), (ins rriaddr:$dst, GR128:$src),
-                      "# MOV128 PSEUDO!\n"
-                      "\tstg\t${src:subreg_odd}, $dst\n"
-                      "\tstg\t${src:subreg_even}, 8+$dst",
-                      [(store GR128:$src, rriaddr:$dst)]>;
-
-def MOV8mi    : SII<0x92,
-                    (outs), (ins riaddr12:$dst, i32i8imm:$src),
-                    "mvi\t{$dst, $src}",
-                    [(truncstorei8 (i32 i32immSExt8:$src), riaddr12:$dst)]>;
-def MOV8miy   : SIYI<0x52EB,
-                     (outs), (ins riaddr:$dst, i32i8imm:$src),
-                     "mviy\t{$dst, $src}",
-                     [(truncstorei8 (i32 i32immSExt8:$src), riaddr:$dst)]>;
-
-let AddedComplexity = 2 in {
-def MOV16mi   : SILI<0xE544,
-                     (outs), (ins riaddr12:$dst, s16imm:$src),
-                     "mvhhi\t{$dst, $src}",
-                     [(truncstorei16 (i32 i32immSExt16:$src), riaddr12:$dst)]>,
-                     Requires<[IsZ10]>;
-def MOV32mi16 : SILI<0xE54C,
-                     (outs), (ins riaddr12:$dst, s32imm:$src),
-                     "mvhi\t{$dst, $src}",
-                     [(store (i32 immSExt16:$src), riaddr12:$dst)]>,
-                     Requires<[IsZ10]>;
-def MOV64mi16 : SILI<0xE548,
-                     (outs), (ins riaddr12:$dst, s32imm64:$src),
-                     "mvghi\t{$dst, $src}",
-                     [(store (i64 immSExt16:$src), riaddr12:$dst)]>,
-                     Requires<[IsZ10]>;
-}
-
-// sexts
-def MOVSX32rr8  : RREI<0xB926,
-                       (outs GR32:$dst), (ins GR32:$src),
-                       "lbr\t{$dst, $src}",
-                       [(set GR32:$dst, (sext_inreg GR32:$src, i8))]>;
-def MOVSX64rr8  : RREI<0xB906,
-                       (outs GR64:$dst), (ins GR64:$src),
-                       "lgbr\t{$dst, $src}",
-                       [(set GR64:$dst, (sext_inreg GR64:$src, i8))]>;
-def MOVSX32rr16 : RREI<0xB927,
-                       (outs GR32:$dst), (ins GR32:$src),
-                       "lhr\t{$dst, $src}",
-                       [(set GR32:$dst, (sext_inreg GR32:$src, i16))]>;
-def MOVSX64rr16 : RREI<0xB907,
-                       (outs GR64:$dst), (ins GR64:$src),
-                       "lghr\t{$dst, $src}",
-                       [(set GR64:$dst, (sext_inreg GR64:$src, i16))]>;
-
-// extloads
-def MOVSX32rm8   : RXYI<0x76E3,
-                        (outs GR32:$dst), (ins rriaddr:$src),
-                        "lb\t{$dst, $src}",
-                        [(set GR32:$dst, (sextloadi32i8 rriaddr:$src))]>;
-def MOVSX32rm16  : RXI<0x48,
-                       (outs GR32:$dst), (ins rriaddr12:$src),
-                       "lh\t{$dst, $src}",
-                       [(set GR32:$dst, (sextloadi32i16 rriaddr12:$src))]>;
-def MOVSX32rm16y : RXYI<0x78E3,
-                        (outs GR32:$dst), (ins rriaddr:$src),
-                        "lhy\t{$dst, $src}",
-                        [(set GR32:$dst, (sextloadi32i16 rriaddr:$src))]>;
-def MOVSX64rm8   : RXYI<0x77E3,
-                        (outs GR64:$dst), (ins rriaddr:$src),
-                        "lgb\t{$dst, $src}",
-                        [(set GR64:$dst, (sextloadi64i8 rriaddr:$src))]>;
-def MOVSX64rm16  : RXYI<0x15E3,
-                        (outs GR64:$dst), (ins rriaddr:$src),
-                        "lgh\t{$dst, $src}",
-                        [(set GR64:$dst, (sextloadi64i16 rriaddr:$src))]>;
-def MOVSX64rm32  : RXYI<0x14E3,
-                        (outs GR64:$dst), (ins rriaddr:$src),
-                        "lgf\t{$dst, $src}",
-                        [(set GR64:$dst, (sextloadi64i32 rriaddr:$src))]>;
-
-def MOVZX32rm8  : RXYI<0x94E3,
-                       (outs GR32:$dst), (ins rriaddr:$src),
-                       "llc\t{$dst, $src}",
-                       [(set GR32:$dst, (zextloadi32i8 rriaddr:$src))]>;
-def MOVZX32rm16 : RXYI<0x95E3,
-                       (outs GR32:$dst), (ins rriaddr:$src),
-                       "llh\t{$dst, $src}",
-                       [(set GR32:$dst, (zextloadi32i16 rriaddr:$src))]>;
-def MOVZX64rm8  : RXYI<0x90E3,
-                       (outs GR64:$dst), (ins rriaddr:$src),
-                       "llgc\t{$dst, $src}",
-                       [(set GR64:$dst, (zextloadi64i8 rriaddr:$src))]>;
-def MOVZX64rm16 : RXYI<0x91E3,
-                       (outs GR64:$dst), (ins rriaddr:$src),
-                       "llgh\t{$dst, $src}",
-                       [(set GR64:$dst, (zextloadi64i16 rriaddr:$src))]>;
-def MOVZX64rm32 : RXYI<0x16E3,
-                       (outs GR64:$dst), (ins rriaddr:$src),
-                       "llgf\t{$dst, $src}",
-                       [(set GR64:$dst, (zextloadi64i32 rriaddr:$src))]>;
-
-// truncstores
-def MOV32m8r   : RXI<0x42,
-                     (outs), (ins rriaddr12:$dst, GR32:$src),
-                     "stc\t{$src, $dst}",
-                     [(truncstorei8 GR32:$src, rriaddr12:$dst)]>;
-
-def MOV32m8ry  : RXYI<0x72E3,
-                      (outs), (ins rriaddr:$dst, GR32:$src),
-                      "stcy\t{$src, $dst}",
-                      [(truncstorei8 GR32:$src, rriaddr:$dst)]>;
-
-def MOV32m16r  : RXI<0x40,
-                     (outs), (ins rriaddr12:$dst, GR32:$src),
-                     "sth\t{$src, $dst}",
-                     [(truncstorei16 GR32:$src, rriaddr12:$dst)]>;
-
-def MOV32m16ry : RXYI<0x70E3,
-                      (outs), (ins rriaddr:$dst, GR32:$src),
-                      "sthy\t{$src, $dst}",
-                      [(truncstorei16 GR32:$src, rriaddr:$dst)]>;
-
-def MOV64m8r   : RXI<0x42,
-                     (outs), (ins rriaddr12:$dst, GR64:$src),
-                     "stc\t{$src, $dst}",
-                     [(truncstorei8 GR64:$src, rriaddr12:$dst)]>;
-
-def MOV64m8ry  : RXYI<0x72E3,
-                      (outs), (ins rriaddr:$dst, GR64:$src),
-                      "stcy\t{$src, $dst}",
-                      [(truncstorei8 GR64:$src, rriaddr:$dst)]>;
-
-def MOV64m16r  : RXI<0x40,
-                     (outs), (ins rriaddr12:$dst, GR64:$src),
-                     "sth\t{$src, $dst}",
-                     [(truncstorei16 GR64:$src, rriaddr12:$dst)]>;
-
-def MOV64m16ry : RXYI<0x70E3,
-                      (outs), (ins rriaddr:$dst, GR64:$src),
-                      "sthy\t{$src, $dst}",
-                      [(truncstorei16 GR64:$src, rriaddr:$dst)]>;
-
-def MOV64m32r  : RXI<0x50,
-                     (outs), (ins rriaddr12:$dst, GR64:$src),
-                     "st\t{$src, $dst}",
-                     [(truncstorei32 GR64:$src, rriaddr12:$dst)]>;
-
-def MOV64m32ry : RXYI<0x50E3,
-                      (outs), (ins rriaddr:$dst, GR64:$src),
-                      "sty\t{$src, $dst}",
-                      [(truncstorei32 GR64:$src, rriaddr:$dst)]>;
-
-// multiple regs moves
-// FIXME: should we use multiple arg nodes?
-def MOV32mrm  : RSYI<0x90EB,
-                     (outs), (ins riaddr:$dst, GR32:$from, GR32:$to),
-                     "stmy\t{$from, $to, $dst}",
-                     []>;
-def MOV64mrm  : RSYI<0x24EB,
-                     (outs), (ins riaddr:$dst, GR64:$from, GR64:$to),
-                     "stmg\t{$from, $to, $dst}",
-                     []>;
-def MOV32rmm  : RSYI<0x90EB,
-                     (outs GR32:$from, GR32:$to), (ins riaddr:$dst),
-                     "lmy\t{$from, $to, $dst}",
-                     []>;
-def MOV64rmm  : RSYI<0x04EB,
-                     (outs GR64:$from, GR64:$to), (ins riaddr:$dst),
-                     "lmg\t{$from, $to, $dst}",
-                     []>;
-
-let isReMaterializable = 1, isAsCheapAsAMove = 1, isTwoAddress = 1 in {
-def MOV64Pr0_even : Pseudo<(outs GR64P:$dst), (ins GR64P:$src),
-                           "lhi\t${dst:subreg_even}, 0",
-                           []>;
-def MOV128r0_even : Pseudo<(outs GR128:$dst), (ins GR128:$src),
-                           "lghi\t${dst:subreg_even}, 0",
-                           []>;
-}
-
-// Byte swaps
-def BSWAP32rr : RREI<0xB91F,
-                     (outs GR32:$dst), (ins GR32:$src),
-                     "lrvr\t{$dst, $src}",
-                     [(set GR32:$dst, (bswap GR32:$src))]>;
-def BSWAP64rr : RREI<0xB90F,
-                     (outs GR64:$dst), (ins GR64:$src),
-                     "lrvgr\t{$dst, $src}",
-                     [(set GR64:$dst, (bswap GR64:$src))]>;
-
-// FIXME: this is invalid pattern for big-endian
-//def BSWAP16rm : RXYI<0x1FE3, (outs GR32:$dst), (ins rriaddr:$src),
-//                     "lrvh\t{$dst, $src}",
-//                     [(set GR32:$dst, (bswap (extloadi32i16 rriaddr:$src)))]>;
-def BSWAP32rm : RXYI<0x1EE3, (outs GR32:$dst), (ins rriaddr:$src),
-                     "lrv\t{$dst, $src}",
-                     [(set GR32:$dst, (bswap (load rriaddr:$src)))]>;
-def BSWAP64rm : RXYI<0x0FE3, (outs GR64:$dst), (ins rriaddr:$src),
-                     "lrvg\t{$dst, $src}",
-                     [(set GR64:$dst, (bswap (load rriaddr:$src)))]>;
-
-//def BSWAP16mr : RXYI<0xE33F, (outs), (ins rriaddr:$dst, GR32:$src),
-//                     "strvh\t{$src, $dst}",
-//                     [(truncstorei16 (bswap GR32:$src), rriaddr:$dst)]>;
-def BSWAP32mr : RXYI<0xE33E, (outs), (ins rriaddr:$dst, GR32:$src),
-                     "strv\t{$src, $dst}",
-                     [(store (bswap GR32:$src), rriaddr:$dst)]>;
-def BSWAP64mr : RXYI<0xE32F, (outs), (ins rriaddr:$dst, GR64:$src),
-                     "strvg\t{$src, $dst}",
-                     [(store (bswap GR64:$src), rriaddr:$dst)]>;
-
-//===----------------------------------------------------------------------===//
-// Arithmetic Instructions
-
-let Defs = [PSW] in {
-def NEG32rr : RRI<0x13,
-                  (outs GR32:$dst), (ins GR32:$src),
-                  "lcr\t{$dst, $src}",
-                  [(set GR32:$dst, (ineg GR32:$src)),
-                   (implicit PSW)]>;
-def NEG64rr : RREI<0xB903, (outs GR64:$dst), (ins GR64:$src),
-                   "lcgr\t{$dst, $src}",
-                   [(set GR64:$dst, (ineg GR64:$src)),
-                    (implicit PSW)]>;
-def NEG64rr32 : RREI<0xB913, (outs GR64:$dst), (ins GR32:$src),
-                     "lcgfr\t{$dst, $src}",
-                     [(set GR64:$dst, (ineg (sext GR32:$src))),
-                      (implicit PSW)]>;
-}
-
-let isTwoAddress = 1 in {
-
-let Defs = [PSW] in {
-
-let isCommutable = 1 in { // X = ADD Y, Z  == X = ADD Z, Y
-def ADD32rr : RRI<0x1A, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                  "ar\t{$dst, $src2}",
-                  [(set GR32:$dst, (add GR32:$src1, GR32:$src2)),
-                   (implicit PSW)]>;
-def ADD64rr : RREI<0xB908, (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                   "agr\t{$dst, $src2}",
-                   [(set GR64:$dst, (add GR64:$src1, GR64:$src2)),
-                    (implicit PSW)]>;
-}
-
-def ADD32rm   : RXI<0x5A, (outs GR32:$dst), (ins GR32:$src1, rriaddr12:$src2),
-                    "a\t{$dst, $src2}",
-                    [(set GR32:$dst, (add GR32:$src1, (load rriaddr12:$src2))),
-                     (implicit PSW)]>;
-def ADD32rmy  : RXYI<0xE35A, (outs GR32:$dst), (ins GR32:$src1, rriaddr:$src2),
-                     "ay\t{$dst, $src2}",
-                     [(set GR32:$dst, (add GR32:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
-def ADD64rm   : RXYI<0xE308, (outs GR64:$dst), (ins GR64:$src1, rriaddr:$src2),
-                     "ag\t{$dst, $src2}",
-                     [(set GR64:$dst, (add GR64:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
-
-
-def ADD32ri16 : RII<0xA7A,
-                    (outs GR32:$dst), (ins GR32:$src1, s16imm:$src2),
-                    "ahi\t{$dst, $src2}",
-                    [(set GR32:$dst, (add GR32:$src1, immSExt16:$src2)),
-                     (implicit PSW)]>;
-def ADD32ri   : RILI<0xC29,
-                     (outs GR32:$dst), (ins GR32:$src1, s32imm:$src2),
-                     "afi\t{$dst, $src2}",
-                     [(set GR32:$dst, (add GR32:$src1, imm:$src2)),
-                      (implicit PSW)]>;
-def ADD64ri16 : RILI<0xA7B,
-                     (outs GR64:$dst), (ins GR64:$src1, s16imm64:$src2),
-                     "aghi\t{$dst, $src2}",
-                     [(set GR64:$dst, (add GR64:$src1, immSExt16:$src2)),
-                      (implicit PSW)]>;
-def ADD64ri32 : RILI<0xC28,
-                     (outs GR64:$dst), (ins GR64:$src1, s32imm64:$src2),
-                     "agfi\t{$dst, $src2}",
-                     [(set GR64:$dst, (add GR64:$src1, immSExt32:$src2)),
-                      (implicit PSW)]>;
-
-let isCommutable = 1 in { // X = ADC Y, Z  == X = ADC Z, Y
-def ADC32rr : RRI<0x1E, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                  "alr\t{$dst, $src2}",
-                  [(set GR32:$dst, (addc GR32:$src1, GR32:$src2))]>;
-def ADC64rr : RREI<0xB90A, (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                   "algr\t{$dst, $src2}",
-                   [(set GR64:$dst, (addc GR64:$src1, GR64:$src2))]>;
-}
-
-def ADC32ri   : RILI<0xC2B,
-                     (outs GR32:$dst), (ins GR32:$src1, s32imm:$src2),
-                     "alfi\t{$dst, $src2}",
-                     [(set GR32:$dst, (addc GR32:$src1, imm:$src2))]>;
-def ADC64ri32 : RILI<0xC2A,
-                     (outs GR64:$dst), (ins GR64:$src1, s32imm64:$src2),
-                     "algfi\t{$dst, $src2}",
-                     [(set GR64:$dst, (addc GR64:$src1, immSExt32:$src2))]>;
-
-let Uses = [PSW] in {
-def ADDE32rr : RREI<0xB998, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                    "alcr\t{$dst, $src2}",
-                    [(set GR32:$dst, (adde GR32:$src1, GR32:$src2)),
-                     (implicit PSW)]>;
-def ADDE64rr : RREI<0xB988, (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                    "alcgr\t{$dst, $src2}",
-                    [(set GR64:$dst, (adde GR64:$src1, GR64:$src2)),
-                     (implicit PSW)]>;
-}
-
-let isCommutable = 1 in { // X = AND Y, Z  == X = AND Z, Y
-def AND32rr : RRI<0x14,
-                  (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                  "nr\t{$dst, $src2}",
-                  [(set GR32:$dst, (and GR32:$src1, GR32:$src2))]>;
-def AND64rr : RREI<0xB980,
-                   (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                   "ngr\t{$dst, $src2}",
-                   [(set GR64:$dst, (and GR64:$src1, GR64:$src2))]>;
-}
-
-def AND32rm   : RXI<0x54, (outs GR32:$dst), (ins GR32:$src1, rriaddr12:$src2),
-                    "n\t{$dst, $src2}",
-                    [(set GR32:$dst, (and GR32:$src1, (load rriaddr12:$src2))),
-                     (implicit PSW)]>;
-def AND32rmy  : RXYI<0xE354, (outs GR32:$dst), (ins GR32:$src1, rriaddr:$src2),
-                     "ny\t{$dst, $src2}",
-                     [(set GR32:$dst, (and GR32:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
-def AND64rm   : RXYI<0xE360, (outs GR64:$dst), (ins GR64:$src1, rriaddr:$src2),
-                     "ng\t{$dst, $src2}",
-                     [(set GR64:$dst, (and GR64:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
-
-def AND32rill16 : RII<0xA57,
-                      (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2),
-                      "nill\t{$dst, $src2}",
-                      [(set GR32:$dst, (and GR32:$src1, i32ll16c:$src2))]>;
-def AND64rill16 : RII<0xA57,
-                      (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                      "nill\t{$dst, $src2}",
-                      [(set GR64:$dst, (and GR64:$src1, i64ll16c:$src2))]>;
-
-def AND32rilh16 : RII<0xA56,
-                      (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2),
-                      "nilh\t{$dst, $src2}",
-                      [(set GR32:$dst, (and GR32:$src1, i32lh16c:$src2))]>;
-def AND64rilh16 : RII<0xA56,
-                      (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                      "nilh\t{$dst, $src2}",
-                      [(set GR64:$dst, (and GR64:$src1, i64lh16c:$src2))]>;
-
-def AND64rihl16 : RII<0xA55,
-                      (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                      "nihl\t{$dst, $src2}",
-                      [(set GR64:$dst, (and GR64:$src1, i64hl16c:$src2))]>;
-def AND64rihh16 : RII<0xA54,
-                      (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                      "nihh\t{$dst, $src2}",
-                      [(set GR64:$dst, (and GR64:$src1, i64hh16c:$src2))]>;
-
-def AND32ri     : RILI<0xC0B,
-                       (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2),
-                       "nilf\t{$dst, $src2}",
-                       [(set GR32:$dst, (and GR32:$src1, imm:$src2))]>;
-def AND64rilo32 : RILI<0xC0B,
-                       (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                       "nilf\t{$dst, $src2}",
-                       [(set GR64:$dst, (and GR64:$src1, i64lo32c:$src2))]>;
-def AND64rihi32 : RILI<0xC0A,
-                       (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                       "nihf\t{$dst, $src2}",
-                       [(set GR64:$dst, (and GR64:$src1, i64hi32c:$src2))]>;
-
-let isCommutable = 1 in { // X = OR Y, Z  == X = OR Z, Y
-def OR32rr : RRI<0x16,
-                 (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                 "or\t{$dst, $src2}",
-                 [(set GR32:$dst, (or GR32:$src1, GR32:$src2))]>;
-def OR64rr : RREI<0xB981,
-                  (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                  "ogr\t{$dst, $src2}",
-                  [(set GR64:$dst, (or GR64:$src1, GR64:$src2))]>;
-}
-
-def OR32rm   : RXI<0x56, (outs GR32:$dst), (ins GR32:$src1, rriaddr12:$src2),
-                   "o\t{$dst, $src2}",
-                   [(set GR32:$dst, (or GR32:$src1, (load rriaddr12:$src2))),
-                    (implicit PSW)]>;
-def OR32rmy  : RXYI<0xE356, (outs GR32:$dst), (ins GR32:$src1, rriaddr:$src2),
-                    "oy\t{$dst, $src2}",
-                    [(set GR32:$dst, (or GR32:$src1, (load rriaddr:$src2))),
-                     (implicit PSW)]>;
-def OR64rm   : RXYI<0xE381, (outs GR64:$dst), (ins GR64:$src1, rriaddr:$src2),
-                    "og\t{$dst, $src2}",
-                    [(set GR64:$dst, (or GR64:$src1, (load rriaddr:$src2))),
-                     (implicit PSW)]>;
-
- // FIXME: Provide proper encoding!
-def OR32ri16  : RII<0xA5B,
-                    (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2),
-                    "oill\t{$dst, $src2}",
-                    [(set GR32:$dst, (or GR32:$src1, i32ll16:$src2))]>;
-def OR32ri16h : RII<0xA5A,
-                    (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2),
-                    "oilh\t{$dst, $src2}",
-                    [(set GR32:$dst, (or GR32:$src1, i32lh16:$src2))]>;
-def OR32ri : RILI<0xC0D,
-                  (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2),
-                  "oilf\t{$dst, $src2}",
-                  [(set GR32:$dst, (or GR32:$src1, imm:$src2))]>;
-
-def OR64rill16 : RII<0xA5B,
-                     (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                     "oill\t{$dst, $src2}",
-                     [(set GR64:$dst, (or GR64:$src1, i64ll16:$src2))]>;
-def OR64rilh16 : RII<0xA5A,
-                     (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                     "oilh\t{$dst, $src2}",
-                     [(set GR64:$dst, (or GR64:$src1, i64lh16:$src2))]>;
-def OR64rihl16 : RII<0xA59,
-                     (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                     "oihl\t{$dst, $src2}",
-                     [(set GR64:$dst, (or GR64:$src1, i64hl16:$src2))]>;
-def OR64rihh16 : RII<0xA58,
-                     (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                     "oihh\t{$dst, $src2}",
-                     [(set GR64:$dst, (or GR64:$src1, i64hh16:$src2))]>;
-
-def OR64rilo32 : RILI<0xC0D,
-                      (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                      "oilf\t{$dst, $src2}",
-                      [(set GR64:$dst, (or GR64:$src1, i64lo32:$src2))]>;
-def OR64rihi32 : RILI<0xC0C,
-                      (outs GR64:$dst), (ins GR64:$src1, i64imm:$src2),
-                      "oihf\t{$dst, $src2}",
-                      [(set GR64:$dst, (or GR64:$src1, i64hi32:$src2))]>;
-
-def SUB32rr : RRI<0x1B,
-                  (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                  "sr\t{$dst, $src2}",
-                  [(set GR32:$dst, (sub GR32:$src1, GR32:$src2))]>;
-def SUB64rr : RREI<0xB909,
-                   (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                   "sgr\t{$dst, $src2}",
-                   [(set GR64:$dst, (sub GR64:$src1, GR64:$src2))]>;
-
-def SUB32rm   : RXI<0x5B, (outs GR32:$dst), (ins GR32:$src1, rriaddr12:$src2),
-                    "s\t{$dst, $src2}",
-                    [(set GR32:$dst, (sub GR32:$src1, (load rriaddr12:$src2))),
-                     (implicit PSW)]>;
-def SUB32rmy  : RXYI<0xE35B, (outs GR32:$dst), (ins GR32:$src1, rriaddr:$src2),
-                     "sy\t{$dst, $src2}",
-                     [(set GR32:$dst, (sub GR32:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
-def SUB64rm   : RXYI<0xE309, (outs GR64:$dst), (ins GR64:$src1, rriaddr:$src2),
-                     "sg\t{$dst, $src2}",
-                     [(set GR64:$dst, (sub GR64:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
- 
-def SBC32rr : RRI<0x1F,
-                  (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                  "slr\t{$dst, $src2}",
-                  [(set GR32:$dst, (subc GR32:$src1, GR32:$src2))]>;
-def SBC64rr : RREI<0xB90B,
-                   (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                   "slgr\t{$dst, $src2}",
-                   [(set GR64:$dst, (subc GR64:$src1, GR64:$src2))]>;
-
-def SBC32ri   : RILI<0xC25,
-                     (outs GR32:$dst), (ins GR32:$src1, s32imm:$src2),
-                     "sllfi\t{$dst, $src2}",
-                     [(set GR32:$dst, (subc GR32:$src1, imm:$src2))]>;
-def SBC64ri32 : RILI<0xC24,
-                     (outs GR64:$dst), (ins GR64:$src1, s32imm64:$src2),
-                     "slgfi\t{$dst, $src2}",
-                     [(set GR64:$dst, (subc GR64:$src1, immSExt32:$src2))]>;
-
-let Uses = [PSW] in {
-def SUBE32rr : RREI<0xB999, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                    "slbr\t{$dst, $src2}",
-                    [(set GR32:$dst, (sube GR32:$src1, GR32:$src2)),
-                     (implicit PSW)]>;
-def SUBE64rr : RREI<0xB989, (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                    "slbgr\t{$dst, $src2}",
-                    [(set GR64:$dst, (sube GR64:$src1, GR64:$src2)),
-                     (implicit PSW)]>;
-}
-
-let isCommutable = 1 in { // X = XOR Y, Z  == X = XOR Z, Y
-def XOR32rr : RRI<0x17,
-                  (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                  "xr\t{$dst, $src2}",
-                  [(set GR32:$dst, (xor GR32:$src1, GR32:$src2))]>;
-def XOR64rr : RREI<0xB982,
-                   (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                   "xgr\t{$dst, $src2}",
-                   [(set GR64:$dst, (xor GR64:$src1, GR64:$src2))]>;
-}
-
-def XOR32rm   : RXI<0x57,(outs GR32:$dst), (ins GR32:$src1, rriaddr12:$src2),
-                    "x\t{$dst, $src2}",
-                    [(set GR32:$dst, (xor GR32:$src1, (load rriaddr12:$src2))),
-                     (implicit PSW)]>;
-def XOR32rmy  : RXYI<0xE357, (outs GR32:$dst), (ins GR32:$src1, rriaddr:$src2),
-                     "xy\t{$dst, $src2}",
-                     [(set GR32:$dst, (xor GR32:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
-def XOR64rm   : RXYI<0xE382, (outs GR64:$dst), (ins GR64:$src1, rriaddr:$src2),
-                     "xg\t{$dst, $src2}",
-                     [(set GR64:$dst, (xor GR64:$src1, (load rriaddr:$src2))),
-                      (implicit PSW)]>;
-
-def XOR32ri : RILI<0xC07,
-                   (outs GR32:$dst), (ins GR32:$src1, i32imm:$src2),
-                   "xilf\t{$dst, $src2}",
-                   [(set GR32:$dst, (xor GR32:$src1, imm:$src2))]>;
-
-} // Defs = [PSW]
-
-let isCommutable = 1 in { // X = MUL Y, Z == X = MUL Z, Y
-def MUL32rr : RREI<0xB252,
-                   (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
-                   "msr\t{$dst, $src2}",
-                   [(set GR32:$dst, (mul GR32:$src1, GR32:$src2))]>;
-def MUL64rr : RREI<0xB90C,
-                   (outs GR64:$dst), (ins GR64:$src1, GR64:$src2),
-                   "msgr\t{$dst, $src2}",
-                   [(set GR64:$dst, (mul GR64:$src1, GR64:$src2))]>;
-}
-
-def MUL64rrP   : RRI<0x1C,
-                     (outs GR64P:$dst), (ins GR64P:$src1, GR32:$src2),
-                     "mr\t{$dst, $src2}",
-                     []>;
-def UMUL64rrP  : RREI<0xB996,
-                      (outs GR64P:$dst), (ins GR64P:$src1, GR32:$src2),
-                      "mlr\t{$dst, $src2}",
-                      []>;
-def UMUL128rrP : RREI<0xB986,
-                      (outs GR128:$dst), (ins GR128:$src1, GR64:$src2),
-                      "mlgr\t{$dst, $src2}",
-                      []>;
-
-def MUL32ri16   : RII<0xA7C,
-                      (outs GR32:$dst), (ins GR32:$src1, s16imm:$src2),
-                      "mhi\t{$dst, $src2}",
-                      [(set GR32:$dst, (mul GR32:$src1, i32immSExt16:$src2))]>;
-def MUL64ri16   : RII<0xA7D,
-                      (outs GR64:$dst), (ins GR64:$src1, s16imm64:$src2),
-                      "mghi\t{$dst, $src2}",
-                      [(set GR64:$dst, (mul GR64:$src1, immSExt16:$src2))]>;
-
-let AddedComplexity = 2 in {
-def MUL32ri     : RILI<0xC21,
-                       (outs GR32:$dst), (ins GR32:$src1, s32imm:$src2),
-                       "msfi\t{$dst, $src2}",
-                       [(set GR32:$dst, (mul GR32:$src1, imm:$src2))]>,
-                       Requires<[IsZ10]>;
-def MUL64ri32   : RILI<0xC20,
-                       (outs GR64:$dst), (ins GR64:$src1, s32imm64:$src2),
-                       "msgfi\t{$dst, $src2}",
-                       [(set GR64:$dst, (mul GR64:$src1, i64immSExt32:$src2))]>,
-                       Requires<[IsZ10]>;
-}
-
-def MUL32rm : RXI<0x71,
-                  (outs GR32:$dst), (ins GR32:$src1, rriaddr12:$src2),
-                  "ms\t{$dst, $src2}",
-                  [(set GR32:$dst, (mul GR32:$src1, (load rriaddr12:$src2)))]>;
-def MUL32rmy : RXYI<0xE351,
-                    (outs GR32:$dst), (ins GR32:$src1, rriaddr:$src2),
-                    "msy\t{$dst, $src2}",
-                    [(set GR32:$dst, (mul GR32:$src1, (load rriaddr:$src2)))]>;
-def MUL64rm  : RXYI<0xE30C,
-                    (outs GR64:$dst), (ins GR64:$src1, rriaddr:$src2),
-                    "msg\t{$dst, $src2}",
-                    [(set GR64:$dst, (mul GR64:$src1, (load rriaddr:$src2)))]>;
-
-def MULSX64rr32 : RREI<0xB91C,
-                       (outs GR64:$dst), (ins GR64:$src1, GR32:$src2),
-                       "msgfr\t{$dst, $src2}",
-                       [(set GR64:$dst, (mul GR64:$src1, (sext GR32:$src2)))]>;
-
-def SDIVREM32r : RREI<0xB91D,
-                      (outs GR128:$dst), (ins GR128:$src1, GR32:$src2),
-                      "dsgfr\t{$dst, $src2}",
-                      []>;
-def SDIVREM64r : RREI<0xB90D,
-                      (outs GR128:$dst), (ins GR128:$src1, GR64:$src2),
-                      "dsgr\t{$dst, $src2}",
-                      []>;
-
-def UDIVREM32r : RREI<0xB997,
-                      (outs GR64P:$dst), (ins GR64P:$src1, GR32:$src2),
-                      "dlr\t{$dst, $src2}",
-                      []>;
-def UDIVREM64r : RREI<0xB987,
-                      (outs GR128:$dst), (ins GR128:$src1, GR64:$src2),
-                      "dlgr\t{$dst, $src2}",
-                      []>;
-let mayLoad = 1 in {
-def SDIVREM32m : RXYI<0xE31D,
-                      (outs GR128:$dst), (ins GR128:$src1, rriaddr:$src2),
-                      "dsgf\t{$dst, $src2}",
-                      []>;
-def SDIVREM64m : RXYI<0xE30D,
-                      (outs GR128:$dst), (ins GR128:$src1, rriaddr:$src2),
-                      "dsg\t{$dst, $src2}",
-                      []>;
-
-def UDIVREM32m : RXYI<0xE397, (outs GR64P:$dst), (ins GR64P:$src1, rriaddr:$src2),
-                      "dl\t{$dst, $src2}",
-                      []>;
-def UDIVREM64m : RXYI<0xE387, (outs GR128:$dst), (ins GR128:$src1, rriaddr:$src2),
-                      "dlg\t{$dst, $src2}",
-                      []>;
-} // mayLoad
-} // isTwoAddress = 1
-
-//===----------------------------------------------------------------------===//
-// Shifts
-
-let isTwoAddress = 1 in
-def SRL32rri : RSI<0x88,
-                   (outs GR32:$dst), (ins GR32:$src, riaddr32:$amt),
-                   "srl\t{$src, $amt}",
-                   [(set GR32:$dst, (srl GR32:$src, riaddr32:$amt))]>;
-def SRL64rri : RSYI<0xEB0C,
-                    (outs GR64:$dst), (ins GR64:$src, riaddr:$amt),
-                    "srlg\t{$dst, $src, $amt}",
-                    [(set GR64:$dst, (srl GR64:$src, riaddr:$amt))]>;
-
-let isTwoAddress = 1 in
-def SHL32rri : RSI<0x89,
-                   (outs GR32:$dst), (ins GR32:$src, riaddr32:$amt),
-                   "sll\t{$src, $amt}",
-                   [(set GR32:$dst, (shl GR32:$src, riaddr32:$amt))]>;
-def SHL64rri : RSYI<0xEB0D,
-                    (outs GR64:$dst), (ins GR64:$src, riaddr:$amt),
-                    "sllg\t{$dst, $src, $amt}",
-                    [(set GR64:$dst, (shl GR64:$src, riaddr:$amt))]>;
-
-let Defs = [PSW] in {
-let isTwoAddress = 1 in
-def SRA32rri : RSI<0x8A,
-                   (outs GR32:$dst), (ins GR32:$src, riaddr32:$amt),
-                   "sra\t{$src, $amt}",
-                   [(set GR32:$dst, (sra GR32:$src, riaddr32:$amt)),
-                    (implicit PSW)]>;
-
-def SRA64rri : RSYI<0xEB0A,
-                    (outs GR64:$dst), (ins GR64:$src, riaddr:$amt),
-                    "srag\t{$dst, $src, $amt}",
-                    [(set GR64:$dst, (sra GR64:$src, riaddr:$amt)),
-                     (implicit PSW)]>;
-} // Defs = [PSW]
-
-def ROTL32rri : RSYI<0xEB1D,
-                     (outs GR32:$dst), (ins GR32:$src, riaddr32:$amt),
-                     "rll\t{$dst, $src, $amt}",
-                     [(set GR32:$dst, (rotl GR32:$src, riaddr32:$amt))]>;
-def ROTL64rri : RSYI<0xEB1C,
-                     (outs GR64:$dst), (ins GR64:$src, riaddr:$amt),
-                     "rllg\t{$dst, $src, $amt}",
-                     [(set GR64:$dst, (rotl GR64:$src, riaddr:$amt))]>;
-
-//===----------------------------------------------------------------------===//
-// Test instructions (like AND but do not produce any result)
-
-// Integer comparisons
-let Defs = [PSW] in {
-def CMP32rr : RRI<0x19,
-                  (outs), (ins GR32:$src1, GR32:$src2),
-                  "cr\t$src1, $src2",
-                  [(SystemZcmp GR32:$src1, GR32:$src2), 
-                   (implicit PSW)]>;
-def CMP64rr : RREI<0xB920,
-                   (outs), (ins GR64:$src1, GR64:$src2),
-                   "cgr\t$src1, $src2",
-                   [(SystemZcmp GR64:$src1, GR64:$src2), 
-                    (implicit PSW)]>;
-
-def CMP32ri   : RILI<0xC2D,
-                     (outs), (ins GR32:$src1, s32imm:$src2),
-                     "cfi\t$src1, $src2",
-                     [(SystemZcmp GR32:$src1, imm:$src2), 
-                      (implicit PSW)]>;
-def CMP64ri32 : RILI<0xC2C,
-                     (outs), (ins GR64:$src1, s32imm64:$src2),
-                     "cgfi\t$src1, $src2",
-                     [(SystemZcmp GR64:$src1, i64immSExt32:$src2),
-                      (implicit PSW)]>;
-
-def CMP32rm : RXI<0x59,
-                  (outs), (ins GR32:$src1, rriaddr12:$src2),
-                  "c\t$src1, $src2",
-                  [(SystemZcmp GR32:$src1, (load rriaddr12:$src2)),
-                   (implicit PSW)]>;
-def CMP32rmy : RXYI<0xE359,
-                    (outs), (ins GR32:$src1, rriaddr:$src2),
-                    "cy\t$src1, $src2",
-                    [(SystemZcmp GR32:$src1, (load rriaddr:$src2)),
-                     (implicit PSW)]>;
-def CMP64rm  : RXYI<0xE320,
-                    (outs), (ins GR64:$src1, rriaddr:$src2),
-                    "cg\t$src1, $src2",
-                    [(SystemZcmp GR64:$src1, (load rriaddr:$src2)),
-                     (implicit PSW)]>;
-
-def UCMP32rr : RRI<0x15,
-                   (outs), (ins GR32:$src1, GR32:$src2),
-                   "clr\t$src1, $src2",
-                   [(SystemZucmp GR32:$src1, GR32:$src2),
-                    (implicit PSW)]>;
-def UCMP64rr : RREI<0xB921,
-                    (outs), (ins GR64:$src1, GR64:$src2),
-                    "clgr\t$src1, $src2",
-                    [(SystemZucmp GR64:$src1, GR64:$src2), 
-                     (implicit PSW)]>;
-
-def UCMP32ri   : RILI<0xC2F,
-                      (outs), (ins GR32:$src1, i32imm:$src2),
-                      "clfi\t$src1, $src2",
-                      [(SystemZucmp GR32:$src1, imm:$src2),
-                       (implicit PSW)]>;
-def UCMP64ri32 : RILI<0xC2E,
-                      (outs), (ins GR64:$src1, i64i32imm:$src2),
-                      "clgfi\t$src1, $src2",
-                      [(SystemZucmp GR64:$src1, i64immZExt32:$src2),
-                       (implicit PSW)]>;
-
-def UCMP32rm  : RXI<0x55,
-                    (outs), (ins GR32:$src1, rriaddr12:$src2),
-                    "cl\t$src1, $src2",
-                    [(SystemZucmp GR32:$src1, (load rriaddr12:$src2)),
-                     (implicit PSW)]>;
-def UCMP32rmy : RXYI<0xE355,
-                     (outs), (ins GR32:$src1, rriaddr:$src2),
-                     "cly\t$src1, $src2",
-                     [(SystemZucmp GR32:$src1, (load rriaddr:$src2)),
-                      (implicit PSW)]>;
-def UCMP64rm  : RXYI<0xE351,
-                     (outs), (ins GR64:$src1, rriaddr:$src2),
-                     "clg\t$src1, $src2",
-                     [(SystemZucmp GR64:$src1, (load rriaddr:$src2)),
-                      (implicit PSW)]>;
-
-def CMPSX64rr32  : RREI<0xB930,
-                        (outs), (ins GR64:$src1, GR32:$src2),
-                        "cgfr\t$src1, $src2",
-                        [(SystemZucmp GR64:$src1, (sext GR32:$src2)),
-                         (implicit PSW)]>;
-def UCMPZX64rr32 : RREI<0xB931,
-                        (outs), (ins GR64:$src1, GR32:$src2),
-                        "clgfr\t$src1, $src2",
-                        [(SystemZucmp GR64:$src1, (zext GR32:$src2)),
-                         (implicit PSW)]>;
-
-def CMPSX64rm32   : RXYI<0xE330,
-                         (outs), (ins GR64:$src1, rriaddr:$src2),
-                         "cgf\t$src1, $src2",
-                         [(SystemZucmp GR64:$src1, (sextloadi64i32 rriaddr:$src2)),
-                          (implicit PSW)]>;
-def UCMPZX64rm32  : RXYI<0xE331,
-                         (outs), (ins GR64:$src1, rriaddr:$src2),
-                         "clgf\t$src1, $src2",
-                         [(SystemZucmp GR64:$src1, (zextloadi64i32 rriaddr:$src2)),
-                          (implicit PSW)]>;
-
-// FIXME: Add other crazy ucmp forms
-
-} // Defs = [PSW]
-
-//===----------------------------------------------------------------------===//
-// Other crazy stuff
-let Defs = [PSW] in {
-def FLOGR64 : RREI<0xB983,
-                   (outs GR128:$dst), (ins GR64:$src),
-                   "flogr\t{$dst, $src}",
-                   []>;
-} // Defs = [PSW]
-
-//===----------------------------------------------------------------------===//
-// Non-Instruction Patterns.
-//===----------------------------------------------------------------------===//
-
-// ConstPools, JumpTables
-def : Pat<(SystemZpcrelwrapper tjumptable:$src), (LA64rm tjumptable:$src)>;
-def : Pat<(SystemZpcrelwrapper tconstpool:$src), (LA64rm tconstpool:$src)>;
-
-// anyext
-def : Pat<(i64 (anyext GR32:$src)),
-          (INSERT_SUBREG (i64 (IMPLICIT_DEF)), GR32:$src, subreg_32bit)>;
-
-// calls
-def : Pat<(SystemZcall (i64 tglobaladdr:$dst)), (CALLi tglobaladdr:$dst)>;
-def : Pat<(SystemZcall (i64 texternalsym:$dst)), (CALLi texternalsym:$dst)>;
-
-//===----------------------------------------------------------------------===//
-// Peepholes.
-//===----------------------------------------------------------------------===//
-
-// FIXME: use add/sub tricks with 32678/-32768
-
-// Arbitrary immediate support.
-def : Pat<(i32 imm:$src),
-          (EXTRACT_SUBREG (MOV64ri32 (i64 imm:$src)), subreg_32bit)>;
-
-// Implement in terms of LLIHF/OILF.
-def : Pat<(i64 imm:$imm),
-          (OR64rilo32 (MOV64rihi32 (HI32 imm:$imm)), (LO32 imm:$imm))>;
-
-// trunc patterns
-def : Pat<(i32 (trunc GR64:$src)),
-          (EXTRACT_SUBREG GR64:$src, subreg_32bit)>;
-
-// sext_inreg patterns
-def : Pat<(sext_inreg GR64:$src, i32),
-          (MOVSX64rr32 (EXTRACT_SUBREG GR64:$src, subreg_32bit))>;
-
-// extload patterns
-def : Pat<(extloadi32i8  rriaddr:$src), (MOVZX32rm8  rriaddr:$src)>;
-def : Pat<(extloadi32i16 rriaddr:$src), (MOVZX32rm16 rriaddr:$src)>;
-def : Pat<(extloadi64i8  rriaddr:$src), (MOVZX64rm8  rriaddr:$src)>;
-def : Pat<(extloadi64i16 rriaddr:$src), (MOVZX64rm16 rriaddr:$src)>;
-def : Pat<(extloadi64i32 rriaddr:$src), (MOVZX64rm32 rriaddr:$src)>;
-
-// muls
-def : Pat<(mulhs GR32:$src1, GR32:$src2),
-          (EXTRACT_SUBREG (MUL64rrP (INSERT_SUBREG (v2i32 (IMPLICIT_DEF)),
-                                                   GR32:$src1, subreg_odd32),
-                                    GR32:$src2),
-                          subreg_even32)>;
-
-def : Pat<(mulhu GR32:$src1, GR32:$src2),
-          (EXTRACT_SUBREG (UMUL64rrP (INSERT_SUBREG (v2i32 (IMPLICIT_DEF)),
-                                                    GR32:$src1, subreg_odd32),
-                                     GR32:$src2),
-                          subreg_even32)>;
-def : Pat<(mulhu GR64:$src1, GR64:$src2),
-          (EXTRACT_SUBREG (UMUL128rrP (INSERT_SUBREG (v2i64 (IMPLICIT_DEF)),
-                                                     GR64:$src1, subreg_odd),
-                                      GR64:$src2),
-                          subreg_even)>;
-
-def : Pat<(ctlz GR64:$src),
-          (EXTRACT_SUBREG (FLOGR64 GR64:$src), subreg_even)>;
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.cpp
deleted file mode 100644
index 8ea11c9..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- SystemZMCAsmInfo.cpp - SystemZ asm properties ---------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declarations of the SystemZMCAsmInfo properties.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SystemZMCAsmInfo.h"
-using namespace llvm;
-
-SystemZMCAsmInfo::SystemZMCAsmInfo(const Target &T, const StringRef &TT) {
-  AlignmentIsInBytes = true;
-
-  PrivateGlobalPrefix = ".L";
-  WeakRefDirective = "\t.weak\t";
-  SetDirective = "\t.set\t";
-  PCSymbol = ".";
-
-  NonexecutableStackDirective = "\t.section\t.note.GNU-stack,\"\", at progbits";
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.h
deleted file mode 100644
index 3bebcb7..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.h
+++ /dev/null
@@ -1,29 +0,0 @@
-//====-- SystemZMCAsmInfo.h - SystemZ asm properties -----------*- C++ -*--===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the SystemZMCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SystemZTARGETASMINFO_H
-#define SystemZTARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-
-  struct SystemZMCAsmInfo : public MCAsmInfo {
-    explicit SystemZMCAsmInfo(const Target &T, const StringRef &TT);
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h
deleted file mode 100644
index e47d419..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//==- SystemZMachineFuctionInfo.h - SystemZ machine function info -*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares SystemZ-specific per-machine-function information.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SYSTEMZMACHINEFUNCTIONINFO_H
-#define SYSTEMZMACHINEFUNCTIONINFO_H
-
-#include "llvm/CodeGen/MachineFunction.h"
-
-namespace llvm {
-
-/// SystemZMachineFunctionInfo - This class is derived from MachineFunction and
-/// contains private SystemZ target-specific information for each MachineFunction.
-class SystemZMachineFunctionInfo : public MachineFunctionInfo {
-  /// CalleeSavedFrameSize - Size of the callee-saved register portion of the
-  /// stack frame in bytes.
-  unsigned CalleeSavedFrameSize;
-
-  /// LowReg - Low register of range of callee-saved registers to store.
-  unsigned LowReg;
-
-  /// HighReg - High register of range of callee-saved registers to store.
-  unsigned HighReg;
-public:
-  SystemZMachineFunctionInfo() : CalleeSavedFrameSize(0) {}
-
-  SystemZMachineFunctionInfo(MachineFunction &MF) : CalleeSavedFrameSize(0) {}
-
-  unsigned getCalleeSavedFrameSize() const { return CalleeSavedFrameSize; }
-  void setCalleeSavedFrameSize(unsigned bytes) { CalleeSavedFrameSize = bytes; }
-
-  unsigned getLowReg() const { return LowReg; }
-  void setLowReg(unsigned Reg) { LowReg = Reg; }
-
-  unsigned getHighReg() const { return HighReg; }
-  void setHighReg(unsigned Reg) { HighReg = Reg; }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZOperands.td b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZOperands.td
deleted file mode 100644
index 156cace..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZOperands.td
+++ /dev/null
@@ -1,306 +0,0 @@
-//=====- SystemZOperands.td - SystemZ Operands defs ---------*- tblgen-*-=====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source 
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file describes the various SystemZ instruction operands.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Instruction Pattern Stuff.
-//===----------------------------------------------------------------------===//
-
-// SystemZ specific condition code. These correspond to CondCode in
-// SystemZ.h. They must be kept in synch.
-def SYSTEMZ_COND_O   : PatLeaf<(i8 0)>;
-def SYSTEMZ_COND_H   : PatLeaf<(i8 1)>;
-def SYSTEMZ_COND_NLE : PatLeaf<(i8 2)>;
-def SYSTEMZ_COND_L   : PatLeaf<(i8 3)>;
-def SYSTEMZ_COND_NHE : PatLeaf<(i8 4)>;
-def SYSTEMZ_COND_LH  : PatLeaf<(i8 5)>;
-def SYSTEMZ_COND_NE  : PatLeaf<(i8 6)>;
-def SYSTEMZ_COND_E   : PatLeaf<(i8 7)>;
-def SYSTEMZ_COND_NLH : PatLeaf<(i8 8)>;
-def SYSTEMZ_COND_HE  : PatLeaf<(i8 9)>;
-def SYSTEMZ_COND_NL  : PatLeaf<(i8 10)>;
-def SYSTEMZ_COND_LE  : PatLeaf<(i8 11)>;
-def SYSTEMZ_COND_NH  : PatLeaf<(i8 12)>;
-def SYSTEMZ_COND_NO  : PatLeaf<(i8 13)>;
-
-def LO8 : SDNodeXForm<imm, [{
-  // Transformation function: return low 8 bits.
-  return getI8Imm(N->getZExtValue() & 0x00000000000000FFULL);
-}]>;
-
-def LL16 : SDNodeXForm<imm, [{
-  // Transformation function: return low 16 bits.
-  return getI16Imm(N->getZExtValue() & 0x000000000000FFFFULL);
-}]>;
-
-def LH16 : SDNodeXForm<imm, [{
-  // Transformation function: return bits 16-31.
-  return getI16Imm((N->getZExtValue() & 0x00000000FFFF0000ULL) >> 16);
-}]>;
-
-def HL16 : SDNodeXForm<imm, [{
-  // Transformation function: return bits 32-47.
-  return getI16Imm((N->getZExtValue() & 0x0000FFFF00000000ULL) >> 32);
-}]>;
-
-def HH16 : SDNodeXForm<imm, [{
-  // Transformation function: return bits 48-63.
-  return getI16Imm((N->getZExtValue() & 0xFFFF000000000000ULL) >> 48);
-}]>;
-
-def LO32 : SDNodeXForm<imm, [{
-  // Transformation function: return low 32 bits.
-  return getI32Imm(N->getZExtValue() & 0x00000000FFFFFFFFULL);
-}]>;
-
-def HI32 : SDNodeXForm<imm, [{
-  // Transformation function: return bits 32-63.
-  return getI32Imm(N->getZExtValue() >> 32);
-}]>;
-
-def i32ll16 : PatLeaf<(i32 imm), [{
-  // i32ll16 predicate - true if the 32-bit immediate has only rightmost 16
-  // bits set.
-  return ((N->getZExtValue() & 0x000000000000FFFFULL) == N->getZExtValue());
-}], LL16>;
-
-def i32lh16 : PatLeaf<(i32 imm), [{
-  // i32lh16 predicate - true if the 32-bit immediate has only bits 16-31 set.
-  return ((N->getZExtValue() & 0x00000000FFFF0000ULL) == N->getZExtValue());
-}], LH16>;
-
-def i32ll16c : PatLeaf<(i32 imm), [{
-  // i32ll16c predicate - true if the 32-bit immediate has all bits 16-31 set.
-  return ((N->getZExtValue() | 0x00000000FFFF0000ULL) == N->getZExtValue());
-}], LL16>;
-
-def i32lh16c : PatLeaf<(i32 imm), [{
-  // i32lh16c predicate - true if the 32-bit immediate has all rightmost 16
-  //  bits set.
-  return ((N->getZExtValue() | 0x000000000000FFFFULL) == N->getZExtValue());
-}], LH16>;
-
-def i64ll16 : PatLeaf<(i64 imm), [{  
-  // i64ll16 predicate - true if the 64-bit immediate has only rightmost 16
-  // bits set.
-  return ((N->getZExtValue() & 0x000000000000FFFFULL) == N->getZExtValue());
-}], LL16>;
-
-def i64lh16 : PatLeaf<(i64 imm), [{  
-  // i64lh16 predicate - true if the 64-bit immediate has only bits 16-31 set.
-  return ((N->getZExtValue() & 0x00000000FFFF0000ULL) == N->getZExtValue());
-}], LH16>;
-
-def i64hl16 : PatLeaf<(i64 imm), [{  
-  // i64hl16 predicate - true if the 64-bit immediate has only bits 32-47 set.
-  return ((N->getZExtValue() & 0x0000FFFF00000000ULL) == N->getZExtValue());
-}], HL16>;
-
-def i64hh16 : PatLeaf<(i64 imm), [{  
-  // i64hh16 predicate - true if the 64-bit immediate has only bits 48-63 set.
-  return ((N->getZExtValue() & 0xFFFF000000000000ULL) == N->getZExtValue());
-}], HH16>;
-
-def i64ll16c : PatLeaf<(i64 imm), [{  
-  // i64ll16c predicate - true if the 64-bit immediate has only rightmost 16
-  // bits set.
-  return ((N->getZExtValue() | 0xFFFFFFFFFFFF0000ULL) == N->getZExtValue());
-}], LL16>;
-
-def i64lh16c : PatLeaf<(i64 imm), [{  
-  // i64lh16c predicate - true if the 64-bit immediate has only bits 16-31 set.
-  return ((N->getZExtValue() | 0xFFFFFFFF0000FFFFULL) == N->getZExtValue());
-}], LH16>;
-
-def i64hl16c : PatLeaf<(i64 imm), [{  
-  // i64hl16c predicate - true if the 64-bit immediate has only bits 32-47 set.
-  return ((N->getZExtValue() | 0xFFFF0000FFFFFFFFULL) == N->getZExtValue());
-}], HL16>;
-
-def i64hh16c : PatLeaf<(i64 imm), [{  
-  // i64hh16c predicate - true if the 64-bit immediate has only bits 48-63 set.
-  return ((N->getZExtValue() | 0x0000FFFFFFFFFFFFULL) == N->getZExtValue());
-}], HH16>;
-
-def immSExt16 : PatLeaf<(imm), [{
-  // immSExt16 predicate - true if the immediate fits in a 16-bit sign extended
-  // field.
-  if (N->getValueType(0) == MVT::i64) {
-    uint64_t val = N->getZExtValue();
-    return ((int64_t)val == (int16_t)val);
-  } else if (N->getValueType(0) == MVT::i32) {
-    uint32_t val = N->getZExtValue();
-    return ((int32_t)val == (int16_t)val);
-  }
-
-  return false;
-}], LL16>;
-
-def immSExt32 : PatLeaf<(i64 imm), [{
-  // immSExt32 predicate - true if the immediate fits in a 32-bit sign extended
-  // field.
-  uint64_t val = N->getZExtValue();
-  return ((int64_t)val == (int32_t)val);
-}], LO32>;
-
-def i64lo32 : PatLeaf<(i64 imm), [{
-  // i64lo32 predicate - true if the 64-bit immediate has only rightmost 32
-  // bits set.
-  return ((N->getZExtValue() & 0x00000000FFFFFFFFULL) == N->getZExtValue());
-}], LO32>;
-
-def i64hi32 : PatLeaf<(i64 imm), [{
-  // i64hi32 predicate - true if the 64-bit immediate has only bits 32-63 set.
-  return ((N->getZExtValue() & 0xFFFFFFFF00000000ULL) == N->getZExtValue());
-}], HI32>;
-
-def i64lo32c : PatLeaf<(i64 imm), [{
-  // i64lo32 predicate - true if the 64-bit immediate has only rightmost 32
-  // bits set.
-  return ((N->getZExtValue() | 0xFFFFFFFF00000000ULL) == N->getZExtValue());
-}], LO32>;
-
-def i64hi32c : PatLeaf<(i64 imm), [{
-  // i64hi32 predicate - true if the 64-bit immediate has only bits 32-63 set.
-  return ((N->getZExtValue() | 0x00000000FFFFFFFFULL) == N->getZExtValue());
-}], HI32>;
-
-def i32immSExt8  : PatLeaf<(i32 imm), [{
-  // i32immSExt8 predicate - True if the 32-bit immediate fits in a 8-bit
-  // sign extended field.
-  return (int32_t)N->getZExtValue() == (int8_t)N->getZExtValue();
-}], LO8>;
-
-def i32immSExt16 : PatLeaf<(i32 imm), [{
-  // i32immSExt16 predicate - True if the 32-bit immediate fits in a 16-bit
-  // sign extended field.
-  return (int32_t)N->getZExtValue() == (int16_t)N->getZExtValue();
-}], LL16>;
-
-def i64immSExt32 : PatLeaf<(i64 imm), [{
-  // i64immSExt32 predicate - True if the 64-bit immediate fits in a 32-bit
-  // sign extended field.
-  return (int64_t)N->getZExtValue() == (int32_t)N->getZExtValue();
-}], LO32>;
-
-def i64immZExt32 : PatLeaf<(i64 imm), [{
-  // i64immZExt32 predicate - True if the 64-bit immediate fits in a 32-bit
-  // zero extended field.
-  return (uint64_t)N->getZExtValue() == (uint32_t)N->getZExtValue();
-}], LO32>;
-
-// extloads
-def extloadi32i8   : PatFrag<(ops node:$ptr), (i32 (extloadi8  node:$ptr))>;
-def extloadi32i16  : PatFrag<(ops node:$ptr), (i32 (extloadi16 node:$ptr))>;
-def extloadi64i8   : PatFrag<(ops node:$ptr), (i64 (extloadi8  node:$ptr))>;
-def extloadi64i16  : PatFrag<(ops node:$ptr), (i64 (extloadi16 node:$ptr))>;
-def extloadi64i32  : PatFrag<(ops node:$ptr), (i64 (extloadi32 node:$ptr))>;
-
-def sextloadi32i8   : PatFrag<(ops node:$ptr), (i32 (sextloadi8  node:$ptr))>;
-def sextloadi32i16  : PatFrag<(ops node:$ptr), (i32 (sextloadi16 node:$ptr))>;
-def sextloadi64i8   : PatFrag<(ops node:$ptr), (i64 (sextloadi8  node:$ptr))>;
-def sextloadi64i16  : PatFrag<(ops node:$ptr), (i64 (sextloadi16 node:$ptr))>;
-def sextloadi64i32  : PatFrag<(ops node:$ptr), (i64 (sextloadi32 node:$ptr))>;
-
-def zextloadi32i8   : PatFrag<(ops node:$ptr), (i32 (zextloadi8  node:$ptr))>;
-def zextloadi32i16  : PatFrag<(ops node:$ptr), (i32 (zextloadi16 node:$ptr))>;
-def zextloadi64i8   : PatFrag<(ops node:$ptr), (i64 (zextloadi8  node:$ptr))>;
-def zextloadi64i16  : PatFrag<(ops node:$ptr), (i64 (zextloadi16 node:$ptr))>;
-def zextloadi64i32  : PatFrag<(ops node:$ptr), (i64 (zextloadi32 node:$ptr))>;
-
-// A couple of more descriptive operand definitions.
-// 32-bits but only 8 bits are significant.
-def i32i8imm  : Operand<i32>;
-// 32-bits but only 16 bits are significant.
-def i32i16imm : Operand<i32>;
-// 64-bits but only 32 bits are significant.
-def i64i32imm : Operand<i64>;
-// Branch targets have OtherVT type.
-def brtarget : Operand<OtherVT>;
-
-// Unsigned i12
-def u12imm : Operand<i32> {
-  let PrintMethod = "printU12ImmOperand";
-}
-def u12imm64 : Operand<i64> {
-  let PrintMethod = "printU12ImmOperand";
-}
-
-// Signed i16
-def s16imm : Operand<i32> {
-  let PrintMethod = "printS16ImmOperand";
-}
-def s16imm64 : Operand<i64> {
-  let PrintMethod = "printS16ImmOperand";
-}
-// Signed i20
-def s20imm : Operand<i32> {
-  let PrintMethod = "printS20ImmOperand";
-}
-def s20imm64 : Operand<i64> {
-  let PrintMethod = "printS20ImmOperand";
-}
-// Signed i32
-def s32imm : Operand<i32> {
-  let PrintMethod = "printS32ImmOperand";
-}
-def s32imm64 : Operand<i64> {
-  let PrintMethod = "printS32ImmOperand";
-}
-
-def imm_pcrel : Operand<i64> {
-  let PrintMethod = "printPCRelImmOperand";
-}
-
-//===----------------------------------------------------------------------===//
-// SystemZ Operand Definitions.
-//===----------------------------------------------------------------------===//
-
-// Address operands
-
-// riaddr := reg + imm
-def riaddr32 : Operand<i64>,
-               ComplexPattern<i64, 2, "SelectAddrRI12Only", []> {
-  let PrintMethod = "printRIAddrOperand";
-  let MIOperandInfo = (ops ADDR64:$base, u12imm:$disp);
-}
-
-def riaddr12 : Operand<i64>,
-               ComplexPattern<i64, 2, "SelectAddrRI12", []> {
-  let PrintMethod = "printRIAddrOperand";
-  let MIOperandInfo = (ops ADDR64:$base, u12imm64:$disp);
-}
-
-def riaddr : Operand<i64>,
-             ComplexPattern<i64, 2, "SelectAddrRI", []> {
-  let PrintMethod = "printRIAddrOperand";
-  let MIOperandInfo = (ops ADDR64:$base, s20imm64:$disp);
-}
-
-//===----------------------------------------------------------------------===//
-
-// rriaddr := reg + reg + imm
-def rriaddr12 : Operand<i64>,
-                ComplexPattern<i64, 3, "SelectAddrRRI12", [], []> {
-  let PrintMethod = "printRRIAddrOperand";
-  let MIOperandInfo = (ops ADDR64:$base, u12imm64:$disp, ADDR64:$index);
-}
-def rriaddr : Operand<i64>,
-              ComplexPattern<i64, 3, "SelectAddrRRI20", [], []> {
-  let PrintMethod = "printRRIAddrOperand";
-  let MIOperandInfo = (ops ADDR64:$base, s20imm64:$disp, ADDR64:$index);
-}
-def laaddr : Operand<i64>,
-             ComplexPattern<i64, 3, "SelectLAAddr", [add, sub, or, frameindex], []> {
-  let PrintMethod = "printRRIAddrOperand";
-  let MIOperandInfo = (ops ADDR64:$base, s20imm64:$disp, ADDR64:$index);
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
deleted file mode 100644
index 643d681..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
+++ /dev/null
@@ -1,341 +0,0 @@
-//===- SystemZRegisterInfo.cpp - SystemZ Register Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the SystemZ implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SystemZ.h"
-#include "SystemZInstrInfo.h"
-#include "SystemZMachineFunctionInfo.h"
-#include "SystemZRegisterInfo.h"
-#include "SystemZSubtarget.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/ADT/BitVector.h"
-using namespace llvm;
-
-SystemZRegisterInfo::SystemZRegisterInfo(SystemZTargetMachine &tm,
-                                         const SystemZInstrInfo &tii)
-  : SystemZGenRegisterInfo(SystemZ::ADJCALLSTACKUP, SystemZ::ADJCALLSTACKDOWN),
-    TM(tm), TII(tii) {
-}
-
-const unsigned*
-SystemZRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
-  static const unsigned CalleeSavedRegs[] = {
-    SystemZ::R6D,  SystemZ::R7D,  SystemZ::R8D,  SystemZ::R9D,
-    SystemZ::R10D, SystemZ::R11D, SystemZ::R12D, SystemZ::R13D,
-    SystemZ::R14D, SystemZ::R15D,
-    SystemZ::F8L,  SystemZ::F9L,  SystemZ::F10L, SystemZ::F11L,
-    SystemZ::F12L, SystemZ::F13L, SystemZ::F14L, SystemZ::F15L,
-    0
-  };
-
-  return CalleeSavedRegs;
-}
-
-const TargetRegisterClass* const*
-SystemZRegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const {
-  static const TargetRegisterClass * const CalleeSavedRegClasses[] = {
-    &SystemZ::GR64RegClass, &SystemZ::GR64RegClass,
-    &SystemZ::GR64RegClass, &SystemZ::GR64RegClass,
-    &SystemZ::GR64RegClass, &SystemZ::GR64RegClass,
-    &SystemZ::GR64RegClass, &SystemZ::GR64RegClass,
-    &SystemZ::GR64RegClass, &SystemZ::GR64RegClass,
-    &SystemZ::FP64RegClass, &SystemZ::FP64RegClass,
-    &SystemZ::FP64RegClass, &SystemZ::FP64RegClass,
-    &SystemZ::FP64RegClass, &SystemZ::FP64RegClass,
-    &SystemZ::FP64RegClass, &SystemZ::FP64RegClass, 0
-  };
-  return CalleeSavedRegClasses;
-}
-
-BitVector SystemZRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  BitVector Reserved(getNumRegs());
-  if (hasFP(MF))
-    Reserved.set(SystemZ::R11D);
-  Reserved.set(SystemZ::R14D);
-  Reserved.set(SystemZ::R15D);
-  return Reserved;
-}
-
-/// needsFP - Return true if the specified function should have a dedicated
-/// frame pointer register.  This is true if the function has variable sized
-/// allocas or if frame pointer elimination is disabled.
-bool SystemZRegisterInfo::hasFP(const MachineFunction &MF) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  return NoFramePointerElim || MFI->hasVarSizedObjects();
-}
-
-void SystemZRegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  MBB.erase(I);
-}
-
-int SystemZRegisterInfo::getFrameIndexOffset(MachineFunction &MF, int FI) const {
-  const TargetFrameInfo &TFI = *MF.getTarget().getFrameInfo();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  SystemZMachineFunctionInfo *SystemZMFI =
-    MF.getInfo<SystemZMachineFunctionInfo>();
-  int Offset = MFI->getObjectOffset(FI) + MFI->getOffsetAdjustment();
-  uint64_t StackSize = MFI->getStackSize();
-
-  // Fixed objects are really located in the "previous" frame.
-  if (FI < 0)
-    StackSize -= SystemZMFI->getCalleeSavedFrameSize();
-
-  Offset += StackSize - TFI.getOffsetOfLocalArea();
-
-  // Skip the register save area if we generated the stack frame.
-  if (StackSize || MFI->hasCalls())
-    Offset -= TFI.getOffsetOfLocalArea();
-
-  return Offset;
-}
-
-void SystemZRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
-                                            int SPAdj, RegScavenger *RS) const {
-  assert(SPAdj == 0 && "Unxpected");
-
-  unsigned i = 0;
-  MachineInstr &MI = *II;
-  MachineFunction &MF = *MI.getParent()->getParent();
-  while (!MI.getOperand(i).isFI()) {
-    ++i;
-    assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
-  }
-
-  int FrameIndex = MI.getOperand(i).getIndex();
-
-  unsigned BasePtr = (hasFP(MF) ? SystemZ::R11D : SystemZ::R15D);
-
-  // This must be part of a rri or ri operand memory reference.  Replace the
-  // FrameIndex with base register with BasePtr.  Add an offset to the
-  // displacement field.
-  MI.getOperand(i).ChangeToRegister(BasePtr, false);
-
-  // Offset is a either 12-bit unsigned or 20-bit signed integer.
-  // FIXME: handle "too long" displacements.
-  int Offset = getFrameIndexOffset(MF, FrameIndex) + MI.getOperand(i+1).getImm();
-
-  // Check whether displacement is too long to fit into 12 bit zext field.
-  MI.setDesc(TII.getMemoryInstr(MI.getOpcode(), Offset));
-
-  MI.getOperand(i+1).ChangeToImmediate(Offset);
-}
-
-void
-SystemZRegisterInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                                       RegScavenger *RS) const {
-  // Determine whether R15/R14 will ever be clobbered inside the function. And
-  // if yes - mark it as 'callee' saved.
-  MachineFrameInfo *FFI = MF.getFrameInfo();
-  MachineRegisterInfo &MRI = MF.getRegInfo();
-
-  // Check whether high FPRs are ever used, if yes - we need to save R15 as
-  // well.
-  static const unsigned HighFPRs[] = {
-    SystemZ::F8L,  SystemZ::F9L,  SystemZ::F10L, SystemZ::F11L,
-    SystemZ::F12L, SystemZ::F13L, SystemZ::F14L, SystemZ::F15L,
-    SystemZ::F8S,  SystemZ::F9S,  SystemZ::F10S, SystemZ::F11S,
-    SystemZ::F12S, SystemZ::F13S, SystemZ::F14S, SystemZ::F15S,
-  };
-
-  bool HighFPRsUsed = false;
-  for (unsigned i = 0, e = array_lengthof(HighFPRs); i != e; ++i)
-    HighFPRsUsed |= MRI.isPhysRegUsed(HighFPRs[i]);
-
-  if (FFI->hasCalls())
-    /* FIXME: function is varargs */
-    /* FIXME: function grabs RA */
-    /* FIXME: function calls eh_return */
-    MRI.setPhysRegUsed(SystemZ::R14D);
-
-  if (HighFPRsUsed ||
-      FFI->hasCalls() ||
-      FFI->getObjectIndexEnd() != 0 || // Contains automatic variables
-      FFI->hasVarSizedObjects() // Function calls dynamic alloca's
-      /* FIXME: function is varargs */)
-    MRI.setPhysRegUsed(SystemZ::R15D);
-}
-
-/// emitSPUpdate - Emit a series of instructions to increment / decrement the
-/// stack pointer by a constant value.
-static
-void emitSPUpdate(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI,
-                  int64_t NumBytes, const TargetInstrInfo &TII) {
-  unsigned Opc; uint64_t Chunk;
-  bool isSub = NumBytes < 0;
-  uint64_t Offset = isSub ? -NumBytes : NumBytes;
-
-  if (Offset >= (1LL << 15) - 1) {
-    Opc = SystemZ::ADD64ri32;
-    Chunk = (1LL << 31) - 1;
-  } else {
-    Opc = SystemZ::ADD64ri16;
-    Chunk = (1LL << 15) - 1;
-  }
-
-  DebugLoc DL = (MBBI != MBB.end() ? MBBI->getDebugLoc() :
-                 DebugLoc::getUnknownLoc());
-
-  while (Offset) {
-    uint64_t ThisVal = (Offset > Chunk) ? Chunk : Offset;
-    MachineInstr *MI =
-      BuildMI(MBB, MBBI, DL, TII.get(Opc), SystemZ::R15D)
-      .addReg(SystemZ::R15D).addImm((isSub ? -(int64_t)ThisVal : ThisVal));
-    // The PSW implicit def is dead.
-    MI->getOperand(3).setIsDead();
-    Offset -= ThisVal;
-  }
-}
-
-void SystemZRegisterInfo::emitPrologue(MachineFunction &MF) const {
-  MachineBasicBlock &MBB = MF.front();   // Prolog goes in entry BB
-  const TargetFrameInfo &TFI = *MF.getTarget().getFrameInfo();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  SystemZMachineFunctionInfo *SystemZMFI =
-    MF.getInfo<SystemZMachineFunctionInfo>();
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  DebugLoc DL = (MBBI != MBB.end() ? MBBI->getDebugLoc() :
-                 DebugLoc::getUnknownLoc());
-
-  // Get the number of bytes to allocate from the FrameInfo.
-  // Note that area for callee-saved stuff is already allocated, thus we need to
-  // 'undo' the stack movement.
-  uint64_t StackSize = MFI->getStackSize();
-  StackSize -= SystemZMFI->getCalleeSavedFrameSize();
-
-  uint64_t NumBytes = StackSize - TFI.getOffsetOfLocalArea();
-
-  // Skip the callee-saved push instructions.
-  while (MBBI != MBB.end() &&
-         (MBBI->getOpcode() == SystemZ::MOV64mr ||
-          MBBI->getOpcode() == SystemZ::MOV64mrm))
-    ++MBBI;
-
-  if (MBBI != MBB.end())
-    DL = MBBI->getDebugLoc();
-
-  // adjust stack pointer: R15 -= numbytes
-  if (StackSize || MFI->hasCalls()) {
-    assert(MF.getRegInfo().isPhysRegUsed(SystemZ::R15D) &&
-           "Invalid stack frame calculation!");
-    emitSPUpdate(MBB, MBBI, -(int64_t)NumBytes, TII);
-  }
-
-  if (hasFP(MF)) {
-    // Update R11 with the new base value...
-    BuildMI(MBB, MBBI, DL, TII.get(SystemZ::MOV64rr), SystemZ::R11D)
-      .addReg(SystemZ::R15D);
-
-    // Mark the FramePtr as live-in in every block except the entry.
-    for (MachineFunction::iterator I = next(MF.begin()), E = MF.end();
-         I != E; ++I)
-      I->addLiveIn(SystemZ::R11D);
-
-  }
-}
-
-void SystemZRegisterInfo::emitEpilogue(MachineFunction &MF,
-                                     MachineBasicBlock &MBB) const {
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  const TargetFrameInfo &TFI = *MF.getTarget().getFrameInfo();
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  SystemZMachineFunctionInfo *SystemZMFI =
-    MF.getInfo<SystemZMachineFunctionInfo>();
-  unsigned RetOpcode = MBBI->getOpcode();
-  DebugLoc DL = MBBI->getDebugLoc();
-
-  switch (RetOpcode) {
-  case SystemZ::RET: break;  // These are ok
-  default:
-    assert(0 && "Can only insert epilog into returning blocks");
-  }
-
-  // Get the number of bytes to allocate from the FrameInfo
-  // Note that area for callee-saved stuff is already allocated, thus we need to
-  // 'undo' the stack movement.
-  uint64_t StackSize =
-    MFI->getStackSize() - SystemZMFI->getCalleeSavedFrameSize();
-  uint64_t NumBytes = StackSize - TFI.getOffsetOfLocalArea();
-
-  // Skip the final terminator instruction.
-  while (MBBI != MBB.begin()) {
-    MachineBasicBlock::iterator PI = prior(MBBI);
-    --MBBI;
-    if (!PI->getDesc().isTerminator())
-      break;
-  }
-
-  // During callee-saved restores emission stack frame was not yet finialized
-  // (and thus - the stack size was unknown). Tune the offset having full stack
-  // size in hands.
-  if (StackSize || MFI->hasCalls()) {
-    assert((MBBI->getOpcode() == SystemZ::MOV64rmm ||
-            MBBI->getOpcode() == SystemZ::MOV64rm) &&
-           "Expected to see callee-save register restore code");
-    assert(MF.getRegInfo().isPhysRegUsed(SystemZ::R15D) &&
-           "Invalid stack frame calculation!");
-
-    unsigned i = 0;
-    MachineInstr &MI = *MBBI;
-    while (!MI.getOperand(i).isImm()) {
-      ++i;
-      assert(i < MI.getNumOperands() && "Unexpected restore code!");
-    }
-
-    uint64_t Offset = NumBytes + MI.getOperand(i).getImm();
-    // If Offset does not fit into 20-bit signed displacement field we need to
-    // emit some additional code...
-    if (Offset > 524287) {
-      // Fold the displacement into load instruction as much as possible.
-      NumBytes = Offset - 524287;
-      Offset = 524287;
-      emitSPUpdate(MBB, MBBI, NumBytes, TII);
-    }
-
-    MI.getOperand(i).ChangeToImmediate(Offset);
-  }
-}
-
-unsigned SystemZRegisterInfo::getRARegister() const {
-  assert(0 && "What is the return address register");
-  return 0;
-}
-
-unsigned SystemZRegisterInfo::getFrameRegister(MachineFunction &MF) const {
-  assert(0 && "What is the frame register");
-  return 0;
-}
-
-unsigned SystemZRegisterInfo::getEHExceptionRegister() const {
-  assert(0 && "What is the exception register");
-  return 0;
-}
-
-unsigned SystemZRegisterInfo::getEHHandlerRegister() const {
-  assert(0 && "What is the exception handler register");
-  return 0;
-}
-
-int SystemZRegisterInfo::getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  assert(0 && "What is the dwarf register number");
-  return -1;
-}
-
-#include "SystemZGenRegisterInfo.inc"
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h
deleted file mode 100644
index 21067c5..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//===- SystemZRegisterInfo.h - SystemZ Register Information Impl ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the SystemZ implementation of the TargetRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SystemZREGISTERINFO_H
-#define SystemZREGISTERINFO_H
-
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "SystemZGenRegisterInfo.h.inc"
-
-namespace llvm {
-
-namespace SystemZ {
-  /// SubregIndex - The index of various sized subregister classes. Note that
-  /// these indices must be kept in sync with the class indices in the
-  /// SystemZRegisterInfo.td file.
-  enum SubregIndex {
-    SUBREG_32BIT = 1, SUBREG_EVEN = 1, SUBREG_ODD = 2
-  };
-}
-
-class SystemZSubtarget;
-class SystemZInstrInfo;
-class Type;
-
-struct SystemZRegisterInfo : public SystemZGenRegisterInfo {
-  SystemZTargetMachine &TM;
-  const SystemZInstrInfo &TII;
-
-  SystemZRegisterInfo(SystemZTargetMachine &tm, const SystemZInstrInfo &tii);
-
-  /// Code Generation virtual methods...
-  const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const;
-
-  const TargetRegisterClass* const* getCalleeSavedRegClasses(
-                                     const MachineFunction *MF = 0) const;
-
-  BitVector getReservedRegs(const MachineFunction &MF) const;
-
-  bool hasReservedCallFrame(MachineFunction &MF) const { return true; }
-  bool hasFP(const MachineFunction &MF) const;
-
-  int getFrameIndexOffset(MachineFunction &MF, int FI) const;
-
-  void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                     MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I) const;
-
-  void eliminateFrameIndex(MachineBasicBlock::iterator II,
-                           int SPAdj, RegScavenger *RS = NULL) const;
-
-
-  void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                            RegScavenger *RS) const;
-
-  void emitPrologue(MachineFunction &MF) const;
-  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-
-  // Debug information queries.
-  unsigned getRARegister() const;
-  unsigned getFrameRegister(MachineFunction &MF) const;
-
-  // Exception handling queries.
-  unsigned getEHExceptionRegister() const;
-  unsigned getEHHandlerRegister() const;
-
-  int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
deleted file mode 100644
index 8795847..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
+++ /dev/null
@@ -1,490 +0,0 @@
-//===- SystemZRegisterInfo.td - The PowerPC Register File ------*- tablegen -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-class SystemZReg<string n> : Register<n> {
-  let Namespace = "SystemZ";
-}
-
-class SystemZRegWithSubregs<string n, list<Register> subregs>
-  : RegisterWithSubRegs<n, subregs> {
-  let Namespace = "SystemZ";
-}
-
-// We identify all our registers with a 4-bit ID, for consistency's sake.
-
-// GPR32 - Lower 32 bits of one of the 16 64-bit general-purpose registers
-class GPR32<bits<4> num, string n> : SystemZReg<n> {
-  field bits<4> Num = num;
-}
-
-// GPR64 - One of the 16 64-bit general-purpose registers
-class GPR64<bits<4> num, string n, list<Register> subregs,
-            list<Register> aliases = []>
- : SystemZRegWithSubregs<n, subregs> {
-  field bits<4> Num = num;
-  let Aliases = aliases;
-}
-
-// GPR128 - 8 even-odd register pairs
-class GPR128<bits<4> num, string n, list<Register> subregs,
-             list<Register> aliases = []>
- : SystemZRegWithSubregs<n, subregs> {
-  field bits<4> Num = num;
-  let Aliases = aliases;
-}
-
-// FPRS - Lower 32 bits of one of the 16 64-bit floating-point registers
-class FPRS<bits<4> num, string n> : SystemZReg<n> {
-  field bits<4> Num = num;
-}
-
-// FPRL - One of the 16 64-bit floating-point registers
-class FPRL<bits<4> num, string n, list<Register> subregs>
- : SystemZRegWithSubregs<n, subregs> {
-  field bits<4> Num = num;
-}
-
-// General-purpose registers
-def R0W  : GPR32< 0,  "r0">, DwarfRegNum<[0]>;
-def R1W  : GPR32< 1,  "r1">, DwarfRegNum<[1]>;
-def R2W  : GPR32< 2,  "r2">, DwarfRegNum<[2]>;
-def R3W  : GPR32< 3,  "r3">, DwarfRegNum<[3]>;
-def R4W  : GPR32< 4,  "r4">, DwarfRegNum<[4]>;
-def R5W  : GPR32< 5,  "r5">, DwarfRegNum<[5]>;
-def R6W  : GPR32< 6,  "r6">, DwarfRegNum<[6]>;
-def R7W  : GPR32< 7,  "r7">, DwarfRegNum<[7]>;
-def R8W  : GPR32< 8,  "r8">, DwarfRegNum<[8]>;
-def R9W  : GPR32< 9,  "r9">, DwarfRegNum<[9]>;
-def R10W : GPR32<10, "r10">, DwarfRegNum<[10]>;
-def R11W : GPR32<11, "r11">, DwarfRegNum<[11]>;
-def R12W : GPR32<12, "r12">, DwarfRegNum<[12]>;
-def R13W : GPR32<13, "r13">, DwarfRegNum<[13]>;
-def R14W : GPR32<14, "r14">, DwarfRegNum<[14]>;
-def R15W : GPR32<15, "r15">, DwarfRegNum<[15]>;
-
-def R0D  : GPR64< 0,  "r0", [R0W]>,  DwarfRegNum<[0]>;
-def R1D  : GPR64< 1,  "r1", [R1W]>,  DwarfRegNum<[1]>;
-def R2D  : GPR64< 2,  "r2", [R2W]>,  DwarfRegNum<[2]>;
-def R3D  : GPR64< 3,  "r3", [R3W]>,  DwarfRegNum<[3]>;
-def R4D  : GPR64< 4,  "r4", [R4W]>,  DwarfRegNum<[4]>;
-def R5D  : GPR64< 5,  "r5", [R5W]>,  DwarfRegNum<[5]>;
-def R6D  : GPR64< 6,  "r6", [R6W]>,  DwarfRegNum<[6]>;
-def R7D  : GPR64< 7,  "r7", [R7W]>,  DwarfRegNum<[7]>;
-def R8D  : GPR64< 8,  "r8", [R8W]>,  DwarfRegNum<[8]>;
-def R9D  : GPR64< 9,  "r9", [R9W]>,  DwarfRegNum<[9]>;
-def R10D : GPR64<10, "r10", [R10W]>, DwarfRegNum<[10]>;
-def R11D : GPR64<11, "r11", [R11W]>, DwarfRegNum<[11]>;
-def R12D : GPR64<12, "r12", [R12W]>, DwarfRegNum<[12]>;
-def R13D : GPR64<13, "r13", [R13W]>, DwarfRegNum<[13]>;
-def R14D : GPR64<14, "r14", [R14W]>, DwarfRegNum<[14]>;
-def R15D : GPR64<15, "r15", [R15W]>, DwarfRegNum<[15]>;
-
-// Register pairs
-def R0P  : GPR64< 0,  "r0", [R0W,  R1W],  [R0D,  R1D]>,  DwarfRegNum<[0]>;
-def R2P  : GPR64< 2,  "r2", [R2W,  R3W],  [R2D,  R3D]>,  DwarfRegNum<[2]>;
-def R4P  : GPR64< 4,  "r4", [R4W,  R5W],  [R4D,  R5D]>,  DwarfRegNum<[4]>;
-def R6P  : GPR64< 6,  "r6", [R6W,  R7W],  [R6D,  R7D]>,  DwarfRegNum<[6]>;
-def R8P  : GPR64< 8,  "r8", [R8W,  R9W],  [R8D,  R9D]>,  DwarfRegNum<[8]>;
-def R10P : GPR64<10, "r10", [R10W, R11W], [R10D, R11D]>, DwarfRegNum<[10]>;
-def R12P : GPR64<12, "r12", [R12W, R13W], [R12D, R13D]>, DwarfRegNum<[12]>;
-def R14P : GPR64<14, "r14", [R14W, R15W], [R14D, R15D]>, DwarfRegNum<[14]>;
-
-def R0Q  : GPR128< 0,  "r0", [R0D,  R1D],  [R0P]>,  DwarfRegNum<[0]>;
-def R2Q  : GPR128< 2,  "r2", [R2D,  R3D],  [R2P]>,  DwarfRegNum<[2]>;
-def R4Q  : GPR128< 4,  "r4", [R4D,  R5D],  [R4P]>,  DwarfRegNum<[4]>;
-def R6Q  : GPR128< 6,  "r6", [R6D,  R7D],  [R6P]>,  DwarfRegNum<[6]>;
-def R8Q  : GPR128< 8,  "r8", [R8D,  R9D],  [R8P]>,  DwarfRegNum<[8]>;
-def R10Q : GPR128<10, "r10", [R10D, R11D], [R10P]>, DwarfRegNum<[10]>;
-def R12Q : GPR128<12, "r12", [R12D, R13D], [R12P]>, DwarfRegNum<[12]>;
-def R14Q : GPR128<14, "r14", [R14D, R15D], [R14P]>, DwarfRegNum<[14]>;
-
-// Floating-point registers
-def F0S  : FPRS< 0,  "f0">, DwarfRegNum<[16]>;
-def F1S  : FPRS< 1,  "f1">, DwarfRegNum<[17]>;
-def F2S  : FPRS< 2,  "f2">, DwarfRegNum<[18]>;
-def F3S  : FPRS< 3,  "f3">, DwarfRegNum<[19]>;
-def F4S  : FPRS< 4,  "f4">, DwarfRegNum<[20]>;
-def F5S  : FPRS< 5,  "f5">, DwarfRegNum<[21]>;
-def F6S  : FPRS< 6,  "f6">, DwarfRegNum<[22]>;
-def F7S  : FPRS< 7,  "f7">, DwarfRegNum<[23]>;
-def F8S  : FPRS< 8,  "f8">, DwarfRegNum<[24]>;
-def F9S  : FPRS< 9,  "f9">, DwarfRegNum<[25]>;
-def F10S : FPRS<10, "f10">, DwarfRegNum<[26]>;
-def F11S : FPRS<11, "f11">, DwarfRegNum<[27]>;
-def F12S : FPRS<12, "f12">, DwarfRegNum<[28]>;
-def F13S : FPRS<13, "f13">, DwarfRegNum<[29]>;
-def F14S : FPRS<14, "f14">, DwarfRegNum<[30]>;
-def F15S : FPRS<15, "f15">, DwarfRegNum<[31]>;
-
-def F0L  : FPRL< 0,  "f0", [F0S]>,  DwarfRegNum<[16]>;
-def F1L  : FPRL< 1,  "f1", [F1S]>,  DwarfRegNum<[17]>;
-def F2L  : FPRL< 2,  "f2", [F2S]>,  DwarfRegNum<[18]>;
-def F3L  : FPRL< 3,  "f3", [F3S]>,  DwarfRegNum<[19]>;
-def F4L  : FPRL< 4,  "f4", [F4S]>,  DwarfRegNum<[20]>;
-def F5L  : FPRL< 5,  "f5", [F5S]>,  DwarfRegNum<[21]>;
-def F6L  : FPRL< 6,  "f6", [F6S]>,  DwarfRegNum<[22]>;
-def F7L  : FPRL< 7,  "f7", [F7S]>,  DwarfRegNum<[23]>;
-def F8L  : FPRL< 8,  "f8", [F8S]>,  DwarfRegNum<[24]>;
-def F9L  : FPRL< 9,  "f9", [F9S]>,  DwarfRegNum<[25]>;
-def F10L : FPRL<10, "f10", [F10S]>, DwarfRegNum<[26]>;
-def F11L : FPRL<11, "f11", [F11S]>, DwarfRegNum<[27]>;
-def F12L : FPRL<12, "f12", [F12S]>, DwarfRegNum<[28]>;
-def F13L : FPRL<13, "f13", [F13S]>, DwarfRegNum<[29]>;
-def F14L : FPRL<14, "f14", [F14S]>, DwarfRegNum<[30]>;
-def F15L : FPRL<15, "f15", [F15S]>, DwarfRegNum<[31]>;
-
-// Status register
-def PSW : SystemZReg<"psw">;
-
-def subreg_32bit  : PatLeaf<(i32 1)>;
-def subreg_even32 : PatLeaf<(i32 1)>;
-def subreg_odd32  : PatLeaf<(i32 2)>;
-def subreg_even   : PatLeaf<(i32 3)>;
-def subreg_odd    : PatLeaf<(i32 4)>;
-
-def : SubRegSet<1, [R0D, R1D,  R2D,  R3D,  R4D,  R5D,  R6D,  R7D,
-                    R8D, R9D, R10D, R11D, R12D, R13D, R14D, R15D],
-                   [R0W, R1W,  R2W,  R3W,  R4W,  R5W,  R6W,  R7W,
-                    R8W, R9W, R10W, R11W, R12W, R13W, R14W, R15W]>;
-
-def : SubRegSet<3, [R0Q, R2Q, R4Q, R6Q, R8Q, R10Q, R12Q, R14Q],
-                   [R0D, R2D, R4D, R6D, R8D, R10D, R12D, R14D]>;
-
-def : SubRegSet<4, [R0Q, R2Q, R4Q, R6Q, R8Q, R10Q, R12Q, R14Q],
-                   [R1D, R3D, R5D, R7D, R9D, R11D, R13D, R15D]>;
-
-def : SubRegSet<1, [R0P, R2P, R4P, R6P, R8P, R10P, R12P, R14P],
-                   [R0W, R2W, R4W, R6W, R8W, R10W, R12W, R14W]>;
-
-def : SubRegSet<2, [R0P, R2P, R4P, R6P, R8P, R10P, R12P, R14P],
-                   [R1W, R3W, R5W, R7W, R9W, R11W, R13W, R15W]>;
-
-def : SubRegSet<1, [R0Q, R2Q, R4Q, R6Q, R8Q, R10Q, R12Q, R14Q],
-                   [R0W, R2W, R4W, R6W, R8W, R10W, R12W, R14W]>;
-
-def : SubRegSet<2, [R0Q, R2Q, R4Q, R6Q, R8Q, R10Q, R12Q, R14Q],
-                   [R1W, R3W, R5W, R7W, R9W, R11W, R13W, R15W]>;
-
-/// Register classes
-def GR32 : RegisterClass<"SystemZ", [i32], 32,
-   // Volatile registers
-  [R0W, R1W, R2W, R3W, R4W, R5W, R6W, R7W, R8W, R9W, R10W, R12W, R13W,
-   // Frame pointer, sometimes allocable
-   R11W,
-   // Volatile, but not allocable
-   R14W, R15W]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_REG32[] = {
-      SystemZ::R1W,  SystemZ::R2W,  SystemZ::R3W,  SystemZ::R4W,
-      SystemZ::R5W,  SystemZ::R0W,  SystemZ::R12W, SystemZ::R11W,
-      SystemZ::R10W, SystemZ::R9W,  SystemZ::R8W,  SystemZ::R7W,
-      SystemZ::R6W,  SystemZ::R14W, SystemZ::R13W
-    };
-    static const unsigned SystemZ_REG32_nofp[] = {
-      SystemZ::R1W,  SystemZ::R2W,  SystemZ::R3W,  SystemZ::R4W,
-      SystemZ::R5W,  SystemZ::R0W,  SystemZ::R12W, /* No R11W */
-      SystemZ::R10W, SystemZ::R9W,  SystemZ::R8W,  SystemZ::R7W,
-      SystemZ::R6W,  SystemZ::R14W, SystemZ::R13W
-    };
-    GR32Class::iterator
-    GR32Class::allocation_order_begin(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG32_nofp;
-      else
-        return SystemZ_REG32;
-    }
-    GR32Class::iterator
-    GR32Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG32_nofp + (sizeof(SystemZ_REG32_nofp) / sizeof(unsigned));
-      else
-        return SystemZ_REG32 + (sizeof(SystemZ_REG32) / sizeof(unsigned));
-    }
-  }];
-}
-
-/// Registers used to generate address. Everything except R0.
-def ADDR32 : RegisterClass<"SystemZ", [i32], 32,
-   // Volatile registers
-  [R1W, R2W, R3W, R4W, R5W, R6W, R7W, R8W, R9W, R10W, R12W, R13W,
-   // Frame pointer, sometimes allocable
-   R11W,
-   // Volatile, but not allocable
-   R14W, R15W]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_ADDR32[] = {
-      SystemZ::R1W,  SystemZ::R2W,  SystemZ::R3W,  SystemZ::R4W,
-      SystemZ::R5W,  /* No R0W */   SystemZ::R12W, SystemZ::R11W,
-      SystemZ::R10W, SystemZ::R9W,  SystemZ::R8W,  SystemZ::R7W,
-      SystemZ::R6W,  SystemZ::R14W, SystemZ::R13W
-    };
-    static const unsigned SystemZ_ADDR32_nofp[] = {
-      SystemZ::R1W,  SystemZ::R2W,  SystemZ::R3W,  SystemZ::R4W,
-      SystemZ::R5W,  /* No R0W */   SystemZ::R12W, /* No R11W */
-      SystemZ::R10W, SystemZ::R9W,  SystemZ::R8W,  SystemZ::R7W,
-      SystemZ::R6W,  SystemZ::R14W, SystemZ::R13W
-    };
-    ADDR32Class::iterator
-    ADDR32Class::allocation_order_begin(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_ADDR32_nofp;
-      else
-        return SystemZ_ADDR32;
-    }
-    ADDR32Class::iterator
-    ADDR32Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_ADDR32_nofp + (sizeof(SystemZ_ADDR32_nofp) / sizeof(unsigned));
-      else
-        return SystemZ_ADDR32 + (sizeof(SystemZ_ADDR32) / sizeof(unsigned));
-    }
-  }];
-}
-
-def GR64 : RegisterClass<"SystemZ", [i64], 64,
-   // Volatile registers
-  [R0D, R1D, R2D, R3D, R4D, R5D, R6D, R7D, R8D, R9D, R10D, R12D, R13D,
-   // Frame pointer, sometimes allocable
-   R11D,
-   // Volatile, but not allocable
-   R14D, R15D]>
-{
-  let SubRegClassList = [GR32];
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_REG64[] = {
-      SystemZ::R1D,  SystemZ::R2D,  SystemZ::R3D,  SystemZ::R4D,
-      SystemZ::R5D,  SystemZ::R0D,  SystemZ::R12D, SystemZ::R11D,
-      SystemZ::R10D, SystemZ::R9D,  SystemZ::R8D,  SystemZ::R7D,
-      SystemZ::R6D,  SystemZ::R14D, SystemZ::R13D
-    };
-    static const unsigned SystemZ_REG64_nofp[] = {
-      SystemZ::R1D,  SystemZ::R2D,  SystemZ::R3D,  SystemZ::R4D,
-      SystemZ::R5D,  SystemZ::R0D,  SystemZ::R12D, /* No R11D */
-      SystemZ::R10D, SystemZ::R9D,  SystemZ::R8D,  SystemZ::R7D,
-      SystemZ::R6D,  SystemZ::R14D, SystemZ::R13D
-    };
-    GR64Class::iterator
-    GR64Class::allocation_order_begin(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG64_nofp;
-      else
-        return SystemZ_REG64;
-    }
-    GR64Class::iterator
-    GR64Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG64_nofp + (sizeof(SystemZ_REG64_nofp) / sizeof(unsigned));
-      else
-        return SystemZ_REG64 + (sizeof(SystemZ_REG64) / sizeof(unsigned));
-    }
-  }];
-}
-
-def ADDR64 : RegisterClass<"SystemZ", [i64], 64,
-   // Volatile registers
-  [R1D, R2D, R3D, R4D, R5D, R6D, R7D, R8D, R9D, R10D, R12D, R13D,
-   // Frame pointer, sometimes allocable
-   R11D,
-   // Volatile, but not allocable
-   R14D, R15D]>
-{
-  let SubRegClassList = [ADDR32];
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_ADDR64[] = {
-      SystemZ::R1D,  SystemZ::R2D,  SystemZ::R3D,  SystemZ::R4D,
-      SystemZ::R5D,  /* No R0D */   SystemZ::R12D, SystemZ::R11D,
-      SystemZ::R10D, SystemZ::R9D,  SystemZ::R8D,  SystemZ::R7D,
-      SystemZ::R6D,  SystemZ::R14D, SystemZ::R13D
-    };
-    static const unsigned SystemZ_ADDR64_nofp[] = {
-      SystemZ::R1D,  SystemZ::R2D,  SystemZ::R3D,  SystemZ::R4D,
-      SystemZ::R5D,  /* No R0D */   SystemZ::R12D, /* No R11D */
-      SystemZ::R10D, SystemZ::R9D,  SystemZ::R8D,  SystemZ::R7D,
-      SystemZ::R6D,  SystemZ::R14D, SystemZ::R13D
-    };
-    ADDR64Class::iterator
-    ADDR64Class::allocation_order_begin(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_ADDR64_nofp;
-      else
-        return SystemZ_ADDR64;
-    }
-    ADDR64Class::iterator
-    ADDR64Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_ADDR64_nofp + (sizeof(SystemZ_ADDR64_nofp) / sizeof(unsigned));
-      else
-        return SystemZ_ADDR64 + (sizeof(SystemZ_ADDR64) / sizeof(unsigned));
-    }
-  }];
-}
-
-// Even-odd register pairs
-def GR64P : RegisterClass<"SystemZ", [v2i32], 64,
-  [R0P, R2P, R4P, R6P, R8P, R10P, R12P, R14P]>
-{
-  let SubRegClassList = [GR32, GR32];
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_REG64P[] = {
-      SystemZ::R0P,  SystemZ::R2P,  SystemZ::R4P, SystemZ::R10P,
-      SystemZ::R8P,  SystemZ::R6P };
-    static const unsigned SystemZ_REG64P_nofp[] = {
-      SystemZ::R0P,  SystemZ::R2P,  SystemZ::R4P, /* NO R10P */
-      SystemZ::R8P,  SystemZ::R6P };
-    GR64PClass::iterator
-    GR64PClass::allocation_order_begin(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG64P_nofp;
-      else
-        return SystemZ_REG64P;
-    }
-    GR64PClass::iterator
-    GR64PClass::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG64P_nofp + (sizeof(SystemZ_REG64P_nofp) / sizeof(unsigned));
-      else
-        return SystemZ_REG64P + (sizeof(SystemZ_REG64P) / sizeof(unsigned));
-    }
-  }];
-}
-
-def GR128 : RegisterClass<"SystemZ", [v2i64], 128,
-  [R0Q, R2Q, R4Q, R6Q, R8Q, R10Q, R12Q, R14Q]>
-{
-  let SubRegClassList = [GR32, GR32, GR64, GR64];
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_REG128[] = {
-      SystemZ::R0Q,  SystemZ::R2Q,  SystemZ::R4Q,  SystemZ::R10Q,
-      SystemZ::R8Q,  SystemZ::R6Q };
-    static const unsigned SystemZ_REG128_nofp[] = {
-      SystemZ::R0Q,  SystemZ::R2Q,  SystemZ::R4Q, /* NO R10Q */
-      SystemZ::R8Q,  SystemZ::R6Q };
-    GR128Class::iterator
-    GR128Class::allocation_order_begin(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG128_nofp;
-      else
-        return SystemZ_REG128;
-    }
-    GR128Class::iterator
-    GR128Class::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return SystemZ_REG128_nofp + (sizeof(SystemZ_REG128_nofp) / sizeof(unsigned));
-      else
-        return SystemZ_REG128 + (sizeof(SystemZ_REG128) / sizeof(unsigned));
-    }
-  }];
-}
-
-def FP32 : RegisterClass<"SystemZ", [f32], 32,
- [F0S, F1S,  F2S,  F3S,  F4S,  F5S,  F6S,  F7S,
-  F8S, F9S, F10S, F11S, F12S, F13S, F14S, F15S]> {
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_REGFP32[] = {
-      SystemZ::F0S,  SystemZ::F2S,  SystemZ::F4S,  SystemZ::F6S,
-      SystemZ::F1S,  SystemZ::F3S,  SystemZ::F5S,  SystemZ::F7S,
-      SystemZ::F8S,  SystemZ::F9S,  SystemZ::F10S, SystemZ::F11S,
-      SystemZ::F12S, SystemZ::F13S, SystemZ::F14S, SystemZ::F15S };
-    FP32Class::iterator
-    FP32Class::allocation_order_begin(const MachineFunction &MF) const {
-      return SystemZ_REGFP32;
-    }
-    FP32Class::iterator
-    FP32Class::allocation_order_end(const MachineFunction &MF) const {
-      return SystemZ_REGFP32 + (sizeof(SystemZ_REGFP32) / sizeof(unsigned));
-    }
-  }];
-}
-
-def FP64 : RegisterClass<"SystemZ", [f64], 64,
- [F0L, F1L,  F2L,  F3L,  F4L,  F5L,  F6L,  F7L, 
-  F8L, F9L, F10L, F11L, F12L, F13L, F14L, F15L]> {
-  let SubRegClassList = [FP32];
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    static const unsigned SystemZ_REGFP64[] = {
-      SystemZ::F0L,  SystemZ::F2L,  SystemZ::F4L,  SystemZ::F6L,
-      SystemZ::F1L,  SystemZ::F3L,  SystemZ::F5L,  SystemZ::F7L,
-      SystemZ::F8L,  SystemZ::F9L,  SystemZ::F10L, SystemZ::F11L,
-      SystemZ::F12L, SystemZ::F13L, SystemZ::F14L, SystemZ::F15L };
-    FP64Class::iterator
-    FP64Class::allocation_order_begin(const MachineFunction &MF) const {
-      return SystemZ_REGFP64;
-    }
-    FP64Class::iterator
-    FP64Class::allocation_order_end(const MachineFunction &MF) const {
-      return SystemZ_REGFP64 + (sizeof(SystemZ_REGFP64) / sizeof(unsigned));
-    }
-  }];
-}
-
-// Status flags registers.
-def CCR : RegisterClass<"SystemZ", [i64], 64, [PSW]> {
-  let CopyCost = -1;  // Don't allow copying of status registers.
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp
deleted file mode 100644
index a8b5e1f..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//===- SystemZSubtarget.cpp - SystemZ Subtarget Information -------*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the SystemZ specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SystemZSubtarget.h"
-#include "SystemZ.h"
-#include "SystemZGenSubtarget.inc"
-#include "llvm/GlobalValue.h"
-#include "llvm/Target/TargetMachine.h"
-
-using namespace llvm;
-
-SystemZSubtarget::SystemZSubtarget(const std::string &TT, 
-                                   const std::string &FS):
-  HasZ10Insts(false) {
-  std::string CPU = "z9";
-
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-}
-
-/// True if accessing the GV requires an extra load.
-bool SystemZSubtarget::GVRequiresExtraLoad(const GlobalValue* GV,
-                                           const TargetMachine& TM,
-                                           bool isDirectCall) const {
-  if (TM.getRelocationModel() == Reloc::PIC_) {
-    // Extra load is needed for all externally visible.
-    if (isDirectCall)
-      return false;
-
-    if (GV->hasLocalLinkage() || GV->hasHiddenVisibility())
-      return false;
-
-    return true;
-  }
-
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZSubtarget.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZSubtarget.h
deleted file mode 100644
index 405d6e9..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZSubtarget.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//==-- SystemZSubtarget.h - Define Subtarget for the SystemZ ---*- C++ -*--===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the SystemZ specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_SystemZ_SUBTARGET_H
-#define LLVM_TARGET_SystemZ_SUBTARGET_H
-
-#include "llvm/Target/TargetSubtarget.h"
-
-#include <string>
-
-namespace llvm {
-class GlobalValue;
-class TargetMachine;
-
-class SystemZSubtarget : public TargetSubtarget {
-  bool HasZ10Insts;
-public:
-  /// This constructor initializes the data members to match that
-  /// of the specified triple.
-  ///
-  SystemZSubtarget(const std::string &TT, const std::string &FS);
-
-  /// ParseSubtargetFeatures - Parses features string setting specified
-  /// subtarget options.  Definition of function is auto generated by tblgen.
-  std::string ParseSubtargetFeatures(const std::string &FS,
-                                     const std::string &CPU);
-
-  bool isZ10() const { return HasZ10Insts; }
-
-  bool GVRequiresExtraLoad(const GlobalValue* GV, const TargetMachine& TM,
-                           bool isDirectCall) const;
-};
-} // End llvm namespace
-
-#endif  // LLVM_TARGET_SystemZ_SUBTARGET_H
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
deleted file mode 100644
index 990e003..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===-- SystemZTargetMachine.cpp - Define TargetMachine for SystemZ -------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SystemZMCAsmInfo.h"
-#include "SystemZTargetMachine.h"
-#include "SystemZ.h"
-#include "llvm/PassManager.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-extern "C" void LLVMInitializeSystemZTarget() {
-  // Register the target.
-  RegisterTargetMachine<SystemZTargetMachine> X(TheSystemZTarget);
-  RegisterAsmInfo<SystemZMCAsmInfo> Y(TheSystemZTarget);
-}
-
-/// SystemZTargetMachine ctor - Create an ILP64 architecture model
-///
-SystemZTargetMachine::SystemZTargetMachine(const Target &T,
-                                           const std::string &TT,
-                                           const std::string &FS)
-  : LLVMTargetMachine(T, TT),
-    Subtarget(TT, FS),
-    DataLayout("E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32"
-               "-f64:64:64-f128:128:128-a0:16:16"),
-    InstrInfo(*this), TLInfo(*this),
-    FrameInfo(TargetFrameInfo::StackGrowsDown, 8, -160) {
-
-  if (getRelocationModel() == Reloc::Default)
-    setRelocationModel(Reloc::Static);
-}
-
-bool SystemZTargetMachine::addInstSelector(PassManagerBase &PM,
-                                          CodeGenOpt::Level OptLevel) {
-  // Install an instruction selector.
-  PM.add(createSystemZISelDag(*this, OptLevel));
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.h b/libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.h
deleted file mode 100644
index 551aeb5..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.h
+++ /dev/null
@@ -1,61 +0,0 @@
-//==- SystemZTargetMachine.h - Define TargetMachine for SystemZ ---*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the SystemZ specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-
-#ifndef LLVM_TARGET_SYSTEMZ_TARGETMACHINE_H
-#define LLVM_TARGET_SYSTEMZ_TARGETMACHINE_H
-
-#include "SystemZInstrInfo.h"
-#include "SystemZISelLowering.h"
-#include "SystemZRegisterInfo.h"
-#include "SystemZSubtarget.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-
-/// SystemZTargetMachine
-///
-class SystemZTargetMachine : public LLVMTargetMachine {
-  SystemZSubtarget        Subtarget;
-  const TargetData        DataLayout;       // Calculates type size & alignment
-  SystemZInstrInfo        InstrInfo;
-  SystemZTargetLowering   TLInfo;
-
-  // SystemZ does not have any call stack frame, therefore not having
-  // any SystemZ specific FrameInfo class.
-  TargetFrameInfo       FrameInfo;
-public:
-  SystemZTargetMachine(const Target &T, const std::string &TT,
-                       const std::string &FS);
-
-  virtual const TargetFrameInfo *getFrameInfo() const { return &FrameInfo; }
-  virtual const SystemZInstrInfo *getInstrInfo() const  { return &InstrInfo; }
-  virtual const TargetData *getTargetData() const     { return &DataLayout;}
-  virtual const SystemZSubtarget *getSubtargetImpl() const { return &Subtarget; }
-
-  virtual const SystemZRegisterInfo *getRegisterInfo() const {
-    return &InstrInfo.getRegisterInfo();
-  }
-
-  virtual SystemZTargetLowering *getTargetLowering() const {
-    return const_cast<SystemZTargetLowering*>(&TLInfo);
-  }
-
-  virtual bool addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-}; // SystemZTargetMachine.
-
-} // end namespace llvm
-
-#endif // LLVM_TARGET_SystemZ_TARGETMACHINE_H
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 743d8d3..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMSystemZInfo
-  SystemZTargetInfo.cpp
-  )
-
-add_dependencies(LLVMSystemZInfo SystemZCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/Makefile
deleted file mode 100644
index 0be80eb..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/SystemZ/TargetInfo/Makefile --------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMSystemZInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp
deleted file mode 100644
index 8272b11..0000000
--- a/libclamav/c++/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- SystemZTargetInfo.cpp - SystemZ Target Implementation -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SystemZ.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheSystemZTarget;
-
-extern "C" void LLVMInitializeSystemZTargetInfo() {
-  RegisterTarget<Triple::systemz> X(TheSystemZTarget, "systemz", "SystemZ");
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 7c7c2f4..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMXCoreAsmPrinter
-  XCoreAsmPrinter.cpp
-  )
-add_dependencies(LLVMXCoreAsmPrinter XCoreCodeGenTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/Makefile b/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/Makefile
deleted file mode 100644
index 82dc1df..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-##===- lib/Target/XCore/AsmPrinter/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../../..
-LIBRARYNAME = LLVMXCoreAsmPrinter
-
-# Hack: we need to include 'main' XCore target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp b/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp
deleted file mode 100644
index 9ee0e86..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp
+++ /dev/null
@@ -1,381 +0,0 @@
-//===-- XCoreAsmPrinter.cpp - XCore LLVM assembly writer ------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a printer that converts from our internal representation
-// of machine-dependent LLVM code to the XAS-format XCore assembly language.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "asm-printer"
-#include "XCore.h"
-#include "XCoreInstrInfo.h"
-#include "XCoreSubtarget.h"
-#include "XCoreMCAsmInfo.h"
-#include "XCoreTargetMachine.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/CodeGen/DwarfWriter.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "llvm/CodeGen/MachineFunctionPass.h"
-#include "llvm/CodeGen/MachineConstantPool.h"
-#include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetLoweringObjectFile.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/MathExtras.h"
-#include <algorithm>
-#include <cctype>
-using namespace llvm;
-
-STATISTIC(EmittedInsts, "Number of machine instrs printed");
-
-static cl::opt<unsigned> MaxThreads("xcore-max-threads", cl::Optional,
-  cl::desc("Maximum number of threads (for emulation thread-local storage)"),
-  cl::Hidden,
-  cl::value_desc("number"),
-  cl::init(8));
-
-namespace {
-  class VISIBILITY_HIDDEN XCoreAsmPrinter : public AsmPrinter {
-    DwarfWriter *DW;
-    const XCoreSubtarget &Subtarget;
-  public:
-    explicit XCoreAsmPrinter(formatted_raw_ostream &O, TargetMachine &TM,
-                             const MCAsmInfo *T, bool V)
-      : AsmPrinter(O, TM, T, V), DW(0),
-      Subtarget(TM.getSubtarget<XCoreSubtarget>()) {}
-
-    virtual const char *getPassName() const {
-      return "XCore Assembly Printer";
-    }
-
-    void printMemOperand(const MachineInstr *MI, int opNum);
-    void printOperand(const MachineInstr *MI, int opNum);
-    bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                        unsigned AsmVariant, const char *ExtraCode);
-
-    void emitGlobalDirective(const std::string &name);
-    void emitExternDirective(const std::string &name);
-    
-    void emitArrayBound(const std::string &name, const GlobalVariable *GV);
-    virtual void PrintGlobalVariable(const GlobalVariable *GV);
-
-    void emitFunctionStart(MachineFunction &MF);
-    void emitFunctionEnd(MachineFunction &MF);
-
-    void printInstruction(const MachineInstr *MI);  // autogenerated.
-    void printMachineInstruction(const MachineInstr *MI);
-    bool runOnMachineFunction(MachineFunction &F);
-    bool doInitialization(Module &M);
-    
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AsmPrinter::getAnalysisUsage(AU);
-      AU.setPreservesAll();
-      AU.addRequired<MachineModuleInfo>();
-      AU.addRequired<DwarfWriter>();
-    }
-  };
-} // end of anonymous namespace
-
-#include "XCoreGenAsmWriter.inc"
-
-void XCoreAsmPrinter::
-emitGlobalDirective(const std::string &name)
-{
-  O << MAI->getGlobalDirective() << name;
-  O << "\n";
-}
-
-void XCoreAsmPrinter::
-emitExternDirective(const std::string &name)
-{
-  O << "\t.extern\t" << name;
-  O << '\n';
-}
-
-void XCoreAsmPrinter::
-emitArrayBound(const std::string &name, const GlobalVariable *GV)
-{
-  assert(((GV->hasExternalLinkage() ||
-    GV->hasWeakLinkage()) ||
-    GV->hasLinkOnceLinkage()) && "Unexpected linkage");
-  if (const ArrayType *ATy = dyn_cast<ArrayType>(
-    cast<PointerType>(GV->getType())->getElementType()))
-  {
-    O << MAI->getGlobalDirective() << name << ".globound" << "\n";
-    O << MAI->getSetDirective() << name << ".globound" << ","
-      << ATy->getNumElements() << "\n";
-    if (GV->hasWeakLinkage() || GV->hasLinkOnceLinkage()) {
-      // TODO Use COMDAT groups for LinkOnceLinkage
-      O << MAI->getWeakDefDirective() << name << ".globound" << "\n";
-    }
-  }
-}
-
-void XCoreAsmPrinter::PrintGlobalVariable(const GlobalVariable *GV) {
-  // Check to see if this is a special global used by LLVM, if so, emit it.
-  if (!GV->hasInitializer() ||
-      EmitSpecialLLVMGlobal(GV))
-    return;
-
-  const TargetData *TD = TM.getTargetData();
-  
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(GV, Mang,TM));
-  
-  std::string name = Mang->getMangledName(GV);
-  Constant *C = GV->getInitializer();
-  unsigned Align = (unsigned)TD->getPreferredTypeAlignmentShift(C->getType());
-  
-  // Mark the start of the global
-  O << "\t.cc_top " << name << ".data," << name << "\n";
-
-  switch (GV->getLinkage()) {
-  case GlobalValue::AppendingLinkage:
-    llvm_report_error("AppendingLinkage is not supported by this target!");
-  case GlobalValue::LinkOnceAnyLinkage:
-  case GlobalValue::LinkOnceODRLinkage:
-  case GlobalValue::WeakAnyLinkage:
-  case GlobalValue::WeakODRLinkage:
-  case GlobalValue::ExternalLinkage:
-    emitArrayBound(name, GV);
-    emitGlobalDirective(name);
-    // TODO Use COMDAT groups for LinkOnceLinkage
-    if (GV->hasWeakLinkage() || GV->hasLinkOnceLinkage()) {
-      O << MAI->getWeakDefDirective() << name << "\n";
-    }
-    // FALL THROUGH
-  case GlobalValue::InternalLinkage:
-  case GlobalValue::PrivateLinkage:
-  case GlobalValue::LinkerPrivateLinkage:
-    break;
-  case GlobalValue::GhostLinkage:
-    llvm_unreachable("Should not have any unmaterialized functions!");
-  case GlobalValue::DLLImportLinkage:
-    llvm_unreachable("DLLImport linkage is not supported by this target!");
-  case GlobalValue::DLLExportLinkage:
-    llvm_unreachable("DLLExport linkage is not supported by this target!");
-  default:
-    llvm_unreachable("Unknown linkage type!");
-  }
-
-  EmitAlignment(Align, GV, 2);
-  
-  unsigned Size = TD->getTypeAllocSize(C->getType());
-  if (GV->isThreadLocal()) {
-    Size *= MaxThreads;
-  }
-  if (MAI->hasDotTypeDotSizeDirective()) {
-    O << "\t.type " << name << ", at object\n";
-    O << "\t.size " << name << "," << Size << "\n";
-  }
-  O << name << ":\n";
-  
-  EmitGlobalConstant(C);
-  if (GV->isThreadLocal()) {
-    for (unsigned i = 1; i < MaxThreads; ++i) {
-      EmitGlobalConstant(C);
-    }
-  }
-  if (Size < 4) {
-    // The ABI requires that unsigned scalar types smaller than 32 bits
-    // are are padded to 32 bits.
-    EmitZeros(4 - Size);
-  }
-  
-  // Mark the end of the global
-  O << "\t.cc_bottom " << name << ".data\n";
-}
-
-/// Emit the directives on the start of functions
-void XCoreAsmPrinter::emitFunctionStart(MachineFunction &MF) {
-  // Print out the label for the function.
-  const Function *F = MF.getFunction();
-
-  OutStreamer.SwitchSection(getObjFileLowering().SectionForGlobal(F, Mang, TM));
-  
-  // Mark the start of the function
-  O << "\t.cc_top " << CurrentFnName << ".function," << CurrentFnName << "\n";
-
-  switch (F->getLinkage()) {
-  default: llvm_unreachable("Unknown linkage type!");
-  case Function::InternalLinkage:  // Symbols default to internal.
-  case Function::PrivateLinkage:
-  case Function::LinkerPrivateLinkage:
-    break;
-  case Function::ExternalLinkage:
-    emitGlobalDirective(CurrentFnName);
-    break;
-  case Function::LinkOnceAnyLinkage:
-  case Function::LinkOnceODRLinkage:
-  case Function::WeakAnyLinkage:
-  case Function::WeakODRLinkage:
-    // TODO Use COMDAT groups for LinkOnceLinkage
-    O << MAI->getGlobalDirective() << CurrentFnName << "\n";
-    O << MAI->getWeakDefDirective() << CurrentFnName << "\n";
-    break;
-  }
-  // (1 << 1) byte aligned
-  EmitAlignment(MF.getAlignment(), F, 1);
-  if (MAI->hasDotTypeDotSizeDirective()) {
-    O << "\t.type " << CurrentFnName << ", at function\n";
-  }
-  O << CurrentFnName << ":\n";
-}
-
-/// Emit the directives on the end of functions
-void XCoreAsmPrinter::
-emitFunctionEnd(MachineFunction &MF) 
-{
-  // Mark the end of the function
-  O << "\t.cc_bottom " << CurrentFnName << ".function\n";
-}
-
-/// runOnMachineFunction - This uses the printMachineInstruction()
-/// method to print assembly for each instruction.
-///
-bool XCoreAsmPrinter::runOnMachineFunction(MachineFunction &MF)
-{
-  this->MF = &MF;
-
-  SetupMachineFunction(MF);
-
-  // Print out constants referenced by the function
-  EmitConstantPool(MF.getConstantPool());
-
-  // Print out jump tables referenced by the function
-  EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-
-  // Emit the function start directives
-  emitFunctionStart(MF);
-  
-  // Emit pre-function debug information.
-  DW->BeginFunction(&MF);
-
-  // Print out code for the function.
-  for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
-       I != E; ++I) {
-
-    // Print a label for the basic block.
-    if (I != MF.begin()) {
-      printBasicBlockLabel(I, true , true);
-      O << '\n';
-    }
-
-    for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end();
-         II != E; ++II) {
-      // Print the assembly for the instruction.
-      O << "\t";
-      printMachineInstruction(II);
-    }
-
-    // Each Basic Block is separated by a newline
-    O << '\n';
-  }
-
-  // Emit function end directives
-  emitFunctionEnd(MF);
-  
-  // Emit post-function debug information.
-  DW->EndFunction(&MF);
-
-  // We didn't modify anything.
-  return false;
-}
-
-void XCoreAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum)
-{
-  printOperand(MI, opNum);
-  
-  if (MI->getOperand(opNum+1).isImm()
-    && MI->getOperand(opNum+1).getImm() == 0)
-    return;
-  
-  O << "+";
-  printOperand(MI, opNum+1);
-}
-
-void XCoreAsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
-  const MachineOperand &MO = MI->getOperand(opNum);
-  switch (MO.getType()) {
-  case MachineOperand::MO_Register:
-    if (TargetRegisterInfo::isPhysicalRegister(MO.getReg()))
-      O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
-    else
-      llvm_unreachable("not implemented");
-    break;
-  case MachineOperand::MO_Immediate:
-    O << MO.getImm();
-    break;
-  case MachineOperand::MO_MachineBasicBlock:
-    printBasicBlockLabel(MO.getMBB());
-    break;
-  case MachineOperand::MO_GlobalAddress:
-    O << Mang->getMangledName(MO.getGlobal());
-    break;
-  case MachineOperand::MO_ExternalSymbol:
-    O << MO.getSymbolName();
-    break;
-  case MachineOperand::MO_ConstantPoolIndex:
-    O << MAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber()
-      << '_' << MO.getIndex();
-    break;
-  case MachineOperand::MO_JumpTableIndex:
-    O << MAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber()
-      << '_' << MO.getIndex();
-    break;
-  default:
-    llvm_unreachable("not implemented");
-  }
-}
-
-/// PrintAsmOperand - Print out an operand for an inline asm expression.
-///
-bool XCoreAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                                      unsigned AsmVariant, 
-                                      const char *ExtraCode) {
-  printOperand(MI, OpNo);
-  return false;
-}
-
-void XCoreAsmPrinter::printMachineInstruction(const MachineInstr *MI) {
-  ++EmittedInsts;
-
-  // Check for mov mnemonic
-  unsigned src, dst, srcSR, dstSR;
-  if (TM.getInstrInfo()->isMoveInstr(*MI, src, dst, srcSR, dstSR)) {
-    O << "\tmov ";
-    O << TM.getRegisterInfo()->get(dst).AsmName;
-    O << ", ";
-    O << TM.getRegisterInfo()->get(src).AsmName;
-    O << "\n";
-    return;
-  }
-  printInstruction(MI);
-}
-
-bool XCoreAsmPrinter::doInitialization(Module &M) {
-  bool Result = AsmPrinter::doInitialization(M);
-  DW = getAnalysisIfAvailable<DwarfWriter>();
-  
-  return Result;
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeXCoreAsmPrinter() { 
-  RegisterAsmPrinter<XCoreAsmPrinter> X(TheXCoreTarget);
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/XCore/CMakeLists.txt
deleted file mode 100644
index 0965323..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-set(LLVM_TARGET_DEFINITIONS XCore.td)
-
-tablegen(XCoreGenRegisterInfo.h.inc -gen-register-desc-header)
-tablegen(XCoreGenRegisterNames.inc -gen-register-enums)
-tablegen(XCoreGenRegisterInfo.inc -gen-register-desc)
-tablegen(XCoreGenInstrNames.inc -gen-instr-enums)
-tablegen(XCoreGenInstrInfo.inc -gen-instr-desc)
-tablegen(XCoreGenAsmWriter.inc -gen-asm-writer)
-tablegen(XCoreGenDAGISel.inc -gen-dag-isel)
-tablegen(XCoreGenCallingConv.inc -gen-callingconv)
-tablegen(XCoreGenSubtarget.inc -gen-subtarget)
-
-add_llvm_target(XCore
-  MCSectionXCore.cpp
-  XCoreFrameInfo.cpp
-  XCoreInstrInfo.cpp
-  XCoreISelDAGToDAG.cpp
-  XCoreISelLowering.cpp
-  XCoreMCAsmInfo.cpp
-  XCoreRegisterInfo.cpp
-  XCoreSubtarget.cpp
-  XCoreTargetMachine.cpp
-  XCoreTargetObjectFile.cpp
-  )
diff --git a/libclamav/c++/llvm/lib/Target/XCore/MCSectionXCore.cpp b/libclamav/c++/llvm/lib/Target/XCore/MCSectionXCore.cpp
deleted file mode 100644
index 5acceaf..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/MCSectionXCore.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//===- MCSectionXCore.cpp - XCore-specific section representation ---------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the MCSectionXCore class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "MCSectionXCore.h"
-#include "llvm/MC/MCContext.h"
-#include "llvm/Support/raw_ostream.h"
-using namespace llvm;
-
-MCSectionXCore *
-MCSectionXCore::Create(const StringRef &Section, unsigned Type,
-                       unsigned Flags, SectionKind K,
-                       bool isExplicit, MCContext &Ctx) {
-  return new (Ctx) MCSectionXCore(Section, Type, Flags, K, isExplicit);
-}
-
-
-/// PrintTargetSpecificSectionFlags - This handles the XCore-specific cp/dp
-/// section flags.
-void MCSectionXCore::PrintTargetSpecificSectionFlags(const MCAsmInfo &MAI,
-                                                     raw_ostream &OS) const {
-  if (getFlags() & MCSectionXCore::SHF_CP_SECTION)
-    OS << 'c';
-  if (getFlags() & MCSectionXCore::SHF_DP_SECTION)
-    OS << 'd';
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/MCSectionXCore.h b/libclamav/c++/llvm/lib/Target/XCore/MCSectionXCore.h
deleted file mode 100644
index 02f8f95..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/MCSectionXCore.h
+++ /dev/null
@@ -1,54 +0,0 @@
-//===- MCSectionXCore.h - XCore-specific section representation -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the MCSectionXCore class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_MCSECTION_XCORE_H
-#define LLVM_MCSECTION_XCORE_H
-
-#include "llvm/MC/MCSectionELF.h"
-
-namespace llvm {
-  
-class MCSectionXCore : public MCSectionELF {
-  MCSectionXCore(const StringRef &Section, unsigned Type, unsigned Flags,
-                 SectionKind K, bool isExplicit)
-    : MCSectionELF(Section, Type, Flags, K, isExplicit) {}
-  
-public:
-  
-  enum {
-    /// SHF_CP_SECTION - All sections with the "c" flag are grouped together
-    /// by the linker to form the constant pool and the cp register is set to
-    /// the start of the constant pool by the boot code.
-    SHF_CP_SECTION = FIRST_TARGET_DEP_FLAG,
-    
-    /// SHF_DP_SECTION - All sections with the "d" flag are grouped together
-    /// by the linker to form the data section and the dp register is set to
-    /// the start of the section by the boot code.
-    SHF_DP_SECTION = FIRST_TARGET_DEP_FLAG << 1
-  };
-  
-  static MCSectionXCore *Create(const StringRef &Section, unsigned Type,
-                                unsigned Flags, SectionKind K,
-                                bool isExplicit, MCContext &Ctx);
-  
-  
-  /// PrintTargetSpecificSectionFlags - This handles the XCore-specific cp/dp
-  /// section flags.
-  virtual void PrintTargetSpecificSectionFlags(const MCAsmInfo &MAI,
-                                               raw_ostream &OS) const;
-
-};
-  
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/XCore/Makefile b/libclamav/c++/llvm/lib/Target/XCore/Makefile
deleted file mode 100644
index bd3b52a..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-##===- lib/Target/XCore/Makefile ---------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../..
-LIBRARYNAME = LLVMXCoreCodeGen
-TARGET = XCore
-
-# Make sure that tblgen is run, first thing.
-BUILT_SOURCES = XCoreGenRegisterInfo.h.inc XCoreGenRegisterNames.inc \
-                XCoreGenRegisterInfo.inc XCoreGenInstrNames.inc \
-                XCoreGenInstrInfo.inc XCoreGenAsmWriter.inc \
-                XCoreGenDAGISel.inc XCoreGenCallingConv.inc \
-		XCoreGenSubtarget.inc
-
-DIRS = AsmPrinter TargetInfo
-
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/lib/Target/XCore/README.txt b/libclamav/c++/llvm/lib/Target/XCore/README.txt
deleted file mode 100644
index deaeb0f..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-To-do
------
-
-* Instruction encodings
-* Tailcalls
-* Investigate loop alignment
-* Add builtins
-* Make better use of lmul / macc
diff --git a/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/CMakeLists.txt b/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/CMakeLists.txt
deleted file mode 100644
index 0a568de..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-
-add_llvm_library(LLVMXCoreInfo
-  XCoreTargetInfo.cpp
-  )
-
-add_dependencies(LLVMXCoreInfo XCoreTable_gen)
diff --git a/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/Makefile b/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/Makefile
deleted file mode 100644
index 07473d2..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Target/XCore/TargetInfo/Makefile ----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../../../..
-LIBRARYNAME = LLVMXCoreInfo
-
-# Hack: we need to include 'main' target directory to grab private headers
-CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp b/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp
deleted file mode 100644
index 7aa8965..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- XCoreTargetInfo.cpp - XCore Target Implementation -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCore.h"
-#include "llvm/Module.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-Target llvm::TheXCoreTarget;
-
-extern "C" void LLVMInitializeXCoreTargetInfo() { 
-  RegisterTarget<Triple::xcore> X(TheXCoreTarget, "xcore", "XCore");
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCore.h b/libclamav/c++/llvm/lib/Target/XCore/XCore.h
deleted file mode 100644
index 8937fbe..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCore.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- XCore.h - Top-level interface for XCore representation --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the entry points for global functions defined in the LLVM
-// XCore back-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TARGET_XCORE_H
-#define TARGET_XCORE_H
-
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-  class FunctionPass;
-  class TargetMachine;
-  class XCoreTargetMachine;
-  class formatted_raw_ostream;
-
-  FunctionPass *createXCoreISelDag(XCoreTargetMachine &TM);
-
-  extern Target TheXCoreTarget;
-
-} // end namespace llvm;
-
-// Defines symbolic names for XCore registers.  This defines a mapping from
-// register name to register number.
-//
-#include "XCoreGenRegisterNames.inc"
-
-// Defines symbolic names for the XCore instructions.
-//
-#include "XCoreGenInstrNames.inc"
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCore.td b/libclamav/c++/llvm/lib/Target/XCore/XCore.td
deleted file mode 100644
index 7a2dcdb..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCore.td
+++ /dev/null
@@ -1,62 +0,0 @@
-//===- XCore.td - Describe the XCore Target Machine --------*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Target-independent interfaces which we are implementing
-//===----------------------------------------------------------------------===//
-
-include "llvm/Target/Target.td"
-
-//===----------------------------------------------------------------------===//
-// Descriptions
-//===----------------------------------------------------------------------===//
-
-include "XCoreRegisterInfo.td"
-include "XCoreInstrInfo.td"
-include "XCoreCallingConv.td"
-
-def XCoreInstrInfo : InstrInfo {
-  let TSFlagsFields = [];
-  let TSFlagsShifts = [];
-}
-
-//===----------------------------------------------------------------------===//
-// XCore Subtarget features.
-//===----------------------------------------------------------------------===//
-
-def FeatureXS1A
-  : SubtargetFeature<"xs1a", "IsXS1A", "true",
-                     "Enable XS1A instructions">;
-
-def FeatureXS1B
-  : SubtargetFeature<"xs1b", "IsXS1B", "true",
-                     "Enable XS1B instructions">;
-
-//===----------------------------------------------------------------------===//
-// XCore processors supported.
-//===----------------------------------------------------------------------===//
-
-class Proc<string Name, list<SubtargetFeature> Features>
- : Processor<Name, NoItineraries, Features>;
-
-def : Proc<"generic",      [FeatureXS1A]>;
-def : Proc<"xs1a-generic", [FeatureXS1A]>;
-def : Proc<"xs1b-generic", [FeatureXS1B]>;
-
-//===----------------------------------------------------------------------===//
-// Declare the target which we are implementing
-//===----------------------------------------------------------------------===//
-
-def XCore : Target {
-  // Pull in Instruction Info:
-  let InstructionSet = XCoreInstrInfo;
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreCallingConv.td b/libclamav/c++/llvm/lib/Target/XCore/XCoreCallingConv.td
deleted file mode 100644
index 8107e32..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreCallingConv.td
+++ /dev/null
@@ -1,33 +0,0 @@
-//===- XCoreCallingConv.td - Calling Conventions for XCore -*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-// This describes the calling conventions for XCore architecture.
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// XCore Return Value Calling Convention
-//===----------------------------------------------------------------------===//
-def RetCC_XCore : CallingConv<[
-  // i32 are returned in registers R0, R1, R2, R3
-  CCIfType<[i32], CCAssignToReg<[R0, R1, R2, R3]>>
-]>;
-
-//===----------------------------------------------------------------------===//
-// XCore Argument Calling Conventions
-//===----------------------------------------------------------------------===//
-def CC_XCore : CallingConv<[
-  // Promote i8/i16 arguments to i32.
-  CCIfType<[i8, i16], CCPromoteToType<i32>>,
-
-  // The first 4 integer arguments are passed in integer registers.
-  CCIfType<[i32], CCAssignToReg<[R0, R1, R2, R3]>>,
-
-  // Integer values get stored in stack slots that are 4 bytes in
-  // size and 4-byte aligned.
-  CCIfType<[i32], CCAssignToStack<4, 4>>
-]>;
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreFrameInfo.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreFrameInfo.cpp
deleted file mode 100644
index f50dc96..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreFrameInfo.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- XCoreFrameInfo.cpp - Frame info for XCore Target ---------*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains XCore frame information that doesn't fit anywhere else
-// cleanly...
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCore.h"
-#include "XCoreFrameInfo.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-// XCoreFrameInfo:
-//===----------------------------------------------------------------------===//
-
-XCoreFrameInfo::XCoreFrameInfo(const TargetMachine &tm):
-  TargetFrameInfo(TargetFrameInfo::StackGrowsDown, 4, 0)
-{
-  // Do nothing
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreFrameInfo.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreFrameInfo.h
deleted file mode 100644
index 2c67577..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreFrameInfo.h
+++ /dev/null
@@ -1,34 +0,0 @@
-//===-- XCoreFrameInfo.h - Frame info for XCore Target -----------*- C++ -*-==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains XCore frame information that doesn't fit anywhere else
-// cleanly...
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCOREFRAMEINFO_H
-#define XCOREFRAMEINFO_H
-
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-
-namespace llvm {
-  class XCoreFrameInfo: public TargetFrameInfo {
-
-  public:
-    XCoreFrameInfo(const TargetMachine &tm);
-
-    //! Stack slot size (4 bytes)
-    static int stackSlotSize() {
-      return 4;
-    }
-  };
-}
-
-#endif // XCOREFRAMEINFO_H
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp
deleted file mode 100644
index 1a5f102..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//===-- XCoreISelDAGToDAG.cpp - A dag to dag inst selector for XCore ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an instruction selector for the XCore target.
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCore.h"
-#include "XCoreISelLowering.h"
-#include "XCoreTargetMachine.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/Constants.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/Target/TargetLowering.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include <queue>
-#include <set>
-using namespace llvm;
-
-/// XCoreDAGToDAGISel - XCore specific code to select XCore machine
-/// instructions for SelectionDAG operations.
-///
-namespace {
-  class XCoreDAGToDAGISel : public SelectionDAGISel {
-    XCoreTargetLowering &Lowering;
-    const XCoreSubtarget &Subtarget;
-
-  public:
-    XCoreDAGToDAGISel(XCoreTargetMachine &TM)
-      : SelectionDAGISel(TM),
-        Lowering(*TM.getTargetLowering()), 
-        Subtarget(*TM.getSubtargetImpl()) { }
-
-    SDNode *Select(SDValue Op);
-    
-    /// getI32Imm - Return a target constant with the specified value, of type
-    /// i32.
-    inline SDValue getI32Imm(unsigned Imm) {
-      return CurDAG->getTargetConstant(Imm, MVT::i32);
-    }
-
-    // Complex Pattern Selectors.
-    bool SelectADDRspii(SDValue Op, SDValue Addr, SDValue &Base,
-                        SDValue &Offset);
-    bool SelectADDRdpii(SDValue Op, SDValue Addr, SDValue &Base,
-                        SDValue &Offset);
-    bool SelectADDRcpii(SDValue Op, SDValue Addr, SDValue &Base,
-                        SDValue &Offset);
-    
-    virtual void InstructionSelect();
-
-    virtual const char *getPassName() const {
-      return "XCore DAG->DAG Pattern Instruction Selection";
-    } 
-    
-    // Include the pieces autogenerated from the target description.
-  #include "XCoreGenDAGISel.inc"
-  };
-}  // end anonymous namespace
-
-/// createXCoreISelDag - This pass converts a legalized DAG into a 
-/// XCore-specific DAG, ready for instruction scheduling.
-///
-FunctionPass *llvm::createXCoreISelDag(XCoreTargetMachine &TM) {
-  return new XCoreDAGToDAGISel(TM);
-}
-
-bool XCoreDAGToDAGISel::SelectADDRspii(SDValue Op, SDValue Addr,
-                                  SDValue &Base, SDValue &Offset) {
-  FrameIndexSDNode *FIN = 0;
-  if ((FIN = dyn_cast<FrameIndexSDNode>(Addr))) {
-    Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-    Offset = CurDAG->getTargetConstant(0, MVT::i32);
-    return true;
-  }
-  if (Addr.getOpcode() == ISD::ADD) {
-    ConstantSDNode *CN = 0;
-    if ((FIN = dyn_cast<FrameIndexSDNode>(Addr.getOperand(0)))
-      && (CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))
-      && (CN->getSExtValue() % 4 == 0 && CN->getSExtValue() >= 0)) {
-      // Constant positive word offset from frame index
-      Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
-      Offset = CurDAG->getTargetConstant(CN->getSExtValue(), MVT::i32);
-      return true;
-    }
-  }
-  return false;
-}
-
-bool XCoreDAGToDAGISel::SelectADDRdpii(SDValue Op, SDValue Addr,
-                                  SDValue &Base, SDValue &Offset) {
-  if (Addr.getOpcode() == XCoreISD::DPRelativeWrapper) {
-    Base = Addr.getOperand(0);
-    Offset = CurDAG->getTargetConstant(0, MVT::i32);
-    return true;
-  }
-  if (Addr.getOpcode() == ISD::ADD) {
-    ConstantSDNode *CN = 0;
-    if ((Addr.getOperand(0).getOpcode() == XCoreISD::DPRelativeWrapper)
-      && (CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))
-      && (CN->getSExtValue() % 4 == 0)) {
-      // Constant word offset from a object in the data region
-      Base = Addr.getOperand(0).getOperand(0);
-      Offset = CurDAG->getTargetConstant(CN->getSExtValue(), MVT::i32);
-      return true;
-    }
-  }
-  return false;
-}
-
-bool XCoreDAGToDAGISel::SelectADDRcpii(SDValue Op, SDValue Addr,
-                                  SDValue &Base, SDValue &Offset) {
-  if (Addr.getOpcode() == XCoreISD::CPRelativeWrapper) {
-    Base = Addr.getOperand(0);
-    Offset = CurDAG->getTargetConstant(0, MVT::i32);
-    return true;
-  }
-  if (Addr.getOpcode() == ISD::ADD) {
-    ConstantSDNode *CN = 0;
-    if ((Addr.getOperand(0).getOpcode() == XCoreISD::CPRelativeWrapper)
-      && (CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))
-      && (CN->getSExtValue() % 4 == 0)) {
-      // Constant word offset from a object in the data region
-      Base = Addr.getOperand(0).getOperand(0);
-      Offset = CurDAG->getTargetConstant(CN->getSExtValue(), MVT::i32);
-      return true;
-    }
-  }
-  return false;
-}
-
-/// InstructionSelect - This callback is invoked by
-/// SelectionDAGISel when it has created a SelectionDAG for us to codegen.
-void XCoreDAGToDAGISel::
-InstructionSelect() {
-  DEBUG(BB->dump());
-
-  // Select target instructions for the DAG.
-  SelectRoot(*CurDAG);
-  
-  CurDAG->RemoveDeadNodes();
-}
-
-SDNode *XCoreDAGToDAGISel::Select(SDValue Op) {
-  SDNode *N = Op.getNode();
-  DebugLoc dl = N->getDebugLoc();
-  EVT NVT = N->getValueType(0);
-  if (NVT == MVT::i32) {
-    switch (N->getOpcode()) {
-      default: break;
-      case ISD::Constant: {
-        if (Predicate_immMskBitp(N)) {
-          SDValue MskSize = Transform_msksize_xform(N);
-          return CurDAG->getTargetNode(XCore::MKMSK_rus, dl, MVT::i32, MskSize);
-        }
-        else if (! Predicate_immU16(N)) {
-          unsigned Val = cast<ConstantSDNode>(N)->getZExtValue();
-          SDValue CPIdx =
-            CurDAG->getTargetConstantPool(ConstantInt::get(
-                                  Type::getInt32Ty(*CurDAG->getContext()), Val),
-                                          TLI.getPointerTy());
-          return CurDAG->getTargetNode(XCore::LDWCP_lru6, dl, MVT::i32, 
-                                       MVT::Other, CPIdx, 
-                                       CurDAG->getEntryNode());
-        }
-        break;
-      }
-      case ISD::SMUL_LOHI: {
-        // FIXME fold addition into the macc instruction
-        if (!Subtarget.isXS1A()) {
-          SDValue Zero(CurDAG->getTargetNode(XCore::LDC_ru6, dl, MVT::i32,
-                                  CurDAG->getTargetConstant(0, MVT::i32)), 0);
-          SDValue Ops[] = { Zero, Zero, Op.getOperand(0), Op.getOperand(1) };
-          SDNode *ResNode = CurDAG->getTargetNode(XCore::MACCS_l4r, dl,
-                                                  MVT::i32, MVT::i32, Ops, 4);
-          ReplaceUses(SDValue(N, 0), SDValue(ResNode, 1));
-          ReplaceUses(SDValue(N, 1), SDValue(ResNode, 0));
-          return NULL;
-        }
-        break;
-      }
-      case ISD::UMUL_LOHI: {
-        // FIXME fold addition into the macc / lmul instruction
-        SDValue Zero(CurDAG->getTargetNode(XCore::LDC_ru6, dl, MVT::i32,
-                                  CurDAG->getTargetConstant(0, MVT::i32)), 0);
-        SDValue Ops[] = { Op.getOperand(0), Op.getOperand(1),
-                            Zero, Zero };
-        SDNode *ResNode = CurDAG->getTargetNode(XCore::LMUL_l6r, dl, MVT::i32,
-                                                MVT::i32, Ops, 4);
-        ReplaceUses(SDValue(N, 0), SDValue(ResNode, 1));
-        ReplaceUses(SDValue(N, 1), SDValue(ResNode, 0));
-        return NULL;
-      }
-      case XCoreISD::LADD: {
-        if (!Subtarget.isXS1A()) {
-          SDValue Ops[] = { Op.getOperand(0), Op.getOperand(1),
-                              Op.getOperand(2) };
-          return CurDAG->getTargetNode(XCore::LADD_l5r, dl, MVT::i32, MVT::i32,
-                                       Ops, 3);
-        }
-        break;
-      }
-      case XCoreISD::LSUB: {
-        if (!Subtarget.isXS1A()) {
-          SDValue Ops[] = { Op.getOperand(0), Op.getOperand(1),
-                              Op.getOperand(2) };
-          return CurDAG->getTargetNode(XCore::LSUB_l5r, dl, MVT::i32, MVT::i32,
-                                       Ops, 3);
-        }
-        break;
-      }
-      // Other cases are autogenerated.
-    }
-  }
-  return SelectCode(Op);
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.cpp
deleted file mode 100644
index 605ed83..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.cpp
+++ /dev/null
@@ -1,1174 +0,0 @@
-//===-- XCoreISelLowering.cpp - XCore DAG Lowering Implementation   ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the XCoreTargetLowering class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "xcore-lower"
-
-#include "XCoreISelLowering.h"
-#include "XCoreMachineFunctionInfo.h"
-#include "XCore.h"
-#include "XCoreTargetObjectFile.h"
-#include "XCoreTargetMachine.h"
-#include "XCoreSubtarget.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Function.h"
-#include "llvm/Intrinsics.h"
-#include "llvm/CallingConv.h"
-#include "llvm/GlobalVariable.h"
-#include "llvm/GlobalAlias.h"
-#include "llvm/CodeGen/CallingConvLower.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "llvm/CodeGen/ValueTypes.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/VectorExtras.h"
-#include <queue>
-#include <set>
-using namespace llvm;
-
-const char *XCoreTargetLowering::
-getTargetNodeName(unsigned Opcode) const 
-{
-  switch (Opcode) 
-  {
-    case XCoreISD::BL                : return "XCoreISD::BL";
-    case XCoreISD::PCRelativeWrapper : return "XCoreISD::PCRelativeWrapper";
-    case XCoreISD::DPRelativeWrapper : return "XCoreISD::DPRelativeWrapper";
-    case XCoreISD::CPRelativeWrapper : return "XCoreISD::CPRelativeWrapper";
-    case XCoreISD::STWSP             : return "XCoreISD::STWSP";
-    case XCoreISD::RETSP             : return "XCoreISD::RETSP";
-    default                           : return NULL;
-  }
-}
-
-XCoreTargetLowering::XCoreTargetLowering(XCoreTargetMachine &XTM)
-  : TargetLowering(XTM, new XCoreTargetObjectFile()),
-    TM(XTM),
-    Subtarget(*XTM.getSubtargetImpl()) {
-
-  // Set up the register classes.
-  addRegisterClass(MVT::i32, XCore::GRRegsRegisterClass);
-
-  // Compute derived properties from the register classes
-  computeRegisterProperties();
-
-  // Division is expensive
-  setIntDivIsCheap(false);
-
-  setShiftAmountType(MVT::i32);
-  setStackPointerRegisterToSaveRestore(XCore::SP);
-
-  setSchedulingPreference(SchedulingForRegPressure);
-
-  // Use i32 for setcc operations results (slt, sgt, ...).
-  setBooleanContents(ZeroOrOneBooleanContent);
-
-  // XCore does not have the NodeTypes below.
-  setOperationAction(ISD::BR_CC,     MVT::Other, Expand);
-  setOperationAction(ISD::SELECT_CC, MVT::i32,   Custom);
-  setOperationAction(ISD::ADDC, MVT::i32, Expand);
-  setOperationAction(ISD::ADDE, MVT::i32, Expand);
-  setOperationAction(ISD::SUBC, MVT::i32, Expand);
-  setOperationAction(ISD::SUBE, MVT::i32, Expand);
-
-  // Stop the combiner recombining select and set_cc
-  setOperationAction(ISD::SELECT_CC, MVT::Other, Expand);
-  
-  // 64bit
-  if (!Subtarget.isXS1A()) {
-    setOperationAction(ISD::ADD, MVT::i64, Custom);
-    setOperationAction(ISD::SUB, MVT::i64, Custom);
-  }
-  if (Subtarget.isXS1A()) {
-    setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
-  }
-  setOperationAction(ISD::MULHS, MVT::i32, Expand);
-  setOperationAction(ISD::MULHU, MVT::i32, Expand);
-  setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
-  setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
-  setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
-  
-  // Bit Manipulation
-  setOperationAction(ISD::CTPOP, MVT::i32, Expand);
-  setOperationAction(ISD::ROTL , MVT::i32, Expand);
-  setOperationAction(ISD::ROTR , MVT::i32, Expand);
-  
-  setOperationAction(ISD::TRAP, MVT::Other, Legal);
-  
-  // Expand jump tables for now
-  setOperationAction(ISD::BR_JT, MVT::Other, Expand);
-  setOperationAction(ISD::JumpTable, MVT::i32, Custom);
-
-  setOperationAction(ISD::GlobalAddress, MVT::i32,   Custom);
-  
-  // Thread Local Storage
-  setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
-  
-  // Conversion of i64 -> double produces constantpool nodes
-  setOperationAction(ISD::ConstantPool, MVT::i32,   Custom);
-
-  // Loads
-  setLoadExtAction(ISD::EXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i1, Promote);
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);
-
-  setLoadExtAction(ISD::SEXTLOAD, MVT::i8, Expand);
-  setLoadExtAction(ISD::ZEXTLOAD, MVT::i16, Expand);
-
-  // Custom expand misaligned loads / stores.
-  setOperationAction(ISD::LOAD, MVT::i32, Custom);
-  setOperationAction(ISD::STORE, MVT::i32, Custom);
-
-  // Varargs
-  setOperationAction(ISD::VAEND, MVT::Other, Expand);
-  setOperationAction(ISD::VACOPY, MVT::Other, Expand);
-  setOperationAction(ISD::VAARG, MVT::Other, Custom);
-  setOperationAction(ISD::VASTART, MVT::Other, Custom);
-  
-  // Dynamic stack
-  setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
-  setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
-  setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Expand);
-  
-  // Debug
-  setOperationAction(ISD::DBG_STOPPOINT, MVT::Other, Expand);
-  setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
-
-  maxStoresPerMemset = 4;
-  maxStoresPerMemmove = maxStoresPerMemcpy = 2;
-
-  // We have target-specific dag combine patterns for the following nodes:
-  setTargetDAGCombine(ISD::STORE);
-}
-
-SDValue XCoreTargetLowering::
-LowerOperation(SDValue Op, SelectionDAG &DAG) {
-  switch (Op.getOpcode()) 
-  {
-  case ISD::GlobalAddress:    return LowerGlobalAddress(Op, DAG);
-  case ISD::GlobalTLSAddress: return LowerGlobalTLSAddress(Op, DAG);
-  case ISD::ConstantPool:     return LowerConstantPool(Op, DAG);
-  case ISD::JumpTable:        return LowerJumpTable(Op, DAG);
-  case ISD::LOAD:             return LowerLOAD(Op, DAG);
-  case ISD::STORE:            return LowerSTORE(Op, DAG);
-  case ISD::SELECT_CC:        return LowerSELECT_CC(Op, DAG);
-  case ISD::VAARG:            return LowerVAARG(Op, DAG);
-  case ISD::VASTART:          return LowerVASTART(Op, DAG);
-  // FIXME: Remove these when LegalizeDAGTypes lands.
-  case ISD::ADD:
-  case ISD::SUB:              return ExpandADDSUB(Op.getNode(), DAG);
-  case ISD::FRAMEADDR:        return LowerFRAMEADDR(Op, DAG);
-  default:
-    llvm_unreachable("unimplemented operand");
-    return SDValue();
-  }
-}
-
-/// ReplaceNodeResults - Replace the results of node with an illegal result
-/// type with new values built out of custom code.
-void XCoreTargetLowering::ReplaceNodeResults(SDNode *N,
-                                             SmallVectorImpl<SDValue>&Results,
-                                             SelectionDAG &DAG) {
-  switch (N->getOpcode()) {
-  default:
-    llvm_unreachable("Don't know how to custom expand this!");
-    return;
-  case ISD::ADD:
-  case ISD::SUB:
-    Results.push_back(ExpandADDSUB(N, DAG));
-    return;
-  }
-}
-
-/// getFunctionAlignment - Return the Log2 alignment of this function.
-unsigned XCoreTargetLowering::
-getFunctionAlignment(const Function *) const {
-  return 1;
-}
-
-//===----------------------------------------------------------------------===//
-//  Misc Lower Operation implementation
-//===----------------------------------------------------------------------===//
-
-SDValue XCoreTargetLowering::
-LowerSELECT_CC(SDValue Op, SelectionDAG &DAG)
-{
-  DebugLoc dl = Op.getDebugLoc();
-  SDValue Cond = DAG.getNode(ISD::SETCC, dl, MVT::i32, Op.getOperand(2),
-                             Op.getOperand(3), Op.getOperand(4));
-  return DAG.getNode(ISD::SELECT, dl, MVT::i32, Cond, Op.getOperand(0),
-                     Op.getOperand(1));
-}
-
-SDValue XCoreTargetLowering::
-getGlobalAddressWrapper(SDValue GA, GlobalValue *GV, SelectionDAG &DAG)
-{
-  // FIXME there is no actual debug info here
-  DebugLoc dl = GA.getDebugLoc();
-  if (isa<Function>(GV)) {
-    return DAG.getNode(XCoreISD::PCRelativeWrapper, dl, MVT::i32, GA);
-  } else if (!Subtarget.isXS1A()) {
-    const GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV);
-    if (!GVar) {
-      // If GV is an alias then use the aliasee to determine constness
-      if (const GlobalAlias *GA = dyn_cast<GlobalAlias>(GV))
-        GVar = dyn_cast_or_null<GlobalVariable>(GA->resolveAliasedGlobal());
-    }
-    bool isConst = GVar && GVar->isConstant();
-    if (isConst) {
-      return DAG.getNode(XCoreISD::CPRelativeWrapper, dl, MVT::i32, GA);
-    }
-  }
-  return DAG.getNode(XCoreISD::DPRelativeWrapper, dl, MVT::i32, GA);
-}
-
-SDValue XCoreTargetLowering::
-LowerGlobalAddress(SDValue Op, SelectionDAG &DAG)
-{
-  GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
-  SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
-  // If it's a debug information descriptor, don't mess with it.
-  if (DAG.isVerifiedDebugInfoDesc(Op))
-    return GA;
-  return getGlobalAddressWrapper(GA, GV, DAG);
-}
-
-static inline SDValue BuildGetId(SelectionDAG &DAG, DebugLoc dl) {
-  return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, MVT::i32,
-                     DAG.getConstant(Intrinsic::xcore_getid, MVT::i32));
-}
-
-static inline bool isZeroLengthArray(const Type *Ty) {
-  const ArrayType *AT = dyn_cast_or_null<ArrayType>(Ty);
-  return AT && (AT->getNumElements() == 0);
-}
-
-SDValue XCoreTargetLowering::
-LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG)
-{
-  // FIXME there isn't really debug info here
-  DebugLoc dl = Op.getDebugLoc();
-  // transform to label + getid() * size
-  GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
-  SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
-  const GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV);
-  if (!GVar) {
-    // If GV is an alias then use the aliasee to determine size
-    if (const GlobalAlias *GA = dyn_cast<GlobalAlias>(GV))
-      GVar = dyn_cast_or_null<GlobalVariable>(GA->resolveAliasedGlobal());
-  }
-  if (! GVar) {
-    llvm_unreachable("Thread local object not a GlobalVariable?");
-    return SDValue();
-  }
-  const Type *Ty = cast<PointerType>(GV->getType())->getElementType();
-  if (!Ty->isSized() || isZeroLengthArray(Ty)) {
-#ifndef NDEBUG
-    errs() << "Size of thread local object " << GVar->getName()
-           << " is unknown\n";
-#endif
-    llvm_unreachable(0);
-  }
-  SDValue base = getGlobalAddressWrapper(GA, GV, DAG);
-  const TargetData *TD = TM.getTargetData();
-  unsigned Size = TD->getTypeAllocSize(Ty);
-  SDValue offset = DAG.getNode(ISD::MUL, dl, MVT::i32, BuildGetId(DAG, dl),
-                       DAG.getConstant(Size, MVT::i32));
-  return DAG.getNode(ISD::ADD, dl, MVT::i32, base, offset);
-}
-
-SDValue XCoreTargetLowering::
-LowerConstantPool(SDValue Op, SelectionDAG &DAG)
-{
-  ConstantPoolSDNode *CP = cast<ConstantPoolSDNode>(Op);
-  // FIXME there isn't really debug info here
-  DebugLoc dl = CP->getDebugLoc();
-  if (Subtarget.isXS1A()) {
-    llvm_unreachable("Lowering of constant pool unimplemented");
-    return SDValue();
-  } else {
-    EVT PtrVT = Op.getValueType();
-    SDValue Res;
-    if (CP->isMachineConstantPoolEntry()) {
-      Res = DAG.getTargetConstantPool(CP->getMachineCPVal(), PtrVT,
-                                      CP->getAlignment());
-    } else {
-      Res = DAG.getTargetConstantPool(CP->getConstVal(), PtrVT,
-                                      CP->getAlignment());
-    }
-    return DAG.getNode(XCoreISD::CPRelativeWrapper, dl, MVT::i32, Res);
-  }
-}
-
-SDValue XCoreTargetLowering::
-LowerJumpTable(SDValue Op, SelectionDAG &DAG)
-{
-  // FIXME there isn't really debug info here
-  DebugLoc dl = Op.getDebugLoc();
-  EVT PtrVT = Op.getValueType();
-  JumpTableSDNode *JT = cast<JumpTableSDNode>(Op);
-  SDValue JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT);
-  return DAG.getNode(XCoreISD::DPRelativeWrapper, dl, MVT::i32, JTI);
-}
-
-static bool
-IsWordAlignedBasePlusConstantOffset(SDValue Addr, SDValue &AlignedBase,
-                                    int64_t &Offset)
-{
-  if (Addr.getOpcode() != ISD::ADD) {
-    return false;
-  }
-  ConstantSDNode *CN = 0;
-  if (!(CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))) {
-    return false;
-  }
-  int64_t off = CN->getSExtValue();
-  const SDValue &Base = Addr.getOperand(0);
-  const SDValue *Root = &Base;
-  if (Base.getOpcode() == ISD::ADD &&
-      Base.getOperand(1).getOpcode() == ISD::SHL) {
-    ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Base.getOperand(1)
-                                                      .getOperand(1));
-    if (CN && (CN->getSExtValue() >= 2)) {
-      Root = &Base.getOperand(0);
-    }
-  }
-  if (isa<FrameIndexSDNode>(*Root)) {
-    // All frame indicies are word aligned
-    AlignedBase = Base;
-    Offset = off;
-    return true;
-  }
-  if (Root->getOpcode() == XCoreISD::DPRelativeWrapper ||
-      Root->getOpcode() == XCoreISD::CPRelativeWrapper) {
-    // All dp / cp relative addresses are word aligned
-    AlignedBase = Base;
-    Offset = off;
-    return true;
-  }
-  return false;
-}
-
-SDValue XCoreTargetLowering::
-LowerLOAD(SDValue Op, SelectionDAG &DAG)
-{
-  LoadSDNode *LD = cast<LoadSDNode>(Op);
-  assert(LD->getExtensionType() == ISD::NON_EXTLOAD &&
-         "Unexpected extension type");
-  assert(LD->getMemoryVT() == MVT::i32 && "Unexpected load EVT");
-  if (allowsUnalignedMemoryAccesses(LD->getMemoryVT())) {
-    return SDValue();
-  }
-  unsigned ABIAlignment = getTargetData()->
-    getABITypeAlignment(LD->getMemoryVT().getTypeForEVT(*DAG.getContext()));
-  // Leave aligned load alone.
-  if (LD->getAlignment() >= ABIAlignment) {
-    return SDValue();
-  }
-  SDValue Chain = LD->getChain();
-  SDValue BasePtr = LD->getBasePtr();
-  DebugLoc dl = Op.getDebugLoc();
-  
-  SDValue Base;
-  int64_t Offset;
-  if (!LD->isVolatile() &&
-      IsWordAlignedBasePlusConstantOffset(BasePtr, Base, Offset)) {
-    if (Offset % 4 == 0) {
-      // We've managed to infer better alignment information than the load
-      // already has. Use an aligned load.
-      return DAG.getLoad(getPointerTy(), dl, Chain, BasePtr, NULL, 4);
-    }
-    // Lower to
-    // ldw low, base[offset >> 2]
-    // ldw high, base[(offset >> 2) + 1]
-    // shr low_shifted, low, (offset & 0x3) * 8
-    // shl high_shifted, high, 32 - (offset & 0x3) * 8
-    // or result, low_shifted, high_shifted
-    SDValue LowOffset = DAG.getConstant(Offset & ~0x3, MVT::i32);
-    SDValue HighOffset = DAG.getConstant((Offset & ~0x3) + 4, MVT::i32);
-    SDValue LowShift = DAG.getConstant((Offset & 0x3) * 8, MVT::i32);
-    SDValue HighShift = DAG.getConstant(32 - (Offset & 0x3) * 8, MVT::i32);
-    
-    SDValue LowAddr = DAG.getNode(ISD::ADD, dl, MVT::i32, Base, LowOffset);
-    SDValue HighAddr = DAG.getNode(ISD::ADD, dl, MVT::i32, Base, HighOffset);
-    
-    SDValue Low = DAG.getLoad(getPointerTy(), dl, Chain,
-                               LowAddr, NULL, 4);
-    SDValue High = DAG.getLoad(getPointerTy(), dl, Chain,
-                               HighAddr, NULL, 4);
-    SDValue LowShifted = DAG.getNode(ISD::SRL, dl, MVT::i32, Low, LowShift);
-    SDValue HighShifted = DAG.getNode(ISD::SHL, dl, MVT::i32, High, HighShift);
-    SDValue Result = DAG.getNode(ISD::OR, dl, MVT::i32, LowShifted, HighShifted);
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Low.getValue(1),
-                             High.getValue(1));
-    SDValue Ops[] = { Result, Chain };
-    return DAG.getMergeValues(Ops, 2, dl);
-  }
-  
-  if (LD->getAlignment() == 2) {
-    int SVOffset = LD->getSrcValueOffset();
-    SDValue Low = DAG.getExtLoad(ISD::ZEXTLOAD, dl, MVT::i32, Chain,
-                                 BasePtr, LD->getSrcValue(), SVOffset, MVT::i16,
-                                 LD->isVolatile(), 2);
-    SDValue HighAddr = DAG.getNode(ISD::ADD, dl, MVT::i32, BasePtr,
-                                   DAG.getConstant(2, MVT::i32));
-    SDValue High = DAG.getExtLoad(ISD::EXTLOAD, dl, MVT::i32, Chain,
-                                  HighAddr, LD->getSrcValue(), SVOffset + 2,
-                                  MVT::i16, LD->isVolatile(), 2);
-    SDValue HighShifted = DAG.getNode(ISD::SHL, dl, MVT::i32, High,
-                                      DAG.getConstant(16, MVT::i32));
-    SDValue Result = DAG.getNode(ISD::OR, dl, MVT::i32, Low, HighShifted);
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Low.getValue(1),
-                             High.getValue(1));
-    SDValue Ops[] = { Result, Chain };
-    return DAG.getMergeValues(Ops, 2, dl);
-  }
-  
-  // Lower to a call to __misaligned_load(BasePtr).
-  const Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext());
-  TargetLowering::ArgListTy Args;
-  TargetLowering::ArgListEntry Entry;
-  
-  Entry.Ty = IntPtrTy;
-  Entry.Node = BasePtr;
-  Args.push_back(Entry);
-  
-  std::pair<SDValue, SDValue> CallResult =
-        LowerCallTo(Chain, IntPtrTy, false, false,
-                    false, false, 0, CallingConv::C, false,
-                    /*isReturnValueUsed=*/true,
-                    DAG.getExternalSymbol("__misaligned_load", getPointerTy()),
-                    Args, DAG, dl);
-
-  SDValue Ops[] =
-    { CallResult.first, CallResult.second };
-
-  return DAG.getMergeValues(Ops, 2, dl);
-}
-
-SDValue XCoreTargetLowering::
-LowerSTORE(SDValue Op, SelectionDAG &DAG)
-{
-  StoreSDNode *ST = cast<StoreSDNode>(Op);
-  assert(!ST->isTruncatingStore() && "Unexpected store type");
-  assert(ST->getMemoryVT() == MVT::i32 && "Unexpected store EVT");
-  if (allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
-    return SDValue();
-  }
-  unsigned ABIAlignment = getTargetData()->
-    getABITypeAlignment(ST->getMemoryVT().getTypeForEVT(*DAG.getContext()));
-  // Leave aligned store alone.
-  if (ST->getAlignment() >= ABIAlignment) {
-    return SDValue();
-  }
-  SDValue Chain = ST->getChain();
-  SDValue BasePtr = ST->getBasePtr();
-  SDValue Value = ST->getValue();
-  DebugLoc dl = Op.getDebugLoc();
-  
-  if (ST->getAlignment() == 2) {
-    int SVOffset = ST->getSrcValueOffset();
-    SDValue Low = Value;
-    SDValue High = DAG.getNode(ISD::SRL, dl, MVT::i32, Value,
-                                      DAG.getConstant(16, MVT::i32));
-    SDValue StoreLow = DAG.getTruncStore(Chain, dl, Low, BasePtr,
-                                         ST->getSrcValue(), SVOffset, MVT::i16,
-                                         ST->isVolatile(), 2);
-    SDValue HighAddr = DAG.getNode(ISD::ADD, dl, MVT::i32, BasePtr,
-                                   DAG.getConstant(2, MVT::i32));
-    SDValue StoreHigh = DAG.getTruncStore(Chain, dl, High, HighAddr,
-                                          ST->getSrcValue(), SVOffset + 2,
-                                          MVT::i16, ST->isVolatile(), 2);
-    return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, StoreLow, StoreHigh);
-  }
-  
-  // Lower to a call to __misaligned_store(BasePtr, Value).
-  const Type *IntPtrTy = getTargetData()->getIntPtrType(*DAG.getContext());
-  TargetLowering::ArgListTy Args;
-  TargetLowering::ArgListEntry Entry;
-  
-  Entry.Ty = IntPtrTy;
-  Entry.Node = BasePtr;
-  Args.push_back(Entry);
-  
-  Entry.Node = Value;
-  Args.push_back(Entry);
-  
-  std::pair<SDValue, SDValue> CallResult =
-        LowerCallTo(Chain, Type::getVoidTy(*DAG.getContext()), false, false,
-                    false, false, 0, CallingConv::C, false,
-                    /*isReturnValueUsed=*/true,
-                    DAG.getExternalSymbol("__misaligned_store", getPointerTy()),
-                    Args, DAG, dl);
-
-  return CallResult.second;
-}
-
-SDValue XCoreTargetLowering::
-ExpandADDSUB(SDNode *N, SelectionDAG &DAG)
-{
-  assert(N->getValueType(0) == MVT::i64 &&
-         (N->getOpcode() == ISD::ADD || N->getOpcode() == ISD::SUB) &&
-        "Unknown operand to lower!");
-  assert(!Subtarget.isXS1A() && "Cannot custom lower ADD/SUB on xs1a");
-  DebugLoc dl = N->getDebugLoc();
-  
-  // Extract components
-  SDValue LHSL = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
-                            N->getOperand(0),  DAG.getConstant(0, MVT::i32));
-  SDValue LHSH = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
-                            N->getOperand(0),  DAG.getConstant(1, MVT::i32));
-  SDValue RHSL = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
-                             N->getOperand(1), DAG.getConstant(0, MVT::i32));
-  SDValue RHSH = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
-                             N->getOperand(1), DAG.getConstant(1, MVT::i32));
-  
-  // Expand
-  unsigned Opcode = (N->getOpcode() == ISD::ADD) ? XCoreISD::LADD :
-                                                   XCoreISD::LSUB;
-  SDValue Zero = DAG.getConstant(0, MVT::i32);
-  SDValue Carry = DAG.getNode(Opcode, dl, DAG.getVTList(MVT::i32, MVT::i32),
-                                  LHSL, RHSL, Zero);
-  SDValue Lo(Carry.getNode(), 1);
-  
-  SDValue Ignored = DAG.getNode(Opcode, dl, DAG.getVTList(MVT::i32, MVT::i32),
-                                  LHSH, RHSH, Carry);
-  SDValue Hi(Ignored.getNode(), 1);
-  // Merge the pieces
-  return DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi);
-}
-
-SDValue XCoreTargetLowering::
-LowerVAARG(SDValue Op, SelectionDAG &DAG)
-{
-  llvm_unreachable("unimplemented");
-  // FIX Arguments passed by reference need a extra dereference.
-  SDNode *Node = Op.getNode();
-  DebugLoc dl = Node->getDebugLoc();
-  const Value *V = cast<SrcValueSDNode>(Node->getOperand(2))->getValue();
-  EVT VT = Node->getValueType(0);
-  SDValue VAList = DAG.getLoad(getPointerTy(), dl, Node->getOperand(0),
-                               Node->getOperand(1), V, 0);
-  // Increment the pointer, VAList, to the next vararg
-  SDValue Tmp3 = DAG.getNode(ISD::ADD, dl, getPointerTy(), VAList, 
-                     DAG.getConstant(VT.getSizeInBits(), 
-                                     getPointerTy()));
-  // Store the incremented VAList to the legalized pointer
-  Tmp3 = DAG.getStore(VAList.getValue(1), dl, Tmp3, Node->getOperand(1), V, 0);
-  // Load the actual argument out of the pointer VAList
-  return DAG.getLoad(VT, dl, Tmp3, VAList, NULL, 0);
-}
-
-SDValue XCoreTargetLowering::
-LowerVASTART(SDValue Op, SelectionDAG &DAG)
-{
-  DebugLoc dl = Op.getDebugLoc();
-  // vastart stores the address of the VarArgsFrameIndex slot into the
-  // memory location argument
-  MachineFunction &MF = DAG.getMachineFunction();
-  XCoreFunctionInfo *XFI = MF.getInfo<XCoreFunctionInfo>();
-  SDValue Addr = DAG.getFrameIndex(XFI->getVarArgsFrameIndex(), MVT::i32);
-  const Value *SV = cast<SrcValueSDNode>(Op.getOperand(2))->getValue();
-  return DAG.getStore(Op.getOperand(0), dl, Addr, Op.getOperand(1), SV, 0);
-}
-
-SDValue XCoreTargetLowering::LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) {
-  DebugLoc dl = Op.getDebugLoc();
-  // Depths > 0 not supported yet! 
-  if (cast<ConstantSDNode>(Op.getOperand(0))->getZExtValue() > 0)
-    return SDValue();
-  
-  MachineFunction &MF = DAG.getMachineFunction();
-  const TargetRegisterInfo *RegInfo = getTargetMachine().getRegisterInfo();
-  return DAG.getCopyFromReg(DAG.getEntryNode(), dl, 
-                            RegInfo->getFrameRegister(MF), MVT::i32);
-}
-
-//===----------------------------------------------------------------------===//
-//                      Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-#include "XCoreGenCallingConv.inc"
-
-//===----------------------------------------------------------------------===//
-//                  Call Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-/// XCore call implementation
-SDValue
-XCoreTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
-                               unsigned CallConv, bool isVarArg,
-                               bool isTailCall,
-                               const SmallVectorImpl<ISD::OutputArg> &Outs,
-                               const SmallVectorImpl<ISD::InputArg> &Ins,
-                               DebugLoc dl, SelectionDAG &DAG,
-                               SmallVectorImpl<SDValue> &InVals) {
-
-  // For now, only CallingConv::C implemented
-  switch (CallConv)
-  {
-    default:
-      llvm_unreachable("Unsupported calling convention");
-    case CallingConv::Fast:
-    case CallingConv::C:
-      return LowerCCCCallTo(Chain, Callee, CallConv, isVarArg, isTailCall,
-                            Outs, Ins, dl, DAG, InVals);
-  }
-}
-
-/// LowerCCCCallTo - functions arguments are copied from virtual
-/// regs to (physical regs)/(stack frame), CALLSEQ_START and
-/// CALLSEQ_END are emitted.
-/// TODO: isTailCall, sret.
-SDValue
-XCoreTargetLowering::LowerCCCCallTo(SDValue Chain, SDValue Callee,
-                                    unsigned CallConv, bool isVarArg,
-                                    bool isTailCall,
-                                    const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                    const SmallVectorImpl<ISD::InputArg> &Ins,
-                                    DebugLoc dl, SelectionDAG &DAG,
-                                    SmallVectorImpl<SDValue> &InVals) {
-
-  // Analyze operands of the call, assigning locations to each operand.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-
-  // The ABI dictates there should be one stack slot available to the callee
-  // on function entry (for saving lr).
-  CCInfo.AllocateStack(4, 4);
-
-  CCInfo.AnalyzeCallOperands(Outs, CC_XCore);
-
-  // Get a count of how many bytes are to be pushed on the stack.
-  unsigned NumBytes = CCInfo.getNextStackOffset();
-
-  Chain = DAG.getCALLSEQ_START(Chain,DAG.getConstant(NumBytes, 
-                                 getPointerTy(), true));
-
-  SmallVector<std::pair<unsigned, SDValue>, 4> RegsToPass;
-  SmallVector<SDValue, 12> MemOpChains;
-
-  // Walk the register/memloc assignments, inserting copies/loads.
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-    CCValAssign &VA = ArgLocs[i];
-    SDValue Arg = Outs[i].Val;
-
-    // Promote the value if needed.
-    switch (VA.getLocInfo()) {
-      default: llvm_unreachable("Unknown loc info!");
-      case CCValAssign::Full: break;
-      case CCValAssign::SExt:
-        Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::ZExt:
-        Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-      case CCValAssign::AExt:
-        Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg);
-        break;
-    }
-    
-    // Arguments that can be passed on register must be kept at 
-    // RegsToPass vector
-    if (VA.isRegLoc()) {
-      RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
-    } else {
-      assert(VA.isMemLoc());
-
-      int Offset = VA.getLocMemOffset();
-
-      MemOpChains.push_back(DAG.getNode(XCoreISD::STWSP, dl, MVT::Other, 
-                                        Chain, Arg,
-                                        DAG.getConstant(Offset/4, MVT::i32)));
-    }
-  }
-
-  // Transform all store nodes into one single node because
-  // all store nodes are independent of each other.
-  if (!MemOpChains.empty())
-    Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, 
-                        &MemOpChains[0], MemOpChains.size());
-
-  // Build a sequence of copy-to-reg nodes chained together with token 
-  // chain and flag operands which copy the outgoing args into registers.
-  // The InFlag in necessary since all emited instructions must be
-  // stuck together.
-  SDValue InFlag;
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i) {
-    Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, 
-                             RegsToPass[i].second, InFlag);
-    InFlag = Chain.getValue(1);
-  }
-
-  // If the callee is a GlobalAddress node (quite common, every direct call is)
-  // turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
-  // Likewise ExternalSymbol -> TargetExternalSymbol.
-  if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
-    Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i32);
-  else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
-    Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i32);
-
-  // XCoreBranchLink = #chain, #target_address, #opt_in_flags...
-  //             = Chain, Callee, Reg#1, Reg#2, ...  
-  //
-  // Returns a chain & a flag for retval copy to use.
-  SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Flag);
-  SmallVector<SDValue, 8> Ops;
-  Ops.push_back(Chain);
-  Ops.push_back(Callee);
-
-  // Add argument registers to the end of the list so that they are 
-  // known live into the call.
-  for (unsigned i = 0, e = RegsToPass.size(); i != e; ++i)
-    Ops.push_back(DAG.getRegister(RegsToPass[i].first,
-                                  RegsToPass[i].second.getValueType()));
-
-  if (InFlag.getNode())
-    Ops.push_back(InFlag);
-
-  Chain  = DAG.getNode(XCoreISD::BL, dl, NodeTys, &Ops[0], Ops.size());
-  InFlag = Chain.getValue(1);
-
-  // Create the CALLSEQ_END node.
-  Chain = DAG.getCALLSEQ_END(Chain,
-                             DAG.getConstant(NumBytes, getPointerTy(), true),
-                             DAG.getConstant(0, getPointerTy(), true),
-                             InFlag);
-  InFlag = Chain.getValue(1);
-
-  // Handle result values, copying them out of physregs into vregs that we
-  // return.
-  return LowerCallResult(Chain, InFlag, CallConv, isVarArg,
-                         Ins, dl, DAG, InVals);
-}
-
-/// LowerCallResult - Lower the result values of a call into the
-/// appropriate copies out of appropriate physical registers.
-SDValue
-XCoreTargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
-                                     unsigned CallConv, bool isVarArg,
-                                     const SmallVectorImpl<ISD::InputArg> &Ins,
-                                     DebugLoc dl, SelectionDAG &DAG,
-                                     SmallVectorImpl<SDValue> &InVals) {
-
-  // Assign locations to each value returned by this call.
-  SmallVector<CCValAssign, 16> RVLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-
-  CCInfo.AnalyzeCallResult(Ins, RetCC_XCore);
-
-  // Copy all of the result registers out of their specified physreg.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    Chain = DAG.getCopyFromReg(Chain, dl, RVLocs[i].getLocReg(),
-                                 RVLocs[i].getValVT(), InFlag).getValue(1);
-    InFlag = Chain.getValue(2);
-    InVals.push_back(Chain.getValue(0));
-  }
-
-  return Chain;
-}
-
-//===----------------------------------------------------------------------===//
-//             Formal Arguments Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-/// XCore formal arguments implementation
-SDValue
-XCoreTargetLowering::LowerFormalArguments(SDValue Chain,
-                                          unsigned CallConv,
-                                          bool isVarArg,
-                                      const SmallVectorImpl<ISD::InputArg> &Ins,
-                                          DebugLoc dl,
-                                          SelectionDAG &DAG,
-                                          SmallVectorImpl<SDValue> &InVals) {
-  switch (CallConv)
-  {
-    default:
-      llvm_unreachable("Unsupported calling convention");
-    case CallingConv::C:
-    case CallingConv::Fast:
-      return LowerCCCArguments(Chain, CallConv, isVarArg,
-                               Ins, dl, DAG, InVals);
-  }
-}
-
-/// LowerCCCArguments - transform physical registers into
-/// virtual registers and generate load operations for
-/// arguments places on the stack.
-/// TODO: sret
-SDValue
-XCoreTargetLowering::LowerCCCArguments(SDValue Chain,
-                                       unsigned CallConv,
-                                       bool isVarArg,
-                                       const SmallVectorImpl<ISD::InputArg>
-                                         &Ins,
-                                       DebugLoc dl,
-                                       SelectionDAG &DAG,
-                                       SmallVectorImpl<SDValue> &InVals) {
-  MachineFunction &MF = DAG.getMachineFunction();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineRegisterInfo &RegInfo = MF.getRegInfo();
-
-  // Assign locations to all of the incoming arguments.
-  SmallVector<CCValAssign, 16> ArgLocs;
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 ArgLocs, *DAG.getContext());
-
-  CCInfo.AnalyzeFormalArguments(Ins, CC_XCore);
-
-  unsigned StackSlotSize = XCoreFrameInfo::stackSlotSize();
-
-  unsigned LRSaveSize = StackSlotSize;
-  
-  for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) {
-
-    CCValAssign &VA = ArgLocs[i];
-    
-    if (VA.isRegLoc()) {
-      // Arguments passed in registers
-      EVT RegVT = VA.getLocVT();
-      switch (RegVT.getSimpleVT().SimpleTy) {
-      default:
-        {
-#ifndef NDEBUG
-          errs() << "LowerFormalArguments Unhandled argument type: "
-                 << RegVT.getSimpleVT().SimpleTy << "\n";
-#endif
-          llvm_unreachable(0);
-        }
-      case MVT::i32:
-        unsigned VReg = RegInfo.createVirtualRegister(
-                          XCore::GRRegsRegisterClass);
-        RegInfo.addLiveIn(VA.getLocReg(), VReg);
-        InVals.push_back(DAG.getCopyFromReg(Chain, dl, VReg, RegVT));
-      }
-    } else {
-      // sanity check
-      assert(VA.isMemLoc());
-      // Load the argument to a virtual register
-      unsigned ObjSize = VA.getLocVT().getSizeInBits()/8;
-      if (ObjSize > StackSlotSize) {
-        errs() << "LowerFormalArguments Unhandled argument type: "
-               << (unsigned)VA.getLocVT().getSimpleVT().SimpleTy
-               << "\n";
-      }
-      // Create the frame index object for this incoming parameter...
-      int FI = MFI->CreateFixedObject(ObjSize,
-                                      LRSaveSize + VA.getLocMemOffset());
-
-      // Create the SelectionDAG nodes corresponding to a load
-      //from this parameter
-      SDValue FIN = DAG.getFrameIndex(FI, MVT::i32);
-      InVals.push_back(DAG.getLoad(VA.getLocVT(), dl, Chain, FIN, NULL, 0));
-    }
-  }
-  
-  if (isVarArg) {
-    /* Argument registers */
-    static const unsigned ArgRegs[] = {
-      XCore::R0, XCore::R1, XCore::R2, XCore::R3
-    };
-    XCoreFunctionInfo *XFI = MF.getInfo<XCoreFunctionInfo>();
-    unsigned FirstVAReg = CCInfo.getFirstUnallocated(ArgRegs,
-                                                     array_lengthof(ArgRegs));
-    if (FirstVAReg < array_lengthof(ArgRegs)) {
-      SmallVector<SDValue, 4> MemOps;
-      int offset = 0;
-      // Save remaining registers, storing higher register numbers at a higher
-      // address
-      for (unsigned i = array_lengthof(ArgRegs) - 1; i >= FirstVAReg; --i) {
-        // Create a stack slot
-        int FI = MFI->CreateFixedObject(4, offset);
-        if (i == FirstVAReg) {
-          XFI->setVarArgsFrameIndex(FI);
-        }
-        offset -= StackSlotSize;
-        SDValue FIN = DAG.getFrameIndex(FI, MVT::i32);
-        // Move argument from phys reg -> virt reg
-        unsigned VReg = RegInfo.createVirtualRegister(
-                          XCore::GRRegsRegisterClass);
-        RegInfo.addLiveIn(ArgRegs[i], VReg);
-        SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i32);
-        // Move argument from virt reg -> stack
-        SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0);
-        MemOps.push_back(Store);
-      }
-      if (!MemOps.empty())
-        Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                            &MemOps[0], MemOps.size());
-    } else {
-      // This will point to the next argument passed via stack.
-      XFI->setVarArgsFrameIndex(
-          MFI->CreateFixedObject(4, LRSaveSize + CCInfo.getNextStackOffset()));
-    }
-  }
-  
-  return Chain;
-}
-
-//===----------------------------------------------------------------------===//
-//               Return Value Calling Convention Implementation
-//===----------------------------------------------------------------------===//
-
-SDValue
-XCoreTargetLowering::LowerReturn(SDValue Chain,
-                                 unsigned CallConv, bool isVarArg,
-                                 const SmallVectorImpl<ISD::OutputArg> &Outs,
-                                 DebugLoc dl, SelectionDAG &DAG) {
-
-  // CCValAssign - represent the assignment of
-  // the return value to a location
-  SmallVector<CCValAssign, 16> RVLocs;
-
-  // CCState - Info about the registers and stack slot.
-  CCState CCInfo(CallConv, isVarArg, getTargetMachine(),
-                 RVLocs, *DAG.getContext());
-
-  // Analize return values.
-  CCInfo.AnalyzeReturn(Outs, RetCC_XCore);
-
-  // If this is the first return lowered for this function, add 
-  // the regs to the liveout set for the function.
-  if (DAG.getMachineFunction().getRegInfo().liveout_empty()) {
-    for (unsigned i = 0; i != RVLocs.size(); ++i)
-      if (RVLocs[i].isRegLoc())
-        DAG.getMachineFunction().getRegInfo().addLiveOut(RVLocs[i].getLocReg());
-  }
-
-  SDValue Flag;
-
-  // Copy the result values into the output registers.
-  for (unsigned i = 0; i != RVLocs.size(); ++i) {
-    CCValAssign &VA = RVLocs[i];
-    assert(VA.isRegLoc() && "Can only return in registers!");
-
-    Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), 
-                             Outs[i].Val, Flag);
-
-    // guarantee that all emitted copies are
-    // stuck together, avoiding something bad
-    Flag = Chain.getValue(1);
-  }
-
-  // Return on XCore is always a "retsp 0"
-  if (Flag.getNode())
-    return DAG.getNode(XCoreISD::RETSP, dl, MVT::Other,
-                       Chain, DAG.getConstant(0, MVT::i32), Flag);
-  else // Return Void
-    return DAG.getNode(XCoreISD::RETSP, dl, MVT::Other,
-                       Chain, DAG.getConstant(0, MVT::i32));
-}
-
-//===----------------------------------------------------------------------===//
-//  Other Lowering Code
-//===----------------------------------------------------------------------===//
-
-MachineBasicBlock *
-XCoreTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                 MachineBasicBlock *BB) const {
-  const TargetInstrInfo &TII = *getTargetMachine().getInstrInfo();
-  DebugLoc dl = MI->getDebugLoc();
-  assert((MI->getOpcode() == XCore::SELECT_CC) &&
-         "Unexpected instr type to insert");
-  
-  // To "insert" a SELECT_CC instruction, we actually have to insert the diamond
-  // control-flow pattern.  The incoming instruction knows the destination vreg
-  // to set, the condition code register to branch on, the true/false values to
-  // select between, and a branch opcode to use.
-  const BasicBlock *LLVM_BB = BB->getBasicBlock();
-  MachineFunction::iterator It = BB;
-  ++It;
-  
-  //  thisMBB:
-  //  ...
-  //   TrueVal = ...
-  //   cmpTY ccX, r1, r2
-  //   bCC copy1MBB
-  //   fallthrough --> copy0MBB
-  MachineBasicBlock *thisMBB = BB;
-  MachineFunction *F = BB->getParent();
-  MachineBasicBlock *copy0MBB = F->CreateMachineBasicBlock(LLVM_BB);
-  MachineBasicBlock *sinkMBB = F->CreateMachineBasicBlock(LLVM_BB);
-  BuildMI(BB, dl, TII.get(XCore::BRFT_lru6))
-    .addReg(MI->getOperand(1).getReg()).addMBB(sinkMBB);
-  F->insert(It, copy0MBB);
-  F->insert(It, sinkMBB);
-  // Update machine-CFG edges by transferring all successors of the current
-  // block to the new block which will contain the Phi node for the select.
-  sinkMBB->transferSuccessors(BB);
-  // Next, add the true and fallthrough blocks as its successors.
-  BB->addSuccessor(copy0MBB);
-  BB->addSuccessor(sinkMBB);
-  
-  //  copy0MBB:
-  //   %FalseValue = ...
-  //   # fallthrough to sinkMBB
-  BB = copy0MBB;
-  
-  // Update machine-CFG edges
-  BB->addSuccessor(sinkMBB);
-  
-  //  sinkMBB:
-  //   %Result = phi [ %FalseValue, copy0MBB ], [ %TrueValue, thisMBB ]
-  //  ...
-  BB = sinkMBB;
-  BuildMI(BB, dl, TII.get(XCore::PHI), MI->getOperand(0).getReg())
-    .addReg(MI->getOperand(3).getReg()).addMBB(copy0MBB)
-    .addReg(MI->getOperand(2).getReg()).addMBB(thisMBB);
-  
-  F->DeleteMachineInstr(MI);   // The pseudo instruction is gone now.
-  return BB;
-}
-
-//===----------------------------------------------------------------------===//
-// Target Optimization Hooks
-//===----------------------------------------------------------------------===//
-
-SDValue XCoreTargetLowering::PerformDAGCombine(SDNode *N,
-                                             DAGCombinerInfo &DCI) const {
-  SelectionDAG &DAG = DCI.DAG;
-  DebugLoc dl = N->getDebugLoc();
-  switch (N->getOpcode()) {
-  default: break;
-  case ISD::STORE: {
-    // Replace unaligned store of unaligned load with memmove.
-    StoreSDNode *ST  = cast<StoreSDNode>(N);
-    if (!DCI.isBeforeLegalize() ||
-        allowsUnalignedMemoryAccesses(ST->getMemoryVT()) ||
-        ST->isVolatile() || ST->isIndexed()) {
-      break;
-    }
-    SDValue Chain = ST->getChain();
-
-    unsigned StoreBits = ST->getMemoryVT().getStoreSizeInBits();
-    if (StoreBits % 8) {
-      break;
-    }
-    unsigned ABIAlignment = getTargetData()->getABITypeAlignment(
-        ST->getMemoryVT().getTypeForEVT(*DCI.DAG.getContext()));
-    unsigned Alignment = ST->getAlignment();
-    if (Alignment >= ABIAlignment) {
-      break;
-    }
-
-    if (LoadSDNode *LD = dyn_cast<LoadSDNode>(ST->getValue())) {
-      if (LD->hasNUsesOfValue(1, 0) && ST->getMemoryVT() == LD->getMemoryVT() &&
-        LD->getAlignment() == Alignment &&
-        !LD->isVolatile() && !LD->isIndexed() &&
-        Chain.reachesChainWithoutSideEffects(SDValue(LD, 1))) {
-        return DAG.getMemmove(Chain, dl, ST->getBasePtr(),
-                              LD->getBasePtr(),
-                              DAG.getConstant(StoreBits/8, MVT::i32),
-                              Alignment, ST->getSrcValue(),
-                              ST->getSrcValueOffset(), LD->getSrcValue(),
-                              LD->getSrcValueOffset());
-      }
-    }
-    break;
-  }
-  }
-  return SDValue();
-}
-
-//===----------------------------------------------------------------------===//
-//  Addressing mode description hooks
-//===----------------------------------------------------------------------===//
-
-static inline bool isImmUs(int64_t val)
-{
-  return (val >= 0 && val <= 11);
-}
-
-static inline bool isImmUs2(int64_t val)
-{
-  return (val%2 == 0 && isImmUs(val/2));
-}
-
-static inline bool isImmUs4(int64_t val)
-{
-  return (val%4 == 0 && isImmUs(val/4));
-}
-
-/// isLegalAddressingMode - Return true if the addressing mode represented
-/// by AM is legal for this target, for a load/store of the specified type.
-bool
-XCoreTargetLowering::isLegalAddressingMode(const AddrMode &AM, 
-                                              const Type *Ty) const {
-  // Be conservative with void
-  // FIXME: Can we be more aggressive?
-  if (Ty->getTypeID() == Type::VoidTyID)
-    return false;
-
-  const TargetData *TD = TM.getTargetData();
-  unsigned Size = TD->getTypeAllocSize(Ty);
-  if (AM.BaseGV) {
-    return Size >= 4 && !AM.HasBaseReg && AM.Scale == 0 &&
-                 AM.BaseOffs%4 == 0;
-  }
-  
-  switch (Size) {
-  case 1:
-    // reg + imm
-    if (AM.Scale == 0) {
-      return isImmUs(AM.BaseOffs);
-    }
-    // reg + reg
-    return AM.Scale == 1 && AM.BaseOffs == 0;
-  case 2:
-  case 3:
-    // reg + imm
-    if (AM.Scale == 0) {
-      return isImmUs2(AM.BaseOffs);
-    }
-    // reg + reg<<1
-    return AM.Scale == 2 && AM.BaseOffs == 0;
-  default:
-    // reg + imm
-    if (AM.Scale == 0) {
-      return isImmUs4(AM.BaseOffs);
-    }
-    // reg + reg<<2
-    return AM.Scale == 4 && AM.BaseOffs == 0;
-  }
-  
-  return false;
-}
-
-//===----------------------------------------------------------------------===//
-//                           XCore Inline Assembly Support
-//===----------------------------------------------------------------------===//
-
-std::vector<unsigned> XCoreTargetLowering::
-getRegClassForInlineAsmConstraint(const std::string &Constraint,
-                                  EVT VT) const 
-{
-  if (Constraint.size() != 1)
-    return std::vector<unsigned>();
-
-  switch (Constraint[0]) {
-    default : break;
-    case 'r':
-      return make_vector<unsigned>(XCore::R0, XCore::R1,  XCore::R2, 
-                                   XCore::R3, XCore::R4,  XCore::R5, 
-                                   XCore::R6, XCore::R7,  XCore::R8, 
-                                   XCore::R9, XCore::R10, XCore::R11, 0);
-      break;
-  }
-  return std::vector<unsigned>();
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.h
deleted file mode 100644
index 1265934..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.h
+++ /dev/null
@@ -1,164 +0,0 @@
-//===-- XCoreISelLowering.h - XCore DAG Lowering Interface ------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the interfaces that XCore uses to lower LLVM code into a
-// selection DAG.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCOREISELLOWERING_H
-#define XCOREISELLOWERING_H
-
-#include "llvm/CodeGen/SelectionDAG.h"
-#include "llvm/Target/TargetLowering.h"
-#include "XCore.h"
-
-namespace llvm {
-  
-  // Forward delcarations
-  class XCoreSubtarget;
-  class XCoreTargetMachine;
-  
-  namespace XCoreISD {
-    enum NodeType {
-      // Start the numbering where the builtin ops and target ops leave off.
-      FIRST_NUMBER = ISD::BUILTIN_OP_END+XCore::INSTRUCTION_LIST_END,
-
-      // Branch and link (call)
-      BL,
-
-      // pc relative address
-      PCRelativeWrapper,
-
-      // dp relative address
-      DPRelativeWrapper,
-      
-      // cp relative address
-      CPRelativeWrapper,
-      
-      // Store word to stack
-      STWSP,
-
-      // Corresponds to retsp instruction
-      RETSP,
-      
-      // Corresponds to LADD instruction
-      LADD,
-
-      // Corresponds to LSUB instruction
-      LSUB
-    };
-  }
-
-  //===--------------------------------------------------------------------===//
-  // TargetLowering Implementation
-  //===--------------------------------------------------------------------===//
-  class XCoreTargetLowering : public TargetLowering 
-  {
-  public:
-
-    explicit XCoreTargetLowering(XCoreTargetMachine &TM);
-
-    /// LowerOperation - Provide custom lowering hooks for some operations.
-    virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG);
-
-    /// ReplaceNodeResults - Replace the results of node with an illegal result
-    /// type with new values built out of custom code.
-    ///
-    virtual void ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue>&Results,
-                                    SelectionDAG &DAG);
-
-    /// getTargetNodeName - This method returns the name of a target specific 
-    //  DAG node.
-    virtual const char *getTargetNodeName(unsigned Opcode) const;
-  
-    virtual MachineBasicBlock *EmitInstrWithCustomInserter(MachineInstr *MI,
-                                                  MachineBasicBlock *MBB) const;
-
-    virtual bool isLegalAddressingMode(const AddrMode &AM,
-                                       const Type *Ty) const;
-
-    /// getFunctionAlignment - Return the Log2 alignment of this function.
-    virtual unsigned getFunctionAlignment(const Function *F) const;
-
-  private:
-    const XCoreTargetMachine &TM;
-    const XCoreSubtarget &Subtarget;
-  
-    // Lower Operand helpers
-    SDValue LowerCCCArguments(SDValue Chain,
-                              unsigned CallConv,
-                              bool isVarArg,
-                              const SmallVectorImpl<ISD::InputArg> &Ins,
-                              DebugLoc dl, SelectionDAG &DAG,
-                              SmallVectorImpl<SDValue> &InVals);
-    SDValue LowerCCCCallTo(SDValue Chain, SDValue Callee,
-                           unsigned CallConv, bool isVarArg,
-                           bool isTailCall,
-                           const SmallVectorImpl<ISD::OutputArg> &Outs,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-    SDValue LowerCallResult(SDValue Chain, SDValue InFlag,
-                            unsigned CallConv, bool isVarArg,
-                            const SmallVectorImpl<ISD::InputArg> &Ins,
-                            DebugLoc dl, SelectionDAG &DAG,
-                            SmallVectorImpl<SDValue> &InVals);
-    SDValue getReturnAddressFrameIndex(SelectionDAG &DAG);
-    SDValue getGlobalAddressWrapper(SDValue GA, GlobalValue *GV,
-                                    SelectionDAG &DAG);
-
-    // Lower Operand specifics
-    SDValue LowerLOAD(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSTORE(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerVAARG(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG);
-    SDValue LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG);
-  
-    // Inline asm support
-    std::vector<unsigned>
-    getRegClassForInlineAsmConstraint(const std::string &Constraint,
-              EVT VT) const;
-  
-    // Expand specifics
-    SDValue ExpandADDSUB(SDNode *Op, SelectionDAG &DAG);
-
-    virtual SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const;
-
-    virtual SDValue
-      LowerFormalArguments(SDValue Chain,
-                           unsigned CallConv,
-                           bool isVarArg,
-                           const SmallVectorImpl<ISD::InputArg> &Ins,
-                           DebugLoc dl, SelectionDAG &DAG,
-                           SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerCall(SDValue Chain, SDValue Callee,
-                unsigned CallConv, bool isVarArg,
-                bool isTailCall,
-                const SmallVectorImpl<ISD::OutputArg> &Outs,
-                const SmallVectorImpl<ISD::InputArg> &Ins,
-                DebugLoc dl, SelectionDAG &DAG,
-                SmallVectorImpl<SDValue> &InVals);
-
-    virtual SDValue
-      LowerReturn(SDValue Chain,
-                  unsigned CallConv, bool isVarArg,
-                  const SmallVectorImpl<ISD::OutputArg> &Outs,
-                  DebugLoc dl, SelectionDAG &DAG);
-  };
-}
-
-#endif // XCOREISELLOWERING_H
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrFormats.td b/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrFormats.td
deleted file mode 100644
index 8002c99..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrFormats.td
+++ /dev/null
@@ -1,120 +0,0 @@
-//===- XCoreInstrFormats.td - XCore Instruction Formats ----*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-// Instruction format superclass
-//===----------------------------------------------------------------------===//
-class InstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : Instruction {
-  field bits<32> Inst;
-
-  let Namespace = "XCore";
-  dag OutOperandList = outs;
-  dag InOperandList = ins;
-  let AsmString   = asmstr;
-  let Pattern = pattern;
-}
-
-// XCore pseudo instructions format
-class PseudoInstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
-   : InstXCore<outs, ins, asmstr, pattern>;
-
-//===----------------------------------------------------------------------===//
-// Instruction formats
-//===----------------------------------------------------------------------===//
-
-class _F3R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FL3R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _F2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FL2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FLRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FLU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FU10<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FLU10<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _F2R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FRUS<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _FL2R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _F1R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _F0R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _L4R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _L5R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
-
-class _L6R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
-  let Inst{31-0} = 0;
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
deleted file mode 100644
index 9461e20..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
+++ /dev/null
@@ -1,509 +0,0 @@
-//===- XCoreInstrInfo.cpp - XCore Instruction Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the XCore implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCoreMachineFunctionInfo.h"
-#include "XCoreInstrInfo.h"
-#include "XCore.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "XCoreGenInstrInfo.inc"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-
-namespace llvm {
-namespace XCore {
-
-  // XCore Condition Codes
-  enum CondCode {
-    COND_TRUE,
-    COND_FALSE,
-    COND_INVALID
-  };
-}
-}
-
-using namespace llvm;
-
-XCoreInstrInfo::XCoreInstrInfo()
-  : TargetInstrInfoImpl(XCoreInsts, array_lengthof(XCoreInsts)),
-    RI(*this) {
-}
-
-static bool isZeroImm(const MachineOperand &op) {
-  return op.isImm() && op.getImm() == 0;
-}
-
-/// Return true if the instruction is a register to register move and
-/// leave the source and dest operands in the passed parameters.
-///
-bool XCoreInstrInfo::isMoveInstr(const MachineInstr &MI,
-                                 unsigned &SrcReg, unsigned &DstReg,
-                                 unsigned &SrcSR, unsigned &DstSR) const {
-  SrcSR = DstSR = 0; // No sub-registers.
-
-  // We look for 4 kinds of patterns here:
-  // add dst, src, 0
-  // sub dst, src, 0
-  // or dst, src, src
-  // and dst, src, src
-  if ((MI.getOpcode() == XCore::ADD_2rus || MI.getOpcode() == XCore::SUB_2rus)
-      && isZeroImm(MI.getOperand(2))) {
-    DstReg = MI.getOperand(0).getReg();
-    SrcReg = MI.getOperand(1).getReg();
-    return true;
-  } else if ((MI.getOpcode() == XCore::OR_3r || MI.getOpcode() == XCore::AND_3r)
-      && MI.getOperand(1).getReg() == MI.getOperand(2).getReg()) {
-    DstReg = MI.getOperand(0).getReg();
-    SrcReg = MI.getOperand(1).getReg();
-    return true;
-  }
-  return false;
-}
-
-/// isLoadFromStackSlot - If the specified machine instruction is a direct
-/// load from a stack slot, return the virtual or physical register number of
-/// the destination along with the FrameIndex of the loaded stack slot.  If
-/// not, return 0.  This predicate must return 0 if the instruction has
-/// any side effects other than loading from the stack slot.
-unsigned
-XCoreInstrInfo::isLoadFromStackSlot(const MachineInstr *MI, int &FrameIndex) const{
-  int Opcode = MI->getOpcode();
-  if (Opcode == XCore::LDWFI) 
-  {
-    if ((MI->getOperand(1).isFI()) && // is a stack slot
-        (MI->getOperand(2).isImm()) &&  // the imm is zero
-        (isZeroImm(MI->getOperand(2)))) 
-    {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-  }
-  return 0;
-}
-  
-  /// isStoreToStackSlot - If the specified machine instruction is a direct
-  /// store to a stack slot, return the virtual or physical register number of
-  /// the source reg along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than storing to the stack slot.
-unsigned
-XCoreInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
-                                   int &FrameIndex) const {
-  int Opcode = MI->getOpcode();
-  if (Opcode == XCore::STWFI)
-  {
-    if ((MI->getOperand(1).isFI()) && // is a stack slot
-        (MI->getOperand(2).isImm()) &&  // the imm is zero
-        (isZeroImm(MI->getOperand(2))))
-    {
-      FrameIndex = MI->getOperand(1).getIndex();
-      return MI->getOperand(0).getReg();
-    }
-  }
-  return 0;
-}
-
-/// isInvariantLoad - Return true if the specified instruction (which is marked
-/// mayLoad) is loading from a location whose value is invariant across the
-/// function.  For example, loading a value from the constant pool or from
-/// from the argument area of a function if it does not change.  This should
-/// only return true of *all* loads the instruction does are invariant (if it
-/// does multiple loads).
-bool
-XCoreInstrInfo::isInvariantLoad(const MachineInstr *MI) const {
-  // Loads from constants pools and loads from invariant argument slots are
-  // invariant
-  int Opcode = MI->getOpcode();
-  if (Opcode == XCore::LDWCP_ru6 || Opcode == XCore::LDWCP_lru6) {
-    return MI->getOperand(1).isCPI();
-  }
-  int FrameIndex;
-  if (isLoadFromStackSlot(MI, FrameIndex)) {
-    const MachineFrameInfo &MFI =
-      *MI->getParent()->getParent()->getFrameInfo();
-    return MFI.isFixedObjectIndex(FrameIndex) &&
-           MFI.isImmutableObjectIndex(FrameIndex);
-  }
-  return false;
-}
-
-//===----------------------------------------------------------------------===//
-// Branch Analysis
-//===----------------------------------------------------------------------===//
-
-static inline bool IsBRU(unsigned BrOpc) {
-  return BrOpc == XCore::BRFU_u6
-      || BrOpc == XCore::BRFU_lu6
-      || BrOpc == XCore::BRBU_u6
-      || BrOpc == XCore::BRBU_lu6;
-}
-
-static inline bool IsBRT(unsigned BrOpc) {
-  return BrOpc == XCore::BRFT_ru6
-      || BrOpc == XCore::BRFT_lru6
-      || BrOpc == XCore::BRBT_ru6
-      || BrOpc == XCore::BRBT_lru6;
-}
-
-static inline bool IsBRF(unsigned BrOpc) {
-  return BrOpc == XCore::BRFF_ru6
-      || BrOpc == XCore::BRFF_lru6
-      || BrOpc == XCore::BRBF_ru6
-      || BrOpc == XCore::BRBF_lru6;
-}
-
-static inline bool IsCondBranch(unsigned BrOpc) {
-  return IsBRF(BrOpc) || IsBRT(BrOpc);
-}
-
-/// GetCondFromBranchOpc - Return the XCore CC that matches 
-/// the correspondent Branch instruction opcode.
-static XCore::CondCode GetCondFromBranchOpc(unsigned BrOpc) 
-{
-  if (IsBRT(BrOpc)) {
-    return XCore::COND_TRUE;
-  } else if (IsBRF(BrOpc)) {
-    return XCore::COND_FALSE;
-  } else {
-    return XCore::COND_INVALID;
-  }
-}
-
-/// GetCondBranchFromCond - Return the Branch instruction
-/// opcode that matches the cc.
-static inline unsigned GetCondBranchFromCond(XCore::CondCode CC) 
-{
-  switch (CC) {
-  default: llvm_unreachable("Illegal condition code!");
-  case XCore::COND_TRUE   : return XCore::BRFT_lru6;
-  case XCore::COND_FALSE  : return XCore::BRFF_lru6;
-  }
-}
-
-/// GetOppositeBranchCondition - Return the inverse of the specified 
-/// condition, e.g. turning COND_E to COND_NE.
-static inline XCore::CondCode GetOppositeBranchCondition(XCore::CondCode CC)
-{
-  switch (CC) {
-  default: llvm_unreachable("Illegal condition code!");
-  case XCore::COND_TRUE   : return XCore::COND_FALSE;
-  case XCore::COND_FALSE  : return XCore::COND_TRUE;
-  }
-}
-
-/// AnalyzeBranch - Analyze the branching code at the end of MBB, returning
-/// true if it cannot be understood (e.g. it's a switch dispatch or isn't
-/// implemented for a target).  Upon success, this returns false and returns
-/// with the following information in various cases:
-///
-/// 1. If this block ends with no branches (it just falls through to its succ)
-///    just return false, leaving TBB/FBB null.
-/// 2. If this block ends with only an unconditional branch, it sets TBB to be
-///    the destination block.
-/// 3. If this block ends with an conditional branch and it falls through to
-///    an successor block, it sets TBB to be the branch destination block and a
-///    list of operands that evaluate the condition. These
-///    operands can be passed to other TargetInstrInfo methods to create new
-///    branches.
-/// 4. If this block ends with an conditional branch and an unconditional
-///    block, it returns the 'true' destination in TBB, the 'false' destination
-///    in FBB, and a list of operands that evaluate the condition. These
-///    operands can be passed to other TargetInstrInfo methods to create new
-///    branches.
-///
-/// Note that RemoveBranch and InsertBranch must be implemented to support
-/// cases where this method returns success.
-///
-bool
-XCoreInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
-                              MachineBasicBlock *&FBB,
-                              SmallVectorImpl<MachineOperand> &Cond,
-                              bool AllowModify) const {
-  // If the block has no terminators, it just falls into the block after it.
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I))
-    return false;
-
-  // Get the last instruction in the block.
-  MachineInstr *LastInst = I;
-  
-  // If there is only one terminator instruction, process it.
-  if (I == MBB.begin() || !isUnpredicatedTerminator(--I)) {
-    if (IsBRU(LastInst->getOpcode())) {
-      TBB = LastInst->getOperand(0).getMBB();
-      return false;
-    }
-    
-    XCore::CondCode BranchCode = GetCondFromBranchOpc(LastInst->getOpcode());
-    if (BranchCode == XCore::COND_INVALID)
-      return true;  // Can't handle indirect branch.
-    
-    // Conditional branch
-    // Block ends with fall-through condbranch.
-
-    TBB = LastInst->getOperand(1).getMBB();
-    Cond.push_back(MachineOperand::CreateImm(BranchCode));
-    Cond.push_back(LastInst->getOperand(0));
-    return false;
-  }
-  
-  // Get the instruction before it if it's a terminator.
-  MachineInstr *SecondLastInst = I;
-
-  // If there are three terminators, we don't know what sort of block this is.
-  if (SecondLastInst && I != MBB.begin() &&
-      isUnpredicatedTerminator(--I))
-    return true;
-  
-  unsigned SecondLastOpc    = SecondLastInst->getOpcode();
-  XCore::CondCode BranchCode = GetCondFromBranchOpc(SecondLastOpc);
-  
-  // If the block ends with conditional branch followed by unconditional,
-  // handle it.
-  if (BranchCode != XCore::COND_INVALID
-    && IsBRU(LastInst->getOpcode())) {
-
-    TBB = SecondLastInst->getOperand(1).getMBB();
-    Cond.push_back(MachineOperand::CreateImm(BranchCode));
-    Cond.push_back(SecondLastInst->getOperand(0));
-
-    FBB = LastInst->getOperand(0).getMBB();
-    return false;
-  }
-  
-  // If the block ends with two unconditional branches, handle it.  The second
-  // one is not executed, so remove it.
-  if (IsBRU(SecondLastInst->getOpcode()) && 
-      IsBRU(LastInst->getOpcode())) {
-    TBB = SecondLastInst->getOperand(0).getMBB();
-    I = LastInst;
-    if (AllowModify)
-      I->eraseFromParent();
-    return false;
-  }
-
-  // Otherwise, can't handle this.
-  return true;
-}
-
-unsigned
-XCoreInstrInfo::InsertBranch(MachineBasicBlock &MBB,MachineBasicBlock *TBB,
-                             MachineBasicBlock *FBB,
-                             const SmallVectorImpl<MachineOperand> &Cond)const{
-  // FIXME there should probably be a DebugLoc argument here
-  DebugLoc dl = DebugLoc::getUnknownLoc();
-  // Shouldn't be a fall through.
-  assert(TBB && "InsertBranch must not be told to insert a fallthrough");
-  assert((Cond.size() == 2 || Cond.size() == 0) &&
-         "Unexpected number of components!");
-  
-  if (FBB == 0) { // One way branch.
-    if (Cond.empty()) {
-      // Unconditional branch
-      BuildMI(&MBB, dl, get(XCore::BRFU_lu6)).addMBB(TBB);
-    } else {
-      // Conditional branch.
-      unsigned Opc = GetCondBranchFromCond((XCore::CondCode)Cond[0].getImm());
-      BuildMI(&MBB, dl, get(Opc)).addReg(Cond[1].getReg())
-                             .addMBB(TBB);
-    }
-    return 1;
-  }
-  
-  // Two-way Conditional branch.
-  assert(Cond.size() == 2 && "Unexpected number of components!");
-  unsigned Opc = GetCondBranchFromCond((XCore::CondCode)Cond[0].getImm());
-  BuildMI(&MBB, dl, get(Opc)).addReg(Cond[1].getReg())
-                         .addMBB(TBB);
-  BuildMI(&MBB, dl, get(XCore::BRFU_lu6)).addMBB(FBB);
-  return 2;
-}
-
-unsigned
-XCoreInstrInfo::RemoveBranch(MachineBasicBlock &MBB) const {
-  MachineBasicBlock::iterator I = MBB.end();
-  if (I == MBB.begin()) return 0;
-  --I;
-  if (!IsBRU(I->getOpcode()) && !IsCondBranch(I->getOpcode()))
-    return 0;
-  
-  // Remove the branch.
-  I->eraseFromParent();
-  
-  I = MBB.end();
-
-  if (I == MBB.begin()) return 1;
-  --I;
-  if (!IsCondBranch(I->getOpcode()))
-    return 1;
-  
-  // Remove the branch.
-  I->eraseFromParent();
-  return 2;
-}
-
-bool XCoreInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
-                                  MachineBasicBlock::iterator I,
-                                  unsigned DestReg, unsigned SrcReg,
-                                  const TargetRegisterClass *DestRC,
-                                  const TargetRegisterClass *SrcRC) const {
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-
-  if (DestRC == SrcRC) {
-    if (DestRC == XCore::GRRegsRegisterClass) {
-      BuildMI(MBB, I, DL, get(XCore::ADD_2rus), DestReg)
-        .addReg(SrcReg)
-        .addImm(0);
-      return true;
-    } else {
-      return false;
-    }
-  }
-  
-  if (SrcRC == XCore::RRegsRegisterClass && SrcReg == XCore::SP &&
-    DestRC == XCore::GRRegsRegisterClass) {
-    BuildMI(MBB, I, DL, get(XCore::LDAWSP_ru6), DestReg)
-      .addImm(0);
-    return true;
-  }
-  if (DestRC == XCore::RRegsRegisterClass && DestReg == XCore::SP &&
-    SrcRC == XCore::GRRegsRegisterClass) {
-    BuildMI(MBB, I, DL, get(XCore::SETSP_1r))
-      .addReg(SrcReg);
-    return true;
-  }
-  return false;
-}
-
-void XCoreInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
-                                         MachineBasicBlock::iterator I,
-                                         unsigned SrcReg, bool isKill,
-                                         int FrameIndex,
-                                         const TargetRegisterClass *RC) const
-{
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-  BuildMI(MBB, I, DL, get(XCore::STWFI))
-    .addReg(SrcReg, getKillRegState(isKill))
-    .addFrameIndex(FrameIndex)
-    .addImm(0);
-}
-
-void XCoreInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                          MachineBasicBlock::iterator I,
-                                          unsigned DestReg, int FrameIndex,
-                                          const TargetRegisterClass *RC) const
-{
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (I != MBB.end()) DL = I->getDebugLoc();
-  BuildMI(MBB, I, DL, get(XCore::LDWFI), DestReg)
-    .addFrameIndex(FrameIndex)
-    .addImm(0);
-}
-
-bool XCoreInstrInfo::spillCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                               MachineBasicBlock::iterator MI,
-                                  const std::vector<CalleeSavedInfo> &CSI) const
-{
-  if (CSI.empty()) {
-    return true;
-  }
-  MachineFunction *MF = MBB.getParent();
-  const MachineFrameInfo *MFI = MF->getFrameInfo();
-  MachineModuleInfo *MMI = MFI->getMachineModuleInfo();
-  XCoreFunctionInfo *XFI = MF->getInfo<XCoreFunctionInfo>();
-  
-  bool emitFrameMoves = XCoreRegisterInfo::needsFrameMoves(*MF);
-
-  DebugLoc DL = DebugLoc::getUnknownLoc();
-  if (MI != MBB.end()) DL = MI->getDebugLoc();
-  
-  for (std::vector<CalleeSavedInfo>::const_iterator it = CSI.begin();
-                                                    it != CSI.end(); ++it) {
-    // Add the callee-saved register as live-in. It's killed at the spill.
-    MBB.addLiveIn(it->getReg());
-
-    storeRegToStackSlot(MBB, MI, it->getReg(), true,
-                        it->getFrameIdx(), it->getRegClass());
-    if (emitFrameMoves) {
-      unsigned SaveLabelId = MMI->NextLabelID();
-      BuildMI(MBB, MI, DL, get(XCore::DBG_LABEL)).addImm(SaveLabelId);
-      XFI->getSpillLabels().push_back(
-          std::pair<unsigned, CalleeSavedInfo>(SaveLabelId, *it));
-    }
-  }
-  return true;
-}
-
-bool XCoreInstrInfo::restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                         MachineBasicBlock::iterator MI,
-                               const std::vector<CalleeSavedInfo> &CSI) const
-{
-  bool AtStart = MI == MBB.begin();
-  MachineBasicBlock::iterator BeforeI = MI;
-  if (!AtStart)
-    --BeforeI;
-  for (std::vector<CalleeSavedInfo>::const_iterator it = CSI.begin();
-                                                    it != CSI.end(); ++it) {
-    
-    loadRegFromStackSlot(MBB, MI, it->getReg(),
-                                  it->getFrameIdx(),
-                                  it->getRegClass());
-    assert(MI != MBB.begin() &&
-           "loadRegFromStackSlot didn't insert any code!");
-    // Insert in reverse order.  loadRegFromStackSlot can insert multiple
-    // instructions.
-    if (AtStart)
-      MI = MBB.begin();
-    else {
-      MI = BeforeI;
-      ++MI;
-    }
-  }
-  return true;
-}
-
-/// BlockHasNoFallThrough - Analyse if MachineBasicBlock does not
-/// fall-through into its successor block.
-bool XCoreInstrInfo::
-BlockHasNoFallThrough(const MachineBasicBlock &MBB) const 
-{
-  if (MBB.empty()) return false;
-  
-  switch (MBB.back().getOpcode()) {
-  case XCore::RETSP_u6:     // Return.
-  case XCore::RETSP_lu6:
-  case XCore::BAU_1r:       // Indirect branch.
-  case XCore::BRFU_u6:      // Uncond branch.
-  case XCore::BRFU_lu6:
-  case XCore::BRBU_u6:
-  case XCore::BRBU_lu6:
-    return true;
-  default: return false;
-  }
-}
-
-/// ReverseBranchCondition - Return the inverse opcode of the 
-/// specified Branch instruction.
-bool XCoreInstrInfo::
-ReverseBranchCondition(SmallVectorImpl<MachineOperand> &Cond) const 
-{
-  assert((Cond.size() == 2) && 
-          "Invalid XCore branch condition!");
-  Cond[0].setImm(GetOppositeBranchCondition((XCore::CondCode)Cond[0].getImm()));
-  return false;
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.h
deleted file mode 100644
index c97e6b4..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.h
+++ /dev/null
@@ -1,100 +0,0 @@
-//===- XCoreInstrInfo.h - XCore Instruction Information ---------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the XCore implementation of the TargetInstrInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCOREINSTRUCTIONINFO_H
-#define XCOREINSTRUCTIONINFO_H
-
-#include "llvm/Target/TargetInstrInfo.h"
-#include "XCoreRegisterInfo.h"
-
-namespace llvm {
-
-class XCoreInstrInfo : public TargetInstrInfoImpl {
-  const XCoreRegisterInfo RI;
-public:
-  XCoreInstrInfo();
-
-  /// getRegisterInfo - TargetInstrInfo is a superset of MRegister info.  As
-  /// such, whenever a client has an instance of instruction info, it should
-  /// always be able to get register info as well (through this method).
-  ///
-  virtual const TargetRegisterInfo &getRegisterInfo() const { return RI; }
-
-  /// Return true if the instruction is a register to register move and return
-  /// the source and dest operands and their sub-register indices by reference.
-  virtual bool isMoveInstr(const MachineInstr &MI,
-                           unsigned &SrcReg, unsigned &DstReg,
-                           unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
-  
-  /// isLoadFromStackSlot - If the specified machine instruction is a direct
-  /// load from a stack slot, return the virtual or physical register number of
-  /// the destination along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than loading from the stack slot.
-  virtual unsigned isLoadFromStackSlot(const MachineInstr *MI,
-                                       int &FrameIndex) const;
-  
-  /// isStoreToStackSlot - If the specified machine instruction is a direct
-  /// store to a stack slot, return the virtual or physical register number of
-  /// the source reg along with the FrameIndex of the loaded stack slot.  If
-  /// not, return 0.  This predicate must return 0 if the instruction has
-  /// any side effects other than storing to the stack slot.
-  virtual unsigned isStoreToStackSlot(const MachineInstr *MI,
-                                      int &FrameIndex) const;
-  
-  virtual bool isInvariantLoad(const MachineInstr *MI) const;
-  
-  virtual bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
-                             MachineBasicBlock *&FBB,
-                             SmallVectorImpl<MachineOperand> &Cond,
-                             bool AllowModify) const;
-  
-  virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
-                             MachineBasicBlock *FBB,
-                             const SmallVectorImpl<MachineOperand> &Cond) const;
-  
-  virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const;
-
-  virtual bool copyRegToReg(MachineBasicBlock &MBB,
-                            MachineBasicBlock::iterator I,
-                            unsigned DestReg, unsigned SrcReg,
-                            const TargetRegisterClass *DestRC,
-                            const TargetRegisterClass *SrcRC) const;
-
-  virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
-                                   MachineBasicBlock::iterator MI,
-                                   unsigned SrcReg, bool isKill, int FrameIndex,
-                                   const TargetRegisterClass *RC) const;
-
-  virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
-                                    MachineBasicBlock::iterator MI,
-                                    unsigned DestReg, int FrameIndex,
-                                    const TargetRegisterClass *RC) const;
-
-  virtual bool spillCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                        MachineBasicBlock::iterator MI,
-                                const std::vector<CalleeSavedInfo> &CSI) const;
-  
-  virtual bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
-                                         MachineBasicBlock::iterator MI,
-                               const std::vector<CalleeSavedInfo> &CSI) const;
-
-  virtual bool BlockHasNoFallThrough(const MachineBasicBlock &MBB) const;
-
-  virtual bool ReverseBranchCondition(
-                            SmallVectorImpl<MachineOperand> &Cond) const;
-};
-
-}
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.td b/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.td
deleted file mode 100644
index 9d9cbf0..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.td
+++ /dev/null
@@ -1,1007 +0,0 @@
-//===- XCoreInstrInfo.td - Target Description for XCore ----*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file describes the XCore instructions in TableGen format.
-//
-//===----------------------------------------------------------------------===//
-
-// Uses of CP, DP are not currently reflected in the patterns, since
-// having a physical register as an operand prevents loop hoisting and
-// since the value of these registers never changes during the life of the
-// function.
-
-//===----------------------------------------------------------------------===//
-// Instruction format superclass.
-//===----------------------------------------------------------------------===//
-
-include "XCoreInstrFormats.td"
-
-//===----------------------------------------------------------------------===//
-// Feature predicates.
-//===----------------------------------------------------------------------===//
-
-// HasXS1A - This predicate is true when the target processor supports XS1A
-// instructions.
-def HasXS1A   : Predicate<"Subtarget.isXS1A()">;
-
-// HasXS1B - This predicate is true when the target processor supports XS1B
-// instructions.
-def HasXS1B : Predicate<"Subtarget.isXS1B()">;
-
-//===----------------------------------------------------------------------===//
-// XCore specific DAG Nodes.
-//
-
-// Call
-def SDT_XCoreBranchLink : SDTypeProfile<0, 1, [SDTCisPtrTy<0>]>;
-def XCoreBranchLink     : SDNode<"XCoreISD::BL",SDT_XCoreBranchLink,
-                            [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-def XCoreRetsp       : SDNode<"XCoreISD::RETSP", SDTNone,
-                         [SDNPHasChain, SDNPOptInFlag]>;
-
-def SDT_XCoreAddress    : SDTypeProfile<1, 1,
-                            [SDTCisSameAs<0, 1>, SDTCisPtrTy<0>]>;
-
-def pcrelwrapper : SDNode<"XCoreISD::PCRelativeWrapper", SDT_XCoreAddress,
-                           []>;
-
-def dprelwrapper : SDNode<"XCoreISD::DPRelativeWrapper", SDT_XCoreAddress,
-                           []>;
-
-def cprelwrapper : SDNode<"XCoreISD::CPRelativeWrapper", SDT_XCoreAddress,
-                           []>;
-
-def SDT_XCoreStwsp    : SDTypeProfile<0, 2, [SDTCisInt<1>]>;
-def XCoreStwsp        : SDNode<"XCoreISD::STWSP", SDT_XCoreStwsp,
-                               [SDNPHasChain]>;
-
-// These are target-independent nodes, but have target-specific formats.
-def SDT_XCoreCallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i32> ]>;
-def SDT_XCoreCallSeqEnd   : SDCallSeqEnd<[ SDTCisVT<0, i32>,
-                                        SDTCisVT<1, i32> ]>;
-
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_XCoreCallSeqStart,
-                           [SDNPHasChain, SDNPOutFlag]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_XCoreCallSeqEnd,
-                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
-
-//===----------------------------------------------------------------------===//
-// Instruction Pattern Stuff
-//===----------------------------------------------------------------------===//
-
-def div4_xform : SDNodeXForm<imm, [{
-  // Transformation function: imm/4
-  assert(N->getZExtValue() % 4 == 0);
-  return getI32Imm(N->getZExtValue()/4);
-}]>;
-
-def msksize_xform : SDNodeXForm<imm, [{
-  // Transformation function: get the size of a mask
-  assert(isMask_32(N->getZExtValue()));
-  // look for the first non-zero bit
-  return getI32Imm(32 - CountLeadingZeros_32(N->getZExtValue()));
-}]>;
-
-def neg_xform : SDNodeXForm<imm, [{
-  // Transformation function: -imm
-  uint32_t value = N->getZExtValue();
-  return getI32Imm(-value);
-}]>;
-
-def bpwsub_xform : SDNodeXForm<imm, [{
-  // Transformation function: 32-imm
-  uint32_t value = N->getZExtValue();
-  return getI32Imm(32-value);
-}]>;
-
-def div4neg_xform : SDNodeXForm<imm, [{
-  // Transformation function: -imm/4
-  uint32_t value = N->getZExtValue();
-  assert(-value % 4 == 0);
-  return getI32Imm(-value/4);
-}]>;
-
-def immUs4Neg : PatLeaf<(imm), [{
-  uint32_t value = (uint32_t)N->getZExtValue();
-  return (-value)%4 == 0 && (-value)/4 <= 11;
-}]>;
-
-def immUs4 : PatLeaf<(imm), [{
-  uint32_t value = (uint32_t)N->getZExtValue();
-  return value%4 == 0 && value/4 <= 11;
-}]>;
-
-def immUsNeg : PatLeaf<(imm), [{
-  return -((uint32_t)N->getZExtValue()) <= 11;
-}]>;
-
-def immUs : PatLeaf<(imm), [{
-  return (uint32_t)N->getZExtValue() <= 11;
-}]>;
-
-def immU6 : PatLeaf<(imm), [{
-  return (uint32_t)N->getZExtValue() < (1 << 6);
-}]>;
-
-def immU10 : PatLeaf<(imm), [{
-  return (uint32_t)N->getZExtValue() < (1 << 10);
-}]>;
-
-def immU16 : PatLeaf<(imm), [{
-  return (uint32_t)N->getZExtValue() < (1 << 16);
-}]>;
-
-def immU20 : PatLeaf<(imm), [{
-  return (uint32_t)N->getZExtValue() < (1 << 20);
-}]>;
-
-// FIXME check subtarget. Currently we check if the immediate
-// is in the common subset of legal immediate values for both
-// XS1A and XS1B.
-def immMskBitp : PatLeaf<(imm), [{
-  uint32_t value = (uint32_t)N->getZExtValue();
-  if (!isMask_32(value)) {
-    return false;
-  }
-  int msksize = 32 - CountLeadingZeros_32(value);
-  return (msksize >= 1 && msksize <= 8)
-          || msksize == 16
-          || msksize == 24
-          || msksize == 32;
-}]>;
-
-// FIXME check subtarget. Currently we check if the immediate
-// is in the common subset of legal immediate values for both
-// XS1A and XS1B.
-def immBitp : PatLeaf<(imm), [{
-  uint32_t value = (uint32_t)N->getZExtValue();
-  return (value >= 1 && value <= 8)
-          || value == 16
-          || value == 24
-          || value == 32;
-}]>;
-
-def immBpwSubBitp : PatLeaf<(imm), [{
-  uint32_t value = (uint32_t)N->getZExtValue();
-  return (value >= 24 && value <= 31)
-          || value == 16
-          || value == 8
-          || value == 0;
-}]>;
-
-def lda16f : PatFrag<(ops node:$addr, node:$offset),
-                     (add node:$addr, (shl node:$offset, 1))>;
-def lda16b : PatFrag<(ops node:$addr, node:$offset),
-                     (sub node:$addr, (shl node:$offset, 1))>;
-def ldawf : PatFrag<(ops node:$addr, node:$offset),
-                     (add node:$addr, (shl node:$offset, 2))>;
-def ldawb : PatFrag<(ops node:$addr, node:$offset),
-                     (sub node:$addr, (shl node:$offset, 2))>;
-
-// Instruction operand types
-def calltarget  : Operand<i32>;
-def brtarget : Operand<OtherVT>;
-def pclabel : Operand<i32>;
-
-// Addressing modes
-def ADDRspii : ComplexPattern<i32, 2, "SelectADDRspii", [add, frameindex], []>;
-def ADDRdpii : ComplexPattern<i32, 2, "SelectADDRdpii", [add, dprelwrapper],
-                 []>;
-def ADDRcpii : ComplexPattern<i32, 2, "SelectADDRcpii", [add, cprelwrapper],
-                 []>;
-
-// Address operands
-def MEMii : Operand<i32> {
-  let PrintMethod = "printMemOperand";
-  let MIOperandInfo = (ops i32imm, i32imm);
-}
-
-//===----------------------------------------------------------------------===//
-// Instruction Class Templates
-//===----------------------------------------------------------------------===//
-
-// Three operand short
-
-multiclass F3R_2RUS<string OpcStr, SDNode OpNode> {
-  def _3r: _F3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, GRRegs:$c))]>;
-  def _2rus : _F2RUS<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, i32imm:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, immUs:$c))]>;
-}
-
-multiclass F3R_2RUS_np<string OpcStr> {
-  def _3r: _F3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 []>;
-  def _2rus : _F2RUS<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, i32imm:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 []>;
-}
-
-multiclass F3R_2RBITP<string OpcStr, SDNode OpNode> {
-  def _3r: _F3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, GRRegs:$c))]>;
-  def _2rus : _F2RUS<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, i32imm:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, immBitp:$c))]>;
-}
-
-class F3R<string OpcStr, SDNode OpNode> : _F3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, GRRegs:$c))]>;
-
-class F3R_np<string OpcStr> : _F3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 []>;
-// Three operand long
-
-/// FL3R_L2RUS multiclass - Define a normal FL3R/FL2RUS pattern in one shot.
-multiclass FL3R_L2RUS<string OpcStr, SDNode OpNode> {
-  def _l3r: _FL3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, GRRegs:$c))]>;
-  def _l2rus : _FL2RUS<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, i32imm:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, immUs:$c))]>;
-}
-
-/// FL3R_L2RUS multiclass - Define a normal FL3R/FL2RUS pattern in one shot.
-multiclass FL3R_L2RBITP<string OpcStr, SDNode OpNode> {
-  def _l3r: _FL3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, GRRegs:$c))]>;
-  def _l2rus : _FL2RUS<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, i32imm:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, immBitp:$c))]>;
-}
-
-class FL3R<string OpcStr, SDNode OpNode> : _FL3R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b, GRRegs:$c),
-                 !strconcat(OpcStr, " $dst, $b, $c"),
-                 [(set GRRegs:$dst, (OpNode GRRegs:$b, GRRegs:$c))]>;
-
-// Register - U6
-// Operand register - U6
-multiclass FRU6_LRU6_branch<string OpcStr> {
-  def _ru6: _FRU6<
-                 (outs), (ins GRRegs:$cond, brtarget:$dest),
-                 !strconcat(OpcStr, " $cond, $dest"),
-                 []>;
-  def _lru6: _FLRU6<
-                 (outs), (ins GRRegs:$cond, brtarget:$dest),
-                 !strconcat(OpcStr, " $cond, $dest"),
-                 []>;
-}
-
-multiclass FRU6_LRU6_cp<string OpcStr> {
-  def _ru6: _FRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$a),
-                 !strconcat(OpcStr, " $dst, cp[$a]"),
-                 []>;
-  def _lru6: _FLRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$a),
-                 !strconcat(OpcStr, " $dst, cp[$a]"),
-                 []>;
-}
-
-// U6
-multiclass FU6_LU6<string OpcStr, SDNode OpNode> {
-  def _u6: _FU6<
-                 (outs), (ins i32imm:$b),
-                 !strconcat(OpcStr, " $b"),
-                 [(OpNode immU6:$b)]>;
-  def _lu6: _FLU6<
-                 (outs), (ins i32imm:$b),
-                 !strconcat(OpcStr, " $b"),
-                 [(OpNode immU16:$b)]>;
-}
-
-multiclass FU6_LU6_np<string OpcStr> {
-  def _u6: _FU6<
-                 (outs), (ins i32imm:$b),
-                 !strconcat(OpcStr, " $b"),
-                 []>;
-  def _lu6: _FLU6<
-                 (outs), (ins i32imm:$b),
-                 !strconcat(OpcStr, " $b"),
-                 []>;
-}
-
-// U10
-multiclass FU10_LU10_np<string OpcStr> {
-  def _u10: _FU10<
-                 (outs), (ins i32imm:$b),
-                 !strconcat(OpcStr, " $b"),
-                 []>;
-  def _lu10: _FLU10<
-                 (outs), (ins i32imm:$b),
-                 !strconcat(OpcStr, " $b"),
-                 []>;
-}
-
-// Two operand short
-
-class F2R_np<string OpcStr> : _F2R<
-                 (outs GRRegs:$dst), (ins GRRegs:$b),
-                 !strconcat(OpcStr, " $dst, $b"),
-                 []>;
-
-// Two operand long
-
-//===----------------------------------------------------------------------===//
-// Pseudo Instructions
-//===----------------------------------------------------------------------===//
-
-let Defs = [SP], Uses = [SP] in {
-def ADJCALLSTACKDOWN : PseudoInstXCore<(outs), (ins i32imm:$amt),
-                               "${:comment} ADJCALLSTACKDOWN $amt",
-                               [(callseq_start timm:$amt)]>;
-def ADJCALLSTACKUP : PseudoInstXCore<(outs), (ins i32imm:$amt1, i32imm:$amt2),
-                            "${:comment} ADJCALLSTACKUP $amt1",
-                            [(callseq_end timm:$amt1, timm:$amt2)]>;
-}
-
-def LDWFI : PseudoInstXCore<(outs GRRegs:$dst), (ins MEMii:$addr),
-                             "${:comment} LDWFI $dst, $addr",
-                             [(set GRRegs:$dst, (load ADDRspii:$addr))]>;
-
-def LDAWFI : PseudoInstXCore<(outs GRRegs:$dst), (ins MEMii:$addr),
-                             "${:comment} LDAWFI $dst, $addr",
-                             [(set GRRegs:$dst, ADDRspii:$addr)]>;
-
-def STWFI : PseudoInstXCore<(outs), (ins GRRegs:$src, MEMii:$addr),
-                            "${:comment} STWFI $src, $addr",
-                            [(store GRRegs:$src, ADDRspii:$addr)]>;
-
-// SELECT_CC_* - Used to implement the SELECT_CC DAG operation.  Expanded by the
-// scheduler into a branch sequence.
-let usesCustomDAGSchedInserter = 1 in {
-  def SELECT_CC : PseudoInstXCore<(outs GRRegs:$dst),
-                              (ins GRRegs:$cond, GRRegs:$T, GRRegs:$F),
-                              "${:comment} SELECT_CC PSEUDO!",
-                              [(set GRRegs:$dst,
-                                 (select GRRegs:$cond, GRRegs:$T, GRRegs:$F))]>;
-}
-
-//===----------------------------------------------------------------------===//
-// Instructions
-//===----------------------------------------------------------------------===//
-
-// Three operand short
-defm ADD : F3R_2RUS<"add", add>;
-defm SUB : F3R_2RUS<"sub", sub>;
-let neverHasSideEffects = 1 in {
-defm EQ : F3R_2RUS_np<"eq">;
-def LSS_3r : F3R_np<"lss">;
-def LSU_3r : F3R_np<"lsu">;
-}
-def AND_3r : F3R<"and", and>;
-def OR_3r : F3R<"or", or>;
-
-let mayLoad=1 in {
-def LDW_3r : _F3R<(outs GRRegs:$dst), (ins GRRegs:$addr, GRRegs:$offset),
-                  "ldw $dst, $addr[$offset]",
-                  []>;
-
-def LDW_2rus : _F2RUS<(outs GRRegs:$dst), (ins GRRegs:$addr, i32imm:$offset),
-                  "ldw $dst, $addr[$offset]",
-                  []>;
-
-def LD16S_3r :  _F3R<(outs GRRegs:$dst), (ins GRRegs:$addr, GRRegs:$offset),
-                  "ld16s $dst, $addr[$offset]",
-                  []>;
-
-def LD8U_3r :  _F3R<(outs GRRegs:$dst), (ins GRRegs:$addr, GRRegs:$offset),
-                  "ld8u $dst, $addr[$offset]",
-                  []>;
-}
-
-let mayStore=1 in {
-def STW_3r : _F3R<(outs), (ins GRRegs:$val, GRRegs:$addr, GRRegs:$offset),
-                  "stw $val, $addr[$offset]",
-                  []>;
-
-def STW_2rus : _F2RUS<(outs), (ins GRRegs:$val, GRRegs:$addr, i32imm:$offset),
-                  "stw $val, $addr[$offset]",
-                  []>;
-}
-
-defm SHL : F3R_2RBITP<"shl", shl>;
-defm SHR : F3R_2RBITP<"shr", srl>;
-// TODO tsetr
-
-// Three operand long
-def LDAWF_l3r : _FL3R<(outs GRRegs:$dst), (ins GRRegs:$addr, GRRegs:$offset),
-                  "ldaw $dst, $addr[$offset]",
-                  [(set GRRegs:$dst, (ldawf GRRegs:$addr, GRRegs:$offset))]>;
-
-let neverHasSideEffects = 1 in
-def LDAWF_l2rus : _FL2RUS<(outs GRRegs:$dst),
-                    (ins GRRegs:$addr, i32imm:$offset),
-                    "ldaw $dst, $addr[$offset]",
-                    []>;
-
-def LDAWB_l3r : _FL3R<(outs GRRegs:$dst), (ins GRRegs:$addr, GRRegs:$offset),
-                  "ldaw $dst, $addr[-$offset]",
-                  [(set GRRegs:$dst, (ldawb GRRegs:$addr, GRRegs:$offset))]>;
-
-let neverHasSideEffects = 1 in
-def LDAWB_l2rus : _FL2RUS<(outs GRRegs:$dst),
-                    (ins GRRegs:$addr, i32imm:$offset),
-                    "ldaw $dst, $addr[-$offset]",
-                    []>;
-
-def LDA16F_l3r : _FL3R<(outs GRRegs:$dst), (ins GRRegs:$addr, GRRegs:$offset),
-                  "lda16 $dst, $addr[$offset]",
-                  [(set GRRegs:$dst, (lda16f GRRegs:$addr, GRRegs:$offset))]>;
-
-def LDA16B_l3r : _FL3R<(outs GRRegs:$dst), (ins GRRegs:$addr, GRRegs:$offset),
-                  "lda16 $dst, $addr[-$offset]",
-                  [(set GRRegs:$dst, (lda16b GRRegs:$addr, GRRegs:$offset))]>;
-
-def MUL_l3r : FL3R<"mul", mul>;
-// Instructions which may trap are marked as side effecting.
-let hasSideEffects = 1 in {
-def DIVS_l3r : FL3R<"divs", sdiv>;
-def DIVU_l3r : FL3R<"divu", udiv>;
-def REMS_l3r : FL3R<"rems", srem>;
-def REMU_l3r : FL3R<"remu", urem>;
-}
-def XOR_l3r : FL3R<"xor", xor>;
-defm ASHR : FL3R_L2RBITP<"ashr", sra>;
-// TODO crc32, crc8, inpw, outpw
-let mayStore=1 in {
-def ST16_l3r : _FL3R<(outs), (ins GRRegs:$val, GRRegs:$addr, GRRegs:$offset),
-                "st16 $val, $addr[$offset]",
-                []>;
-
-def ST8_l3r : _FL3R<(outs), (ins GRRegs:$val, GRRegs:$addr, GRRegs:$offset),
-                "st8 $val, $addr[$offset]",
-                []>;
-}
-
-// Four operand long
-let Predicates = [HasXS1B], Constraints = "$src1 = $dst1,$src2 = $dst2" in {
-def MACCU_l4r : _L4R<(outs GRRegs:$dst1, GRRegs:$dst2),
-                    (ins GRRegs:$src1, GRRegs:$src2, GRRegs:$src3,
-                      GRRegs:$src4),
-                    "maccu $dst1, $dst2, $src3, $src4",
-                    []>;
-
-def MACCS_l4r : _L4R<(outs GRRegs:$dst1, GRRegs:$dst2),
-                    (ins GRRegs:$src1, GRRegs:$src2, GRRegs:$src3,
-                      GRRegs:$src4),
-                    "maccs $dst1, $dst2, $src3, $src4",
-                    []>;
-}
-
-// Five operand long
-
-let Predicates = [HasXS1B] in {
-def LADD_l5r : _L5R<(outs GRRegs:$dst1, GRRegs:$dst2),
-                    (ins GRRegs:$src1, GRRegs:$src2, GRRegs:$src3),
-                    "ladd $dst1, $dst2, $src1, $src2, $src3",
-                    []>;
-
-def LSUB_l5r : _L5R<(outs GRRegs:$dst1, GRRegs:$dst2),
-                    (ins GRRegs:$src1, GRRegs:$src2, GRRegs:$src3),
-                    "lsub $dst1, $dst2, $src1, $src2, $src3",
-                    []>;
-
-def LDIV_l5r : _L5R<(outs GRRegs:$dst1, GRRegs:$dst2),
-                    (ins GRRegs:$src1, GRRegs:$src2, GRRegs:$src3),
-                    "ldiv $dst1, $dst2, $src1, $src2, $src3",
-                    []>;
-}
-
-// Six operand long
-
-def LMUL_l6r : _L6R<(outs GRRegs:$dst1, GRRegs:$dst2),
-                    (ins GRRegs:$src1, GRRegs:$src2, GRRegs:$src3,
-                      GRRegs:$src4),
-                    "lmul $dst1, $dst2, $src1, $src2, $src3, $src4",
-                    []>;
-
-let Predicates = [HasXS1A] in
-def MACC_l6r : _L6R<(outs GRRegs:$dst1, GRRegs:$dst2),
-                    (ins GRRegs:$src1, GRRegs:$src2, GRRegs:$src3,
-                      GRRegs:$src4),
-                    "macc $dst1, $dst2, $src1, $src2, $src3, $src4",
-                    []>;
-
-// Register - U6
-
-//let Uses = [DP] in ...
-let neverHasSideEffects = 1, isReMaterializable = 1 in
-def LDAWDP_ru6: _FRU6<(outs GRRegs:$dst), (ins MEMii:$a),
-                    "ldaw $dst, dp[$a]",
-                    []>;
-
-let isReMaterializable = 1 in                    
-def LDAWDP_lru6: _FLRU6<
-                    (outs GRRegs:$dst), (ins MEMii:$a),
-                    "ldaw $dst, dp[$a]",
-                    [(set GRRegs:$dst, ADDRdpii:$a)]>;
-
-let mayLoad=1 in
-def LDWDP_ru6: _FRU6<(outs GRRegs:$dst), (ins MEMii:$a),
-                    "ldw $dst, dp[$a]",
-                    []>;
-                    
-def LDWDP_lru6: _FLRU6<
-                    (outs GRRegs:$dst), (ins MEMii:$a),
-                    "ldw $dst, dp[$a]",
-                    [(set GRRegs:$dst, (load ADDRdpii:$a))]>;
-
-let mayStore=1 in
-def STWDP_ru6 : _FRU6<(outs), (ins GRRegs:$val, MEMii:$addr),
-                  "stw $val, dp[$addr]",
-                  []>;
-
-def STWDP_lru6 : _FLRU6<(outs), (ins GRRegs:$val, MEMii:$addr),
-                  "stw $val, dp[$addr]",
-                  [(store GRRegs:$val, ADDRdpii:$addr)]>;
-
-//let Uses = [CP] in ..
-let mayLoad = 1, isReMaterializable = 1 in
-defm LDWCP : FRU6_LRU6_cp<"ldw">;
-
-let Uses = [SP] in {
-let mayStore=1 in {
-def STWSP_ru6 : _FRU6<
-                 (outs), (ins GRRegs:$val, i32imm:$index),
-                 "stw $val, sp[$index]",
-                 [(XCoreStwsp GRRegs:$val, immU6:$index)]>;
-
-def STWSP_lru6 : _FLRU6<
-                 (outs), (ins GRRegs:$val, i32imm:$index),
-                 "stw $val, sp[$index]",
-                 [(XCoreStwsp GRRegs:$val, immU16:$index)]>;
-}
-
-let mayLoad=1 in {
-def LDWSP_ru6 : _FRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$b),
-                 "ldw $dst, sp[$b]",
-                 []>;
-
-def LDWSP_lru6 : _FLRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$b),
-                 "ldw $dst, sp[$b]",
-                 []>;
-}
-
-let neverHasSideEffects = 1 in {
-def LDAWSP_ru6 : _FRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$b),
-                 "ldaw $dst, sp[$b]",
-                 []>;
-
-def LDAWSP_lru6 : _FLRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$b),
-                 "ldaw $dst, sp[$b]",
-                 []>;
-
-def LDAWSP_ru6_RRegs : _FRU6<
-                 (outs RRegs:$dst), (ins i32imm:$b),
-                 "ldaw $dst, sp[$b]",
-                 []>;
-
-def LDAWSP_lru6_RRegs : _FLRU6<
-                 (outs RRegs:$dst), (ins i32imm:$b),
-                 "ldaw $dst, sp[$b]",
-                 []>;
-}
-}
-
-let isReMaterializable = 1 in {
-def LDC_ru6 : _FRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$b),
-                 "ldc $dst, $b",
-                 [(set GRRegs:$dst, immU6:$b)]>;
-
-def LDC_lru6 : _FLRU6<
-                 (outs GRRegs:$dst), (ins i32imm:$b),
-                 "ldc $dst, $b",
-                 [(set GRRegs:$dst, immU16:$b)]>;
-}
-
-// Operand register - U6
-// TODO setc
-let isBranch = 1, isTerminator = 1 in {
-defm BRFT: FRU6_LRU6_branch<"bt">;
-defm BRBT: FRU6_LRU6_branch<"bt">;
-defm BRFF: FRU6_LRU6_branch<"bf">;
-defm BRBF: FRU6_LRU6_branch<"bf">;
-}
-
-// U6
-let Defs = [SP], Uses = [SP] in {
-let neverHasSideEffects = 1 in
-defm EXTSP : FU6_LU6_np<"extsp">;
-let mayStore = 1 in
-defm ENTSP : FU6_LU6_np<"entsp">;
-
-let isReturn = 1, isTerminator = 1, mayLoad = 1 in {
-defm RETSP : FU6_LU6<"retsp", XCoreRetsp>;
-}
-}
-
-// TODO extdp, kentsp, krestsp, blat, setsr
-// clrsr, getsr, kalli
-let isBranch = 1, isTerminator = 1 in {
-def BRBU_u6 : _FU6<
-                 (outs),
-                 (ins brtarget:$target),
-                 "bu $target",
-                 []>;
-
-def BRBU_lu6 : _FLU6<
-                 (outs),
-                 (ins brtarget:$target),
-                 "bu $target",
-                 []>;
-
-def BRFU_u6 : _FU6<
-                 (outs),
-                 (ins brtarget:$target),
-                 "bu $target",
-                 []>;
-
-def BRFU_lu6 : _FLU6<
-                 (outs),
-                 (ins brtarget:$target),
-                 "bu $target",
-                 []>;
-}
-
-//let Uses = [CP] in ...
-let Predicates = [HasXS1B], Defs = [R11], neverHasSideEffects = 1,
-  isReMaterializable = 1 in
-def LDAWCP_u6: _FRU6<(outs), (ins MEMii:$a),
-                    "ldaw r11, cp[$a]",
-                    []>;
-
-let Predicates = [HasXS1B], Defs = [R11], isReMaterializable = 1 in
-def LDAWCP_lu6: _FLRU6<
-                    (outs), (ins MEMii:$a),
-                    "ldaw r11, cp[$a]",
-                    [(set R11, ADDRcpii:$a)]>;
-
-// U10
-// TODO ldwcpl, blacp
-
-let Defs = [R11], isReMaterializable = 1, neverHasSideEffects = 1 in
-def LDAP_u10 : _FU10<
-                  (outs),
-                  (ins i32imm:$addr),
-                  "ldap r11, $addr",
-                  []>;
-
-let Defs = [R11], isReMaterializable = 1 in
-def LDAP_lu10 : _FLU10<
-                  (outs),
-                  (ins i32imm:$addr),
-                  "ldap r11, $addr",
-                  [(set R11, (pcrelwrapper tglobaladdr:$addr))]>;
-
-let isCall=1,
-// All calls clobber the the link register and the non-callee-saved registers:
-Defs = [R0, R1, R2, R3, R11, LR] in {
-def BL_u10 : _FU10<
-                  (outs),
-                  (ins calltarget:$target, variable_ops),
-                  "bl $target",
-                  [(XCoreBranchLink immU10:$target)]>;
-
-def BL_lu10 : _FLU10<
-                  (outs),
-                  (ins calltarget:$target, variable_ops),
-                  "bl $target",
-                  [(XCoreBranchLink immU20:$target)]>;
-}
-
-// Two operand short
-// TODO getr, getst
-def NOT : _F2R<(outs GRRegs:$dst), (ins GRRegs:$b),
-                 "not $dst, $b",
-                 [(set GRRegs:$dst, (not GRRegs:$b))]>;
-
-def NEG : _F2R<(outs GRRegs:$dst), (ins GRRegs:$b),
-                 "neg $dst, $b",
-                 [(set GRRegs:$dst, (ineg GRRegs:$b))]>;
-
-// TODO setd, eet, eef, getts, setpt, outct, inct, chkct, outt, intt, out,
-// in, outshr, inshr, testct, testwct, tinitpc, tinitdp, tinitsp, tinitcp,
-// tsetmr, sext (reg), zext (reg)
-let isTwoAddress = 1 in {
-let neverHasSideEffects = 1 in
-def SEXT_rus : _FRUS<(outs GRRegs:$dst), (ins GRRegs:$src1, i32imm:$src2),
-                 "sext $dst, $src2",
-                 []>;
-
-let neverHasSideEffects = 1 in
-def ZEXT_rus : _FRUS<(outs GRRegs:$dst), (ins GRRegs:$src1, i32imm:$src2),
-                 "zext $dst, $src2",
-                 []>;
-
-def ANDNOT_2r : _F2R<(outs GRRegs:$dst), (ins GRRegs:$src1, GRRegs:$src2),
-                 "andnot $dst, $src2",
-                 [(set GRRegs:$dst, (and GRRegs:$src1, (not GRRegs:$src2)))]>;
-}
-
-let isReMaterializable = 1, neverHasSideEffects = 1 in
-def MKMSK_rus : _FRUS<(outs GRRegs:$dst), (ins i32imm:$size),
-                 "mkmsk $dst, $size",
-                 []>;
-
-def MKMSK_2r : _FRUS<(outs GRRegs:$dst), (ins GRRegs:$size),
-                 "mkmsk $dst, $size",
-                 [(set GRRegs:$dst, (add (shl 1, GRRegs:$size), 0xffffffff))]>;
-
-// Two operand long
-// TODO settw, setclk, setrdy, setpsc, endin, peek,
-// getd, testlcl, tinitlr, getps, setps
-def BITREV_l2r : _FL2R<(outs GRRegs:$dst), (ins GRRegs:$src),
-                 "bitrev $dst, $src",
-                 [(set GRRegs:$dst, (int_xcore_bitrev GRRegs:$src))]>;
-
-def BYTEREV_l2r : _FL2R<(outs GRRegs:$dst), (ins GRRegs:$src),
-                 "byterev $dst, $src",
-                 [(set GRRegs:$dst, (bswap GRRegs:$src))]>;
-
-def CLZ_l2r : _FL2R<(outs GRRegs:$dst), (ins GRRegs:$src),
-                 "clz $dst, $src",
-                 [(set GRRegs:$dst, (ctlz GRRegs:$src))]>;
-
-// One operand short
-// TODO edu, eeu, waitet, waitef, freer, tstart, msync, mjoin, syncr, clrtp
-// bru, setdp, setcp, setv, setev, kcall
-// dgetreg
-let isBranch=1, isIndirectBranch=1, isTerminator=1 in
-def BAU_1r : _F1R<(outs), (ins GRRegs:$addr),
-                 "bau $addr",
-                 [(brind GRRegs:$addr)]>;
-
-let Defs=[SP], neverHasSideEffects=1 in
-def SETSP_1r : _F1R<(outs), (ins GRRegs:$src),
-                 "set sp, $src",
-                 []>;
-
-let isBarrier = 1, hasCtrlDep = 1 in 
-def ECALLT_1r : _F1R<(outs), (ins GRRegs:$src),
-                 "ecallt $src",
-                 []>;
-
-let isBarrier = 1, hasCtrlDep = 1 in 
-def ECALLF_1r : _F1R<(outs), (ins GRRegs:$src),
-                 "ecallf $src",
-                 []>;
-
-let isCall=1, 
-// All calls clobber the the link register and the non-callee-saved registers:
-Defs = [R0, R1, R2, R3, R11, LR] in {
-def BLA_1r : _F1R<(outs), (ins GRRegs:$addr, variable_ops),
-                 "bla $addr",
-                 [(XCoreBranchLink GRRegs:$addr)]>;
-}
-
-// Zero operand short
-// TODO waiteu, clre, ssync, freet, ldspc, stspc, ldssr, stssr, ldsed, stsed,
-// stet, geted, getet, getkep, getksp, setkep, getid, kret, dcall, dret,
-// dentsp, drestsp
-
-let Defs = [R11] in
-def GETID_0R : _F0R<(outs), (ins),
-                 "get r11, id",
-                 [(set R11, (int_xcore_getid))]>;
-
-//===----------------------------------------------------------------------===//
-// Non-Instruction Patterns
-//===----------------------------------------------------------------------===//
-
-def : Pat<(XCoreBranchLink tglobaladdr:$addr), (BL_lu10 tglobaladdr:$addr)>;
-def : Pat<(XCoreBranchLink texternalsym:$addr), (BL_lu10 texternalsym:$addr)>;
-
-/// sext_inreg
-def : Pat<(sext_inreg GRRegs:$b, i1), (SEXT_rus GRRegs:$b, 1)>;
-def : Pat<(sext_inreg GRRegs:$b, i8), (SEXT_rus GRRegs:$b, 8)>;
-def : Pat<(sext_inreg GRRegs:$b, i16), (SEXT_rus GRRegs:$b, 16)>;
-
-/// loads
-def : Pat<(zextloadi8 (add GRRegs:$addr, GRRegs:$offset)),
-          (LD8U_3r GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(zextloadi8 GRRegs:$addr), (LD8U_3r GRRegs:$addr, (LDC_ru6 0))>;
-
-def : Pat<(sextloadi16 (lda16f GRRegs:$addr, GRRegs:$offset)),
-          (LD16S_3r GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(sextloadi16 GRRegs:$addr), (LD16S_3r GRRegs:$addr, (LDC_ru6 0))>;
-
-def : Pat<(load (ldawf GRRegs:$addr, GRRegs:$offset)),
-          (LDW_3r GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(load (add GRRegs:$addr, immUs4:$offset)),
-          (LDW_2rus GRRegs:$addr, (div4_xform immUs4:$offset))>;
-def : Pat<(load GRRegs:$addr), (LDW_2rus GRRegs:$addr, 0)>;
-
-/// anyext
-def : Pat<(extloadi8 (add GRRegs:$addr, GRRegs:$offset)),
-          (LD8U_3r GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(extloadi8 GRRegs:$addr), (LD8U_3r GRRegs:$addr, (LDC_ru6 0))>;
-def : Pat<(extloadi16 (lda16f GRRegs:$addr, GRRegs:$offset)),
-          (LD16S_3r GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(extloadi16 GRRegs:$addr), (LD16S_3r GRRegs:$addr, (LDC_ru6 0))>;
-
-/// stores
-def : Pat<(truncstorei8 GRRegs:$val, (add GRRegs:$addr, GRRegs:$offset)),
-          (ST8_l3r GRRegs:$val, GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(truncstorei8 GRRegs:$val, GRRegs:$addr),
-          (ST8_l3r GRRegs:$val, GRRegs:$addr, (LDC_ru6 0))>;
-          
-def : Pat<(truncstorei16 GRRegs:$val, (lda16f GRRegs:$addr, GRRegs:$offset)),
-          (ST16_l3r GRRegs:$val, GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(truncstorei16 GRRegs:$val, GRRegs:$addr),
-          (ST16_l3r GRRegs:$val, GRRegs:$addr, (LDC_ru6 0))>;
-
-def : Pat<(store GRRegs:$val, (ldawf GRRegs:$addr, GRRegs:$offset)),
-          (STW_3r GRRegs:$val, GRRegs:$addr, GRRegs:$offset)>;
-def : Pat<(store GRRegs:$val, (add GRRegs:$addr, immUs4:$offset)),
-          (STW_2rus GRRegs:$val, GRRegs:$addr, (div4_xform immUs4:$offset))>;
-def : Pat<(store GRRegs:$val, GRRegs:$addr),
-          (STW_2rus GRRegs:$val, GRRegs:$addr, 0)>;
-
-/// cttz
-def : Pat<(cttz GRRegs:$src), (CLZ_l2r (BITREV_l2r GRRegs:$src))>;
-
-/// trap
-def : Pat<(trap), (ECALLF_1r (LDC_ru6 0))>;
-
-///
-/// branch patterns
-///
-
-// unconditional branch
-def : Pat<(br bb:$addr), (BRFU_lu6 bb:$addr)>;
-
-// direct match equal/notequal zero brcond
-def : Pat<(brcond (setne GRRegs:$lhs, 0), bb:$dst),
-          (BRFT_lru6 GRRegs:$lhs, bb:$dst)>;
-def : Pat<(brcond (seteq GRRegs:$lhs, 0), bb:$dst),
-          (BRFF_lru6 GRRegs:$lhs, bb:$dst)>;
-
-def : Pat<(brcond (setle GRRegs:$lhs, GRRegs:$rhs), bb:$dst),
-          (BRFF_lru6 (LSS_3r GRRegs:$rhs, GRRegs:$lhs), bb:$dst)>;
-def : Pat<(brcond (setule GRRegs:$lhs, GRRegs:$rhs), bb:$dst),
-          (BRFF_lru6 (LSU_3r GRRegs:$rhs, GRRegs:$lhs), bb:$dst)>;
-def : Pat<(brcond (setge GRRegs:$lhs, GRRegs:$rhs), bb:$dst),
-          (BRFF_lru6 (LSS_3r GRRegs:$lhs, GRRegs:$rhs), bb:$dst)>;
-def : Pat<(brcond (setuge GRRegs:$lhs, GRRegs:$rhs), bb:$dst),
-          (BRFF_lru6 (LSU_3r GRRegs:$lhs, GRRegs:$rhs), bb:$dst)>;
-def : Pat<(brcond (setne GRRegs:$lhs, GRRegs:$rhs), bb:$dst),
-          (BRFF_lru6 (EQ_3r GRRegs:$lhs, GRRegs:$rhs), bb:$dst)>;
-def : Pat<(brcond (setne GRRegs:$lhs, immUs:$rhs), bb:$dst),
-          (BRFF_lru6 (EQ_2rus GRRegs:$lhs, immUs:$rhs), bb:$dst)>;
-
-// generic brcond pattern
-def : Pat<(brcond GRRegs:$cond, bb:$addr), (BRFT_lru6 GRRegs:$cond, bb:$addr)>;
-
-
-///
-/// Select patterns
-///
-
-// direct match equal/notequal zero select
-def : Pat<(select (setne GRRegs:$lhs, 0), GRRegs:$T, GRRegs:$F),
-        (SELECT_CC GRRegs:$lhs, GRRegs:$T, GRRegs:$F)>;
-
-def : Pat<(select (seteq GRRegs:$lhs, 0), GRRegs:$T, GRRegs:$F),
-        (SELECT_CC GRRegs:$lhs, GRRegs:$F, GRRegs:$T)>;
-
-def : Pat<(select (setle GRRegs:$lhs, GRRegs:$rhs), GRRegs:$T, GRRegs:$F),
-          (SELECT_CC (LSS_3r GRRegs:$rhs, GRRegs:$lhs), GRRegs:$F, GRRegs:$T)>;
-def : Pat<(select (setule GRRegs:$lhs, GRRegs:$rhs), GRRegs:$T, GRRegs:$F),
-          (SELECT_CC (LSU_3r GRRegs:$rhs, GRRegs:$lhs), GRRegs:$F, GRRegs:$T)>;
-def : Pat<(select (setge GRRegs:$lhs, GRRegs:$rhs), GRRegs:$T, GRRegs:$F),
-          (SELECT_CC (LSS_3r GRRegs:$lhs, GRRegs:$rhs), GRRegs:$F, GRRegs:$T)>;
-def : Pat<(select (setuge GRRegs:$lhs, GRRegs:$rhs), GRRegs:$T, GRRegs:$F),
-          (SELECT_CC (LSU_3r GRRegs:$lhs, GRRegs:$rhs), GRRegs:$F, GRRegs:$T)>;
-def : Pat<(select (setne GRRegs:$lhs, GRRegs:$rhs), GRRegs:$T, GRRegs:$F),
-          (SELECT_CC (EQ_3r GRRegs:$lhs, GRRegs:$rhs), GRRegs:$F, GRRegs:$T)>;
-def : Pat<(select (setne GRRegs:$lhs, immUs:$rhs), GRRegs:$T, GRRegs:$F),
-          (SELECT_CC (EQ_2rus GRRegs:$lhs, immUs:$rhs), GRRegs:$F, GRRegs:$T)>;
-
-///
-/// setcc patterns, only matched when none of the above brcond
-/// patterns match
-///
-
-// setcc 2 register operands
-def : Pat<(setle GRRegs:$lhs, GRRegs:$rhs),
-          (EQ_2rus (LSS_3r GRRegs:$rhs, GRRegs:$lhs), 0)>;
-def : Pat<(setule GRRegs:$lhs, GRRegs:$rhs),
-          (EQ_2rus (LSU_3r GRRegs:$rhs, GRRegs:$lhs), 0)>;
-
-def : Pat<(setgt GRRegs:$lhs, GRRegs:$rhs),
-          (LSS_3r GRRegs:$rhs, GRRegs:$lhs)>;
-def : Pat<(setugt GRRegs:$lhs, GRRegs:$rhs),
-          (LSU_3r GRRegs:$rhs, GRRegs:$lhs)>;
-
-def : Pat<(setge GRRegs:$lhs, GRRegs:$rhs),
-          (EQ_2rus (LSS_3r GRRegs:$lhs, GRRegs:$rhs), 0)>;
-def : Pat<(setuge GRRegs:$lhs, GRRegs:$rhs),
-          (EQ_2rus (LSU_3r GRRegs:$lhs, GRRegs:$rhs), 0)>;
-
-def : Pat<(setlt GRRegs:$lhs, GRRegs:$rhs),
-          (LSS_3r GRRegs:$lhs, GRRegs:$rhs)>;
-def : Pat<(setult GRRegs:$lhs, GRRegs:$rhs),
-          (LSU_3r GRRegs:$lhs, GRRegs:$rhs)>;
-
-def : Pat<(setne GRRegs:$lhs, GRRegs:$rhs),
-          (EQ_2rus (EQ_3r GRRegs:$lhs, GRRegs:$rhs), 0)>;
-
-def : Pat<(seteq GRRegs:$lhs, GRRegs:$rhs),
-          (EQ_3r GRRegs:$lhs, GRRegs:$rhs)>;
-
-// setcc reg/imm operands
-def : Pat<(seteq GRRegs:$lhs, immUs:$rhs),
-          (EQ_2rus GRRegs:$lhs, immUs:$rhs)>;
-def : Pat<(setne GRRegs:$lhs, immUs:$rhs),
-          (EQ_2rus (EQ_2rus GRRegs:$lhs, immUs:$rhs), 0)>;
-
-// misc
-def : Pat<(add GRRegs:$addr, immUs4:$offset),
-          (LDAWF_l2rus GRRegs:$addr, (div4_xform immUs4:$offset))>;
-
-def : Pat<(sub GRRegs:$addr, immUs4:$offset),
-          (LDAWB_l2rus GRRegs:$addr, (div4_xform immUs4:$offset))>;
-
-def : Pat<(and GRRegs:$val, immMskBitp:$mask),
-          (ZEXT_rus GRRegs:$val, (msksize_xform immMskBitp:$mask))>;
-
-// (sub X, imm) gets canonicalized to (add X, -imm).  Match this form.
-def : Pat<(add GRRegs:$src1, immUsNeg:$src2),
-          (SUB_2rus GRRegs:$src1, (neg_xform immUsNeg:$src2))>;
-
-def : Pat<(add GRRegs:$src1, immUs4Neg:$src2),
-          (LDAWB_l2rus GRRegs:$src1, (div4neg_xform immUs4Neg:$src2))>;
-
-///
-/// Some peepholes
-///
-
-def : Pat<(mul GRRegs:$src, 3),
-          (LDA16F_l3r GRRegs:$src, GRRegs:$src)>;
-
-def : Pat<(mul GRRegs:$src, 5),
-          (LDAWF_l3r GRRegs:$src, GRRegs:$src)>;
-
-def : Pat<(mul GRRegs:$src, -3),
-          (LDAWB_l3r GRRegs:$src, GRRegs:$src)>;
-
-// ashr X, 32 is equivalent to ashr X, 31 on the XCore.
-def : Pat<(sra GRRegs:$src, 31),
-          (ASHR_l2rus GRRegs:$src, 32)>;
-
-def : Pat<(sra (shl GRRegs:$src, immBpwSubBitp:$imm), immBpwSubBitp:$imm),
-          (SEXT_rus GRRegs:$src, (bpwsub_xform immBpwSubBitp:$imm))>;
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.cpp
deleted file mode 100644
index dffdda9..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//===-- XCoreMCAsmInfo.cpp - XCore asm properties -------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCoreMCAsmInfo.h"
-using namespace llvm;
-
-XCoreMCAsmInfo::XCoreMCAsmInfo(const Target &T, const StringRef &TT) {
-  SupportsDebugInformation = true;
-  Data16bitsDirective = "\t.short\t";
-  Data32bitsDirective = "\t.long\t";
-  Data64bitsDirective = 0;
-  ZeroDirective = "\t.space\t";
-  CommentString = "#";
-    
-  PrivateGlobalPrefix = ".L";
-  AscizDirective = ".asciiz";
-  WeakDefDirective = "\t.weak\t";
-  WeakRefDirective = "\t.weak\t";
-  SetDirective = "\t.set\t";
-
-  // Debug
-  HasLEB128 = true;
-  AbsoluteDebugSectionOffsets = true;
-}
-
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.h
deleted file mode 100644
index 01f8e48..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.h
+++ /dev/null
@@ -1,29 +0,0 @@
-//=====-- XCoreMCAsmInfo.h - XCore asm properties -------------*- C++ -*--====//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the XCoreMCAsmInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCORETARGETASMINFO_H
-#define XCORETARGETASMINFO_H
-
-#include "llvm/MC/MCAsmInfo.h"
-
-namespace llvm {
-  class Target;
-  class StringRef;
-  class XCoreMCAsmInfo : public MCAsmInfo {
-  public:
-    explicit XCoreMCAsmInfo(const Target &T, const StringRef &TT);
-  };
-
-} // namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h
deleted file mode 100644
index 124a011..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h
+++ /dev/null
@@ -1,69 +0,0 @@
-//====- XCoreMachineFuctionInfo.h - XCore machine function info -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares XCore-specific per-machine-function information.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCOREMACHINEFUNCTIONINFO_H
-#define XCOREMACHINEFUNCTIONINFO_H
-
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include <vector>
-
-namespace llvm {
-
-// Forward declarations
-class Function;
-
-/// XCoreFunctionInfo - This class is derived from MachineFunction private
-/// XCore target-specific information for each MachineFunction.
-class XCoreFunctionInfo : public MachineFunctionInfo {
-private:
-  bool UsesLR;
-  int LRSpillSlot;
-  int FPSpillSlot;
-  int VarArgsFrameIndex;
-  std::vector<std::pair<unsigned, CalleeSavedInfo> > SpillLabels;
-
-public:
-  XCoreFunctionInfo() :
-    UsesLR(false),
-    LRSpillSlot(0),
-    FPSpillSlot(0),
-    VarArgsFrameIndex(0) {}
-  
-  explicit XCoreFunctionInfo(MachineFunction &MF) :
-    UsesLR(false),
-    LRSpillSlot(0),
-    FPSpillSlot(0),
-    VarArgsFrameIndex(0) {}
-  
-  ~XCoreFunctionInfo() {}
-  
-  void setVarArgsFrameIndex(int off) { VarArgsFrameIndex = off; }
-  int getVarArgsFrameIndex() const { return VarArgsFrameIndex; }
-  
-  void setUsesLR(bool val) { UsesLR = val; }
-  bool getUsesLR() const { return UsesLR; }
-  
-  void setLRSpillSlot(int off) { LRSpillSlot = off; }
-  int getLRSpillSlot() const { return LRSpillSlot; }
-  
-  void setFPSpillSlot(int off) { FPSpillSlot = off; }
-  int getFPSpillSlot() const { return FPSpillSlot; }
-  
-  std::vector<std::pair<unsigned, CalleeSavedInfo> >&getSpillLabels() {
-    return SpillLabels;
-  }
-};
-} // End llvm namespace
-
-#endif // XCOREMACHINEFUNCTIONINFO_H
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp
deleted file mode 100644
index 8fbcb51..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp
+++ /dev/null
@@ -1,613 +0,0 @@
-//===- XCoreRegisterInfo.cpp - XCore Register Information -------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the XCore implementation of the MRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCoreRegisterInfo.h"
-#include "XCoreMachineFunctionInfo.h"
-#include "XCore.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineFrameInfo.h"
-#include "llvm/CodeGen/MachineLocation.h"
-#include "llvm/CodeGen/MachineModuleInfo.h"
-#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/CodeGen/RegisterScavenging.h"
-#include "llvm/Target/TargetFrameInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Type.h"
-#include "llvm/Function.h"
-#include "llvm/ADT/BitVector.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/raw_ostream.h"
-
-using namespace llvm;
-
-XCoreRegisterInfo::XCoreRegisterInfo(const TargetInstrInfo &tii)
-  : XCoreGenRegisterInfo(XCore::ADJCALLSTACKDOWN, XCore::ADJCALLSTACKUP),
-    TII(tii) {
-}
-
-// helper functions
-static inline bool isImmUs(unsigned val) {
-  return val <= 11;
-}
-
-static inline bool isImmU6(unsigned val) {
-  return val < (1 << 6);
-}
-
-static inline bool isImmU16(unsigned val) {
-  return val < (1 << 16);
-}
-
-static const unsigned XCore_ArgRegs[] = {
-  XCore::R0, XCore::R1, XCore::R2, XCore::R3
-};
-
-const unsigned * XCoreRegisterInfo::getArgRegs(const MachineFunction *MF)
-{
-  return XCore_ArgRegs;
-}
-
-unsigned XCoreRegisterInfo::getNumArgRegs(const MachineFunction *MF)
-{
-  return array_lengthof(XCore_ArgRegs);
-}
-
-bool XCoreRegisterInfo::needsFrameMoves(const MachineFunction &MF)
-{
-  const MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineModuleInfo *MMI = MFI->getMachineModuleInfo();
-  return (MMI && MMI->hasDebugInfo()) ||
-          !MF.getFunction()->doesNotThrow() ||
-          UnwindTablesMandatory;
-}
-
-const unsigned* XCoreRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
-                                                                         const {
-  static const unsigned CalleeSavedRegs[] = {
-    XCore::R4, XCore::R5, XCore::R6, XCore::R7,
-    XCore::R8, XCore::R9, XCore::R10, XCore::LR,
-    0
-  };
-  return CalleeSavedRegs;
-}
-
-const TargetRegisterClass* const*
-XCoreRegisterInfo::getCalleeSavedRegClasses(const MachineFunction *MF) const {
-  static const TargetRegisterClass * const CalleeSavedRegClasses[] = {
-    XCore::GRRegsRegisterClass, XCore::GRRegsRegisterClass,
-    XCore::GRRegsRegisterClass, XCore::GRRegsRegisterClass,
-    XCore::GRRegsRegisterClass, XCore::GRRegsRegisterClass,
-    XCore::GRRegsRegisterClass, XCore::RRegsRegisterClass,
-    0
-  };
-  return CalleeSavedRegClasses;
-}
-
-BitVector XCoreRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
-  BitVector Reserved(getNumRegs());
-  Reserved.set(XCore::CP);
-  Reserved.set(XCore::DP);
-  Reserved.set(XCore::SP);
-  Reserved.set(XCore::LR);
-  if (hasFP(MF)) {
-    Reserved.set(XCore::R10);
-  }
-  return Reserved;
-}
-
-bool
-XCoreRegisterInfo::requiresRegisterScavenging(const MachineFunction &MF) const {
-  // TODO can we estimate stack size?
-  return hasFP(MF);
-}
-
-bool XCoreRegisterInfo::hasFP(const MachineFunction &MF) const {
-  return NoFramePointerElim || MF.getFrameInfo()->hasVarSizedObjects();
-}
-
-// This function eliminates ADJCALLSTACKDOWN,
-// ADJCALLSTACKUP pseudo instructions
-void XCoreRegisterInfo::
-eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
-                              MachineBasicBlock::iterator I) const {
-  if (!hasReservedCallFrame(MF)) {
-    // Turn the adjcallstackdown instruction into 'extsp <amt>' and the
-    // adjcallstackup instruction into 'ldaw sp, sp[<amt>]'
-    MachineInstr *Old = I;
-    uint64_t Amount = Old->getOperand(0).getImm();
-    if (Amount != 0) {
-      // We need to keep the stack aligned properly.  To do this, we round the
-      // amount of space needed for the outgoing arguments up to the next
-      // alignment boundary.
-      unsigned Align = MF.getTarget().getFrameInfo()->getStackAlignment();
-      Amount = (Amount+Align-1)/Align*Align;
-
-      assert(Amount%4 == 0);
-      Amount /= 4;
-      
-      bool isU6 = isImmU6(Amount);
-      
-      if (!isU6 && !isImmU16(Amount)) {
-        // FIX could emit multiple instructions in this case.
-#ifndef NDEBUG
-        errs() << "eliminateCallFramePseudoInstr size too big: "
-               << Amount << "\n";
-#endif
-        llvm_unreachable(0);
-      }
-
-      MachineInstr *New;
-      if (Old->getOpcode() == XCore::ADJCALLSTACKDOWN) {
-        int Opcode = isU6 ? XCore::EXTSP_u6 : XCore::EXTSP_lu6;
-        New=BuildMI(MF, Old->getDebugLoc(), TII.get(Opcode))
-          .addImm(Amount);
-      } else {
-        assert(Old->getOpcode() == XCore::ADJCALLSTACKUP);
-        int Opcode = isU6 ? XCore::LDAWSP_ru6_RRegs : XCore::LDAWSP_lru6_RRegs;
-        New=BuildMI(MF, Old->getDebugLoc(), TII.get(Opcode), XCore::SP)
-          .addImm(Amount);
-      }
-
-      // Replace the pseudo instruction with a new instruction...
-      MBB.insert(I, New);
-    }
-  }
-  
-  MBB.erase(I);
-}
-
-void XCoreRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
-                                            int SPAdj, RegScavenger *RS) const {
-  assert(SPAdj == 0 && "Unexpected");
-  MachineInstr &MI = *II;
-  DebugLoc dl = MI.getDebugLoc();
-  unsigned i = 0;
-
-  while (!MI.getOperand(i).isFI()) {
-    ++i;
-    assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
-  }
-
-  MachineOperand &FrameOp = MI.getOperand(i);
-  int FrameIndex = FrameOp.getIndex();
-
-  MachineFunction &MF = *MI.getParent()->getParent();
-  int Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex);
-  int StackSize = MF.getFrameInfo()->getStackSize();
-
-  #ifndef NDEBUG
-  DEBUG(errs() << "\nFunction         : " 
-        << MF.getFunction()->getName() << "\n");
-  DEBUG(errs() << "<--------->\n");
-  DEBUG(MI.print(errs()));
-  DEBUG(errs() << "FrameIndex         : " << FrameIndex << "\n");
-  DEBUG(errs() << "FrameOffset        : " << Offset << "\n");
-  DEBUG(errs() << "StackSize          : " << StackSize << "\n");
-  #endif
-
-  Offset += StackSize;
-  
-  // fold constant into offset.
-  Offset += MI.getOperand(i + 1).getImm();
-  MI.getOperand(i + 1).ChangeToImmediate(0);
-  
-  assert(Offset%4 == 0 && "Misaligned stack offset");
-
-  DEBUG(errs() << "Offset             : " << Offset << "\n" << "<--------->\n");
-  
-  Offset/=4;
-  
-  bool FP = hasFP(MF);
-  
-  unsigned Reg = MI.getOperand(0).getReg();
-  bool isKill = MI.getOpcode() == XCore::STWFI && MI.getOperand(0).isKill();
-
-  assert(XCore::GRRegsRegisterClass->contains(Reg) &&
-         "Unexpected register operand");
-  
-  MachineBasicBlock &MBB = *MI.getParent();
-  
-  if (FP) {
-    bool isUs = isImmUs(Offset);
-    unsigned FramePtr = XCore::R10;
-    
-    MachineInstr *New = 0;
-    if (!isUs) {
-      if (!RS) {
-        std::string msg;
-        raw_string_ostream Msg(msg);
-        Msg << "eliminateFrameIndex Frame size too big: " << Offset;
-        llvm_report_error(Msg.str());
-      }
-      unsigned ScratchReg = RS->scavengeRegister(XCore::GRRegsRegisterClass, II,
-                                                 SPAdj);
-      loadConstant(MBB, II, ScratchReg, Offset, dl);
-      switch (MI.getOpcode()) {
-      case XCore::LDWFI:
-        New = BuildMI(MBB, II, dl, TII.get(XCore::LDW_3r), Reg)
-              .addReg(FramePtr)
-              .addReg(ScratchReg, RegState::Kill);
-        break;
-      case XCore::STWFI:
-        New = BuildMI(MBB, II, dl, TII.get(XCore::STW_3r))
-              .addReg(Reg, getKillRegState(isKill))
-              .addReg(FramePtr)
-              .addReg(ScratchReg, RegState::Kill);
-        break;
-      case XCore::LDAWFI:
-        New = BuildMI(MBB, II, dl, TII.get(XCore::LDAWF_l3r), Reg)
-              .addReg(FramePtr)
-              .addReg(ScratchReg, RegState::Kill);
-        break;
-      default:
-        llvm_unreachable("Unexpected Opcode");
-      }
-    } else {
-      switch (MI.getOpcode()) {
-      case XCore::LDWFI:
-        New = BuildMI(MBB, II, dl, TII.get(XCore::LDW_2rus), Reg)
-              .addReg(FramePtr)
-              .addImm(Offset);
-        break;
-      case XCore::STWFI:
-        New = BuildMI(MBB, II, dl, TII.get(XCore::STW_2rus))
-              .addReg(Reg, getKillRegState(isKill))
-              .addReg(FramePtr)
-              .addImm(Offset);
-        break;
-      case XCore::LDAWFI:
-        New = BuildMI(MBB, II, dl, TII.get(XCore::LDAWF_l2rus), Reg)
-              .addReg(FramePtr)
-              .addImm(Offset);
-        break;
-      default:
-        llvm_unreachable("Unexpected Opcode");
-      }
-    }
-  } else {
-    bool isU6 = isImmU6(Offset);
-    if (!isU6 && !isImmU16(Offset)) {
-      std::string msg;
-      raw_string_ostream Msg(msg);
-      Msg << "eliminateFrameIndex Frame size too big: " << Offset;
-      llvm_report_error(Msg.str());
-    }
-
-    switch (MI.getOpcode()) {
-    int NewOpcode;
-    case XCore::LDWFI:
-      NewOpcode = (isU6) ? XCore::LDWSP_ru6 : XCore::LDWSP_lru6;
-      BuildMI(MBB, II, dl, TII.get(NewOpcode), Reg)
-            .addImm(Offset);
-      break;
-    case XCore::STWFI:
-      NewOpcode = (isU6) ? XCore::STWSP_ru6 : XCore::STWSP_lru6;
-      BuildMI(MBB, II, dl, TII.get(NewOpcode))
-            .addReg(Reg, getKillRegState(isKill))
-            .addImm(Offset);
-      break;
-    case XCore::LDAWFI:
-      NewOpcode = (isU6) ? XCore::LDAWSP_ru6 : XCore::LDAWSP_lru6;
-      BuildMI(MBB, II, dl, TII.get(NewOpcode), Reg)
-            .addImm(Offset);
-      break;
-    default:
-      llvm_unreachable("Unexpected Opcode");
-    }
-  }
-  // Erase old instruction.
-  MBB.erase(II);
-}
-
-void
-XCoreRegisterInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                                      RegScavenger *RS) const {
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  bool LRUsed = MF.getRegInfo().isPhysRegUsed(XCore::LR);
-  const TargetRegisterClass *RC = XCore::GRRegsRegisterClass;
-  XCoreFunctionInfo *XFI = MF.getInfo<XCoreFunctionInfo>();
-  if (LRUsed) {
-    MF.getRegInfo().setPhysRegUnused(XCore::LR);
-    
-    bool isVarArg = MF.getFunction()->isVarArg();
-    int FrameIdx;
-    if (! isVarArg) {
-      // A fixed offset of 0 allows us to save / restore LR using entsp / retsp.
-      FrameIdx = MFI->CreateFixedObject(RC->getSize(), 0);
-    } else {
-      FrameIdx = MFI->CreateStackObject(RC->getSize(), RC->getAlignment());
-    }
-    XFI->setUsesLR(FrameIdx);
-    XFI->setLRSpillSlot(FrameIdx);
-  }
-  if (requiresRegisterScavenging(MF)) {
-    // Reserve a slot close to SP or frame pointer.
-    RS->setScavengingFrameIndex(MFI->CreateStackObject(RC->getSize(),
-                                                RC->getAlignment()));
-  }
-  if (hasFP(MF)) {
-    // A callee save register is used to hold the FP.
-    // This needs saving / restoring in the epilogue / prologue.
-    XFI->setFPSpillSlot(MFI->CreateStackObject(RC->getSize(),
-                        RC->getAlignment()));
-  }
-}
-
-void XCoreRegisterInfo::
-processFunctionBeforeFrameFinalized(MachineFunction &MF) const {
-  
-}
-
-void XCoreRegisterInfo::
-loadConstant(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-            unsigned DstReg, int64_t Value, DebugLoc dl) const {
-  // TODO use mkmsk if possible.
-  if (!isImmU16(Value)) {
-    // TODO use constant pool.
-    std::string msg;
-    raw_string_ostream Msg(msg);
-    Msg << "loadConstant value too big " << Value;
-    llvm_report_error(Msg.str());
-  }
-  int Opcode = isImmU6(Value) ? XCore::LDC_ru6 : XCore::LDC_lru6;
-  BuildMI(MBB, I, dl, TII.get(Opcode), DstReg).addImm(Value);
-}
-
-void XCoreRegisterInfo::
-storeToStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                  unsigned SrcReg, int Offset, DebugLoc dl) const {
-  assert(Offset%4 == 0 && "Misaligned stack offset");
-  Offset/=4;
-  bool isU6 = isImmU6(Offset);
-  if (!isU6 && !isImmU16(Offset)) {
-    std::string msg;
-    raw_string_ostream Msg(msg);
-    Msg << "storeToStack offset too big " << Offset;
-    llvm_report_error(Msg.str());
-  }
-  int Opcode = isU6 ? XCore::STWSP_ru6 : XCore::STWSP_lru6;
-  BuildMI(MBB, I, dl, TII.get(Opcode))
-    .addReg(SrcReg)
-    .addImm(Offset);
-}
-
-void XCoreRegisterInfo::
-loadFromStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
-                  unsigned DstReg, int Offset, DebugLoc dl) const {
-  assert(Offset%4 == 0 && "Misaligned stack offset");
-  Offset/=4;
-  bool isU6 = isImmU6(Offset);
-  if (!isU6 && !isImmU16(Offset)) {
-    std::string msg;
-    raw_string_ostream Msg(msg);
-    Msg << "loadFromStack offset too big " << Offset;
-    llvm_report_error(Msg.str());
-  }
-  int Opcode = isU6 ? XCore::LDWSP_ru6 : XCore::LDWSP_lru6;
-  BuildMI(MBB, I, dl, TII.get(Opcode), DstReg)
-    .addImm(Offset);
-}
-
-void XCoreRegisterInfo::emitPrologue(MachineFunction &MF) const {
-  MachineBasicBlock &MBB = MF.front();   // Prolog goes in entry BB
-  MachineBasicBlock::iterator MBBI = MBB.begin();
-  MachineFrameInfo *MFI = MF.getFrameInfo();
-  MachineModuleInfo *MMI = MFI->getMachineModuleInfo();
-  XCoreFunctionInfo *XFI = MF.getInfo<XCoreFunctionInfo>();
-  DebugLoc dl = (MBBI != MBB.end() ?
-                 MBBI->getDebugLoc() : DebugLoc::getUnknownLoc());
-
-  bool FP = hasFP(MF);
-
-  // Work out frame sizes.
-  int FrameSize = MFI->getStackSize();
-
-  assert(FrameSize%4 == 0 && "Misaligned frame size");
-  
-  FrameSize/=4;
-  
-  bool isU6 = isImmU6(FrameSize);
-
-  if (!isU6 && !isImmU16(FrameSize)) {
-    // FIXME could emit multiple instructions.
-    std::string msg;
-    raw_string_ostream Msg(msg);
-    Msg << "emitPrologue Frame size too big: " << FrameSize;
-    llvm_report_error(Msg.str());
-  }
-  bool emitFrameMoves = needsFrameMoves(MF);
-
-  // Do we need to allocate space on the stack?
-  if (FrameSize) {
-    bool saveLR = XFI->getUsesLR();
-    bool LRSavedOnEntry = false;
-    int Opcode;
-    if (saveLR && (MFI->getObjectOffset(XFI->getLRSpillSlot()) == 0)) {
-      Opcode = (isU6) ? XCore::ENTSP_u6 : XCore::ENTSP_lu6;
-      MBB.addLiveIn(XCore::LR);
-      saveLR = false;
-      LRSavedOnEntry = true;
-    } else {
-      Opcode = (isU6) ? XCore::EXTSP_u6 : XCore::EXTSP_lu6;
-    }
-    BuildMI(MBB, MBBI, dl, TII.get(Opcode)).addImm(FrameSize);
-    
-    if (emitFrameMoves) {
-      std::vector<MachineMove> &Moves = MMI->getFrameMoves();
-      
-      // Show update of SP.
-      unsigned FrameLabelId = MMI->NextLabelID();
-      BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addImm(FrameLabelId);
-      
-      MachineLocation SPDst(MachineLocation::VirtualFP);
-      MachineLocation SPSrc(MachineLocation::VirtualFP, -FrameSize * 4);
-      Moves.push_back(MachineMove(FrameLabelId, SPDst, SPSrc));
-      
-      if (LRSavedOnEntry) {
-        MachineLocation CSDst(MachineLocation::VirtualFP, 0);
-        MachineLocation CSSrc(XCore::LR);
-        Moves.push_back(MachineMove(FrameLabelId, CSDst, CSSrc));
-      }
-    }
-    if (saveLR) {
-      int LRSpillOffset = MFI->getObjectOffset(XFI->getLRSpillSlot());
-      storeToStack(MBB, MBBI, XCore::LR, LRSpillOffset + FrameSize*4, dl);
-      MBB.addLiveIn(XCore::LR);
-      
-      if (emitFrameMoves) {
-        unsigned SaveLRLabelId = MMI->NextLabelID();
-        BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addImm(SaveLRLabelId);
-        MachineLocation CSDst(MachineLocation::VirtualFP, LRSpillOffset);
-        MachineLocation CSSrc(XCore::LR);
-        MMI->getFrameMoves().push_back(MachineMove(SaveLRLabelId,
-                                                   CSDst, CSSrc));
-      }
-    }
-  }
-  
-  if (FP) {
-    // Save R10 to the stack.
-    int FPSpillOffset = MFI->getObjectOffset(XFI->getFPSpillSlot());
-    storeToStack(MBB, MBBI, XCore::R10, FPSpillOffset + FrameSize*4, dl);
-    // R10 is live-in. It is killed at the spill.
-    MBB.addLiveIn(XCore::R10);
-    if (emitFrameMoves) {
-      unsigned SaveR10LabelId = MMI->NextLabelID();
-      BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addImm(SaveR10LabelId);
-      MachineLocation CSDst(MachineLocation::VirtualFP, FPSpillOffset);
-      MachineLocation CSSrc(XCore::R10);
-      MMI->getFrameMoves().push_back(MachineMove(SaveR10LabelId,
-                                                 CSDst, CSSrc));
-    }
-    // Set the FP from the SP.
-    unsigned FramePtr = XCore::R10;
-    BuildMI(MBB, MBBI, dl, TII.get(XCore::LDAWSP_ru6), FramePtr)
-      .addImm(0);
-    if (emitFrameMoves) {
-      // Show FP is now valid.
-      unsigned FrameLabelId = MMI->NextLabelID();
-      BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addImm(FrameLabelId);
-      MachineLocation SPDst(FramePtr);
-      MachineLocation SPSrc(MachineLocation::VirtualFP);
-      MMI->getFrameMoves().push_back(MachineMove(FrameLabelId, SPDst, SPSrc));
-    }
-  }
-  
-  if (emitFrameMoves) {
-    // Frame moves for callee saved.
-    std::vector<MachineMove> &Moves = MMI->getFrameMoves();
-    std::vector<std::pair<unsigned, CalleeSavedInfo> >&SpillLabels =
-        XFI->getSpillLabels();
-    for (unsigned I = 0, E = SpillLabels.size(); I != E; ++I) {
-      unsigned SpillLabel = SpillLabels[I].first;
-      CalleeSavedInfo &CSI = SpillLabels[I].second;
-      int Offset = MFI->getObjectOffset(CSI.getFrameIdx());
-      unsigned Reg = CSI.getReg();
-      MachineLocation CSDst(MachineLocation::VirtualFP, Offset);
-      MachineLocation CSSrc(Reg);
-      Moves.push_back(MachineMove(SpillLabel, CSDst, CSSrc));
-    }
-  }
-}
-
-void XCoreRegisterInfo::emitEpilogue(MachineFunction &MF,
-                                     MachineBasicBlock &MBB) const {
-  MachineFrameInfo *MFI            = MF.getFrameInfo();
-  MachineBasicBlock::iterator MBBI = prior(MBB.end());
-  DebugLoc dl = MBBI->getDebugLoc();
-  
-  bool FP = hasFP(MF);
-  
-  if (FP) {
-    // Restore the stack pointer.
-    unsigned FramePtr = XCore::R10;
-    BuildMI(MBB, MBBI, dl, TII.get(XCore::SETSP_1r))
-      .addReg(FramePtr);
-  }
-
-  // Work out frame sizes.
-  int FrameSize = MFI->getStackSize();
-
-  assert(FrameSize%4 == 0 && "Misaligned frame size");
-
-  FrameSize/=4;
-  
-  bool isU6 = isImmU6(FrameSize);
-
-  if (!isU6 && !isImmU16(FrameSize)) {
-    // FIXME could emit multiple instructions.
-    std::string msg;
-    raw_string_ostream Msg(msg);
-    Msg << "emitEpilogue Frame size too big: " << FrameSize;
-    llvm_report_error(Msg.str());
-  }
-
-  if (FrameSize) {
-    XCoreFunctionInfo *XFI = MF.getInfo<XCoreFunctionInfo>();
-    
-    if (FP) {
-      // Restore R10
-      int FPSpillOffset = MFI->getObjectOffset(XFI->getFPSpillSlot());
-      FPSpillOffset += FrameSize*4;
-      loadFromStack(MBB, MBBI, XCore::R10, FPSpillOffset, dl);
-    }
-    bool restoreLR = XFI->getUsesLR();
-    if (restoreLR && MFI->getObjectOffset(XFI->getLRSpillSlot()) != 0) {
-      int LRSpillOffset = MFI->getObjectOffset(XFI->getLRSpillSlot());
-      LRSpillOffset += FrameSize*4;
-      loadFromStack(MBB, MBBI, XCore::LR, LRSpillOffset, dl);
-      restoreLR = false;
-    }
-    if (restoreLR) {
-      // Fold prologue into return instruction
-      assert(MBBI->getOpcode() == XCore::RETSP_u6
-        || MBBI->getOpcode() == XCore::RETSP_lu6);
-      int Opcode = (isU6) ? XCore::RETSP_u6 : XCore::RETSP_lu6;
-      BuildMI(MBB, MBBI, dl, TII.get(Opcode)).addImm(FrameSize);
-      MBB.erase(MBBI);
-    } else {
-      int Opcode = (isU6) ? XCore::LDAWSP_ru6_RRegs : XCore::LDAWSP_lru6_RRegs;
-      BuildMI(MBB, MBBI, dl, TII.get(Opcode), XCore::SP).addImm(FrameSize);
-    }
-  }
-}
-
-int XCoreRegisterInfo::getDwarfRegNum(unsigned RegNum, bool isEH) const {
-  return XCoreGenRegisterInfo::getDwarfRegNumFull(RegNum, 0);
-}
-
-unsigned XCoreRegisterInfo::getFrameRegister(MachineFunction &MF) const {
-  bool FP = hasFP(MF);
-  
-  return FP ? XCore::R10 : XCore::SP;
-}
-
-unsigned XCoreRegisterInfo::getRARegister() const {
-  return XCore::LR;
-}
-
-void XCoreRegisterInfo::getInitialFrameState(std::vector<MachineMove> &Moves)
-                                                                         const {
-  // Initial state of the frame pointer is SP.
-  MachineLocation Dst(MachineLocation::VirtualFP);
-  MachineLocation Src(XCore::SP, 0);
-  Moves.push_back(MachineMove(0, Dst, Src));
-}
-
-#include "XCoreGenRegisterInfo.inc"
-
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.h
deleted file mode 100644
index 00b7caa..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.h
+++ /dev/null
@@ -1,94 +0,0 @@
-//===- XCoreRegisterInfo.h - XCore Register Information Impl ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the XCore implementation of the MRegisterInfo class.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCOREREGISTERINFO_H
-#define XCOREREGISTERINFO_H
-
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "XCoreGenRegisterInfo.h.inc"
-
-namespace llvm {
-
-class TargetInstrInfo;
-
-struct XCoreRegisterInfo : public XCoreGenRegisterInfo {
-private:
-  const TargetInstrInfo &TII;
-
-  void loadConstant(MachineBasicBlock &MBB,
-                  MachineBasicBlock::iterator I,
-                  unsigned DstReg, int64_t Value, DebugLoc dl) const;
-
-  void storeToStack(MachineBasicBlock &MBB,
-                  MachineBasicBlock::iterator I,
-                  unsigned SrcReg, int Offset, DebugLoc dl) const;
-
-  void loadFromStack(MachineBasicBlock &MBB,
-                  MachineBasicBlock::iterator I,
-                  unsigned DstReg, int Offset, DebugLoc dl) const;
-
-public:
-  XCoreRegisterInfo(const TargetInstrInfo &tii);
-
-  /// Code Generation virtual methods...
-
-  const unsigned *getCalleeSavedRegs(const MachineFunction *MF = 0) const;
-
-  const TargetRegisterClass* const* getCalleeSavedRegClasses(
-                                     const MachineFunction *MF = 0) const;
-
-  BitVector getReservedRegs(const MachineFunction &MF) const;
-  
-  bool requiresRegisterScavenging(const MachineFunction &MF) const;
-
-  bool hasFP(const MachineFunction &MF) const;
-
-  void eliminateCallFramePseudoInstr(MachineFunction &MF,
-                                     MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator I) const;
-
-  void eliminateFrameIndex(MachineBasicBlock::iterator II,
-                           int SPAdj, RegScavenger *RS = NULL) const;
-                           
-  void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
-                                                RegScavenger *RS = NULL) const;
-
-  void processFunctionBeforeFrameFinalized(MachineFunction &MF) const;
-
-  void emitPrologue(MachineFunction &MF) const;
-  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
-  
-  // Debug information queries.
-  unsigned getRARegister() const;
-  unsigned getFrameRegister(MachineFunction &MF) const;
-  void getInitialFrameState(std::vector<MachineMove> &Moves) const;
-
-  //! Return the array of argument passing registers
-  /*!
-    \note The size of this array is returned by getArgRegsSize().
-    */
-  static const unsigned *getArgRegs(const MachineFunction *MF = 0);
-
-  //! Return the size of the argument passing register array
-  static unsigned getNumArgRegs(const MachineFunction *MF = 0);
-  
-  //! Return whether to emit frame moves
-  static bool needsFrameMoves(const MachineFunction &MF);
-
-  //! Get DWARF debugging register number
-  int getDwarfRegNum(unsigned RegNum, bool isEH) const;
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.td b/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.td
deleted file mode 100644
index 62daf5d..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.td
+++ /dev/null
@@ -1,91 +0,0 @@
-//===- XCoreRegisterInfo.td - XCore Register defs ----------*- tablegen -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//  Declarations that describe the XCore register file 
-//===----------------------------------------------------------------------===//
-
-class XCoreReg<string n> : Register<n> {
-  field bits<4> Num;
-  let Namespace = "XCore";
-}
-
-// Registers are identified with 4-bit ID numbers.
-// Ri - 32-bit integer registers
-class Ri<bits<4> num, string n> : XCoreReg<n> {
-  let Num = num;
-}
-
-// CPU registers
-def R0  : Ri< 0, "r0">, DwarfRegNum<[0]>;
-def R1  : Ri< 1, "r1">, DwarfRegNum<[1]>;
-def R2  : Ri< 2, "r2">, DwarfRegNum<[2]>; 
-def R3  : Ri< 3, "r3">, DwarfRegNum<[3]>;
-def R4  : Ri< 4, "r4">, DwarfRegNum<[4]>;
-def R5  : Ri< 5, "r5">, DwarfRegNum<[5]>; 
-def R6  : Ri< 6, "r6">, DwarfRegNum<[6]>;
-def R7  : Ri< 7, "r7">, DwarfRegNum<[7]>;
-def R8  : Ri< 8, "r8">, DwarfRegNum<[8]>;
-def R9  : Ri< 9, "r9">, DwarfRegNum<[9]>; 
-def R10 : Ri<10, "r10">, DwarfRegNum<[10]>;
-def R11 : Ri<11, "r11">, DwarfRegNum<[11]>;
-def CP : Ri<12, "cp">, DwarfRegNum<[12]>; 
-def DP : Ri<13, "dp">, DwarfRegNum<[13]>;
-def SP : Ri<14, "sp">, DwarfRegNum<[14]>;
-def LR : Ri<15, "lr">, DwarfRegNum<[15]>;
-
-// Register classes.
-//
-def GRRegs : RegisterClass<"XCore", [i32], 32,
-  // Return values and arguments
-  [R0, R1, R2, R3,
-  // Not preserved across procedure calls
-  R11,
-  // Callee save
-  R4, R5, R6, R7, R8, R9, R10]> {
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    GRRegsClass::iterator
-    GRRegsClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    GRRegsClass::iterator
-    GRRegsClass::allocation_order_end(const MachineFunction &MF) const {
-      const TargetMachine &TM = MF.getTarget();
-      const TargetRegisterInfo *RI = TM.getRegisterInfo();
-      if (RI->hasFP(MF))
-        return end()-1;  // don't allocate R10
-      else
-        return end();
-    }
-  }];
-}
-
-def RRegs : RegisterClass<"XCore", [i32], 32,
-  // Reserved
-  [CP, DP, SP, LR]> {
-  let MethodProtos = [{
-    iterator allocation_order_begin(const MachineFunction &MF) const;
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    RRegsClass::iterator
-    RRegsClass::allocation_order_begin(const MachineFunction &MF) const {
-      return begin();
-    }
-    RRegsClass::iterator
-    RRegsClass::allocation_order_end(const MachineFunction &MF) const {
-      // No allocatable registers
-      return begin();
-    }
-  }];
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreSubtarget.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreSubtarget.cpp
deleted file mode 100644
index 5fb1eaa..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreSubtarget.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- XCoreSubtarget.cpp - XCore Subtarget Information -----------*- C++ -*-=//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the XCore specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCoreSubtarget.h"
-#include "XCore.h"
-#include "XCoreGenSubtarget.inc"
-using namespace llvm;
-
-XCoreSubtarget::XCoreSubtarget(const std::string &TT, const std::string &FS)
-  : IsXS1A(false),
-    IsXS1B(false)
-{
-  std::string CPU = "xs1a-generic";
-
-  // Parse features string.
-  ParseSubtargetFeatures(FS, CPU);
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreSubtarget.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreSubtarget.h
deleted file mode 100644
index 4839351..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreSubtarget.h
+++ /dev/null
@@ -1,44 +0,0 @@
-//=====-- XCoreSubtarget.h - Define Subtarget for the XCore -----*- C++ -*--==//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the XCore specific subclass of TargetSubtarget.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCORESUBTARGET_H
-#define XCORESUBTARGET_H
-
-#include "llvm/Target/TargetSubtarget.h"
-#include "llvm/Target/TargetMachine.h"
-
-#include <string>
-
-namespace llvm {
-
-class XCoreSubtarget : public TargetSubtarget {
-  bool IsXS1A;
-  bool IsXS1B;
-
-public:
-  /// This constructor initializes the data members to match that
-  /// of the specified triple.
-  ///
-  XCoreSubtarget(const std::string &TT, const std::string &FS);
-
-  bool isXS1A() const { return IsXS1A; }
-  bool isXS1B() const { return IsXS1B; }
-  
-  /// ParseSubtargetFeatures - Parses features string setting specified 
-  /// subtarget options.  Definition of function is auto generated by tblgen.
-  std::string ParseSubtargetFeatures(const std::string &FS,
-                                     const std::string &CPU);
-};
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
deleted file mode 100644
index 75f2055..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//===-- XCoreTargetMachine.cpp - Define TargetMachine for XCore -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCoreMCAsmInfo.h"
-#include "XCoreTargetMachine.h"
-#include "XCore.h"
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Target/TargetRegistry.h"
-using namespace llvm;
-
-/// XCoreTargetMachine ctor - Create an ILP32 architecture model
-///
-XCoreTargetMachine::XCoreTargetMachine(const Target &T, const std::string &TT,
-                                       const std::string &FS)
-  : LLVMTargetMachine(T, TT),
-    Subtarget(TT, FS),
-    DataLayout("e-p:32:32:32-a0:0:32-f32:32:32-f64:32:32-i1:8:32-i8:8:32-"
-               "i16:16:32-i32:32:32-i64:32:32"),
-    InstrInfo(),
-    FrameInfo(*this),
-    TLInfo(*this) {
-}
-
-bool XCoreTargetMachine::addInstSelector(PassManagerBase &PM,
-                                         CodeGenOpt::Level OptLevel) {
-  PM.add(createXCoreISelDag(*this));
-  return false;
-}
-
-// Force static initialization.
-extern "C" void LLVMInitializeXCoreTarget() {
-  RegisterTargetMachine<XCoreTargetMachine> X(TheXCoreTarget);
-  RegisterAsmInfo<XCoreMCAsmInfo> Y(TheXCoreTarget);
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.h
deleted file mode 100644
index b0b1464..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.h
+++ /dev/null
@@ -1,54 +0,0 @@
-//===-- XCoreTargetMachine.h - Define TargetMachine for XCore ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file declares the XCore specific subclass of TargetMachine.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef XCORETARGETMACHINE_H
-#define XCORETARGETMACHINE_H
-
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetData.h"
-#include "XCoreFrameInfo.h"
-#include "XCoreSubtarget.h"
-#include "XCoreInstrInfo.h"
-#include "XCoreISelLowering.h"
-
-namespace llvm {
-
-class XCoreTargetMachine : public LLVMTargetMachine {
-  XCoreSubtarget Subtarget;
-  const TargetData DataLayout;       // Calculates type size & alignment
-  XCoreInstrInfo InstrInfo;
-  XCoreFrameInfo FrameInfo;
-  XCoreTargetLowering TLInfo;
-public:
-  XCoreTargetMachine(const Target &T, const std::string &TT,
-                     const std::string &FS);
-
-  virtual const XCoreInstrInfo *getInstrInfo() const { return &InstrInfo; }
-  virtual const XCoreFrameInfo *getFrameInfo() const { return &FrameInfo; }
-  virtual const XCoreSubtarget *getSubtargetImpl() const { return &Subtarget; }
-  virtual       XCoreTargetLowering *getTargetLowering() const {
-    return const_cast<XCoreTargetLowering*>(&TLInfo);
-  }
-
-  virtual const TargetRegisterInfo *getRegisterInfo() const {
-    return &InstrInfo.getRegisterInfo();
-  }
-  virtual const TargetData       *getTargetData() const { return &DataLayout; }
-
-  // Pass Pipeline Configuration
-  virtual bool addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel);
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp b/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp
deleted file mode 100644
index c1990d6..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//===-- XCoreTargetObjectFile.cpp - XCore object files --------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "XCoreTargetObjectFile.h"
-#include "XCoreSubtarget.h"
-#include "MCSectionXCore.h"
-#include "llvm/Target/TargetMachine.h"
-using namespace llvm;
-
-
-void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
-  TargetLoweringObjectFileELF::Initialize(Ctx, TM);
-
-  DataSection =
-    MCSectionXCore::Create(".dp.data", MCSectionELF::SHT_PROGBITS, 
-                           MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE |
-                           MCSectionXCore::SHF_DP_SECTION,
-                           SectionKind::getDataRel(), false, getContext());
-  BSSSection =
-    MCSectionXCore::Create(".dp.bss", MCSectionELF::SHT_NOBITS,
-                           MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE |
-                           MCSectionXCore::SHF_DP_SECTION,
-                           SectionKind::getBSS(), false, getContext());
-  
-  MergeableConst4Section = 
-    MCSectionXCore::Create(".cp.rodata.cst4", MCSectionELF::SHT_PROGBITS,
-                           MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
-                           MCSectionXCore::SHF_CP_SECTION,
-                           SectionKind::getMergeableConst4(), false,
-                           getContext());
-  MergeableConst8Section = 
-    MCSectionXCore::Create(".cp.rodata.cst8", MCSectionELF::SHT_PROGBITS,
-                           MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
-                           MCSectionXCore::SHF_CP_SECTION,
-                           SectionKind::getMergeableConst8(), false,
-                           getContext());
-  MergeableConst16Section = 
-    MCSectionXCore::Create(".cp.rodata.cst16", MCSectionELF::SHT_PROGBITS,
-                           MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_MERGE |
-                           MCSectionXCore::SHF_CP_SECTION,
-                           SectionKind::getMergeableConst16(), false,
-                           getContext());
-  
-  // TLS globals are lowered in the backend to arrays indexed by the current
-  // thread id. After lowering they require no special handling by the linker
-  // and can be placed in the standard data / bss sections.
-  TLSDataSection = DataSection;
-  TLSBSSSection = BSSSection;
-  
-  if (TM.getSubtarget<XCoreSubtarget>().isXS1A())
-    ReadOnlySection =   // FIXME: Why is this a writable section for XS1A?
-      MCSectionXCore::Create(".dp.rodata", MCSectionELF::SHT_PROGBITS,
-                             MCSectionELF::SHF_ALLOC | MCSectionELF::SHF_WRITE |
-                             MCSectionXCore::SHF_DP_SECTION,
-                             SectionKind::getDataRel(), false, getContext());
-  else
-    ReadOnlySection = 
-      MCSectionXCore::Create(".cp.rodata", MCSectionELF::SHT_PROGBITS,
-                             MCSectionELF::SHF_ALLOC |
-                             MCSectionXCore::SHF_CP_SECTION,
-                             SectionKind::getReadOnlyWithRel(), false,
-                             getContext());
-
-  // Dynamic linking is not supported. Data with relocations is placed in the
-  // same section as data without relocations.
-  DataRelSection = DataRelLocalSection = DataSection;
-  DataRelROSection = DataRelROLocalSection = ReadOnlySection;
-}
diff --git a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetObjectFile.h b/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetObjectFile.h
deleted file mode 100644
index 7efb990..0000000
--- a/libclamav/c++/llvm/lib/Target/XCore/XCoreTargetObjectFile.h
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- llvm/Target/XCoreTargetObjectFile.h - XCore Object Info -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TARGET_XCORE_TARGETOBJECTFILE_H
-#define LLVM_TARGET_XCORE_TARGETOBJECTFILE_H
-
-#include "llvm/Target/TargetLoweringObjectFile.h"
-
-namespace llvm {
-
-  class XCoreTargetObjectFile : public TargetLoweringObjectFileELF {
-  public:
-    
-    void Initialize(MCContext &Ctx, const TargetMachine &TM);
-
-    // TODO: Classify globals as xcore wishes.
-  };
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/projects/CMakeLists.txt b/libclamav/c++/llvm/projects/CMakeLists.txt
deleted file mode 100644
index 78e12fd..0000000
--- a/libclamav/c++/llvm/projects/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Discover the projects that use CMake in the subdirectories.
-# Note that explicit cmake invocation is required every time a new project is
-# added or removed.
-file(GLOB entries *)
-foreach(entry ${entries})
-  if(IS_DIRECTORY ${entry} AND EXISTS ${entry}/CMakeLists.txt)
-    add_subdirectory(${entry})
-  endif()
-endforeach(entry)
diff --git a/libclamav/c++/llvm/projects/Makefile b/libclamav/c++/llvm/projects/Makefile
deleted file mode 100644
index b966fc7..0000000
--- a/libclamav/c++/llvm/projects/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-##===- projects/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL=..
-
-include $(LEVEL)/Makefile.config
-
-# Compile all subdirs, except for the test suite, which lives in test-suite.
-# Before 2008.06.24 it lived in llvm-test, so exclude that as well for now.
-DIRS:= $(filter-out llvm-test test-suite,$(patsubst $(PROJ_SRC_DIR)/%/Makefile,%,$(wildcard $(PROJ_SRC_DIR)/*/Makefile)))
-
-# Sparc cannot link shared libraries (libtool problem?)
-ifeq ($(ARCH), Sparc)
-DIRS := $(filter-out sample, $(DIRS))
-endif
-
-include $(PROJ_SRC_ROOT)/Makefile.rules
diff --git a/libclamav/c++/llvm/projects/sample/Makefile b/libclamav/c++/llvm/projects/sample/Makefile
deleted file mode 100644
index f96f1ab..0000000
--- a/libclamav/c++/llvm/projects/sample/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- projects/sample/Makefile ----------------------------*- Makefile -*-===##
-#
-# This is a sample Makefile for a project that uses LLVM.
-#
-##===----------------------------------------------------------------------===##
-
-#
-# Indicates our relative path to the top of the project's root directory.
-#
-LEVEL = .
-DIRS = lib tools
-EXTRA_DIST = include
-
-#
-# Include the Master Makefile that knows how to build all.
-#
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/projects/sample/Makefile.common.in b/libclamav/c++/llvm/projects/sample/Makefile.common.in
deleted file mode 100644
index 33bfcd6..0000000
--- a/libclamav/c++/llvm/projects/sample/Makefile.common.in
+++ /dev/null
@@ -1,22 +0,0 @@
-# Set the name of the project here
-PROJECT_NAME := sample
-PROJ_VERSION := 0.9
- 
-# Set this variable to the top of the LLVM source tree.
-LLVM_SRC_ROOT = @LLVM_SRC@
-
-# Set this variable to the top level directory where LLVM was built
-# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
-LLVM_OBJ_ROOT = @LLVM_OBJ@
-
-# Set the directory root of this project's source files
-PROJ_SRC_ROOT := $(subst //,/, at abs_top_srcdir@)
-
-# Set the root directory of this project's object files
-PROJ_OBJ_ROOT := $(subst //,/, at abs_top_objdir@)
-
-# Set the root directory of this project's install prefix
-PROJ_INSTALL_ROOT := @prefix@
-
-# Include LLVM's Master Makefile.
-include $(LLVM_SRC_ROOT)/Makefile.common
diff --git a/libclamav/c++/llvm/projects/sample/autoconf/AutoRegen.sh b/libclamav/c++/llvm/projects/sample/autoconf/AutoRegen.sh
deleted file mode 100755
index 126703b..0000000
--- a/libclamav/c++/llvm/projects/sample/autoconf/AutoRegen.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-die () {
-	echo "$@" 1>&2
-	exit 1
-}
-test -d autoconf && test -f autoconf/configure.ac && cd autoconf
-test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | egrep '2\.[56][0-9]' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoconf was not detected as being 2.5x or 2.6x"
-fi
-cwd=`pwd`
-if test -d ../../../autoconf/m4 ; then
-  cd ../../../autoconf/m4
-  llvm_m4=`pwd`
-  llvm_src_root=../../..
-  llvm_obj_root=../../..
-  cd $cwd
-elif test -d ../../llvm/autoconf/m4 ; then
-  cd ../../llvm/autoconf/m4
-  llvm_m4=`pwd`
-  llvm_src_root=../..
-  llvm_obj_root=../..
-  cd $cwd
-else
-  while true ; do
-    echo "LLVM source root not found." 
-    read -p "Enter full path to LLVM source:" REPLY
-    if test -d "$REPLY/autoconf/m4" ; then
-      llvm_src_root="$REPLY"
-      llvm_m4="$REPLY/autoconf/m4"
-      read -p "Enter full path to LLVM objects (empty for same as source):" REPLY
-      if test -d "$REPLY" ; then
-        llvm_obj_root="$REPLY"
-      else
-        llvm_obj_root="$llvm_src_root"
-      fi
-      break
-    fi
-  done
-fi
-# Patch the LLVM_ROOT in configure.ac, if it needs it
-cp configure.ac configure.bak
-sed -e "s#^LLVM_SRC_ROOT=.*#LLVM_SRC_ROOT=\"$llvm_src_root\"#" \
-    -e "s#^LLVM_OBJ_ROOT=.*#LLVM_OBJ_ROOT=\"$llvm_obj_root\"#" configure.bak > configure.ac
-echo "Regenerating aclocal.m4 with aclocal"
-rm -f aclocal.m4
-aclocal -I $llvm_m4 -I "$llvm_m4/.." || die "aclocal failed"
-echo "Regenerating configure with autoconf"
-autoconf --warnings=all -o ../configure configure.ac || die "autoconf failed"
-cd ..
-exit 0
diff --git a/libclamav/c++/llvm/projects/sample/autoconf/LICENSE.TXT b/libclamav/c++/llvm/projects/sample/autoconf/LICENSE.TXT
deleted file mode 100644
index 72fdd39..0000000
--- a/libclamav/c++/llvm/projects/sample/autoconf/LICENSE.TXT
+++ /dev/null
@@ -1,24 +0,0 @@
-------------------------------------------------------------------------------
-Autoconf Files
-------------------------------------------------------------------------------
-All autoconf files are licensed under the LLVM license with the following
-additions:
-
-llvm/autoconf/install-sh:
-	This script is licensed under the LLVM license, with the following
-	additional copyrights and restrictions:
-
-	Copyright 1991 by the Massachusetts Institute of Technology
-
-	Permission to use, copy, modify, distribute, and sell this software and its
-	documentation for any purpose is hereby granted without fee, provided that
-	the above copyright notice appear in all copies and that both that
-	copyright notice and this permission notice appear in supporting 
-	documentation, and that the name of M.I.T. not be used in advertising or
-	publicity pertaining to distribution of the software without specific,
-	written prior permission.  M.I.T. makes no representations about the
-	suitability of this software for any purpose.  It is provided "as is"
-	without express or implied warranty.
-
-Please see the source files for additional copyrights.
-
diff --git a/libclamav/c++/llvm/projects/sample/autoconf/config.guess b/libclamav/c++/llvm/projects/sample/autoconf/config.guess
deleted file mode 100755
index cc726cd..0000000
--- a/libclamav/c++/llvm/projects/sample/autoconf/config.guess
+++ /dev/null
@@ -1,1388 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per at bothner.com>.
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi at noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-	        os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mipseb-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    alpha:OSF1:*:*)
-	if test $UNAME_RELEASE = "V4.0"; then
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-	fi
-	# According to Compaq, /usr/sbin/psrinfo has been available on
-	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-	# covers most systems running today.  This code pipes the CPU
-	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-	case "$ALPHA_CPU_TYPE" in
-	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
-	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
-	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
-	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
-	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
-	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
-	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
-	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
-	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
-	esac
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit 0 ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit 0;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit 0 ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
-	esac ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:6*:*)
-	# According to config.sub, this is the proper way to canonicalize
-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:*:*)
-	case "`/usr/bin/arch -k`" in
-	    Series*|S4*)
-		UNAME_RELEASE=`uname -v`
-		;;
-	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit 0 ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-	case "`/bin/arch`" in
-	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
-		;;
-	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
-		;;
-	esac
-	exit 0 ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-	#if defined (host_mips) && defined (MIPSEB)
-	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-	#endif
-	#endif
-	  exit (-1);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit 0 ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit 0 ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit 0 ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit 0 ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
-	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-	    fi
-	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
-	fi
- 	exit 0 ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit 0 ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit 0 ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit 0 ;;
-    ia64:AIX:*:*)
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit 0 ;;
-    *:AIX:2:3)
-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
-		#include <sys/systemcfg.h>
-
-		main()
-			{
-			if (!__power_pc())
-				exit(1);
-			puts("powerpc-ibm-aix3.2.5");
-			exit(0);
-			}
-EOF
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
-	else
-		echo rs6000-ibm-aix3.2
-	fi
-	exit 0 ;;
-    *:AIX:*:[45])
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-		IBM_ARCH=rs6000
-	else
-		IBM_ARCH=powerpc
-	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit 0 ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit 0 ;;
-    9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
-	    9000/[678][0-9][0-9])
-		if [ -x /usr/bin/getconf ]; then
-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
-		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-              	{
-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-              	case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-              	    switch (bits)
-              		{
-              		case 64: puts ("hppa2.0w"); break;
-              		case 32: puts ("hppa2.0n"); break;
-              		default: puts ("hppa2.0"); break;
-              		} break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-              	    puts ("hppa2.0"); break;
-              #endif
-              	default: puts ("hppa1.0"); break;
-              	}
-                  exit (0);
-              }
-EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-		    test -z "$HP_ARCH" && HP_ARCH=hppa
-		fi ;;
-	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
-	then
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <unistd.h>
-	int
-	main ()
-	{
-	  long cpu = sysconf (_SC_CPU_VERSION);
-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-	     results, however.  */
-	  if (CPU_IS_PA_RISC (cpu))
-	    {
-	      switch (cpu)
-		{
-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-		}
-	    }
-	  else if (CPU_IS_HP_MC68K (cpu))
-	    puts ("m68k-hitachi-hiuxwe2");
-	  else puts ("unknown-hitachi-hiuxwe2");
-	  exit (0);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit 0 ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit 0 ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit 0 ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit 0 ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-	      -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    *:UNICOS/mp:*:*)
-	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
-	exit 0 ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*)
-	# Determine whether the default compiler uses glibc.
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#if __GLIBC__ >= 2
-	LIBC=gnu
-	#else
-	LIBC=
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-	exit 0 ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:3*)
-	echo i586-pc-interix3
-	exit 0 ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit 0 ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit 0 ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    *:GNU:*:*)
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
-    arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-	# Look for CPU level
-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
-	esac
-	exit 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#ifdef __INTEL_COMPILER
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-	;;
-    i*86:DYNIX/ptx:4*:*)
-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-	# earlier versions are messed up and put the nodename in both
-	# sysname and nodename.
-	echo i386-sequent-sysv4
-	exit 0 ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit 0 ;;
-    i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
-	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit 0 ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-	fi
-	exit 0 ;;
-    i*86:*:5:[78]*)
-	case `/bin/uname -X | grep "^Machine"` in
-	    *486*)	     UNAME_MACHINE=i486 ;;
-	    *Pentium)	     UNAME_MACHINE=i586 ;;
-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit 0 ;;
-    i*86:*:3.2:*)
-	if test -f /usr/options/cb.name; then
-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-			&& UNAME_MACHINE=i586
-		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-	else
-		echo ${UNAME_MACHINE}-pc-sysv32
-	fi
-	exit 0 ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit 0 ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit 0 ;;
-    i860:*:4.*:*) # i860-SVR4
-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-	fi
-	exit 0 ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit 0 ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit 0 ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit 0 ;;
-    M68*:*:R3V[567]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
-	OS_REL=''
-	test -r /etc/.relid \
-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    *:SINIX-*:*:*)
-	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
-	else
-		echo ns32k-sni-sysv
-	fi
-	exit 0 ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel at ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes at openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
-    *:*:*:FTX*)
-	# From seanf at swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit 0 ;;
-    *:VOS:*:*)
-	# From Paul.Green at stratus.com.
-	echo hppa1.1-stratus-vos
-	exit 0 ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit 0 ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-	if [ -d /usr/nec ]; then
-	        echo mips-nec-sysv${UNAME_RELEASE}
-	else
-	        echo mips-unknown-sysv${UNAME_RELEASE}
-	fi
-        exit 0 ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit 0 ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit 0 ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Darwin:*:*)
-	case `uname -p` in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    powerpc) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
-		UNAME_PROCESSOR=i386
-		UNAME_MACHINE=pc
-	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit 0 ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit 0 ;;
-    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit 0 ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
-    *:Plan9:*:*)
-	# "uname -m" is not consistent, so use $cputype instead. 386
-	# is converted to i386 for consistency with other x86
-	# operating systems.
-	if test "$cputype" = "386"; then
-	    UNAME_MACHINE=i386
-	else
-	    UNAME_MACHINE="$cputype"
-	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
-	exit 0 ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit 0 ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit 0 ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit 0 ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-	  ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit 0 ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit 0 ;;
-    c34*)
-	echo c34-convex-bsd
-	exit 0 ;;
-    c38*)
-	echo c38-convex-bsd
-	exit 0 ;;
-    c4*)
-	echo c4-convex-bsd
-	exit 0 ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches at gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/libclamav/c++/llvm/projects/sample/autoconf/config.sub b/libclamav/c++/llvm/projects/sample/autoconf/config.sub
deleted file mode 100755
index 9772e87..0000000
--- a/libclamav/c++/llvm/projects/sample/autoconf/config.sub
+++ /dev/null
@@ -1,1489 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit 0;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
- 	-chorusrdb)
- 		os=-chorusrdb
-		basic_machine=$1
- 		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-	| clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k \
-	| m32r | m68000 | m68k | m88k | mcore \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
-	| mips64orion | mips64orionel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| msp430 \
-	| ns16k | ns32k \
-	| openrisc | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
-	| strongarm \
-	| tahoe | thumb | tic80 | tron \
-	| v850 | v850e \
-	| we32k \
-	| x86 | xscale | xstormy16 | xtensa \
-	| z8k)
-		basic_machine=$basic_machine-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* \
-	| bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* \
-	| m32r-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | mcore-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| msp430-* \
-	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tron-* \
-	| v850-* | v850e-* | vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-	| xtensa-* \
-	| ymp-* \
-	| z8k-*)
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
-		;;
-	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	mmix*)
-		basic_machine=mmix-knuth
-		os=-mmixware
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	nv1)
-		basic_machine=nv1-cray
-		os=-unicosmp
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	or32 | or32-*)
-		basic_machine=or32-unknown
-		os=-coff
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2)
-		basic_machine=i686-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
-		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
-		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-        tic4x | c4x*)
-		basic_machine=tic4x-unknown
-		os=-coff
-		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
-		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparc | sparcv9 | sparcv9b)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix*)
-	# Remember, each alternative MUST END IN *, to match a version number.
-		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
-			;;
-		    *)
-			os=-nto$os
-			;;
-		esac
-		;;
-	-nto-qnx*)
-		;;
-	-nto*)
-		os=`echo $os | sed -e 's|nto|nto-qnx|'`
-		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-		;;
-	-opened*)
-		os=-openedition
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-386bsd)
-		os=-bsd
-		;;
-	-ctix* | -uts*)
-		os=-sysv
-		;;
-	-nova*)
-		os=-rtmk-nova
-		;;
-	-ns2 )
-		os=-nextstep2
-		;;
-	-nsk*)
-		os=-nsk
-		;;
-	# Preserve the version number of sinix5.
-	-sinix5.*)
-		os=`echo $os | sed -e 's|sinix|sysv|'`
-		;;
-	-sinix*)
-		os=-sysv4
-		;;
-	-triton*)
-		os=-sysv3
-		;;
-	-oss*)
-		os=-sysv3
-		;;
-	-svr4)
-		os=-sysv4
-		;;
-	-svr3)
-		os=-sysv3
-		;;
-	-sysvr4)
-		os=-sysv4
-		;;
-	# This must come after -sysvr4.
-	-sysv*)
-		;;
-	-ose*)
-		os=-ose
-		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
-		;;
-	-aros*)
-		os=-aros
-		;;
-	-kaos*)
-		os=-kaos
-		;;
-	-none)
-		;;
-	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-		exit 1
-		;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-	# This must come before the *-dec entry.
-	pdp10-*)
-		os=-tops20
-		;;
-	pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	mips*-cisco)
-		os=-elf
-		;;
-	mips*-*)
-		os=-elf
-		;;
-	or32-*)
-		os=-coff
-		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
-		;;
-	sparc-* | *-sun)
-		os=-sunos4.1.1
-		;;
-	*-be)
-		os=-beos
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-vxsim* | -vxworks* | -windiss*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-				vendor=atari
-				;;
-			-vos*)
-				vendor=stratus
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/libclamav/c++/llvm/projects/sample/autoconf/configure.ac b/libclamav/c++/llvm/projects/sample/autoconf/configure.ac
deleted file mode 100644
index 37c93a8..0000000
--- a/libclamav/c++/llvm/projects/sample/autoconf/configure.ac
+++ /dev/null
@@ -1,68 +0,0 @@
-dnl **************************************************************************
-dnl * Initialize
-dnl **************************************************************************
-AC_INIT([[[SAMPLE]]],[[[x.xx]]],[bugs at yourdomain])
-
-dnl Identify where LLVM source tree is
-LLVM_SRC_ROOT="../../"
-LLVM_OBJ_ROOT="../../"
-dnl Tell autoconf that the auxilliary files are actually located in
-dnl the LLVM autoconf directory, not here.
-AC_CONFIG_AUX_DIR($LLVM_SRC_ROOT/autoconf)
-
-dnl Tell autoconf that this is an LLVM project being configured
-dnl This provides the --with-llvmsrc and --with-llvmobj options
-LLVM_CONFIG_PROJECT($LLVM_SRC_ROOT,$LLVM_OBJ_ROOT)
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR(["Makefile.common.in"])
-
-dnl Configure a common Makefile
-AC_CONFIG_FILES(Makefile.common)
-
-dnl Configure project makefiles
-dnl List every Makefile that exists within your source tree
-AC_CONFIG_MAKEFILE(Makefile)
-AC_CONFIG_MAKEFILE(lib/Makefile)
-AC_CONFIG_MAKEFILE(lib/sample/Makefile)
-AC_CONFIG_MAKEFILE(tools/Makefile)
-AC_CONFIG_MAKEFILE(tools/sample/Makefile)
-
-dnl **************************************************************************
-dnl * Determine which system we are building on
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Check for programs.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Check for libraries.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for header files.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for typedefs, structures, and compiler characteristics.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for library functions.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Enable various compile-time options
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Set the location of various third-party software packages
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Create the output files
-dnl **************************************************************************
-
-dnl This must be last
-AC_OUTPUT
diff --git a/libclamav/c++/llvm/projects/sample/configure b/libclamav/c++/llvm/projects/sample/configure
deleted file mode 100755
index f6aa847..0000000
--- a/libclamav/c++/llvm/projects/sample/configure
+++ /dev/null
@@ -1,2364 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for [SAMPLE] [x.xx].
-#
-# Report bugs to <bugs at yourdomain>.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='[SAMPLE]'
-PACKAGE_TARNAME='--sample--'
-PACKAGE_VERSION='[x.xx]'
-PACKAGE_STRING='[SAMPLE] [x.xx]'
-PACKAGE_BUGREPORT='bugs at yourdomain'
-
-ac_unique_file=""Makefile.common.in""
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS LLVM_SRC LLVM_OBJ LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures [SAMPLE] [x.xx] to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of [SAMPLE] [x.xx]:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvmsrc          Location of LLVM Source Code
-  --with-llvmobj          Location of LLVM Object Code
-
-Report bugs to <bugs at yourdomain>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-[SAMPLE] configure [x.xx]
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by [SAMPLE] $as_me [x.xx], which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../../autoconf $srcdir/../../autoconf; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../autoconf $srcdir/../../autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in ../../autoconf $srcdir/../../autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-
-# Check whether --with-llvmsrc or --without-llvmsrc was given.
-if test "${with_llvmsrc+set}" = set; then
-  withval="$with_llvmsrc"
-  llvm_src="$withval"
-else
-  llvm_src=`cd ${srcdir}/../..; pwd`
-fi;
-  LLVM_SRC=$llvm_src
-
-
-# Check whether --with-llvmobj or --without-llvmobj was given.
-if test "${with_llvmobj+set}" = set; then
-  withval="$with_llvmobj"
-  llvm_obj="$withval"
-else
-  llvm_obj=`cd ../..; pwd`
-fi;
-  LLVM_OBJ=$llvm_obj
-
-            ac_config_commands="$ac_config_commands setup"
-
-
-
-
-
-          ac_config_files="$ac_config_files Makefile.common"
-
-
-          ac_config_commands="$ac_config_commands Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/sample/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/sample/Makefile"
-
-
-
-
-
-
-
-
-
-
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by [SAMPLE] $as_me [x.xx], which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf at gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-[SAMPLE] config.status [x.xx]
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-llvm_src="${LLVM_SRC}"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile.common" ) CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
-  "setup" ) CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;;
-  "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-  "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-  "lib/sample/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/sample/Makefile" ;;
-  "tools/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/Makefile" ;;
-  "tools/sample/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/sample/Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s, at SHELL@,$SHELL,;t t
-s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s, at exec_prefix@,$exec_prefix,;t t
-s, at prefix@,$prefix,;t t
-s, at program_transform_name@,$program_transform_name,;t t
-s, at bindir@,$bindir,;t t
-s, at sbindir@,$sbindir,;t t
-s, at libexecdir@,$libexecdir,;t t
-s, at datadir@,$datadir,;t t
-s, at sysconfdir@,$sysconfdir,;t t
-s, at sharedstatedir@,$sharedstatedir,;t t
-s, at localstatedir@,$localstatedir,;t t
-s, at libdir@,$libdir,;t t
-s, at includedir@,$includedir,;t t
-s, at oldincludedir@,$oldincludedir,;t t
-s, at infodir@,$infodir,;t t
-s, at mandir@,$mandir,;t t
-s, at build_alias@,$build_alias,;t t
-s, at host_alias@,$host_alias,;t t
-s, at target_alias@,$target_alias,;t t
-s, at DEFS@,$DEFS,;t t
-s, at ECHO_C@,$ECHO_C,;t t
-s, at ECHO_N@,$ECHO_N,;t t
-s, at ECHO_T@,$ECHO_T,;t t
-s, at LIBS@,$LIBS,;t t
-s, at LLVM_SRC@,$LLVM_SRC,;t t
-s, at LLVM_OBJ@,$LLVM_OBJ,;t t
-s, at LIBOBJS@,$LIBOBJS,;t t
-s, at LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s, at configure_input@,$configure_input,;t t
-s, at srcdir@,$ac_srcdir,;t t
-s, at abs_srcdir@,$ac_abs_srcdir,;t t
-s, at top_srcdir@,$ac_top_srcdir,;t t
-s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s, at builddir@,$ac_builddir,;t t
-s, at abs_builddir@,$ac_abs_builddir,;t t
-s, at top_builddir@,$ac_top_builddir,;t t
-s, at abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -m 0644 -c ${srcdir}/Makefile Makefile ;;
-    lib/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -m 0644 -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    lib/sample/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/sample/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -m 0644 -c ${srcdir}/lib/sample/Makefile lib/sample/Makefile ;;
-    tools/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname tools/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -m 0644 -c ${srcdir}/tools/Makefile tools/Makefile ;;
-    tools/sample/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname tools/sample/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -m 0644 -c ${srcdir}/tools/sample/Makefile tools/sample/Makefile ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/libclamav/c++/llvm/projects/sample/docs/index.html b/libclamav/c++/llvm/projects/sample/docs/index.html
deleted file mode 100644
index d2e6786..0000000
--- a/libclamav/c++/llvm/projects/sample/docs/index.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>
-  <body>
-    <h1>SAMPLE PROJECT DOCUMENTATION</h1>
-    <p>This is just a placeholder</p>
-  </body>
-</html>
diff --git a/libclamav/c++/llvm/projects/sample/include/sample.h b/libclamav/c++/llvm/projects/sample/include/sample.h
deleted file mode 100644
index b3ce9ce..0000000
--- a/libclamav/c++/llvm/projects/sample/include/sample.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: sample.h
- *
- *      This is a sample header file that is global to the entire project.
- *      It is located here so that everyone will find it.
- */
-extern int compute_sample (int a);
-
diff --git a/libclamav/c++/llvm/projects/sample/lib/Makefile b/libclamav/c++/llvm/projects/sample/lib/Makefile
deleted file mode 100644
index 959038b..0000000
--- a/libclamav/c++/llvm/projects/sample/lib/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- projects/sample/lib/Makefile ------------------------*- Makefile -*-===##
-
-#
-# Relative path to the top of the source tree.
-#
-LEVEL=..
-
-#
-# List all of the subdirectories that we will compile.
-#
-DIRS=sample
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/projects/sample/lib/sample/Makefile b/libclamav/c++/llvm/projects/sample/lib/sample/Makefile
deleted file mode 100644
index af63399..0000000
--- a/libclamav/c++/llvm/projects/sample/lib/sample/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-##===- projects/sample/lib/sample/Makefile -----------------*- Makefile -*-===##
-
-#
-# Indicate where we are relative to the top of the source tree.
-#
-LEVEL=../..
-
-#
-# Give the name of a library.  This will build a dynamic version.
-#
-LIBRARYNAME=sample
-
-#
-# Include Makefile.common so we know what to do.
-#
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/projects/sample/lib/sample/sample.c b/libclamav/c++/llvm/projects/sample/lib/sample/sample.c
deleted file mode 100644
index a5ae280..0000000
--- a/libclamav/c++/llvm/projects/sample/lib/sample/sample.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * File: sample.c
- *
- * Description:
- *  This is a sample source file for a library.  It helps to demonstrate
- *  how to setup a project that uses the LLVM build system, header files,
- *  and libraries.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/* LLVM Header File
-#include "llvm/Support/DataTypes.h"
-*/
-
-/* Header file global to this project */
-#include "sample.h"
-
-int
-compute_sample (int a)
-{
-  return a;
-}
-
diff --git a/libclamav/c++/llvm/projects/sample/tools/Makefile b/libclamav/c++/llvm/projects/sample/tools/Makefile
deleted file mode 100644
index 00ff52b..0000000
--- a/libclamav/c++/llvm/projects/sample/tools/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- projects/sample/tools/Makefile ----------------------*- Makefile -*-===##
-
-#
-# Relative path to the top of the source tree.
-#
-LEVEL=..
-
-#
-# List all of the subdirectories that we will compile.
-#
-DIRS=sample
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/projects/sample/tools/sample/Makefile b/libclamav/c++/llvm/projects/sample/tools/sample/Makefile
deleted file mode 100644
index 324030c..0000000
--- a/libclamav/c++/llvm/projects/sample/tools/sample/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-##===- projects/sample/tools/sample/Makefile ---------------*- Makefile -*-===##
-
-#
-# Indicate where we are relative to the top of the source tree.
-#
-LEVEL=../..
-
-#
-# Give the name of the tool.
-#
-TOOLNAME=Sample
-
-#
-# List libraries that we'll need
-# We use LIBS because sample is a dynamic library.
-#
-USEDLIBS = sample.a
-
-#
-# Include Makefile.common so we know what to do.
-#
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/projects/sample/tools/sample/main.c b/libclamav/c++/llvm/projects/sample/tools/sample/main.c
deleted file mode 100644
index 2880265..0000000
--- a/libclamav/c++/llvm/projects/sample/tools/sample/main.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <unistd.h>
-
-#include "sample.h"
-
-int
-main (int argc, char ** argv)
-{
-  printf ("%d\n", compute_sample (5));
-  exit (0);
-}
-
diff --git a/libclamav/c++/llvm/runtime/Makefile b/libclamav/c++/llvm/runtime/Makefile
deleted file mode 100644
index 1e10451..0000000
--- a/libclamav/c++/llvm/runtime/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-##===- runtime/Makefile ------------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ..
-include $(LEVEL)/Makefile.config
-
-ifndef NO_RUNTIME_LIBS
-
-PARALLEL_DIRS  := libprofile
-
-# Disable libprofile: a faulty libtool is generated by autoconf which breaks the
-# build on Sparc
-ifeq ($(ARCH), Sparc)
-PARALLEL_DIRS := $(filter-out libprofile, $(PARALLEL_DIRS))
-endif
-
-endif
-
-include $(LEVEL)/Makefile.common
-
-install::
diff --git a/libclamav/c++/llvm/runtime/README.txt b/libclamav/c++/llvm/runtime/README.txt
deleted file mode 100644
index 2e2e547..0000000
--- a/libclamav/c++/llvm/runtime/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains the various runtime libraries used by components of 
-the LLVM compiler.  For example, the automatic pool allocation transformation
-inserts calls to an external pool allocator library.  This runtime library is
-an example of the type of library that lives in these directories.
diff --git a/libclamav/c++/llvm/runtime/libprofile/BasicBlockTracing.c b/libclamav/c++/llvm/runtime/libprofile/BasicBlockTracing.c
deleted file mode 100644
index dbe81e3..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/BasicBlockTracing.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*===-- BasicBlockTracing.c - Support library for basic block tracing -----===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source
-|* License. See LICENSE.TXT for details.
-|* 
-|*===----------------------------------------------------------------------===*|
-|* 
-|* This file implements the call back routines for the basic block tracing
-|* instrumentation pass.  This should be used with the -trace-basic-blocks
-|* LLVM pass.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#include "Profiling.h"
-#include <stdlib.h>
-#include <stdio.h>
-
-static unsigned *ArrayStart, *ArrayEnd, *ArrayCursor;
-
-/* WriteAndFlushBBTraceData - write out the currently accumulated trace data
- * and reset the cursor to point to the beginning of the buffer.
- */
-static void WriteAndFlushBBTraceData () {
-  write_profiling_data(BBTraceInfo, ArrayStart, (ArrayCursor - ArrayStart));
-  ArrayCursor = ArrayStart;
-}
-
-/* BBTraceAtExitHandler - When the program exits, just write out any remaining 
- * data and free the trace buffer.
- */
-static void BBTraceAtExitHandler() {
-  WriteAndFlushBBTraceData ();
-  free (ArrayStart);
-}
-
-/* llvm_trace_basic_block - called upon hitting a new basic block. */
-void llvm_trace_basic_block (unsigned BBNum) {
-  *ArrayCursor++ = BBNum;
-  if (ArrayCursor == ArrayEnd)
-    WriteAndFlushBBTraceData ();
-}
-
-/* llvm_start_basic_block_tracing - This is the main entry point of the basic
- * block tracing library.  It is responsible for setting up the atexit
- * handler and allocating the trace buffer.
- */
-int llvm_start_basic_block_tracing(int argc, const char **argv,
-                              unsigned *arrayStart, unsigned numElements) {
-  int Ret;
-  const unsigned BufferSize = 128 * 1024;
-  unsigned ArraySize;
-
-  Ret = save_arguments(argc, argv);
-
-  /* Allocate a buffer to contain BB tracing data */
-  ArraySize = BufferSize / sizeof (unsigned);
-  ArrayStart = malloc (ArraySize * sizeof (unsigned));
-  ArrayEnd = ArrayStart + ArraySize;
-  ArrayCursor = ArrayStart;
-
-  /* Set up the atexit handler. */
-  atexit (BBTraceAtExitHandler);
-
-  return Ret;
-}
diff --git a/libclamav/c++/llvm/runtime/libprofile/BlockProfiling.c b/libclamav/c++/llvm/runtime/libprofile/BlockProfiling.c
deleted file mode 100644
index db80bff..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/BlockProfiling.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*===-- BlockProfiling.c - Support library for block profiling ------------===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source      
-|* License. See LICENSE.TXT for details.                                      
-|* 
-|*===----------------------------------------------------------------------===*|
-|* 
-|* This file implements the call back routines for the block profiling
-|* instrumentation pass.  This should be used with the -insert-block-profiling
-|* LLVM pass.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#include "Profiling.h"
-#include <stdlib.h>
-
-static unsigned *ArrayStart;
-static unsigned NumElements;
-
-/* BlockProfAtExitHandler - When the program exits, just write out the profiling
- * data.
- */
-static void BlockProfAtExitHandler() {
-  /* Note that if this were doing something more intelligent with the
-   * instrumentation, we could do some computation here to expand what we
-   * collected into simple block profiles. (Or we could do it in llvm-prof.)
-   * Regardless, we directly count each block, so no expansion is necessary.
-   */
-  write_profiling_data(BlockInfo, ArrayStart, NumElements);
-}
-
-
-/* llvm_start_block_profiling - This is the main entry point of the block
- * profiling library.  It is responsible for setting up the atexit handler.
- */
-int llvm_start_block_profiling(int argc, const char **argv,
-                               unsigned *arrayStart, unsigned numElements) {
-  int Ret = save_arguments(argc, argv);
-  ArrayStart = arrayStart;
-  NumElements = numElements;
-  atexit(BlockProfAtExitHandler);
-  return Ret;
-}
diff --git a/libclamav/c++/llvm/runtime/libprofile/CommonProfiling.c b/libclamav/c++/llvm/runtime/libprofile/CommonProfiling.c
deleted file mode 100644
index 8b27a25..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/CommonProfiling.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*===-- CommonProfiling.c - Profiling support library support -------------===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source      
-|* License. See LICENSE.TXT for details.                                      
-|* 
-|*===----------------------------------------------------------------------===*|
-|* 
-|* This file implements functions used by the various different types of
-|* profiling implementations.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#include "Profiling.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-static char *SavedArgs = 0;
-static unsigned SavedArgsLength = 0;
-
-static const char *OutputFilename = "llvmprof.out";
-
-/* save_arguments - Save argc and argv as passed into the program for the file
- * we output.
- */
-int save_arguments(int argc, const char **argv) {
-  unsigned Length, i;
-  if (SavedArgs || !argv) return argc;  /* This can be called multiple times */
-
-  /* Check to see if there are any arguments passed into the program for the
-   * profiler.  If there are, strip them off and remember their settings.
-   */
-  while (argc > 1 && !strncmp(argv[1], "-llvmprof-", 10)) {
-    /* Ok, we have an llvmprof argument.  Remove it from the arg list and decide
-     * what to do with it.
-     */
-    const char *Arg = argv[1];
-    memmove(&argv[1], &argv[2], (argc-1)*sizeof(char*));
-    --argc;
-
-    if (!strcmp(Arg, "-llvmprof-output")) {
-      if (argc == 1)
-        puts("-llvmprof-output requires a filename argument!");
-      else {
-        OutputFilename = strdup(argv[1]);
-        memmove(&argv[1], &argv[2], (argc-1)*sizeof(char*));
-        --argc;
-      }
-    } else {
-      printf("Unknown option to the profiler runtime: '%s' - ignored.\n", Arg);
-    }
-  }
-
-  for (Length = 0, i = 0; i != (unsigned)argc; ++i)
-    Length += strlen(argv[i])+1;
-
-  SavedArgs = (char*)malloc(Length);
-  for (Length = 0, i = 0; i != (unsigned)argc; ++i) {
-    unsigned Len = strlen(argv[i]);
-    memcpy(SavedArgs+Length, argv[i], Len);
-    Length += Len;
-    SavedArgs[Length++] = ' ';
-  }
-
-  SavedArgsLength = Length;
-
-  return argc;
-}
-
-
-/* write_profiling_data - Write a raw block of profiling counters out to the
- * llvmprof.out file.  Note that we allow programs to be instrumented with
- * multiple different kinds of instrumentation.  For this reason, this function
- * may be called more than once.
- */
-void write_profiling_data(enum ProfilingType PT, unsigned *Start,
-                          unsigned NumElements) {
-  static int OutFile = -1;
-  int PTy;
-  
-  /* If this is the first time this function is called, open the output file for
-   * appending, creating it if it does not already exist.
-   */
-  if (OutFile == -1) {
-    OutFile = open(OutputFilename, O_CREAT | O_WRONLY | O_APPEND, 0666);
-    if (OutFile == -1) {
-      fprintf(stderr, "LLVM profiling runtime: while opening '%s': ",
-              OutputFilename);
-      perror("");
-      return;
-    }
-
-    /* Output the command line arguments to the file. */
-    {
-      int PTy = ArgumentInfo;
-      int Zeros = 0;
-      write(OutFile, &PTy, sizeof(int));
-      write(OutFile, &SavedArgsLength, sizeof(unsigned));
-      write(OutFile, SavedArgs, SavedArgsLength);
-      /* Pad out to a multiple of four bytes */
-      if (SavedArgsLength & 3)
-        write(OutFile, &Zeros, 4-(SavedArgsLength&3));
-    }
-  }
- 
-  /* Write out this record! */
-  PTy = PT;
-  write(OutFile, &PTy, sizeof(int));
-  write(OutFile, &NumElements, sizeof(unsigned));
-  write(OutFile, Start, NumElements*sizeof(unsigned));
-}
diff --git a/libclamav/c++/llvm/runtime/libprofile/EdgeProfiling.c b/libclamav/c++/llvm/runtime/libprofile/EdgeProfiling.c
deleted file mode 100644
index 4a68a08..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/EdgeProfiling.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*===-- EdgeProfiling.c - Support library for edge profiling --------------===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source      
-|* License. See LICENSE.TXT for details.                                      
-|* 
-|*===----------------------------------------------------------------------===*|
-|* 
-|* This file implements the call back routines for the edge profiling
-|* instrumentation pass.  This should be used with the -insert-edge-profiling
-|* LLVM pass.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#include "Profiling.h"
-#include <stdlib.h>
-
-static unsigned *ArrayStart;
-static unsigned NumElements;
-
-/* EdgeProfAtExitHandler - When the program exits, just write out the profiling
- * data.
- */
-static void EdgeProfAtExitHandler() {
-  /* Note that if this were doing something more intelligent with the
-   * instrumentation, we could do some computation here to expand what we
-   * collected into simple edge profiles.  Since we directly count each edge, we
-   * just write out all of the counters directly.
-   */
-  write_profiling_data(EdgeInfo, ArrayStart, NumElements);
-}
-
-
-/* llvm_start_edge_profiling - This is the main entry point of the edge
- * profiling library.  It is responsible for setting up the atexit handler.
- */
-int llvm_start_edge_profiling(int argc, const char **argv,
-                              unsigned *arrayStart, unsigned numElements) {
-  int Ret = save_arguments(argc, argv);
-  ArrayStart = arrayStart;
-  NumElements = numElements;
-  atexit(EdgeProfAtExitHandler);
-  return Ret;
-}
diff --git a/libclamav/c++/llvm/runtime/libprofile/FunctionProfiling.c b/libclamav/c++/llvm/runtime/libprofile/FunctionProfiling.c
deleted file mode 100644
index 24aa206..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/FunctionProfiling.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*===-- FunctionProfiling.c - Support library for function profiling ------===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source      
-|* License. See LICENSE.TXT for details.                                      
-|* 
-|*===----------------------------------------------------------------------===*|
-|* 
-|* This file implements the call back routines for the function profiling
-|* instrumentation pass.  This should be used with the
-|* -insert-function-profiling LLVM pass.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#include "Profiling.h"
-#include <stdlib.h>
-
-static unsigned *ArrayStart;
-static unsigned NumElements;
-
-/* FuncProfAtExitHandler - When the program exits, just write out the profiling
- * data.
- */
-static void FuncProfAtExitHandler() {
-  /* Just write out the data we collected.
-   */
-  write_profiling_data(FunctionInfo, ArrayStart, NumElements);
-}
-
-
-/* llvm_start_func_profiling - This is the main entry point of the function
- * profiling library.  It is responsible for setting up the atexit handler.
- */
-int llvm_start_func_profiling(int argc, const char **argv,
-                              unsigned *arrayStart, unsigned numElements) {
-  int Ret = save_arguments(argc, argv);
-  ArrayStart = arrayStart;
-  NumElements = numElements;
-  atexit(FuncProfAtExitHandler);
-  return Ret;
-}
diff --git a/libclamav/c++/llvm/runtime/libprofile/Makefile b/libclamav/c++/llvm/runtime/libprofile/Makefile
deleted file mode 100644
index 92a8558..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-##===- runtime/libprofile/Makefile -------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-include $(LEVEL)/Makefile.config
-
-ifneq ($(wildcard $(LLVMGCC)),)
-BYTECODE_LIBRARY = 1
-endif
-SHARED_LIBRARY = 1
-LOADABLE_MODULE = 1
-LIBRARYNAME = profile_rt
-EXTRA_DIST = exported_symbols.lst
-EXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/exported_symbols.lst
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/runtime/libprofile/Profiling.h b/libclamav/c++/llvm/runtime/libprofile/Profiling.h
deleted file mode 100644
index a7e3ccc..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/Profiling.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*===-- Profiling.h - Profiling support library support routines --*- C -*-===*\
-|*
-|*                     The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source      
-|* License. See LICENSE.TXT for details.                                      
-|*
-|*===----------------------------------------------------------------------===*|
-|*
-|* This file defines functions shared by the various different profiling
-|* implementations.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#ifndef PROFILING_H
-#define PROFILING_H
-
-#include "llvm/Analysis/ProfileInfoTypes.h" /* for enum ProfilingType */
-
-/* save_arguments - Save argc and argv as passed into the program for the file
- * we output.
- */
-int save_arguments(int argc, const char **argv);
-
-/* write_profiling_data - Write out a typed packet of profiling data to the
- * current output file.
- */
-void write_profiling_data(enum ProfilingType PT, unsigned *Start,
-                          unsigned NumElements);
-
-#endif
diff --git a/libclamav/c++/llvm/runtime/libprofile/exported_symbols.lst b/libclamav/c++/llvm/runtime/libprofile/exported_symbols.lst
deleted file mode 100644
index 5fc6559..0000000
--- a/libclamav/c++/llvm/runtime/libprofile/exported_symbols.lst
+++ /dev/null
@@ -1,6 +0,0 @@
-
-llvm_start_func_profiling
-llvm_start_block_profiling
-llvm_start_edge_profiling
-llvm_start_basic_block_tracing
-llvm_trace_basic_block
diff --git a/libclamav/c++/llvm/test/Archive/GNU.a b/libclamav/c++/llvm/test/Archive/GNU.a
deleted file mode 100644
index 4c09881..0000000
Binary files a/libclamav/c++/llvm/test/Archive/GNU.a and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Archive/GNU.toc b/libclamav/c++/llvm/test/Archive/GNU.toc
deleted file mode 100644
index d993413..0000000
--- a/libclamav/c++/llvm/test/Archive/GNU.toc
+++ /dev/null
@@ -1,4 +0,0 @@
-evenlen
-oddlen
-very_long_bytecode_file_name.bc
-IsNAN.o
diff --git a/libclamav/c++/llvm/test/Archive/IsNAN.o b/libclamav/c++/llvm/test/Archive/IsNAN.o
deleted file mode 100644
index 7b3a12a..0000000
Binary files a/libclamav/c++/llvm/test/Archive/IsNAN.o and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Archive/MacOSX.a b/libclamav/c++/llvm/test/Archive/MacOSX.a
deleted file mode 100644
index 77f88a2..0000000
Binary files a/libclamav/c++/llvm/test/Archive/MacOSX.a and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Archive/MacOSX.toc b/libclamav/c++/llvm/test/Archive/MacOSX.toc
deleted file mode 100644
index 61cbd3b..0000000
Binary files a/libclamav/c++/llvm/test/Archive/MacOSX.toc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Archive/README.txt b/libclamav/c++/llvm/test/Archive/README.txt
deleted file mode 100644
index da6cfa4..0000000
--- a/libclamav/c++/llvm/test/Archive/README.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-test/Regression/Archive
-=======================
-
-This directory contains various tests of llvm-ar and llvm-ranlib to ensure 
-compatibility reading other ar(1) formats. It also provides a basic
-functionality test for these tools.
-
-There are four archives stored in CVS with these tests: 
-
-GNU.a    - constructed on Linux with GNU ar
-MacOSX.a - constructed on Mac OS X with its native BSD4.4 ar
-SVR4.a   - constructed on Solaris with /usr/ccs/bin/ar
-xpg4.a   - constructed on Solaris with /usr/xpg4/bin/ar
-
-Each type of test is run on each of these archive files.  These archives each 
-contain four members:
-
-oddlen - a member with an odd lengthed name and content
-evenlen - a member with an even lengthed name and content
-IsNAN.o - a Linux native binary
-very_long_bytecode_file_name.bc - LLVM bytecode file with really long name
-
-These files test different aspects of the archiver that should cause failures
-in llvm-ar if regressions are introduced.
diff --git a/libclamav/c++/llvm/test/Archive/SVR4.a b/libclamav/c++/llvm/test/Archive/SVR4.a
deleted file mode 100644
index 3947813..0000000
Binary files a/libclamav/c++/llvm/test/Archive/SVR4.a and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Archive/SVR4.toc b/libclamav/c++/llvm/test/Archive/SVR4.toc
deleted file mode 100644
index d993413..0000000
--- a/libclamav/c++/llvm/test/Archive/SVR4.toc
+++ /dev/null
@@ -1,4 +0,0 @@
-evenlen
-oddlen
-very_long_bytecode_file_name.bc
-IsNAN.o
diff --git a/libclamav/c++/llvm/test/Archive/dg.exp b/libclamav/c++/llvm/test/Archive/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Archive/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Archive/evenlen b/libclamav/c++/llvm/test/Archive/evenlen
deleted file mode 100644
index 59ee8d5..0000000
--- a/libclamav/c++/llvm/test/Archive/evenlen
+++ /dev/null
@@ -1 +0,0 @@
-evenlen
diff --git a/libclamav/c++/llvm/test/Archive/extract_GNU.ll b/libclamav/c++/llvm/test/Archive/extract_GNU.ll
deleted file mode 100644
index f19840a..0000000
--- a/libclamav/c++/llvm/test/Archive/extract_GNU.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can extract bytecode members
-;from GNU style archives
-;RUN: llvm-ar x %p/GNU.a very_long_bytecode_file_name.bc
-;RUN: diff %p/very_long_bytecode_file_name.bc very_long_bytecode_file_name.bc >/dev/null 2>/dev/null
diff --git a/libclamav/c++/llvm/test/Archive/extract_MacOSX.ll b/libclamav/c++/llvm/test/Archive/extract_MacOSX.ll
deleted file mode 100644
index c811a59..0000000
--- a/libclamav/c++/llvm/test/Archive/extract_MacOSX.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can extract bytecode members
-;from MacOSX style archives
-
-;RUN: llvm-ar x %p/MacOSX.a very_long_bytecode_file_name.bc
-;RUN: diff %p/very_long_bytecode_file_name.bc very_long_bytecode_file_name.bc > /dev/null 2>/dev/null
diff --git a/libclamav/c++/llvm/test/Archive/extract_SVR4.ll b/libclamav/c++/llvm/test/Archive/extract_SVR4.ll
deleted file mode 100644
index 446d52c..0000000
--- a/libclamav/c++/llvm/test/Archive/extract_SVR4.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can extract bytecode members
-;from SVR4 style archives
-
-;RUN: llvm-ar x %p/SVR4.a very_long_bytecode_file_name.bc
-;RUN: diff %p/very_long_bytecode_file_name.bc very_long_bytecode_file_name.bc >/dev/null 2>/dev/null
diff --git a/libclamav/c++/llvm/test/Archive/extract_xpg4.ll b/libclamav/c++/llvm/test/Archive/extract_xpg4.ll
deleted file mode 100644
index c816d91..0000000
--- a/libclamav/c++/llvm/test/Archive/extract_xpg4.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can extract bytecode members
-;from xpg4 style archives
-
-;RUN: llvm-ar x %p/xpg4.a very_long_bytecode_file_name.bc
-;RUN: diff %p/very_long_bytecode_file_name.bc very_long_bytecode_file_name.bc >/dev/null 2>/dev/null
diff --git a/libclamav/c++/llvm/test/Archive/oddlen b/libclamav/c++/llvm/test/Archive/oddlen
deleted file mode 100644
index 8cf5bd1..0000000
--- a/libclamav/c++/llvm/test/Archive/oddlen
+++ /dev/null
@@ -1 +0,0 @@
-oddlen
diff --git a/libclamav/c++/llvm/test/Archive/toc_GNU.ll b/libclamav/c++/llvm/test/Archive/toc_GNU.ll
deleted file mode 100644
index 136f603..0000000
--- a/libclamav/c++/llvm/test/Archive/toc_GNU.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can generate a table of contents for
-;GNU style archives
-;RUN: llvm-ar t %p/GNU.a > %t1
-;RUN: diff %t1 %p/GNU.toc
diff --git a/libclamav/c++/llvm/test/Archive/toc_MacOSX.ll b/libclamav/c++/llvm/test/Archive/toc_MacOSX.ll
deleted file mode 100644
index fb03223..0000000
--- a/libclamav/c++/llvm/test/Archive/toc_MacOSX.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can generate a table of contents for
-;MacOSX style archives
-;RUN: llvm-ar t %p/MacOSX.a > %t1
-;RUN: diff %t1 %p/MacOSX.toc
diff --git a/libclamav/c++/llvm/test/Archive/toc_SVR4.ll b/libclamav/c++/llvm/test/Archive/toc_SVR4.ll
deleted file mode 100644
index 930a26f..0000000
--- a/libclamav/c++/llvm/test/Archive/toc_SVR4.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can generate a table of contents for
-;SVR4 style archives
-;RUN: llvm-ar t %p/SVR4.a > %t1
-;RUN: diff %t1 %p/SVR4.toc
diff --git a/libclamav/c++/llvm/test/Archive/toc_xpg4.ll b/libclamav/c++/llvm/test/Archive/toc_xpg4.ll
deleted file mode 100644
index 441af03..0000000
--- a/libclamav/c++/llvm/test/Archive/toc_xpg4.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-;This isn't really an assembly file, its just here to run the test.
-;This test just makes sure that llvm-ar can generate a table of contents for
-;xpg4 style archives
-;RUN: llvm-ar t %p/xpg4.a > %t1
-;RUN: diff %t1 %p/xpg4.toc
diff --git a/libclamav/c++/llvm/test/Archive/very_long_bytecode_file_name.bc b/libclamav/c++/llvm/test/Archive/very_long_bytecode_file_name.bc
deleted file mode 100644
index f7fce24..0000000
Binary files a/libclamav/c++/llvm/test/Archive/very_long_bytecode_file_name.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Archive/xpg4.a b/libclamav/c++/llvm/test/Archive/xpg4.a
deleted file mode 100644
index b2bdb51..0000000
Binary files a/libclamav/c++/llvm/test/Archive/xpg4.a and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Archive/xpg4.toc b/libclamav/c++/llvm/test/Archive/xpg4.toc
deleted file mode 100644
index d993413..0000000
--- a/libclamav/c++/llvm/test/Archive/xpg4.toc
+++ /dev/null
@@ -1,4 +0,0 @@
-evenlen
-oddlen
-very_long_bytecode_file_name.bc
-IsNAN.o
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/analysis.ml b/libclamav/c++/llvm/test/Bindings/Ocaml/analysis.ml
deleted file mode 100644
index 29ebb92..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/analysis.ml
+++ /dev/null
@@ -1,50 +0,0 @@
-(* RUN: %ocamlc -warn-error A llvm.cma llvm_analysis.cma %s -o %t 2> /dev/null
- * RUN: ./%t %t.bc
- *)
-
-open Llvm
-open Llvm_analysis
-
-(* Note that this takes a moment to link, so it's best to keep the number of
-   individual tests low. *)
-
-let context = global_context ()
-
-let test x = if not x then exit 1 else ()
-
-let bomb msg =
-  prerr_endline msg;
-  exit 2
-
-let _ =
-  let fty = function_type (void_type context) [| |] in
-  let m = create_module context "valid_m" in
-  let fn = define_function "valid_fn" fty m in
-  let at_entry = builder_at_end context (entry_block fn) in
-  ignore (build_ret_void at_entry);
-  
-  
-  (* Test that valid constructs verify. *)
-  begin match verify_module m with
-    Some msg -> bomb "valid module failed verification!"
-  | None -> ()
-  end;
-  
-  if not (verify_function fn) then bomb "valid function failed verification!";
-  
-  
-  (* Test that invalid constructs do not verify.
-     A basic block can contain only one terminator instruction. *)
-  ignore (build_ret_void at_entry);
-  
-  begin match verify_module m with
-    Some msg -> ()
-  | None -> bomb "invalid module passed verification!"
-  end;
-  
-  if verify_function fn then bomb "invalid function passed verification!";
-  
-  
-  dispose_module m
-  
-  (* Don't bother to test assert_valid_{module,function}. *)
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/bitreader.ml b/libclamav/c++/llvm/test/Bindings/Ocaml/bitreader.ml
deleted file mode 100644
index 2abeda9..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/bitreader.ml
+++ /dev/null
@@ -1,77 +0,0 @@
-(* RUN: %ocamlc -warn-error A llvm.cma llvm_bitreader.cma llvm_bitwriter.cma %s -o %t 2> /dev/null
- * RUN: ./%t %t.bc
- * RUN: llvm-dis < %t.bc | grep caml_int_ty
- *)
-
-(* Note that this takes a moment to link, so it's best to keep the number of
-   individual tests low. *)
-
-let context = Llvm.global_context ()
-
-let test x = if not x then exit 1 else ()
-
-let _ =
-  let fn = Sys.argv.(1) in
-  let m = Llvm.create_module context "ocaml_test_module" in
-  
-  ignore (Llvm.define_type_name "caml_int_ty" (Llvm.i32_type context) m);
-  
-  test (Llvm_bitwriter.write_bitcode_file m fn);
-  
-  Llvm.dispose_module m;
-  
-  (* parse_bitcode *)
-  begin
-    let mb = Llvm.MemoryBuffer.of_file fn in
-    begin try
-      let m = Llvm_bitreader.parse_bitcode context mb in
-      Llvm.dispose_module m
-    with x ->
-      Llvm.MemoryBuffer.dispose mb;
-      raise x
-    end
-  end;
-  
-  (* MemoryBuffer.of_file *)
-  test begin try
-    let mb = Llvm.MemoryBuffer.of_file (fn ^ ".bogus") in
-    Llvm.MemoryBuffer.dispose mb;
-    false
-  with Llvm.IoError _ ->
-    true
-  end;
-  
-  (* get_module_provider *)
-  begin
-    let mb = Llvm.MemoryBuffer.of_file fn in
-    let mp = begin try
-      Llvm_bitreader.get_module_provider context mb
-    with x ->
-      Llvm.MemoryBuffer.dispose mb;
-      raise x
-    end in
-    Llvm.ModuleProvider.dispose mp
-  end;
-  
-  (* corrupt the bitcode *)
-  let fn = fn ^ ".txt" in
-  begin let oc = open_out fn in
-    output_string oc "not a bitcode file\n";
-    close_out oc
-  end;
-  
-  (* test get_module_provider exceptions *)
-  test begin
-    try
-      let mb = Llvm.MemoryBuffer.of_file fn in
-      let mp = begin try
-        Llvm_bitreader.get_module_provider context mb
-      with x ->
-        Llvm.MemoryBuffer.dispose mb;
-        raise x
-      end in
-      Llvm.ModuleProvider.dispose mp;
-      false
-    with Llvm_bitreader.Error _ ->
-      true
-  end
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/bitwriter.ml b/libclamav/c++/llvm/test/Bindings/Ocaml/bitwriter.ml
deleted file mode 100644
index 42c8dae..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/bitwriter.ml
+++ /dev/null
@@ -1,18 +0,0 @@
-(* RUN: %ocamlc -warn-error A llvm.cma llvm_bitwriter.cma %s -o %t 2> /dev/null
- * RUN: ./%t %t.bc
- * RUN: llvm-dis < %t.bc | grep caml_int_ty
- *)
-
-(* Note that this takes a moment to link, so it's best to keep the number of
-   individual tests low. *)
-
-let context = Llvm.global_context ()
-
-let test x = if not x then exit 1 else ()
-
-let _ =
-  let m = Llvm.create_module context "ocaml_test_module" in
-  
-  ignore (Llvm.define_type_name "caml_int_ty" (Llvm.i32_type context) m);
-  
-  test (Llvm_bitwriter.write_bitcode_file m Sys.argv.(1))
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/executionengine.ml b/libclamav/c++/llvm/test/Bindings/Ocaml/executionengine.ml
deleted file mode 100644
index 420a14f..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/executionengine.ml
+++ /dev/null
@@ -1,115 +0,0 @@
-(* RUN: %ocamlc -warn-error A llvm.cma llvm_target.cma llvm_executionengine.cma %s -o %t 2> /dev/null
- * RUN: ./%t %t.bc
- *)
-
-open Llvm
-open Llvm_executionengine
-open Llvm_target
-
-(* Note that this takes a moment to link, so it's best to keep the number of
-   individual tests low. *)
-
-let context = global_context ()
-let i8_type = Llvm.i8_type context
-let i32_type = Llvm.i32_type context
-let i64_type = Llvm.i64_type context
-let double_type = Llvm.double_type context
-
-let bomb msg =
-  prerr_endline msg;
-  exit 2
-
-let define_main_fn m retval =
-  let fn =
-    let str_arr_type = pointer_type (pointer_type i8_type) in
-    define_function "main" (function_type i32_type [| i32_type;
-                                                      str_arr_type;
-                                                      str_arr_type |]) m in
-  let b = builder_at_end (global_context ()) (entry_block fn) in
-  ignore (build_ret (const_int i32_type retval) b);
-  fn
-
-let define_plus m =
-  let fn = define_function "plus" (function_type i32_type [| i32_type;
-                                                             i32_type |]) m in
-  let b = builder_at_end (global_context ()) (entry_block fn) in
-  let add = build_add (param fn 0) (param fn 1) "sum" b in
-  ignore (build_ret add b)
-
-let test_genericvalue () =
-  let tu = (1, 2) in
-  let ptrgv = GenericValue.of_pointer tu in
-  assert (tu = GenericValue.as_pointer ptrgv);
-  
-  let fpgv = GenericValue.of_float double_type 2. in
-  assert (2. = GenericValue.as_float double_type fpgv);
-  
-  let intgv = GenericValue.of_int i32_type 3 in
-  assert (3  = GenericValue.as_int intgv);
-  
-  let i32gv = GenericValue.of_int32 i32_type (Int32.of_int 4) in
-  assert ((Int32.of_int 4) = GenericValue.as_int32 i32gv);
-  
-  let nigv = GenericValue.of_nativeint i32_type (Nativeint.of_int 5) in
-  assert ((Nativeint.of_int 5) = GenericValue.as_nativeint nigv);
-  
-  let i64gv = GenericValue.of_int64 i64_type (Int64.of_int 6) in
-  assert ((Int64.of_int 6) = GenericValue.as_int64 i64gv)
-
-let test_executionengine () =
-  (* create *)
-  let m = create_module (global_context ()) "test_module" in
-  let main = define_main_fn m 42 in
-  
-  let m2 = create_module (global_context ()) "test_module2" in
-  define_plus m2;
-  
-  let ee = ExecutionEngine.create (ModuleProvider.create m) in
-  let mp2 = ModuleProvider.create m2 in
-  ExecutionEngine.add_module_provider mp2 ee;
-  
-  (* run_static_ctors *)
-  ExecutionEngine.run_static_ctors ee;
-  
-  (* run_function_as_main *)
-  let res = ExecutionEngine.run_function_as_main main [|"test"|] [||] ee in
-  if 42 != res then bomb "main did not return 42";
-  
-  (* free_machine_code *)
-  ExecutionEngine.free_machine_code main ee;
-  
-  (* find_function *)
-  match ExecutionEngine.find_function "dne" ee with
-  | Some _ -> raise (Failure "find_function 'dne' failed")
-  | None ->
-  
-  match ExecutionEngine.find_function "plus" ee with
-  | None -> raise (Failure "find_function 'plus' failed")
-  | Some plus ->
-  
-  (* run_function *)
-  let res = ExecutionEngine.run_function plus
-                                         [| GenericValue.of_int i32_type 2;
-                                            GenericValue.of_int i32_type 2 |]
-                                         ee in
-  if 4 != GenericValue.as_int res then bomb "plus did not work";
-  
-  (* remove_module_provider *)
-  Llvm.dispose_module (ExecutionEngine.remove_module_provider mp2 ee);
-  
-  (* run_static_dtors *)
-  ExecutionEngine.run_static_dtors ee;
-
-  (* Show that the target data binding links and runs.*)
-  let td = ExecutionEngine.target_data ee in
-
-  (* Demonstrate that a garbage pointer wasn't returned. *)
-  let ty = intptr_type td in
-  if ty != i32_type && ty != i64_type then bomb "target_data did not work";
-  
-  (* dispose *)
-  ExecutionEngine.dispose ee
-
-let _ =
-  test_genericvalue ();
-  test_executionengine ()
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/ocaml.exp b/libclamav/c++/llvm/test/Bindings/Ocaml/ocaml.exp
deleted file mode 100644
index 59e5f99..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/ocaml.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp,ml}]]
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/scalar_opts.ml b/libclamav/c++/llvm/test/Bindings/Ocaml/scalar_opts.ml
deleted file mode 100644
index 8f6802d..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/scalar_opts.ml
+++ /dev/null
@@ -1,58 +0,0 @@
-(* RUN: %ocamlc -warn-error A llvm.cma llvm_scalar_opts.cma llvm_target.cma %s -o %t 2> /dev/null
- *)
-
-(* Note: It takes several seconds for ocamlc to link an executable with
-         libLLVMCore.a, so it's better to write a big test than a bunch of
-         little ones. *)
-
-open Llvm
-open Llvm_scalar_opts
-open Llvm_target
-
-let context = global_context ()
-let void_type = Llvm.void_type context
-
-(* Tiny unit test framework - really just to help find which line is busted *)
-let suite name f =
-  prerr_endline (name ^ ":");
-  f ()
-
-
-(*===-- Fixture -----------------------------------------------------------===*)
-
-let filename = Sys.argv.(1)
-let m = create_module context filename
-let mp = ModuleProvider.create m
-
-
-(*===-- Transforms --------------------------------------------------------===*)
-
-let test_transforms () =
-  let (++) x f = ignore (f x); x in
-
-  let fty = function_type void_type [| |] in
-  let fn = define_function "fn" fty m in
-  ignore (build_ret_void (builder_at_end context (entry_block fn)));
-  
-  let td = TargetData.create (target_triple m) in
-  
-  ignore (PassManager.create_function mp
-           ++ TargetData.add td
-           ++ add_instruction_combining
-           ++ add_reassociation
-           ++ add_gvn
-           ++ add_cfg_simplification
-           ++ add_constant_propagation
-           ++ PassManager.initialize
-           ++ PassManager.run_function fn
-           ++ PassManager.finalize
-           ++ PassManager.dispose);
-  
-  TargetData.dispose td
-
-
-(*===-- Driver ------------------------------------------------------------===*)
-
-let _ =
-  suite "transforms" test_transforms;
-  ModuleProvider.dispose mp
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/target.ml b/libclamav/c++/llvm/test/Bindings/Ocaml/target.ml
deleted file mode 100644
index f7d1cbf..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/target.ml
+++ /dev/null
@@ -1,54 +0,0 @@
-(* RUN: %ocamlc -warn-error A llvm.cma llvm_target.cma %s -o %t 2> /dev/null
- *)
-
-(* Note: It takes several seconds for ocamlc to link an executable with
-         libLLVMCore.a, so it's better to write a big test than a bunch of
-         little ones. *)
-
-open Llvm
-open Llvm_target
-
-let context = global_context ()
-let i32_type = Llvm.i32_type context
-let i64_type = Llvm.i64_type context
-
-(* Tiny unit test framework - really just to help find which line is busted *)
-let suite name f =
-  prerr_endline (name ^ ":");
-  f ()
-
-
-(*===-- Fixture -----------------------------------------------------------===*)
-
-let filename = Sys.argv.(1)
-let m = create_module context filename
-
-
-(*===-- Target Data -------------------------------------------------------===*)
-
-let test_target_data () =
-  let td = TargetData.create (target_triple m) in
-  let sty = struct_type context [| i32_type; i64_type |] in
-  
-  ignore (TargetData.as_string td);
-  ignore (TargetData.invalidate_struct_layout td sty);
-  ignore (byte_order td);
-  ignore (pointer_size td);
-  ignore (intptr_type td);
-  ignore (size_in_bits td sty);
-  ignore (store_size td sty);
-  ignore (abi_size td sty);
-  ignore (stack_align td sty);
-  ignore (preferred_align td sty);
-  ignore (preferred_align_of_global td (declare_global sty "g" m));
-  ignore (element_at_offset td sty (Int64.of_int 1));
-  ignore (offset_of_element td sty 1);
-  
-  TargetData.dispose td
-
-
-(*===-- Driver ------------------------------------------------------------===*)
-
-let _ =
-  suite "target data" test_target_data;
-  dispose_module m
diff --git a/libclamav/c++/llvm/test/Bindings/Ocaml/vmcore.ml b/libclamav/c++/llvm/test/Bindings/Ocaml/vmcore.ml
deleted file mode 100644
index 4f6d3ea..0000000
--- a/libclamav/c++/llvm/test/Bindings/Ocaml/vmcore.ml
+++ /dev/null
@@ -1,1126 +0,0 @@
-(* RUN: %ocamlc -warn-error A llvm.cma llvm_analysis.cma llvm_bitwriter.cma %s -o %t 2> /dev/null
- * RUN: ./%t %t.bc
- * RUN: llvm-dis < %t.bc > %t.ll
- *)
-
-(* Note: It takes several seconds for ocamlc to link an executable with
-         libLLVMCore.a, so it's better to write a big test than a bunch of
-         little ones. *)
-
-open Llvm
-open Llvm_bitwriter
-
-
-(* Tiny unit test framework - really just to help find which line is busted *)
-let exit_status = ref 0
-let suite_name = ref ""
-let group_name = ref ""
-let case_num = ref 0
-let print_checkpoints = false
-let context = global_context ()
-let i1_type = Llvm.i1_type context
-let i8_type = Llvm.i8_type context
-let i16_type = Llvm.i16_type context
-let i32_type = Llvm.i32_type context
-let i64_type = Llvm.i64_type context
-let void_type = Llvm.void_type context
-let float_type = Llvm.float_type context
-let double_type = Llvm.double_type context
-let fp128_type = Llvm.fp128_type context
-
-let group name =
-  group_name := !suite_name ^ "/" ^ name;
-  case_num := 0;
-  if print_checkpoints then
-    prerr_endline ("  " ^ name ^ "...")
-
-let insist cond =
-  incr case_num;
-  if not cond then
-    exit_status := 10;
-  match print_checkpoints, cond with
-  | false, true -> ()
-  | false, false ->
-      prerr_endline ("FAILED: " ^ !suite_name ^ "/" ^ !group_name ^ " #" ^ (string_of_int !case_num))
-  | true, true ->
-      prerr_endline ("    " ^ (string_of_int !case_num))
-  | true, false ->
-      prerr_endline ("    " ^ (string_of_int !case_num) ^ " FAIL")
-
-let suite name f =
-  suite_name := name;
-  if print_checkpoints then
-    prerr_endline (name ^ ":");
-  f ()
-
-
-(*===-- Fixture -----------------------------------------------------------===*)
-
-let filename = Sys.argv.(1)
-let m = create_module context filename
-let mp = ModuleProvider.create m
-
-
-(*===-- Target ------------------------------------------------------------===*)
-
-let test_target () =
-  begin group "triple";
-    (* RUN: grep "i686-apple-darwin8" < %t.ll
-     *)
-    let trip = "i686-apple-darwin8" in
-    set_target_triple trip m;
-    insist (trip = target_triple m)
-  end;
-  
-  begin group "layout";
-    (* RUN: grep "bogus" < %t.ll
-     *)
-    let layout = "bogus" in
-    set_data_layout layout m;
-    insist (layout = data_layout m)
-  end
-
-(*===-- Types -------------------------------------------------------------===*)
-
-let test_types () =
-  (* RUN: grep {Ty01.*void} < %t.ll
-   *)
-  group "void";
-  insist (define_type_name "Ty01" void_type m);
-  insist (TypeKind.Void == classify_type void_type);
-
-  (* RUN: grep {Ty02.*i1} < %t.ll
-   *)
-  group "i1";
-  insist (define_type_name "Ty02" i1_type m);
-  insist (TypeKind.Integer == classify_type i1_type);
-
-  (* RUN: grep {Ty03.*i32} < %t.ll
-   *)
-  group "i32";
-  insist (define_type_name "Ty03" i32_type m);
-
-  (* RUN: grep {Ty04.*i42} < %t.ll
-   *)
-  group "i42";
-  let ty = integer_type context 42 in
-  insist (define_type_name "Ty04" ty m);
-
-  (* RUN: grep {Ty05.*float} < %t.ll
-   *)
-  group "float";
-  insist (define_type_name "Ty05" float_type m);
-  insist (TypeKind.Float == classify_type float_type);
-
-  (* RUN: grep {Ty06.*double} < %t.ll
-   *)
-  group "double";
-  insist (define_type_name "Ty06" double_type m);
-  insist (TypeKind.Double == classify_type double_type);
-
-  (* RUN: grep {Ty07.*i32.*i1, double} < %t.ll
-   *)
-  group "function";
-  let ty = function_type i32_type [| i1_type; double_type |] in
-  insist (define_type_name "Ty07" ty m);
-  insist (TypeKind.Function = classify_type ty);
-  insist (not (is_var_arg ty));
-  insist (i32_type == return_type ty);
-  insist (double_type == (param_types ty).(1));
-  
-  (* RUN: grep {Ty08.*\.\.\.} < %t.ll
-   *)
-  group "var arg function";
-  let ty = var_arg_function_type void_type [| i32_type |] in
-  insist (define_type_name "Ty08" ty m);
-  insist (is_var_arg ty);
-  
-  (* RUN: grep {Ty09.*\\\[7 x i8\\\]} < %t.ll
-   *)
-  group "array";
-  let ty = array_type i8_type 7 in
-  insist (define_type_name "Ty09" ty m);
-  insist (7 = array_length ty);
-  insist (i8_type == element_type ty);
-  insist (TypeKind.Array == classify_type ty);
-  
-  begin group "pointer";
-    (* RUN: grep {UnqualPtrTy.*float\*} < %t.ll
-     *)
-    let ty = pointer_type float_type in
-    insist (define_type_name "UnqualPtrTy" ty m);
-    insist (float_type == element_type ty);
-    insist (0 == address_space ty);
-    insist (TypeKind.Pointer == classify_type ty)
-  end;
-  
-  begin group "qualified_pointer";
-    (* RUN: grep {QualPtrTy.*i8.*3.*\*} < %t.ll
-     *)
-    let ty = qualified_pointer_type i8_type 3 in
-    insist (define_type_name "QualPtrTy" ty m);
-    insist (i8_type == element_type ty);
-    insist (3 == address_space ty)
-  end;
-  
-  (* RUN: grep {Ty11.*\<4 x i16\>} < %t.ll
-   *)
-  group "vector";
-  let ty = vector_type i16_type 4 in
-  insist (define_type_name "Ty11" ty m);
-  insist (i16_type == element_type ty);
-  insist (4 = vector_size ty);
-  
-  (* RUN: grep {Ty12.*opaque} < %t.ll
-   *)
-  group "opaque";
-  let ty = opaque_type context in
-  insist (define_type_name "Ty12" ty m);
-  insist (ty == ty);
-  insist (ty <> opaque_type context);
-  
-  (* RUN: grep -v {Ty13} < %t.ll
-   *)
-  group "delete";
-  let ty = opaque_type context in
-  insist (define_type_name "Ty13" ty m);
-  delete_type_name "Ty13" m;
-  
-  (* RUN: grep -v {RecursiveTy.*RecursiveTy} < %t.ll
-   *)
-  group "recursive";
-  let ty = opaque_type context in
-  let th = handle_to_type ty in
-  refine_type ty (pointer_type ty);
-  let ty = type_of_handle th in
-  insist (define_type_name "RecursiveTy" ty m);
-  insist (ty == element_type ty)
-
-
-(*===-- Constants ---------------------------------------------------------===*)
-
-let test_constants () =
-  (* RUN: grep {Const01.*i32.*-1} < %t.ll
-   *)
-  group "int";
-  let c = const_int i32_type (-1) in
-  ignore (define_global "Const01" c m);
-  insist (i32_type = type_of c);
-  insist (is_constant c);
-
-  (* RUN: grep {Const02.*i64.*-1} < %t.ll
-   *)
-  group "sext int";
-  let c = const_int i64_type (-1) in
-  ignore (define_global "Const02" c m);
-  insist (i64_type = type_of c);
-
-  (* RUN: grep {Const03.*i64.*4294967295} < %t.ll
-   *)
-  group "zext int64";
-  let c = const_of_int64 i64_type (Int64.of_string "4294967295") false in
-  ignore (define_global "Const03" c m);
-  insist (i64_type = type_of c);
-
-  (* RUN: grep {ConstIntString.*i32.*-1} < %t.ll
-   *)
-  group "int string";
-  let c = const_int_of_string i32_type "-1" 10 in
-  ignore (define_global "ConstIntString" c m);
-  insist (i32_type = type_of c);
-
-  (* RUN: grep {Const04.*"cruel\\\\00world"} < %t.ll
-   *)
-  group "string";
-  let c = const_string context "cruel\000world" in
-  ignore (define_global "Const04" c m);
-  insist ((array_type i8_type 11) = type_of c);
-
-  (* RUN: grep {Const05.*"hi\\\\00again\\\\00"} < %t.ll
-   *)
-  group "stringz";
-  let c = const_stringz context "hi\000again" in
-  ignore (define_global "Const05" c m);
-  insist ((array_type i8_type 9) = type_of c);
-
-  (* RUN: grep {ConstSingle.*2.75} < %t.ll
-   * RUN: grep {ConstDouble.*3.1459} < %t.ll
-   * RUN: grep {ConstDoubleString.*1.25} < %t.ll
-   *)
-  begin group "real";
-    let cs = const_float float_type 2.75 in
-    ignore (define_global "ConstSingle" cs m);
-    insist (float_type = type_of cs);
-    
-    let cd = const_float double_type 3.1459 in
-    ignore (define_global "ConstDouble" cd m);
-    insist (double_type = type_of cd);
-
-    let cd = const_float_of_string double_type "1.25" in
-    ignore (define_global "ConstDoubleString" cd m);
-    insist (double_type = type_of cd)
-  end;
-  
-  let one = const_int i16_type 1 in
-  let two = const_int i16_type 2 in
-  let three = const_int i32_type 3 in
-  let four = const_int i32_type 4 in
-  
-  (* RUN: grep {Const07.*\\\[i32 3, i32 4\\\]} < %t.ll
-   *)
-  group "array";
-  let c = const_array i32_type [| three; four |] in
-  ignore (define_global "Const07" c m);
-  insist ((array_type i32_type 2) = (type_of c));
-  
-  (* RUN: grep {Const08.*<i16 1, i16 2.*>} < %t.ll
-   *)
-  group "vector";
-  let c = const_vector [| one; two; one; two;
-                          one; two; one; two |] in
-  ignore (define_global "Const08" c m);
-  insist ((vector_type i16_type 8) = (type_of c));
-
-  (* RUN: grep {Const09.*.i16 1, i16 2, i32 3, i32 4} < %t.ll
-   *)
-  group "structure";
-  let c = const_struct context [| one; two; three; four |] in
-  ignore (define_global "Const09" c m);
-  insist ((struct_type context [| i16_type; i16_type; i32_type; i32_type |])
-        = (type_of c));
-  
-  (* RUN: grep {Const10.*zeroinit} < %t.ll
-   *)
-  group "null";
-  let c = const_null (packed_struct_type context [| i1_type; i8_type; i64_type;
-                                                    double_type |]) in
-  ignore (define_global "Const10" c m);
-  
-  (* RUN: grep {Const11.*-1} < %t.ll
-   *)
-  group "all ones";
-  let c = const_all_ones i64_type in
-  ignore (define_global "Const11" c m);
-  
-  (* RUN: grep {Const12.*undef} < %t.ll
-   *)
-  group "undef";
-  let c = undef i1_type in
-  ignore (define_global "Const12" c m);
-  insist (i1_type = type_of c);
-  insist (is_undef c);
-  
-  group "constant arithmetic";
-  (* RUN: grep {ConstNeg.*sub} < %t.ll
-   * RUN: grep {ConstNot.*xor} < %t.ll
-   * RUN: grep {ConstAdd.*add} < %t.ll
-   * RUN: grep {ConstSub.*sub} < %t.ll
-   * RUN: grep {ConstMul.*mul} < %t.ll
-   * RUN: grep {ConstUDiv.*udiv} < %t.ll
-   * RUN: grep {ConstSDiv.*sdiv} < %t.ll
-   * RUN: grep {ConstFDiv.*fdiv} < %t.ll
-   * RUN: grep {ConstURem.*urem} < %t.ll
-   * RUN: grep {ConstSRem.*srem} < %t.ll
-   * RUN: grep {ConstFRem.*frem} < %t.ll
-   * RUN: grep {ConstAnd.*and} < %t.ll
-   * RUN: grep {ConstOr.*or} < %t.ll
-   * RUN: grep {ConstXor.*xor} < %t.ll
-   * RUN: grep {ConstICmp.*icmp} < %t.ll
-   * RUN: grep {ConstFCmp.*fcmp} < %t.ll
-   *)
-  let void_ptr = pointer_type i8_type in
-  let five = const_int i64_type 5 in
-  let ffive = const_uitofp five double_type in
-  let foldbomb_gv = define_global "FoldBomb" (const_null i8_type) m in
-  let foldbomb = const_ptrtoint foldbomb_gv i64_type in
-  let ffoldbomb = const_uitofp foldbomb double_type in
-  ignore (define_global "ConstNeg" (const_neg foldbomb) m);
-  ignore (define_global "ConstNot" (const_not foldbomb) m);
-  ignore (define_global "ConstAdd" (const_add foldbomb five) m);
-  ignore (define_global "ConstSub" (const_sub foldbomb five) m);
-  ignore (define_global "ConstMul" (const_mul foldbomb five) m);
-  ignore (define_global "ConstUDiv" (const_udiv foldbomb five) m);
-  ignore (define_global "ConstSDiv" (const_sdiv foldbomb five) m);
-  ignore (define_global "ConstFDiv" (const_fdiv ffoldbomb ffive) m);
-  ignore (define_global "ConstURem" (const_urem foldbomb five) m);
-  ignore (define_global "ConstSRem" (const_srem foldbomb five) m);
-  ignore (define_global "ConstFRem" (const_frem ffoldbomb ffive) m);
-  ignore (define_global "ConstAnd" (const_and foldbomb five) m);
-  ignore (define_global "ConstOr" (const_or foldbomb five) m);
-  ignore (define_global "ConstXor" (const_xor foldbomb five) m);
-  ignore (define_global "ConstICmp" (const_icmp Icmp.Sle foldbomb five) m);
-  ignore (define_global "ConstFCmp" (const_fcmp Fcmp.Ole ffoldbomb ffive) m);
-  
-  group "constant casts";
-  (* RUN: grep {ConstTrunc.*trunc} < %t.ll
-   * RUN: grep {ConstSExt.*sext} < %t.ll
-   * RUN: grep {ConstZExt.*zext} < %t.ll
-   * RUN: grep {ConstFPTrunc.*fptrunc} < %t.ll
-   * RUN: grep {ConstFPExt.*fpext} < %t.ll
-   * RUN: grep {ConstUIToFP.*uitofp} < %t.ll
-   * RUN: grep {ConstSIToFP.*sitofp} < %t.ll
-   * RUN: grep {ConstFPToUI.*fptoui} < %t.ll
-   * RUN: grep {ConstFPToSI.*fptosi} < %t.ll
-   * RUN: grep {ConstPtrToInt.*ptrtoint} < %t.ll
-   * RUN: grep {ConstIntToPtr.*inttoptr} < %t.ll
-   * RUN: grep {ConstBitCast.*bitcast} < %t.ll
-   *)
-  let i128_type = integer_type context 128 in
-  ignore (define_global "ConstTrunc" (const_trunc (const_add foldbomb five)
-                                               i8_type) m);
-  ignore (define_global "ConstSExt" (const_sext foldbomb i128_type) m);
-  ignore (define_global "ConstZExt" (const_zext foldbomb i128_type) m);
-  ignore (define_global "ConstFPTrunc" (const_fptrunc ffoldbomb float_type) m);
-  ignore (define_global "ConstFPExt" (const_fpext ffoldbomb fp128_type) m);
-  ignore (define_global "ConstUIToFP" (const_uitofp foldbomb double_type) m);
-  ignore (define_global "ConstSIToFP" (const_sitofp foldbomb double_type) m);
-  ignore (define_global "ConstFPToUI" (const_fptoui ffoldbomb i32_type) m);
-  ignore (define_global "ConstFPToSI" (const_fptosi ffoldbomb i32_type) m);
-  ignore (define_global "ConstPtrToInt" (const_ptrtoint 
-    (const_gep (const_null (pointer_type i8_type))
-               [| const_int i32_type 1 |])
-    i32_type) m);
-  ignore (define_global "ConstIntToPtr" (const_inttoptr (const_add foldbomb five)
-                                                  void_ptr) m);
-  ignore (define_global "ConstBitCast" (const_bitcast ffoldbomb i64_type) m);
-  
-  group "misc constants";
-  (* RUN: grep {ConstSizeOf.*getelementptr.*null} < %t.ll
-   * RUN: grep {ConstGEP.*getelementptr} < %t.ll
-   * RUN: grep {ConstSelect.*select} < %t.ll
-   * RUN: grep {ConstExtractElement.*extractelement} < %t.ll
-   * RUN: grep {ConstInsertElement.*insertelement} < %t.ll
-   * RUN: grep {ConstShuffleVector.*shufflevector} < %t.ll
-   *)
-  ignore (define_global "ConstSizeOf" (size_of (pointer_type i8_type)) m);
-  ignore (define_global "ConstGEP" (const_gep foldbomb_gv [| five |]) m);
-  ignore (define_global "ConstSelect" (const_select
-    (const_icmp Icmp.Sle foldbomb five)
-    (const_int i8_type (-1))
-    (const_int i8_type 0)) m);
-  let zero = const_int i32_type 0 in
-  let one  = const_int i32_type 1 in
-  ignore (define_global "ConstExtractElement" (const_extractelement
-    (const_vector [| zero; one; zero; one |])
-    (const_trunc foldbomb i32_type)) m);
-  ignore (define_global "ConstInsertElement" (const_insertelement
-    (const_vector [| zero; one; zero; one |])
-    zero (const_trunc foldbomb i32_type)) m);
-  ignore (define_global "ConstShuffleVector" (const_shufflevector
-    (const_vector [| zero; one |])
-    (const_vector [| one; zero |])
-    (const_bitcast foldbomb (vector_type i32_type 2))) m)
-
-
-(*===-- Global Values -----------------------------------------------------===*)
-
-let test_global_values () =
-  let (++) x f = f x; x in
-  let zero32 = const_null i32_type in
-
-  (* RUN: grep {GVal01} < %t.ll
-   *)
-  group "naming";
-  let g = define_global "TEMPORARY" zero32 m in
-  insist ("TEMPORARY" = value_name g);
-  set_value_name "GVal01" g;
-  insist ("GVal01" = value_name g);
-
-  (* RUN: grep {GVal02.*linkonce} < %t.ll
-   *)
-  group "linkage";
-  let g = define_global "GVal02" zero32 m ++
-          set_linkage Linkage.Link_once in
-  insist (Linkage.Link_once = linkage g);
-
-  (* RUN: grep {GVal03.*Hanalei} < %t.ll
-   *)
-  group "section";
-  let g = define_global "GVal03" zero32 m ++
-          set_section "Hanalei" in
-  insist ("Hanalei" = section g);
-  
-  (* RUN: grep {GVal04.*hidden} < %t.ll
-   *)
-  group "visibility";
-  let g = define_global "GVal04" zero32 m ++
-          set_visibility Visibility.Hidden in
-  insist (Visibility.Hidden = visibility g);
-  
-  (* RUN: grep {GVal05.*align 128} < %t.ll
-   *)
-  group "alignment";
-  let g = define_global "GVal05" zero32 m ++
-          set_alignment 128 in
-  insist (128 = alignment g)
-
-
-(*===-- Global Variables --------------------------------------------------===*)
-
-let test_global_variables () =
-  let (++) x f = f x; x in
-  let fourty_two32 = const_int i32_type 42 in
-
-  (* RUN: grep {GVar01.*external} < %t.ll
-   *)
-  group "declarations";
-  insist (None == lookup_global "GVar01" m);
-  let g = declare_global i32_type "GVar01" m in
-  insist (is_declaration g);
-  insist (pointer_type float_type ==
-            type_of (declare_global float_type "GVar01" m));
-  insist (g == declare_global i32_type "GVar01" m);
-  insist (match lookup_global "GVar01" m with Some x -> x = g
-                                            | None -> false);
-  
-  (* RUN: grep {GVar02.*42} < %t.ll
-   * RUN: grep {GVar03.*42} < %t.ll
-   *)
-  group "definitions";
-  let g = define_global "GVar02" fourty_two32 m in
-  let g2 = declare_global i32_type "GVar03" m ++
-           set_initializer fourty_two32 in
-  insist (not (is_declaration g));
-  insist (not (is_declaration g2));
-  insist ((global_initializer g) == (global_initializer g2));
-
-  (* RUN: grep {GVar04.*thread_local} < %t.ll
-   *)
-  group "threadlocal";
-  let g = define_global "GVar04" fourty_two32 m ++
-          set_thread_local true in
-  insist (is_thread_local g);
-
-  (* RUN: grep -v {GVar05} < %t.ll
-   *)
-  group "delete";
-  let g = define_global "GVar05" fourty_two32 m in
-  delete_global g;
-
-  (* RUN: grep -v {ConstGlobalVar.*constant} < %t.ll
-   *)
-  group "constant";
-  let g = define_global "ConstGlobalVar" fourty_two32 m in
-  insist (not (is_global_constant g));
-  set_global_constant true g;
-  insist (is_global_constant g);
-  
-  begin group "iteration";
-    let m = create_module context "temp" in
-    
-    insist (At_end m = global_begin m);
-    insist (At_start m = global_end m);
-    
-    let g1 = declare_global i32_type "One" m in
-    let g2 = declare_global i32_type "Two" m in
-    
-    insist (Before g1 = global_begin m);
-    insist (Before g2 = global_succ g1);
-    insist (At_end m = global_succ g2);
-    
-    insist (After g2 = global_end m);
-    insist (After g1 = global_pred g2);
-    insist (At_start m = global_pred g1);
-    
-    let lf s x = s ^ "->" ^ value_name x in
-    insist ("->One->Two" = fold_left_globals lf "" m);
-    
-    let rf x s = value_name x ^ "<-" ^ s in
-    insist ("One<-Two<-" = fold_right_globals rf m "");
-    
-    dispose_module m
-  end
-
-
-(*===-- Functions ---------------------------------------------------------===*)
-
-let test_functions () =
-  let ty = function_type i32_type [| i32_type; i64_type |] in
-  let ty2 = function_type i8_type [| i8_type; i64_type |] in
-  
-  (* RUN: grep {declare i32 @Fn1\(i32, i64\)} < %t.ll
-   *)
-  begin group "declare";
-    insist (None = lookup_function "Fn1" m);
-    let fn = declare_function "Fn1" ty m in
-    insist (pointer_type ty = type_of fn);
-    insist (is_declaration fn);
-    insist (0 = Array.length (basic_blocks fn));
-    insist (pointer_type ty2 == type_of (declare_function "Fn1" ty2 m));
-    insist (fn == declare_function "Fn1" ty m);
-    insist (None <> lookup_function "Fn1" m);
-    insist (match lookup_function "Fn1" m with Some x -> x = fn
-                                             | None -> false);
-    insist (m == global_parent fn)
-  end;
-  
-  (* RUN: grep -v {Fn2} < %t.ll
-   *)
-  group "delete";
-  let fn = declare_function "Fn2" ty m in
-  delete_function fn;
-  
-  (* RUN: grep {define.*Fn3} < %t.ll
-   *)
-  group "define";
-  let fn = define_function "Fn3" ty m in
-  insist (not (is_declaration fn));
-  insist (1 = Array.length (basic_blocks fn));
-  ignore (build_unreachable (builder_at_end context (entry_block fn)));
-  
-  (* RUN: grep {define.*Fn4.*Param1.*Param2} < %t.ll
-   *)
-  group "params";
-  let fn = define_function "Fn4" ty m in
-  let params = params fn in
-  insist (2 = Array.length params);
-  insist (params.(0) = param fn 0);
-  insist (params.(1) = param fn 1);
-  insist (i32_type = type_of params.(0));
-  insist (i64_type = type_of params.(1));
-  set_value_name "Param1" params.(0);
-  set_value_name "Param2" params.(1);
-  ignore (build_unreachable (builder_at_end context (entry_block fn)));
-  
-  (* RUN: grep {fastcc.*Fn5} < %t.ll
-   *)
-  group "callconv";
-  let fn = define_function "Fn5" ty m in
-  insist (CallConv.c = function_call_conv fn);
-  set_function_call_conv CallConv.fast fn;
-  insist (CallConv.fast = function_call_conv fn);
-  ignore (build_unreachable (builder_at_end context (entry_block fn)));
-  
-  begin group "gc";
-    (* RUN: grep {Fn6.*gc.*shadowstack} < %t.ll
-     *)
-    let fn = define_function "Fn6" ty m in
-    insist (None = gc fn);
-    set_gc (Some "ocaml") fn;
-    insist (Some "ocaml" = gc fn);
-    set_gc None fn;
-    insist (None = gc fn);
-    set_gc (Some "shadowstack") fn;
-    ignore (build_unreachable (builder_at_end context (entry_block fn)));
-  end;
-  
-  begin group "iteration";
-    let m = create_module context "temp" in
-    
-    insist (At_end m = function_begin m);
-    insist (At_start m = function_end m);
-    
-    let f1 = define_function "One" ty m in
-    let f2 = define_function "Two" ty m in
-    
-    insist (Before f1 = function_begin m);
-    insist (Before f2 = function_succ f1);
-    insist (At_end m = function_succ f2);
-    
-    insist (After f2 = function_end m);
-    insist (After f1 = function_pred f2);
-    insist (At_start m = function_pred f1);
-    
-    let lf s x = s ^ "->" ^ value_name x in
-    insist ("->One->Two" = fold_left_functions lf "" m);
-    
-    let rf x s = value_name x ^ "<-" ^ s in
-    insist ("One<-Two<-" = fold_right_functions rf m "");
-    
-    dispose_module m
-  end
-
-
-(*===-- Params ------------------------------------------------------------===*)
-
-let test_params () =
-  begin group "iteration";
-    let m = create_module context "temp" in
-    
-    let vf = define_function "void" (function_type void_type [| |]) m in
-    
-    insist (At_end vf = param_begin vf);
-    insist (At_start vf = param_end vf);
-    
-    let ty = function_type void_type [| i32_type; i32_type |] in
-    let f = define_function "f" ty m in
-    let p1 = param f 0 in
-    let p2 = param f 1 in
-    set_value_name "One" p1;
-    set_value_name "Two" p2;
-    add_param_attr p1 Attribute.Sext;
-    add_param_attr p2 Attribute.Noalias;
-    remove_param_attr p2 Attribute.Noalias;
-    add_function_attr f Attribute.Nounwind;
-    add_function_attr f Attribute.Noreturn;
-    remove_function_attr f Attribute.Noreturn;
-
-    insist (Before p1 = param_begin f);
-    insist (Before p2 = param_succ p1);
-    insist (At_end f = param_succ p2);
-    
-    insist (After p2 = param_end f);
-    insist (After p1 = param_pred p2);
-    insist (At_start f = param_pred p1);
-    
-    let lf s x = s ^ "->" ^ value_name x in
-    insist ("->One->Two" = fold_left_params lf "" f);
-    
-    let rf x s = value_name x ^ "<-" ^ s in
-    insist ("One<-Two<-" = fold_right_params rf f "");
-    
-    dispose_module m
-  end
-
-
-(*===-- Basic Blocks ------------------------------------------------------===*)
-
-let test_basic_blocks () =
-  let ty = function_type void_type [| |] in
-  
-  (* RUN: grep {Bb1} < %t.ll
-   *)
-  group "entry";
-  let fn = declare_function "X" ty m in
-  let bb = append_block context "Bb1" fn in
-  insist (bb = entry_block fn);
-  ignore (build_unreachable (builder_at_end context bb));
-  
-  (* RUN: grep -v Bb2 < %t.ll
-   *)
-  group "delete";
-  let fn = declare_function "X2" ty m in
-  let bb = append_block context "Bb2" fn in
-  delete_block bb;
-  
-  group "insert";
-  let fn = declare_function "X3" ty m in
-  let bbb = append_block context "b" fn in
-  let bba = insert_block context "a" bbb in
-  insist ([| bba; bbb |] = basic_blocks fn);
-  ignore (build_unreachable (builder_at_end context bba));
-  ignore (build_unreachable (builder_at_end context bbb));
-  
-  (* RUN: grep Bb3 < %t.ll
-   *)
-  group "name/value";
-  let fn = define_function "X4" ty m in
-  let bb = entry_block fn in
-  ignore (build_unreachable (builder_at_end context bb));
-  let bbv = value_of_block bb in
-  set_value_name "Bb3" bbv;
-  insist ("Bb3" = value_name bbv);
-  
-  group "casts";
-  let fn = define_function "X5" ty m in
-  let bb = entry_block fn in
-  ignore (build_unreachable (builder_at_end context bb));
-  insist (bb = block_of_value (value_of_block bb));
-  insist (value_is_block (value_of_block bb));
-  insist (not (value_is_block (const_null i32_type)));
-  
-  begin group "iteration";
-    let m = create_module context "temp" in
-    let f = declare_function "Temp" (function_type i32_type [| |]) m in
-    
-    insist (At_end f = block_begin f);
-    insist (At_start f = block_end f);
-    
-    let b1 = append_block context "One" f in
-    let b2 = append_block context "Two" f in
-    
-    insist (Before b1 = block_begin f);
-    insist (Before b2 = block_succ b1);
-    insist (At_end f = block_succ b2);
-    
-    insist (After b2 = block_end f);
-    insist (After b1 = block_pred b2);
-    insist (At_start f = block_pred b1);
-    
-    let lf s x = s ^ "->" ^ value_name (value_of_block x) in
-    insist ("->One->Two" = fold_left_blocks lf "" f);
-    
-    let rf x s = value_name (value_of_block x) ^ "<-" ^ s in
-    insist ("One<-Two<-" = fold_right_blocks rf f "");
-    
-    dispose_module m
-  end
-
-
-(*===-- Instructions ------------------------------------------------------===*)
-
-let test_instructions () =
-  begin group "iteration";
-    let m = create_module context "temp" in
-    let fty = function_type void_type [| i32_type; i32_type |] in
-    let f = define_function "f" fty m in
-    let bb = entry_block f in
-    let b = builder_at context (At_end bb) in
-    
-    insist (At_end bb = instr_begin bb);
-    insist (At_start bb = instr_end bb);
-    
-    let i1 = build_add (param f 0) (param f 1) "One" b in
-    let i2 = build_sub (param f 0) (param f 1) "Two" b in
-    
-    insist (Before i1 = instr_begin bb);
-    insist (Before i2 = instr_succ i1);
-    insist (At_end bb = instr_succ i2);
-    
-    insist (After i2 = instr_end bb);
-    insist (After i1 = instr_pred i2);
-    insist (At_start bb = instr_pred i1);
-    
-    let lf s x = s ^ "->" ^ value_name x in
-    insist ("->One->Two" = fold_left_instrs lf "" bb);
-    
-    let rf x s = value_name x ^ "<-" ^ s in
-    insist ("One<-Two<-" = fold_right_instrs rf bb "");
-    
-    dispose_module m
-  end
-
-
-(*===-- Builder -----------------------------------------------------------===*)
-
-let test_builder () =
-  let (++) x f = f x; x in
-  
-  begin group "parent";
-    insist (try
-              ignore (insertion_block (builder context));
-              false
-            with Not_found ->
-              true);
-    
-    let fty = function_type void_type [| i32_type |] in
-    let fn = define_function "BuilderParent" fty m in
-    let bb = entry_block fn in
-    let b = builder_at_end context bb in
-    let p = param fn 0 in
-    let sum = build_add p p "sum" b in
-    ignore (build_ret_void b);
-    
-    insist (fn = block_parent bb);
-    insist (fn = param_parent p);
-    insist (bb = instr_parent sum);
-    insist (bb = insertion_block b)
-  end;
-  
-  group "ret void";
-  begin
-    (* RUN: grep {ret void} < %t.ll
-     *)
-    let fty = function_type void_type [| |] in
-    let fn = declare_function "X6" fty m in
-    let b = builder_at_end context (append_block context "Bb01" fn) in
-    ignore (build_ret_void b)
-  end;
-  
-  (* The rest of the tests will use one big function. *)
-  let fty = function_type i32_type [| i32_type; i32_type |] in
-  let fn = define_function "X7" fty m in
-  let atentry = builder_at_end context (entry_block fn) in
-  let p1 = param fn 0 ++ set_value_name "P1" in
-  let p2 = param fn 1 ++ set_value_name "P2" in
-  let f1 = build_uitofp p1 float_type "F1" atentry in
-  let f2 = build_uitofp p2 float_type "F2" atentry in
-  
-  let bb00 = append_block context "Bb00" fn in
-  ignore (build_unreachable (builder_at_end context bb00));
-  
-  group "ret"; begin
-    (* RUN: grep {ret.*P1} < %t.ll
-     *)
-    let ret = build_ret p1 atentry in
-    position_before ret atentry
-  end;
-  
-  group "br"; begin
-    (* RUN: grep {br.*Bb02} < %t.ll
-     *)
-    let bb02 = append_block context "Bb02" fn in
-    let b = builder_at_end context bb02 in
-    ignore (build_br bb02 b)
-  end;
-  
-  group "cond_br"; begin
-    (* RUN: grep {br.*Inst01.*Bb03.*Bb00} < %t.ll
-     *)
-    let bb03 = append_block context "Bb03" fn in
-    let b = builder_at_end context bb03 in
-    let cond = build_trunc p1 i1_type "Inst01" b in
-    ignore (build_cond_br cond bb03 bb00 b)
-  end;
-  
-  group "switch"; begin
-    (* RUN: grep {switch.*P1.*SwiBlock3} < %t.ll
-     * RUN: grep {2,.*SwiBlock2} < %t.ll
-     *)
-    let bb1 = append_block context "SwiBlock1" fn in
-    let bb2 = append_block context "SwiBlock2" fn in
-    ignore (build_unreachable (builder_at_end context bb2));
-    let bb3 = append_block context "SwiBlock3" fn in
-    ignore (build_unreachable (builder_at_end context bb3));
-    let si = build_switch p1 bb3 1 (builder_at_end context bb1) in
-    ignore (add_case si (const_int i32_type 2) bb2)
-  end;
-  
-  group "invoke"; begin
-    (* RUN: grep {Inst02.*invoke.*P1.*P2} < %t.ll
-     * RUN: grep {to.*Bb04.*unwind.*Bb00} < %t.ll
-     *)
-    let bb04 = append_block context "Bb04" fn in
-    let b = builder_at_end context bb04 in
-    ignore (build_invoke fn [| p1; p2 |] bb04 bb00 "Inst02" b)
-  end;
-  
-  group "unwind"; begin
-    (* RUN: grep {unwind} < %t.ll
-     *)
-    let bb05 = append_block context "Bb05" fn in
-    let b = builder_at_end context bb05 in
-    ignore (build_unwind b)
-  end;
-  
-  group "unreachable"; begin
-    (* RUN: grep {unreachable} < %t.ll
-     *)
-    let bb06 = append_block context "Bb06" fn in
-    let b = builder_at_end context bb06 in
-    ignore (build_unreachable b)
-  end;
-  
-  group "arithmetic"; begin
-    let bb07 = append_block context "Bb07" fn in
-    let b = builder_at_end context bb07 in
-    
-    (* RUN: grep {Inst03.*add.*P1.*P2} < %t.ll
-     * RUN: grep {Inst04.*sub.*P1.*Inst03} < %t.ll
-     * RUN: grep {Inst05.*mul.*P1.*Inst04} < %t.ll
-     * RUN: grep {Inst06.*udiv.*P1.*Inst05} < %t.ll
-     * RUN: grep {Inst07.*sdiv.*P1.*Inst06} < %t.ll
-     * RUN: grep {Inst08.*fdiv.*F1.*F2} < %t.ll
-     * RUN: grep {Inst09.*urem.*P1.*Inst07} < %t.ll
-     * RUN: grep {Inst10.*srem.*P1.*Inst09} < %t.ll
-     * RUN: grep {Inst11.*frem.*F1.*Inst08} < %t.ll
-     * RUN: grep {Inst12.*shl.*P1.*Inst10} < %t.ll
-     * RUN: grep {Inst13.*lshr.*P1.*Inst12} < %t.ll
-     * RUN: grep {Inst14.*ashr.*P1.*Inst13} < %t.ll
-     * RUN: grep {Inst15.*and.*P1.*Inst14} < %t.ll
-     * RUN: grep {Inst16.*or.*P1.*Inst15} < %t.ll
-     * RUN: grep {Inst17.*xor.*P1.*Inst16} < %t.ll
-     * RUN: grep {Inst18.*sub.*0.*Inst17} < %t.ll
-     * RUN: grep {Inst19.*xor.*Inst18.*-1} < %t.ll
-     *)
-    let inst03 = build_add  p1 p2     "Inst03" b in
-    let inst04 = build_sub  p1 inst03 "Inst04" b in
-    let inst05 = build_mul  p1 inst04 "Inst05" b in
-    let inst06 = build_udiv p1 inst05 "Inst06" b in
-    let inst07 = build_sdiv p1 inst06 "Inst07" b in
-    let inst08 = build_fdiv f1 f2     "Inst08" b in
-    let inst09 = build_urem p1 inst07 "Inst09" b in
-    let inst10 = build_srem p1 inst09 "Inst10" b in
-          ignore(build_frem f1 inst08 "Inst11" b);
-    let inst12 = build_shl  p1 inst10 "Inst12" b in
-    let inst13 = build_lshr p1 inst12 "Inst13" b in
-    let inst14 = build_ashr p1 inst13 "Inst14" b in
-    let inst15 = build_and  p1 inst14 "Inst15" b in
-    let inst16 = build_or   p1 inst15 "Inst16" b in
-    let inst17 = build_xor  p1 inst16 "Inst17" b in
-    let inst18 = build_neg  inst17    "Inst18" b in
-         ignore (build_not  inst18    "Inst19" b);
-         ignore (build_unreachable b)
-  end;
-  
-  group "memory"; begin
-    let bb08 = append_block context "Bb08" fn in
-    let b = builder_at_end context bb08 in
-    
-    (* RUN: grep {Inst20.*malloc.*i8 } < %t.ll
-     * RUN: grep {Inst21.*malloc.*i8.*P1} < %t.ll
-     * RUN: grep {Inst22.*alloca.*i32 } < %t.ll
-     * RUN: grep {Inst23.*alloca.*i32.*P2} < %t.ll
-     * RUN: grep {free.*Inst20} < %t.ll
-     * RUN: grep {Inst25.*load.*Inst21} < %t.ll
-     * RUN: grep {store.*P2.*Inst22} < %t.ll
-     * RUN: grep {Inst27.*getelementptr.*Inst23.*P2} < %t.ll
-     *)
-    let inst20 = build_malloc i8_type "Inst20" b in
-    let inst21 = build_array_malloc i8_type p1 "Inst21" b in
-    let inst22 = build_alloca i32_type "Inst22" b in
-    let inst23 = build_array_alloca i32_type p2 "Inst23" b in
-          ignore(build_free inst20 b);
-          ignore(build_load inst21 "Inst25" b);
-          ignore(build_store p2 inst22 b);
-          ignore(build_gep inst23 [| p2 |] "Inst27" b);
-          ignore(build_unreachable b)
-  end;
-  
-  group "casts"; begin
-    let void_ptr = pointer_type i8_type in
-    
-    (* RUN: grep {Inst28.*trunc.*P1.*i8} < %t.ll
-     * RUN: grep {Inst29.*zext.*Inst28.*i32} < %t.ll
-     * RUN: grep {Inst30.*sext.*Inst29.*i64} < %t.ll
-     * RUN: grep {Inst31.*uitofp.*Inst30.*float} < %t.ll
-     * RUN: grep {Inst32.*sitofp.*Inst29.*double} < %t.ll
-     * RUN: grep {Inst33.*fptoui.*Inst31.*i32} < %t.ll
-     * RUN: grep {Inst34.*fptosi.*Inst32.*i64} < %t.ll
-     * RUN: grep {Inst35.*fptrunc.*Inst32.*float} < %t.ll
-     * RUN: grep {Inst36.*fpext.*Inst35.*double} < %t.ll
-     * RUN: grep {Inst37.*inttoptr.*P1.*i8\*} < %t.ll
-     * RUN: grep {Inst38.*ptrtoint.*Inst37.*i64} < %t.ll
-     * RUN: grep {Inst39.*bitcast.*Inst38.*double} < %t.ll
-     *)
-    let inst28 = build_trunc p1 i8_type "Inst28" atentry in
-    let inst29 = build_zext inst28 i32_type "Inst29" atentry in
-    let inst30 = build_sext inst29 i64_type "Inst30" atentry in
-    let inst31 = build_uitofp inst30 float_type "Inst31" atentry in
-    let inst32 = build_sitofp inst29 double_type "Inst32" atentry in
-          ignore(build_fptoui inst31 i32_type "Inst33" atentry);
-          ignore(build_fptosi inst32 i64_type "Inst34" atentry);
-    let inst35 = build_fptrunc inst32 float_type "Inst35" atentry in
-          ignore(build_fpext inst35 double_type "Inst36" atentry);
-    let inst37 = build_inttoptr p1 void_ptr "Inst37" atentry in
-    let inst38 = build_ptrtoint inst37 i64_type "Inst38" atentry in
-          ignore(build_bitcast inst38 double_type "Inst39" atentry)
-  end;
-  
-  group "comparisons"; begin
-    (* RUN: grep {Inst40.*icmp.*ne.*P1.*P2} < %t.ll
-     * RUN: grep {Inst41.*icmp.*sle.*P2.*P1} < %t.ll
-     * RUN: grep {Inst42.*fcmp.*false.*F1.*F2} < %t.ll
-     * RUN: grep {Inst43.*fcmp.*true.*F2.*F1} < %t.ll
-     *)
-    ignore (build_icmp Icmp.Ne    p1 p2 "Inst40" atentry);
-    ignore (build_icmp Icmp.Sle   p2 p1 "Inst41" atentry);
-    ignore (build_fcmp Fcmp.False f1 f2 "Inst42" atentry);
-    ignore (build_fcmp Fcmp.True  f2 f1 "Inst43" atentry)
-  end;
-  
-  group "miscellaneous"; begin
-    (* RUN: grep {CallInst.*call.*P2.*P1} < %t.ll
-     * RUN: grep {CallInst.*cc63} < %t.ll
-     * RUN: grep {Inst47.*select.*Inst46.*P1.*P2} < %t.ll
-     * RUN: grep {Inst48.*va_arg.*null.*i32} < %t.ll
-     * RUN: grep {Inst49.*extractelement.*Vec1.*P2} < %t.ll
-     * RUN: grep {Inst50.*insertelement.*Vec1.*P1.*P2} < %t.ll
-     * RUN: grep {Inst51.*shufflevector.*Vec1.*Vec2.*1.*1.*0.*0} < %t.ll
-     * RUN: grep {CallInst.*tail call} < %t.ll
-     *)
-    let ci = build_call fn [| p2; p1 |] "CallInst" atentry in
-    insist (CallConv.c = instruction_call_conv ci);
-    set_instruction_call_conv 63 ci;
-    insist (63 = instruction_call_conv ci);
-    insist (not (is_tail_call ci));
-    set_tail_call true ci;
-    insist (is_tail_call ci);
-    add_instruction_param_attr ci 1 Attribute.Sext;
-    add_instruction_param_attr ci 2 Attribute.Noalias;
-    remove_instruction_param_attr ci 2 Attribute.Noalias;
-    
-    let inst46 = build_icmp Icmp.Eq p1 p2 "Inst46" atentry in
-         ignore (build_select inst46 p1 p2 "Inst47" atentry);
-         ignore (build_va_arg
-                  (const_null (pointer_type (pointer_type i8_type)))
-                  i32_type "Inst48" atentry);
-    
-    (* Set up some vector vregs. *)
-    let one  = const_int i32_type 1 in
-    let zero = const_int i32_type 0 in
-    let t1 = const_vector [| one; zero; one; zero |] in
-    let t2 = const_vector [| zero; one; zero; one |] in
-    let t3 = const_vector [| one; one; zero; zero |] in
-    let vec1 = build_insertelement t1 p1 p2 "Vec1" atentry in
-    let vec2 = build_insertelement t2 p1 p2 "Vec2" atentry in
-    
-    ignore (build_extractelement vec1 p2 "Inst49" atentry);
-    ignore (build_insertelement vec1 p1 p2 "Inst50" atentry);
-    ignore (build_shufflevector vec1 vec2 t3 "Inst51" atentry);
-  end;
-  
-  group "phi"; begin
-    (* RUN: grep {PhiNode.*P1.*PhiBlock1.*P2.*PhiBlock2} < %t.ll
-     *)
-    let b1 = append_block context "PhiBlock1" fn in
-    let b2 = append_block context "PhiBlock2" fn in
-    
-    let jb = append_block context "PhiJoinBlock" fn in
-    ignore (build_br jb (builder_at_end context b1));
-    ignore (build_br jb (builder_at_end context b2));
-    let at_jb = builder_at_end context jb in
-    
-    let phi = build_phi [(p1, b1)] "PhiNode" at_jb in
-    insist ([(p1, b1)] = incoming phi);
-    
-    add_incoming (p2, b2) phi;
-    insist ([(p1, b1); (p2, b2)] = incoming phi);
-    
-    ignore (build_unreachable at_jb);
-  end
-
-
-(*===-- Module Provider ---------------------------------------------------===*)
-
-let test_module_provider () =
-  let m = create_module context "test" in
-  let mp = ModuleProvider.create m in
-  ModuleProvider.dispose mp
-
-
-(*===-- Pass Managers -----------------------------------------------------===*)
-
-let test_pass_manager () =
-  let (++) x f = ignore (f x); x in
-
-  begin group "module pass manager";
-    ignore (PassManager.create ()
-             ++ PassManager.run_module m
-             ++ PassManager.dispose)
-  end;
-  
-  begin group "function pass manager";
-    let fty = function_type void_type [| |] in
-    let fn = define_function "FunctionPassManager" fty m in
-    ignore (build_ret_void (builder_at_end context (entry_block fn)));
-    
-    ignore (PassManager.create_function mp
-             ++ PassManager.initialize
-             ++ PassManager.run_function fn
-             ++ PassManager.finalize
-             ++ PassManager.dispose)
-  end
-
-
-(*===-- Writer ------------------------------------------------------------===*)
-
-let test_writer () =
-  group "valid";
-  insist (match Llvm_analysis.verify_module m with
-          | None -> true
-          | Some msg -> prerr_string msg; false);
-
-  group "writer";
-  insist (write_bitcode_file m filename);
-  
-  ModuleProvider.dispose mp
-
-
-(*===-- Driver ------------------------------------------------------------===*)
-
-let _ =
-  suite "target"           test_target;
-  suite "types"            test_types;
-  suite "constants"        test_constants;
-  suite "global values"    test_global_values;
-  suite "global variables" test_global_variables;
-  suite "functions"        test_functions;
-  suite "params"           test_params;
-  suite "basic blocks"     test_basic_blocks;
-  suite "instructions"     test_instructions;
-  suite "builder"          test_builder;
-  suite "module provider"  test_module_provider;
-  suite "pass manager"     test_pass_manager;
-  suite "writer"           test_writer; (* Keep this last; it disposes m. *)
-  exit !exit_status
diff --git a/libclamav/c++/llvm/test/Bitcode/2006-12-11-Cast-ConstExpr.ll b/libclamav/c++/llvm/test/Bitcode/2006-12-11-Cast-ConstExpr.ll
deleted file mode 100644
index 6df8711..0000000
--- a/libclamav/c++/llvm/test/Bitcode/2006-12-11-Cast-ConstExpr.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; This test ensures that we get a bitcast constant expression in and out,
-; not a sitofp constant expression. 
-; RUN: llvm-as < %s | llvm-dis | \
-; RUN:   grep {bitcast (}
-
- at G = external global i32
-
-define float @tryit(i32 %A) {
-   ret float bitcast( i32 ptrtoint (i32* @G to i32) to float)
-}
diff --git a/libclamav/c++/llvm/test/Bitcode/2009-06-11-FirstClassAggregateConstant.ll b/libclamav/c++/llvm/test/Bitcode/2009-06-11-FirstClassAggregateConstant.ll
deleted file mode 100644
index 415f88e..0000000
--- a/libclamav/c++/llvm/test/Bitcode/2009-06-11-FirstClassAggregateConstant.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis -disable-output
-; PR4373
-
- at foo = weak global { i32 } zeroinitializer              
- at bar = weak global i32 0                
-
-define void @test() {
-entry:
-        store { i32 } zeroinitializer, { i32 }* @foo
-        store i32 1, i32* @bar
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Bitcode/AutoUpgradeIntrinsics.ll b/libclamav/c++/llvm/test/Bitcode/AutoUpgradeIntrinsics.ll
deleted file mode 100644
index 5f9bcd5..0000000
--- a/libclamav/c++/llvm/test/Bitcode/AutoUpgradeIntrinsics.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; This isn't really an assembly file. It just runs test on bitcode to ensure
-; it is auto-upgraded.
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.ct}
-; RUN: llvm-dis < %s.bc | \
-; RUN:   not grep {llvm\\.part\\.set\\.i\[0-9\]*\\.i\[0-9\]*\\.i\[0-9\]*}
-; RUN: llvm-dis < %s.bc | \
-; RUN:   not grep {llvm\\.part\\.select\\.i\[0-9\]*\\.i\[0-9\]*}
-; RUN: llvm-dis < %s.bc | \
-; RUN:   not grep {llvm\\.bswap\\.i\[0-9\]*\\.i\[0-9\]*}
-
diff --git a/libclamav/c++/llvm/test/Bitcode/AutoUpgradeIntrinsics.ll.bc b/libclamav/c++/llvm/test/Bitcode/AutoUpgradeIntrinsics.ll.bc
deleted file mode 100644
index 9de756b..0000000
Binary files a/libclamav/c++/llvm/test/Bitcode/AutoUpgradeIntrinsics.ll.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Bitcode/dg.exp b/libclamav/c++/llvm/test/Bitcode/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Bitcode/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Bitcode/extractelement.ll b/libclamav/c++/llvm/test/Bitcode/extractelement.ll
deleted file mode 100644
index 04cb131..0000000
--- a/libclamav/c++/llvm/test/Bitcode/extractelement.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis
-; PR3465
-
-define double @test() {
-  %tmp24 = extractelement <2 x double> bitcast (<1 x i128> < i128 85070591730234615870450834276742070272 > to <2 x double>), i32 0
-  ret double %tmp24
-}
-
diff --git a/libclamav/c++/llvm/test/Bitcode/memcpy.ll b/libclamav/c++/llvm/test/Bitcode/memcpy.ll
deleted file mode 100644
index 85b95fe..0000000
--- a/libclamav/c++/llvm/test/Bitcode/memcpy.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as %s -o /dev/null
-
-define void @test(i32* %P, i32* %Q) {
-entry:
-        %tmp.1 = bitcast i32* %P to i8*         ; <i8*> [#uses=3]
-        %tmp.3 = bitcast i32* %Q to i8*         ; <i8*> [#uses=4]
-        tail call void @llvm.memcpy.i32( i8* %tmp.1, i8* %tmp.3, i32 100000, i32 1 )
-        tail call void @llvm.memcpy.i64( i8* %tmp.1, i8* %tmp.3, i64 100000, i32 1 )
-        tail call void @llvm.memset.i32( i8* %tmp.3, i8 14, i32 10000, i32 0 )
-        tail call void @llvm.memmove.i32( i8* %tmp.1, i8* %tmp.3, i32 123124, i32 1 )
-        ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-declare void @llvm.memcpy.i64(i8*, i8*, i64, i32)
-
-declare void @llvm.memset.i32(i8*, i8, i32, i32)
-
-declare void @llvm.memmove.i32(i8*, i8*, i32, i32)
-
diff --git a/libclamav/c++/llvm/test/Bitcode/metadata-2.ll b/libclamav/c++/llvm/test/Bitcode/metadata-2.ll
deleted file mode 100644
index 1a59ce6..0000000
--- a/libclamav/c++/llvm/test/Bitcode/metadata-2.ll
+++ /dev/null
@@ -1,87 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis -o /dev/null
-	type { %object.ModuleInfo.__vtbl*, i8*, %"byte[]", %1, %"ClassInfo[]", i32, void ()*, void ()*, void ()*, i8*, void ()* }		; type %0
-	type { i64, %object.ModuleInfo* }		; type %1
-	type { i32, void ()* }		; type %2
-	%"ClassInfo[]" = type { i64, %object.ClassInfo** }
-	%"Interface[]" = type { i64, %object.Interface* }
-	%"ModuleInfo[]" = type { i64, %object.ModuleInfo** }
-	%ModuleReference = type { %ModuleReference*, %object.ModuleInfo* }
-	%"OffsetTypeInfo[]" = type { i64, %object.OffsetTypeInfo* }
-	%"byte[]" = type { i64, i8* }
-	%object.ClassInfo = type { %object.ClassInfo.__vtbl*, i8*, %"byte[]", %"byte[]", %"void*[]", %"Interface[]", %object.ClassInfo*, i8*, i8*, i32, i8*, %"OffsetTypeInfo[]", i8*, %object.TypeInfo* }
-	%object.ClassInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i64 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %object.Object* (%object.ClassInfo*)* }
-	%object.Interface = type { %object.ClassInfo*, %"void*[]", i64 }
-	%object.ModuleInfo = type { %object.ModuleInfo.__vtbl*, i8*, %"byte[]", %"ModuleInfo[]", %"ClassInfo[]", i32, void ()*, void ()*, void ()*, i8*, void ()* }
-	%object.ModuleInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i64 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* }
-	%object.Object = type { %object.ModuleInfo.__vtbl*, i8* }
-	%object.OffsetTypeInfo = type { i64, %object.TypeInfo* }
-	%object.TypeInfo = type { %object.TypeInfo.__vtbl*, i8* }
-	%object.TypeInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i64 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i64 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i64 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* }
-	%"void*[]" = type { i64, i8** }
- at _D10ModuleInfo6__vtblZ = external constant %object.ModuleInfo.__vtbl		; <%object.ModuleInfo.__vtbl*> [#uses=1]
- at .str = internal constant [20 x i8] c"tango.core.BitManip\00"		; <[20 x i8]*> [#uses=1]
- at _D5tango4core8BitManip8__ModuleZ = global %0 { %object.ModuleInfo.__vtbl* @_D10ModuleInfo6__vtblZ, i8* null, %"byte[]" { i64 19, i8* getelementptr ([20 x i8]* @.str, i32 0, i32 0) }, %1 zeroinitializer, %"ClassInfo[]" zeroinitializer, i32 4, void ()* null, void ()* null, void ()* null, i8* null, void ()* null }		; <%0*> [#uses=1]
- at _D5tango4core8BitManip11__moduleRefZ = internal global %ModuleReference { %ModuleReference* null, %object.ModuleInfo* bitcast (%0* @_D5tango4core8BitManip8__ModuleZ to %object.ModuleInfo*) }		; <%ModuleReference*> [#uses=2]
- at _Dmodule_ref = external global %ModuleReference*		; <%ModuleReference**> [#uses=2]
- at llvm.global_ctors = appending constant [1 x %2] [%2 { i32 65535, void ()* @_D5tango4core8BitManip16__moduleinfoCtorZ }]		; <[1 x %2]*> [#uses=0]
-
-define fastcc i32 @_D5tango4core8BitManip6popcntFkZi(i32 %x_arg) nounwind readnone {
-entry:
-	%tmp1 = lshr i32 %x_arg, 1		; <i32> [#uses=1]
-	%tmp2 = and i32 %tmp1, 1431655765		; <i32> [#uses=1]
-	%tmp4 = sub i32 %x_arg, %tmp2		; <i32> [#uses=2]
-	%tmp6 = lshr i32 %tmp4, 2		; <i32> [#uses=1]
-	%tmp7 = and i32 %tmp6, 858993459		; <i32> [#uses=1]
-	%tmp9 = and i32 %tmp4, 858993459		; <i32> [#uses=1]
-	%tmp10 = add i32 %tmp7, %tmp9		; <i32> [#uses=2]
-	%tmp12 = lshr i32 %tmp10, 4		; <i32> [#uses=1]
-	%tmp14 = add i32 %tmp12, %tmp10		; <i32> [#uses=1]
-	%tmp16 = and i32 %tmp14, 252645135		; <i32> [#uses=2]
-	%tmp18 = lshr i32 %tmp16, 8		; <i32> [#uses=1]
-	%tmp20 = add i32 %tmp18, %tmp16		; <i32> [#uses=1]
-	%tmp22 = and i32 %tmp20, 16711935		; <i32> [#uses=2]
-	%tmp24 = lshr i32 %tmp22, 16		; <i32> [#uses=1]
-	%tmp26 = add i32 %tmp24, %tmp22		; <i32> [#uses=1]
-	%tmp28 = and i32 %tmp26, 65535		; <i32> [#uses=1]
-	ret i32 %tmp28
-}
-
-define fastcc i32 @_D5tango4core8BitManip7bitswapFkZk(i32 %x_arg) nounwind readnone {
-entry:
-	%tmp1 = lshr i32 %x_arg, 1		; <i32> [#uses=1]
-	%tmp2 = and i32 %tmp1, 1431655765		; <i32> [#uses=1]
-	%tmp4 = shl i32 %x_arg, 1		; <i32> [#uses=1]
-	%tmp5 = and i32 %tmp4, -1431655766		; <i32> [#uses=1]
-	%tmp6 = or i32 %tmp2, %tmp5		; <i32> [#uses=2]
-	%tmp8 = lshr i32 %tmp6, 2		; <i32> [#uses=1]
-	%tmp9 = and i32 %tmp8, 858993459		; <i32> [#uses=1]
-	%tmp11 = shl i32 %tmp6, 2		; <i32> [#uses=1]
-	%tmp12 = and i32 %tmp11, -858993460		; <i32> [#uses=1]
-	%tmp13 = or i32 %tmp9, %tmp12		; <i32> [#uses=2]
-	%tmp15 = lshr i32 %tmp13, 4		; <i32> [#uses=1]
-	%tmp16 = and i32 %tmp15, 252645135		; <i32> [#uses=1]
-	%tmp18 = shl i32 %tmp13, 4		; <i32> [#uses=1]
-	%tmp19 = and i32 %tmp18, -252645136		; <i32> [#uses=1]
-	%tmp20 = or i32 %tmp16, %tmp19		; <i32> [#uses=2]
-	%tmp22 = lshr i32 %tmp20, 8		; <i32> [#uses=1]
-	%tmp23 = and i32 %tmp22, 16711935		; <i32> [#uses=1]
-	%tmp25 = shl i32 %tmp20, 8		; <i32> [#uses=1]
-	%tmp26 = and i32 %tmp25, -16711936		; <i32> [#uses=1]
-	%tmp27 = or i32 %tmp23, %tmp26		; <i32> [#uses=2]
-	%tmp29 = lshr i32 %tmp27, 16		; <i32> [#uses=1]
-	%tmp31 = shl i32 %tmp27, 16		; <i32> [#uses=1]
-	%tmp32 = or i32 %tmp29, %tmp31		; <i32> [#uses=1]
-	ret i32 %tmp32
-}
-
-define internal void @_D5tango4core8BitManip16__moduleinfoCtorZ() nounwind {
-moduleinfoCtorEntry:
-	%current = load %ModuleReference** @_Dmodule_ref		; <%ModuleReference*> [#uses=1]
-	store %ModuleReference* %current, %ModuleReference** getelementptr (%ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, i32 0, i32 0)
-	store %ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, %ModuleReference** @_Dmodule_ref
-	ret void
-}
-!llvm.ldc.classinfo._D6Object7__ClassZ = !{!0}
-!llvm.ldc.classinfo._D10ModuleInfo7__ClassZ = !{!1}
-!0 = metadata !{%object.Object undef, i1 false, i1 false}
-!1 = metadata !{%object.ModuleInfo undef, i1 false, i1 false}
diff --git a/libclamav/c++/llvm/test/Bitcode/metadata.ll b/libclamav/c++/llvm/test/Bitcode/metadata.ll
deleted file mode 100644
index 19db3ea..0000000
--- a/libclamav/c++/llvm/test/Bitcode/metadata.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis -o /dev/null
-
-!llvm.foo = !{!0}
-!0 = metadata !{i32 42}
- at my.str = internal constant [4 x i8] c"foo\00"
-
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_loadl_pd.ll b/libclamav/c++/llvm/test/Bitcode/sse2_loadl_pd.ll
deleted file mode 100644
index b0bea16..0000000
--- a/libclamav/c++/llvm/test/Bitcode/sse2_loadl_pd.ll
+++ /dev/null
@@ -1,2 +0,0 @@
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.loadl.pd}
-; RUN: llvm-dis < %s.bc | grep shufflevector
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_loadl_pd.ll.bc b/libclamav/c++/llvm/test/Bitcode/sse2_loadl_pd.ll.bc
deleted file mode 100644
index 402cbe1..0000000
Binary files a/libclamav/c++/llvm/test/Bitcode/sse2_loadl_pd.ll.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_movl_dq.ll b/libclamav/c++/llvm/test/Bitcode/sse2_movl_dq.ll
deleted file mode 100644
index 093d821..0000000
--- a/libclamav/c++/llvm/test/Bitcode/sse2_movl_dq.ll
+++ /dev/null
@@ -1,2 +0,0 @@
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.movl.dq}
-; RUN: llvm-dis < %s.bc | grep shufflevector
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_movl_dq.ll.bc b/libclamav/c++/llvm/test/Bitcode/sse2_movl_dq.ll.bc
deleted file mode 100644
index 74d1826..0000000
Binary files a/libclamav/c++/llvm/test/Bitcode/sse2_movl_dq.ll.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_movs_d.ll b/libclamav/c++/llvm/test/Bitcode/sse2_movs_d.ll
deleted file mode 100644
index 25a35b6..0000000
--- a/libclamav/c++/llvm/test/Bitcode/sse2_movs_d.ll
+++ /dev/null
@@ -1,2 +0,0 @@
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.movs.d}
-; RUN: llvm-dis < %s.bc | grep shufflevector
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_movs_d.ll.bc b/libclamav/c++/llvm/test/Bitcode/sse2_movs_d.ll.bc
deleted file mode 100644
index 719d529..0000000
Binary files a/libclamav/c++/llvm/test/Bitcode/sse2_movs_d.ll.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_punpck_qdq.ll b/libclamav/c++/llvm/test/Bitcode/sse2_punpck_qdq.ll
deleted file mode 100644
index b9d711c..0000000
--- a/libclamav/c++/llvm/test/Bitcode/sse2_punpck_qdq.ll
+++ /dev/null
@@ -1,3 +0,0 @@
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.punpckh.qdq}
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.punpckl.qdq}
-; RUN: llvm-dis < %s.bc | grep shufflevector
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_punpck_qdq.ll.bc b/libclamav/c++/llvm/test/Bitcode/sse2_punpck_qdq.ll.bc
deleted file mode 100644
index 7c1b7ed..0000000
Binary files a/libclamav/c++/llvm/test/Bitcode/sse2_punpck_qdq.ll.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_shuf_pd.ll b/libclamav/c++/llvm/test/Bitcode/sse2_shuf_pd.ll
deleted file mode 100644
index 5829edb..0000000
--- a/libclamav/c++/llvm/test/Bitcode/sse2_shuf_pd.ll
+++ /dev/null
@@ -1,2 +0,0 @@
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.shuf.pd}
-; RUN: llvm-dis < %s.bc | grep shufflevector
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_shuf_pd.ll.bc b/libclamav/c++/llvm/test/Bitcode/sse2_shuf_pd.ll.bc
deleted file mode 100644
index 832c39e..0000000
Binary files a/libclamav/c++/llvm/test/Bitcode/sse2_shuf_pd.ll.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_unpck_pd.ll b/libclamav/c++/llvm/test/Bitcode/sse2_unpck_pd.ll
deleted file mode 100644
index f4e5d54..0000000
--- a/libclamav/c++/llvm/test/Bitcode/sse2_unpck_pd.ll
+++ /dev/null
@@ -1,3 +0,0 @@
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.unpckh.pd}
-; RUN: llvm-dis < %s.bc | not grep {i32 @llvm\\.unpckl.pd}
-; RUN: llvm-dis < %s.bc | grep shufflevector
diff --git a/libclamav/c++/llvm/test/Bitcode/sse2_unpck_pd.ll.bc b/libclamav/c++/llvm/test/Bitcode/sse2_unpck_pd.ll.bc
deleted file mode 100644
index 4fb829c..0000000
Binary files a/libclamav/c++/llvm/test/Bitcode/sse2_unpck_pd.ll.bc and /dev/null differ
diff --git a/libclamav/c++/llvm/test/BugPoint/crash-narrowfunctiontest.ll b/libclamav/c++/llvm/test/BugPoint/crash-narrowfunctiontest.ll
deleted file mode 100644
index 3ee9f8a..0000000
--- a/libclamav/c++/llvm/test/BugPoint/crash-narrowfunctiontest.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; Test that bugpoint can narrow down the testcase to the important function
-;
-; RUN: bugpoint %s -bugpoint-crashcalls -silence-passes > /dev/null
-
-define i32 @foo() { ret i32 1 }
-
-define i32 @test() {
-	call i32 @test()
-	ret i32 %1
-}
-
-define i32 @bar() { ret i32 2 }
diff --git a/libclamav/c++/llvm/test/BugPoint/dg.exp b/libclamav/c++/llvm/test/BugPoint/dg.exp
deleted file mode 100644
index de42dad..0000000
--- a/libclamav/c++/llvm/test/BugPoint/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.ll]]
diff --git a/libclamav/c++/llvm/test/BugPoint/remove_arguments_test.ll b/libclamav/c++/llvm/test/BugPoint/remove_arguments_test.ll
deleted file mode 100644
index e565597..0000000
--- a/libclamav/c++/llvm/test/BugPoint/remove_arguments_test.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: bugpoint %s -bugpoint-crashcalls -silence-passes
-
-; Test to make sure that arguments are removed from the function if they are 
-; unnecessary.
-
-declare i32 @test2()
-
-define i32 @test(i32 %A, i32 %B, float %C) {
-	call i32 @test2()
-	ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2005-07-12-TwoMallocCalls.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2005-07-12-TwoMallocCalls.ll
deleted file mode 100644
index c96b14a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2005-07-12-TwoMallocCalls.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; There should be exactly two calls here (memset and malloc), no more.
-; RUN: llvm-as < %s | llc -march=alpha | grep jsr | count 2
-
-%typedef.bc_struct = type opaque
-declare void @llvm.memset.i64(i8*, i8, i64, i32)
-
-define i1 @l12_l94_bc_divide_endif_2E_3_2E_ce(i32* %tmp.71.reload, i32 %scale2.1.3, i32 %extra.0, %typedef.bc_struct* %n1, %typedef.bc_struct* %n2, i32* %tmp.92.reload, i32 %tmp.94.reload, i32* %tmp.98.reload, i32 %tmp.100.reload, i8** %tmp.112.out, i32* %tmp.157.out, i8** %tmp.158.out) {
-newFuncRoot:
-        %tmp.120 = add i32 %extra.0, 2          ; <i32> [#uses=1]
-        %tmp.122 = add i32 %tmp.120, %tmp.94.reload             ; <i32> [#uses=1]
-        %tmp.123 = add i32 %tmp.122, %tmp.100.reload            ; <i32> [#uses=2]
-        %tmp.112 = malloc i8, i32 %tmp.123              ; <i8*> [#uses=1]
-        %tmp.137 = zext i32 %tmp.123 to i64             ; <i64> [#uses=1]
-        tail call void @llvm.memset.i64( i8* %tmp.112, i8 0, i64 %tmp.137, i32 0 )
-        ret i1 true
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2005-12-12-MissingFCMov.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2005-12-12-MissingFCMov.ll
deleted file mode 100644
index b45c2a4..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2005-12-12-MissingFCMov.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; This shouldn't crash
-; RUN: llvm-as < %s | llc -march=alpha
-
- at .str_4 = external global [44 x i8]             ; <[44 x i8]*> [#uses=0]
-
-declare void @printf(i32, ...)
-
-define void @main() {
-entry:
-        %tmp.11861 = icmp slt i64 0, 1          ; <i1> [#uses=1]
-        %tmp.19466 = icmp slt i64 0, 1          ; <i1> [#uses=1]
-        %tmp.21571 = icmp slt i64 0, 1          ; <i1> [#uses=1]
-        %tmp.36796 = icmp slt i64 0, 1          ; <i1> [#uses=1]
-        br i1 %tmp.11861, label %loopexit.2, label %no_exit.2
-
-no_exit.2:              ; preds = %entry
-        ret void
-
-loopexit.2:             ; preds = %entry
-        br i1 %tmp.19466, label %loopexit.3, label %no_exit.3.preheader
-
-no_exit.3.preheader:            ; preds = %loopexit.2
-        ret void
-
-loopexit.3:             ; preds = %loopexit.2
-        br i1 %tmp.21571, label %no_exit.6, label %no_exit.4
-
-no_exit.4:              ; preds = %loopexit.3
-        ret void
-
-no_exit.6:              ; preds = %no_exit.6, %loopexit.3
-        %tmp.30793 = icmp sgt i64 0, 0          ; <i1> [#uses=1]
-        br i1 %tmp.30793, label %loopexit.6, label %no_exit.6
-
-loopexit.6:             ; preds = %no_exit.6
-        %Z.1 = select i1 %tmp.36796, double 1.000000e+00, double 0x3FEFFF7CEDE74EAE; <double> [#uses=2]
-        tail call void (i32, ...)* @printf( i32 0, i64 0, i64 0, i64 0, double 1.000000e+00, double 1.000000e+00, double %Z.1, double %Z.1 )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-01-18-MissedGlobal.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2006-01-18-MissedGlobal.ll
deleted file mode 100644
index f89997e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-01-18-MissedGlobal.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; The global symbol should be legalized
-; RUN: llvm-as < %s | llc -march=alpha 
-
-target datalayout = "e-p:64:64"
-        %struct.LIST_HELP = type { %struct.LIST_HELP*, i8* }
-        %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [44 x i8] }
-        %struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
- at clause_SORT = external global [21 x %struct.LIST_HELP*]                ; <[21 x %struct.LIST_HELP*]*> [#uses=0]
- at ia_in = external global %struct._IO_FILE*              ; <%struct._IO_FILE**> [#uses=1]
- at multvec_j = external global [100 x i32]                ; <[100 x i32]*> [#uses=0]
-
-define void @main(i32 %argc) {
-clock_Init.exit:
-        %tmp.5.i575 = load i32* null            ; <i32> [#uses=1]
-        %tmp.309 = icmp eq i32 %tmp.5.i575, 0           ; <i1> [#uses=1]
-        br i1 %tmp.309, label %UnifiedReturnBlock, label %then.17
-
-then.17:                ; preds = %clock_Init.exit
-        store %struct._IO_FILE* null, %struct._IO_FILE** @ia_in
-        %savedstack = call i8* @llvm.stacksave( )               ; <i8*> [#uses=0]
-        ret void
-
-UnifiedReturnBlock:             ; preds = %clock_Init.exit
-        ret void
-}
-
-declare i8* @llvm.stacksave()
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-01-26-VaargBreak.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2006-01-26-VaargBreak.ll
deleted file mode 100644
index 05ebe1e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-01-26-VaargBreak.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; This shouldn't crash
-; RUN: llvm-as < %s | llc -march=alpha 
-
-target datalayout = "e-p:64:64"
-target triple = "alphaev6-unknown-linux-gnu"
-deplibs = [ "c", "crtend", "stdc++" ]
-        %struct.__va_list_tag = type { i8*, i32 }
-
-define i32 @emit_library_call_value(i32 %nargs, ...) {
-entry:
-        %tmp.223 = va_arg %struct.__va_list_tag* null, i32              ; <i32> [#uses=1]
-        ret i32 %tmp.223
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-04-04-zextload.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2006-04-04-zextload.ll
deleted file mode 100644
index f3ff5b1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-04-04-zextload.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha
-
-target datalayout = "e-p:64:64"
-target triple = "alphaev67-unknown-linux-gnu"
-        %llvm.dbg.compile_unit.type = type { i32, {  }*, i32, i32, i8*, i8*, i8* }
-        %struct._Callback_list = type { %struct._Callback_list*, void (i32, %struct.ios_base*, i32)*, i32, i32 }
-        %struct._Impl = type { i32, %struct.facet**, i64, %struct.facet**, i8** }
-        %struct._Words = type { i8*, i64 }
-        %"struct.__codecvt_abstract_base<char,char,__mbstate_t>" = type { %struct.facet }
-        %"struct.basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %struct.locale }
-        %struct.facet = type { i32 (...)**, i32 }
-        %struct.ios_base = type { i32 (...)**, i64, i64, i32, i32, i32, %struct._Callback_list*, %struct._Words, [8 x %struct._Words], i32, %struct._Words*, %struct.locale }
-        %struct.locale = type { %struct._Impl* }
-        %"struct.ostreambuf_iterator<char,std::char_traits<char> >" = type { %"struct.basic_streambuf<char,std::char_traits<char> >"*, i1 }
- at llvm.dbg.compile_unit1047 = external global %llvm.dbg.compile_unit.type          ; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-define void @_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_() {
-entry:
-        %tmp234 = icmp eq i8 0, 0               ; <i1> [#uses=1]
-        br i1 %tmp234, label %cond_next243, label %cond_true235
-
-cond_true235:           ; preds = %entry
-        ret void
-
-cond_next243:           ; preds = %entry
-        %tmp428 = load i64* null                ; <i64> [#uses=1]
-        %tmp428.upgrd.1 = trunc i64 %tmp428 to i32              ; <i32> [#uses=1]
-        %tmp429 = alloca i8, i32 %tmp428.upgrd.1                ; <i8*> [#uses=0]
-        call void @llvm.dbg.stoppoint( i32 1146, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1047 to {  }*) )
-        unreachable
-}
-
-declare void @llvm.dbg.stoppoint(i32, i32, {  }*)
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll
deleted file mode 100644
index 6b55047..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha
-
-target datalayout = "e-p:64:64"
-target triple = "alphaev67-unknown-linux-gnu"
-
-define i32 @_ZN9__gnu_cxx18__exchange_and_addEPVii(i32* %__mem, i32 %__val) {
-entry:
-        %__tmp = alloca i32, align 4            ; <i32*> [#uses=1]
-        %tmp3 = call i32 asm sideeffect "\0A$$Lxadd_0:\0A\09ldl_l  $0,$3\0A\09addl   $0,$4,$1\0A\09stl_c  $1,$2\0A\09beq    $1,$$Lxadd_0\0A\09mb", "=&r,=*&r,=*m,m,r"( i32* %__tmp, i32* %__mem, i32* %__mem, i32 %__val )            ; <i32> [#uses=1]
-        ret i32 %tmp3
-}
-
-define void @_ZN9__gnu_cxx12__atomic_addEPVii(i32* %__mem, i32 %__val) {
-entry:
-        %tmp2 = call i32 asm sideeffect "\0A$$Ladd_1:\0A\09ldl_l  $0,$2\0A\09addl   $0,$3,$0\0A\09stl_c  $0,$1\0A\09beq    $0,$$Ladd_1\0A\09mb", "=&r,=*m,m,r"( i32* %__mem, i32* %__mem, i32 %__val )                ; <i32> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-11-01-vastart.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2006-11-01-vastart.ll
deleted file mode 100644
index 3f42eda..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2006-11-01-vastart.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha
-
-target datalayout = "e-p:64:64"
-target triple = "alphaev67-unknown-linux-gnu"
-        %struct.va_list = type { i8*, i32, i32 }
-
-define void @yyerror(i32, ...) {
-entry:
-        %va.upgrd.1 = bitcast %struct.va_list* null to i8*              ; <i8*> [#uses=1]
-        call void @llvm.va_start( i8* %va.upgrd.1 )
-        ret void
-}
-
-declare void @llvm.va_start(i8*)
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2007-11-27-mulneg3.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2007-11-27-mulneg3.ll
deleted file mode 100644
index 3eac13d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2007-11-27-mulneg3.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha
-
-;FIXME: this should produce no mul inst.  But not crashing will have to do for now
-
-; ModuleID = 'Output/bugpoint-train/bugpoint-reduced-simplified.bc'
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f128:128:128"
-target triple = "alphaev6-unknown-linux-gnu"
-
-define fastcc i32 @getcount(i32 %s) {
-cond_next43:		; preds = %bb27
-	%tmp431 = mul i32 %s, -3
-	ret i32 %tmp431
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2008-11-10-smul_lohi.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2008-11-10-smul_lohi.ll
deleted file mode 100644
index 9d814da..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2008-11-10-smul_lohi.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f128:128:128"
-target triple = "alphaev6-unknown-linux-gnu"
-
-define i64 @__mulvdi3(i64 %a, i64 %b) nounwind {
-entry:
-	%0 = sext i64 %a to i128		; <i128> [#uses=1]
-	%1 = sext i64 %b to i128		; <i128> [#uses=1]
-	%2 = mul i128 %1, %0		; <i128> [#uses=2]
-	%3 = lshr i128 %2, 64		; <i128> [#uses=1]
-	%4 = trunc i128 %3 to i64		; <i64> [#uses=1]
-	%5 = trunc i128 %2 to i64		; <i64> [#uses=1]
-	%6 = icmp eq i64 %4, 0		; <i1> [#uses=1]
-	br i1 %6, label %bb1, label %bb
-
-bb:		; preds = %entry
-	unreachable
-
-bb1:		; preds = %entry
-	ret i64 %5
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2008-11-12-Add128.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2008-11-12-Add128.ll
deleted file mode 100644
index e6e5746..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2008-11-12-Add128.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | llc
-; PR3044
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f128:128:128"
-target triple = "alphaev6-unknown-linux-gnu"
-
-define i128 @__mulvti3(i128 %u, i128 %v) nounwind {
-entry:
-	%0 = load i128* null, align 16		; <i128> [#uses=1]
-	%1 = load i64* null, align 8		; <i64> [#uses=1]
-	%2 = zext i64 %1 to i128		; <i128> [#uses=1]
-	%3 = add i128 %2, %0		; <i128> [#uses=1]
-	store i128 %3, i128* null, align 16
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/2009-07-16-PromoteFloatCompare.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/2009-07-16-PromoteFloatCompare.ll
deleted file mode 100644
index 3b11880..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/2009-07-16-PromoteFloatCompare.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha
-
-define i1 @a(float %x) {
-  %r = fcmp ult float %x, 1.0
-  ret i1 %r
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/add.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/add.ll
deleted file mode 100644
index ad25a34..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/add.ll
+++ /dev/null
@@ -1,179 +0,0 @@
-;test all the shifted and signextending adds and subs with and without consts
-;
-; RUN: llvm-as < %s | llc -march=alpha -o %t.s
-; RUN: grep {	addl} %t.s | count 2
-; RUN: grep {	addq} %t.s | count 2
-; RUN: grep {	subl} %t.s | count 2
-; RUN: grep {	subq} %t.s | count 1
-;
-; RUN: grep {lda \$0,-100(\$16)} %t.s | count 1
-; RUN: grep {s4addl} %t.s | count 2
-; RUN: grep {s8addl} %t.s | count 2
-; RUN: grep {s4addq} %t.s | count 2
-; RUN: grep {s8addq} %t.s | count 2
-;
-; RUN: grep {s4subl} %t.s | count 2
-; RUN: grep {s8subl} %t.s | count 2
-; RUN: grep {s4subq} %t.s | count 2
-; RUN: grep {s8subq} %t.s | count 2
-
-
-define i32 @al(i32 signext %x.s, i32 signext %y.s) signext {
-entry:
-	%tmp.3.s = add i32 %y.s, %x.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i32 @ali(i32 signext %x.s) signext {
-entry:
-	%tmp.3.s = add i32 100, %x.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i64 @aq(i64 signext %x.s, i64 signext %y.s) signext {
-entry:
-	%tmp.3.s = add i64 %y.s, %x.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i64 @aqi(i64 %x.s) {
-entry:
-	%tmp.3.s = add i64 100, %x.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i32 @sl(i32 signext %x.s, i32 signext %y.s) signext {
-entry:
-	%tmp.3.s = sub i32 %y.s, %x.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i32 @sli(i32 signext %x.s) signext {
-entry:
-	%tmp.3.s = sub i32 %x.s, 100		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i64 @sq(i64 %x.s, i64 %y.s) {
-entry:
-	%tmp.3.s = sub i64 %y.s, %x.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i64 @sqi(i64 %x.s) {
-entry:
-	%tmp.3.s = sub i64 %x.s, 100		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i32 @a4l(i32 signext %x.s, i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
-	%tmp.3.s = add i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i32 @a8l(i32 signext %x.s, i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
-	%tmp.3.s = add i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i64 @a4q(i64 %x.s, i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
-	%tmp.3.s = add i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i64 @a8q(i64 %x.s, i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
-	%tmp.3.s = add i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i32 @a4li(i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
-	%tmp.3.s = add i32 100, %tmp.1.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i32 @a8li(i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
-	%tmp.3.s = add i32 100, %tmp.1.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i64 @a4qi(i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
-	%tmp.3.s = add i64 100, %tmp.1.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i64 @a8qi(i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
-	%tmp.3.s = add i64 100, %tmp.1.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i32 @s4l(i32 signext %x.s, i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
-	%tmp.3.s = sub i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i32 @s8l(i32 signext %x.s, i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
-	%tmp.3.s = sub i32 %tmp.1.s, %x.s		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i64 @s4q(i64 %x.s, i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
-	%tmp.3.s = sub i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i64 @s8q(i64 %x.s, i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
-	%tmp.3.s = sub i64 %tmp.1.s, %x.s		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i32 @s4li(i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 2		; <i32> [#uses=1]
-	%tmp.3.s = sub i32 %tmp.1.s, 100		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i32 @s8li(i32 signext %y.s) signext {
-entry:
-	%tmp.1.s = shl i32 %y.s, 3		; <i32> [#uses=1]
-	%tmp.3.s = sub i32 %tmp.1.s, 100		; <i32> [#uses=1]
-	ret i32 %tmp.3.s
-}
-
-define i64 @s4qi(i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 2		; <i64> [#uses=1]
-	%tmp.3.s = sub i64 %tmp.1.s, 100		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
-
-define i64 @s8qi(i64 %y.s) {
-entry:
-	%tmp.1.s = shl i64 %y.s, 3		; <i64> [#uses=1]
-	%tmp.3.s = sub i64 %tmp.1.s, 100		; <i64> [#uses=1]
-	ret i64 %tmp.3.s
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/add128.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/add128.ll
deleted file mode 100644
index 61d0208..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/add128.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-;test for ADDC and ADDE expansion
-;
-; RUN: llvm-as < %s | llc -march=alpha
-
-define i128 @add128(i128 %x, i128 %y) {
-entry:
-	%tmp = add i128 %y, %x
-	ret i128 %tmp
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/bic.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/bic.ll
deleted file mode 100644
index 6e63511..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/bic.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Make sure this testcase codegens to the bic instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep {bic}
-
-define i64 @bar(i64 %x, i64 %y) {
-entry:
-        %tmp.1 = xor i64 %x, -1         ; <i64> [#uses=1]
-        %tmp.2 = and i64 %y, %tmp.1             ; <i64> [#uses=1]
-        ret i64 %tmp.2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/bsr.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/bsr.ll
deleted file mode 100644
index d461857..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/bsr.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; Make sure this testcase codegens the bsr instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep bsr
-
-define internal i64 @abc(i32 %x) {
-        %tmp.2 = add i32 %x, -1         ; <i32> [#uses=1]
-        %tmp.0 = call i64 @abc( i32 %tmp.2 )            ; <i64> [#uses=1]
-        %tmp.5 = add i32 %x, -2         ; <i32> [#uses=1]
-        %tmp.3 = call i64 @abc( i32 %tmp.5 )            ; <i64> [#uses=1]
-        %tmp.6 = add i64 %tmp.0, %tmp.3         ; <i64> [#uses=1]
-        ret i64 %tmp.6
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/call_adj.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/call_adj.ll
deleted file mode 100644
index ee8cda8..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/call_adj.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-;All this should do is not crash
-;RUN: llvm-as < %s | llc -march=alpha
-
-target datalayout = "e-p:64:64"
-target triple = "alphaev67-unknown-linux-gnu"
-
-define void @_ZNSt13basic_filebufIcSt11char_traitsIcEE22_M_convert_to_externalEPcl(i32 %f) {
-entry:
-        %tmp49 = alloca i8, i32 %f              ; <i8*> [#uses=0]
-        %tmp = call i32 null( i8* null, i8* null, i8* null, i8* null, i8* null, i8* null, i8* null )               ; <i32> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/cmov.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/cmov.ll
deleted file mode 100644
index 08e1dad..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/cmov.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | not grep cmovlt
-; RUN: llvm-as < %s | llc -march=alpha | grep cmoveq
-
-define i64 @cmov_lt(i64 %a, i64 %c) {
-entry:
-        %tmp.1 = icmp slt i64 %c, 0             ; <i1> [#uses=1]
-        %retval = select i1 %tmp.1, i64 %a, i64 10              ; <i64> [#uses=1]
-        ret i64 %retval
-}
-
-define i64 @cmov_const(i64 %a, i64 %b, i64 %c) {
-entry:
-        %tmp.1 = icmp slt i64 %a, %b            ; <i1> [#uses=1]
-        %retval = select i1 %tmp.1, i64 %c, i64 10              ; <i64> [#uses=1]
-        ret i64 %retval
-}
-
-define i64 @cmov_lt2(i64 %a, i64 %c) {
-entry:
-        %tmp.1 = icmp sgt i64 %c, 0             ; <i1> [#uses=1]
-        %retval = select i1 %tmp.1, i64 10, i64 %a              ; <i64> [#uses=1]
-        ret i64 %retval
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/cmpbge.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/cmpbge.ll
deleted file mode 100644
index 9b83215..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/cmpbge.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | grep cmpbge | count 2
-
-define i1 @test1(i64 %A, i64 %B) {
-        %C = and i64 %A, 255            ; <i64> [#uses=1]
-        %D = and i64 %B, 255            ; <i64> [#uses=1]
-        %E = icmp uge i64 %C, %D                ; <i1> [#uses=1]
-        ret i1 %E
-}
-
-define i1 @test2(i64 %a, i64 %B) {
-        %A = shl i64 %a, 1              ; <i64> [#uses=1]
-        %C = and i64 %A, 254            ; <i64> [#uses=1]
-        %D = and i64 %B, 255            ; <i64> [#uses=1]
-        %E = icmp uge i64 %C, %D                ; <i1> [#uses=1]
-        ret i1 %E
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/ctlz.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/ctlz.ll
deleted file mode 100644
index 83d97b5..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/ctlz.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; Make sure this testcase codegens to the ctlz instruction
-; RUN: llvm-as < %s | llc -march=alpha -mcpu=ev67 | grep -i ctlz
-; RUN: llvm-as < %s | llc -march=alpha -mattr=+CIX | grep -i ctlz
-; RUN: llvm-as < %s | llc -march=alpha -mcpu=ev6 | not grep -i ctlz
-; RUN: llvm-as < %s | llc -march=alpha -mattr=-CIX | not grep -i ctlz
-
-declare i8 @llvm.ctlz.i8(i8)
-
-define i32 @bar(i8 %x) {
-entry:
-	%tmp.1 = call i8 @llvm.ctlz.i8( i8 %x ) 
-	%tmp.2 = sext i8 %tmp.1 to i32
-	ret i32 %tmp.2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/ctlz_e.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/ctlz_e.ll
deleted file mode 100644
index 56027dd..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/ctlz_e.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; Make sure this testcase does not use ctpop
-; RUN: llvm-as < %s | llc -march=alpha | not grep -i ctpop 
-
-declare i64 @llvm.ctlz.i64(i64)
-
-define i64 @bar(i64 %x) {
-entry:
-        %tmp.1 = call i64 @llvm.ctlz.i64( i64 %x )              ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/ctpop.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/ctpop.ll
deleted file mode 100644
index a528d72..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/ctpop.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; Make sure this testcase codegens to the ctpop instruction
-; RUN: llvm-as < %s | llc -march=alpha -mcpu=ev67 | grep -i ctpop
-; RUN: llvm-as < %s | llc -march=alpha -mattr=+CIX | \
-; RUN:   grep -i ctpop
-; RUN: llvm-as < %s | llc -march=alpha -mcpu=ev6 | \
-; RUN:   not grep -i ctpop
-; RUN: llvm-as < %s | llc -march=alpha -mattr=-CIX | \
-; RUN:   not grep -i ctpop
-
-declare i64 @llvm.ctpop.i64(i64)
-
-define i64 @bar(i64 %x) {
-entry:
-        %tmp.1 = call i64 @llvm.ctpop.i64( i64 %x )             ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/dg.exp b/libclamav/c++/llvm/test/CodeGen/Alpha/dg.exp
deleted file mode 100644
index fb9f710..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target Alpha] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/eqv.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/eqv.ll
deleted file mode 100644
index 2539d72..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/eqv.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; Make sure this testcase codegens to the eqv instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep eqv
-
-define i64 @bar(i64 %x, i64 %y) {
-entry:
-        %tmp.1 = xor i64 %x, -1         ; <i64> [#uses=1]
-        %tmp.2 = xor i64 %y, %tmp.1             ; <i64> [#uses=1]
-        ret i64 %tmp.2
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/i32_sub_1.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/i32_sub_1.ll
deleted file mode 100644
index 7af8134..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/i32_sub_1.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Make sure this testcase codegens to the ctpop instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep -i {subl \$16,1,\$0}
-
-
-define i32 @foo(i32 signext %x) signext {
-entry:
-	%tmp.1 = add i32 %x, -1		; <int> [#uses=1]
-	ret i32 %tmp.1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/illegal-element-type.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/illegal-element-type.ll
deleted file mode 100644
index c95d571..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/illegal-element-type.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | llc -mtriple=alphaev6-unknown-linux-gnu
-
-define void @foo() {
-entry:
-        br label %bb
-
-bb:             ; preds = %bb, %entry
-        br i1 false, label %bb26, label %bb
-
-bb19:           ; preds = %bb26
-        ret void
-
-bb26:           ; preds = %bb
-        br i1 false, label %bb30, label %bb19
-
-bb30:           ; preds = %bb26
-        br label %bb45
-
-bb45:           ; preds = %bb45, %bb30
-        %V.0 = phi <8 x i16> [ %tmp42, %bb45 ], [ zeroinitializer, %bb30 ]     ; <<8 x i16>> [#uses=1]
-        %tmp42 = mul <8 x i16> zeroinitializer, %V.0            ; <<8 x i16>> [#uses=1]
-        br label %bb45
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/jmp_table.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/jmp_table.ll
deleted file mode 100644
index d7b6116..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/jmp_table.ll
+++ /dev/null
@@ -1,99 +0,0 @@
-; try to check that we have the most important instructions, which shouldn't 
-; appear otherwise
-; RUN: llvm-as < %s | llc -march=alpha | grep jmp
-; RUN: llvm-as < %s | llc -march=alpha | grep gprel32
-; RUN: llvm-as < %s | llc -march=alpha | grep ldl
-; RUN: llvm-as < %s | llc -march=alpha | grep rodata
-; END.
-
-target datalayout = "e-p:64:64"
-target triple = "alphaev67-unknown-linux-gnu"
- at str = internal constant [2 x i8] c"1\00"               ; <[2 x i8]*> [#uses=1]
- at str1 = internal constant [2 x i8] c"2\00"              ; <[2 x i8]*> [#uses=1]
- at str2 = internal constant [2 x i8] c"3\00"              ; <[2 x i8]*> [#uses=1]
- at str3 = internal constant [2 x i8] c"4\00"              ; <[2 x i8]*> [#uses=1]
- at str4 = internal constant [2 x i8] c"5\00"              ; <[2 x i8]*> [#uses=1]
- at str5 = internal constant [2 x i8] c"6\00"              ; <[2 x i8]*> [#uses=1]
- at str6 = internal constant [2 x i8] c"7\00"              ; <[2 x i8]*> [#uses=1]
- at str7 = internal constant [2 x i8] c"8\00"              ; <[2 x i8]*> [#uses=1]
-
-define i32 @main(i32 %x, i8** %y) {
-entry:
-        %x_addr = alloca i32            ; <i32*> [#uses=2]
-        %y_addr = alloca i8**           ; <i8***> [#uses=1]
-        %retval = alloca i32, align 4           ; <i32*> [#uses=2]
-        %tmp = alloca i32, align 4              ; <i32*> [#uses=2]
-        %foo = alloca i8*, align 8              ; <i8**> [#uses=9]
-        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
-        store i32 %x, i32* %x_addr
-        store i8** %y, i8*** %y_addr
-        %tmp.upgrd.1 = load i32* %x_addr                ; <i32> [#uses=1]
-        switch i32 %tmp.upgrd.1, label %bb15 [
-                 i32 1, label %bb
-                 i32 2, label %bb1
-                 i32 3, label %bb3
-                 i32 4, label %bb5
-                 i32 5, label %bb7
-                 i32 6, label %bb9
-                 i32 7, label %bb11
-                 i32 8, label %bb13
-        ]
-
-bb:             ; preds = %entry
-        %tmp.upgrd.2 = getelementptr [2 x i8]* @str, i32 0, i64 0               ; <i8*> [#uses=1]
-        store i8* %tmp.upgrd.2, i8** %foo
-        br label %bb16
-
-bb1:            ; preds = %entry
-        %tmp2 = getelementptr [2 x i8]* @str1, i32 0, i64 0             ; <i8*> [#uses=1]
-        store i8* %tmp2, i8** %foo
-        br label %bb16
-
-bb3:            ; preds = %entry
-        %tmp4 = getelementptr [2 x i8]* @str2, i32 0, i64 0             ; <i8*> [#uses=1]
-        store i8* %tmp4, i8** %foo
-        br label %bb16
-
-bb5:            ; preds = %entry
-        %tmp6 = getelementptr [2 x i8]* @str3, i32 0, i64 0             ; <i8*> [#uses=1]
-        store i8* %tmp6, i8** %foo
-        br label %bb16
-
-bb7:            ; preds = %entry
-        %tmp8 = getelementptr [2 x i8]* @str4, i32 0, i64 0             ; <i8*> [#uses=1]
-        store i8* %tmp8, i8** %foo
-        br label %bb16
-
-bb9:            ; preds = %entry
-        %tmp10 = getelementptr [2 x i8]* @str5, i32 0, i64 0            ; <i8*> [#uses=1]
-        store i8* %tmp10, i8** %foo
-        br label %bb16
-
-bb11:           ; preds = %entry
-        %tmp12 = getelementptr [2 x i8]* @str6, i32 0, i64 0            ; <i8*> [#uses=1]
-        store i8* %tmp12, i8** %foo
-        br label %bb16
-
-bb13:           ; preds = %entry
-        %tmp14 = getelementptr [2 x i8]* @str7, i32 0, i64 0            ; <i8*> [#uses=1]
-        store i8* %tmp14, i8** %foo
-        br label %bb16
-
-bb15:           ; preds = %entry
-        br label %bb16
-
-bb16:           ; preds = %bb15, %bb13, %bb11, %bb9, %bb7, %bb5, %bb3, %bb1, %bb
-        %tmp17 = load i8** %foo         ; <i8*> [#uses=1]
-        %tmp18 = call i32 (...)* @print( i8* %tmp17 )           ; <i32> [#uses=0]
-        store i32 0, i32* %tmp
-        %tmp19 = load i32* %tmp         ; <i32> [#uses=1]
-        store i32 %tmp19, i32* %retval
-        br label %return
-
-return:         ; preds = %bb16
-        %retval.upgrd.3 = load i32* %retval             ; <i32> [#uses=1]
-        ret i32 %retval.upgrd.3
-}
-
-declare i32 @print(...)
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/mb.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/mb.ll
deleted file mode 100644
index 50c245f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/mb.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | grep mb
-
-declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1)
-
-define void @test() {
-	call void @llvm.memory.barrier( i1 true, i1 true, i1 true, i1 true , i1 true)
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/mul128.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/mul128.ll
deleted file mode 100644
index b069fea..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/mul128.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha
-
-define i128 @__mulvdi3(i128 %a, i128 %b) nounwind {
-entry:
-        %r = mul i128 %a, %b
-        ret i128 %r
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/mul5.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/mul5.ll
deleted file mode 100644
index 5af73a1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/mul5.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; Make sure this testcase does not use mulq
-; RUN: llvm-as < %s | llc -march=alpha | not grep -i mul
-
-define i64 @foo1(i64 %x) {
-entry:
-        %tmp.1 = mul i64 %x, 9          ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
-define i64 @foo3(i64 %x) {
-entry:
-        %tmp.1 = mul i64 %x, 259                ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
-define i64 @foo4l(i64 %x) {
-entry:
-        %tmp.1 = mul i64 %x, 260                ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
-define i64 @foo8l(i64 %x) {
-entry:
-        %tmp.1 = mul i64 %x, 768                ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
-define i64 @bar(i64 %x) {
-entry:
-        %tmp.1 = mul i64 %x, 5          ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/neg1.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/neg1.ll
deleted file mode 100644
index ddaed4a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/neg1.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; Make sure this testcase codegens to the lda -1 instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep {\\-1}
-
-define i64 @bar() {
-entry:
-	ret i64 -1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/not.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/not.ll
deleted file mode 100644
index cea9f6b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/not.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; Make sure this testcase codegens to the ornot instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep eqv
-
-define i64 @bar(i64 %x) {
-entry:
-        %tmp.1 = xor i64 %x, -1         ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/ornot.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/ornot.ll
deleted file mode 100644
index b8d350d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/ornot.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; Make sure this testcase codegens to the ornot instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep ornot
-
-define i64 @bar(i64 %x, i64 %y) {
-entry:
-        %tmp.1 = xor i64 %x, -1         ; <i64> [#uses=1]
-        %tmp.2 = or i64 %y, %tmp.1              ; <i64> [#uses=1]
-        ret i64 %tmp.2
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/private.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/private.ll
deleted file mode 100644
index 2d9ed1e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/private.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; Test to make sure that the 'private' is used correctly.
-;
-; RUN: llvm-as < %s | llc -march=alpha > %t
-; RUN: grep \\\$foo: %t
-; RUN: grep bsr.*\\\$\\\$foo %t
-; RUN: grep \\\$baz: %t
-; RUN: grep ldah.*\\\$baz %t
-
-declare void @foo()
-
-define private void @foo() {
-        ret void
-}
-
- at baz = private global i32 4;
-
-define i32 @bar() {
-        call void @foo()
-	%1 = load i32* @baz, align 4
-        ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/rpcc.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/rpcc.ll
deleted file mode 100644
index 193a47f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/rpcc.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | grep rpcc
-
-declare i64 @llvm.readcyclecounter()
-
-define i64 @foo() {
-entry:
-        %tmp.1 = call i64 @llvm.readcyclecounter( )             ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/srl_and.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/srl_and.ll
deleted file mode 100644
index 2344833..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/srl_and.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; Make sure this testcase codegens to the zapnot instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep zapnot
-
-define i64 @foo(i64 %y) {
-entry:
-        %tmp = lshr i64 %y, 3           ; <i64> [#uses=1]
-        %tmp2 = and i64 %tmp, 8191              ; <i64> [#uses=1]
-        ret i64 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/sub128.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/sub128.ll
deleted file mode 100644
index cb18559..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/sub128.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-;test for SUBC and SUBE expansion
-;
-; RUN: llvm-as < %s | llc -march=alpha
-
-define i128 @sub128(i128 %x, i128 %y) {
-entry:
-	%tmp = sub i128 %y, %x
-	ret i128 %tmp
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/weak.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/weak.ll
deleted file mode 100644
index e00e6d7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/weak.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | grep .weak.*f
-; RUN: llvm-as < %s | llc -march=alpha | grep .weak.*h
-
-define weak i32 @f() {
-entry:
-        unreachable
-}
-
-define void @g() {
-entry:
-        tail call void @h( )
-        ret void
-}
-
-declare extern_weak void @h()
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/wmb.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/wmb.ll
deleted file mode 100644
index f745cd5..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/wmb.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | grep wmb
-
-declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1)
-
-define void @test() {
-	call void @llvm.memory.barrier( i1 false, i1 false, i1 false, i1 true , i1 true)
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot.ll
deleted file mode 100644
index 7fec19b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Make sure this testcase codegens to the bic instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep zapnot
-
-
-define i16 @foo(i64 %y) zeroext {
-entry:
-        %tmp.1 = trunc i64 %y to i16         ; <ushort> [#uses=1]
-        ret i16 %tmp.1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot2.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot2.ll
deleted file mode 100644
index 6a33ca2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot2.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Make sure this testcase codegens to the zapnot instruction
-; RUN: llvm-as < %s | llc -march=alpha | grep zapnot
-
-define i64 @bar(i64 %x) {
-entry:
-        %tmp.1 = and i64 %x, 16711935           ; <i64> [#uses=1]
-        ret i64 %tmp.1
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot3.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot3.ll
deleted file mode 100644
index 26aab37..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot3.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | grep zapnot
-
-;demanded bits mess up this mask in a hard to fix way
-;define i64 @foo(i64 %y) {
-;        %tmp = and i64 %y,  65535
-;        %tmp2 = shr i64 %tmp,  i8 3
-;        ret i64 %tmp2
-;}
-
-define i64 @foo2(i64 %y) {
-        %tmp = lshr i64 %y, 3           ; <i64> [#uses=1]
-        %tmp2 = and i64 %tmp, 8191              ; <i64> [#uses=1]
-        ret i64 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot4.ll b/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot4.ll
deleted file mode 100644
index 1be3ca2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Alpha/zapnot4.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=alpha | grep zapnot
-
-define i64 @foo(i64 %y) {
-        %tmp = shl i64 %y, 3            ; <i64> [#uses=1]
-        %tmp2 = and i64 %tmp, 65535             ; <i64> [#uses=1]
-        ret i64 %tmp2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-04-LowerExtract-Live.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-04-LowerExtract-Live.ll
deleted file mode 100644
index 58076f9..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-04-LowerExtract-Live.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -join-liveintervals=0 -verify-machineinstrs
-
-; Provoke an error in LowerSubregsPass::LowerExtract where the live range of a
-; super-register is illegally extended.
-
-define i16 @f(i16 %x1, i16 %x2, i16 %x3, i16 %x4) {
-  %y1 = add i16 %x1, 1
-  %y2 = add i16 %x2, 2
-  %y3 = add i16 %x3, 3
-  %y4 = add i16 %x4, 4
-  %z12 = add i16 %y1, %y2
-  %z34 = add i16 %y3, %y4
-  %p = add i16 %z12, %z34
-  ret i16 %p
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-11-RegScavenger-CSR.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-11-RegScavenger-CSR.ll
deleted file mode 100644
index ae08f0f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-11-RegScavenger-CSR.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-declare i64 @llvm.cttz.i64(i64) nounwind readnone
-
-declare i16 @llvm.cttz.i16(i16) nounwind readnone
-
-declare i8 @llvm.cttz.i8(i8) nounwind readnone
-
-define void @cttztest(i8 %A, i16 %B, i32 %C, i64 %D, i8* %AP, i16* %BP, i32* %CP, i64* %DP) {
-	%a = call i8 @llvm.cttz.i8(i8 %A)		; <i8> [#uses=1]
-	%b = call i16 @llvm.cttz.i16(i16 %B)		; <i16> [#uses=1]
-	%d = call i64 @llvm.cttz.i64(i64 %D)		; <i64> [#uses=1]
-	store i8 %a, i8* %AP
-	store i16 %b, i16* %BP
-	store i64 %d, i64* %DP
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-LiveIn-SubReg.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-LiveIn-SubReg.ll
deleted file mode 100644
index 3cf00cf..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-LiveIn-SubReg.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-; XFAIL: *
-
-; When joining live intervals of sub-registers, an MBB live-in list is not
-; updated properly. The register scavenger asserts on an undefined register.
-
-define i32 @foo(i8 %bar) {
-entry:
-  switch i8 %bar, label %bb1203 [
-    i8 117, label %bb1204
-    i8 85, label %bb1204
-    i8 106, label %bb1204
-  ]
-
-bb1203:                                           ; preds = %entry
-  ret i32 1
-
-bb1204:                                           ; preds = %entry, %entry, %entry
-  ret i32 2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-MissingDead.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-MissingDead.ll
deleted file mode 100644
index 656cd33..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-MissingDead.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-; LocalRewriter can forget to transfer a <def,dead> flag when setting up call
-; argument registers. This then causes register scavenger asserts.
-
-declare i32 @printf(i8*, i32, float)
-
-define i32 @testissue(i32 %i, float %x, float %y) {
-  br label %bb1
-
-bb1:                                              ; preds = %bb1, %0
-  %x2 = fmul float %x, 5.000000e-01               ; <float> [#uses=1]
-  %y2 = fmul float %y, 0x3FECCCCCC0000000         ; <float> [#uses=1]
-  %z2 = fadd float %x2, %y2                       ; <float> [#uses=1]
-  %z3 = fadd float undef, %z2                     ; <float> [#uses=1]
-  %i1 = shl i32 %i, 3                             ; <i32> [#uses=1]
-  %j1 = add i32 %i, 7                             ; <i32> [#uses=1]
-  %m1 = add i32 %i1, %j1                          ; <i32> [#uses=2]
-  %b = icmp sle i32 %m1, 6                        ; <i1> [#uses=1]
-  br i1 %b, label %bb1, label %bb2
-
-bb2:                                              ; preds = %bb1
-  %1 = call i32 @printf(i8* undef, i32 %m1, float %z3); <i32> [#uses=0]
-  ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-SetCC-Undef.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-SetCC-Undef.ll
deleted file mode 100644
index fbc3986..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/2009-08-15-SetCC-Undef.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-; XFAIL: *
-
-; An undef argument causes a setugt node to escape instruction selection.
-
-define void @bugt() {
-cond_next305:
-  %tmp306307 = trunc i32 undef to i8              ; <i8> [#uses=1]
-  %tmp308 = icmp ugt i8 %tmp306307, 6             ; <i1> [#uses=1]
-  br i1 %tmp308, label %bb311, label %bb314
-
-bb311:                                            ; preds = %cond_next305
-  unreachable
-
-bb314:                                            ; preds = %cond_next305
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/add-overflow.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/add-overflow.ll
deleted file mode 100644
index de80783..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/add-overflow.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
-	type { i24, i1 }		; type %0
-
-define i1 @func2(i24 zeroext %v1, i24 zeroext %v2) nounwind {
-entry:
-	%t = call %0 @llvm.uadd.with.overflow.i24(i24 %v1, i24 %v2)		; <%0> [#uses=1]
-	%obit = extractvalue %0 %t, 1		; <i1> [#uses=1]
-	br i1 %obit, label %carry, label %normal
-
-normal:		; preds = %entry
-	ret i1 true
-
-carry:		; preds = %entry
-	ret i1 false
-}
-
-declare %0 @llvm.uadd.with.overflow.i24(i24, i24) nounwind
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/add.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/add.ll
deleted file mode 100644
index 267f309..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/add.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-define i32 @add(i32 %A, i32 %B) {
-	%R = add i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/addsub-i128.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/addsub-i128.ll
deleted file mode 100644
index f0934e9..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/addsub-i128.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-; These functions have just the right size to annoy the register scavenger: They
-; use all the scratch registers, but not all the callee-saved registers.
-
-define void @test_add(i64 %AL, i64 %AH, i64 %BL, i64 %BH, i64* %RL, i64* %RH) {
-entry:
-	%tmp1 = zext i64 %AL to i128		; <i128> [#uses=1]
-	%tmp23 = zext i64 %AH to i128		; <i128> [#uses=1]
-	%tmp4 = shl i128 %tmp23, 64		; <i128> [#uses=1]
-	%tmp5 = or i128 %tmp4, %tmp1		; <i128> [#uses=1]
-	%tmp67 = zext i64 %BL to i128		; <i128> [#uses=1]
-	%tmp89 = zext i64 %BH to i128		; <i128> [#uses=1]
-	%tmp11 = shl i128 %tmp89, 64		; <i128> [#uses=1]
-	%tmp12 = or i128 %tmp11, %tmp67		; <i128> [#uses=1]
-	%tmp15 = add i128 %tmp12, %tmp5		; <i128> [#uses=2]
-	%tmp1617 = trunc i128 %tmp15 to i64		; <i64> [#uses=1]
-	store i64 %tmp1617, i64* %RL
-	%tmp21 = lshr i128 %tmp15, 64		; <i128> [#uses=1]
-	%tmp2122 = trunc i128 %tmp21 to i64		; <i64> [#uses=1]
-	store i64 %tmp2122, i64* %RH
-	ret void
-}
-
-define void @test_sub(i64 %AL, i64 %AH, i64 %BL, i64 %BH, i64* %RL, i64* %RH) {
-entry:
-	%tmp1 = zext i64 %AL to i128		; <i128> [#uses=1]
-	%tmp23 = zext i64 %AH to i128		; <i128> [#uses=1]
-	%tmp4 = shl i128 %tmp23, 64		; <i128> [#uses=1]
-	%tmp5 = or i128 %tmp4, %tmp1		; <i128> [#uses=1]
-	%tmp67 = zext i64 %BL to i128		; <i128> [#uses=1]
-	%tmp89 = zext i64 %BH to i128		; <i128> [#uses=1]
-	%tmp11 = shl i128 %tmp89, 64		; <i128> [#uses=1]
-	%tmp12 = or i128 %tmp11, %tmp67		; <i128> [#uses=1]
-	%tmp15 = sub i128 %tmp5, %tmp12		; <i128> [#uses=2]
-	%tmp1617 = trunc i128 %tmp15 to i64		; <i64> [#uses=1]
-	store i64 %tmp1617, i64* %RL
-	%tmp21 = lshr i128 %tmp15, 64		; <i128> [#uses=1]
-	%tmp2122 = trunc i128 %tmp21 to i64		; <i64> [#uses=1]
-	store i64 %tmp2122, i64* %RH
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i1.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i1.ll
deleted file mode 100644
index 1c0c72a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i1.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin > %t
-
-define i1 @add(i1 %A, i1 %B) {
-	%R = add i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @sub(i1 %A, i1 %B) {
-	%R = sub i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @mul(i1 %A, i1 %B) {
-	%R = mul i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @sdiv(i1 %A, i1 %B) {
-	%R = sdiv i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @udiv(i1 %A, i1 %B) {
-	%R = udiv i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @srem(i1 %A, i1 %B) {
-	%R = srem i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @urem(i1 %A, i1 %B) {
-	%R = urem i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @and(i1 %A, i1 %B) {
-	%R = and i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @or(i1 %A, i1 %B) {
-	%R = or i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
-
-define i1 @xor(i1 %A, i1 %B) {
-	%R = xor i1 %A, %B		; <i1> [#uses=1]
-	ret i1 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i16.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i16.ll
deleted file mode 100644
index d850631..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i16.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-define i16 @add(i16 %A, i16 %B) {
-	%R = add i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @sub(i16 %A, i16 %B) {
-	%R = sub i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @mul(i16 %A, i16 %B) {
-	%R = mul i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @sdiv(i16 %A, i16 %B) {
-	%R = sdiv i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @udiv(i16 %A, i16 %B) {
-	%R = udiv i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @srem(i16 %A, i16 %B) {
-	%R = srem i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @urem(i16 %A, i16 %B) {
-	%R = urem i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i32.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i32.ll
deleted file mode 100644
index 3a9377c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i32.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-define i32 @add(i32 %A, i32 %B) {
-	%R = add i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @sub(i32 %A, i32 %B) {
-	%R = sub i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @mul(i32 %A, i32 %B) {
-	%R = mul i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @sdiv(i32 %A, i32 %B) {
-	%R = sdiv i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @udiv(i32 %A, i32 %B) {
-	%R = udiv i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @srem(i32 %A, i32 %B) {
-	%R = srem i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @urem(i32 %A, i32 %B) {
-	%R = urem i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @and(i32 %A, i32 %B) {
-	%R = and i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @or(i32 %A, i32 %B) {
-	%R = or i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @xor(i32 %A, i32 %B) {
-	%R = xor i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i64.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i64.ll
deleted file mode 100644
index 32dfc1c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i64.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-define i64 @add(i64 %A, i64 %B) {
-	%R = add i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @sub(i64 %A, i64 %B) {
-	%R = sub i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @mul(i64 %A, i64 %B) {
-	%R = mul i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @sdiv(i64 %A, i64 %B) {
-	%R = sdiv i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @udiv(i64 %A, i64 %B) {
-	%R = udiv i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @srem(i64 %A, i64 %B) {
-	%R = srem i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @urem(i64 %A, i64 %B) {
-	%R = urem i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @and(i64 %A, i64 %B) {
-	%R = and i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @or(i64 %A, i64 %B) {
-	%R = or i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
-
-define i64 @xor(i64 %A, i64 %B) {
-	%R = xor i64 %A, %B		; <i64> [#uses=1]
-	ret i64 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i8.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i8.ll
deleted file mode 100644
index 7338d46..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/basic-i8.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-define i8 @add(i8 %A, i8 %B) {
-	%R = add i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @sub(i8 %A, i8 %B) {
-	%R = sub i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @mul(i8 %A, i8 %B) {
-	%R = mul i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @sdiv(i8 %A, i8 %B) {
-	%R = sdiv i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @udiv(i8 %A, i8 %B) {
-	%R = udiv i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @srem(i8 %A, i8 %B) {
-	%R = srem i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @urem(i8 %A, i8 %B) {
-	%R = urem i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @and(i8 %A, i8 %B) {
-	%R = and i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @or(i8 %A, i8 %B) {
-	%R = or i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
-
-define i8 @xor(i8 %A, i8 %B) {
-	%R = xor i8 %A, %B		; <i8> [#uses=1]
-	ret i8 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/basictest.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/basictest.ll
deleted file mode 100644
index 09a389d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/basictest.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-define void @void(i32, i32) {
-        add i32 0, 0            ; <i32>:3 [#uses=2]
-        sub i32 0, 4            ; <i32>:4 [#uses=2]
-        br label %5
-
-; <label>:5             ; preds = %5, %2
-        add i32 %0, %1          ; <i32>:6 [#uses=2]
-        sub i32 %6, %4          ; <i32>:7 [#uses=1]
-        icmp sle i32 %7, %3             ; <i1>:8 [#uses=1]
-        br i1 %8, label %9, label %5
-
-; <label>:9             ; preds = %5
-        add i32 %0, %1          ; <i32>:10 [#uses=0]
-        sub i32 %6, %4          ; <i32>:11 [#uses=1]
-        icmp sle i32 %11, %3            ; <i1>:12 [#uses=0]
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/burg.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/burg.ll
deleted file mode 100644
index fb5f74b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/burg.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
-	%IntList = type %struct.intlist*
-	%ReadFn = type i32 ()*
-	%YYSTYPE = type { %IntList }
-	%struct.intlist = type { i32, %IntList }
- at yyval = external global %YYSTYPE		; <%YYSTYPE*> [#uses=1]
-
-define i32 @yyparse() {
-bb0:
-	%reg254 = load i16* null		; <i16> [#uses=1]
-	%reg254-idxcast = sext i16 %reg254 to i64		; <i64> [#uses=1]
-	%reg254-idxcast-scale = mul i64 %reg254-idxcast, -1		; <i64> [#uses=1]
-	%reg254-idxcast-scale-offset = add i64 %reg254-idxcast-scale, 1		; <i64> [#uses=1]
-	%reg261.idx1 = getelementptr %YYSTYPE* null, i64 %reg254-idxcast-scale-offset, i32 0		; <%IntList*> [#uses=1]
-	%reg261 = load %IntList* %reg261.idx1		; <%IntList> [#uses=1]
-	store %IntList %reg261, %IntList* getelementptr (%YYSTYPE* @yyval, i64 0, i32 0)
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/cmp-small-imm.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/cmp-small-imm.ll
deleted file mode 100644
index ed285a7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/cmp-small-imm.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin > %t
-
-define i1 @cmp3(i32 %A) {
-	%R = icmp uge i32 %A, 2
-	ret i1 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/cmp64.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/cmp64.ll
deleted file mode 100644
index c5c5f7e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/cmp64.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-; This test tries to use a JustCC register as a data operand for MOVEcc.  It
-; calls copyRegToReg(JustCC -> DP), failing because JustCC can only be copied to
-; D.  The proper solution would be to restrict the virtual register to D only.
-
-define i32 @main() {
-entry:
-	br label %loopentry
-
-loopentry:
-	%done = icmp sle i64 undef, 5
-	br i1 %done, label %loopentry, label %exit.1
-
-exit.1:
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/ct32.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/ct32.ll
deleted file mode 100644
index ab5b12f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/ct32.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-declare i32 @llvm.ctlz.i32(i32)
-declare i32 @llvm.cttz.i32(i32)
-declare i32 @llvm.ctpop.i32(i32)
-
-define i32 @ctlztest(i32 %B) {
-	%b = call i32 @llvm.ctlz.i32( i32 %B )
-	ret i32 %b;
-}
-
-define i32 @cttztest(i32 %B) {
-	%b = call i32 @llvm.cttz.i32( i32 %B )
-	ret i32 %b;
-}
-
-define i32 @ctpoptest(i32 %B) {
-	%b = call i32 @llvm.ctpop.i32( i32 %B )
-	ret i32 %b;
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/ct64.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/ct64.ll
deleted file mode 100644
index 43cde5e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/ct64.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-declare i64 @llvm.ctlz.i64(i64)
-declare i64 @llvm.cttz.i64(i64)
-declare i64 @llvm.ctpop.i64(i64)
-
-define i64 @ctlztest(i64 %B) {
-	%b = call i64 @llvm.ctlz.i64( i64 %B )
-	ret i64 %b;
-}
-
-define i64 @cttztest(i64 %B) {
-	%b = call i64 @llvm.cttz.i64( i64 %B )
-	ret i64 %b;
-}
-
-define i64 @ctpoptest(i64 %B) {
-	%b = call i64 @llvm.ctpop.i64( i64 %B )
-	ret i64 %b;
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/ctlz16.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/ctlz16.ll
deleted file mode 100644
index 039ffbd..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/ctlz16.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-declare i16 @llvm.ctlz.i16(i16)
-
-define i16 @ctlztest(i16 %B) {
-	%b = call i16 @llvm.ctlz.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-define i16 @ctlztest_z(i16 zeroext %B) {
-	%b = call i16 @llvm.ctlz.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-
-define i16 @ctlztest_s(i16 signext %B) {
-	%b = call i16 @llvm.ctlz.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/ctlz64.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/ctlz64.ll
deleted file mode 100644
index 276b1d5..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/ctlz64.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
- at .str = external constant [14 x i8]		; <[14 x i8]*> [#uses=1]
-
-define i32 @main(i64 %arg) nounwind {
-entry:
-	%tmp47 = tail call i64 @llvm.cttz.i64(i64 %arg)		; <i64> [#uses=1]
-	%tmp48 = trunc i64 %tmp47 to i32		; <i32> [#uses=1]
-	%tmp40 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([14 x i8]* @.str, i32 0, i32 0), i64 %arg, i32 0, i32 %tmp48, i32 0) nounwind		; <i32> [#uses=0]
-	ret i32 0
-}
-
-declare i32 @printf(i8* noalias, ...) nounwind
-
-declare i64 @llvm.cttz.i64(i64) nounwind readnone
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/ctpop16.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/ctpop16.ll
deleted file mode 100644
index cb06aa2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/ctpop16.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-declare i16 @llvm.ctpop.i16(i16)
-
-define i16 @ctpoptest(i16 %B) {
-	%b = call i16 @llvm.ctpop.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-define i16 @ctpoptest_z(i16 zeroext %B) {
-	%b = call i16 @llvm.ctpop.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-
-define i16 @ctpoptest_s(i16 signext %B) {
-	%b = call i16 @llvm.ctpop.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/cttz16.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/cttz16.ll
deleted file mode 100644
index a76cd36..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/cttz16.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-declare i16 @llvm.cttz.i16(i16)
-
-define i16 @cttztest(i16 %B) {
-	%b = call i16 @llvm.cttz.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-define i16 @cttztest_z(i16 zeroext %B) {
-	%b = call i16 @llvm.cttz.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-
-define i16 @cttztest_s(i16 signext %B) {
-	%b = call i16 @llvm.cttz.i16( i16 %B )		; <i16> [#uses=1]
-	ret i16 %b;
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/cycles.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/cycles.ll
deleted file mode 100644
index 745e259..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/cycles.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin | FileCheck %s
-
-declare i64 @llvm.readcyclecounter()
-
-; CHECK: cycles
-; CHECK: cycles2
-define i64 @cyc64() {
-	%tmp.1 = call i64 @llvm.readcyclecounter()
-	ret i64 %tmp.1
-}
-
-; CHECK: cycles
-define i32 at cyc32() {
-	%tmp.1 = call i64 @llvm.readcyclecounter()
-        %s = trunc i64 %tmp.1 to i32
-	ret i32 %s
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/dg.exp b/libclamav/c++/llvm/test/CodeGen/Blackfin/dg.exp
deleted file mode 100644
index 5fdbe5f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target Blackfin] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/double-cast.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/double-cast.ll
deleted file mode 100644
index 774615f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/double-cast.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-declare i32 @printf(i8*, ...)
-
-define i32 @main() {
-	%1 = call i32 (i8*, ...)* @printf(i8* undef, double undef)
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/frameindex.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/frameindex.ll
deleted file mode 100644
index 34ca3eb..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/frameindex.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-declare i32 @SIM(i8*, i8*, i32, i32, i32, [256 x i32]*, i32, i32, i32)
-
-define void @foo() {
-bb0:
-	%V = alloca [256 x i32], i32 256		; <[256 x i32]*> [#uses=1]
-	%0 = call i32 @SIM(i8* null, i8* null, i32 0, i32 0, i32 0, [256 x i32]* %V, i32 0, i32 0, i32 2)		; <i32> [#uses=0]
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i17mem.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i17mem.ll
deleted file mode 100644
index 6a3b394..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i17mem.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
- at i17_l = external global i17		; <i17*> [#uses=1]
- at i17_s = external global i17		; <i17*> [#uses=1]
-
-define void @i17_ls() nounwind  {
-	%tmp = load i17* @i17_l		; <i17> [#uses=1]
-	store i17 %tmp, i17* @i17_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i1mem.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i1mem.ll
deleted file mode 100644
index 97bc035..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i1mem.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
- at i1_l = external global i1		; <i1*> [#uses=1]
- at i1_s = external global i1		; <i1*> [#uses=1]
-
-define void @i1_ls() nounwind  {
-	%tmp = load i1* @i1_l		; <i1> [#uses=1]
-	store i1 %tmp, i1* @i1_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i1ops.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i1ops.ll
deleted file mode 100644
index 0bbd198..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i1ops.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-define i32 @adj(i32 %d.1, i32 %ct.1) {
-entry:
-	%tmp.22.not = trunc i32 %ct.1 to i1		; <i1> [#uses=1]
-	%tmp.221 = xor i1 %tmp.22.not, true		; <i1> [#uses=1]
-	%tmp.26 = or i1 false, %tmp.221		; <i1> [#uses=1]
-	%tmp.27 = zext i1 %tmp.26 to i32		; <i32> [#uses=1]
-	ret i32 %tmp.27
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i216mem.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i216mem.ll
deleted file mode 100644
index 085dc15..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i216mem.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
- at i216_l = external global i216		; <i216*> [#uses=1]
- at i216_s = external global i216		; <i216*> [#uses=1]
-
-define void @i216_ls() nounwind  {
-	%tmp = load i216* @i216_l		; <i216> [#uses=1]
-	store i216 %tmp, i216* @i216_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i248mem.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i248mem.ll
deleted file mode 100644
index 7dde2a1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i248mem.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
- at i248_l = external global i248		; <i248*> [#uses=1]
- at i248_s = external global i248		; <i248*> [#uses=1]
-
-define void @i248_ls() nounwind  {
-	%tmp = load i248* @i248_l		; <i248> [#uses=1]
-	store i248 %tmp, i248* @i248_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i256mem.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i256mem.ll
deleted file mode 100644
index 6a3b394..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i256mem.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
- at i17_l = external global i17		; <i17*> [#uses=1]
- at i17_s = external global i17		; <i17*> [#uses=1]
-
-define void @i17_ls() nounwind  {
-	%tmp = load i17* @i17_l		; <i17> [#uses=1]
-	store i17 %tmp, i17* @i17_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i256param.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i256param.ll
deleted file mode 100644
index 85a74fa..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i256param.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
- at i256_s = external global i256		; <i256*> [#uses=1]
-
-define void @i256_ls(i256 %x) nounwind  {
-	store i256 %x, i256* @i256_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i56param.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i56param.ll
deleted file mode 100644
index a03c182..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i56param.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
- at i56_l = external global i56		; <i56*> [#uses=1]
- at i56_s = external global i56		; <i56*> [#uses=1]
-
-define void @i56_ls(i56 %x) nounwind  {
-	store i56 %x, i56* @i56_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/i8mem.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/i8mem.ll
deleted file mode 100644
index 967a86f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/i8mem.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
- at i8_l = external global i8		; <i8*> [#uses=1]
- at i8_s = external global i8		; <i8*> [#uses=1]
-
-define void @i8_ls() nounwind  {
-	%tmp = load i8* @i8_l		; <i8> [#uses=1]
-	store i8 %tmp, i8* @i8_s
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/inline-asm.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/inline-asm.ll
deleted file mode 100644
index ee8fbb0..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/inline-asm.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin | FileCheck %s
-
-; Standard "r"
-; CHECK: r0 = r0 + r1;
-define i32 @add_r(i32 %A, i32 %B) {
-	%R = call i32 asm "$0 = $1 + $2;", "=r,r,r"( i32 %A, i32 %B ) nounwind
-	ret i32 %R
-}
-
-; Target "d"
-; CHECK: r0 = r0 - r1;
-define i32 @add_d(i32 %A, i32 %B) {
-	%R = call i32 asm "$0 = $1 - $2;", "=d,d,d"( i32 %A, i32 %B ) nounwind
-	ret i32 %R
-}
-
-; Target "a" for P-regs
-; CHECK: p0 = (p0 + p1) << 1;
-define i32 @add_a(i32 %A, i32 %B) {
-	%R = call i32 asm "$0 = ($1 + $2) << 1;", "=a,a,a"( i32 %A, i32 %B ) nounwind
-	ret i32 %R
-}
-
-; Target "z" for P0, P1, P2. This is not a real regclass
-; CHECK: p0 = (p0 + p1) << 2;
-define i32 @add_Z(i32 %A, i32 %B) {
-	%R = call i32 asm "$0 = ($1 + $2) << 2;", "=z,z,z"( i32 %A, i32 %B ) nounwind
-	ret i32 %R
-}
-
-; Target "C" for CC. This is a single register
-; CHECK: cc = p0 < p1;
-; CHECK: r0 = cc;
-define i32 @add_C(i32 %A, i32 %B) {
-	%R = call i32 asm "$0 = $1 < $2;", "=C,z,z"( i32 %A, i32 %B ) nounwind
-	ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/int-setcc.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/int-setcc.ll
deleted file mode 100644
index e1f822b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/int-setcc.ll
+++ /dev/null
@@ -1,80 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
-define fastcc void @Evaluate() {
-entry:
-	br i1 false, label %cond_false186, label %cond_true
-
-cond_true:		; preds = %entry
-	ret void
-
-cond_false186:		; preds = %entry
-	br i1 false, label %cond_true293, label %bb203
-
-bb203:		; preds = %cond_false186
-	ret void
-
-cond_true293:		; preds = %cond_false186
-	br i1 false, label %cond_true298, label %cond_next317
-
-cond_true298:		; preds = %cond_true293
-	br i1 false, label %cond_next518, label %cond_true397.preheader
-
-cond_next317:		; preds = %cond_true293
-	ret void
-
-cond_true397.preheader:		; preds = %cond_true298
-	ret void
-
-cond_next518:		; preds = %cond_true298
-	br i1 false, label %bb1069, label %cond_true522
-
-cond_true522:		; preds = %cond_next518
-	ret void
-
-bb1069:		; preds = %cond_next518
-	br i1 false, label %cond_next1131, label %bb1096
-
-bb1096:		; preds = %bb1069
-	ret void
-
-cond_next1131:		; preds = %bb1069
-	br i1 false, label %cond_next1207, label %cond_true1150
-
-cond_true1150:		; preds = %cond_next1131
-	ret void
-
-cond_next1207:		; preds = %cond_next1131
-	br i1 false, label %cond_next1219, label %cond_true1211
-
-cond_true1211:		; preds = %cond_next1207
-	ret void
-
-cond_next1219:		; preds = %cond_next1207
-	br i1 false, label %cond_true1223, label %cond_next1283
-
-cond_true1223:		; preds = %cond_next1219
-	br i1 false, label %cond_true1254, label %cond_true1264
-
-cond_true1254:		; preds = %cond_true1223
-	br i1 false, label %bb1567, label %cond_true1369.preheader
-
-cond_true1264:		; preds = %cond_true1223
-	ret void
-
-cond_next1283:		; preds = %cond_next1219
-	ret void
-
-cond_true1369.preheader:		; preds = %cond_true1254
-	ret void
-
-bb1567:		; preds = %cond_true1254
-	%tmp1605 = load i8* null		; <i8> [#uses=1]
-	%tmp1606 = icmp eq i8 %tmp1605, 0		; <i1> [#uses=1]
-	br i1 %tmp1606, label %cond_next1637, label %cond_true1607
-
-cond_true1607:		; preds = %bb1567
-	ret void
-
-cond_next1637:		; preds = %bb1567
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/invalid-apint.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/invalid-apint.ll
deleted file mode 100644
index bc3bbb3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/invalid-apint.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-; Assertion failed: (width < BitWidth && "Invalid APInt Truncate request"),
-; function trunc, file APInt.cpp, line 956.
-
- at str2 = external global [29 x i8]
-
-define void @printArgsNoRet(i32 %a1, float %a2, i8 %a3, double %a4, i8* %a5, i32 %a6, float %a7, i8 %a8, double %a9, i8* %a10, i32 %a11, float %a12, i8 %a13, double %a14, i8* %a15) {
-entry:
-	%tmp17 = sext i8 %a13 to i32
-	%tmp23 = call i32 (i8*, ...)* @printf(i8* getelementptr ([29 x i8]* @str2, i32 0, i64 0), i32 %a11, double 0.000000e+00, i32 %tmp17, double %a14, i32 0)
-	ret void
-}
-
-declare i32 @printf(i8*, ...)
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/jumptable.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/jumptable.ll
deleted file mode 100644
index 62b5831..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/jumptable.ll
+++ /dev/null
@@ -1,53 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs | FileCheck %s
-
-; CHECK: .section .rodata
-; CHECK: JTI1_0:
-; CHECK: .long .BB1_1
-
-define i32 @oper(i32 %op, i32 %A, i32 %B) {
-entry:
-        switch i32 %op, label %bbx [
-               i32 1 , label %bb1
-               i32 2 , label %bb2
-               i32 3 , label %bb3
-               i32 4 , label %bb4
-               i32 5 , label %bb5
-               i32 6 , label %bb6
-               i32 7 , label %bb7
-               i32 8 , label %bb8
-               i32 9 , label %bb9
-               i32 10, label %bb10
-        ]
-bb1:
-	%R1 = add i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R1
-bb2:
-	%R2 = sub i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R2
-bb3:
-	%R3 = mul i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R3
-bb4:
-	%R4 = sdiv i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R4
-bb5:
-	%R5 = udiv i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R5
-bb6:
-	%R6 = srem i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R6
-bb7:
-	%R7 = urem i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R7
-bb8:
-	%R8 = and i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R8
-bb9:
-	%R9 = or i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R9
-bb10:
-	%R10 = xor i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R10
-bbx:
-        ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/large-switch.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/large-switch.ll
deleted file mode 100644
index 42aa4cd..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/large-switch.ll
+++ /dev/null
@@ -1,187 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-; The switch expansion uses a dynamic shl, and it produces a jumptable
-
-define void @athlon_fp_unit_ready_cost() {
-entry:
-	switch i32 0, label %UnifiedReturnBlock [
-		i32 -1, label %bb2063
-		i32 19, label %bb2035
-		i32 20, label %bb2035
-		i32 21, label %bb2035
-		i32 23, label %bb2035
-		i32 24, label %bb2035
-		i32 27, label %bb2035
-		i32 32, label %bb2035
-		i32 33, label %bb1994
-		i32 35, label %bb2035
-		i32 36, label %bb1994
-		i32 90, label %bb1948
-		i32 94, label %bb1948
-		i32 95, label %bb1948
-		i32 133, label %bb1419
-		i32 135, label %bb1238
-		i32 136, label %bb1238
-		i32 137, label %bb1238
-		i32 138, label %bb1238
-		i32 139, label %bb1201
-		i32 140, label %bb1201
-		i32 141, label %bb1154
-		i32 142, label %bb1126
-		i32 144, label %bb1201
-		i32 145, label %bb1126
-		i32 146, label %bb1201
-		i32 147, label %bb1126
-		i32 148, label %bb1201
-		i32 149, label %bb1126
-		i32 150, label %bb1201
-		i32 151, label %bb1126
-		i32 152, label %bb1096
-		i32 153, label %bb1096
-		i32 154, label %bb1096
-		i32 157, label %bb1096
-		i32 158, label %bb1096
-		i32 159, label %bb1096
-		i32 162, label %bb1096
-		i32 163, label %bb1096
-		i32 164, label %bb1096
-		i32 167, label %bb1201
-		i32 168, label %bb1201
-		i32 170, label %bb1201
-		i32 171, label %bb1201
-		i32 173, label %bb1201
-		i32 174, label %bb1201
-		i32 176, label %bb1201
-		i32 177, label %bb1201
-		i32 179, label %bb993
-		i32 180, label %bb993
-		i32 181, label %bb993
-		i32 182, label %bb993
-		i32 183, label %bb993
-		i32 184, label %bb993
-		i32 365, label %bb1126
-		i32 366, label %bb1126
-		i32 367, label %bb1126
-		i32 368, label %bb1126
-		i32 369, label %bb1126
-		i32 370, label %bb1126
-		i32 371, label %bb1126
-		i32 372, label %bb1126
-		i32 373, label %bb1126
-		i32 384, label %bb1126
-		i32 385, label %bb1126
-		i32 386, label %bb1126
-		i32 387, label %bb1126
-		i32 388, label %bb1126
-		i32 389, label %bb1126
-		i32 390, label %bb1126
-		i32 391, label %bb1126
-		i32 392, label %bb1126
-		i32 525, label %bb919
-		i32 526, label %bb839
-		i32 528, label %bb919
-		i32 529, label %bb839
-		i32 532, label %cond_next6.i97
-		i32 533, label %cond_next6.i81
-		i32 534, label %bb495
-		i32 536, label %cond_next6.i81
-		i32 537, label %cond_next6.i81
-		i32 538, label %bb396
-		i32 539, label %bb288
-		i32 541, label %bb396
-		i32 542, label %bb396
-		i32 543, label %bb396
-		i32 544, label %bb396
-		i32 545, label %bb189
-		i32 546, label %cond_next6.i
-		i32 547, label %bb189
-		i32 548, label %cond_next6.i
-		i32 549, label %bb189
-		i32 550, label %cond_next6.i
-		i32 551, label %bb189
-		i32 552, label %cond_next6.i
-		i32 553, label %bb189
-		i32 554, label %cond_next6.i
-		i32 555, label %bb189
-		i32 556, label %cond_next6.i
-		i32 557, label %bb189
-		i32 558, label %cond_next6.i
-		i32 618, label %bb40
-		i32 619, label %bb18
-		i32 620, label %bb40
-		i32 621, label %bb10
-		i32 622, label %bb10
-	]
-
-bb10:
-	ret void
-
-bb18:
-	ret void
-
-bb40:
-	ret void
-
-cond_next6.i:
-	ret void
-
-bb189:
-	ret void
-
-bb288:
-	ret void
-
-bb396:
-	ret void
-
-bb495:
-	ret void
-
-cond_next6.i81:
-	ret void
-
-cond_next6.i97:
-	ret void
-
-bb839:
-	ret void
-
-bb919:
-	ret void
-
-bb993:
-	ret void
-
-bb1096:
-	ret void
-
-bb1126:
-	ret void
-
-bb1154:
-	ret void
-
-bb1201:
-	ret void
-
-bb1238:
-	ret void
-
-bb1419:
-	ret void
-
-bb1948:
-	ret void
-
-bb1994:
-	ret void
-
-bb2035:
-	ret void
-
-bb2063:
-	ret void
-
-UnifiedReturnBlock:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/load-i16.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/load-i16.ll
deleted file mode 100644
index 853b662..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/load-i16.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-; This somewhat contrived function heavily exercises register classes
-; It can trick -join-cross-class-copies into making illegal joins
-
-define void @f(i16** nocapture %p) nounwind readonly {
-entry:
-	%tmp1 = load i16** %p		; <i16*> [#uses=1]
-	%tmp2 = load i16* %tmp1		; <i16> [#uses=1]
-	%ptr = getelementptr i16* %tmp1, i16 %tmp2
-    store i16 %tmp2, i16* %ptr
-    ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/logic-i16.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/logic-i16.ll
deleted file mode 100644
index fba0afb..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/logic-i16.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-define i16 @and(i16 %A, i16 %B) {
-	%R = and i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @or(i16 %A, i16 %B) {
-	%R = or i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
-
-define i16 @xor(i16 %A, i16 %B) {
-	%R = xor i16 %A, %B		; <i16> [#uses=1]
-	ret i16 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/many-args.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/many-args.ll
deleted file mode 100644
index 3160d6c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/many-args.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-
-	type { i32, float, float, float, float, float, float, float, float, float, float }		; type %0
-	%struct..s_segment_inf = type { float, i32, i16, i16, float, float, i32, float, float }
-
-define i32 @main(i32 %argc.1, i8** %argv.1) {
-entry:
-	%tmp.218 = load float* null		; <float> [#uses=1]
-	%tmp.219 = getelementptr %0* null, i64 0, i32 6		; <float*> [#uses=1]
-	%tmp.220 = load float* %tmp.219		; <float> [#uses=1]
-	%tmp.221 = getelementptr %0* null, i64 0, i32 7		; <float*> [#uses=1]
-	%tmp.222 = load float* %tmp.221		; <float> [#uses=1]
-	%tmp.223 = getelementptr %0* null, i64 0, i32 8		; <float*> [#uses=1]
-	%tmp.224 = load float* %tmp.223		; <float> [#uses=1]
-	%tmp.225 = getelementptr %0* null, i64 0, i32 9		; <float*> [#uses=1]
-	%tmp.226 = load float* %tmp.225		; <float> [#uses=1]
-	%tmp.227 = getelementptr %0* null, i64 0, i32 10		; <float*> [#uses=1]
-	%tmp.228 = load float* %tmp.227		; <float> [#uses=1]
-	call void @place_and_route(i32 0, i32 0, float 0.000000e+00, i32 0, i32 0, i8* null, i32 0, i32 0, i8* null, i8* null, i8* null, i8* null, i32 0, i32 0, i32 0, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, i32 0, i32 0, i32 0, i32 0, i32 0, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, i32 0, i32 0, i16 0, i16 0, i16 0, float 0.000000e+00, float 0.000000e+00, %struct..s_segment_inf* null, i32 0, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float %tmp.218, float %tmp.220, float %tmp.222, float %tmp.224, float %tmp.226, float %tmp.228)
-	ret i32 0
-}
-
-declare void @place_and_route(i32, i32, float, i32, i32, i8*, i32, i32, i8*, i8*, i8*, i8*, i32, i32, i32, float, float, float, float, float, float, float, float, float, i32, i32, i32, i32, i32, float, float, float, i32, i32, i16, i16, i16, float, float, %struct..s_segment_inf*, i32, float, float, float, float, float, float, float, float, float, float)
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/mulhu.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/mulhu.ll
deleted file mode 100644
index 91be450..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/mulhu.ll
+++ /dev/null
@@ -1,106 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
-	%struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.VEC_edge = type { i32, i32, [1 x %struct.edge_def*] }
-	%struct._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] }
-	%struct.basic_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.tree_node*, %struct.VEC_edge*, %struct.VEC_edge*, %struct.bitmap_head_def*, %struct.bitmap_head_def*, i8*, %struct.loop*, [2 x %struct.et_node*], %struct.basic_block_def*, %struct.basic_block_def*, %struct.reorder_block_def*, %struct.bb_ann_d*, i64, i32, i32, i32, i32 }
-	%struct.bb_ann_d = type { %struct.tree_node*, i8, %struct.edge_prediction* }
-	%struct.bitmap_element_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, [4 x i32] }
-	%struct.bitmap_head_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, %struct.bitmap_obstack* }
-	%struct.bitmap_obstack = type { %struct.bitmap_element_def*, %struct.bitmap_head_def*, %struct.obstack }
-	%struct.cost_pair = type { %struct.iv_cand*, i32, %struct.bitmap_head_def* }
-	%struct.dataflow_d = type { %struct.varray_head_tag*, [2 x %struct.tree_node*] }
-	%struct.def_operand_ptr = type { %struct.tree_node** }
-	%struct.def_optype_d = type { i32, [1 x %struct.def_operand_ptr] }
-	%struct.edge_def = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.edge_def_insns, i8*, %struct.location_t*, i32, i32, i64, i32 }
-	%struct.edge_def_insns = type { %struct.rtx_def* }
-	%struct.edge_prediction = type { %struct.edge_prediction*, %struct.edge_def*, i32, i32 }
-	%struct.eh_status = type opaque
-	%struct.emit_status = type { i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack*, i32, %struct.location_t, i32, i8*, %struct.rtx_def** }
-	%struct.et_node = type opaque
-	%struct.expr_status = type { i32, i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def* }
-	%struct.function = type { %struct.eh_status*, %struct.expr_status*, %struct.emit_status*, %struct.varasm_status*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.function*, i32, i32, i32, i32, %struct.rtx_def*, %struct.CUMULATIVE_ARGS, %struct.rtx_def*, %struct.rtx_def*, %struct.initial_value_struct*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i8, i32, i64, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.varray_head_tag*, %struct.temp_slot*, i32, %struct.var_refs_queue*, i32, i32, %struct.rtvec_def*, %struct.tree_node*, i32, i32, i32, %struct.machine_function*, i32, i32, i1, i1, %struct.language_function*, %struct.rtx_def*, i32, i32, i32, i32, %struct.location_t, %struct.varray_head_tag*, %struct.tree_node*, i8, i8, i8 }
-	%struct.htab = type { i32 (i8*)*, i32 (i8*, i8*)*, void (i8*)*, i8**, i32, i32, i32, i32, i32, i8* (i32, i32)*, void (i8*)*, i8*, i8* (i8*, i32, i32)*, void (i8*, i8*)*, i32 }
-	%struct.initial_value_struct = type opaque
-	%struct.iv = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i1, i1, i32 }
-	%struct.iv_cand = type { i32, i1, i32, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.iv*, i32 }
-	%struct.iv_use = type { i32, i32, %struct.iv*, %struct.tree_node*, %struct.tree_node**, %struct.bitmap_head_def*, i32, %struct.cost_pair*, %struct.iv_cand* }
-	%struct.ivopts_data = type { %struct.loop*, %struct.htab*, i32, %struct.version_info*, %struct.bitmap_head_def*, i32, %struct.varray_head_tag*, %struct.varray_head_tag*, %struct.bitmap_head_def*, i1 }
-	%struct.lang_decl = type opaque
-	%struct.language_function = type opaque
-	%struct.location_t = type { i8*, i32 }
-	%struct.loop = type { i32, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.lpt_decision, i32, i32, %struct.edge_def**, i32, %struct.basic_block_def*, %struct.basic_block_def*, i32, %struct.edge_def**, i32, %struct.edge_def**, i32, %struct.simple_bitmap_def*, i32, %struct.loop**, i32, %struct.loop*, %struct.loop*, %struct.loop*, %struct.loop*, i32, i8*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i32, %struct.tree_node*, %struct.tree_node*, %struct.nb_iter_bound*, %struct.edge_def*, i1 }
-	%struct.lpt_decision = type { i32, i32 }
-	%struct.machine_function = type { %struct.stack_local_entry*, i8*, %struct.rtx_def*, i32, i32, i32, i32, i32 }
-	%struct.nb_iter_bound = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.nb_iter_bound* }
-	%struct.obstack = type { i32, %struct._obstack_chunk*, i8*, i8*, i8*, i32, i32, %struct._obstack_chunk* (i8*, i32)*, void (i8*, %struct._obstack_chunk*)*, i8*, i8 }
-	%struct.reorder_block_def = type { %struct.rtx_def*, %struct.rtx_def*, %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_def*, i32, i32, i32 }
-	%struct.rtvec_def = type { i32, [1 x %struct.rtx_def*] }
-	%struct.rtx_def = type { i16, i8, i8, %struct.u }
-	%struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack* }
-	%struct.simple_bitmap_def = type { i32, i32, i32, [1 x i64] }
-	%struct.stack_local_entry = type opaque
-	%struct.stmt_ann_d = type { %struct.tree_ann_common_d, i8, %struct.basic_block_def*, %struct.stmt_operands_d, %struct.dataflow_d*, %struct.bitmap_head_def*, i32 }
-	%struct.stmt_operands_d = type { %struct.def_optype_d*, %struct.def_optype_d*, %struct.v_may_def_optype_d*, %struct.vuse_optype_d*, %struct.v_may_def_optype_d* }
-	%struct.temp_slot = type opaque
-	%struct.tree_ann_common_d = type { i32, i8*, %struct.tree_node* }
-	%struct.tree_ann_d = type { %struct.stmt_ann_d }
-	%struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_ann_d*, i8, i8, i8, i8, i8 }
-	%struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, %struct.tree_node*, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, i32, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_decl* }
-	%struct.tree_decl_u1 = type { i64 }
-	%struct.tree_decl_u2 = type { %struct.function* }
-	%struct.tree_node = type { %struct.tree_decl }
-	%struct.u = type { [1 x i64] }
-	%struct.v_def_use_operand_type_t = type { %struct.tree_node*, %struct.tree_node* }
-	%struct.v_may_def_optype_d = type { i32, [1 x %struct.v_def_use_operand_type_t] }
-	%struct.var_refs_queue = type { %struct.rtx_def*, i32, i32, %struct.var_refs_queue* }
-	%struct.varasm_status = type opaque
-	%struct.varray_head_tag = type { i32, i32, i32, i8*, %struct.u }
-	%struct.version_info = type { %struct.tree_node*, %struct.iv*, i1, i32, i1 }
-	%struct.vuse_optype_d = type { i32, [1 x %struct.tree_node*] }
-
-define i1 @determine_use_iv_cost(%struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand) {
-entry:
-	switch i32 0, label %bb91 [
-		i32 0, label %bb
-		i32 1, label %bb6
-		i32 3, label %cond_next135
-	]
-
-bb:		; preds = %entry
-	ret i1 false
-
-bb6:		; preds = %entry
-	br i1 false, label %bb87, label %cond_next27
-
-cond_next27:		; preds = %bb6
-	br i1 false, label %cond_true30, label %cond_next55
-
-cond_true30:		; preds = %cond_next27
-	br i1 false, label %cond_next41, label %cond_true35
-
-cond_true35:		; preds = %cond_true30
-	ret i1 false
-
-cond_next41:		; preds = %cond_true30
-	%tmp44 = call i32 @force_var_cost(%struct.ivopts_data* %data, %struct.tree_node* null, %struct.bitmap_head_def** null)		; <i32> [#uses=1]
-	%tmp46 = udiv i32 %tmp44, 5		; <i32> [#uses=1]
-	call void @set_use_iv_cost(%struct.ivopts_data* %data, %struct.iv_use* %use, %struct.iv_cand* %cand, i32 %tmp46, %struct.bitmap_head_def* null)
-	br label %bb87
-
-cond_next55:		; preds = %cond_next27
-	ret i1 false
-
-bb87:		; preds = %cond_next41, %bb6
-	ret i1 false
-
-bb91:		; preds = %entry
-	ret i1 false
-
-cond_next135:		; preds = %entry
-	ret i1 false
-}
-
-declare void @set_use_iv_cost(%struct.ivopts_data*, %struct.iv_use*, %struct.iv_cand*, i32, %struct.bitmap_head_def*)
-
-declare i32 @force_var_cost(%struct.ivopts_data*, %struct.tree_node*, %struct.bitmap_head_def**)
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/printf.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/printf.ll
deleted file mode 100644
index d66d1ef..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/printf.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
- at .str_1 = external constant [42 x i8]		; <[42 x i8]*> [#uses=1]
-
-declare i32 @printf(i8*, ...)
-
-define i32 @main(i32 %argc.1, i8** %argv.1) {
-entry:
-	%tmp.16 = call i32 (i8*, ...)* @printf(i8* getelementptr ([42 x i8]* @.str_1, i64 0, i64 0), i32 0, i32 0, i64 0, i64 0)
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/printf2.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/printf2.ll
deleted file mode 100644
index 47c682d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/printf2.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin
-
-declare i32 @printf(i8*, ...)
-
-define i32 @main() {
-	%1 = call i32 (i8*, ...)* @printf(i8* undef, i1 undef)
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/promote-logic.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/promote-logic.ll
deleted file mode 100644
index d2771d1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/promote-logic.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin > %t
-
-; DAGCombiner::SimplifyBinOpWithSameOpcodeHands can produce an illegal i16 OR
-; operation after LegalizeOps.
-
-define void @mng_display_bgr565() {
-entry:
-	br i1 false, label %bb.preheader, label %return
-
-bb.preheader:
-	br i1 false, label %cond_true48, label %cond_next80
-
-cond_true48:
-	%tmp = load i8* null
-	%tmp51 = zext i8 %tmp to i16
-	%tmp99 = load i8* null
-	%tmp54 = bitcast i8 %tmp99 to i8
-	%tmp54.upgrd.1 = zext i8 %tmp54 to i32
-	%tmp55 = lshr i32 %tmp54.upgrd.1, 3
-	%tmp55.upgrd.2 = trunc i32 %tmp55 to i16
-	%tmp52 = shl i16 %tmp51, 5
-	%tmp56 = and i16 %tmp55.upgrd.2, 28
-	%tmp57 = or i16 %tmp56, %tmp52
-	%tmp60 = zext i16 %tmp57 to i32
-	%tmp62 = xor i32 0, 65535
-	%tmp63 = mul i32 %tmp60, %tmp62
-	%tmp65 = add i32 0, %tmp63
-	%tmp69 = add i32 0, %tmp65
-	%tmp70 = lshr i32 %tmp69, 16
-	%tmp70.upgrd.3 = trunc i32 %tmp70 to i16
-	%tmp75 = lshr i16 %tmp70.upgrd.3, 8
-	%tmp75.upgrd.4 = trunc i16 %tmp75 to i8
-	%tmp76 = lshr i8 %tmp75.upgrd.4, 5
-	store i8 %tmp76, i8* null
-	ret void
-
-cond_next80:
-	ret void
-
-return:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/promote-setcc.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/promote-setcc.ll
deleted file mode 100644
index 5855325..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/promote-setcc.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin > %t
-
-; The DAG combiner may sometimes create illegal i16 SETCC operations when run
-; after LegalizeOps. Try to tease out all the optimizations in
-; TargetLowering::SimplifySetCC.
-
- at x = external global i16
- at y = external global i16
-
-declare i16 @llvm.ctlz.i16(i16)
-
-; Case (srl (ctlz x), 5) == const
-; Note: ctlz is promoted, so this test does not catch the DAG combiner
-define i1 @srl_ctlz_const() {
-  %x = load i16* @x
-  %c = call i16 @llvm.ctlz.i16(i16 %x)
-  %s = lshr i16 %c, 4
-  %r = icmp eq i16 %s, 1
-  ret i1 %r
-}
-
-; Case (zext x) == const
-define i1 @zext_const() {
-  %x = load i16* @x
-  %r = icmp ugt i16 %x, 1
-  ret i1 %r
-}
-
-; Case (sext x) == const
-define i1 @sext_const() {
-  %x = load i16* @x
-  %y = add i16 %x, 1
-  %x2 = sext i16 %y to i32
-  %r = icmp ne i32 %x2, -1
-  ret i1 %r
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/sdiv.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/sdiv.ll
deleted file mode 100644
index e03f4ff..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/sdiv.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs
-define i32 @sdiv(i32 %A, i32 %B) {
-	%R = sdiv i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %R
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/simple-select.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/simple-select.ll
deleted file mode 100644
index 286db7c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/simple-select.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
-declare i1 @foo()
-
-define i32 @test(i32* %A, i32* %B) {
-	%a = load i32* %A
-	%b = load i32* %B
-	%cond = call i1 @foo()
-	%c = select i1 %cond, i32 %a, i32 %b
-	ret i32 %c
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/switch.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/switch.ll
deleted file mode 100644
index 738fff7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/switch.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
-define i32 @foo(i32 %A, i32 %B, i32 %C) {
-entry:
-	switch i32 %A, label %out [
-		i32 1, label %bb
-		i32 0, label %bb13
-	]
-
-bb:		; preds = %entry
-	ret i32 1
-
-bb13:		; preds = %entry
-	ret i32 1
-
-out:		; preds = %entry
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/switch2.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/switch2.ll
deleted file mode 100644
index f0fe1a7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/switch2.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs > %t
-
-define i8* @FindChar(i8* %CurPtr) {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%tmp = load i8* null		; <i8> [#uses=1]
-	switch i8 %tmp, label %bb [
-		i8 0, label %bb7
-		i8 120, label %bb7
-	]
-
-bb7:		; preds = %bb, %bb
-	ret i8* null
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Blackfin/sync-intr.ll b/libclamav/c++/llvm/test/CodeGen/Blackfin/sync-intr.ll
deleted file mode 100644
index 8fa5c5f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Blackfin/sync-intr.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs | FileCheck %s
-
-define void @f() nounwind {
-entry:
-        ; CHECK: csync;
-        call void @llvm.bfin.csync()
-        ; CHECK: ssync;
-        call void @llvm.bfin.ssync()
-	ret void
-}
-
-declare void @llvm.bfin.csync() nounwind
-declare void @llvm.bfin.ssync() nounwind
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-05-16-NameCollide.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-05-16-NameCollide.ll
deleted file mode 100644
index c69b9b0..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-05-16-NameCollide.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; Make sure that global variables do not collide if they have the same name,
-; but different types.
-
- at X = global i32 5               ; <i32*> [#uses=0]
- at X.upgrd.1 = global i64 7               ; <i64*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-05-21-MissingReturn.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-05-21-MissingReturn.ll
deleted file mode 100644
index 2908157..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-05-21-MissingReturn.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; This case was emitting code that looked like this:
-; ...
-;   llvm_BB1:       /* no statement here */
-; }
-; 
-; Which the Sun C compiler rejected, so now we are sure to put a return 
-; instruction in there if the basic block is otherwise empty.
-;
-define void @test() {
-        br label %BB1
-
-BB2:            ; preds = %BB2
-        br label %BB2
-
-BB1:            ; preds = %0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-ConstPointerRef.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-ConstPointerRef.ll
deleted file mode 100644
index 297807e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-ConstPointerRef.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; Test const pointer refs & forward references
-
- at t3 = global i32* @t1           ; <i32**> [#uses=0]
- at t1 = global i32 4              ; <i32*> [#uses=1]
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-ConstantExpr.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-ConstantExpr.ll
deleted file mode 100644
index ead1bce..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-ConstantExpr.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-global i32* bitcast (float* @2 to i32*)   ;; Forward numeric reference
-global float* @2                       ;; Duplicate forward numeric reference
-global float 0.0
-
- at array = constant [2 x i32] [ i32 12, i32 52 ]
- at arrayPtr = global i32* getelementptr ([2 x i32]* @array, i64 0, i64 0)
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-DataPointer.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-DataPointer.ll
deleted file mode 100644
index 7ae13ec..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-DataPointer.ll
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
- at sptr1 = global [11 x i8]* @somestr         ;; Forward ref to a constant
- at somestr = constant [11 x i8] c"hello world"
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-FunctionPointer.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-FunctionPointer.ll
deleted file mode 100644
index 25f63a0..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-FunctionPointer.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
- at fptr = global void ()* @f       ;; Forward ref method defn
-declare void @f()               ;; External method
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-HardConstantExpr.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-HardConstantExpr.ll
deleted file mode 100644
index 528b8de..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-19-HardConstantExpr.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
- at array = constant [2 x i32] [ i32 12, i32 52 ]          ; <[2 x i32]*> [#uses=1]
- at arrayPtr = global i32* getelementptr ([2 x i32]* @array, i64 0, i64 0)         ; <i32**> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-20-RecursiveTypes.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-20-RecursiveTypes.ll
deleted file mode 100644
index e9df0c2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-20-RecursiveTypes.ll
+++ /dev/null
@@ -1,3 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
- at MyIntList = external global { \2*, i32 }
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-20-UnnamedArgument.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-20-UnnamedArgument.ll
deleted file mode 100644
index ccffe68..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-20-UnnamedArgument.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; The C Writer bombs on this testcase because it tries the print the prototype
-; for the test function, which tries to print the argument name.  The function
-; has not been incorporated into the slot calculator, so after it does the name
-; lookup, it tries a slot calculator lookup, which fails.
-
-define i32 @test(i32) {
-        ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-26-IndirectCallTest.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-26-IndirectCallTest.ll
deleted file mode 100644
index bf592ce..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-26-IndirectCallTest.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; Indirect function call test... found by Joel & Brian
-;
-
- at taskArray = external global i32*               ; <i32**> [#uses=1]
-
-define void @test(i32 %X) {
-        %Y = add i32 %X, -1             ; <i32> [#uses=1]
-        %cast100 = sext i32 %Y to i64           ; <i64> [#uses=1]
-        %gep100 = getelementptr i32** @taskArray, i64 %cast100          ; <i32**> [#uses=1]
-        %fooPtr = load i32** %gep100            ; <i32*> [#uses=1]
-        %cast101 = bitcast i32* %fooPtr to void (i32)*          ; <void (i32)*> [#uses=1]
-        call void %cast101( i32 1000 )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-30-StructureOrderingTest.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-30-StructureOrderingTest.ll
deleted file mode 100644
index e048905..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-08-30-StructureOrderingTest.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; This testcase fails because the C backend does not arrange to output the 
-; contents of a structure type before it outputs the structure type itself.
-
- at Y = external global { { i32 } }                ; <{ { i32 } }*> [#uses=0]
- at X = external global { float }          ; <{ float }*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-09-20-ArrayTypeFailure.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-09-20-ArrayTypeFailure.ll
deleted file mode 100644
index ebb1c0f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-09-20-ArrayTypeFailure.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-define void @test() {
-        %X = alloca [4 x i32]           ; <[4 x i32]*> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-09-20-VarArgPrototypes.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-09-20-VarArgPrototypes.ll
deleted file mode 100644
index 69f4575..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-09-20-VarArgPrototypes.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-
-declare void @foo(...)
-
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-15-OpaqueTypeProblem.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-15-OpaqueTypeProblem.ll
deleted file mode 100644
index 2f6d9be..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-15-OpaqueTypeProblem.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-%MPI_Comm = type %struct.Comm*
-%struct.Comm = type opaque
- at thing = global %MPI_Comm* null         ; <%MPI_Comm**> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-16-External.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-16-External.ll
deleted file mode 100644
index d40cbda..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-16-External.ll
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
- at bob = external global i32              ; <i32*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-30-FunctionPointerAlloca.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-30-FunctionPointerAlloca.ll
deleted file mode 100644
index a17b8db..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-10-30-FunctionPointerAlloca.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-        %BitField = type i32
-        %tokenptr = type i32*
-
-define void @test() {
-        %pmf1 = alloca %tokenptr (%tokenptr, i8*)*              ; <%tokenptr (%tokenptr, i8*)**> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-11-06-PrintEscaped.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2002-11-06-PrintEscaped.ll
deleted file mode 100644
index 2dd281a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2002-11-06-PrintEscaped.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
- at testString = internal constant [18 x i8] c"Escaped newline\5Cn\00"             ; <[18 x i8]*> [#uses=1]
-
-declare i32 @printf(i8*, ...)
-
-define i32 @main() {
-        call i32 (i8*, ...)* @printf( i8* getelementptr ([18 x i8]* @testString, i64 0, i64 0) )                ; <i32>:1 [#uses=0]
-        ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-12-IntegerSizeWarning.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-12-IntegerSizeWarning.ll
deleted file mode 100644
index 4a7170d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-12-IntegerSizeWarning.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; Apparently this constant was unsigned in ISO C 90, but not in C 99.
-
-define i32 @foo() {
-        ret i32 -2147483648
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-13-VarArgFunction.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-13-VarArgFunction.ll
deleted file mode 100644
index 2a4e839..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-13-VarArgFunction.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; This testcase breaks the C backend, because gcc doesn't like (...) functions
-; with no arguments at all.
-
-define void @test(i64 %Ptr) {
-        %P = inttoptr i64 %Ptr to void (...)*           ; <void (...)*> [#uses=1]
-        call void (...)* %P( i64 %Ptr )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-31-MissingStructName.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-31-MissingStructName.ll
deleted file mode 100644
index fb7e2ba..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-05-31-MissingStructName.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; The C backend was dying when there was no typename for a struct type!
-
-declare i32 @test(i32, { [32 x i32] }*)
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-01-NullPointerType.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-01-NullPointerType.ll
deleted file mode 100644
index 6b7f9f0..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-01-NullPointerType.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-%X = type { i32, float }
-
-define void @test() {
-        getelementptr %X* null, i64 0, i32 1            ; <float*>:1 [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-11-HexConstant.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-11-HexConstant.ll
deleted file mode 100644
index c6128d6..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-11-HexConstant.ll
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; Make sure hex constant does not continue into a valid hexadecimal letter/number
- at version = global [3 x i8] c"\001\00"
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-11-LiteralStringProblem.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-11-LiteralStringProblem.ll
deleted file mode 100644
index fd68211..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-11-LiteralStringProblem.ll
+++ /dev/null
@@ -1,3 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
- at version = global [3 x i8] c"1\00\00"
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-28-InvokeSupport.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-28-InvokeSupport.ll
deleted file mode 100644
index 9fe98e2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-28-InvokeSupport.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-declare i32 @callee(i32, i32)
-
-define i32 @test(i32 %X) {
-; <label>:0
-        %A = invoke i32 @callee( i32 %X, i32 5 )
-                        to label %Ok unwind label %Threw                ; <i32> [#uses=1]
-
-Ok:             ; preds = %Threw, %0
-        %B = phi i32 [ %A, %0 ], [ -1, %Threw ]         ; <i32> [#uses=1]
-        ret i32 %B
-
-Threw:          ; preds = %0
-        br label %Ok
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-28-LinkOnceGlobalVars.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-28-LinkOnceGlobalVars.ll
deleted file mode 100644
index ef3b579..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-06-28-LinkOnceGlobalVars.ll
+++ /dev/null
@@ -1,3 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep common | grep X
-
- at X = linkonce global i32 5
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-12-NANGlobalInits.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-12-NANGlobalInits.ll
deleted file mode 100644
index 077f16c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-12-NANGlobalInits.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; This is a non-normal FP value: it's a nan.
- at NAN = global { float } { float 0x7FF8000000000000 }            ; <{ float }*> [#uses=0]
- at NANs = global { float } { float 0x7FFC000000000000 }           ; <{ float }*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-23-UnusedType.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-23-UnusedType.ll
deleted file mode 100644
index e67ba2e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-23-UnusedType.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-%A = type { i32, i8*, { i32, i32, i32, i32, i32, i32, i32, i32 }*, i16 }
-
-define void @test(%A*) {
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-28-CastToPtrToStruct.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-28-CastToPtrToStruct.ll
deleted file mode 100644
index 41f3f1e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-10-28-CastToPtrToStruct.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-; reduced from DOOM.
-        %union._XEvent = type { i32 }
- at .X_event_9 = global %union._XEvent zeroinitializer             ; <%union._XEvent*> [#uses=1]
-
-define void @I_InitGraphics() {
-shortcirc_next.3:
-        %tmp.319 = load i32* getelementptr ({ i32, i32 }* bitcast (%union._XEvent* @.X_event_9 to { i32, i32 }*), i64 0, i32 1)               ; <i32> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-11-21-ConstantShiftExpr.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2003-11-21-ConstantShiftExpr.ll
deleted file mode 100644
index e8da787..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2003-11-21-ConstantShiftExpr.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
- at y = weak global i8 0           ; <i8*> [#uses=1]
-
-define i32 @testcaseshr() {
-entry:
-        ret i32 lshr (i32 ptrtoint (i8* @y to i32), i32 4)
-}
-
-define i32 @testcaseshl() {
-entry:
-        ret i32 shl (i32 ptrtoint (i8* @y to i32), i32 4)
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-13-FrameReturnAddress.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-13-FrameReturnAddress.ll
deleted file mode 100644
index 911d6d4..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-13-FrameReturnAddress.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep builtin_return_address
-
-declare i8* @llvm.returnaddress(i32)
-
-declare i8* @llvm.frameaddress(i32)
-
-define i8* @test1() {
-        %X = call i8* @llvm.returnaddress( i32 0 )              ; <i8*> [#uses=1]
-        ret i8* %X
-}
-
-define i8* @test2() {
-        %X = call i8* @llvm.frameaddress( i32 0 )               ; <i8*> [#uses=1]
-        ret i8* %X
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-15-PreexistingExternals.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-15-PreexistingExternals.ll
deleted file mode 100644
index 1629deb..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-15-PreexistingExternals.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; The intrinsic lowering pass was lowering intrinsics like llvm.memcpy to 
-; explicitly specified prototypes, inserting a new function if the old one
-; didn't exist.  This caused there to be two external memcpy functions in 
-; this testcase for example, which caused the CBE to mangle one, screwing
-; everything up.  :(  Test that this does not happen anymore.
-;
-; RUN: llvm-as < %s | llc -march=c | not grep _memcpy
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-declare float* @memcpy(i32*, i32, i32)
-
-define i32 @test(i8* %A, i8* %B, i32* %C) {
-        call float* @memcpy( i32* %C, i32 4, i32 17 )           ; <float*>:1 [#uses=0]
-        call void @llvm.memcpy.i32( i8* %A, i8* %B, i32 123, i32 14 )
-        ret i32 7
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-26-FPNotPrintableConstants.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-26-FPNotPrintableConstants.ll
deleted file mode 100644
index 6f23915..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-26-FPNotPrintableConstants.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; This is a non-normal FP value
-; RUN: llvm-as < %s | llc -march=c | grep FPConstant | grep static
-
-define float @func() {
-        ret float 0xFFF0000000000000
-}
-
-define double @func2() {
-        ret double 0xFF20000000000000
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-26-LinkOnceFunctions.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-26-LinkOnceFunctions.ll
deleted file mode 100644
index 2d62231..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-02-26-LinkOnceFunctions.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep func1 | grep WEAK
-
-define linkonce i32 @func1() {
-        ret i32 5
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-08-09-va-end-null.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-08-09-va-end-null.ll
deleted file mode 100644
index ae7ba53..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-08-09-va-end-null.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-declare void @llvm.va_end(i8*)
-
-define void @test() {
-        %va.upgrd.1 = bitcast i8* null to i8*           ; <i8*> [#uses=1]
-        call void @llvm.va_end( i8* %va.upgrd.1 )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll
deleted file mode 100644
index a8ee438..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-11-13-FunctionPointerCast.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; The CBE should not emit code that casts the function pointer.  This causes
-; GCC to get testy and insert trap instructions instead of doing the right
-; thing. :(
-; RUN: llvm-as < %s | llc -march=c
-
-declare void @external(i8*)
-
-define i32 @test(i32* %X) {
-        %RV = call i32 bitcast (void (i8*)* @external to i32 (i32*)*)( i32* %X )                ; <i32> [#uses=1]
-        ret i32 %RV
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-12-03-ExternStatics.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-12-03-ExternStatics.ll
deleted file mode 100644
index 8acab76..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-12-03-ExternStatics.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | not grep extern.*msg
-; PR472
-
- at msg = internal global [6 x i8] c"hello\00"             ; <[6 x i8]*> [#uses=1]
-
-define i8* @foo() {
-entry:
-        ret i8* getelementptr ([6 x i8]* @msg, i32 0, i32 0)
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-12-28-LogicalConstantExprs.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2004-12-28-LogicalConstantExprs.ll
deleted file mode 100644
index 9acaa72..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2004-12-28-LogicalConstantExprs.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-define i32 @foo() {
-        ret i32 and (i32 123456, i32 ptrtoint (i32 ()* @foo to i32))
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-02-14-VolatileOperations.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2005-02-14-VolatileOperations.ll
deleted file mode 100644
index 12c8790..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-02-14-VolatileOperations.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep volatile
-
-define void @test(i32* %P) {
-        %X = volatile load i32* %P              ; <i32> [#uses=1]
-        volatile store i32 %X, i32* %P
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-03-08-RecursiveTypeCrash.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2005-03-08-RecursiveTypeCrash.ll
deleted file mode 100644
index 162e3d3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-03-08-RecursiveTypeCrash.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-        %JNIEnv = type %struct.JNINa*
-        %struct.JNINa = type { i8*, i8*, i8*, void (%JNIEnv*)* }
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-07-14-NegationToMinusMinus.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2005-07-14-NegationToMinusMinus.ll
deleted file mode 100644
index 55d43e2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-07-14-NegationToMinusMinus.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | not grep -- --65535
-; PR596
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-
-declare void @func(i32)
-
-define void @funcb() {
-entry:
-        %tmp.1 = sub i32 0, -65535              ; <i32> [#uses=1]
-        call void @func( i32 %tmp.1 )
-        br label %return
-
-return:         ; preds = %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-08-23-Fmod.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2005-08-23-Fmod.ll
deleted file mode 100644
index 7c55019..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-08-23-Fmod.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep fmod
-
-define double @test(double %A, double %B) {
-        %C = frem double %A, %B         ; <double> [#uses=1]
-        ret double %C
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-09-27-VolatileFuncPtr.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2005-09-27-VolatileFuncPtr.ll
deleted file mode 100644
index 37f311d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2005-09-27-VolatileFuncPtr.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep {\\* *volatile *\\*}
-
- at G = external global void ()*           ; <void ()**> [#uses=2]
-
-define void @test() {
-        volatile store void ()* @test, void ()** @G
-        volatile load void ()** @G              ; <void ()*>:1 [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll
deleted file mode 100644
index f8393a3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | \
-; RUN:   grep __BITCAST | count 14
-
-define i32 @test1(float %F) {
-        %X = bitcast float %F to i32            ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-define float @test2(i32 %I) {
-        %X = bitcast i32 %I to float            ; <float> [#uses=1]
-        ret float %X
-}
-
-define i64 @test3(double %D) {
-        %X = bitcast double %D to i64           ; <i64> [#uses=1]
-        ret i64 %X
-}
-
-define double @test4(i64 %L) {
-        %X = bitcast i64 %L to double           ; <double> [#uses=1]
-        ret double %X
-}
-
-define double @test5(double %D) {
-        %X = bitcast double %D to double                ; <double> [#uses=1]
-        %Y = fadd double %X, 2.000000e+00                ; <double> [#uses=1]
-        %Z = bitcast double %Y to i64           ; <i64> [#uses=1]
-        %res = bitcast i64 %Z to double         ; <double> [#uses=1]
-        ret double %res
-}
-
-define float @test6(float %F) {
-        %X = bitcast float %F to float          ; <float> [#uses=1]
-        %Y = fadd float %X, 2.000000e+00         ; <float> [#uses=1]
-        %Z = bitcast float %Y to i32            ; <i32> [#uses=1]
-        %res = bitcast i32 %Z to float          ; <float> [#uses=1]
-        ret float %res
-}
-
-define i32 @main(i32 %argc, i8** %argv) {
-        %a = call i32 @test1( float 0x400921FB40000000 )                ; <i32> [#uses=2]
-        %b = call float @test2( i32 %a )                ; <float> [#uses=0]
-        %c = call i64 @test3( double 0x400921FB4D12D84A )               ; <i64> [#uses=1]
-        %d = call double @test4( i64 %c )               ; <double> [#uses=0]
-        %e = call double @test5( double 7.000000e+00 )          ; <double> [#uses=0]
-        %f = call float @test6( float 7.000000e+00 )            ; <float> [#uses=0]
-        ret i32 %a
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-08-ParamAttr-ICmp.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-08-ParamAttr-ICmp.ll
deleted file mode 100644
index 63dd9da..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-08-ParamAttr-ICmp.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; For PR1099
-; RUN: llvm-as < %s | llc -march=c | grep {(llvm_cbe_tmp2 == llvm_cbe_b_2e_0_2e_0_2e_val)}
-
-target datalayout = "e-p:32:32"
-target triple = "i686-apple-darwin8"
-        %struct.Connector = type { i16, i16, i8, i8, %struct.Connector*, i8* }
-
-
-define i1 @prune_match_entry_2E_ce(%struct.Connector* %a, i16 %b.0.0.val) {
-newFuncRoot:
-        br label %entry.ce
-
-cond_next.exitStub:             ; preds = %entry.ce
-        ret i1 true
-
-entry.return_crit_edge.exitStub:                ; preds = %entry.ce
-        ret i1 false
-
-entry.ce:               ; preds = %newFuncRoot
-        %tmp1 = getelementptr %struct.Connector* %a, i32 0, i32 0                ; <i16*> [#uses=1]
-        %tmp2 = load i16* %tmp1           ; <i16> [#uses=1]
-        %tmp3 = icmp eq i16 %tmp2, %b.0.0.val             ; <i1> [#uses=1]
-        br i1 %tmp3, label %cond_next.exitStub, label %entry.return_crit_edge.exitStub
-}
-
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-15-NamedArrayType.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-15-NamedArrayType.ll
deleted file mode 100644
index 42fa0d8..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-15-NamedArrayType.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; PR918
-; RUN: llvm-as < %s | llc -march=c | not grep {l_structtype_s l_fixarray_array3}
-
-%structtype_s = type { i32 }
-%fixarray_array3 = type [3 x %structtype_s]
-
-define i32 @witness(%fixarray_array3* %p) {
-    %q = getelementptr %fixarray_array3* %p, i32 0, i32 0, i32 0
-    %v = load i32* %q
-    ret i32 %v
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-17-StackSaveNRestore.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-17-StackSaveNRestore.ll
deleted file mode 100644
index 8fe06b7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-01-17-StackSaveNRestore.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep __builtin_stack_save
-; RUN: llvm-as < %s | llc -march=c | grep __builtin_stack_restore
-; PR1028
-
-declare i8* @llvm.stacksave()
-declare void @llvm.stackrestore(i8*)
-
-define i8* @test() {
-    %s = call i8* @llvm.stacksave()
-    call void @llvm.stackrestore(i8* %s)
-    ret i8* %s
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-02-05-memset.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2007-02-05-memset.ll
deleted file mode 100644
index f253b30..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-02-05-memset.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-; PR1181
-target datalayout = "e-p:64:64"
-target triple = "x86_64-apple-darwin8"
-
-
-declare void @llvm.memset.i64(i8*, i8, i64, i32)
-
-define fastcc void @InitUser_data_unregistered() {
-entry:
-        tail call void @llvm.memset.i64( i8* null, i8 0, i64 65496, i32 1 )
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-02-23-NameConflicts.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2007-02-23-NameConflicts.ll
deleted file mode 100644
index eb5cb86..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-02-23-NameConflicts.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; PR1164
-; RUN: llvm-as < %s | llc -march=c | grep {llvm_cbe_A = \\*llvm_cbe_G;}
-; RUN: llvm-as < %s | llc -march=c | grep {llvm_cbe_B = \\*(&ltmp_0_1);}
-; RUN: llvm-as < %s | llc -march=c | grep {return (((unsigned int )(((unsigned int )llvm_cbe_A) + ((unsigned int )llvm_cbe_B))));}
-
- at G = global i32 123
- at ltmp_0_1 = global i32 123
-
-define i32 @test(i32 *%G) {
-        %A = load i32* %G
-        %B = load i32* @ltmp_0_1
-        %C = add i32 %A, %B
-        ret i32 %C
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-07-11-PackedStruct.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2007-07-11-PackedStruct.ll
deleted file mode 100644
index 6057616..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2007-07-11-PackedStruct.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep {packed}
-
-	%struct.p = type <{ i16 }>
-
-define i32 @main() {
-entry:
-        %t = alloca %struct.p, align 2
-	ret i32 5
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-02-01-UnalignedLoadStore.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2008-02-01-UnalignedLoadStore.ll
deleted file mode 100644
index 269126d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-02-01-UnalignedLoadStore.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | \
-; RUN:          grep {struct __attribute__ ((packed, aligned(} | count 4
-
-define void @test(i32* %P) {
-        %X = load i32* %P, align 1
-        store i32 %X, i32* %P, align 1
-        ret void
-}
-
-define void @test2(i32* %P) {
-        %X = volatile load i32* %P, align 2
-        volatile store i32 %X, i32* %P, align 2
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-05-21-MRV-InlineAsm.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2008-05-21-MRV-InlineAsm.ll
deleted file mode 100644
index 16bf23e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-05-21-MRV-InlineAsm.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-declare {i32, i32} @foo()
-
-define i32 @test() {
-  %A = call {i32, i32} @foo()
-  %B = getresult {i32, i32} %A, 0
-  %C = getresult {i32, i32} %A, 1
-  %D = add i32 %B, %C
-  ret i32 %D
-}
-
-define i32 @test2() {
-  %A = call {i32, i32} asm sideeffect "...", "={cx},={di},~{dirflag},~{fpsr},~{flags},~{memory}"()
-  %B = getresult {i32, i32} %A, 0
-  %C = getresult {i32, i32} %A, 1
-  %D = add i32 %B, %C
-  ret i32 %D
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-05-31-BoolOverflow.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2008-05-31-BoolOverflow.ll
deleted file mode 100644
index 52e0259..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-05-31-BoolOverflow.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep {llvm_cbe_t.*&1}
-define i32 @test(i32 %r) {
-  %s = icmp eq i32 %r, 0
-  %t = add i1 %s, %s
-  %u = zext i1 %t to i32
-  br i1 %t, label %A, label %B
-A:
-
-  ret i32 %u
-B:
-
-  %v = select i1 %t, i32 %r, i32 %u
-  ret i32 %v
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-06-04-IndirectMem.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2008-06-04-IndirectMem.ll
deleted file mode 100644
index a2c1046..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-06-04-IndirectMem.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep {"m"(llvm_cbe_newcw))}
-; PR2407
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define void @foo() {
-  %newcw = alloca i16             ; <i16*> [#uses=2]
-  call void asm sideeffect "fldcw $0", "*m,~{dirflag},~{fpsr},~{flags}"( i16*
-%newcw ) nounwind 
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-10-21-PPCLongDoubleConstant.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/2008-10-21-PPCLongDoubleConstant.ll
deleted file mode 100644
index 32d635a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/2008-10-21-PPCLongDoubleConstant.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-; PR2907
-target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
-target triple = "powerpc-apple-darwin9.5"
-	%"struct.Point<0>" = type { %"struct.Tensor<1,0>" }
-	%"struct.QGauss2<1>" = type { %"struct.Quadrature<0>" }
-	%"struct.Quadrature<0>" = type { %struct.Subscriptor, i32, %"struct.std::vector<Point<0>,std::allocator<Point<0> > >", %"struct.std::vector<double,std::allocator<double> >" }
-	%struct.Subscriptor = type { i32 (...)**, i32, %"struct.std::type_info"* }
-	%"struct.Tensor<1,0>" = type { [1 x double] }
-	%"struct.std::_Vector_base<Point<0>,std::allocator<Point<0> > >" = type { %"struct.std::_Vector_base<Point<0>,std::allocator<Point<0> > >::_Vector_impl" }
-	%"struct.std::_Vector_base<Point<0>,std::allocator<Point<0> > >::_Vector_impl" = type { %"struct.Point<0>"*, %"struct.Point<0>"*, %"struct.Point<0>"* }
-	%"struct.std::_Vector_base<double,std::allocator<double> >" = type { %"struct.std::_Vector_base<double,std::allocator<double> >::_Vector_impl" }
-	%"struct.std::_Vector_base<double,std::allocator<double> >::_Vector_impl" = type { double*, double*, double* }
-	%"struct.std::type_info" = type { i32 (...)**, i8* }
-	%"struct.std::vector<Point<0>,std::allocator<Point<0> > >" = type { %"struct.std::_Vector_base<Point<0>,std::allocator<Point<0> > >" }
-	%"struct.std::vector<double,std::allocator<double> >" = type { %"struct.std::_Vector_base<double,std::allocator<double> >" }
-
-define fastcc void @_ZN6QGaussILi1EEC1Ej(%"struct.QGauss2<1>"* %this, i32 %n) {
-entry:
-	br label %bb4
-
-bb4:		; preds = %bb5.split, %bb4, %entry
-	%0 = fcmp ogt ppc_fp128 0xM00000000000000000000000000000000, select (i1 fcmp olt (ppc_fp128 fpext (double 0x3C447AE147AE147B to ppc_fp128), ppc_fp128 fmul (ppc_fp128 0xM00000000000000010000000000000000, ppc_fp128 0xM40140000000000000000000000000000)), ppc_fp128 fmul (ppc_fp128 0xM00000000000000010000000000000000, ppc_fp128 0xM40140000000000000000000000000000), ppc_fp128 fpext (double 0x3C447AE147AE147B to ppc_fp128))		; <i1> [#uses=1]
-	br i1 %0, label %bb4, label %bb5.split
-
-bb5.split:		; preds = %bb4
-	%1 = getelementptr double* null, i32 0		; <double*> [#uses=0]
-	br label %bb4
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/dg.exp b/libclamav/c++/llvm/test/CodeGen/CBackend/dg.exp
deleted file mode 100644
index 9d78940..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target CBackend] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/fneg.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/fneg.ll
deleted file mode 100644
index 68849b2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/fneg.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
-
-define void @func() nounwind {
-  entry:
-  %0 = fsub double -0.0, undef
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/pr2408.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/pr2408.ll
deleted file mode 100644
index a16f91b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/pr2408.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c | grep {\\* ((unsigned int )}
-; PR2408
-
-define i32 @a(i32 %a) {
-entry:
-        %shr = ashr i32 %a, 0           ; <i32> [#uses=1]
-        %shr2 = ashr i32 2, 0           ; <i32> [#uses=1]
-        %mul = mul i32 %shr, %shr2              ; <i32> [#uses=1]
-        %shr4 = ashr i32 2, 0           ; <i32> [#uses=1]
-        %div = sdiv i32 %mul, %shr4             ; <i32> [#uses=1]
-        ret i32 %div
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CBackend/vectors.ll b/libclamav/c++/llvm/test/CodeGen/CBackend/vectors.ll
deleted file mode 100644
index d01e992..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CBackend/vectors.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: llvm-as < %s | llc -march=c
- at .str15 = external global [2 x i8]
-
-define <4 x i32> @foo(<4 x i32> %a, i32 %b) {
-  %c = insertelement <4 x i32> %a, i32 1, i32 %b
-  
-  ret <4 x i32> %c
-}
-
-define i32 @test2(<4 x i32> %a, i32 %b) {
-  %c = extractelement <4 x i32> %a, i32 1
-  
-  ret i32 %c
-}
-
-define <4 x float> @test3(<4 x float> %Y) {
-	%Z = fadd <4 x float> %Y, %Y
-	%X = shufflevector <4 x float> zeroinitializer, <4 x float> %Z, <4 x i32> < i32 0, i32 5, i32 6, i32 7 >
-	ret <4 x float> %X
-}
-
-define void @test4() {
-	%x = alloca <4 x float>
-	%tmp3.i16 = getelementptr <4 x float>* %x, i32 0, i32 0
-	store float 1.0, float* %tmp3.i16
-	ret void
-}
-
-define i32* @test5({i32, i32} * %P) {
-	%x = getelementptr {i32, i32} * %P, i32 0, i32 1
-	ret i32* %x
-}
-
-define i8* @test6() {
-  ret i8* getelementptr ([2 x i8]* @.str15, i32 0, i32 0) 
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CPP/2007-06-16-Funcname.ll b/libclamav/c++/llvm/test/CodeGen/CPP/2007-06-16-Funcname.ll
deleted file mode 100644
index 75b96e6..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CPP/2007-06-16-Funcname.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=cpp -cppfname=WAKKA | not grep makeLLVMModule
-; PR1515
-
-define void @foo() {
-  ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CPP/2009-05-01-Long-Double.ll b/libclamav/c++/llvm/test/CodeGen/CPP/2009-05-01-Long-Double.ll
deleted file mode 100644
index e2d2dd8..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CPP/2009-05-01-Long-Double.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=cpp -cppgen=program -o %t
-
-define x86_fp80 @some_func() nounwind {
-entry:
-	%retval = alloca x86_fp80		; <x86_fp80*> [#uses=2]
-	%call = call i32 (...)* @other_func()		; <i32> [#uses=1]
-	%conv = sitofp i32 %call to x86_fp80		; <x86_fp80> [#uses=1]
-	store x86_fp80 %conv, x86_fp80* %retval
-	%0 = load x86_fp80* %retval		; <x86_fp80> [#uses=1]
-	ret x86_fp80 %0
-}
-
-declare i32 @other_func(...)
diff --git a/libclamav/c++/llvm/test/CodeGen/CPP/2009-05-04-CondBr.ll b/libclamav/c++/llvm/test/CodeGen/CPP/2009-05-04-CondBr.ll
deleted file mode 100644
index 5af9aa7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CPP/2009-05-04-CondBr.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | llc -march=cpp -cppgen=program -o %t
-; RUN: grep "BranchInst::Create(label_if_then, label_if_end, int1_cmp, label_entry);" %t
-
-define i32 @some_func(i32 %a) nounwind {
-entry:
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%a.addr = alloca i32		; <i32*> [#uses=8]
-	store i32 %a, i32* %a.addr
-	%tmp = load i32* %a.addr		; <i32> [#uses=1]
-	%inc = add i32 %tmp, 1		; <i32> [#uses=1]
-	store i32 %inc, i32* %a.addr
-	%tmp1 = load i32* %a.addr		; <i32> [#uses=1]
-	%cmp = icmp slt i32 %tmp1, 3		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	store i32 7, i32* %a.addr
-	br label %if.end
-
-if.end:		; preds = %if.then, %entry
-	%tmp2 = load i32* %a.addr		; <i32> [#uses=1]
-	%inc3 = add i32 %tmp2, 1		; <i32> [#uses=1]
-	store i32 %inc3, i32* %a.addr
-	%tmp4 = load i32* %a.addr		; <i32> [#uses=1]
-	store i32 %tmp4, i32* %retval
-	%0 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CPP/dg.exp b/libclamav/c++/llvm/test/CodeGen/CPP/dg.exp
deleted file mode 100644
index 3276dcc..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CPP/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target CppBackend] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CPP/llvm2cpp.ll b/libclamav/c++/llvm/test/CodeGen/CPP/llvm2cpp.ll
deleted file mode 100644
index 651a65b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CPP/llvm2cpp.ll
+++ /dev/null
@@ -1,756 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis > /dev/null
-; RUN: llvm-as < %s | llc -march=cpp -cppgen=program -o -
-
- at X = global i32 4, align 16		; <i32*> [#uses=0]
-
-define i32* @test1012() align 32 {
-	%X = alloca i32, align 4		; <i32*> [#uses=1]
-	%Y = alloca i32, i32 42, align 16		; <i32*> [#uses=0]
-	%Z = alloca i32		; <i32*> [#uses=0]
-	ret i32* %X
-}
-
-define i32* @test1013() {
-	%X = malloc i32, align 4		; <i32*> [#uses=1]
-	%Y = malloc i32, i32 42, align 16		; <i32*> [#uses=0]
-	%Z = malloc i32		; <i32*> [#uses=0]
-	ret i32* %X
-}
-
-define void @void(i32, i32) {
-	add i32 0, 0		; <i32>:3 [#uses=2]
-	sub i32 0, 4		; <i32>:4 [#uses=2]
-	br label %5
-
-; <label>:5		; preds = %5, %2
-	add i32 %0, %1		; <i32>:6 [#uses=2]
-	sub i32 %6, %4		; <i32>:7 [#uses=1]
-	icmp sle i32 %7, %3		; <i1>:8 [#uses=1]
-	br i1 %8, label %9, label %5
-
-; <label>:9		; preds = %5
-	add i32 %0, %1		; <i32>:10 [#uses=0]
-	sub i32 %6, %4		; <i32>:11 [#uses=1]
-	icmp sle i32 %11, %3		; <i1>:12 [#uses=0]
-	ret void
-}
-
-define i32 @zarro() {
-Startup:
-	ret i32 0
-}
-
-define fastcc void @foo() {
-	ret void
-}
-
-define coldcc void @bar() {
-	call fastcc void @foo( )
-	ret void
-}
-
-define void @structret({ i8 }* sret  %P) {
-	call void @structret( { i8 }* %P sret  )
-	ret void
-}
-
-define void @foo4() {
-	ret void
-}
-
-define coldcc void @bar2() {
-	call fastcc void @foo( )
-	ret void
-}
-
-define cc42 void @bar3() {
-	invoke fastcc void @foo( )
-			to label %Ok unwind label %U
-
-Ok:		; preds = %0
-	ret void
-
-U:		; preds = %0
-	unwind
-}
-
-define void @bar4() {
-	call cc42 void @bar( )
-	invoke cc42 void @bar3( )
-			to label %Ok unwind label %U
-
-Ok:		; preds = %0
-	ret void
-
-U:		; preds = %0
-	unwind
-}
-; ModuleID = 'calltest.ll'
-	%FunTy = type i32 (i32)
-
-define i32 @test1000(i32 %i0) {
-	ret i32 %i0
-}
-
-define void @invoke(%FunTy* %x) {
-	%foo = call i32 %x( i32 123 )		; <i32> [#uses=0]
-	%foo2 = tail call i32 %x( i32 123 )		; <i32> [#uses=0]
-	ret void
-}
-
-define i32 @main(i32 %argc) {
-	%retval = call i32 @test1000( i32 %argc )		; <i32> [#uses=2]
-	%two = add i32 %retval, %retval		; <i32> [#uses=1]
-	%retval2 = invoke i32 @test1000( i32 %argc )
-			to label %Next unwind label %Error		; <i32> [#uses=1]
-
-Next:		; preds = %0
-	%two2 = add i32 %two, %retval2		; <i32> [#uses=1]
-	call void @invoke( %FunTy* @test1000 )
-	ret i32 %two2
-
-Error:		; preds = %0
-	ret i32 -1
-}
-; ModuleID = 'casttest.ll'
-
-define i16 @FunFunc(i64 %x, i8 %z) {
-bb0:
-	%cast110 = sext i8 %z to i16		; <i16> [#uses=1]
-	%cast10 = trunc i64 %x to i16		; <i16> [#uses=1]
-	%reg109 = add i16 %cast110, %cast10		; <i16> [#uses=1]
-	ret i16 %reg109
-}
-; ModuleID = 'cfgstructures.ll'
-
-define void @irreducible(i1 %cond) {
-	br i1 %cond, label %X, label %Y
-
-X:		; preds = %Y, %0
-	br label %Y
-
-Y:		; preds = %X, %0
-	br label %X
-}
-
-define void @sharedheader(i1 %cond) {
-	br label %A
-
-A:		; preds = %Y, %X, %0
-	br i1 %cond, label %X, label %Y
-
-X:		; preds = %A
-	br label %A
-
-Y:		; preds = %A
-	br label %A
-}
-
-define void @nested(i1 %cond1, i1 %cond2, i1 %cond3) {
-	br label %Loop1
-
-Loop1:		; preds = %L2Exit, %0
-	br label %Loop2
-
-Loop2:		; preds = %L3Exit, %Loop1
-	br label %Loop3
-
-Loop3:		; preds = %Loop3, %Loop2
-	br i1 %cond3, label %Loop3, label %L3Exit
-
-L3Exit:		; preds = %Loop3
-	br i1 %cond2, label %Loop2, label %L2Exit
-
-L2Exit:		; preds = %L3Exit
-	br i1 %cond1, label %Loop1, label %L1Exit
-
-L1Exit:		; preds = %L2Exit
-	ret void
-}
-; ModuleID = 'constexpr.ll'
-	%SAType = type { i32, { [2 x float], i64 } }
-	%SType = type { i32, { float, { i8 } }, i64 }
-global i64 1		; <i64*>:0 [#uses=0]
-global i64 74514		; <i64*>:1 [#uses=0]
- at t2 = global i32* @t1		; <i32**> [#uses=0]
- at t3 = global i32* @t1		; <i32**> [#uses=2]
- at t1 = global i32 4		; <i32*> [#uses=2]
- at t4 = global i32** @t3		; <i32***> [#uses=1]
- at t5 = global i32** @t3		; <i32***> [#uses=0]
- at t6 = global i32*** @t4		; <i32****> [#uses=0]
- at t7 = global float* inttoptr (i32 12345678 to float*)		; <float**> [#uses=0]
- at t9 = global i32 8		; <i32*> [#uses=0]
-global i32* bitcast (float* @4 to i32*)		; <i32**>:2 [#uses=0]
-global float* @4		; <float**>:3 [#uses=0]
-global float 0.000000e+00		; <float*>:4 [#uses=2]
- at array = constant [2 x i32] [ i32 12, i32 52 ]		; <[2 x i32]*> [#uses=1]
- at arrayPtr = global i32* getelementptr ([2 x i32]* @array, i64 0, i64 0)		; <i32**> [#uses=1]
- at arrayPtr5 = global i32** getelementptr (i32** @arrayPtr, i64 5)		; <i32***> [#uses=0]
- at somestr = constant [11 x i8] c"hello world"		; <[11 x i8]*> [#uses=2]
- at char5 = global i8* getelementptr ([11 x i8]* @somestr, i64 0, i64 5)		; <i8**> [#uses=0]
- at char8a = global i32* bitcast (i8* getelementptr ([11 x i8]* @somestr, i64 0, i64 8) to i32*)		; <i32**> [#uses=0]
- at char8b = global i8* getelementptr ([11 x i8]* @somestr, i64 0, i64 8)		; <i8**> [#uses=0]
- at S1 = global %SType* null		; <%SType**> [#uses=1]
- at S2c = constant %SType {
-    i32 1, 
-    { float, { i8 } } { float 2.000000e+00, { i8 } { i8 3 } }, 
-    i64 4 }		; <%SType*> [#uses=3]
- at S3c = constant %SAType { i32 1, { [2 x float], i64 } { [2 x float] [ float 2.000000e+00, float 3.000000e+00 ], i64 4 } }		; <%SAType*> [#uses=1]
- at S1ptr = global %SType** @S1		; <%SType***> [#uses=0]
- at S2 = global %SType* @S2c		; <%SType**> [#uses=0]
- at S3 = global %SAType* @S3c		; <%SAType**> [#uses=0]
- at S1fld1a = global float* getelementptr (%SType* @S2c, i64 0, i32 1, i32 0)		; <float**> [#uses=0]
- at S1fld1b = global float* getelementptr (%SType* @S2c, i64 0, i32 1, i32 0)		; <float**> [#uses=1]
- at S1fld1bptr = global float** @S1fld1b		; <float***> [#uses=0]
- at S2fld3 = global i8* getelementptr (%SType* @S2c, i64 0, i32 1, i32 1, i32 0)		; <i8**> [#uses=0]
-
-; ModuleID = 'constpointer.ll'
- at cpt3 = global i32* @cpt1		; <i32**> [#uses=1]
- at cpt1 = global i32 4		; <i32*> [#uses=2]
- at cpt4 = global i32** @cpt3		; <i32***> [#uses=0]
- at cpt2 = global i32* @cpt1		; <i32**> [#uses=0]
-global float* @7		; <float**>:0 [#uses=0]
-global float* @7		; <float**>:1 [#uses=0]
-global float 0.000000e+00		; <float*>:2 [#uses=3]
-global float* @7		; <float**>:3 [#uses=0]
- at fptr = global void ()* @f		; <void ()**> [#uses=0]
- at sptr1 = global [11 x i8]* @somestr		; <[11 x i8]**> [#uses=0]
- at somestr2 = constant [11 x i8] c"hello world"		; <[11 x i8]*> [#uses=2]
- at sptr2 = global [11 x i8]* @somestr2		; <[11 x i8]**> [#uses=0]
-
-declare void @f()
-; ModuleID = 'escaped_label.ll'
-
-define i32 @foo3() {
-	br label "foo`~!@#$%^&*()-_=+{}[]\\|;:',<.>/?"
-
-"foo`~!@#$%^&*()-_=+{}[]\\|;:',<.>/?":		; preds = %0
-	ret i32 17
-}
-; ModuleID = 'float.ll'
- at F1 = global float 4.000000e+00		; <float*> [#uses=0]
- at D1 = global double 4.000000e+00		; <double*> [#uses=0]
-; ModuleID = 'fold-fpcast.ll'
-
-define i32 @test1() {
-	ret i32 1080872141
-}
-
-define float @test1002() {
-	ret float 0x36E1000000000000
-}
-
-define i64 @test3() {
-	ret i64 4614256656431372362
-}
-
-define double @test4() {
-	ret double 2.075076e-322
-}
-; ModuleID = 'forwardreftest.ll'
-	%myfn = type float (i32, double, i32, i16)
-	%myty = type i32
-	%thisfuncty = type i32 (i32)*
-
-declare void @F(%thisfuncty, %thisfuncty, %thisfuncty)
-
-define i32 @zarro2(i32 %Func) {
-Startup:
-	add i32 0, 10		; <i32>:0 [#uses=0]
-	ret i32 0
-}
-
-define i32 @test1004(i32) {
-	call void @F( %thisfuncty @zarro2, %thisfuncty @test1004, %thisfuncty @foozball )
-	ret i32 0
-}
-
-define i32 @foozball(i32) {
-	ret i32 0
-}
-
-; ModuleID = 'globalredefinition.ll'
- at A = global i32* @B		; <i32**> [#uses=0]
- at B = global i32 7		; <i32*> [#uses=1]
-
-define void @X() {
-	ret void
-}
-; ModuleID = 'global_section.ll'
- at GlobSec = global i32 4, section "foo", align 16
-
-define void @test1005() section "bar" {
-	ret void
-}
-
-; ModuleID = 'globalvars.ll'
- at MyVar = external global i32		; <i32*> [#uses=1]
- at MyIntList = external global { \2*, i32 }		; <{ \2*, i32 }*> [#uses=1]
-external global i32		; <i32*>:0 [#uses=0]
- at AConst = constant i32 123		; <i32*> [#uses=0]
- at AString = constant [4 x i8] c"test"		; <[4 x i8]*> [#uses=0]
- at ZeroInit = global { [100 x i32], [40 x float] } zeroinitializer		; <{ [100 x i32], [40 x float] }*> [#uses=0]
-
-define i32 @foo10015(i32 %blah) {
-	store i32 5, i32* @MyVar
-	%idx = getelementptr { \2*, i32 }* @MyIntList, i64 0, i32 1		; <i32*> [#uses=1]
-	store i32 12, i32* %idx
-	ret i32 %blah
-}
-; ModuleID = 'indirectcall2.ll'
-
-define i64 @test1006(i64 %X) {
-	ret i64 %X
-}
-
-define i64 @fib(i64 %n) {
-; <label>:0
-	%T = icmp ult i64 %n, 2		; <i1> [#uses=1]
-	br i1 %T, label %BaseCase, label %RecurseCase
-
-RecurseCase:		; preds = %0
-	%result = call i64 @test1006( i64 %n )		; <i64> [#uses=0]
-	br label %BaseCase
-
-BaseCase:		; preds = %RecurseCase, %0
-	%X = phi i64 [ 1, %0 ], [ 2, %RecurseCase ]		; <i64> [#uses=1]
-	ret i64 %X
-}
-; ModuleID = 'indirectcall.ll'
-
-declare i32 @atoi(i8*)
-
-define i64 @fibonacc(i64 %n) {
-	icmp ult i64 %n, 2		; <i1>:1 [#uses=1]
-	br i1 %1, label %BaseCase, label %RecurseCase
-
-BaseCase:		; preds = %0
-	ret i64 1
-
-RecurseCase:		; preds = %0
-	%n2 = sub i64 %n, 2		; <i64> [#uses=1]
-	%n1 = sub i64 %n, 1		; <i64> [#uses=1]
-	%f2 = call i64 @fibonacc( i64 %n2 )		; <i64> [#uses=1]
-	%f1 = call i64 @fibonacc( i64 %n1 )		; <i64> [#uses=1]
-	%result = add i64 %f2, %f1		; <i64> [#uses=1]
-	ret i64 %result
-}
-
-define i64 @realmain(i32 %argc, i8** %argv) {
-; <label>:0
-	icmp eq i32 %argc, 2		; <i1>:1 [#uses=1]
-	br i1 %1, label %HasArg, label %Continue
-
-HasArg:		; preds = %0
-	%n1 = add i32 1, 1		; <i32> [#uses=1]
-	br label %Continue
-
-Continue:		; preds = %HasArg, %0
-	%n = phi i32 [ %n1, %HasArg ], [ 1, %0 ]		; <i32> [#uses=1]
-	%N = sext i32 %n to i64		; <i64> [#uses=1]
-	%F = call i64 @fib( i64 %N )		; <i64> [#uses=1]
-	ret i64 %F
-}
-
-define i64 @trampoline(i64 %n, i64 (i64)* %fibfunc) {
-	%F = call i64 %fibfunc( i64 %n )		; <i64> [#uses=1]
-	ret i64 %F
-}
-
-define i32 @main2() {
-	%Result = call i64 @trampoline( i64 10, i64 (i64)* @fib )		; <i64> [#uses=1]
-	%Result.upgrd.1 = trunc i64 %Result to i32		; <i32> [#uses=1]
-	ret i32 %Result.upgrd.1
-}
-; ModuleID = 'inlineasm.ll'
-module asm "this is an inline asm block"
-module asm "this is another inline asm block"
-
-define i32 @test1007() {
-	%X = call i32 asm "tricky here $0, $1", "=r,r"( i32 4 )		; <i32> [#uses=1]
-	call void asm sideeffect "eieio", ""( )
-	ret i32 %X
-}
-; ModuleID = 'instructions.ll'
-
-define i32 @test_extractelement(<4 x i32> %V) {
-	%R = extractelement <4 x i32> %V, i32 1		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define <4 x i32> @test_insertelement(<4 x i32> %V) {
-	%R = insertelement <4 x i32> %V, i32 0, i32 0		; <<4 x i32>> [#uses=1]
-	ret <4 x i32> %R
-}
-
-define <4 x i32> @test_shufflevector_u(<4 x i32> %V) {
-	%R = shufflevector <4 x i32> %V, <4 x i32> %V, <4 x i32> < i32 1, i32 undef, i32 7, i32 2 >		; <<4 x i32>> [#uses=1]
-	ret <4 x i32> %R
-}
-
-define <4 x float> @test_shufflevector_f(<4 x float> %V) {
-	%R = shufflevector <4 x float> %V, <4 x float> undef, <4 x i32> < i32 1, i32 undef, i32 7, i32 2 >		; <<4 x float>> [#uses=1]
-	ret <4 x float> %R
-}
-; ModuleID = 'intrinsics.ll'
-
-declare i1 @llvm.isunordered.f32(float, float)
-
-declare i1 @llvm.isunordered.f64(double, double)
-
-declare void @llvm.prefetch(i8*, i32, i32)
-
-declare float @llvm.sqrt.f32(float)
-
-declare double @llvm.sqrt.f64(double)
-
-define void @libm() {
-	fcmp uno float 1.000000e+00, 2.000000e+00		; <i1>:1 [#uses=0]
-	fcmp uno double 3.000000e+00, 4.000000e+00		; <i1>:2 [#uses=0]
-	call void @llvm.prefetch( i8* null, i32 1, i32 3 )
-	call float @llvm.sqrt.f32( float 5.000000e+00 )		; <float>:3 [#uses=0]
-	call double @llvm.sqrt.f64( double 6.000000e+00 )		; <double>:4 [#uses=0]
-	call i8 @llvm.ctpop.i8( i8 10 )		; <i32>:5 [#uses=1]
-	call i16 @llvm.ctpop.i16( i16 11 )		; <i32>:7 [#uses=1]
-	call i32 @llvm.ctpop.i32( i32 12 )		; <i32>:9 [#uses=1]
-	call i64 @llvm.ctpop.i64( i64 13 )		; <i32>:11 [#uses=1]
-	call i8 @llvm.ctlz.i8( i8 14 )		; <i32>:13 [#uses=1]
-	call i16 @llvm.ctlz.i16( i16 15 )		; <i32>:15 [#uses=1]
-	call i32 @llvm.ctlz.i32( i32 16 )		; <i32>:17 [#uses=1]
-	call i64 @llvm.ctlz.i64( i64 17 )		; <i32>:19 [#uses=1]
-	call i8 @llvm.cttz.i8( i8 18 )		; <i32>:21 [#uses=1]
-	call i16 @llvm.cttz.i16( i16 19 )		; <i32>:23 [#uses=1]
-	call i32 @llvm.cttz.i32( i32 20 )		; <i32>:25 [#uses=1]
-	call i64 @llvm.cttz.i64( i64 21 )		; <i32>:27 [#uses=1]
-	ret void
-}
-
-declare i8 @llvm.ctpop.i8(i8)
-
-declare i16 @llvm.ctpop.i16(i16)
-
-declare i32 @llvm.ctpop.i32(i32)
-
-declare i64 @llvm.ctpop.i64(i64)
-
-declare i8 @llvm.ctlz.i8(i8)
-
-declare i16 @llvm.ctlz.i16(i16)
-
-declare i32 @llvm.ctlz.i32(i32)
-
-declare i64 @llvm.ctlz.i64(i64)
-
-declare i8 @llvm.cttz.i8(i8)
-
-declare i16 @llvm.cttz.i16(i16)
-
-declare i32 @llvm.cttz.i32(i32)
-
-declare i64 @llvm.cttz.i64(i64)
-
-; ModuleID = 'packed.ll'
- at foo1 = external global <4 x float>		; <<4 x float>*> [#uses=2]
- at foo102 = external global <2 x i32>		; <<2 x i32>*> [#uses=2]
-
-define void @main3() {
-	store <4 x float> < float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00 >, <4 x float>* @foo1
-	store <2 x i32> < i32 4, i32 4 >, <2 x i32>* @foo102
-	%l1 = load <4 x float>* @foo1		; <<4 x float>> [#uses=0]
-	%l2 = load <2 x i32>* @foo102		; <<2 x i32>> [#uses=0]
-	ret void
-}
-
-; ModuleID = 'properties.ll'
-target datalayout = "e-p:32:32"
-target triple = "proc-vend-sys"
-deplibs = [ "m", "c" ]
-; ModuleID = 'prototype.ll'
-
-declare i32 @bar1017(i32 %in)
-
-define i32 @foo1016(i32 %blah) {
-	%xx = call i32 @bar1017( i32 %blah )		; <i32> [#uses=1]
-	ret i32 %xx
-}
-
-; ModuleID = 'recursivetype.ll'
-	%list = type { %list*, i32 }
-
-declare i8* @malloc(i32)
-
-define void @InsertIntoListTail(%list** %L, i32 %Data) {
-bb1:
-	%reg116 = load %list** %L		; <%list*> [#uses=1]
-	%cast1004 = inttoptr i64 0 to %list*		; <%list*> [#uses=1]
-	%cond1000 = icmp eq %list* %reg116, %cast1004		; <i1> [#uses=1]
-	br i1 %cond1000, label %bb3, label %bb2
-
-bb2:		; preds = %bb2, %bb1
-	%reg117 = phi %list** [ %reg118, %bb2 ], [ %L, %bb1 ]		; <%list**> [#uses=1]
-	%cast1010 = bitcast %list** %reg117 to %list***		; <%list***> [#uses=1]
-	%reg118 = load %list*** %cast1010		; <%list**> [#uses=3]
-	%reg109 = load %list** %reg118		; <%list*> [#uses=1]
-	%cast1005 = inttoptr i64 0 to %list*		; <%list*> [#uses=1]
-	%cond1001 = icmp ne %list* %reg109, %cast1005		; <i1> [#uses=1]
-	br i1 %cond1001, label %bb2, label %bb3
-
-bb3:		; preds = %bb2, %bb1
-	%reg119 = phi %list** [ %reg118, %bb2 ], [ %L, %bb1 ]		; <%list**> [#uses=1]
-	%cast1006 = bitcast %list** %reg119 to i8**		; <i8**> [#uses=1]
-	%reg111 = call i8* @malloc( i32 16 )		; <i8*> [#uses=3]
-	store i8* %reg111, i8** %cast1006
-	%reg111.upgrd.1 = ptrtoint i8* %reg111 to i64		; <i64> [#uses=1]
-	%reg1002 = add i64 %reg111.upgrd.1, 8		; <i64> [#uses=1]
-	%reg1002.upgrd.2 = inttoptr i64 %reg1002 to i8*		; <i8*> [#uses=1]
-	%cast1008 = bitcast i8* %reg1002.upgrd.2 to i32*		; <i32*> [#uses=1]
-	store i32 %Data, i32* %cast1008
-	%cast1003 = inttoptr i64 0 to i64*		; <i64*> [#uses=1]
-	%cast1009 = bitcast i8* %reg111 to i64**		; <i64**> [#uses=1]
-	store i64* %cast1003, i64** %cast1009
-	ret void
-}
-
-define %list* @FindData(%list* %L, i32 %Data) {
-bb1:
-	br label %bb2
-
-bb2:		; preds = %bb6, %bb1
-	%reg115 = phi %list* [ %reg116, %bb6 ], [ %L, %bb1 ]		; <%list*> [#uses=4]
-	%cast1014 = inttoptr i64 0 to %list*		; <%list*> [#uses=1]
-	%cond1011 = icmp ne %list* %reg115, %cast1014		; <i1> [#uses=1]
-	br i1 %cond1011, label %bb4, label %bb3
-
-bb3:		; preds = %bb2
-	ret %list* null
-
-bb4:		; preds = %bb2
-	%idx = getelementptr %list* %reg115, i64 0, i32 1		; <i32*> [#uses=1]
-	%reg111 = load i32* %idx		; <i32> [#uses=1]
-	%cond1013 = icmp ne i32 %reg111, %Data		; <i1> [#uses=1]
-	br i1 %cond1013, label %bb6, label %bb5
-
-bb5:		; preds = %bb4
-	ret %list* %reg115
-
-bb6:		; preds = %bb4
-	%idx2 = getelementptr %list* %reg115, i64 0, i32 0		; <%list**> [#uses=1]
-	%reg116 = load %list** %idx2		; <%list*> [#uses=1]
-	br label %bb2
-}
-; ModuleID = 'simplecalltest.ll'
-	%FunTy = type i32 (i32)
-
-define void @invoke1019(%FunTy* %x) {
-	%foo = call i32 %x( i32 123 )		; <i32> [#uses=0]
-	ret void
-}
-
-define i32 @main4(i32 %argc, i8** %argv, i8** %envp) {
-	%retval = call i32 @test1008( i32 %argc )		; <i32> [#uses=2]
-	%two = add i32 %retval, %retval		; <i32> [#uses=1]
-	%retval2 = call i32 @test1008( i32 %argc )		; <i32> [#uses=1]
-	%two2 = add i32 %two, %retval2		; <i32> [#uses=1]
-	call void @invoke1019( %FunTy* @test1008 )
-	ret i32 %two2
-}
-
-define i32 @test1008(i32 %i0) {
-	ret i32 %i0
-}
-; ModuleID = 'smallest.ll'
-; ModuleID = 'small.ll'
-	%x = type i32
-
-define i32 @foo1020(i32 %in) {
-label:
-	ret i32 2
-}
-; ModuleID = 'testalloca.ll'
-	%inners = type { float, { i8 } }
-	%struct = type { i32, %inners, i64 }
-
-define i32 @testfunction(i32 %i0, i32 %j0) {
-	alloca i8, i32 5		; <i8*>:1 [#uses=0]
-	%ptr = alloca i32		; <i32*> [#uses=2]
-	store i32 3, i32* %ptr
-	%val = load i32* %ptr		; <i32> [#uses=0]
-	%sptr = alloca %struct		; <%struct*> [#uses=2]
-	%nsptr = getelementptr %struct* %sptr, i64 0, i32 1		; <%inners*> [#uses=1]
-	%ubsptr = getelementptr %inners* %nsptr, i64 0, i32 1		; <{ i8 }*> [#uses=1]
-	%idx = getelementptr { i8 }* %ubsptr, i64 0, i32 0		; <i8*> [#uses=1]
-	store i8 4, i8* %idx
-	%fptr = getelementptr %struct* %sptr, i64 0, i32 1, i32 0		; <float*> [#uses=1]
-	store float 4.000000e+00, float* %fptr
-	ret i32 3
-}
-; ModuleID = 'testconstants.ll'
- at somestr3 = constant [11 x i8] c"hello world"
- at array99 = constant [2 x i32] [ i32 12, i32 52 ]
-constant { i32, i32 } { i32 4, i32 3 }		; <{ i32, i32 }*>:0 [#uses=0]
-
-define [2 x i32]* @testfunction99(i32 %i0, i32 %j0) {
-	ret [2 x i32]* @array
-}
-
-define i8* @otherfunc(i32, double) {
-	%somestr = getelementptr [11 x i8]* @somestr3, i64 0, i64 0		; <i8*> [#uses=1]
-	ret i8* %somestr
-}
-
-define i8* @yetanotherfunc(i32, double) {
-	ret i8* null
-}
-
-define i32 @negativeUnsigned() {
-	ret i32 -1
-}
-
-define i32 @largeSigned() {
-	ret i32 -394967296
-}
-; ModuleID = 'testlogical.ll'
-
-define i32 @simpleAdd(i32 %i0, i32 %j0) {
-	%t1 = xor i32 %i0, %j0		; <i32> [#uses=1]
-	%t2 = or i32 %i0, %j0		; <i32> [#uses=1]
-	%t3 = and i32 %t1, %t2		; <i32> [#uses=1]
-	ret i32 %t3
-}
-; ModuleID = 'testmemory.ll'
-	%complexty = type { i32, { [4 x i8*], float }, double }
-	%struct = type { i32, { float, { i8 } }, i64 }
-
-define i32 @main6() {
-	call i32 @testfunction98( i64 0, i64 1 )
-	ret i32 0
-}
-
-define i32 @testfunction98(i64 %i0, i64 %j0) {
-	%array0 = malloc [4 x i8]		; <[4 x i8]*> [#uses=2]
-	%size = add i32 2, 2		; <i32> [#uses=1]
-	%array1 = malloc i8, i32 4		; <i8*> [#uses=1]
-	%array2 = malloc i8, i32 %size		; <i8*> [#uses=1]
-	%idx = getelementptr [4 x i8]* %array0, i64 0, i64 2		; <i8*> [#uses=1]
-	store i8 123, i8* %idx
-	free [4 x i8]* %array0
-	free i8* %array1
-	free i8* %array2
-	%aa = alloca %complexty, i32 5		; <%complexty*> [#uses=1]
-	%idx2 = getelementptr %complexty* %aa, i64 %i0, i32 1, i32 0, i64 %j0		; <i8**> [#uses=1]
-	store i8* null, i8** %idx2
-	%ptr = alloca i32		; <i32*> [#uses=2]
-	store i32 3, i32* %ptr
-	%val = load i32* %ptr		; <i32> [#uses=0]
-	%sptr = alloca %struct		; <%struct*> [#uses=1]
-	%ubsptr = getelementptr %struct* %sptr, i64 0, i32 1, i32 1		; <{ i8 }*> [#uses=1]
-	%idx3 = getelementptr { i8 }* %ubsptr, i64 0, i32 0		; <i8*> [#uses=1]
-	store i8 4, i8* %idx3
-	ret i32 3
-}
-; ModuleID = 'testswitch.ll'
-	%int = type i32
-
-define i32 @squared(i32 %i0) {
-	switch i32 %i0, label %Default [
-		 i32 1, label %Case1
-		 i32 2, label %Case2
-		 i32 4, label %Case4
-	]
-
-Default:		; preds = %0
-	ret i32 -1
-
-Case1:		; preds = %0
-	ret i32 1
-
-Case2:		; preds = %0
-	ret i32 4
-
-Case4:		; preds = %0
-	ret i32 16
-}
-; ModuleID = 'testvarargs.ll'
-
-declare i32 @printf(i8*, ...)
-
-define i32 @testvarar() {
-	call i32 (i8*, ...)* @printf( i8* null, i32 12, i8 42 )		; <i32>:1 [#uses=1]
-	ret i32 %1
-}
-; ModuleID = 'undefined.ll'
- at X2 = global i32 undef		; <i32*> [#uses=0]
-
-declare i32 @atoi(i8*)
-
-define i32 @test1009() {
-	ret i32 undef
-}
-
-define i32 @test1003() {
-	%X = add i32 undef, 1		; <i32> [#uses=1]
-	ret i32 %X
-}
-; ModuleID = 'unreachable.ll'
-
-declare void @bar()
-
-define i32 @foo1021() {
-	unreachable
-}
-
-define double @xyz() {
-	call void @bar( )
-	unreachable
-}
-; ModuleID = 'varargs.ll'
-
-declare void @llvm.va_start(i8* %ap)
-
-declare void @llvm.va_copy(i8* %aq, i8* %ap)
-
-declare void @llvm.va_end(i8* %ap)
-
-define i32 @test1010(i32 %X, ...) {
-	%ap = alloca i8*		; <i8**> [#uses=4]
-	%va.upgrd.1 = bitcast i8** %ap to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_start( i8* %va.upgrd.1 )
-	%tmp = va_arg i8** %ap, i32		; <i32> [#uses=1]
-	%aq = alloca i8*		; <i8**> [#uses=2]
-	%va0.upgrd.2 = bitcast i8** %aq to i8*		; <i8*> [#uses=1]
-	%va1.upgrd.3 = bitcast i8** %ap to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_copy( i8* %va0.upgrd.2, i8* %va1.upgrd.3 )
-	%va.upgrd.4 = bitcast i8** %aq to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_end( i8* %va.upgrd.4 )
-	%va.upgrd.5 = bitcast i8** %ap to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_end( i8* %va.upgrd.5 )
-	ret i32 %tmp
-}
-; ModuleID = 'varargs_new.ll'
-
-declare void @llvm.va_start(i8*)
-
-declare void @llvm.va_copy(i8*, i8*)
-
-declare void @llvm.va_end(i8*)
-
-define i32 @test1011(i32 %X, ...) {
-	%ap = alloca i8*		; <i8**> [#uses=4]
-	%aq = alloca i8*		; <i8**> [#uses=2]
-	%va.upgrd.1 = bitcast i8** %ap to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_start( i8* %va.upgrd.1 )
-	%tmp = va_arg i8** %ap, i32		; <i32> [#uses=1]
-	%apv = load i8** %ap		; <i8*> [#uses=1]
-	%va0.upgrd.2 = bitcast i8** %aq to i8*		; <i8*> [#uses=1]
-	%va1.upgrd.3 = bitcast i8* %apv to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_copy( i8* %va0.upgrd.2, i8* %va1.upgrd.3 )
-	%va.upgrd.4 = bitcast i8** %aq to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_end( i8* %va.upgrd.4 )
-	%va.upgrd.5 = bitcast i8** %ap to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_end( i8* %va.upgrd.5 )
-	ret i32 %tmp
-}
-; ModuleID = 'weirdnames.ll'
-	"&^ " = type { i32 }
-@"%.*+ foo" = global "&^ " { i32 5 }		; <"&^ "*> [#uses=0]
-@"0" = global float 0.000000e+00		; <float*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/2009-01-01-BrCond.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/2009-01-01-BrCond.ll
deleted file mode 100644
index 75e0ed0..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/2009-01-01-BrCond.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | llc -march=cellspu -o - | grep brz
-; PR3274
-
-target datalayout = "E-p:32:32:128-i1:8:128-i8:8:128-i16:16:128-i32:32:128-i64:32:128-f32:32:128-f64:64:128-v64:64:64-v128:128:128-a0:0:128-s0:128:128"
-target triple = "spu"
-	%struct.anon = type { i64 }
-	%struct.fp_number_type = type { i32, i32, i32, [4 x i8], %struct.anon }
-
-define double @__floatunsidf(i32 %arg_a) nounwind {
-entry:
-	%in = alloca %struct.fp_number_type, align 16
-	%0 = getelementptr %struct.fp_number_type* %in, i32 0, i32 1
-	store i32 0, i32* %0, align 4
-	%1 = icmp eq i32 %arg_a, 0
-	%2 = getelementptr %struct.fp_number_type* %in, i32 0, i32 0
-	br i1 %1, label %bb, label %bb1
-
-bb:		; preds = %entry
-	store i32 2, i32* %2, align 8
-	br label %bb7
-
-bb1:		; preds = %entry
-	ret double 0.0
-
-bb7:		; preds = %bb5, %bb1, %bb
-	ret double 1.0
-}
-
-; declare i32 @llvm.ctlz.i32(i32) nounwind readnone
-
-declare double @__pack_d(%struct.fp_number_type*)
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/and_ops.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/and_ops.ll
deleted file mode 100644
index a18b6f8..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/and_ops.ll
+++ /dev/null
@@ -1,279 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep and    %t1.s | count 234
-; RUN: grep andc   %t1.s | count 85
-; RUN: grep andi   %t1.s | count 37
-; RUN: grep andhi  %t1.s | count 30
-; RUN: grep andbi  %t1.s | count 4
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; AND instruction generation:
-define <4 x i32> @and_v4i32_1(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = and <4 x i32> %arg1, %arg2
-        ret <4 x i32> %A
-}
-
-define <4 x i32> @and_v4i32_2(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = and <4 x i32> %arg2, %arg1
-        ret <4 x i32> %A
-}
-
-define <8 x i16> @and_v8i16_1(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = and <8 x i16> %arg1, %arg2
-        ret <8 x i16> %A
-}
-
-define <8 x i16> @and_v8i16_2(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = and <8 x i16> %arg2, %arg1
-        ret <8 x i16> %A
-}
-
-define <16 x i8> @and_v16i8_1(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = and <16 x i8> %arg2, %arg1
-        ret <16 x i8> %A
-}
-
-define <16 x i8> @and_v16i8_2(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = and <16 x i8> %arg1, %arg2
-        ret <16 x i8> %A
-}
-
-define i32 @and_i32_1(i32 %arg1, i32 %arg2) {
-        %A = and i32 %arg2, %arg1
-        ret i32 %A
-}
-
-define i32 @and_i32_2(i32 %arg1, i32 %arg2) {
-        %A = and i32 %arg1, %arg2
-        ret i32 %A
-}
-
-define i16 @and_i16_1(i16 %arg1, i16 %arg2) {
-        %A = and i16 %arg2, %arg1
-        ret i16 %A
-}
-
-define i16 @and_i16_2(i16 %arg1, i16 %arg2) {
-        %A = and i16 %arg1, %arg2
-        ret i16 %A
-}
-
-define i8 @and_i8_1(i8 %arg1, i8 %arg2) {
-        %A = and i8 %arg2, %arg1
-        ret i8 %A
-}
-
-define i8 @and_i8_2(i8 %arg1, i8 %arg2) {
-        %A = and i8 %arg1, %arg2
-        ret i8 %A
-}
-
-; ANDC instruction generation:
-define <4 x i32> @andc_v4i32_1(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = xor <4 x i32> %arg2, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = and <4 x i32> %arg1, %A
-        ret <4 x i32> %B
-}
-
-define <4 x i32> @andc_v4i32_2(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = xor <4 x i32> %arg1, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = and <4 x i32> %arg2, %A
-        ret <4 x i32> %B
-}
-
-define <4 x i32> @andc_v4i32_3(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = xor <4 x i32> %arg1, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = and <4 x i32> %A, %arg2
-        ret <4 x i32> %B
-}
-
-define <8 x i16> @andc_v8i16_1(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = xor <8 x i16> %arg2, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                    i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %arg1, %A
-        ret <8 x i16> %B
-}
-
-define <8 x i16> @andc_v8i16_2(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = xor <8 x i16> %arg1, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                    i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %arg2, %A
-        ret <8 x i16> %B
-}
-
-define <16 x i8> @andc_v16i8_1(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = xor <16 x i8> %arg1, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %arg2, %A
-        ret <16 x i8> %B
-}
-
-define <16 x i8> @andc_v16i8_2(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = xor <16 x i8> %arg2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %arg1, %A
-        ret <16 x i8> %B
-}
-
-define <16 x i8> @andc_v16i8_3(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = xor <16 x i8> %arg2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %A, %arg1
-        ret <16 x i8> %B
-}
-
-define i32 @andc_i32_1(i32 %arg1, i32 %arg2) {
-        %A = xor i32 %arg2, -1
-        %B = and i32 %A, %arg1
-        ret i32 %B
-}
-
-define i32 @andc_i32_2(i32 %arg1, i32 %arg2) {
-        %A = xor i32 %arg1, -1
-        %B = and i32 %A, %arg2
-        ret i32 %B
-}
-
-define i32 @andc_i32_3(i32 %arg1, i32 %arg2) {
-        %A = xor i32 %arg2, -1
-        %B = and i32 %arg1, %A
-        ret i32 %B
-}
-
-define i16 @andc_i16_1(i16 %arg1, i16 %arg2) {
-        %A = xor i16 %arg2, -1
-        %B = and i16 %A, %arg1
-        ret i16 %B
-}
-
-define i16 @andc_i16_2(i16 %arg1, i16 %arg2) {
-        %A = xor i16 %arg1, -1
-        %B = and i16 %A, %arg2
-        ret i16 %B
-}
-
-define i16 @andc_i16_3(i16 %arg1, i16 %arg2) {
-        %A = xor i16 %arg2, -1
-        %B = and i16 %arg1, %A
-        ret i16 %B
-}
-
-define i8 @andc_i8_1(i8 %arg1, i8 %arg2) {
-        %A = xor i8 %arg2, -1
-        %B = and i8 %A, %arg1
-        ret i8 %B
-}
-
-define i8 @andc_i8_2(i8 %arg1, i8 %arg2) {
-        %A = xor i8 %arg1, -1
-        %B = and i8 %A, %arg2
-        ret i8 %B
-}
-
-define i8 @andc_i8_3(i8 %arg1, i8 %arg2) {
-        %A = xor i8 %arg2, -1
-        %B = and i8 %arg1, %A
-        ret i8 %B
-}
-
-; ANDI instruction generation (i32 data type):
-define <4 x i32> @andi_v4i32_1(<4 x i32> %in) {
-        %tmp2 = and <4 x i32> %in, < i32 511, i32 511, i32 511, i32 511 >
-        ret <4 x i32> %tmp2
-}
-
-define <4 x i32> @andi_v4i32_2(<4 x i32> %in) {
-        %tmp2 = and <4 x i32> %in, < i32 510, i32 510, i32 510, i32 510 >
-        ret <4 x i32> %tmp2
-}
-
-define <4 x i32> @andi_v4i32_3(<4 x i32> %in) {
-        %tmp2 = and <4 x i32> %in, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        ret <4 x i32> %tmp2
-}
-
-define <4 x i32> @andi_v4i32_4(<4 x i32> %in) {
-        %tmp2 = and <4 x i32> %in, < i32 -512, i32 -512, i32 -512, i32 -512 >
-        ret <4 x i32> %tmp2
-}
-
-define i32 @andi_u32(i32 zeroext  %in) zeroext  {
-        %tmp37 = and i32 %in, 37
-        ret i32 %tmp37
-}
-
-define i32 @andi_i32(i32 signext  %in) signext  {
-        %tmp38 = and i32 %in, 37
-        ret i32 %tmp38
-}
-
-define i32 @andi_i32_1(i32 %in) {
-        %tmp37 = and i32 %in, 37
-        ret i32 %tmp37
-}
-
-; ANDHI instruction generation (i16 data type):
-define <8 x i16> @andhi_v8i16_1(<8 x i16> %in) {
-        %tmp2 = and <8 x i16> %in, < i16 511, i16 511, i16 511, i16 511,
-                                     i16 511, i16 511, i16 511, i16 511 >
-        ret <8 x i16> %tmp2
-}
-
-define <8 x i16> @andhi_v8i16_2(<8 x i16> %in) {
-        %tmp2 = and <8 x i16> %in, < i16 510, i16 510, i16 510, i16 510,
-                                     i16 510, i16 510, i16 510, i16 510 >
-        ret <8 x i16> %tmp2
-}
-
-define <8 x i16> @andhi_v8i16_3(<8 x i16> %in) {
-        %tmp2 = and <8 x i16> %in, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1,
-                                     i16 -1, i16 -1, i16 -1 >
-        ret <8 x i16> %tmp2
-}
-
-define <8 x i16> @andhi_v8i16_4(<8 x i16> %in) {
-        %tmp2 = and <8 x i16> %in, < i16 -512, i16 -512, i16 -512, i16 -512,
-                                     i16 -512, i16 -512, i16 -512, i16 -512 >
-        ret <8 x i16> %tmp2
-}
-
-define i16 @andhi_u16(i16 zeroext  %in) zeroext  {
-        %tmp37 = and i16 %in, 37         ; <i16> [#uses=1]
-        ret i16 %tmp37
-}
-
-define i16 @andhi_i16(i16 signext  %in) signext  {
-        %tmp38 = and i16 %in, 37         ; <i16> [#uses=1]
-        ret i16 %tmp38
-}
-
-; i8 data type (s/b ANDBI if 8-bit registers were supported):
-define <16 x i8> @and_v16i8(<16 x i8> %in) {
-        ; ANDBI generated for vector types
-        %tmp2 = and <16 x i8> %in, < i8 42, i8 42, i8 42, i8 42, i8 42, i8 42,
-                                     i8 42, i8 42, i8 42, i8 42, i8 42, i8 42,
-                                     i8 42, i8 42, i8 42, i8 42 >
-        ret <16 x i8> %tmp2
-}
-
-define i8 @and_u8(i8 zeroext  %in) zeroext  {
-        ; ANDBI generated:
-        %tmp37 = and i8 %in, 37
-        ret i8 %tmp37
-}
-
-define i8 @and_sext8(i8 signext  %in) signext  {
-        ; ANDBI generated
-        %tmp38 = and i8 %in, 37
-        ret i8 %tmp38
-}
-
-define i8 @and_i8(i8 %in) {
-        ; ANDBI generated
-        %tmp38 = and i8 %in, 205
-        ret i8 %tmp38
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/call.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/call.ll
deleted file mode 100644
index a305a23..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/call.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep brsl    %t1.s | count 1
-; RUN: grep brasl   %t1.s | count 1
-; RUN: grep stqd    %t1.s | count 80
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define i32 @main() {
-entry:
-  %a = call i32 @stub_1(i32 1, float 0x400921FA00000000)
-  call void @extern_stub_1(i32 %a, i32 4)
-  ret i32 %a
-}
-
-declare void @extern_stub_1(i32, i32)
-
-define i32 @stub_1(i32 %x, float %y) {
-entry:
-  ret i32 0
-}
-
-; vararg call: ensure that all caller-saved registers are spilled to the
-; stack:
-define i32 @stub_2(...) {
-entry:
-  ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/call_indirect.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/call_indirect.ll
deleted file mode 100644
index 9be714e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/call_indirect.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: llvm-as -o - %s | llc -march=cellspu -mattr=large_mem > %t2.s
-; RUN: grep bisl    %t1.s | count 7
-; RUN: grep ila     %t1.s | count 1
-; RUN: grep rotqby  %t1.s | count 6
-; RUN: grep lqa     %t1.s | count 1
-; RUN: grep lqd     %t1.s | count 12
-; RUN: grep dispatch_tab %t1.s | count 5
-; RUN: grep bisl    %t2.s | count 7
-; RUN: grep ilhu    %t2.s | count 2
-; RUN: grep iohl    %t2.s | count 2
-; RUN: grep rotqby  %t2.s | count 6
-; RUN: grep lqd     %t2.s | count 13
-; RUN: grep ilhu    %t2.s | count 2
-; RUN: grep ai      %t2.s | count 9
-; RUN: grep dispatch_tab %t2.s | count 6
-
-; ModuleID = 'call_indirect.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128"
-target triple = "spu-unknown-elf"
-
- at dispatch_tab = global [6 x void (i32, float)*] zeroinitializer, align 16
-
-define void @dispatcher(i32 %i_arg, float %f_arg) {
-entry:
-        %tmp2 = load void (i32, float)** getelementptr ([6 x void (i32, float)*]* @dispatch_tab, i32 0, i32 0), align 16
-        tail call void %tmp2( i32 %i_arg, float %f_arg )
-        %tmp2.1 = load void (i32, float)** getelementptr ([6 x void (i32, float)*]* @dispatch_tab, i32 0, i32 1), align 4
-        tail call void %tmp2.1( i32 %i_arg, float %f_arg )
-        %tmp2.2 = load void (i32, float)** getelementptr ([6 x void (i32, float)*]* @dispatch_tab, i32 0, i32 2), align 4
-        tail call void %tmp2.2( i32 %i_arg, float %f_arg )
-        %tmp2.3 = load void (i32, float)** getelementptr ([6 x void (i32, float)*]* @dispatch_tab, i32 0, i32 3), align 4
-        tail call void %tmp2.3( i32 %i_arg, float %f_arg )
-        %tmp2.4 = load void (i32, float)** getelementptr ([6 x void (i32, float)*]* @dispatch_tab, i32 0, i32 4), align 4
-        tail call void %tmp2.4( i32 %i_arg, float %f_arg )
-        %tmp2.5 = load void (i32, float)** getelementptr ([6 x void (i32, float)*]* @dispatch_tab, i32 0, i32 5), align 4
-        tail call void %tmp2.5( i32 %i_arg, float %f_arg )
-        ret void
-}
-
- at ptr_list = internal global [1 x void ()*] [ void ()* inttoptr (i64 4294967295 to void ()*) ], align 4
- at ptr.a = internal global void ()** getelementptr ([1 x void ()*]* @ptr_list, i32 0, i32 1), align 16
-
-define void @double_indirect_call() {
-        %a = load void ()*** @ptr.a, align 16
-        %b = load void ()** %a, align 4
-        tail call void %b()
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/ctpop.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/ctpop.ll
deleted file mode 100644
index 3c7ee7a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/ctpop.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep cntb    %t1.s | count 3
-; RUN: grep andi    %t1.s | count 3
-; RUN: grep rotmi   %t1.s | count 2
-; RUN: grep rothmi  %t1.s | count 1
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-declare i8 @llvm.ctpop.i8(i8)
-declare i16 @llvm.ctpop.i16(i16)
-declare i32 @llvm.ctpop.i32(i32)
-
-define i32 @test_i8(i8 %X) {
-        call i8 @llvm.ctpop.i8(i8 %X)
-        %Y = zext i8 %1 to i32
-        ret i32 %Y
-}
-
-define i32 @test_i16(i16 %X) {
-        call i16 @llvm.ctpop.i16(i16 %X)
-        %Y = zext i16 %1 to i32
-        ret i32 %Y
-}
-
-define i32 @test_i32(i32 %X) {
-        call i32 @llvm.ctpop.i32(i32 %X)
-        %Y = bitcast i32 %1 to i32
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/dg.exp b/libclamav/c++/llvm/test/CodeGen/CellSPU/dg.exp
deleted file mode 100644
index d416479..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target CellSPU] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/dp_farith.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/dp_farith.ll
deleted file mode 100644
index d4802ae..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/dp_farith.ll
+++ /dev/null
@@ -1,102 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep dfa    %t1.s | count 2
-; RUN: grep dfs    %t1.s | count 2
-; RUN: grep dfm    %t1.s | count 6
-; RUN: grep dfma   %t1.s | count 2
-; RUN: grep dfms   %t1.s | count 2
-; RUN: grep dfnms  %t1.s | count 4
-;
-; This file includes double precision floating point arithmetic instructions
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define double @fadd(double %arg1, double %arg2) {
-        %A = fadd double %arg1, %arg2
-        ret double %A
-}
-
-define <2 x double> @fadd_vec(<2 x double> %arg1, <2 x double> %arg2) {
-        %A = fadd <2 x double> %arg1, %arg2
-        ret <2 x double> %A
-}
-
-define double @fsub(double %arg1, double %arg2) {
-        %A = fsub double %arg1,  %arg2
-        ret double %A
-}
-
-define <2 x double> @fsub_vec(<2 x double> %arg1, <2 x double> %arg2) {
-        %A = fsub <2 x double> %arg1,  %arg2
-        ret <2 x double> %A
-}
-
-define double @fmul(double %arg1, double %arg2) {
-        %A = fmul double %arg1,  %arg2
-        ret double %A
-}
-
-define <2 x double> @fmul_vec(<2 x double> %arg1, <2 x double> %arg2) {
-        %A = fmul <2 x double> %arg1,  %arg2
-        ret <2 x double> %A
-}
-
-define double @fma(double %arg1, double %arg2, double %arg3) {
-        %A = fmul double %arg1,  %arg2
-        %B = fadd double %A, %arg3
-        ret double %B
-}
-
-define <2 x double> @fma_vec(<2 x double> %arg1, <2 x double> %arg2, <2 x double> %arg3) {
-        %A = fmul <2 x double> %arg1,  %arg2
-        %B = fadd <2 x double> %A, %arg3
-        ret <2 x double> %B
-}
-
-define double @fms(double %arg1, double %arg2, double %arg3) {
-        %A = fmul double %arg1,  %arg2
-        %B = fsub double %A, %arg3
-        ret double %B
-}
-
-define <2 x double> @fms_vec(<2 x double> %arg1, <2 x double> %arg2, <2 x double> %arg3) {
-        %A = fmul <2 x double> %arg1,  %arg2
-        %B = fsub <2 x double> %A, %arg3
-        ret <2 x double> %B
-}
-
-; - (a * b - c)
-define double @d_fnms_1(double %arg1, double %arg2, double %arg3) {
-        %A = fmul double %arg1,  %arg2
-        %B = fsub double %A, %arg3
-        %C = fsub double -0.000000e+00, %B               ; <double> [#uses=1]
-        ret double %C
-}
-
-; Annother way of getting fnms
-; - ( a * b ) + c => c - (a * b)
-define double @d_fnms_2(double %arg1, double %arg2, double %arg3) {
-        %A = fmul double %arg1,  %arg2
-        %B = fsub double %arg3, %A
-        ret double %B
-}
-
-; FNMS: - (a * b - c) => c - (a * b)
-define <2 x double> @d_fnms_vec_1(<2 x double> %arg1, <2 x double> %arg2, <2 x double> %arg3) {
-        %A = fmul <2 x double> %arg1,  %arg2
-        %B = fsub <2 x double> %arg3, %A ;
-        ret <2 x double> %B
-}
-
-; Another way to get fnms using a constant vector
-; - ( a * b - c)
-define <2 x double> @d_fnms_vec_2(<2 x double> %arg1, <2 x double> %arg2, <2 x double> %arg3) {
-        %A = fmul <2 x double> %arg1,  %arg2     ; <<2 x double>> [#uses=1]
-        %B = fsub <2 x double> %A, %arg3 ; <<2 x double>> [#uses=1]
-        %C = fsub <2 x double> < double -0.00000e+00, double -0.00000e+00 >, %B
-        ret <2 x double> %C
-}
-
-;define double @fdiv_1(double %arg1, double %arg2) {
-;       %A = fdiv double %arg1,  %arg2  ; <double> [#uses=1]
-;       ret double %A
-;}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/eqv.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/eqv.ll
deleted file mode 100644
index 5406956..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/eqv.ll
+++ /dev/null
@@ -1,152 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep eqv  %t1.s | count 18
-; RUN: grep xshw %t1.s | count 6
-; RUN: grep xsbh %t1.s | count 3
-; RUN: grep andi %t1.s | count 3
-
-; Test the 'eqv' instruction, whose boolean expression is:
-; (a & b) | (~a & ~b), which simplifies to
-; (a & b) | ~(a | b)
-; Alternatively, a ^ ~b, which the compiler will also match.
-
-; ModuleID = 'eqv.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define <4 x i32> @equiv_v4i32_1(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = and <4 x i32> %arg1, %arg2
-        %B = or <4 x i32> %arg1, %arg2
-        %Bnot = xor <4 x i32> %B, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %C = or <4 x i32> %A, %Bnot
-        ret <4 x i32> %C
-}
-
-define <4 x i32> @equiv_v4i32_2(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %B = or <4 x i32> %arg1, %arg2          ; <<4 x i32>> [#uses=1]
-        %Bnot = xor <4 x i32> %B, < i32 -1, i32 -1, i32 -1, i32 -1 >            ; <<4 x i32>> [#uses=1]
-        %A = and <4 x i32> %arg1, %arg2         ; <<4 x i32>> [#uses=1]
-        %C = or <4 x i32> %A, %Bnot             ; <<4 x i32>> [#uses=1]
-        ret <4 x i32> %C
-}
-
-define <4 x i32> @equiv_v4i32_3(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %B = or <4 x i32> %arg1, %arg2          ; <<4 x i32>> [#uses=1]
-        %A = and <4 x i32> %arg1, %arg2         ; <<4 x i32>> [#uses=1]
-        %Bnot = xor <4 x i32> %B, < i32 -1, i32 -1, i32 -1, i32 -1 >            ; <<4 x i32>> [#uses=1]
-        %C = or <4 x i32> %A, %Bnot             ; <<4 x i32>> [#uses=1]
-        ret <4 x i32> %C
-}
-
-define <4 x i32> @equiv_v4i32_4(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %arg2not = xor <4 x i32> %arg2, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %C = xor <4 x i32> %arg1, %arg2not
-        ret <4 x i32> %C
-}
-
-define i32 @equiv_i32_1(i32 %arg1, i32 %arg2) {
-        %A = and i32 %arg1, %arg2               ; <i32> [#uses=1]
-        %B = or i32 %arg1, %arg2                ; <i32> [#uses=1]
-        %Bnot = xor i32 %B, -1                  ; <i32> [#uses=1]
-        %C = or i32 %A, %Bnot                   ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @equiv_i32_2(i32 %arg1, i32 %arg2) {
-        %B = or i32 %arg1, %arg2                ; <i32> [#uses=1]
-        %Bnot = xor i32 %B, -1                  ; <i32> [#uses=1]
-        %A = and i32 %arg1, %arg2               ; <i32> [#uses=1]
-        %C = or i32 %A, %Bnot                   ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @equiv_i32_3(i32 %arg1, i32 %arg2) {
-        %B = or i32 %arg1, %arg2                ; <i32> [#uses=1]
-        %A = and i32 %arg1, %arg2               ; <i32> [#uses=1]
-        %Bnot = xor i32 %B, -1                  ; <i32> [#uses=1]
-        %C = or i32 %A, %Bnot                   ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @equiv_i32_4(i32 %arg1, i32 %arg2) {
-        %arg2not = xor i32 %arg2, -1
-        %C = xor i32 %arg1, %arg2not
-        ret i32 %C
-}
-
-define i32 @equiv_i32_5(i32 %arg1, i32 %arg2) {
-        %arg1not = xor i32 %arg1, -1
-        %C = xor i32 %arg2, %arg1not
-        ret i32 %C
-}
-
-define i16 @equiv_i16_1(i16 signext %arg1, i16 signext %arg2) signext {
-        %A = and i16 %arg1, %arg2               ; <i16> [#uses=1]
-        %B = or i16 %arg1, %arg2                ; <i16> [#uses=1]
-        %Bnot = xor i16 %B, -1                  ; <i16> [#uses=1]
-        %C = or i16 %A, %Bnot                   ; <i16> [#uses=1]
-        ret i16 %C
-}
-
-define i16 @equiv_i16_2(i16 signext %arg1, i16 signext %arg2) signext {
-        %B = or i16 %arg1, %arg2                ; <i16> [#uses=1]
-        %Bnot = xor i16 %B, -1                  ; <i16> [#uses=1]
-        %A = and i16 %arg1, %arg2               ; <i16> [#uses=1]
-        %C = or i16 %A, %Bnot                   ; <i16> [#uses=1]
-        ret i16 %C
-}
-
-define i16 @equiv_i16_3(i16 signext %arg1, i16 signext %arg2) signext {
-        %B = or i16 %arg1, %arg2                ; <i16> [#uses=1]
-        %A = and i16 %arg1, %arg2               ; <i16> [#uses=1]
-        %Bnot = xor i16 %B, -1                  ; <i16> [#uses=1]
-        %C = or i16 %A, %Bnot                   ; <i16> [#uses=1]
-        ret i16 %C
-}
-
-define i8 @equiv_i8_1(i8 signext %arg1, i8 signext %arg2) signext {
-        %A = and i8 %arg1, %arg2                ; <i8> [#uses=1]
-        %B = or i8 %arg1, %arg2         ; <i8> [#uses=1]
-        %Bnot = xor i8 %B, -1                   ; <i8> [#uses=1]
-        %C = or i8 %A, %Bnot                    ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @equiv_i8_2(i8 signext %arg1, i8 signext %arg2) signext {
-        %B = or i8 %arg1, %arg2         ; <i8> [#uses=1]
-        %Bnot = xor i8 %B, -1                   ; <i8> [#uses=1]
-        %A = and i8 %arg1, %arg2                ; <i8> [#uses=1]
-        %C = or i8 %A, %Bnot                    ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @equiv_i8_3(i8 signext %arg1, i8 signext %arg2) signext {
-        %B = or i8 %arg1, %arg2         ; <i8> [#uses=1]
-        %A = and i8 %arg1, %arg2                ; <i8> [#uses=1]
-        %Bnot = xor i8 %B, -1                   ; <i8> [#uses=1]
-        %C = or i8 %A, %Bnot                    ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @equiv_u8_1(i8 zeroext %arg1, i8 zeroext %arg2) zeroext {
-        %A = and i8 %arg1, %arg2                ; <i8> [#uses=1]
-        %B = or i8 %arg1, %arg2         ; <i8> [#uses=1]
-        %Bnot = xor i8 %B, -1                   ; <i8> [#uses=1]
-        %C = or i8 %A, %Bnot                    ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @equiv_u8_2(i8 zeroext %arg1, i8 zeroext %arg2) zeroext {
-        %B = or i8 %arg1, %arg2         ; <i8> [#uses=1]
-        %Bnot = xor i8 %B, -1                   ; <i8> [#uses=1]
-        %A = and i8 %arg1, %arg2                ; <i8> [#uses=1]
-        %C = or i8 %A, %Bnot                    ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @equiv_u8_3(i8 zeroext %arg1, i8 zeroext %arg2) zeroext {
-        %B = or i8 %arg1, %arg2         ; <i8> [#uses=1]
-        %A = and i8 %arg1, %arg2                ; <i8> [#uses=1]
-        %Bnot = xor i8 %B, -1                   ; <i8> [#uses=1]
-        %C = or i8 %A, %Bnot                    ; <i8> [#uses=1]
-        ret i8 %C
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/extract_elt.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/extract_elt.ll
deleted file mode 100644
index bcd2f42..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/extract_elt.ll
+++ /dev/null
@@ -1,277 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep shufb   %t1.s | count 39
-; RUN: grep ilhu    %t1.s | count 27
-; RUN: grep iohl    %t1.s | count 27
-; RUN: grep lqa     %t1.s | count 10
-; RUN: grep shlqby  %t1.s | count 12
-; RUN: grep   515   %t1.s | count 1
-; RUN: grep  1029   %t1.s | count 2
-; RUN: grep  1543   %t1.s | count 2
-; RUN: grep  2057   %t1.s | count 2
-; RUN: grep  2571   %t1.s | count 2
-; RUN: grep  3085   %t1.s | count 2
-; RUN: grep  3599   %t1.s | count 2
-; RUN: grep 32768   %t1.s | count 1
-; RUN: grep 32769   %t1.s | count 1
-; RUN: grep 32770   %t1.s | count 1
-; RUN: grep 32771   %t1.s | count 1
-; RUN: grep 32772   %t1.s | count 1
-; RUN: grep 32773   %t1.s | count 1
-; RUN: grep 32774   %t1.s | count 1
-; RUN: grep 32775   %t1.s | count 1
-; RUN: grep 32776   %t1.s | count 1
-; RUN: grep 32777   %t1.s | count 1
-; RUN: grep 32778   %t1.s | count 1
-; RUN: grep 32779   %t1.s | count 1
-; RUN: grep 32780   %t1.s | count 1
-; RUN: grep 32781   %t1.s | count 1
-; RUN: grep 32782   %t1.s | count 1
-; RUN: grep 32783   %t1.s | count 1
-; RUN: grep 32896   %t1.s | count 24
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define i32 @i32_extract_0(<4 x i32> %v) {
-entry:
-  %a = extractelement <4 x i32> %v, i32 0
-  ret i32 %a
-}
-
-define i32 @i32_extract_1(<4 x i32> %v) {
-entry:
-  %a = extractelement <4 x i32> %v, i32 1
-  ret i32 %a
-}
-
-define i32 @i32_extract_2(<4 x i32> %v) {
-entry:
-  %a = extractelement <4 x i32> %v, i32 2
-  ret i32 %a
-}
-
-define i32 @i32_extract_3(<4 x i32> %v) {
-entry:
-  %a = extractelement <4 x i32> %v, i32 3
-  ret i32 %a
-}
-
-define i16 @i16_extract_0(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 0
-  ret i16 %a
-}
-
-define i16 @i16_extract_1(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 1
-  ret i16 %a
-}
-
-define i16 @i16_extract_2(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 2
-  ret i16 %a
-}
-
-define i16 @i16_extract_3(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 3
-  ret i16 %a
-}
-
-define i16 @i16_extract_4(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 4
-  ret i16 %a
-}
-
-define i16 @i16_extract_5(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 5
-  ret i16 %a
-}
-
-define i16 @i16_extract_6(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 6
-  ret i16 %a
-}
-
-define i16 @i16_extract_7(<8 x i16> %v) {
-entry:
-  %a = extractelement <8 x i16> %v, i32 7
-  ret i16 %a
-}
-
-define i8 @i8_extract_0(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 0
-  ret i8 %a
-}
-
-define i8 @i8_extract_1(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 1
-  ret i8 %a
-}
-
-define i8 @i8_extract_2(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 2
-  ret i8 %a
-}
-
-define i8 @i8_extract_3(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 3
-  ret i8 %a
-}
-
-define i8 @i8_extract_4(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 4
-  ret i8 %a
-}
-
-define i8 @i8_extract_5(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 5
-  ret i8 %a
-}
-
-define i8 @i8_extract_6(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 6
-  ret i8 %a
-}
-
-define i8 @i8_extract_7(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 7
-  ret i8 %a
-}
-
-define i8 @i8_extract_8(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 8
-  ret i8 %a
-}
-
-define i8 @i8_extract_9(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 9
-  ret i8 %a
-}
-
-define i8 @i8_extract_10(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 10
-  ret i8 %a
-}
-
-define i8 @i8_extract_11(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 11
-  ret i8 %a
-}
-
-define i8 @i8_extract_12(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 12
-  ret i8 %a
-}
-
-define i8 @i8_extract_13(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 13
-  ret i8 %a
-}
-
-define i8 @i8_extract_14(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 14
-  ret i8 %a
-}
-
-define i8 @i8_extract_15(<16 x i8> %v) {
-entry:
-  %a = extractelement <16 x i8> %v, i32 15
-  ret i8 %a
-}
-
-;;--------------------------------------------------------------------------
-;; extract element, variable index:
-;;--------------------------------------------------------------------------
-
-define i8 @extract_varadic_i8(i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <16 x i8> < i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, i32 %i
-        ret i8 %0
-}
-
-define i8 @extract_varadic_i8_1(<16 x i8> %v, i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <16 x i8> %v, i32 %i
-        ret i8 %0
-}
-
-define i16 @extract_varadic_i16(i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <8 x i16> < i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, i32 %i
-        ret i16 %0
-}
-
-define i16 @extract_varadic_i16_1(<8 x i16> %v, i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <8 x i16> %v, i32 %i
-        ret i16 %0
-}
-
-define i32 @extract_varadic_i32(i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <4 x i32> < i32 0, i32 1, i32 2, i32 3>, i32 %i
-        ret i32 %0
-}
-
-define i32 @extract_varadic_i32_1(<4 x i32> %v, i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <4 x i32> %v, i32 %i
-        ret i32 %0
-}
-
-define float @extract_varadic_f32(i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <4 x float> < float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00 >, i32 %i
-        ret float %0
-}
-
-define float @extract_varadic_f32_1(<4 x float> %v, i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <4 x float> %v, i32 %i
-        ret float %0
-}
-
-define i64 @extract_varadic_i64(i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <2 x i64> < i64 0, i64 1>, i32 %i
-        ret i64 %0
-}
-
-define i64 @extract_varadic_i64_1(<2 x i64> %v, i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <2 x i64> %v, i32 %i
-        ret i64 %0
-}
-
-define double @extract_varadic_f64(i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <2 x double> < double 1.000000e+00, double 2.000000e+00>, i32 %i
-        ret double %0
-}
-
-define double @extract_varadic_f64_1(<2 x double> %v, i32 %i) nounwind readnone {
-entry:
-        %0 = extractelement <2 x double> %v, i32 %i
-        ret double %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/fcmp32.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/fcmp32.ll
deleted file mode 100644
index 27a659e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/fcmp32.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep fceq  %t1.s | count 1
-; RUN: grep fcmeq %t1.s | count 1
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; Exercise the floating point comparison operators for f32:
-
-declare double @fabs(double)
-declare float @fabsf(float)
-
-define i1 @fcmp_eq(float %arg1, float %arg2) {
-        %A = fcmp oeq float %arg1,  %arg2
-        ret i1 %A
-}
-
-define i1 @fcmp_mag_eq(float %arg1, float %arg2) {
-        %1 = call float @fabsf(float %arg1)
-        %2 = call float @fabsf(float %arg2)
-        %3 = fcmp oeq float %1, %2
-        ret i1 %3
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/fcmp64.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/fcmp64.ll
deleted file mode 100644
index 1906bfe..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/fcmp64.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-
-define i1 @fcmp_eq_setcc_f64(double %arg1, double %arg2) nounwind {
-entry:
-       %A = fcmp oeq double %arg1, %arg2
-       ret i1 %A
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/fdiv.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/fdiv.ll
deleted file mode 100644
index d121c3f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/fdiv.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep frest    %t1.s | count 2 
-; RUN: grep -w fi    %t1.s | count 2 
-; RUN: grep -w fm    %t1.s | count 2
-; RUN: grep fma      %t1.s | count 2 
-; RUN: grep fnms     %t1.s | count 4
-; RUN: grep cgti     %t1.s | count 2
-; RUN: grep selb     %t1.s | count 2
-;
-; This file includes standard floating point arithmetic instructions
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define float @fdiv32(float %arg1, float %arg2) {
-        %A = fdiv float %arg1,  %arg2
-        ret float %A
-}
-
-define <4 x float> @fdiv_v4f32(<4 x float> %arg1, <4 x float> %arg2) {
-        %A = fdiv <4 x float> %arg1,  %arg2
-        ret <4 x float> %A
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/fneg-fabs.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/fneg-fabs.ll
deleted file mode 100644
index 5bd66f4..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/fneg-fabs.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep 32768   %t1.s | count 2
-; RUN: grep xor     %t1.s | count 4
-; RUN: grep and     %t1.s | count 2
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define double @fneg_dp(double %X) {
-        %Y = fsub double -0.000000e+00, %X
-        ret double %Y
-}
-
-define <2 x double> @fneg_dp_vec(<2 x double> %X) {
-        %Y = fsub <2 x double> < double -0.0000e+00, double -0.0000e+00 >, %X
-        ret <2 x double> %Y
-}
-
-define float @fneg_sp(float %X) {
-        %Y = fsub float -0.000000e+00, %X
-        ret float %Y
-}
-
-define <4 x float> @fneg_sp_vec(<4 x float> %X) {
-        %Y = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00,
-                              float -0.000000e+00, float -0.000000e+00>, %X
-        ret <4 x float> %Y
-}
-
-declare double @fabs(double)
-
-declare float @fabsf(float)
-
-define double @fabs_dp(double %X) {
-        %Y = call double @fabs( double %X )
-        ret double %Y
-}
-
-define float @fabs_sp(float %X) {
-        %Y = call float @fabsf( float %X )
-        ret float %Y
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/i64ops.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/i64ops.ll
deleted file mode 100644
index dd67827..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/i64ops.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep xswd	     %t1.s | count 3
-; RUN: grep xsbh	     %t1.s | count 1
-; RUN: grep xshw	     %t1.s | count 2
-; RUN: grep shufb        %t1.s | count 7
-; RUN: grep cg           %t1.s | count 4
-; RUN: grep addx         %t1.s | count 4
-; RUN: grep fsmbi        %t1.s | count 3
-; RUN: grep il           %t1.s | count 2
-; RUN: grep mpy          %t1.s | count 10
-; RUN: grep mpyh         %t1.s | count 6
-; RUN: grep mpyhhu       %t1.s | count 2
-; RUN: grep mpyu         %t1.s | count 4
-
-; ModuleID = 'stores.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define i64 @sext_i64_i8(i8 %a) nounwind {
-  %1 = sext i8 %a to i64
-  ret i64 %1
-}
-
-define i64 @sext_i64_i16(i16 %a) nounwind {
-  %1 = sext i16 %a to i64
-  ret i64 %1
-}
-
-define i64 @sext_i64_i32(i32 %a) nounwind {
-  %1 = sext i32 %a to i64
-  ret i64 %1
-}
-
-define i64 @zext_i64_i8(i8 %a) nounwind {
-  %1 = zext i8 %a to i64
-  ret i64 %1
-}
-
-define i64 @zext_i64_i16(i16 %a) nounwind {
-  %1 = zext i16 %a to i64
-  ret i64 %1
-}
-
-define i64 @zext_i64_i32(i32 %a) nounwind {
-  %1 = zext i32 %a to i64
-  ret i64 %1
-}
-
-define i64 @add_i64(i64 %a, i64 %b) nounwind {
-  %1 = add i64 %a, %b
-  ret i64 %1
-}
-
-define i64 @mul_i64(i64 %a, i64 %b) nounwind {
-  %1 = mul i64 %a, %b
-  ret i64 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/i8ops.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/i8ops.ll
deleted file mode 100644
index 23a036e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/i8ops.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-
-; ModuleID = 'i8ops.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define i8 @add_i8(i8 %a, i8 %b) nounwind {
-  %1 = add i8 %a, %b
-  ret i8 %1
-}
-
-define i8 @add_i8_imm(i8 %a, i8 %b) nounwind {
-  %1 = add i8 %a, 15 
-  ret i8 %1
-}
-
-define i8 @sub_i8(i8 %a, i8 %b) nounwind {
-  %1 = sub i8 %a, %b
-  ret i8 %1
-}
-
-define i8 @sub_i8_imm(i8 %a, i8 %b) nounwind {
-  %1 = sub i8 %a, 15 
-  ret i8 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp16.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp16.ll
deleted file mode 100644
index 56d1b8f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp16.ll
+++ /dev/null
@@ -1,350 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep ilh                                %t1.s | count 15
-; RUN: grep ceqh                               %t1.s | count 29
-; RUN: grep ceqhi                              %t1.s | count 13
-; RUN: grep clgth                              %t1.s | count 15
-; RUN: grep cgth                               %t1.s | count 14
-; RUN: grep cgthi                              %t1.s | count 6
-; RUN: grep {selb\t\\\$3, \\\$6, \\\$5, \\\$3} %t1.s | count 7
-; RUN: grep {selb\t\\\$3, \\\$5, \\\$6, \\\$3} %t1.s | count 3
-; RUN: grep {selb\t\\\$3, \\\$5, \\\$4, \\\$3} %t1.s | count 17
-; RUN: grep {selb\t\\\$3, \\\$4, \\\$5, \\\$3} %t1.s | count 6
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; $3 = %arg1, $4 = %arg2, $5 = %val1, $6 = %val2
-; $3 = %arg1, $4 = %val1, $5 = %val2
-;
-; For "positive" comparisons:
-; selb $3, $6, $5, <i1>
-; selb $3, $5, $4, <i1>
-;
-; For "negative" comparisons, i.e., those where the result of the comparison
-; must be inverted (setne, for example):
-; selb $3, $5, $6, <i1>
-; selb $3, $4, $5, <i1>
-
-; i16 integer comparisons:
-define i16 @icmp_eq_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp eq i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_eq_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp eq i16 %arg1, %arg2
-       ret i1 %A
-}
-
-define i16 @icmp_eq_immed01_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp eq i16 %arg1, 511
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_eq_immed02_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp eq i16 %arg1, -512
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_eq_immed03_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp eq i16 %arg1, -1
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_eq_immed04_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp eq i16 %arg1, 32768
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ne_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ne i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_ne_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ne i16 %arg1, %arg2
-       ret i1 %A
-}
-
-define i16 @icmp_ne_immed01_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ne i16 %arg1, 511
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ne_immed02_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ne i16 %arg1, -512
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ne_immed03_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ne i16 %arg1, -1
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ne_immed04_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ne i16 %arg1, 32768
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ugt_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ugt i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_ugt_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ugt i16 %arg1, %arg2
-       ret i1 %A
-}
-
-define i16 @icmp_ugt_immed01_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ugt i16 %arg1, 500
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ugt_immed02_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ugt i16 %arg1, 0
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ugt_immed03_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ugt i16 %arg1, 65024
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ugt_immed04_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ugt i16 %arg1, 32768
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_uge_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp uge i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_uge_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp uge i16 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp uge i16 %arg1, <immed> can always be transformed into
-;;       icmp ugt i16 %arg1, <immed>-1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i16 @icmp_ult_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ult i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_ult_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ult i16 %arg1, %arg2
-       ret i1 %A
-}
-
-define i16 @icmp_ult_immed01_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ult i16 %arg1, 511
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ult_immed02_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ult i16 %arg1, 65534
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ult_immed03_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ult i16 %arg1, 65024
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ult_immed04_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ult i16 %arg1, 32769
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_ule_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ule i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_ule_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp ule i16 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp ule i16 %arg1, <immed> can always be transformed into
-;;       icmp ult i16 %arg1, <immed>+1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i16 @icmp_sgt_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sgt i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_sgt_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sgt i16 %arg1, %arg2
-       ret i1 %A
-}
-
-define i16 @icmp_sgt_immed01_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sgt i16 %arg1, 511
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_sgt_immed02_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sgt i16 %arg1, -1
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_sgt_immed03_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sgt i16 %arg1, -512
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_sgt_immed04_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sgt i16 %arg1, 32768
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_sge_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sge i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_sge_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sge i16 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp sge i16 %arg1, <immed> can always be transformed into
-;;       icmp sgt i16 %arg1, <immed>-1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i16 @icmp_slt_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp slt i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_slt_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp slt i16 %arg1, %arg2
-       ret i1 %A
-}
-
-define i16 @icmp_slt_immed01_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp slt i16 %arg1, 511
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_slt_immed02_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp slt i16 %arg1, -512
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_slt_immed03_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp slt i16 %arg1, -1
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_slt_immed04_i16(i16 %arg1, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp slt i16 %arg1, 32768
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i16 @icmp_sle_select_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sle i16 %arg1, %arg2
-       %B = select i1 %A, i16 %val1, i16 %val2
-       ret i16 %B
-}
-
-define i1 @icmp_sle_setcc_i16(i16 %arg1, i16 %arg2, i16 %val1, i16 %val2) nounwind {
-entry:
-       %A = icmp sle i16 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp sle i16 %arg1, <immed> can always be transformed into
-;;       icmp slt i16 %arg1, <immed>+1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp32.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp32.ll
deleted file mode 100644
index 4f74b0d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp32.ll
+++ /dev/null
@@ -1,350 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep ila                                %t1.s | count 6
-; RUN: grep ceq                                %t1.s | count 28
-; RUN: grep ceqi                               %t1.s | count 12
-; RUN: grep clgt                               %t1.s | count 16
-; RUN: grep clgti                              %t1.s | count 6
-; RUN: grep cgt                                %t1.s | count 16
-; RUN: grep cgti                               %t1.s | count 6
-; RUN: grep {selb\t\\\$3, \\\$6, \\\$5, \\\$3} %t1.s | count 7
-; RUN: grep {selb\t\\\$3, \\\$5, \\\$6, \\\$3} %t1.s | count 3
-; RUN: grep {selb\t\\\$3, \\\$5, \\\$4, \\\$3} %t1.s | count 20
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; $3 = %arg1, $4 = %arg2, $5 = %val1, $6 = %val2
-; $3 = %arg1, $4 = %val1, $5 = %val2
-;
-; For "positive" comparisons:
-; selb $3, $6, $5, <i1>
-; selb $3, $5, $4, <i1>
-;
-; For "negative" comparisons, i.e., those where the result of the comparison
-; must be inverted (setne, for example):
-; selb $3, $5, $6, <i1>
-; selb $3, $4, $5, <i1>
-
-; i32 integer comparisons:
-define i32 @icmp_eq_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp eq i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_eq_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp eq i32 %arg1, %arg2
-       ret i1 %A
-}
-
-define i32 @icmp_eq_immed01_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp eq i32 %arg1, 511
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_eq_immed02_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp eq i32 %arg1, -512
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_eq_immed03_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp eq i32 %arg1, -1
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_eq_immed04_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp eq i32 %arg1, 32768
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ne_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ne i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_ne_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ne i32 %arg1, %arg2
-       ret i1 %A
-}
-
-define i32 @icmp_ne_immed01_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ne i32 %arg1, 511
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ne_immed02_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ne i32 %arg1, -512
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ne_immed03_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ne i32 %arg1, -1
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ne_immed04_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ne i32 %arg1, 32768
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ugt_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ugt i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_ugt_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ugt i32 %arg1, %arg2
-       ret i1 %A
-}
-
-define i32 @icmp_ugt_immed01_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ugt i32 %arg1, 511
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ugt_immed02_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ugt i32 %arg1, 4294966784
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ugt_immed03_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ugt i32 %arg1, 4294967293
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ugt_immed04_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ugt i32 %arg1, 32768
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_uge_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp uge i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_uge_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp uge i32 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp uge i32 %arg1, <immed> can always be transformed into
-;;       icmp ugt i32 %arg1, <immed>-1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i32 @icmp_ult_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ult i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_ult_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ult i32 %arg1, %arg2
-       ret i1 %A
-}
-
-define i32 @icmp_ult_immed01_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ult i32 %arg1, 511
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ult_immed02_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ult i32 %arg1, 4294966784
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ult_immed03_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ult i32 %arg1, 4294967293
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ult_immed04_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ult i32 %arg1, 32768
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_ule_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ule i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_ule_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp ule i32 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp ule i32 %arg1, <immed> can always be transformed into
-;;       icmp ult i32 %arg1, <immed>+1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i32 @icmp_sgt_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sgt i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_sgt_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sgt i32 %arg1, %arg2
-       ret i1 %A
-}
-
-define i32 @icmp_sgt_immed01_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sgt i32 %arg1, 511
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_sgt_immed02_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sgt i32 %arg1, 4294966784
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_sgt_immed03_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sgt i32 %arg1, 4294967293
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_sgt_immed04_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sgt i32 %arg1, 32768
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_sge_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sge i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_sge_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sge i32 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp sge i32 %arg1, <immed> can always be transformed into
-;;       icmp sgt i32 %arg1, <immed>-1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i32 @icmp_slt_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp slt i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_slt_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp slt i32 %arg1, %arg2
-       ret i1 %A
-}
-
-define i32 @icmp_slt_immed01_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp slt i32 %arg1, 511
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_slt_immed02_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp slt i32 %arg1, -512
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_slt_immed03_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp slt i32 %arg1, -1
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_slt_immed04_i32(i32 %arg1, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp slt i32 %arg1, 32768
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i32 @icmp_sle_select_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sle i32 %arg1, %arg2
-       %B = select i1 %A, i32 %val1, i32 %val2
-       ret i32 %B
-}
-
-define i1 @icmp_sle_setcc_i32(i32 %arg1, i32 %arg2, i32 %val1, i32 %val2) nounwind {
-entry:
-       %A = icmp sle i32 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp sle i32 %arg1, <immed> can always be transformed into
-;;       icmp slt i32 %arg1, <immed>+1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp64.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp64.ll
deleted file mode 100644
index b26252c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp64.ll
+++ /dev/null
@@ -1,146 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep ceq                                %t1.s | count 20
-; RUN: grep cgti                               %t1.s | count 12
-; RUN: grep cgt                                %t1.s | count 16
-; RUN: grep clgt                               %t1.s | count 12
-; RUN: grep gb                                 %t1.s | count 12
-; RUN: grep fsm                                %t1.s | count 10
-; RUN: grep xori                               %t1.s | count 5
-; RUN: grep selb                               %t1.s | count 18
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; $3 = %arg1, $4 = %arg2, $5 = %val1, $6 = %val2
-; $3 = %arg1, $4 = %val1, $5 = %val2
-;
-; i64 integer comparisons:
-define i64 @icmp_eq_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp eq i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_eq_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp eq i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_ne_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ne i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_ne_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ne i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_ugt_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ugt i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_ugt_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ugt i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_uge_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp uge i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_uge_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp uge i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_ult_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ult i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_ult_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ult i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_ule_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ule i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_ule_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp ule i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_sgt_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp sgt i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_sgt_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp sgt i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_sge_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp sge i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_sge_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp sge i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_slt_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp slt i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_slt_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp slt i64 %arg1, %arg2
-       ret i1 %A
-}
-
-define i64 @icmp_sle_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp sle i64 %arg1, %arg2
-       %B = select i1 %A, i64 %val1, i64 %val2
-       ret i64 %B
-}
-
-define i1 @icmp_sle_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
-entry:
-       %A = icmp sle i64 %arg1, %arg2
-       ret i1 %A
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp8.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp8.ll
deleted file mode 100644
index d246481..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/icmp8.ll
+++ /dev/null
@@ -1,286 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep ceqb                               %t1.s | count 24
-; RUN: grep ceqbi                              %t1.s | count 12
-; RUN: grep clgtb                              %t1.s | count 11
-; RUN: grep cgtb                               %t1.s | count 13
-; RUN: grep cgtbi                              %t1.s | count 5
-; RUN: grep {selb\t\\\$3, \\\$6, \\\$5, \\\$3} %t1.s | count 7
-; RUN: grep {selb\t\\\$3, \\\$5, \\\$6, \\\$3} %t1.s | count 3
-; RUN: grep {selb\t\\\$3, \\\$5, \\\$4, \\\$3} %t1.s | count 11
-; RUN: grep {selb\t\\\$3, \\\$4, \\\$5, \\\$3} %t1.s | count 4
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; $3 = %arg1, $4 = %arg2, $5 = %val1, $6 = %val2
-; $3 = %arg1, $4 = %val1, $5 = %val2
-;
-; For "positive" comparisons:
-; selb $3, $6, $5, <i1>
-; selb $3, $5, $4, <i1>
-;
-; For "negative" comparisons, i.e., those where the result of the comparison
-; must be inverted (setne, for example):
-; selb $3, $5, $6, <i1>
-; selb $3, $4, $5, <i1>
-
-; i8 integer comparisons:
-define i8 @icmp_eq_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp eq i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_eq_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp eq i8 %arg1, %arg2
-       ret i1 %A
-}
-
-define i8 @icmp_eq_immed01_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp eq i8 %arg1, 127
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_eq_immed02_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp eq i8 %arg1, -128
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_eq_immed03_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp eq i8 %arg1, -1
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_ne_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ne i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_ne_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ne i8 %arg1, %arg2
-       ret i1 %A
-}
-
-define i8 @icmp_ne_immed01_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ne i8 %arg1, 127
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_ne_immed02_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ne i8 %arg1, -128
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_ne_immed03_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ne i8 %arg1, -1
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_ugt_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ugt i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_ugt_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ugt i8 %arg1, %arg2
-       ret i1 %A
-}
-
-define i8 @icmp_ugt_immed01_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ugt i8 %arg1, 126
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_uge_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp uge i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_uge_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp uge i8 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp uge i8 %arg1, <immed> can always be transformed into
-;;       icmp ugt i8 %arg1, <immed>-1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i8 @icmp_ult_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ult i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_ult_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ult i8 %arg1, %arg2
-       ret i1 %A
-}
-
-define i8 @icmp_ult_immed01_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ult i8 %arg1, 253
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_ult_immed02_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ult i8 %arg1, 129
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_ule_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ule i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_ule_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp ule i8 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp ule i8 %arg1, <immed> can always be transformed into
-;;       icmp ult i8 %arg1, <immed>+1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i8 @icmp_sgt_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sgt i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_sgt_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sgt i8 %arg1, %arg2
-       ret i1 %A
-}
-
-define i8 @icmp_sgt_immed01_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sgt i8 %arg1, 96
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_sgt_immed02_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sgt i8 %arg1, -1
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_sgt_immed03_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sgt i8 %arg1, -128
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_sge_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sge i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_sge_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sge i8 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp sge i8 %arg1, <immed> can always be transformed into
-;;       icmp sgt i8 %arg1, <immed>-1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
-define i8 @icmp_slt_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp slt i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_slt_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp slt i8 %arg1, %arg2
-       ret i1 %A
-}
-
-define i8 @icmp_slt_immed01_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp slt i8 %arg1, 96
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_slt_immed02_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp slt i8 %arg1, -120
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_slt_immed03_i8(i8 %arg1, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp slt i8 %arg1, -1
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i8 @icmp_sle_select_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sle i8 %arg1, %arg2
-       %B = select i1 %A, i8 %val1, i8 %val2
-       ret i8 %B
-}
-
-define i1 @icmp_sle_setcc_i8(i8 %arg1, i8 %arg2, i8 %val1, i8 %val2) nounwind {
-entry:
-       %A = icmp sle i8 %arg1, %arg2
-       ret i1 %A
-}
-
-;; Note: icmp sle i8 %arg1, <immed> can always be transformed into
-;;       icmp slt i8 %arg1, <immed>+1
-;;
-;; Consequently, even though the patterns exist to match, it's unlikely
-;; they'll ever be generated.
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/immed16.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/immed16.ll
deleted file mode 100644
index 9a461cb..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/immed16.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep "ilh" %t1.s | count 11
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define i16 @test_1() {
-  %x = alloca i16, align 16
-  store i16 419, i16* %x        ;; ILH via pattern
-  ret i16 0
-}
-
-define i16 @test_2() {
-  %x = alloca i16, align 16
-  store i16 1023, i16* %x       ;; ILH via pattern
-  ret i16 0
-}
-
-define i16 @test_3() {
-  %x = alloca i16, align 16
-  store i16 -1023, i16* %x      ;; ILH via pattern
-  ret i16 0
-}
-
-define i16 @test_4() {
-  %x = alloca i16, align 16
-  store i16 32767, i16* %x      ;; ILH via pattern
-  ret i16 0
-}
-
-define i16 @test_5() {
-  %x = alloca i16, align 16
-  store i16 -32768, i16* %x     ;; ILH via pattern
-  ret i16 0
-}
-
-define i16 @test_6() {
-  ret i16 0
-}
-
-
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/immed32.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/immed32.ll
deleted file mode 100644
index bf471b1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/immed32.ll
+++ /dev/null
@@ -1,72 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep ilhu  %t1.s | count 8
-; RUN: grep iohl  %t1.s | count 6
-; RUN: grep -w il    %t1.s | count 3
-; RUN: grep 16429 %t1.s | count 1
-; RUN: grep 63572 %t1.s | count 1
-; RUN: grep   128 %t1.s | count 1
-; RUN: grep 32639 %t1.s | count 1
-; RUN: grep 65535 %t1.s | count 1
-; RUN: grep 16457 %t1.s | count 1
-; RUN: grep  4059 %t1.s | count 1
-; RUN: grep 49077 %t1.s | count 1
-; RUN: grep  1267 %t1.s | count 2
-; RUN: grep 16309 %t1.s | count 1
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define i32 @test_1() {
-  ret i32 4784128               ;; ILHU via pattern (0x49000)
-}
-
-define i32 @test_2() {
-  ret i32 5308431               ;; ILHU/IOHL via pattern (0x5100f)
-}
-
-define i32 @test_3() {
-  ret i32 511                   ;; IL via pattern
-}
-
-define i32 @test_4() {
-  ret i32 -512                  ;; IL via pattern
-}
-
-;; double             float       floatval
-;; 0x4005bf0a80000000 0x402d|f854 2.718282
-define float @float_const_1() {
-  ret float 0x4005BF0A80000000  ;; ILHU/IOHL
-}
-
-;; double             float       floatval
-;; 0x3810000000000000 0x0080|0000 0.000000
-define float @float_const_2() {
-  ret float 0x3810000000000000  ;; IL 128
-}
-
-;; double             float       floatval
-;; 0x47efffffe0000000 0x7f7f|ffff NaN
-define float @float_const_3() {
-  ret float 0x47EFFFFFE0000000  ;; ILHU/IOHL via pattern
-}
-
-;; double             float       floatval
-;; 0x400921fb60000000 0x4049|0fdb 3.141593
-define float @float_const_4() {
-  ret float 0x400921FB60000000  ;; ILHU/IOHL via pattern
-}
-
-;; double             float       floatval
-;; 0xbff6a09e60000000 0xbfb5|04f3 -1.414214
-define float @float_const_5() {
-  ret float 0xBFF6A09E60000000  ;; ILHU/IOHL via pattern
-}
-
-;; double             float       floatval
-;; 0x3ff6a09e60000000 0x3fb5|04f3 1.414214
-define float @float_const_6() {
-  ret float 0x3FF6A09E60000000  ;; ILHU/IOHL via pattern
-}
-
-define float @float_const_7() {
-  ret float 0.000000e+00        ;; IL 0 via pattern
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/immed64.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/immed64.ll
deleted file mode 100644
index bbda3ff..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/immed64.ll
+++ /dev/null
@@ -1,95 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep lqa        %t1.s | count 13
-; RUN: grep ilhu       %t1.s | count 15
-; RUN: grep ila        %t1.s | count 1
-; RUN: grep -w il      %t1.s | count 6
-; RUN: grep shufb      %t1.s | count 13
-; RUN: grep      65520 %t1.s | count  1
-; RUN: grep      43981 %t1.s | count  1
-; RUN: grep      13702 %t1.s | count  1
-; RUN: grep      28225 %t1.s | count  1
-; RUN: grep      30720 %t1.s | count  1
-; RUN: grep 3233857728 %t1.s | count  8
-; RUN: grep 2155905152 %t1.s | count  6
-; RUN: grep      66051 %t1.s | count  7
-; RUN: grep  471670303 %t1.s | count 11
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-;  1311768467750121234 => 0x 12345678 abcdef12 (4660,22136/43981,61202)
-; 18446744073709551591 => 0x ffffffff ffffffe7 (-25)
-; 18446744073708516742 => 0x ffffffff fff03586 (-1034874)
-;              5308431 => 0x 00000000 0051000F
-;  9223372038704560128 => 0x 80000000 6e417800
-
-define i64 @i64_const_1() {
-  ret i64  1311768467750121234          ;; Constant pool spill
-}
-
-define i64 @i64_const_2() {
-  ret i64 18446744073709551591          ;; IL/SHUFB
-}
-
-define i64 @i64_const_3() {
-  ret i64 18446744073708516742          ;; IHLU/IOHL/SHUFB
-}
-
-define i64 @i64_const_4() {
-  ret i64              5308431          ;; ILHU/IOHL/SHUFB
-}
-
-define i64 @i64_const_5() {
-  ret i64                  511          ;; IL/SHUFB
-}
-
-define i64 @i64_const_6() {
-  ret i64                 -512          ;; IL/SHUFB
-}
-
-define i64 @i64_const_7() {
-  ret i64  9223372038704560128          ;; IHLU/IOHL/SHUFB
-}
-
-define i64 @i64_const_8() {
-  ret i64 0                             ;; IL
-}
-
-define i64 @i64_const_9() {
-  ret i64 -1                            ;; IL
-}
-
-define i64 @i64_const_10() {
-  ret i64 281470681808895                ;; IL 65535
-}
-
-; 0x4005bf0a8b145769 ->
-;   (ILHU 0x4005 [16389]/IOHL 0xbf0a [48906])
-;   (ILHU 0x8b14 [35604]/IOHL 0x5769 [22377])
-define double @f64_const_1() {
- ret double 0x4005bf0a8b145769        ;; ILHU/IOHL via pattern
-}
- 
-define double @f64_const_2() {
- ret double 0x0010000000000000
-}
-
-define double @f64_const_3() {
- ret double 0x7fefffffffffffff
-}
-
-define double @f64_const_4() {
- ret double 0x400921fb54442d18
-}
- 
-define double @f64_const_5() {
-  ret double 0xbff6a09e667f3bcd         ;; ILHU/IOHL via pattern
-}
- 
-define double @f64_const_6() {
-  ret double 0x3ff6a09e667f3bcd
-}
-
-define double @f64_const_7() {
-  ret double 0.000000e+00
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/int2fp.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/int2fp.ll
deleted file mode 100644
index ee30765..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/int2fp.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep csflt %t1.s | count 5
-; RUN: grep cuflt %t1.s | count 1
-; RUN: grep xshw  %t1.s | count 2
-; RUN: grep xsbh  %t1.s | count 1
-; RUN: grep and   %t1.s | count 2
-; RUN: grep andi  %t1.s | count 1
-; RUN: grep ila   %t1.s | count 1
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define float @sitofp_i32(i32 %arg1) {
-        %A = sitofp i32 %arg1 to float          ; <float> [#uses=1]
-        ret float %A
-}
-
-define float @uitofp_u32(i32 %arg1) {
-        %A = uitofp i32 %arg1 to float          ; <float> [#uses=1]
-        ret float %A
-}
-
-define float @sitofp_i16(i16 %arg1) {
-        %A = sitofp i16 %arg1 to float          ; <float> [#uses=1]
-        ret float %A
-}
-
-define float @uitofp_i16(i16 %arg1) {
-        %A = uitofp i16 %arg1 to float          ; <float> [#uses=1]
-        ret float %A
-}
-
-define float @sitofp_i8(i8 %arg1) {
-        %A = sitofp i8 %arg1 to float           ; <float> [#uses=1]
-        ret float %A
-}
-
-define float @uitofp_i8(i8 %arg1) {
-        %A = uitofp i8 %arg1 to float           ; <float> [#uses=1]
-        ret float %A
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_branch.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_branch.ll
deleted file mode 100644
index 87ad182..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_branch.ll
+++ /dev/null
@@ -1,150 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep ceq     %t1.s | count 30 
-; RUN: grep ceqb    %t1.s | count 10
-; RUN: grep ceqhi   %t1.s | count 5
-; RUN: grep ceqi    %t1.s | count 5
-; RUN: grep cgt     %t1.s | count 30
-; RUN: grep cgtb    %t1.s | count 10
-; RUN: grep cgthi   %t1.s | count 5
-; RUN: grep cgti    %t1.s | count 5
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-declare <4 x i32> @llvm.spu.si.shli(<4 x i32>, i8)
-
-declare <4 x i32> @llvm.spu.si.ceq(<4 x i32>, <4 x i32>)
-declare <16 x i8> @llvm.spu.si.ceqb(<16 x i8>, <16 x i8>)
-declare <8 x i16> @llvm.spu.si.ceqh(<8 x i16>, <8 x i16>)
-declare <4 x i32> @llvm.spu.si.ceqi(<4 x i32>, i16)
-declare <8 x i16> @llvm.spu.si.ceqhi(<8 x i16>, i16)
-declare <16 x i8> @llvm.spu.si.ceqbi(<16 x i8>, i8)
-
-declare <4 x i32> @llvm.spu.si.cgt(<4 x i32>, <4 x i32>)
-declare <16 x i8> @llvm.spu.si.cgtb(<16 x i8>, <16 x i8>)
-declare <8 x i16> @llvm.spu.si.cgth(<8 x i16>, <8 x i16>)
-declare <4 x i32> @llvm.spu.si.cgti(<4 x i32>, i16)
-declare <8 x i16> @llvm.spu.si.cgthi(<8 x i16>, i16)
-declare <16 x i8> @llvm.spu.si.cgtbi(<16 x i8>, i8)
-
-declare <4 x i32> @llvm.spu.si.clgt(<4 x i32>, <4 x i32>)
-declare <16 x i8> @llvm.spu.si.clgtb(<16 x i8>, <16 x i8>)
-declare <8 x i16> @llvm.spu.si.clgth(<8 x i16>, <8 x i16>)
-declare <4 x i32> @llvm.spu.si.clgti(<4 x i32>, i16)
-declare <8 x i16> @llvm.spu.si.clgthi(<8 x i16>, i16)
-declare <16 x i8> @llvm.spu.si.clgtbi(<16 x i8>, i8)
-
-
-
-define <4 x i32> @test(<4 x i32> %A) {
-        call <4 x i32> @llvm.spu.si.shli(<4 x i32> %A, i8 3)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <4 x i32> @ceqtest(<4 x i32> %A, <4 x i32> %B) {
-        call <4 x i32> @llvm.spu.si.ceq(<4 x i32> %A, <4 x i32> %B)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <8 x i16> @ceqhtest(<8 x i16> %A, <8 x i16> %B) {
-        call <8 x i16> @llvm.spu.si.ceqh(<8 x i16> %A, <8 x i16> %B)
-        %Y = bitcast <8 x i16> %1 to <8 x i16>
-        ret <8 x i16> %Y
-}
-
-define <16 x i8> @ceqbtest(<16 x i8> %A, <16 x i8> %B) {
-        call <16 x i8> @llvm.spu.si.ceqb(<16 x i8> %A, <16 x i8> %B)
-        %Y = bitcast <16 x i8> %1 to <16 x i8>
-        ret <16 x i8> %Y
-}
-
-define <4 x i32> @ceqitest(<4 x i32> %A) {
-        call <4 x i32> @llvm.spu.si.ceqi(<4 x i32> %A, i16 65)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <8 x i16> @ceqhitest(<8 x i16> %A) {
-        call <8 x i16> @llvm.spu.si.ceqhi(<8 x i16> %A, i16 65)
-        %Y = bitcast <8 x i16> %1 to <8 x i16>
-        ret <8 x i16> %Y
-}
-
-define <16 x i8> @ceqbitest(<16 x i8> %A) {
-        call <16 x i8> @llvm.spu.si.ceqbi(<16 x i8> %A, i8 65)
-        %Y = bitcast <16 x i8> %1 to <16 x i8>
-        ret <16 x i8> %Y
-}
-
-define <4 x i32> @cgttest(<4 x i32> %A, <4 x i32> %B) {
-        call <4 x i32> @llvm.spu.si.cgt(<4 x i32> %A, <4 x i32> %B)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <8 x i16> @cgthtest(<8 x i16> %A, <8 x i16> %B) {
-        call <8 x i16> @llvm.spu.si.cgth(<8 x i16> %A, <8 x i16> %B)
-        %Y = bitcast <8 x i16> %1 to <8 x i16>
-        ret <8 x i16> %Y
-}
-
-define <16 x i8> @cgtbtest(<16 x i8> %A, <16 x i8> %B) {
-        call <16 x i8> @llvm.spu.si.cgtb(<16 x i8> %A, <16 x i8> %B)
-        %Y = bitcast <16 x i8> %1 to <16 x i8>
-        ret <16 x i8> %Y
-}
-
-define <4 x i32> @cgtitest(<4 x i32> %A) {
-        call <4 x i32> @llvm.spu.si.cgti(<4 x i32> %A, i16 65)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <8 x i16> @cgthitest(<8 x i16> %A) {
-        call <8 x i16> @llvm.spu.si.cgthi(<8 x i16> %A, i16 65)
-        %Y = bitcast <8 x i16> %1 to <8 x i16>
-        ret <8 x i16> %Y
-}
-
-define <16 x i8> @cgtbitest(<16 x i8> %A) {
-        call <16 x i8> @llvm.spu.si.cgtbi(<16 x i8> %A, i8 65)
-        %Y = bitcast <16 x i8> %1 to <16 x i8>
-        ret <16 x i8> %Y
-}
-
-define <4 x i32> @clgttest(<4 x i32> %A, <4 x i32> %B) {
-        call <4 x i32> @llvm.spu.si.clgt(<4 x i32> %A, <4 x i32> %B)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <8 x i16> @clgthtest(<8 x i16> %A, <8 x i16> %B) {
-        call <8 x i16> @llvm.spu.si.clgth(<8 x i16> %A, <8 x i16> %B)
-        %Y = bitcast <8 x i16> %1 to <8 x i16>
-        ret <8 x i16> %Y
-}
-
-define <16 x i8> @clgtbtest(<16 x i8> %A, <16 x i8> %B) {
-        call <16 x i8> @llvm.spu.si.clgtb(<16 x i8> %A, <16 x i8> %B)
-        %Y = bitcast <16 x i8> %1 to <16 x i8>
-        ret <16 x i8> %Y
-}
-
-define <4 x i32> @clgtitest(<4 x i32> %A) {
-        call <4 x i32> @llvm.spu.si.clgti(<4 x i32> %A, i16 65)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <8 x i16> @clgthitest(<8 x i16> %A) {
-        call <8 x i16> @llvm.spu.si.clgthi(<8 x i16> %A, i16 65)
-        %Y = bitcast <8 x i16> %1 to <8 x i16>
-        ret <8 x i16> %Y
-}
-
-define <16 x i8> @clgtbitest(<16 x i8> %A) {
-        call <16 x i8> @llvm.spu.si.clgtbi(<16 x i8> %A, i8 65)
-        %Y = bitcast <16 x i8> %1 to <16 x i8>
-        ret <16 x i8> %Y
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_float.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_float.ll
deleted file mode 100644
index c18f8de..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_float.ll
+++ /dev/null
@@ -1,94 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep fa      %t1.s | count 5
-; RUN: grep fs      %t1.s | count 5
-; RUN: grep fm      %t1.s | count 15
-; RUN: grep fceq    %t1.s | count 5
-; RUN: grep fcmeq   %t1.s | count 5
-; RUN: grep fcgt    %t1.s | count 5
-; RUN: grep fcmgt   %t1.s | count 5
-; RUN: grep fma     %t1.s | count 5
-; RUN: grep fnms    %t1.s | count 5
-; RUN: grep fms     %t1.s | count 5
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-declare <4 x i32> @llvm.spu.si.shli(<4 x i32>, i8)
-
-declare <4 x float> @llvm.spu.si.fa(<4 x float>, <4 x float>)
-declare <4 x float> @llvm.spu.si.fs(<4 x float>, <4 x float>)
-declare <4 x float> @llvm.spu.si.fm(<4 x float>, <4 x float>)
-
-declare <4 x float> @llvm.spu.si.fceq(<4 x float>, <4 x float>)
-declare <4 x float> @llvm.spu.si.fcmeq(<4 x float>, <4 x float>)
-declare <4 x float> @llvm.spu.si.fcgt(<4 x float>, <4 x float>)
-declare <4 x float> @llvm.spu.si.fcmgt(<4 x float>, <4 x float>)
-
-declare <4 x float> @llvm.spu.si.fma(<4 x float>, <4 x float>, <4 x float>)
-declare <4 x float> @llvm.spu.si.fnms(<4 x float>, <4 x float>, <4 x float>)
-declare <4 x float> @llvm.spu.si.fms(<4 x float>, <4 x float>, <4 x float>)
-
-define <4 x i32> @test(<4 x i32> %A) {
-        call <4 x i32> @llvm.spu.si.shli(<4 x i32> %A, i8 3)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <4 x float> @fatest(<4 x float> %A, <4 x float> %B) {
-        call <4 x float> @llvm.spu.si.fa(<4 x float> %A, <4 x float> %B)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fstest(<4 x float> %A, <4 x float> %B) {
-        call <4 x float> @llvm.spu.si.fs(<4 x float> %A, <4 x float> %B)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fmtest(<4 x float> %A, <4 x float> %B) {
-        call <4 x float> @llvm.spu.si.fm(<4 x float> %A, <4 x float> %B)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fceqtest(<4 x float> %A, <4 x float> %B) {
-        call <4 x float> @llvm.spu.si.fceq(<4 x float> %A, <4 x float> %B)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fcmeqtest(<4 x float> %A, <4 x float> %B) {
-        call <4 x float> @llvm.spu.si.fcmeq(<4 x float> %A, <4 x float> %B)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fcgttest(<4 x float> %A, <4 x float> %B) {
-        call <4 x float> @llvm.spu.si.fcgt(<4 x float> %A, <4 x float> %B)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fcmgttest(<4 x float> %A, <4 x float> %B) {
-        call <4 x float> @llvm.spu.si.fcmgt(<4 x float> %A, <4 x float> %B)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fmatest(<4 x float> %A, <4 x float> %B, <4 x float> %C) {
-        call <4 x float> @llvm.spu.si.fma(<4 x float> %A, <4 x float> %B, <4 x float> %C)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fnmstest(<4 x float> %A, <4 x float> %B, <4 x float> %C) {
-        call <4 x float> @llvm.spu.si.fnms(<4 x float> %A, <4 x float> %B, <4 x float> %C)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
-
-define <4 x float> @fmstest(<4 x float> %A, <4 x float> %B, <4 x float> %C) {
-        call <4 x float> @llvm.spu.si.fms(<4 x float> %A, <4 x float> %B, <4 x float> %C)
-        %Y = bitcast <4 x float> %1 to <4 x float>
-        ret <4 x float> %Y
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_logical.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_logical.ll
deleted file mode 100644
index 843340b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/intrinsics_logical.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep and       %t1.s | count 20
-; RUN: grep andc      %t1.s | count 5
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-declare <4 x i32> @llvm.spu.si.and(<4 x i32>, <4 x i32>)
-declare <4 x i32> @llvm.spu.si.andc(<4 x i32>, <4 x i32>)
-declare <4 x i32> @llvm.spu.si.andi(<4 x i32>, i16)
-declare <8 x i16> @llvm.spu.si.andhi(<8 x i16>, i16)
-declare <16 x i8> @llvm.spu.si.andbi(<16 x i8>, i8)
-
-declare <4 x i32> @llvm.spu.si.or(<4 x i32>, <4 x i32>)
-declare <4 x i32> @llvm.spu.si.orc(<4 x i32>, <4 x i32>)
-declare <4 x i32> @llvm.spu.si.ori(<4 x i32>, i16)
-declare <8 x i16> @llvm.spu.si.orhi(<8 x i16>, i16)
-declare <16 x i8> @llvm.spu.si.orbi(<16 x i8>, i8)
-
-declare <4 x i32> @llvm.spu.si.xor(<4 x i32>, <4 x i32>)
-declare <4 x i32> @llvm.spu.si.xori(<4 x i32>, i16)
-declare <8 x i16> @llvm.spu.si.xorhi(<8 x i16>, i16)
-declare <16 x i8> @llvm.spu.si.xorbi(<16 x i8>, i8)
-
-declare <4 x i32> @llvm.spu.si.nand(<4 x i32>, <4 x i32>)
-declare <4 x i32> @llvm.spu.si.nor(<4 x i32>, <4 x i32>)
-
-define <4 x i32> @andtest(<4 x i32> %A, <4 x i32> %B) {
-        call <4 x i32> @llvm.spu.si.and(<4 x i32> %A, <4 x i32> %B)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <4 x i32> @andctest(<4 x i32> %A, <4 x i32> %B) {
-        call <4 x i32> @llvm.spu.si.andc(<4 x i32> %A, <4 x i32> %B)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <4 x i32> @anditest(<4 x i32> %A) {
-        call <4 x i32> @llvm.spu.si.andi(<4 x i32> %A, i16 65)
-        %Y = bitcast <4 x i32> %1 to <4 x i32>
-        ret <4 x i32> %Y
-}
-
-define <8 x i16> @andhitest(<8 x i16> %A) {
-        call <8 x i16> @llvm.spu.si.andhi(<8 x i16> %A, i16 65)
-        %Y = bitcast <8 x i16> %1 to <8 x i16>
-        ret <8 x i16> %Y
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/loads.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/loads.ll
deleted file mode 100644
index 4addbab..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/loads.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu | FileCheck %s
-
-; ModuleID = 'loads.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define <4 x float> @load_v4f32_1(<4 x float>* %a) nounwind readonly {
-entry:
-	%tmp1 = load <4 x float>* %a
-	ret <4 x float> %tmp1
-; CHECK:	lqd	$3, 0($3)
-}
-
-define <4 x float> @load_v4f32_2(<4 x float>* %a) nounwind readonly {
-entry:
-	%arrayidx = getelementptr <4 x float>* %a, i32 1
-	%tmp1 = load <4 x float>* %arrayidx
-	ret <4 x float> %tmp1
-; CHECK:	lqd	$3, 16($3)
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/mul-with-overflow.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/mul-with-overflow.ll
deleted file mode 100644
index 755b99b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/mul-with-overflow.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=cellspu
-
-declare {i16, i1} @llvm.smul.with.overflow.i16(i16 %a, i16 %b)
-define i1 @a(i16 %x) zeroext nounwind {
-  %res = call {i16, i1} @llvm.smul.with.overflow.i16(i16 %x, i16 3)
-  %obil = extractvalue {i16, i1} %res, 1
-  ret i1 %obil
-}
-
-declare {i16, i1} @llvm.umul.with.overflow.i16(i16 %a, i16 %b)
-define i1 @b(i16 %x) zeroext nounwind {
-  %res = call {i16, i1} @llvm.umul.with.overflow.i16(i16 %x, i16 3)
-  %obil = extractvalue {i16, i1} %res, 1
-  ret i1 %obil
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/mul_ops.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/mul_ops.ll
deleted file mode 100644
index 085ce55..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/mul_ops.ll
+++ /dev/null
@@ -1,89 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep mpy     %t1.s | count 44
-; RUN: grep mpyu    %t1.s | count 4
-; RUN: grep mpyh    %t1.s | count 10
-; RUN: grep mpyhh   %t1.s | count 2
-; RUN: grep rotma   %t1.s | count 12
-; RUN: grep rotmahi %t1.s | count 4
-; RUN: grep and     %t1.s | count 2
-; RUN: grep selb    %t1.s | count 6
-; RUN: grep fsmbi   %t1.s | count 4
-; RUN: grep shli    %t1.s | count 4
-; RUN: grep shlhi   %t1.s | count 4
-; RUN: grep ila     %t1.s | count 2
-; RUN: grep xsbh    %t1.s | count 4
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; 32-bit multiply instruction generation:
-define <4 x i32> @mpy_v4i32_1(<4 x i32> %arg1, <4 x i32> %arg2) {
-entry:
-        %A = mul <4 x i32> %arg1, %arg2
-        ret <4 x i32> %A
-}
-
-define <4 x i32> @mpy_v4i32_2(<4 x i32> %arg1, <4 x i32> %arg2) {
-entry:
-        %A = mul <4 x i32> %arg2, %arg1
-        ret <4 x i32> %A
-}
-
-define <8 x i16> @mpy_v8i16_1(<8 x i16> %arg1, <8 x i16> %arg2) {
-entry:
-        %A = mul <8 x i16> %arg1, %arg2
-        ret <8 x i16> %A
-}
-
-define <8 x i16> @mpy_v8i16_2(<8 x i16> %arg1, <8 x i16> %arg2) {
-entry:
-        %A = mul <8 x i16> %arg2, %arg1
-        ret <8 x i16> %A
-}
-
-define <16 x i8> @mul_v16i8_1(<16 x i8> %arg1, <16 x i8> %arg2) {
-entry:
-        %A = mul <16 x i8> %arg2, %arg1
-        ret <16 x i8> %A
-}
-
-define <16 x i8> @mul_v16i8_2(<16 x i8> %arg1, <16 x i8> %arg2) {
-entry:
-        %A = mul <16 x i8> %arg1, %arg2
-        ret <16 x i8> %A
-}
-
-define i32 @mul_i32_1(i32 %arg1, i32 %arg2) {
-entry:
-        %A = mul i32 %arg2, %arg1
-        ret i32 %A
-}
-
-define i32 @mul_i32_2(i32 %arg1, i32 %arg2) {
-entry:
-        %A = mul i32 %arg1, %arg2
-        ret i32 %A
-}
-
-define i16 @mul_i16_1(i16 %arg1, i16 %arg2) {
-entry:
-        %A = mul i16 %arg2, %arg1
-        ret i16 %A
-}
-
-define i16 @mul_i16_2(i16 %arg1, i16 %arg2) {
-entry:
-        %A = mul i16 %arg1, %arg2
-        ret i16 %A
-}
-
-define i8 @mul_i8_1(i8 %arg1, i8 %arg2) {
-entry:
-        %A = mul i8 %arg2, %arg1
-        ret i8 %A
-}
-
-define i8 @mul_i8_2(i8 %arg1, i8 %arg2) {
-entry:
-        %A = mul i8 %arg1, %arg2
-        ret i8 %A
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/nand.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/nand.ll
deleted file mode 100644
index 841a3ec..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/nand.ll
+++ /dev/null
@@ -1,121 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep nand   %t1.s | count 90
-; RUN: grep and    %t1.s | count 94
-; RUN: grep xsbh   %t1.s | count 2
-; RUN: grep xshw   %t1.s | count 4
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define <4 x i32> @nand_v4i32_1(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = and <4 x i32> %arg2, %arg1      ; <<4 x i32>> [#uses=1]
-        %B = xor <4 x i32> %A, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        ret <4 x i32> %B
-}
-
-define <4 x i32> @nand_v4i32_2(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = and <4 x i32> %arg1, %arg2      ; <<4 x i32>> [#uses=1]
-        %B = xor <4 x i32> %A, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        ret <4 x i32> %B
-}
-
-define <8 x i16> @nand_v8i16_1(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = and <8 x i16> %arg2, %arg1      ; <<8 x i16>> [#uses=1]
-        %B = xor <8 x i16> %A, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                 i16 -1, i16 -1, i16 -1, i16 -1 >
-        ret <8 x i16> %B
-}
-
-define <8 x i16> @nand_v8i16_2(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = and <8 x i16> %arg1, %arg2      ; <<8 x i16>> [#uses=1]
-        %B = xor <8 x i16> %A, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                 i16 -1, i16 -1, i16 -1, i16 -1 >
-        ret <8 x i16> %B
-}
-
-define <16 x i8> @nand_v16i8_1(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = and <16 x i8> %arg2, %arg1      ; <<16 x i8>> [#uses=1]
-        %B = xor <16 x i8> %A, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        ret <16 x i8> %B
-}
-
-define <16 x i8> @nand_v16i8_2(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = and <16 x i8> %arg1, %arg2      ; <<16 x i8>> [#uses=1]
-        %B = xor <16 x i8> %A, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        ret <16 x i8> %B
-}
-
-define i32 @nand_i32_1(i32 %arg1, i32 %arg2) {
-        %A = and i32 %arg2, %arg1            ; <i32> [#uses=1]
-        %B = xor i32 %A, -1                  ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @nand_i32_2(i32 %arg1, i32 %arg2) {
-        %A = and i32 %arg1, %arg2            ; <i32> [#uses=1]
-        %B = xor i32 %A, -1                  ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i16 @nand_i16_1(i16 signext  %arg1, i16 signext  %arg2) signext  {
-        %A = and i16 %arg2, %arg1            ; <i16> [#uses=1]
-        %B = xor i16 %A, -1                  ; <i16> [#uses=1]
-        ret i16 %B
-}
-
-define i16 @nand_i16_2(i16 signext  %arg1, i16 signext  %arg2) signext  {
-        %A = and i16 %arg1, %arg2            ; <i16> [#uses=1]
-        %B = xor i16 %A, -1                  ; <i16> [#uses=1]
-        ret i16 %B
-}
-
-define i16 @nand_i16u_1(i16 zeroext  %arg1, i16 zeroext  %arg2) zeroext  {
-        %A = and i16 %arg2, %arg1            ; <i16> [#uses=1]
-        %B = xor i16 %A, -1                  ; <i16> [#uses=1]
-        ret i16 %B
-}
-
-define i16 @nand_i16u_2(i16 zeroext  %arg1, i16 zeroext  %arg2) zeroext  {
-        %A = and i16 %arg1, %arg2            ; <i16> [#uses=1]
-        %B = xor i16 %A, -1                  ; <i16> [#uses=1]
-        ret i16 %B
-}
-
-define i8 @nand_i8u_1(i8 zeroext  %arg1, i8 zeroext  %arg2) zeroext  {
-        %A = and i8 %arg2, %arg1             ; <i8> [#uses=1]
-        %B = xor i8 %A, -1                   ; <i8> [#uses=1]
-        ret i8 %B
-}
-
-define i8 @nand_i8u_2(i8 zeroext  %arg1, i8 zeroext  %arg2) zeroext  {
-        %A = and i8 %arg1, %arg2             ; <i8> [#uses=1]
-        %B = xor i8 %A, -1                   ; <i8> [#uses=1]
-        ret i8 %B
-}
-
-define i8 @nand_i8_1(i8 signext  %arg1, i8 signext  %arg2) signext  {
-        %A = and i8 %arg2, %arg1             ; <i8> [#uses=1]
-        %B = xor i8 %A, -1                   ; <i8> [#uses=1]
-        ret i8 %B
-}
-
-define i8 @nand_i8_2(i8 signext  %arg1, i8 signext  %arg2) signext  {
-        %A = and i8 %arg1, %arg2             ; <i8> [#uses=1]
-        %B = xor i8 %A, -1                   ; <i8> [#uses=1]
-        ret i8 %B
-}
-
-define i8 @nand_i8_3(i8 %arg1, i8 %arg2) {
-        %A = and i8 %arg2, %arg1             ; <i8> [#uses=1]
-        %B = xor i8 %A, -1                   ; <i8> [#uses=1]
-        ret i8 %B
-}
-
-define i8 @nand_i8_4(i8 %arg1, i8 %arg2) {
-        %A = and i8 %arg1, %arg2             ; <i8> [#uses=1]
-        %B = xor i8 %A, -1                   ; <i8> [#uses=1]
-        ret i8 %B
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/or_ops.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/or_ops.ll
deleted file mode 100644
index 4e9da8f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/or_ops.ll
+++ /dev/null
@@ -1,264 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep and    %t1.s | count 2
-; RUN: grep orc    %t1.s | count 85
-; RUN: grep ori    %t1.s | count 30
-; RUN: grep orhi   %t1.s | count 30
-; RUN: grep orbi   %t1.s | count 15
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; OR instruction generation:
-define <4 x i32> @or_v4i32_1(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = or <4 x i32> %arg1, %arg2
-        ret <4 x i32> %A
-}
-
-define <4 x i32> @or_v4i32_2(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = or <4 x i32> %arg2, %arg1
-        ret <4 x i32> %A
-}
-
-define <8 x i16> @or_v8i16_1(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = or <8 x i16> %arg1, %arg2
-        ret <8 x i16> %A
-}
-
-define <8 x i16> @or_v8i16_2(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = or <8 x i16> %arg2, %arg1
-        ret <8 x i16> %A
-}
-
-define <16 x i8> @or_v16i8_1(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = or <16 x i8> %arg2, %arg1
-        ret <16 x i8> %A
-}
-
-define <16 x i8> @or_v16i8_2(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = or <16 x i8> %arg1, %arg2
-        ret <16 x i8> %A
-}
-
-define i32 @or_i32_1(i32 %arg1, i32 %arg2) {
-        %A = or i32 %arg2, %arg1
-        ret i32 %A
-}
-
-define i32 @or_i32_2(i32 %arg1, i32 %arg2) {
-        %A = or i32 %arg1, %arg2
-        ret i32 %A
-}
-
-define i16 @or_i16_1(i16 %arg1, i16 %arg2) {
-        %A = or i16 %arg2, %arg1
-        ret i16 %A
-}
-
-define i16 @or_i16_2(i16 %arg1, i16 %arg2) {
-        %A = or i16 %arg1, %arg2
-        ret i16 %A
-}
-
-define i8 @or_i8_1(i8 %arg1, i8 %arg2) {
-        %A = or i8 %arg2, %arg1
-        ret i8 %A
-}
-
-define i8 @or_i8_2(i8 %arg1, i8 %arg2) {
-        %A = or i8 %arg1, %arg2
-        ret i8 %A
-}
-
-; ORC instruction generation:
-define <4 x i32> @orc_v4i32_1(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = xor <4 x i32> %arg2, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = or <4 x i32> %arg1, %A
-        ret <4 x i32> %B
-}
-
-define <4 x i32> @orc_v4i32_2(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = xor <4 x i32> %arg1, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = or <4 x i32> %arg2, %A
-        ret <4 x i32> %B
-}
-
-define <4 x i32> @orc_v4i32_3(<4 x i32> %arg1, <4 x i32> %arg2) {
-        %A = xor <4 x i32> %arg1, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = or <4 x i32> %A, %arg2
-        ret <4 x i32> %B
-}
-
-define <8 x i16> @orc_v8i16_1(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = xor <8 x i16> %arg2, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                    i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = or <8 x i16> %arg1, %A
-        ret <8 x i16> %B
-}
-
-define <8 x i16> @orc_v8i16_2(<8 x i16> %arg1, <8 x i16> %arg2) {
-        %A = xor <8 x i16> %arg1, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                    i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = or <8 x i16> %arg2, %A
-        ret <8 x i16> %B
-}
-
-define <16 x i8> @orc_v16i8_1(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = xor <16 x i8> %arg1, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = or <16 x i8> %arg2, %A
-        ret <16 x i8> %B
-}
-
-define <16 x i8> @orc_v16i8_2(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = xor <16 x i8> %arg2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = or <16 x i8> %arg1, %A
-        ret <16 x i8> %B
-}
-
-define <16 x i8> @orc_v16i8_3(<16 x i8> %arg1, <16 x i8> %arg2) {
-        %A = xor <16 x i8> %arg2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1,
-                                    i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = or <16 x i8> %A, %arg1
-        ret <16 x i8> %B
-}
-
-define i32 @orc_i32_1(i32 %arg1, i32 %arg2) {
-        %A = xor i32 %arg2, -1
-        %B = or i32 %A, %arg1
-        ret i32 %B
-}
-
-define i32 @orc_i32_2(i32 %arg1, i32 %arg2) {
-        %A = xor i32 %arg1, -1
-        %B = or i32 %A, %arg2
-        ret i32 %B
-}
-
-define i32 @orc_i32_3(i32 %arg1, i32 %arg2) {
-        %A = xor i32 %arg2, -1
-        %B = or i32 %arg1, %A
-        ret i32 %B
-}
-
-define i16 @orc_i16_1(i16 %arg1, i16 %arg2) {
-        %A = xor i16 %arg2, -1
-        %B = or i16 %A, %arg1
-        ret i16 %B
-}
-
-define i16 @orc_i16_2(i16 %arg1, i16 %arg2) {
-        %A = xor i16 %arg1, -1
-        %B = or i16 %A, %arg2
-        ret i16 %B
-}
-
-define i16 @orc_i16_3(i16 %arg1, i16 %arg2) {
-        %A = xor i16 %arg2, -1
-        %B = or i16 %arg1, %A
-        ret i16 %B
-}
-
-define i8 @orc_i8_1(i8 %arg1, i8 %arg2) {
-        %A = xor i8 %arg2, -1
-        %B = or i8 %A, %arg1
-        ret i8 %B
-}
-
-define i8 @orc_i8_2(i8 %arg1, i8 %arg2) {
-        %A = xor i8 %arg1, -1
-        %B = or i8 %A, %arg2
-        ret i8 %B
-}
-
-define i8 @orc_i8_3(i8 %arg1, i8 %arg2) {
-        %A = xor i8 %arg2, -1
-        %B = or i8 %arg1, %A
-        ret i8 %B
-}
-
-; ORI instruction generation (i32 data type):
-define <4 x i32> @ori_v4i32_1(<4 x i32> %in) {
-        %tmp2 = or <4 x i32> %in, < i32 511, i32 511, i32 511, i32 511 >
-        ret <4 x i32> %tmp2
-}
-
-define <4 x i32> @ori_v4i32_2(<4 x i32> %in) {
-        %tmp2 = or <4 x i32> %in, < i32 510, i32 510, i32 510, i32 510 >
-        ret <4 x i32> %tmp2
-}
-
-define <4 x i32> @ori_v4i32_3(<4 x i32> %in) {
-        %tmp2 = or <4 x i32> %in, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        ret <4 x i32> %tmp2
-}
-
-define <4 x i32> @ori_v4i32_4(<4 x i32> %in) {
-        %tmp2 = or <4 x i32> %in, < i32 -512, i32 -512, i32 -512, i32 -512 >
-        ret <4 x i32> %tmp2
-}
-
-define i32 @ori_u32(i32 zeroext  %in) zeroext  {
-        %tmp37 = or i32 %in, 37         ; <i32> [#uses=1]
-        ret i32 %tmp37
-}
-
-define i32 @ori_i32(i32 signext  %in) signext  {
-        %tmp38 = or i32 %in, 37         ; <i32> [#uses=1]
-        ret i32 %tmp38
-}
-
-; ORHI instruction generation (i16 data type):
-define <8 x i16> @orhi_v8i16_1(<8 x i16> %in) {
-        %tmp2 = or <8 x i16> %in, < i16 511, i16 511, i16 511, i16 511,
-                                    i16 511, i16 511, i16 511, i16 511 >
-        ret <8 x i16> %tmp2
-}
-
-define <8 x i16> @orhi_v8i16_2(<8 x i16> %in) {
-        %tmp2 = or <8 x i16> %in, < i16 510, i16 510, i16 510, i16 510,
-                                    i16 510, i16 510, i16 510, i16 510 >
-        ret <8 x i16> %tmp2
-}
-
-define <8 x i16> @orhi_v8i16_3(<8 x i16> %in) {
-        %tmp2 = or <8 x i16> %in, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1,
-                                    i16 -1, i16 -1, i16 -1 >
-        ret <8 x i16> %tmp2
-}
-
-define <8 x i16> @orhi_v8i16_4(<8 x i16> %in) {
-        %tmp2 = or <8 x i16> %in, < i16 -512, i16 -512, i16 -512, i16 -512,
-                                    i16 -512, i16 -512, i16 -512, i16 -512 >
-        ret <8 x i16> %tmp2
-}
-
-define i16 @orhi_u16(i16 zeroext  %in) zeroext  {
-        %tmp37 = or i16 %in, 37         ; <i16> [#uses=1]
-        ret i16 %tmp37
-}
-
-define i16 @orhi_i16(i16 signext  %in) signext  {
-        %tmp38 = or i16 %in, 37         ; <i16> [#uses=1]
-        ret i16 %tmp38
-}
-
-; ORBI instruction generation (i8 data type):
-define <16 x i8> @orbi_v16i8(<16 x i8> %in) {
-        %tmp2 = or <16 x i8> %in, < i8 42, i8 42, i8 42, i8 42, i8 42, i8 42,
-                                    i8 42, i8 42, i8 42, i8 42, i8 42, i8 42,
-                                    i8 42, i8 42, i8 42, i8 42 >
-        ret <16 x i8> %tmp2
-}
-
-define i8 @orbi_u8(i8 zeroext  %in) zeroext  {
-        %tmp37 = or i8 %in, 37         ; <i8> [#uses=1]
-        ret i8 %tmp37
-}
-
-define i8 @orbi_i8(i8 signext  %in) signext  {
-        %tmp38 = or i8 %in, 37         ; <i8> [#uses=1]
-        ret i8 %tmp38
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/private.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/private.ll
deleted file mode 100644
index 91567ce..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/private.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; Test to make sure that the 'private' is used correctly.
-;
-; RUN: llvm-as < %s | llc -march=cellspu > %t
-; RUN: grep .Lfoo: %t
-; RUN: grep brsl.*\.Lfoo %t
-; RUN: grep .Lbaz: %t
-; RUN: grep ila.*\.Lbaz %t
-
-
-declare void @foo()
-
-define private void @foo() {
-        ret void
-}
-
- at baz = private global i32 4;
-
-define i32 @bar() {
-        call void @foo()
-	%1 = load i32* @baz, align 4
-        ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/rotate_ops.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/rotate_ops.ll
deleted file mode 100644
index 9a10264..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/rotate_ops.ll
+++ /dev/null
@@ -1,160 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu -o %t1.s
-; RUN: grep rot          %t1.s | count 85
-; RUN: grep roth         %t1.s | count 8
-; RUN: grep roti.*5      %t1.s | count 1
-; RUN: grep roti.*27     %t1.s | count 1
-; RUN grep rothi.*5      %t1.s | count 2
-; RUN grep rothi.*11     %t1.s | count 1
-; RUN grep rothi.*,.3    %t1.s | count 1
-; RUN: grep andhi        %t1.s | count 4
-; RUN: grep shlhi        %t1.s | count 4
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; Vector rotates are not currently supported in gcc or llvm assembly. These are
-; not tested.
-
-; 32-bit rotates:
-define i32 @rotl32_1a(i32 %arg1, i8 %arg2) {
-        %tmp1 = zext i8 %arg2 to i32    ; <i32> [#uses=1]
-        %B = shl i32 %arg1, %tmp1       ; <i32> [#uses=1]
-        %arg22 = sub i8 32, %arg2       ; <i8> [#uses=1]
-        %tmp2 = zext i8 %arg22 to i32   ; <i32> [#uses=1]
-        %C = lshr i32 %arg1, %tmp2      ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @rotl32_1b(i32 %arg1, i16 %arg2) {
-        %tmp1 = zext i16 %arg2 to i32   ; <i32> [#uses=1]
-        %B = shl i32 %arg1, %tmp1       ; <i32> [#uses=1]
-        %arg22 = sub i16 32, %arg2      ; <i8> [#uses=1]
-        %tmp2 = zext i16 %arg22 to i32  ; <i32> [#uses=1]
-        %C = lshr i32 %arg1, %tmp2      ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @rotl32_2(i32 %arg1, i32 %arg2) {
-        %B = shl i32 %arg1, %arg2       ; <i32> [#uses=1]
-        %tmp1 = sub i32 32, %arg2       ; <i32> [#uses=1]
-        %C = lshr i32 %arg1, %tmp1      ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @rotl32_3(i32 %arg1, i32 %arg2) {
-        %tmp1 = sub i32 32, %arg2       ; <i32> [#uses=1]
-        %B = shl i32 %arg1, %arg2       ; <i32> [#uses=1]
-        %C = lshr i32 %arg1, %tmp1      ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @rotl32_4(i32 %arg1, i32 %arg2) {
-        %tmp1 = sub i32 32, %arg2       ; <i32> [#uses=1]
-        %C = lshr i32 %arg1, %tmp1      ; <i32> [#uses=1]
-        %B = shl i32 %arg1, %arg2       ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @rotr32_1(i32 %A, i8 %Amt) {
-        %tmp1 = zext i8 %Amt to i32     ; <i32> [#uses=1]
-        %B = lshr i32 %A, %tmp1         ; <i32> [#uses=1]
-        %Amt2 = sub i8 32, %Amt         ; <i8> [#uses=1]
-        %tmp2 = zext i8 %Amt2 to i32    ; <i32> [#uses=1]
-        %C = shl i32 %A, %tmp2          ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @rotr32_2(i32 %A, i8 %Amt) {
-        %Amt2 = sub i8 32, %Amt         ; <i8> [#uses=1]
-        %tmp1 = zext i8 %Amt to i32     ; <i32> [#uses=1]
-        %B = lshr i32 %A, %tmp1         ; <i32> [#uses=1]
-        %tmp2 = zext i8 %Amt2 to i32    ; <i32> [#uses=1]
-        %C = shl i32 %A, %tmp2          ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-; Rotate left with immediate
-define i32 @rotli32(i32 %A) {
-        %B = shl i32 %A, 5              ; <i32> [#uses=1]
-        %C = lshr i32 %A, 27            ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-; Rotate right with immediate
-define i32 @rotri32(i32 %A) {
-        %B = lshr i32 %A, 5             ; <i32> [#uses=1]
-        %C = shl i32 %A, 27             ; <i32> [#uses=1]
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-; 16-bit rotates:
-define i16 @rotr16_1(i16 %arg1, i8 %arg) {
-        %tmp1 = zext i8 %arg to i16             ; <i16> [#uses=1]
-        %B = lshr i16 %arg1, %tmp1              ; <i16> [#uses=1]
-        %arg2 = sub i8 16, %arg                 ; <i8> [#uses=1]
-        %tmp2 = zext i8 %arg2 to i16            ; <i16> [#uses=1]
-        %C = shl i16 %arg1, %tmp2               ; <i16> [#uses=1]
-        %D = or i16 %B, %C                      ; <i16> [#uses=1]
-        ret i16 %D
-}
-
-define i16 @rotr16_2(i16 %arg1, i16 %arg) {
-        %B = lshr i16 %arg1, %arg       ; <i16> [#uses=1]
-        %tmp1 = sub i16 16, %arg        ; <i16> [#uses=1]
-        %C = shl i16 %arg1, %tmp1       ; <i16> [#uses=1]
-        %D = or i16 %B, %C              ; <i16> [#uses=1]
-        ret i16 %D
-}
-
-define i16 @rotli16(i16 %A) {
-        %B = shl i16 %A, 5              ; <i16> [#uses=1]
-        %C = lshr i16 %A, 11            ; <i16> [#uses=1]
-        %D = or i16 %B, %C              ; <i16> [#uses=1]
-        ret i16 %D
-}
-
-define i16 @rotri16(i16 %A) {
-        %B = lshr i16 %A, 5             ; <i16> [#uses=1]
-        %C = shl i16 %A, 11             ; <i16> [#uses=1]
-        %D = or i16 %B, %C              ; <i16> [#uses=1]
-        ret i16 %D
-}
-
-define i8 @rotl8(i8 %A, i8 %Amt) {
-        %B = shl i8 %A, %Amt            ; <i8> [#uses=1]
-        %Amt2 = sub i8 8, %Amt          ; <i8> [#uses=1]
-        %C = lshr i8 %A, %Amt2          ; <i8> [#uses=1]
-        %D = or i8 %B, %C               ; <i8> [#uses=1]
-        ret i8 %D
-}
-
-define i8 @rotr8(i8 %A, i8 %Amt) {
-        %B = lshr i8 %A, %Amt           ; <i8> [#uses=1]
-        %Amt2 = sub i8 8, %Amt          ; <i8> [#uses=1]
-        %C = shl i8 %A, %Amt2           ; <i8> [#uses=1]
-        %D = or i8 %B, %C               ; <i8> [#uses=1]
-        ret i8 %D
-}
-
-define i8 @rotli8(i8 %A) {
-        %B = shl i8 %A, 5               ; <i8> [#uses=1]
-        %C = lshr i8 %A, 3              ; <i8> [#uses=1]
-        %D = or i8 %B, %C               ; <i8> [#uses=1]
-        ret i8 %D
-}
-
-define i8 @rotri8(i8 %A) {
-        %B = lshr i8 %A, 5              ; <i8> [#uses=1]
-        %C = shl i8 %A, 3               ; <i8> [#uses=1]
-        %D = or i8 %B, %C               ; <i8> [#uses=1]
-        ret i8 %D
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/select_bits.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/select_bits.ll
deleted file mode 100644
index e83e476..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/select_bits.ll
+++ /dev/null
@@ -1,569 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep selb   %t1.s | count 56
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-; v2i64
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-; (or (and rC, rB), (and (not rC), rA))
-define <2 x i64> @selectbits_v2i64_01(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %C = and <2 x i64> %rC, %rB
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %A, %rA
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-; (or (and rB, rC), (and (not rC), rA))
-define <2 x i64> @selectbits_v2i64_02(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %C = and <2 x i64> %rB, %rC
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %A, %rA
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-; (or (and (not rC), rA), (and rB, rC))
-define <2 x i64> @selectbits_v2i64_03(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %A, %rA
-        %C = and <2 x i64> %rB, %rC
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-; (or (and (not rC), rA), (and rC, rB))
-define <2 x i64> @selectbits_v2i64_04(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %A, %rA
-        %C = and <2 x i64> %rC, %rB
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-; (or (and rC, rB), (and rA, (not rC)))
-define <2 x i64> @selectbits_v2i64_05(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %C = and <2 x i64> %rC, %rB
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %rA, %A
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-; (or (and rB, rC), (and rA, (not rC)))
-define <2 x i64> @selectbits_v2i64_06(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %C = and <2 x i64> %rB, %rC
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %rA, %A
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-; (or (and rA, (not rC)), (and rB, rC))
-define <2 x i64> @selectbits_v2i64_07(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %rA, %A
-        %C = and <2 x i64> %rB, %rC
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-; (or (and rA, (not rC)), (and rC, rB))
-define <2 x i64> @selectbits_v2i64_08(<2 x i64> %rA, <2 x i64> %rB, <2 x i64> %rC) {
-        %A = xor <2 x i64> %rC, < i64 -1, i64 -1 >
-        %B = and <2 x i64> %rA, %A
-        %C = and <2 x i64> %rC, %rB
-        %D = or <2 x i64> %C, %B
-        ret <2 x i64> %D
-}
-
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-; v4i32
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-; (or (and rC, rB), (and (not rC), rA))
-define <4 x i32> @selectbits_v4i32_01(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %C = and <4 x i32> %rC, %rB
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = and <4 x i32> %A, %rA
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-; (or (and rB, rC), (and (not rC), rA))
-define <4 x i32> @selectbits_v4i32_02(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %C = and <4 x i32> %rB, %rC
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = and <4 x i32> %A, %rA
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-; (or (and (not rC), rA), (and rB, rC))
-define <4 x i32> @selectbits_v4i32_03(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1 >
-        %B = and <4 x i32> %A, %rA
-        %C = and <4 x i32> %rB, %rC
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-; (or (and (not rC), rA), (and rC, rB))
-define <4 x i32> @selectbits_v4i32_04(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1>
-        %B = and <4 x i32> %A, %rA
-        %C = and <4 x i32> %rC, %rB
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-; (or (and rC, rB), (and rA, (not rC)))
-define <4 x i32> @selectbits_v4i32_05(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %C = and <4 x i32> %rC, %rB
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1>
-        %B = and <4 x i32> %rA, %A
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-; (or (and rB, rC), (and rA, (not rC)))
-define <4 x i32> @selectbits_v4i32_06(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %C = and <4 x i32> %rB, %rC
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1>
-        %B = and <4 x i32> %rA, %A
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-; (or (and rA, (not rC)), (and rB, rC))
-define <4 x i32> @selectbits_v4i32_07(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1>
-        %B = and <4 x i32> %rA, %A
-        %C = and <4 x i32> %rB, %rC
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-; (or (and rA, (not rC)), (and rC, rB))
-define <4 x i32> @selectbits_v4i32_08(<4 x i32> %rA, <4 x i32> %rB, <4 x i32> %rC) {
-        %A = xor <4 x i32> %rC, < i32 -1, i32 -1, i32 -1, i32 -1>
-        %B = and <4 x i32> %rA, %A
-        %C = and <4 x i32> %rC, %rB
-        %D = or <4 x i32> %C, %B
-        ret <4 x i32> %D
-}
-
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-; v8i16
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-; (or (and rC, rB), (and (not rC), rA))
-define <8 x i16> @selectbits_v8i16_01(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %C = and <8 x i16> %rC, %rB
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %A, %rA
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-; (or (and rB, rC), (and (not rC), rA))
-define <8 x i16> @selectbits_v8i16_02(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %C = and <8 x i16> %rB, %rC
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %A, %rA
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-; (or (and (not rC), rA), (and rB, rC))
-define <8 x i16> @selectbits_v8i16_03(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %A, %rA
-        %C = and <8 x i16> %rB, %rC
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-; (or (and (not rC), rA), (and rC, rB))
-define <8 x i16> @selectbits_v8i16_04(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %A, %rA
-        %C = and <8 x i16> %rC, %rB
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-; (or (and rC, rB), (and rA, (not rC)))
-define <8 x i16> @selectbits_v8i16_05(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %C = and <8 x i16> %rC, %rB
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %rA, %A
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-; (or (and rB, rC), (and rA, (not rC)))
-define <8 x i16> @selectbits_v8i16_06(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %C = and <8 x i16> %rB, %rC
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %rA, %A
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-; (or (and rA, (not rC)), (and rB, rC))
-define <8 x i16> @selectbits_v8i16_07(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %rA, %A
-        %C = and <8 x i16> %rB, %rC
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-; (or (and rA, (not rC)), (and rC, rB))
-define <8 x i16> @selectbits_v8i16_08(<8 x i16> %rA, <8 x i16> %rB, <8 x i16> %rC) {
-        %A = xor <8 x i16> %rC, < i16 -1, i16 -1, i16 -1, i16 -1,
-                                  i16 -1, i16 -1, i16 -1, i16 -1 >
-        %B = and <8 x i16> %rA, %A
-        %C = and <8 x i16> %rC, %rB
-        %D = or <8 x i16> %C, %B
-        ret <8 x i16> %D
-}
-
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-; v16i8
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-; (or (and rC, rB), (and (not rC), rA))
-define <16 x i8> @selectbits_v16i8_01(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %C = and <16 x i8> %rC, %rB
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %A, %rA
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-; (or (and rB, rC), (and (not rC), rA))
-define <16 x i8> @selectbits_v16i8_02(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %C = and <16 x i8> %rB, %rC
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %A, %rA
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-; (or (and (not rC), rA), (and rB, rC))
-define <16 x i8> @selectbits_v16i8_03(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %A, %rA
-        %C = and <16 x i8> %rB, %rC
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-; (or (and (not rC), rA), (and rC, rB))
-define <16 x i8> @selectbits_v16i8_04(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %A, %rA
-        %C = and <16 x i8> %rC, %rB
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-; (or (and rC, rB), (and rA, (not rC)))
-define <16 x i8> @selectbits_v16i8_05(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %C = and <16 x i8> %rC, %rB
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %rA, %A
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-; (or (and rB, rC), (and rA, (not rC)))
-define <16 x i8> @selectbits_v16i8_06(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %C = and <16 x i8> %rB, %rC
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %rA, %A
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-; (or (and rA, (not rC)), (and rB, rC))
-define <16 x i8> @selectbits_v16i8_07(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %rA, %A
-        %C = and <16 x i8> %rB, %rC
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-; (or (and rA, (not rC)), (and rC, rB))
-define <16 x i8> @selectbits_v16i8_08(<16 x i8> %rA, <16 x i8> %rB, <16 x i8> %rC) {
-        %A = xor <16 x i8> %rC, < i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1,
-                                  i8 -1, i8 -1, i8 -1, i8 -1 >
-        %B = and <16 x i8> %rA, %A
-        %C = and <16 x i8> %rC, %rB
-        %D = or <16 x i8> %C, %B
-        ret <16 x i8> %D
-}
-
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-; i32
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-; (or (and rC, rB), (and (not rC), rA))
-define i32 @selectbits_i32_01(i32 %rA, i32 %rB, i32 %rC) {
-        %C = and i32 %rC, %rB
-        %A = xor i32 %rC, -1
-        %B = and i32 %A, %rA
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-; (or (and rB, rC), (and (not rC), rA))
-define i32 @selectbits_i32_02(i32 %rA, i32 %rB, i32 %rC) {
-        %C = and i32 %rB, %rC
-        %A = xor i32 %rC, -1
-        %B = and i32 %A, %rA
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-; (or (and (not rC), rA), (and rB, rC))
-define i32 @selectbits_i32_03(i32 %rA, i32 %rB, i32 %rC) {
-        %A = xor i32 %rC, -1
-        %B = and i32 %A, %rA
-        %C = and i32 %rB, %rC
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-; (or (and (not rC), rA), (and rC, rB))
-define i32 @selectbits_i32_04(i32 %rA, i32 %rB, i32 %rC) {
-        %A = xor i32 %rC, -1
-        %B = and i32 %A, %rA
-        %C = and i32 %rC, %rB
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-; (or (and rC, rB), (and rA, (not rC)))
-define i32 @selectbits_i32_05(i32 %rA, i32 %rB, i32 %rC) {
-        %C = and i32 %rC, %rB
-        %A = xor i32 %rC, -1
-        %B = and i32 %rA, %A
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-; (or (and rB, rC), (and rA, (not rC)))
-define i32 @selectbits_i32_06(i32 %rA, i32 %rB, i32 %rC) {
-        %C = and i32 %rB, %rC
-        %A = xor i32 %rC, -1
-        %B = and i32 %rA, %A
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-; (or (and rA, (not rC)), (and rB, rC))
-define i32 @selectbits_i32_07(i32 %rA, i32 %rB, i32 %rC) {
-        %A = xor i32 %rC, -1
-        %B = and i32 %rA, %A
-        %C = and i32 %rB, %rC
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-; (or (and rA, (not rC)), (and rC, rB))
-define i32 @selectbits_i32_08(i32 %rA, i32 %rB, i32 %rC) {
-        %A = xor i32 %rC, -1
-        %B = and i32 %rA, %A
-        %C = and i32 %rC, %rB
-        %D = or i32 %C, %B
-        ret i32 %D
-}
-
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-; i16
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-; (or (and rC, rB), (and (not rC), rA))
-define i16 @selectbits_i16_01(i16 %rA, i16 %rB, i16 %rC) {
-        %C = and i16 %rC, %rB
-        %A = xor i16 %rC, -1
-        %B = and i16 %A, %rA
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-; (or (and rB, rC), (and (not rC), rA))
-define i16 @selectbits_i16_02(i16 %rA, i16 %rB, i16 %rC) {
-        %C = and i16 %rB, %rC
-        %A = xor i16 %rC, -1
-        %B = and i16 %A, %rA
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-; (or (and (not rC), rA), (and rB, rC))
-define i16 @selectbits_i16_03(i16 %rA, i16 %rB, i16 %rC) {
-        %A = xor i16 %rC, -1
-        %B = and i16 %A, %rA
-        %C = and i16 %rB, %rC
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-; (or (and (not rC), rA), (and rC, rB))
-define i16 @selectbits_i16_04(i16 %rA, i16 %rB, i16 %rC) {
-        %A = xor i16 %rC, -1
-        %B = and i16 %A, %rA
-        %C = and i16 %rC, %rB
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-; (or (and rC, rB), (and rA, (not rC)))
-define i16 @selectbits_i16_05(i16 %rA, i16 %rB, i16 %rC) {
-        %C = and i16 %rC, %rB
-        %A = xor i16 %rC, -1
-        %B = and i16 %rA, %A
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-; (or (and rB, rC), (and rA, (not rC)))
-define i16 @selectbits_i16_06(i16 %rA, i16 %rB, i16 %rC) {
-        %C = and i16 %rB, %rC
-        %A = xor i16 %rC, -1
-        %B = and i16 %rA, %A
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-; (or (and rA, (not rC)), (and rB, rC))
-define i16 @selectbits_i16_07(i16 %rA, i16 %rB, i16 %rC) {
-        %A = xor i16 %rC, -1
-        %B = and i16 %rA, %A
-        %C = and i16 %rB, %rC
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-; (or (and rA, (not rC)), (and rC, rB))
-define i16 @selectbits_i16_08(i16 %rA, i16 %rB, i16 %rC) {
-        %A = xor i16 %rC, -1
-        %B = and i16 %rA, %A
-        %C = and i16 %rC, %rB
-        %D = or i16 %C, %B
-        ret i16 %D
-}
-
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-; i8
-;-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-
-; (or (and rC, rB), (and (not rC), rA))
-define i8 @selectbits_i8_01(i8 %rA, i8 %rB, i8 %rC) {
-        %C = and i8 %rC, %rB
-        %A = xor i8 %rC, -1
-        %B = and i8 %A, %rA
-        %D = or i8 %C, %B
-        ret i8 %D
-}
-
-; (or (and rB, rC), (and (not rC), rA))
-define i8 @selectbits_i8_02(i8 %rA, i8 %rB, i8 %rC) {
-        %C = and i8 %rB, %rC
-        %A = xor i8 %rC, -1
-        %B = and i8 %A, %rA
-        %D = or i8 %C, %B
-        ret i8 %D
-}
-
-; (or (and (not rC), rA), (and rB, rC))
-define i8 @selectbits_i8_03(i8 %rA, i8 %rB, i8 %rC) {
-        %A = xor i8 %rC, -1
-        %B = and i8 %A, %rA
-        %C = and i8 %rB, %rC
-        %D = or i8 %C, %B
-        ret i8 %D
-}
-
-; (or (and (not rC), rA), (and rC, rB))
-define i8 @selectbits_i8_04(i8 %rA, i8 %rB, i8 %rC) {
-        %A = xor i8 %rC, -1
-        %B = and i8 %A, %rA
-        %C = and i8 %rC, %rB
-        %D = or i8 %C, %B
-        ret i8 %D
-}
-
-; (or (and rC, rB), (and rA, (not rC)))
-define i8 @selectbits_i8_05(i8 %rA, i8 %rB, i8 %rC) {
-        %C = and i8 %rC, %rB
-        %A = xor i8 %rC, -1
-        %B = and i8 %rA, %A
-        %D = or i8 %C, %B
-        ret i8 %D
-}
-
-; (or (and rB, rC), (and rA, (not rC)))
-define i8 @selectbits_i8_06(i8 %rA, i8 %rB, i8 %rC) {
-        %C = and i8 %rB, %rC
-        %A = xor i8 %rC, -1
-        %B = and i8 %rA, %A
-        %D = or i8 %C, %B
-        ret i8 %D
-}
-
-; (or (and rA, (not rC)), (and rB, rC))
-define i8 @selectbits_i8_07(i8 %rA, i8 %rB, i8 %rC) {
-        %A = xor i8 %rC, -1
-        %B = and i8 %rA, %A
-        %C = and i8 %rB, %rC
-        %D = or i8 %C, %B
-        ret i8 %D
-}
-
-; (or (and rA, (not rC)), (and rC, rB))
-define i8 @selectbits_i8_08(i8 %rA, i8 %rB, i8 %rC) {
-        %A = xor i8 %rC, -1
-        %B = and i8 %rA, %A
-        %C = and i8 %rC, %rB
-        %D = or i8 %C, %B
-        ret i8 %D
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/sext128.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/sext128.ll
deleted file mode 100644
index 71962a9..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/sext128.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu | FileCheck %s 
-
-; ModuleID = 'sext128.bc'
-target datalayout = "E-p:32:32:128-i1:8:128-i8:8:128-i16:16:128-i32:32:128-i64:32:128-f32:32:128-f64:64:128-v64:128:128-v128:128:128-a0:0:128-s0:128:128"
-target triple = "spu"
-
-define i128 @sext_i64_i128(i64 %a) {
-entry:
-        %0 = sext i64 %a to i128
-        ret i128 %0
-; CHECK: 	long	269488144
-; CHECK: 	long	269488144
-; CHECK:	long	66051
-; CHECK: 	long	67438087
-; CHECK: 	rotmai
-; CHECK:	lqa
-; CHECK:	shufb
-}
-
-define i128 @sext_i32_i128(i32 %a) {
-entry:
-        %0 = sext i32 %a to i128
-        ret i128 %0
-; CHECK: 	long	269488144
-; CHECK: 	long	269488144
-; CHECK: 	long	269488144
-; CHECK:	long	66051
-; CHECK: 	rotmai
-; CHECK:	lqa
-; CHECK:	shufb
-}
-
-define i128 @sext_i32_i128a(float %a) {
-entry:
-  %0 = call i32 @myfunc(float %a)
-  %1 = sext i32 %0 to i128
-  ret i128 %1
-; CHECK: 	long	269488144
-; CHECK: 	long	269488144
-; CHECK: 	long	269488144
-; CHECK:	long	66051
-; CHECK: 	rotmai
-; CHECK:	lqa
-; CHECK:	shufb
-}
-
-declare i32 @myfunc(float)
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/shift_ops.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/shift_ops.ll
deleted file mode 100644
index 3c26baa..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/shift_ops.ll
+++ /dev/null
@@ -1,283 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep {shlh	}  %t1.s | count 9
-; RUN: grep {shlhi	}  %t1.s | count 3
-; RUN: grep {shl	}  %t1.s | count 9
-; RUN: grep {shli	}  %t1.s | count 3
-; RUN: grep {xshw	}  %t1.s | count 5
-; RUN: grep {and	}  %t1.s | count 5
-; RUN: grep {andi	}  %t1.s | count 2
-; RUN: grep {rotmi	}  %t1.s | count 2
-; RUN: grep {rotqmbyi	}  %t1.s | count 1
-; RUN: grep {rotqmbii	}  %t1.s | count 2
-; RUN: grep {rotqmby	}  %t1.s | count 1
-; RUN: grep {rotqmbi	}  %t1.s | count 1
-; RUN: grep {rotqbyi	}  %t1.s | count 1
-; RUN: grep {rotqbii	}  %t1.s | count 2
-; RUN: grep {rotqbybi	}  %t1.s | count 1
-; RUN: grep {sfi	}  %t1.s | count 3
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; Vector shifts are not currently supported in gcc or llvm assembly. These are
-; not tested.
-
-; Shift left i16 via register, note that the second operand to shl is promoted
-; to a 32-bit type:
-
-define i16 @shlh_i16_1(i16 %arg1, i16 %arg2) {
-        %A = shl i16 %arg1, %arg2
-        ret i16 %A
-}
-
-define i16 @shlh_i16_2(i16 %arg1, i16 %arg2) {
-        %A = shl i16 %arg2, %arg1
-        ret i16 %A
-}
-
-define i16 @shlh_i16_3(i16 signext %arg1, i16 signext %arg2) signext {
-        %A = shl i16 %arg1, %arg2
-        ret i16 %A
-}
-
-define i16 @shlh_i16_4(i16 signext %arg1, i16 signext %arg2) signext {
-        %A = shl i16 %arg2, %arg1
-        ret i16 %A
-}
-
-define i16 @shlh_i16_5(i16 zeroext %arg1, i16 zeroext %arg2) zeroext {
-        %A = shl i16 %arg1, %arg2
-        ret i16 %A
-}
-
-define i16 @shlh_i16_6(i16 zeroext %arg1, i16 zeroext %arg2) zeroext {
-        %A = shl i16 %arg2, %arg1
-        ret i16 %A
-}
-
-; Shift left i16 with immediate:
-define i16 @shlhi_i16_1(i16 %arg1) {
-        %A = shl i16 %arg1, 12
-        ret i16 %A
-}
-
-; Should not generate anything other than the return, arg1 << 0 = arg1
-define i16 @shlhi_i16_2(i16 %arg1) {
-        %A = shl i16 %arg1, 0
-        ret i16 %A
-}
-
-define i16 @shlhi_i16_3(i16 %arg1) {
-        %A = shl i16 16383, %arg1
-        ret i16 %A
-}
-
-; Should generate 0, 0 << arg1 = 0
-define i16 @shlhi_i16_4(i16 %arg1) {
-        %A = shl i16 0, %arg1
-        ret i16 %A
-}
-
-define i16 @shlhi_i16_5(i16 signext %arg1) signext {
-        %A = shl i16 %arg1, 12
-        ret i16 %A
-}
-
-; Should not generate anything other than the return, arg1 << 0 = arg1
-define i16 @shlhi_i16_6(i16 signext %arg1) signext {
-        %A = shl i16 %arg1, 0
-        ret i16 %A
-}
-
-define i16 @shlhi_i16_7(i16 signext %arg1) signext {
-        %A = shl i16 16383, %arg1
-        ret i16 %A
-}
-
-; Should generate 0, 0 << arg1 = 0
-define i16 @shlhi_i16_8(i16 signext %arg1) signext {
-        %A = shl i16 0, %arg1
-        ret i16 %A
-}
-
-define i16 @shlhi_i16_9(i16 zeroext %arg1) zeroext {
-        %A = shl i16 %arg1, 12
-        ret i16 %A
-}
-
-; Should not generate anything other than the return, arg1 << 0 = arg1
-define i16 @shlhi_i16_10(i16 zeroext %arg1) zeroext {
-        %A = shl i16 %arg1, 0
-        ret i16 %A
-}
-
-define i16 @shlhi_i16_11(i16 zeroext %arg1) zeroext {
-        %A = shl i16 16383, %arg1
-        ret i16 %A
-}
-
-; Should generate 0, 0 << arg1 = 0
-define i16 @shlhi_i16_12(i16 zeroext %arg1) zeroext {
-        %A = shl i16 0, %arg1
-        ret i16 %A
-}
-
-; Shift left i32 via register, note that the second operand to shl is promoted
-; to a 32-bit type:
-
-define i32 @shl_i32_1(i32 %arg1, i32 %arg2) {
-        %A = shl i32 %arg1, %arg2
-        ret i32 %A
-}
-
-define i32 @shl_i32_2(i32 %arg1, i32 %arg2) {
-        %A = shl i32 %arg2, %arg1
-        ret i32 %A
-}
-
-define i32 @shl_i32_3(i32 signext %arg1, i32 signext %arg2) signext {
-        %A = shl i32 %arg1, %arg2
-        ret i32 %A
-}
-
-define i32 @shl_i32_4(i32 signext %arg1, i32 signext %arg2) signext {
-        %A = shl i32 %arg2, %arg1
-        ret i32 %A
-}
-
-define i32 @shl_i32_5(i32 zeroext %arg1, i32 zeroext %arg2) zeroext {
-        %A = shl i32 %arg1, %arg2
-        ret i32 %A
-}
-
-define i32 @shl_i32_6(i32 zeroext %arg1, i32 zeroext %arg2) zeroext {
-        %A = shl i32 %arg2, %arg1
-        ret i32 %A
-}
-
-; Shift left i32 with immediate:
-define i32 @shli_i32_1(i32 %arg1) {
-        %A = shl i32 %arg1, 12
-        ret i32 %A
-}
-
-; Should not generate anything other than the return, arg1 << 0 = arg1
-define i32 @shli_i32_2(i32 %arg1) {
-        %A = shl i32 %arg1, 0
-        ret i32 %A
-}
-
-define i32 @shli_i32_3(i32 %arg1) {
-        %A = shl i32 16383, %arg1
-        ret i32 %A
-}
-
-; Should generate 0, 0 << arg1 = 0
-define i32 @shli_i32_4(i32 %arg1) {
-        %A = shl i32 0, %arg1
-        ret i32 %A
-}
-
-define i32 @shli_i32_5(i32 signext %arg1) signext {
-        %A = shl i32 %arg1, 12
-        ret i32 %A
-}
-
-; Should not generate anything other than the return, arg1 << 0 = arg1
-define i32 @shli_i32_6(i32 signext %arg1) signext {
-        %A = shl i32 %arg1, 0
-        ret i32 %A
-}
-
-define i32 @shli_i32_7(i32 signext %arg1) signext {
-        %A = shl i32 16383, %arg1
-        ret i32 %A
-}
-
-; Should generate 0, 0 << arg1 = 0
-define i32 @shli_i32_8(i32 signext %arg1) signext {
-        %A = shl i32 0, %arg1
-        ret i32 %A
-}
-
-define i32 @shli_i32_9(i32 zeroext %arg1) zeroext {
-        %A = shl i32 %arg1, 12
-        ret i32 %A
-}
-
-; Should not generate anything other than the return, arg1 << 0 = arg1
-define i32 @shli_i32_10(i32 zeroext %arg1) zeroext {
-        %A = shl i32 %arg1, 0
-        ret i32 %A
-}
-
-define i32 @shli_i32_11(i32 zeroext %arg1) zeroext {
-        %A = shl i32 16383, %arg1
-        ret i32 %A
-}
-
-; Should generate 0, 0 << arg1 = 0
-define i32 @shli_i32_12(i32 zeroext %arg1) zeroext {
-        %A = shl i32 0, %arg1
-        ret i32 %A
-}
-
-;; i64 shift left
-
-define i64 @shl_i64_1(i64 %arg1) {
-	%A = shl i64 %arg1, 9
-	ret i64 %A
-}
-
-define i64 @shl_i64_2(i64 %arg1) {
-	%A = shl i64 %arg1, 3
-	ret i64 %A
-}
-
-define i64 @shl_i64_3(i64 %arg1, i32 %shift) {
-	%1 = zext i32 %shift to i64
-	%2 = shl i64 %arg1, %1
-	ret i64 %2
-}
-
-;; i64 shift right logical (shift 0s from the right)
-
-define i64 @lshr_i64_1(i64 %arg1) {
-	%1 = lshr i64 %arg1, 9
-	ret i64 %1
-}
-
-define i64 @lshr_i64_2(i64 %arg1) {
-	%1 = lshr i64 %arg1, 3
-	ret i64 %1
-}
-
-define i64 @lshr_i64_3(i64 %arg1, i32 %shift) {
-	%1 = zext i32 %shift to i64
-	%2 = lshr i64 %arg1, %1
-	ret i64 %2
-}
-
-;; i64 shift right arithmetic (shift 1s from the right)
-
-define i64 @ashr_i64_1(i64 %arg) {
-	%1 = ashr i64 %arg, 9
-	ret i64 %1
-}
-
-define i64 @ashr_i64_2(i64 %arg) {
-	%1 = ashr i64 %arg, 3
-	ret i64 %1
-}
-
-define i64 @ashr_i64_3(i64 %arg1, i32 %shift) {
-	%1 = zext i32 %shift to i64
-	%2 = ashr i64 %arg1, %1
-	ret i64 %2
-}
-
-define i32 @hi32_i64(i64 %arg) {
-	%1 = lshr i64 %arg, 32
-	%2 = trunc i64 %1 to i32
-	ret i32 %2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/sp_farith.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/sp_farith.ll
deleted file mode 100644
index d77dd92..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/sp_farith.ll
+++ /dev/null
@@ -1,90 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu -enable-unsafe-fp-math > %t1.s
-; RUN: grep fa %t1.s | count 2
-; RUN: grep fs %t1.s | count 2
-; RUN: grep fm %t1.s | count 6
-; RUN: grep fma %t1.s | count 2
-; RUN: grep fms %t1.s | count 2
-; RUN: grep fnms %t1.s | count 3
-;
-; This file includes standard floating point arithmetic instructions
-; NOTE fdiv is tested separately since it is a compound operation
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define float @fp_add(float %arg1, float %arg2) {
-        %A = fadd float %arg1, %arg2     ; <float> [#uses=1]
-        ret float %A
-}
-
-define <4 x float> @fp_add_vec(<4 x float> %arg1, <4 x float> %arg2) {
-        %A = fadd <4 x float> %arg1, %arg2       ; <<4 x float>> [#uses=1]
-        ret <4 x float> %A
-}
-
-define float @fp_sub(float %arg1, float %arg2) {
-        %A = fsub float %arg1,  %arg2    ; <float> [#uses=1]
-        ret float %A
-}
-
-define <4 x float> @fp_sub_vec(<4 x float> %arg1, <4 x float> %arg2) {
-        %A = fsub <4 x float> %arg1,  %arg2      ; <<4 x float>> [#uses=1]
-        ret <4 x float> %A
-}
-
-define float @fp_mul(float %arg1, float %arg2) {
-        %A = fmul float %arg1,  %arg2    ; <float> [#uses=1]
-        ret float %A
-}
-
-define <4 x float> @fp_mul_vec(<4 x float> %arg1, <4 x float> %arg2) {
-        %A = fmul <4 x float> %arg1,  %arg2      ; <<4 x float>> [#uses=1]
-        ret <4 x float> %A
-}
-
-define float @fp_mul_add(float %arg1, float %arg2, float %arg3) {
-        %A = fmul float %arg1,  %arg2    ; <float> [#uses=1]
-        %B = fadd float %A, %arg3        ; <float> [#uses=1]
-        ret float %B
-}
-
-define <4 x float> @fp_mul_add_vec(<4 x float> %arg1, <4 x float> %arg2, <4 x float> %arg3) {
-        %A = fmul <4 x float> %arg1,  %arg2      ; <<4 x float>> [#uses=1]
-        %B = fadd <4 x float> %A, %arg3  ; <<4 x float>> [#uses=1]
-        ret <4 x float> %B
-}
-
-define float @fp_mul_sub(float %arg1, float %arg2, float %arg3) {
-        %A = fmul float %arg1,  %arg2    ; <float> [#uses=1]
-        %B = fsub float %A, %arg3        ; <float> [#uses=1]
-        ret float %B
-}
-
-define <4 x float> @fp_mul_sub_vec(<4 x float> %arg1, <4 x float> %arg2, <4 x float> %arg3) {
-        %A = fmul <4 x float> %arg1,  %arg2      ; <<4 x float>> [#uses=1]
-        %B = fsub <4 x float> %A, %arg3  ; <<4 x float>> [#uses=1]
-        ret <4 x float> %B
-}
-
-; Test the straightforward way of getting fnms
-; c - a * b
-define float @fp_neg_mul_sub_1(float %arg1, float %arg2, float %arg3) {
-        %A = fmul float %arg1,  %arg2
-        %B = fsub float %arg3, %A
-        ret float %B
-}
-
-; Test another way of getting fnms
-; - ( a *b -c ) = c - a * b
-define float @fp_neg_mul_sub_2(float %arg1, float %arg2, float %arg3) {
-        %A = fmul float %arg1,  %arg2
-        %B = fsub float %A, %arg3
-        %C = fsub float -0.0, %B
-        ret float %C
-}
-
-define <4 x float> @fp_neg_mul_sub_vec(<4 x float> %arg1, <4 x float> %arg2, <4 x float> %arg3) {
-        %A = fmul <4 x float> %arg1,  %arg2
-        %B = fsub <4 x float> %A, %arg3
-        %D = fsub <4 x float> < float -0.0, float -0.0, float -0.0, float -0.0 >, %B
-        ret <4 x float> %D
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/stores.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/stores.ll
deleted file mode 100644
index f2f35ef..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/stores.ll
+++ /dev/null
@@ -1,151 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep {stqd.*0(\$3)}      %t1.s | count 4
-; RUN: grep {stqd.*16(\$3)}     %t1.s | count 4
-; RUN: grep 16256               %t1.s | count 2
-; RUN: grep 16384               %t1.s | count 1
-; RUN: grep 771                 %t1.s | count 4
-; RUN: grep 515                 %t1.s | count 2
-; RUN: grep 1799                %t1.s | count 2
-; RUN: grep 1543                %t1.s | count 5
-; RUN: grep 1029                %t1.s | count 3
-; RUN: grep {shli.*, 4}         %t1.s | count 4
-; RUN: grep stqx                %t1.s | count 4
-; RUN: grep ilhu                %t1.s | count 11
-; RUN: grep iohl                %t1.s | count 8
-; RUN: grep shufb               %t1.s | count 15
-; RUN: grep frds                %t1.s | count 1
-
-; ModuleID = 'stores.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-define void @store_v16i8_1(<16 x i8>* %a) nounwind {
-entry:
-	store <16 x i8> < i8 1, i8 2, i8 1, i8 1, i8 1, i8 2, i8 1, i8 1, i8 1, i8 2, i8 1, i8 1, i8 1, i8 2, i8 1, i8 1 >, <16 x i8>* %a
-	ret void
-}
-
-define void @store_v16i8_2(<16 x i8>* %a) nounwind {
-entry:
-	%arrayidx = getelementptr <16 x i8>* %a, i32 1
-	store <16 x i8> < i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2 >, <16 x i8>* %arrayidx
-	ret void
-}
-
-define void @store_v16i8_3(<16 x i8>* %a, i32 %i) nounwind {
-entry:
-        %arrayidx = getelementptr <16 x i8>* %a, i32 %i
-	store <16 x i8> < i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1 >, <16 x i8>* %arrayidx
-        ret void
-}
-
-define void @store_v8i16_1(<8 x i16>* %a) nounwind {
-entry:
-	store <8 x i16> < i16 1, i16 2, i16 1, i16 1, i16 1, i16 2, i16 1, i16 1 >, <8 x i16>* %a
-	ret void
-}
-
-define void @store_v8i16_2(<8 x i16>* %a) nounwind {
-entry:
-	%arrayidx = getelementptr <8 x i16>* %a, i16 1
-	store <8 x i16> < i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2 >, <8 x i16>* %arrayidx
-	ret void
-}
-
-define void @store_v8i16_3(<8 x i16>* %a, i32 %i) nounwind {
-entry:
-        %arrayidx = getelementptr <8 x i16>* %a, i32 %i
-	store <8 x i16> < i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1, i16 1 >, <8 x i16>* %arrayidx
-        ret void
-}
-
-define void @store_v4i32_1(<4 x i32>* %a) nounwind {
-entry:
-	store <4 x i32> < i32 1, i32 2, i32 1, i32 1 >, <4 x i32>* %a
-	ret void
-}
-
-define void @store_v4i32_2(<4 x i32>* %a) nounwind {
-entry:
-	%arrayidx = getelementptr <4 x i32>* %a, i32 1
-	store <4 x i32> < i32 2, i32 2, i32 2, i32 2 >, <4 x i32>* %arrayidx
-	ret void
-}
-
-define void @store_v4i32_3(<4 x i32>* %a, i32 %i) nounwind {
-entry:
-        %arrayidx = getelementptr <4 x i32>* %a, i32 %i
-        store <4 x i32> < i32 1, i32 1, i32 1, i32 1 >, <4 x i32>* %arrayidx
-        ret void
-}
-
-define void @store_v4f32_1(<4 x float>* %a) nounwind {
-entry:
-	store <4 x float> < float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00 >, <4 x float>* %a
-	ret void
-}
-
-define void @store_v4f32_2(<4 x float>* %a) nounwind {
-entry:
-	%arrayidx = getelementptr <4 x float>* %a, i32 1
-	store <4 x float> < float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00 >, <4 x float>* %arrayidx
-	ret void
-}
-
-define void @store_v4f32_3(<4 x float>* %a, i32 %i) nounwind {
-entry:
-        %arrayidx = getelementptr <4 x float>* %a, i32 %i
-        store <4 x float> < float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00 >, <4 x float>* %arrayidx
-        ret void
-}
-
-; Test truncating stores:
-
-define zeroext i8 @tstore_i16_i8(i16 signext %val, i8* %dest) nounwind {
-entry:
-	%conv = trunc i16 %val to i8
-	store i8 %conv, i8* %dest
-	ret i8 %conv
-}
-
-define zeroext i8 @tstore_i32_i8(i32 %val, i8* %dest) nounwind {
-entry:
-	%conv = trunc i32 %val to i8
-	store i8 %conv, i8* %dest
-	ret i8 %conv
-}
-
-define signext i16 @tstore_i32_i16(i32 %val, i16* %dest) nounwind {
-entry:
-	%conv = trunc i32 %val to i16
-	store i16 %conv, i16* %dest
-	ret i16 %conv
-}
-
-define zeroext i8 @tstore_i64_i8(i64 %val, i8* %dest) nounwind {
-entry:
-	%conv = trunc i64 %val to i8
-	store i8 %conv, i8* %dest
-	ret i8 %conv
-}
-
-define signext i16 @tstore_i64_i16(i64 %val, i16* %dest) nounwind {
-entry:
-	%conv = trunc i64 %val to i16
-	store i16 %conv, i16* %dest
-	ret i16 %conv
-}
-
-define i32 @tstore_i64_i32(i64 %val, i32* %dest) nounwind {
-entry:
-	%conv = trunc i64 %val to i32
-	store i32 %conv, i32* %dest
-	ret i32 %conv
-}
-
-define float @tstore_f64_f32(double %val, float* %dest) nounwind {
-entry:
-	%conv = fptrunc double %val to float
-	store float %conv, float* %dest
-	ret float %conv
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/struct_1.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/struct_1.ll
deleted file mode 100644
index 82d319d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/struct_1.ll
+++ /dev/null
@@ -1,144 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: llvm-as -o - %s | llc -march=cellspu -mattr=large_mem > %t2.s
-; RUN: grep lqa     %t1.s | count 5
-; RUN: grep lqd     %t1.s | count 11
-; RUN: grep rotqbyi %t1.s | count 7
-; RUN: grep xshw    %t1.s | count 1
-; RUN: grep andi    %t1.s | count 5
-; RUN: grep cbd     %t1.s | count 3
-; RUN: grep chd     %t1.s | count 1
-; RUN: grep cwd     %t1.s | count 3
-; RUN: grep shufb   %t1.s | count 7
-; RUN: grep stqd    %t1.s | count 7
-; RUN: grep iohl    %t2.s | count 16
-; RUN: grep ilhu    %t2.s | count 16
-; RUN: grep lqd     %t2.s | count 16
-; RUN: grep rotqbyi %t2.s | count 7
-; RUN: grep xshw    %t2.s | count 1
-; RUN: grep andi    %t2.s | count 5
-; RUN: grep cbd     %t2.s | count 3
-; RUN: grep chd     %t2.s | count 1
-; RUN: grep cwd     %t2.s | count 3
-; RUN: grep shufb   %t2.s | count 7
-; RUN: grep stqd    %t2.s | count 7
-
-; ModuleID = 'struct_1.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
-target triple = "spu"
-
-; struct hackstate {
-;   unsigned char c1;   // offset 0 (rotate left by 13 bytes to byte 3)
-;   unsigned char c2;   // offset 1 (rotate left by 14 bytes to byte 3)
-;   unsigned char c3;   // offset 2 (rotate left by 15 bytes to byte 3)
-;   int           i1;   // offset 4 (rotate left by 4 bytes to byte 0)
-;   short         s1;   // offset 8 (rotate left by 6 bytes to byte 2)
-;   int           i2;   // offset 12 [ignored]
-;   unsigned char c4;   // offset 16 [ignored]
-;   unsigned char c5;   // offset 17 [ignored]
-;   unsigned char c6;   // offset 18 (rotate left by 14 bytes to byte 3)
-;   unsigned char c7;   // offset 19 (no rotate, in preferred slot)
-;   int           i3;   // offset 20 [ignored]
-;   int           i4;   // offset 24 [ignored]
-;   int           i5;   // offset 28 [ignored]
-;   int           i6;   // offset 32 (no rotate, in preferred slot)
-; }
-%struct.hackstate = type { i8, i8, i8, i32, i16, i32, i8, i8, i8, i8, i32, i32, i32, i32 }
-
-; struct hackstate state = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
- at state = global %struct.hackstate zeroinitializer, align 16
-
-define i8 @get_hackstate_c1() zeroext nounwind  {
-entry:
-        %tmp2 = load i8* getelementptr (%struct.hackstate* @state, i32 0, i32 0), align 16
-        ret i8 %tmp2
-}
-
-define i8 @get_hackstate_c2() zeroext nounwind  {
-entry:
-        %tmp2 = load i8* getelementptr (%struct.hackstate* @state, i32 0, i32 1), align 16
-        ret i8 %tmp2
-}
-
-define i8 @get_hackstate_c3() zeroext nounwind  {
-entry:
-        %tmp2 = load i8* getelementptr (%struct.hackstate* @state, i32 0, i32 2), align 16
-        ret i8 %tmp2
-}
-
-define i32 @get_hackstate_i1() nounwind  {
-entry:
-        %tmp2 = load i32* getelementptr (%struct.hackstate* @state, i32 0, i32 3), align 16
-        ret i32 %tmp2
-}
-
-define i16 @get_hackstate_s1() signext nounwind  {
-entry:
-        %tmp2 = load i16* getelementptr (%struct.hackstate* @state, i32 0, i32 4), align 16
-        ret i16 %tmp2
-}
-
-define i8 @get_hackstate_c6() zeroext nounwind  {
-entry:
-        %tmp2 = load i8* getelementptr (%struct.hackstate* @state, i32 0, i32 8), align 16
-        ret i8 %tmp2
-}
-
-define i8 @get_hackstate_c7() zeroext nounwind  {
-entry:
-        %tmp2 = load i8* getelementptr (%struct.hackstate* @state, i32 0, i32 9), align 16
-        ret i8 %tmp2
-}
-
-define i32 @get_hackstate_i3() nounwind  {
-entry:
-        %tmp2 = load i32* getelementptr (%struct.hackstate* @state, i32 0, i32 10), align 16
-        ret i32 %tmp2
-}
-
-define i32 @get_hackstate_i6() nounwind  {
-entry:
-        %tmp2 = load i32* getelementptr (%struct.hackstate* @state, i32 0, i32 13), align 16
-        ret i32 %tmp2
-}
-
-define void @set_hackstate_c1(i8 zeroext  %c) nounwind  {
-entry:
-        store i8 %c, i8* getelementptr (%struct.hackstate* @state, i32 0, i32 0), align 16
-        ret void
-}
-
-define void @set_hackstate_c2(i8 zeroext  %c) nounwind  {
-entry:
-        store i8 %c, i8* getelementptr (%struct.hackstate* @state, i32 0, i32 1), align 16
-        ret void
-}
-
-define void @set_hackstate_c3(i8 zeroext  %c) nounwind  {
-entry:
-        store i8 %c, i8* getelementptr (%struct.hackstate* @state, i32 0, i32 2), align 16
-        ret void
-}
-
-define void @set_hackstate_i1(i32 %i) nounwind  {
-entry:
-        store i32 %i, i32* getelementptr (%struct.hackstate* @state, i32 0, i32 3), align 16
-        ret void
-}
-
-define void @set_hackstate_s1(i16 signext  %s) nounwind  {
-entry:
-        store i16 %s, i16* getelementptr (%struct.hackstate* @state, i32 0, i32 4), align 16
-        ret void
-}
-
-define void @set_hackstate_i3(i32 %i) nounwind  {
-entry:
-        store i32 %i, i32* getelementptr (%struct.hackstate* @state, i32 0, i32 10), align 16
-        ret void
-}
-
-define void @set_hackstate_i6(i32 %i) nounwind  {
-entry:
-        store i32 %i, i32* getelementptr (%struct.hackstate* @state, i32 0, i32 13), align 16
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/trunc.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/trunc.ll
deleted file mode 100644
index db22564..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/trunc.ll
+++ /dev/null
@@ -1,94 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep shufb   %t1.s | count 19
-; RUN: grep {ilhu.*1799}  %t1.s | count 1
-; RUN: grep {ilhu.*771}  %t1.s | count 2
-; RUN: grep {ilhu.*1543}  %t1.s | count 1
-; RUN: grep {ilhu.*1029}  %t1.s | count 1
-; RUN: grep {ilhu.*515}  %t1.s | count 1
-; RUN: grep {ilhu.*3855}  %t1.s | count 1
-; RUN: grep {ilhu.*3599}  %t1.s | count 1
-; RUN: grep {ilhu.*3085}  %t1.s | count 1
-; RUN: grep {iohl.*3855}  %t1.s | count 1
-; RUN: grep {iohl.*3599}  %t1.s | count 2
-; RUN: grep {iohl.*1543}  %t1.s | count 2
-; RUN: grep {iohl.*771}  %t1.s | count 2
-; RUN: grep {iohl.*515}  %t1.s | count 1
-; RUN: grep {iohl.*1799}  %t1.s | count 1
-; RUN: grep lqa  %t1.s | count 1
-; RUN: grep cbd  %t1.s | count 4
-; RUN: grep chd  %t1.s | count 3
-; RUN: grep cwd  %t1.s | count 1
-; RUN: grep cdd  %t1.s | count 1
-
-; ModuleID = 'trunc.bc'
-target datalayout = "E-p:32:32:128-i1:8:128-i8:8:128-i16:16:128-i32:32:128-i64:32:128-f32:32:128-f64:64:128-v64:64:64-v128:128:128-a0:0:128-s0:128:128"
-target triple = "spu"
-
-define <16 x i8> @trunc_i128_i8(i128 %u, <16 x i8> %v) {
-entry:
-	%0 = trunc i128 %u to i8
-    %tmp1 = insertelement <16 x i8> %v, i8 %0, i32 15 
-    ret <16 x i8> %tmp1
-}
-
-define <8 x i16> @trunc_i128_i16(i128 %u, <8 x i16> %v) {
-entry:
-    %0 = trunc i128 %u to i16
-    %tmp1 = insertelement <8 x i16> %v, i16 %0, i32 8 
-    ret <8 x i16> %tmp1
-}
-
-define <4 x i32> @trunc_i128_i32(i128 %u, <4 x i32> %v) {
-entry:
-    %0 = trunc i128 %u to i32
-    %tmp1 = insertelement <4 x i32> %v, i32 %0, i32 2
-    ret <4 x i32> %tmp1
-}
-
-define <2 x i64> @trunc_i128_i64(i128 %u, <2 x i64> %v) {
-entry:
-    %0 = trunc i128 %u to i64
-    %tmp1 = insertelement <2 x i64> %v, i64 %0, i32 1
-    ret <2 x i64> %tmp1
-}
-
-define <16 x i8> @trunc_i64_i8(i64 %u, <16 x i8> %v) {
-entry:
-    %0 = trunc i64 %u to i8
-    %tmp1 = insertelement <16 x i8> %v, i8 %0, i32 10
-    ret <16 x i8> %tmp1
-}
-
-define <8 x i16> @trunc_i64_i16(i64 %u, <8 x i16> %v) {
-entry:
-    %0 = trunc i64 %u to i16
-    %tmp1 = insertelement <8 x i16> %v, i16 %0, i32 6
-    ret <8 x i16> %tmp1
-}
-
-define i32 @trunc_i64_i32(i64 %u) {
-entry:
-    %0 = trunc i64 %u to i32
-    ret i32 %0
-}
-
-define <16 x i8> @trunc_i32_i8(i32 %u, <16 x i8> %v) {
-entry:
-    %0 = trunc i32 %u to i8
-    %tmp1 = insertelement <16 x i8> %v, i8 %0, i32 7
-    ret <16 x i8> %tmp1
-}
-
-define <8 x i16> @trunc_i32_i16(i32 %u, <8 x i16> %v) {
-entry:
-    %0 = trunc i32 %u to i16
-    %tmp1 = insertelement <8 x i16> %v, i16 %0, i32 3
-    ret <8 x i16> %tmp1
-}
-
-define <16 x i8> @trunc_i16_i8(i16 %u, <16 x i8> %v) {
-entry:
-    %0 = trunc i16 %u to i8
-    %tmp1 = insertelement <16 x i8> %v, i8 %0, i32 5
-    ret <16 x i8> %tmp1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/README.txt b/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/README.txt
deleted file mode 100644
index d87b398..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory contains code that's not part of the DejaGNU test suite,
-but is generally useful as various test harnesses.
-
-vecoperations.c: Various vector operation sanity checks, e.g., shuffles,
-  8-bit vector add and multiply.
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i32operations.c b/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i32operations.c
deleted file mode 100644
index 12fc30b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i32operations.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <stdio.h>
-
-typedef unsigned int  		uint32_t;
-typedef int           		int32_t;
-
-const char *boolstring(int val) {
-  return val ? "true" : "false";
-}
-
-int i32_eq(int32_t a, int32_t b) {
-  return (a == b);
-}
-
-int i32_neq(int32_t a, int32_t b) {
-  return (a != b);
-}
-
-int32_t i32_eq_select(int32_t a, int32_t b, int32_t c, int32_t d) {
-  return ((a == b) ? c : d);
-}
-
-int32_t i32_neq_select(int32_t a, int32_t b, int32_t c, int32_t d) {
-  return ((a != b) ? c : d);
-}
-
-struct pred_s {
-  const char *name;
-  int (*predfunc)(int32_t, int32_t);
-  int (*selfunc)(int32_t, int32_t, int32_t, int32_t);
-};
-
-struct pred_s preds[] = {
-  { "eq",  i32_eq,  i32_eq_select },
-  { "neq", i32_neq, i32_neq_select }
-};
-
-int main(void) {
-  int i;
-  int32_t a = 1234567890;
-  int32_t b =  345678901;
-  int32_t c = 1234500000;
-  int32_t d =      10001;
-  int32_t e =      10000;
-
-  printf("a = %12d (0x%08x)\n", a, a);
-  printf("b = %12d (0x%08x)\n", b, b);
-  printf("c = %12d (0x%08x)\n", c, c);
-  printf("d = %12d (0x%08x)\n", d, d);
-  printf("e = %12d (0x%08x)\n", e, e);
-  printf("----------------------------------------\n");
-
-  for (i = 0; i < sizeof(preds)/sizeof(preds[0]); ++i) {
-    printf("a %s a = %s\n", preds[i].name, boolstring((*preds[i].predfunc)(a, a)));
-    printf("a %s a = %s\n", preds[i].name, boolstring((*preds[i].predfunc)(a, a)));
-    printf("a %s b = %s\n", preds[i].name, boolstring((*preds[i].predfunc)(a, b)));
-    printf("a %s c = %s\n", preds[i].name, boolstring((*preds[i].predfunc)(a, c)));
-    printf("d %s e = %s\n", preds[i].name, boolstring((*preds[i].predfunc)(d, e)));
-    printf("e %s e = %s\n", preds[i].name, boolstring((*preds[i].predfunc)(e, e)));
-
-    printf("a %s a ? c : d = %d\n", preds[i].name, (*preds[i].selfunc)(a, a, c, d));
-    printf("a %s a ? c : d == c (%s)\n", preds[i].name, boolstring((*preds[i].selfunc)(a, a, c, d) == c));
-    printf("a %s b ? c : d = %d\n", preds[i].name, (*preds[i].selfunc)(a, b, c, d));
-    printf("a %s b ? c : d == d (%s)\n", preds[i].name, boolstring((*preds[i].selfunc)(a, b, c, d) == d));
-
-    printf("----------------------------------------\n");
-  }
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i64operations.c b/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i64operations.c
deleted file mode 100644
index b613bd8..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i64operations.c
+++ /dev/null
@@ -1,673 +0,0 @@
-#include <stdio.h>
-#include "i64operations.h"
-
-int64_t         tval_a = 1234567890003LL;
-int64_t         tval_b = 2345678901235LL;
-int64_t         tval_c = 1234567890001LL;
-int64_t         tval_d = 10001LL;
-int64_t         tval_e = 10000LL;
-uint64_t        tval_f = 0xffffff0750135eb9;
-int64_t		tval_g = -1;
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-
-int
-i64_eq(int64_t a, int64_t b)
-{
-  return (a == b);
-}
-
-int
-i64_neq(int64_t a, int64_t b)
-{
-  return (a != b);
-}
-
-int
-i64_gt(int64_t a, int64_t b)
-{
-  return (a > b);
-}
-
-int
-i64_le(int64_t a, int64_t b)
-{
-  return (a <= b);
-}
-
-int
-i64_ge(int64_t a, int64_t b) {
-  return (a >= b);
-}
-
-int
-i64_lt(int64_t a, int64_t b) {
-  return (a < b);
-}
-
-int
-i64_uge(uint64_t a, uint64_t b)
-{
-  return (a >= b);
-}
-
-int
-i64_ult(uint64_t a, uint64_t b)
-{
-  return (a < b);
-}
-
-int
-i64_ugt(uint64_t a, uint64_t b)
-{
-  return (a > b);
-}
-
-int
-i64_ule(uint64_t a, uint64_t b)
-{
-  return (a <= b);
-}
-
-int64_t
-i64_eq_select(int64_t a, int64_t b, int64_t c, int64_t d)
-{
-  return ((a == b) ? c : d);
-}
-
-int64_t
-i64_neq_select(int64_t a, int64_t b, int64_t c, int64_t d)
-{
-  return ((a != b) ? c : d);
-}
-
-int64_t
-i64_gt_select(int64_t a, int64_t b, int64_t c, int64_t d) {
-  return ((a > b) ? c : d);
-}
-
-int64_t
-i64_le_select(int64_t a, int64_t b, int64_t c, int64_t d) {
-  return ((a <= b) ? c : d);
-}
-
-int64_t
-i64_ge_select(int64_t a, int64_t b, int64_t c, int64_t d) {
-  return ((a >= b) ? c : d);
-}
-
-int64_t
-i64_lt_select(int64_t a, int64_t b, int64_t c, int64_t d) {
-  return ((a < b) ? c : d);
-}
-
-uint64_t
-i64_ugt_select(uint64_t a, uint64_t b, uint64_t c, uint64_t d)
-{
-  return ((a > b) ? c : d);
-}
-
-uint64_t
-i64_ule_select(uint64_t a, uint64_t b, uint64_t c, uint64_t d)
-{
-  return ((a <= b) ? c : d);
-}
-
-uint64_t
-i64_uge_select(uint64_t a, uint64_t b, uint64_t c, uint64_t d) {
-  return ((a >= b) ? c : d);
-}
-
-uint64_t
-i64_ult_select(uint64_t a, uint64_t b, uint64_t c, uint64_t d) {
-  return ((a < b) ? c : d);
-}
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-
-struct harness_int64_pred int64_tests_eq[] = {
-  {"a %s a", &tval_a, &tval_a, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"a %s b", &tval_a, &tval_b, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"a %s c", &tval_a, &tval_c, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"d %s e", &tval_d, &tval_e, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"e %s e", &tval_e, &tval_e, &tval_c, &tval_d, TRUE_VAL, &tval_c}
-};
-
-struct harness_int64_pred int64_tests_neq[] = {
-  {"a %s a", &tval_a, &tval_a, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"a %s b", &tval_a, &tval_b, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"a %s c", &tval_a, &tval_c, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"d %s e", &tval_d, &tval_e, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"e %s e", &tval_e, &tval_e, &tval_c, &tval_d, FALSE_VAL, &tval_d}
-};
-
-struct harness_int64_pred int64_tests_sgt[] = {
-  {"a %s a", &tval_a, &tval_a, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"a %s b", &tval_a, &tval_b, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"a %s c", &tval_a, &tval_c, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"d %s e", &tval_d, &tval_e, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"e %s e", &tval_e, &tval_e, &tval_c, &tval_d, FALSE_VAL, &tval_d}
-};
-
-struct harness_int64_pred int64_tests_sle[] = {
-  {"a %s a", &tval_a, &tval_a, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"a %s b", &tval_a, &tval_b, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"a %s c", &tval_a, &tval_c, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"d %s e", &tval_d, &tval_e, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"e %s e", &tval_e, &tval_e, &tval_c, &tval_d, TRUE_VAL, &tval_c}
-};
-
-struct harness_int64_pred int64_tests_sge[] = {
-  {"a %s a", &tval_a, &tval_a, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"a %s b", &tval_a, &tval_b, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"a %s c", &tval_a, &tval_c, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"d %s e", &tval_d, &tval_e, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"e %s e", &tval_e, &tval_e, &tval_c, &tval_d, TRUE_VAL, &tval_c}
-};
-
-struct harness_int64_pred int64_tests_slt[] = {
-  {"a %s a", &tval_a, &tval_a, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"a %s b", &tval_a, &tval_b, &tval_c, &tval_d, TRUE_VAL, &tval_c},
-  {"a %s c", &tval_a, &tval_c, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"d %s e", &tval_d, &tval_e, &tval_c, &tval_d, FALSE_VAL, &tval_d},
-  {"e %s e", &tval_e, &tval_e, &tval_c, &tval_d, FALSE_VAL, &tval_d}
-};
-
-struct int64_pred_s int64_preds[] = {
-  {"eq", i64_eq, i64_eq_select,
-     int64_tests_eq, ARR_SIZE(int64_tests_eq)},
-  {"neq", i64_neq, i64_neq_select,
-     int64_tests_neq, ARR_SIZE(int64_tests_neq)},
-  {"gt", i64_gt, i64_gt_select,
-     int64_tests_sgt, ARR_SIZE(int64_tests_sgt)},
-  {"le", i64_le, i64_le_select,
-     int64_tests_sle, ARR_SIZE(int64_tests_sle)},
-  {"ge", i64_ge, i64_ge_select,
-     int64_tests_sge, ARR_SIZE(int64_tests_sge)},
-  {"lt", i64_lt, i64_lt_select,
-     int64_tests_slt, ARR_SIZE(int64_tests_slt)}
-};
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-
-struct harness_uint64_pred uint64_tests_ugt[] = {
-  {"a %s a", (uint64_t *) &tval_a, (uint64_t *) &tval_a, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d},
-  {"a %s b", (uint64_t *) &tval_a, (uint64_t *) &tval_b, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d },
-  {"a %s c", (uint64_t *) &tval_a, (uint64_t *) &tval_c, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c },
-  {"d %s e", (uint64_t *) &tval_d, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c },
-  {"e %s e", (uint64_t *) &tval_e, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d }
-};
-
-struct harness_uint64_pred uint64_tests_ule[] = {
-  {"a %s a", (uint64_t *) &tval_a, (uint64_t *) &tval_a, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c},
-  {"a %s b", (uint64_t *) &tval_a, (uint64_t *) &tval_b, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c},
-  {"a %s c", (uint64_t *) &tval_a, (uint64_t *) &tval_c, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d},
-  {"d %s e", (uint64_t *) &tval_d, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d},
-  {"e %s e", (uint64_t *) &tval_e, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c}
-};
-
-struct harness_uint64_pred uint64_tests_uge[] = {
-  {"a %s a", (uint64_t *) &tval_a, (uint64_t *) &tval_a, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c},
-  {"a %s b", (uint64_t *) &tval_a, (uint64_t *) &tval_b, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d},
-  {"a %s c", (uint64_t *) &tval_a, (uint64_t *) &tval_c, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c},
-  {"d %s e", (uint64_t *) &tval_d, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c},
-  {"e %s e", (uint64_t *) &tval_e, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c}
-};
-
-struct harness_uint64_pred uint64_tests_ult[] = {
-  {"a %s a", (uint64_t *) &tval_a, (uint64_t *) &tval_a, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d},
-  {"a %s b", (uint64_t *) &tval_a, (uint64_t *) &tval_b, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, TRUE_VAL, (uint64_t *) &tval_c},
-  {"a %s c", (uint64_t *) &tval_a, (uint64_t *) &tval_c, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d},
-  {"d %s e", (uint64_t *) &tval_d, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d},
-  {"e %s e", (uint64_t *) &tval_e, (uint64_t *) &tval_e, (uint64_t *) &tval_c,
-     (uint64_t *) &tval_d, FALSE_VAL, (uint64_t *) &tval_d}
-};
-
-struct uint64_pred_s uint64_preds[] = {
-  {"ugt", i64_ugt, i64_ugt_select,
-     uint64_tests_ugt, ARR_SIZE(uint64_tests_ugt)},
-  {"ule", i64_ule, i64_ule_select,
-     uint64_tests_ule, ARR_SIZE(uint64_tests_ule)},
-  {"uge", i64_uge, i64_uge_select,
-     uint64_tests_uge, ARR_SIZE(uint64_tests_uge)},
-  {"ult", i64_ult, i64_ult_select,
-     uint64_tests_ult, ARR_SIZE(uint64_tests_ult)}
-};
-
-int
-compare_expect_int64(const struct int64_pred_s * pred)
-{
-  int             j, failed = 0;
-
-  for (j = 0; j < pred->n_tests; ++j) {
-    int             pred_result;
-
-    pred_result = (*pred->predfunc) (*pred->tests[j].lhs, *pred->tests[j].rhs);
-
-    if (pred_result != pred->tests[j].expected) {
-      char            str[64];
-
-      sprintf(str, pred->tests[j].fmt_string, pred->name);
-      printf("%s: returned value is %d, expecting %d\n", str,
-	     pred_result, pred->tests[j].expected);
-      printf("  lhs = %19lld (0x%016llx)\n", *pred->tests[j].lhs,
-             *pred->tests[j].lhs);
-      printf("  rhs = %19lld (0x%016llx)\n", *pred->tests[j].rhs,
-             *pred->tests[j].rhs);
-      ++failed;
-    } else {
-      int64_t         selresult;
-
-      selresult = (pred->selfunc) (*pred->tests[j].lhs, *pred->tests[j].rhs,
-                                   *pred->tests[j].select_a,
-                                   *pred->tests[j].select_b);
-
-      if (selresult != *pred->tests[j].select_expected) {
-	char            str[64];
-
-	sprintf(str, pred->tests[j].fmt_string, pred->name);
-	printf("%s select: returned value is %d, expecting %d\n", str,
-	       pred_result, pred->tests[j].expected);
-	printf("  lhs   = %19lld (0x%016llx)\n", *pred->tests[j].lhs,
-	       *pred->tests[j].lhs);
-	printf("  rhs   = %19lld (0x%016llx)\n", *pred->tests[j].rhs,
-	       *pred->tests[j].rhs);
-	printf("  true  = %19lld (0x%016llx)\n", *pred->tests[j].select_a,
-	       *pred->tests[j].select_a);
-	printf("  false = %19lld (0x%016llx)\n", *pred->tests[j].select_b,
-	       *pred->tests[j].select_b);
-	++failed;
-      }
-    }
-  }
-
-  printf("  %d tests performed, should be %d.\n", j, pred->n_tests);
-
-  return failed;
-}
-
-int
-compare_expect_uint64(const struct uint64_pred_s * pred)
-{
-  int             j, failed = 0;
-
-  for (j = 0; j < pred->n_tests; ++j) {
-    int             pred_result;
-
-    pred_result = (*pred->predfunc) (*pred->tests[j].lhs, *pred->tests[j].rhs);
-    if (pred_result != pred->tests[j].expected) {
-      char            str[64];
-
-      sprintf(str, pred->tests[j].fmt_string, pred->name);
-      printf("%s: returned value is %d, expecting %d\n", str,
-	     pred_result, pred->tests[j].expected);
-      printf("  lhs = %19llu (0x%016llx)\n", *pred->tests[j].lhs,
-             *pred->tests[j].lhs);
-      printf("  rhs = %19llu (0x%016llx)\n", *pred->tests[j].rhs,
-             *pred->tests[j].rhs);
-      ++failed;
-    } else {
-      uint64_t        selresult;
-
-      selresult = (pred->selfunc) (*pred->tests[j].lhs, *pred->tests[j].rhs,
-                                   *pred->tests[j].select_a,
-                                   *pred->tests[j].select_b);
-      if (selresult != *pred->tests[j].select_expected) {
-	char            str[64];
-
-	sprintf(str, pred->tests[j].fmt_string, pred->name);
-	printf("%s select: returned value is %d, expecting %d\n", str,
-	       pred_result, pred->tests[j].expected);
-	printf("  lhs   = %19llu (0x%016llx)\n", *pred->tests[j].lhs,
-	       *pred->tests[j].lhs);
-	printf("  rhs   = %19llu (0x%016llx)\n", *pred->tests[j].rhs,
-	       *pred->tests[j].rhs);
-	printf("  true  = %19llu (0x%016llx)\n", *pred->tests[j].select_a,
-	       *pred->tests[j].select_a);
-	printf("  false = %19llu (0x%016llx)\n", *pred->tests[j].select_b,
-	       *pred->tests[j].select_b);
-	++failed;
-      }
-    }
-  }
-
-  printf("  %d tests performed, should be %d.\n", j, pred->n_tests);
-
-  return failed;
-}
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-
-int
-test_i64_sext_i32(int in, int64_t expected) {
-  int64_t result = (int64_t) in;
-
-  if (result != expected) {
-    char str[64];
-    sprintf(str, "i64_sext_i32(%d) returns %lld\n", in, result);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_i64_sext_i16(short in, int64_t expected) {
-  int64_t result = (int64_t) in;
-
-  if (result != expected) {
-    char str[64];
-    sprintf(str, "i64_sext_i16(%hd) returns %lld\n", in, result);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_i64_sext_i8(signed char in, int64_t expected) {
-  int64_t result = (int64_t) in;
-
-  if (result != expected) {
-    char str[64];
-    sprintf(str, "i64_sext_i8(%d) returns %lld\n", in, result);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_i64_zext_i32(unsigned int in, uint64_t expected) {
-  uint64_t result = (uint64_t) in;
-
-  if (result != expected) {
-    char str[64];
-    sprintf(str, "i64_zext_i32(%u) returns %llu\n", in, result);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_i64_zext_i16(unsigned short in, uint64_t expected) {
-  uint64_t result = (uint64_t) in;
-
-  if (result != expected) {
-    char str[64];
-    sprintf(str, "i64_zext_i16(%hu) returns %llu\n", in, result);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_i64_zext_i8(unsigned char in, uint64_t expected) {
-  uint64_t result = (uint64_t) in;
-
-  if (result != expected) {
-    char str[64];
-    sprintf(str, "i64_zext_i8(%u) returns %llu\n", in, result);
-    return 1;
-  }
-
-  return 0;
-}
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-
-int64_t
-i64_shl_const(int64_t a) {
-  return a << 10;
-}
-
-int64_t
-i64_shl(int64_t a, int amt) {
-  return a << amt;
-}
-
-uint64_t
-u64_shl_const(uint64_t a) {
-  return a << 10;
-}
-
-uint64_t
-u64_shl(uint64_t a, int amt) {
-  return a << amt;
-}
-
-int64_t
-i64_srl_const(int64_t a) {
-  return a >> 10;
-}
-
-int64_t
-i64_srl(int64_t a, int amt) {
-  return a >> amt;
-}
-
-uint64_t
-u64_srl_const(uint64_t a) {
-  return a >> 10;
-}
-
-uint64_t
-u64_srl(uint64_t a, int amt) {
-  return a >> amt;
-}
-
-int64_t
-i64_sra_const(int64_t a) {
-  return a >> 10;
-}
-
-int64_t
-i64_sra(int64_t a, int amt) {
-  return a >> amt;
-}
-
-uint64_t
-u64_sra_const(uint64_t a) {
-  return a >> 10;
-}
-
-uint64_t
-u64_sra(uint64_t a, int amt) {
-  return a >> amt;
-}
-
-int
-test_u64_constant_shift(const char *func_name, uint64_t (*func)(uint64_t), uint64_t a, uint64_t expected) {
-  uint64_t result = (*func)(a);
-
-  if (result != expected) {
-    printf("%s(0x%016llx) returns 0x%016llx, expected 0x%016llx\n", func_name, a, result, expected);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_i64_constant_shift(const char *func_name, int64_t (*func)(int64_t), int64_t a, int64_t expected) {
-  int64_t result = (*func)(a);
-
-  if (result != expected) {
-    printf("%s(0x%016llx) returns 0x%016llx, expected 0x%016llx\n", func_name, a, result, expected);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_u64_variable_shift(const char *func_name, uint64_t (*func)(uint64_t, int), uint64_t a, unsigned int b, uint64_t expected) {
-  uint64_t result = (*func)(a, b);
-
-  if (result != expected) {
-    printf("%s(0x%016llx, %d) returns 0x%016llx, expected 0x%016llx\n", func_name, a, b, result, expected);
-    return 1;
-  }
-
-  return 0;
-}
-
-int
-test_i64_variable_shift(const char *func_name, int64_t (*func)(int64_t, int), int64_t a, unsigned int b, int64_t expected) {
-  int64_t result = (*func)(a, b);
-
-  if (result != expected) {
-    printf("%s(0x%016llx, %d) returns 0x%016llx, expected 0x%016llx\n", func_name, a, b, result, expected);
-    return 1;
-  }
-
-  return 0;
-}
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-
-int64_t i64_mul(int64_t a, int64_t b) {
-  return a * b;
-}
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-
-int
-main(void)
-{
-  int             i, j, failed = 0;
-  const char     *something_failed = "  %d tests failed.\n";
-  const char     *all_tests_passed = "  All tests passed.\n";
-
-  printf("tval_a = %20lld (0x%016llx)\n", tval_a, tval_a);
-  printf("tval_b = %20lld (0x%016llx)\n", tval_b, tval_b);
-  printf("tval_c = %20lld (0x%016llx)\n", tval_c, tval_c);
-  printf("tval_d = %20lld (0x%016llx)\n", tval_d, tval_d);
-  printf("tval_e = %20lld (0x%016llx)\n", tval_e, tval_e);
-  printf("tval_f = %20llu (0x%016llx)\n", tval_f, tval_f);
-  printf("tval_g = %20llu (0x%016llx)\n", tval_g, tval_g);
-  printf("----------------------------------------\n");
-
-  for (i = 0; i < ARR_SIZE(int64_preds); ++i) {
-    printf("%s series:\n", int64_preds[i].name);
-    if ((failed = compare_expect_int64(int64_preds + i)) > 0) {
-      printf(something_failed, failed);
-    } else {
-      printf(all_tests_passed);
-    }
-
-    printf("----------------------------------------\n");
-  }
-
-  for (i = 0; i < ARR_SIZE(uint64_preds); ++i) {
-    printf("%s series:\n", uint64_preds[i].name);
-    if ((failed = compare_expect_uint64(uint64_preds + i)) > 0) {
-      printf(something_failed, failed);
-    } else {
-      printf(all_tests_passed);
-    }
-
-    printf("----------------------------------------\n");
-  }
-
-  /*----------------------------------------------------------------------*/
-
-  puts("signed/zero-extend tests:");
-
-  failed = 0;
-  failed += test_i64_sext_i32(-1, -1LL);
-  failed += test_i64_sext_i32(10, 10LL);
-  failed += test_i64_sext_i32(0x7fffffff, 0x7fffffffLL);
-  failed += test_i64_sext_i16(-1, -1LL);
-  failed += test_i64_sext_i16(10, 10LL);
-  failed += test_i64_sext_i16(0x7fff, 0x7fffLL);
-  failed += test_i64_sext_i8(-1, -1LL);
-  failed += test_i64_sext_i8(10, 10LL);
-  failed += test_i64_sext_i8(0x7f, 0x7fLL);
-
-  failed += test_i64_zext_i32(0xffffffff, 0x00000000ffffffffLLU);
-  failed += test_i64_zext_i32(0x01234567, 0x0000000001234567LLU);
-  failed += test_i64_zext_i16(0xffff,     0x000000000000ffffLLU);
-  failed += test_i64_zext_i16(0x569a,     0x000000000000569aLLU);
-  failed += test_i64_zext_i8(0xff,        0x00000000000000ffLLU);
-  failed += test_i64_zext_i8(0xa0,        0x00000000000000a0LLU);
-
-  if (failed > 0) {
-    printf("  %d tests failed.\n", failed);
-  } else {
-    printf("  All tests passed.\n");
-  }
-
-  printf("----------------------------------------\n");
-
-  failed = 0;
-  puts("signed left/right shift tests:");
-  failed += test_i64_constant_shift("i64_shl_const", i64_shl_const, tval_a,     0x00047dc7ec114c00LL);
-  failed += test_i64_variable_shift("i64_shl",       i64_shl,       tval_a, 10, 0x00047dc7ec114c00LL);
-  failed += test_i64_constant_shift("i64_srl_const", i64_srl_const, tval_a,     0x0000000047dc7ec1LL);
-  failed += test_i64_variable_shift("i64_srl",       i64_srl,       tval_a, 10, 0x0000000047dc7ec1LL);
-  failed += test_i64_constant_shift("i64_sra_const", i64_sra_const, tval_a,     0x0000000047dc7ec1LL);
-  failed += test_i64_variable_shift("i64_sra",       i64_sra,       tval_a, 10, 0x0000000047dc7ec1LL);
-
-  if (failed > 0) {
-    printf("  %d tests ailed.\n", failed);
-  } else {
-    printf("  All tests passed.\n");
-  }
-
-  printf("----------------------------------------\n");
-
-  failed = 0;
-  puts("unsigned left/right shift tests:");
-  failed += test_u64_constant_shift("u64_shl_const", u64_shl_const,  tval_f,     0xfffc1d404d7ae400LL);
-  failed += test_u64_variable_shift("u64_shl",       u64_shl,        tval_f, 10, 0xfffc1d404d7ae400LL);
-  failed += test_u64_constant_shift("u64_srl_const", u64_srl_const,  tval_f,     0x003fffffc1d404d7LL);
-  failed += test_u64_variable_shift("u64_srl",       u64_srl,        tval_f, 10, 0x003fffffc1d404d7LL);
-  failed += test_i64_constant_shift("i64_sra_const", i64_sra_const,  tval_f,     0xffffffffc1d404d7LL);
-  failed += test_i64_variable_shift("i64_sra",       i64_sra,        tval_f, 10, 0xffffffffc1d404d7LL);
-  failed += test_u64_constant_shift("u64_sra_const", u64_sra_const,  tval_f,     0x003fffffc1d404d7LL);
-  failed += test_u64_variable_shift("u64_sra",       u64_sra,        tval_f, 10, 0x003fffffc1d404d7LL);
-
-  if (failed > 0) {
-    printf("  %d tests ailed.\n", failed);
-  } else {
-    printf("  All tests passed.\n");
-  }
-
-  printf("----------------------------------------\n");
-
-  int64_t result;
-  
-  result = i64_mul(tval_g, tval_g);
-  printf("%20lld * %20lld = %20lld (0x%016llx)\n", tval_g, tval_g, result, result);
-  result = i64_mul(tval_d, tval_e);
-  printf("%20lld * %20lld = %20lld (0x%016llx)\n", tval_d, tval_e, result, result);
-  /* 0xba7a664f13077c9 */
-  result = i64_mul(tval_a, tval_b);
-  printf("%20lld * %20lld = %20lld (0x%016llx)\n", tval_a, tval_b, result, result);
-
-  printf("----------------------------------------\n");
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i64operations.h b/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i64operations.h
deleted file mode 100644
index 7a02794..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/i64operations.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#define TRUE_VAL (!0)
-#define FALSE_VAL 0
-#define ARR_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
-
-typedef unsigned long long int uint64_t;
-typedef long long int int64_t;
-
-/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
-struct harness_int64_pred {
-  const char     *fmt_string;
-  int64_t        *lhs;
-  int64_t        *rhs;
-  int64_t        *select_a;
-  int64_t        *select_b;
-  int             expected;
-  int64_t        *select_expected;
-};
-
-struct harness_uint64_pred {
-  const char     *fmt_string;
-  uint64_t       *lhs;
-  uint64_t       *rhs;
-  uint64_t       *select_a;
-  uint64_t       *select_b;
-  int             expected;
-  uint64_t       *select_expected;
-};
-
-struct int64_pred_s {
-  const char     *name;
-  int             (*predfunc) (int64_t, int64_t);
-  int64_t         (*selfunc) (int64_t, int64_t, int64_t, int64_t);
-  struct harness_int64_pred *tests;
-  int             n_tests;
-};
-
-struct uint64_pred_s {
-  const char     *name;
-  int             (*predfunc) (uint64_t, uint64_t);
-  uint64_t        (*selfunc) (uint64_t, uint64_t, uint64_t, uint64_t);
-  struct harness_uint64_pred *tests;
-  int             n_tests;
-};
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/vecoperations.c b/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/vecoperations.c
deleted file mode 100644
index c4c86e3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/useful-harnesses/vecoperations.c
+++ /dev/null
@@ -1,179 +0,0 @@
-#include <stdio.h>
-
-typedef unsigned char v16i8 __attribute__((ext_vector_type(16))); 
-typedef short         v8i16 __attribute__((ext_vector_type(16))); 
-typedef int           v4i32 __attribute__((ext_vector_type(4))); 
-typedef float         v4f32 __attribute__((ext_vector_type(4))); 
-typedef long long     v2i64 __attribute__((ext_vector_type(2))); 
-typedef double        v2f64 __attribute__((ext_vector_type(2))); 
-
-void print_v16i8(const char *str, const v16i8 v) {
-  union {
-    unsigned char elts[16];
-    v16i8 vec;
-  } tv;
-  tv.vec = v;
-  printf("%s = { %hhu, %hhu, %hhu, %hhu, %hhu, %hhu, %hhu, "
-                "%hhu, %hhu, %hhu, %hhu, %hhu, %hhu, %hhu, "
-		"%hhu, %hhu }\n",
-	str, tv.elts[0], tv.elts[1], tv.elts[2], tv.elts[3], tv.elts[4], tv.elts[5],
-	tv.elts[6], tv.elts[7], tv.elts[8], tv.elts[9], tv.elts[10], tv.elts[11],
-	tv.elts[12], tv.elts[13], tv.elts[14], tv.elts[15]);
-}
-
-void print_v16i8_hex(const char *str, const v16i8 v) {
-  union {
-    unsigned char elts[16];
-    v16i8 vec;
-  } tv;
-  tv.vec = v;
-  printf("%s = { 0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, "
-                "0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, 0x%02hhx, "
-		"0x%02hhx, 0x%02hhx }\n",
-	str, tv.elts[0], tv.elts[1], tv.elts[2], tv.elts[3], tv.elts[4], tv.elts[5],
-	tv.elts[6], tv.elts[7], tv.elts[8], tv.elts[9], tv.elts[10], tv.elts[11],
-	tv.elts[12], tv.elts[13], tv.elts[14], tv.elts[15]);
-}
-
-void print_v8i16_hex(const char *str, v8i16 v) {
-  union {
-    short elts[8];
-    v8i16 vec;
-  } tv;
-  tv.vec = v;
-  printf("%s = { 0x%04hx, 0x%04hx, 0x%04hx, 0x%04hx, 0x%04hx, "
-                "0x%04hx, 0x%04hx, 0x%04hx }\n",
-	str, tv.elts[0], tv.elts[1], tv.elts[2], tv.elts[3], tv.elts[4],
-	tv.elts[5], tv.elts[6], tv.elts[7]);
-}
-
-void print_v4i32(const char *str, v4i32 v) {
-  printf("%s = { %d, %d, %d, %d }\n", str, v.x, v.y, v.z, v.w);
-}
-
-void print_v4f32(const char *str, v4f32 v) {
-  printf("%s = { %f, %f, %f, %f }\n", str, v.x, v.y, v.z, v.w);
-}
-
-void print_v2i64(const char *str, v2i64 v) {
-  printf("%s = { %lld, %lld }\n", str, v.x, v.y);
-}
-
-void print_v2f64(const char *str, v2f64 v) {
-  printf("%s = { %g, %g }\n", str, v.x, v.y);
-}
-
-/*----------------------------------------------------------------------*/
-
-v16i8 v16i8_mpy(v16i8 v1, v16i8 v2) {
-  return v1 * v2;
-}
-
-v16i8 v16i8_add(v16i8 v1, v16i8 v2) {
-  return v1 + v2;
-}
-
-v4i32 v4i32_shuffle_1(v4i32 a) {
-  v4i32 c2 = a.yzwx;
-  return c2;
-}
-
-v4i32 v4i32_shuffle_2(v4i32 a) {
-  v4i32 c2 = a.zwxy;
-  return c2;
-}
-
-v4i32 v4i32_shuffle_3(v4i32 a) {
-  v4i32 c2 = a.wxyz;
-  return c2;
-}
-
-v4i32 v4i32_shuffle_4(v4i32 a) {
-  v4i32 c2 = a.xyzw;
-  return c2;
-}
-
-v4i32 v4i32_shuffle_5(v4i32 a) {
-  v4i32 c2 = a.xwzy;
-  return c2;
-}
-
-v4f32 v4f32_shuffle_1(v4f32 a) {
-  v4f32 c2 = a.yzwx;
-  return c2;
-}
-
-v4f32 v4f32_shuffle_2(v4f32 a) {
-  v4f32 c2 = a.zwxy;
-  return c2;
-}
-
-v4f32 v4f32_shuffle_3(v4f32 a) {
-  v4f32 c2 = a.wxyz;
-  return c2;
-}
-
-v4f32 v4f32_shuffle_4(v4f32 a) {
-  v4f32 c2 = a.xyzw;
-  return c2;
-}
-
-v4f32 v4f32_shuffle_5(v4f32 a) {
-  v4f32 c2 = a.xwzy;
-  return c2;
-}
-
-v2i64 v2i64_shuffle(v2i64 a) {
-  v2i64 c2 = a.yx;
-  return c2;
-}
-
-v2f64 v2f64_shuffle(v2f64 a) {
-  v2f64 c2 = a.yx;
-  return c2;
-}
-
-int main(void) {
-  v16i8 v00 = { 0xf4, 0xad, 0x01, 0xe9, 0x51, 0x78, 0xc1, 0x8a,
-                0x94, 0x7c, 0x49, 0x6c, 0x21, 0x32, 0xb2, 0x04 };
-  v16i8 va0 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
-                0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 };
-  v16i8 va1 = { 0x11, 0x83, 0x4b, 0x63, 0xff, 0x90, 0x32, 0xe5,
-                0x5a, 0xaa, 0x20, 0x01, 0x0d, 0x15, 0x77, 0x05 };
-  v8i16 v01 = { 0x1a87, 0x0a14, 0x5014, 0xfff0,
-                0xe194, 0x0184, 0x801e, 0x5940 };
-  v4i32 v1 = { 1, 2, 3, 4 };
-  v4f32 v2 = { 1.0, 2.0, 3.0, 4.0 };
-  v2i64 v3 = { 691043ll, 910301513ll };
-  v2f64 v4 = { 5.8e56, 9.103e-62 };
-
-  puts("---- vector tests start ----");
-
-  print_v16i8_hex("v00                        ", v00);
-  print_v16i8_hex("va0                        ", va0);
-  print_v16i8_hex("va1                        ", va1);
-  print_v16i8_hex("va0 x va1                  ", v16i8_mpy(va0, va1));
-  print_v16i8_hex("va0 + va1                  ", v16i8_add(va0, va1));
-  print_v8i16_hex("v01                        ", v01);
-
-  print_v4i32("v4i32_shuffle_1(1, 2, 3, 4)", v4i32_shuffle_1(v1));
-  print_v4i32("v4i32_shuffle_2(1, 2, 3, 4)", v4i32_shuffle_2(v1));
-  print_v4i32("v4i32_shuffle_3(1, 2, 3, 4)", v4i32_shuffle_3(v1));
-  print_v4i32("v4i32_shuffle_4(1, 2, 3, 4)", v4i32_shuffle_4(v1));
-  print_v4i32("v4i32_shuffle_5(1, 2, 3, 4)", v4i32_shuffle_5(v1));
-
-  print_v4f32("v4f32_shuffle_1(1, 2, 3, 4)", v4f32_shuffle_1(v2));
-  print_v4f32("v4f32_shuffle_2(1, 2, 3, 4)", v4f32_shuffle_2(v2));
-  print_v4f32("v4f32_shuffle_3(1, 2, 3, 4)", v4f32_shuffle_3(v2));
-  print_v4f32("v4f32_shuffle_4(1, 2, 3, 4)", v4f32_shuffle_4(v2));
-  print_v4f32("v4f32_shuffle_5(1, 2, 3, 4)", v4f32_shuffle_5(v2));
-
-  print_v2i64("v3                         ", v3);
-  print_v2i64("v2i64_shuffle              ", v2i64_shuffle(v3));
-  print_v2f64("v4                         ", v4);
-  print_v2f64("v2f64_shuffle              ", v2f64_shuffle(v4));
-
-  puts("---- vector tests end ----");
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/vec_const.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/vec_const.ll
deleted file mode 100644
index 4b29adc..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/vec_const.ll
+++ /dev/null
@@ -1,154 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: llvm-as -o - %s | llc -march=cellspu -mattr=large_mem > %t2.s
-; RUN: grep -w il  %t1.s | count 3
-; RUN: grep ilhu   %t1.s | count 8
-; RUN: grep -w ilh %t1.s | count 5
-; RUN: grep iohl   %t1.s | count 7
-; RUN: grep lqa    %t1.s | count 6
-; RUN: grep 24672  %t1.s | count 2
-; RUN: grep 16429  %t1.s | count 1
-; RUN: grep 63572  %t1.s | count 1
-; RUN: grep  4660  %t1.s | count 1
-; RUN: grep 22136  %t1.s | count 1
-; RUN: grep 43981  %t1.s | count 1
-; RUN: grep 61202  %t1.s | count 1
-; RUN: grep 16393  %t1.s | count 1
-; RUN: grep  8699  %t1.s | count 1
-; RUN: grep 21572  %t1.s | count 1
-; RUN: grep 11544  %t1.s | count 1
-; RUN: grep 1311768467750121234 %t1.s | count 1
-; RUN: grep lqd    %t2.s | count 6
-
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128"
-target triple = "spu-unknown-elf"
-
-; Vector constant load tests:
-
-; IL <reg>, 2
-define <4 x i32> @v4i32_constvec() {
-        ret <4 x i32> < i32 2, i32 2, i32 2, i32 2 >
-}
-
-; Spill to constant pool
-define <4 x i32> @v4i32_constpool() {
-        ret <4 x i32> < i32 2, i32 1, i32 1, i32 2 >
-}
-
-; Max negative range for IL
-define <4 x i32> @v4i32_constvec_2() {
-        ret <4 x i32> < i32 -32768, i32 -32768, i32 -32768, i32 -32768 >
-}
-
-; ILHU <reg>, 73 (0x49)
-; 4784128 = 0x490000
-define <4 x i32> @v4i32_constvec_3() {
-        ret <4 x i32> < i32 4784128, i32 4784128,
-                        i32 4784128, i32 4784128 >
-}
-
-; ILHU <reg>, 61 (0x3d)
-; IOHL <reg>, 15395 (0x3c23)
-define <4 x i32> @v4i32_constvec_4() {
-        ret <4 x i32> < i32 4013091, i32 4013091,
-                        i32 4013091, i32 4013091 >
-}
-
-; ILHU <reg>, 0x5050 (20560)
-; IOHL <reg>, 0x5050 (20560)
-; Tests for whether we expand the size of the bit pattern properly, because
-; this could be interpreted as an i8 pattern (0x50)
-define <4 x i32> @v4i32_constvec_5() {
-        ret <4 x i32> < i32 1347440720, i32 1347440720,
-                        i32 1347440720, i32 1347440720 >
-}
-
-; ILH
-define <8 x i16> @v8i16_constvec_1() {
-        ret <8 x i16> < i16 32767, i16 32767, i16 32767, i16 32767,
-                        i16 32767, i16 32767, i16 32767, i16 32767 >
-}
-
-; ILH
-define <8 x i16> @v8i16_constvec_2() {
-        ret <8 x i16> < i16 511, i16 511, i16 511, i16 511, i16 511,
-                        i16 511, i16 511, i16 511 >
-}
-
-; ILH
-define <8 x i16> @v8i16_constvec_3() {
-        ret <8 x i16> < i16 -512, i16 -512, i16 -512, i16 -512, i16 -512,
-                        i16 -512, i16 -512, i16 -512 >
-}
-
-; ILH <reg>, 24672 (0x6060)
-; Tests whether we expand the size of the bit pattern properly, because
-; this could be interpreted as an i8 pattern (0x60)
-define <8 x i16> @v8i16_constvec_4() {
-        ret <8 x i16> < i16 24672, i16 24672, i16 24672, i16 24672, i16 24672,
-                        i16 24672, i16 24672, i16 24672 >
-}
-
-; ILH <reg>, 24672 (0x6060)
-; Tests whether we expand the size of the bit pattern properly, because
-; this is an i8 pattern but has to be expanded out to i16 to load it
-; properly into the vector register.
-define <16 x i8> @v16i8_constvec_1() {
-        ret <16 x i8> < i8 96, i8 96, i8 96, i8 96, i8 96, i8 96, i8 96, i8 96,
-                        i8 96, i8 96, i8 96, i8 96, i8 96, i8 96, i8 96, i8 96 >
-}
-
-define <4 x float> @v4f32_constvec_1() {
-entry:
-        ret <4 x float> < float 0x4005BF0A80000000,
-                          float 0x4005BF0A80000000,
-                          float 0x4005BF0A80000000,
-                          float 0x4005BF0A80000000 >
-}
-
-define <4 x float> @v4f32_constvec_2() {
-entry:
-        ret <4 x float> < float 0.000000e+00,
-                          float 0.000000e+00,
-                          float 0.000000e+00,
-                          float 0.000000e+00 >
-}
-
-
-define <4 x float> @v4f32_constvec_3() {
-entry:
-        ret <4 x float> < float 0x4005BF0A80000000,
-                          float 0x3810000000000000,
-                          float 0x47EFFFFFE0000000,
-                          float 0x400921FB60000000 >
-}
-
-;  1311768467750121234 => 0x 12345678 abcdef12
-;  HI32_hi:  4660
-;  HI32_lo: 22136
-;  LO32_hi: 43981
-;  LO32_lo: 61202
-define <2 x i64> @i64_constvec_1() {
-entry:
-        ret <2 x i64> < i64 1311768467750121234,
-                        i64 1311768467750121234 >
-}
-
-define <2 x i64> @i64_constvec_2() {
-entry:
-        ret <2 x i64> < i64 1, i64 1311768467750121234 >
-}
-
-define <2 x double> @f64_constvec_1() {
-entry:
- ret <2 x double> < double 0x400921fb54442d18,
-                    double 0xbff6a09e667f3bcd >
-}
-
-; 0x400921fb 54442d18 ->
-;   (ILHU 0x4009 [16393]/IOHL 0x21fb [ 8699])
-;   (ILHU 0x5444 [21572]/IOHL 0x2d18 [11544])
-define <2 x double> @f64_constvec_2() {
-entry:
- ret <2 x double> < double 0x400921fb54442d18,
-                    double 0x400921fb54442d18 >
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/CellSPU/vecinsert.ll b/libclamav/c++/llvm/test/CodeGen/CellSPU/vecinsert.ll
deleted file mode 100644
index 6abbd9a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/CellSPU/vecinsert.ll
+++ /dev/null
@@ -1,120 +0,0 @@
-; RUN: llvm-as -o - %s | llc -march=cellspu > %t1.s
-; RUN: grep cbd     %t1.s | count 5
-; RUN: grep chd     %t1.s | count 5
-; RUN: grep cwd     %t1.s | count 10
-; RUN: grep -w il   %t1.s | count 5
-; RUN: grep -w ilh  %t1.s | count 6
-; RUN: grep iohl    %t1.s | count 1
-; RUN: grep ilhu    %t1.s | count 4
-; RUN: grep shufb   %t1.s | count 26
-; RUN: grep 17219   %t1.s | count 1 
-; RUN: grep 22598   %t1.s | count 1
-; RUN: grep -- -39  %t1.s | count 1
-; RUN: grep    24   %t1.s | count 1
-; RUN: grep  1159   %t1.s | count 1
-; ModuleID = 'vecinsert.bc'
-target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128"
-target triple = "spu-unknown-elf"
-
-; 67 -> 0x43, as 8-bit vector constant load = 0x4343 (17219)0x4343
-define <16 x i8> @test_v16i8(<16 x i8> %P, i8 %x) {
-entry:
-        %tmp1 = insertelement <16 x i8> %P, i8 %x, i32 10
-        %tmp1.1 = insertelement <16 x i8> %tmp1, i8 67, i32 7
-        %tmp1.2 = insertelement <16 x i8> %tmp1.1, i8 %x, i32 15
-        ret <16 x i8> %tmp1.2
-}
-
-; 22598 -> 0x5846
-define <8 x i16> @test_v8i16(<8 x i16> %P, i16 %x) {
-entry:
-        %tmp1 = insertelement <8 x i16> %P, i16 %x, i32 5
-        %tmp1.1 = insertelement <8 x i16> %tmp1, i16 22598, i32 7
-        %tmp1.2 = insertelement <8 x i16> %tmp1.1, i16 %x, i32 2
-        ret <8 x i16> %tmp1.2
-}
-
-; 1574023 -> 0x180487 (ILHU 24/IOHL 1159)
-define <4 x i32> @test_v4i32_1(<4 x i32> %P, i32 %x) {
-entry:
-        %tmp1 = insertelement <4 x i32> %P, i32 %x, i32 2
-        %tmp1.1 = insertelement <4 x i32> %tmp1, i32 1574023, i32 1
-        %tmp1.2 = insertelement <4 x i32> %tmp1.1, i32 %x, i32 3
-        ret <4 x i32> %tmp1.2
-}
-
-; Should generate IL for the load
-define <4 x i32> @test_v4i32_2(<4 x i32> %P, i32 %x) {
-entry:
-        %tmp1 = insertelement <4 x i32> %P, i32 %x, i32 2
-        %tmp1.1 = insertelement <4 x i32> %tmp1, i32 -39, i32 1
-        %tmp1.2 = insertelement <4 x i32> %tmp1.1, i32 %x, i32 3
-        ret <4 x i32> %tmp1.2
-}
-
-define void @variable_v16i8_1(<16 x i8>* %a, i32 %i) nounwind {
-entry:
-	%arrayidx = getelementptr <16 x i8>* %a, i32 %i
-	%tmp2 = load <16 x i8>* %arrayidx
-	%tmp3 = insertelement <16 x i8> %tmp2, i8 1, i32 1
-	%tmp8 = insertelement <16 x i8> %tmp3, i8 2, i32 11
-	store <16 x i8> %tmp8, <16 x i8>* %arrayidx
-	ret void
-}
-
-define void @variable_v8i16_1(<8 x i16>* %a, i32 %i) nounwind {
-entry:
-	%arrayidx = getelementptr <8 x i16>* %a, i32 %i
-	%tmp2 = load <8 x i16>* %arrayidx
-	%tmp3 = insertelement <8 x i16> %tmp2, i16 1, i32 1
-	%tmp8 = insertelement <8 x i16> %tmp3, i16 2, i32 6
-	store <8 x i16> %tmp8, <8 x i16>* %arrayidx
-	ret void
-}
-
-define void @variable_v4i32_1(<4 x i32>* %a, i32 %i) nounwind {
-entry:
-	%arrayidx = getelementptr <4 x i32>* %a, i32 %i
-	%tmp2 = load <4 x i32>* %arrayidx
-	%tmp3 = insertelement <4 x i32> %tmp2, i32 1, i32 1
-	%tmp8 = insertelement <4 x i32> %tmp3, i32 2, i32 2
-	store <4 x i32> %tmp8, <4 x i32>* %arrayidx
-	ret void
-}
-
-define void @variable_v4f32_1(<4 x float>* %a, i32 %i) nounwind {
-entry:
-	%arrayidx = getelementptr <4 x float>* %a, i32 %i
-	%tmp2 = load <4 x float>* %arrayidx
-	%tmp3 = insertelement <4 x float> %tmp2, float 1.000000e+00, i32 1
-	%tmp8 = insertelement <4 x float> %tmp3, float 2.000000e+00, i32 2
-	store <4 x float> %tmp8, <4 x float>* %arrayidx
-	ret void
-}
-
-define void @variable_v2i64_1(<2 x i64>* %a, i32 %i) nounwind {
-entry:
-	%arrayidx = getelementptr <2 x i64>* %a, i32 %i
-	%tmp2 = load <2 x i64>* %arrayidx
-	%tmp3 = insertelement <2 x i64> %tmp2, i64 615, i32 0
-	store <2 x i64> %tmp3, <2 x i64>* %arrayidx
-	ret void
-}
-
-define void @variable_v2i64_2(<2 x i64>* %a, i32 %i) nounwind {
-entry:
-	%arrayidx = getelementptr <2 x i64>* %a, i32 %i
-	%tmp2 = load <2 x i64>* %arrayidx
-	%tmp3 = insertelement <2 x i64> %tmp2, i64 615, i32 1
-	store <2 x i64> %tmp3, <2 x i64>* %arrayidx
-	ret void
-}
-
-define void @variable_v2f64_1(<2 x double>* %a, i32 %i) nounwind {
-entry:
-	%arrayidx = getelementptr <2 x double>* %a, i32 %i
-	%tmp2 = load <2 x double>* %arrayidx
-	%tmp3 = insertelement <2 x double> %tmp2, double 1.000000e+00, i32 1
-	store <2 x double> %tmp3, <2 x double>* %arrayidx
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-10-CyclicDAG.ll b/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-10-CyclicDAG.ll
deleted file mode 100644
index 245c2f9..0000000
--- a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-10-CyclicDAG.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | llc
-; PR4136
-
-target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"
-target triple = "msp430-unknown-linux-gnu"
- at uip_len = external global i16		; <i16*> [#uses=2]
-
-define void @uip_arp_arpin() nounwind {
-entry:
-	%tmp = volatile load i16* @uip_len		; <i16> [#uses=1]
-	%cmp = icmp ult i16 %tmp, 42		; <i1> [#uses=1]
-	volatile store i16 0, i16* @uip_len
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	ret void
-
-if.end:		; preds = %entry
-	switch i16 0, label %return [
-		i16 256, label %sw.bb
-		i16 512, label %sw.bb18
-	]
-
-sw.bb:		; preds = %if.end
-	ret void
-
-sw.bb18:		; preds = %if.end
-	ret void
-
-return:		; preds = %if.end
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Rot.ll b/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Rot.ll
deleted file mode 100644
index c25a906..0000000
--- a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Rot.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=msp430
-
-define i16 @rol1u16(i16 %x.arg) nounwind {
-        %retval = alloca i16
-        %x = alloca i16
-        store i16 %x.arg, i16* %x
-        %1 = load i16* %x
-        %2 = shl i16 %1, 1
-        %3 = load i16* %x
-        %4 = lshr i16 %3, 15
-        %5 = or i16 %2, %4
-        store i16 %5, i16* %retval
-        br label %return
-return:
-        %6 = load i16* %retval
-        ret i16 %6
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Shift.ll b/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Shift.ll
deleted file mode 100644
index b048bb3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Shift.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=msp430 | grep rra | count 1
-
-define i16 @lsr2u16(i16 %x.arg) nounwind {
-        %retval = alloca i16
-        %x = alloca i16
-        store i16 %x.arg, i16* %x
-        %1 = load i16* %x
-        %2 = lshr i16 %1, 2
-        store i16 %2, i16* %retval
-        br label %return
-return:
-        %3 = load i16* %retval
-        ret i16 %3
-
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-19-DoubleSplit.ll b/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-19-DoubleSplit.ll
deleted file mode 100644
index 70f1d99..0000000
--- a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-19-DoubleSplit.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=msp430
-
-define i16 @test(double %d) nounwind {
-entry:
-        %add = fadd double %d, 1.000000e+00
-        %call = tail call i16 @funct(double %add) nounwind
-        ret i16 %call
-}
-
-declare i16 @funct(double)
-
diff --git a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-08-25-DynamicStackAlloc.ll b/libclamav/c++/llvm/test/CodeGen/MSP430/2009-08-25-DynamicStackAlloc.ll
deleted file mode 100644
index 0ec05f7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/MSP430/2009-08-25-DynamicStackAlloc.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | llc
-; PR4769
-target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"
-target triple = "msp430-generic-generic"
-
-define i16 @foo() nounwind readnone {
-entry:
-  %result = alloca i16, align 1                   ; <i16*> [#uses=2]
-  volatile store i16 0, i16* %result
-  %tmp = volatile load i16* %result               ; <i16> [#uses=1]
-  ret i16 %tmp
-}
-
-define i16 @main() nounwind {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.cond, %entry
-  %call = call i16 @bar() nounwind                ; <i16> [#uses=1]
-  %tobool = icmp eq i16 %call, 0                  ; <i1> [#uses=1]
-  br i1 %tobool, label %while.end, label %while.cond
-
-while.end:                                        ; preds = %while.cond
-  %result.i = alloca i16, align 1                 ; <i16*> [#uses=2]
-  volatile store i16 0, i16* %result.i
-  %tmp.i = volatile load i16* %result.i           ; <i16> [#uses=0]
-  ret i16 0
-}
-
-declare i16 @bar()
diff --git a/libclamav/c++/llvm/test/CodeGen/MSP430/dg.exp b/libclamav/c++/llvm/test/CodeGen/MSP430/dg.exp
deleted file mode 100644
index e4ea13a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/MSP430/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target MSP430] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/MSP430/inline-asm.ll b/libclamav/c++/llvm/test/CodeGen/MSP430/inline-asm.ll
deleted file mode 100644
index 83e8d12..0000000
--- a/libclamav/c++/llvm/test/CodeGen/MSP430/inline-asm.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc
-; PR4778
-target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"
-target triple = "msp430-generic-generic"
-
-define signext i8 @__nesc_atomic_start() nounwind {
-entry:
-  %0 = tail call i16 asm sideeffect "mov    r2, $0", "=r"() nounwind ; <i16> [#uses=1]
-  %1 = trunc i16 %0 to i8                         ; <i8> [#uses=1]
-  %and3 = lshr i8 %1, 3                           ; <i8> [#uses=1]
-  %conv1 = and i8 %and3, 1                        ; <i8> [#uses=1]
-  tail call void asm sideeffect "dint", ""() nounwind
-  tail call void asm sideeffect "nop", ""() nounwind
-  tail call void asm sideeffect "", "~{memory}"() nounwind
-  ret i8 %conv1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-06-05-Carry.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-06-05-Carry.ll
deleted file mode 100644
index 800ba11..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-06-05-Carry.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep subu %t | count 2
-; RUN: grep addu %t | count 4
-
-target datalayout =
-"e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define i64 @add64(i64 %u, i64 %v) nounwind  {
-entry:
-	%tmp2 = add i64 %u, %v	
-  ret i64 %tmp2
-}
-
-define i64 @sub64(i64 %u, i64 %v) nounwind  {
-entry:
-  %tmp2 = sub i64 %u, %v
-  ret i64 %tmp2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-03-SRet.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-03-SRet.ll
deleted file mode 100644
index 53ceaf3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-03-SRet.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep {sw.*(\$4)} | count 3
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-	%struct.sret0 = type { i32, i32, i32 }
-
-define void @test0(%struct.sret0* noalias sret %agg.result, i32 %dummy) nounwind {
-entry:
-	getelementptr %struct.sret0* %agg.result, i32 0, i32 0		; <i32*>:0 [#uses=1]
-	store i32 %dummy, i32* %0, align 4
-	getelementptr %struct.sret0* %agg.result, i32 0, i32 1		; <i32*>:1 [#uses=1]
-	store i32 %dummy, i32* %1, align 4
-	getelementptr %struct.sret0* %agg.result, i32 0, i32 2		; <i32*>:2 [#uses=1]
-	store i32 %dummy, i32* %2, align 4
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-05-ByVal.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-05-ByVal.ll
deleted file mode 100644
index 2d1101a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-05-ByVal.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep {lw.*(\$4)} | count 2
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-	%struct.byval0 = type { i32, i32 }
-
-define i64 @test0(%struct.byval0* byval  %b, i64 %sum) nounwind  {
-entry:
-	getelementptr %struct.byval0* %b, i32 0, i32 0		; <i32*>:0 [#uses=1]
-	load i32* %0, align 4		; <i32>:1 [#uses=1]
-	getelementptr %struct.byval0* %b, i32 0, i32 1		; <i32*>:2 [#uses=1]
-	load i32* %2, align 4		; <i32>:3 [#uses=1]
-	add i32 %3, %1		; <i32>:4 [#uses=1]
-	sext i32 %4 to i64		; <i64>:5 [#uses=1]
-	add i64 %5, %sum		; <i64>:6 [#uses=1]
-	ret i64 %6
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-06-fadd64.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-06-fadd64.ll
deleted file mode 100644
index f8eca85..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-06-fadd64.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep __adddf3
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define double @dofloat(double %a, double %b) nounwind {
-entry:
-	fadd double %a, %b		; <double>:0 [#uses=1]
-	ret double %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-FPExtend.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-FPExtend.ll
deleted file mode 100644
index e0e7d76..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-FPExtend.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep __extendsfdf2
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define double @dofloat(float %a) nounwind {
-entry:
-	fpext float %a to double		; <double>:0 [#uses=1]
-	ret double %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-Float2Int.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-Float2Int.ll
deleted file mode 100644
index f2f0374..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-Float2Int.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep trunc.w.s | count 3
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define i32 @fptoint(float %a) nounwind {
-entry:
-	fptosi float %a to i32		; <i32>:0 [#uses=1]
-	ret i32 %0
-}
-
-define i32 @fptouint(float %a) nounwind {
-entry:
-	fptoui float %a to i32		; <i32>:0 [#uses=1]
-	ret i32 %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll
deleted file mode 100644
index 2f10a3f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep __floatsidf   %t | count 1
-; RUN: grep __floatunsidf %t | count 1
-; RUN: grep __fixdfsi %t | count 1
-; RUN: grep __fixunsdfsi %t  | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define double @int2fp(i32 %a) nounwind {
-entry:
-	sitofp i32 %a to double		; <double>:0 [#uses=1]
-	ret double %0
-}
-
-define double @uint2double(i32 %a) nounwind {
-entry:
-	uitofp i32 %a to double		; <double>:0 [#uses=1]
-	ret double %0
-}
-
-define i32 @double2int(double %a) nounwind {
-entry:
-  fptosi double %a to i32   ; <i32>:0 [#uses=1]
-  ret i32 %0
-}
-
-define i32 @double2uint(double %a) nounwind {
-entry:
-  fptoui double %a to i32   ; <i32>:0 [#uses=1]
-  ret i32 %0
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-InternalConstant.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-InternalConstant.ll
deleted file mode 100644
index 33b240b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-InternalConstant.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep {rodata.str1.4,"aMS", at progbits}  %t | count 1
-; RUN: grep {r.data,}  %t | count 1
-; RUN: grep {\%hi} %t | count 2
-; RUN: grep {\%lo} %t | count 2
-; RUN: not grep {gp_rel} %t
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
- at .str = internal constant [10 x i8] c"AAAAAAAAA\00"
- at i0 = internal constant [5 x i32] [ i32 0, i32 1, i32 2, i32 3, i32 4 ] 
-
-define i8* @foo() nounwind {
-entry:
-	ret i8* getelementptr ([10 x i8]* @.str, i32 0, i32 0)
-}
-
-define i32* @bar() nounwind  {
-entry:
-  ret i32* getelementptr ([5 x i32]* @i0, i32 0, i32 0)
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-SmallSection.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-SmallSection.ll
deleted file mode 100644
index 671fa94..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-SmallSection.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | llc -mips-ssection-threshold=8 -march=mips -o %t0
-; RUN: llvm-as < %s | llc -mips-ssection-threshold=0 -march=mips -o %t1
-; RUN: grep {sdata} %t0 | count 1
-; RUN: grep {sbss} %t0 | count 1
-; RUN: grep {gp_rel} %t0 | count 2
-; RUN: not grep {sdata} %t1 
-; RUN: not grep {sbss} %t1 
-; RUN: not grep {gp_rel} %t1
-; RUN: grep {\%hi} %t1 | count 2
-; RUN: grep {\%lo} %t1 | count 2
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-  %struct.anon = type { i32, i32 }
- at s0 = global [8 x i8] c"AAAAAAA\00", align 4
- at foo = global %struct.anon { i32 2, i32 3 }
- at bar = global %struct.anon zeroinitializer 
-
-define i8* @A0() nounwind {
-entry:
-	ret i8* getelementptr ([8 x i8]* @s0, i32 0, i32 0)
-}
-
-define i32 @A1() nounwind {
-entry:
-  load i32* getelementptr (%struct.anon* @foo, i32 0, i32 0), align 8 
-  load i32* getelementptr (%struct.anon* @foo, i32 0, i32 1), align 4 
-  add i32 %1, %0
-  ret i32 %2
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-16-SignExtInReg.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-16-SignExtInReg.ll
deleted file mode 100644
index a1523d1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-16-SignExtInReg.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep seh %t | count 1
-; RUN: grep seb %t | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define i8 @A(i8 %e.0, i8 signext %sum) signext nounwind {
-entry:
-	add i8 %sum, %e.0		; <i8>:0 [#uses=1]
-	ret i8 %0
-}
-
-define i16 @B(i16 %e.0, i16 signext %sum) signext nounwind {
-entry:
-	add i16 %sum, %e.0		; <i16>:0 [#uses=1]
-	ret i16 %0
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-22-Cstpool.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-22-Cstpool.ll
deleted file mode 100644
index cf04b0f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-22-Cstpool.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep {CPI\[01\]_\[01\]:} %t | count 2
-; RUN: grep {rodata.cst4,"aM", at progbits} %t | count 1
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define float @F(float %a) nounwind {
-entry:
-	fadd float %a, 0x4011333340000000		; <float>:0 [#uses=1]
-	fadd float %0, 0x4010666660000000		; <float>:1 [#uses=1]
-	ret float %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-23-fpcmp.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-23-fpcmp.ll
deleted file mode 100644
index 12a5026..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-23-fpcmp.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep {c\\..*\\.s} %t | count 3
-; RUN: grep {bc1\[tf\]} %t | count 3
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define float @A(float %a, float %b) nounwind {
-entry:
-	fcmp ogt float %a, 1.000000e+00		; <i1>:0 [#uses=1]
-	br i1 %0, label %bb, label %bb2
-
-bb:		; preds = %entry
-	fadd float %a, 1.000000e+00		; <float>:1 [#uses=1]
-	ret float %1
-
-bb2:		; preds = %entry
-	ret float %b
-}
-
-define float @B(float %a, float %b) nounwind {
-entry:
-  fcmp ogt float %a, 1.000000e+00   ; <i1>:0 [#uses=1]
-  %.0 = select i1 %0, float %a, float %b    ; <float> [#uses=1]
-  ret float %.0
-}
-
-define i32 @C(i32 %a, i32 %b, float %j) nounwind {
-entry:
-  fcmp ogt float %j, 1.000000e+00   ; <i1>:0 [#uses=1]
-  %.0 = select i1 %0, i32 %a, i32 %b    ; <i32> [#uses=1]
-  ret i32 %.0
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-29-icmp.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-29-icmp.ll
deleted file mode 100644
index 5d03a19..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-29-icmp.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep {b\[ne\]\[eq\]} | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define float @A(float %a, float %b, i32 %j) nounwind {
-entry:
-	icmp sgt i32 %j, 1		; <i1>:0 [#uses=1]
-	%.0 = select i1 %0, float %a, float %b		; <float> [#uses=1]
-	ret float %.0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-31-fcopysign.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-31-fcopysign.ll
deleted file mode 100644
index 58fa708..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-07-31-fcopysign.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep abs.s  %t | count 1
-; RUN: grep neg.s %t | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define float @A(float %i, float %j) nounwind  {
-entry:
-	tail call float @copysignf( float %i, float %j ) nounwind readnone 		; <float>:0 [#uses=1]
-	ret float %0
-}
-
-declare float @copysignf(float, float) nounwind readnone 
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-01-AsmInline.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-01-AsmInline.ll
deleted file mode 100644
index 2cf4119..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-01-AsmInline.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep mfhi  %t | count 1
-; RUN: grep mflo  %t | count 1
-; RUN: grep multu %t | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-	%struct.DWstruct = type { i32, i32 }
-
-define i32 @A0(i32 %u, i32 %v) nounwind  {
-entry:
-	%asmtmp = tail call %struct.DWstruct asm "multu $2,$3", "={lo},={hi},d,d"( i32 %u, i32 %v ) nounwind
-	%asmresult = extractvalue %struct.DWstruct %asmtmp, 0
-	%asmresult1 = extractvalue %struct.DWstruct %asmtmp, 1		; <i32> [#uses=1]
-  %res = add i32 %asmresult, %asmresult1
-	ret i32 %res
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-03-ReturnDouble.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-03-ReturnDouble.ll
deleted file mode 100644
index b1e999c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-03-ReturnDouble.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; Double return in abicall (default)
-; RUN: llvm-as < %s | llc -march=mips
-; PR2615
-
-define double @main(...) {
-entry:
-        %retval = alloca double         ; <double*> [#uses=3]
-        store double 0.000000e+00, double* %retval
-        %r = alloca double              ; <double*> [#uses=1]
-        load double* %r         ; <double>:0 [#uses=1]
-        store double %0, double* %retval
-        br label %return
-
-return:         ; preds = %entry
-        load double* %retval            ; <double>:1 [#uses=1]
-        ret double %1
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-03-fabs64.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-03-fabs64.ll
deleted file mode 100644
index e3d4028..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-03-fabs64.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep {lui.*32767} %t | count 1
-; RUN: grep {ori.*65535} %t | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define double @A(double %c, double %d) nounwind readnone  {
-entry:
-	tail call double @fabs( double %c ) nounwind readnone 		; <double>:0 [#uses=1]
-	tail call double @fabs( double %d ) nounwind readnone 		; <double>:0 [#uses=1]
-  fadd double %0, %1
-  ret double %2
-}
-
-declare double @fabs(double) nounwind readnone 
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-04-Bitconvert.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-04-Bitconvert.ll
deleted file mode 100644
index f6d7d64..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-04-Bitconvert.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips -o %t
-; RUN: grep mtc1 %t | count 1
-; RUN: grep mfc1 %t | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define float @A(i32 %u) nounwind  {
-entry:
-	bitcast i32 %u to float
-	ret float %0
-}
-
-define i32 @B(float %u) nounwind  {
-entry:
-	bitcast float %u to i32
-	ret i32 %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-06-Alloca.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-06-Alloca.ll
deleted file mode 100644
index 34596ea..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-06-Alloca.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep {subu.*sp} | count 2
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define i32 @twoalloca(i32 %size) nounwind {
-entry:
-	alloca i8, i32 %size		; <i8*>:0 [#uses=1]
-	alloca i8, i32 %size		; <i8*>:1 [#uses=1]
-	call i32 @foo( i8* %0 ) nounwind		; <i32>:2 [#uses=1]
-	call i32 @foo( i8* %1 ) nounwind		; <i32>:3 [#uses=1]
-	add i32 %3, %2		; <i32>:4 [#uses=1]
-	ret i32 %4
-}
-
-declare i32 @foo(i8*)
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-CC.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-CC.ll
deleted file mode 100644
index fd90dda..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-CC.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips
-; Mips must ignore fastcc
-
-target datalayout =
-"e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define internal fastcc i32 @A(i32 %u) nounwind  {
-entry:
-  ret i32 %u 
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-FPRound.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-FPRound.ll
deleted file mode 100644
index fd41ff1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-FPRound.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep __truncdfsf2 | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define float @round2float(double %a) nounwind {
-entry:
-	fptrunc double %a to float		; <float>:0 [#uses=1]
-	ret float %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-08-bswap.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-08-bswap.ll
deleted file mode 100644
index 1de9580..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-08-bswap.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc | grep wsbw | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "psp"
-
-define i32 @__bswapsi2(i32 %u) nounwind {
-entry:
-	tail call i32 @llvm.bswap.i32( i32 %u )		; <i32>:0 [#uses=1]
-	ret i32 %0
-}
-
-declare i32 @llvm.bswap.i32(i32) nounwind readnone
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-08-ctlz.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-08-ctlz.ll
deleted file mode 100644
index e468b6d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-08-08-ctlz.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips | grep clz | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "mipsallegrexel-psp-elf"
-
-define i32 @A0(i32 %u) nounwind  {
-entry:
-	call i32 @llvm.ctlz.i32( i32 %u )
-  ret i32 %0
-}
-
-declare i32 @llvm.ctlz.i32(i32) nounwind readnone 
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-10-13-LegalizerBug.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-10-13-LegalizerBug.ll
deleted file mode 100644
index 783850a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-10-13-LegalizerBug.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | llc -march=mips
-; PR2794
-
-define i32 @main(i8*) nounwind {
-entry:
-        br label %continue.outer
-
-continue.outer:         ; preds = %case4, %entry
-        %p.0.ph.rec = phi i32 [ 0, %entry ], [ %indvar.next, %case4 ]          ; <i32> [#uses=2]
-        %p.0.ph = getelementptr i8* %0, i32 %p.0.ph.rec         ; <i8*> [#uses=1]
-        %1 = load i8* %p.0.ph           ; <i8> [#uses=1]
-        switch i8 %1, label %infloop [
-                i8 0, label %return.split
-                i8 76, label %case4
-                i8 108, label %case4
-                i8 104, label %case4
-                i8 42, label %case4
-        ]
-
-case4:          ; preds = %continue.outer, %continue.outer, %continue.outer, %continue.outer
-        %indvar.next = add i32 %p.0.ph.rec, 1           ; <i32> [#uses=1]
-        br label %continue.outer
-
-return.split:           ; preds = %continue.outer
-        ret i32 0
-
-infloop:                ; preds = %infloop, %continue.outer
-        br label %infloop
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/2008-11-10-xint_to_fp.ll b/libclamav/c++/llvm/test/CodeGen/Mips/2008-11-10-xint_to_fp.ll
deleted file mode 100644
index 1f7440a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/2008-11-10-xint_to_fp.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llvm-as < %s | llc
-; PR2667
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "psp"
-	%struct._Bigint = type { %struct._Bigint*, i32, i32, i32, i32, [1 x i32] }
-	%struct.__FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*, i8*, i32)*, i32 (i8*, i8*, i32)*, i32 (i8*, i32, i32)*, i32 (i8*)*, %struct.__sbuf, i8*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i32, %struct._reent*, i32 }
-	%struct.__sbuf = type { i8*, i32 }
-	%struct._atexit = type { %struct._atexit*, i32, [32 x void ()*], %struct._on_exit_args }
-	%struct._glue = type { %struct._glue*, i32, %struct.__FILE* }
-	%struct._on_exit_args = type { [32 x i8*], [32 x i8*], i32, i32 }
-	%struct._reent = type { i32, %struct.__FILE*, %struct.__FILE*, %struct.__FILE*, i32, [25 x i8], i32, i8*, i32, void (%struct._reent*)*, %struct._Bigint*, i32, %struct._Bigint*, %struct._Bigint**, i32, i8*, { { [30 x i8*], [30 x i32] } }, %struct._atexit*, %struct._atexit, void (i32)**, %struct._glue, [3 x %struct.__FILE] }
- at _impure_ptr = external global %struct._reent*		; <%struct._reent**> [#uses=1]
-
-define double @_erand48_r(%struct._reent* %r, i16* %xseed) nounwind {
-entry:
-	tail call void @__dorand48( %struct._reent* %r, i16* %xseed ) nounwind
-	load i16* %xseed, align 2		; <i16>:0 [#uses=1]
-	uitofp i16 %0 to double		; <double>:1 [#uses=1]
-	tail call double @ldexp( double %1, i32 -48 ) nounwind		; <double>:2 [#uses=1]
-	getelementptr i16* %xseed, i32 1		; <i16*>:3 [#uses=1]
-	load i16* %3, align 2		; <i16>:4 [#uses=1]
-	uitofp i16 %4 to double		; <double>:5 [#uses=1]
-	tail call double @ldexp( double %5, i32 -32 ) nounwind		; <double>:6 [#uses=1]
-	fadd double %2, %6		; <double>:7 [#uses=1]
-	getelementptr i16* %xseed, i32 2		; <i16*>:8 [#uses=1]
-	load i16* %8, align 2		; <i16>:9 [#uses=1]
-	uitofp i16 %9 to double		; <double>:10 [#uses=1]
-	tail call double @ldexp( double %10, i32 -16 ) nounwind		; <double>:11 [#uses=1]
-	fadd double %7, %11		; <double>:12 [#uses=1]
-	ret double %12
-}
-
-declare void @__dorand48(%struct._reent*, i16*)
-
-declare double @ldexp(double, i32)
-
-define double @erand48(i16* %xseed) nounwind {
-entry:
-	load %struct._reent** @_impure_ptr, align 4		; <%struct._reent*>:0 [#uses=1]
-	tail call void @__dorand48( %struct._reent* %0, i16* %xseed ) nounwind
-	load i16* %xseed, align 2		; <i16>:1 [#uses=1]
-	uitofp i16 %1 to double		; <double>:2 [#uses=1]
-	tail call double @ldexp( double %2, i32 -48 ) nounwind		; <double>:3 [#uses=1]
-	getelementptr i16* %xseed, i32 1		; <i16*>:4 [#uses=1]
-	load i16* %4, align 2		; <i16>:5 [#uses=1]
-	uitofp i16 %5 to double		; <double>:6 [#uses=1]
-	tail call double @ldexp( double %6, i32 -32 ) nounwind		; <double>:7 [#uses=1]
-	fadd double %3, %7		; <double>:8 [#uses=1]
-	getelementptr i16* %xseed, i32 2		; <i16*>:9 [#uses=1]
-	load i16* %9, align 2		; <i16>:10 [#uses=1]
-	uitofp i16 %10 to double		; <double>:11 [#uses=1]
-	tail call double @ldexp( double %11, i32 -16 ) nounwind		; <double>:12 [#uses=1]
-	fadd double %8, %12		; <double>:13 [#uses=1]
-	ret double %13
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/dg.exp b/libclamav/c++/llvm/test/CodeGen/Mips/dg.exp
deleted file mode 100644
index adb2cac..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target Mips] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/Mips/private.ll b/libclamav/c++/llvm/test/CodeGen/Mips/private.ll
deleted file mode 100644
index 00a969d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/Mips/private.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; Test to make sure that the 'private' is used correctly.
-;
-; RUN: llvm-as < %s | llc -march=mips > %t
-; RUN: grep \\\$foo: %t
-; RUN: grep call.*\\\$foo %t
-; RUN: grep \\\$baz: %t
-; RUN: grep lw.*\\\$baz %t
-
-declare void @foo()
-
-define private void @foo() {
-        ret void
-}
-
- at baz = private global i32 4;
-
-define i32 @bar() {
-        call void @foo()
-	%1 = load i32* @baz, align 4
-        ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/PIC16/2009-07-17-PR4566-pic16.ll b/libclamav/c++/llvm/test/CodeGen/PIC16/2009-07-17-PR4566-pic16.ll
deleted file mode 100644
index aa2c51e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/PIC16/2009-07-17-PR4566-pic16.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | llc -march=pic16 | grep {movf \\+ at i + 0, \\+W}
-
-target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8-f32:32:32"
-target triple = "pic16-"
- at i = global i32 -10, align 1		; <i32*> [#uses=1]
- at j = global i32 -20, align 1		; <i32*> [#uses=1]
- at pc = global i8* inttoptr (i64 160 to i8*), align 1		; <i8**> [#uses=3]
- at main.auto.k = internal global i32 0		; <i32*> [#uses=2]
-
-define void @main() nounwind {
-entry:
-	%tmp = load i32* @i		; <i32> [#uses=1]
-	%tmp1 = load i32* @j		; <i32> [#uses=1]
-	%add = add i32 %tmp, %tmp1		; <i32> [#uses=1]
-	store i32 %add, i32* @main.auto.k
-	%tmp2 = load i32* @main.auto.k		; <i32> [#uses=1]
-	%add3 = add i32 %tmp2, 32		; <i32> [#uses=1]
-	%conv = trunc i32 %add3 to i8		; <i8> [#uses=1]
-	%tmp4 = load i8** @pc		; <i8*> [#uses=1]
-	store i8 %conv, i8* %tmp4
-	%tmp5 = load i8** @pc		; <i8*> [#uses=1]
-	%tmp6 = load i8* %tmp5		; <i8> [#uses=1]
-	%conv7 = sext i8 %tmp6 to i16		; <i16> [#uses=1]
-	%sub = sub i16 %conv7, 1		; <i16> [#uses=1]
-	%conv8 = trunc i16 %sub to i8		; <i8> [#uses=1]
-	%tmp9 = load i8** @pc		; <i8*> [#uses=1]
-	store i8 %conv8, i8* %tmp9
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/PIC16/dg.exp b/libclamav/c++/llvm/test/CodeGen/PIC16/dg.exp
deleted file mode 100644
index b08b985..0000000
--- a/libclamav/c++/llvm/test/CodeGen/PIC16/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target PIC16] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/PIC16/global-in-user-section.ll b/libclamav/c++/llvm/test/CodeGen/PIC16/global-in-user-section.ll
deleted file mode 100644
index 02fd068..0000000
--- a/libclamav/c++/llvm/test/CodeGen/PIC16/global-in-user-section.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llc -march=pic16 | FileCheck %s
-
- at G1 = common global i16 0, section "usersection", align 1 
-; CHECK: usersection UDATA
-; CHECK: @G1 RES 2 
diff --git a/libclamav/c++/llvm/test/CodeGen/PIC16/globals.ll b/libclamav/c++/llvm/test/CodeGen/PIC16/globals.ll
deleted file mode 100644
index 75a9d17..0000000
--- a/libclamav/c++/llvm/test/CodeGen/PIC16/globals.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=pic16 | FileCheck %s
-
- at G1 = global i32 4712, section "Address=412"
-; CHECK: @G1.412.idata.0.# IDATA 412
-; CHECK: @G1 dl 4712
-
- at G2 = global i32 0, section "Address=412"
-; CHECK: @G2.412.udata.0.# UDATA 412
-; CHECK: @G2 RES 4
-
- at G3 = addrspace(1) constant i32 4712, section "Address=412"
-; CHECK: @G3.412.romdata.1.# ROMDATA 412
-; CHECK: @G3 rom_dl 4712
-
-
diff --git a/libclamav/c++/llvm/test/CodeGen/PIC16/sext.ll b/libclamav/c++/llvm/test/CodeGen/PIC16/sext.ll
deleted file mode 100644
index b26b62b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/PIC16/sext.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | llc -march=pic16
-
- at main.auto.c = internal global i8 0		; <i8*> [#uses=1]
-
-define i16 @main() nounwind {
-entry:
-	%tmp = load i8* @main.auto.c		; <i8> [#uses=1]
-	%conv = sext i8 %tmp to i16		; <i16> [#uses=1]
-	ret i16 %conv
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll
deleted file mode 100644
index 76f140c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=sparc
-
-define void @execute_list() {
-        %tmp.33.i = fdiv float 0.000000e+00, 0.000000e+00               ; <float> [#uses=1]
-        %tmp.37.i = fmul float 0.000000e+00, %tmp.33.i           ; <float> [#uses=1]
-        %tmp.42.i = fadd float %tmp.37.i, 0.000000e+00           ; <float> [#uses=1]
-        call void @gl_EvalCoord1f( float %tmp.42.i )
-        ret void
-}
-
-declare void @gl_EvalCoord1f(float)
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/2007-05-09-JumpTables.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/2007-05-09-JumpTables.ll
deleted file mode 100644
index a014ace..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/2007-05-09-JumpTables.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | llc -march=sparc
-
-; We cannot emit jump tables on Sparc, but we should correctly handle this case.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-
-define i32 @foo(i32 %f) {
-entry:
-	switch i32 %f, label %bb14 [
-		 i32 0, label %UnifiedReturnBlock
-		 i32 1, label %bb4
-		 i32 2, label %bb7
-		 i32 3, label %bb10
-	]
-
-bb4:		; preds = %entry
-	ret i32 2
-
-bb7:		; preds = %entry
-	ret i32 5
-
-bb10:		; preds = %entry
-	ret i32 9
-
-bb14:		; preds = %entry
-	ret i32 0
-
-UnifiedReturnBlock:		; preds = %entry
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll
deleted file mode 100644
index d1ca44d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=sparc
-; PR1540
-
-declare float @sinf(float)
-declare double @sin(double)
-define double @test_sin(float %F) {
-        %G = call float @sinf( float %F )               ; <float> [#uses=1]
-        %H = fpext float %G to double           ; <double> [#uses=1]
-        %I = call double @sin( double %H )              ; <double> [#uses=1]
-        ret double %I
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll
deleted file mode 100644
index f9f4c21..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=sparc
-; PR 1557
-
-target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f128:128:128"
- at llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @set_fast_math } ]		; <[1 x { i32, void ()* }]*> [#uses=0]
-
-define internal void @set_fast_math() nounwind {
-entry:
-	%fsr = alloca i32		; <i32*> [#uses=4]
-	call void asm "st %fsr, $0", "=*m"(i32* %fsr) nounwind
-	%0 = load i32* %fsr, align 4		; <i32> [#uses=1]
-	%1 = or i32 %0, 4194304		; <i32> [#uses=1]
-	store i32 %1, i32* %fsr, align 4
-	call void asm sideeffect "ld $0, %fsr", "*m"(i32* %fsr) nounwind
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmRegOperand.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmRegOperand.ll
deleted file mode 100644
index aaa7bde..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmRegOperand.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | llc -march=sparc
-; PR 1557
-
-target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f128:128:128"
-module asm "\09.section\09\22.ctors\22,#alloc,#write"
-module asm "\09.section\09\22.dtors\22,#alloc,#write"
-
-define void @frame_dummy() nounwind {
-entry:
-	%asmtmp = tail call void (i8*)* (void (i8*)*)* asm "", "=r,0"(void (i8*)* @_Jv_RegisterClasses) nounwind		; <void (i8*)*> [#uses=0]
-	unreachable
-}
-
-declare void @_Jv_RegisterClasses(i8*)
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/basictest.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/basictest.ll
deleted file mode 100644
index 5c3e075..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/basictest.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=sparc
-
-define i32 @test(i32 %X) {
-	%tmp.1 = add i32 %X, 1
-	ret i32 %tmp.1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/ctpop.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/ctpop.ll
deleted file mode 100644
index d603baa..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/ctpop.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | \
-; RUN:   llc -march=sparc -mattr=v9 -enable-sparc-v9-insts
-; RUN: llvm-as < %s | llc -march=sparc -mattr=-v9 | \
-; RUN:   not grep popc
-; RUN: llvm-as < %s | \
-; RUN:   llc -march=sparc -mattr=v9 -enable-sparc-v9-insts | grep popc
-
-declare i32 @llvm.ctpop.i32(i32)
-
-define i32 @test(i32 %X) {
-        %Y = call i32 @llvm.ctpop.i32( i32 %X )         ; <i32> [#uses=1]
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/dg.exp b/libclamav/c++/llvm/test/CodeGen/SPARC/dg.exp
deleted file mode 100644
index 6c0a997..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target Sparc] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/private.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/private.ll
deleted file mode 100644
index a9850b7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/private.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; Test to make sure that the 'private' is used correctly.
-;
-; RUN: llvm-as < %s | llc  -march=sparc > %t
-; RUN: grep .foo: %t
-; RUN: grep call.*\.foo %t
-; RUN: grep .baz: %t
-; RUN: grep ld.*\.baz %t
-
-declare void @foo()
-
-define private void @foo() {
-        ret void
-}
-
- at baz = private global i32 4;
-
-define i32 @bar() {
-        call void @foo()
-	%1 = load i32* @baz, align 4
-        ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SPARC/xnor.ll b/libclamav/c++/llvm/test/CodeGen/SPARC/xnor.ll
deleted file mode 100644
index 9d8994c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SPARC/xnor.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | llc -march=sparc | \
-; RUN:   grep xnor | count 2
-
-define i32 @test1(i32 %X, i32 %Y) {
-        %A = xor i32 %X, %Y             ; <i32> [#uses=1]
-        %B = xor i32 %A, -1             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test2(i32 %X, i32 %Y) {
-        %A = xor i32 %X, -1             ; <i32> [#uses=1]
-        %B = xor i32 %A, %Y             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/00-RetVoid.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/00-RetVoid.ll
deleted file mode 100644
index 3b0bb5a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/00-RetVoid.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-
-define void @foo() {
-entry:
-    ret void
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/01-RetArg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/01-RetArg.ll
deleted file mode 100644
index 9377cc1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/01-RetArg.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    ret i64 %b
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/01-RetImm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/01-RetImm.ll
deleted file mode 100644
index 39c4c09..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/01-RetImm.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep lghi  | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llill | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llilh | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llihl | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llihh | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfi  | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llilf | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llihf | count 1
-
-
-define i64 @foo1() {
-entry:
-    ret i64 1
-}
-
-define i64 @foo2() {
-entry:
-    ret i64 65535 
-}
-
-define i64 @foo3() {
-entry:
-    ret i64 131072
-}
-
-define i64 @foo4() {
-entry:
-    ret i64 8589934592
-}
-
-define i64 @foo5() {
-entry:
-    ret i64 562949953421312
-}
-
-define i64 @foo6() {
-entry:
-    ret i64 65537
-}
-
-define i64 @foo7() {
-entry:
-    ret i64 4294967295
-}
-
-define i64 @foo8() {
-entry:
-    ret i64 281483566645248
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-MemArith.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-MemArith.ll
deleted file mode 100644
index 390c6e3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-MemArith.ll
+++ /dev/null
@@ -1,133 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | FileCheck %s
-
-define i32 @foo1(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo1:
-; CHECK:  a %r2, 4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = add i32 %a, %c
-    ret i32 %d
-}
-
-define i32 @foo2(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo2:
-; CHECK:  ay %r2, -4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, -1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = add i32 %a, %c
-    ret i32 %d
-}
-
-define i64 @foo3(i64 %a, i64 *%b, i64 %idx) signext {
-; CHECK: foo3:
-; CHECK:  ag %r2, 8(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i64* %b, i64 %idx2          ; <i64*> [#uses=1]
-    %c = load i64* %ptr
-    %d = add i64 %a, %c
-    ret i64 %d
-}
-
-define i32 @foo4(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo4:
-; CHECK:  n %r2, 4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = and i32 %a, %c
-    ret i32 %d
-}
-
-define i32 @foo5(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo5:
-; CHECK:  ny %r2, -4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, -1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = and i32 %a, %c
-    ret i32 %d
-}
-
-define i64 @foo6(i64 %a, i64 *%b, i64 %idx) signext {
-; CHECK: foo6:
-; CHECK:  ng %r2, 8(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i64* %b, i64 %idx2          ; <i64*> [#uses=1]
-    %c = load i64* %ptr
-    %d = and i64 %a, %c
-    ret i64 %d
-}
-
-define i32 @foo7(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo7:
-; CHECK:  o %r2, 4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = or i32 %a, %c
-    ret i32 %d
-}
-
-define i32 @foo8(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo8:
-; CHECK:  oy %r2, -4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, -1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = or i32 %a, %c
-    ret i32 %d
-}
-
-define i64 @foo9(i64 %a, i64 *%b, i64 %idx) signext {
-; CHECK: foo9:
-; CHECK:  og %r2, 8(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i64* %b, i64 %idx2          ; <i64*> [#uses=1]
-    %c = load i64* %ptr
-    %d = or i64 %a, %c
-    ret i64 %d
-}
-
-define i32 @foo10(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo10:
-; CHECK:  x %r2, 4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = xor i32 %a, %c
-    ret i32 %d
-}
-
-define i32 @foo11(i32 %a, i32 *%b, i64 %idx) signext {
-; CHECK: foo11:
-; CHECK:  xy %r2, -4(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, -1         ; <i64> [#uses=1]
-    %ptr = getelementptr i32* %b, i64 %idx2          ; <i32*> [#uses=1]
-    %c = load i32* %ptr
-    %d = xor i32 %a, %c
-    ret i32 %d
-}
-
-define i64 @foo12(i64 %a, i64 *%b, i64 %idx) signext {
-; CHECK: foo12:
-; CHECK:  xg %r2, 8(%r1,%r3)
-entry:
-    %idx2 = add i64 %idx, 1         ; <i64> [#uses=1]
-    %ptr = getelementptr i64* %b, i64 %idx2          ; <i64*> [#uses=1]
-    %c = load i64* %ptr
-    %d = xor i64 %a, %c
-    ret i64 %d
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAdd.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAdd.ll
deleted file mode 100644
index 80a9c88..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAdd.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = add i64 %a, %b
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAddImm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAddImm.ll
deleted file mode 100644
index c6e53ae..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAddImm.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = add i64 %a, 1
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAnd.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAnd.ll
deleted file mode 100644
index b6ac5a1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAnd.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = and i64 %a, %b
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAndImm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAndImm.ll
deleted file mode 100644
index fb56f2f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAndImm.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep ngr   | count 4
-; RUN: llvm-as < %s | llc -march=systemz | grep llilh | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llihl | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llihh | count 1
-
-define i64 @foo1(i64 %a, i64 %b) {
-entry:
-    %c = and i64 %a, 1
-    ret i64 %c
-}
-
-define i64 @foo2(i64 %a, i64 %b) {
-entry:
-    %c = and i64 %a, 131072
-    ret i64 %c
-}
-
-define i64 @foo3(i64 %a, i64 %b) {
-entry:
-    %c = and i64 %a, 8589934592
-    ret i64 %c
-}
-
-define i64 @foo4(i64 %a, i64 %b) {
-entry:
-    %c = and i64 %a, 562949953421312
-    ret i64 %c
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetNeg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetNeg.ll
deleted file mode 100644
index 0bfbc7f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetNeg.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep lcgr | count 1
-
-define i64 @foo(i64 %a) {
-entry:
-    %c = sub i64 0, %a
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetOr.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetOr.ll
deleted file mode 100644
index 2b1791b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetOr.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = or i64 %a, %b
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetOrImm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetOrImm.ll
deleted file mode 100644
index 881654a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetOrImm.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep oill | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep oilh | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep oihl | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep oihh | count 1
-
-define i64 @foo1(i64 %a, i64 %b) {
-entry:
-    %c = or i64 %a, 1
-    ret i64 %c
-}
-
-define i64 @foo2(i64 %a, i64 %b) {
-entry:
-    %c = or i64 %a, 131072
-    ret i64 %c
-}
-
-define i64 @foo3(i64 %a, i64 %b) {
-entry:
-    %c = or i64 %a, 8589934592
-    ret i64 %c
-}
-
-define i64 @foo4(i64 %a, i64 %b) {
-entry:
-    %c = or i64 %a, 562949953421312
-    ret i64 %c
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSub.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSub.ll
deleted file mode 100644
index eb3bb69..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSub.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = sub i64 %a, %b
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSubImm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSubImm.ll
deleted file mode 100644
index 81d50d4..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSubImm.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = sub i64 %a, 1
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXor.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXor.ll
deleted file mode 100644
index 9287e77..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXor.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = xor i64 %a, %b
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXorImm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXorImm.ll
deleted file mode 100644
index 5addc71..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXorImm.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz
-define i64 @foo(i64 %a, i64 %b) {
-entry:
-    %c = xor i64 %a, 1
-    ret i64 %c
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAddImmSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAddImmSubreg.ll
deleted file mode 100644
index d6a3457..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAddImmSubreg.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep ahi   | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep afi   | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 4
-; RUN: llvm-as < %s | llc -march=systemz | grep llgfr | count 2
-
-
-define i32 @foo1(i32 %a, i32 %b) {
-entry:
-    %c = add i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) {
-entry:
-    %c = add i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo3(i32 %a, i32 %b) zeroext {
-entry:
-    %c = add i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo4(i32 %a, i32 %b) zeroext {
-entry:
-    %c = add i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo5(i32 %a, i32 %b) signext {
-entry:
-    %c = add i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo6(i32 %a, i32 %b) signext {
-entry:
-    %c = add i32 %a, 131072
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAddSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAddSubreg.ll
deleted file mode 100644
index ba3f7c5..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAddSubreg.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep ar    | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 2
-; RUN: llvm-as < %s | llc -march=systemz | grep llgfr | count 1
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
-    %c = add i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo1(i32 %a, i32 %b) zeroext {
-entry:
-    %c = add i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) signext {
-entry:
-    %c = add i32 %a, %b
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAndImmSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAndImmSubreg.ll
deleted file mode 100644
index cb9af58..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAndImmSubreg.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep ngr  | count 6
-
-define i32 @foo1(i32 %a, i32 %b) {
-entry:
-    %c = and i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) {
-entry:
-    %c = and i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo3(i32 %a, i32 %b) zeroext {
-entry:
-    %c = and i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo4(i32 %a, i32 %b) signext {
-entry:
-    %c = and i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo5(i32 %a, i32 %b) zeroext {
-entry:
-    %c = and i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo6(i32 %a, i32 %b) signext {
-entry:
-    %c = and i32 %a, 131072
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAndSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAndSubreg.ll
deleted file mode 100644
index 7fbc589..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetAndSubreg.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep ngr | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep nihf | count 1
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
-    %c = and i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo1(i32 %a, i32 %b) zeroext {
-entry:
-    %c = and i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) signext {
-entry:
-    %c = and i32 %a, %b
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetArgSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetArgSubreg.ll
deleted file mode 100644
index a4cc955..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetArgSubreg.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep lgr   | count 2
-; RUN: llvm-as < %s | llc -march=systemz | grep nihf  | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 1
-
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
-    ret i32 %b
-}
-
-define i32 @foo1(i32 %a, i32 %b) zeroext {
-entry:
-    ret i32 %b
-}
-
-define i32 @foo2(i32 %a, i32 %b) signext {
-entry:
-    ret i32 %b
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetImmSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetImmSubreg.ll
deleted file mode 100644
index 88d66d0..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetImmSubreg.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep lghi  | count 2
-; RUN: llvm-as < %s | llc -march=systemz | grep llill | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llilh | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfi  | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llilf | count 2
-
-
-define i32 @foo1() {
-entry:
-    ret i32 1
-}
-
-define i32 @foo2() {
-entry:
-    ret i32 65535 
-}
-
-define i32 @foo3() {
-entry:
-    ret i32 131072
-}
-
-define i32 @foo4() {
-entry:
-    ret i32 65537
-}
-
-define i32 @foo5() {
-entry:
-    ret i32 4294967295
-}
-
-define i32 @foo6() zeroext {
-entry:
-    ret i32 4294967295
-}
-
-define i32 @foo7() signext {
-entry:
-    ret i32 4294967295
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetNegImmSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetNegImmSubreg.ll
deleted file mode 100644
index fa83803..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetNegImmSubreg.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep lcr | count 1
-
-define i32 @foo(i32 %a) {
-entry:
-    %c = sub i32 0, %a
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetOrImmSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetOrImmSubreg.ll
deleted file mode 100644
index 75ba28e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetOrImmSubreg.ll
+++ /dev/null
@@ -1,60 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep oill  | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep oilh  | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep oilf  | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep llgfr | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 6
-
-define i32 @foo1(i32 %a, i32 %b) {
-entry:
-    %c = or i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) {
-entry:
-    %c = or i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo7(i32 %a, i32 %b) {
-entry:
-    %c = or i32 %a, 123456
-    ret i32 %c
-}
-
-define i32 @foo3(i32 %a, i32 %b) zeroext {
-entry:
-    %c = or i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo8(i32 %a, i32 %b) zeroext {
-entry:
-    %c = or i32 %a, 123456
-    ret i32 %c
-}
-
-define i32 @foo4(i32 %a, i32 %b) signext {
-entry:
-    %c = or i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo5(i32 %a, i32 %b) zeroext {
-entry:
-    %c = or i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo6(i32 %a, i32 %b) signext {
-entry:
-    %c = or i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo9(i32 %a, i32 %b) signext {
-entry:
-    %c = or i32 %a, 123456
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetOrSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetOrSubreg.ll
deleted file mode 100644
index 7491c08..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetOrSubreg.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep ogr   | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep nihf  | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 1
-
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
-    %c = or i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo1(i32 %a, i32 %b) zeroext {
-entry:
-    %c = or i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) signext {
-entry:
-    %c = or i32 %a, %b
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetSubImmSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetSubImmSubreg.ll
deleted file mode 100644
index f241562..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetSubImmSubreg.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep ahi   | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep afi   | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 4
-; RUN: llvm-as < %s | llc -march=systemz | grep llgfr | count 2
-
-
-define i32 @foo1(i32 %a, i32 %b) {
-entry:
-    %c = sub i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) {
-entry:
-    %c = sub i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo3(i32 %a, i32 %b) zeroext {
-entry:
-    %c = sub i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo4(i32 %a, i32 %b) signext {
-entry:
-    %c = sub i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo5(i32 %a, i32 %b) zeroext {
-entry:
-    %c = sub i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo6(i32 %a, i32 %b) signext {
-entry:
-    %c = sub i32 %a, 131072
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetSubSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetSubSubreg.ll
deleted file mode 100644
index 591b37d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetSubSubreg.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep sr    | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep llgfr | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 2
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
-    %c = sub i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo1(i32 %a, i32 %b) zeroext {
-entry:
-    %c = sub i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) signext {
-entry:
-    %c = sub i32 %a, %b
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetXorImmSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetXorImmSubreg.ll
deleted file mode 100644
index dc60334..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetXorImmSubreg.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep xilf  | count 9
-; RUN: llvm-as < %s | llc -march=systemz | grep llgfr | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 6
-
-define i32 @foo1(i32 %a, i32 %b) {
-entry:
-    %c = xor i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) {
-entry:
-    %c = xor i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo7(i32 %a, i32 %b) {
-entry:
-    %c = xor i32 %a, 123456
-    ret i32 %c
-}
-
-define i32 @foo3(i32 %a, i32 %b) zeroext {
-entry:
-    %c = xor i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo8(i32 %a, i32 %b) zeroext {
-entry:
-    %c = xor i32 %a, 123456
-    ret i32 %c
-}
-
-define i32 @foo4(i32 %a, i32 %b) signext {
-entry:
-    %c = xor i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo5(i32 %a, i32 %b) zeroext {
-entry:
-    %c = xor i32 %a, 1
-    ret i32 %c
-}
-
-define i32 @foo6(i32 %a, i32 %b) signext {
-entry:
-    %c = xor i32 %a, 131072
-    ret i32 %c
-}
-
-define i32 @foo9(i32 %a, i32 %b) signext {
-entry:
-    %c = xor i32 %a, 123456
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetXorSubreg.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetXorSubreg.ll
deleted file mode 100644
index a0c313b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/03-RetXorSubreg.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep xgr   | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep nihf  | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep lgfr  | count 1
-
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
-    %c = xor i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo1(i32 %a, i32 %b) zeroext {
-entry:
-    %c = xor i32 %a, %b
-    ret i32 %c
-}
-
-define i32 @foo2(i32 %a, i32 %b) signext {
-entry:
-    %c = xor i32 %a, %b
-    ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/04-RetShifts.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/04-RetShifts.ll
deleted file mode 100644
index 83cf551..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/04-RetShifts.ll
+++ /dev/null
@@ -1,121 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep sra   | count 6
-; RUN: llvm-as < %s | llc -march=systemz | grep srag  | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep srl   | count 6
-; RUN: llvm-as < %s | llc -march=systemz | grep srlg  | count 3
-; RUN: llvm-as < %s | llc -march=systemz | grep sll   | count 6
-; RUN: llvm-as < %s | llc -march=systemz | grep sllg  | count 3
-
-define signext i32 @foo1(i32 %a, i32 %idx) nounwind readnone {
-entry:
-	%add = add i32 %idx, 1		; <i32> [#uses=1]
-	%shr = ashr i32 %a, %add		; <i32> [#uses=1]
-	ret i32 %shr
-}
-
-define signext i32 @foo2(i32 %a, i32 %idx) nounwind readnone {
-entry:
-	%add = add i32 %idx, 1		; <i32> [#uses=1]
-	%shr = shl i32 %a, %add		; <i32> [#uses=1]
-	ret i32 %shr
-}
-
-define signext i32 @foo3(i32 %a, i32 %idx) nounwind readnone {
-entry:
-	%add = add i32 %idx, 1		; <i32> [#uses=1]
-	%shr = lshr i32 %a, %add		; <i32> [#uses=1]
-	ret i32 %shr
-}
-
-define signext i64 @foo4(i64 %a, i64 %idx) nounwind readnone {
-entry:
-	%add = add i64 %idx, 1		; <i64> [#uses=1]
-	%shr = ashr i64 %a, %add		; <i64> [#uses=1]
-	ret i64 %shr
-}
-
-define signext i64 @foo5(i64 %a, i64 %idx) nounwind readnone {
-entry:
-	%add = add i64 %idx, 1		; <i64> [#uses=1]
-	%shr = shl i64 %a, %add		; <i64> [#uses=1]
-	ret i64 %shr
-}
-
-define signext i64 @foo6(i64 %a, i64 %idx) nounwind readnone {
-entry:
-	%add = add i64 %idx, 1		; <i64> [#uses=1]
-	%shr = lshr i64 %a, %add		; <i64> [#uses=1]
-	ret i64 %shr
-}
-
-define signext i32 @foo7(i32 %a, i32 %idx) nounwind readnone {
-entry:
-        %shr = ashr i32 %a, 1
-        ret i32 %shr
-}
-
-define signext i32 @foo8(i32 %a, i32 %idx) nounwind readnone {
-entry:
-        %shr = shl i32 %a, 1
-        ret i32 %shr
-}
-
-define signext i32 @foo9(i32 %a, i32 %idx) nounwind readnone {
-entry:
-        %shr = lshr i32 %a, 1
-        ret i32 %shr
-}
-
-define signext i32 @foo10(i32 %a, i32 %idx) nounwind readnone {
-entry:
-        %shr = ashr i32 %a, %idx
-        ret i32 %shr
-}
-
-define signext i32 @foo11(i32 %a, i32 %idx) nounwind readnone {
-entry:
-        %shr = shl i32 %a, %idx
-        ret i32 %shr
-}
-
-define signext i32 @foo12(i32 %a, i32 %idx) nounwind readnone {
-entry:
-        %shr = lshr i32 %a, %idx
-        ret i32 %shr
-}
-
-define signext i64 @foo13(i64 %a, i64 %idx) nounwind readnone {
-entry:
-        %shr = ashr i64 %a, 1
-        ret i64 %shr
-}
-
-define signext i64 @foo14(i64 %a, i64 %idx) nounwind readnone {
-entry:
-        %shr = shl i64 %a, 1
-        ret i64 %shr
-}
-
-define signext i64 @foo15(i64 %a, i64 %idx) nounwind readnone {
-entry:
-        %shr = lshr i64 %a, 1
-        ret i64 %shr
-}
-
-define signext i64 @foo16(i64 %a, i64 %idx) nounwind readnone {
-entry:
-        %shr = ashr i64 %a, %idx
-        ret i64 %shr
-}
-
-define signext i64 @foo17(i64 %a, i64 %idx) nounwind readnone {
-entry:
-        %shr = shl i64 %a, %idx
-        ret i64 %shr
-}
-
-define signext i64 @foo18(i64 %a, i64 %idx) nounwind readnone {
-entry:
-        %shr = lshr i64 %a, %idx
-        ret i64 %shr
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-LoadAddr.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/05-LoadAddr.ll
deleted file mode 100644
index bbf381c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-LoadAddr.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc | grep lay | count 1
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i64* @foo(i64* %a, i64 %idx) nounwind readnone {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum		; <i64*> [#uses=1]
-	ret i64* %add.ptr2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemImmStores.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemImmStores.ll
deleted file mode 100644
index 1a1d2f0..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemImmStores.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; RUN: llvm-as < %s | llc -mattr=+z10 | grep mvghi | count 1
-; RUN: llvm-as < %s | llc -mattr=+z10 | grep mvhi  | count 1
-; RUN: llvm-as < %s | llc -mattr=+z10 | grep mvhhi | count 1
-; RUN: llvm-as < %s | llc | grep mvi   | count 2
-; RUN: llvm-as < %s | llc | grep mviy  | count 1
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define void @foo1(i64* nocapture %a, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i64* %a, i64 1		; <i64*> [#uses=1]
-	store i64 1, i64* %add.ptr
-	ret void
-}
-
-define void @foo2(i32* nocapture %a, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i32* %a, i64 1		; <i32*> [#uses=1]
-	store i32 2, i32* %add.ptr
-	ret void
-}
-
-define void @foo3(i16* nocapture %a, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i16* %a, i64 1		; <i16*> [#uses=1]
-	store i16 3, i16* %add.ptr
-	ret void
-}
-
-define void @foo4(i8* nocapture %a, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i8* %a, i64 1		; <i8*> [#uses=1]
-	store i8 4, i8* %add.ptr
-	ret void
-}
-
-define void @foo5(i8* nocapture %a, i64 %idx) nounwind {
-entry:
-        %add.ptr = getelementptr i8* %a, i64 -1         ; <i8*> [#uses=1]
-        store i8 4, i8* %add.ptr
-        ret void
-}
-
-define void @foo6(i16* nocapture %a, i64 %idx) nounwind {
-entry:
-        %add.ptr = getelementptr i16* %a, i64 -1         ; <i16*> [#uses=1]
-        store i16 3, i16* %add.ptr
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores.ll
deleted file mode 100644
index 5e8fcd6..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; RUN: llvm-as < %s | llc | grep ly     | count 2
-; RUN: llvm-as < %s | llc | grep sty    | count 2
-; RUN: llvm-as < %s | llc | grep {l	%}  | count 2
-; RUN: llvm-as < %s | llc | grep {st	%} | count 2
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define void @foo1(i32* nocapture %foo, i32* nocapture %bar) nounwind {
-entry:
-	%tmp1 = load i32* %foo		; <i32> [#uses=1]
-	store i32 %tmp1, i32* %bar
-	ret void
-}
-
-define void @foo2(i32* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i32* %foo, i64 1		; <i32*> [#uses=1]
-	%tmp1 = load i32* %add.ptr		; <i32> [#uses=1]
-	%add.ptr3.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum		; <i32*> [#uses=1]
-	store i32 %tmp1, i32* %add.ptr5
-	ret void
-}
-
-define void @foo3(i32* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%sub.ptr = getelementptr i32* %foo, i64 -1		; <i32*> [#uses=1]
-	%tmp1 = load i32* %sub.ptr		; <i32> [#uses=1]
-	%sub.ptr3.sum = add i64 %idx, -1		; <i64> [#uses=1]
-	%add.ptr = getelementptr i32* %bar, i64 %sub.ptr3.sum		; <i32*> [#uses=1]
-	store i32 %tmp1, i32* %add.ptr
-	ret void
-}
-
-define void @foo4(i32* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i32* %foo, i64 8192		; <i32*> [#uses=1]
-	%tmp1 = load i32* %add.ptr		; <i32> [#uses=1]
-	%add.ptr3.sum = add i64 %idx, 8192		; <i64> [#uses=1]
-	%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum		; <i32*> [#uses=1]
-	store i32 %tmp1, i32* %add.ptr5
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores16.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores16.ll
deleted file mode 100644
index 7f83b1a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores16.ll
+++ /dev/null
@@ -1,85 +0,0 @@
-; RUN: llvm-as < %s | llc | grep {sthy.%} | count 2
-; RUN: llvm-as < %s | llc | grep {lhy.%}  | count 2
-; RUN: llvm-as < %s | llc | grep {lh.%}   | count 6
-; RUN: llvm-as < %s | llc | grep {sth.%}  | count 2
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define void @foo1(i16* nocapture %foo, i16* nocapture %bar) nounwind {
-entry:
-	%tmp1 = load i16* %foo		; <i16> [#uses=1]
-	store i16 %tmp1, i16* %bar
-	ret void
-}
-
-define void @foo2(i16* nocapture %foo, i16* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i16* %foo, i64 1		; <i16*> [#uses=1]
-	%tmp1 = load i16* %add.ptr		; <i16> [#uses=1]
-	%add.ptr3.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr5 = getelementptr i16* %bar, i64 %add.ptr3.sum		; <i16*> [#uses=1]
-	store i16 %tmp1, i16* %add.ptr5
-	ret void
-}
-
-define void @foo3(i16* nocapture %foo, i16* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%sub.ptr = getelementptr i16* %foo, i64 -1		; <i16*> [#uses=1]
-	%tmp1 = load i16* %sub.ptr		; <i16> [#uses=1]
-	%sub.ptr3.sum = add i64 %idx, -1		; <i64> [#uses=1]
-	%add.ptr = getelementptr i16* %bar, i64 %sub.ptr3.sum		; <i16*> [#uses=1]
-	store i16 %tmp1, i16* %add.ptr
-	ret void
-}
-
-define void @foo4(i16* nocapture %foo, i16* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i16* %foo, i64 8192		; <i16*> [#uses=1]
-	%tmp1 = load i16* %add.ptr		; <i16> [#uses=1]
-	%add.ptr3.sum = add i64 %idx, 8192		; <i64> [#uses=1]
-	%add.ptr5 = getelementptr i16* %bar, i64 %add.ptr3.sum		; <i16*> [#uses=1]
-	store i16 %tmp1, i16* %add.ptr5
-	ret void
-}
-
-define void @foo5(i16* nocapture %foo, i32* nocapture %bar) nounwind {
-entry:
-	%tmp1 = load i16* %foo		; <i16> [#uses=1]
-	%conv = sext i16 %tmp1 to i32		; <i32> [#uses=1]
-	store i32 %conv, i32* %bar
-	ret void
-}
-
-define void @foo6(i16* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i16* %foo, i64 1		; <i16*> [#uses=1]
-	%tmp1 = load i16* %add.ptr		; <i16> [#uses=1]
-	%conv = sext i16 %tmp1 to i32		; <i32> [#uses=1]
-	%add.ptr3.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum		; <i32*> [#uses=1]
-	store i32 %conv, i32* %add.ptr5
-	ret void
-}
-
-define void @foo7(i16* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%sub.ptr = getelementptr i16* %foo, i64 -1		; <i16*> [#uses=1]
-	%tmp1 = load i16* %sub.ptr		; <i16> [#uses=1]
-	%conv = sext i16 %tmp1 to i32		; <i32> [#uses=1]
-	%sub.ptr3.sum = add i64 %idx, -1		; <i64> [#uses=1]
-	%add.ptr = getelementptr i32* %bar, i64 %sub.ptr3.sum		; <i32*> [#uses=1]
-	store i32 %conv, i32* %add.ptr
-	ret void
-}
-
-define void @foo8(i16* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
-entry:
-	%add.ptr = getelementptr i16* %foo, i64 8192		; <i16*> [#uses=1]
-	%tmp1 = load i16* %add.ptr		; <i16> [#uses=1]
-	%conv = sext i16 %tmp1 to i32		; <i32> [#uses=1]
-	%add.ptr3.sum = add i64 %idx, 8192		; <i64> [#uses=1]
-	%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum		; <i32*> [#uses=1]
-	store i32 %conv, i32* %add.ptr5
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemRegLoads.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemRegLoads.ll
deleted file mode 100644
index 0dc5920..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemRegLoads.ll
+++ /dev/null
@@ -1,75 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | not grep aghi
-; RUN: llvm-as < %s | llc -march=systemz | grep llgf | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llgh | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep llgc | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep lgf  | count 2
-; RUN: llvm-as < %s | llc -march=systemz | grep lgh  | count 2
-; RUN: llvm-as < %s | llc -march=systemz | grep lgb  | count 1
-
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define zeroext i64 @foo1(i64* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum		; <i64*> [#uses=1]
-	%tmp3 = load i64* %add.ptr2		; <i64> [#uses=1]
-	ret i64 %tmp3
-}
-
-define zeroext i32 @foo2(i32* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum		; <i32*> [#uses=1]
-	%tmp3 = load i32* %add.ptr2		; <i32> [#uses=1]
-	ret i32 %tmp3
-}
-
-define zeroext i16 @foo3(i16* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum		; <i16*> [#uses=1]
-	%tmp3 = load i16* %add.ptr2		; <i16> [#uses=1]
-	ret i16 %tmp3
-}
-
-define zeroext i8 @foo4(i8* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum		; <i8*> [#uses=1]
-	%tmp3 = load i8* %add.ptr2		; <i8> [#uses=1]
-	ret i8 %tmp3
-}
-
-define signext i64 @foo5(i64* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum		; <i64*> [#uses=1]
-	%tmp3 = load i64* %add.ptr2		; <i64> [#uses=1]
-	ret i64 %tmp3
-}
-
-define signext i32 @foo6(i32* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum		; <i32*> [#uses=1]
-	%tmp3 = load i32* %add.ptr2		; <i32> [#uses=1]
-	ret i32 %tmp3
-}
-
-define signext i16 @foo7(i16* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum		; <i16*> [#uses=1]
-	%tmp3 = load i16* %add.ptr2		; <i16> [#uses=1]
-	ret i16 %tmp3
-}
-
-define signext i8 @foo8(i8* nocapture %a, i64 %idx) nounwind readonly {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum		; <i8*> [#uses=1]
-	%tmp3 = load i8* %add.ptr2		; <i8> [#uses=1]
-	ret i8 %tmp3
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemRegStores.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemRegStores.ll
deleted file mode 100644
index d40a90a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemRegStores.ll
+++ /dev/null
@@ -1,79 +0,0 @@
-; RUN: llvm-as < %s | llc | not grep aghi
-; RUN: llvm-as < %s | llc | FileCheck %s
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define void @foo1(i64* nocapture %a, i64 %idx, i64 %val) nounwind {
-entry:
-
-; CHECK: foo1:
-; CHECK:   stg %r4, 8(%r1,%r2)
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum		; <i64*> [#uses=1]
-	store i64 %val, i64* %add.ptr2
-	ret void
-}
-
-define void @foo2(i32* nocapture %a, i64 %idx, i32 %val) nounwind {
-entry:
-; CHECK: foo2:
-; CHECK:   st %r4, 4(%r1,%r2)
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum		; <i32*> [#uses=1]
-	store i32 %val, i32* %add.ptr2
-	ret void
-}
-
-define void @foo3(i16* nocapture %a, i64 %idx, i16 zeroext %val) nounwind {
-entry:
-; CHECK: foo3:
-; CHECK: sth     %r4, 2(%r1,%r2)
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum		; <i16*> [#uses=1]
-	store i16 %val, i16* %add.ptr2
-	ret void
-}
-
-define void @foo4(i8* nocapture %a, i64 %idx, i8 zeroext %val) nounwind {
-entry:
-; CHECK: foo4:
-; CHECK: stc     %r4, 1(%r3,%r2)
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum		; <i8*> [#uses=1]
-	store i8 %val, i8* %add.ptr2
-	ret void
-}
-
-define void @foo5(i8* nocapture %a, i64 %idx, i64 %val) nounwind {
-entry:
-; CHECK: foo5:
-; CHECK: stc     %r4, 1(%r3,%r2)
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum		; <i8*> [#uses=1]
-	%conv = trunc i64 %val to i8		; <i8> [#uses=1]
-	store i8 %conv, i8* %add.ptr2
-	ret void
-}
-
-define void @foo6(i16* nocapture %a, i64 %idx, i64 %val) nounwind {
-entry:
-; CHECK: foo6:
-; CHECK: sth     %r4, 2(%r1,%r2)
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum		; <i16*> [#uses=1]
-	%conv = trunc i64 %val to i16		; <i16> [#uses=1]
-	store i16 %conv, i16* %add.ptr2
-	ret void
-}
-
-define void @foo7(i32* nocapture %a, i64 %idx, i64 %val) nounwind {
-entry:
-; CHECK: foo7:
-; CHECK: st      %r4, 4(%r1,%r2)
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum		; <i32*> [#uses=1]
-	%conv = trunc i64 %val to i32		; <i32> [#uses=1]
-	store i32 %conv, i32* %add.ptr2
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-CallViaStack.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/06-CallViaStack.ll
deleted file mode 100644
index 03cb164..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-CallViaStack.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | llc | grep 168 | count 1
-; RUN: llvm-as < %s | llc | grep 160 | count 3
-; RUN: llvm-as < %s | llc | grep 328 | count 1
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i64 @foo(i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64 %g) nounwind {
-entry:
-	%a = alloca i64, align 8		; <i64*> [#uses=3]
-	store i64 %g, i64* %a
-	call void @bar(i64* %a) nounwind
-	%tmp1 = load i64* %a		; <i64> [#uses=1]
-	ret i64 %tmp1
-}
-
-declare void @bar(i64*)
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-FrameIdxLoad.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/06-FrameIdxLoad.ll
deleted file mode 100644
index e475bf6..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-FrameIdxLoad.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc | grep 160 | count 1
-; RUN: llvm-as < %s | llc | grep 168 | count 1
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i64 @foo(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64* %g) nounwind readnone {
-entry:
-        ret i64 %f
-}
-
-define i64 @bar(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64* %g) nounwind readnone {
-entry:
-	%conv = ptrtoint i64* %g to i64		; <i64> [#uses=1]
-	ret i64 %conv
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-LocalFrame.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/06-LocalFrame.ll
deleted file mode 100644
index 4f7535d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-LocalFrame.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc | grep 160 | count 1
-; RUN: llvm-as < %s | llc | grep 328 | count 1
-; RUN: llvm-as < %s | llc | grep 168 | count 1
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define noalias i64* @foo(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f) nounwind readnone {
-entry:
-	%g = alloca i64, align 8		; <i64*> [#uses=1]
-	%add.ptr = getelementptr i64* %g, i64 %f		; <i64*> [#uses=1]
-	ret i64* %add.ptr
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-SimpleCall.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/06-SimpleCall.ll
deleted file mode 100644
index e39c0bd..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/06-SimpleCall.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define void @foo() nounwind {
-entry:
-	tail call void @bar() nounwind
-	ret void
-}
-
-declare void @bar()
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrCond.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrCond.ll
deleted file mode 100644
index 5e30e0e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrCond.ll
+++ /dev/null
@@ -1,141 +0,0 @@
-; RUN: llvm-as < %s | llc | grep je  | count 1
-; RUN: llvm-as < %s | llc | grep jne | count 1
-; RUN: llvm-as < %s | llc | grep jhe | count 2
-; RUN: llvm-as < %s | llc | grep jle | count 2
-; RUN: llvm-as < %s | llc | grep jh  | count 4
-; RUN: llvm-as < %s | llc | grep jl  | count 4
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define void @foo(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp ult i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-declare void @bar()
-
-define void @foo1(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp ugt i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo2(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp ugt i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo3(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp ult i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo4(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp eq i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo5(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp eq i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo6(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp slt i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo7(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp sgt i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo8(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp sgt i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo9(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp slt i64 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrCond32.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrCond32.ll
deleted file mode 100644
index 53e32d8..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrCond32.ll
+++ /dev/null
@@ -1,142 +0,0 @@
-; RUN: llvm-as < %s | llc | grep je  | count 1
-; RUN: llvm-as < %s | llc | grep jne | count 1
-; RUN: llvm-as < %s | llc | grep jhe | count 2
-; RUN: llvm-as < %s | llc | grep jle | count 2
-; RUN: llvm-as < %s | llc | grep jh  | count 4
-; RUN: llvm-as < %s | llc | grep jl  | count 4
-
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define void @foo(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp ult i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-declare void @bar()
-
-define void @foo1(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp ugt i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo2(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp ugt i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo3(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp ult i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo4(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp eq i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo5(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp eq i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo6(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp slt i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo7(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp sgt i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo8(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp sgt i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo9(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp slt i32 %a, %b		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrUnCond.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrUnCond.ll
deleted file mode 100644
index 8ca6ed1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrUnCond.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-linux"
-
-define void @foo() noreturn nounwind {
-entry:
-	tail call void @baz() nounwind
-	br label %l1
-
-l1:		; preds = %entry, %l1
-	tail call void @bar() nounwind
-	br label %l1
-}
-
-declare void @bar()
-
-declare void @baz()
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-CmpImm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/07-CmpImm.ll
deleted file mode 100644
index abbfbab..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-CmpImm.ll
+++ /dev/null
@@ -1,137 +0,0 @@
-; RUN: llvm-as < %s | llc | grep cgfi | count 8
-; RUN: llvm-as < %s | llc | grep clgfi | count 2
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define void @foo(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp eq i64 %a, 0		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-declare void @bar()
-
-define void @foo1(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp ugt i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo2(i64 %a, i64 %b) nounwind {
-entry:
-	%cmp = icmp ugt i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo3(i64 %a) nounwind {
-entry:
-	%cmp = icmp eq i64 %a, 0		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo4(i64 %a) nounwind {
-entry:
-	%cmp = icmp eq i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo5(i64 %a) nounwind {
-entry:
-	%cmp = icmp eq i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo6(i64 %a) nounwind {
-entry:
-	%cmp = icmp slt i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo7(i64 %a) nounwind {
-entry:
-	%cmp = icmp sgt i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo8(i64 %a) nounwind {
-entry:
-	%cmp = icmp sgt i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo9(i64 %a) nounwind {
-entry:
-	%cmp = icmp slt i64 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-CmpImm32.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/07-CmpImm32.ll
deleted file mode 100644
index ae51114..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-CmpImm32.ll
+++ /dev/null
@@ -1,139 +0,0 @@
-; RUN: llvm-as < %s | llc | grep jl  | count 3
-; RUN: llvm-as < %s | llc | grep jh  | count 3
-; RUN: llvm-as < %s | llc | grep je  | count 2
-; RUN: llvm-as < %s | llc | grep jne | count 2
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define void @foo(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp eq i32 %a, 0		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-declare void @bar()
-
-define void @foo1(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp ugt i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo2(i32 %a, i32 %b) nounwind {
-entry:
-	%cmp = icmp ugt i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo3(i32 %a) nounwind {
-entry:
-	%cmp = icmp eq i32 %a, 0		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo4(i32 %a) nounwind {
-entry:
-	%cmp = icmp eq i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo5(i32 %a) nounwind {
-entry:
-	%cmp = icmp eq i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo6(i32 %a) nounwind {
-entry:
-	%cmp = icmp slt i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo7(i32 %a) nounwind {
-entry:
-	%cmp = icmp sgt i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then, label %if.end
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo8(i32 %a) nounwind {
-entry:
-	%cmp = icmp sgt i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
-
-define void @foo9(i32 %a) nounwind {
-entry:
-	%cmp = icmp slt i32 %a, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %if.end, label %if.then
-
-if.then:		; preds = %entry
-	tail call void @bar() nounwind
-	ret void
-
-if.end:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-SelectCC.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/07-SelectCC.ll
deleted file mode 100644
index dac9c48..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/07-SelectCC.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc | grep clgr
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i64 @foo(i64 %a, i64 %b) nounwind readnone {
-entry:
-	%cmp = icmp ult i64 %a, %b		; <i1> [#uses=1]
-	%cond = select i1 %cmp, i64 %a, i64 %b		; <i64> [#uses=1]
-	ret i64 %cond
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/08-DivRem.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/08-DivRem.ll
deleted file mode 100644
index 8237d0a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/08-DivRem.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llvm-as < %s | llc | grep dsgr  | count 2
-; RUN: llvm-as < %s | llc | grep dsgfr | count 2
-; RUN: llvm-as < %s | llc | grep dlr   | count 2
-; RUN: llvm-as < %s | llc | grep dlgr  | count 2
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i64 @div(i64 %a, i64 %b) nounwind readnone {
-entry:
-	%div = sdiv i64 %a, %b		; <i64> [#uses=1]
-	ret i64 %div
-}
-
-define i32 @div1(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%div = sdiv i32 %a, %b		; <i32> [#uses=1]
-	ret i32 %div
-}
-
-define i64 @div2(i64 %a, i64 %b) nounwind readnone {
-entry:
-	%div = udiv i64 %a, %b		; <i64> [#uses=1]
-	ret i64 %div
-}
-
-define i32 @div3(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%div = udiv i32 %a, %b		; <i32> [#uses=1]
-	ret i32 %div
-}
-
-define i64 @rem(i64 %a, i64 %b) nounwind readnone {
-entry:
-	%rem = srem i64 %a, %b		; <i64> [#uses=1]
-	ret i64 %rem
-}
-
-define i32 @rem1(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%rem = srem i32 %a, %b		; <i32> [#uses=1]
-	ret i32 %rem
-}
-
-define i64 @rem2(i64 %a, i64 %b) nounwind readnone {
-entry:
-	%rem = urem i64 %a, %b		; <i64> [#uses=1]
-	ret i64 %rem
-}
-
-define i32 @rem3(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%rem = urem i32 %a, %b		; <i32> [#uses=1]
-	ret i32 %rem
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/08-DivRemMemOp.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/08-DivRemMemOp.ll
deleted file mode 100644
index c2befb2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/08-DivRemMemOp.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: llvm-as < %s | llc | grep {dsgf.%} | count 2
-; RUN: llvm-as < %s | llc | grep {dsg.%}  | count 2
-; RUN: llvm-as < %s | llc | grep {dl.%}   | count 2
-; RUN: llvm-as < %s | llc | grep dlg      | count 2
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i64 @div(i64 %a, i64* %b) nounwind readnone {
-entry:
-	%b1 = load i64* %b
-	%div = sdiv i64 %a, %b1
-	ret i64 %div
-}
-
-define i64 @div1(i64 %a, i64* %b) nounwind readnone {
-entry:
-        %b1 = load i64* %b
-        %div = udiv i64 %a, %b1
-        ret i64 %div
-}
-
-define i64 @rem(i64 %a, i64* %b) nounwind readnone {
-entry:
-        %b1 = load i64* %b
-        %div = srem i64 %a, %b1
-        ret i64 %div
-}
-
-define i64 @rem1(i64 %a, i64* %b) nounwind readnone {
-entry:
-        %b1 = load i64* %b
-        %div = urem i64 %a, %b1
-        ret i64 %div
-}
-
-define i32 @div2(i32 %a, i32* %b) nounwind readnone {
-entry:
-        %b1 = load i32* %b
-        %div = sdiv i32 %a, %b1
-        ret i32 %div
-}
-
-define i32 @div3(i32 %a, i32* %b) nounwind readnone {
-entry:
-        %b1 = load i32* %b
-        %div = udiv i32 %a, %b1
-        ret i32 %div
-}
-
-define i32 @rem2(i32 %a, i32* %b) nounwind readnone {
-entry:
-        %b1 = load i32* %b
-        %div = srem i32 %a, %b1
-        ret i32 %div
-}
-
-define i32 @rem3(i32 %a, i32* %b) nounwind readnone {
-entry:
-        %b1 = load i32* %b
-        %div = urem i32 %a, %b1
-        ret i32 %div
-}
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/08-SimpleMuls.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/08-SimpleMuls.ll
deleted file mode 100644
index 8dafa2e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/08-SimpleMuls.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | llc | grep msgr | count 2
-; RUN: llvm-as < %s | llc | grep msr  | count 2
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i64 @foo(i64 %a, i64 %b) nounwind readnone {
-entry:
-	%mul = mul i64 %b, %a		; <i64> [#uses=1]
-	ret i64 %mul
-}
-
-define i64 @foo2(i64 %a, i64 %b) nounwind readnone {
-entry:
-	%mul = mul i64 %b, %a		; <i64> [#uses=1]
-	ret i64 %mul
-}
-
-define i32 @foo3(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%mul = mul i32 %b, %a		; <i32> [#uses=1]
-	ret i32 %mul
-}
-
-define i32 @foo4(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%mul = mul i32 %b, %a		; <i32> [#uses=1]
-	ret i32 %mul
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/09-DynamicAlloca.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/09-DynamicAlloca.ll
deleted file mode 100644
index cc8b8d1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/09-DynamicAlloca.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define void @foo(i64 %N) nounwind {
-entry:
-	%N3 = trunc i64 %N to i32		; <i32> [#uses=1]
-	%vla = alloca i8, i32 %N3, align 2		; <i8*> [#uses=1]
-	call void @bar(i8* %vla) nounwind
-	ret void
-}
-
-declare void @bar(i8*)
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/09-Globals.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/09-Globals.ll
deleted file mode 100644
index 22cc033..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/09-Globals.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | llc | grep larl | count 3
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-linux"
- at bar = common global i64 0, align 8		; <i64*> [#uses=3]
-
-define i64 @foo() nounwind readonly {
-entry:
-	%tmp = load i64* @bar		; <i64> [#uses=1]
-	ret i64 %tmp
-}
-
-define i64* @foo2() nounwind readnone {
-entry:
-	ret i64* @bar
-}
-
-define i64* @foo3(i64 %idx) nounwind readnone {
-entry:
-	%add.ptr.sum = add i64 %idx, 1		; <i64> [#uses=1]
-	%add.ptr2 = getelementptr i64* @bar, i64 %add.ptr.sum		; <i64*> [#uses=1]
-	ret i64* %add.ptr2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/09-Switches.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/09-Switches.ll
deleted file mode 100644
index ff12d88..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/09-Switches.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep larl
-
-define i32 @main(i32 %tmp158) {
-entry:
-        switch i32 %tmp158, label %bb336 [
-		 i32 -2147483648, label %bb338
-		 i32 -2147483647, label %bb338
-		 i32 -2147483646, label %bb338
-		 i32 120, label %bb338
-		 i32 121, label %bb339
-		 i32 122, label %bb340
-                 i32 123, label %bb341
-                 i32 124, label %bb342
-                 i32 125, label %bb343
-                 i32 126, label %bb336
-		 i32 1024, label %bb338
-                 i32 0, label %bb338
-                 i32 1, label %bb338
-                 i32 2, label %bb338
-                 i32 3, label %bb338
-                 i32 4, label %bb338
-		 i32 5, label %bb338
-        ]
-bb336:
-  ret i32 10
-bb338:
-  ret i32 11
-bb339:
-  ret i32 12
-bb340:
-  ret i32 13
-bb341:
-  ret i32 14
-bb342:
-  ret i32 15
-bb343:
-  ret i32 18
-
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/10-FuncsPic.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/10-FuncsPic.ll
deleted file mode 100644
index a3fb4dc..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/10-FuncsPic.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | llc -relocation-model=pic | grep GOTENT | count 3
-; RUN: llvm-as < %s | llc -relocation-model=pic | grep PLT | count 1
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
- at ptr = external global void (...)*		; <void (...)**> [#uses=2]
-
-define void @foo1() nounwind {
-entry:
-	store void (...)* @func, void (...)** @ptr
-	ret void
-}
-
-declare void @func(...)
-
-define void @foo2() nounwind {
-entry:
-	tail call void (...)* @func() nounwind
-	ret void
-}
-
-define void @foo3() nounwind {
-entry:
-	%tmp = load void (...)** @ptr		; <void (...)*> [#uses=1]
-	tail call void (...)* %tmp() nounwind
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/10-GlobalsPic.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/10-GlobalsPic.ll
deleted file mode 100644
index 434e922..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/10-GlobalsPic.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | llc -relocation-model=pic | grep GOTENT | count 6
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
- at src = external global i32		; <i32*> [#uses=2]
- at dst = external global i32		; <i32*> [#uses=2]
- at ptr = external global i32*		; <i32**> [#uses=2]
-
-define void @foo1() nounwind {
-entry:
-	%tmp = load i32* @src		; <i32> [#uses=1]
-	store i32 %tmp, i32* @dst
-	ret void
-}
-
-define void @foo2() nounwind {
-entry:
-	store i32* @dst, i32** @ptr
-	ret void
-}
-
-define void @foo3() nounwind {
-entry:
-	%tmp = load i32* @src		; <i32> [#uses=1]
-	%tmp1 = load i32** @ptr		; <i32*> [#uses=1]
-	%arrayidx = getelementptr i32* %tmp1, i64 1		; <i32*> [#uses=1]
-	store i32 %tmp, i32* %arrayidx
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/11-BSwap.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/11-BSwap.ll
deleted file mode 100644
index 8480311..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/11-BSwap.ll
+++ /dev/null
@@ -1,74 +0,0 @@
-; RUN: llvm-as < %s | llc | FileCheck %s
-
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-
-define i16 @foo(i16 zeroext %a) zeroext {
-	%res = tail call i16 @llvm.bswap.i16(i16 %a)
-	ret i16 %res
-}
-
-define i32 @foo2(i32 zeroext %a) zeroext {
-; CHECK: foo2:
-; CHECK:  lrvr %r1, %r2
-        %res = tail call i32 @llvm.bswap.i32(i32 %a)
-        ret i32 %res
-}
-
-define i64 @foo3(i64 %a) zeroext {
-; CHECK: foo3:
-; CHECK:  lrvgr %r2, %r2
-        %res = tail call i64 @llvm.bswap.i64(i64 %a)
-        ret i64 %res
-}
-
-define i16 @foo4(i16* %b) zeroext {
-	%a = load i16* %b
-        %res = tail call i16 @llvm.bswap.i16(i16 %a)
-        ret i16 %res
-}
-
-define i32 @foo5(i32* %b) zeroext {
-; CHECK: foo5:
-; CHECK:  lrv %r1, 0(%r2)
-	%a = load i32* %b
-        %res = tail call i32 @llvm.bswap.i32(i32 %a)
-        ret i32 %res
-}
-
-define i64 @foo6(i64* %b) {
-; CHECK: foo6:
-; CHECK:  lrvg %r2, 0(%r2)
-	%a = load i64* %b
-        %res = tail call i64 @llvm.bswap.i64(i64 %a)
-        ret i64 %res
-}
-
-define void @foo7(i16 %a, i16* %b) {
-        %res = tail call i16 @llvm.bswap.i16(i16 %a)
-        store i16 %res, i16* %b
-        ret void
-}
-
-define void @foo8(i32 %a, i32* %b) {
-; CHECK: foo8:
-; CHECK:  strv %r2, 0(%r3)
-        %res = tail call i32 @llvm.bswap.i32(i32 %a)
-        store i32 %res, i32* %b
-        ret void
-}
-
-define void @foo9(i64 %a, i64* %b) {
-; CHECK: foo9:
-; CHECK:  strvg %r2, 0(%r3)
-        %res = tail call i64 @llvm.bswap.i64(i64 %a)
-        store i64 %res, i64* %b
-        ret void
-}
-
-declare i16 @llvm.bswap.i16(i16) nounwind readnone
-declare i32 @llvm.bswap.i32(i32) nounwind readnone
-declare i64 @llvm.bswap.i64(i64) nounwind readnone
-
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-05-29-InvalidRetResult.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-05-29-InvalidRetResult.ll
deleted file mode 100644
index 6bae51d..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-05-29-InvalidRetResult.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-unknown-linux-gnu"
-
-define i32 @main() nounwind {
-entry:
-	%call = call i32 (...)* @random() nounwind		; <i32> [#uses=0]
-	unreachable
-}
-
-declare i32 @random(...)
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-02-And32Imm.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-02-And32Imm.ll
deleted file mode 100644
index 3868fd3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-02-And32Imm.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep nilf | count 1
-; RUN: llvm-as < %s | llc -march=systemz | grep nill | count 1
-
-define i32 @gnu_dev_major(i64 %__dev) nounwind readnone {
-entry:
-        %shr = lshr i64 %__dev, 8               ; <i64> [#uses=1]
-        %shr8 = trunc i64 %shr to i32           ; <i32> [#uses=1]
-        %shr2 = lshr i64 %__dev, 32             ; <i64> [#uses=1]
-        %conv = trunc i64 %shr2 to i32          ; <i32> [#uses=1]
-        %and3 = and i32 %conv, -4096            ; <i32> [#uses=1]
-        %and6 = and i32 %shr8, 4095             ; <i32> [#uses=1]
-        %conv5 = or i32 %and6, %and3            ; <i32> [#uses=1]
-        ret i32 %conv5
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-02-Rotate.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-02-Rotate.ll
deleted file mode 100644
index 33a4323..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-02-Rotate.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=systemz | grep rll
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define i32 @rotl(i32 %x, i32 %y, i32 %z) nounwind readnone {
-entry:
-	%shl = shl i32 %x, 0		; <i32> [#uses=1]
-	%sub = sub i32 32, 0		; <i32> [#uses=1]
-	%shr = lshr i32 %x, %sub		; <i32> [#uses=1]
-	%or = or i32 %shr, %shl		; <i32> [#uses=1]
-	ret i32 %or
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-05-InvalidArgLoad.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-05-InvalidArgLoad.ll
deleted file mode 100644
index 79d74bc..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-05-InvalidArgLoad.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
-target triple = "s390x-ibm-linux"
-	%struct.re_pattern_buffer = type <{ i8*, i64, i64, i64, i8*, i8*, i64, i8, i8, i8, i8, i8, i8, i8, i8 }>
-	%struct.re_registers = type <{ i32, i8, i8, i8, i8, i32*, i32* }>
-
-define i32 @xre_search_2(%struct.re_pattern_buffer* nocapture %bufp, i8* %string1, i32 %size1, i8* %string2, i32 %size2, i32 %startpos, i32 %range, %struct.re_registers* %regs, i32 %stop) nounwind {
-entry:
-	%cmp17.i = icmp slt i32 undef, %startpos		; <i1> [#uses=1]
-	%or.cond.i = or i1 undef, %cmp17.i		; <i1> [#uses=1]
-	br i1 %or.cond.i, label %byte_re_search_2.exit, label %if.then20.i
-
-if.then20.i:		; preds = %entry
-	ret i32 -2
-
-byte_re_search_2.exit:		; preds = %entry
-	ret i32 -1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-04-Shl32.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-04-Shl32.ll
deleted file mode 100644
index 8547ec3..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-04-Shl32.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define void @compdecomp(i8* nocapture %data, i64 %data_len) nounwind {
-entry:
-	br label %for.body38
-
-for.body38:		; preds = %for.body38, %entry
-	br i1 undef, label %for.cond220, label %for.body38
-
-for.cond220:		; preds = %for.cond220, %for.body38
-	br i1 false, label %for.cond220, label %for.end297
-
-for.end297:		; preds = %for.cond220
-	%tmp334 = load i8* undef		; <i8> [#uses=1]
-	%conv343 = zext i8 %tmp334 to i32		; <i32> [#uses=1]
-	%sub344 = add i32 %conv343, -1		; <i32> [#uses=1]
-	%shl345 = shl i32 1, %sub344		; <i32> [#uses=1]
-	%conv346 = sext i32 %shl345 to i64		; <i64> [#uses=1]
-	br label %for.body356
-
-for.body356:		; preds = %for.body356, %for.end297
-	%mask.1633 = phi i64 [ %conv346, %for.end297 ], [ undef, %for.body356 ]		; <i64> [#uses=0]
-	br label %for.body356
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-05-Shifts.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-05-Shifts.ll
deleted file mode 100644
index 6e33737..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-05-Shifts.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define signext i32 @bit_place_piece(i32 signext %col, i32 signext %player, i64* nocapture %b1, i64* nocapture %b2) nounwind {
-entry:
-	br i1 undef, label %for.body, label %return
-
-for.body:		; preds = %entry
-	%add = add i32 0, %col		; <i32> [#uses=1]
-	%sh_prom = zext i32 %add to i64		; <i64> [#uses=1]
-	%shl = shl i64 1, %sh_prom		; <i64> [#uses=1]
-	br i1 undef, label %if.then13, label %if.else
-
-if.then13:		; preds = %for.body
-	ret i32 0
-
-if.else:		; preds = %for.body
-	%or34 = or i64 undef, %shl		; <i64> [#uses=0]
-	ret i32 0
-
-return:		; preds = %entry
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-10-BadIncomingArgOffset.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-10-BadIncomingArgOffset.ll
deleted file mode 100644
index 1af07d4..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-10-BadIncomingArgOffset.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | llc | grep 168
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-declare void @rdft(i32 signext, i32 signext, double*, i32* nocapture, double*) nounwind
-
-declare double @mp_mul_d2i_test(i32 signext, i32 signext, double* nocapture) nounwind
-
-define void @mp_mul_radix_test_bb3(i32 %radix, i32 %nfft, double* %tmpfft, i32* %ip, double* %w, double* %arrayidx44.reload, double* %call.out) nounwind {
-newFuncRoot:
-	br label %bb3
-
-bb4.exitStub:		; preds = %bb3
-	store double %call, double* %call.out
-	ret void
-
-bb3:		; preds = %newFuncRoot
-	tail call void @rdft(i32 signext %nfft, i32 signext -1, double* %arrayidx44.reload, i32* %ip, double* %w) nounwind
-	%call = tail call double @mp_mul_d2i_test(i32 signext %radix, i32 signext %nfft, double* %tmpfft)		; <double> [#uses=1]
-	br label %bb4.exitStub
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-FloatBitConvert.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-FloatBitConvert.ll
deleted file mode 100644
index e397801..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-FloatBitConvert.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define float @foo(i32 signext %a) {
-entry:
-    %b = bitcast i32 %a to float
-    ret float %b
-}
-
-define i32 @bar(float %a) {
-entry:
-    %b = bitcast float %a to i32
-    ret i32 %b
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-InvalidRIISel.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-InvalidRIISel.ll
deleted file mode 100644
index 03831f9..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-InvalidRIISel.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | llc
-
-target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
-target triple = "s390x-linux"
-
-define signext i32 @dfg_parse() nounwind {
-entry:
-	br i1 undef, label %if.then2208, label %if.else2360
-
-if.then2208:		; preds = %entry
-	br i1 undef, label %bb.nph3189, label %for.end2270
-
-bb.nph3189:		; preds = %if.then2208
-	unreachable
-
-for.end2270:		; preds = %if.then2208
-	%call2279 = call i64 @strlen(i8* undef) nounwind		; <i64> [#uses=1]
-	%add2281 = add i64 0, %call2279		; <i64> [#uses=1]
-	%tmp2283 = trunc i64 %add2281 to i32		; <i32> [#uses=1]
-	%tmp2284 = alloca i8, i32 %tmp2283, align 2		; <i8*> [#uses=1]
-	%yyd.0.i2561.13 = getelementptr i8* %tmp2284, i64 13		; <i8*> [#uses=1]
-	store i8 117, i8* %yyd.0.i2561.13
-	br label %while.cond.i2558
-
-while.cond.i2558:		; preds = %while.cond.i2558, %for.end2270
-	br label %while.cond.i2558
-
-if.else2360:		; preds = %entry
-	unreachable
-}
-
-declare i64 @strlen(i8* nocapture) nounwind readonly
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-08-21-InlineAsmRConstraint.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-08-21-InlineAsmRConstraint.ll
deleted file mode 100644
index 9065578..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-08-21-InlineAsmRConstraint.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | llc
-target datalayout = "E-p:64:64:64-i1:8:8-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:16:16-f128:128:128"
-target triple = "s390x-ibm-linux-gnu"
-
- at __JCR_LIST__ = internal global [0 x i8*] zeroinitializer, section ".jcr", align 8 ; <[0 x i8*]*> [#uses=1]
-
-define internal void @frame_dummy() nounwind {
-entry:
-  %asmtmp = tail call void (i8*)* (void (i8*)*)* asm "", "=r,0"(void (i8*)* @_Jv_RegisterClasses) nounwind ; <void (i8*)*> [#uses=2]
-  %0 = icmp eq void (i8*)* %asmtmp, null          ; <i1> [#uses=1]
-  br i1 %0, label %return, label %bb3
-
-bb3:                                              ; preds = %entry
-  tail call void %asmtmp(i8* bitcast ([0 x i8*]* @__JCR_LIST__ to i8*)) nounwind
-  ret void
-
-return:                                           ; preds = %entry
-  ret void
-}
-
-declare extern_weak void @_Jv_RegisterClasses(i8*)
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-08-22-FCopySign.ll b/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-08-22-FCopySign.ll
deleted file mode 100644
index caa8065..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/2009-08-22-FCopySign.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | llc | FileCheck %s
-
-target datalayout = "E-p:64:64:64-i1:8:8-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:16:16-f128:128:128"
-target triple = "s390x-ibm-linux-gnu"
-
-define double @foo(double %a, double %b) nounwind {
-entry:
-; CHECK: cpsdr %f0, %f2, %f0
-  %0 = tail call double @copysign(double %a, double %b) nounwind readnone
-  ret double %0
-}
-
-define float @bar(float %a, float %b) nounwind {
-entry:
-; CHECK: cpsdr %f0, %f2, %f0
-  %0 = tail call float @copysignf(float %a, float %b) nounwind readnone
-  ret float %0
-}
-
-
-declare double @copysign(double, double) nounwind readnone
-declare float @copysignf(float, float) nounwind readnone
diff --git a/libclamav/c++/llvm/test/CodeGen/SystemZ/dg.exp b/libclamav/c++/llvm/test/CodeGen/SystemZ/dg.exp
deleted file mode 100644
index e9624ba..0000000
--- a/libclamav/c++/llvm/test/CodeGen/SystemZ/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target SystemZ] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/2008-11-17-Shl64.ll b/libclamav/c++/llvm/test/CodeGen/XCore/2008-11-17-Shl64.ll
deleted file mode 100644
index 97ea41b..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/2008-11-17-Shl64.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; PR3080
-define i64 @test(i64 %a) {
-	%result = shl i64 %a, 1
-	ret i64 %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/2009-01-08-Crash.ll b/libclamav/c++/llvm/test/CodeGen/XCore/2009-01-08-Crash.ll
deleted file mode 100644
index 6f5fb7c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/2009-01-08-Crash.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-;; This caused a compilation failure since the
-;; address arithmetic was folded into the LDWSP instruction,
-;; resulting in a negative offset which eliminateFrameIndex was
-;; unable to eliminate.
-define i32 @test(i32 %bar) nounwind readnone {
-entry:
-        %bar_addr = alloca i32
-        %0 = getelementptr i32* %bar_addr, i32 -1
-        %1 = load i32* %0, align 4
-        ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/2009-01-14-Remat-Crash.ll b/libclamav/c++/llvm/test/CodeGen/XCore/2009-01-14-Remat-Crash.ll
deleted file mode 100644
index b9333c9..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/2009-01-14-Remat-Crash.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; PR3324
-define double @f1(double %a, double %b, double %c, double %d, double %e, double %f, double %g) nounwind {
-entry:
-	br i1 false, label %bb113, label %bb129
-
-bb113:		; preds = %entry
-	ret double 0.000000e+00
-
-bb129:		; preds = %entry
-	%tmp134 = fsub double %b, %a		; <double> [#uses=1]
-	%tmp136 = fsub double %tmp134, %c		; <double> [#uses=1]
-	%tmp138 = fadd double %tmp136, %d		; <double> [#uses=1]
-	%tmp140 = fsub double %tmp138, %e		; <double> [#uses=1]
-	%tmp142 = fadd double %tmp140, %f		; <double> [#uses=1]
-	%tmp.0 = fmul double %tmp142, 0.000000e+00		; <double> [#uses=1]
-	ret double %tmp.0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/2009-03-27-v2f64-param.ll b/libclamav/c++/llvm/test/CodeGen/XCore/2009-03-27-v2f64-param.ll
deleted file mode 100644
index e834d66..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/2009-03-27-v2f64-param.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore
-; PR3898
-
-define i32 @vector_param(<2 x double> %x) nounwind {
-       ret i32 1;
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/2009-07-15-store192.ll b/libclamav/c++/llvm/test/CodeGen/XCore/2009-07-15-store192.ll
deleted file mode 100644
index 874d8dc..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/2009-07-15-store192.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-define void @store32(i8* %p) nounwind {
-entry:
-	%0 = bitcast i8* %p to i192*
-	store i192 0, i192* %0, align 4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/addsub64.ll b/libclamav/c++/llvm/test/CodeGen/XCore/addsub64.ll
deleted file mode 100644
index 41224fc..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/addsub64.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore -mcpu=xs1b-generic > %t1.s
-; RUN: grep ladd %t1.s | count 2
-; RUN: grep lsub %t1.s | count 2
-define i64 @add64(i64 %a, i64 %b) {
-	%result = add i64 %a, %b
-	ret i64 %result
-}
-
-define i64 @sub64(i64 %a, i64 %b) {
-	%result = sub i64 %a, %b
-	ret i64 %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/basictest.ll b/libclamav/c++/llvm/test/CodeGen/XCore/basictest.ll
deleted file mode 100644
index 803ffcb..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/basictest.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore
-
-define i32 @test(i32 %X) {
-	%tmp.1 = add i32 %X, 1
-	ret i32 %tmp.1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/bitrev.ll b/libclamav/c++/llvm/test/CodeGen/XCore/bitrev.ll
deleted file mode 100644
index 38f3948..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/bitrev.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep bitrev %t1.s | count 1 
-declare i32 @llvm.xcore.bitrev(i32)
-
-define i32 @test(i32 %val) {
-	%result = call i32 @llvm.xcore.bitrev(i32 %val)
-	ret i32 %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/constants.ll b/libclamav/c++/llvm/test/CodeGen/XCore/constants.ll
deleted file mode 100644
index 8ba8b5c..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/constants.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore -mcpu=xs1b-generic | FileCheck %s
-
-; CHECK: .section .cp.rodata.cst4,"aMc", at progbits,4
-; CHECK: .LCPI1_0:
-; CHECK: .long 12345678
-; CHECK: f:
-; CHECK: ldw r0, cp[.LCPI1_0]
-define i32 @f() {
-entry:
-	ret i32 12345678
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/cos.ll b/libclamav/c++/llvm/test/CodeGen/XCore/cos.ll
deleted file mode 100644
index 334f0d5..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/cos.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl cosf" %t1.s | count 1
-; RUN: grep "bl cos" %t1.s | count 2
-declare double @llvm.cos.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.cos.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.cos.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.cos.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/dg.exp b/libclamav/c++/llvm/test/CodeGen/XCore/dg.exp
deleted file mode 100644
index 7110eab..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target XCore] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/exp.ll b/libclamav/c++/llvm/test/CodeGen/XCore/exp.ll
deleted file mode 100644
index 8412e7a..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/exp.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl expf" %t1.s | count 1
-; RUN: grep "bl exp" %t1.s | count 2
-declare double @llvm.exp.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.exp.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.exp.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.exp.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/exp2.ll b/libclamav/c++/llvm/test/CodeGen/XCore/exp2.ll
deleted file mode 100644
index a53b767..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/exp2.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl exp2f" %t1.s | count 1
-; RUN: grep "bl exp2" %t1.s | count 2
-declare double @llvm.exp2.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.exp2.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.exp2.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.exp2.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/fneg.ll b/libclamav/c++/llvm/test/CodeGen/XCore/fneg.ll
deleted file mode 100644
index 3bcb7c7..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/fneg.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore | grep "xor" | count 1
-define i1 @test(double %F) nounwind {
-entry:
-	%0 = fsub double -0.000000e+00, %F
-	%1 = fcmp olt double 0.000000e+00, %0
-	ret i1 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/getid.ll b/libclamav/c++/llvm/test/CodeGen/XCore/getid.ll
deleted file mode 100644
index 810e8ad..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/getid.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "get r11, id" %t1.s | count 1 
-declare i32 @llvm.xcore.getid()
-
-define i32 @test() {
-	%result = call i32 @llvm.xcore.getid()
-	ret i32 %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/globals.ll b/libclamav/c++/llvm/test/CodeGen/XCore/globals.ll
deleted file mode 100644
index 9bc0f53..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/globals.ll
+++ /dev/null
@@ -1,92 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore -mcpu=xs1b-generic | FileCheck %s
-
-define i32 *@addr_G1() {
-entry:
-; CHECK: addr_G1:
-; CHECK: ldaw r0, dp[G1]
-	ret i32* @G1
-}
-
-define i32 *@addr_G2() {
-entry:
-; CHECK: addr_G2:
-; CHECK: ldaw r0, dp[G2]
-	ret i32* @G2
-}
-
-define i32 *@addr_G3() {
-entry:
-; CHECK: addr_G3:
-; CHECK: ldaw r11, cp[G3]
-; CHECK: mov r0, r11
-	ret i32* @G3
-}
-
-define i32 **@addr_G4() {
-entry:
-; CHECK: addr_G4:
-; CHECK: ldaw r0, dp[G4]
-	ret i32** @G4
-}
-
-define i32 **@addr_G5() {
-entry:
-; CHECK: addr_G5:
-; CHECK: ldaw r11, cp[G5]
-; CHECK: mov r0, r11
-	ret i32** @G5
-}
-
-define i32 **@addr_G6() {
-entry:
-; CHECK: addr_G6:
-; CHECK: ldaw r0, dp[G6]
-	ret i32** @G6
-}
-
-define i32 **@addr_G7() {
-entry:
-; CHECK: addr_G7:
-; CHECK: ldaw r11, cp[G7]
-; CHECK: mov r0, r11
-	ret i32** @G7
-}
-
-define i32 *@addr_G8() {
-entry:
-; CHECK: addr_G8:
-; CHECK: ldaw r0, dp[G8]
-	ret i32* @G8
-}
-
- at G1 = global i32 4712
-; CHECK: .section .dp.data,"awd", at progbits
-; CHECK: G1:
-
- at G2 = global i32 0
-; CHECK: .section .dp.bss,"awd", at nobits
-; CHECK: G2:
-
- at G3 = constant i32 9401
-; CHECK: .section .cp.rodata.cst4,"aMc", at progbits,4
-; CHECK: G3:
-
- at G4 = global i32* @G1
-; CHECK: .section .dp.data,"awd", at progbits
-; CHECK: G4:
-
- at G5 = constant i32* @G1
-; CHECK: .section .cp.rodata,"ac", at progbits
-; CHECK: G5:
-
- at G6 = global i32* @G8
-; CHECK: .section .dp.data,"awd", at progbits
-; CHECK: G6:
-
- at G7 = constant i32* @G8
-; CHECK: .section .cp.rodata,"ac", at progbits
-; CHECK: G7:
-
- at G8 = internal global i32 9312
-; CHECK: .section .dp.data,"awd", at progbits
-; CHECK: G8:
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/load.ll b/libclamav/c++/llvm/test/CodeGen/XCore/load.ll
deleted file mode 100644
index 1c483a1..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/load.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: not grep add %t1.s
-; RUN: not grep ldaw %t1.s
-; RUN: not grep lda16 %t1.s
-; RUN: not grep zext %t1.s
-; RUN: not grep sext %t1.s
-; RUN: grep "ldw" %t1.s | count 2
-; RUN: grep "ld16s" %t1.s | count 1
-; RUN: grep "ld8u" %t1.s | count 1
-
-define i32 @load32(i32* %p, i32 %offset) nounwind {
-entry:
-	%0 = getelementptr i32* %p, i32 %offset
-	%1 = load i32* %0, align 4
-	ret i32 %1
-}
-
-define i32 @load32_imm(i32* %p) nounwind {
-entry:
-	%0 = getelementptr i32* %p, i32 11
-	%1 = load i32* %0, align 4
-	ret i32 %1
-}
-
-define i32 @load16(i16* %p, i32 %offset) nounwind {
-entry:
-	%0 = getelementptr i16* %p, i32 %offset
-	%1 = load i16* %0, align 2
-	%2 = sext i16 %1 to i32
-	ret i32 %2
-}
-
-define i32 @load8(i8* %p, i32 %offset) nounwind {
-entry:
-	%0 = getelementptr i8* %p, i32 %offset
-	%1 = load i8* %0, align 1
-	%2 = zext i8 %1 to i32
-	ret i32 %2
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/log.ll b/libclamav/c++/llvm/test/CodeGen/XCore/log.ll
deleted file mode 100644
index 88d9d7f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/log.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl logf" %t1.s | count 1
-; RUN: grep "bl log" %t1.s | count 2
-declare double @llvm.log.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.log.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.log.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.log.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/log10.ll b/libclamav/c++/llvm/test/CodeGen/XCore/log10.ll
deleted file mode 100644
index f844d8f..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/log10.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl log10f" %t1.s | count 1
-; RUN: grep "bl log10" %t1.s | count 2
-declare double @llvm.log10.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.log10.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.log10.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.log10.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/log2.ll b/libclamav/c++/llvm/test/CodeGen/XCore/log2.ll
deleted file mode 100644
index b8a3dbd..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/log2.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl log2f" %t1.s | count 1
-; RUN: grep "bl log2" %t1.s | count 2
-declare double @llvm.log2.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.log2.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.log2.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.log2.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/pow.ll b/libclamav/c++/llvm/test/CodeGen/XCore/pow.ll
deleted file mode 100644
index a7b6318..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/pow.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl powf" %t1.s | count 1
-; RUN: grep "bl pow" %t1.s | count 2
-declare double @llvm.pow.f64(double, double)
-
-define double @test(double %F, double %power) {
-        %result = call double @llvm.pow.f64(double %F, double %power)
-	ret double %result
-}
-
-declare float @llvm.pow.f32(float, float)
-
-define float @testf(float %F, float %power) {
-        %result = call float @llvm.pow.f32(float %F, float %power)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/powi.ll b/libclamav/c++/llvm/test/CodeGen/XCore/powi.ll
deleted file mode 100644
index 30e6d7e..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/powi.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl __powidf2" %t1.s | count 1
-; RUN: grep "bl __powisf2" %t1.s | count 1
-declare double @llvm.powi.f64(double, i32)
-
-define double @test(double %F, i32 %power) {
-        %result = call double @llvm.powi.f64(double %F, i32 %power)
-	ret double %result
-}
-
-declare float @llvm.powi.f32(float, i32)
-
-define float @testf(float %F, i32 %power) {
-        %result = call float @llvm.powi.f32(float %F, i32 %power)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/private.ll b/libclamav/c++/llvm/test/CodeGen/XCore/private.ll
deleted file mode 100644
index 888ccdf..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/private.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; Test to make sure that the 'private' is used correctly.
-;
-; RUN: llvm-as < %s | llc -march=xcore > %t
-; RUN: grep .Lfoo: %t
-; RUN: grep bl.*\.Lfoo %t
-; RUN: grep .Lbaz: %t
-; RUN: grep ldw.*\.Lbaz %t
-
-declare void @foo()
-
-define private void @foo() {
-        ret void
-}
-
- at baz = private global i32 4;
-
-define i32 @bar() {
-        call void @foo()
-	%1 = load i32* @baz, align 4
-        ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/sext.ll b/libclamav/c++/llvm/test/CodeGen/XCore/sext.ll
deleted file mode 100644
index 905bcc4..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/sext.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore | FileCheck %s
-define i32 @sext1(i32 %a) {
-	%1 = trunc i32 %a to i1
-	%2 = sext i1 %1 to i32
-	ret i32 %2
-}
-; CHECK: sext1:
-; CHECK: sext r0, 1
-
-define i32 @sext2(i32 %a) {
-	%1 = trunc i32 %a to i2
-	%2 = sext i2 %1 to i32
-	ret i32 %2
-}
-; CHECK: sext2:
-; CHECK: sext r0, 2
-
-define i32 @sext8(i32 %a) {
-	%1 = trunc i32 %a to i8
-	%2 = sext i8 %1 to i32
-	ret i32 %2
-}
-; CHECK: sext8:
-; CHECK: sext r0, 8
-
-define i32 @sext16(i32 %a) {
-	%1 = trunc i32 %a to i16
-	%2 = sext i16 %1 to i32
-	ret i32 %2
-}
-; CHECK: sext16:
-; CHECK: sext r0, 16
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/sin.ll b/libclamav/c++/llvm/test/CodeGen/XCore/sin.ll
deleted file mode 100644
index 41aab67..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/sin.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl sinf" %t1.s | count 1
-; RUN: grep "bl sin" %t1.s | count 2
-declare double @llvm.sin.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.sin.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.sin.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.sin.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/sqrt.ll b/libclamav/c++/llvm/test/CodeGen/XCore/sqrt.ll
deleted file mode 100644
index 221d1ac..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/sqrt.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl sqrtf" %t1.s | count 1
-; RUN: grep "bl sqrt" %t1.s | count 2
-declare double @llvm.sqrt.f64(double)
-
-define double @test(double %F) {
-        %result = call double @llvm.sqrt.f64(double %F)
-	ret double %result
-}
-
-declare float @llvm.sqrt.f32(float)
-
-define float @testf(float %F) {
-        %result = call float @llvm.sqrt.f32(float %F)
-	ret float %result
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/store.ll b/libclamav/c++/llvm/test/CodeGen/XCore/store.ll
deleted file mode 100644
index e871b34..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/store.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: not grep add %t1.s
-; RUN: not grep ldaw %t1.s
-; RUN: not grep lda16 %t1.s
-; RUN: grep "stw" %t1.s | count 2
-; RUN: grep "st16" %t1.s | count 1
-; RUN: grep "st8" %t1.s | count 1
-
-define void @store32(i32* %p, i32 %offset, i32 %val) nounwind {
-entry:
-	%0 = getelementptr i32* %p, i32 %offset
-	store i32 %val, i32* %0, align 4
-	ret void
-}
-
-define void @store32_imm(i32* %p, i32 %val) nounwind {
-entry:
-	%0 = getelementptr i32* %p, i32 11
-	store i32 %val, i32* %0, align 4
-	ret void
-}
-
-define void @store16(i16* %p, i32 %offset, i16 %val) nounwind {
-entry:
-	%0 = getelementptr i16* %p, i32 %offset
-	store i16 %val, i16* %0, align 2
-	ret void
-}
-
-define void @store8(i8* %p, i32 %offset, i8 %val) nounwind {
-entry:
-	%0 = getelementptr i8* %p, i32 %offset
-	store i8 %val, i8* %0, align 1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/tls.ll b/libclamav/c++/llvm/test/CodeGen/XCore/tls.ll
deleted file mode 100644
index 8f35268..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/tls.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore -mcpu=xs1b-generic | FileCheck %s
-
-define i32 *@addr_G() {
-entry:
-; CHECK: addr_G:
-; CHECK: get r11, id
-	ret i32* @G
-}
-
- at G = thread_local global i32 15
-; CHECK: .section .dp.data,"awd", at progbits
-; CHECK: G:
-; CHECK: .long 15
-; CHECK: .long 15
-; CHECK: .long 15
-; CHECK: .long 15
-; CHECK: .long 15
-; CHECK: .long 15
-; CHECK: .long 15
-; CHECK: .long 15
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/trap.ll b/libclamav/c++/llvm/test/CodeGen/XCore/trap.ll
deleted file mode 100644
index b3d3bc2..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/trap.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "ecallf" %t1.s | count 1
-; RUN: grep "ldc" %t1.s | count 1
-define i32 @test() noreturn nounwind  {
-entry:
-	tail call void @llvm.trap( )
-	unreachable
-}
-
-declare void @llvm.trap() nounwind 
-
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_load.ll b/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_load.ll
deleted file mode 100644
index c1372ed..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_load.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl __misaligned_load" %t1.s | count 1
-; RUN: grep ld16s %t1.s | count 2
-; RUN: grep ldw %t1.s | count 2
-; RUN: grep shl %t1.s | count 2
-; RUN: grep shr %t1.s | count 1
-; RUN: grep zext %t1.s | count 1
-; RUN: grep "or " %t1.s | count 2
-
-; Byte aligned load. Expands to call to __misaligned_load.
-define i32 @align1(i32* %p) nounwind {
-entry:
-	%0 = load i32* %p, align 1		; <i32> [#uses=1]
-	ret i32 %0
-}
-
-; Half word aligned load. Expands to two 16bit loads.
-define i32 @align2(i32* %p) nounwind {
-entry:
-	%0 = load i32* %p, align 2		; <i32> [#uses=1]
-	ret i32 %0
-}
-
- at a = global [5 x i8] zeroinitializer, align 4
-
-; Constant offset from word aligned base. Expands to two 32bit loads.
-define i32 @align3() nounwind {
-entry:
-	%0 = load i32* bitcast (i8* getelementptr ([5 x i8]* @a, i32 0, i32 1) to i32*), align 1
-	ret i32 %0
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_store.ll b/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_store.ll
deleted file mode 100644
index 120d652..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_store.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl __misaligned_store" %t1.s | count 1
-; RUN: grep st16 %t1.s | count 2
-; RUN: grep shr %t1.s | count 1
-
-; Byte aligned store. Expands to call to __misaligned_store.
-define void @align1(i32* %p, i32 %val) nounwind {
-entry:
-	store i32 %val, i32* %p, align 1
-	ret void
-}
-
-; Half word aligned store. Expands to two 16bit stores.
-define void @align2(i32* %p, i32 %val) nounwind {
-entry:
-	store i32 %val, i32* %p, align 2
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_store_combine.ll b/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_store_combine.ll
deleted file mode 100644
index b61cf86..0000000
--- a/libclamav/c++/llvm/test/CodeGen/XCore/unaligned_store_combine.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | llc -march=xcore > %t1.s
-; RUN: grep "bl memmove" %t1.s | count 1
-; RUN: grep "ldc r., 8" %t1.s | count 1
-
-; Unaligned load / store pair. Should be combined into a memmove
-; of size 8
-define void @f(i64* %dst, i64* %src) nounwind {
-entry:
-	%0 = load i64* %src, align 1
-	store i64 %0, i64* %dst, align 1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/DebugInfo/2008-10-17-C++DebugCrash.ll b/libclamav/c++/llvm/test/DebugInfo/2008-10-17-C++DebugCrash.ll
deleted file mode 100644
index b56b949..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2008-10-17-C++DebugCrash.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llvm-as < %s | llc
-; PR2885
-
-;; NOTE: This generates bad debug info in this case! But that's better than
-;; ICEing.
-
-; ModuleID = 'bug.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }* }
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([11 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str3, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 14, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true }		; <%llvm.dbg.subprogram.type*> [#uses=0]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 393233, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 4, i8* getelementptr ([7 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [7 x i8] c"die.cc\00"		; <[7 x i8]*> [#uses=1]
- at .str1 = internal constant [16 x i8] c"/home/nicholas/\00"		; <[16 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5623) (LLVM build)\00"		; <[52 x i8]*> [#uses=1]
- at .str3 = internal constant [11 x i8] c"AssertFail\00"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"int\00"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram5 = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([7 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str6, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 19, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype7 to { }*), i1 true, i1 true }		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str6 = internal constant [7 x i8] c"FooOne\00"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.basictype7 = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([9 x i8]* @.str8, i32 0, i32 0), { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str8 = internal constant [9 x i8] c"long int\00"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 393473, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram5 to { }*), i8* getelementptr ([6 x i8]* @.str9, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 19, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype10 to { }*) }		; <%llvm.dbg.variable.type*> [#uses=0]
- at .str9 = internal constant [6 x i8] c"count\00"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.basictype10 = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([18 x i8]* @.str11, i32 0, i32 0), { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 7 }		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str11 = internal constant [18 x i8] c"long unsigned int\00"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram12 = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([7 x i8]* @.str13, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str13, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 24, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype7 to { }*), i1 true, i1 true }		; <%llvm.dbg.subprogram.type*> [#uses=0]
- at .str13 = internal constant [7 x i8] c"FooTwo\00"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.subprogram14 = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([9 x i8]* @.str15, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str15, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str16, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 29, { }* null, i1 false, i1 true }		; <%llvm.dbg.subprogram.type*> [#uses=0]
- at .str15 = internal constant [9 x i8] c"FooThree\00"		; <[9 x i8]*> [#uses=1]
- at .str16 = internal constant [13 x i8] c"_Z8FooThreev\00"		; <[13 x i8]*> [#uses=1]
-
-declare void @_Z8FooThreev() nounwind
-
-define internal i32 @_ZL10AssertFailv() nounwind {
-entry:
-	unreachable
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @abort() noreturn nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
-
-declare i32 @_ZL6FooOnem(i32) nounwind
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind
-
-declare i32 @_ZL6FooTwov() nounwind
diff --git a/libclamav/c++/llvm/test/DebugInfo/2008-11-05-InlinedFuncStart.ll b/libclamav/c++/llvm/test/DebugInfo/2008-11-05-InlinedFuncStart.ll
deleted file mode 100644
index c494190..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2008-11-05-InlinedFuncStart.ll
+++ /dev/null
@@ -1,72 +0,0 @@
-; RUN: llvm-as < %s | llc
-; RUN: llvm-as < %s | llc -O0
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 1, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 393233, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5627) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram5 = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str6 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
-
-define i32 @foo() nounwind alwaysinline {
-entry:
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 42, i32* %0, align 4
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %1, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret i32 %retval1
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
-
-define i32 @main() nounwind {
-entry:
-	%retval.i = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%1 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram5 to { }*))
-	call void @llvm.dbg.stoppoint(i32 2, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*)) nounwind
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	store i32 42, i32* %0, align 4
-	%2 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %2, i32* %retval.i, align 4
-	%retval1.i = load i32* %retval.i		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*)) nounwind
-	store i32 %retval1.i, i32* %1, align 4
-	%3 = load i32* %1, align 4		; <i32> [#uses=1]
-	store i32 %3, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 2, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram5 to { }*))
-	ret i32 %retval1
-}
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-01-15-RecordVariableCrash.ll b/libclamav/c++/llvm/test/DebugInfo/2009-01-15-RecordVariableCrash.ll
deleted file mode 100644
index 3ed85c3..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-01-15-RecordVariableCrash.ll
+++ /dev/null
@@ -1,353 +0,0 @@
-; RUN: llvm-as < %s | llc -o /dev/null -verify-dom-info
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32, i8*, i8* }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, i8*, i8* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1, i8*, i8* }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }*, i8*, i8* }
-	%struct._RuneCharClass = type { [14 x i8], i32 }
-	%struct._RuneEntry = type { i32, i32, i32, i32* }
-	%struct._RuneLocale = type { [8 x i8], [32 x i8], i32 (i8*, i32, i8**)*, i32 (i32, i8*, i32, i8**)*, i32, [256 x i32], [256 x i32], [256 x i32], %struct._RuneRange, %struct._RuneRange, %struct._RuneRange, i8*, i32, i32, %struct._RuneCharClass* }
-	%struct._RuneRange = type { i32, %struct._RuneEntry* }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"x.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5628) (LLVM build 9999)\00", section "llvm.metadata"		; <[57 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5, i8* null, i8* null }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str4 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 21, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str5 = internal constant [2 x i8] c"i\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 459008, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), i8* getelementptr ([2 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 22, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str6 = internal constant [8 x i8] c"islower\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.subprogram9 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str6, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 267, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str10 = internal constant [3 x i8] c"_c\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.variable11 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram9 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 266, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str12 = internal constant [9 x i8] c"__istype\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.subprogram13 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([9 x i8]* @.str12, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str12, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 171, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str14 = internal constant [19 x i8] c"__darwin_ct_rune_t\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at .str15 = internal constant [9 x i8] c"_types.h\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str16 = internal constant [18 x i8] c"/usr/include/i386\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458774, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([19 x i8]* @.str14, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 70, i64 0, i64 0, i64 0, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([9 x i8]* @.str15, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str16, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.variable17 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 170, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str18 = internal constant [18 x i8] c"long unsigned int\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.basictype19 = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([18 x i8]* @.str18, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 7, i8* null, i8* null }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str20 = internal constant [3 x i8] c"_f\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.variable21 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*), i8* getelementptr ([3 x i8]* @.str20, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 170, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype19 to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at _DefaultRuneLocale = external global %struct._RuneLocale		; <%struct._RuneLocale*> [#uses=1]
- at .str22 = internal constant [8 x i8] c"isascii\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.subprogram23 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str22, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str22, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 153, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable24 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram23 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 152, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str25 = internal constant [8 x i8] c"toupper\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.subprogram26 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str25, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str25, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 316, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 true, i1 true, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable27 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram26 to { }*), i8* getelementptr ([3 x i8]* @.str10, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 315, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
-
-define i32 @main() nounwind {
-entry:
-	%retval = alloca i32		; <i32*> [#uses=1]
-	%i = alloca i32		; <i32*> [#uses=16]
-	%iftmp.5 = alloca i32		; <i32*> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	%0 = bitcast i32* %i to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*))
-	call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 0, i32* %i, align 4
-	br label %bb13
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb
-
-bb:		; preds = %bb13, %1
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%2 = load i32* %i, align 4		; <i32> [#uses=1]
-	%3 = call i32 @islower(i32 %2) nounwind		; <i32> [#uses=1]
-	%4 = icmp eq i32 %3, 0		; <i1> [#uses=1]
-	br i1 %4, label %bb3, label %bb1
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb1
-
-bb1:		; preds = %5, %bb
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%6 = load i32* %i, align 4		; <i32> [#uses=1]
-	%7 = icmp sle i32 %6, 96		; <i1> [#uses=1]
-	br i1 %7, label %bb11, label %bb2
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb2
-
-bb2:		; preds = %8, %bb1
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%9 = load i32* %i, align 4		; <i32> [#uses=1]
-	%10 = icmp sgt i32 %9, 122		; <i1> [#uses=1]
-	br i1 %10, label %bb11, label %bb3
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb3
-
-bb3:		; preds = %11, %bb2, %bb
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%12 = load i32* %i, align 4		; <i32> [#uses=1]
-	%13 = call i32 @islower(i32 %12) nounwind		; <i32> [#uses=1]
-	%14 = icmp ne i32 %13, 0		; <i1> [#uses=1]
-	br i1 %14, label %bb6, label %bb4
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb4
-
-bb4:		; preds = %15, %bb3
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%16 = load i32* %i, align 4		; <i32> [#uses=1]
-	%17 = icmp sle i32 %16, 96		; <i1> [#uses=1]
-	br i1 %17, label %bb6, label %bb5
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb5
-
-bb5:		; preds = %18, %bb4
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%19 = load i32* %i, align 4		; <i32> [#uses=1]
-	%20 = icmp sle i32 %19, 122		; <i1> [#uses=1]
-	br i1 %20, label %bb11, label %bb6
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb6
-
-bb6:		; preds = %21, %bb5, %bb4, %bb3
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%22 = load i32* %i, align 4		; <i32> [#uses=1]
-	%23 = call i32 @toupper(i32 %22) nounwind		; <i32> [#uses=1]
-	%24 = load i32* %i, align 4		; <i32> [#uses=1]
-	%25 = icmp sle i32 %24, 96		; <i1> [#uses=1]
-	br i1 %25, label %bb9, label %bb7
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb7
-
-bb7:		; preds = %26, %bb6
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%27 = load i32* %i, align 4		; <i32> [#uses=1]
-	%28 = icmp sgt i32 %27, 122		; <i1> [#uses=1]
-	br i1 %28, label %bb9, label %bb8
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-
-bb8:		; preds = %29, %bb7
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%30 = load i32* %i, align 4		; <i32> [#uses=1]
-	%31 = sub i32 %30, 32		; <i32> [#uses=1]
-	store i32 %31, i32* %iftmp.5, align 4
-	br label %bb10
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb9
-
-bb9:		; preds = %32, %bb7, %bb6
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%33 = load i32* %i, align 4		; <i32> [#uses=1]
-	store i32 %33, i32* %iftmp.5, align 4
-	br label %bb10
-
-bb10:		; preds = %bb9, %bb8
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%34 = load i32* %iftmp.5, align 4		; <i32> [#uses=1]
-	%35 = icmp ne i32 %23, %34		; <i1> [#uses=1]
-	br i1 %35, label %bb11, label %bb12
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb11
-
-bb11:		; preds = %36, %bb10, %bb5, %bb2, %bb1
-	call void @llvm.dbg.stoppoint(i32 26, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @exit(i32 2) noreturn nounwind
-	unreachable
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 26, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb12
-
-bb12:		; preds = %37, %bb10
-	call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%38 = load i32* %i, align 4		; <i32> [#uses=1]
-	%39 = add i32 %38, 1		; <i32> [#uses=1]
-	store i32 %39, i32* %i, align 4
-	br label %bb13
-
-bb13:		; preds = %bb12, %entry
-	call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%40 = load i32* %i, align 4		; <i32> [#uses=1]
-	%41 = icmp sle i32 %40, 255		; <i1> [#uses=1]
-	br i1 %41, label %bb, label %bb14
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 23, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb14
-
-bb14:		; preds = %42, %bb13
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @exit(i32 0) noreturn nounwind
-	unreachable
-
-return:		; No predecessors!
-	%retval15 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret i32 %retval15
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-define internal i32 @islower(i32 %_c) nounwind {
-entry:
-	%_c_addr = alloca i32		; <i32*> [#uses=3]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram9 to { }*))
-	%1 = bitcast i32* %_c_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable11 to { }*))
-	store i32 %_c, i32* %_c_addr
-	call void @llvm.dbg.stoppoint(i32 268, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%2 = load i32* %_c_addr, align 4		; <i32> [#uses=1]
-	%3 = call i32 @__istype(i32 %2, i32 4096) nounwind		; <i32> [#uses=1]
-	store i32 %3, i32* %0, align 4
-	%4 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %4, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 268, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram9 to { }*))
-	ret i32 %retval1
-}
-
-define internal i32 @toupper(i32 %_c) nounwind {
-entry:
-	%_c_addr = alloca i32		; <i32*> [#uses=3]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram26 to { }*))
-	%1 = bitcast i32* %_c_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable27 to { }*))
-	store i32 %_c, i32* %_c_addr
-	call void @llvm.dbg.stoppoint(i32 317, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%2 = load i32* %_c_addr, align 4		; <i32> [#uses=1]
-	%3 = call i32 @__toupper(i32 %2) nounwind		; <i32> [#uses=1]
-	store i32 %3, i32* %0, align 4
-	%4 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %4, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 317, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram26 to { }*))
-	ret i32 %retval1
-}
-
-declare void @exit(i32) noreturn nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
-
-define internal i32 @__istype(i32 %_c, i32 %_f) nounwind {
-entry:
-	%_c_addr = alloca i32		; <i32*> [#uses=5]
-	%_f_addr = alloca i32		; <i32*> [#uses=4]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%iftmp.0 = alloca i32		; <i32*> [#uses=3]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*))
-	%1 = bitcast i32* %_c_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable17 to { }*))
-	store i32 %_c, i32* %_c_addr
-	%2 = bitcast i32* %_f_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %2, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable21 to { }*))
-	store i32 %_f, i32* %_f_addr
-	call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%3 = load i32* %_c_addr, align 4		; <i32> [#uses=1]
-	%4 = call i32 @isascii(i32 %3) nounwind		; <i32> [#uses=1]
-	%5 = icmp ne i32 %4, 0		; <i1> [#uses=1]
-	br i1 %5, label %bb, label %bb1
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb
-
-bb:		; preds = %6, %entry
-	call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%7 = load i32* %_c_addr, align 4		; <i32> [#uses=1]
-	%8 = getelementptr [256 x i32]* getelementptr (%struct._RuneLocale* @_DefaultRuneLocale, i32 0, i32 5), i32 0, i32 %7		; <i32*> [#uses=1]
-	%9 = load i32* %8, align 4		; <i32> [#uses=1]
-	%10 = load i32* %_f_addr, align 4		; <i32> [#uses=1]
-	%11 = and i32 %9, %10		; <i32> [#uses=1]
-	%12 = icmp ne i32 %11, 0		; <i1> [#uses=1]
-	%13 = zext i1 %12 to i32		; <i32> [#uses=1]
-	store i32 %13, i32* %iftmp.0, align 4
-	br label %bb2
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb1
-
-bb1:		; preds = %14, %entry
-	call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%15 = load i32* %_c_addr, align 4		; <i32> [#uses=1]
-	%16 = load i32* %_f_addr, align 4		; <i32> [#uses=1]
-	%17 = call i32 @__maskrune(i32 %15, i32 %16) nounwind		; <i32> [#uses=1]
-	%18 = icmp ne i32 %17, 0		; <i1> [#uses=1]
-	%19 = zext i1 %18 to i32		; <i32> [#uses=1]
-	store i32 %19, i32* %iftmp.0, align 4
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%20 = load i32* %iftmp.0, align 4		; <i32> [#uses=1]
-	store i32 %20, i32* %0, align 4
-	%21 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %21, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %bb2
-	%retval3 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 175, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram13 to { }*))
-	ret i32 %retval3
-}
-
-define internal i32 @isascii(i32 %_c) nounwind {
-entry:
-	%_c_addr = alloca i32		; <i32*> [#uses=3]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram23 to { }*))
-	%1 = bitcast i32* %_c_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable24 to { }*))
-	store i32 %_c, i32* %_c_addr
-	call void @llvm.dbg.stoppoint(i32 154, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%2 = load i32* %_c_addr, align 4		; <i32> [#uses=1]
-	%3 = and i32 %2, -128		; <i32> [#uses=1]
-	%4 = icmp eq i32 %3, 0		; <i1> [#uses=1]
-	%5 = zext i1 %4 to i32		; <i32> [#uses=1]
-	store i32 %5, i32* %0, align 4
-	%6 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %6, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 154, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram23 to { }*))
-	ret i32 %retval1
-}
-
-declare i32 @__maskrune(i32, i32)
-
-declare i32 @__toupper(i32)
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-01-15-dbg_declare.ll b/libclamav/c++/llvm/test/DebugInfo/2009-01-15-dbg_declare.ll
deleted file mode 100644
index 2a7823b..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-01-15-dbg_declare.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | llc -o /dev/null
-
-        %llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }*, i8*, i8* }
- at llvm.dbg.variable24 = external constant %llvm.dbg.variable.type                ; <%llvm.dbg.variable.type*> [#uses=1]
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind
-
-define i32 @isascii(i32 %_c) nounwind {
-entry:
-	%j = alloca i32
-	%0 = bitcast i32* %j to { }*
-        call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable24 to { }*))
-        unreachable
-}
-
-
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-01-15-member.ll b/libclamav/c++/llvm/test/DebugInfo/2009-01-15-member.ll
deleted file mode 100644
index dc72bb7..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-01-15-member.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | llc -o /dev/null
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32, i8*, i8* }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }*, i8*, i8* }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, i8*, i8* }
-	%llvm.dbg.global_variable.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1, { }*, i8*, i8* }
-	%struct.f = type opaque
-	%struct.s = type { %struct.f*, i32 }
- at s2 = common global %struct.s zeroinitializer		; <%struct.s*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"t.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5628) (LLVM build 2091)\00", section "llvm.metadata"		; <[57 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [2 x i8] c"s\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at .str4 = internal constant [2 x i8] c"f\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.composite5 = internal constant %llvm.dbg.composite.type { i32 458771, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([2 x i8]* @.str4, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, i64 0, i64 0, i64 0, i32 60, { }* null, { }* null, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite5 to { }*), i8* null, i8* null }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str6 = internal constant [3 x i8] c"f1\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype7 = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([3 x i8]* @.str6, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, i64 32, i64 32, i64 0, i32 1, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str8 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str8, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5, i8* null, i8* null }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str9 = internal constant [2 x i8] c"a\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype10 = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([2 x i8]* @.str9, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 5, i64 32, i64 32, i64 32, i32 1, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [2 x { }*] [ { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype7 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype10 to { }*) ], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite11 = internal constant %llvm.dbg.composite.type { i32 458771, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([2 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 3, i64 64, i64 32, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 52 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str12 = internal constant [3 x i8] c"s2\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type { i32 458804, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([3 x i8]* @.str12, i32 0, i32 0), i8* getelementptr ([3 x i8]* @.str12, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 6, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite11 to { }*), i1 false, i1 true, { }* bitcast (%struct.s* @s2 to { }*), i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.global_variable.type*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-02-18-DefaultScope-Crash.ll b/libclamav/c++/llvm/test/DebugInfo/2009-02-18-DefaultScope-Crash.ll
deleted file mode 100644
index ea9e046..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-02-18-DefaultScope-Crash.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | llc -o /dev/null
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 2098)\00", section "llvm.metadata"		; <[57 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [1 x { }*] [ { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) ], section "llvm.metadata"		; <[1 x { }*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([1 x { }*]* @llvm.dbg.array to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-
- at llvm.dbg.array1 = internal constant [1 x { }*] [ { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*) ], section "llvm.metadata"
-
-define i32 @foo() nounwind ssp {
-entry:
-	ret i32 42
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-02-27-licm.ll b/libclamav/c++/llvm/test/DebugInfo/2009-02-27-licm.ll
deleted file mode 100644
index cf4872d..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-02-27-licm.ll
+++ /dev/null
@@ -1,83 +0,0 @@
-;RUN: llvm-as <%s | opt -licm | llvm-dis | grep {load } | count 4
-; ModuleID = '2009-02-27-licm.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }*, i32 }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [12 x i8] c"mt19937ar.c\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str1 = internal constant [58 x i8] c"/developer2/home5/youxiangc/work/project/pr965/test-licm/\00", section "llvm.metadata"		; <[58 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5641) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([12 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([58 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at mti = internal global i32 625		; <i32*> [#uses=7]
- at .str5 = internal constant [18 x i8] c"long unsigned int\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.basictype6 = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([18 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 7 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [2 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to { }*)], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str7 = internal constant [13 x i8] c"init_genrand\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([13 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str7, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 13, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at mt = internal global [624 x i32] zeroinitializer, align 32		; <[624 x i32]*> [#uses=4]
-
-define void @init_genrand(i32 %s) nounwind {
-entry:
-	tail call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	tail call void @llvm.dbg.stoppoint(i32 14, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 %s, i32* getelementptr ([624 x i32]* @mt, i32 0, i32 0), align 32
-	tail call void @llvm.dbg.stoppoint(i32 15, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 1, i32* @mti
-	tail call void @llvm.dbg.stoppoint(i32 15, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%0 = load i32* @mti, align 4		; <i32> [#uses=1]
-	%1 = icmp sgt i32 %0, 623		; <i1> [#uses=1]
-	br i1 %1, label %return, label %bb.nph
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%storemerge1 = phi i32 [ %16, %bb1 ], [ 1, %bb.nph ]		; <i32> [#uses=0]
-	tail call void @llvm.dbg.stoppoint(i32 16, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%2 = load i32* @mti, align 4		; <i32> [#uses=3]
-	%3 = add i32 %2, -1		; <i32> [#uses=1]
-	%4 = getelementptr [624 x i32]* @mt, i32 0, i32 %3		; <i32*> [#uses=1]
-	%5 = load i32* %4, align 4		; <i32> [#uses=1]
-	%6 = add i32 %2, -1		; <i32> [#uses=1]
-	%7 = getelementptr [624 x i32]* @mt, i32 0, i32 %6		; <i32*> [#uses=1]
-	%8 = load i32* %7, align 4		; <i32> [#uses=1]
-	%9 = lshr i32 %8, 30		; <i32> [#uses=1]
-	%10 = xor i32 %9, %5		; <i32> [#uses=1]
-	%11 = mul i32 %10, 1812433253		; <i32> [#uses=1]
-	%12 = load i32* @mti, align 4		; <i32> [#uses=1]
-	%13 = add i32 %11, %12		; <i32> [#uses=1]
-	%14 = getelementptr [624 x i32]* @mt, i32 0, i32 %2		; <i32*> [#uses=1]
-	store i32 %13, i32* %14, align 4
-	tail call void @llvm.dbg.stoppoint(i32 15, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%15 = load i32* @mti, align 4		; <i32> [#uses=1]
-	%16 = add i32 %15, 1		; <i32> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%storemerge = phi i32 [ %16, %bb ]		; <i32> [#uses=1]
-	store i32 %storemerge, i32* @mti
-	tail call void @llvm.dbg.stoppoint(i32 15, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%17 = load i32* @mti, align 4		; <i32> [#uses=1]
-	%18 = icmp sgt i32 %17, 623		; <i1> [#uses=1]
-	br i1 %18, label %bb1.return_crit_edge, label %bb
-
-bb1.return_crit_edge:		; preds = %bb1
-	br label %return
-
-return:		; preds = %bb1.return_crit_edge, %entry
-	tail call void @llvm.dbg.stoppoint(i32 25, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	tail call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret void
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-03-03-cheapdse.ll b/libclamav/c++/llvm/test/DebugInfo/2009-03-03-cheapdse.ll
deleted file mode 100644
index d9b18aa..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-03-03-cheapdse.ll
+++ /dev/null
@@ -1,80 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep store | count 5
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-	type { }		; type %0
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0* }
-	%llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
-	%struct.Matrix = type { float*, i32, i32, i32, i32 }
- at llvm.dbg.compile_units = internal constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [15 x i8] c"himenobmtxpa.c\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at .str1 = internal constant [74 x i8] c"/Volumes/MacOS9/gcc/llvm/projects/llvm-test/SingleSource/Benchmarks/Misc/\00", section "llvm.metadata"		; <[74 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5641) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 1, i8* getelementptr ([15 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([74 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [6 x i8] c"float\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str3, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 4 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str5 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype6 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str5, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.subprograms = internal constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str90 = internal constant [4 x i8] c"Mat\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype92 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str93 = internal constant [2 x i8] c"m\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype94 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([2 x i8]* @.str93, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 46, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype92 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str95 = internal constant [6 x i8] c"mnums\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype96 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str95, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 47, i64 32, i64 32, i64 32, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str97 = internal constant [6 x i8] c"mrows\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype98 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str97, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 48, i64 32, i64 32, i64 64, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str99 = internal constant [6 x i8] c"mcols\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype100 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str99, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 49, i64 32, i64 32, i64 96, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str101 = internal constant [6 x i8] c"mdeps\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype102 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str101, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 50, i64 32, i64 32, i64 128, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array103 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype94 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype96 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype98 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype100 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype102 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite104 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str90, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 45, i64 160, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array103 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str105 = internal constant [7 x i8] c"Matrix\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype106 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str105, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 54, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite104 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype107 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype106 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array108 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype107 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite109 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array108 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str110 = internal constant [7 x i8] c"newMat\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.subprogram111 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str110, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str110, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 195, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite109 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.used = appending global [1 x i8*] [i8* bitcast (i32 (%struct.Matrix*, i32, i32, i32, i32)* @newMat to i8*)], section "llvm.metadata"		; <[1 x i8*]*> [#uses=0]
-
-define i32 @newMat(%struct.Matrix* %Mat, i32 %mnums, i32 %mrows, i32 %mcols, i32 %mdeps) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram111 to %0*))
-	call void @llvm.dbg.stoppoint(i32 196, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %struct.Matrix* %Mat, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %mnums, i32* %0, align 4
-	call void @llvm.dbg.stoppoint(i32 197, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = getelementptr %struct.Matrix* %Mat, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %mrows, i32* %1, align 4
-	call void @llvm.dbg.stoppoint(i32 198, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%2 = getelementptr %struct.Matrix* %Mat, i32 0, i32 3		; <i32*> [#uses=1]
-	store i32 %mcols, i32* %2, align 4
-	call void @llvm.dbg.stoppoint(i32 199, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%3 = getelementptr %struct.Matrix* %Mat, i32 0, i32 4		; <i32*> [#uses=1]
-	store i32 %mdeps, i32* %3, align 4
-	call void @llvm.dbg.stoppoint(i32 201, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%4 = mul i32 %mnums, %mrows		; <i32> [#uses=1]
-	%5 = mul i32 %4, %mcols		; <i32> [#uses=1]
-	%6 = mul i32 %5, %mdeps		; <i32> [#uses=1]
-	%7 = malloc float, i32 %6		; <float*> [#uses=2]
-	%8 = getelementptr %struct.Matrix* %Mat, i32 0, i32 0		; <float**> [#uses=1]
-	store float* %7, float** %8, align 4
-	call void @llvm.dbg.stoppoint(i32 204, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%9 = icmp ne float* %7, null		; <i1> [#uses=1]
-	%10 = zext i1 %9 to i32		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 204, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram111 to %0*))
-	ret i32 %10
-}
-
-declare void @llvm.dbg.func.start(%0*) nounwind readnone
-
-declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind readnone
-
-declare void @llvm.dbg.region.end(%0*) nounwind readnone
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-03-03-deadstore.ll b/libclamav/c++/llvm/test/DebugInfo/2009-03-03-deadstore.ll
deleted file mode 100644
index 795393d..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-03-03-deadstore.ll
+++ /dev/null
@@ -1,108 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep alloca
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-
-	type { }		; type %0
-	type <{ i8 }>		; type %1
-	type { i32 (...)**, %3 }		; type %2
-	type { %4, %2*, i8, i8, %10*, %11*, %12*, %12* }		; type %3
-	type { i32 (...)**, i32, i32, i32, i32, i32, %5*, %6, [8 x %6], i32, %6*, %7 }		; type %4
-	type { %5*, void (i32, %4*, i32)*, i32, i32 }		; type %5
-	type { i8*, i32 }		; type %6
-	type { %8* }		; type %7
-	type { i32, %9**, i32, %9**, i8** }		; type %8
-	type { i32 (...)**, i32 }		; type %9
-	type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %7 }		; type %10
-	type { %9, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }		; type %11
-	type { %9 }		; type %12
-	type { i32, void ()* }		; type %13
-	type { %15 }		; type %14
-	type { %16 }		; type %15
-	type { %17 }		; type %16
-	type { i32*, i32*, i32* }		; type %17
-	type { %19 }		; type %18
-	type { %20 }		; type %19
-	type { %21 }		; type %20
-	type { %14*, %14*, %14* }		; type %21
-	type { i32 }		; type %22
-	type { i8 }		; type %23
-	type { i32* }		; type %24
-	type { %14* }		; type %25
-	type { %27 }		; type %26
-	type { i8* }		; type %27
-	type { %29, %30, %3 }		; type %28
-	type { i32 (...)** }		; type %29
-	type { %10, i32, %26 }		; type %30
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0* }
-	%llvm.dbg.enumerator.type = type { i32, i8*, i64 }
-	%llvm.dbg.global_variable.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1, %0* }
-	%llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
-	%llvm.dbg.subrange.type = type { i32, i64, i64 }
-	%llvm.dbg.variable.type = type { i32, %0*, i8*, %0*, i32, %0* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
-internal constant [11 x i8] c"bigfib.cpp\00", section "llvm.metadata"		; <[11 x i8]*>:0 [#uses=1]
-internal constant [84 x i8] c"/Volumes/Nanpura/mainline/llvm/projects/llvm-test/SingleSource/Benchmarks/Misc-C++/\00", section "llvm.metadata"		; <[84 x i8]*>:1 [#uses=1]
-internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 2099)\00", section "llvm.metadata"		; <[57 x i8]*>:2 [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @0, i32 0, i32 0), i8* getelementptr ([84 x i8]* @1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [23 x i8] c"/usr/include/c++/4.0.0\00", section "llvm.metadata"		; <[23 x i8]*>:3 [#uses=1]
-
-
-internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*>:4 [#uses=1]
- at llvm.dbg.basictype103 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @4, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
-internal constant [8 x i8] c"iomanip\00", section "llvm.metadata"		; <[8 x i8]*>:5 [#uses=1]
- at llvm.dbg.compile_unit1548 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([8 x i8]* @5, i32 0, i32 0), i8* getelementptr ([23 x i8]* @3, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [6 x i8] c"_Setw\00", section "llvm.metadata"		; <[6 x i8]*>:6 [#uses=1]
-internal constant [5 x i8] c"_M_n\00", section "llvm.metadata"		; <[5 x i8]*>:7 [#uses=1]
- at llvm.dbg.derivedtype1552 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @7, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 232, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype103 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1553 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1552 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite1554 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @6, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 232, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array1553 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1555 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1554 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype103 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1556 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1555 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [5 x i8] c"setw\00", section "llvm.metadata"		; <[5 x i8]*>:8 [#uses=2]
-internal constant [11 x i8] c"_ZSt4setwi\00", section "llvm.metadata"		; <[11 x i8]*>:9 [#uses=1]
- at llvm.dbg.subprogram1559 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @8, i32 0, i32 0), i8* getelementptr ([5 x i8]* @8, i32 0, i32 0), i8* getelementptr ([11 x i8]* @9, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 242, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1556 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-internal constant [4 x i8] c"__x\00", section "llvm.metadata"		; <[4 x i8]*>:10 [#uses=1]
- at llvm.dbg.variable1563 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1559 to %0*), i8* getelementptr ([4 x i8]* @10, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 244, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1554 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
-
-define linkonce i32 @_ZSt4setwi(i32) nounwind {
-	%2 = alloca %22		; <%22*> [#uses=2]
-	%3 = alloca %22		; <%22*> [#uses=3]
-	%4 = alloca %22		; <%22*> [#uses=2]
-	%5 = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1559 to %0*))
-	%6 = bitcast %22* %3 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %6, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1563 to %0*))
-	call void @llvm.dbg.stoppoint(i32 245, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*))
-	%7 = getelementptr %22* %3, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %0, i32* %7, align 4
-	call void @llvm.dbg.stoppoint(i32 246, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*))
-	%8 = getelementptr %22* %4, i32 0, i32 0		; <i32*> [#uses=1]
-	%9 = getelementptr %22* %3, i32 0, i32 0		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 4		; <i32> [#uses=1]
-	store i32 %10, i32* %8, align 4
-	%11 = getelementptr %22* %2, i32 0, i32 0		; <i32*> [#uses=1]
-	%12 = getelementptr %22* %4, i32 0, i32 0		; <i32*> [#uses=1]
-	%13 = load i32* %12, align 4		; <i32> [#uses=1]
-	store i32 %13, i32* %11, align 4
-	%14 = bitcast %22* %2 to i32*		; <i32*> [#uses=1]
-	%15 = load i32* %14		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 246, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1559 to %0*))
-	ret i32 %15
-}
-
-declare void @llvm.dbg.func.start(%0*) nounwind
-
-declare void @llvm.dbg.declare(%0*, %0*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind
-
-declare void @llvm.dbg.region.end(%0*) nounwind
-
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-03-03-store-to-load-forward.ll b/libclamav/c++/llvm/test/DebugInfo/2009-03-03-store-to-load-forward.ll
deleted file mode 100644
index 72866ec..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-03-03-store-to-load-forward.ll
+++ /dev/null
@@ -1,260 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep alloca
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-	type { }		; type %0
-	type <{ i8 }>		; type %1
-	type { i32* }		; type %2
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0* }
-	%llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, %0*, i8*, %0*, i32, %0* }
- at llvm.dbg.compile_units = internal constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
-internal constant [11 x i8] c"bigfib.cpp\00", section "llvm.metadata"		; <[11 x i8]*>:0 [#uses=1]
-internal constant [84 x i8] c"/Volumes/Nanpura/mainline/llvm/projects/llvm-test/SingleSource/Benchmarks/Misc-C++/\00", section "llvm.metadata"		; <[84 x i8]*>:1 [#uses=1]
-internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 2099)\00", section "llvm.metadata"		; <[57 x i8]*>:2 [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @0, i32 0, i32 0), i8* getelementptr ([84 x i8]* @1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [18 x i8] c"long unsigned int\00", section "llvm.metadata"		; <[18 x i8]*>:3 [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @3, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 7 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
-internal constant [69 x i8] c"/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin9/4.2.1/include\00", section "llvm.metadata"		; <[69 x i8]*>:4 [#uses=1]
- at llvm.dbg.subprograms = internal constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
-internal constant [12 x i8] c"unnamed_arg\00", section "llvm.metadata"		; <[12 x i8]*>:5 [#uses=1]
-internal constant [28 x i8] c"/usr/include/c++/4.0.0/bits\00", section "llvm.metadata"		; <[28 x i8]*>:6 [#uses=1]
-internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*>:7 [#uses=1]
- at llvm.dbg.basictype103 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @7, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.derivedtype110 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype103 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [11 x i8] c"<built-in>\00", section "llvm.metadata"		; <[11 x i8]*>:8 [#uses=1]
- at llvm.dbg.compile_unit112 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @8, i32 0, i32 0), i8* getelementptr ([84 x i8]* @1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [10 x i8] c"ptrdiff_t\00", section "llvm.metadata"		; <[10 x i8]*>:9 [#uses=1]
- at llvm.dbg.derivedtype114 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @9, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit112 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype110 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [9 x i8] c"_types.h\00", section "llvm.metadata"		; <[9 x i8]*>:10 [#uses=1]
-internal constant [18 x i8] c"/usr/include/i386\00", section "llvm.metadata"		; <[18 x i8]*>:11 [#uses=1]
- at llvm.dbg.compile_unit117 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @10, i32 0, i32 0), i8* getelementptr ([18 x i8]* @11, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [10 x i8] c"__int32_t\00", section "llvm.metadata"		; <[10 x i8]*>:12 [#uses=1]
- at llvm.dbg.derivedtype119 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @12, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit117 to %0*), i32 43, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype114 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [19 x i8] c"__darwin_ct_rune_t\00", section "llvm.metadata"		; <[19 x i8]*>:13 [#uses=1]
- at llvm.dbg.derivedtype121 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @13, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit117 to %0*), i32 50, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype119 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [19 x i8] c"__darwin_ptrdiff_t\00", section "llvm.metadata"		; <[19 x i8]*>:14 [#uses=1]
- at llvm.dbg.derivedtype123 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @14, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit117 to %0*), i32 81, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype121 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [17 x i8] c"__darwin_wchar_t\00", section "llvm.metadata"		; <[17 x i8]*>:15 [#uses=1]
- at llvm.dbg.derivedtype125 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @15, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit117 to %0*), i32 96, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype123 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [16 x i8] c"__darwin_rune_t\00", section "llvm.metadata"		; <[16 x i8]*>:16 [#uses=1]
- at llvm.dbg.derivedtype127 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @16, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit117 to %0*), i32 102, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype125 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [16 x i8] c"__darwin_wint_t\00", section "llvm.metadata"		; <[16 x i8]*>:17 [#uses=1]
- at llvm.dbg.derivedtype129 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @17, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit117 to %0*), i32 107, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype127 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [17 x i8] c"/usr/include/sys\00", section "llvm.metadata"		; <[17 x i8]*>:18 [#uses=1]
- at llvm.dbg.compile_unit131 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @10, i32 0, i32 0), i8* getelementptr ([17 x i8]* @18, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [19 x i8] c"__darwin_blksize_t\00", section "llvm.metadata"		; <[19 x i8]*>:19 [#uses=1]
- at llvm.dbg.derivedtype133 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @19, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit131 to %0*), i32 94, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype129 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [15 x i8] c"__darwin_dev_t\00", section "llvm.metadata"		; <[15 x i8]*>:20 [#uses=1]
- at llvm.dbg.derivedtype135 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @20, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit131 to %0*), i32 95, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype133 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [15 x i8] c"__darwin_pid_t\00", section "llvm.metadata"		; <[15 x i8]*>:21 [#uses=1]
- at llvm.dbg.derivedtype137 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @21, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit131 to %0*), i32 110, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype135 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [21 x i8] c"__darwin_suseconds_t\00", section "llvm.metadata"		; <[21 x i8]*>:22 [#uses=1]
- at llvm.dbg.derivedtype139 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([21 x i8]* @22, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit131 to %0*), i32 131, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype137 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [17 x i8] c"__darwin_nl_item\00", section "llvm.metadata"		; <[17 x i8]*>:23 [#uses=1]
- at llvm.dbg.derivedtype141 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @23, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit131 to %0*), i32 135, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype139 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [13 x i8] c"/usr/include\00", section "llvm.metadata"		; <[13 x i8]*>:24 [#uses=1]
- at llvm.dbg.compile_unit143 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @10, i32 0, i32 0), i8* getelementptr ([13 x i8]* @24, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [19 x i8] c"__darwin_wctrans_t\00", section "llvm.metadata"		; <[19 x i8]*>:25 [#uses=1]
- at llvm.dbg.derivedtype145 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @25, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit143 to %0*), i32 29, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype141 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [7 x i8] c"wait.h\00", section "llvm.metadata"		; <[7 x i8]*>:26 [#uses=1]
- at llvm.dbg.compile_unit147 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([7 x i8]* @26, i32 0, i32 0), i8* getelementptr ([17 x i8]* @18, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [6 x i8] c"pid_t\00", section "llvm.metadata"		; <[6 x i8]*>:27 [#uses=1]
- at llvm.dbg.derivedtype149 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @27, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit147 to %0*), i32 83, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype145 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [13 x i8] c"sig_atomic_t\00", section "llvm.metadata"		; <[13 x i8]*>:28 [#uses=1]
- at llvm.dbg.derivedtype151 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @28, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit147 to %0*), i32 95, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype149 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [10 x i8] c"ct_rune_t\00", section "llvm.metadata"		; <[10 x i8]*>:29 [#uses=1]
- at llvm.dbg.derivedtype153 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @29, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit147 to %0*), i32 262, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype151 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [9 x i8] c"stdlib.h\00", section "llvm.metadata"		; <[9 x i8]*>:30 [#uses=1]
- at llvm.dbg.compile_unit155 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @30, i32 0, i32 0), i8* getelementptr ([13 x i8]* @24, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [7 x i8] c"rune_t\00", section "llvm.metadata"		; <[7 x i8]*>:31 [#uses=1]
- at llvm.dbg.derivedtype157 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @31, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit155 to %0*), i32 81, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype153 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [8 x i8] c"types.h\00", section "llvm.metadata"		; <[8 x i8]*>:32 [#uses=1]
- at llvm.dbg.compile_unit159 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([8 x i8]* @32, i32 0, i32 0), i8* getelementptr ([18 x i8]* @11, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [8 x i8] c"int32_t\00", section "llvm.metadata"		; <[8 x i8]*>:33 [#uses=1]
- at llvm.dbg.derivedtype161 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @33, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit159 to %0*), i32 85, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype157 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [11 x i8] c"register_t\00", section "llvm.metadata"		; <[11 x i8]*>:34 [#uses=1]
- at llvm.dbg.derivedtype163 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @34, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit159 to %0*), i32 95, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype161 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [6 x i8] c"dev_t\00", section "llvm.metadata"		; <[6 x i8]*>:35 [#uses=1]
- at llvm.dbg.derivedtype165 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @35, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit159 to %0*), i32 125, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype163 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [11 x i8] c"_structs.h\00", section "llvm.metadata"		; <[11 x i8]*>:36 [#uses=1]
- at llvm.dbg.compile_unit167 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @36, i32 0, i32 0), i8* getelementptr ([17 x i8]* @18, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [12 x i8] c"suseconds_t\00", section "llvm.metadata"		; <[12 x i8]*>:37 [#uses=1]
- at llvm.dbg.derivedtype169 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @37, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit167 to %0*), i32 191, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype165 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [15 x i8] c"gthr-default.h\00", section "llvm.metadata"		; <[15 x i8]*>:38 [#uses=1]
-internal constant [47 x i8] c"/usr/include/c++/4.0.0/i686-apple-darwin9/bits\00", section "llvm.metadata"		; <[47 x i8]*>:39 [#uses=1]
- at llvm.dbg.compile_unit172 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([15 x i8]* @38, i32 0, i32 0), i8* getelementptr ([47 x i8]* @39, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [7 x i8] c"wint_t\00", section "llvm.metadata"		; <[7 x i8]*>:40 [#uses=1]
- at llvm.dbg.derivedtype174 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @40, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit172 to %0*), i32 567, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype169 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [9 x i8] c"stdint.h\00", section "llvm.metadata"		; <[9 x i8]*>:41 [#uses=1]
- at llvm.dbg.compile_unit176 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @41, i32 0, i32 0), i8* getelementptr ([69 x i8]* @4, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [14 x i8] c"int_least32_t\00", section "llvm.metadata"		; <[14 x i8]*>:42 [#uses=1]
- at llvm.dbg.derivedtype178 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @42, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit176 to %0*), i32 60, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype174 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [13 x i8] c"int_fast32_t\00", section "llvm.metadata"		; <[13 x i8]*>:43 [#uses=1]
- at llvm.dbg.derivedtype180 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @43, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit176 to %0*), i32 71, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype178 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [11 x i8] c"postypes.h\00", section "llvm.metadata"		; <[11 x i8]*>:44 [#uses=1]
- at llvm.dbg.compile_unit182 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @44, i32 0, i32 0), i8* getelementptr ([28 x i8]* @6, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [11 x i8] c"streamsize\00", section "llvm.metadata"		; <[11 x i8]*>:45 [#uses=1]
- at llvm.dbg.derivedtype184 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @45, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit182 to %0*), i32 72, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype180 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype230 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @9, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit112 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype184 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [15 x i8] c"stl_iterator.h\00", section "llvm.metadata"		; <[15 x i8]*>:46 [#uses=1]
- at llvm.dbg.compile_unit709 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([15 x i8]* @46, i32 0, i32 0), i8* getelementptr ([28 x i8]* @6, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [11 x i8] c"_M_current\00", section "llvm.metadata"		; <[11 x i8]*>:47 [#uses=1]
-internal constant [18 x i8] c"__normal_iterator\00", section "llvm.metadata"		; <[18 x i8]*>:48 [#uses=1]
-internal constant [10 x i8] c"operator*\00", section "llvm.metadata"		; <[10 x i8]*>:49 [#uses=1]
-internal constant [11 x i8] c"operator->\00", section "llvm.metadata"		; <[11 x i8]*>:50 [#uses=1]
-internal constant [11 x i8] c"operator++\00", section "llvm.metadata"		; <[11 x i8]*>:51 [#uses=1]
-internal constant [11 x i8] c"operator--\00", section "llvm.metadata"		; <[11 x i8]*>:52 [#uses=1]
- at llvm.dbg.derivedtype759 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype230 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [11 x i8] c"operator[]\00", section "llvm.metadata"		; <[11 x i8]*>:53 [#uses=1]
-internal constant [11 x i8] c"operator+=\00", section "llvm.metadata"		; <[11 x i8]*>:54 [#uses=1]
-internal constant [10 x i8] c"operator+\00", section "llvm.metadata"		; <[10 x i8]*>:55 [#uses=1]
-internal constant [11 x i8] c"operator-=\00", section "llvm.metadata"		; <[11 x i8]*>:56 [#uses=1]
-internal constant [10 x i8] c"operator-\00", section "llvm.metadata"		; <[10 x i8]*>:57 [#uses=1]
-internal constant [5 x i8] c"base\00", section "llvm.metadata"		; <[5 x i8]*>:58 [#uses=1]
-internal constant [18 x i8] c"cpp_type_traits.h\00", section "llvm.metadata"		; <[18 x i8]*>:59 [#uses=1]
- at llvm.dbg.compile_unit1192 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([18 x i8]* @59, i32 0, i32 0), i8* getelementptr ([28 x i8]* @6, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [12 x i8] c"__true_type\00", section "llvm.metadata"		; <[12 x i8]*>:60 [#uses=1]
- at llvm.dbg.array1195 = internal constant [0 x %0*] zeroinitializer, section "llvm.metadata"		; <[0 x %0*]*> [#uses=1]
- at llvm.dbg.composite1196 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @60, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1192 to %0*), i32 93, i64 8, i64 8, i64 0, i32 0, %0* null, %0* bitcast ([0 x %0*]* @llvm.dbg.array1195 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1631 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1633 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [106 x i8] c"__normal_iterator<long unsigned int*,std::vector<long unsigned int, std::ALLOCATOR<long unsigned int> > >\00", section "llvm.metadata"		; <[106 x i8]*>:61 [#uses=1]
- at llvm.dbg.derivedtype1768 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @47, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 589, i64 32, i64 32, i64 0, i32 2, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1631 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1769 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1770 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1769 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1771 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1770 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1772 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @48, i32 0, i32 0), i8* getelementptr ([18 x i8]* @48, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 600, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1771 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1773 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1631 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1774 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1773 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1775 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1769 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1774 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1776 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1775 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1777 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @48, i32 0, i32 0), i8* getelementptr ([18 x i8]* @48, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 603, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1776 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite1778 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 587, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1779 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1778 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1780 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1779 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1781 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1769 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1780 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1782 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1781 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1783 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @48, i32 0, i32 0), i8* getelementptr ([18 x i8]* @48, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 608, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1782 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1784 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1785 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1784 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1786 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1633 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1785 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1787 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1786 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [59 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEdeEv\00", section "llvm.metadata"		; <[59 x i8]*>:62 [#uses=1]
- at llvm.dbg.subprogram1789 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @49, i32 0, i32 0), i8* getelementptr ([10 x i8]* @49, i32 0, i32 0), i8* getelementptr ([59 x i8]* @62, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 613, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1787 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1790 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1631 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1785 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1791 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1790 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [59 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEptEv\00", section "llvm.metadata"		; <[59 x i8]*>:63 [#uses=1]
- at llvm.dbg.subprogram1793 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @50, i32 0, i32 0), i8* getelementptr ([11 x i8]* @50, i32 0, i32 0), i8* getelementptr ([59 x i8]* @63, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 617, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1791 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1794 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1795 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1794 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1769 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1796 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1795 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [58 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEppEv\00", section "llvm.metadata"		; <[58 x i8]*>:64 [#uses=1]
- at llvm.dbg.subprogram1798 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @51, i32 0, i32 0), i8* getelementptr ([11 x i8]* @51, i32 0, i32 0), i8* getelementptr ([58 x i8]* @64, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 621, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1796 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1799 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1769 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype103 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1800 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1799 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [58 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEppEi\00", section "llvm.metadata"		; <[58 x i8]*>:65 [#uses=1]
- at llvm.dbg.subprogram1802 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @51, i32 0, i32 0), i8* getelementptr ([11 x i8]* @51, i32 0, i32 0), i8* getelementptr ([58 x i8]* @65, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 628, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1800 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-internal constant [58 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEmmEv\00", section "llvm.metadata"		; <[58 x i8]*>:66 [#uses=1]
- at llvm.dbg.subprogram1804 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @52, i32 0, i32 0), i8* getelementptr ([11 x i8]* @52, i32 0, i32 0), i8* getelementptr ([58 x i8]* @66, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 633, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1796 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-internal constant [58 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEmmEi\00", section "llvm.metadata"		; <[58 x i8]*>:67 [#uses=1]
- at llvm.dbg.subprogram1806 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @52, i32 0, i32 0), i8* getelementptr ([11 x i8]* @52, i32 0, i32 0), i8* getelementptr ([58 x i8]* @67, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 640, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1800 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1807 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1633 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1785 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype759 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1808 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1807 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [61 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEixERKi\00", section "llvm.metadata"		; <[61 x i8]*>:68 [#uses=1]
- at llvm.dbg.subprogram1810 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @53, i32 0, i32 0), i8* getelementptr ([11 x i8]* @53, i32 0, i32 0), i8* getelementptr ([61 x i8]* @68, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 645, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1808 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1811 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1794 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1769 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype759 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1812 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1811 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [60 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEpLERKi\00", section "llvm.metadata"		; <[60 x i8]*>:69 [#uses=1]
- at llvm.dbg.subprogram1814 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @54, i32 0, i32 0), i8* getelementptr ([11 x i8]* @54, i32 0, i32 0), i8* getelementptr ([60 x i8]* @69, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 649, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1812 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1815 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1785 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype759 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1816 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1815 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [61 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEplERKi\00", section "llvm.metadata"		; <[61 x i8]*>:70 [#uses=1]
- at llvm.dbg.subprogram1818 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @55, i32 0, i32 0), i8* getelementptr ([10 x i8]* @55, i32 0, i32 0), i8* getelementptr ([61 x i8]* @70, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 653, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1816 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-internal constant [60 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEmIERKi\00", section "llvm.metadata"		; <[60 x i8]*>:71 [#uses=1]
- at llvm.dbg.subprogram1820 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @56, i32 0, i32 0), i8* getelementptr ([11 x i8]* @56, i32 0, i32 0), i8* getelementptr ([60 x i8]* @71, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 657, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1812 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-internal constant [61 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEmiERKi\00", section "llvm.metadata"		; <[61 x i8]*>:72 [#uses=1]
- at llvm.dbg.subprogram1822 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @57, i32 0, i32 0), i8* getelementptr ([10 x i8]* @57, i32 0, i32 0), i8* getelementptr ([61 x i8]* @72, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 661, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1816 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1823 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1774 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1785 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1824 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1823 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [62 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEE4baseEv\00", section "llvm.metadata"		; <[62 x i8]*>:73 [#uses=1]
- at llvm.dbg.subprogram1826 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @58, i32 0, i32 0), i8* getelementptr ([5 x i8]* @58, i32 0, i32 0), i8* getelementptr ([62 x i8]* @73, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 665, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1824 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1827 = internal constant [16 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1768 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1772 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1777 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1783 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1789 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1793 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1798 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1802 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1804 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1806 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1810 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1814 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1818 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1820 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1822 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1826 to %0*)], section "llvm.metadata"		; <[16 x %0*]*> [#uses=1]
- at llvm.dbg.composite1828 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([106 x i8]* @61, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit709 to %0*), i32 587, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([16 x %0*]* @llvm.dbg.array1827 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [8 x i8] c"__first\00", section "llvm.metadata"		; <[8 x i8]*>:74 [#uses=1]
-internal constant [7 x i8] c"__last\00", section "llvm.metadata"		; <[7 x i8]*>:75 [#uses=1]
-internal constant [9 x i8] c"__result\00", section "llvm.metadata"		; <[9 x i8]*>:76 [#uses=1]
-internal constant [20 x i8] c"stl_uninitialized.h\00", section "llvm.metadata"		; <[20 x i8]*>:77 [#uses=1]
- at llvm.dbg.compile_unit2900 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([20 x i8]* @77, i32 0, i32 0), i8* getelementptr ([28 x i8]* @6, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.array4285 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1196 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite4286 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array4285 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [264 x i8] c"__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int, std::ALLOCATOR<long unsigned int> > >, __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int, std::ALLOCATOR<long unsigned int> > > >\00", section "llvm.metadata"		; <[264 x i8]*>:78 [#uses=1]
-internal constant [112 x i8] c"_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEES6_ET0_T_S8_S7_11__true_type\00", section "llvm.metadata"		; <[112 x i8]*>:79 [#uses=1]
- at llvm.dbg.subprogram4289 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([264 x i8]* @78, i32 0, i32 0), i8* getelementptr ([264 x i8]* @78, i32 0, i32 0), i8* getelementptr ([112 x i8]* @79, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit2900 to %0*), i32 73, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite4286 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable4290 = internal constant %llvm.dbg.variable.type { i32 459009, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram4289 to %0*), i8* getelementptr ([8 x i8]* @74, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit2900 to %0*), i32 73, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.variable4291 = internal constant %llvm.dbg.variable.type { i32 459009, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram4289 to %0*), i8* getelementptr ([7 x i8]* @75, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit2900 to %0*), i32 73, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.variable4292 = internal constant %llvm.dbg.variable.type { i32 459009, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram4289 to %0*), i8* getelementptr ([9 x i8]* @76, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit2900 to %0*), i32 73, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1828 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.variable4293 = internal constant %llvm.dbg.variable.type { i32 459009, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram4289 to %0*), i8* getelementptr ([12 x i8]* @5, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit2900 to %0*), i32 73, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1196 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.used = appending global [1 x i8*] [i8* bitcast (i32* (i32*, i32*, i32*, %1*)* @_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEES6_ET0_T_S8_S7_11__true_type to i8*)], section "llvm.metadata"		; <[1 x i8*]*> [#uses=0]
-
-define i32* @_ZSt24__uninitialized_copy_auxIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEES6_ET0_T_S8_S7_11__true_type(i32*, i32*, i32*, %1* byval align 4) {
-	%5 = alloca %2		; <%2*> [#uses=3]
-	%6 = alloca %2		; <%2*> [#uses=3]
-	%7 = alloca %2		; <%2*> [#uses=3]
-	%8 = alloca %2		; <%2*> [#uses=2]
-	%9 = alloca %2		; <%2*> [#uses=2]
-	%10 = alloca %2		; <%2*> [#uses=2]
-	%11 = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram4289 to %0*))
-	%12 = bitcast %2* %5 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %12, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable4290 to %0*))
-	%13 = getelementptr %2* %5, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %0, i32** %13
-	%14 = bitcast %2* %6 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %14, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable4291 to %0*))
-	%15 = getelementptr %2* %6, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %1, i32** %15
-	%16 = bitcast %2* %7 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %16, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable4292 to %0*))
-	%17 = getelementptr %2* %7, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %2, i32** %17
-	%18 = bitcast %1* %3 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %18, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable4293 to %0*))
-	call void @llvm.dbg.stoppoint(i32 74, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit2900 to %0*))
-	%19 = getelementptr %2* %5, i32 0, i32 0		; <i32**> [#uses=1]
-	%20 = load i32** %19		; <i32*> [#uses=1]
-	%21 = getelementptr %2* %6, i32 0, i32 0		; <i32**> [#uses=1]
-	%22 = load i32** %21		; <i32*> [#uses=1]
-	%23 = getelementptr %2* %7, i32 0, i32 0		; <i32**> [#uses=1]
-	%24 = load i32** %23		; <i32*> [#uses=1]
-	%25 = call i32* @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEES6_ET0_T_S8_S7_(i32* %20, i32* %22, i32* %24)		; <i32*> [#uses=1]
-	%26 = bitcast %2* %9 to i32**		; <i32**> [#uses=1]
-	store i32* %25, i32** %26, align 4
-	%27 = getelementptr %2* %10, i32 0, i32 0		; <i32**> [#uses=1]
-	%28 = getelementptr %2* %9, i32 0, i32 0		; <i32**> [#uses=1]
-	%29 = load i32** %28, align 4		; <i32*> [#uses=1]
-	store i32* %29, i32** %27, align 4
-	%30 = getelementptr %2* %8, i32 0, i32 0		; <i32**> [#uses=1]
-	%31 = getelementptr %2* %10, i32 0, i32 0		; <i32**> [#uses=1]
-	%32 = load i32** %31, align 4		; <i32*> [#uses=1]
-	store i32* %32, i32** %30, align 4
-	%33 = bitcast %2* %8 to i32**		; <i32**> [#uses=1]
-	%34 = load i32** %33		; <i32*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 74, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit2900 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram4289 to %0*))
-	ret i32* %34
-}
-
-declare void @llvm.dbg.func.start(%0*) nounwind
-
-declare void @llvm.dbg.declare(%0*, %0*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind
-
-declare void @llvm.dbg.region.end(%0*) nounwind
-
-declare i32* @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEES6_ET0_T_S8_S7_(i32*, i32*, i32*)
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-03-05-gvn.ll b/libclamav/c++/llvm/test/DebugInfo/2009-03-05-gvn.ll
deleted file mode 100644
index 394982c..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-03-05-gvn.ll
+++ /dev/null
@@ -1,125 +0,0 @@
-;RUN: llvm-as <%s | opt -gvn | llvm-dis | grep {load } | count 1
-; ModuleID = 'db2-before.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	type { }		; type %0
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0* }
-	%llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [12 x i8] c"mt19937ar.c\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str1 = internal constant [34 x i8] c"/developer/home2/zsth/test/debug/\00", section "llvm.metadata"		; <[34 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5641) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 1, i8* getelementptr ([12 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([34 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at mti = internal global i32 625		; <i32*> [#uses=14]
- at .str3 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str5 = internal constant [18 x i8] c"long unsigned int\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.basictype6 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str5, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 7 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str7 = internal constant [13 x i8] c"init_genrand\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str7, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str7, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 58, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at mt = internal global [624 x i32] zeroinitializer, align 32		; <[624 x i32]*> [#uses=29]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array9 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite10 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array9 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str11 = internal constant [14 x i8] c"init_by_array\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram12 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str11, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str11, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 77, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite10 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array23 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype6 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite24 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array23 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str25 = internal constant [14 x i8] c"genrand_int32\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram26 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str25, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str25, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 103, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite24 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at mag01.1661 = internal constant [2 x i32] [i32 0, i32 -1727483681]		; <[2 x i32]*> [#uses=3]
- at .str35 = internal constant [9 x i8] c"long int\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.basictype36 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str35, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array37 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype36 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite38 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array37 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str39 = internal constant [14 x i8] c"genrand_int31\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram40 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str39, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str39, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 141, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite38 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str41 = internal constant [7 x i8] c"double\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.basictype42 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str41, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 64, i64 0, i32 0, i32 4 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array43 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype42 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite44 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array43 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str45 = internal constant [14 x i8] c"genrand_real1\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram46 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str45, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str45, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 147, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite44 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str47 = internal constant [14 x i8] c"genrand_real2\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram48 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str47, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str47, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 154, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite44 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str49 = internal constant [14 x i8] c"genrand_real3\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram50 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str49, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str49, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 161, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite44 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str51 = internal constant [14 x i8] c"genrand_res53\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram52 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str51, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str51, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 168, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite44 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array57 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite58 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array57 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str59 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.subprogram60 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str59, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str59, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 175, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite58 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str69 = internal constant [32 x i8] c"1000 outputs of genrand_int32()\00"		; <[32 x i8]*> [#uses=1]
- at .str70 = internal constant [7 x i8] c"%10lu \00"		; <[7 x i8]*> [#uses=1]
- at .str71 = internal constant [33 x i8] c"\0A1000 outputs of genrand_real2()\00"		; <[33 x i8]*> [#uses=1]
- at .str72 = internal constant [8 x i8] c"%10.8f \00"		; <[8 x i8]*> [#uses=1]
-
-define void @init_genrand(i32 %s) nounwind {
-entry:
-	tail call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %0*))
-	tail call void @llvm.dbg.stoppoint(i32 59, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	store i32 %s, i32* getelementptr ([624 x i32]* @mt, i32 0, i32 0), align 32
-	tail call void @llvm.dbg.stoppoint(i32 60, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	store i32 1, i32* @mti
-	tail call void @llvm.dbg.stoppoint(i32 60, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br i1 false, label %return, label %bb.nph
-
-bb.nph:		; preds = %entry
-	%mti.promoted = load i32* @mti		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%indvar = phi i32 [ 0, %bb.nph ], [ %indvar.next, %bb1 ]		; <i32> [#uses=2]
-	%mti.tmp.0 = add i32 %indvar, %mti.promoted		; <i32> [#uses=5]
-	tail call void @llvm.dbg.stoppoint(i32 61, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = add i32 %mti.tmp.0, -1		; <i32> [#uses=1]
-	%1 = getelementptr [624 x i32]* @mt, i32 0, i32 %0		; <i32*> [#uses=1]
-	%2 = load i32* %1, align 4		; <i32> [#uses=1]
-	%3 = add i32 %mti.tmp.0, -1		; <i32> [#uses=1]
-	%4 = getelementptr [624 x i32]* @mt, i32 0, i32 %3		; <i32*> [#uses=1]
-	%5 = load i32* %4, align 4		; <i32> [#uses=1]
-	%6 = lshr i32 %5, 30		; <i32> [#uses=1]
-	%7 = xor i32 %6, %2		; <i32> [#uses=1]
-	%8 = mul i32 %7, 1812433253		; <i32> [#uses=1]
-	%9 = add i32 %8, %mti.tmp.0		; <i32> [#uses=1]
-	%10 = getelementptr [624 x i32]* @mt, i32 0, i32 %mti.tmp.0		; <i32*> [#uses=1]
-	store i32 %9, i32* %10, align 4
-	tail call void @llvm.dbg.stoppoint(i32 60, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%11 = add i32 %mti.tmp.0, 1		; <i32> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb
-	tail call void @llvm.dbg.stoppoint(i32 60, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%12 = icmp sgt i32 %11, 623		; <i1> [#uses=1]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=1]
-	br i1 %12, label %bb1.return_crit_edge, label %bb
-
-bb1.return_crit_edge:		; preds = %bb1
-	store i32 %11, i32* @mti
-	br label %return
-
-return:		; preds = %bb1.return_crit_edge, %entry
-	tail call void @llvm.dbg.stoppoint(i32 70, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	tail call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %0*))
-	ret void
-}
-
-declare void @llvm.dbg.func.start(%0*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind
-
-declare void @llvm.dbg.region.end(%0*) nounwind
-
-declare i32 @puts(i8* nocapture) nounwind
-
-declare i32 @printf(i8* noalias nocapture, ...) nounwind
-
-declare i32 @putchar(i32) nounwind
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-06-12-Inline.ll b/libclamav/c++/llvm/test/DebugInfo/2009-06-12-Inline.ll
deleted file mode 100644
index f699337..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-06-12-Inline.ll
+++ /dev/null
@@ -1,94 +0,0 @@
-; RUN: llvm-as < %s | llc -o /dev/null
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }* }
-	%struct._objc_cache = type opaque
-	%struct._objc_category = type { i8*, i8*, %struct._objc_method_list*, %struct._objc_method_list*, %struct._objc_protocol_list*, i32, %struct._prop_list_t* }
-	%struct._objc_class = type { %struct._objc_class*, %struct._objc_class*, i8*, i32, i32, i32, %struct._objc_ivar_list*, %struct._objc_method_list*, %struct._objc_cache*, %struct._objc_protocol_list*, i8*, %struct._objc_class_extension* }
-	%struct._objc_class_extension = type { i32, i8*, %struct._prop_list_t* }
-	%struct._objc_exception_data = type { [18 x i32], [4 x i8*] }
-	%struct._objc_ivar = type { i8*, i8*, i32 }
-	%struct._objc_ivar_list = type opaque
-	%struct._objc_method = type { %struct.objc_selector*, i8*, i8* }
-	%struct._objc_method_description = type { %struct.objc_selector*, i8* }
-	%struct._objc_method_description_list = type { i32, [0 x %struct._objc_method_description] }
-	%struct._objc_method_list = type opaque
-	%struct._objc_module = type { i32, i32, i8*, %struct._objc_symtab* }
-	%struct._objc_protocol = type { %struct._objc_protocol_extension*, i8*, %struct._objc_protocol_list*, %struct._objc_method_description_list*, %struct._objc_method_description_list* }
-	%struct._objc_protocol_extension = type { i32, %struct._objc_method_description_list*, %struct._objc_method_description_list*, %struct._prop_list_t* }
-	%struct._objc_protocol_list = type { %struct._objc_protocol_list*, i32, [0 x %struct._objc_protocol] }
-	%struct._objc_super = type <{ %struct.objc_object*, %struct.objc_class* }>
-	%struct._objc_symtab = type { i32, %struct.objc_selector*, i16, i16, [0 x i8*] }
-	%struct._prop_list_t = type { i32, i32, [0 x %struct._prop_t] }
-	%struct._prop_t = type { i8*, i8* }
-	%struct.objc_class = type opaque
-	%struct.objc_object = type opaque
-	%struct.objc_selector = type opaque
-@"\01L_OBJC_IMAGE_INFO" = internal constant [2 x i32] [i32 0, i32 16], section "__OBJC, __image_info,regular"		; <[2 x i32]*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"t.m\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [20 x i8] c"/Volumes/work/Radar\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at .str2 = internal constant [10 x i8] c"clang 1.0\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 16, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str3 = internal constant [3 x i8] c"f1\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([3 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([3 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([3 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 3, { }* null, i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [2 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*)], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* null, i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str5 = internal constant [3 x i8] c"l0\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 459008, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), i8* getelementptr ([3 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 5, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str6 = internal constant [3 x i8] c"f0\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.subprogram7 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([3 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([3 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([3 x i8]* @.str6, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, { }* null, i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str8 = internal constant [2 x i8] c"x\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable9 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to { }*), i8* getelementptr ([2 x i8]* @.str8, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
-@"\01L_OBJC_CLASS_NAME_" = internal global [1 x i8] zeroinitializer, section "__TEXT,__cstring,cstring_literals", align 1		; <[1 x i8]*> [#uses=1]
-@"\01L_OBJC_MODULES" = internal global %struct._objc_module { i32 7, i32 16, i8* getelementptr ([1 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), %struct._objc_symtab* null }, section "__OBJC,__module_info,regular,no_dead_strip", align 4		; <%struct._objc_module*> [#uses=1]
- at llvm.used = appending global [3 x i8*] [i8* bitcast ([2 x i32]* @"\01L_OBJC_IMAGE_INFO" to i8*), i8* getelementptr ([1 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), i8* bitcast (%struct._objc_module* @"\01L_OBJC_MODULES" to i8*)], section "llvm.metadata"		; <[3 x i8*]*> [#uses=0]
-
-define void @f1() nounwind {
-entry:
-	%x.addr.i = alloca i32		; <i32*> [#uses=2]
-	%l0 = alloca void (i32)*, align 4		; <void (i32)**> [#uses=2]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	call void @llvm.dbg.stoppoint(i32 4, i32 3, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to { }*))
-	store i32 1, i32* %x.addr.i
-	%0 = bitcast i32* %x.addr.i to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable9 to { }*))
-	call void @llvm.dbg.stoppoint(i32 2, i32 66, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.stoppoint(i32 5, i32 3, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to { }*))
-	%1 = bitcast void (i32)** %l0 to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*))
-	store void (i32)* @f0, void (i32)** %l0
-	call void @llvm.dbg.stoppoint(i32 6, i32 1, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret void
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind readnone
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind readnone
-
-define internal void @f0(i32 %x) nounwind alwaysinline {
-entry:
-	%x.addr = alloca i32		; <i32*> [#uses=2]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to { }*))
-	store i32 %x, i32* %x.addr
-	%0 = bitcast i32* %x.addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable9 to { }*))
-	call void @llvm.dbg.stoppoint(i32 2, i32 66, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to { }*))
-	ret void
-}
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind readnone
-
-declare void @llvm.dbg.region.end({ }*) nounwind readnone
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-06-12-InlineFuncStart.ll b/libclamav/c++/llvm/test/DebugInfo/2009-06-12-InlineFuncStart.ll
deleted file mode 100644
index 32e20ff..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-06-12-InlineFuncStart.ll
+++ /dev/null
@@ -1,75 +0,0 @@
-; RUN: llvm-as < %s | llc
-; RUN: llvm-as < %s | llc -O0
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 1, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 393233, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5627) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram5 = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str6 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
-
-define i32 @foo() nounwind alwaysinline {
-entry:
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 42, i32* %0, align 4
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %1, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret i32 %retval1
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
-
-define i32 @main() nounwind {
-entry:
-	%retval.i = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%1 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram5 to { }*))
-        br label %bb1
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 2, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram5 to { }*))
-	ret i32 %retval1
-
-bb1:
-	call void @llvm.dbg.stoppoint(i32 2, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*)) nounwind
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	store i32 42, i32* %0, align 4
-	%2 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %2, i32* %retval.i, align 4
-	%retval1.i = load i32* %retval.i		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*)) nounwind
-	store i32 %retval1.i, i32* %1, align 4
-	%3 = load i32* %1, align 4		; <i32> [#uses=1]
-	store i32 %3, i32* %retval, align 4
-	br label %return
-}
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-06-15-InlineFuncStart.ll b/libclamav/c++/llvm/test/DebugInfo/2009-06-15-InlineFuncStart.ll
deleted file mode 100644
index 2ece6a3..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-06-15-InlineFuncStart.ll
+++ /dev/null
@@ -1,77 +0,0 @@
-; Test inlined function handling. This test case is copied from 
-; 2009-06-12-InlineFunctStart.ll with one change. In function main, the bb1
-; does not have llvm.dbg.stoppiont intrinsic before llvm.dbg.func.start.
-; RUN: llvm-as < %s | llc
-; RUN: llvm-as < %s | llc -O0
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 1, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 393233, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5627) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram5 = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str6 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
-
-define i32 @foo() nounwind alwaysinline {
-entry:
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 42, i32* %0, align 4
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %1, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret i32 %retval1
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
-
-define i32 @main() nounwind {
-entry:
-	%retval.i = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%1 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram5 to { }*))
-        br label %bb1
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 2, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram5 to { }*))
-	ret i32 %retval1
-
-bb1:
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*)) nounwind
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	store i32 42, i32* %0, align 4
-	%2 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %2, i32* %retval.i, align 4
-	%retval1.i = load i32* %retval.i		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 1, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*)) nounwind
-	store i32 %retval1.i, i32* %1, align 4
-	%3 = load i32* %1, align 4		; <i32> [#uses=1]
-	store i32 %3, i32* %retval, align 4
-	br label %return
-}
diff --git a/libclamav/c++/llvm/test/DebugInfo/2009-06-15-abstract_origin.ll b/libclamav/c++/llvm/test/DebugInfo/2009-06-15-abstract_origin.ll
deleted file mode 100644
index 3029da0..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/2009-06-15-abstract_origin.ll
+++ /dev/null
@@ -1,275 +0,0 @@
-; RUN: llvm-as < %s | llc -asm-verbose -O0 | not grep ".long	0x0	## DW_AT_abstract_origin"
-
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }* }
-	%llvm.dbg.global_variable.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1, { }* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }* }
-	%struct.AAAAAImageParser = type { %struct.CObject* }
-	%struct.CObject = type { i32 }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [9 x i8] c"tcase.cc\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5646) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 4, i8* getelementptr ([9 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [8 x i8] c"tcase.h\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit4 = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 4, i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str5 = internal constant [8 x i8] c"CObject\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str6 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str6, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str7 = internal constant [2 x i8] c"d\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([2 x i8]* @.str7, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 6, i64 32, i64 32, i64 0, i32 1, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype8 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [3 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype8 to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*)], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite9 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str10 = internal constant [4 x i8] c"set\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str11 = internal constant [18 x i8] c"_ZN7CObject3setEi\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str10, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str10, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str11, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 3, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite9 to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array12 = internal constant [2 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype8 to { }*)], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite13 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array12 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str14 = internal constant [8 x i8] c"release\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str15 = internal constant [22 x i8] c"_ZN7CObject7releaseEv\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram16 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str14, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str14, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str15, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 4, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite13 to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array17 = internal constant [3 x { }*] [{ }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*), { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to { }*)], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite18 = internal constant %llvm.dbg.composite.type { i32 458771, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 1, i64 32, i64 32, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array17 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype19 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array20 = internal constant [2 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to { }*)], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array20 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram21 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([8 x i8]* @.str14, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str14, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str15, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 4, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype22 = internal constant %llvm.dbg.derivedtype.type { i32 458790, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str23 = internal constant [5 x i8] c"this\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram21 to { }*), i8* getelementptr ([5 x i8]* @.str23, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 4, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype22 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.array24 = internal constant [2 x { }*] [{ }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to { }*)], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite25 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array24 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str26 = internal constant [14 x i8] c"ReleaseObject\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str27 = internal constant [27 x i8] c"_Z13ReleaseObjectP7CObject\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram28 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([14 x i8]* @.str26, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str26, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str27, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 10, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite25 to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str29 = internal constant [7 x i8] c"object\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.variable30 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram28 to { }*), i8* getelementptr ([7 x i8]* @.str29, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 10, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype22 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str31 = internal constant [17 x i8] c"AAAAAImageParser\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at .str33 = internal constant [13 x i8] c"mCustomWhite\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype34 = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([13 x i8]* @.str33, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 21, i64 32, i64 32, i64 0, i32 1, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype35 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite45 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array36 = internal constant [3 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype35 to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*)], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite37 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array36 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str38 = internal constant [18 x i8] c"~AAAAAImageParser\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram39 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([18 x i8]* @.str38, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str38, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 24, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite37 to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array40 = internal constant [3 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype35 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to { }*)], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite41 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array40 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str42 = internal constant [36 x i8] c"_ZN16AAAAAImageParser3setEP7CObject\00", section "llvm.metadata"		; <[36 x i8]*> [#uses=1]
- at llvm.dbg.subprogram43 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str10, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str10, i32 0, i32 0), i8* getelementptr ([36 x i8]* @.str42, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 19, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite41 to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array44 = internal constant [3 x { }*] [{ }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype34 to { }*), { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram39 to { }*), { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram43 to { }*)], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite45 = internal constant %llvm.dbg.composite.type { i32 458771, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([17 x i8]* @.str31, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 16, i64 32, i64 32, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array44 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype46 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite45 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array47 = internal constant [2 x { }*] [{ }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype46 to { }*)], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite48 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array47 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str49 = internal constant [26 x i8] c"_ZN16AAAAAImageParserD2Ev\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram50 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([18 x i8]* @.str38, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str38, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str49, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 24, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite48 to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype51 = internal constant %llvm.dbg.derivedtype.type { i32 458790, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype46 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.variable52 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram50 to { }*), i8* getelementptr ([5 x i8]* @.str23, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 24, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype51 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str53 = internal constant [26 x i8] c"_ZN16AAAAAImageParserD1Ev\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram54 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([18 x i8]* @.str38, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str38, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str53, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 24, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite48 to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable55 = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram54 to { }*), i8* getelementptr ([5 x i8]* @.str23, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*), i32 24, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype51 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.array56 = internal constant [1 x { }*] [{ }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*)], section "llvm.metadata"		; <[1 x { }*]*> [#uses=1]
- at llvm.dbg.composite57 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([1 x { }*]* @llvm.dbg.array56 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str58 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.subprogram59 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([5 x i8]* @.str58, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str58, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str58, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 3, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite57 to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str60 = internal constant [2 x i8] c"C\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable61 = internal constant %llvm.dbg.variable.type { i32 459008, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram59 to { }*), i8* getelementptr ([2 x i8]* @.str60, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype46 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at _ZZ4mainE3C.0 = private constant %struct.AAAAAImageParser zeroinitializer		; <%struct.AAAAAImageParser*> [#uses=2]
- at llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 52 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str62 = internal constant [14 x i8] c"_ZZ4mainE3C.0\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str63 = internal constant [4 x i8] c"C.0\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type { i32 458804, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([14 x i8]* @.str62, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str63, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str62, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite45 to { }*), i1 false, i1 true, { }* bitcast (%struct.AAAAAImageParser* @_ZZ4mainE3C.0 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.global_variable.type*> [#uses=0]
-
-define void @_ZN16AAAAAImageParserD2Ev(%struct.AAAAAImageParser* %this) nounwind ssp {
-entry:
-	%object_addr.i = alloca %struct.CObject*		; <%struct.CObject**> [#uses=4]
-	%retval.i = alloca %struct.CObject*		; <%struct.CObject**> [#uses=2]
-	%0 = alloca %struct.CObject*		; <%struct.CObject**> [#uses=2]
-	%this_addr = alloca %struct.AAAAAImageParser*		; <%struct.AAAAAImageParser**> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram50 to { }*))
-	%1 = bitcast %struct.AAAAAImageParser** %this_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable52 to { }*))
-	store %struct.AAAAAImageParser* %this, %struct.AAAAAImageParser** %this_addr
-	call void @llvm.dbg.stoppoint(i32 26, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	%2 = load %struct.AAAAAImageParser** %this_addr, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	%3 = getelementptr %struct.AAAAAImageParser* %2, i32 0, i32 0		; <%struct.CObject**> [#uses=1]
-	%4 = load %struct.CObject** %3, align 4		; <%struct.CObject*> [#uses=1]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram28 to { }*)) nounwind
-	%5 = bitcast %struct.CObject** %object_addr.i to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %5, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable30 to { }*)) nounwind
-	store %struct.CObject* %4, %struct.CObject** %object_addr.i
-	call void @llvm.dbg.stoppoint(i32 11, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	%6 = load %struct.CObject** %object_addr.i, align 4		; <%struct.CObject*> [#uses=1]
-	%7 = icmp ne %struct.CObject* %6, null		; <i1> [#uses=1]
-	br i1 %7, label %bb.i, label %_Z13ReleaseObjectP7CObject.exit
-
-bb.i:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 12, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	%8 = load %struct.CObject** %object_addr.i, align 4		; <%struct.CObject*> [#uses=1]
-	call void @_ZN7CObject7releaseEv(%struct.CObject* %8) nounwind
-	br label %_Z13ReleaseObjectP7CObject.exit
-
-_Z13ReleaseObjectP7CObject.exit:		; preds = %bb.i, %entry
-	call void @llvm.dbg.stoppoint(i32 13, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	store %struct.CObject* null, %struct.CObject** %0, align 4
-	%9 = load %struct.CObject** %0, align 4		; <%struct.CObject*> [#uses=1]
-	store %struct.CObject* %9, %struct.CObject** %retval.i, align 4
-	%retval2.i = load %struct.CObject** %retval.i		; <%struct.CObject*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 13, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram28 to { }*))
-	br label %bb
-
-bb:		; preds = %_Z13ReleaseObjectP7CObject.exit
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	br label %return
-
-return:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram50 to { }*))
-	ret void
-}
-
-define linkonce_odr void @_ZN7CObject7releaseEv(%struct.CObject* %this) nounwind ssp {
-entry:
-	%this_addr = alloca %struct.CObject*		; <%struct.CObject**> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram21 to { }*))
-	%0 = bitcast %struct.CObject** %this_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*))
-	store %struct.CObject* %this, %struct.CObject** %this_addr
-	call void @llvm.dbg.stoppoint(i32 4, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	%1 = load %struct.CObject** %this_addr, align 4		; <%struct.CObject*> [#uses=1]
-	%2 = getelementptr %struct.CObject* %1, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %2, align 4
-	br label %return
-
-return:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 4, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram21 to { }*))
-	ret void
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind readnone
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind readnone
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind readnone
-
-declare void @llvm.dbg.region.end({ }*) nounwind readnone
-
-define void @_ZN16AAAAAImageParserD1Ev(%struct.AAAAAImageParser* %this) nounwind ssp {
-entry:
-	%object_addr.i = alloca %struct.CObject*		; <%struct.CObject**> [#uses=4]
-	%retval.i = alloca %struct.CObject*		; <%struct.CObject**> [#uses=2]
-	%0 = alloca %struct.CObject*		; <%struct.CObject**> [#uses=2]
-	%this_addr = alloca %struct.AAAAAImageParser*		; <%struct.AAAAAImageParser**> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram54 to { }*))
-	%1 = bitcast %struct.AAAAAImageParser** %this_addr to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %1, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable55 to { }*))
-	store %struct.AAAAAImageParser* %this, %struct.AAAAAImageParser** %this_addr
-	call void @llvm.dbg.stoppoint(i32 26, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	%2 = load %struct.AAAAAImageParser** %this_addr, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	%3 = getelementptr %struct.AAAAAImageParser* %2, i32 0, i32 0		; <%struct.CObject**> [#uses=1]
-	%4 = load %struct.CObject** %3, align 4		; <%struct.CObject*> [#uses=1]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram28 to { }*)) nounwind
-	%5 = bitcast %struct.CObject** %object_addr.i to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %5, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable30 to { }*)) nounwind
-	store %struct.CObject* %4, %struct.CObject** %object_addr.i
-	call void @llvm.dbg.stoppoint(i32 11, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	%6 = load %struct.CObject** %object_addr.i, align 4		; <%struct.CObject*> [#uses=1]
-	%7 = icmp ne %struct.CObject* %6, null		; <i1> [#uses=1]
-	br i1 %7, label %bb.i, label %_Z13ReleaseObjectP7CObject.exit
-
-bb.i:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 12, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	%8 = load %struct.CObject** %object_addr.i, align 4		; <%struct.CObject*> [#uses=1]
-	call void @_ZN7CObject7releaseEv(%struct.CObject* %8) nounwind
-	br label %_Z13ReleaseObjectP7CObject.exit
-
-_Z13ReleaseObjectP7CObject.exit:		; preds = %bb.i, %entry
-	call void @llvm.dbg.stoppoint(i32 13, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	store %struct.CObject* null, %struct.CObject** %0, align 4
-	%9 = load %struct.CObject** %0, align 4		; <%struct.CObject*> [#uses=1]
-	store %struct.CObject* %9, %struct.CObject** %retval.i, align 4
-	%retval2.i = load %struct.CObject** %retval.i		; <%struct.CObject*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 13, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*)) nounwind
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram28 to { }*))
-	br label %bb
-
-bb:		; preds = %_Z13ReleaseObjectP7CObject.exit
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	br label %return
-
-return:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 27, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit4 to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram54 to { }*))
-	ret void
-}
-
-define i32 @main() ssp {
-entry:
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%C = alloca %struct.AAAAAImageParser*		; <%struct.AAAAAImageParser**> [#uses=3]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%C.1 = alloca %struct.AAAAAImageParser*		; <%struct.AAAAAImageParser**> [#uses=4]
-	%1 = alloca %struct.AAAAAImageParser*		; <%struct.AAAAAImageParser**> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram59 to { }*))
-	%2 = bitcast %struct.AAAAAImageParser** %C to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %2, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable61 to { }*))
-	call void @llvm.dbg.stoppoint(i32 4, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%3 = call i8* @_Znwm(i32 4)		; <i8*> [#uses=1]
-	%4 = bitcast i8* %3 to %struct.AAAAAImageParser*		; <%struct.AAAAAImageParser*> [#uses=1]
-	store %struct.AAAAAImageParser* %4, %struct.AAAAAImageParser** %1, align 4
-	%5 = load %struct.AAAAAImageParser** %1, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	%6 = getelementptr %struct.AAAAAImageParser* %5, i32 0, i32 0		; <%struct.CObject**> [#uses=1]
-	%7 = load %struct.CObject** getelementptr (%struct.AAAAAImageParser* @_ZZ4mainE3C.0, i32 0, i32 0), align 4		; <%struct.CObject*> [#uses=1]
-	store %struct.CObject* %7, %struct.CObject** %6, align 4
-	%8 = load %struct.AAAAAImageParser** %1, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	store %struct.AAAAAImageParser* %8, %struct.AAAAAImageParser** %C, align 4
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%9 = load %struct.AAAAAImageParser** %C, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	store %struct.AAAAAImageParser* %9, %struct.AAAAAImageParser** %C.1, align 4
-	%10 = load %struct.AAAAAImageParser** %C.1, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	%11 = icmp ne %struct.AAAAAImageParser* %10, null		; <i1> [#uses=1]
-	br i1 %11, label %bb, label %bb1
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb
-
-bb:		; preds = %12, %entry
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%13 = load %struct.AAAAAImageParser** %C.1, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	call void @_ZN16AAAAAImageParserD1Ev(%struct.AAAAAImageParser* %13) nounwind
-	%14 = load %struct.AAAAAImageParser** %C.1, align 4		; <%struct.AAAAAImageParser*> [#uses=1]
-	%15 = bitcast %struct.AAAAAImageParser* %14 to i8*		; <i8*> [#uses=1]
-	call void @_ZdlPv(i8* %15) nounwind
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 0, i32* %0, align 4
-	%16 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %16, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %bb1
-	%retval2 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram59 to { }*))
-	ret i32 %retval2
-}
-
-declare i8* @_Znwm(i32)
-
-declare void @_ZdlPv(i8*) nounwind
diff --git a/libclamav/c++/llvm/test/DebugInfo/deaddebuglabel.ll b/libclamav/c++/llvm/test/DebugInfo/deaddebuglabel.ll
deleted file mode 100644
index edab7e8..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/deaddebuglabel.ll
+++ /dev/null
@@ -1,62 +0,0 @@
-; RUN: llvm-as < %s | llc -O0 | grep "label" | count 8
-; PR2614
-; XFAIL: *
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-f80:32:32-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, {  }*, i8*, {  }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, {  }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.compositetype.type = type { i32, {  }*, i8*, {  }*, i32, i64, i64, i64, i32, {  }*, {  }* }
-	%llvm.dbg.derivedtype.type = type { i32, {  }*, i8*, {  }*, i32, i64, i64, i64, i32, {  }* }
-	%llvm.dbg.global_variable.type = type { i32, {  }*, {  }*, i8*, i8*, i8*, {  }*, i32, {  }*, i1, i1, {  }* }
-	%llvm.dbg.subprogram.type = type { i32, {  }*, {  }*, i8*, i8*, i8*, {  }*, i32, {  }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, {  }*, i8*, {  }*, i32, {  }* }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 52 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=0]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [17 x i8] c"deaddebuglabel.d\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at .str1 = internal constant [50 x i8] c"/home/kamm/eigenes/projekte/llvmdc/llvmdc/mytests\00", section "llvm.metadata"		; <[50 x i8]*> [#uses=1]
- at .str2 = internal constant [48 x i8] c"LLVMDC (http://www.dsource.org/projects/llvmdc)\00", section "llvm.metadata"		; <[48 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type {
-    i32 393233, 
-    {  }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to {  }*), 
-    i32 2, 
-    i8* getelementptr ([17 x i8]* @.str, i32 0, i32 0), 
-    i8* getelementptr ([50 x i8]* @.str1, i32 0, i32 0), 
-    i8* getelementptr ([48 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str5 = internal constant [20 x i8] c"deaddebuglabel.main\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at .str6 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.subprogram7 = internal constant %llvm.dbg.subprogram.type {
-    i32 393262, 
-    {  }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to {  }*), 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i8* getelementptr ([20 x i8]* @.str5, i32 0, i32 0), 
-    i8* getelementptr ([20 x i8]* @.str5, i32 0, i32 0), 
-    i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i32 3, 
-    {  }* null, 
-    i1 false, 
-    i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-
-declare void @llvm.dbg.func.start({  }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, {  }*) nounwind
-
-declare void @llvm.dbg.region.end({  }*) nounwind
-
-define fastcc i32 @main() {
-entry.main:
-	call void @llvm.dbg.func.start( {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to {  }*) )
-	br i1 true, label %reachable, label %unreachable
-
-reachable:		; preds = %entry.main
-	call void @llvm.dbg.region.end( {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to {  }*) )
-	ret i32 1
-
-unreachable:		; preds = %entry.main
-	call void @llvm.dbg.stoppoint( i32 7, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	call void @llvm.dbg.region.end( {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram7 to {  }*) )
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/DebugInfo/dg.exp b/libclamav/c++/llvm/test/DebugInfo/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/DebugInfo/funccall.ll b/libclamav/c++/llvm/test/DebugInfo/funccall.ll
deleted file mode 100644
index 47fe4c2..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/funccall.ll
+++ /dev/null
@@ -1,147 +0,0 @@
-;; RUN: llvm-as < %s | llc
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, {  }*, i8*, {  }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, {  }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.global_variable.type = type { i32, {  }*, {  }*, i8*, i8*, i8*, {  }*, i32, {  }*, i1, i1, {  }* }
-	%llvm.dbg.subprogram.type = type { i32, {  }*, {  }*, i8*, i8*, i8*, {  }*, i32, {  }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, {  }*, i8*, {  }*, i32, {  }* }
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 52 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type {
-    i32 393262, 
-    {  }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to {  }*), 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i8* getelementptr ([4 x i8]* @str, i32 0, i32 0), 
-    i8* getelementptr ([4 x i8]* @str, i32 0, i32 0), 
-    i8* null, 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i32 4, 
-    {  }* null, 
-    i1 false, 
-    i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at str = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type {
-    i32 393233, 
-    {  }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to {  }*), 
-    i32 1, 
-    i8* getelementptr ([11 x i8]* @str1, i32 0, i32 0), 
-    i8* getelementptr ([50 x i8]* @str2, i32 0, i32 0), 
-    i8* getelementptr ([45 x i8]* @str3, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at str1 = internal constant [11 x i8] c"funccall.c\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at str2 = internal constant [50 x i8] c"/Volumes/Big2/llvm/llvm/test/Regression/Debugger/\00", section "llvm.metadata"		; <[50 x i8]*> [#uses=1]
- at str3 = internal constant [45 x i8] c"4.0.1 LLVM (Apple Computer, Inc. build 5421)\00", section "llvm.metadata"		; <[45 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type {
-    i32 393472, 
-    {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to {  }*), 
-    i8* getelementptr ([2 x i8]* @str4, i32 0, i32 0), 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i32 5, 
-    {  }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to {  }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at str4 = internal constant [2 x i8] c"t\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    i32 393252, 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i8* getelementptr ([4 x i8]* @str15, i32 0, i32 0), 
-    {  }* null, 
-    i32 0, 
-    i64 32, 
-    i64 32, 
-    i64 0, 
-    i32 0, 
-    i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at str15 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram2 = internal constant %llvm.dbg.subprogram.type {
-    i32 393262, 
-    {  }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to {  }*), 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i8* getelementptr ([5 x i8]* @str6, i32 0, i32 0), 
-    i8* getelementptr ([5 x i8]* @str6, i32 0, i32 0), 
-    i8* null, 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i32 8, 
-    {  }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to {  }*), 
-    i1 false, 
-    i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at str6 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.variable3 = internal constant %llvm.dbg.variable.type {
-    i32 393474, 
-    {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram2 to {  }*), 
-    i8* getelementptr ([7 x i8]* @str7, i32 0, i32 0), 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i32 8, 
-    {  }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to {  }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at str7 = internal constant [7 x i8] c"retval\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type {
-    i32 393268, 
-    {  }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to {  }*), 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i8* getelementptr ([2 x i8]* @str4, i32 0, i32 0), 
-    i8* getelementptr ([2 x i8]* @str4, i32 0, i32 0), 
-    i8* null, 
-    {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*), 
-    i32 2, 
-    {  }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to {  }*), 
-    i1 true, 
-    i1 true, 
-    {  }* bitcast (i32* @q to {  }*) }, section "llvm.metadata"		; <%llvm.dbg.global_variable.type*> [#uses=0]
- at str4.upgrd.1 = internal constant [2 x i8] c"q\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=0]
- at q = internal global i32 0		; <i32*> [#uses=7]
-
-declare void @llvm.dbg.func.start({  }*)
-
-declare void @llvm.dbg.stoppoint(i32, i32, {  }*)
-
-declare void @llvm.dbg.declare({  }*, {  }*)
-
-declare void @llvm.dbg.region.start({  }*)
-
-declare void @llvm.dbg.region.end({  }*)
-
-define void @foo() {
-entry:
-	%t = alloca i32, align 4		; <i32*> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start( {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to {  }*) )
-	call void @llvm.dbg.stoppoint( i32 4, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	%t.upgrd.2 = bitcast i32* %t to {  }*		; <{  }*> [#uses=1]
-	call void @llvm.dbg.declare( {  }* %t.upgrd.2, {  }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to {  }*) )
-	call void @llvm.dbg.stoppoint( i32 5, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	%tmp = load i32* @q		; <i32> [#uses=1]
-	store i32 %tmp, i32* %t
-	call void @llvm.dbg.stoppoint( i32 6, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	%tmp1 = load i32* %t		; <i32> [#uses=1]
-	%tmp2 = add i32 %tmp1, 1		; <i32> [#uses=1]
-	store i32 %tmp2, i32* @q
-	call void @llvm.dbg.stoppoint( i32 7, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	call void @llvm.dbg.region.end( {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to {  }*) )
-	ret void
-}
-
-define i32 @main() {
-entry:
-	%retval = alloca i32, align 4		; <i32*> [#uses=3]
-	%tmp = alloca i32, align 4		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start( {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram2 to {  }*) )
-	call void @llvm.dbg.stoppoint( i32 8, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	%retval.upgrd.3 = bitcast i32* %retval to {  }*		; <{  }*> [#uses=1]
-	call void @llvm.dbg.declare( {  }* %retval.upgrd.3, {  }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable3 to {  }*) )
-	call void @llvm.dbg.stoppoint( i32 9, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	store i32 0, i32* @q
-	call void @llvm.dbg.stoppoint( i32 10, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	call void (...)* bitcast (void ()* @foo to void (...)*)( )
-	call void @llvm.dbg.stoppoint( i32 11, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	%tmp.upgrd.4 = load i32* @q		; <i32> [#uses=1]
-	%tmp1 = sub i32 %tmp.upgrd.4, 1		; <i32> [#uses=1]
-	store i32 %tmp1, i32* @q
-	call void @llvm.dbg.stoppoint( i32 13, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	%tmp2 = load i32* @q		; <i32> [#uses=1]
-	store i32 %tmp2, i32* %tmp
-	%tmp3 = load i32* %tmp		; <i32> [#uses=1]
-	store i32 %tmp3, i32* %retval
-	%retval.upgrd.5 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint( i32 14, i32 0, {  }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to {  }*) )
-	call void @llvm.dbg.region.end( {  }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram2 to {  }*) )
-	ret i32 %retval.upgrd.5
-}
diff --git a/libclamav/c++/llvm/test/DebugInfo/globalGetElementPtr.ll b/libclamav/c++/llvm/test/DebugInfo/globalGetElementPtr.ll
deleted file mode 100644
index 89e0617..0000000
--- a/libclamav/c++/llvm/test/DebugInfo/globalGetElementPtr.ll
+++ /dev/null
@@ -1,264 +0,0 @@
-; RUN: llvm-as < %s | llc
-; ModuleID = 'foo.c'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %struct.anon*, i32, i8*, i8*, i8* }
-	%llvm.dbg.compositetype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, %struct.anon*, %struct.anon* }
-	%llvm.dbg.derivedtype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, %struct.anon* }
-	%llvm.dbg.global_variable.type = type { i32, %struct.anon*, %struct.anon*, i8*, i8*, i8*, %struct.anon*, i32, %struct.anon*, i1, i1, %struct.anon* }
-	%llvm.dbg.subprogram.type = type { i32, %struct.anon*, %struct.anon*, i8*, i8*, i8*, %struct.anon*, i32, %struct.anon*, i1, i1 }
-	%llvm.dbg.subrange.type = type { i32, i64, i64 }
-	%llvm.dbg.variable.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, %struct.anon* }
-	%struct.S271 = type { [0 x %struct.anon], %struct.anon }
-	%struct.anon = type {  }
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type {
-    i32 393262, 
-    %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %struct.anon*), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), 
-    i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), 
-    i8* null, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 2, 
-    %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %struct.anon*), 
-    i1 false, 
-    i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type {
-    i32 393233, 
-    %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %struct.anon*), 
-    i32 1, 
-    i8* getelementptr ([6 x i8]* @.str, i32 0, i32 0), 
-    i8* getelementptr ([23 x i8]* @.str1, i32 0, i32 0), 
-    i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [6 x i8] c"foo.c\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1 = internal constant [23 x i8] c"/Volumes/MacOS9/tests/\00", section "llvm.metadata"		; <[23 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5546) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"var\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type {
-    i32 393231, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* null, 
-    %struct.anon* null, 
-    i32 0, 
-    i64 32, 
-    i64 32, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    i32 393252, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), 
-    %struct.anon* null, 
-    i32 0, 
-    i64 8, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    i32 6 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str4 = internal constant [5 x i8] c"char\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type {
-    i32 393474, 
-    %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*), 
-    i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 2, 
-    %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str5 = internal constant [7 x i8] c"retval\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at a271 = weak global [0 x %struct.S271] zeroinitializer		; <[0 x %struct.S271]*> [#uses=3]
- at llvm.dbg.subprogram6 = internal constant %llvm.dbg.subprogram.type {
-    i32 393262, 
-    %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %struct.anon*), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* getelementptr ([5 x i8]* @.str7, i32 0, i32 0), 
-    i8* getelementptr ([5 x i8]* @.str7, i32 0, i32 0), 
-    i8* null, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 3, 
-    %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype8 to %struct.anon*), 
-    i1 false, 
-    i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str7 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.basictype8 = internal constant %llvm.dbg.basictype.type {
-    i32 393252, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* getelementptr ([4 x i8]* @.str9, i32 0, i32 0), 
-    %struct.anon* null, 
-    i32 0, 
-    i64 32, 
-    i64 32, 
-    i64 0, 
-    i32 0, 
-    i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str9 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.variable10 = internal constant %llvm.dbg.variable.type {
-    i32 393474, 
-    %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*), 
-    i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 3, 
-    %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype8 to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type {
-    i32 393268, 
-    %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to %struct.anon*), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* getelementptr ([5 x i8]* @.str11, i32 0, i32 0), 
-    i8* getelementptr ([5 x i8]* @.str11, i32 0, i32 0), 
-    i8* null, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 1, 
-    %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype to %struct.anon*), 
-    i1 false, 
-    i1 true, 
-    %struct.anon* getelementptr ([0 x %struct.S271]* @a271, i32 0, i32 0, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.global_variable.type*> [#uses=0]
- at llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 52 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str11 = internal constant [5 x i8] c"a271\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.compositetype = internal constant %llvm.dbg.compositetype.type {
-    i32 393217, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* null, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 0, 
-    i64 0, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype12 to %struct.anon*), 
-    %struct.anon* bitcast ([1 x %struct.anon*]* @llvm.dbg.array25 to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.compositetype.type*> [#uses=1]
- at llvm.dbg.compositetype12 = internal constant %llvm.dbg.compositetype.type {
-    i32 393235, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* getelementptr ([5 x i8]* @.str13, i32 0, i32 0), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 1, 
-    i64 0, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* null, 
-    %struct.anon* bitcast ([2 x %struct.anon*]* @llvm.dbg.array23 to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.compositetype.type*> [#uses=1]
- at .str13 = internal constant [5 x i8] c"S271\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype14 = internal constant %llvm.dbg.derivedtype.type {
-    i32 393229, 
-    %struct.anon* null, 
-    i8* getelementptr ([2 x i8]* @.str15, i32 0, i32 0), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 1, 
-    i64 0, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype16 to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str15 = internal constant [2 x i8] c"a\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.compositetype16 = internal constant %llvm.dbg.compositetype.type {
-    i32 393217, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* null, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 0, 
-    i64 0, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype17 to %struct.anon*), 
-    %struct.anon* bitcast ([1 x %struct.anon*]* @llvm.dbg.array18 to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.compositetype.type*> [#uses=1]
- at llvm.dbg.compositetype17 = internal constant %llvm.dbg.compositetype.type {
-    i32 393235, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* null, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 1, 
-    i64 0, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* null, 
-    %struct.anon* bitcast ([0 x %struct.anon*]* @llvm.dbg.array to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.compositetype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [0 x %struct.anon*] zeroinitializer, section "llvm.metadata"		; <[0 x %struct.anon*]*> [#uses=1]
- at llvm.dbg.subrange = internal constant %llvm.dbg.subrange.type {
-    i32 393249, 
-    i64 0, 
-    i64 4 }, section "llvm.metadata"		; <%llvm.dbg.subrange.type*> [#uses=1]
- at llvm.dbg.array18 = internal constant [1 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange to %struct.anon*) ], section "llvm.metadata"		; <[1 x %struct.anon*]*> [#uses=1]
- at llvm.dbg.derivedtype19 = internal constant %llvm.dbg.derivedtype.type {
-    i32 393229, 
-    %struct.anon* null, 
-    i8* getelementptr ([2 x i8]* @.str20, i32 0, i32 0), 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 1, 
-    i64 0, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype21 to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str20 = internal constant [2 x i8] c"b\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.compositetype21 = internal constant %llvm.dbg.compositetype.type {
-    i32 393235, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i8* null, 
-    %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
-    i32 1, 
-    i64 0, 
-    i64 8, 
-    i64 0, 
-    i32 0, 
-    %struct.anon* null, 
-    %struct.anon* bitcast ([0 x %struct.anon*]* @llvm.dbg.array22 to %struct.anon*) }, section "llvm.metadata"		; <%llvm.dbg.compositetype.type*> [#uses=1]
- at llvm.dbg.array22 = internal constant [0 x %struct.anon*] zeroinitializer, section "llvm.metadata"		; <[0 x %struct.anon*]*> [#uses=1]
- at llvm.dbg.array23 = internal constant [2 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype14 to %struct.anon*), %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to %struct.anon*) ], section "llvm.metadata"		; <[2 x %struct.anon*]*> [#uses=1]
- at llvm.dbg.subrange24 = internal constant %llvm.dbg.subrange.type {
-    i32 393249, 
-    i64 0, 
-    i64 4 }, section "llvm.metadata"		; <%llvm.dbg.subrange.type*> [#uses=1]
- at llvm.dbg.array25 = internal constant [1 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange24 to %struct.anon*) ], section "llvm.metadata"		; <[1 x %struct.anon*]*> [#uses=1]
-
-define i8* @var() {
-entry:
-	%retval = alloca i8*		; <i8**> [#uses=3]
-	%tmp = alloca i8*		; <i8**> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*) )
-	call void @llvm.dbg.stoppoint( i32 2, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
-	%retval1 = bitcast i8** %retval to %struct.anon*		; <%struct.anon*> [#uses=1]
-	call void @llvm.dbg.declare( %struct.anon* %retval1, %struct.anon* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to %struct.anon*) )
-	bitcast %struct.S271* getelementptr ([0 x %struct.S271]* @a271, i32 0, i32 0) to i8*		; <i8*>:0 [#uses=0]
-	store i8* bitcast ([0 x %struct.S271]* @a271 to i8*), i8** %tmp, align 4
-	%tmp2 = load i8** %tmp, align 4		; <i8*> [#uses=1]
-	store i8* %tmp2, i8** %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval3 = load i8** %retval		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint( i32 2, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
-	call void @llvm.dbg.region.end( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*) )
-	ret i8* %retval3
-}
-
-declare void @llvm.dbg.func.start(%struct.anon*) nounwind 
-
-declare void @llvm.dbg.stoppoint(i32, i32, %struct.anon*) nounwind 
-
-declare void @llvm.dbg.declare(%struct.anon*, %struct.anon*) nounwind 
-
-declare void @llvm.dbg.region.end(%struct.anon*) nounwind 
-
-define i32 @main() {
-entry:
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*) )
-	call void @llvm.dbg.stoppoint( i32 3, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
-	%retval1 = bitcast i32* %retval to %struct.anon*		; <%struct.anon*> [#uses=1]
-	call void @llvm.dbg.declare( %struct.anon* %retval1, %struct.anon* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable10 to %struct.anon*) )
-	br label %return
-
-return:		; preds = %entry
-	%retval2 = load i32* %retval		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint( i32 3, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
-	call void @llvm.dbg.region.end( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*) )
-	ret i32 %retval2
-}
diff --git a/libclamav/c++/llvm/test/FrontendAda/Support/element_copy.ads b/libclamav/c++/llvm/test/FrontendAda/Support/element_copy.ads
deleted file mode 100644
index 52c6e49..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/Support/element_copy.ads
+++ /dev/null
@@ -1,8 +0,0 @@
-package Element_Copy is
-   type SmallInt is range 1 .. 4;
-   type SmallStr is array (SmallInt range <>) of Character;
-   type VariableSizedField (D : SmallInt := 2) is record
-      S : SmallStr (1 .. D) := "Hi";
-   end record;
-   function F return VariableSizedField;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/Support/fat_fields.ads b/libclamav/c++/llvm/test/FrontendAda/Support/fat_fields.ads
deleted file mode 100644
index d3eab3e..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/Support/fat_fields.ads
+++ /dev/null
@@ -1,6 +0,0 @@
-package Fat_Fields is
-   pragma Elaborate_Body;
-   type A is array (Positive range <>) of Boolean;
-   type A_Ptr is access A;
-   P : A_Ptr := null;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/Support/global_constant.ads b/libclamav/c++/llvm/test/FrontendAda/Support/global_constant.ads
deleted file mode 100644
index cef4b11..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/Support/global_constant.ads
+++ /dev/null
@@ -1,4 +0,0 @@
-package Global_Constant is
-   pragma Elaborate_Body;
-   An_Error : exception;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/Support/non_lvalue.ads b/libclamav/c++/llvm/test/FrontendAda/Support/non_lvalue.ads
deleted file mode 100644
index 7d4eeed..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/Support/non_lvalue.ads
+++ /dev/null
@@ -1,11 +0,0 @@
-package Non_LValue is
-   type T (Length : Natural) is record
-      A : String (1 .. Length);
-      B : String (1 .. Length);
-   end record;
-   type T_Ptr is access all T;
-   type U is record
-      X : T_Ptr;
-   end record;
-   function A (Y : U) return String;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/Support/unc_constructor.ads b/libclamav/c++/llvm/test/FrontendAda/Support/unc_constructor.ads
deleted file mode 100644
index d6f8db5..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/Support/unc_constructor.ads
+++ /dev/null
@@ -1,8 +0,0 @@
-package Unc_Constructor is
-   type C is null record;
-   type A is array (Positive range <>) of C;
-   A0 : constant A;
-   procedure P (X : A);
-private
-   A0 : aliased constant A := (1 .. 0 => (null record));
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/Support/var_offset.ads b/libclamav/c++/llvm/test/FrontendAda/Support/var_offset.ads
deleted file mode 100644
index 55d0eb2..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/Support/var_offset.ads
+++ /dev/null
@@ -1,9 +0,0 @@
-package Var_Offset is
-   pragma Elaborate_Body;
-   type T (L : Natural) is record
-      Var_Len   : String (1 .. L);
-      Space     : Integer;
-      Small     : Character;
-      Bad_Field : Character;
-   end record;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/Support/var_size.ads b/libclamav/c++/llvm/test/FrontendAda/Support/var_size.ads
deleted file mode 100644
index 6a570cb..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/Support/var_size.ads
+++ /dev/null
@@ -1,7 +0,0 @@
-package Var_Size is
-   type T (Length : Natural) is record
-      A : String (1 .. Length);
-      B : String (1 .. Length);
-   end record;
-   function A (X : T) return String;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/array_constructor.adb b/libclamav/c++/llvm/test/FrontendAda/array_constructor.adb
deleted file mode 100644
index de64b45..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/array_constructor.adb
+++ /dev/null
@@ -1,6 +0,0 @@
--- RUN: %llvmgcc -c %s
-procedure Array_Constructor is
-   A : array (Integer range <>) of Boolean := (True, False);
-begin
-   null;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/array_range_ref.adb b/libclamav/c++/llvm/test/FrontendAda/array_range_ref.adb
deleted file mode 100644
index ae9bdc6..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/array_range_ref.adb
+++ /dev/null
@@ -1,7 +0,0 @@
--- RUN: %llvmgcc -c %s
-procedure Array_Range_Ref is
-   A : String (1 .. 3);
-   B : String := A (A'RANGE)(1 .. 3);
-begin
-   null;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/array_ref.adb b/libclamav/c++/llvm/test/FrontendAda/array_ref.adb
deleted file mode 100644
index 9577e21..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/array_ref.adb
+++ /dev/null
@@ -1,11 +0,0 @@
--- RUN: %llvmgcc -c %s
-procedure Array_Ref is
-   type A is array (Natural range <>, Natural range <>) of Boolean;
-   type A_Access is access A;
-   function Get (X : A_Access) return Boolean is
-   begin
-      return X (0, 0);
-   end;
-begin
-   null;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/array_size.adb b/libclamav/c++/llvm/test/FrontendAda/array_size.adb
deleted file mode 100644
index 2f07d06..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/array_size.adb
+++ /dev/null
@@ -1,10 +0,0 @@
--- RUN: %llvmgcc -c %s
-procedure Array_Size is
-   subtype S is String (1 .. 2);
-   type R is record
-      A : S;
-   end record;
-   X : R;
-begin
-   null;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/asm.adb b/libclamav/c++/llvm/test/FrontendAda/asm.adb
deleted file mode 100644
index 575617c..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/asm.adb
+++ /dev/null
@@ -1,6 +0,0 @@
--- RUN: %llvmgcc -c %s
-with System.Machine_Code;
-procedure Asm is
-begin
-   System.Machine_Code.Asm ("");
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/constant_fold.ads b/libclamav/c++/llvm/test/FrontendAda/constant_fold.ads
deleted file mode 100644
index 6223e7c..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/constant_fold.ads
+++ /dev/null
@@ -1,4 +0,0 @@
--- RUN: %llvmgcc -S -emit-llvm %s -o - | not grep ptrtoint
-package Constant_Fold is
-  Error : exception;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/debug_var_size.ads b/libclamav/c++/llvm/test/FrontendAda/debug_var_size.ads
deleted file mode 100644
index ea966fb..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/debug_var_size.ads
+++ /dev/null
@@ -1,8 +0,0 @@
--- RUN: %llvmgcc -c -g %s
-package Debug_Var_Size is
-   subtype Length_Type is Positive range 1 .. 64;
-   type T (Length : Length_Type := 1) is record
-      Varying_Length : String (1 .. Length);
-      Fixed_Length   : Boolean;
-   end record;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/dg.exp b/libclamav/c++/llvm/test/FrontendAda/dg.exp
deleted file mode 100644
index 2307c3f..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/dg.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-load_lib llvm.exp
-
-if [ llvm_gcc_supports ada ] then {
-    RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{adb,ads}]]
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendAda/element_copy.adb b/libclamav/c++/llvm/test/FrontendAda/element_copy.adb
deleted file mode 100644
index bffcb97..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/element_copy.adb
+++ /dev/null
@@ -1,8 +0,0 @@
--- RUN: %llvmgcc -S -O2 %s -I%p/Support -o - | grep 6899714
-package body Element_Copy is
-   function F return VariableSizedField is
-      X : VariableSizedField;
-   begin
-      return X;
-   end;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/emit_var.ads b/libclamav/c++/llvm/test/FrontendAda/emit_var.ads
deleted file mode 100644
index 35d4544..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/emit_var.ads
+++ /dev/null
@@ -1,5 +0,0 @@
--- RUN: %llvmgcc -c %s
-with Ada.Finalization;
-package Emit_Var is
-   type Search_Type is new Ada.Finalization.Controlled with null record;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/fat_fields.adb b/libclamav/c++/llvm/test/FrontendAda/fat_fields.adb
deleted file mode 100644
index 510105f..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/fat_fields.adb
+++ /dev/null
@@ -1,10 +0,0 @@
--- RUN: %llvmgcc -c %s -I%p/Support
--- RUN: %llvmgcc -c %s -I%p/Support -O2
-package body Fat_Fields is
-   procedure Proc is
-   begin
-      if P = null then
-         null;
-      end if;
-   end;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/field_order.ads b/libclamav/c++/llvm/test/FrontendAda/field_order.ads
deleted file mode 100644
index b49185d..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/field_order.ads
+++ /dev/null
@@ -1,7 +0,0 @@
--- RUN: %llvmgcc -c %s
-package Field_Order is
-   type Tagged_Type is abstract tagged null record;
-   type With_Discriminant (L : Positive) is new Tagged_Type with record
-      S : String (1 .. L);
-   end record;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/global_constant.adb b/libclamav/c++/llvm/test/FrontendAda/global_constant.adb
deleted file mode 100644
index ce9f406..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/global_constant.adb
+++ /dev/null
@@ -1,5 +0,0 @@
--- RUN: %llvmgcc -c %s -I%p/Support
-package body Global_Constant is
-begin
-   raise An_Error;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/init_size.ads b/libclamav/c++/llvm/test/FrontendAda/init_size.ads
deleted file mode 100644
index 1d76ba2..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/init_size.ads
+++ /dev/null
@@ -1,12 +0,0 @@
--- RUN: %llvmgcc -c %s
-package Init_Size is
-   type T (B : Boolean := False) is record
-      case B is
-         when False =>
-            I : Integer;
-         when True =>
-            J : Long_Long_Integer; -- Bigger than I
-      end case;
-   end record;
-   A_T : constant T := (False, 0);
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/non_bitfield.ads b/libclamav/c++/llvm/test/FrontendAda/non_bitfield.ads
deleted file mode 100644
index 8f5845a..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/non_bitfield.ads
+++ /dev/null
@@ -1,12 +0,0 @@
--- RUN: %llvmgcc -c %s
-package Non_Bitfield is
-   type SP is access String;
-   type E is (A, B, C);
-   type T (D : E) is record
-      case D is
-         when A => X : Boolean;
-         when B => Y : SP;
-         when C => Z : String (1 .. 2);
-      end case;
-   end record;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/non_lvalue.adb b/libclamav/c++/llvm/test/FrontendAda/non_lvalue.adb
deleted file mode 100644
index 157f3dd..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/non_lvalue.adb
+++ /dev/null
@@ -1,7 +0,0 @@
--- RUN: %llvmgcc -c %s -I%p/Support
-package body Non_LValue is
-   function A (Y : U) return String is
-   begin
-      return Y.X.B;
-   end;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/placeholder.adb b/libclamav/c++/llvm/test/FrontendAda/placeholder.adb
deleted file mode 100644
index f33c9a5..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/placeholder.adb
+++ /dev/null
@@ -1,12 +0,0 @@
--- RUN: %llvmgcc -c %s
-procedure Placeholder is
-   subtype Bounded is Integer range 1 .. 5;
-   type Vector is array (Bounded range <>) of Integer;
-   type Interval (Length : Bounded := 1) is record
-      Points : Vector (1 .. Length);
-   end record;
-   An_Interval : Interval := (Length => 1, Points => (1 => 1));
-   generic The_Interval : Interval; package R is end;
-   package body R is end;
-   package S is new R (An_Interval);
-begin null; end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/switch.adb b/libclamav/c++/llvm/test/FrontendAda/switch.adb
deleted file mode 100644
index f214bca..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/switch.adb
+++ /dev/null
@@ -1,12 +0,0 @@
--- RUN: %llvmgcc -c %s
-function Switch (N : Integer) return Integer is
-begin
-   case N is
-      when Integer'First .. -1 =>
-         return -1;
-      when 0 =>
-         return 0;
-      when others =>
-         return 1;
-   end case;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/unc_constructor.adb b/libclamav/c++/llvm/test/FrontendAda/unc_constructor.adb
deleted file mode 100644
index bc3002c..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/unc_constructor.adb
+++ /dev/null
@@ -1,9 +0,0 @@
--- RUN: %llvmgcc -c %s -I%p/Support
-package body Unc_Constructor is
-   procedure P (X : A) is
-   begin
-      if X = A0 then
-         null;
-      end if;
-   end;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/var_offset.adb b/libclamav/c++/llvm/test/FrontendAda/var_offset.adb
deleted file mode 100644
index 09f1c15..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/var_offset.adb
+++ /dev/null
@@ -1,7 +0,0 @@
--- RUN: %llvmgcc -c %s -I%p/Support
-package body Var_Offset is
-   function F (X : T) return Character is
-   begin
-      return X.Bad_Field;
-   end;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/var_size.adb b/libclamav/c++/llvm/test/FrontendAda/var_size.adb
deleted file mode 100644
index b3db9a3..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/var_size.adb
+++ /dev/null
@@ -1,7 +0,0 @@
--- RUN: %llvmgcc -c %s -I%p/Support
-package body Var_Size is
-   function A (X : T) return String is
-   begin
-      return X.A;
-   end;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/vce.adb b/libclamav/c++/llvm/test/FrontendAda/vce.adb
deleted file mode 100644
index f24045c..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/vce.adb
+++ /dev/null
@@ -1,7 +0,0 @@
--- RUN: %llvmgcc -c %s
-procedure VCE is
-  S : String (1 .. 2);
-  B : Character := 'B';
-begin
-  S := 'A' & B;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendAda/vce_lv.adb b/libclamav/c++/llvm/test/FrontendAda/vce_lv.adb
deleted file mode 100644
index 4ca4d5c..0000000
--- a/libclamav/c++/llvm/test/FrontendAda/vce_lv.adb
+++ /dev/null
@@ -1,9 +0,0 @@
--- RUN: %llvmgcc -c %s
-procedure VCE_LV is
-   type P is access String ;
-   type T is new P (5 .. 7);
-   subtype U is String (5 .. 7);
-   X : T := new U'(others => 'A');
-begin
-   null;
-end;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-20-ExceptionFail.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-20-ExceptionFail.cpp
deleted file mode 100644
index f071c3c..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-20-ExceptionFail.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-void foo();
-
-void bar() {
-  struct local {
-    ~local() { foo(); }
-  } local_obj;
-
-  foo();
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-21-EmptyClass.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-21-EmptyClass.cpp
deleted file mode 100644
index 5dbfa33..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-21-EmptyClass.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-// This tests compilation of EMPTY_CLASS_EXPR's
-
-struct empty {};
-
-void foo(empty) {}
-
-void bar() { foo(empty()); }
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-24-Cleanup.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-24-Cleanup.cpp
deleted file mode 100644
index ab0d1a0..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-24-Cleanup.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgxx -xc++ %s -c -o - | llvm-dis | grep unwind
-
-struct S { ~S(); };
-
-int mightthrow();
-
-int test() {
-  S s;
-  mightthrow();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-27-TypeNamespaces.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-27-TypeNamespaces.cpp
deleted file mode 100644
index dec9718..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-27-TypeNamespaces.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-namespace foo {
-  namespace bar {
-    struct X { X(); };
-
-    X::X() {}
-  }
-}
-
-
-namespace {
-  struct Y { Y(); };
-  Y::Y() {}
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-28-ForwardType.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-28-ForwardType.cpp
deleted file mode 100644
index 9330e94..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-28-ForwardType.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-// Default placement versions of operator new.
-#include <new>
-
-void* operator new(size_t, void* __p) throw();
-
-
-template<typename _CharT>
-struct stdio_filebuf
-{  stdio_filebuf();
-
-};
-
-extern stdio_filebuf<char> buf_cout;
-
-void foo() {
-  // Create stream buffers for the standard streams and use
-  // those buffers without destroying and recreating the
-  // streams.
-  new (&buf_cout) stdio_filebuf<char>();
-
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-28-SaveExprBug.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-28-SaveExprBug.cpp
deleted file mode 100644
index 98c5f5d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-28-SaveExprBug.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-char* eback();
-
-template<typename foo>
-struct basic_filebuf {
-  char *instancevar;
-
-  void callee() {
-    instancevar += eback() != eback();
-  }
-
-  void caller();
-};
-
-
-template<typename _CharT>
-void basic_filebuf<_CharT>::caller() {
-  callee();
-}
-
-
-template class basic_filebuf<char>;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-29-ArgPassingBug.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-29-ArgPassingBug.cpp
deleted file mode 100644
index d4cddff..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-29-ArgPassingBug.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// RUN: %llvmgcc -xc++ -c -o /dev/null %s |& not grep WARNING
-
-struct iterator {
-  iterator();
-  iterator(const iterator &I);
-};
-
-iterator foo(const iterator &I) { return I; }
-
-void test() {
-  foo(iterator());
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-08-31-StructLayout.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-08-31-StructLayout.cpp
deleted file mode 100644
index a45ad03..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-08-31-StructLayout.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-// There is a HOLE in the derived2 object due to not wanting to place the two
-// baseclass instances at the same offset!
-
-struct baseclass {};
-
-class derived1 : public baseclass {
-  void * NodePtr;
-};
-
-class derived2 : public baseclass {
-  derived1 current;
-};
-
-derived2 RI;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-09-22-CompositeExprValue.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-09-22-CompositeExprValue.cpp
deleted file mode 100644
index 3bd707e..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-09-22-CompositeExprValue.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-struct duration {
- duration operator/=(int c) {
-  return *this;
-  }
-};
-
-void a000090() {
-  duration() /= 1;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-09-29-ArgumentNumberMismatch.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-09-29-ArgumentNumberMismatch.cpp
deleted file mode 100644
index 72997c5..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-09-29-ArgumentNumberMismatch.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-// Non-POD classes cannot be passed into a function by component, because their
-// dtors must be run.  Instead, pass them in by reference.  The C++ front-end
-// was mistakenly "thinking" that 'foo' took a structure by component.
-
-struct C {
-  int A, B;
-  ~C() {}
-};
-
-void foo(C b);
-
-void test(C *P) {
-  foo(*P);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-CommaExprBug.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-09-30-CommaExprBug.cpp
deleted file mode 100644
index 365795d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-CommaExprBug.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-class Empty {};
-
-void foo(Empty E);
-
-void bar() {
-  foo(Empty());
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-ForIncrementExprBug.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-09-30-ForIncrementExprBug.cpp
deleted file mode 100644
index 63f62f2..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-ForIncrementExprBug.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-struct C {};
-
-C &foo();
-
-void foox() {
-  for (; ; foo());
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-ForIncrementExprBug2.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-09-30-ForIncrementExprBug2.cpp
deleted file mode 100644
index a1eee71..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-ForIncrementExprBug2.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-// Test with an opaque type
-
-struct C;
-
-C &foo();
-
-void foox() {
-  for (; ; foo());
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-NestedFunctionDecl.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-09-30-NestedFunctionDecl.cpp
deleted file mode 100644
index 94c1199..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-09-30-NestedFunctionDecl.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-// The C++ front-end thinks the two foo's are different, the LLVM emitter
-// thinks they are the same.  The disconnect causes problems.
-
-void foo() { }
-
-void bar() {
-  void foo();
-
-  foo();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-10-17-BoolBitfields.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-10-17-BoolBitfields.cpp
deleted file mode 100644
index 103945d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-10-17-BoolBitfields.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-struct test {
-  bool A : 1;
-  bool B : 1;
-};
-
-void foo(test *T) {
-  T->B = true;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-10-21-InnerClass.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-10-21-InnerClass.cpp
deleted file mode 100644
index fadd51d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-10-21-InnerClass.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -xc++ -S -o - %s | grep {struct.X::Y}
-struct X {
-
-  struct Y {
-    Y();
-  };
-
-};
-
-X::Y::Y() {
-
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-10-27-VirtualBaseClassCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-10-27-VirtualBaseClassCrash.cpp
deleted file mode 100644
index abda017..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-10-27-VirtualBaseClassCrash.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-template<class T>
-struct super {
-  int Y;
-  void foo();
-};
-
-template <class T>
-struct test : virtual super<int> {};
-
-extern test<int> X;
-
-void foo() {
-  X.foo();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-02-WeakLinkage.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-02-WeakLinkage.cpp
deleted file mode 100644
index 748ca63..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-02-WeakLinkage.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -xc++ -S -o - %s | not grep weak
-// The template should compile to linkonce linkage, not weak linkage.
-
-template<class T>
-void thefunc();
-
-template<class T>
-inline void thefunc() {}
-
-void test() {
-  thefunc<int>();
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-04-ArrayConstructors.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-04-ArrayConstructors.cpp
deleted file mode 100644
index 4ab3398..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-04-ArrayConstructors.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-struct Foo {
-  Foo(int);
-  ~Foo();
-};
-void foo() {
-  struct {
-    Foo name;
-  } Int[] =  { 1 };
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-04-CatchLabelName.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-04-CatchLabelName.cpp
deleted file mode 100644
index 7dbe788..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-04-CatchLabelName.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-#include <string>
-
-void bar();
-
-void test() {
-  try {
-    bar();
-  } catch (std::string) {}
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-08-ArrayAddress.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-08-ArrayAddress.cpp
deleted file mode 100644
index 9ad1b8f..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-08-ArrayAddress.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgxx -xc++ %s -c -o - | llvm-dis | grep getelementptr
-
-struct foo {
-  int array[100];
-  void *getAddr(unsigned i);
-};
-
-void *foo::getAddr(unsigned i) {
-  return &array[i];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-09-ConstructorTypeSafety.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-09-ConstructorTypeSafety.cpp
deleted file mode 100644
index e6c09e5..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-09-ConstructorTypeSafety.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// The code generated for this testcase should be completely typesafe!
-// RUN: %llvmgcc -xc++ -S -o - %s | llvm-as | opt -die | llvm-dis | \
-// RUN:    notcast
-
-struct contained {
-  unsigned X;
-  contained();
-};
-
-struct base {
-  unsigned A, B;
-};
-
-struct derived : public base {
-  contained _M_value_field;
-};
-
-int test() {
-  derived X;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-18-EnumArray.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-18-EnumArray.cpp
deleted file mode 100644
index bb1b3bf..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-18-EnumArray.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-enum TchkType {
-  tchkNum, tchkString, tchkSCN, tchkNone
-};
-
-struct Operator {
-  enum TchkType tchk[8];
-};
-
-struct Operator opTab[] = {
-  {{tchkNum, tchkNum, tchkString} }
-};
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-18-MemberInitializationCasting.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-18-MemberInitializationCasting.cpp
deleted file mode 100644
index cb66ba1..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-18-MemberInitializationCasting.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -xc++ -S -o - %s | llvm-as | opt -die | llvm-dis |  notcast
-
-struct A {
-        A() : i(0) {}
-        int getI() {return i;}
-        int i;
-};
-
-int f(int j)
-{
-        A a;
-        return j+a.getI();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-18-PtrMemConstantInitializer.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-18-PtrMemConstantInitializer.cpp
deleted file mode 100644
index 72609e7..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-18-PtrMemConstantInitializer.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-struct Gfx {
-  void opMoveSetShowText();
-};
-
-struct Operator {
-  void (Gfx::*func)();
-};
-
-Operator opTab[] = {
-  {&Gfx::opMoveSetShowText},
-};
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-25-ReturningOpaqueByValue.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-25-ReturningOpaqueByValue.cpp
deleted file mode 100644
index 5ea0a2c..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-25-ReturningOpaqueByValue.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-#include <vector>
-std::vector<int> my_method ();
-
-int
-main ()
-{
-  my_method ();
-  return 0;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-27-MultipleInheritanceThunk.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-27-MultipleInheritanceThunk.cpp
deleted file mode 100644
index 99cfc8d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-27-MultipleInheritanceThunk.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-struct CallSite {
-  int X;
-
-  CallSite(const CallSite &CS);
-};
-
-struct AliasAnalysis {
-  int TD;
-
-  virtual int getModRefInfo(CallSite CS);
-};
-
-
-struct Pass {
-  int X;
-  virtual int foo();
-};
-
-struct AliasAnalysisCounter : public Pass, public AliasAnalysis {
-  int getModRefInfo(CallSite CS) {
-    return 0;
-  }
-};
-
-AliasAnalysisCounter AAC;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-11-29-DuplicatedCleanupTest.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-11-29-DuplicatedCleanupTest.cpp
deleted file mode 100644
index 8df95cb..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-11-29-DuplicatedCleanupTest.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-void doesntThrow() throw();
-struct F {
-  ~F() { doesntThrow(); }
-};
-
-void atest() {
-  F A;
-lab:
-  F B;
-  goto lab;
-}
-
-void test(int val) {
-label: {
-   F A;
-   F B;
-   if (val == 0) goto label;
-   if (val == 1) goto label;
-}
-}
-
-void test3(int val) {
-label: {
-   F A;
-   F B;
-   if (val == 0) { doesntThrow(); goto label; }
-   if (val == 1) { doesntThrow(); goto label; }
-}
-}
-
-void test4(int val) {
-label: {
-   F A;
-   F B;
-   if (val == 0) { F C; goto label; }
-   if (val == 1) { F D; goto label; }
-}
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2003-12-08-ArrayOfPtrToMemberFunc.cpp b/libclamav/c++/llvm/test/FrontendC++/2003-12-08-ArrayOfPtrToMemberFunc.cpp
deleted file mode 100644
index b87e786..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2003-12-08-ArrayOfPtrToMemberFunc.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-struct Evil {
- void fun ();
-};
-int foo();
-typedef void (Evil::*memfunptr) ();
-static memfunptr jumpTable[] = { &Evil::fun };
-
-void Evil::fun() {
- (this->*jumpTable[foo()]) ();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-01-11-DynamicInitializedConstant.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-01-11-DynamicInitializedConstant.cpp
deleted file mode 100644
index 8ae15c9..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-01-11-DynamicInitializedConstant.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -xc++ -S -o - %s | not grep { constant }
-
-extern int X;
-const int Y = X;
-const int* foo() { return &Y; }
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-03-08-ReinterpretCastCopy.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-03-08-ReinterpretCastCopy.cpp
deleted file mode 100644
index 35880ab..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-03-08-ReinterpretCastCopy.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-struct A {
-  virtual void Method() = 0;
-};
-
-struct B : public A {
-  virtual void Method() { }
-};
-
-typedef void (A::*fn_type_a)(void);
-typedef void (B::*fn_type_b)(void);
-
-int main(int argc, char **argv)
-{
-  fn_type_a f = reinterpret_cast<fn_type_a>(&B::Method);
-  fn_type_b g = reinterpret_cast<fn_type_b>(f);
-  B b;
-  (b.*g)();
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-03-09-UnmangledBuiltinMethods.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-03-09-UnmangledBuiltinMethods.cpp
deleted file mode 100644
index b019e0c..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-03-09-UnmangledBuiltinMethods.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -xc++ -c -o - %s | llvm-dis | grep _ZN11AccessFlags6strlenEv
-
-struct AccessFlags {
-  void strlen();
-};
-
-void AccessFlags::strlen() { }
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-03-15-CleanupsAndGotos.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-03-15-CleanupsAndGotos.cpp
deleted file mode 100644
index c2e52f6..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-03-15-CleanupsAndGotos.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-// Testcase from Bug 291
-
-struct X {
-  ~X();
-};
-
-void foo() {
-  X v;
-
-TryAgain:
-  goto TryAgain;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-06-08-LateTemplateInstantiation.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-06-08-LateTemplateInstantiation.cpp
deleted file mode 100644
index 4ad4c7d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-06-08-LateTemplateInstantiation.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-
-template<typename Ty>
-struct normal_iterator {
-  int FIELD;
-};
-
-void foo(normal_iterator<int>);
-normal_iterator<int> baz();
-
-void bar() {
-  foo(baz());
-}
-
-void *bar2() {
-  return (void*)foo;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-09-27-CompilerCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-09-27-CompilerCrash.cpp
deleted file mode 100644
index f52baaf..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-09-27-CompilerCrash.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-struct Pass {} ;
-template<typename PassName>
-Pass *callDefaultCtor() { return new PassName(); }
-
-void foo(Pass *(*C)());
-
-#include <string>
-
-bool foo(std::string &X) {
-  return X.empty();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-09-27-DidntEmitTemplate.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-09-27-DidntEmitTemplate.cpp
deleted file mode 100644
index 706d541..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-09-27-DidntEmitTemplate.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN: %llvmgxx -xc++ %s -c -o - | llvm-dis | grep callDefaultCtor | \
-// RUN:   not grep declare
-
-// This is a testcase for LLVM PR445, which was a problem where the 
-// instantiation of callDefaultCtor was not being emitted correctly.
-
-struct Pass {};
-
-template<typename PassName>
-Pass *callDefaultCtor() { return new Pass(); }
-
-void foo(Pass *(*C)());
-
-struct basic_string {
-  bool empty() const { return true; }
-};
-
-
-bool foo2(basic_string &X) {
-  return X.empty();
-}
-void baz() { foo(callDefaultCtor<Pass>); }
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-EmitsUnusedInlineFunctions.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-11-27-EmitsUnusedInlineFunctions.cpp
deleted file mode 100644
index 794b7d7..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-EmitsUnusedInlineFunctions.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-// The C++ front-end was emitting WAY too many inline functions.  This test
-// verifies that it does not emit the body of getchar, because it is not used.
-// This corresponds to PR459
-
-// RUN: %llvmgxx %s -S -o - | not grep {^i32 .getchar}
-
-#include <stdio.h>
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-ExceptionCleanupAssertion.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-11-27-ExceptionCleanupAssertion.cpp
deleted file mode 100644
index f3d225e..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-ExceptionCleanupAssertion.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx %s -S -o /dev/null
-
-// This is PR421
-
-struct Strongbad {
-    Strongbad(const char *str );
-    ~Strongbad();
-    operator const char *() const;
-};
-
-void TheCheat () {
-  Strongbad foo(0);
-  Strongbad dirs[] = { Strongbad(0) + 1};
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-FriendDefaultArgCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-11-27-FriendDefaultArgCrash.cpp
deleted file mode 100644
index 731e726..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-FriendDefaultArgCrash.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgxx %s -o /dev/null -S
-
-// PR447
-
-namespace nm {
-  struct str {
-    friend int foo(int arg = 0);
-  };
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-InlineAsmFunctionRedefinition.cpp b/libclamav/c++/llvm/test/FrontendC++/2004-11-27-InlineAsmFunctionRedefinition.cpp
deleted file mode 100644
index 42b223b..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2004-11-27-InlineAsmFunctionRedefinition.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// RUN: %llvmgxx %s -S -o /dev/null
-
-// PR397
-
-struct stat { };
-struct stat64 { };
-
-extern "C" {
-
-extern int lstat(const char *, struct stat *) __asm__("lstat64");
-extern int lstat64(const char *, struct stat64 *);
-
-extern int __lxstat(int, const char *, struct stat *) __asm__("__lxstat64");
-extern int __lxstat64(int, const char *, struct stat64 *);
-
-extern __inline__ int lstat(const char *path, struct stat *statbuf) {
-    return __lxstat(3, path, statbuf);
-}
-extern __inline__ int lstat64(const char *path, struct stat64 *statbuf) {
-    return __lxstat64(3, path, statbuf);
-}
-}
-
-int do_one_file(void) {
-    return lstat(0, 0) + lstat64(0,0);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-01-03-StaticInitializers.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-01-03-StaticInitializers.cpp
deleted file mode 100644
index da1b005..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-01-03-StaticInitializers.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgxx %s -S -o - | not grep llvm.global_ctor
-
-struct S {
-  int  A[2];
-};
-
-int XX = (int)(long)&(((struct S*)0)->A[1]);
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-02-11-AnonymousUnion.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-02-11-AnonymousUnion.cpp
deleted file mode 100644
index 87ababc..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-02-11-AnonymousUnion.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// RUN: %llvmgxx %s -S -o -
-
-// Test anonymous union with members of the same size.
-int test1(float F) {
-  union {
-     float G;
-     int i;
-  };
-  G = F;
-  return i;
-}
-
-// test anonymous union with members of differing size.
-int test2(short F) {
-  volatile union {
-     short G;
-     int i;
-  };
-  G = F;
-  return i;
-}
-
-// Make sure that normal unions work.  duh :)
-volatile union U_t {
-  short S;
-  int i;
-} U;
-
-int test3(short s) {
-  U.S = s;
-  return U.i;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-02-13-BadDynamicInit.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-02-13-BadDynamicInit.cpp
deleted file mode 100644
index 84fa565..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-02-13-BadDynamicInit.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgxx %s -S -o - | not grep llvm.global_ctors
-// This testcase corresponds to PR509
-struct Data {
-  unsigned *data;
-  unsigned array[1];
-};
-
-Data shared_null = { shared_null.array };
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-02-14-BitFieldOffset.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-02-14-BitFieldOffset.cpp
deleted file mode 100644
index 522e20a..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-02-14-BitFieldOffset.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgxx %s -S -o - | not grep {i32 6}
-
-struct QVectorTypedData {
-    int size;
-    unsigned int sharable : 1;
-    unsigned short array[1];
-};
-
-void foo(QVectorTypedData *X) {
-  X->array[0] = 123;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-02-19-BitfieldStructCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-02-19-BitfieldStructCrash.cpp
deleted file mode 100644
index 8f571e0..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-02-19-BitfieldStructCrash.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx -S %s -o -
-
-struct QChar {unsigned short X; QChar(unsigned short); } ;
-
-struct Command {
-        Command(QChar c) : c(c) {}
-        unsigned int type : 4;
-        QChar c;
-    };
-
-Command X(QChar('c'));
-
-void Foo(QChar );
-void bar() { Foo(X.c); }
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-02-19-UnnamedVirtualThunkArgument.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-02-19-UnnamedVirtualThunkArgument.cpp
deleted file mode 100644
index 853fee7..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-02-19-UnnamedVirtualThunkArgument.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// RUN: %llvmgxx -S %s -o /dev/null
-
-struct Foo  {
-    Foo();
-    virtual ~Foo();
-};
-
-struct Bar  {
-    Bar();
-    virtual ~Bar();
-    virtual bool test(bool) const;
-};
-
-struct Baz : public Foo, public Bar  {
-    Baz();
-    virtual ~Baz();
-    virtual bool test(bool) const;
-};
-
-bool Baz::test(bool) const  {
-    return true;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-02-20-BrokenReferenceTest.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-02-20-BrokenReferenceTest.cpp
deleted file mode 100644
index 31026d3..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-02-20-BrokenReferenceTest.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgxx %s -S -o /dev/null
-
-void test(unsigned char *b, int rb) {
-  typedef unsigned char imgfoo[10][rb];
-  imgfoo &br = *(imgfoo *)b;
-
-  br[0][0] = 1;
-
-  rb = br[0][0];
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-02-27-PlacementArrayNewCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-02-27-PlacementArrayNewCrash.cpp
deleted file mode 100644
index a8fc668..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-02-27-PlacementArrayNewCrash.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgxx -S %s -o -
-
-#include <new>
-typedef double Ty[4];
-
-void foo(Ty *XX) {
-  new(XX) Ty();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2005-07-21-VirtualBaseAccess.cpp b/libclamav/c++/llvm/test/FrontendC++/2005-07-21-VirtualBaseAccess.cpp
deleted file mode 100644
index 7711cff..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2005-07-21-VirtualBaseAccess.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx -xc++ %s -c -o - | opt -die | llvm-dis | not grep cast
-
-void foo(int*);
-
-struct FOO {
-  int X;
-};
-
-struct BAR : virtual FOO { BAR(); };
-
-int testfn() {
-  BAR B;
-  foo(&B.X);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-03-01-GimplifyCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-03-01-GimplifyCrash.cpp
deleted file mode 100644
index b0d00fe..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-03-01-GimplifyCrash.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx -S %s -o -
-
-struct PrefMapElem {
-  virtual ~PrefMapElem(); 
-  unsigned int fPrefId;
-};
-
-int foo() {
-  PrefMapElem* fMap;
-  if (fMap[0].fPrefId == 1)
-    return 1;
-  
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-03-06-C++RecurseCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-03-06-C++RecurseCrash.cpp
deleted file mode 100644
index 2fb3fb7..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-03-06-C++RecurseCrash.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-namespace std {
-  class exception { };
-
-  class type_info {
-  public:
-    virtual ~type_info();
-  };
-
-}
-
-namespace __cxxabiv1 {
-  class __si_class_type_info : public std::type_info {
-    ~__si_class_type_info();
-  };
-}
-
-class recursive_init: public std::exception {
-public:
-  virtual ~recursive_init() throw ();
-};
-
-recursive_init::~recursive_init() throw() { }
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-09-08-powi.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-09-08-powi.cpp
deleted file mode 100644
index 75cbfda..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-09-08-powi.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgxx -O3 -S -o - %s
-
-#include <cmath>
-
-double foo(double X, int Y) {
-  return std::pow(X, Y);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-09-12-OpaqueStructCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-09-12-OpaqueStructCrash.cpp
deleted file mode 100644
index f3160e8..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-09-12-OpaqueStructCrash.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// RUN: %llvmgxx -O3 -S -o - %s
-
-struct A {
-   virtual ~A();
-};
-
-template <typename Ty>
-struct B : public A {
-   ~B () { delete [] val; }
-private:
-     Ty* val;
-};
-
-template <typename Ty>
-struct C : public A {
-   C ();
-   ~C ();
-};
-
-template <typename Ty>
-struct D : public A {
-     D () {}
-   private:
-     B<C<Ty> > blocks;
-};
-
-template class D<double>;
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-09-27-Debug-Protection.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-09-27-Debug-Protection.cpp
deleted file mode 100644
index cb09bd0..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-09-27-Debug-Protection.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -O0 -emit-llvm -S -g -o - %s | grep {i32 1,}
-// RUN: %llvmgxx -O0 -emit-llvm -S -g -o - %s | grep {i32 2,}
-class A {
-public:
-  int x;
-protected:
-  int y;
-private:
-  int z;
-};
-
-A a;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-10-30-ClassBitfield.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-10-30-ClassBitfield.cpp
deleted file mode 100644
index bd3b173..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-10-30-ClassBitfield.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgxx %s -emit-llvm -S -o -
-// PR954
-
-struct _Refcount_Base   {
-  unsigned long _M_ref_count;
-  int _M_ref_count_lock;
-  _Refcount_Base() : _M_ref_count(0) {}
-};
-
-struct _Rope_RopeRep : public _Refcount_Base 
-{
-public:
-  int _M_tag:8; 
-};
-
-int foo(_Rope_RopeRep* r) { return r->_M_tag; }
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-11-06-StackTrace.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-11-06-StackTrace.cpp
deleted file mode 100644
index bbb9af1..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-11-06-StackTrace.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// This is a regression test on debug info to make sure that we can get a
-// meaningful stack trace from a C++ program.
-// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | \
-// RUN:    llc --disable-fp-elim -o %t.s -O0 -relocation-model=pic
-// RUN: %compile_c %t.s -o %t.o
-// RUN: %link %t.o -o %t.exe
-// RUN: echo {break DeepStack::deepest\nrun 17\nwhere\n} > %t.in 
-// RUN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | \
-// RUN:   grep {#0  DeepStack::deepest.*(this=.*,.*x=33)}
-// RUN: gdb -q -batch -n -x %t.in %t.exe | \
-// RUN:   grep {#7  0x.* in main.*(argc=\[12\],.*argv=.*)}
-
-// Only works on ppc (but not apple-darwin9), x86 and x86_64.  Should
-// generalize?
-// XFAIL: alpha|arm|powerpc-apple-darwin9
-
-#include <stdlib.h>
-
-class DeepStack {
-  int seedVal;
-public:
-  DeepStack(int seed) : seedVal(seed) {}
-
-  int shallowest( int x ) { return shallower(x + 1); }
-  int shallower ( int x ) { return shallow(x + 2); }
-  int shallow   ( int x ) { return deep(x + 3); }
-  int deep      ( int x ) { return deeper(x + 4); }
-  int deeper    ( int x ) { return deepest(x + 6); }
-  int deepest   ( int x ) { return x + 7; }
-
-  int runit() { return shallowest(seedVal); }
-};
-
-int main ( int argc, char** argv) {
-
-  DeepStack DS9( (argc > 1 ? atoi(argv[1]) : 0) );
-  return DS9.runit();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-11-20-GlobalSymbols.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-11-20-GlobalSymbols.cpp
deleted file mode 100644
index fc896b3..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-11-20-GlobalSymbols.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// PR1013
-// Check to make sure debug symbols use the correct name for globals and
-// functions.  Will not assemble if it fails to.
-// RUN: %llvmgcc -O0 -g -c %s
-
-int foo __asm__("f\001oo");
-
-int bar() {
-  return foo;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-11-30-ConstantExprCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-11-30-ConstantExprCrash.cpp
deleted file mode 100644
index 365c8e8..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-11-30-ConstantExprCrash.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// RUN: %llvmgxx %s -emit-llvm -S -o -
-// PR1027
-
-struct sys_var {
-  unsigned name_length;
-
-  bool no_support_one_shot;
-  sys_var() {}
-};
-
-
-struct sys_var_thd : public sys_var {
-};
-
-extern sys_var_thd sys_auto_is_null;
-
-sys_var *getsys_variables() {
-  return &sys_auto_is_null;
-}
-
-sys_var *sys_variables = &sys_auto_is_null;
-
-
-
-
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-11-30-NoCompileUnit.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-11-30-NoCompileUnit.cpp
deleted file mode 100644
index 3522c67..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-11-30-NoCompileUnit.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// This is a regression test on debug info to make sure we don't hit a compile 
-// unit size issue with gdb.
-// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | \
-// RUN:   llc --disable-fp-elim -o NoCompileUnit.s
-// RUN: %compile_c NoCompileUnit.s -o NoCompileUnit.o
-// RUN: %link NoCompileUnit.o -o NoCompileUnit.exe
-// RUN: echo {break main\nrun\np NoCompileUnit::pubname} > %t2
-// RUN: gdb -q -batch -n -x %t2 NoCompileUnit.exe | \
-// RUN:   tee NoCompileUnit.out | not grep {"low == high"}
-// XFAIL: alpha|arm
-// XFAIL: *
-// See PR2454
-
-
-class MamaDebugTest {
-private:
-  int N;
-  
-protected:
-  MamaDebugTest(int n) : N(n) {}
-  
-  int getN() const { return N; }
-
-};
-
-class BabyDebugTest : public MamaDebugTest {
-private:
-
-public:
-  BabyDebugTest(int n) : MamaDebugTest(n) {}
-  
-  static int doh;
-  
-  int  doit() {
-    int N = getN();
-    int Table[N];
-    
-    int sum = 0;
-    
-    for (int i = 0; i < N; ++i) {
-      int j = i;
-      Table[i] = j;
-    }
-    for (int i = 0; i < N; ++i) {
-      int j = Table[i];
-      sum += j;
-    }
-    
-    return sum;
-  }
-
-};
-
-int BabyDebugTest::doh;
-
-
-int main(int argc, const char *argv[]) {
-  BabyDebugTest BDT(20);
-  return BDT.doit();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2006-11-30-Pubnames.cpp b/libclamav/c++/llvm/test/FrontendC++/2006-11-30-Pubnames.cpp
deleted file mode 100644
index b44566a..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2006-11-30-Pubnames.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// This is a regression test on debug info to make sure that we can access 
-// qualified global names.
-// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | \
-// RUN:   llc --disable-fp-elim -o %t.s -O0
-// RUN: %compile_c %t.s -o %t.o
-// RUN: %link %t.o -o %t.exe
-// RUN: %llvmdsymutil %t.exe 
-// RUN: echo {break main\nrun\np Pubnames::pubname} > %t.in
-// RUN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | grep {\$1 = 10}
-// XFAIL: alpha|arm
-struct Pubnames {
-  static int pubname;
-};
-
-int Pubnames::pubname = 10;
-
-int main (int argc, char** argv) {
-  Pubnames p;
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-01-02-UnboundedArray.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-01-02-UnboundedArray.cpp
deleted file mode 100644
index 648d19b..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-01-02-UnboundedArray.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// Make sure unbounded arrays compile with debug information.
-// 
-// RUN: %llvmgcc -O0 -c -g %s
-
-// PR1068
-
-struct Object {
-  char buffer[];
-};
-
-int main(int argc, char** argv) {
-  new Object;
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-01-06-ELF-Thunk-Sections.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-01-06-ELF-Thunk-Sections.cpp
deleted file mode 100644
index 654e11b..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-01-06-ELF-Thunk-Sections.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// RUN: %llvmgxx %s -emit-llvm -S -o - | not grep gnu.linkonce.
-// PR1085
-
-class 
-__attribute__((visibility("default"))) QGenericArgument
-{
-	public:inline QGenericArgument(const char *aName = 0, const void *aData = 0):_data(aData), _name(aName) {
-	}
-	private:const void *_data;
-	const char     *_name;
-};
-struct __attribute__ ((
-		       visibility("default"))) QMetaObject
-{
-	struct {
-	}
-	                d;
-};
-class 
-__attribute__((visibility("default"))) QObject
-{
-	virtual const QMetaObject *metaObject() const;
-};
-class 
-__attribute__((visibility("default"))) QPaintDevice
-{
-	public:enum PaintDeviceMetric {
-		PdmWidth = 1, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, PdmDepth, PdmDpiX, PdmDpiY, PdmPhysicalDpiX, PdmPhysicalDpiY
-	};
-	virtual ~ QPaintDevice();
-	union {
-	}
-	                ct;
-};
-class 
-__attribute__((visibility("default"))) QWidget:public QObject, public QPaintDevice
-{
-};
-class 
-__attribute__((visibility("default"))) QDialog:public QWidget
-{
-};
-class           TopicChooser:public QDialog {
-	virtual const QMetaObject *metaObject() const;
-};
-const QMetaObject *TopicChooser::
-metaObject() const
-{
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-01-06-PtrMethodInit.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-01-06-PtrMethodInit.cpp
deleted file mode 100644
index f87c8d8..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-01-06-PtrMethodInit.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-// RUN: %llvmgxx %s -emit-llvm -S -o -
-// PR1084
-
-extern "C"
-{
-  typedef unsigned char PRUint8;
-  typedef unsigned int PRUint32;
-}
-typedef PRUint32 nsresult;
-struct nsID
-{
-};
-typedef nsID nsIID;
-class nsISupports
-{
-};
-extern "C++"
-{
-  template < class T > struct nsCOMTypeInfo
-  {
-    static const nsIID & GetIID ()
-    {
-    }
-  };
-}
-
-class nsIDOMEvent:public nsISupports
-{
-};
-class nsIDOMEventListener:public nsISupports
-{
-public:static const nsIID & GetIID ()
-  {
-  }
-  virtual nsresult
-    __attribute__ ((regparm (0), cdecl)) HandleEvent (nsIDOMEvent * event) =
-    0;
-};
-class nsIDOMMouseListener:public nsIDOMEventListener
-{
-public:static const nsIID & GetIID ()
-  {
-    static const nsIID iid = {
-    };
-  }
-  virtual nsresult
-    __attribute__ ((regparm (0),
-		    cdecl)) MouseDown (nsIDOMEvent * aMouseEvent) = 0;
-};
-typedef
-typeof (&nsIDOMEventListener::HandleEvent)
-  GenericHandler;
-     struct EventDispatchData
-     {
-       PRUint32 message;
-       GenericHandler method;
-       PRUint8 bits;
-     };
-     struct EventTypeData
-     {
-       const EventDispatchData *events;
-       int numEvents;
-       const nsIID *iid;
-     };
-     static const EventDispatchData sMouseEvents[] = {
-       {
-	(300 + 2),
-	reinterpret_cast < GenericHandler > (&nsIDOMMouseListener::MouseDown),
-	0x01}
-     };
-static const EventTypeData sEventTypes[] = {
-  {
-   sMouseEvents, (sizeof (sMouseEvents) / sizeof (sMouseEvents[0])),
-   &nsCOMTypeInfo < nsIDOMMouseListener >::GetIID ()}
-};
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-03-27-FunctionVarRename.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-03-27-FunctionVarRename.cpp
deleted file mode 100644
index 538d6df..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-03-27-FunctionVarRename.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgxx %s -emit-llvm -S -o - | not grep eprintf1
-// RUN: %llvmgxx %s -emit-llvm -S -o - | grep eprintf
-
-// Only one eprintf should exist in the output
-
-extern "C" 
-void __eprintf();
-
-void foo() {
-
-  __eprintf();
-}
-
-void *bar() {
-  extern void *__eprintf;
-  return &__eprintf;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFields-1.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFields-1.cpp
deleted file mode 100644
index 174dddf..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFields-1.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-#ifdef PACKED
-#define P __attribute__((packed))
-#else
-#define P
-#endif
-
-struct P M_Packed { 
-  unsigned int l_Packed; 
-  unsigned short k_Packed : 6, 
-    i_Packed : 15,
-    j_Packed : 11;
-  
-}; 
-
-struct M_Packed sM_Packed; 
-
-int testM_Packed (void) { 
-  struct M_Packed x; 
-  return (x.i_Packed != 0);
-}
-      
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsOverlap-2.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsOverlap-2.cpp
deleted file mode 100644
index 55da1a6..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsOverlap-2.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-#ifdef PACKED
-#define P __attribute__((packed))
-#else
-#define P
-#endif
-
-struct P M_Packed { 
-  unsigned long sorted : 1;
-  unsigned long from_array : 1;
-  unsigned long mixed_encoding : 1;
-  unsigned long encoding : 8;
-  unsigned long count : 21;
-
-}; 
-
-struct M_Packed sM_Packed; 
-
-int testM_Packed (void) { 
-  struct M_Packed x; 
-  return (x.count != 0);
-}
-      
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsOverlap.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsOverlap.cpp
deleted file mode 100644
index 46a8949..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsOverlap.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-#ifdef PACKED
-#define P __attribute__((packed))
-#else
-#define P
-#endif
-
-struct P M_Packed { 
-  unsigned int l_Packed; 
-  unsigned short k_Packed : 6, 
-    i_Packed : 15;
-  char c;
-  
-}; 
-
-struct M_Packed sM_Packed; 
-
-int testM_Packed (void) { 
-  struct M_Packed x; 
-  return (x.i_Packed != 0);
-}
-      
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsSmall.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsSmall.cpp
deleted file mode 100644
index 7377b82..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-PackedBitFieldsSmall.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-
-#ifdef PACKED
-// This is an example where size of Packed struct is smaller then 
-// the size of bit field type.
-#define P __attribute__((packed))
-#else
-#define P
-#endif
-
-struct P M_Packed { 
-  unsigned long long X:50;
-  unsigned Y:2;
-}; 
-
-struct M_Packed sM_Packed; 
-
-int testM_Packed (void) { 
-  struct M_Packed x; 
-  return (0 != x.Y);
-}
-      
-int testM_Packed2 (void) { 
-  struct M_Packed x; 
-  return (0 != x.X);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-StructPackedFieldUnpacked.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-05-StructPackedFieldUnpacked.cpp
deleted file mode 100644
index b550b5f..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-05-StructPackedFieldUnpacked.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
-
-#ifdef PACKED
-#define P __attribute__((packed))
-#else
-#define P
-#endif
-
-struct UnPacked {
- 	int X;	
-	int Y;
-};
-
-struct P M_Packed { 
-  unsigned char A;
-  struct UnPacked B;
-}; 
-
-struct M_Packed sM_Packed; 
-
-int testM_Packed (void) { 
-  struct M_Packed x; 
-  return (x.B.Y != 0);
-}
-      
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-10-PackedUnion.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-10-PackedUnion.cpp
deleted file mode 100644
index b4b8894..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-10-PackedUnion.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// RUN: %llvmgxx -S %s -o /dev/null
-extern "C" {
-
-#pragma pack(push, 2)
-  typedef struct ABC* abc;
-
-  struct ABCS {
-    float red;
-    float green;
-    float blue;
-    float alpha;
-  };
-
-  typedef void (*XYZ)();
-#pragma pack(pop)
-}
-
-
-union ABCU {
-  ABCS color;
-  XYZ bg;
-};
-
-struct AData {
-  ABCU data;
-};
-
-class L {
- public:
-  L() {}
-  L(const L& other);
-
- private:
-  AData fdata;
-};
-
-
-L::L(const L& other)
-{
-  fdata = other.fdata;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-11-InlineStorageClassC++.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-11-InlineStorageClassC++.cpp
deleted file mode 100644
index eabcd57..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-11-InlineStorageClassC++.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xglobWeak | grep linkonce | count 1
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xextWeak | grep linkonce | count 1
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xWeaknoinline | grep weak | count 1
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xWeakextnoinline | grep weak | count 1
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xglobnoWeak | grep linkonce | count 1
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xstatnoWeak | grep internal | count 1
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xextnoWeak | grep linkonce | count 1
-inline int xglobWeak(int) __attribute__((weak));
-inline int xglobWeak (int i) {
-  return i*2;
-}
-inline int xextWeak(int) __attribute__((weak));
-extern  inline int xextWeak (int i) {
-  return i*4;
-}
-int xWeaknoinline(int) __attribute__((weak));
-int xWeaknoinline(int i) {
-  return i*8;
-}
-int xWeakextnoinline(int) __attribute__((weak));
-extern int xWeakextnoinline(int i) {
-  return i*16;
-}
-inline int xglobnoWeak (int i) {
-  return i*32;
-}
-static inline int xstatnoWeak (int i) {
-  return i*64;
-}
-extern  inline int xextnoWeak (int i) {
-  return i*128;
-}
-int j(int y) {
-  return xglobnoWeak(y)+xstatnoWeak(y)+xextnoWeak(y)+
-        xglobWeak(y)+xextWeak(y)+
-        xWeakextnoinline(y)+xWeaknoinline(y);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-14-FNoBuiltin.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-14-FNoBuiltin.cpp
deleted file mode 100644
index 31e4528..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-14-FNoBuiltin.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -O2 -fno-builtin -o - | grep call.*printf
-// Check that -fno-builtin is honored.
-
-extern "C" int printf(const char*, ...);
-void foo(const char *msg) {
-	printf("%s\n",msg);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-04-31-TryCatch.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-04-31-TryCatch.cpp
deleted file mode 100644
index 8b8254d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-04-31-TryCatch.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -S %s -o /dev/null
-
-#include <locale>
-
-namespace std 
-{
-  codecvt<char, char, mbstate_t>::
-  codecvt(size_t __refs)
-  : __codecvt_abstract_base<char, char, mbstate_t>(__refs),
-  _M_c_locale_codecvt(_S_get_c_locale())
-  { }
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-05-03-VectorInit.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-05-03-VectorInit.cpp
deleted file mode 100644
index b87f4d4..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-05-03-VectorInit.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgxx %s -S -emit-llvm -O0 -o - 
-// PR1378
-
-typedef float v4sf __attribute__((vector_size(16)));
-
-typedef v4sf float4;
-
-static float4 splat4(float a) 
-{
-  float4 tmp = {a,a,a,a};
-  return tmp;
-}
-
-float4 foo(float a)
-{
-  return splat4(a);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-05-16-ReverseBitFieldCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-05-16-ReverseBitFieldCrash.cpp
deleted file mode 100644
index 8392c0b..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-05-16-ReverseBitFieldCrash.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgxx %s -emit-llvm -S -o -
-
-#pragma reverse_bitfields on
-typedef unsigned long UINT32;
-
-extern void abort(void);
-
-typedef struct TestStruct
-{
-  long	first: 15,
-    second: 17;	
-} TestStruct;
-
-int main (int argc, char * const argv[]) {
-
-  TestStruct testStruct = {1, 0};
-  
-  UINT32 dw = *(UINT32 *)(&testStruct);
-  
-  if(!(dw & 0xFFFF))
-    abort ();
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-05-23-TryFinally.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-05-23-TryFinally.cpp
deleted file mode 100644
index 38f0b02..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-05-23-TryFinally.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgxx %s -S -emit-llvm -O2 -o - | ignore grep _Unwind_Resume | \
-// RUN:   wc -l | grep {\[23\]}
-
-struct One { };
-struct Two { };
-
-void handle_unexpected () {
-  try
-  {
-    throw;
-  }
-  catch (One &)
-  {
-    throw Two ();
-  }
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-07-04-NestedCatches.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-07-04-NestedCatches.cpp
deleted file mode 100644
index b10a5db..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-07-04-NestedCatches.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// RUN: %llvmgxx %s -S -O2 -o - | \
-// RUN:   ignore grep {eh\.selector.*One.*Two.*Three.*Four.*Five.*Six.*null} | \
-// RUN:     wc -l | grep {\[01\]}
-
-extern void X(void);
-
-struct One   {};
-struct Two   {};
-struct Three {};
-struct Four  {};
-struct Five  {};
-struct Six   {};
-
-static void A(void) throw ()
-{
-  X();
-}
-
-static void B(void) throw (Two)
-{
-  try { A(); } catch (One) {}
-}
-
-static void C(void) throw (Six, Five)
-{
-  try { B(); } catch (Three) {} catch (Four) {}
-}
-
-int main ()
-{
-  try { C(); } catch (...) {}
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-07-29-RestrictPtrArg.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-07-29-RestrictPtrArg.cpp
deleted file mode 100644
index d54dfbe..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-07-29-RestrictPtrArg.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o - | llvm-dis | grep noalias
-
-void foo(int * __restrict myptr1, int * myptr2) {
-  myptr1[0] = 0;
-  myptr2[0] = 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-07-29-RestrictRefArg.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-07-29-RestrictRefArg.cpp
deleted file mode 100644
index 0c28e4d..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-07-29-RestrictRefArg.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o - | llvm-dis | grep noalias
-
-void foo(int & __restrict myptr1, int & myptr2) {
-  myptr1 = 0;
-  myptr2 = 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-08-01-RestrictMethod.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-08-01-RestrictMethod.cpp
deleted file mode 100644
index b4922be..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-08-01-RestrictMethod.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o - | llvm-dis | grep noalias
-
-
-class foo {
-  int member[4];
-  
-  void bar(int * a);
-  
-};
-
-void foo::bar(int * a) __restrict {
-  member[3] = *a;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-09-10-RecursiveTypeResolution.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-09-10-RecursiveTypeResolution.cpp
deleted file mode 100644
index f813944..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-09-10-RecursiveTypeResolution.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o -
-// PR1634
-
-namespace Manta
-{
-  class CallbackHandle
-  {
-  protected:virtual ~ CallbackHandle (void)
-    {
-    }
-  };
-template < typename Data1 > class CallbackBase_1Data:public CallbackHandle
-  {
-  };
-}
-
-namespace __gnu_cxx
-{
-  template < typename _Iterator, typename _Container >
-  class __normal_iterator
-  {
-    _Iterator _M_current;
-  };
-}
-
-namespace std
-{
-  template < typename _Tp > struct allocator
-  {
-    typedef _Tp *pointer;
-  };
-  template < typename _InputIterator,
-    typename _Tp > inline void find (_InputIterator __last,
-					       const _Tp & __val)
-  {
-  };
-}
-
-namespace Manta
-{
-  template < typename _Tp, typename _Alloc> struct _Vector_base
-  {
-    struct _Vector_impl
-    {
-      _Tp *_M_start;
-    };
-  public:
-    _Vector_impl _M_impl;
-  };
-  template < typename _Tp, typename _Alloc = std::allocator < _Tp > >
-  class vector:protected _Vector_base < _Tp,_Alloc >
-  {
-  public:
-    typedef __gnu_cxx::__normal_iterator < typename _Alloc::pointer,
-      vector < _Tp, _Alloc > > iterator;
-    iterator end ()
-    {
-    }
-  };
-  class MantaInterface
-  {
-  };
-  class RTRT
-  {
-    virtual CallbackHandle *registerTerminationCallback (CallbackBase_1Data <
-							 MantaInterface * >*);
-    virtual void unregisterCallback (CallbackHandle *);
-    typedef vector < CallbackBase_1Data < int >*>PRCallbackMapType;
-    PRCallbackMapType parallelPreRenderCallbacks;
-  };
-}
-using namespace Manta;
-CallbackHandle *
-RTRT::registerTerminationCallback (CallbackBase_1Data < MantaInterface * >*cb)
-{
-  return cb;
-}
-
-void
-RTRT::unregisterCallback (CallbackHandle * callback)
-{
-  {
-    typedef CallbackBase_1Data < int > callback_t;
-    callback_t *cb = static_cast < callback_t * >(callback);
-    find (parallelPreRenderCallbacks.end (), cb);
-  }
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2007-10-01-StructResize.cpp b/libclamav/c++/llvm/test/FrontendC++/2007-10-01-StructResize.cpp
deleted file mode 100644
index d37057a..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2007-10-01-StructResize.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgxx -c %s -o /dev/null
-
-#pragma pack(4)
-
-struct Bork {
-  unsigned int f1 : 3;
-  unsigned int f2 : 30;
-};
-
-int Foo(Bork *hdr) {
-  hdr->f1 = 7;
-  hdr->f2 = 927;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2008-01-11-BadWarning.cpp b/libclamav/c++/llvm/test/FrontendC++/2008-01-11-BadWarning.cpp
deleted file mode 100644
index 43f6a71..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2008-01-11-BadWarning.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -xc++ %s -S -o /dev/null |& not grep warning
-// rdar://5683899
-void** f(void **Buckets, unsigned NumBuckets) {
-  return Buckets + NumBuckets;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2008-01-12-VecInit.cpp b/libclamav/c++/llvm/test/FrontendC++/2008-01-12-VecInit.cpp
deleted file mode 100644
index e21bbb9..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2008-01-12-VecInit.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -xc++ %s -S -o -
-// rdar://5685492
-
-typedef int __attribute__((vector_size(16))) v;
-v vt = {1, 2, 3, 4};
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2008-05-07-CrazyOffsetOf.cpp b/libclamav/c++/llvm/test/FrontendC++/2008-05-07-CrazyOffsetOf.cpp
deleted file mode 100644
index f183197..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2008-05-07-CrazyOffsetOf.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgxx -S %s -o -
-// rdar://5914926
-
-struct bork {
-  struct bork *next_local;
-  char * query;
-};
-int offset =  (char *) &(((struct bork *) 0x10)->query) - (char *) 0x10;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2008-10-29-WrongOffset.cpp b/libclamav/c++/llvm/test/FrontendC++/2008-10-29-WrongOffset.cpp
deleted file mode 100644
index 1b3be21..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2008-10-29-WrongOffset.cpp
+++ /dev/null
@@ -1,489 +0,0 @@
-// RUN: %llvmgxx %s -c -o /dev/null
-// PR2917
-
-#include <complex>
-template < int Dim, class T, class EngineTag > class Engine;
-template < class Subject, class Sub1, bool SV > struct View1Implementation;
-template < class LayoutTag, class PatchTag > struct MultiPatch;
-template < class LayoutTag, class PatchTag, int Dim2 > struct MultiPatchView;
-template < class Engine, class SubDomain > struct NewEngine
-{
-};
-template < class T > class DomainTraits;
-template < class DomT, class T, int Dim > struct DomainTraitsDomain
-{
-  typedef DomT NewDomain1_t;
-};
-template < int Dim > class Interval;
-template < int Dim > class Loc;
-template < class DT > class DomainBase
-{
-};
-
-template < int Dim, class DT > class Domain:public DomainBase < DT >
-{
-};
-template < int Dim > struct DomainTraits <Interval < Dim >
-  >:public DomainTraitsDomain < Interval < Dim >, int, Dim >
-{
-  enum
-  {
-    singleValued = false
-  };
-};
-template < class T1 > struct NewDomain1
-{
-  typedef typename DomainTraits < T1 >::NewDomain1_t SliceType_t;
-};
-template < class Domain, class Sub > struct TemporaryNewDomain1
-{
-  typedef typename NewDomain1 < Sub >::SliceType_t SliceType_t;
-};
-template < int Dim > class Interval:public Domain < Dim,
-  DomainTraits < Interval < Dim > > >
-{
-};
-template < int Dim > class GuardLayers
-{
-};
-template < class T > class Observer
-{
-};
-
-template < class T > class Observable
-{
-private:T & observed_m;
-  int count_m;
-};
-
-class RefCounted
-{
-};
-template < class T > class RefCountedPtr
-{
-public:typedef RefCountedPtr < T > This_t;
-  RefCountedPtr (T * const pT):ptr_m (pT)
-  {
-  }
-  inline T *operator-> () const
-  {
-  }
-  T *ptr_m;
-};
-
-template < class Dom, class T > class DomainMap
-{
-};
-
-template < class LayoutTag, int Dim > struct MultiPatchLayoutTraits
-{
-};
-template < int Dim > class LayoutBaseData
-{
-public:typedef Interval < Dim > Domain_t;
-  Domain_t domain_m;
-};
-template < int Dim, class LBD > class LayoutBase
-{
-public:typedef LayoutBaseData < Dim > LayoutData_t;
-  typedef typename LayoutData_t::Domain_t Domain_t;
-  typedef GuardLayers < Dim > GuardLayers_t;
-  inline const Domain_t & domain () const
-  {
-    return pdata_m->domain_m;
-  }
-  inline const Domain_t & innerDomain () const
-  {
-  }
-  inline GuardLayers_t externalGuards () const
-  {
-  }
-  RefCountedPtr < LBD > pdata_m;
-};
-template < class Tag > struct Remote;
-struct Brick
-{
-};
-template < class Thing, class Sub > struct View1
-{
-};
-template < int Dim, class T, class LayoutTag,
-  class PatchTag > struct NewEngine <Engine < Dim, T, MultiPatch < LayoutTag,
-  PatchTag > >, Interval < Dim > >
-{
-  typedef Engine < Dim, T, MultiPatchView < LayoutTag, PatchTag,
-    Dim > >Type_t;
-};
-template < int Dim, class T, class LayoutTag, class PatchTag,
-  int Dim2 > struct NewEngine <Engine < Dim, T, MultiPatchView < LayoutTag,
-  PatchTag, Dim2 > >, Interval < Dim > >
-{
-  typedef Engine < Dim, T, MultiPatchView < LayoutTag, PatchTag,
-    Dim2 > >Type_t;
-};
-template < int Dim, class T, class LayoutTag,
-  class PatchTag > class Engine < Dim, T, MultiPatch < LayoutTag,
-  PatchTag > >:public Observer < typename MultiPatchLayoutTraits < LayoutTag,
-  Dim >::Layout_t >
-{
-public:typedef MultiPatch < LayoutTag, PatchTag > Tag_t;
-  typedef Interval < Dim > Domain_t;
-};
-template < int Dim, class T, class LayoutTag, class PatchTag,
-  int Dim2 > class Engine < Dim, T, MultiPatchView < LayoutTag, PatchTag,
-  Dim2 > >
-{
-public:typedef MultiPatchView < LayoutTag, PatchTag, Dim2 > Tag_t;
-  typedef Interval < Dim > Domain_t;
-  typedef T Element_t;
-  enum
-  {
-    dimensions = Dim
-  };
-};
-class Full;
-template < int Dim, class T = double, class EngineTag = Full > class Vector {
-};
-
-template < int Dim > inline Interval < Dim >
-shrinkRight (const Interval < Dim > &dom, int s)
-{
-}
-
-template < int Dim > class GridLayout;
-struct GridTag
-{
-};
-template < int Dim > struct MultiPatchLayoutTraits <GridTag, Dim >
-{
-  typedef GridLayout < Dim > Layout_t;
-};
-template < int Dim > class GridLayoutData:public LayoutBaseData < Dim >,
-  public RefCounted, public Observable < GridLayoutData < Dim > >
-{
-  typedef int AxisIndex_t;
-  mutable DomainMap < Interval < 1 >, AxisIndex_t > mapAloc_m[Dim];
-};
-template < int Dim > class GridLayout:public LayoutBase < Dim,
-  GridLayoutData < Dim > >, public Observable < GridLayout < Dim > >,
-  public Observer < GridLayoutData < Dim > >
-{
-public:typedef GridLayout < Dim > This_t;
-    GridLayout ();
-};
-template < class MeshTag, class T, class EngineTag > class Field;
-enum CenteringType
-{
-  VertexType, EdgeType, FaceType, CellType
-};
-enum ContinuityType
-{
-  Continuous = 0, Discontinuous
-};
-template < int Dim > class Centering
-{
-public:typedef Loc < Dim > Orientation;
-  inline int size () const
-  {
-  }
-};
-template < int Dim > const Centering < Dim >
-canonicalCentering (const enum CenteringType type,
-		    const enum ContinuityType discontinuous,
-		    const int dimension = 0);
-template < class Mesh, class T, class EngineTag > class FieldEngine
-{
-public:enum
-  {
-    dimensions = Mesh::dimensions
-  };
-  enum
-  {
-    Dim = dimensions
-  };
-  typedef Engine < Dim, T, EngineTag > Engine_t;
-  typedef typename Engine_t::Domain_t Domain_t;
-  typedef GuardLayers < Dim > GuardLayers_t;
-template < class Layout2 > FieldEngine (const Centering < Dim > &centering, const Layout2 & layout, const Mesh & mesh, int materials = 1):num_materials_m (materials), centering_m (centering),
-    stride_m (centering.size ()), physicalCellDomain_m (layout.domain ()),
-    guards_m (layout.externalGuards ()), mesh_m (mesh)
-  {
-  }
-  unsigned int num_materials_m;
-  Centering < Dim > centering_m;
-  int stride_m;
-  Domain_t physicalCellDomain_m;
-  GuardLayers_t guards_m;
-  Mesh mesh_m;
-};
-
-template < class Subject > class SubFieldView;
-template < class Mesh, class T,
-  class EngineTag > class SubFieldView < Field < Mesh, T, EngineTag > >
-{
-public:typedef Field < Mesh, T, EngineTag > Type_t;
-};
-
-template < int Dim, class Mesh, class Domain > struct NewMeshTag
-{
-  typedef Mesh Type_t;
-};
-template < class Mesh, class T, class EngineTag,
-  class Domain > struct View1Implementation <Field < Mesh, T, EngineTag >,
-  Domain, false >
-{
-  typedef Field < Mesh, T, EngineTag > Subject_t;
-  typedef typename Subject_t::Engine_t Engine_t;
-  typedef typename NewEngine < Engine_t, Domain >::Type_t NewEngine_t;
-  typedef typename NewEngine_t::Element_t NewT_t;
-  typedef typename NewEngine_t::Tag_t NewEngineTag_t;
-  typedef typename NewMeshTag < NewEngine_t::dimensions, Mesh,
-    Domain >::Type_t NewMeshTag_t;
-  typedef Field < NewMeshTag_t, NewT_t, NewEngineTag_t > Type_t;
-};
-template < class Mesh, class T, class EngineTag,
-  class Sub1 > struct View1 <Field < Mesh, T, EngineTag >, Sub1 >
-{
-  typedef Field < Mesh, T, EngineTag > Subject_t;
-  typedef typename Subject_t::Domain_t Domain_t;
-  typedef TemporaryNewDomain1 < Domain_t, Sub1 > NewDomain_t;
-  typedef typename NewDomain_t::SliceType_t SDomain_t;
-  enum
-  {
-    sv = DomainTraits < SDomain_t >::singleValued
-  };
-  typedef View1Implementation < Subject_t, SDomain_t, sv > Dispatch_t;
-  typedef typename Dispatch_t::Type_t Type_t;
-};
-template < class Mesh, class T = double, class EngineTag = Brick > class Field {
-public:typedef Mesh MeshTag_t;
-  typedef Mesh Mesh_t;
-  typedef Field < Mesh, T, EngineTag > This_t;
-  typedef FieldEngine < Mesh, T, EngineTag > FieldEngine_t;
-  enum
-  {
-    dimensions = FieldEngine_t::dimensions
-  };
-  typedef Engine < dimensions, T, EngineTag > Engine_t;
-  typedef typename Engine_t::Domain_t Domain_t;
-  typedef Centering < dimensions > Centering_t;
-  template < class Layout2 > Field (const Centering_t & centering,
-				    const Layout2 & layout,
-				    const Mesh_t &
-				    mesh):fieldEngine_m (centering, layout,
-							 mesh)
-  {
-  }
-  inline typename SubFieldView < This_t >::Type_t center (int c) const
-  {
-  }
-  inline typename View1 < This_t, Domain_t >::Type_t all () const
-  {
-  }
-  template < class T1 > const This_t & operator= (const T1 & rhs) const
-  {
-  }
-private:  FieldEngine_t fieldEngine_m;
-};
-
-struct UniformRectilinearTag
-{
-};
-struct CartesianTag
-{
-};
-template < class MeshTraits > struct CartesianURM;
-template < class MeshTraits > class UniformRectilinearMeshData;
-template < class MeshTraits > class UniformRectilinearMesh;
-template < int Dim, typename T = double, class MeshTag =
-  UniformRectilinearTag, class CoordinateSystemTag = CartesianTag, int CDim =
-  Dim > struct MeshTraits;
-template < int Dim, typename T, class MeshTag, class CoordinateSystemTag,
-  int CDim > struct MeshTraitsBase
-{
-  typedef MeshTraits < Dim, T, MeshTag, CoordinateSystemTag,
-    CDim > MeshTraits_t;
-  enum
-  {
-    dimensions = Dim
-  };
-  typedef Vector < CDim, T > PointType_t;
-};
-template < int Dim, typename T, int CDim > struct MeshTraits <Dim, T,
-  UniformRectilinearTag, CartesianTag, CDim >:public MeshTraitsBase < Dim, T,
-  UniformRectilinearTag, CartesianTag, CDim >
-{
-  typedef typename MeshTraitsBase < Dim, T, UniformRectilinearTag,
-    CartesianTag, CDim >::MeshTraits_t MeshTraits_t;
-  typedef CartesianURM < MeshTraits_t > CoordinateSystem_t;
-  typedef UniformRectilinearMeshData < MeshTraits_t > MeshData_t;
-  typedef UniformRectilinearMesh < MeshTraits_t > Mesh_t;
-  typedef Vector < CDim, T > SpacingsType_t;
-};
-template < int Dim > class NoMeshData:public RefCounted
-{
-public:NoMeshData ()
-  {
-  }
-  template < class Layout >
-    explicit NoMeshData (const Layout &
-			 layout):physicalVertexDomain_m (layout.
-							 innerDomain ()),
-    physicalCellDomain_m (shrinkRight (physicalVertexDomain_m, 1)),
-    totalVertexDomain_m (layout.domain ()),
-    totalCellDomain_m (shrinkRight (totalVertexDomain_m, 1))
-  {
-  }
-private:Interval < Dim > physicalVertexDomain_m, physicalCellDomain_m;
-  Interval < Dim > totalVertexDomain_m, totalCellDomain_m;
-};
-
-template < class MeshTraits > class UniformRectilinearMeshData:public NoMeshData <
-  MeshTraits::
-  dimensions >
-{
-public:typedef typename
-    MeshTraits::MeshData_t
-    MeshData_t;
-  typedef typename
-    MeshTraits::PointType_t
-    PointType_t;
-  typedef typename
-    MeshTraits::SpacingsType_t
-    SpacingsType_t;
-  enum
-  {
-    dimensions = MeshTraits::dimensions
-  };
-  template < class Layout > UniformRectilinearMeshData (const Layout & layout,
-							const PointType_t &
-							origin,
-							const SpacingsType_t &
-							spacings):
-    NoMeshData <
-  dimensions > (layout),
-  origin_m (origin),
-  spacings_m (spacings)
-  {
-  }
-private:PointType_t origin_m;
-  SpacingsType_t
-    spacings_m;
-};
-
-template < class MeshTraits > class UniformRectilinearMesh:public MeshTraits::
-  CoordinateSystem_t
-{
-public:typedef MeshTraits
-    MeshTraits_t;
-  typedef typename
-    MeshTraits::MeshData_t
-    MeshData_t;
-  typedef typename
-    MeshTraits::PointType_t
-    PointType_t;
-  typedef typename
-    MeshTraits::SpacingsType_t
-    SpacingsType_t;
-  enum
-  {
-    dimensions = MeshTraits::dimensions
-  };
-  template < class Layout >
-    inline UniformRectilinearMesh (const Layout & layout,
-				   const PointType_t & origin,
-				   const SpacingsType_t & spacings):
-  data_m (new MeshData_t (layout, origin, spacings))
-  {
-  }
-private:RefCountedPtr < MeshData_t > data_m;
-};
-
-template < class MeshTraits > struct GenericURM
-{
-};
-template < class MeshTraits > struct CartesianURM:
-  public
-  GenericURM <
-  MeshTraits >
-{
-};
-template < int
-  dim,
-  class
-  MeshTag = UniformRectilinearTag, class CoordinateSystemTag = CartesianTag > struct ParallelTraits {
-  enum
-  {
-    Dim = dim
-  };
-  typedef
-    GridLayout <
-    dim >
-    Layout_t;
-  typedef
-    MeshTraits <
-    dim, double,
-    MeshTag,
-    CoordinateSystemTag >
-    MeshTraits_t;
-  typedef typename
-    MeshTraits_t::Mesh_t
-    Mesh_t;
-  typedef
-    MultiPatch <
-    GridTag,
-    Remote <
-  Brick > >
-    Engine_t;
-};
-template < class ComputeTraits > struct RhalkTraits:
-  public
-  ComputeTraits
-{
-  typedef typename
-    ComputeTraits::Mesh_t
-    Mesh_t;
-  typedef typename
-    ComputeTraits::Engine_t
-    Engine_t;
-  enum
-  {
-    Dim = ComputeTraits::Dim
-  };
-  typedef
-    Centering <
-    Dim >
-    Centering_t;
-  typedef typename
-    Mesh_t::SpacingsType_t
-    Spacings_t;
-  typedef
-    Field <
-    Mesh_t, double,
-    Engine_t >
-    Scalar_t;
-};
-enum
-{
-  Dim = 3
-};
-typedef
-  RhalkTraits <
-  ParallelTraits <
-  Dim,
-  UniformRectilinearTag,
-CartesianTag > >
-  Traits_t;
-Vector < Dim > origin;
-Traits_t::Spacings_t spacings;
-int
-main (int argc, char **argv)
-{
-  Traits_t::Layout_t layout;
-  Traits_t::Mesh_t mesh (layout, origin, spacings);
-  Traits_t::Centering_t face =
-    canonicalCentering < Traits_t::Dim > (FaceType, Continuous);
-  Traits_t::Scalar_t v (face, layout, mesh);
-  for (int i = 0; i < Dim; ++i)
-    v.center (i).all () = std::numeric_limits < double >::signaling_NaN ();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-02-07-VolatileArrayRefHack.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-02-07-VolatileArrayRefHack.cpp
deleted file mode 100644
index b8589b0..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-02-07-VolatileArrayRefHack.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgxx -S %s -o - | grep {volatile load}
-// PR3320
-
-void test(volatile int *a) {
-    // should be a volatile load.
-    a[0];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-02-16-CtorNames-dbg.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-02-16-CtorNames-dbg.cpp
deleted file mode 100644
index 8f1b598..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-02-16-CtorNames-dbg.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S -g --emit-llvm %s -o - | grep "\~A"
-class A {
-  int i;
-public:
-  A() { i = 0; }
- ~A() { i = 42; }
-};
-
-A a;
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-03-17-dbg.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-03-17-dbg.cpp
deleted file mode 100644
index 93da618..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-03-17-dbg.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o /dev/null -g
-// XTARGET: darwin,linux
-// XFAIL: *
-template <typename T1,typename T2>
-inline void f(const T1&,const T2&) { }
-
-template <typename T1,typename T2,void F(const T1&,const T2&)>
-struct A {
-    template <typename T> void g(T& i) { }
-};
-
-int main() {
-    int i;
-    A<int,int,f> a;
-    a.g(i);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-04-21-DtorNames-dbg.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-04-21-DtorNames-dbg.cpp
deleted file mode 100644
index 997c3f7..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-04-21-DtorNames-dbg.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// RUN: %llvmgcc -c -g %s -o - | llc -O0 -o %t.s
-// RUN: %compile_c %t.s -o %t.o
-// PR4025
-
-template <typename _Tp> class vector
-{
-public:
-  ~vector ()
-  {
-  }
-};
-
-class Foo
-{
-  ~Foo();
-  class FooImpl *impl_;
-};
-
-namespace {
-  class Bar;
-}
-
-class FooImpl
-{
-  vector<Bar*> thing;
-};
-
-Foo::~Foo()
-{
-  delete impl_;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-04-23-bool2.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-04-23-bool2.cpp
deleted file mode 100644
index 8614a37..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-04-23-bool2.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o /dev/null
-// g++.old-deja/g++.jason/bool2.C from gcc testsuite.
-// Crashed before 67975 went in.
-struct F {
-  bool b1 : 1;
-  bool b2 : 7;
-};
-
-int main()
-{
-  F f = { true, true };
-
-  if (int (f.b1) != 1)
-    return 1;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-05-04-PureConstNounwind.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-05-04-PureConstNounwind.cpp
deleted file mode 100644
index a4b4653..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-05-04-PureConstNounwind.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgxx -S -emit-llvm %s -o - | grep nounwind | count 4
-int c(void) __attribute__((const));
-int p(void) __attribute__((pure));
-int t(void);
-
-int f(void) {
-	return c() + p() + t();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-06-16-DebugInfoCrash.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-06-16-DebugInfoCrash.cpp
deleted file mode 100644
index b3758d2..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-06-16-DebugInfoCrash.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o /dev/null -g
-// This crashes if we try to emit debug info for TEMPLATE_DECL members.
-template <class T> class K2PtrVectorBase {};
-template <class T> class K2Vector {};
-template <class U > class K2Vector<U*> : public K2PtrVectorBase<U*> {};
-class ScriptInfoManager {
-  void PostRegister() ;
-  template <class SI> short ReplaceExistingElement(K2Vector<SI*>& v);
-};
-void ScriptInfoManager::PostRegister() {}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp
deleted file mode 100644
index eef0e86..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep baz | grep global | grep {struct.bar}
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep ccc | grep global | grep {struct.CC}
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep quux | grep global | grep {struct.bar}
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep foo | grep global | grep {struct.SRCFilter::FilterEntry}
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.bar} | grep {1 x i32}
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.CC} | grep {struct.bar}
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.bar} | grep {1 x i32}
-// RUN: %llvmgxx -S -m32 -emit-llvm %s -o - | grep {struct.SRCFilter::FilterEntry} | not grep {1 x i32}
-// XFAIL: *
-// XTARGET: powerpc-apple-darwin
-
-template<class _T1, class _T2>     struct payre     {
-  _T1 first;
-  _T2 second;
-  payre()       : first(), second() {    }
-};
-struct KBFP {
-  double mCutoffFrequency;
-};
-class SRCFilter {
-  struct FilterEntry: public payre<KBFP, float*>{};
-  static FilterEntry foo;
-};
-SRCFilter::FilterEntry SRCFilter::foo;    // 12 bytes
-payre<KBFP, float*> baz;                  // 16 bytes
-class CC {                                // 16 bytes
-  public: payre<KBFP, float*> x;          
-};
-class CC ccc;
-
-struct bar { KBFP x; float* y;};          // 16 bytes
-struct bar quux;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-06-30-ByrefBlock.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-06-30-ByrefBlock.cpp
deleted file mode 100644
index be9c94f..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-06-30-ByrefBlock.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// Insure __block_holder_tmp is allocated on the stack.  Darwin only.
-// RUN: %llvmgxx %s -S -O2 -o - | egrep {__block_holder_tmp.*alloca}
-// XFAIL: *
-// XTARGET: darwin
-// <rdar://problem/5865221>
-// END.
-extern void fubar_dispatch_sync(void (^PP)(void));
-void fubar() {
-  __block void *voodoo;
- fubar_dispatch_sync(^(void){voodoo=0;});
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-07-15-LineNumbers.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-07-15-LineNumbers.cpp
deleted file mode 100644
index 54624a3..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-07-15-LineNumbers.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// This is a regression test on debug info to make sure that we can
-// print line numbers in asm.
-// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | \
-// RUN:    llc --disable-fp-elim -O0 -relocation-model=pic | grep {# SrcLine 25}
-// XFAIL: *
-
-#include <stdlib.h>
-
-class DeepStack {
-  int seedVal;
-public:
-  DeepStack(int seed) : seedVal(seed) {}
-
-  int shallowest( int x ) { return shallower(x + 1); }
-  int shallower ( int x ) { return shallow(x + 2); }
-  int shallow   ( int x ) { return deep(x + 3); }
-  int deep      ( int x ) { return deeper(x + 4); }
-  int deeper    ( int x ) { return deepest(x + 6); }
-  int deepest   ( int x ) { return x + 7; }
-
-  int runit() { return shallowest(seedVal); }
-};
-
-int main ( int argc, char** argv) {
-
-  DeepStack DS9( (argc > 1 ? atoi(argv[1]) : 0) );
-  return DS9.runit();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-07-16-PrivateCopyConstructor.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-07-16-PrivateCopyConstructor.cpp
deleted file mode 100644
index 96e85b2..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-07-16-PrivateCopyConstructor.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgxx %s -S
-// XFAIL: darwin
-
-#include <set>
-
-class A {
-public:
-  A();
-private:
-  A(const A&);
-};
-void B()
-{
-  std::set<void *, A> foo;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-07-16-Using.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-07-16-Using.cpp
deleted file mode 100644
index 1acadf6..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-07-16-Using.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgxx %s -S
-
-namespace A {
-  typedef int B;
-}
-struct B {
-};
-using ::A::B;
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-08-03-Varargs.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-08-03-Varargs.cpp
deleted file mode 100644
index cea3894..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-08-03-Varargs.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgxx %s -S -emit-llvm -o - | grep _Z1az\(\.\.\.\)
-// XFAIL: *
-// PR4678
-void a(...) {
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-08-05-ZeroInitWidth.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-08-05-ZeroInitWidth.cpp
deleted file mode 100644
index bc862e7..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-08-05-ZeroInitWidth.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgxx -c -emit-llvm %s -o -
-// rdar://7114564
-struct A {
-  unsigned long long : (sizeof(unsigned long long) * 8) - 16;
-};
-struct B {
-  A a;
-};
-struct B b = {
-  {}
-};
-
diff --git a/libclamav/c++/llvm/test/FrontendC++/2009-08-11-VectorRetTy.cpp b/libclamav/c++/llvm/test/FrontendC++/2009-08-11-VectorRetTy.cpp
deleted file mode 100644
index b2c3ba1..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/2009-08-11-VectorRetTy.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgxx %s -c -o /dev/null
-// <rdar://problem/7096460>
-typedef void (*Func) ();
-typedef long long m64 __attribute__((__vector_size__(8), __may_alias__));
-static inline m64 __attribute__((__always_inline__, __nodebug__)) _mm_set1_pi16() {}
-template <class MM>
-static void Bork() {
-  const m64 mmx_0x00ff = _mm_set1_pi16();
-}
-struct A {};
-Func arr[] = {
-  Bork<A>
-};
diff --git a/libclamav/c++/llvm/test/FrontendC++/dg.exp b/libclamav/c++/llvm/test/FrontendC++/dg.exp
deleted file mode 100644
index fc852e3..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if [ llvm_gcc_supports c++ ] then {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/FrontendC++/ptr-to-method-devirt.cpp b/libclamav/c++/llvm/test/FrontendC++/ptr-to-method-devirt.cpp
deleted file mode 100644
index 358b801..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/ptr-to-method-devirt.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-// PR1602
-// RUN: %llvmgxx -c -emit-llvm %s -o - -O3 | llvm-dis | not grep ptrtoint
-// RUN: %llvmgxx -c -emit-llvm %s -o - -O3 | llvm-dis | grep getelementptr | count 1
-
-
-struct S { virtual void f(); };
-
-typedef void (S::*P)(void);
-
-const P p = &S::f; 
-
-void g(S s) {
-   (s.*p)();
- }
diff --git a/libclamav/c++/llvm/test/FrontendC++/x86-64-abi-sret-vs-2word-struct-param.cpp b/libclamav/c++/llvm/test/FrontendC++/x86-64-abi-sret-vs-2word-struct-param.cpp
deleted file mode 100644
index ec69afc..0000000
--- a/libclamav/c++/llvm/test/FrontendC++/x86-64-abi-sret-vs-2word-struct-param.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// RUN: %llvmgxx -S -emit-llvm %s -o - | grep byval | count 2
-// XTARGET: x86
-// PR4242
-// (PR 4242 bug is on 64-bit only, test passes on x86-32 as well)
-
-struct S {
-    void* data[3];
-};
-
-struct T {
-    void* data[2];
-};
-
-extern "C" S fail(int, int, int, int, T t, void* p) {
-    S s;
-    s.data[0] = t.data[0];
-    s.data[1] = t.data[1];
-    s.data[2] = p;
-    return s;
-}
-
-extern "C" S* succeed(S* sret, int, int, int, int, T t, void* p) {
-    sret->data[0] = t.data[0];
-    sret->data[1] = t.data[1];
-    sret->data[2] = p;
-    return sret;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-01-23-LoadQISIReloadFailure.c b/libclamav/c++/llvm/test/FrontendC/2002-01-23-LoadQISIReloadFailure.c
deleted file mode 100644
index 1779a99..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-01-23-LoadQISIReloadFailure.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* Regression test.  Just compile .c -> .ll to test */
-int foo(void) {
-  unsigned char *pp;
-  unsigned w_cnt;
-
-  w_cnt += *pp;
-  
-  return w_cnt;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-01-24-ComplexSpaceInType.c b/libclamav/c++/llvm/test/FrontendC/2002-01-24-ComplexSpaceInType.c
deleted file mode 100644
index 13d92c7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-01-24-ComplexSpaceInType.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-// This caused generation of the following type name:
-//   %Array = uninitialized global [10 x %complex int]
-//
-// which caused problems because of the space int the complex int type
-//
-
-struct { int X, Y; } Array[10];
-
-void foo() {}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-01-24-HandleCallInsnSEGV.c b/libclamav/c++/llvm/test/FrontendC/2002-01-24-HandleCallInsnSEGV.c
deleted file mode 100644
index e619cf4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-01-24-HandleCallInsnSEGV.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-void *dlclose(void*);
-
-void ap_os_dso_unload(void *handle)
-{
-    dlclose(handle);
-    return;     /* This return triggers the bug: Weird */
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-13-ConditionalInCall.c b/libclamav/c++/llvm/test/FrontendC/2002-02-13-ConditionalInCall.c
deleted file mode 100644
index f361088..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-13-ConditionalInCall.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* Test problem where bad code was generated with a ?: statement was 
-   in a function call argument */
-
-void foo(int, double, float);
-
-void bar(int x) {
-  foo(x, x ? 1.0 : 12.5, 1.0f);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-13-ReloadProblem.c b/libclamav/c++/llvm/test/FrontendC/2002-02-13-ReloadProblem.c
deleted file mode 100644
index 2ae97b7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-13-ReloadProblem.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* This triggered a problem in reload, fixed by disabling most of the 
- * steps of compilation in GCC.  Before this change, the code went through
- * the entire backend of GCC, even though it was unnecessary for LLVM output
- * now it is skipped entirely, and since reload doesn't run, it can't cause
- * a problem.
- */
-
-extern int tolower(int);
-
-const char *rangematch(const char *pattern, int test, int c) {
-
-  if ((c <= test) | (tolower(c) <= tolower((unsigned char)test)))
-    return 0;
-
-  return pattern;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-13-TypeVarNameCollision.c b/libclamav/c++/llvm/test/FrontendC/2002-02-13-TypeVarNameCollision.c
deleted file mode 100644
index 2dede68..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-13-TypeVarNameCollision.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* This testcase causes a symbol table collision.  Type names and variable
- * names should be in distinct namespaces
- */
-
-typedef struct foo {
-  int X, Y;
-} FOO;
-
-static FOO foo[100];
-
-int test() {
-  return foo[4].Y;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-13-UnnamedLocal.c b/libclamav/c++/llvm/test/FrontendC/2002-02-13-UnnamedLocal.c
deleted file mode 100644
index 85aa615..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-13-UnnamedLocal.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* Testcase for a problem where GCC allocated xqic to a register,
- * and did not have a VAR_DECL that explained the stack slot to LLVM.
- * Now the LLVM code synthesizes a stack slot if one is presented that
- * has not been previously recognized.  This is where alloca's named 
- * 'local' come from now. 
- */
-
-typedef struct {
-  short x;
-} foostruct;
-
-int foo(foostruct ic);
-
-void test() {
-  foostruct xqic;
-  foo(xqic);
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-14-EntryNodePreds.c b/libclamav/c++/llvm/test/FrontendC/2002-02-14-EntryNodePreds.c
deleted file mode 100644
index 851af91..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-14-EntryNodePreds.c
+++ /dev/null
@@ -1,37 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* GCC Used to generate code that contained a branch to the entry node of 
- * the do_merge function.  This is illegal LLVM code.  To fix this, GCC now
- * inserts an entry node regardless of whether or not it has to insert allocas.
- */
-
-struct edge_rec
-{
-  struct VERTEX *v;
-  struct edge_rec *next;
-  int wasseen;
-  int more_data;
-};
-
-typedef struct edge_rec *QUAD_EDGE;
-
-typedef struct {
-  QUAD_EDGE left, right;
-} EDGE_PAIR;
-
-struct EDGE_STACK {
-    int ptr;
-    QUAD_EDGE *elts;
-    int stack_size;
-};
-
-int do_merge(QUAD_EDGE ldo, QUAD_EDGE rdo) {
-  int lvalid;
-  QUAD_EDGE basel,rcand;
-  while (1) {
-    if (!lvalid) {
-      return (int)basel->next;
-    }
-  }
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-16-RenamingTest.c b/libclamav/c++/llvm/test/FrontendC/2002-02-16-RenamingTest.c
deleted file mode 100644
index 6042b67..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-16-RenamingTest.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* test that locals are renamed with . notation */
-
-void abc(void *);
-
-void Test5(double X) {
-  abc(&X);
-  {
-    int X;
-    abc(&X);
-    {
-      float X;
-      abc(&X);
-    }
-  }
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-17-ArgumentAddress.c b/libclamav/c++/llvm/test/FrontendC/2002-02-17-ArgumentAddress.c
deleted file mode 100644
index acd7e37..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-17-ArgumentAddress.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-int test(int X) {
-  return X;
-}
-
-void abc(int *X);
-int def(int Y, int Z) {
-  abc(&Z);
-  return Y;
-}
-
-struct Test { short X, x; int Y, Z; };
-
-int Testing(struct Test *A) {
-  return A->X+A->Y;
-}
-
-int Test2(int X, struct Test A, int Y) {
-  return X+Y+A.X+A.Y;
-}
-int Test3(struct Test A, struct Test B) {
-  return A.X+A.Y+B.Y+B.Z;
-}
-
-struct Test Test4(struct Test A) {
-  return A;
-}
-
-int Test6() {
-  int B[200];
-  return B[4];
-}
-
-struct STest2 { int X; short Y[4]; double Z; };
-
-struct STest2 Test7(struct STest2 X) {
-  return X;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-18-64bitConstant.c b/libclamav/c++/llvm/test/FrontendC/2002-02-18-64bitConstant.c
deleted file mode 100644
index a88587a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-18-64bitConstant.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* GCC wasn't handling 64 bit constants right fixed */
-
-#include <stdio.h>
-
-int main() {
-  long long Var = 123455678902ll;
-  printf("%lld\n", Var);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-02-18-StaticData.c b/libclamav/c++/llvm/test/FrontendC/2002-02-18-StaticData.c
deleted file mode 100644
index 76cb0e6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-02-18-StaticData.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-double FOO = 17;
-double BAR = 12.0;
-float XX = 12.0f;
-
-static char *procnames[] = {
-  "EXIT"
-};
-
-void *Data[] = { &FOO, &BAR, &XX };
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-03-11-LargeCharInString.c b/libclamav/c++/llvm/test/FrontendC/2002-03-11-LargeCharInString.c
deleted file mode 100644
index b383d03..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-03-11-LargeCharInString.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-#include <string.h>
-
-int test(char *X) {
-  /* LLVM-GCC used to emit:
-     %.LC0 = internal global [3 x sbyte] c"\1F\FFFFFF8B\00"
-   */
-  return strcmp(X, "\037\213");
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-03-12-ArrayInitialization.c b/libclamav/c++/llvm/test/FrontendC/2002-03-12-ArrayInitialization.c
deleted file mode 100644
index 1997a3c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-03-12-ArrayInitialization.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* GCC would generate bad code if not enough initializers are 
-   specified for an array.
- */
-
-int a[10] = { 0, 2};
-
-char str[10] = "x";
-
-void *Arr[5] = { 0, 0 };
-
-float F[12] = { 1.23f, 34.7f };
-
-struct Test { int X; double Y; };
-
-struct Test Array[10] = { { 2, 12.0 }, { 3, 24.0 } };
-
-int B[4][4] = { { 1, 2, 3, 4}, { 5, 6, 7 }, { 8, 9 } };
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-03-12-StructInitialize.c b/libclamav/c++/llvm/test/FrontendC/2002-03-12-StructInitialize.c
deleted file mode 100644
index 9eb11e1..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-03-12-StructInitialize.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-typedef struct Connection_Type {
-   long    to;
-   char    type[10];
-   long    length;
-} Connection;
-
-Connection link[3]
-= { {1, "link1", 10},
-    {2, "link2", 20},
-    {3, "link3", 30} };
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-03-12-StructInitializer.c b/libclamav/c++/llvm/test/FrontendC/2002-03-12-StructInitializer.c
deleted file mode 100644
index fa333b7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-03-12-StructInitializer.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* GCC was not emitting string constants of the correct length when
- * embedded into a structure field like this.  It thought the strlength
- * was -1.
- */
-
-typedef struct Connection_Type {
-   long    to;
-   char    type[10];
-   long    length;
-} Connection;
-
-Connection link[3]
-= { {1, "link1", 10},
-    {2, "link2", 20},
-    {3, "link3", 30} };
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-03-14-BrokenPHINode.c b/libclamav/c++/llvm/test/FrontendC/2002-03-14-BrokenPHINode.c
deleted file mode 100644
index 48d9ab7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-03-14-BrokenPHINode.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* GCC was generating PHI nodes with an arity < #pred of the basic block the
- * PHI node lived in.  This was breaking LLVM because the number of entries
- * in a PHI node must equal the number of predecessors for a basic block.
- */
-
-int trys(char *s, int x)
-{
-  int asa;
-  double Val;
-  int LLS;
-  if (x) {
-    asa = LLS + asa;
-  } else {
-  }
-  return asa+(int)Val;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-03-14-BrokenSSA.c b/libclamav/c++/llvm/test/FrontendC/2002-03-14-BrokenSSA.c
deleted file mode 100644
index 9dc674a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-03-14-BrokenSSA.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* This code used to break GCC's SSA computation code.  It would create
-   uses of B & C that are not dominated by their definitions.  See:
-   http://gcc.gnu.org/ml/gcc/2002-03/msg00697.html
- */
-int bar();
-int foo()
-{
-  int a,b,c;
-
-  a = b + c;
-  b = bar();
-  c = bar();
-  return a + b + c;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-03-14-QuotesInStrConst.c b/libclamav/c++/llvm/test/FrontendC/2002-03-14-QuotesInStrConst.c
deleted file mode 100644
index 63eaeef..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-03-14-QuotesInStrConst.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* GCC was not escaping quotes in string constants correctly, so this would
- * get emitted:
- *  %.LC1 = internal global [32 x sbyte] c"*** Word "%s" on line %d is not\00"
- */
-
-const char *Foo() {
-  return "*** Word \"%s\" on line %d is not";
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-04-07-SwitchStmt.c b/libclamav/c++/llvm/test/FrontendC/2002-04-07-SwitchStmt.c
deleted file mode 100644
index 33e9c3d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-04-07-SwitchStmt.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-int printf(const char *, ...);
-int foo();
-
-int main() {
-  while (foo()) {
-     switch (foo()) {
-     case 0:
-     case 1:
-     case 2:
-     case 3:
-       printf("3");
-     case 4: printf("4");
-     case 5:
-     case 6:
-     default:
-       break;
-     }
-   }
-   return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-04-08-LocalArray.c b/libclamav/c++/llvm/test/FrontendC/2002-04-08-LocalArray.c
deleted file mode 100644
index 1dc51a0..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-04-08-LocalArray.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* GCC is not outputting the static array to the LLVM backend, so bad things
- * happen.  Note that if this is defined static, everything seems fine.
- */
-double test(unsigned X) {
-  double student_t[30]={0.0 , 12.706 , 4.303 , 3.182 , 2.776 , 2.571 ,
-                               2.447 , 2.365 , 2.306 , 2.262 , 2.228 ,
-                               2.201 , 2.179 , 2.160 , 2.145 , 2.131 ,
-                               2.120 , 2.110 , 2.101 , 2.093 , 2.086 ,
-                               2.080 , 2.074 , 2.069 , 2.064 , 2.060 ,
-                               2.056 , 2.052 , 2.048 , 2.045 };
-  return student_t[X];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-04-09-StructRetVal.c b/libclamav/c++/llvm/test/FrontendC/2002-04-09-StructRetVal.c
deleted file mode 100644
index de3b6fc..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-04-09-StructRetVal.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct S {
-  int i;
-  short s1, s2;
-};
-
-struct S func_returning_struct(void);
-
-void loop(void) {
-  func_returning_struct();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-04-10-StructParameters.c b/libclamav/c++/llvm/test/FrontendC/2002-04-10-StructParameters.c
deleted file mode 100644
index aaaba2a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-04-10-StructParameters.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-typedef struct {
-  char p;
-  short q;
-  char r;
-  int X;
-  short Y, Z;
-  int Q;
-} foo;
-
-int test(foo X, float);
-int testE(char,short,char,int,int,float);
-void test3(foo *X) {
-  X->q = 1;
-}
-
-void test2(foo Y) {
-  testE(Y.p, Y.q, Y.r, Y.X, Y.Y, 0.1f);
-  test(Y, 0.1f);
-  test2(Y);
-  test3(&Y);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-05-23-StaticValues.c b/libclamav/c++/llvm/test/FrontendC/2002-05-23-StaticValues.c
deleted file mode 100644
index a5753b9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-05-23-StaticValues.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* Make sure the frontend is correctly marking static stuff as internal! */
-
-int X;
-static int Y = 12;
-
-static void foo(int Z) {
-  Y = Z;
-}
-
-void *test() {
-  foo(12);
-  return &Y;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-05-23-TypeNameCollision.c b/libclamav/c++/llvm/test/FrontendC/2002-05-23-TypeNameCollision.c
deleted file mode 100644
index 25d1149..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-05-23-TypeNameCollision.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* Testcase for when struct tag conflicts with typedef name... grr */
-
-typedef struct foo {
-  struct foo *X;
-  int Y;
-} * foo;
-
-foo F1;
-struct foo *F2;
-
-enum bar { test1, test2 };
-
-typedef float bar;
-
-enum bar B1;
-bar B2;
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-05-24-Alloca.c b/libclamav/c++/llvm/test/FrontendC/2002-05-24-Alloca.c
deleted file mode 100644
index 128bc8b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-05-24-Alloca.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int main(int argc, char **argv) {
-  char *C = (char*)alloca(argc);
-  strcpy(C, argv[0]);
-  puts(C);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-06-25-FWriteInterfaceFailure.c b/libclamav/c++/llvm/test/FrontendC/2002-06-25-FWriteInterfaceFailure.c
deleted file mode 100644
index 4380dc7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-06-25-FWriteInterfaceFailure.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-#include <stdio.h>
-
-void  test() {
-  fprintf(stderr, "testing\n");
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscListTests.c b/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscListTests.c
deleted file mode 100644
index 4a5459a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscListTests.c
+++ /dev/null
@@ -1,71 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-// Test list stuff
-
-void *malloc(unsigned);
-
-// Test opaque structure support.  the list type is defined later
-struct list;
-
-struct list *PassThroughList(struct list *L) {
-  return L;
-}
-
-
-// Recursive data structure tests...
-
-typedef struct list {
-  int Data;
-  struct list *Next;
-} list;
-
-list *Data;
-
-void foo() {
-  static int Foo = 0;            // Test static local variable
-  Foo += 1;                      // Increment static variable
-
-  Data = (list*)malloc(12);      // This is not a proper list allocation
-}
-
-extern list ListNode1;
-list ListNode3 = { 4, 0          };
-list ListNode2 = { 3, &ListNode3 };
-list ListNode0 = { 1, &ListNode1 };
-list ListNode1 = { 2, &ListNode2 };
-
-
-list ListArray[10];
-
-// Iterative insert fn
-void InsertIntoListTail(list **L, int Data) {
-  while (*L)
-    L = &(*L)->Next;
-  *L = (list*)malloc(sizeof(list));
-  (*L)->Data = Data;
-  (*L)->Next = 0;
-}
-
-// Recursive list search fn
-list *FindData(list *L, int Data) {
-  if (L == 0) return 0;
-  if (L->Data == Data) return L;
-  return FindData(L->Next, Data);
-}
-
-void foundIt(void);
-
-// Driver fn...
-void DoListStuff() {
-  list *MyList = 0;
-  InsertIntoListTail(&MyList, 100);
-  InsertIntoListTail(&MyList, 12);
-  InsertIntoListTail(&MyList, 42);
-  InsertIntoListTail(&MyList, 1123);
-  InsertIntoListTail(&MyList, 1213);
-
-  if (FindData(MyList, 75)) foundIt();
-  if (FindData(MyList, 42)) foundIt();
-  if (FindData(MyList, 700)) foundIt();
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests.c b/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests.c
deleted file mode 100644
index 57c4120..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests.c
+++ /dev/null
@@ -1,57 +0,0 @@
-// RUN: %llvmgcc -w -S %s -o - | llvm-as -o /dev/null
-
-/* These are random tests that I used when working on the GCC frontend 
-   originally. */
-
-// test floating point comparison!
-int floatcomptest(double *X, double *Y, float *x, float *y) {
-  return *X < *Y || *x < *y;
-}
-
-extern void *malloc(unsigned);
-
-// Exposed a bug
-void *memset_impl(void *dstpp, int c, unsigned len) {
-  long long int dstp = (long long int) dstpp;
-
-  while (dstp % 4 != 0)
-    {
-      ((unsigned char *) dstp)[0] = c;
-      dstp += 1;
-      len -= 1;
-    }
-  return dstpp;
-}
-
-// TEST problem with signed/unsigned versions of the same constants being shared
-// incorrectly!
-//
-static char *temp;
-static int remaining;
-static char *localmalloc(int size) {
-  char *blah;
-  
-  if (size>remaining) 
-    {
-      temp = (char *) malloc(32768);
-      remaining = 32768;
-      return temp;
-    }
-  return 0;
-}
-
-typedef struct { double X; double Y; int Z; } PBVTest;
-
-PBVTest testRetStruct(float X, double Y, int Z) {
-  PBVTest T = { X, Y, Z };
-  return T;
-}
-PBVTest testRetStruct2(void);  // external func no inlining
-
-
-double CallRetStruct(float X, double Y, int Z) {
-  PBVTest T = testRetStruct2();
-  return T.X+X+Y+Z;
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests2.c b/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests2.c
deleted file mode 100644
index f2c7c81..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests2.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-// Test ?: in function calls
-extern fp(int, char*);
-char *Ext;
-void
-__bb_exit_func (void)
-{
-  fp (12, Ext ? Ext : "<none>");
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests3.c b/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests3.c
deleted file mode 100644
index 7ef7e23..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-14-MiscTests3.c
+++ /dev/null
@@ -1,187 +0,0 @@
-// RUN: %llvmgcc -w -S %s -o - | llvm-as -o /dev/null
-
-
-
-void *malloc(unsigned);
-
-//#include <stdio.h>
-int puts(const char *s);
-
-struct FunStructTest {
-  int Test1;
-  char *Pointer;
-  int Array[12];
-};
-
-struct SubStruct {
-  short X, Y;
-};
-
-struct Quad {
-  int w;
-  struct SubStruct SS;
-  struct SubStruct *SSP;
-  char c;
-  int y;
-};
-
-struct Quad GlobalQuad = { 4, {1, 2}, 0, 3, 156 };
-
-typedef int (*FuncPtr)(int);
-
-unsigned PtrFunc(int (*Func)(int), int X) {
-  return Func(X);
-}
-
-char PtrFunc2(FuncPtr FuncTab[30], int Num) {
-  return FuncTab[Num]('b');
-}
-
-extern char SmallArgs2(char w, char x, long long Zrrk, char y, char z);
-extern int SomeFunc(void);
-char SmallArgs(char w, char x, char y, char z) {
-  SomeFunc();
-  return SmallArgs2(w-1, x+1, y, z, w);
-}
-
-static int F0(struct Quad Q, int i) {              /* Pass Q by value */
-  struct Quad R;
-  if (i) R.SS = Q.SS;
-  Q.SSP = &R.SS;
-  Q.w = Q.y = Q.c = 1;
-  return Q.SS.Y + i + R.y - Q.c;
-}
-
-int F1(struct Quad *Q, int i) {             /* Pass Q by address */
-  struct Quad R;
-#if 0
-  if (i) R.SS = Q->SS;
-#else
-  if (i) R = *Q;
-#endif
-  Q->w = Q->y = Q->c = 1;
-  return Q->SS.Y+i+R.y-Q->c;
-}
-
-
-int BadFunc(float Val) {
-  int Result;
-  if (Val > 12.345) Result = 4;
-  return Result;     /* Test use of undefined value */
-}
-
-int RealFunc(void) {
-  return SomeUndefinedFunction(1, 4, 5);
-}
-
-extern int EF1(int *, char *, int *);
-
-int Func(int Param, long long Param2) {
-  int Result = Param;
-
-  {{{{
-      char c; int X;
-      EF1(&Result, &c, &X);
-    }}}
-
-    {   // c & X are duplicate names!
-      char c; int X;
-      EF1(&Result, &c, &X);
-    }
-
-  }
-  return Result;
-}
-
-
-short FunFunc(long long x, char z) {
-  return x+z;
-}
-
-unsigned castTest(int X) { return X; }
-
-double TestAdd(double X, float Y) {
-  return X+Y+.5;
-}
-
-int func(int i, int j) {
-  while (i != 20)
-    i += 2;
-
-  j += func(2, i);
-  return (i * 3 + j*2)*j;
-}
-
-int SumArray(int Array[], int Num) {
-  int i, Result = 0;
-  for (i = 0; i < Num; ++i)
-    Result += Array[i];
-
-  return Result;
-}
-
-int ArrayParam(int Values[100]) {
-  return EF1((int*)Values[50], (char*)1, &Values[50]);
-}
-
-int ArrayToSum(void) {
-  int A[100], i;
-  for (i = 0; i < 100; ++i)
-    A[i] = i*4;
-
-  return A[A[0]]; //SumArray(A, 100);
-}
-
-
-int ExternFunc(long long, unsigned*, short, unsigned char);
-
-int main(int argc, char *argv[]) {
-  unsigned i;
-  puts("Hello world!\n");
-
-  ExternFunc(-1, 0, (short)argc, 2);
-  //func(argc, argc);
-
-  for (i = 0; i < 10; i++)
-    puts(argv[3]);
-  return 0;
-}
-
-double MathFunc(double X, double Y, double Z,
-                double AA, double BB, double CC, double DD,
-                double EE, double FF, double GG, double HH,
-                double aAA, double aBB, double aCC, double aDD,
-                double aEE, double aFF) {
-  return X + Y + Z + AA + BB + CC + DD + EE + FF + GG + HH
-       + aAA + aBB + aCC + aDD + aEE + aFF;
-}
-
-
-
-void strcpy(char *s1, char *s2) {
-  while (*s1++ = *s2++);
-}
-
-void strcat(char *s1, char *s2) {
-  while (*s1++);
-  s1--;
-  while (*s1++ = *s2++);
-}
-
-int strcmp(char *s1, char *s2) {
-  while (*s1++ == *s2++);
-  if (*s1 == 0) {
-    if (*s2 == 0) {
-      return 0;
-    } else {
-      return -1;
-    }
-  } else {
-    if (*s2 == 0) {
-      return 1;
-    } else {
-      return (*(--s1) - *(--s2));
-    }
-  }
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-16-HardStringInit.c b/libclamav/c++/llvm/test/FrontendC/2002-07-16-HardStringInit.c
deleted file mode 100644
index 2785e51..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-16-HardStringInit.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-  char      auto_kibitz_list[100][20] = {
-                                      {"diepx"},
-                                      {"ferret"},
-                                      {"knightc"},
-                                      {"knightcap"}};
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-17-StringConstant.c b/libclamav/c++/llvm/test/FrontendC/2002-07-17-StringConstant.c
deleted file mode 100644
index 9ba0c25..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-17-StringConstant.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-char * foo() { return "\\begin{"; }
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-29-Casts.c b/libclamav/c++/llvm/test/FrontendC/2002-07-29-Casts.c
deleted file mode 100644
index 44bb610..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-29-Casts.c
+++ /dev/null
@@ -1,86 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/types.h>
-
-int
-main(int argc, char** argv)
-{
-  char     c1;
-  short    s1, ssf1, ssd1;
-  unsigned char  ubs0;
-  signed char   bs0;
-  unsigned char ubc0, uc2;
-  unsigned short us2, usf1, usd1;
-  int ic3, is3, sif1, sid1;
-  unsigned int     uic4, uis4, uif1, uid1;
-  long     slf1, sld1;
-  unsigned long    ulf1, uld1;
-  float    f1;
-  double   d1;
-  
-  /* Test integer to integer conversions */
-  
-  c1 = (char)  (argc >= 2)? atoi(argv[1]) : 0xff64; /* 100 = 'd' */
-  s1 = (short) (argc >= 3)? atoi(argv[2]) : -769;   /* 0xf7ff = -769 */
-  
-  ubc0 = (unsigned char) c1;                      /* 100 = 'd' */
-  ubs0 = (unsigned char) s1;                            /* 0xff = 255 */
-  bs0  = (signed char) s1;                             /* 0xff = -1 */
-  
-  uc2 = (unsigned char) c1;                       /* 100 = 'd' */
-  us2 = (unsigned short) s1;                      /* 0xf7ff = 64767 */
-  
-  ic3 = (int) c1;                                 /* 100 = 'd' */
-  is3 = (int) s1;                                 /* 0xfffff7ff = -769 */
-  
-  uic4 = (unsigned int) c1;                       /*  100 = 'd' */
-  uis4 = (unsigned int) s1;                       /* 0xfffff7ff = 4294966527 */
-  
-  printf("ubc0 = '%c'\n", ubc0);
-  printf("ubs0 = %u\n",   ubs0);
-  printf("bs0  = %d\n",   bs0);
-  printf("c1   = '%c'\n", c1);
-  printf("s1   = %d\n",   s1);
-  printf("uc2  = '%c'\n", uc2);
-  printf("us2  = %u\n",   us2);
-  printf("ic3  = '%c'\n", ic3);
-  printf("is3  = %d\n",   is3);
-  printf("uic4 = '%c'\n", uic4);
-  printf("uis4 = %u\n",   uis4);
-  
-  /* Test floating-point to integer conversions */
-  f1 = (float)  (argc >= 4)? atof(argv[3]) : 1.0;
-  d1 =          (argc >= 5)? atof(argv[4]) : 2.0;
-  
-  usf1 = (unsigned short) f1;
-  usd1 = (unsigned short) d1;
-  uif1 = (unsigned int) f1;
-  uid1 = (unsigned int) d1;
-  ulf1 = (unsigned long) f1;
-  uld1 = (unsigned long) d1;
-  
-  ssf1 = (short) f1;
-  ssd1 = (short) d1;
-  sif1 = (int) f1;
-  sid1 = (int) d1;
-  slf1 = (long) f1;
-  sld1 = (long) d1;
-  
-  printf("usf1 = %u\n", usf1);
-  printf("usd1 = %u\n", usd1);
-  printf("uif1 = %u\n", uif1);
-  printf("uid1 = %u\n", uid1);
-  printf("ulf1 = %u\n", ulf1);
-  printf("uld1 = %u\n", uld1);
-  
-  printf("ssf1 = %d\n", ssf1);
-  printf("ssd1 = %d\n", ssd1);
-  printf("sif1 = %d\n", sif1);
-  printf("sid1 = %d\n", sid1);
-  printf("slf1 = %d\n", slf1);
-  printf("sld1 = %d\n", sld1);
-  
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-30-SubregSetAssertion.c b/libclamav/c++/llvm/test/FrontendC/2002-07-30-SubregSetAssertion.c
deleted file mode 100644
index af72eda..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-30-SubregSetAssertion.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-union X {
-  void *B;
-};
-
-union X foo() {
-  union X A;
-  A.B = (void*)123;
-  return A;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-30-UnionTest.c b/libclamav/c++/llvm/test/FrontendC/2002-07-30-UnionTest.c
deleted file mode 100644
index c931b80..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-30-UnionTest.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-union X;
-struct Empty {};
-union F {};
-union Q { union Q *X; };
-union X {
-  char C;
-  int A, Z;
-  long long B;
-  void *b1;
-  struct { int A; long long Z; } Q;
-};
-
-union X foo(union X A) {
-  A.C = 123;
-  A.A = 39249;
-  //A.B = (void*)123040123321;
-  A.B = 12301230123123LL;
-  A.Z = 1;
-  return A;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-30-VarArgsCallFailure.c b/libclamav/c++/llvm/test/FrontendC/2002-07-30-VarArgsCallFailure.c
deleted file mode 100644
index 5d93947..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-30-VarArgsCallFailure.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-int tcount;
-void test(char *, const char*, int);
-void foo() {
-  char Buf[10];
-  test(Buf, "n%%%d", tcount++);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-31-BadAssert.c b/libclamav/c++/llvm/test/FrontendC/2002-07-31-BadAssert.c
deleted file mode 100644
index 5c3d74c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-31-BadAssert.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-typedef struct
-{
-        unsigned char type;        /* Indicates, NORMAL, SUBNORMAL, etc. */
-} InternalFPF;
-
-
-static void SetInternalFPFZero(InternalFPF *dest) {
-  dest->type=0;
-}
-
-void denormalize(InternalFPF *ptr) {
-   SetInternalFPFZero(ptr);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-07-31-SubregFailure.c b/libclamav/c++/llvm/test/FrontendC/2002-07-31-SubregFailure.c
deleted file mode 100644
index 72fcb49..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-07-31-SubregFailure.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-typedef union {
-   long (*ap)[4];
-} ptrs;
-
-void DoAssignIteration() {
-  ptrs abase;
-  abase.ap+=27;
-  Assignment(*abase.ap);
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-08-02-UnionTest.c b/libclamav/c++/llvm/test/FrontendC/2002-08-02-UnionTest.c
deleted file mode 100644
index e2b8c3d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-08-02-UnionTest.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* In this testcase, the return value of foo() is being promotedto a register
- * which breaks stuff
- */
-#include <stdio.h>
-
-union X { char X; void *B; int a, b, c, d;};
-
-union X foo() {
-  union X Global;
-  Global.B = (void*)123;   /* Interesting part */
-  return Global;
-}
-
-int main() {
-  union X test = foo();
-  printf("0x%p", test.B);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-08-19-RecursiveLocals.c b/libclamav/c++/llvm/test/FrontendC/2002-08-19-RecursiveLocals.c
deleted file mode 100644
index 59220ac..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-08-19-RecursiveLocals.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* This testcase doesn't actually test a bug, it's just the result of me 
- * figuring out the syntax for forward declaring a static variable. */
-struct list {
-  int x;
-  struct list *Next;
-};
-
-static struct list B;  /* Forward declare static */
-static struct list A = { 7, &B };
-static struct list B = { 8, &A };
-
-extern struct list D;  /* forward declare normal var */
-
-struct list C = { 7, &D };
-struct list D = { 8, &C };
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-09-08-PointerShifts.c b/libclamav/c++/llvm/test/FrontendC/2002-09-08-PointerShifts.c
deleted file mode 100644
index 86ff2f9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-09-08-PointerShifts.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-int foo(int *A, unsigned X) {
-  return A[X];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-09-18-UnionProblem.c b/libclamav/c++/llvm/test/FrontendC/2002-09-18-UnionProblem.c
deleted file mode 100644
index 54588f1..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-09-18-UnionProblem.c
+++ /dev/null
@@ -1,26 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-struct DWstruct {
-  char high, low;
-};
-
-typedef union {
-  struct DWstruct s;
-  short ll;
-} DWunion;
-
-short __udivmodhi4 (char n1, char bm) {
-  DWunion rr;
-
-  if (bm == 0)
-    {
-      rr.s.high = n1;
-    }
-  else
-    {
-      rr.s.high = bm;
-    }
-
-  return rr.ll;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-09-19-StarInLabel.c b/libclamav/c++/llvm/test/FrontendC/2002-09-19-StarInLabel.c
deleted file mode 100644
index 171acca..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-09-19-StarInLabel.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-extern void start() __asm__("start");
-extern void _start() __asm__("_start");
-extern void __start() __asm__("__start");
-void start() {}
-void _start() {}
-void __start() {}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-10-12-TooManyArguments.c b/libclamav/c++/llvm/test/FrontendC/2002-10-12-TooManyArguments.c
deleted file mode 100644
index 73c267a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-10-12-TooManyArguments.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-void foo() {}
-
-void bar() {
-  foo(1, 2, 3);  /* Too many arguments passed */
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalBoolTest.c b/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalBoolTest.c
deleted file mode 100644
index c27a23a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalBoolTest.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-_Bool X = 0;
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalConstantTest.c b/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalConstantTest.c
deleted file mode 100644
index 26de48f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalConstantTest.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-const char *W = "foo";
-const int X = 7;
-int Y = 8;
-const char * const Z = "bar";
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalRedefinition.c b/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalRedefinition.c
deleted file mode 100644
index 3b76953..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-12-15-GlobalRedefinition.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-extern char algbrfile[9];
-char algbrfile[9] = "abcdefgh";
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2002-12-15-StructParameters.c b/libclamav/c++/llvm/test/FrontendC/2002-12-15-StructParameters.c
deleted file mode 100644
index 90ab1ff..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2002-12-15-StructParameters.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-typedef struct
-{
-  void *stack;
-  unsigned size;
-  unsigned avail;
-} compile_stack_type;
-
-void foo(void*);
-void bar(compile_stack_type T, unsigned);
-
-void test() {
-  compile_stack_type CST;
-  foo(&CST);
-
-  bar(CST, 12);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-01-30-UnionInit.c b/libclamav/c++/llvm/test/FrontendC/2003-01-30-UnionInit.c
deleted file mode 100644
index 5769584..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-01-30-UnionInit.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o /dev/null
-
-union foo {
-  struct { char A, B; } X;
-  int C;
-};
-
-union foo V = { {1, 2} };
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-03-03-DeferredType.c b/libclamav/c++/llvm/test/FrontendC/2003-03-03-DeferredType.c
deleted file mode 100644
index 9e60df6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-03-03-DeferredType.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-
-
-struct foo A;
-
-struct foo {
-  int x;
-double D;
-};
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-06-22-UnionCrash.c b/libclamav/c++/llvm/test/FrontendC/2003-06-22-UnionCrash.c
deleted file mode 100644
index 54d8dc6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-06-22-UnionCrash.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct Blend_Map_Entry {
-  union {
-   float Colour[5];
-   double Point_Slope[2];
-  } Vals;
-};
-
-void test(struct Blend_Map_Entry* Foo)
-{
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-06-23-GCC-fold-infinite-recursion.c b/libclamav/c++/llvm/test/FrontendC/2003-06-23-GCC-fold-infinite-recursion.c
deleted file mode 100644
index 80562c8..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-06-23-GCC-fold-infinite-recursion.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-double Test(double A, double B, double C, double D) {
-  return -(A-B) - (C-D);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-06-26-CFECrash.c b/libclamav/c++/llvm/test/FrontendC/2003-06-26-CFECrash.c
deleted file mode 100644
index 10a7ed4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-06-26-CFECrash.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-typedef struct min_info {
-  long offset;
-  unsigned file_attr;
-} min_info;
-
-typedef struct Globals {
-  char answerbuf;
-  min_info info[1];
-  min_info *pInfo;
-} Uz_Globs;
-
-extern Uz_Globs G;
-
-int extract_or_test_files() {  
-  G.pInfo = G.info;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-06-29-MultipleFunctionDefinition.c b/libclamav/c++/llvm/test/FrontendC/2003-06-29-MultipleFunctionDefinition.c
deleted file mode 100644
index be042ce..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-06-29-MultipleFunctionDefinition.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-/* This is apparently legal C.  
- */
-extern __inline__ void test() { }
-
-void test() {
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-07-22-ArrayAccessTypeSafety.c b/libclamav/c++/llvm/test/FrontendC/2003-07-22-ArrayAccessTypeSafety.c
deleted file mode 100644
index 51e66c9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-07-22-ArrayAccessTypeSafety.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/* RUN: %llvmgcc -xc %s -S -o - | grep -v alloca | not grep bitcast
- */
-
-void test(int* array, long long N) {
-    array[N] = N[array] = 33;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-06-BuiltinSetjmpLongjmp.c b/libclamav/c++/llvm/test/FrontendC/2003-08-06-BuiltinSetjmpLongjmp.c
deleted file mode 100644
index 39412e5..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-06-BuiltinSetjmpLongjmp.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* RUN: %llvmgcc -xc %s -c -o - | llvm-dis | not grep __builtin_
- *
- * __builtin_longjmp/setjmp should get transformed into llvm.setjmp/longjmp 
- * just like explicit setjmp/longjmp calls are.
- */
-
-void jumpaway(int *ptr) {
-  __builtin_longjmp(ptr,1);
-}
-    
-int main(void) {
-  __builtin_setjmp(0);
-  jumpaway(0);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-17-DeadCodeShortCircuit.c b/libclamav/c++/llvm/test/FrontendC/2003-08-17-DeadCodeShortCircuit.c
deleted file mode 100644
index c275fee..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-17-DeadCodeShortCircuit.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o %t.o
-
-int test(_Bool pos, _Bool color) {
-  return 0;
-  return (pos && color);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-18-SigSetJmp.c b/libclamav/c++/llvm/test/FrontendC/2003-08-18-SigSetJmp.c
deleted file mode 100644
index fc0d765..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-18-SigSetJmp.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-#include <setjmp.h>
-
-sigjmp_buf B;
-int foo() {
-  sigsetjmp(B, 1);
-  bar();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-18-StructAsValue.c b/libclamav/c++/llvm/test/FrontendC/2003-08-18-StructAsValue.c
deleted file mode 100644
index 26cb78a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-18-StructAsValue.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-typedef struct {
-  int op;
-} event_t;
-
-event_t test(int X) {
-  event_t foo = { 1 }, bar = { 2 };
-  return X ? foo : bar;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-20-BadBitfieldRef.c b/libclamav/c++/llvm/test/FrontendC/2003-08-20-BadBitfieldRef.c
deleted file mode 100644
index ef54d8a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-20-BadBitfieldRef.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-void foo()
-{
-  char *ap;
-  ap[1] == '-' && ap[2] == 0;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-20-PrototypeMismatch.c b/libclamav/c++/llvm/test/FrontendC/2003-08-20-PrototypeMismatch.c
deleted file mode 100644
index 85c89f6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-20-PrototypeMismatch.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-
-static int foo(int);
-
-static int foo(C)
-char C;
-{
-  return C;
-}
-
-void test() {
-  foo(7);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-20-vfork-bug.c b/libclamav/c++/llvm/test/FrontendC/2003-08-20-vfork-bug.c
deleted file mode 100644
index cfe3161..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-20-vfork-bug.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-extern int vfork(void);
-test() {
-  vfork();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-21-BinOp-Type-Mismatch.c b/libclamav/c++/llvm/test/FrontendC/2003-08-21-BinOp-Type-Mismatch.c
deleted file mode 100644
index a1d4574..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-21-BinOp-Type-Mismatch.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct bar;
-
-void foo()
-{
-  unsigned int frame, focus;
-  (struct bar *) focus == (focus ? ((struct bar *) frame) : 0);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-21-StmtExpr.c b/libclamav/c++/llvm/test/FrontendC/2003-08-21-StmtExpr.c
deleted file mode 100644
index 7f7d22e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-21-StmtExpr.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-typedef struct {
-  unsigned long val;
-} structty;
-
-void bar(structty new_mask);
-static void foo() {
-  bar(({ structty mask; mask; }));
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-21-WideString.c b/libclamav/c++/llvm/test/FrontendC/2003-08-21-WideString.c
deleted file mode 100644
index bf67a21..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-21-WideString.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-#include <wchar.h>
-
-struct {
-  wchar_t *name;
-} syms = { L"NUL" };
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-23-LocalUnionTest.c b/libclamav/c++/llvm/test/FrontendC/2003-08-23-LocalUnionTest.c
deleted file mode 100644
index 987accc..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-23-LocalUnionTest.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-
-union foo { int X; };
-
-int test(union foo* F) {
-  {
-    union foo { float X; } A;
-  }
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-29-BitFieldStruct.c b/libclamav/c++/llvm/test/FrontendC/2003-08-29-BitFieldStruct.c
deleted file mode 100644
index 57273cd..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-29-BitFieldStruct.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct Word {
-  short bar;
-  short baz;
-  int final:1;
-  short quux;
-} *word_limit;
-
-void foo ()
-{
-  word_limit->final = (word_limit->final && word_limit->final);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-29-HugeCharConst.c b/libclamav/c++/llvm/test/FrontendC/2003-08-29-HugeCharConst.c
deleted file mode 100644
index 236eb2e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-29-HugeCharConst.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-void foo() {
-  unsigned char int_latin1[] = "f\200\372b\200\343\200\340";
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-29-StructLayoutBug.c b/libclamav/c++/llvm/test/FrontendC/2003-08-29-StructLayoutBug.c
deleted file mode 100644
index 1673194..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-29-StructLayoutBug.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct foo {
-  unsigned int I:1;
-  unsigned char J[1];
-  unsigned int K:1;
- };
-
-void test(struct foo *X) {}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-30-AggregateInitializer.c b/libclamav/c++/llvm/test/FrontendC/2003-08-30-AggregateInitializer.c
deleted file mode 100644
index 58c77b6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-30-AggregateInitializer.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc -S %s -o /dev/null
-
-struct istruct {
-  unsigned char C;
-};
-
-struct foo {
-  unsigned int I:1;
-  struct istruct J;
-  unsigned char L[1];
-  unsigned int K:1;
-};
-
-struct foo F = { 1, { 7 }, { 123 } , 1 };
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-08-30-LargeIntegerBitfieldMember.c b/libclamav/c++/llvm/test/FrontendC/2003-08-30-LargeIntegerBitfieldMember.c
deleted file mode 100644
index e1ca88c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-08-30-LargeIntegerBitfieldMember.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct foo {
-  unsigned int I:1;
-  unsigned char J[1][123];
-  unsigned int K:1;
- };
-
-struct foo F;
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-09-18-BitfieldTests.c b/libclamav/c++/llvm/test/FrontendC/2003-09-18-BitfieldTests.c
deleted file mode 100644
index 2d74cb4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-09-18-BitfieldTests.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// RUN: %llvmgcc -w -S %s -o - | llvm-as -o /dev/null
-
-
-typedef struct BF {
-  int A : 1;
-  char B;
-  int C : 13;
-} BF;
-
-char *test1(BF *b) {
-  return &b->B;        // Must be able to address non-bitfield
-}
-
-void test2(BF *b) {    // Increment and decrement operators
-  b->A++;
-  --b->C;
-}
-
-void test3(BF *b) {
-   b->C = 12345;        // Store
-}
-
-int test4(BF *b) {
-  return b->C;         // Load
-}
-
-void test5(BF *b, int i) { // array ref
-  b[i].C = 12345;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-09-30-StructLayout.c b/libclamav/c++/llvm/test/FrontendC/2003-09-30-StructLayout.c
deleted file mode 100644
index 177d1f4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-09-30-StructLayout.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-enum En {
-  ENUM_VAL
-};
-
-struct St {
-  unsigned char A;
-  enum En B;
-  unsigned char C;
-  enum En D;
-  float E;
-};
-
-
-void func(struct St* A) {
-  A->D = ENUM_VAL;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-10-02-UnionLValueError.c b/libclamav/c++/llvm/test/FrontendC/2003-10-02-UnionLValueError.c
deleted file mode 100644
index a4d17a4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-10-02-UnionLValueError.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-#include <stdio.h>
-
-union U{
-  int i[8];
-  char s[80];
-};
-
-void format_message(char *buffer, union U *u) {
-  sprintf(buffer, u->s);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-10-06-NegateExprType.c b/libclamav/c++/llvm/test/FrontendC/2003-10-06-NegateExprType.c
deleted file mode 100644
index fb8329b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-10-06-NegateExprType.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-extern int A[10];
-void Func(int *B) { 
-  B - &A[5]; 
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-10-09-UnionInitializerBug.c b/libclamav/c++/llvm/test/FrontendC/2003-10-09-UnionInitializerBug.c
deleted file mode 100644
index 57e113a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-10-09-UnionInitializerBug.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct Foo {
-    unsigned a;
-    unsigned b;
-    unsigned c;
-};
-
-struct Bar {
-    union {
-        void **a;
-        struct Foo b;
-    }u;
-};
-
-struct Bar test = {0};
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-10-28-ident.c b/libclamav/c++/llvm/test/FrontendC/2003-10-28-ident.c
deleted file mode 100644
index 06cacf8..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-10-28-ident.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-#ident "foo"
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-10-29-AsmRename.c b/libclamav/c++/llvm/test/FrontendC/2003-10-29-AsmRename.c
deleted file mode 100644
index d07ccf7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-10-29-AsmRename.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-struct foo { int X; };
-struct bar { int Y; };
-
-extern int Func(struct foo*) __asm__("Func64");
-extern int Func64(struct bar*);
-
-int Func(struct foo *F) {
-  return 1;
-}
-
-int Func64(struct bar* B) {
-  return 0;
-}
-
-
-int test() {
-  Func(0);    /* should be renamed to call Func64 */
-  Func64(0);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-01-C99-CompoundLiteral.c b/libclamav/c++/llvm/test/FrontendC/2003-11-01-C99-CompoundLiteral.c
deleted file mode 100644
index 2912c97..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-01-C99-CompoundLiteral.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-typedef struct { int foo; } spinlock_t;
-typedef struct wait_queue_head_t { spinlock_t lock; } wait_queue_head_t;
-void call_usermodehelper(void) { 
-  struct wait_queue_head_t work = { lock: (spinlock_t) { 0 }, }; 
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-01-EmptyStructCrash.c b/libclamav/c++/llvm/test/FrontendC/2003-11-01-EmptyStructCrash.c
deleted file mode 100644
index c116119..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-01-EmptyStructCrash.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-typedef struct { } the_coolest_struct_in_the_world;
-extern the_coolest_struct_in_the_world xyzzy;
-void *foo() { return &xyzzy; }
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-01-GlobalUnionInit.c b/libclamav/c++/llvm/test/FrontendC/2003-11-01-GlobalUnionInit.c
deleted file mode 100644
index 7cd7073..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-01-GlobalUnionInit.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-union bdflush_param {
-    struct { int x; } b_un;
-    int y[1];
-} bdf_prm = {{30}};
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-03-AddrArrayElement.c b/libclamav/c++/llvm/test/FrontendC/2003-11-03-AddrArrayElement.c
deleted file mode 100644
index ed3fc1a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-03-AddrArrayElement.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep getelementptr
-
-// This should be turned into a tasty getelementptr instruction, not a nasty
-// series of casts and address arithmetic.
-
-char Global[100];
-
-char *test1(unsigned i) {
-  return &Global[i];
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-04-EmptyStruct.c b/libclamav/c++/llvm/test/FrontendC/2003-11-04-EmptyStruct.c
deleted file mode 100644
index b4f37be..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-04-EmptyStruct.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-typedef struct { } rwlock_t;
-struct fs_struct { rwlock_t lock; int umask; };
-void __copy_fs_struct(struct fs_struct *fs) { fs->lock = (rwlock_t) { }; }
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-04-OutOfMemory.c b/libclamav/c++/llvm/test/FrontendC/2003-11-04-OutOfMemory.c
deleted file mode 100644
index 40cb6c2..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-04-OutOfMemory.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-void schedule_timeout(signed long timeout)
-{
- switch (timeout)
- {
- case ((long)(~0UL>>1)): break;
- }
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-08-PointerSubNotGetelementptr.c b/libclamav/c++/llvm/test/FrontendC/2003-11-08-PointerSubNotGetelementptr.c
deleted file mode 100644
index 443dfbd..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-08-PointerSubNotGetelementptr.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep getelementptr
-
-char *test(char* C) {
-  return C-1;   // Should turn into a GEP
-}
-
-int *test2(int* I) {
-  return I-1;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-12-VoidString.c b/libclamav/c++/llvm/test/FrontendC/2003-11-12-VoidString.c
deleted file mode 100644
index 5770b36..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-12-VoidString.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-void query_newnamebuf(void) { ((void)"query_newnamebuf"); }
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-13-TypeSafety.c b/libclamav/c++/llvm/test/FrontendC/2003-11-13-TypeSafety.c
deleted file mode 100644
index 128b767..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-13-TypeSafety.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep getelementptr
-
-int *test(int *X, int Y) {
-  return X + Y;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-16-StaticArrayInit.c b/libclamav/c++/llvm/test/FrontendC/2003-11-16-StaticArrayInit.c
deleted file mode 100644
index eb83b3a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-16-StaticArrayInit.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-void bar () {
- static char x[10];
- static char *xend = x + 10;
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-18-CondExprLValue.c b/libclamav/c++/llvm/test/FrontendC/2003-11-18-CondExprLValue.c
deleted file mode 100644
index 68ee622..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-18-CondExprLValue.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-typedef struct { unsigned long pgprot; } pgprot_t;
-
-void split_large_page(unsigned long addr, pgprot_t prot)
-{
-  (addr ? prot : ((pgprot_t) { 0x001 } )).pgprot;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-19-AddressOfRegister.c b/libclamav/c++/llvm/test/FrontendC/2003-11-19-AddressOfRegister.c
deleted file mode 100644
index 69dc54d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-19-AddressOfRegister.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -xc %s -S -o /dev/null |& not grep warning
-
-struct item {
-  short delta[4];
-};
-
-int TEST(int nt) {
- register struct item *aa;
- aa[nt].delta;
- return 1;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-19-BitFieldArray.c b/libclamav/c++/llvm/test/FrontendC/2003-11-19-BitFieldArray.c
deleted file mode 100644
index 250268a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-19-BitFieldArray.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct _GIOChannel {
-  int write_buf;
-  char partial_write_buf[6];
-  int d :1;
-};
-
-void g_io_channel_init (struct _GIOChannel *channel) {
-  channel->partial_write_buf[0];
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-20-Bitfields.c b/libclamav/c++/llvm/test/FrontendC/2003-11-20-Bitfields.c
deleted file mode 100644
index 4be9942..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-20-Bitfields.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct face_cachel {
-  unsigned int reverse :1;
-  unsigned char font_specified[1];
-};
-
-void
-ensure_face_cachel_contains_charset (struct face_cachel *cachel) {
-  cachel->font_specified[0] = 0;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-20-ComplexDivision.c b/libclamav/c++/llvm/test/FrontendC/2003-11-20-ComplexDivision.c
deleted file mode 100644
index 172de8c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-20-ComplexDivision.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-int test() {
-  __complex__ double C;
-  double D;
-  C / D;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-20-UnionBitfield.c b/libclamav/c++/llvm/test/FrontendC/2003-11-20-UnionBitfield.c
deleted file mode 100644
index f999c20..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-20-UnionBitfield.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct printf_spec {
-  unsigned int minus_flag:1;
-  char converter;
-};
-
-void parse_doprnt_spec () {
-  struct printf_spec spec;
-  spec.minus_flag = 1;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-26-PointerShift.c b/libclamav/c++/llvm/test/FrontendC/2003-11-26-PointerShift.c
deleted file mode 100644
index 6b5205a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-26-PointerShift.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-unsigned long do_csum(const unsigned char *buff, int len, unsigned long result) {
-  if (2 & (unsigned long) buff) result += 1;
-  return result;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-27-ConstructorCast.c b/libclamav/c++/llvm/test/FrontendC/2003-11-27-ConstructorCast.c
deleted file mode 100644
index 15eb769..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-27-ConstructorCast.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct i387_soft_struct {
-  long cwd;
-};
-union i387_union {
-  struct i387_soft_struct soft;
-};
-struct thread_struct {
-  union i387_union i387;
-};
-void _init_task_union(void) {
-   struct thread_struct thread = (struct thread_struct) { {{0}} };
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-11-27-UnionCtorInitialization.c b/libclamav/c++/llvm/test/FrontendC/2003-11-27-UnionCtorInitialization.c
deleted file mode 100644
index e3ae1e9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-11-27-UnionCtorInitialization.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-struct i387_soft_struct {
- long cwd;
- long twd;
- long fip;
-};
-union i387_union {
- struct i387_soft_struct soft;
-};
-struct thread_struct {
- union i387_union i387;
-};
-void _init_task_union(void) {
-  struct thread_struct thread = (struct thread_struct) { {{0}} };
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2003-12-14-ExternInlineSupport.c b/libclamav/c++/llvm/test/FrontendC/2003-12-14-ExternInlineSupport.c
deleted file mode 100644
index fb92ec7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2003-12-14-ExternInlineSupport.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | not grep dead_function
-
-extern __inline__ void dead_function() {}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-01-01-UnknownInitSize.c b/libclamav/c++/llvm/test/FrontendC/2004-01-01-UnknownInitSize.c
deleted file mode 100644
index b26b6cd..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-01-01-UnknownInitSize.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o /dev/null
-
-/*
- * This regression test ensures that the C front end can compile initializers
- * even when it cannot determine the size (as below).
-*/
-struct one
-{
-  int a;
-  int values [];
-};
-
-struct one hobbit = {5, {1, 2, 3}};
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-01-08-ExternInlineRedefine.c b/libclamav/c++/llvm/test/FrontendC/2004-01-08-ExternInlineRedefine.c
deleted file mode 100644
index 4366b9b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-01-08-ExternInlineRedefine.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-extern __inline long int
-__strtol_l (int a)
-{
-  return 0;
-}
-
-long int
-__strtol_l (int a)
-{
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-02-12-LargeAggregateCopy.c b/libclamav/c++/llvm/test/FrontendC/2004-02-12-LargeAggregateCopy.c
deleted file mode 100644
index b3c9bcf..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-02-12-LargeAggregateCopy.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep llvm.memcpy
-
-struct X { int V[10000]; };
-struct X Global1, Global2;
-void test() {
-  Global2 = Global1;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-02-13-BuiltinFrameReturnAddress.c b/libclamav/c++/llvm/test/FrontendC/2004-02-13-BuiltinFrameReturnAddress.c
deleted file mode 100644
index 162d32a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-02-13-BuiltinFrameReturnAddress.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep llvm.*address | count 4
-
-void *test1() {
-  return __builtin_return_address(1);
-}
-void *test2() {
-  return __builtin_frame_address(0);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-02-13-IllegalVararg.c b/libclamav/c++/llvm/test/FrontendC/2004-02-13-IllegalVararg.c
deleted file mode 100644
index 21039c6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-02-13-IllegalVararg.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -xc %s -w -c -o - | llc
-// XFAIL: *
-// See PR2452
-
-#include <stdarg.h>
-
-float test(int X, ...) {
-  va_list ap;
-  float F;
-  va_start(ap, X);
-  F = va_arg(ap, float);
-  return F;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-02-13-Memset.c b/libclamav/c++/llvm/test/FrontendC/2004-02-13-Memset.c
deleted file mode 100644
index fc26051..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-02-13-Memset.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep llvm.memset | count 3
-
-void *memset(void*, int, long);
-void bzero(void*, long);
-
-void test(int* X, char *Y) {
-  memset(X, 4, 1000);
-  bzero(Y, 100);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-02-14-ZeroInitializer.c b/libclamav/c++/llvm/test/FrontendC/2004-02-14-ZeroInitializer.c
deleted file mode 100644
index bede907..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-02-14-ZeroInitializer.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -xc %s -S -o - | grep zeroinitializer
-
-int X[1000];
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-02-20-Builtins.c b/libclamav/c++/llvm/test/FrontendC/2004-02-20-Builtins.c
deleted file mode 100644
index 0c9ac7c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-02-20-Builtins.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -O3 -xc %s -c -o - | llvm-dis | not grep builtin
-
-#include <math.h>
-
-void zsqrtxxx(float num) {
-   num = sqrt(num);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-03-07-ComplexDivEquals.c b/libclamav/c++/llvm/test/FrontendC/2004-03-07-ComplexDivEquals.c
deleted file mode 100644
index c6c805a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-03-07-ComplexDivEquals.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-void test(__complex__ double D, double X) {
-  D /= X;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-03-07-ExternalConstant.c b/libclamav/c++/llvm/test/FrontendC/2004-03-07-ExternalConstant.c
deleted file mode 100644
index b8e13a3..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-03-07-ExternalConstant.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep constant
-
-extern const int a[];   // 'a' should be marked constant even though it's external!
-int foo () {
-  return a[0];
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-03-09-LargeArrayInitializers.c b/libclamav/c++/llvm/test/FrontendC/2004-03-09-LargeArrayInitializers.c
deleted file mode 100644
index 265206f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-03-09-LargeArrayInitializers.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-// Test that these initializers are handled efficiently
-
-int test(int x) {
-  const int XX[1000] = { 0, 0 };
-  const char S [1000] = "foo";
-
-  const int array[] = {
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-     17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 17, 23, 123, 123, 49, 
-   };
-   return array[x];
-} 
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-03-15-SimpleIndirectGoto.c b/libclamav/c++/llvm/test/FrontendC/2004-03-15-SimpleIndirectGoto.c
deleted file mode 100644
index a3f27b2..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-03-15-SimpleIndirectGoto.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-int code[]={0,0,0,0,1};
-void foo(int x) {
-  volatile int b;
-  b = 0xffffffff;
-}
-void bar(int *pc) {
-  static const void *l[] = {&&lab0, &&end};
-
-  foo(0);
-  goto *l[*pc];
- lab0:
-  foo(0);
-  pc++;
-  goto *l[*pc];
- end:
-  return;
-}
-int main() {
-  bar(code);
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-03-16-AsmRegisterCrash.c b/libclamav/c++/llvm/test/FrontendC/2004-03-16-AsmRegisterCrash.c
deleted file mode 100644
index f13368c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-03-16-AsmRegisterCrash.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-int foo() {
-#ifdef __ppc__
-  register int X __asm__("r1");
-#else
-  register int X __asm__("ebx");
-#endif
-  return X;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-05-07-VarArrays.c b/libclamav/c++/llvm/test/FrontendC/2004-05-07-VarArrays.c
deleted file mode 100644
index 3a39c4f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-05-07-VarArrays.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-int foo(int len, char arr[][len], int X) {
-  return arr[X][0];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-05-21-IncompleteEnum.c b/libclamav/c++/llvm/test/FrontendC/2004-05-21-IncompleteEnum.c
deleted file mode 100644
index 958a8d1..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-05-21-IncompleteEnum.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -w -S %s -o - | llvm-as -o /dev/null
-
-void test(enum foo *X) {
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-06-08-OpaqueStructArg.c b/libclamav/c++/llvm/test/FrontendC/2004-06-08-OpaqueStructArg.c
deleted file mode 100644
index 5dfdd83..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-06-08-OpaqueStructArg.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-   struct fu;
-   void foo(struct fu);
-   void bar() {
-      foo;
-   }
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-06-17-UnorderedBuiltins.c b/libclamav/c++/llvm/test/FrontendC/2004-06-17-UnorderedBuiltins.c
deleted file mode 100644
index 02780f0..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-06-17-UnorderedBuiltins.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-_Bool A, B, C, D, E, F, G, H;
-void TestF(float X, float Y) {
-  A = __builtin_isgreater(X, Y);
-  B = __builtin_isgreaterequal(X, Y);
-  C = __builtin_isless(X, Y);
-  D = __builtin_islessequal(X, Y);
-  E = __builtin_islessgreater(X, Y);
-  F = __builtin_isunordered(X, Y);
-  //G = __builtin_isordered(X, Y);    // Our current snapshot of GCC doesn't include this builtin
-  H = __builtin_isunordered(X, Y);
-}
-void TestD(double X, double Y) {
-  A = __builtin_isgreater(X, Y);
-  B = __builtin_isgreaterequal(X, Y);
-  C = __builtin_isless(X, Y);
-  D = __builtin_islessequal(X, Y);
-  E = __builtin_islessgreater(X, Y);
-  F = __builtin_isunordered(X, Y);
-  //G = __builtin_isordered(X, Y);    // Our current snapshot doesn't include this builtin.  FIXME
-  H = __builtin_isunordered(X, Y);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-06-17-UnorderedCompares.c b/libclamav/c++/llvm/test/FrontendC/2004-06-17-UnorderedCompares.c
deleted file mode 100644
index f91ed66..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-06-17-UnorderedCompares.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// RUN: %llvmgcc -xc -std=c99 %s -c -o - | llvm-dis | grep -v llvm.isunordered | not grep call
-
-#include <math.h>
-
-_Bool A, B, C, D, E, F;
-void TestF(float X, float Y) {
-  A = __builtin_isgreater(X, Y);
-  B = __builtin_isgreaterequal(X, Y);
-  C = __builtin_isless(X, Y);
-  D = __builtin_islessequal(X, Y);
-  E = __builtin_islessgreater(X, Y);
-  F = __builtin_isunordered(X, Y);
-}
-void TestD(double X, double Y) {
-  A = __builtin_isgreater(X, Y);
-  B = __builtin_isgreaterequal(X, Y);
-  C = __builtin_isless(X, Y);
-  D = __builtin_islessequal(X, Y);
-  E = __builtin_islessgreater(X, Y);
-  F = __builtin_isunordered(X, Y);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-06-18-VariableLengthArrayOfStructures.c b/libclamav/c++/llvm/test/FrontendC/2004-06-18-VariableLengthArrayOfStructures.c
deleted file mode 100644
index 3e450a4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-06-18-VariableLengthArrayOfStructures.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-struct S { };
-
-int xxxx(int a) {
-  struct S comps[a];
-  comps[0];
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-07-06-FunctionCast.c b/libclamav/c++/llvm/test/FrontendC/2004-07-06-FunctionCast.c
deleted file mode 100644
index 6d80f86..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-07-06-FunctionCast.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-static int unused_func(void) {
-  return 1;
-}
-
-int foo(void) {
-  (void)unused_func; /* avoid compiler warning */
-  return 2;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-08-06-LargeStructTest.c b/libclamav/c++/llvm/test/FrontendC/2004-08-06-LargeStructTest.c
deleted file mode 100644
index 8fbb7f8..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-08-06-LargeStructTest.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-
-#define A(X) int X;
-#define B(X) A(X##0) A(X##1) A(X##2) A(X##3) A(X##4) A(X##5) A(X##6) A(X##7) \
-             A(X##8) A(X##9) A(X##A) A(X##B) A(X##C) A(X##D) A(X##E) A(X##F)
-#define C(X) B(X##0) B(X##1) B(X##2) B(X##3) B(X##4) B(X##5) B(X##6) B(X##7) \
-             B(X##8) B(X##9) B(X##A) B(X##B) B(X##C) B(X##D) B(X##E) B(X##F)
-
-struct foo {
-  C(x);   // 256
-  C(y);   // 256
-  C(z);
-};
-
-
-int test(struct foo *F) {
-   return F->xA1 + F->yFF + F->zC4;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-11-25-UnnamedBitfieldPadding.c b/libclamav/c++/llvm/test/FrontendC/2004-11-25-UnnamedBitfieldPadding.c
deleted file mode 100644
index b3f4a82..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-11-25-UnnamedBitfieldPadding.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o /dev/null
-// This is a testcase for PR461
-typedef struct {
-  unsigned min_align: 1;
-  unsigned : 1;
-} addr_diff_vec_flags;
-
-addr_diff_vec_flags X;
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-11-27-InvalidConstantExpr.c b/libclamav/c++/llvm/test/FrontendC/2004-11-27-InvalidConstantExpr.c
deleted file mode 100644
index ee8642f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-11-27-InvalidConstantExpr.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | not grep {foo\\* sub}
-// This should not produce a subtrace constantexpr of a pointer
-struct foo {
-  int Y;
-  char X[100];
-} F;
-
-int test(char *Y) {
-   return Y - F.X;
-} 
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-11-27-StaticFunctionRedeclare.c b/libclamav/c++/llvm/test/FrontendC/2004-11-27-StaticFunctionRedeclare.c
deleted file mode 100644
index b1e1421..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-11-27-StaticFunctionRedeclare.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgcc -c -emit-llvm %s -o - | \
-// RUN:   opt -std-compile-opts | llvm-dis | not grep {declare i32.*func}
-
-// There should not be an unresolved reference to func here.  Believe it or not,
-// the "expected result" is a function named 'func' which is internal and 
-// referenced by bar().
-
-// This is PR244
-
-static int func();
-void bar() {
-  int func();
-  foo(func);
-}
-static int func(char** A, char ** B) {}
diff --git a/libclamav/c++/llvm/test/FrontendC/2004-11-27-VariableSizeInStructure.c b/libclamav/c++/llvm/test/FrontendC/2004-11-27-VariableSizeInStructure.c
deleted file mode 100644
index bd63ae3..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2004-11-27-VariableSizeInStructure.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc %s -S -o /dev/null
-
-// GCC allows variable sized arrays in structures, crazy!
-
-// This is PR360.
-
-int sub1(int i, char *pi) {
-  typedef int foo[i];
-  struct bar {foo f1; int f2;} *p = (struct bar *) pi;
-  return p->f2;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-01-02-ConstantInits.c b/libclamav/c++/llvm/test/FrontendC/2005-01-02-ConstantInits.c
deleted file mode 100644
index 735278e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-01-02-ConstantInits.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-// This tests all kinds of hard cases with initializers and
-// array subscripts.  This corresponds to PR487.
-
-struct X { int a[2]; };
-
-int test() {
-  static int i23 = (int) &(((struct X *)0)->a[1]);
-  return i23;
-}
-
-int i = (int) &( ((struct X *)0) -> a[1]);
-
-int Arr[100];
-
-int foo(int i) { return bar(&Arr[49])+bar(&Arr[i]); }
-int foo2(int i) { 
-  static const int *X = &Arr[49];
-   static int i23 = (int) &( ((struct X *)0) -> a[0]);
-  int *P = Arr;
-  ++P;
-  return bar(Arr+i);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-01-02-PointerDifference.c b/libclamav/c++/llvm/test/FrontendC/2005-01-02-PointerDifference.c
deleted file mode 100644
index a351da2..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-01-02-PointerDifference.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc -xc %s -c -o - | llvm-dis | grep -v div
-
-int Diff(int *P, int *Q) { return P-Q; }
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-01-02-VAArgError-ICE.c b/libclamav/c++/llvm/test/FrontendC/2005-01-02-VAArgError-ICE.c
deleted file mode 100644
index db82558..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-01-02-VAArgError-ICE.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// This file is erroneous, but should not cause the compiler to ICE.
-// PR481
-// RUN: %llvmgcc %s -S -o /dev/null |& not grep {internal compiler error}
-
-#include <stdarg.h>
-int flags(int a, int b, ...) {
-        va_list         args;
-        va_start(args,a);       // not the last named arg
-        foo(args);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-02-20-AggregateSAVEEXPR.c b/libclamav/c++/llvm/test/FrontendC/2005-02-20-AggregateSAVEEXPR.c
deleted file mode 100644
index 7a95533..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-02-20-AggregateSAVEEXPR.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc %s -o /dev/null -S
-// Note:
-//  We fail this on Sparc because the C library seems to be missing complex.h
-//  and the corresponding C99 complex support.
-//
-//  We could modify the test to use only GCC extensions, but I don't know if
-//  that would change the nature of the test.
-//
-// XFAIL: sparc
-
-#ifdef __CYGWIN__
-  #include <mingw/complex.h>
-#else
-  #include <complex.h>
-#endif
-
-int foo(complex float c) {
-    return creal(c);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-02-27-MarkGlobalConstant.c b/libclamav/c++/llvm/test/FrontendC/2005-02-27-MarkGlobalConstant.c
deleted file mode 100644
index b9fbbb6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-02-27-MarkGlobalConstant.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -xc %s -S -o - | grep {private constant }
-
-// The synthetic global made by the CFE for big initializer should be marked
-// constant.
-
-void bar();
-void foo() {
-  char Blah[] = "asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd";
-  bar(Blah);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-03-05-OffsetOfHack.c b/libclamav/c++/llvm/test/FrontendC/2005-03-05-OffsetOfHack.c
deleted file mode 100644
index 8df7231..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-03-05-OffsetOfHack.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc %s -S -o - 
-
-struct s {
-  unsigned long int field[0];
-};
-
-#define OFFS \
-        (((char *) &((struct s *) 0)->field[0]) - (char *) 0)
-
-int foo[OFFS];
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-03-06-OffsetOfStructCrash.c b/libclamav/c++/llvm/test/FrontendC/2005-03-06-OffsetOfStructCrash.c
deleted file mode 100644
index 91e6862..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-03-06-OffsetOfStructCrash.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-struct Y {};
-struct XXX {
-  struct  Y F;
-};
-
-void test1() {
-   (int)&((struct XXX*)(((void *)0)))->F;
-}
-
-void test2() {
-   &((struct XXX*)(((void *)0)))->F;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-03-11-Prefetch.c b/libclamav/c++/llvm/test/FrontendC/2005-03-11-Prefetch.c
deleted file mode 100644
index bf79653..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-03-11-Prefetch.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | llvm-as | llvm-dis | grep llvm.prefetch
-
-void foo(int *P) {
-  __builtin_prefetch(P);
-  __builtin_prefetch(P, 1);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-04-09-ComplexOps.c b/libclamav/c++/llvm/test/FrontendC/2005-04-09-ComplexOps.c
deleted file mode 100644
index 2962b74..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-04-09-ComplexOps.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-#include <math.h>
-#define I 1.0iF
-
-double __complex test(double X) { return ~-(X*I); }
-
-_Bool EQ(double __complex A, double __complex B) { return A == B; }
-_Bool NE(double __complex A, double __complex B) { return A != B; }
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-05-06-CountBuiltins.c b/libclamav/c++/llvm/test/FrontendC/2005-05-06-CountBuiltins.c
deleted file mode 100644
index da40a14..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-05-06-CountBuiltins.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | llvm-as | llvm-dis | not grep call.*__builtin
-
-int G, H, I;
-void foo(int P) {
-  G = __builtin_clz(P);
-  H = __builtin_ctz(P);
-  I = __builtin_popcount(P);
-}
-
-long long g, h, i;
-void fooll(float P) {
-  g = __builtin_clzll(P);
-  g = __builtin_clzll(P);
-  h = __builtin_ctzll(P);
-  i = __builtin_popcountll(P);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-05-10-GlobalUnionInit.c b/libclamav/c++/llvm/test/FrontendC/2005-05-10-GlobalUnionInit.c
deleted file mode 100644
index 443064c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-05-10-GlobalUnionInit.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-union A {                    // { uint }
-  union B { double *C; } D;
-} E = { { (double*)12312 } };
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-06-15-ExpandGotoInternalProblem.c b/libclamav/c++/llvm/test/FrontendC/2005-06-15-ExpandGotoInternalProblem.c
deleted file mode 100644
index d7d03ba..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-06-15-ExpandGotoInternalProblem.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -std=c99 %s -S -o - | llvm-as | \
-// RUN:    opt -std-compile-opts -disable-output
-// PR580
-
-int X, Y;
-int foo() {
-  int i;
-        for (i=0; i<100; i++ )
-        {
-                break;
-                i = ( X || Y ) ;
-        }
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-07-20-SqrtNoErrno.c b/libclamav/c++/llvm/test/FrontendC/2005-07-20-SqrtNoErrno.c
deleted file mode 100644
index 3f85f72..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-07-20-SqrtNoErrno.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -S -o - -fno-math-errno | grep llvm.sqrt
-#include <math.h>
-
-float foo(float X) {
-  // Check that this compiles to llvm.sqrt when errno is ignored.
-  return sqrtf(X);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-07-26-UnionInitCrash.c b/libclamav/c++/llvm/test/FrontendC/2005-07-26-UnionInitCrash.c
deleted file mode 100644
index 563278a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-07-26-UnionInitCrash.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// PR607
-// RUN: %llvmgcc %s -S -o -
-union { char bytes[8]; double alignment; }EQ1 = {0,0,0,0,0,0,0,0};
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-07-28-IncorrectWeakGlobal.c b/libclamav/c++/llvm/test/FrontendC/2005-07-28-IncorrectWeakGlobal.c
deleted file mode 100644
index 1a8c409..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-07-28-IncorrectWeakGlobal.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | grep TheGlobal | not grep weak
-
-extern int TheGlobal;
-int foo() { return TheGlobal; }
-int TheGlobal = 1;
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-09-20-ComplexConstants.c b/libclamav/c++/llvm/test/FrontendC/2005-09-20-ComplexConstants.c
deleted file mode 100644
index 209adc5..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-09-20-ComplexConstants.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | llvm-as -o /dev/null
-
-const double _Complex x[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-09-24-AsmUserPrefix.c b/libclamav/c++/llvm/test/FrontendC/2005-09-24-AsmUserPrefix.c
deleted file mode 100644
index 9b9b153..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-09-24-AsmUserPrefix.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | llvm-as | opt -std-compile-opts | llc | \
-// RUN:    not grep _foo2
-
-void foo() __asm__("foo2");
-
-void bar() {
-  foo();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-09-24-BitFieldCrash.c b/libclamav/c++/llvm/test/FrontendC/2005-09-24-BitFieldCrash.c
deleted file mode 100644
index b4c85ff..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-09-24-BitFieldCrash.c
+++ /dev/null
@@ -1,33 +0,0 @@
-// RUN: %llvmgcc %s -S -o - 
-
-struct tree_common {};
-
-struct tree_int_cst {
- struct tree_common common;
-  struct tree_int_cst_lowhi {
-    unsigned long long low;
-    long long high;
-  } int_cst;
-};
-
-enum XXX { yyy };
-
-struct tree_function_decl {
-  struct tree_common common;
-  long long locus, y;
-  __extension__ enum  XXX built_in_class : 2;
-
-};
-
-
-union tree_node {
-  struct tree_int_cst int_cst;
-  struct tree_function_decl function_decl;
-};
-
-
-void foo (union tree_node * decl) {
-  decl->function_decl.built_in_class != 0;
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-10-18-VariableSizedElementCrash.c b/libclamav/c++/llvm/test/FrontendC/2005-10-18-VariableSizedElementCrash.c
deleted file mode 100644
index b916662..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-10-18-VariableSizedElementCrash.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-int sub1(int i, char *pi) {
-  typedef int foo[i];
-  struct bar {foo f1; int f2:3; int f3:4;} *p = (struct bar *) pi;
-  xxx(p->f1);  
-  return p->f3;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-12-04-AttributeUsed.c b/libclamav/c++/llvm/test/FrontendC/2005-12-04-AttributeUsed.c
deleted file mode 100644
index 33e27e8..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-12-04-AttributeUsed.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | llvm-as | llvm-dis | \
-// RUN:   grep llvm.used | grep foo | grep X
-
-int X __attribute__((used));
-int Y;
-
-__attribute__((used)) void foo() {}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2005-12-04-DeclarationLineNumbers.c b/libclamav/c++/llvm/test/FrontendC/2005-12-04-DeclarationLineNumbers.c
deleted file mode 100644
index 0ced92e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2005-12-04-DeclarationLineNumbers.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN: %llvmgcc %s -S -g -o - | grep {llvm.dbg.stoppoint.*i32 14}
-// PR664: ensure that line #'s are emitted for declarations
-
-
-short test(short br_data_0,
-short br_data_1,
-short br_data_2,
-short br_data_3,
-short br_data_4,
-short br_data_5,
-short br_data_6,
-short br_data_7) {
-
-short sm07 = br_data_0 + br_data_7;
-short sm16 = br_data_1 + br_data_6;
-short sm25 = br_data_2 + br_data_5;
-short sm34 = br_data_3 + br_data_4;
-short s0734 = sm07 + sm34;
-short s1625 = sm16 + sm25;
-
-return s0734 + s1625;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-01-13-Includes.c b/libclamav/c++/llvm/test/FrontendC/2006-01-13-Includes.c
deleted file mode 100644
index 9b928fc..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-01-13-Includes.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -g -S -o - | llvm-as | opt -std-compile-opts | \
-// RUN:   llvm-dis | grep {test/FrontendC}
-// PR676
-
-#include <stdio.h>
-
-void test() {
-  printf("Hello World\n");
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-01-13-StackSave.c b/libclamav/c++/llvm/test/FrontendC/2006-01-13-StackSave.c
deleted file mode 100644
index dfe00fb..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-01-13-StackSave.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// PR691
-// RUN: %llvmgcc %s -S -o - | llvm-as | opt -std-compile-opts | \
-// RUN:    llvm-dis | grep llvm.stacksave
-
-void test(int N) {
-  int i;
-  for (i = 0; i < N; ++i) {
-    int VLA[i];
-    external(VLA);
-  }
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-01-16-BitCountIntrinsicsUnsigned.c b/libclamav/c++/llvm/test/FrontendC/2006-01-16-BitCountIntrinsicsUnsigned.c
deleted file mode 100644
index eafcb62..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-01-16-BitCountIntrinsicsUnsigned.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep {llvm.ctlz.i32(i32} | count 3
-// RUN: %llvmgcc -S %s -o - | grep {llvm.ctlz.i32(i32} | grep declare | count 1
-
-unsigned t2(unsigned X) {
-  return __builtin_clz(X);
-}
-int t1(int X) {
-  return __builtin_clz(X);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-01-23-FileScopeAsm.c b/libclamav/c++/llvm/test/FrontendC/2006-01-23-FileScopeAsm.c
deleted file mode 100644
index fb55a41..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-01-23-FileScopeAsm.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | llvm-as | opt -std-compile-opts | \
-// RUN:    llvm-dis | grep {foo\[12345\]} | count 5
-
-__asm__ ("foo1");
-__asm__ ("foo2");
-__asm__ ("foo3");
-__asm__ ("foo4");
-__asm__ ("foo5");
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-03-03-MissingInitializer.c b/libclamav/c++/llvm/test/FrontendC/2006-03-03-MissingInitializer.c
deleted file mode 100644
index 0d09d29..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-03-03-MissingInitializer.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | llvm-as | opt -std-compile-opts | \
-// RUN:    llvm-dis | grep {@nate.*internal global i32 0}
-
-struct X { int *XX; int Y;};
-
-void foo() {
-  static int nate = 0;
-  struct X bob = { &nate, 14 };
-  bar(&bob);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-03-16-VectorCtor.c b/libclamav/c++/llvm/test/FrontendC/2006-03-16-VectorCtor.c
deleted file mode 100644
index b95593b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-03-16-VectorCtor.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// Test that basic generic vector support works
-// RUN: %llvmgcc %s -S -o -
-
-typedef int v4si __attribute__ ((__vector_size__ (16)));
-void test(v4si *P, v4si *Q, float X) {
-  *P = (v4si){ X, X, X, X } * *Q;
-}
-
-v4si G = (v4si){ 0.1, 1.2, 4.2, 17.2 };
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-03-17-KnRMismatch.c b/libclamav/c++/llvm/test/FrontendC/2006-03-17-KnRMismatch.c
deleted file mode 100644
index 1939112..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-03-17-KnRMismatch.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-void regnode(int op);
-
-void regnode(op)
-char op;
-{
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-05-01-AppleAlignmentPragma.c b/libclamav/c++/llvm/test/FrontendC/2006-05-01-AppleAlignmentPragma.c
deleted file mode 100644
index c9050aa..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-05-01-AppleAlignmentPragma.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-#ifdef __APPLE__
-/* test that X is layed out correctly when this pragma is used. */
-#pragma options align=mac68k
-#endif
-
-struct S {
-  unsigned A;
-  unsigned short B;
-} X;
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-05-19-SingleEltReturn.c b/libclamav/c++/llvm/test/FrontendC/2006-05-19-SingleEltReturn.c
deleted file mode 100644
index 70c94c6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-05-19-SingleEltReturn.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// Test returning a single element aggregate value containing a double.
-// RUN: %llvmgcc %s -S -o -
-
-struct X {
-  double D;
-};
-
-struct Y { 
-  struct X x; 
-};
-
-struct Y bar();
-
-void foo(struct Y *P) {
-  *P = bar();
-}
-
-struct Y bar() {
-  struct Y a;
-  a.x.D = 0;
-  return a;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-07-31-PR854.c b/libclamav/c++/llvm/test/FrontendC/2006-07-31-PR854.c
deleted file mode 100644
index 3802de8..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-07-31-PR854.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -w %s -S -o -
-// PR854
-  struct kernel_symbol {
-    unsigned long value;
-  };
-  unsigned long loops_per_jiffy = (1<<12);
-  static const char __kstrtab_loops_per_jiffy[]
-__attribute__((section("__ksymtab_strings"))) = "loops_per_jiffy";
-  static const struct kernel_symbol __ksymtab_loops_per_jiffy
-__attribute__((__used__)) __attribute__((section("__ksymtab"))) = { (unsigned
-long)&loops_per_jiffy, __kstrtab_loops_per_jiffy };
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-09-11-BitfieldRefCrash.c b/libclamav/c++/llvm/test/FrontendC/2006-09-11-BitfieldRefCrash.c
deleted file mode 100644
index d06cc3a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-09-11-BitfieldRefCrash.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-// PR906
-
-struct state_struct {
-  unsigned long long phys_frame: 50;
-  unsigned valid : 2;
-} s;
-
-int mem_access(struct state_struct *p) {
-  return p->valid;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-09-18-fwrite-cast-crash.c b/libclamav/c++/llvm/test/FrontendC/2006-09-18-fwrite-cast-crash.c
deleted file mode 100644
index a693c56..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-09-18-fwrite-cast-crash.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgcc %s -S -o /dev/null
-// PR910
-// XFAIL: *
-// See PR2452
-
-struct l_struct_2E_FILE { char x; };
-unsigned fwrite(signed char *, unsigned , unsigned , signed char *);
-static signed char str301[39];
-static void Usage(signed char *ltmp_611_6) {
-  struct l_struct_2E_FILE *ltmp_6202_16;
-  unsigned ltmp_6203_92;
-  ltmp_6203_92 =  /*tail*/ ((unsigned  (*) (signed char *, unsigned , unsigned ,
-struct l_struct_2E_FILE *))(void*)fwrite)((&(str301[0u])), 38u, 1u, ltmp_6202_16);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-09-21-IncompleteElementType.c b/libclamav/c++/llvm/test/FrontendC/2006-09-21-IncompleteElementType.c
deleted file mode 100644
index a509182..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-09-21-IncompleteElementType.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: not %llvmgcc %s -S -o /dev/null |& not grep {internal compiler error}
-
-struct A X[(927 - 37) / sizeof(struct A)];
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-09-25-DebugFilename.c b/libclamav/c++/llvm/test/FrontendC/2006-09-25-DebugFilename.c
deleted file mode 100644
index eea52ba..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-09-25-DebugFilename.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: not %llvmgcc -xc %s -S -o /dev/null |& \
-// RUN:   grep fluffy | grep 2006-09-25-DebugFilename.c
-#include "2006-09-25-DebugFilename.h"
-int func1() { return hfunc1(); }
-int func2() { fluffy; return hfunc1(); }
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-09-25-DebugFilename.h b/libclamav/c++/llvm/test/FrontendC/2006-09-25-DebugFilename.h
deleted file mode 100644
index 9b03666..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-09-25-DebugFilename.h
+++ /dev/null
@@ -1,6 +0,0 @@
-extern int exfunc(int a);
-
-static inline int hfunc1()
-{
-  return exfunc(1);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-09-28-SimpleAsm.c b/libclamav/c++/llvm/test/FrontendC/2006-09-28-SimpleAsm.c
deleted file mode 100644
index e304020..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-09-28-SimpleAsm.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | grep {ext: xorl %eax, eax; movl}
-// RUN: %llvmgcc %s -S -o - | grep {nonext: xorl %eax, %eax; mov}
-// PR924
-
-void bar() {
-   // Extended asm
-   asm volatile ("ext: xorl %%eax, eax; movl eax, fs; movl eax, gs  %%blah %= %% " : : "r"(1));
-   // Non-extended asm.
-   asm volatile ("nonext: xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs  %%blah %= %% ");
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-10-30-ArrayCrash.c b/libclamav/c++/llvm/test/FrontendC/2006-10-30-ArrayCrash.c
deleted file mode 100644
index 09464dd..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-10-30-ArrayCrash.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -O3 -S -o - %s
-// PR954, PR911
-
-extern void foo();
-
-struct S {
-  short        f1[3];
-  unsigned int f2 : 1;
-};
-
-void bar()
-{
-  struct S *A;
-
-  if (A->f2)
-    foo();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2006-12-14-ordered_expr.c b/libclamav/c++/llvm/test/FrontendC/2006-12-14-ordered_expr.c
deleted file mode 100644
index 8ff2eb6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2006-12-14-ordered_expr.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -O3 -S %s -o - | grep {fcmp ord float %X, %Y}
-
-int test2(float X, float Y) {
-  return !__builtin_isunordered(X, Y);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-01-06-KNR-Proto.c b/libclamav/c++/llvm/test/FrontendC/2007-01-06-KNR-Proto.c
deleted file mode 100644
index eb2f254..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-01-06-KNR-Proto.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S -o - -emit-llvm %s
-// PR1083
-
-int svc_register (void (*dispatch) (int));
-
-int svc_register (dispatch)
-     void (*dispatch) ();
-{
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-01-20-VectorICE.c b/libclamav/c++/llvm/test/FrontendC/2007-01-20-VectorICE.c
deleted file mode 100644
index c2dcdef..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-01-20-VectorICE.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc %s -S -o - 
-
-typedef float __m128 __attribute__((__vector_size__(16)));
-typedef long long __v2di __attribute__((__vector_size__(16)));
-typedef int __v4si __attribute__((__vector_size__(16)));
-
-__v2di  bar(void);
-void foo(int X, __v4si *P) {
-	*P = X == 2 ? bar() : bar();
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-01-24-InlineAsmCModifier.c b/libclamav/c++/llvm/test/FrontendC/2007-01-24-InlineAsmCModifier.c
deleted file mode 100644
index 5735cce..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-01-24-InlineAsmCModifier.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// Verify that the %c modifier works and strips off any prefixes from 
-// immediates.
-// RUN: %llvmgcc -S %s -o - | llvm-as | llc | grep {pickANumber: 789514}
-
-void foo() {
-  __asm__         volatile("/* " "pickANumber" ": %c0 */"::"i"(0xC0C0A));
-  
-  // Check that non-c modifiers work also (not greped for above).
-   __asm__         volatile("/* " "pickANumber2 " ": %0 */"::"i"(123));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-04-AddrLValue-2.c b/libclamav/c++/llvm/test/FrontendC/2007-02-04-AddrLValue-2.c
deleted file mode 100644
index 90251e6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-04-AddrLValue-2.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
-// PR1173
-
-struct S { char s; };
-struct T { struct S t; };
-
-struct S *const p = &((struct T * const) (0x4000))->t;
-
-void
-foo (void)
-{
-  p->s = 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-04-AddrLValue.c b/libclamav/c++/llvm/test/FrontendC/2007-02-04-AddrLValue.c
deleted file mode 100644
index c8b65a9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-04-AddrLValue.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
-// PR1176
-
-typedef struct
-{
-  char *key;
-  char *value;
-} T1;
-
-typedef struct
-{
-  long type;
-  char *value;
-} T3;
-
-T1 a[] =
-{
-  {
-    "",
-    ((char *)&((T3) {1, (char *) 1}))
-  }
-};
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-04-EmptyStruct.c b/libclamav/c++/llvm/test/FrontendC/2007-02-04-EmptyStruct.c
deleted file mode 100644
index 48ad31f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-04-EmptyStruct.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
-// PR1175
-
-struct empty { };
-
-void foo(struct empty *p) {
-   p++;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-04-WITH_SIZE_EXPR.c b/libclamav/c++/llvm/test/FrontendC/2007-02-04-WITH_SIZE_EXPR.c
deleted file mode 100644
index f02a44b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-04-WITH_SIZE_EXPR.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// RUN: %llvmgcc %s -O3 -S -o - -emit-llvm
-// PR1174
-
-void zzz (char *s1, char *s2, int len, int *q)
-{
-  int z = 5;
-  unsigned int i,  b;
-  struct { char a[z]; } x;
-          
-  for (i = 0; i < len; i++)
-    s1[i] = s2[i];
-
-  b = z & 0x3;
-
-  len += (b == 0 ? 0 : 1) + z;
-    
-  *q = len;
-
-  foo (x, x);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-05-nested.c b/libclamav/c++/llvm/test/FrontendC/2007-02-05-nested.c
deleted file mode 100644
index be23f17..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-05-nested.c
+++ /dev/null
@@ -1,54 +0,0 @@
-// RUN: %llvmgcc -S -fnested-functions -O0 -o - -emit-llvm %s 
-// PR915
-
-extern void abort(void);
-
-void nest(int n)
-{
-  int a = 0;
-  int b = 5;
-  int c = 0;
-  int d = 7;
-
-  void o(int i, int j)
-  {
-    if (i!=j)
-      abort();
-  }
-
-  void f(x)
-    int x; /* K&R style */
-  {
-    int e = 0;
-    int f = 2;
-    int g = 0;
-
-    void y(void)
-    {
-      c = n;
-      e = 1;
-      g = x;
-    }
-
-    void z(void)
-    {
-      a = 4;
-      g = 3;
-    }
-
-    a = 5;
-    y();
-    c = x;
-    z();
-    o(1,e);
-    o(2,f);
-    o(3,g);
-  }
-
-  c = 2;
-  f(6);
-  o(4,a);
-  o(5,b);
-  o(6,c);
-  o(7,d);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-07-AddrLabel.c b/libclamav/c++/llvm/test/FrontendC/2007-02-07-AddrLabel.c
deleted file mode 100644
index 144f62d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-07-AddrLabel.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// PR947
-// RUN: %llvmgcc %s -c -o - 
-
-void foo() {
-    void *ptr;
-  label:
-    ptr = &&label;
-
-    goto *ptr;
-  }
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-16-VariableSizeStructArg.c b/libclamav/c++/llvm/test/FrontendC/2007-02-16-VariableSizeStructArg.c
deleted file mode 100644
index ec6971a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-16-VariableSizeStructArg.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S -w %s -o - 
-// PR1170
-int f(int a, struct {int b[a];} c) {  return c.b[0]; }
-
-int g(struct {int b[1];} c) {
-  return c.b[0];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-16-VoidPtrDiff.c b/libclamav/c++/llvm/test/FrontendC/2007-02-16-VoidPtrDiff.c
deleted file mode 100644
index 713b9b2..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-16-VoidPtrDiff.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc %s -S -o - -emit-llvm
-
-void foo(void *ptr, int test) {
-  (ptr - ((void *) test + 0x2000));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-16-WritableStrings.c b/libclamav/c++/llvm/test/FrontendC/2007-02-16-WritableStrings.c
deleted file mode 100644
index 811e330..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-16-WritableStrings.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// Test the -fwritable-strings option.
-
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm -fwritable-strings %s | \
-// RUN:    grep {private global}
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep {private constant}
-
-char *X = "foo";
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-02-25-C-DotDotDot.c b/libclamav/c++/llvm/test/FrontendC/2007-02-25-C-DotDotDot.c
deleted file mode 100644
index 9696022..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-02-25-C-DotDotDot.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -O0 -S -o - -emit-llvm -fno-inline -fno-unit-at-a-time %s | \
-// RUN:   grep {call float @foo}
-
-// Make sure the call to foo is compiled as:
-//  call float @foo()
-// not
-//  call float (...)* bitcast (float ()* @foo to float (...)*)( )
-
-static float foo() { return 0.0; }
-float bar() { return foo()*10.0;}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-01-VarSizeArrayIdx.c b/libclamav/c++/llvm/test/FrontendC/2007-03-01-VarSizeArrayIdx.c
deleted file mode 100644
index a3d480c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-01-VarSizeArrayIdx.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -O3 -S -o - -emit-llvm | grep mul
-// PR1233
-
-float foo(int w, float A[][w], int g, int h) {
-  return A[g][0];
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-05-DataLayout.c b/libclamav/c++/llvm/test/FrontendC/2007-03-05-DataLayout.c
deleted file mode 100644
index 18819f1..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-05-DataLayout.c
+++ /dev/null
@@ -1,53 +0,0 @@
-// Testcase for PR1242
-// RUN: %llvmgcc -S %s -o - | grep datalayout | \
-// RUN:    not grep {"\[Ee\]-p:\[36\]\[24\]:\[36\]\[24\]"}
-// END.
-#include <stdlib.h>
-#define NDIM 3
-#define BODY 01
-typedef double vector[NDIM];
-typedef struct bnode* bodyptr;
-// { i16, double, [3 x double], i32, i32, [3 x double], [3 x double], [3 x
-// double], double, \2 *, \2 * }
-struct bnode {
-  short int type;
-  double mass;
-  vector pos;
-  int proc;
-  int new_proc;
-  vector vel;
-  vector acc;
-  vector new_acc;
-  double phi;
-  bodyptr next;
-  bodyptr proc_next;
-} body;
-
-#define Type(x) ((x)->type)
-#define Mass(x) ((x)->mass)
-#define Pos(x)  ((x)->pos)
-#define Proc(x) ((x)->proc)
-#define New_Proc(x) ((x)->new_proc)
-#define Vel(x)  ((x)->vel)
-#define Acc(x)  ((x)->acc)
-#define New_Acc(x)  ((x)->new_acc)
-#define Phi(x)  ((x)->phi)
-#define Next(x) ((x)->next)
-#define Proc_Next(x) ((x)->proc_next)
-
-bodyptr ubody_alloc(int p)
-{ 
-  register bodyptr tmp;
-  tmp = (bodyptr)malloc(sizeof(body));
-
-  Type(tmp) = BODY;
-  Proc(tmp) = p;
-  Proc_Next(tmp) = NULL;
-  New_Proc(tmp) = p;
-  return tmp;
-}
-
-int main(int argc, char** argv) {
-  bodyptr b = ubody_alloc(17);
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-06-VarSizeInStruct1.c b/libclamav/c++/llvm/test/FrontendC/2007-03-06-VarSizeInStruct1.c
deleted file mode 100644
index b4ae565..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-06-VarSizeInStruct1.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc %s -w -S -o -
-void* p (int n) {
-  struct f {
-    char w; char x[n]; char z[];
-  } F;
-  F.x[0]='x';
-  return &F;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-06-VarSizeInStruct2.c b/libclamav/c++/llvm/test/FrontendC/2007-03-06-VarSizeInStruct2.c
deleted file mode 100644
index 13bc3aa..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-06-VarSizeInStruct2.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-char p (int n) {
-  struct f {
-    char w; char x[n]; char y[n];
-  } F;
-
-  return F.x[0];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-26-BitfieldAfterZeroWidth.c b/libclamav/c++/llvm/test/FrontendC/2007-03-26-BitfieldAfterZeroWidth.c
deleted file mode 100644
index 9b6a869..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-26-BitfieldAfterZeroWidth.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-struct W {};
-struct Y {
-  struct W w;
-  int i:1;
-} __attribute__ ((packed)) y;
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-26-ZeroWidthBitfield.c b/libclamav/c++/llvm/test/FrontendC/2007-03-26-ZeroWidthBitfield.c
deleted file mode 100644
index 89bfb8e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-26-ZeroWidthBitfield.c
+++ /dev/null
@@ -1,2 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-struct Z { int :0; } z;
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-27-ArrayCompatible.c b/libclamav/c++/llvm/test/FrontendC/2007-03-27-ArrayCompatible.c
deleted file mode 100644
index fa3d2db..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-27-ArrayCompatible.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -S %s -O2 -o - | grep {ret i8 0}
-static char c(int n) {
-  char x[2][n];
-  x[1][0]=0;
-  return *(n+(char *)x);
-}
-
-char d(void) {
-  return c(2);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-03-27-VarLengthArray.c b/libclamav/c++/llvm/test/FrontendC/2007-03-27-VarLengthArray.c
deleted file mode 100644
index b555690..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-03-27-VarLengthArray.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep {getelementptr inbounds \\\[0 x i32\\\]}
-extern void f(int *);
-int e(int m, int n) {
-  int x[n];
-  f(x);
-  return x[m];
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedBitFields-2.c b/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedBitFields-2.c
deleted file mode 100644
index d9db420..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedBitFields-2.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-# define pck __attribute__((packed))
-
-
-struct pck F { 
-  unsigned long long i : 12, 
-    j : 23, 
-    k : 27, 
-    l; 
-}; 
-struct F f1;
-
-void foo() {
-	f1.l = 5;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedBitFields.c b/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedBitFields.c
deleted file mode 100644
index f9de356..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedBitFields.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-# define pck __attribute__((packed))
-
-
-struct pck E { 
-  unsigned long long l, 
-    i : 12, 
-    j : 23, 
-    k : 29; };
-
-struct E e1;
-
-void foo() {
-	e1.k = 5;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedStruct.c b/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedStruct.c
deleted file mode 100644
index 0d524c4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PackedStruct.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-#pragma pack(push, 2)
-
-enum {
-  tA = 0,
-  tB = 1
-};
-
-struct MyStruct {
-  unsigned long A;
-  char C;
-  void * B;
-};
-
-void bar(){
-struct MyStruct MS = { tB, 0 };
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PadBeforeZeroLengthField.c b/libclamav/c++/llvm/test/FrontendC/2007-04-05-PadBeforeZeroLengthField.c
deleted file mode 100644
index acc3821..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-05-PadBeforeZeroLengthField.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-struct c__ { unsigned int type:4; };
-union A { struct c__ c;  } __attribute__((aligned(8)));
-struct B {
-    unsigned int retainCount;
-    union A objects[];
-};
-void foo(union A * objects, struct B *array, unsigned long k)
-{  array->objects[k] = objects[k]; }
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-05-UnPackedStruct.c b/libclamav/c++/llvm/test/FrontendC/2007-04-05-UnPackedStruct.c
deleted file mode 100644
index 9e168ed..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-05-UnPackedStruct.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-
-enum {
-  tA = 0,
-  tB = 1
-};
-
-struct MyStruct {
-  unsigned long A;
-  void * B;
-};
-
-void bar(){
-struct MyStruct MS = { tB, 0 };
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineAsmStruct.c b/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineAsmStruct.c
deleted file mode 100644
index 158a16e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineAsmStruct.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | llvm-as | llc
-
-struct V { short X, Y; };
-int bar() {
-  struct V bar;
-  __asm__ volatile("foo %0\n" : "=r"(bar));
-  return bar.X;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineAsmUnion.c b/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineAsmUnion.c
deleted file mode 100644
index 0435d64..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineAsmUnion.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | llvm-as | llc
-
-union U { int x; float p; };
-void foo() {
-  union U bar;
-  __asm__ volatile("foo %0\n" : "=r"(bar));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC89.c b/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC89.c
deleted file mode 100644
index 4631191..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC89.c
+++ /dev/null
@@ -1,45 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xglobWeak | \
-// RUN:   grep weak | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | grep xextWeak | \
-// RUN:   grep weak | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xWeaknoinline | grep weak | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xWeakextnoinline | grep weak | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xglobnoWeak | grep -v internal | grep -v weak | \
-// RUN:   grep -v linkonce | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xstatnoWeak | grep internal | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xextnoWeak | grep available_externally | count 1
-inline int xglobWeak(int) __attribute__((weak));
-inline int xglobWeak (int i) {
-  return i*2;
-}
-inline int xextWeak(int) __attribute__((weak));
-extern  inline int xextWeak (int i) {
-  return i*4;
-}
-int xWeaknoinline(int) __attribute__((weak));
-int xWeaknoinline(int i) {
-  return i*8;
-}
-int xWeakextnoinline(int) __attribute__((weak));
-extern int xWeakextnoinline(int i) {
-  return i*16;
-}
-inline int xglobnoWeak (int i) {
-  return i*32;
-}
-static inline int xstatnoWeak (int i) {
-  return i*64;
-}
-extern  inline int xextnoWeak (int i) {
-  return i*128;
-}
-int j(int y) {
-  return xglobnoWeak(y)+xstatnoWeak(y)+xextnoWeak(y)+
-        xglobWeak(y)+xextWeak(y)+
-        xWeakextnoinline(y)+xWeaknoinline(y);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC99.c b/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC99.c
deleted file mode 100644
index 3607999..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC99.c
+++ /dev/null
@@ -1,45 +0,0 @@
-// RUN: %llvmgcc -std=c99 %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xglobWeak | grep weak | count 1
-// RUN: %llvmgcc -std=c99 %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xextWeak | grep weak | count 1
-// RUN: %llvmgcc -std=c99 %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xWeaknoinline | grep weak | count 1
-// RUN: %llvmgcc -std=c99 %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xWeakextnoinline | grep weak | count 1
-// RUN: %llvmgcc -std=c99 %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xglobnoWeak | grep available_externally | count 1
-// RUN: %llvmgcc -std=c99 %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xstatnoWeak | grep internal | count 1
-// RUN: %llvmgcc -std=c99 %s -S -emit-llvm -O0 -o - | grep define | \
-// RUN:   grep xextnoWeak | grep -v internal | grep -v weak | \
-// RUN:   grep -v linkonce | count 1
-inline int xglobWeak(int) __attribute__((weak));
-inline int xglobWeak (int i) {
-  return i*2;
-}
-inline int xextWeak(int) __attribute__((weak));
-extern  inline int xextWeak (int i) {
-  return i*4;
-}
-int xWeaknoinline(int) __attribute__((weak));
-int xWeaknoinline(int i) {
-  return i*8;
-}
-int xWeakextnoinline(int) __attribute__((weak));
-extern int xWeakextnoinline(int i) {
-  return i*16;
-}
-inline int xglobnoWeak (int i) {
-  return i*32;
-}
-static inline int xstatnoWeak (int i) {
-  return i*64;
-}
-extern  inline int xextnoWeak (int i) {
-  return i*128;
-}
-int j(int y) {
-  return xglobnoWeak(y)+xstatnoWeak(y)+xextnoWeak(y)+
-        xglobWeak(y)+xextWeak(y)+
-        xWeakextnoinline(y)+xWeaknoinline(y);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-11-PR1321.c b/libclamav/c++/llvm/test/FrontendC/2007-04-11-PR1321.c
deleted file mode 100644
index f391329..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-11-PR1321.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc %s -S -o /dev/null
-
-struct X {
-  unsigned int e0 : 17;
-  unsigned int e1 : 17;
-  unsigned int e2 : 17;
-  unsigned int e3 : 17;
-  unsigned int e4 : 17;
-  unsigned int e5 : 17;
-  unsigned int e6 : 17;
-  unsigned int e7 : 17;
-} __attribute__((packed)) x;
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-13-InlineAsmStruct2.c b/libclamav/c++/llvm/test/FrontendC/2007-04-13-InlineAsmStruct2.c
deleted file mode 100644
index e4870e7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-13-InlineAsmStruct2.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | grep {call void asm}
-
-struct V { short X, Y; };
-int bar() {
-  struct V bar;
-  __asm__ volatile("foo %0\n" :: "r"(bar));
-  return bar.X;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-13-InlineAsmUnion2.c b/libclamav/c++/llvm/test/FrontendC/2007-04-13-InlineAsmUnion2.c
deleted file mode 100644
index 284654d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-13-InlineAsmUnion2.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | grep {call void asm}
-
-union U { int x; char* p; };
-void foo() {
-  union U bar;
-  __asm__ volatile("foo %0\n" :: "r"(bar));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-14-FNoBuiltin.c b/libclamav/c++/llvm/test/FrontendC/2007-04-14-FNoBuiltin.c
deleted file mode 100644
index 88bf0e0..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-14-FNoBuiltin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -O2 -fno-builtin -o - | grep call.*printf
-// Check that -fno-builtin is honored.
-
-extern int printf(const char*, ...);
-void foo(const char *msg) {
-	printf("%s\n",msg);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-17-ZeroSizeBitFields.c b/libclamav/c++/llvm/test/FrontendC/2007-04-17-ZeroSizeBitFields.c
deleted file mode 100644
index ec7b7ea..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-17-ZeroSizeBitFields.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// PR 1332
-// RUN: %llvmgcc %s -S -o /dev/null
-
-struct Z { int a:1; int :0; int c:1; } z;
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-24-VolatileStructCopy.c b/libclamav/c++/llvm/test/FrontendC/2007-04-24-VolatileStructCopy.c
deleted file mode 100644
index 4765921..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-24-VolatileStructCopy.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep {volatile store}
-// PR1352
-
-struct foo {
-  int x;
-};
-
-void copy(volatile struct foo *p, struct foo *q) {
-  *p = *q;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-24-bit-not-expr.c b/libclamav/c++/llvm/test/FrontendC/2007-04-24-bit-not-expr.c
deleted file mode 100644
index 1c27f18..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-24-bit-not-expr.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// PR 1346
-// RUN: %llvmgcc -c %s  -o /dev/null
-extern bar(void *);
-
-void f(void *cd) {
-  bar(((void *)((unsigned long)(cd) ^ -1)));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-04-24-str-const.c b/libclamav/c++/llvm/test/FrontendC/2007-04-24-str-const.c
deleted file mode 100644
index 4c109c4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-04-24-str-const.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -c %s  -o /dev/null
-static char *str;
-
-static const struct {
- const char *name;
- unsigned type;
-} scan_special[] = {
- {"shift", 1},
- {0, 0}
-};
-
-static void
-sb(void)
-{
- while (*str == ' ' || *str == '\t')
-  str++;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-05-07-NestedStructReturn.c b/libclamav/c++/llvm/test/FrontendC/2007-05-07-NestedStructReturn.c
deleted file mode 100644
index aea58e3..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-05-07-NestedStructReturn.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc %s -S -fnested-functions -o - | grep {sret *%agg.result}
-
-struct X { long m, n, o, p; };
-
-struct X p(int n) {
-  struct X c(int m) {
-    struct X x;
-    x.m = m;
-    x.n = n;
-    return x;
-  }
-  return c(n);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-05-07-PaddingElements.c b/libclamav/c++/llvm/test/FrontendC/2007-05-07-PaddingElements.c
deleted file mode 100644
index 9be8850..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-05-07-PaddingElements.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// PR 1278
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep {struct.s} | not grep "4 x i8] zeroinitializer"
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | not grep "i32 0, i32 2"
-struct s {
-  double d1;
-  int s1;
-};
-
-struct s foo(void) {
-  struct s S = {1.1, 2};
-  return S;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-05-08-PCH.c b/libclamav/c++/llvm/test/FrontendC/2007-05-08-PCH.c
deleted file mode 100644
index aa277ec..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-05-08-PCH.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// PR 1400
-// RUN: %llvmgcc -x c-header %s -o /dev/null
-
-int main() {
-  return 0;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-05-11-str-const.c b/libclamav/c++/llvm/test/FrontendC/2007-05-11-str-const.c
deleted file mode 100644
index 48deddb..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-05-11-str-const.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -c -g %s  -o /dev/null
-
-static unsigned char out[]={0,1};
-static const unsigned char str1[]="1";
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-05-15-PaddingElement.c b/libclamav/c++/llvm/test/FrontendC/2007-05-15-PaddingElement.c
deleted file mode 100644
index a218b35..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-05-15-PaddingElement.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// PR 1419
-
-// RUN: %llvmgcc -xc  -O2 %s -c -o - | llvm-dis | grep "ret i32 1"
-struct A {
-  short x;
-  long long :0;
-};
-
-struct B {
-  char a;
-  char b;
-  unsigned char i;
-};
-
-union X { struct A a; struct B b; };
-
-int check(void) {
-  union X x, y;
-
-  y.b.i = 0xff;
-  x = y;
-  return (x.b.i == 0xff);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-05-16-EmptyStruct.c b/libclamav/c++/llvm/test/FrontendC/2007-05-16-EmptyStruct.c
deleted file mode 100644
index 748aa98..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-05-16-EmptyStruct.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// PR 1417
-
-// RUN: %llvmgcc -xc  %s -c -o - | llvm-dis | grep "struct.anon = type \{ \}"
-
-struct { } *X;
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-05-29-UnionCopy.c b/libclamav/c++/llvm/test/FrontendC/2007-05-29-UnionCopy.c
deleted file mode 100644
index ded67d4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-05-29-UnionCopy.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S -o - -emit-llvm %s | grep memcpy
-// PR1421
-
-struct A {
-  char c;
-  int i;
-};
-
-struct B {
-  int c;
-  unsigned char x;
-};
-
-union U { struct A a; struct B b; };
-
-void check(union U *u, union U *v) {
-  *u = *v;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-06-05-NoInlineAttribute.c b/libclamav/c++/llvm/test/FrontendC/2007-06-05-NoInlineAttribute.c
deleted file mode 100644
index b11b3c7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-06-05-NoInlineAttribute.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -O2 -c -emit-llvm %s -o - | llvm-dis | grep call
-
-static int bar(int x, int y) __attribute__((noinline));
-
-static int bar(int x, int y)  
-{
- return x + y;
-}
-
-int foo(int a, int b) {
- return  bar(b, a);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-06-15-AnnotateAttribute.c b/libclamav/c++/llvm/test/FrontendC/2007-06-15-AnnotateAttribute.c
deleted file mode 100644
index 0099117..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-06-15-AnnotateAttribute.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgcc -c -emit-llvm %s -o - | llvm-dis | grep llvm.global.annotations
-// RUN: %llvmgcc -c -emit-llvm %s -o - | llvm-dis | grep llvm.var.annotation | count 3 
-
-#include <stdio.h>
-
-/* Global variable with attribute */
-int X __attribute__((annotate("GlobalValAnnotation")));
-
-/* Function with attribute */
-int foo(int y) __attribute__((annotate("GlobalValAnnotation"))) 
-               __attribute__((noinline));
-
-int foo(int y __attribute__((annotate("LocalValAnnotation")))) {
-  int x __attribute__((annotate("LocalValAnnotation")));
-  x = 34;
-  return y + x;
-} 
-
-int main() {
-  static int a __attribute__((annotate("GlobalValAnnotation")));
-  a = foo(2);
-  printf("hello world%d\n", a);
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-06-18-SextAttrAggregate.c b/libclamav/c++/llvm/test/FrontendC/2007-06-18-SextAttrAggregate.c
deleted file mode 100644
index 2fcd726..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-06-18-SextAttrAggregate.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc %s -o - -S -emit-llvm -O3 | grep {i8 signext}
-// PR1513
-
-struct s{
-long a;
-long b;
-};
-
-void f(struct s a, char *b, signed char C) {
-
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-07-29-RestrictPtrArg.c b/libclamav/c++/llvm/test/FrontendC/2007-07-29-RestrictPtrArg.c
deleted file mode 100644
index 99eae39..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-07-29-RestrictPtrArg.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -c -emit-llvm %s -o - | llvm-dis | grep noalias
-
-void foo(int * __restrict myptr1, int * myptr2) {
-  myptr1[0] = 0;
-  myptr2[0] = 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-08-01-LoadStoreAlign.c b/libclamav/c++/llvm/test/FrontendC/2007-08-01-LoadStoreAlign.c
deleted file mode 100644
index ef890bf..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-08-01-LoadStoreAlign.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep {align 1} | count 2
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | llvm-as | llc
-
-struct p {
-  char a;
-  int b;
-} __attribute__ ((packed));
-
-struct p t = { 1, 10 };
-struct p u;
-
-int main () {
-  int tmp = t.b;
-  u.b = tmp;
-  return tmp;
-
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-08-21-ComplexCst.c b/libclamav/c++/llvm/test/FrontendC/2007-08-21-ComplexCst.c
deleted file mode 100644
index 7ddd87c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-08-21-ComplexCst.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc -O2 -c %s -o /dev/null
-void f(_Complex float z);
-void g() { f(1.0i); }
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-08-22-CTTZ.c b/libclamav/c++/llvm/test/FrontendC/2007-08-22-CTTZ.c
deleted file mode 100644
index 9e74f24..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-08-22-CTTZ.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -O2 -S -o - %s | grep {llvm.cttz.i64} | count 2
-// RUN: %llvmgcc -O2 -S -o - %s | not grep {lshr}
-
-int bork(unsigned long long x) {
-  return __builtin_ctzll(x);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-05-ConstCtor.c b/libclamav/c++/llvm/test/FrontendC/2007-09-05-ConstCtor.c
deleted file mode 100644
index 8e0e994..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-05-ConstCtor.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -xc -Os -c %s -o /dev/null
-// PR1641
-
-struct A {
-  unsigned long l;
-};
-
-void bar(struct A *a);
-
-void bork() {
-  const unsigned long vcgt = 1234;
-  struct A a = { vcgt };
-  bar(&a);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-12-PragmaPack.c b/libclamav/c++/llvm/test/FrontendC/2007-09-12-PragmaPack.c
deleted file mode 100644
index 4fc7f48..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-12-PragmaPack.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// RUN: %llvmgcc -O3 -S -o - %s | grep {18}
-
-#include <stdint.h>
-
-#pragma pack(push, 1)
-typedef struct
-{
-        uint32_t        a;
-} foo;
-
-typedef struct {
-        uint8_t         major;
-        uint8_t         minor;
-        uint16_t        build;
-} VERSION;
-
-typedef struct {
-        uint8_t       a[5];
-        VERSION       version;
-        uint8_t       b;
-        foo           d;
-        uint32_t      guard;
-} bar;
-#pragma pack(pop)
-
-
-unsigned barsize(void) {
-  return sizeof(bar);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-14-NegatePointer.c b/libclamav/c++/llvm/test/FrontendC/2007-09-14-NegatePointer.c
deleted file mode 100644
index cb49e46..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-14-NegatePointer.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - 
-// PR1662
-
-int foo(unsigned char *test) {
-  return 0U - (unsigned int )test;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-17-WeakRef.c b/libclamav/c++/llvm/test/FrontendC/2007-09-17-WeakRef.c
deleted file mode 100644
index 3cdd47e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-17-WeakRef.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -O1 -S %s -o - | grep icmp
-// PR1678
-// XFAIL: llvmgcc4.0.1
-extern void B (void);
-static __typeof(B) A __attribute__ ((__weakref__("B")));
-int active (void)
-{
-  static void *const p = __extension__ (void *) &A;
-  return p != 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-20-GcrootAttribute.c b/libclamav/c++/llvm/test/FrontendC/2007-09-20-GcrootAttribute.c
deleted file mode 100644
index 23cd37f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-20-GcrootAttribute.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot
-// RUN: %llvmgcc -S -emit-llvm %s -o - | grep llvm.gcroot | count 6
-// RUN: %llvmgcc -S -emit-llvm %s -o - | llvm-as
-
-typedef struct foo_s
-{
-  int a;
-} foo, __attribute__ ((gcroot)) *foo_p;
-
-foo my_foo;
-
-int alpha ()
-{
-  foo my_foo2 = my_foo;
-  
-  return my_foo2.a;
-}
-
-int bar (foo a)
-{
-  foo_p b;
-  return b->a;
-}
-
-foo_p baz (foo_p a, foo_p b, foo_p *c)
-{
-  a = b = *c;
-  return a;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-26-Alignment.c b/libclamav/c++/llvm/test/FrontendC/2007-09-26-Alignment.c
deleted file mode 100644
index 1638fed..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-26-Alignment.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep {align 16}
-extern p(int *);
-int q(void) {
-  int x __attribute__ ((aligned (16)));
-  p(&x);
-  return x;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-27-ComplexIntCompare.c b/libclamav/c++/llvm/test/FrontendC/2007-09-27-ComplexIntCompare.c
deleted file mode 100644
index 50626e5..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-27-ComplexIntCompare.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -S %s -o -  
-// PR1708
-
-#include <stdlib.h>
-
-struct s { _Complex unsigned short x; };
-struct s gs = { 100 + 200i };
-struct s __attribute__((noinline)) foo (void) { return gs; }
-
-int main ()
-{
-  if (foo ().x != gs.x)
-    abort ();
-  exit (0);
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-09-28-PackedUnionMember.c b/libclamav/c++/llvm/test/FrontendC/2007-09-28-PackedUnionMember.c
deleted file mode 100644
index 79f48ce..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-09-28-PackedUnionMember.c
+++ /dev/null
@@ -1,38 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-#pragma pack(push, 2)
-struct H {
-  unsigned long f1;
-  unsigned long f2;
-  union {
-    struct opaque1 *f3;
-    struct opaque2 *f4;
-    struct {
-      struct opaque3 *f5;
-      unsigned short  f6;
-    } f7;
-  } f8;
-};
-#pragma pack(pop)
-
-struct E {
-  unsigned long f1;
-  unsigned long f2;
-};
-
-typedef long (*FuncPtr) ();
-
-extern long bork(FuncPtr handler, const struct E *list);
-
-static long hndlr()
-{
-  struct H cmd = { 4, 412 };
-  return 0;
-}
-void foo(void *inWindow) {
-  static const struct E events[] = {
-    { 123124, 1 }
-  };
-  bork(hndlr, events);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-10-01-BuildArrayRef.c b/libclamav/c++/llvm/test/FrontendC/2007-10-01-BuildArrayRef.c
deleted file mode 100644
index e903755..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-10-01-BuildArrayRef.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: not %llvmgcc -S %s -o /dev/null |& grep "error: assignment of read-only location"
-// PR 1603
-int func()
-{
-   const int *arr;
-   arr[0] = 1;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-10-02-VolatileArray.c b/libclamav/c++/llvm/test/FrontendC/2007-10-02-VolatileArray.c
deleted file mode 100644
index 7e8bf24..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-10-02-VolatileArray.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep volatile
-// PR1647
-
-void foo(volatile int *p)
-{
-p[0] = 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-10-15-VoidPtr.c b/libclamav/c++/llvm/test/FrontendC/2007-10-15-VoidPtr.c
deleted file mode 100644
index c5948b9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-10-15-VoidPtr.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -S %s -o /dev/null
-void bork(void **data) {
-  (*(unsigned short *) (&(data[37])[927]) = 0);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-10-30-Volatile.c b/libclamav/c++/llvm/test/FrontendC/2007-10-30-Volatile.c
deleted file mode 100644
index 7a75b05..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-10-30-Volatile.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o /dev/null -Wall -Werror
-void bork() {
-  char * volatile p;
-  volatile int cc;
-  p += cc;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-11-07-AlignedMemcpy.c b/libclamav/c++/llvm/test/FrontendC/2007-11-07-AlignedMemcpy.c
deleted file mode 100644
index f1900bb..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-11-07-AlignedMemcpy.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -c %s -o /dev/null
-void bork() {
-  int Qux[33] = {0};
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-11-07-CopyAggregateAlign.c b/libclamav/c++/llvm/test/FrontendC/2007-11-07-CopyAggregateAlign.c
deleted file mode 100644
index 8bd94b0..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-11-07-CopyAggregateAlign.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep "align 2" | count 6
-struct A { char s, t, u, v; short a; };
-void q() { struct A a, b; a = b; }
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-11-07-ZeroAggregateAlign.c b/libclamav/c++/llvm/test/FrontendC/2007-11-07-ZeroAggregateAlign.c
deleted file mode 100644
index 424120d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-11-07-ZeroAggregateAlign.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep "align 2"
-struct A { short s; short t; int i; };
-void q() { struct A a = {0}; }
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-11-27-SExtZExt.c b/libclamav/c++/llvm/test/FrontendC/2007-11-27-SExtZExt.c
deleted file mode 100644
index 2b6cd62..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-11-27-SExtZExt.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -emit-llvm -o - | grep "signext" | count 4
-
-signed char foo1() { return 1; }
-
-void foo2(signed short a) { }
-
-signed char foo3(void) { return 1; }
-
-void foo4(a) signed short a; { }
-
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-11-28-GlobalInitializer.c b/libclamav/c++/llvm/test/FrontendC/2007-11-28-GlobalInitializer.c
deleted file mode 100644
index c8c7a59..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-11-28-GlobalInitializer.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc -S %s -o - 
-// PR1744
-typedef struct foo { int x; char *p; } FOO;
-extern FOO yy[];
-
-int *y = &((yy + 1)->x);
-void *z = &((yy + 1)->x);
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-12-16-AsmNoUnwind.c b/libclamav/c++/llvm/test/FrontendC/2007-12-16-AsmNoUnwind.c
deleted file mode 100644
index b080e6a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-12-16-AsmNoUnwind.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | grep nounwind
-
-void bar() { asm (""); }
diff --git a/libclamav/c++/llvm/test/FrontendC/2007-12-VarArrayDebug.c b/libclamav/c++/llvm/test/FrontendC/2007-12-VarArrayDebug.c
deleted file mode 100644
index cd6cfdf..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2007-12-VarArrayDebug.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S -g -O %s -o - | llvm-as | llc
-// RUN: %llvmgcc -S -g %s -o - | llvm-as | llc
-
-extern void foo (void);
-
-static
-void baz (int i)
-{
-  foo ();
-  typedef char A[i];
-  struct { A b; } *x = 0;
-}
-
-void
-bar (i)
-{
-  baz (i);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-04-WideBitfield.c b/libclamav/c++/llvm/test/FrontendC/2008-01-04-WideBitfield.c
deleted file mode 100644
index a0045a4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-04-WideBitfield.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %llvmgcc -S -o - %s
-// PR1386
-#include <stdint.h>
-
-struct X {
-  unsigned char pad : 4;
-  uint64_t a : 64;
-} __attribute__((packed)) x;
-
-uint64_t f(void)
-{
-  return x.a;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-07-UnusualIntSize.c b/libclamav/c++/llvm/test/FrontendC/2008-01-07-UnusualIntSize.c
deleted file mode 100644
index 91beaf3..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-07-UnusualIntSize.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc %s -S -o - -O | grep i33
-// PR1721
-
-struct s {
-  unsigned long long u33: 33;
-} a, b;
-
-// This should turn into a real 33-bit add, not a 64-bit add.
-_Bool test(void) {
-  return a.u33 + b.u33 != 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-11-ChainConsistency.c b/libclamav/c++/llvm/test/FrontendC/2008-01-11-ChainConsistency.c
deleted file mode 100644
index 13e48a3..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-11-ChainConsistency.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc -S %s -o - -fnested-functions | not grep nest
-
-void n1(void) { void a(void) { a(); } a(); }
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-21-PackedBitFields.c b/libclamav/c++/llvm/test/FrontendC/2008-01-21-PackedBitFields.c
deleted file mode 100644
index 4c38dee..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-21-PackedBitFields.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-typedef double Al1Double __attribute__((aligned(1)));
-struct x { int a:23; Al1Double v; };
-struct x X = { 5, 3.0 };
-double foo() { return X.v; }
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-21-PackedStructField.c b/libclamav/c++/llvm/test/FrontendC/2008-01-21-PackedStructField.c
deleted file mode 100644
index 9cc1731..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-21-PackedStructField.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-struct X { long double b; unsigned char c; double __attribute__((packed)) d; };
-struct X x = { 3.0L, 5, 3.0 };
-
-
-struct S2504 {
-  int e:17;
-    __attribute__((packed)) unsigned long long int f; 
-} ;
-int fails;
- extern struct S2504 s2504; 
-void check2504va (int z) { 
-  struct S2504 arg, *p;
-  long long int i = 0; 
-  arg.f = i;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-24-StructAlignAndBitFields.c b/libclamav/c++/llvm/test/FrontendC/2008-01-24-StructAlignAndBitFields.c
deleted file mode 100644
index 380a7ef..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-24-StructAlignAndBitFields.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-struct U { char a; short b; int c:25; char d; } u;
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-25-ByValReadNone.c b/libclamav/c++/llvm/test/FrontendC/2008-01-25-ByValReadNone.c
deleted file mode 100644
index 42e9c36..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-25-ByValReadNone.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | not grep readonly
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | not grep readnone
-
-
-// The struct being passed byval means that we cannot mark the
-// function readnone.  Readnone would allow stores to the arg to
-// be deleted in the caller.  We also don't allow readonly since
-// the callee might write to the byval parameter.  The inliner
-// would have to assume the worse and introduce an explicit
-// temporary when inlining such a function, which is costly for
-// the common case in which the byval argument is not written.
-struct S { int A[1000]; };
-int __attribute__ ((const)) f(struct S x) { x.A[1] = 0; return x.A[0]; }
-int g(struct S x) __attribute__ ((pure));
-int h(struct S x) { return g(x); }
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-25-ZeroSizedAggregate.c b/libclamav/c++/llvm/test/FrontendC/2008-01-25-ZeroSizedAggregate.c
deleted file mode 100644
index 643caff..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-25-ZeroSizedAggregate.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-// Aggregates of size zero should be dropped from argument list.
-typedef long int Tlong;
-struct S2411 {
-  __attribute__((aligned)) Tlong:0;
-};
-
-extern struct S2411 a2411[5];
-extern void checkx2411(struct S2411);
-void test2411(void) {
-  checkx2411(a2411[0]);
-}
-
-// Proper handling of zero sized fields during type conversion.
-typedef unsigned long long int Tal2ullong __attribute__((aligned(2)));
-struct S2525 {
- Tal2ullong: 0;
- struct {
- } e;
-};
-struct S2525 s2525;
-
-struct {
-  signed char f;
-  char :0;
-  struct{}h;
-  char * i[5];
-} data; 
-
-// Taking address of a zero sized field.
-struct Z {};
-struct Y {
-  int i;
-  struct Z z;
-};
-void *f(struct Y *y) {
-  return &y->z;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-28-PragmaMark.c b/libclamav/c++/llvm/test/FrontendC/2008-01-28-PragmaMark.c
deleted file mode 100644
index 0b3ac17..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-28-PragmaMark.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -Werror -c %s -o /dev/null
-#pragma mark LLVM's world
-#ifdef DO_ERROR
-#error LLVM's world
-#endif
-int i;
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-01-28-UnionSize.c b/libclamav/c++/llvm/test/FrontendC/2008-01-28-UnionSize.c
deleted file mode 100644
index ea2c863..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-01-28-UnionSize.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-// PR 1861
-
-typedef unsigned char __u8;
-typedef unsigned int __u32;
-typedef unsigned short u16;
-typedef __u32 __le32;
-struct bcm43xx_plcp_hdr6 {
-  union {
-    __le32 data;
-    __u8 raw[6];
-  }
-    __attribute__((__packed__));
-}
-  __attribute__((__packed__));
-struct bcm43xx_txhdr {
-  union {
-    struct {
-      struct bcm43xx_plcp_hdr6 plcp;
-    };
-  };
-}
-  __attribute__((__packed__));
-static void bcm43xx_generate_rts(struct bcm43xx_txhdr *txhdr ) { }
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-02-11-AnnotateBuiltin.c b/libclamav/c++/llvm/test/FrontendC/2008-02-11-AnnotateBuiltin.c
deleted file mode 100644
index 32bc7a8..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-02-11-AnnotateBuiltin.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | llvm-as | llvm-dis | grep llvm.annotation
-
-int main() {
-  int x = 0;
-  return __builtin_annotation(x, "annotate");
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-03-03-CtorAttrType.c b/libclamav/c++/llvm/test/FrontendC/2008-03-03-CtorAttrType.c
deleted file mode 100644
index dc0e47d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-03-03-CtorAttrType.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | grep llvm.global_ctors
-int __attribute__((constructor)) foo(void) {
-  return 0;
-}
-void __attribute__((constructor)) bar(void) {}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-03-05-syncPtr.c b/libclamav/c++/llvm/test/FrontendC/2008-03-05-syncPtr.c
deleted file mode 100644
index 43e4671..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-03-05-syncPtr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | grep llvm.atomic
-// XFAIL: sparc-sun-solaris2|arm
-// Feature currently implemented only for x86, alpha, powerpc.
-
-int* foo(int** a, int* b, int* c) {
-return __sync_val_compare_and_swap (a, b, c);
-}
-
-int foo2(int** a, int* b, int* c) {
-return __sync_bool_compare_and_swap (a, b, c);
-}
-
-int* foo3(int** a, int b) {
-  return __sync_fetch_and_add (a, b);
-}
-
-int* foo4(int** a, int b) {
-  return __sync_fetch_and_sub (a, b);
-}
-
-int* foo5(int** a, int* b) {
-  return __sync_lock_test_and_set (a, b);
-}
-
-int* foo6(int** a, int*** b) {
-  return __sync_lock_test_and_set (a, b);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-03-24-BitField-And-Alloca.c b/libclamav/c++/llvm/test/FrontendC/2008-03-24-BitField-And-Alloca.c
deleted file mode 100644
index 5fac2a9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-03-24-BitField-And-Alloca.c
+++ /dev/null
@@ -1,89 +0,0 @@
-// RUN: %llvmgcc -O2 -S %s -o - | not grep alloca
-// RUN: %llvmgcc -m32 -O2 -S %s -o - | grep store | not grep {align 8}
-
-enum {
- PP_C,
- PP_D,
- PP_R,
- PP_2D,
- PP_1D,
- PP_SR,
- PP_S2D,
- PP_S1D,
- PP_SC
-};
-
-enum {
- G_VP,
- G_FP,
- G_VS,
- G_GS,
- G_FS
-};
-
-enum {
- G_NONE,
- G_B,
- G_R
-};
-
-typedef union _Key {
- struct {
-  unsigned int count : 2;
-  unsigned int Aconst : 1;
-  unsigned int Bconst : 1;
-  unsigned int Cconst : 1;
-  unsigned int Xused : 1;
-  unsigned int Yused : 1;
-  unsigned int Zused : 1;
-  unsigned int Wused : 1;
-  unsigned int ttype : 3;
-  unsigned int scalar : 1;
-  unsigned int AType : 4;
-  unsigned int BType : 4;
-  unsigned int CType : 4;
-  unsigned int RType : 4;
-  unsigned int Size : 2;
-  unsigned int prec : 1;
-
-  unsigned int ASize : 2;
-  unsigned int BSize : 2;
-  unsigned int CSize : 2;
-  unsigned int tTex : 4;
-  unsigned int proj : 1;
-  unsigned int lod : 2;
-  unsigned int dvts : 1;
-  unsigned int uipad : 18;
- } key_io;
- struct {
-  unsigned int key0;
-  unsigned int key1;
- } key;
- unsigned long long lkey;
-} Key;
-
-static void foo(const Key iospec, int* ret)
-{
-  *ret=0;
- if(((iospec.key_io.lod == G_B) &&
-  (iospec.key_io.ttype != G_VS) &&
-  (iospec.key_io.ttype != G_GS) &&
-  (iospec.key_io.ttype != G_FS)) ||
-
-  (((iospec.key_io.tTex == PP_C) ||
-    (iospec.key_io.tTex == PP_SC)) &&
-   ((iospec.key_io.tTex == PP_SR) ||
-    (iospec.key_io.tTex == PP_S2D) ||
-    (iospec.key_io.tTex == PP_S1D) ||
-    (iospec.key_io.tTex == PP_SC))))
-  *ret=1;
-}
-
-
-extern int bar(unsigned long long key_token2)
-{
- int ret;
- __attribute__ ((unused)) Key iospec = (Key) key_token2;
- foo(iospec, &ret);
- return ret;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-03-26-PackedBitFields.c b/libclamav/c++/llvm/test/FrontendC/2008-03-26-PackedBitFields.c
deleted file mode 100644
index 7214281..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-03-26-PackedBitFields.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-
-
-struct S1757 { 
-  long double c;
-  long int __attribute__((packed)) e:28;
-} x;
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-04-08-NoExceptions.c b/libclamav/c++/llvm/test/FrontendC/2008-04-08-NoExceptions.c
deleted file mode 100644
index 257fee2..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-04-08-NoExceptions.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S -o - %s | grep nounwind | count 2
-// RUN: %llvmgcc -S -o - %s | not grep {declare.*nounwind}
-
-void f(void);
-void g(void) {
-  f();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-05-06-CFECrash.c b/libclamav/c++/llvm/test/FrontendC/2008-05-06-CFECrash.c
deleted file mode 100644
index 94d556c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-05-06-CFECrash.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -S -O2 %s -o /dev/null
-// PR2292.
-__inline__ __attribute__ ((__pure__)) int g (void) {}
-void f (int k) { k = g (); }
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-05-12-TempUsedBeforeDef.c b/libclamav/c++/llvm/test/FrontendC/2008-05-12-TempUsedBeforeDef.c
deleted file mode 100644
index 21724c1..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-05-12-TempUsedBeforeDef.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc -w -S -o /dev/null %s
-// PR2264.
-unsigned foo = 8L;
-unsigned bar = 0L;
-volatile unsigned char baz = 6L;
-int test() {
-  char qux = 1L;
-  for (; baz >= -29; baz--)
-    bork(bar && foo, qux);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-05-19-AlwaysInline.c b/libclamav/c++/llvm/test/FrontendC/2008-05-19-AlwaysInline.c
deleted file mode 100644
index 506f6cf..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-05-19-AlwaysInline.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc %s -S -fno-unit-at-a-time -emit-llvm -O0 -o - | not grep sabrina
-// RUN: %llvmgcc %s -S -funit-at-a-time -emit-llvm -O0 -o - | not grep sabrina
-
-static inline int sabrina (void) __attribute__((always_inline));
-static inline int sabrina (void)
-{
-  return 13;
-}
-int bar (void)
-{
-  return sabrina () + 68;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-07-08-FAbsAttributes.c b/libclamav/c++/llvm/test/FrontendC/2008-07-08-FAbsAttributes.c
deleted file mode 100644
index 1eb01dc..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-07-08-FAbsAttributes.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep readnone
-// PR2520
-#include <math.h>
-double f(double *x, double *y) { return fabs(*x + *y); }
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-07-29-EHLabel.ll b/libclamav/c++/llvm/test/FrontendC/2008-07-29-EHLabel.ll
deleted file mode 100644
index abf9456..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-07-29-EHLabel.ll
+++ /dev/null
@@ -1,282 +0,0 @@
-; RUN: llvm-as < %s | llc -o - | %llvmgcc -xassembler -c -o /dev/null -
-; PR2609
-	%struct..0._11 = type { i32 }
-	%struct..1__pthread_mutex_s = type { i32, i32, i32, i32, i32, %struct..0._11 }
-	%struct.pthread_attr_t = type { i32, [32 x i8] }
-	%struct.pthread_mutex_t = type { %struct..1__pthread_mutex_s }
-	%"struct.std::__ctype_abstract_base<wchar_t>" = type { %"struct.std::locale::facet" }
-	%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i8, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::__ctype_abstract_base<wchar_t>"*, %"struct.std::__ctype_abstract_base<wchar_t>"* }
-	%"struct.std::basic_istream<char,std::char_traits<char> >" = type { i32 (...)**, i32, %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_istream<char,std::char_traits<char> >::sentry" = type { i8 }
-	%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
-	%"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
-	%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" }
-	%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
-	%"struct.std::ios_base::_Words" = type { i8*, i32 }
-	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
-	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
-	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
-
- at _ZL20__gthrw_pthread_oncePiPFvvE = alias weak i32 (i32*, void ()*)* @pthread_once		; <i32 (i32*, void ()*)*> [#uses=0]
- at _ZL27__gthrw_pthread_getspecificj = alias weak i8* (i32)* @pthread_getspecific		; <i8* (i32)*> [#uses=0]
- at _ZL27__gthrw_pthread_setspecificjPKv = alias weak i32 (i32, i8*)* @pthread_setspecific		; <i32 (i32, i8*)*> [#uses=0]
- at _ZL22__gthrw_pthread_createPmPK14pthread_attr_tPFPvS3_ES3_ = alias weak i32 (i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)* @pthread_create		; <i32 (i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)*> [#uses=0]
- at _ZL22__gthrw_pthread_cancelm = alias weak i32 (i32)* @pthread_cancel		; <i32 (i32)*> [#uses=0]
- at _ZL26__gthrw_pthread_mutex_lockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_lock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL29__gthrw_pthread_mutex_trylockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_trylock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL28__gthrw_pthread_mutex_unlockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_unlock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL26__gthrw_pthread_mutex_initP15pthread_mutex_tPK19pthread_mutexattr_t = alias weak i32 (%struct.pthread_mutex_t*, %struct..0._11*)* @pthread_mutex_init		; <i32 (%struct.pthread_mutex_t*, %struct..0._11*)*> [#uses=0]
- at _ZL26__gthrw_pthread_key_createPjPFvPvE = alias weak i32 (i32*, void (i8*)*)* @pthread_key_create		; <i32 (i32*, void (i8*)*)*> [#uses=0]
- at _ZL26__gthrw_pthread_key_deletej = alias weak i32 (i32)* @pthread_key_delete		; <i32 (i32)*> [#uses=0]
- at _ZL30__gthrw_pthread_mutexattr_initP19pthread_mutexattr_t = alias weak i32 (%struct..0._11*)* @pthread_mutexattr_init		; <i32 (%struct..0._11*)*> [#uses=0]
- at _ZL33__gthrw_pthread_mutexattr_settypeP19pthread_mutexattr_ti = alias weak i32 (%struct..0._11*, i32)* @pthread_mutexattr_settype		; <i32 (%struct..0._11*, i32)*> [#uses=0]
- at _ZL33__gthrw_pthread_mutexattr_destroyP19pthread_mutexattr_t = alias weak i32 (%struct..0._11*)* @pthread_mutexattr_destroy		; <i32 (%struct..0._11*)*> [#uses=0]
-
-define %"struct.std::basic_istream<char,std::char_traits<char> >"* @_ZNSi7getlineEPcic(%"struct.std::basic_istream<char,std::char_traits<char> >"* %this, i8* %__s, i32 %__n, i8 signext  %__delim) {
-entry:
-	%__cerb = alloca %"struct.std::basic_istream<char,std::char_traits<char> >::sentry"		; <%"struct.std::basic_istream<char,std::char_traits<char> >::sentry"*> [#uses=2]
-	getelementptr %"struct.std::basic_istream<char,std::char_traits<char> >"* %this, i32 0, i32 1		; <i32*>:0 [#uses=7]
-	store i32 0, i32* %0, align 4
-	call void @_ZNSi6sentryC1ERSib( %"struct.std::basic_istream<char,std::char_traits<char> >::sentry"* %__cerb, %"struct.std::basic_istream<char,std::char_traits<char> >"* %this, i8 zeroext  1 )
-	getelementptr %"struct.std::basic_istream<char,std::char_traits<char> >::sentry"* %__cerb, i32 0, i32 0		; <i8*>:1 [#uses=1]
-	load i8* %1, align 8		; <i8>:2 [#uses=1]
-	%toBool = icmp eq i8 %2, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %bb162, label %bb
-
-bb:		; preds = %entry
-	zext i8 %__delim to i32		; <i32>:3 [#uses=1]
-	getelementptr %"struct.std::basic_istream<char,std::char_traits<char> >"* %this, i32 0, i32 0		; <i32 (...)***>:4 [#uses=1]
-	load i32 (...)*** %4, align 4		; <i32 (...)**>:5 [#uses=1]
-	getelementptr i32 (...)** %5, i32 -3		; <i32 (...)**>:6 [#uses=1]
-	bitcast i32 (...)** %6 to i32*		; <i32*>:7 [#uses=1]
-	load i32* %7, align 4		; <i32>:8 [#uses=1]
-	bitcast %"struct.std::basic_istream<char,std::char_traits<char> >"* %this to i8*		; <i8*>:9 [#uses=1]
-	%ctg2186 = getelementptr i8* %9, i32 %8		; <i8*> [#uses=1]
-	bitcast i8* %ctg2186 to %"struct.std::basic_ios<char,std::char_traits<char> >"*		; <%"struct.std::basic_ios<char,std::char_traits<char> >"*>:10 [#uses=1]
-	getelementptr %"struct.std::basic_ios<char,std::char_traits<char> >"* %10, i32 0, i32 4		; <%"struct.std::basic_streambuf<char,std::char_traits<char> >"**>:11 [#uses=1]
-	load %"struct.std::basic_streambuf<char,std::char_traits<char> >"** %11, align 4		; <%"struct.std::basic_streambuf<char,std::char_traits<char> >"*>:12 [#uses=9]
-	getelementptr %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12, i32 0, i32 2		; <i8**>:13 [#uses=10]
-	load i8** %13, align 4		; <i8*>:14 [#uses=2]
-	getelementptr %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12, i32 0, i32 3		; <i8**>:15 [#uses=6]
-	load i8** %15, align 4		; <i8*>:16 [#uses=1]
-	icmp ult i8* %14, %16		; <i1>:17 [#uses=1]
-	br i1 %17, label %bb81, label %bb82
-
-bb81:		; preds = %bb
-	load i8* %14, align 1		; <i8>:18 [#uses=1]
-	zext i8 %18 to i32		; <i32>:19 [#uses=1]
-	%.pre = getelementptr %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	br label %bb119.preheader
-
-bb82:		; preds = %bb
-	getelementptr %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12, i32 0, i32 0		; <i32 (...)***>:20 [#uses=2]
-	load i32 (...)*** %20, align 4		; <i32 (...)**>:21 [#uses=1]
-	getelementptr i32 (...)** %21, i32 9		; <i32 (...)**>:22 [#uses=1]
-	load i32 (...)** %22, align 4		; <i32 (...)*>:23 [#uses=1]
-	bitcast i32 (...)* %23 to i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*		; <i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*>:24 [#uses=1]
-	invoke i32 %24( %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12 )
-			to label %bb119.preheader unwind label %lpad		; <i32>:25 [#uses=1]
-
-bb119.preheader:		; preds = %bb82, %bb81
-	%.pre-phi = phi i32 (...)*** [ %.pre, %bb81 ], [ %20, %bb82 ]		; <i32 (...)***> [#uses=4]
-	%__c79.0.ph = phi i32 [ %19, %bb81 ], [ %25, %bb82 ]		; <i32> [#uses=1]
-	sext i8 %__delim to i32		; <i32>:26 [#uses=1]
-	br label %bb119
-
-bb84:		; preds = %bb119
-	sub i32 %__n, %82		; <i32>:27 [#uses=1]
-	add i32 %27, -1		; <i32>:28 [#uses=2]
-	load i8** %15, align 4		; <i8*>:29 [#uses=1]
-	ptrtoint i8* %29 to i32		; <i32>:30 [#uses=1]
-	load i8** %13, align 4		; <i8*>:31 [#uses=3]
-	ptrtoint i8* %31 to i32		; <i32>:32 [#uses=2]
-	sub i32 %30, %32		; <i32>:33 [#uses=2]
-	icmp slt i32 %28, %33		; <i1>:34 [#uses=1]
-	select i1 %34, i32 %28, i32 %33		; <i32>:35 [#uses=3]
-	icmp sgt i32 %35, 1		; <i1>:36 [#uses=1]
-	br i1 %36, label %bb90, label %bb99
-
-bb90:		; preds = %bb84
-	call i8* @memchr( i8* %31, i32 %26, i32 %35 ) nounwind readonly 		; <i8*>:37 [#uses=2]
-	icmp eq i8* %37, null		; <i1>:38 [#uses=1]
-	br i1 %38, label %bb93, label %bb92
-
-bb92:		; preds = %bb90
-	ptrtoint i8* %37 to i32		; <i32>:39 [#uses=1]
-	sub i32 %39, %32		; <i32>:40 [#uses=1]
-	br label %bb93
-
-bb93:		; preds = %bb92, %bb90
-	%__size.0 = phi i32 [ %40, %bb92 ], [ %35, %bb90 ]		; <i32> [#uses=4]
-	call void @llvm.memcpy.i32( i8* %__s_addr.0, i8* %31, i32 %__size.0, i32 1 )
-	getelementptr i8* %__s_addr.0, i32 %__size.0		; <i8*>:41 [#uses=3]
-	load i8** %13, align 4		; <i8*>:42 [#uses=1]
-	getelementptr i8* %42, i32 %__size.0		; <i8*>:43 [#uses=1]
-	store i8* %43, i8** %13, align 4
-	load i32* %0, align 4		; <i32>:44 [#uses=1]
-	add i32 %44, %__size.0		; <i32>:45 [#uses=1]
-	store i32 %45, i32* %0, align 4
-	load i8** %13, align 4		; <i8*>:46 [#uses=2]
-	load i8** %15, align 4		; <i8*>:47 [#uses=1]
-	icmp ult i8* %46, %47		; <i1>:48 [#uses=1]
-	br i1 %48, label %bb95, label %bb96
-
-bb95:		; preds = %bb93
-	load i8* %46, align 1		; <i8>:49 [#uses=1]
-	zext i8 %49 to i32		; <i32>:50 [#uses=1]
-	br label %bb119
-
-bb96:		; preds = %bb93
-	load i32 (...)*** %.pre-phi, align 4		; <i32 (...)**>:51 [#uses=1]
-	getelementptr i32 (...)** %51, i32 9		; <i32 (...)**>:52 [#uses=1]
-	load i32 (...)** %52, align 4		; <i32 (...)*>:53 [#uses=1]
-	bitcast i32 (...)* %53 to i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*		; <i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*>:54 [#uses=1]
-	invoke i32 %54( %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12 )
-			to label %bb119 unwind label %lpad		; <i32>:55 [#uses=1]
-
-bb99:		; preds = %bb84
-	trunc i32 %__c79.0 to i8		; <i8>:56 [#uses=1]
-	store i8 %56, i8* %__s_addr.0, align 1
-	getelementptr i8* %__s_addr.0, i32 1		; <i8*>:57 [#uses=5]
-	load i32* %0, align 4		; <i32>:58 [#uses=1]
-	add i32 %58, 1		; <i32>:59 [#uses=1]
-	store i32 %59, i32* %0, align 4
-	load i8** %13, align 4		; <i8*>:60 [#uses=3]
-	load i8** %15, align 4		; <i8*>:61 [#uses=1]
-	icmp ult i8* %60, %61		; <i1>:62 [#uses=1]
-	br i1 %62, label %bb101, label %bb102
-
-bb101:		; preds = %bb99
-	load i8* %60, align 1		; <i8>:63 [#uses=1]
-	zext i8 %63 to i32		; <i32>:64 [#uses=1]
-	getelementptr i8* %60, i32 1		; <i8*>:65 [#uses=1]
-	store i8* %65, i8** %13, align 4
-	br label %bb104
-
-bb102:		; preds = %bb99
-	load i32 (...)*** %.pre-phi, align 4		; <i32 (...)**>:66 [#uses=1]
-	getelementptr i32 (...)** %66, i32 10		; <i32 (...)**>:67 [#uses=1]
-	load i32 (...)** %67, align 4		; <i32 (...)*>:68 [#uses=1]
-	bitcast i32 (...)* %68 to i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*		; <i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*>:69 [#uses=1]
-	invoke i32 %69( %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12 )
-			to label %bb104 unwind label %lpad		; <i32>:70 [#uses=1]
-
-bb104:		; preds = %bb102, %bb101
-	%__ret44.0 = phi i32 [ %64, %bb101 ], [ %70, %bb102 ]		; <i32> [#uses=1]
-	icmp eq i32 %__ret44.0, -1		; <i1>:71 [#uses=1]
-	br i1 %71, label %bb119, label %bb112
-
-bb112:		; preds = %bb104
-	load i8** %13, align 4		; <i8*>:72 [#uses=2]
-	load i8** %15, align 4		; <i8*>:73 [#uses=1]
-	icmp ult i8* %72, %73		; <i1>:74 [#uses=1]
-	br i1 %74, label %bb114, label %bb115
-
-bb114:		; preds = %bb112
-	load i8* %72, align 1		; <i8>:75 [#uses=1]
-	zext i8 %75 to i32		; <i32>:76 [#uses=1]
-	br label %bb119
-
-bb115:		; preds = %bb112
-	load i32 (...)*** %.pre-phi, align 4		; <i32 (...)**>:77 [#uses=1]
-	getelementptr i32 (...)** %77, i32 9		; <i32 (...)**>:78 [#uses=1]
-	load i32 (...)** %78, align 4		; <i32 (...)*>:79 [#uses=1]
-	bitcast i32 (...)* %79 to i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*		; <i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*>:80 [#uses=1]
-	invoke i32 %80( %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12 )
-			to label %bb119 unwind label %lpad		; <i32>:81 [#uses=1]
-
-bb119:		; preds = %bb115, %bb114, %bb104, %bb96, %bb95, %bb119.preheader
-	%__c79.0 = phi i32 [ %__c79.0.ph, %bb119.preheader ], [ %50, %bb95 ], [ %76, %bb114 ], [ %55, %bb96 ], [ -1, %bb104 ], [ %81, %bb115 ]		; <i32> [#uses=3]
-	%__s_addr.0 = phi i8* [ %__s, %bb119.preheader ], [ %41, %bb95 ], [ %57, %bb114 ], [ %41, %bb96 ], [ %57, %bb104 ], [ %57, %bb115 ]		; <i8*> [#uses=5]
-	load i32* %0, align 4		; <i32>:82 [#uses=2]
-	add i32 %82, 1		; <i32>:83 [#uses=2]
-	%.not = icmp sge i32 %83, %__n		; <i1> [#uses=1]
-	icmp eq i32 %__c79.0, -1		; <i1>:84 [#uses=3]
-	icmp eq i32 %__c79.0, %3		; <i1>:85 [#uses=2]
-	%or.cond = or i1 %84, %85		; <i1> [#uses=1]
-	%or.cond188 = or i1 %or.cond, %.not		; <i1> [#uses=1]
-	br i1 %or.cond188, label %bb141, label %bb84
-
-bb141:		; preds = %bb119
-	%.not194 = xor i1 %85, true		; <i1> [#uses=1]
-	%brmerge = or i1 %84, %.not194		; <i1> [#uses=1]
-	%.mux = select i1 %84, i32 2, i32 4		; <i32> [#uses=0]
-	br i1 %brmerge, label %bb162, label %bb146
-
-bb146:		; preds = %bb141
-	store i32 %83, i32* %0, align 4
-	load i8** %13, align 4		; <i8*>:86 [#uses=2]
-	load i8** %15, align 4		; <i8*>:87 [#uses=1]
-	icmp ult i8* %86, %87		; <i1>:88 [#uses=1]
-	br i1 %88, label %bb148, label %bb149
-
-bb148:		; preds = %bb146
-	getelementptr i8* %86, i32 1		; <i8*>:89 [#uses=1]
-	store i8* %89, i8** %13, align 4
-	ret %"struct.std::basic_istream<char,std::char_traits<char> >"* %this
-
-bb149:		; preds = %bb146
-	load i32 (...)*** %.pre-phi, align 4		; <i32 (...)**>:90 [#uses=1]
-	getelementptr i32 (...)** %90, i32 10		; <i32 (...)**>:91 [#uses=1]
-	load i32 (...)** %91, align 4		; <i32 (...)*>:92 [#uses=1]
-	bitcast i32 (...)* %92 to i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*		; <i32 (%"struct.std::basic_streambuf<char,std::char_traits<char> >"*)*>:93 [#uses=1]
-	invoke i32 %93( %"struct.std::basic_streambuf<char,std::char_traits<char> >"* %12 )
-			to label %bb162 unwind label %lpad		; <i32>:94 [#uses=0]
-
-bb162:		; preds = %bb149, %bb141, %entry
-	ret %"struct.std::basic_istream<char,std::char_traits<char> >"* %this
-
-lpad:		; preds = %bb149, %bb115, %bb102, %bb96, %bb82
-	%__s_addr.1 = phi i8* [ %__s, %bb82 ], [ %__s_addr.0, %bb149 ], [ %41, %bb96 ], [ %57, %bb102 ], [ %57, %bb115 ]		; <i8*> [#uses=0]
-	call void @__cxa_rethrow( ) noreturn 
-	unreachable
-}
-
-declare i8* @__cxa_begin_catch(i8*) nounwind 
-
-declare i8* @llvm.eh.exception() nounwind 
-
-declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind 
-
-declare void @__cxa_rethrow() noreturn 
-
-declare void @__cxa_end_catch()
-
-declare i32 @__gxx_personality_v0(...)
-
-declare void @_ZNSi6sentryC1ERSib(%"struct.std::basic_istream<char,std::char_traits<char> >::sentry"*, %"struct.std::basic_istream<char,std::char_traits<char> >"*, i8 zeroext )
-
-declare i8* @memchr(i8*, i32, i32) nounwind readonly 
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
-
-declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"struct.std::basic_ios<char,std::char_traits<char> >"*, i32)
-
-declare extern_weak i32 @pthread_once(i32*, void ()*)
-
-declare extern_weak i8* @pthread_getspecific(i32)
-
-declare extern_weak i32 @pthread_setspecific(i32, i8*)
-
-declare extern_weak i32 @pthread_create(i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)
-
-declare extern_weak i32 @pthread_cancel(i32)
-
-declare extern_weak i32 @pthread_mutex_lock(%struct.pthread_mutex_t*)
-
-declare extern_weak i32 @pthread_mutex_trylock(%struct.pthread_mutex_t*)
-
-declare extern_weak i32 @pthread_mutex_unlock(%struct.pthread_mutex_t*)
-
-declare extern_weak i32 @pthread_mutex_init(%struct.pthread_mutex_t*, %struct..0._11*)
-
-declare extern_weak i32 @pthread_key_create(i32*, void (i8*)*)
-
-declare extern_weak i32 @pthread_key_delete(i32)
-
-declare extern_weak i32 @pthread_mutexattr_init(%struct..0._11*)
-
-declare extern_weak i32 @pthread_mutexattr_settype(%struct..0._11*, i32)
-
-declare extern_weak i32 @pthread_mutexattr_destroy(%struct..0._11*)
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-08-07-AlignPadding1.c b/libclamav/c++/llvm/test/FrontendC/2008-08-07-AlignPadding1.c
deleted file mode 100644
index 776b105..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-08-07-AlignPadding1.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* RUN: %llvmgcc %s -S -o - -emit-llvm -O0 | grep {zeroinitializer.*zeroinitializer.*zeroinitializer.*zeroinitializer.*zeroinitializer.*zeroinitializer}
-
-The FE must generate padding here both at the end of each PyG_Head and
-between array elements.  Reduced from Python. */
-
-typedef union _gc_head {
-  struct {
-    union _gc_head *gc_next;
-    union _gc_head *gc_prev;
-    long gc_refs;
-  } gc;
-  int dummy __attribute__((aligned(16)));
-} PyGC_Head;
-
-struct gc_generation {
-  PyGC_Head head;
-  int threshold;
-  int count;
-};
-
-#define GEN_HEAD(n) (&generations[n].head)
-
-/* linked lists of container objects */
-static struct gc_generation generations[3] = {
-        /* PyGC_Head,                           threshold,      count */
-        {{{GEN_HEAD(0), GEN_HEAD(0), 0}},       700,            0},
-        {{{GEN_HEAD(1), GEN_HEAD(1), 0}},       10,             0},
-        {{{GEN_HEAD(2), GEN_HEAD(2), 0}},       10,             0},
-};
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-08-07-AlignPadding2.c b/libclamav/c++/llvm/test/FrontendC/2008-08-07-AlignPadding2.c
deleted file mode 100644
index ea13a0a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-08-07-AlignPadding2.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/* RUN: %llvmgcc %s -S -o - -emit-llvm -O0 | grep zeroinitializer | count 1
-
-The FE must not generate padding here between array elements.  PR 2533. */
-
-typedef struct {
- const char *name;
- int flags;
- union {
-   int x;
- } u;
-} OptionDef;
-
-const OptionDef options[] = {
- /* main options */
- { "a", 0, {3} },
- { "b", 0, {4} },
- { 0, },
-};
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-08-07-GEPIntToPtr.c b/libclamav/c++/llvm/test/FrontendC/2008-08-07-GEPIntToPtr.c
deleted file mode 100644
index 3ef3b66..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-08-07-GEPIntToPtr.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep {i8 1}
-// PR2603
-
-struct A {
-  char num_fields;
-};
-
-struct B {
-  char a, b[1];
-};
-
-const struct A Foo = {
-  (char *)(&( (struct B *)(16) )->b[0]) - (char *)(16)
-};
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-09-03-WeakAlias.c b/libclamav/c++/llvm/test/FrontendC/2008-09-03-WeakAlias.c
deleted file mode 100644
index 2e5f3da..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-09-03-WeakAlias.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S -O1 -o - %s | grep icmp
-// PR1678
-extern void B (void);
-static __typeof(B) A __attribute__ ((__weakref__("B")));
-int active (void)
-{
-  static void *const p = __extension__ (void *) &A;
-  return p != 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-10-13-FrontendCrash.c b/libclamav/c++/llvm/test/FrontendC/2008-10-13-FrontendCrash.c
deleted file mode 100644
index c9731e3..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-10-13-FrontendCrash.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-// PR2797
-
-unsigned int
-func_48 (signed char p_49)
-{
-  signed char l_340;
-  func_44 (1&((1 ^ 1 == (lshift_u_s (1)) != (l_340 < 1)) & 1L));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-10-30-ZeroPlacement.c b/libclamav/c++/llvm/test/FrontendC/2008-10-30-ZeroPlacement.c
deleted file mode 100644
index ec4ea94..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-10-30-ZeroPlacement.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -c %s
-// PR2987
-struct S2045
-{
-  unsigned short int a;
-  union { } b;
-  union __attribute__ ((aligned (4))) { } c[0];
-};
-struct S2045 s2045;
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-11-02-WeakAlias.c b/libclamav/c++/llvm/test/FrontendC/2008-11-02-WeakAlias.c
deleted file mode 100644
index 4bdc5c7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-11-02-WeakAlias.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc -S -emit-llvm -o - %s | grep weak
-// PR2691
-
-void init_IRQ(void) __attribute__((weak, alias("native_init_IRQ")));
-void native_init_IRQ(void) {}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-11-08-InstCombineSelect.c b/libclamav/c++/llvm/test/FrontendC/2008-11-08-InstCombineSelect.c
deleted file mode 100644
index 70c8d3a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-11-08-InstCombineSelect.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O2 -o -
-// PR3028
-
-int g_187;
-int g_204;
-int g_434;
-
-int func_89 (void)
-{
-  return 1;
-}
-
-void func_20 (int p_22)
-{
-  if (1 & p_22 | g_204 & (1 < g_187) - func_89 ())
-    g_434 = 1;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-11-11-AnnotateStructFieldAttribute.c b/libclamav/c++/llvm/test/FrontendC/2008-11-11-AnnotateStructFieldAttribute.c
deleted file mode 100644
index fa5713e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-11-11-AnnotateStructFieldAttribute.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -c -emit-llvm %s -o - | llvm-dis | grep llvm.ptr.annotation | count 3
-
-#include <stdio.h>
-
-/* Struct with element X being annotated */
-struct foo {
-    int X  __attribute__((annotate("StructAnnotation")));
-    int Y;
-    int Z;
-};
-
-
-void test(struct foo *F) {
-    F->X = 42;
-    F->Z = 1;
-    F->Y = F->X;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2008-12-23-AsmIntPointerTie.c b/libclamav/c++/llvm/test/FrontendC/2008-12-23-AsmIntPointerTie.c
deleted file mode 100644
index da2eda6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2008-12-23-AsmIntPointerTie.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O1 -o - 
-
-#include <stdint.h>
-
-int test(void *b) {
- intptr_t a;
- __asm__ __volatile__ ("%0 %1 " : "=r" (a): "0" (b));
-  return a;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-01-05-BlockInlining.c b/libclamav/c++/llvm/test/FrontendC/2009-01-05-BlockInlining.c
deleted file mode 100644
index 9692d8f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-01-05-BlockInlining.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O2 -o %t.s
-// RUN: grep {call i32 .*printf.*argc} %t.s | count 3
-// RUN: not grep __block_holder_tmp %t.s
-// rdar://5865221
-
-// All of these should be inlined equivalently into a single printf call.
-
-static int fun(int x) {
-	return x+1;
-}
-
-static int block(int x) {
-	return (^(int x){return x+1;})(x);
-}
-
-static void print(int result) {
-    printf("%d\n", result);
-}
-
-int main (int argc, const char * argv[]) {
-    int	x = argc-1;
-    print(fun(x));
-    print(block(x));
-    int	(^block_inline)(int) = ^(int x){return x+1;};
-    print(block_inline(x));
-    return 0;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-01-20-k8.c b/libclamav/c++/llvm/test/FrontendC/2009-01-20-k8.c
deleted file mode 100644
index d28302b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-01-20-k8.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc %s -S -march=k8
-// XFAIL: *
-// XTARGET: x86,i386,i686
-long double x;
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-01-21-InvalidIterator.c b/libclamav/c++/llvm/test/FrontendC/2009-01-21-InvalidIterator.c
deleted file mode 100644
index 310ea3b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-01-21-InvalidIterator.c
+++ /dev/null
@@ -1,74 +0,0 @@
-// RUN: %llvmgcc %s -S -g
-
-typedef long unsigned int size_t;
-typedef unsigned short int uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long int uint64_t;
-typedef uint16_t Elf64_Half;
-typedef uint32_t Elf64_Word;
-typedef uint64_t Elf64_Xword;
-typedef uint64_t Elf64_Addr;
-typedef uint64_t Elf64_Off;
-typedef struct
-{
-  Elf64_Word p_type;
-  Elf64_Off p_offset;
-  Elf64_Addr p_vaddr;
-  Elf64_Xword p_align;
-}
-Elf64_Phdr;
-struct dl_phdr_info
-{
-  const char *dlpi_name;
-  const Elf64_Phdr *dlpi_phdr;
-  Elf64_Half dlpi_phnum;
-  unsigned long long int dlpi_adds;
-};
-typedef unsigned _Unwind_Ptr;
-struct object
-{
-  union
-  {
-    const struct dwarf_fde *single;
-    struct dwarf_fde **array;
-    struct fde_vector *sort;
-  }
-  u;
-  union
-  {
-    struct
-    {
-    }
-    b;
-  }
-  s;
-  struct object *next;
-};
-typedef int sword;
-typedef unsigned int uword;
-struct dwarf_fde
-{
-  uword length;
-  sword CIE_delta;
-  unsigned char pc_begin[];
-};
-typedef struct dwarf_fde fde;
-struct unw_eh_callback_data
-{
-  const fde *ret;
-  struct frame_hdr_cache_element *link;
-}
-frame_hdr_cache[8];
-
-_Unwind_Ptr
-base_from_cb_data (struct unw_eh_callback_data *data)
-{
-}
-
-void
-_Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
-{
-  const unsigned char *p;
-  const struct unw_eh_frame_hdr *hdr;
-  struct object ob;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-02-13-zerosize-union-field-ppc.c b/libclamav/c++/llvm/test/FrontendC/2009-02-13-zerosize-union-field-ppc.c
deleted file mode 100644
index 947166d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-02-13-zerosize-union-field-ppc.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc %s -m32 -S -o - | grep {i32 32} | count 3
-// XFAIL: *
-// XTARGET: powerpc
-//  Every printf has 'i32 0' for the GEP of the string; no point counting those.
-typedef unsigned int Foo __attribute__((aligned(32)));
-typedef union{Foo:0;}a;
-typedef union{int x; Foo:0;}b;
-extern int printf(const char*, ...);
-main() {
-  printf("%ld\n", sizeof(a));
-  printf("%ld\n", __alignof__(a));
-  printf("%ld\n", sizeof(b));
-  printf("%ld\n", __alignof__(b));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-02-13-zerosize-union-field.c b/libclamav/c++/llvm/test/FrontendC/2009-02-13-zerosize-union-field.c
deleted file mode 100644
index ad33558..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-02-13-zerosize-union-field.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc %s -m32 -S -o - | grep {i32 1} | count 1
-// RUN: %llvmgcc %s -m32 -S -o - | grep {i32 4} | count 2
-// XFAIL: powerpc
-//  Every printf has 'i32 0' for the GEP of the string; no point counting those.
-typedef unsigned int Foo __attribute__((aligned(32)));
-typedef union{Foo:0;}a;
-typedef union{int x; Foo:0;}b;
-extern int printf(const char*, ...);
-main() {
-  printf("%ld\n", sizeof(a));
-  printf("%ld\n", __alignof__(a));
-  printf("%ld\n", sizeof(b));
-  printf("%ld\n", __alignof__(b));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-02-17-BitField-dbg.c b/libclamav/c++/llvm/test/FrontendC/2009-02-17-BitField-dbg.c
deleted file mode 100644
index 36ee2e6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-02-17-BitField-dbg.c
+++ /dev/null
@@ -1,13 +0,0 @@
-// Check bitfields.
-// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | \
-// RUN: llc --disable-fp-elim -o 2009-02-17-BitField-dbg.s
-// RUN: %compile_c 2009-02-17-BitField-dbg.s -o 2009-02-17-BitField-dbg.o
-// RUN: echo {ptype mystruct} > %t2
-// RUN: gdb -q -batch -n -x %t2 2009-02-17-BitField-dbg.o | \
-// RUN:   tee 2009-02-17-BitField-dbg.out | grep "int a : 4"
-
-struct {
-  int  a:4;
-  int  b:2;
-} mystruct;
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-03-01-MallocNoAlias.c b/libclamav/c++/llvm/test/FrontendC/2009-03-01-MallocNoAlias.c
deleted file mode 100644
index 22ff6cb..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-03-01-MallocNoAlias.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | grep noalias
-
-void * __attribute__ ((malloc)) foo (void) { return 0; }
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-03-08-ZeroEltStructCrash.c b/libclamav/c++/llvm/test/FrontendC/2009-03-08-ZeroEltStructCrash.c
deleted file mode 100644
index 454e0fb..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-03-08-ZeroEltStructCrash.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -S %s -o - 
-// PR3744
-struct Empty {};
-struct Union {
- union {
-   int zero_arr[0];
- } contents;
-};
-static inline void Foo(struct Union *u) {
- int *array = u->contents.zero_arr;
-}
-static void Bar(struct Union *u) {
- Foo(u);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-03-09-WeakDeclarations-1.c b/libclamav/c++/llvm/test/FrontendC/2009-03-09-WeakDeclarations-1.c
deleted file mode 100644
index 15b9801..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-03-09-WeakDeclarations-1.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// RUN: $llvmgcc $test -c -o /dev/null |& \
-// RUN: egrep {(14|15|22): warning:} |	\
-// RUN: wc -l | grep --quiet 3
-// XTARGET: darwin,linux
-// XFAIL: *
-// END.
-// Insist upon warnings for inappropriate weak attributes.
-// Note the line numbers (14|15|22) embedded in the check.
-
-// O.K.
-extern int ext_weak_import __attribute__ ((__weak_import__));
-
-// These are inappropriate, and should generate warnings:
-int decl_weak_import __attribute__ ((__weak_import__));
-int decl_initialized_weak_import __attribute__ ((__weak_import__)) = 13;
-
-// O.K.
-extern int ext_f(void) __attribute__ ((__weak_import__));
-
-// These are inappropriate, and should generate warnings:
-int def_f(void) __attribute__ ((__weak_import__));
-int __attribute__ ((__weak_import__)) decl_f(void) {return 0;};
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-03-13-dbg.c b/libclamav/c++/llvm/test/FrontendC/2009-03-13-dbg.c
deleted file mode 100644
index aa13af4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-03-13-dbg.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc %s -c -g -o /dev/null
-// XTARGET: darwin,linux
-// XFAIL: *
-void foo() {}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-04-22-UnknownSize.c b/libclamav/c++/llvm/test/FrontendC/2009-04-22-UnknownSize.c
deleted file mode 100644
index 2b90c91..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-04-22-UnknownSize.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: not %llvmgcc -O1 %s -S |& grep {error: storage size}
-// PR2958
-static struct foo s;
-struct foo *p = &s;
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-04-28-UnionArrayCrash.c b/libclamav/c++/llvm/test/FrontendC/2009-04-28-UnionArrayCrash.c
deleted file mode 100644
index 75851d0..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-04-28-UnionArrayCrash.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -S %s -o - 
-// PR4082
-union U {
-  int I;
-  double F;
-};
-
-union U arr[] = { { .I = 4 }, { .F = 123.} };
-union U *P = &arr[0];
-
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-05-04-EnumInreg.c b/libclamav/c++/llvm/test/FrontendC/2009-05-04-EnumInreg.c
deleted file mode 100644
index 6dbdb54..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-05-04-EnumInreg.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S -m32 -mregparm=3 %s -emit-llvm -o - | grep {inreg %action}
-// XFAIL: *
-// XTARGET: x86,i386,i686
-// PR3967
-
-enum kobject_action {
-        KOBJ_ADD,
-        KOBJ_REMOVE,
-        KOBJ_CHANGE,
-        KOBJ_MOVE,
-        KOBJ_ONLINE,
-        KOBJ_OFFLINE,
-        KOBJ_MAX
-};
-
-struct kobject;
-
-int kobject_uevent(struct kobject *kobj, enum kobject_action action) {}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-05-17-AlwaysInline.c b/libclamav/c++/llvm/test/FrontendC/2009-05-17-AlwaysInline.c
deleted file mode 100644
index a93fabe..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-05-17-AlwaysInline.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -S %s -O0 -o - -mllvm -disable-llvm-optzns | grep bar
-// Check that the gcc inliner is turned off.
-
-#include <stdio.h>
-static __inline__ __attribute__ ((always_inline))
-     int bar (int x)
-{
-  return 4;
-}
-
-void
-foo ()
-{
-  long long b = 1;
-  int Y = bar (4);
-  printf ("%d\n", Y);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-06-14-HighlyAligned.c b/libclamav/c++/llvm/test/FrontendC/2009-06-14-HighlyAligned.c
deleted file mode 100644
index 4678b75..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-06-14-HighlyAligned.c
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: %llvmgcc %s -S
-// PR4332
-
-static int highly_aligned __attribute__((aligned(4096)));
-
-int f() {
-	return highly_aligned;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-06-18-StaticInitTailPadPack.c b/libclamav/c++/llvm/test/FrontendC/2009-06-18-StaticInitTailPadPack.c
deleted file mode 100644
index 17f35c0..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-06-18-StaticInitTailPadPack.c
+++ /dev/null
@@ -1,26 +0,0 @@
-// RUN: %llvmgcc %s -S -o -
-// rdar://6983634
-
-  typedef struct A *Foo;
-#pragma pack(push, 2)
-  struct Bar {
-    Foo             f1;
-    unsigned short  f2;
-    float           f3;
-  };
-  struct Baz {
-    struct Bar   f1;
-    struct Bar   f2;
-  };
-  struct Qux {
-    unsigned long   f1;
-    struct Baz             f2;
-  };
-extern const struct Qux Bork;
-const struct Qux Bork = {
-  0,
-  {
-    {0},
-    {0}
-  }
-};
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-07-14-VoidPtr.c b/libclamav/c++/llvm/test/FrontendC/2009-07-14-VoidPtr.c
deleted file mode 100644
index 8001c56..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-07-14-VoidPtr.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o -
-// PR4556
-
-extern void foo;
-void *bar = &foo;
-
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-07-15-pad-wchar_t-array.c b/libclamav/c++/llvm/test/FrontendC/2009-07-15-pad-wchar_t-array.c
deleted file mode 100644
index 41bdef2..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-07-15-pad-wchar_t-array.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | llvm-as -o /dev/null
-
-#include <stddef.h>
-signed short _iodbcdm_sqlerror( )
-{
-  wchar_t _sqlState[6] = { L"\0" };
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-07-17-VoidParameter.c b/libclamav/c++/llvm/test/FrontendC/2009-07-17-VoidParameter.c
deleted file mode 100644
index d576952..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-07-17-VoidParameter.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: %llvmgcc -S %s -o -
-// PR4214
-typedef void vt;
-void (*func_ptr)(vt my_vt);
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-07-22-StructLayout.c b/libclamav/c++/llvm/test/FrontendC/2009-07-22-StructLayout.c
deleted file mode 100644
index 74904da..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-07-22-StructLayout.c
+++ /dev/null
@@ -1,34 +0,0 @@
-// RUN: %llvmgcc %s -S -o /dev/null
-// PR4590
-
-typedef unsigned char __u8;
-typedef unsigned int __le32;
-typedef unsigned int __u32;
-typedef unsigned short __le16;
-typedef unsigned short __u16;
-
-struct usb_cdc_ether_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __u8 iMACAddress;
- __le32 bmEthernetStatistics;
- __le16 wMaxSegmentSize;
- __le16 wNumberMCFilters;
- __u8 bNumberPowerFilters;
-} __attribute__ ((packed));
-
-
-static struct usb_cdc_ether_desc ecm_desc __attribute__ ((__section__(".init.data"))) = {
- .bLength = sizeof ecm_desc,
- .bDescriptorType = ((0x01 << 5) | 0x04),
- .bDescriptorSubType = 0x0f,
-
-
-
- .bmEthernetStatistics = (( __le32)(__u32)(0)),
- .wMaxSegmentSize = (( __le16)(__u16)(1514)),
- .wNumberMCFilters = (( __le16)(__u16)(0)),
- .bNumberPowerFilters = 0,
-};
diff --git a/libclamav/c++/llvm/test/FrontendC/2009-08-11-AsmBlocksComplexJumpTarget.c b/libclamav/c++/llvm/test/FrontendC/2009-08-11-AsmBlocksComplexJumpTarget.c
deleted file mode 100644
index e141c9a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/2009-08-11-AsmBlocksComplexJumpTarget.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc %s -fasm-blocks -S -o - | grep {\\\*1192}
-// Complicated expression as jump target
-// XFAIL: *
-// XTARGET: x86,i386,i686
-
-asm void Method3()
-{
-    mov   eax,[esp+4]           
-    jmp   [eax+(299-1)*4]       
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/Atomics-no64bit.c b/libclamav/c++/llvm/test/FrontendC/Atomics-no64bit.c
deleted file mode 100644
index 12fb75a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/Atomics-no64bit.c
+++ /dev/null
@@ -1,190 +0,0 @@
-// Test frontend handling of __sync builtins.
-// Modified from a gcc testcase.
-// RUN: %llvmgcc -S %s -o - | grep atomic | count 150
-// RUN: %llvmgcc -S %s -o - | grep p0i8 | count 50
-// RUN: %llvmgcc -S %s -o - | grep p0i16 | count 50
-// RUN: %llvmgcc -S %s -o - | grep p0i32 | count 50
-// RUN: %llvmgcc -S %s -o - | grep volatile | count 6
-
-// Currently this is implemented only for Alpha, X86, PowerPC.
-// Add your target here if it doesn't work.
-// This version of the test does not include long long.
-// XFAIL: sparc|arm
-
-signed char sc;
-unsigned char uc;
-signed short ss;
-unsigned short us;
-signed int si;
-unsigned int ui;
-
-void test_op_ignore (void)
-{
-  (void) __sync_fetch_and_add (&sc, 1);
-  (void) __sync_fetch_and_add (&uc, 1);
-  (void) __sync_fetch_and_add (&ss, 1);
-  (void) __sync_fetch_and_add (&us, 1);
-  (void) __sync_fetch_and_add (&si, 1);
-  (void) __sync_fetch_and_add (&ui, 1);
-
-  (void) __sync_fetch_and_sub (&sc, 1);
-  (void) __sync_fetch_and_sub (&uc, 1);
-  (void) __sync_fetch_and_sub (&ss, 1);
-  (void) __sync_fetch_and_sub (&us, 1);
-  (void) __sync_fetch_and_sub (&si, 1);
-  (void) __sync_fetch_and_sub (&ui, 1);
-
-  (void) __sync_fetch_and_or (&sc, 1);
-  (void) __sync_fetch_and_or (&uc, 1);
-  (void) __sync_fetch_and_or (&ss, 1);
-  (void) __sync_fetch_and_or (&us, 1);
-  (void) __sync_fetch_and_or (&si, 1);
-  (void) __sync_fetch_and_or (&ui, 1);
-
-  (void) __sync_fetch_and_xor (&sc, 1);
-  (void) __sync_fetch_and_xor (&uc, 1);
-  (void) __sync_fetch_and_xor (&ss, 1);
-  (void) __sync_fetch_and_xor (&us, 1);
-  (void) __sync_fetch_and_xor (&si, 1);
-  (void) __sync_fetch_and_xor (&ui, 1);
-
-  (void) __sync_fetch_and_and (&sc, 1);
-  (void) __sync_fetch_and_and (&uc, 1);
-  (void) __sync_fetch_and_and (&ss, 1);
-  (void) __sync_fetch_and_and (&us, 1);
-  (void) __sync_fetch_and_and (&si, 1);
-  (void) __sync_fetch_and_and (&ui, 1);
-
-  (void) __sync_fetch_and_nand (&sc, 1);
-  (void) __sync_fetch_and_nand (&uc, 1);
-  (void) __sync_fetch_and_nand (&ss, 1);
-  (void) __sync_fetch_and_nand (&us, 1);
-  (void) __sync_fetch_and_nand (&si, 1);
-  (void) __sync_fetch_and_nand (&ui, 1);
-}
-
-void test_fetch_and_op (void)
-{
-  sc = __sync_fetch_and_add (&sc, 11);
-  uc = __sync_fetch_and_add (&uc, 11);
-  ss = __sync_fetch_and_add (&ss, 11);
-  us = __sync_fetch_and_add (&us, 11);
-  si = __sync_fetch_and_add (&si, 11);
-  ui = __sync_fetch_and_add (&ui, 11);
-
-  sc = __sync_fetch_and_sub (&sc, 11);
-  uc = __sync_fetch_and_sub (&uc, 11);
-  ss = __sync_fetch_and_sub (&ss, 11);
-  us = __sync_fetch_and_sub (&us, 11);
-  si = __sync_fetch_and_sub (&si, 11);
-  ui = __sync_fetch_and_sub (&ui, 11);
-
-  sc = __sync_fetch_and_or (&sc, 11);
-  uc = __sync_fetch_and_or (&uc, 11);
-  ss = __sync_fetch_and_or (&ss, 11);
-  us = __sync_fetch_and_or (&us, 11);
-  si = __sync_fetch_and_or (&si, 11);
-  ui = __sync_fetch_and_or (&ui, 11);
-
-  sc = __sync_fetch_and_xor (&sc, 11);
-  uc = __sync_fetch_and_xor (&uc, 11);
-  ss = __sync_fetch_and_xor (&ss, 11);
-  us = __sync_fetch_and_xor (&us, 11);
-  si = __sync_fetch_and_xor (&si, 11);
-  ui = __sync_fetch_and_xor (&ui, 11);
-
-  sc = __sync_fetch_and_and (&sc, 11);
-  uc = __sync_fetch_and_and (&uc, 11);
-  ss = __sync_fetch_and_and (&ss, 11);
-  us = __sync_fetch_and_and (&us, 11);
-  si = __sync_fetch_and_and (&si, 11);
-  ui = __sync_fetch_and_and (&ui, 11);
-
-  sc = __sync_fetch_and_nand (&sc, 11);
-  uc = __sync_fetch_and_nand (&uc, 11);
-  ss = __sync_fetch_and_nand (&ss, 11);
-  us = __sync_fetch_and_nand (&us, 11);
-  si = __sync_fetch_and_nand (&si, 11);
-  ui = __sync_fetch_and_nand (&ui, 11);
-}
-
-void test_op_and_fetch (void)
-{
-  sc = __sync_add_and_fetch (&sc, uc);
-  uc = __sync_add_and_fetch (&uc, uc);
-  ss = __sync_add_and_fetch (&ss, uc);
-  us = __sync_add_and_fetch (&us, uc);
-  si = __sync_add_and_fetch (&si, uc);
-  ui = __sync_add_and_fetch (&ui, uc);
-
-  sc = __sync_sub_and_fetch (&sc, uc);
-  uc = __sync_sub_and_fetch (&uc, uc);
-  ss = __sync_sub_and_fetch (&ss, uc);
-  us = __sync_sub_and_fetch (&us, uc);
-  si = __sync_sub_and_fetch (&si, uc);
-  ui = __sync_sub_and_fetch (&ui, uc);
-
-  sc = __sync_or_and_fetch (&sc, uc);
-  uc = __sync_or_and_fetch (&uc, uc);
-  ss = __sync_or_and_fetch (&ss, uc);
-  us = __sync_or_and_fetch (&us, uc);
-  si = __sync_or_and_fetch (&si, uc);
-  ui = __sync_or_and_fetch (&ui, uc);
-
-  sc = __sync_xor_and_fetch (&sc, uc);
-  uc = __sync_xor_and_fetch (&uc, uc);
-  ss = __sync_xor_and_fetch (&ss, uc);
-  us = __sync_xor_and_fetch (&us, uc);
-  si = __sync_xor_and_fetch (&si, uc);
-  ui = __sync_xor_and_fetch (&ui, uc);
-
-  sc = __sync_and_and_fetch (&sc, uc);
-  uc = __sync_and_and_fetch (&uc, uc);
-  ss = __sync_and_and_fetch (&ss, uc);
-  us = __sync_and_and_fetch (&us, uc);
-  si = __sync_and_and_fetch (&si, uc);
-  ui = __sync_and_and_fetch (&ui, uc);
-
-  sc = __sync_nand_and_fetch (&sc, uc);
-  uc = __sync_nand_and_fetch (&uc, uc);
-  ss = __sync_nand_and_fetch (&ss, uc);
-  us = __sync_nand_and_fetch (&us, uc);
-  si = __sync_nand_and_fetch (&si, uc);
-  ui = __sync_nand_and_fetch (&ui, uc);
-}
-
-void test_compare_and_swap (void)
-{
-  sc = __sync_val_compare_and_swap (&sc, uc, sc);
-  uc = __sync_val_compare_and_swap (&uc, uc, sc);
-  ss = __sync_val_compare_and_swap (&ss, uc, sc);
-  us = __sync_val_compare_and_swap (&us, uc, sc);
-  si = __sync_val_compare_and_swap (&si, uc, sc);
-  ui = __sync_val_compare_and_swap (&ui, uc, sc);
-
-  ui = __sync_bool_compare_and_swap (&sc, uc, sc);
-  ui = __sync_bool_compare_and_swap (&uc, uc, sc);
-  ui = __sync_bool_compare_and_swap (&ss, uc, sc);
-  ui = __sync_bool_compare_and_swap (&us, uc, sc);
-  ui = __sync_bool_compare_and_swap (&si, uc, sc);
-  ui = __sync_bool_compare_and_swap (&ui, uc, sc);
-}
-
-void test_lock (void)
-{
-  sc = __sync_lock_test_and_set (&sc, 1);
-  uc = __sync_lock_test_and_set (&uc, 1);
-  ss = __sync_lock_test_and_set (&ss, 1);
-  us = __sync_lock_test_and_set (&us, 1);
-  si = __sync_lock_test_and_set (&si, 1);
-  ui = __sync_lock_test_and_set (&ui, 1);
-
-  __sync_synchronize ();
-
-  __sync_lock_release (&sc);
-  __sync_lock_release (&uc);
-  __sync_lock_release (&ss);
-  __sync_lock_release (&us);
-  __sync_lock_release (&si);
-  __sync_lock_release (&ui);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/Atomics.c b/libclamav/c++/llvm/test/FrontendC/Atomics.c
deleted file mode 100644
index 2aed55c..0000000
--- a/libclamav/c++/llvm/test/FrontendC/Atomics.c
+++ /dev/null
@@ -1,236 +0,0 @@
-// Test frontend handling of __sync builtins.
-// Modified from a gcc testcase.
-// RUN: %llvmgcc -S %s -o - | grep atomic | count 200
-// RUN: %llvmgcc -S %s -o - | grep p0i8 | count 50
-// RUN: %llvmgcc -S %s -o - | grep p0i16 | count 50
-// RUN: %llvmgcc -S %s -o - | grep p0i32 | count 50
-// RUN: %llvmgcc -S %s -o - | grep volatile | count 8
-
-// Currently this is implemented only for Alpha, X86, PowerPC.
-// Add your target here if it doesn't work.
-// PPC32 does not translate the long long variants, so fails this test.
-// XFAIL: sparc|arm|powerpc
-
-signed char sc;
-unsigned char uc;
-signed short ss;
-unsigned short us;
-signed int si;
-unsigned int ui;
-signed long long sll;
-unsigned long long ull;
-
-void test_op_ignore (void)
-{
-  (void) __sync_fetch_and_add (&sc, 1);
-  (void) __sync_fetch_and_add (&uc, 1);
-  (void) __sync_fetch_and_add (&ss, 1);
-  (void) __sync_fetch_and_add (&us, 1);
-  (void) __sync_fetch_and_add (&si, 1);
-  (void) __sync_fetch_and_add (&ui, 1);
-  (void) __sync_fetch_and_add (&sll, 1);
-  (void) __sync_fetch_and_add (&ull, 1);
-
-  (void) __sync_fetch_and_sub (&sc, 1);
-  (void) __sync_fetch_and_sub (&uc, 1);
-  (void) __sync_fetch_and_sub (&ss, 1);
-  (void) __sync_fetch_and_sub (&us, 1);
-  (void) __sync_fetch_and_sub (&si, 1);
-  (void) __sync_fetch_and_sub (&ui, 1);
-  (void) __sync_fetch_and_sub (&sll, 1);
-  (void) __sync_fetch_and_sub (&ull, 1);
-
-  (void) __sync_fetch_and_or (&sc, 1);
-  (void) __sync_fetch_and_or (&uc, 1);
-  (void) __sync_fetch_and_or (&ss, 1);
-  (void) __sync_fetch_and_or (&us, 1);
-  (void) __sync_fetch_and_or (&si, 1);
-  (void) __sync_fetch_and_or (&ui, 1);
-  (void) __sync_fetch_and_or (&sll, 1);
-  (void) __sync_fetch_and_or (&ull, 1);
-
-  (void) __sync_fetch_and_xor (&sc, 1);
-  (void) __sync_fetch_and_xor (&uc, 1);
-  (void) __sync_fetch_and_xor (&ss, 1);
-  (void) __sync_fetch_and_xor (&us, 1);
-  (void) __sync_fetch_and_xor (&si, 1);
-  (void) __sync_fetch_and_xor (&ui, 1);
-  (void) __sync_fetch_and_xor (&sll, 1);
-  (void) __sync_fetch_and_xor (&ull, 1);
-
-  (void) __sync_fetch_and_and (&sc, 1);
-  (void) __sync_fetch_and_and (&uc, 1);
-  (void) __sync_fetch_and_and (&ss, 1);
-  (void) __sync_fetch_and_and (&us, 1);
-  (void) __sync_fetch_and_and (&si, 1);
-  (void) __sync_fetch_and_and (&ui, 1);
-  (void) __sync_fetch_and_and (&sll, 1);
-  (void) __sync_fetch_and_and (&ull, 1);
-
-  (void) __sync_fetch_and_nand (&sc, 1);
-  (void) __sync_fetch_and_nand (&uc, 1);
-  (void) __sync_fetch_and_nand (&ss, 1);
-  (void) __sync_fetch_and_nand (&us, 1);
-  (void) __sync_fetch_and_nand (&si, 1);
-  (void) __sync_fetch_and_nand (&ui, 1);
-  (void) __sync_fetch_and_nand (&sll, 1);
-  (void) __sync_fetch_and_nand (&ull, 1);
-}
-
-void test_fetch_and_op (void)
-{
-  sc = __sync_fetch_and_add (&sc, 11);
-  uc = __sync_fetch_and_add (&uc, 11);
-  ss = __sync_fetch_and_add (&ss, 11);
-  us = __sync_fetch_and_add (&us, 11);
-  si = __sync_fetch_and_add (&si, 11);
-  ui = __sync_fetch_and_add (&ui, 11);
-  sll = __sync_fetch_and_add (&sll, 11);
-  ull = __sync_fetch_and_add (&ull, 11);
-
-  sc = __sync_fetch_and_sub (&sc, 11);
-  uc = __sync_fetch_and_sub (&uc, 11);
-  ss = __sync_fetch_and_sub (&ss, 11);
-  us = __sync_fetch_and_sub (&us, 11);
-  si = __sync_fetch_and_sub (&si, 11);
-  ui = __sync_fetch_and_sub (&ui, 11);
-  sll = __sync_fetch_and_sub (&sll, 11);
-  ull = __sync_fetch_and_sub (&ull, 11);
-
-  sc = __sync_fetch_and_or (&sc, 11);
-  uc = __sync_fetch_and_or (&uc, 11);
-  ss = __sync_fetch_and_or (&ss, 11);
-  us = __sync_fetch_and_or (&us, 11);
-  si = __sync_fetch_and_or (&si, 11);
-  ui = __sync_fetch_and_or (&ui, 11);
-  sll = __sync_fetch_and_or (&sll, 11);
-  ull = __sync_fetch_and_or (&ull, 11);
-
-  sc = __sync_fetch_and_xor (&sc, 11);
-  uc = __sync_fetch_and_xor (&uc, 11);
-  ss = __sync_fetch_and_xor (&ss, 11);
-  us = __sync_fetch_and_xor (&us, 11);
-  si = __sync_fetch_and_xor (&si, 11);
-  ui = __sync_fetch_and_xor (&ui, 11);
-  sll = __sync_fetch_and_xor (&sll, 11);
-  ull = __sync_fetch_and_xor (&ull, 11);
-
-  sc = __sync_fetch_and_and (&sc, 11);
-  uc = __sync_fetch_and_and (&uc, 11);
-  ss = __sync_fetch_and_and (&ss, 11);
-  us = __sync_fetch_and_and (&us, 11);
-  si = __sync_fetch_and_and (&si, 11);
-  ui = __sync_fetch_and_and (&ui, 11);
-  sll = __sync_fetch_and_and (&sll, 11);
-  ull = __sync_fetch_and_and (&ull, 11);
-
-  sc = __sync_fetch_and_nand (&sc, 11);
-  uc = __sync_fetch_and_nand (&uc, 11);
-  ss = __sync_fetch_and_nand (&ss, 11);
-  us = __sync_fetch_and_nand (&us, 11);
-  si = __sync_fetch_and_nand (&si, 11);
-  ui = __sync_fetch_and_nand (&ui, 11);
-  sll = __sync_fetch_and_nand (&sll, 11);
-  ull = __sync_fetch_and_nand (&ull, 11);
-}
-
-void test_op_and_fetch (void)
-{
-  sc = __sync_add_and_fetch (&sc, uc);
-  uc = __sync_add_and_fetch (&uc, uc);
-  ss = __sync_add_and_fetch (&ss, uc);
-  us = __sync_add_and_fetch (&us, uc);
-  si = __sync_add_and_fetch (&si, uc);
-  ui = __sync_add_and_fetch (&ui, uc);
-  sll = __sync_add_and_fetch (&sll, uc);
-  ull = __sync_add_and_fetch (&ull, uc);
-
-  sc = __sync_sub_and_fetch (&sc, uc);
-  uc = __sync_sub_and_fetch (&uc, uc);
-  ss = __sync_sub_and_fetch (&ss, uc);
-  us = __sync_sub_and_fetch (&us, uc);
-  si = __sync_sub_and_fetch (&si, uc);
-  ui = __sync_sub_and_fetch (&ui, uc);
-  sll = __sync_sub_and_fetch (&sll, uc);
-  ull = __sync_sub_and_fetch (&ull, uc);
-
-  sc = __sync_or_and_fetch (&sc, uc);
-  uc = __sync_or_and_fetch (&uc, uc);
-  ss = __sync_or_and_fetch (&ss, uc);
-  us = __sync_or_and_fetch (&us, uc);
-  si = __sync_or_and_fetch (&si, uc);
-  ui = __sync_or_and_fetch (&ui, uc);
-  sll = __sync_or_and_fetch (&sll, uc);
-  ull = __sync_or_and_fetch (&ull, uc);
-
-  sc = __sync_xor_and_fetch (&sc, uc);
-  uc = __sync_xor_and_fetch (&uc, uc);
-  ss = __sync_xor_and_fetch (&ss, uc);
-  us = __sync_xor_and_fetch (&us, uc);
-  si = __sync_xor_and_fetch (&si, uc);
-  ui = __sync_xor_and_fetch (&ui, uc);
-  sll = __sync_xor_and_fetch (&sll, uc);
-  ull = __sync_xor_and_fetch (&ull, uc);
-
-  sc = __sync_and_and_fetch (&sc, uc);
-  uc = __sync_and_and_fetch (&uc, uc);
-  ss = __sync_and_and_fetch (&ss, uc);
-  us = __sync_and_and_fetch (&us, uc);
-  si = __sync_and_and_fetch (&si, uc);
-  ui = __sync_and_and_fetch (&ui, uc);
-  sll = __sync_and_and_fetch (&sll, uc);
-  ull = __sync_and_and_fetch (&ull, uc);
-
-  sc = __sync_nand_and_fetch (&sc, uc);
-  uc = __sync_nand_and_fetch (&uc, uc);
-  ss = __sync_nand_and_fetch (&ss, uc);
-  us = __sync_nand_and_fetch (&us, uc);
-  si = __sync_nand_and_fetch (&si, uc);
-  ui = __sync_nand_and_fetch (&ui, uc);
-  sll = __sync_nand_and_fetch (&sll, uc);
-  ull = __sync_nand_and_fetch (&ull, uc);
-}
-
-void test_compare_and_swap (void)
-{
-  sc = __sync_val_compare_and_swap (&sc, uc, sc);
-  uc = __sync_val_compare_and_swap (&uc, uc, sc);
-  ss = __sync_val_compare_and_swap (&ss, uc, sc);
-  us = __sync_val_compare_and_swap (&us, uc, sc);
-  si = __sync_val_compare_and_swap (&si, uc, sc);
-  ui = __sync_val_compare_and_swap (&ui, uc, sc);
-  sll = __sync_val_compare_and_swap (&sll, uc, sc);
-  ull = __sync_val_compare_and_swap (&ull, uc, sc);
-
-  ui = __sync_bool_compare_and_swap (&sc, uc, sc);
-  ui = __sync_bool_compare_and_swap (&uc, uc, sc);
-  ui = __sync_bool_compare_and_swap (&ss, uc, sc);
-  ui = __sync_bool_compare_and_swap (&us, uc, sc);
-  ui = __sync_bool_compare_and_swap (&si, uc, sc);
-  ui = __sync_bool_compare_and_swap (&ui, uc, sc);
-  ui = __sync_bool_compare_and_swap (&sll, uc, sc);
-  ui = __sync_bool_compare_and_swap (&ull, uc, sc);
-}
-
-void test_lock (void)
-{
-  sc = __sync_lock_test_and_set (&sc, 1);
-  uc = __sync_lock_test_and_set (&uc, 1);
-  ss = __sync_lock_test_and_set (&ss, 1);
-  us = __sync_lock_test_and_set (&us, 1);
-  si = __sync_lock_test_and_set (&si, 1);
-  ui = __sync_lock_test_and_set (&ui, 1);
-  sll = __sync_lock_test_and_set (&sll, 1);
-  ull = __sync_lock_test_and_set (&ull, 1);
-
-  __sync_synchronize ();
-
-  __sync_lock_release (&sc);
-  __sync_lock_release (&uc);
-  __sync_lock_release (&ss);
-  __sync_lock_release (&us);
-  __sync_lock_release (&si);
-  __sync_lock_release (&ui);
-  __sync_lock_release (&sll);
-  __sync_lock_release (&ull);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/BasicInstrs.c b/libclamav/c++/llvm/test/FrontendC/BasicInstrs.c
deleted file mode 100644
index 812b49d..0000000
--- a/libclamav/c++/llvm/test/FrontendC/BasicInstrs.c
+++ /dev/null
@@ -1,26 +0,0 @@
-// This file can be used to see what a native C compiler is generating for a
-// variety of interesting operations.
-//
-// RUN: %llvmgcc -S %s -o - | llvm-as | llc
-
-unsigned int udiv(unsigned int X, unsigned int Y) {
-  return X/Y;
-}
-int sdiv(int X, int Y) {
-  return X/Y;
-}
-unsigned int urem(unsigned int X, unsigned int Y) {
-  return X%Y;
-}
-int srem(int X, int Y) {
-  return X%Y;
-}
-
-_Bool setlt(int X, int Y) {
-  return X < Y;
-}
-
-_Bool setgt(int X, int Y) {
-  return X > Y;
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/always-inline.c b/libclamav/c++/llvm/test/FrontendC/always-inline.c
deleted file mode 100644
index 22f6c7a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/always-inline.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep call | not grep foo
-
-void bar() {
-}
-
-inline void __attribute__((__always_inline__)) foo() {
-  bar();
-}
-
-void i_want_bar() {
-  foo();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/attribute_constructor.c b/libclamav/c++/llvm/test/FrontendC/attribute_constructor.c
deleted file mode 100644
index b2f7c9b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/attribute_constructor.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc %s -c -o - | llvm-dis | grep llvm.global_ctors
-
-void foo() __attribute__((constructor));
-void foo() {
-  bar();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/block-copy.c b/libclamav/c++/llvm/test/FrontendC/block-copy.c
deleted file mode 100644
index a53732e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/block-copy.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* RUN: %llvmgcc %s -S -o - -emit-llvm -O3 | grep {call.*memcpy}
-
- This should compile into a memcpy from a global, not 128 stores. */
-
-
-
-void foo();
-
-float bar() {
-	float lookupTable[] = {-1,-1,-1,0, -1,-1,0,-1, -1,-1,0,1, -1,-1,1,0,
-						   -1,0,-1,-1, -1,0,-1,1, -1,0,1,-1, -1,0,1,1,
-						   -1,1,-1,0, -1,1,0,-1, -1,1,0,1, -1,1,1,0,
-						   0,-1,-1,-1, 0,-1,-1,1, 0,-1,1,-1, 0,-1,1,1,
-						   1,-1,-1,0, 1,-1,0,-1, 1,-1,0,1, 1,-1,1,0,
-						   1,0,-1,-1, 1,0,-1,1, 1,0,1,-1, 1,0,1,1,
-						   1,1,-1,0, 1,1,0,-1, 1,1,0,1, 1,1,1,0,
-						   0,1,-1,-1, 0,1,-1,1, 0,1,1,-1, 0,1,1,1};
-   foo(lookupTable);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/dg.exp b/libclamav/c++/llvm/test/FrontendC/dg.exp
deleted file mode 100644
index a9be28a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if [ llvm_gcc_supports c ] then {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/exact-div-expr.c b/libclamav/c++/llvm/test/FrontendC/exact-div-expr.c
deleted file mode 100644
index 9dce922..0000000
--- a/libclamav/c++/llvm/test/FrontendC/exact-div-expr.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S %s -o - -O1 | grep ashr
-// RUN: %llvmgcc -S %s -o - -O1 | not grep sdiv
-
-long long test(int *A, int *B) {
-  return A-B;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/extern-weak.c b/libclamav/c++/llvm/test/FrontendC/extern-weak.c
deleted file mode 100644
index f31a6ad..0000000
--- a/libclamav/c++/llvm/test/FrontendC/extern-weak.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep extern_weak
-// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | llvm-as | llc
-
-#if !defined(__linux__) && !defined(__FreeBSD__) && \
-    !defined(__OpenBSD__) && !defined(__CYGWIN__) && !defined(__DragonFly__)
-void foo() __attribute__((weak_import));
-#else
-void foo() __attribute__((weak));
-#endif
-
-void bar() { foo(); }
-
diff --git a/libclamav/c++/llvm/test/FrontendC/fp-logical.c b/libclamav/c++/llvm/test/FrontendC/fp-logical.c
deleted file mode 100644
index 60404f6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/fp-logical.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgcc %s -S -o - | grep bitcast | count 14
-
-typedef float vFloat __attribute__ ((__vector_size__ (16)));
-typedef unsigned int vUInt32 __attribute__ ((__vector_size__ (16)));
-void foo(vFloat *X) {
-  vFloat NoSignBit = (vFloat) ~ (vUInt32) (vFloat) { -0.f, -0.f, -0.f, -0.f };
-  vFloat ExtremeValue = *X & NoSignBit;
-  *X = ExtremeValue;
-}
-
-void bar(vFloat *X) {
-  vFloat NoSignBit = (vFloat) ~ (vUInt32) (vFloat) { -0.f, -0.f, -0.f, -0.f };
-  vFloat ExtremeValue = *X & ~NoSignBit;
-  *X = ExtremeValue;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/funccall.c b/libclamav/c++/llvm/test/FrontendC/funccall.c
deleted file mode 100644
index 9735e34..0000000
--- a/libclamav/c++/llvm/test/FrontendC/funccall.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-static int q;
-
-void foo() {
-  int t = q;
-  q = t + 1;
-}
-int main() {
-  q = 0;
-  foo();
-  q = q - 1;
-
-  return q;
-}
-
-// This is the source that corresponds to funccall.ll
-// RUN: echo foo
diff --git a/libclamav/c++/llvm/test/FrontendC/hidden-visibility.c b/libclamav/c++/llvm/test/FrontendC/hidden-visibility.c
deleted file mode 100644
index fc2ae44..0000000
--- a/libclamav/c++/llvm/test/FrontendC/hidden-visibility.c
+++ /dev/null
@@ -1,3 +0,0 @@
-// RUN: %llvmgcc %s -emit-llvm -S -o - | grep {hidden global}
-
-int X __attribute__ ((__visibility__ ("hidden"))) = 123;
diff --git a/libclamav/c++/llvm/test/FrontendC/implicit-arg.c b/libclamav/c++/llvm/test/FrontendC/implicit-arg.c
deleted file mode 100644
index 971245f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/implicit-arg.c
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o -
-// RUN: %llvmgcc %s -S -emit-llvm -O1 -o -
-// rdar://6518089
-
-static int bar();
-void foo() {
-  int a = bar();
-}
-int bar(unsigned a) {
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/inline-asm-mrv.c b/libclamav/c++/llvm/test/FrontendC/inline-asm-mrv.c
deleted file mode 100644
index 6d1df67..0000000
--- a/libclamav/c++/llvm/test/FrontendC/inline-asm-mrv.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -o - -O | not grep alloca
-// PR2094
-
-int sad16_sse2(void *v, unsigned char *blk2, unsigned char *blk1,
-               int stride, int h) {
-    int ret;
-    asm volatile( "%0 %1 %2 %3"
-        : "+r" (h), "+r" (blk1), "+r" (blk2)
-        : "r" ((long)stride));
-    asm volatile("set %0 %1" : "=r"(ret) : "r"(blk1));
-    return ret;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/libcalls-d.c b/libclamav/c++/llvm/test/FrontendC/libcalls-d.c
deleted file mode 100644
index 126866a..0000000
--- a/libclamav/c++/llvm/test/FrontendC/libcalls-d.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// llvm-gcc -O1+ should run simplify libcalls, O0 shouldn't
-// and -fno-builtins shouldn't.
-// -fno-math-errno should emit an llvm intrinsic, -fmath-errno should not.
-// RUN: %llvmgcc %s -S -fno-math-errno -emit-llvm -O0 -o - | grep {call.*exp2\\.f64}
-// RUN: %llvmgcc %s -S -fmath-errno -emit-llvm -O0 -o - | grep {call.*exp2}
-// RUN: %llvmgcc %s -S -emit-llvm -O1 -o - | grep {call.*ldexp}
-// RUN: %llvmgcc %s -S -emit-llvm -O3 -fno-builtin -o - | grep {call.*exp2}
-
-double exp2(double);
-
-double t4(unsigned char x) {
-  return exp2(x);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/libcalls-ld.c b/libclamav/c++/llvm/test/FrontendC/libcalls-ld.c
deleted file mode 100644
index 6533eb8..0000000
--- a/libclamav/c++/llvm/test/FrontendC/libcalls-ld.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// llvm-gcc -O1+ should run simplify libcalls, O0 shouldn't
-// and -fno-builtins shouldn't.
-// -fno-math-errno should emit an llvm intrinsic, -fmath-errno should not.
-// RUN: %llvmgcc %s -S -fno-math-errno -emit-llvm -O0 -o - | grep {call.*exp2\\..*f}
-// RUN: %llvmgcc %s -S -fmath-errno -emit-llvm -O0 -o - | grep {call.*exp2l}
-// RUN: %llvmgcc %s -S -emit-llvm -O1 -o - | grep {call.*ldexp}
-// RUN: %llvmgcc %s -S -emit-llvm -O3 -fno-builtin -o - | grep {call.*exp2l}
-
-// If this fails for you because your target doesn't support long double,
-// please xfail the test.
-
-long double exp2l(long double);
-
-long double t4(unsigned char x) {
-  return exp2l(x);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/libcalls.c b/libclamav/c++/llvm/test/FrontendC/libcalls.c
deleted file mode 100644
index a2761dd..0000000
--- a/libclamav/c++/llvm/test/FrontendC/libcalls.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// llvm-gcc -O1+ should run simplify libcalls, O0 shouldn't
-// and -fno-builtins shouldn't.
-// -fno-math-errno should emit an llvm intrinsic, -fmath-errno should not.
-// RUN: %llvmgcc %s -S -emit-llvm -fno-math-errno -O0 -o - | grep {call.*exp2\\.f32}
-// RUN: %llvmgcc %s -S -emit-llvm -fmath-errno -O0 -o - | grep {call.*exp2f}
-// RUN: %llvmgcc %s -S -emit-llvm -O1 -o - | grep {call.*ldexp}
-// RUN: %llvmgcc %s -S -emit-llvm -O3 -fno-builtin -o - | grep {call.*exp2f}
-
-float exp2f(float);
-
-float t4(unsigned char x) {
-  return exp2f(x);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendC/memcpy_chk.c b/libclamav/c++/llvm/test/FrontendC/memcpy_chk.c
deleted file mode 100644
index 7c07931..0000000
--- a/libclamav/c++/llvm/test/FrontendC/memcpy_chk.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// RUN: %llvmgcc -S -emit-llvm -O1 %s -o - | grep call | grep memcpy_chk | count 3
-// RUN: %llvmgcc -S -emit-llvm -O1 %s -o - | grep call | grep {llvm.memcpy} | count 3
-// rdar://6716432
-
-void *t1(void *d, void *s) {
-  return __builtin___memcpy_chk(d, s, 16, 0);
-}
-
-void *t2(void *d, void *s) {
-  return __builtin___memcpy_chk(d, s, 16, 10);
-}
-
-void *t3(void *d, void *s) {
-  return __builtin___memcpy_chk(d, s, 16, 17);
-}
-
-void *t4(void *d, void *s, unsigned len) {
-  return __builtin___memcpy_chk(d, s, len, 17);
-}
-
-char buf[10];
-void *t5(void *s, unsigned len) {
-  return __builtin___memcpy_chk(buf, s, 5, __builtin_object_size(buf, 0));
-}
-
-void *t6(void *d, void *s) {
-  return __builtin___memcpy_chk(d, s, 16, __builtin_object_size(d, 0));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/memset_chk.c b/libclamav/c++/llvm/test/FrontendC/memset_chk.c
deleted file mode 100644
index b347dd0..0000000
--- a/libclamav/c++/llvm/test/FrontendC/memset_chk.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %llvmgcc -S -emit-llvm -O1 %s -o - | grep call | not grep memset_chk
-// rdar://6728562
-
-void t(void *ptr) {
-  __builtin___memset_chk(ptr, 0, 32, __builtin_object_size (ptr, 0));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/nested-functions.c b/libclamav/c++/llvm/test/FrontendC/nested-functions.c
deleted file mode 100644
index bccbef3..0000000
--- a/libclamav/c++/llvm/test/FrontendC/nested-functions.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// RUN: %llvmgcc -S %s -o -  -fnested-functions
-// PR1274
-
-void Bork() {
-  void Fork(const int *src, int size) {
-    int i = 1;
-    int x;
-
-    while (i < size)
-      x = src[i];
-  }
-}
-
-void foo(void *a){
-  inline void foo_bar() {
-    a += 1;
-  }
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/object_size.c b/libclamav/c++/llvm/test/FrontendC/object_size.c
deleted file mode 100644
index 0ddd66b..0000000
--- a/libclamav/c++/llvm/test/FrontendC/object_size.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: %llvmgcc -S -emit-llvm -O1 %s -o - | grep ret | grep {\\-1} | count 1
-// RUN: %llvmgcc -S -emit-llvm -O1 %s -o - | grep ret | grep {0}  | count 1
-// RUN: %llvmgcc -S -emit-llvm -O1 %s -o - | grep ret | grep {8}  | count 1
-
-unsigned t1(void *d) {
-  return __builtin_object_size(d, 0);
-}
-
-unsigned t2(void *d) {
-  return __builtin_object_size(d, 2);
-}
-
-char buf[8];
-unsigned t3() {
-  return __builtin_object_size(buf, 0);
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/pr3518.c b/libclamav/c++/llvm/test/FrontendC/pr3518.c
deleted file mode 100644
index 4c193c7..0000000
--- a/libclamav/c++/llvm/test/FrontendC/pr3518.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep {= internal global} | count 4
-// PR 3518
-// Some of the objects were coming out as unintialized (external) before 3518
-// was fixed.  Internal names are different between llvm-gcc and clang so they
-// are not tested.
-
-extern void abort (void);
-
-struct A { int i; int j; };
-struct B { struct A *a; struct A *b; };
-struct C { struct B *c; struct A *d; };
-struct C e = { &(struct B) { &(struct A) { 1, 2 }, &(struct A) { 3, 4 } }, &(struct A) { 5, 6 } };
-
-int
-main (void)
-{
-  if (e.c->a->i != 1 || e.c->a->j != 2)
-    abort ();
-  if (e.c->b->i != 3 || e.c->b->j != 4)
-    abort ();
-  if (e.d->i != 5 || e.d->j != 6)
-    abort ();
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/pr4349.c b/libclamav/c++/llvm/test/FrontendC/pr4349.c
deleted file mode 100644
index 890482e..0000000
--- a/libclamav/c++/llvm/test/FrontendC/pr4349.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars2 | grep {\\\[2 x \\\[2 x i8\\\]\\\]}
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars2 | grep {, i\[\[:digit:\]\]\\+ 1)} | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars3 | grep {\\\[2 x i16\\\]}
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars3 | grep {, i\[\[:digit:\]\]\\+ 1)} | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars4 | grep {\\\[2 x \\\[2 x i8\\\]\\\]} | count 1
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars4 | grep {, i\[\[:digit:\]\]\\+ 1, i\[\[:digit:\]\]\\+ 1)} | count 1
-// PR 4349
-
-union reg
-{
-    unsigned char b[2][2];
-    unsigned short w[2];
-    unsigned int d;
-};
-struct cpu
-{
-    union reg pc;
-};
-extern struct cpu cpu;
-struct svar
-{
-    void *ptr;
-};
-struct svar svars1[] =
-{
-    { &((cpu.pc).w[0]) }
-};
-struct svar svars2[] =
-{
-    { &((cpu.pc).b[0][1]) }
-};
-struct svar svars3[] =
-{
-    { &((cpu.pc).w[1]) }
-};
-struct svar svars4[] =
-{
-    { &((cpu.pc).b[1][1]) }
-};
diff --git a/libclamav/c++/llvm/test/FrontendC/ptr-rotate.c b/libclamav/c++/llvm/test/FrontendC/ptr-rotate.c
deleted file mode 100644
index 56c21f4..0000000
--- a/libclamav/c++/llvm/test/FrontendC/ptr-rotate.c
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc %s -c -m32 -o /dev/null
-// RUN: %llvmgcc %s -c -O1 -m32 -emit-llvm -o - | llc -march=x86 -mtriple=i386-apple-darwin9.7 | FileCheck %s -check-prefix=DARWIN
-
-unsigned int func(void *A) {
-  // DARWIN: roll $27
-  return ((((unsigned long long) A) >> 5) | (((unsigned long long) A) << 27));
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/sret.c b/libclamav/c++/llvm/test/FrontendC/sret.c
deleted file mode 100644
index 11ac5d6..0000000
--- a/libclamav/c++/llvm/test/FrontendC/sret.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep sret | count 5
-
-struct abc {
- long a;
- long b;
- long c;
-};
- 
-struct abc foo1(void);
-struct abc foo2();
-
-void bar() {
-  struct abc dummy1 = foo1();
-  struct abc dummy2 = foo2();
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/sret2.c b/libclamav/c++/llvm/test/FrontendC/sret2.c
deleted file mode 100644
index 7b621f9..0000000
--- a/libclamav/c++/llvm/test/FrontendC/sret2.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep sret | count 2
-
-struct abc {
- long a;
- long b;
- long c;
-};
- 
-struct abc foo2(){}
diff --git a/libclamav/c++/llvm/test/FrontendC/unaligned-memcpy.c b/libclamav/c++/llvm/test/FrontendC/unaligned-memcpy.c
deleted file mode 100644
index e5d810f..0000000
--- a/libclamav/c++/llvm/test/FrontendC/unaligned-memcpy.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgcc %s -S -emit-llvm -o - | llvm-as | llc
-
-void bork() {
-  char Qux[33] = {0};
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/union-align.c b/libclamav/c++/llvm/test/FrontendC/union-align.c
deleted file mode 100644
index f99a760..0000000
--- a/libclamav/c++/llvm/test/FrontendC/union-align.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep load | grep "4 x float" | not grep "align 4"
-// RUN: %llvmgcc -S %s -o - | grep load | grep "4 x float" | grep "align 16"
-// PR3432
-// rdar://6536377
-
-typedef float __m128 __attribute__ ((__vector_size__ (16)));
-
-typedef union
-{
-  int i[4];
-  float f[4];
-  __m128 v;
-} u_t;
-
-__m128 t(u_t *a) {
-  return a->v;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/wchar-const.c b/libclamav/c++/llvm/test/FrontendC/wchar-const.c
deleted file mode 100644
index 7cf3322..0000000
--- a/libclamav/c++/llvm/test/FrontendC/wchar-const.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -o - | grep {constant \\\[18 x} | grep { 84, }
-// This should pass for any endianness combination of host and target.
-#include <wchar.h>
-extern void foo(const wchar_t* p);
-int main (int argc, const char * argv[])
-{
- foo(L"This is some text");
- return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendC/weak_constant.c b/libclamav/c++/llvm/test/FrontendC/weak_constant.c
deleted file mode 100644
index 5337948..0000000
--- a/libclamav/c++/llvm/test/FrontendC/weak_constant.c
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %llvmgcc -S %s -O1 -o - | grep {ret.*123}
-// Check for bug compatibility with gcc.
-
-const int x __attribute((weak)) = 123;
-
-int* f(void) {
-  return &x;
-}
-
-int g(void) {
-  return *f();
-}
diff --git a/libclamav/c++/llvm/test/FrontendFortran/2008-11-03-OptionOverride.f90 b/libclamav/c++/llvm/test/FrontendFortran/2008-11-03-OptionOverride.f90
deleted file mode 100644
index 316e722..0000000
--- a/libclamav/c++/llvm/test/FrontendFortran/2008-11-03-OptionOverride.f90
+++ /dev/null
@@ -1,4 +0,0 @@
-! RUN: %llvmgcc -c %s -march=k8
-! XTARGET: x86
-! Note: this file intentionally left blank, the problem itself is in
-! frontend initialization routines and march flag!
diff --git a/libclamav/c++/llvm/test/FrontendFortran/2009-02-09-FloorDivExpr.f90 b/libclamav/c++/llvm/test/FrontendFortran/2009-02-09-FloorDivExpr.f90
deleted file mode 100644
index 870e99b..0000000
--- a/libclamav/c++/llvm/test/FrontendFortran/2009-02-09-FloorDivExpr.f90
+++ /dev/null
@@ -1,32 +0,0 @@
-! RUN: %llvmgcc -c %s
-! PR2437
-program main
-  implicit none
-  call build (77)
-contains
-  subroutine build (order)
-    integer :: order, i, j
-
-
-    call test (1, order, 3,  (/ (i, i = 1, order, 3) /))
-    call test (order, 1, -3, (/ (i, i = order, 1, -3) /))
-
-    do j = -10, 10
-      call test (order + j, order, 5,  (/ (i, i = order + j, order, 5) /))
-      call test (order + j, order, -5, (/ (i, i = order + j, order, -5) /))
-    end do
-
-  end subroutine build
-
-  subroutine test (from, to, step, values)
-    integer, dimension (:) :: values
-    integer :: from, to, step, last, i
-
-    last = 0
-    do i = from, to, step
-      last = last + 1
-      if (values (last) .ne. i) call abort
-    end do
-    if (size (values, dim = 1) .ne. last) call abort
-  end subroutine test
-end program main
diff --git a/libclamav/c++/llvm/test/FrontendFortran/cpow.f90 b/libclamav/c++/llvm/test/FrontendFortran/cpow.f90
deleted file mode 100644
index 19ae378..0000000
--- a/libclamav/c++/llvm/test/FrontendFortran/cpow.f90
+++ /dev/null
@@ -1,18 +0,0 @@
-! RUN: %llvmgcc -c %s
-! PR2443
-
-! Program to test the power (**) operator
-program testpow
-   implicit none
-   real(kind=4) r, s, two
-   real(kind=8) :: q
-   complex(kind=4) :: c, z
-   real, parameter :: del = 0.0001
-   integer i, j
-
-   two = 2.0
-
-   c = (2.0, 3.0)
-   c = c ** two
-   if (abs(c - (-5.0, 12.0)) .gt. del) call abort
-end program
diff --git a/libclamav/c++/llvm/test/FrontendFortran/dg.exp b/libclamav/c++/llvm/test/FrontendFortran/dg.exp
deleted file mode 100644
index 45bffc6..0000000
--- a/libclamav/c++/llvm/test/FrontendFortran/dg.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-load_lib llvm.exp
-
-if [ llvm_gcc_supports fortran ] then {
-    RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{f,f90}]]
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendObjC++/2007-10-03-MetadataPointers.mm b/libclamav/c++/llvm/test/FrontendObjC++/2007-10-03-MetadataPointers.mm
deleted file mode 100644
index 5975e38..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC++/2007-10-03-MetadataPointers.mm
+++ /dev/null
@@ -1,7 +0,0 @@
-// RUN: %llvmgcc -w -x objective-c++ -c %s -o /dev/null
-
- at class NSImage;
-void bork() {
-  NSImage *nsimage;
-  [nsimage release];
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC++/dg.exp b/libclamav/c++/llvm/test/FrontendObjC++/dg.exp
deleted file mode 100644
index 41c3db2..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC++/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if [ llvm_gcc_supports obj-c++ ] then {
-    RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{mm}]]
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2007-04-03-ObjcEH.m b/libclamav/c++/llvm/test/FrontendObjC/2007-04-03-ObjcEH.m
deleted file mode 100644
index 353323d..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2007-04-03-ObjcEH.m
+++ /dev/null
@@ -1,29 +0,0 @@
-// RUN: %llvmgcc -c %s -o /dev/null
-
- at interface B 
--(int)bar;
- at end
-
- at interface A
--(void) Foo:(int) state;
- at end
-
- at implementation A 
-- (void) Foo:(int) state {
-
-        int wasResponded = 0;
-        @try {
-        if (state) {
-           B * b = 0;
-           @try { }
-           @finally {
-             wasResponded = ![b bar];
-           }
-        }
-        }
-        @finally {
-        }
-}
- at end
-
-
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2007-05-02-Strong.m b/libclamav/c++/llvm/test/FrontendObjC/2007-05-02-Strong.m
deleted file mode 100644
index 3778fd2..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2007-05-02-Strong.m
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN: %llvmgcc -c %s -fobjc-gc -o /dev/null
-typedef int NSInteger;
-typedef struct _NSRect {
-  int origin;
-  int size;
-} NSRect;
-
-__attribute__((objc_gc(strong))) NSRect *_cachedRectArray;
-extern const NSRect NSZeroRect;
- at interface A{
-}
--(void)bar:(NSInteger *)rectCount;
- at end
-
- at implementation A 
-
--(void)bar:(NSInteger *)rectCount {
-  NSRect appendRect = NSZeroRect; 
-
-  _cachedRectArray[*rectCount - 1] = NSZeroRect; 
-}
-
- at end
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2007-09-25-EH.m b/libclamav/c++/llvm/test/FrontendObjC/2007-09-25-EH.m
deleted file mode 100644
index 5fa9cbb..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2007-09-25-EH.m
+++ /dev/null
@@ -1,27 +0,0 @@
-// RUN: %llvmgcc -c -w -m64 -mmacosx-version-min=10.5 %s -o /dev/null
-// XFAIL: *
-// XTARGET: darwin
- at class NSDictionary, DSoBuffer, DSoDirectory, NSMutableArray;
- at interface NSException {}
- at end
- at interface DSoNode {
-  DSoDirectory  *mDirectory;
-}
- at end
- at implementation DSoNode
-- (void) _findRecordsOfTypes {
-  DSoBuffer      *dbData;
-  void           *recInfo;
-  NSMutableArray *results;
-  @try {
-    dsGetRecordEntry([dbData dsDataBuffer], (void**)&recInfo);
-    @try {
-        [results addObject:37];
-    } @finally {
-      dsDeallocRecordEntry([mDirectory dsDirRef], recInfo);
-    }
-  } @catch(NSException * exception) {
-  }
-}
-
-
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2007-10-17-SJLJExceptions.m b/libclamav/c++/llvm/test/FrontendObjC/2007-10-17-SJLJExceptions.m
deleted file mode 100644
index 970207e..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2007-10-17-SJLJExceptions.m
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %llvmgcc -m32 -x objective-c %s -pipe -std=gnu99 -O2 -fexceptions -S -o - | not grep Unwind_Resume
-#import <stdio.h>
-
- at interface Foo {
-  char c;
-  short s;
-  int i;
-  long l;
-  float f;
-  double d;
-}
--(Foo*)retain;
- at end
-
-struct Foo *bork(Foo *FooArray) {
-  struct Foo *result = 0;
-  @try {
-    result = [FooArray retain];
-  } @catch(id any) {
-    printf("hello world\n");
-  }
-
-  return result;
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2007-10-18-ProDescriptor.m b/libclamav/c++/llvm/test/FrontendObjC/2007-10-18-ProDescriptor.m
deleted file mode 100644
index e87a43f..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2007-10-18-ProDescriptor.m
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %llvmgcc -x objective-c -c %s -o /dev/null
- at protocol O
- at end
- at interface O < O > {
-}
- at end
-struct A {
-};
- at protocol AB
-- (unsigned) ver;
- at end
- at interface AGy:O < AB > {
-}
- at end
- at implementation AGy
-- (unsigned) ver {
-}
- at end
-
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2007-10-23-GC-WriteBarrier.m b/libclamav/c++/llvm/test/FrontendObjC/2007-10-23-GC-WriteBarrier.m
deleted file mode 100644
index 866c330..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2007-10-23-GC-WriteBarrier.m
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -x objective-c -c %s -o /dev/null -fobjc-gc
-// rdar://5541393
-
-typedef unsigned int NSUInteger;
-__attribute__((objc_gc(strong))) float *_scores;
-
-void foo(int i, float f) {
-  _scores[i] = f; 
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2008-10-3-EhValue.m b/libclamav/c++/llvm/test/FrontendObjC/2008-10-3-EhValue.m
deleted file mode 100644
index a4c0cae..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2008-10-3-EhValue.m
+++ /dev/null
@@ -1,50 +0,0 @@
-// RUN: %llvmgcc -w -x objective-c -c %s -o /dev/null
-
- at interface Object {
- at public
-     Class isa;
-}
-+initialize;
-+alloc;
-+new;
-+free;
--free;
-+(Class)class;
--(Class)class;
--init;
--superclass;
--(const char *)name;
- at end
-
- at interface Frob: Object
- at end
-
- at implementation Frob: Object
- at end
-
-static Frob* _connection = ((void *)0);
-
-extern void abort(void);
-
-void test (Object* sendPort)
-{
- int cleanupPorts = 1;
- Frob* receivePort = ((void *)0);
-
- @try {
-  receivePort = (Frob *) -1;
-  _connection = (Frob *) -1;
-  receivePort = ((void *)0);
-  sendPort = ((void *)0);
-  cleanupPorts = 0;
-  @throw [Object new];
- }
- @catch(Frob *obj) {
-  if(!(0)) abort();
- }
- @catch(id exc) {
-  if(!(!receivePort)) abort();
-  if(!(!sendPort)) abort();
-  if(!(!cleanupPorts)) abort();
- }
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2008-11-12-Metadata.m b/libclamav/c++/llvm/test/FrontendObjC/2008-11-12-Metadata.m
deleted file mode 100644
index 7e9f028..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2008-11-12-Metadata.m
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -x objective-c -m64 -c %s -o /dev/null
-
- at interface A
- at end
- at protocol P
- at end
- at interface B : A <P>
-{
-}
- at end
- at implementation B
-- (void)test {
-}
- at end
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2008-11-24-ConstCFStrings.m b/libclamav/c++/llvm/test/FrontendObjC/2008-11-24-ConstCFStrings.m
deleted file mode 100644
index 976adc4..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2008-11-24-ConstCFStrings.m
+++ /dev/null
@@ -1,11 +0,0 @@
-// RUN: %llvmgcc -x objective-c -m64 -S %s -o - | grep {L_unnamed_cfstring_}
-
- at class NSString;
-
- at interface A
-- (void)bork:(NSString*)msg;
- at end
-
-void func(A *a) {
-  [a bork:@"Hello world!"];
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2008-11-25-Blocks.m b/libclamav/c++/llvm/test/FrontendObjC/2008-11-25-Blocks.m
deleted file mode 100644
index 258d70a..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2008-11-25-Blocks.m
+++ /dev/null
@@ -1,17 +0,0 @@
-// RUN: %llvmgcc -c %s -o /dev/null
-// rdar://6394879
-
- at interface bork
-- (id)B:(void (^)())blk;
-- (void)C;
- at end
- at implementation bork
-- (id)B:(void (^)())blk {
-  __attribute__((__blocks__(byref))) bork* new = ((void *)0);
-  blk();
-}
-- (void)C {
-  __attribute__((__blocks__(byref))) id var;
-  [self B:^() {}];
-}
- at end
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2009-01-26-WriteBarrier-2.m b/libclamav/c++/llvm/test/FrontendObjC/2009-01-26-WriteBarrier-2.m
deleted file mode 100644
index 32833a8..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2009-01-26-WriteBarrier-2.m
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %llvmgcc -x objective-c -S %s -fobjc-gc -o - | grep objc_assign_strongCast
-// rdar://5541393
-
-typedef struct {
-    void (^ivarBlock)(void);
-} StructWithBlock_t;
-
-int main(char *argc, char *argv[]) {
-   StructWithBlock_t *swbp = (StructWithBlock_t *)malloc(sizeof(StructWithBlock_t*));
-   __block   int i = 10;
-   // assigning a Block into an struct slot should elicit a write-barrier under GC
-   swbp->ivarBlock = ^ { ++i; }; 
-   return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2009-02-05-VolatileProp.m b/libclamav/c++/llvm/test/FrontendObjC/2009-02-05-VolatileProp.m
deleted file mode 100644
index 461f92b..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2009-02-05-VolatileProp.m
+++ /dev/null
@@ -1,11 +0,0 @@
-/* RUN: %llvmgcc -w -x objective-c -c %s -o /dev/null -pedantic-errors
-   rdar://6551276 */
-
-void foo(const unsigned short *);
-void bar() {
-  unsigned short *s[3];
-  int i;
-  @try { } @catch (id anException) { }
-  foo(2+s[i]);
-}
-
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2009-04-14-AsmSection.m b/libclamav/c++/llvm/test/FrontendObjC/2009-04-14-AsmSection.m
deleted file mode 100644
index de2cef0..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2009-04-14-AsmSection.m
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %llvmgcc -S %s -fobjc-abi-version=2 -emit-llvm -o %t
-// RUN: grep {OBJC_CLASS_\\\$_A.*section.*__DATA, __objc_data.*align} %t
-// XTARGET: darwin
-
- at interface A
- at end
-
- at implementation A
- at end
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2009-04-27-bitfield-vs-ivar.m b/libclamav/c++/llvm/test/FrontendObjC/2009-04-27-bitfield-vs-ivar.m
deleted file mode 100644
index cada843..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2009-04-27-bitfield-vs-ivar.m
+++ /dev/null
@@ -1,44 +0,0 @@
-// RUN: %llvmgcc -S -x objective-c -m64 -fobjc-abi-version=2 %s -o %t
-// RUN: grep {OBJC_CLASS_RO_\\\$_I4} %t | grep {i32 0, i32 1, i32 2, i32 0}
-// RUN: grep {OBJC_CLASS_RO_\\\$_I2} %t | grep {i32 0, i32 1, i32 1, i32 0}
-// RUN: grep {OBJC_CLASS_RO_\\\$_I5} %t | grep {i32 0, i32 0, i32 0, i32 0}
-// XTARGET: darwin
-
-// Test instance variable sizing when base class ends in bitfield
- at interface I3 {
-  unsigned int _iv2 :1;
-}
- at end
-
- at interface I4 : I3 {
-  char _iv4;
-}
- at end
-
-// Test case with no instance variables in derived class
- at interface I1 {
-  unsigned int _iv2 :1;
-}
- at end
-
- at interface I2 : I1 {
-}
- at end
-
-// Test case with no instance variables anywhere
- at interface I6 {
-}
- at end
-
- at interface I5 : I6 {
-}
- at end
-
- at implementation I4
- at end
-
- at implementation I2
- at end
-
- at implementation I5
- at end
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m b/libclamav/c++/llvm/test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m
deleted file mode 100644
index 8306fcc..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2009-04-28-bitfield-vs-vbc.m
+++ /dev/null
@@ -1,127 +0,0 @@
-// RUN: %llvmgcc -S -x objective-c -m32 %s -o %t
-// This used to crash, 6831493.
-#include <stdlib.h>
-
-struct s0 {
-  double x;
-};
-
- at interface I2 {
-  struct s0 _iv1;
-}
- at end
-
- at interface I3 : I2 {
-  unsigned int _iv2 :1;
-  unsigned : 0;
-  unsigned int _iv3 : 3;
-}
- at end
-
- at interface I4 : I3 {
-  char _iv4;
-}
- at end
-
- at interface I5 : I4 {
-  char _iv5;
-  int _iv6;
-  int _iv7;
-}
-
- at property int P1;
- at end
-
- at implementation I2
- at end
-
- at implementation I3
- at end
-
- at implementation I4 
- at end
-
- at interface I5 ()
- at property int P2;
- at end
-
-#if 0
-int g2 = sizeof(I2);
-int g3 = sizeof(I3);
-int g4 = sizeof(I4);
-int g5_0 = sizeof(I5);
-#endif
-
- at implementation I5
-#ifdef __x86_64
- at synthesize P1 = _MadeUpName;
- at synthesize P2 = _AnotherMadeUpName;
-#else
- at synthesize P1 = _iv6;
- at synthesize P2 = _iv7;
-#endif
- at end
-
-#if 0
-int g5_1 = sizeof(I5);
-#endif
-
- at interface T0_I0 {
-  double iv_A_0;
-  char iv_A_1;
-}
- at end
-
- at interface T0_I1 : T0_I0 {
-  char iv_B_0;
-}
- at end
-
- at interface T0_I2 : T0_I1 {
-  char iv_C_0;
-}
- at end
-
-#if 0
-int g6 = sizeof(T0_I0);
-int g7 = sizeof(T0_I1);
-int g8 = sizeof(T0_I2);
-#endif
-  
- at implementation T0_I0 @end
- at implementation T0_I1 @end  
- at implementation T0_I2 @end
-
-void f0(I2*i2,I3*i3,I4*i4,I5*i5,T0_I0*t0_i0,T0_I1*t0_i1,T0_I2*t0_i2) {
-}
-
-// Thomas Wang's ui32 hash.
-unsigned hash_ui32_to_ui32(unsigned a) {
-  a = (a ^ 61) ^ (a >> 16);
-  a = a + (a << 3);
-  a = a ^ (a >> 4);
-  a = a * 0x27d4eb2d;
-  a = a ^ (a >> 15);
-  return a;
-}
-
-unsigned char hash_ui32_to_ui8(unsigned ui) {
-  ui = hash_ui32_to_ui32(ui);
-  ui ^= ui>>8;
-  ui ^= ui>>8;
-  ui ^= ui>>8;
-  return (unsigned char) ui;
-}
-
-void *init() {
-  unsigned i, N = 1024;
-  unsigned char *p = malloc(N);
-  for (i=0; i != N; ++i)
-    p[i] = hash_ui32_to_ui8(i);
-  return p;
-}
-
-int main(){
-  void *p = init();
-  f0(p,p,p,p,p,p,p);
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2009-08-05-utf16.m b/libclamav/c++/llvm/test/FrontendObjC/2009-08-05-utf16.m
deleted file mode 100644
index 2964ecf..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2009-08-05-utf16.m
+++ /dev/null
@@ -1,5 +0,0 @@
-/* RUN: %llvmgcc -w -x objective-c -S %s -o - | grep {__utf16_string_1} | grep {internal constant} | grep {12 x i8}
-   rdar://7095855 rdar://7115749 */
-
-void *P = @"iPodâ„¢";
-
diff --git a/libclamav/c++/llvm/test/FrontendObjC/2009-08-17-DebugInfo.m b/libclamav/c++/llvm/test/FrontendObjC/2009-08-17-DebugInfo.m
deleted file mode 100644
index 0bc4e9a..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/2009-08-17-DebugInfo.m
+++ /dev/null
@@ -1,28 +0,0 @@
-// This is a regression test on debug info to make sure that we can set a
-// breakpoint on a objective message.
-// RUN: %llvmgcc -S -O0 -g %s -o - | llvm-as | llc -o %t.s -O0
-// RUN: %compile_c %t.s -o %t.o
-// RUN: %link %t.o -o %t.exe -framework Foundation
-// RUN: echo {break randomFunc\n} > %t.in 
-// RUN: gdb -q -batch -n -x %t.in %t.exe | tee %t.out | \
-// RUN:   grep {Breakpoint 1 at 0x.*: file 2009-08-17-DebugInfo.m, line 21}
-// XTARGET: darwin
- at interface MyClass
-{
- int my;
-}
-+ init;
-- randomFunc;
- at end
-
- at implementation MyClass
-+ init {
-}
-- randomFunc { my = 42; }
- at end
-
-int main() {
-  id o = [MyClass init];
-  [o randomFunc];
-  return 0;
-}
diff --git a/libclamav/c++/llvm/test/FrontendObjC/dg.exp b/libclamav/c++/llvm/test/FrontendObjC/dg.exp
deleted file mode 100644
index 18f73a7..0000000
--- a/libclamav/c++/llvm/test/FrontendObjC/dg.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_lib llvm.exp
-
-if [ llvm_gcc_supports objc ] then {
-    RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{m}]]
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/EmptyCompilationGraph.td b/libclamav/c++/llvm/test/LLVMC/EmptyCompilationGraph.td
deleted file mode 100644
index f4a3047..0000000
--- a/libclamav/c++/llvm/test/LLVMC/EmptyCompilationGraph.td
+++ /dev/null
@@ -1,6 +0,0 @@
-// Check that the compilation graph can be empty.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s
-
-include "llvm/CompilerDriver/Common.td"
-
-def Graph : CompilationGraph<[]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/EnvParentheses.td b/libclamav/c++/llvm/test/LLVMC/EnvParentheses.td
deleted file mode 100644
index cf2a0e3..0000000
--- a/libclamav/c++/llvm/test/LLVMC/EnvParentheses.td
+++ /dev/null
@@ -1,16 +0,0 @@
-// Check the fix for PR4157.
-// http://llvm.org/bugs/show_bug.cgi?id=4157
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
-// RUN: not grep {)));} %t
-
-include "llvm/CompilerDriver/Common.td"
-
-def dummy_tool : Tool<[
-(cmd_line "gcc -o $OUTFILE $INFILE $ENV(FOO)/bar"),
-(in_language "dummy"),
-(out_language "dummy")
-]>;
-
-def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
-
-def Graph : CompilationGraph<[]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/ExternOptions.td b/libclamav/c++/llvm/test/LLVMC/ExternOptions.td
deleted file mode 100644
index a04a88b..0000000
--- a/libclamav/c++/llvm/test/LLVMC/ExternOptions.td
+++ /dev/null
@@ -1,22 +0,0 @@
-// Check that extern options work.
-// The dummy tool and graph are required to silence warnings.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
-// RUN: grep {extern .* AutoGeneratedSwitch_Wall} %t
-
-include "llvm/CompilerDriver/Common.td"
-
-def OptList : OptionList<[(switch_option "Wall", (extern)),
-                          (parameter_option "std", (extern)),
-                          (prefix_list_option "L", (extern))]>;
-
-def dummy_tool : Tool<[
-(cmd_line "dummy_cmd"),
-(in_language "dummy"),
-(out_language "dummy"),
-(actions (case
-         (switch_on "Wall"), (stop_compilation),
-         (not_empty "std"), (stop_compilation),
-         (not_empty "L"), (stop_compilation)))
-]>;
-
-def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/ForwardAs.td b/libclamav/c++/llvm/test/LLVMC/ForwardAs.td
deleted file mode 100644
index 5e5a087..0000000
--- a/libclamav/c++/llvm/test/LLVMC/ForwardAs.td
+++ /dev/null
@@ -1,18 +0,0 @@
-// Check the fix for PR4159.
-// http://llvm.org/bugs/show_bug.cgi?id=4159
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
-// RUN: grep unique_name %t
-
-include "llvm/CompilerDriver/Common.td"
-
-def OptList : OptionList<[(parameter_option "dummy", (extern))]>;
-
-def dummy_tool : Tool<[
-(cmd_line "dummy_cmd"),
-(in_language "dummy"),
-(out_language "dummy"),
-(actions (case
-         (not_empty "dummy"), (forward_as "dummy", "unique_name")))
-]>;
-
-def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/HookWithArguments.td b/libclamav/c++/llvm/test/LLVMC/HookWithArguments.td
deleted file mode 100644
index 0f7c379..0000000
--- a/libclamav/c++/llvm/test/LLVMC/HookWithArguments.td
+++ /dev/null
@@ -1,16 +0,0 @@
-// Check that hooks with arguments work.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
-// RUN: grep {Hook(const char\\* Arg0, const char\\* Arg1, const char\\* Arg2);} %t | count 1
-// RUN: grep "/path" %t | count 1
-// RUN: grep "VARIABLE" %t | count 1
-// RUN: grep "/2path" %t | count 1
-
-include "llvm/CompilerDriver/Common.td"
-
-def dummy_tool : Tool<[
-(cmd_line "$CALL(Hook, 'Arg1',   'Arg2', 'Arg3 Arg3Cont')/path arg1 $ENV(VARIABLE)/2path arg2 $INFILE"),
-(in_language "dummy"),
-(out_language "dummy")
-]>;
-
-def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/MultiValuedOption.td b/libclamav/c++/llvm/test/LLVMC/MultiValuedOption.td
deleted file mode 100644
index d68a115..0000000
--- a/libclamav/c++/llvm/test/LLVMC/MultiValuedOption.td
+++ /dev/null
@@ -1,21 +0,0 @@
-// Check that multivalued options work.
-// The dummy tool and graph are required to silence warnings.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
-// RUN: grep cl::multi_val(2) %t | count 1
-
-include "llvm/CompilerDriver/Common.td"
-
-def OptList : OptionList<[
-    (prefix_list_option "foo", (multi_val 2)),
-    (parameter_list_option "baz", (multi_val 2), (extern))]>;
-
-def dummy_tool : Tool<[
-(cmd_line "dummy_cmd"),
-(in_language "dummy"),
-(out_language "dummy"),
-(actions (case
-         (not_empty "foo"), (forward_as "foo", "bar"),
-         (not_empty "baz"), (forward "baz")))
-]>;
-
-def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/MultipleCompilationGraphs.td b/libclamav/c++/llvm/test/LLVMC/MultipleCompilationGraphs.td
deleted file mode 100644
index 3305fc6..0000000
--- a/libclamav/c++/llvm/test/LLVMC/MultipleCompilationGraphs.td
+++ /dev/null
@@ -1,8 +0,0 @@
-// Check that multiple compilation graphs are allowed.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s
-
-include "llvm/CompilerDriver/Common.td"
-
-def Graph1 : CompilationGraph<[]>;
-def Graph2 : CompilationGraph<[]>;
-def Graph3 : CompilationGraph<[]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/NoActions.td b/libclamav/c++/llvm/test/LLVMC/NoActions.td
deleted file mode 100644
index 43fd007..0000000
--- a/libclamav/c++/llvm/test/LLVMC/NoActions.td
+++ /dev/null
@@ -1,12 +0,0 @@
-// Check that tools without associated actions are accepted.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s | grep dummy_tool
-
-include "llvm/CompilerDriver/Common.td"
-
-def dummy_tool : Tool<[
-(cmd_line "dummy_cmd"),
-(in_language "dummy"),
-(out_language "dummy")
-]>;
-
-def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/NoCompilationGraph.td b/libclamav/c++/llvm/test/LLVMC/NoCompilationGraph.td
deleted file mode 100644
index 6476a37..0000000
--- a/libclamav/c++/llvm/test/LLVMC/NoCompilationGraph.td
+++ /dev/null
@@ -1,4 +0,0 @@
-// Check that the compilation graph is not required.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s
-
-include "llvm/CompilerDriver/Common.td"
diff --git a/libclamav/c++/llvm/test/LLVMC/OneOrMore.td b/libclamav/c++/llvm/test/LLVMC/OneOrMore.td
deleted file mode 100644
index f27ae97..0000000
--- a/libclamav/c++/llvm/test/LLVMC/OneOrMore.td
+++ /dev/null
@@ -1,22 +0,0 @@
-// Check that (one_or_more) and (zero_or_one) properties work.
-// The dummy tool and graph are required to silence warnings.
-// RUN: tblgen -I $srcroot/include --gen-llvmc %s -o %t
-// RUN: grep cl::ZeroOrOne %t | count 1
-// RUN: grep cl::OneOrMore %t | count 1
-
-include "llvm/CompilerDriver/Common.td"
-
-def OptList : OptionList<[
-    (prefix_list_option "foo", (one_or_more)),
-    (parameter_list_option "baz", (zero_or_one))]>;
-
-def dummy_tool : Tool<[
-(cmd_line "dummy_cmd"),
-(in_language "dummy"),
-(out_language "dummy"),
-(actions (case
-         (not_empty "foo"), (forward_as "foo", "bar"),
-         (not_empty "baz"), (forward "baz")))
-]>;
-
-def DummyGraph : CompilationGraph<[SimpleEdge<"root", "dummy_tool">]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/TestWarnings.td b/libclamav/c++/llvm/test/LLVMC/TestWarnings.td
deleted file mode 100644
index bf2173c..0000000
--- a/libclamav/c++/llvm/test/LLVMC/TestWarnings.td
+++ /dev/null
@@ -1,7 +0,0 @@
-// Check that the compiler warns about unused options.
-// This should fail because the output is printed on stderr.
-// RUN: ignore tblgen -I $srcroot/include --gen-llvmc %s |& grep "option '-Wall' has no effect!"
-
-include "llvm/CompilerDriver/Common.td"
-
-def OptList : OptionList<[(switch_option "Wall", (extern))]>;
diff --git a/libclamav/c++/llvm/test/LLVMC/emit-llvm.c b/libclamav/c++/llvm/test/LLVMC/emit-llvm.c
deleted file mode 100644
index 38bbba6..0000000
--- a/libclamav/c++/llvm/test/LLVMC/emit-llvm.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// RUN: llvmc -c -emit-llvm -o - %s | llvm-dis | grep "@f0()" | count 1
-
-int f0(void) {
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/false.c b/libclamav/c++/llvm/test/LLVMC/false.c
deleted file mode 100644
index eb2883d..0000000
--- a/libclamav/c++/llvm/test/LLVMC/false.c
+++ /dev/null
@@ -1,14 +0,0 @@
-// Test that we can compile .c files as C++ and vice versa
-// RUN: llvmc -x c++ %s -x c %p/test_data/false.cpp -x lisp -x whatnot -x none %p/test_data/false2.cpp -o %t
-// RUN: ./%t | grep hello
-
-#include <iostream>
-
-extern "C" void test();
-extern std::string test2();
-
-int main() {
-    std::cout << "h";
-    test();
-    std::cout << test2() << '\n';
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/hello.c b/libclamav/c++/llvm/test/LLVMC/hello.c
deleted file mode 100644
index 1cda9c3..0000000
--- a/libclamav/c++/llvm/test/LLVMC/hello.c
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Check that we can compile helloworld
- * RUN: llvmc %s -o %t
- * RUN: ./%t | grep hello
- */
-
-#include <stdio.h>
-
-int main() {
-    printf("hello\n");
-    return 0;
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/hello.cpp b/libclamav/c++/llvm/test/LLVMC/hello.cpp
deleted file mode 100644
index 27c89d6..0000000
--- a/libclamav/c++/llvm/test/LLVMC/hello.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// Test that we can compile C++ code.
-// RUN: llvmc %s -o %t
-// RUN: ./%t | grep hello
-#include <iostream>
-
-int main() {
-    std::cout << "hello" << '\n';
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/hello.m b/libclamav/c++/llvm/test/LLVMC/hello.m
deleted file mode 100644
index 1cda9c3..0000000
--- a/libclamav/c++/llvm/test/LLVMC/hello.m
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Check that we can compile helloworld
- * RUN: llvmc %s -o %t
- * RUN: ./%t | grep hello
- */
-
-#include <stdio.h>
-
-int main() {
-    printf("hello\n");
-    return 0;
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/hello.mm b/libclamav/c++/llvm/test/LLVMC/hello.mm
deleted file mode 100644
index ff82e4a..0000000
--- a/libclamav/c++/llvm/test/LLVMC/hello.mm
+++ /dev/null
@@ -1,8 +0,0 @@
-// Test that we can compile Objective-C++ code.
-// RUN: llvmc %s -o %t
-// RUN: ./%t | grep hello
-#include <iostream>
-
-int main() {
-    std::cout << "hello" << '\n';
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/include.c b/libclamav/c++/llvm/test/LLVMC/include.c
deleted file mode 100644
index 07ae761..0000000
--- a/libclamav/c++/llvm/test/LLVMC/include.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * Check that the 'include' options work.
- * RUN: echo "int x;\n" > %t1.inc
- * RUN: llvmc -include %t1.inc -fsyntax-only %s
- */
-
-int f0(void) {
-  return x;
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/llvmc.exp b/libclamav/c++/llvm/test/LLVMC/llvmc.exp
deleted file mode 100644
index fd5a046..0000000
--- a/libclamav/c++/llvm/test/LLVMC/llvmc.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-load_lib llvm.exp
-
-# 'false.c' is really C++, so it must be treated differently.
-set special_file "$srcdir/$subdir/false.c"
-
-if [ llvm_gcc_supports c ] then {
-    # tcl seems to lack 'filter' which would've made this easier...
-    set temp [glob -nocomplain $srcdir/$subdir/*.{c}]
-    set c_files [list]
-    foreach f $temp { if {$f != $special_file} {lappend c_files $f}}
-
-    RunLLVMTests [lsort $c_files]
-}
-
-if [ llvm_gcc_supports c++ ] then {
-    RunLLVMTests [lsort [concat [glob -nocomplain $srcdir/$subdir/*.{cpp}] $special_file]]
-}
-
-if [ llvm_gcc_supports objc ] then {
-    RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{m}]]
-}
-
-if [ llvm_gcc_supports obj-c++ ] then {
-    RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{mm}]]
-}
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{td}]]
diff --git a/libclamav/c++/llvm/test/LLVMC/opt-test.c b/libclamav/c++/llvm/test/LLVMC/opt-test.c
deleted file mode 100644
index ed2df52..0000000
--- a/libclamav/c++/llvm/test/LLVMC/opt-test.c
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Check that the -opt switch works.
- * RUN: llvmc %s -opt -o %t
- * RUN: ./%t | grep hello
- */
-
-#include <stdio.h>
-
-int main() {
-    printf("hello\n");
-    return 0;
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/sink.c b/libclamav/c++/llvm/test/LLVMC/sink.c
deleted file mode 100644
index 3edbf78..0000000
--- a/libclamav/c++/llvm/test/LLVMC/sink.c
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Check that the 'sink' options work.
- * RUN: llvmc -v -Wall %s -o %t |& grep "Wall"
- * RUN: ./%t | grep hello
- */
-
-#include <stdio.h>
-
-int main() {
-    printf("hello\n");
-    return 0;
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/test_data/false.cpp b/libclamav/c++/llvm/test/LLVMC/test_data/false.cpp
deleted file mode 100644
index d3a7102..0000000
--- a/libclamav/c++/llvm/test/LLVMC/test_data/false.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/* RUN: ignore */
-#include <stdio.h>
-
-/* Make this invalid C++ */
-typedef struct {
-    int i;
-    char c;
-} a;
-
-static a b = { .i = 65, .c = 'r'};
-
-void test() {
-    b.i = 9;
-    fflush(stdout);
-    printf("el");
-}
-
diff --git a/libclamav/c++/llvm/test/LLVMC/test_data/false2.cpp b/libclamav/c++/llvm/test/LLVMC/test_data/false2.cpp
deleted file mode 100644
index a020514..0000000
--- a/libclamav/c++/llvm/test/LLVMC/test_data/false2.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: ignore
-#include <string>
-
-std::string test2() {
-    return "lo";
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/test_data/together.c b/libclamav/c++/llvm/test/LLVMC/test_data/together.c
deleted file mode 100644
index 1b9b5f6..0000000
--- a/libclamav/c++/llvm/test/LLVMC/test_data/together.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * RUN: ignore
- */
-
-#include <stdio.h>
-
-void test() {
-  printf("hello\n");
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/together.cpp b/libclamav/c++/llvm/test/LLVMC/together.cpp
deleted file mode 100644
index b07250e..0000000
--- a/libclamav/c++/llvm/test/LLVMC/together.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// Check that we can compile files of different types together.
-// RUN: llvmc %s %p/test_data/together.c -o %t
-// RUN: ./%t | grep hello
-
-extern "C" void test();
-
-int main() {
-  test();
-}
diff --git a/libclamav/c++/llvm/test/LLVMC/wall.c b/libclamav/c++/llvm/test/LLVMC/wall.c
deleted file mode 100644
index 2c72ea6..0000000
--- a/libclamav/c++/llvm/test/LLVMC/wall.c
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Check that -Wall works as intended
- * RUN: llvmc -Wall %s -o %t
- * RUN: ./%t | grep hello
- */
-
-#include <stdio.h>
-
-int main() {
-    printf("hello\n");
-    return 0;
-}
diff --git a/libclamav/c++/llvm/test/Linker/2002-07-17-GlobalFail.ll b/libclamav/c++/llvm/test/Linker/2002-07-17-GlobalFail.ll
deleted file mode 100644
index d328310..0000000
--- a/libclamav/c++/llvm/test/Linker/2002-07-17-GlobalFail.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: echo | llvm-as > %t.tmp.bc
-; RUN: llvm-link %t.tmp.bc %t.bc
-
- at X = constant i32 5		; <i32*> [#uses=2]
- at Y = internal global [2 x i32*] [ i32* @X, i32* @X ]		; <[2 x i32*]*> [#uses=0]
-
-
diff --git a/libclamav/c++/llvm/test/Linker/2002-07-17-LinkTest2.ll b/libclamav/c++/llvm/test/Linker/2002-07-17-LinkTest2.ll
deleted file mode 100644
index fa986f1..0000000
--- a/libclamav/c++/llvm/test/Linker/2002-07-17-LinkTest2.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; This fails linking when it is linked with an empty file as the first object file
-
-; RUN: llvm-as > %t1.bc < /dev/null
-; RUN: llvm-as < %s  > %t2.bc
-; RUN: llvm-link %t1.bc %t2.bc
-
- at work = global i32 (i32, i32)* @zip		; <i32 (i32, i32)**> [#uses=0]
-
-declare i32 @zip(i32, i32)
-
diff --git a/libclamav/c++/llvm/test/Linker/2002-08-20-ConstantExpr.ll b/libclamav/c++/llvm/test/Linker/2002-08-20-ConstantExpr.ll
deleted file mode 100644
index 5672014..0000000
--- a/libclamav/c++/llvm/test/Linker/2002-08-20-ConstantExpr.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; This fails linking when it is linked with an empty file as the first object file
-
-; RUN: llvm-as > %t.LinkTest.bc < /dev/null
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-link %t.LinkTest.bc %t.bc
-
- at work = global i32 4		; <i32*> [#uses=1]
- at test = global i32* getelementptr (i32* @work, i64 1)		; <i32**> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-01-30-LinkerRename.ll b/libclamav/c++/llvm/test/Linker/2003-01-30-LinkerRename.ll
deleted file mode 100644
index 6c8b496..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-01-30-LinkerRename.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; This fails because the linker renames the external symbol not the internal 
-; one...
-
-; RUN: echo {define internal i32 @foo() \{ ret i32 7 \} } | llvm-as > %t.1.bc
-; RUN: llvm-as %s -o %t.2.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep @foo() | grep -v internal
-
-define i32 @foo() { ret i32 0 }
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-01-30-LinkerTypeRename.ll b/libclamav/c++/llvm/test/Linker/2003-01-30-LinkerTypeRename.ll
deleted file mode 100644
index 288daf1..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-01-30-LinkerTypeRename.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; This fails because the linker renames the non-opaque type not the opaque 
-; one...
-
-; RUN: echo {%Ty = type opaque @GV = external global %Ty*} | llvm-as > %t.1.bc
-; RUN: llvm-as < %s > %t.2.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep {%Ty } | not grep opaque
-
-%Ty = type i32
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-04-21-Linkage.ll b/libclamav/c++/llvm/test/Linker/2003-04-21-Linkage.ll
deleted file mode 100644
index f6d4c4b..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-04-21-Linkage.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: echo {@X = linkonce global i32 5 \
-; RUN:   define linkonce i32 @foo() \{ ret i32 7 \} } | llvm-as > %t.1.bc
-; RUN: llvm-as %s -o %t.2.bc
-; RUN: llvm-link %t.1.bc  %t.2.bc
- at X = external global i32 
-
-declare i32 @foo() 
-
-define void @bar() {
-	load i32* @X
-	call i32 @foo()
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-04-23-LinkOnceLost.ll b/libclamav/c++/llvm/test/Linker/2003-04-23-LinkOnceLost.ll
deleted file mode 100644
index 7f15e51..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-04-23-LinkOnceLost.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; This fails because the linker renames the non-opaque type not the opaque 
-; one...
-
-; RUN: echo { define linkonce void @foo() \{ ret void \} } | \
-; RUN:   llvm-as -o %t.2.bc
-; RUN: llvm-as %s -o %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep foo | grep linkonce
-
-declare void @foo()
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-04-26-NullPtrLinkProblem.ll b/libclamav/c++/llvm/test/Linker/2003-04-26-NullPtrLinkProblem.ll
deleted file mode 100644
index 54ba051..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-04-26-NullPtrLinkProblem.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This one fails because the LLVM runtime is allowing two null pointers of
-; the same type to be created!
-
-; RUN: echo {%T = type i32} | llvm-as > %t.2.bc
-; RUN: llvm-as %s -o %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc
-
-%T = type opaque
-
-declare %T* @create()
-
-define void @test() {
-	%X = call %T* @create( )		; <%T*> [#uses=1]
-	%v = icmp eq %T* %X, null		; <i1> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-05-15-TypeProblem.ll b/libclamav/c++/llvm/test/Linker/2003-05-15-TypeProblem.ll
deleted file mode 100644
index e914a69..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-05-15-TypeProblem.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; This one fails because the LLVM runtime is allowing two null pointers of
-; the same type to be created!
-
-; RUN: echo {%S = type \{ %T*\} %T = type opaque} | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc
-
-%S = type { i32* }
-%T = type i32
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-05-31-LinkerRename.ll b/libclamav/c++/llvm/test/Linker/2003-05-31-LinkerRename.ll
deleted file mode 100644
index c3661ae..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-05-31-LinkerRename.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; The funcresolve pass will (intentionally) llvm-link an _internal_ function 
-; body with an external declaration.  Because of this, if we LINK an internal 
-; function body into a program that already has an external declaration for 
-; the function name, we must rename the internal function to something that 
-; does not conflict.
-
-; RUN: echo { define internal i32 @foo() \{ ret i32 7 \} } | llvm-as > %t.1.bc
-; RUN: llvm-as < %s > %t.2.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep internal | not grep @foo(
-
-declare i32 @foo() 
-
-define i32 @test() { 
-  %X = call i32 @foo()
-  ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-06-02-TypeResolveProblem.ll b/libclamav/c++/llvm/test/Linker/2003-06-02-TypeResolveProblem.ll
deleted file mode 100644
index 86979f6..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-06-02-TypeResolveProblem.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: echo {%T = type opaque} | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc
-
-%T = type opaque
- at a = constant { %T* } zeroinitializer		; <{ %T* }*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-06-02-TypeResolveProblem2.ll b/libclamav/c++/llvm/test/Linker/2003-06-02-TypeResolveProblem2.ll
deleted file mode 100644
index 42cc040..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-06-02-TypeResolveProblem2.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: echo {%T = type i32} | llvm-as > %t.1.bc
-; RUN: llvm-as < %s > %t.2.bc
-; RUN: llvm-link %t.1.bc %t.2.bc
-
-%T = type opaque
- at X = constant { %T* } zeroinitializer		; <{ %T* }*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-08-20-OpaqueTypeResolve.ll b/libclamav/c++/llvm/test/Linker/2003-08-20-OpaqueTypeResolve.ll
deleted file mode 100644
index a4d4bd5..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-08-20-OpaqueTypeResolve.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo {%S = type \{ i32, i32* \} } | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc
-
-%S = type { i32, %T* }
-%T = type opaque
-
-;%X = global { int, %T* } { int 5, %T* null }
diff --git a/libclamav/c++/llvm/test/Linker/2003-08-23-GlobalVarLinking.ll b/libclamav/c++/llvm/test/Linker/2003-08-23-GlobalVarLinking.ll
deleted file mode 100644
index fd36d04..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-08-23-GlobalVarLinking.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo {@S = external global \{ i32, opaque* \} declare void @F(opaque*)}\
-; RUN:   | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc | llvm-dis | not grep opaque
-
-; After linking this testcase, there should be no opaque types left.  The two
-; S's should cause the opaque type to be resolved to 'int'.
- at S = global { i32, i32* } { i32 5, i32* null }		; <{ i32, i32* }*> [#uses=0]
-
-declare void @F(i32*)
diff --git a/libclamav/c++/llvm/test/Linker/2003-08-23-RecursiveOpaqueTypeResolve.ll b/libclamav/c++/llvm/test/Linker/2003-08-23-RecursiveOpaqueTypeResolve.ll
deleted file mode 100644
index 5041467..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-08-23-RecursiveOpaqueTypeResolve.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; It's a bad idea to go recursively traipsing through types without a safety 
-; net.
-
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type { %S*, i32* }" | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc
-
-%S = type { %S*, opaque* }
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-08-24-InheritPtrSize.ll b/libclamav/c++/llvm/test/Linker/2003-08-24-InheritPtrSize.ll
deleted file mode 100644
index f93c054..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-08-24-InheritPtrSize.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Linking a module with a specified pointer size to one without a 
-; specified pointer size should not cause a warning!
-
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo {} | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc |& not grep warning
-
-target datalayout = "e-p:64:64"
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal.ll b/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal.ll
deleted file mode 100644
index 5526b87..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type i32" | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out2.bc %t.out1.bc
-
-%S = type opaque
-
-define void @foo(i32* %V) {
-	ret void
-}
-
-declare void @foo.upgrd.1(%S*)
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal2.ll b/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal2.ll
deleted file mode 100644
index 3f306b1..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal2.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type i32" | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out2.bc %t.out1.bc
-
-%S = type opaque
-
-define void @foo(i32* %V) {
-	ret void
-}
-
-declare void @foo.upgrd.1(%S*)
-
-define void @other() {
-	call void @foo.upgrd.1( %S* null )
-	call void @foo( i32* null )
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal3.ll b/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal3.ll
deleted file mode 100644
index 38b7851..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-08-28-TypeResolvesGlobal3.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo "%S = type i32" | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out2.bc %t.out1.bc
-
-%S = type opaque
-
-; GLobal using the resolved function prototype
-global void (%S*)* @foo		; <void (%S*)**>:0 [#uses=0]
-
-define void @foo.upgrd.1(i32* %V) {
-	ret void
-}
-
-declare void @foo(%S*)
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-10-21-ConflictingTypesTolerance.ll b/libclamav/c++/llvm/test/Linker/2003-10-21-ConflictingTypesTolerance.ll
deleted file mode 100644
index 4f98a20..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-10-21-ConflictingTypesTolerance.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: echo { %S = type \[8 x i32\] external global %S } | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc | llvm-dis | grep %S | grep \\{
-%S = type { i32 }
-
-
diff --git a/libclamav/c++/llvm/test/Linker/2003-10-27-LinkOncePromote.ll b/libclamav/c++/llvm/test/Linker/2003-10-27-LinkOncePromote.ll
deleted file mode 100644
index f2d465e..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-10-27-LinkOncePromote.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; The linker should merge link-once globals into strong external globals,
-; just like it does for weak symbols!
-
-; RUN: echo "@X = global i32 7" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc
-
- at X = linkonce global i32 7
diff --git a/libclamav/c++/llvm/test/Linker/2003-11-18-TypeResolution.ll b/libclamav/c++/llvm/test/Linker/2003-11-18-TypeResolution.ll
deleted file mode 100644
index d3152ed..0000000
--- a/libclamav/c++/llvm/test/Linker/2003-11-18-TypeResolution.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; Linking these two translation units causes there to be two LLVM values in the
-; symbol table with the same name and same type.  When this occurs, the symbol
-; table class is DROPPING one of the values, instead of renaming it like a nice
-; little symbol table.  This is causing llvm-link to die, at no fault of its
-; own.
-
-; RUN: llvm-as < %s > %t.out2.bc
-; RUN: echo "%T1 = type opaque  @GVar = external global %T1*" | llvm-as > %t.out1.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc
-
-%T1 = type opaque
-%T2 = type i32
- at GVar = global i32* null		; <i32**> [#uses=0]
-
-define void @foo(i32* %X) {
-	%X.upgrd.1 = bitcast i32* %X to %T1*		; <%T1*> [#uses=0]
-	ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Linker/2004-02-17-WeakStrongLinkage.ll b/libclamav/c++/llvm/test/Linker/2004-02-17-WeakStrongLinkage.ll
deleted file mode 100644
index 2244639..0000000
--- a/libclamav/c++/llvm/test/Linker/2004-02-17-WeakStrongLinkage.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s > %t.out2.bc
-; RUN: echo "@me = global i32* null" | llvm-as > %t.out1.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc -o /dev/null
-
- at me = weak global i32* null		; <i32**> [#uses=0]
-
-
diff --git a/libclamav/c++/llvm/test/Linker/2004-05-07-TypeResolution1.ll b/libclamav/c++/llvm/test/Linker/2004-05-07-TypeResolution1.ll
deleted file mode 100644
index f0ade33..0000000
--- a/libclamav/c++/llvm/test/Linker/2004-05-07-TypeResolution1.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as %s -o %t1.bc
-; RUN: llvm-as < %p/2004-05-07-TypeResolution2.ll -o %t2.bc
-; RUN: llvm-link -o %t3.bc %t1.bc %t2.bc
-
-target datalayout = "e-p:32:32"
-	%myint = type opaque
-	%struct1 = type { i32, void (%struct2*)*, %myint*, i32 (i32*)* }
-	%struct2 = type { %struct1 }
- at driver1 = global %struct1 zeroinitializer		; <%struct1*> [#uses=1]
- at m1 = external global [1 x i8]*		; <[1 x i8]**> [#uses=0]
- at str1 = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=0]
- at str2 = constant [2 x i8] zeroinitializer		; <[2 x i8]*> [#uses=0]
- at str3 = constant [3 x i8] zeroinitializer		; <[3 x i8]*> [#uses=0]
- at str4 = constant [4 x i8] zeroinitializer		; <[4 x i8]*> [#uses=0]
- at str5 = constant [5 x i8] zeroinitializer		; <[5 x i8]*> [#uses=0]
- at str6 = constant [6 x i8] zeroinitializer		; <[6 x i8]*> [#uses=0]
- at str7 = constant [7 x i8] zeroinitializer		; <[7 x i8]*> [#uses=0]
- at str8 = constant [8 x i8] zeroinitializer		; <[8 x i8]*> [#uses=0]
- at str9 = constant [9 x i8] zeroinitializer		; <[9 x i8]*> [#uses=0]
- at stra = constant [10 x i8] zeroinitializer		; <[10 x i8]*> [#uses=0]
- at strb = constant [11 x i8] zeroinitializer		; <[11 x i8]*> [#uses=0]
- at strc = constant [12 x i8] zeroinitializer		; <[12 x i8]*> [#uses=0]
- at strd = constant [13 x i8] zeroinitializer		; <[13 x i8]*> [#uses=0]
- at stre = constant [14 x i8] zeroinitializer		; <[14 x i8]*> [#uses=0]
- at strf = constant [15 x i8] zeroinitializer		; <[15 x i8]*> [#uses=0]
- at strg = constant [16 x i8] zeroinitializer		; <[16 x i8]*> [#uses=0]
- at strh = constant [17 x i8] zeroinitializer		; <[17 x i8]*> [#uses=0]
-
-declare void @func(%struct2*)
-
-define void @tty_init() {
-entry:
-	volatile store void (%struct2*)* @func, void (%struct2*)** getelementptr (%struct1* @driver1, i64 0, i32 1)
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Linker/2004-05-07-TypeResolution2.ll b/libclamav/c++/llvm/test/Linker/2004-05-07-TypeResolution2.ll
deleted file mode 100644
index 74fe39f..0000000
--- a/libclamav/c++/llvm/test/Linker/2004-05-07-TypeResolution2.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; This file is used by testlink1.ll, so it doesn't actually do anything itself
-;
-; RUN: echo
-target datalayout = "e-p:32:32"
-	%myint = type i16
-	%struct1 = type { i32, void (%struct2*)*, i16*, i32 (i32*)* }
-	%struct2 = type { %struct1 }
-
-define internal void @f1(%struct1* %tty) {
-loopentry.preheader:
-	%tmp.2.i.i = getelementptr %struct1* %tty, i64 0, i32 1		; <void (%struct2*)**> [#uses=1]
-	%tmp.3.i.i = volatile load void (%struct2*)** %tmp.2.i.i		; <void (%struct2*)*> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/2004-12-03-DisagreeingType.ll b/libclamav/c++/llvm/test/Linker/2004-12-03-DisagreeingType.ll
deleted file mode 100644
index 7378fdd..0000000
--- a/libclamav/c++/llvm/test/Linker/2004-12-03-DisagreeingType.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: echo {@G = weak global \{\{\{\{double\}\}\}\} zeroinitializer } | \
-; RUN:   llvm-as > %t.out2.bc
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc | llvm-dis | not grep {\\}}
-
-; When linked, the global above should be eliminated, being merged with the 
-; global below.
-
- at G = global double 1.0
diff --git a/libclamav/c++/llvm/test/Linker/2005-02-12-ConstantGlobals-2.ll b/libclamav/c++/llvm/test/Linker/2005-02-12-ConstantGlobals-2.ll
deleted file mode 100644
index bedeb51..0000000
--- a/libclamav/c++/llvm/test/Linker/2005-02-12-ConstantGlobals-2.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; Test that a prototype can be marked const, and the definition is allowed
-; to be nonconst.
-
-; RUN: echo {@X = external constant i32} | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep {global i32 7}
-
- at X = global i32 7
diff --git a/libclamav/c++/llvm/test/Linker/2005-02-12-ConstantGlobals.ll b/libclamav/c++/llvm/test/Linker/2005-02-12-ConstantGlobals.ll
deleted file mode 100644
index 4077372..0000000
--- a/libclamav/c++/llvm/test/Linker/2005-02-12-ConstantGlobals.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; Test that a prototype can be marked const, and the definition is allowed
-; to be nonconst.
-
-; RUN: echo {@X = global i32 7} | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep {global i32 7}
-
- at X = external constant i32		; <i32*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/Linker/2005-12-06-AppendingZeroLengthArrays.ll b/libclamav/c++/llvm/test/Linker/2005-12-06-AppendingZeroLengthArrays.ll
deleted file mode 100644
index 2637da1..0000000
--- a/libclamav/c++/llvm/test/Linker/2005-12-06-AppendingZeroLengthArrays.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: echo { @G = appending global \[0 x i32\] zeroinitializer } | \
-; RUN:   llvm-as > %t.out2.bc
-; RUN: llvm-as < %s > %t.out1.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc | llvm-dis | grep {@G =}
-
-; When linked, the globals should be merged, and the result should still 
-; be named '@G'.
-
- at G = appending global [1 x i32] zeroinitializer		; <[1 x i32]*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/Linker/2006-01-19-ConstantPacked.ll b/libclamav/c++/llvm/test/Linker/2006-01-19-ConstantPacked.ll
deleted file mode 100644
index d2409e2..0000000
--- a/libclamav/c++/llvm/test/Linker/2006-01-19-ConstantPacked.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as %s -o %t1.bc
-; RUN: llvm-link -o %t2.bc %t1.bc
-
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin7.7.0"
-deplibs = [ "c", "crtend" ]
- at source = global <4 x i32> < i32 0, i32 1, i32 2, i32 3 >		; <<4 x i32>*> [#uses=0]
-
-define i32 @main() {
-entry:
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/2006-06-15-GlobalVarAlignment.ll b/libclamav/c++/llvm/test/Linker/2006-06-15-GlobalVarAlignment.ll
deleted file mode 100644
index 6e6d56a..0000000
--- a/libclamav/c++/llvm/test/Linker/2006-06-15-GlobalVarAlignment.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; The linker should choose the largest alignment when linking.
-
-; RUN: echo {@X = global i32 7, align 8} | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep {align 8}
-
- at X = weak global i32 7, align 4
diff --git a/libclamav/c++/llvm/test/Linker/2008-03-05-AliasReference.ll b/libclamav/c++/llvm/test/Linker/2008-03-05-AliasReference.ll
deleted file mode 100644
index 7c19dfa..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-03-05-AliasReference.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; PR2054
-; RUN: llvm-as %s -o %t1.bc
-; RUN: llvm-as %p/2008-03-05-AliasReference2.ll -o %t2.bc
-; RUN: llvm-link %t2.bc %t1.bc -o %t3.bc
-
-; ModuleID = 'bug.o'
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
- at foo = weak global i32 0		; <i32*> [#uses=1]
-
- at bar = alias weak i32* @foo		; <i32*> [#uses=1]
-
-define i32 @baz() nounwind  {
-entry:
-	%tmp1 = load i32* @bar, align 4		; <i32> [#uses=1]
-	ret i32 %tmp1
-}
diff --git a/libclamav/c++/llvm/test/Linker/2008-03-05-AliasReference2.ll b/libclamav/c++/llvm/test/Linker/2008-03-05-AliasReference2.ll
deleted file mode 100644
index 05c0a25..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-03-05-AliasReference2.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; This file is used by 2008-03-05-AliasReference.ll
-; RUN: true
-
-; ModuleID = 'bug.o'
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-
-define i32 @baz1() nounwind  {
-entry:
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Linker/2008-03-07-DroppedSection_a.ll b/libclamav/c++/llvm/test/Linker/2008-03-07-DroppedSection_a.ll
deleted file mode 100644
index 4458971..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-03-07-DroppedSection_a.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < %p/2008-03-07-DroppedSection_b.ll > %t2.bc
-; RUN: llvm-ld -r -disable-opt %t.bc %t2.bc -o %t3.bc
-; RUN: llvm-dis < %t3.bc | grep ".data.init_task"
-
-; ModuleID = 't.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-
- at init_task_union = global i32 1, section ".data.init_task", align 32
-
diff --git a/libclamav/c++/llvm/test/Linker/2008-03-07-DroppedSection_b.ll b/libclamav/c++/llvm/test/Linker/2008-03-07-DroppedSection_b.ll
deleted file mode 100644
index 884bf0a..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-03-07-DroppedSection_b.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < %p/2008-03-07-DroppedSection_a.ll > %t2.bc
-; RUN: llvm-ld -r -disable-opt %t.bc %t2.bc -o %t3.bc
-; RUN: llvm-dis < %t3.bc | grep ".data.init_task"
-
-; ModuleID = 'u.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
- at init_task_union = external global i32
-
diff --git a/libclamav/c++/llvm/test/Linker/2008-06-13-LinkOnceRedefinition.ll b/libclamav/c++/llvm/test/Linker/2008-06-13-LinkOnceRedefinition.ll
deleted file mode 100644
index 8c23250..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-06-13-LinkOnceRedefinition.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; Test linking two functions with different prototypes and two globals 
-; in different modules.
-; RUN: llvm-as %s -o %t.foo1.bc
-; RUN: llvm-as %s -o %t.foo2.bc
-; RUN: echo {define linkonce void @foo(i32 %x) { ret void }} | llvm-as -o %t.foo3.bc
-; RUN: llvm-link %t.foo1.bc %t.foo2.bc | llvm-dis
-; RUN: llvm-link %t.foo1.bc %t.foo3.bc | llvm-dis
-define linkonce void @foo() { ret void }
diff --git a/libclamav/c++/llvm/test/Linker/2008-06-26-AddressSpace.ll b/libclamav/c++/llvm/test/Linker/2008-06-26-AddressSpace.ll
deleted file mode 100644
index 0847bb5..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-06-26-AddressSpace.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Test linking two functions with different prototypes and two globals 
-; in different modules.
-; RUN: llvm-as %s -o %t.foo1.bc
-; RUN: echo | llvm-as -o %t.foo2.bc
-; RUN: llvm-link %t.foo2.bc %t.foo1.bc | llvm-dis | grep {addrspace(2)}
-; RUN: llvm-link %t.foo1.bc %t.foo2.bc | llvm-dis | grep {addrspace(2)}
-; rdar://6038021
-
- at G = addrspace(2) global i32 256 
diff --git a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasFnDecl.ll b/libclamav/c++/llvm/test/Linker/2008-07-06-AliasFnDecl.ll
deleted file mode 100644
index 8e8c845..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasFnDecl.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; PR2146
-; RUN: llvm-as %s -o %t1.bc
-; RUN: llvm-as %p/2008-07-06-AliasFnDecl2.ll -o %t2.bc
-; RUN: llvm-link %t1.bc %t2.bc -o %t3.bc
-
- at b = alias void ()* @a
-
-define void @a() nounwind  {
-entry:
-	br label %return
-
-return:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasFnDecl2.ll b/libclamav/c++/llvm/test/Linker/2008-07-06-AliasFnDecl2.ll
deleted file mode 100644
index 2380dff..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasFnDecl2.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; This file is used by 2008-07-06-AliasFnDecl2.ll
-; RUN: true
-
-define void @c() nounwind  {
-entry:
-	call void @b( ) nounwind 
-	br label %return
-
-return:
-	ret void
-}
-
-declare void @b()
diff --git a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasWeakDest.ll b/libclamav/c++/llvm/test/Linker/2008-07-06-AliasWeakDest.ll
deleted file mode 100644
index e631175..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasWeakDest.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; PR2463
-; RUN: llvm-as %s -o %t1.bc
-; RUN: llvm-as %p/2008-07-06-AliasWeakDest2.ll -o %t2.bc
-; RUN: llvm-link %t1.bc %t2.bc -o %t3.bc
-; RUN: llvm-link %t2.bc %t1.bc -o %t4.bc
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
- at sched_clock = alias i64 ()* @native_sched_clock
-
- at foo = alias i32* @realfoo
- at realfoo = global i32 0
-
-define i64 @native_sched_clock() nounwind  {
-entry:
-        ret i64 0
-}
diff --git a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasWeakDest2.ll b/libclamav/c++/llvm/test/Linker/2008-07-06-AliasWeakDest2.ll
deleted file mode 100644
index e4e2bf3..0000000
--- a/libclamav/c++/llvm/test/Linker/2008-07-06-AliasWeakDest2.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; This file is used by 2008-07-06-AliasWeakDest2.ll
-; RUN: true
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
- at foo = weak global i32 2
-
-define i64 @sched_clock_cpu(i32 inreg  %cpu) nounwind  {
-entry:
-        %tmp = call i64 @sched_clock( ) nounwind                ; <i64>
-        ret i64 %tmp
-}
-
-define weak i64 @sched_clock() {
-entry:
-        ret i64 1
-}
diff --git a/libclamav/c++/llvm/test/Linker/AppendingLinkage.ll b/libclamav/c++/llvm/test/Linker/AppendingLinkage.ll
deleted file mode 100644
index da08ca0..0000000
--- a/libclamav/c++/llvm/test/Linker/AppendingLinkage.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; Test that appending linkage works correctly.
-
-; RUN: echo {@X = appending global \[1 x i32\] \[i32 8\] } | \
-; RUN:   llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep 7 | grep 4 | grep 8
-
- at X = appending global [2 x i32] [ i32 7, i32 4 ]		; <[2 x i32]*> [#uses=2]
- at Y = global i32* getelementptr ([2 x i32]* @X, i64 0, i64 0)		; <i32**> [#uses=0]
-
-define void @foo(i64 %V) {
-	%Y = getelementptr [2 x i32]* @X, i64 0, i64 %V		; <i32*> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/AppendingLinkage2.ll b/libclamav/c++/llvm/test/Linker/AppendingLinkage2.ll
deleted file mode 100644
index fddc494..0000000
--- a/libclamav/c++/llvm/test/Linker/AppendingLinkage2.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; Test that appending linkage works correctly when arrays are the same size.
-
-; RUN: echo {@X = appending global \[1 x i32\] \[i32 8\] } | \
-; RUN:   llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep 7 | grep 8
-
- at X = appending global [1 x i32] [ i32 7 ]		; <[1 x i32]*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/Linker/ConstantGlobals1.ll b/libclamav/c++/llvm/test/Linker/ConstantGlobals1.ll
deleted file mode 100644
index 5d42f4b..0000000
--- a/libclamav/c++/llvm/test/Linker/ConstantGlobals1.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Test that appending linkage works correctly when arrays are the same size.
-
-; RUN: echo {@X = constant \[1 x i32\] \[i32 8\] } | \
-; RUN:   llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep constant
-
- at X = external global [1 x i32]		; <[1 x i32]*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/Linker/ConstantGlobals2.ll b/libclamav/c++/llvm/test/Linker/ConstantGlobals2.ll
deleted file mode 100644
index 9cd6bdb..0000000
--- a/libclamav/c++/llvm/test/Linker/ConstantGlobals2.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Test that appending linkage works correctly when arrays are the same size.
-
-; RUN: echo {@X = external global \[1 x i32\] } | \
-; RUN:   llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep constant
-
- at X = constant [1 x i32] [ i32 12 ]		; <[1 x i32]*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/Linker/ConstantGlobals3.ll b/libclamav/c++/llvm/test/Linker/ConstantGlobals3.ll
deleted file mode 100644
index f9aa07d..0000000
--- a/libclamav/c++/llvm/test/Linker/ConstantGlobals3.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; Test that appending linkage works correctly when arrays are the same size.
-
-; RUN: echo {@X = external constant \[1 x i32\] } | \
-; RUN:   llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis | grep constant
-
- at X = external global [1 x i32]		; <[1 x i32]*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/Linker/LinkOnce.ll b/libclamav/c++/llvm/test/Linker/LinkOnce.ll
deleted file mode 100644
index 5befd77..0000000
--- a/libclamav/c++/llvm/test/Linker/LinkOnce.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; This fails because the linker renames the non-opaque type not the opaque 
-; one...
-
-; RUN: echo "@X = linkonce global i32 8" | llvm-as > %t.2.bc
-; RUN: llvm-as < %s > %t.1.bc
-; RUN: llvm-link %t.1.bc %t.2.bc | llvm-dis
-
- at X = linkonce global i32 7		; <i32*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/Linker/basiclink.ll b/libclamav/c++/llvm/test/Linker/basiclink.ll
deleted file mode 100644
index afe0320..0000000
--- a/libclamav/c++/llvm/test/Linker/basiclink.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; Test linking two functions with different prototypes and two globals 
-; in different modules. This is for PR411
-; RUN: llvm-as %s -o %t.bar.bc
-; RUN: echo {define i32* @foo(i32 %x) \{ ret i32* @baz \} \
-; RUN:   @baz = external global i32 } | llvm-as -o %t.foo.bc
-; RUN: llvm-link %t.bar.bc %t.foo.bc -o %t.bc
-; RUN: llvm-link %t.foo.bc %t.bar.bc -o %t.bc
-declare i32* @foo(...)
-define i32* @bar() {
-	%ret = call i32* (...)* @foo( i32 123 )
-	ret i32* %ret
-}
- at baz = global i32 0
diff --git a/libclamav/c++/llvm/test/Linker/dg.exp b/libclamav/c++/llvm/test/Linker/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Linker/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Linker/link-archive.ll b/libclamav/c++/llvm/test/Linker/link-archive.ll
deleted file mode 100644
index 6696fcc..0000000
--- a/libclamav/c++/llvm/test/Linker/link-archive.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; Test linking of a bc file to an archive via llvm-ld. 
-; PR1434
-; RUN: llvm-as %s -o %t.bar.bc
-; RUN: echo {define i32* @foo(i32 %x) \{ ret i32* @baz \} \
-; RUN:   @baz = external global i32 } | llvm-as -o %t.foo.bc
-; RUN: llvm-ar rcf %t.foo.a %t.foo.bc
-; RUN: llvm-ar rcf %t.bar.a %t.bar.bc
-; RUN: llvm-ld -disable-opt %t.bar.bc %t.foo.a -o %t.bc 
-; RUN: llvm-ld -disable-opt %t.foo.bc %t.bar.a -o %t.bc
-declare i32* @foo(...)
-define i32* @bar() {
-	%ret = call i32* (...)* @foo( i32 123 )
-	ret i32* %ret
-}
- at baz = global i32 0
diff --git a/libclamav/c++/llvm/test/Linker/link-global-to-func.ll b/libclamav/c++/llvm/test/Linker/link-global-to-func.ll
deleted file mode 100644
index a805035..0000000
--- a/libclamav/c++/llvm/test/Linker/link-global-to-func.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as %s -o %t1.bc
-; RUN: echo {declare void @__eprintf(i8*, i8*, i32, i8*) noreturn     define void @foo() {      tail call void @__eprintf( i8* undef, i8* undef, i32 4, i8* null ) noreturn nounwind       unreachable }} | llvm-as -o %t2.bc
-; RUN: llvm-link %t2.bc %t1.bc -o - | llvm-dis | grep __eprintf
-; RUN: llvm-link %t1.bc %t2.bc -o - | llvm-dis | grep __eprintf
-
-; rdar://6072702
-
- at __eprintf = external global i8*		; <i8**> [#uses=1]
-
-define i8* @test() {
-	%A = load i8** @__eprintf		; <i8*> [#uses=1]
-	ret i8* %A
-}
diff --git a/libclamav/c++/llvm/test/Linker/link-messages.ll b/libclamav/c++/llvm/test/Linker/link-messages.ll
deleted file mode 100644
index 920782d..0000000
--- a/libclamav/c++/llvm/test/Linker/link-messages.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; Test that linking two files with the same definition causes an error and
-; that error is printed out.
-; RUN: llvm-as %s -o %t.one.bc
-; RUN: llvm-as %s -o %t.two.bc
-; RUN: not llvm-ld -disable-opt -link-as-library %t.one.bc %t.two.bc \
-; RUN:   -o %t.bc 2>%t.err 
-; RUN: grep "symbol multiply defined" %t.err
-
-define i32 @bar() {
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Linker/linkmdnode.ll b/libclamav/c++/llvm/test/Linker/linkmdnode.ll
deleted file mode 100644
index be74550..0000000
--- a/libclamav/c++/llvm/test/Linker/linkmdnode.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < %p/linkmdnode2.ll > %t2.bc
-; RUN: llvm-link %t.bc %t2.bc
-
-
-!21 = metadata !{i32 42, metadata !"foobar"}
-
-declare i8 @llvm.something(metadata %a)
-define void @foo() {
-  %x = call i8 @llvm.something(metadata !21)
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Linker/linkmdnode2.ll b/libclamav/c++/llvm/test/Linker/linkmdnode2.ll
deleted file mode 100644
index 54a5a57..0000000
--- a/libclamav/c++/llvm/test/Linker/linkmdnode2.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; This file is used by linkmdnode.ll, so it doesn't actually do anything itself
-;
-; RUN: true
-
-!22 = metadata !{i32 42, metadata !"foobar"}
-
-declare i8 @llvm.something(metadata %a)
-define void @foo1() {
-  ;; Intrinsic using MDNode and MDString
-  %x = call i8 @llvm.something(metadata !22)
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Linker/linknamedmdnode.ll b/libclamav/c++/llvm/test/Linker/linknamedmdnode.ll
deleted file mode 100644
index 455b3b8..0000000
--- a/libclamav/c++/llvm/test/Linker/linknamedmdnode.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < %p/linknamedmdnode2.ll > %t2.bc
-; RUN: llvm-link %t.bc %t2.bc | llvm-dis | grep "!llvm.stuff = !{!0, !1}"
-
-!0 = metadata !{i32 42}
-!llvm.stuff = !{!0}
diff --git a/libclamav/c++/llvm/test/Linker/linknamedmdnode2.ll b/libclamav/c++/llvm/test/Linker/linknamedmdnode2.ll
deleted file mode 100644
index d16f62a..0000000
--- a/libclamav/c++/llvm/test/Linker/linknamedmdnode2.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; This file is used by linknamedmdnode.ll, so it doesn't actually do anything itself
-;
-; RUN: true
-
-!0 = metadata !{i32 41}
-!llvm.stuff = !{!0}
diff --git a/libclamav/c++/llvm/test/Linker/redefinition.ll b/libclamav/c++/llvm/test/Linker/redefinition.ll
deleted file mode 100644
index 0d05689..0000000
--- a/libclamav/c++/llvm/test/Linker/redefinition.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; Test linking two functions with different prototypes and two globals 
-; in different modules.
-; RUN: llvm-as %s -o %t.foo1.bc
-; RUN: llvm-as %s -o %t.foo2.bc
-; RUN: echo {define void @foo(i32 %x) { ret void }} | llvm-as -o %t.foo3.bc
-; RUN: not llvm-link %t.foo1.bc %t.foo2.bc -o %t.bc |& \
-; RUN:   grep {symbol multiply defined}
-; RUN: not llvm-link %t.foo1.bc %t.foo3.bc -o %t.bc |& \
-; RUN:   grep {symbol multiply defined}
-define void @foo() { ret void }
diff --git a/libclamav/c++/llvm/test/Linker/testlink1.ll b/libclamav/c++/llvm/test/Linker/testlink1.ll
deleted file mode 100644
index 4a94025..0000000
--- a/libclamav/c++/llvm/test/Linker/testlink1.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < %p/testlink2.ll > %t2.bc
-; RUN: llvm-link %t.bc %t2.bc
-
- at MyVar = external global i32		; <i32*> [#uses=3]
- at MyIntList = global { \2*, i32 } { { \2*, i32 }* null, i32 17 }		; <{ \2*, i32 }*> [#uses=1]
-external global i32		; <i32*>:0 [#uses=0]
- at Inte = global i32 1		; <i32*> [#uses=0]
- at AConst = linkonce constant i32 123		; <i32*> [#uses=0]
- at Intern1 = internal constant i32 42		; <i32*> [#uses=0]
- at Intern2 = internal constant i32 792		; <i32*> [#uses=0]
- at MyVarPtr = linkonce global { i32* } { i32* @MyVar }		; <{ i32* }*> [#uses=0]
-
-declare i32 @foo(i32)
-
-declare void @print(i32)
-
-define void @main() {
-	%v1 = load i32* @MyVar		; <i32> [#uses=1]
-	call void @print( i32 %v1 )
-	%idx = getelementptr { \2*, i32 }* @MyIntList, i64 0, i32 1		; <i32*> [#uses=2]
-	%v2 = load i32* %idx		; <i32> [#uses=1]
-	call void @print( i32 %v2 )
-	call i32 @foo( i32 5 )		; <i32>:1 [#uses=0]
-	%v3 = load i32* @MyVar		; <i32> [#uses=1]
-	call void @print( i32 %v3 )
-	%v4 = load i32* %idx		; <i32> [#uses=1]
-	call void @print( i32 %v4 )
-	ret void
-}
-
-define internal void @testintern() {
-	ret void
-}
-
-define internal void @Testintern() {
-	ret void
-}
-
-define void @testIntern() {
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Linker/testlink2.ll b/libclamav/c++/llvm/test/Linker/testlink2.ll
deleted file mode 100644
index d243e3c..0000000
--- a/libclamav/c++/llvm/test/Linker/testlink2.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; This file is used by testlink1.ll, so it doesn't actually do anything itself
-;
-; RUN: true
-
- at MyVar = global i32 4		; <i32*> [#uses=2]
- at MyIntList = external global { \2*, i32 }		; <{ \2*, i32 }*> [#uses=2]
- at AConst = constant i32 123		; <i32*> [#uses=0]
-
-;; Intern in both testlink[12].ll
- at Intern1 = internal constant i32 52		; <i32*> [#uses=0]
-
-;; Intern in one but not in other
- at Intern2 = constant i32 12345		; <i32*> [#uses=0]
-
- at MyIntListPtr = constant { { \2*, i32 }* } { { \2*, i32 }* @MyIntList }		; <{ { \2*, i32 }* }*> [#uses=0]
- at MyVarPtr = linkonce global { i32* } { i32* @MyVar }		; <{ i32* }*> [#uses=0]
-constant i32 412		; <i32*>:0 [#uses=1]
-
-define i32 @foo(i32 %blah) {
-	store i32 %blah, i32* @MyVar
-	%idx = getelementptr { \2*, i32 }* @MyIntList, i64 0, i32 1		; <i32*> [#uses=1]
-	store i32 12, i32* %idx
-	%ack = load i32* @0		; <i32> [#uses=1]
-	%fzo = add i32 %ack, %blah		; <i32> [#uses=1]
-	ret i32 %fzo
-}
-
-declare void @unimp(float, double)
-
-define internal void @testintern() {
-	ret void
-}
-
-define void @Testintern() {
-	ret void
-}
-
-define internal void @testIntern() {
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Linker/weakextern.ll b/libclamav/c++/llvm/test/Linker/weakextern.ll
deleted file mode 100644
index aa38b12..0000000
--- a/libclamav/c++/llvm/test/Linker/weakextern.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-as < %p/testlink1.ll > %t2.bc
-; RUN: llvm-link %t.bc %t.bc %t2.bc -o %t1.bc
-; RUN: llvm-dis < %t1.bc | grep {kallsyms_names = extern_weak}
-; RUN: llvm-dis < %t1.bc | grep {MyVar = external global i32}
-; RUN: llvm-dis < %t1.bc | grep {Inte = global i32}
-
- at kallsyms_names = extern_weak global [0 x i8]		; <[0 x i8]*> [#uses=0]
- at MyVar = extern_weak global i32		; <i32*> [#uses=0]
- at Inte = extern_weak global i32		; <i32*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/assignment.s b/libclamav/c++/llvm/test/MC/AsmParser/assignment.s
deleted file mode 100644
index 882fae8..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/assignment.s
+++ /dev/null
@@ -1,7 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: a = 0
-TEST0:  
-        a = 0
-        
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/conditional_asm.s b/libclamav/c++/llvm/test/MC/AsmParser/conditional_asm.s
deleted file mode 100644
index b9ff670..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/conditional_asm.s
+++ /dev/null
@@ -1,12 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s -I  %p | FileCheck %s
-
-# CHECK: .byte (1 + 1)
-.if 1+2
-    .if 1-1
-        .byte 1
-    .elseif 2+2
-        .byte 1+1
-    .else
-        .byte 0
-    .endif
-.endif
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/dg.exp b/libclamav/c++/llvm/test/MC/AsmParser/dg.exp
deleted file mode 100644
index ca6aefe..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/dg.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target X86] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{s}]]
-}
-
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_abort.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_abort.s
deleted file mode 100644
index 3eb8e96..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_abort.s
+++ /dev/null
@@ -1,6 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s 2> %t
-# RUN: FileCheck -input-file %t %s
-
-# CHECK: .abort "please stop assembing"
-TEST0:  
-	.abort       "please stop assembing"
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_align.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_align.s
deleted file mode 100644
index 7213086..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_align.s
+++ /dev/null
@@ -1,16 +0,0 @@
-# RUN: llvm-mc -triple i386-apple-darwin9 %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .align 1
-TEST0:  
-        .align 1
-
-# CHECK: TEST1:
-# CHECK: .p2alignl 3, 0, 2
-TEST1:  
-        .align32 3,,2
-
-# CHECK: TEST2:
-# CHECK: .balign 3, 10
-TEST2:  
-        .balign 3,10
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_ascii.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_ascii.s
deleted file mode 100644
index cc6d23b..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_ascii.s
+++ /dev/null
@@ -1,49 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-        .data
-# CHECK: TEST0:
-TEST0:  
-        .ascii
-
-# CHECK: TEST1:
-TEST1:  
-        .asciz
-
-# CHECK: TEST2:
-# CHECK: .byte 65
-TEST2:  
-        .ascii "A"
-
-# CHECK: TEST3:
-# CHECK: .byte 66
-# CHECK: .byte 0
-# CHECK: .byte 67
-# CHECK: .byte 0
-TEST3:  
-        .asciz "B", "C"
-        
-# CHECK: TEST4:
-# CHECK: .byte 1
-# CHECK: .byte 1
-# CHECK: .byte 7
-# CHECK: .byte 0
-# CHECK: .byte 56
-# CHECK: .byte 1
-# CHECK: .byte 0
-# CHECK: .byte 49
-# CHECK: .byte 128
-# CHECK: .byte 0
-TEST4:  
-        .ascii "\1\01\07\08\001\0001\200\0"
-        
-# CHECK: TEST5:
-# CHECK: .byte 8
-# CHECK: .byte 12
-# CHECK: .byte 10
-# CHECK: .byte 13
-# CHECK: .byte 9
-# CHECK: .byte 92
-# CHECK: .byte 34
-TEST5:
-        .ascii "\b\f\n\r\t\\\""
-        
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_comm.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_comm.s
deleted file mode 100644
index 6cc7937..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_comm.s
+++ /dev/null
@@ -1,8 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .comm a,6,2
-# CHECK: .comm b,8
-TEST0:  
-        .comm a, 4+2, 2
-        .comm b,8
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_darwin_section.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_darwin_section.s
deleted file mode 100644
index 4fea2ea..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_darwin_section.s
+++ /dev/null
@@ -1,4 +0,0 @@
-# RUN: llvm-mc -triple i386-apple-darwin9 %s | FileCheck %s
-
-# CHECK: .section __DWARF,__debug_frame,regular,debug
-	.section	__DWARF,__debug_frame,regular,debug
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_desc.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_desc.s
deleted file mode 100644
index 992455c..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_desc.s
+++ /dev/null
@@ -1,8 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .desc foo,16
-# CHECK: .desc bar,4
-TEST0:  
-	.desc foo,0x10
-	.desc     bar, 1 +3
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_file.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_file.s
deleted file mode 100644
index ec0b954..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_file.s
+++ /dev/null
@@ -1,5 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s
-# FIXME: Actually test the output.
-
-        .file "hello"
-        .file 1 "world"
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_fill.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_fill.s
deleted file mode 100644
index 60bd468..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_fill.s
+++ /dev/null
@@ -1,17 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .byte 10
-TEST0:  
-        .fill 1, 1, 10
-
-# CHECK: TEST1:
-# CHECK: .short 3
-# CHECK: .short 3
-TEST1:  
-        .fill 2, 2, 3
-
-# CHECK: TEST2:
-# CHECK: .quad 4
-TEST2:  
-        .fill 1, 8, 4
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_include.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_include.s
deleted file mode 100644
index fabd941..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_include.s
+++ /dev/null
@@ -1,9 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s -I  %p | FileCheck %s
-
-# CHECK: TESTA:
-# CHECK: TEST0:
-# CHECK: a = 0
-# CHECK: TESTB:
-TESTA:  
-	.include       "directive_set.s"
-TESTB:
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_lcomm.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_lcomm.s
deleted file mode 100644
index d38805f..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_lcomm.s
+++ /dev/null
@@ -1,10 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .zerofill __DATA,__bss,a,7,4
-# CHECK: .zerofill __DATA,__bss,b,8
-# CHECK: .zerofill __DATA,__bss,c,0
-TEST0:  
-        .lcomm a, 8-1, 4
-        .lcomm b,8
-        .lcomm  c,  0
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_line.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_line.s
deleted file mode 100644
index 94ce446..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_line.s
+++ /dev/null
@@ -1,5 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s
-# FIXME: Actually test the output.
-
-        .line
-        .line 1
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_loc.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_loc.s
deleted file mode 100644
index b122fdc..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_loc.s
+++ /dev/null
@@ -1,8 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s
-# FIXME: Actually test the output.
-
-        .file 1 "hello"
-        .loc 1
-        .loc 1 2
-        .loc 1 2 3
-
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_lsym.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_lsym.s
deleted file mode 100644
index 7b70cac..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_lsym.s
+++ /dev/null
@@ -1,13 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# FIXME: This is currently unsupported. If it turns out no one uses it, we
-# should just rip it out.
-        
-# XFAIL: *
-
-# CHECK: TEST0:
-# CHECK: .lsym bar,foo
-# CHECK: .lsym baz,3
-TEST0:  
-        .lsym   bar, foo
-        .lsym baz, 2+1
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_org.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_org.s
deleted file mode 100644
index f4414c3..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_org.s
+++ /dev/null
@@ -1,11 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .org 1, 0
-TEST0:  
-        .org 1
-
-# CHECK: TEST1:
-# CHECK: .org 1, 3
-TEST1:  
-        .org 1, 3
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_set.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_set.s
deleted file mode 100644
index f1fc30a..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_set.s
+++ /dev/null
@@ -1,7 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: a = 0
-TEST0:  
-        .set a, 0
-        
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_space.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_space.s
deleted file mode 100644
index a897654..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_space.s
+++ /dev/null
@@ -1,12 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .byte 0
-TEST0:  
-        .space 1
-
-# CHECK: TEST1:
-# CHECK: .byte 3
-# CHECK: .byte 3
-TEST1:  
-        .space 2, 3
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_subsections_via_symbols.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_subsections_via_symbols.s
deleted file mode 100644
index 38d69c9..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_subsections_via_symbols.s
+++ /dev/null
@@ -1,6 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .subsections_via_symbols
-TEST0:  
-	.subsections_via_symbols
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_symbol_attrs.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_symbol_attrs.s
deleted file mode 100644
index 99ef3b8..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_symbol_attrs.s
+++ /dev/null
@@ -1,7 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .globl a
-# CHECK: .globl b
-TEST0:  
-        .globl a, b
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_values.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_values.s
deleted file mode 100644
index 900fb73..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_values.s
+++ /dev/null
@@ -1,26 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .byte 0
-TEST0:  
-        .byte 0
-
-# CHECK: TEST1:
-# CHECK: .short 3
-TEST1:  
-        .short 3
-
-# CHECK: TEST2:
-# CHECK: .long 8
-TEST2:  
-        .long 8
-
-# CHECK: TEST3:
-# CHECK: .quad 9
-TEST3:  
-        .quad 9
-
-# CHECK: TEST4:
-# CHECK: .short 3
-TEST4:  
-        .word 3
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/directive_zerofill.s b/libclamav/c++/llvm/test/MC/AsmParser/directive_zerofill.s
deleted file mode 100644
index 4b26f9b..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/directive_zerofill.s
+++ /dev/null
@@ -1,10 +0,0 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# CHECK: TEST0:
-# CHECK: .zerofill __FOO,__bar,x,1
-# CHECK: .zerofill __FOO,__bar,y,8,2
-# CHECK: .zerofill __EMPTY,__NoSymbol
-TEST0:  
-	.zerofill __FOO, __bar, x, 2-1
-	.zerofill __FOO,   __bar, y ,  8 , 1+1
-	.zerofill __EMPTY,__NoSymbol
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/exprs-invalid.s b/libclamav/c++/llvm/test/MC/AsmParser/exprs-invalid.s
deleted file mode 100644
index 5358fc5..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/exprs-invalid.s
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: not llvm-mc -triple i386-unknown-unknown %s 2> %t
-// RUN: FileCheck -input-file %t %s
-
-// Currently XFAIL'ed, since the front-end isn't validating this. Figure out the
-// right resolution.
-//
-// XFAIL: *
-
-        .text
-a:
-        .data
-// CHECK: expected relocatable expression
-        .long -(0 + a)
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/exprs.s b/libclamav/c++/llvm/test/MC/AsmParser/exprs.s
deleted file mode 100644
index 5fa4a37..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/exprs.s
+++ /dev/null
@@ -1,62 +0,0 @@
-// FIXME: For now this test just checks that llvm-mc -triple i386-unknown-unknown works. Once we have .macro,
-// .if, and .abort we can write a better test (without resorting to miles of
-// greps).
-        
-// RUN: llvm-mc -triple i386-unknown-unknown %s > %t
-
-        .text
-g:
-h:
-j:
-k:      
-        .data
-        .byte !1 + 2
-        .byte !0
-        .byte ~0
-        .byte -1
-        .byte +1
-        .byte 1 + 2
-        .byte 1 & 3
-        .byte 4 / 2
-        .byte 4 / -2
-        .byte 1 == 1
-        .byte 1 == 0
-        .byte 1 > 0
-        .byte 1 >= 1
-        .byte 1 < 2
-        .byte 1 <= 1
-        .byte 4 % 3
-        .byte 2 * 2
-        .byte 2 != 2
-        .byte 2 <> 2
-        .byte 1 | 2
-        .byte 1 << 1
-        .byte 2 >> 1
-        .byte ~0 >> 1
-        .byte 3 - 2
-        .byte 1 ^ 3
-        .byte 1 && 2
-        .byte 3 && 0
-        .byte 1 || 2
-        .byte 0 || 0
-
-        .set c, 10
-        .byte c + 1
-
-        d = e + 10
-        .long d
-
-        f = g - h + 5
-        .long f
-
-        i = (j + 10) - (k + 2)
-        .long i
-        
-        l = m - n + 4
-        
-        .text
-m:
-n:
-        nop
-        
-        
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/hello.s b/libclamav/c++/llvm/test/MC/AsmParser/hello.s
deleted file mode 100644
index 81bca6d..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/hello.s
+++ /dev/null
@@ -1,27 +0,0 @@
-// RUN: llvm-mc -triple i386-unknown-unknown %s -o -
-        
-	.text
-	.align	4,0x90
-	.globl	_main
-_main:
-	pushl	%ebp
-	movl	%esp, %ebp
-	subl	$8, %esp
-	call	"L1$pb"
-"L1$pb":
-	popl	%eax
-	movl	$0, -4(%ebp)
-	movl	%esp, %ecx
-	leal	L_.str-"L1$pb"(%eax), %eax
-	movl	%eax, (%ecx)
-	call	_printf
-	movl	$0, -4(%ebp)
-	movl	-4(%ebp), %eax
-	addl	$8, %esp
-	popl	%ebp
-	ret
-	.subsections_via_symbols
-	.cstring
-L_.str:
-	.asciz	"hello world!\n"
-
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/labels.s b/libclamav/c++/llvm/test/MC/AsmParser/labels.s
deleted file mode 100644
index ac8025f..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/labels.s
+++ /dev/null
@@ -1,59 +0,0 @@
-// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-        .data
-// CHECK: a:
-a:
-        .long 0
-// CHECK: b:
-"b":
-        .long 0
-// CHECK: "a$b":
-"a$b":
-        .long 0
-
-        .text
-foo:    
-// CHECK: addl $24, "a$b"(%eax)
-        addl $24, "a$b"(%eax)    
-// CHECK: addl $24, ("a$b" + 10)(%eax)
-        addl $24, ("a$b" + 10)(%eax)
-        
-// CHECK: "b$c" = 10
-"b$c" = 10
-// CHECK: addl $"b$c", %eax
-        addl "b$c", %eax
-        
-// CHECK: "a 0" = 11
-        .set "a 0", 11
-        
-// CHECK: .long "a 0"
-        .long "a 0"
-
-// XXCHCK: .section "a 1,a 2"
-//.section "a 1", "a 2"
-
-// CHECK: .globl "a 3"
-        .globl "a 3"
-
-// CHECK: .weak "a 4"
-        .weak "a 4"
-
-// CHECK: .desc "a 5",1
-        .desc "a 5", 1
-
-// CHECK: .comm "a 6",1
-        .comm "a 6", 1
-
-// CHECK: .zerofill __DATA,__bss,"a 7",1,0
-        .lcomm "a 7", 1
-
-// FIXME: We don't bother to support .lsym.
-        
-// CHECX: .lsym "a 8",1
-//        .lsym "a 8", 1
-
-// CHECK: "a 9" = (a - b)
-        .set "a 9", a - b
-        
-// CHECK: .long "a 9"
-        .long "a 9"
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/x86_instructions.s b/libclamav/c++/llvm/test/MC/AsmParser/x86_instructions.s
deleted file mode 100644
index 4c5b698..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/x86_instructions.s
+++ /dev/null
@@ -1,58 +0,0 @@
-// FIXME: Switch back to FileCheck once we print actual instructions
-        
-// RUN: llvm-mc -triple x86_64-unknown-unknown %s | FileCheck %s
-
-// CHECK: subb %al, %al
-        subb %al, %al
-
-// CHECK: addl $24, %eax
-        addl $24, %eax
-
-// CHECK: movl %eax, 10(%ebp)
-        movl %eax, 10(%ebp)
-// CHECK: movl %eax, 10(%ebp,%ebx)
-        movl %eax, 10(%ebp, %ebx)
-// CHECK: movl %eax, 10(%ebp,%ebx,4)
-        movl %eax, 10(%ebp, %ebx, 4)
-// CHECK: movl %eax, 10(,%ebx,4)
-        movl %eax, 10(, %ebx, 4)
-
-// FIXME: Check that this matches SUB32ri8
-// CHECK: subl $1, %eax
-        subl $1, %eax
-        
-// FIXME: Check that this matches SUB32ri8
-// CHECK: subl $-1, %eax
-        subl $-1, %eax
-        
-// FIXME: Check that this matches SUB32ri
-// CHECK: subl $256, %eax
-        subl $256, %eax
-
-// FIXME: Check that this matches XOR64ri8
-// CHECK: xorq $1, %rax
-        xorq $1, %rax
-        
-// FIXME: Check that this matches XOR64ri32
-// CHECK: xorq $256, %rax
-        xorq $256, %rax
-
-// FIXME: Check that this matches SUB8rr
-// CHECK: subb %al, %bl
-        subb %al, %bl
-
-// FIXME: Check that this matches SUB16rr
-// CHECK: subw %ax, %bx
-        subw %ax, %bx
-        
-// FIXME: Check that this matches SUB32rr
-// CHECK: subl %eax, %ebx
-        subl %eax, %ebx
-        
-// FIXME: Check that this matches the correct instruction.
-// CHECK: call *%rax
-        call *%rax
-
-// FIXME: Check that this matches the correct instruction.
-// CHECK: shldl %cl, %eax, %ebx
-        shldl %cl, %eax, %ebx
diff --git a/libclamav/c++/llvm/test/MC/AsmParser/x86_operands.s b/libclamav/c++/llvm/test/MC/AsmParser/x86_operands.s
deleted file mode 100644
index f21cf34..0000000
--- a/libclamav/c++/llvm/test/MC/AsmParser/x86_operands.s
+++ /dev/null
@@ -1,58 +0,0 @@
-// FIXME: Actually test that we get the expected results.
-        
-// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-
-# Immediates
-# CHECK: addl $1, %eax
-        addl $1, %eax
-# CHECK: addl $(1 + 2), %eax
-        addl $(1+2), %eax
-# CHECK: addl $a, %eax
-        addl $a, %eax
-# CHECK: addl $(1 + 2), %eax
-        addl $1 + 2, %eax
-        
-# Disambiguation
-
-        # FIXME: Add back when we can match this.
-        #addl $1, 4+4
-        # FIXME: Add back when we can match this.
-        #addl $1, (4+4)
-# CHECK: addl $1, (4 + 4)(%eax)
-        addl $1, 4+4(%eax)
-# CHECK: addl $1, (4 + 4)(%eax)
-        addl $1, (4+4)(%eax)
-# CHECK: addl $1, 8(%eax)
-        addl $1, 8(%eax)
-# CHECK: addl $1, 0(%eax)
-        addl $1, (%eax)
-# CHECK: addl $1, (4 + 4)(,%eax)
-        addl $1, (4+4)(,%eax)
-        
-# Indirect Memory Operands
-# CHECK: addl $1, 1(%eax)
-        addl $1, 1(%eax)
-# CHECK: addl $1, 1(%eax,%ebx)
-        addl $1, 1(%eax,%ebx)
-# CHECK: addl $1, 1(%eax,%ebx)
-        addl $1, 1(%eax,%ebx,)
-# CHECK: addl $1, 1(%eax,%ebx,4)
-        addl $1, 1(%eax,%ebx,4)
-# CHECK: addl $1, 1(,%ebx)
-        addl $1, 1(,%ebx)
-# CHECK: addl $1, 1(,%ebx)
-        addl $1, 1(,%ebx,)
-# CHECK: addl $1, 1(,%ebx,4)
-        addl $1, 1(,%ebx,4)
-# CHECK: addl $1, 1(,%ebx,4)
-        addl $1, 1(,%ebx,(2+2))
-
-# '*'
-# CHECK: call a
-        call a
-# CHECK: call *%eax
-        call *%eax
-# CHECK: call *4(%eax)
-        call *4(%eax)
-
-        
diff --git a/libclamav/c++/llvm/test/MC/MachO/comm-1.s b/libclamav/c++/llvm/test/MC/MachO/comm-1.s
deleted file mode 100644
index e979fb1..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/comm-1.s
+++ /dev/null
@@ -1,114 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-        .comm           sym_comm_B, 2
-        .comm           sym_comm_A, 4
-        .comm           sym_comm_C, 8, 2
-        .comm           sym_comm_D, 2, 3
-
-        .no_dead_strip sym_comm_C
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 228)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 124)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 0)
-// CHECK:   ('file_offset', 256)
-// CHECK:   ('file_size', 0)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 1)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 256)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 256)
-// CHECK:   ('nsyms', 4)
-// CHECK:   ('stroff', 304)
-// CHECK:   ('strsize', 48)
-// CHECK:   ('_string_data', '\x00sym_comm_B\x00sym_comm_A\x00sym_comm_C\x00sym_comm_D\x00\x00\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 12)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 4)
-// CHECK:     ('_string', 'sym_comm_A')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 2)
-// CHECK:     ('_string', 'sym_comm_B')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 23)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 544)
-// CHECK:     ('n_value', 8)
-// CHECK:     ('_string', 'sym_comm_C')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 34)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 768)
-// CHECK:     ('n_value', 2)
-// CHECK:     ('_string', 'sym_comm_D')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 0)
-// CHECK:   ('iextdefsym', 0)
-// CHECK:   ('nextdefsym', 0)
-// CHECK:   ('iundefsym', 0)
-// CHECK:   ('nundefsym', 4)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/data.s b/libclamav/c++/llvm/test/MC/MachO/data.s
deleted file mode 100644
index 0ff2854..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/data.s
+++ /dev/null
@@ -1,67 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-        .data
-        .ascii "hello"
-        .byte 0xAB
-        .short 0xABCD
-        .long 0xABCDABCD
-        .quad 0xABCDABCDABCDABCD
-.org 30
-        .long 0xF000            // 34
-        .p2align  3, 0xAB       // 40 (0xAB * 6)
-        .short 0                // 42
-        .p2alignw 3, 0xABCD     // 48 (0xABCD * 2)
-        .short 0                // 50
-        .p2alignw 3, 0xABCD, 5  // 50
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 192)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 192)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 50)
-// CHECK:   ('file_offset', 220)
-// CHECK:   ('file_size', 50)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 2)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 220)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 50)
-// CHECK:     ('offset', 220)
-// CHECK:     ('alignment', 3)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
-
-// FIXME: Dump contents, so we can check those too.
diff --git a/libclamav/c++/llvm/test/MC/MachO/dg.exp b/libclamav/c++/llvm/test/MC/MachO/dg.exp
deleted file mode 100644
index ca6aefe..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/dg.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target X86] } {
-  RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{s}]]
-}
-
diff --git a/libclamav/c++/llvm/test/MC/MachO/lcomm-attributes.s b/libclamav/c++/llvm/test/MC/MachO/lcomm-attributes.s
deleted file mode 100644
index 2685395..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/lcomm-attributes.s
+++ /dev/null
@@ -1,136 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-        // Note, this test intentionally mismatches Darwin 'as', which loses the
-	// following global marker.
-        //
-        // FIXME: We should probably warn about our interpretation of this.
-        .globl sym_lcomm_ext_A
-        .lcomm sym_lcomm_ext_A, 4
-        .lcomm sym_lcomm_ext_B, 4
-        .globl sym_lcomm_ext_B
-
-        .globl sym_zfill_ext_A
-        .zerofill __DATA, __bss, sym_zfill_ext_A, 4
-        .zerofill __DATA, __bss, sym_zfill_ext_B, 4
-        .globl sym_zfill_ext_B
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 192)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 16)
-// CHECK:   ('file_offset', 324)
-// CHECK:   ('file_size', 0)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 2)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 324)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 16)
-// CHECK:     ('offset', 0)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x1)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 324)
-// CHECK:   ('nsyms', 4)
-// CHECK:   ('stroff', 372)
-// CHECK:   ('strsize', 68)
-// CHECK:   ('_string_data', '\x00sym_lcomm_ext_A\x00sym_lcomm_ext_B\x00sym_zfill_ext_A\x00sym_zfill_ext_B\x00\x00\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lcomm_ext_A')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 17)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 4)
-// CHECK:     ('_string', 'sym_lcomm_ext_B')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 33)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 8)
-// CHECK:     ('_string', 'sym_zfill_ext_A')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 49)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 12)
-// CHECK:     ('_string', 'sym_zfill_ext_B')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 0)
-// CHECK:   ('iextdefsym', 0)
-// CHECK:   ('nextdefsym', 4)
-// CHECK:   ('iundefsym', 4)
-// CHECK:   ('nundefsym', 0)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/reloc.s b/libclamav/c++/llvm/test/MC/MachO/reloc.s
deleted file mode 100644
index e86ed8c..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/reloc.s
+++ /dev/null
@@ -1,227 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
-
-        .data
-        .long undef
-        .long (undef + 4)
-
-        .globl local_a_ext
-local_a_ext:
-        .long local_a_ext
-
-local_a:
-        .long 0
-local_a_elt:      
-        .long 0
-local_b:
-        .long local_b - local_c + 245
-        .long 0
-local_c:
-        .long 0
-
-
-        .long local_a_elt + 1
-        .long local_a_elt + 10
-        .short local_a_elt + 20
-        .byte local_a_elt + 89
-
-        .const
-
-        .long
-bar:    
-        .long local_a_elt - bar + 33
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 260)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 47)
-// CHECK:   ('file_offset', 392)
-// CHECK:   ('file_size', 47)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 3)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 392)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:   ('_section_data', '')
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 43)
-// CHECK:     ('offset', 392)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 440)
-// CHECK:     ('num_reloc', 9)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:     # Relocation 0
-// CHECK:     (('word-0', 0x8000002a),
-// CHECK:      ('word-1', 0x10)),
-// CHECK:     # Relocation 1
-// CHECK:     (('word-0', 0x90000028),
-// CHECK:      ('word-1', 0x10)),
-// CHECK:     # Relocation 2
-// CHECK:     (('word-0', 0xa0000024),
-// CHECK:      ('word-1', 0x10)),
-// CHECK:     # Relocation 3
-// CHECK:     (('word-0', 0xa0000020),
-// CHECK:      ('word-1', 0x10)),
-// CHECK:     # Relocation 4
-// CHECK:     (('word-0', 0xa4000014),
-// CHECK:      ('word-1', 0x14)),
-// CHECK:     # Relocation 5
-// CHECK:     (('word-0', 0xa1000000),
-// CHECK:      ('word-1', 0x1c)),
-// CHECK:     # Relocation 6
-// CHECK:     (('word-0', 0x8),
-// CHECK:      ('word-1', 0x4000002)),
-// CHECK:     # Relocation 7
-// CHECK:     (('word-0', 0x4),
-// CHECK:      ('word-1', 0xc000006)),
-// CHECK:     # Relocation 8
-// CHECK:     (('word-0', 0x0),
-// CHECK:      ('word-1', 0xc000006)),
-// CHECK:   ])
-// CHECK:   ('_section_data', '\x00\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x1a\x00\x00\x00$\x00i')
-// CHECK:     # Section 2
-// CHECK:    (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 43)
-// CHECK:     ('size', 4)
-// CHECK:     ('offset', 435)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 512)
-// CHECK:     ('num_reloc', 2)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:     # Relocation 0
-// CHECK:     (('word-0', 0xa4000000),
-// CHECK:      ('word-1', 0x10)),
-// CHECK:     # Relocation 1
-// CHECK:     (('word-0', 0xa1000000),
-// CHECK:      ('word-1', 0x2b)),
-// CHECK:   ])
-// CHECK:   ('_section_data', '\x06\x00\x00\x00')
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 528)
-// CHECK:   ('nsyms', 7)
-// CHECK:   ('stroff', 612)
-// CHECK:   ('strsize', 60)
-// CHECK:   ('_string_data', '\x00undef\x00local_a_ext\x00local_a\x00local_a_elt\x00local_b\x00local_c\x00bar\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 19)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 12)
-// CHECK:     ('_string', 'local_a')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 27)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 16)
-// CHECK:     ('_string', 'local_a_elt')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 39)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 20)
-// CHECK:     ('_string', 'local_b')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 47)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 28)
-// CHECK:     ('_string', 'local_c')
-// CHECK:    ),
-// CHECK:     # Symbol 4
-// CHECK:    (('n_strx', 55)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 3)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 43)
-// CHECK:     ('_string', 'bar')
-// CHECK:    ),
-// CHECK:     # Symbol 5
-// CHECK:    (('n_strx', 7)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 8)
-// CHECK:     ('_string', 'local_a_ext')
-// CHECK:    ),
-// CHECK:     # Symbol 6
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'undef')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 5)
-// CHECK:   ('iextdefsym', 5)
-// CHECK:   ('nextdefsym', 1)
-// CHECK:   ('iundefsym', 6)
-// CHECK:   ('nundefsym', 1)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/section-align-1.s b/libclamav/c++/llvm/test/MC/MachO/section-align-1.s
deleted file mode 100644
index 6a5e247..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/section-align-1.s
+++ /dev/null
@@ -1,87 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-name:
-        .byte 0
-
-        // Check that symbol table is aligned to 4 bytes.
-        
-        
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 228)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 124)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 1)
-// CHECK:   ('file_offset', 256)
-// CHECK:   ('file_size', 1)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 1)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 1)
-// CHECK:     ('offset', 256)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 260)
-// CHECK:   ('nsyms', 1)
-// CHECK:   ('stroff', 272)
-// CHECK:   ('strsize', 8)
-// CHECK:   ('_string_data', '\x00name\x00\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'name')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 1)
-// CHECK:   ('iextdefsym', 1)
-// CHECK:   ('nextdefsym', 0)
-// CHECK:   ('iundefsym', 1)
-// CHECK:   ('nundefsym', 0)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/section-align-2.s b/libclamav/c++/llvm/test/MC/MachO/section-align-2.s
deleted file mode 100644
index e070473..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/section-align-2.s
+++ /dev/null
@@ -1,137 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-        .byte 0
-
-        // There should be 3 padding bytes here.
-        
-        .data
-        .align 2
-foo:
-        .org 8
-bar:
-        .byte 0
-
-        .const
-baz:
-        
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 260)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 13)
-// CHECK:   ('file_offset', 392)
-// CHECK:   ('file_size', 13)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 3)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 1)
-// CHECK:     ('offset', 392)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 4)
-// CHECK:     ('size', 9)
-// CHECK:     ('offset', 396)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 2
-// CHECK:    (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 13)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 405)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 408)
-// CHECK:   ('nsyms', 3)
-// CHECK:   ('stroff', 444)
-// CHECK:   ('strsize', 16)
-// CHECK:   ('_string_data', '\x00foo\x00bar\x00baz\x00\x00\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 4)
-// CHECK:     ('_string', 'foo')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 5)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 12)
-// CHECK:     ('_string', 'bar')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 9)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 3)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 13)
-// CHECK:     ('_string', 'baz')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 3)
-// CHECK:   ('iextdefsym', 3)
-// CHECK:   ('nextdefsym', 0)
-// CHECK:   ('iundefsym', 3)
-// CHECK:   ('nundefsym', 0)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/sections.s b/libclamav/c++/llvm/test/MC/MachO/sections.s
deleted file mode 100644
index bcbd9f4..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/sections.s
+++ /dev/null
@@ -1,527 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-        .text
-	.section	__TEXT,__text,regular,pure_instructions
-        
-        .const
-        .static_const
-        .cstring
-        .literal4
-        .literal8
-        .literal16
-        .constructor
-        .destructor
-        .symbol_stub
-        .picsymbol_stub
-        .data
-        .static_data
-        .non_lazy_symbol_pointer
-        .lazy_symbol_pointer
-        .dyld
-        .mod_init_func
-        .mod_term_func
-        .const_data
-        .objc_class
-        .objc_meta_class
-        .objc_cat_cls_meth
-        .objc_cat_inst_meth
-        .objc_protocol
-        .objc_string_object
-        .objc_cls_meth
-        .objc_inst_meth
-        .objc_cls_refs
-        .objc_message_refs
-        .objc_symbols
-        .objc_category
-        .objc_class_vars
-        .objc_instance_vars
-        .objc_module_info
-
-// FIXME: These are aliases for __TEXT, __cstring which we don't properly unique
-//	yet.
-//        .objc_class_names
-//        .objc_meth_var_types
-//        .objc_meth_var_names
-        
-        .objc_selector_strs
-
-        .subsections_via_symbols
-        
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 2436)
-// CHECK: ('flag', 8192)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 2436)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 0)
-// CHECK:   ('file_offset', 2464)
-// CHECK:   ('file_size', 0)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 35)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 2
-// CHECK:    (('section_name', '__static_const\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 3
-// CHECK:    (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x2)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 4
-// CHECK:    (('section_name', '__literal4\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x3)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 5
-// CHECK:    (('section_name', '__literal8\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 3)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x4)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 6
-// CHECK:    (('section_name', '__literal16\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 4)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0xe)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 7
-// CHECK:    (('section_name', '__constructor\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 8
-// CHECK:    (('section_name', '__destructor\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 9
-// CHECK:    (('section_name', '__symbol_stub\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000008)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 16)
-// CHECK:    ),
-// CHECK:     # Section 10
-// CHECK:    (('section_name', '__picsymbol_stub')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000008)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 26)
-// CHECK:    ),
-// CHECK:     # Section 11
-// CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 12
-// CHECK:    (('section_name', '__static_data\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 13
-// CHECK:    (('section_name', '__nl_symbol_ptr\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x6)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 14
-// CHECK:    (('section_name', '__la_symbol_ptr\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x7)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 15
-// CHECK:    (('section_name', '__dyld\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 16
-// CHECK:    (('section_name', '__mod_init_func\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x9)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 17
-// CHECK:    (('section_name', '__mod_term_func\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0xa)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 18
-// CHECK:    (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 19
-// CHECK:    (('section_name', '__class\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 20
-// CHECK:    (('section_name', '__meta_class\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 21
-// CHECK:    (('section_name', '__cat_cls_meth\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 22
-// CHECK:    (('section_name', '__cat_inst_meth\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 23
-// CHECK:    (('section_name', '__protocol\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 24
-// CHECK:    (('section_name', '__string_object\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 25
-// CHECK:    (('section_name', '__cls_meth\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 26
-// CHECK:    (('section_name', '__inst_meth\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 27
-// CHECK:    (('section_name', '__cls_refs\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000005)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 28
-// CHECK:    (('section_name', '__message_refs\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000005)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 29
-// CHECK:    (('section_name', '__symbols\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 30
-// CHECK:    (('section_name', '__category\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 31
-// CHECK:    (('section_name', '__class_vars\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 32
-// CHECK:    (('section_name', '__instance_vars\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 33
-// CHECK:    (('section_name', '__module_info\x00\x00\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x10000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 34
-// CHECK:    (('section_name', '__selector_strs\x00')
-// CHECK:     ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 2464)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x2)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/symbol-flags.s b/libclamav/c++/llvm/test/MC/MachO/symbol-flags.s
deleted file mode 100644
index e82b0a0..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/symbol-flags.s
+++ /dev/null
@@ -1,254 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-        .reference sym_ref_A
-        .reference sym_ref_def_A
-sym_ref_def_A:
-sym_ref_def_C:  
-        .reference sym_ref_def_C
-        
-        .weak_reference sym_weak_ref_A
-        .weak_reference sym_weak_ref_def_A
-sym_weak_ref_def_A:        
-sym_weak_ref_def_B:
-        .weak_reference sym_weak_ref_def_B
-
-        .data
-        .globl sym_weak_def_A
-        .weak_definition sym_weak_def_A        
-sym_weak_def_A:
-
-        .lazy_reference sym_lazy_ref_A
-        .lazy_reference sym_lazy_ref_B
-sym_lazy_ref_B:
-sym_lazy_ref_C:
-        .lazy_reference sym_lazy_ref_C
-
-        .private_extern sym_private_ext_A
-        .private_extern sym_private_ext_B
-sym_private_ext_B:
-sym_private_ext_C:
-        .private_extern sym_private_ext_C
-        .private_extern sym_private_ext_D
-        .globl sym_private_ext_D
-
-        .no_dead_strip sym_no_dead_strip_A
-
-        .reference sym_ref_A
-        .desc sym_ref_A, 1
-        .desc sym_ref_A, 0x1234
-
-        .desc sym_desc_flags,0x47
-sym_desc_flags:
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 192)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 0)
-// CHECK:   ('file_offset', 324)
-// CHECK:   ('file_size', 0)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 2)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 324)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 324)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 324)
-// CHECK:   ('nsyms', 16)
-// CHECK:   ('stroff', 516)
-// CHECK:   ('strsize', 260)
-// CHECK:   ('_string_data', '\x00sym_ref_A\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_lazy_ref_A\x00sym_private_ext_A\x00sym_private_ext_B\x00sym_private_ext_C\x00sym_private_ext_D\x00sym_no_dead_strip_A\x00sym_ref_def_A\x00sym_ref_def_C\x00sym_weak_ref_def_A\x00sym_weak_ref_def_B\x00sym_lazy_ref_B\x00sym_lazy_ref_C\x00sym_desc_flags\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 148)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 32)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_ref_def_A')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 162)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 32)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_ref_def_C')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 176)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_weak_ref_def_A')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 195)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_weak_ref_def_B')
-// CHECK:    ),
-// CHECK:     # Symbol 4
-// CHECK:    (('n_strx', 214)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 32)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lazy_ref_B')
-// CHECK:    ),
-// CHECK:     # Symbol 5
-// CHECK:    (('n_strx', 229)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 32)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lazy_ref_C')
-// CHECK:    ),
-// CHECK:     # Symbol 6
-// CHECK:    (('n_strx', 244)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_desc_flags')
-// CHECK:    ),
-// CHECK:     # Symbol 7
-// CHECK:    (('n_strx', 74)
-// CHECK:     ('n_type', 0x1f)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_private_ext_B')
-// CHECK:    ),
-// CHECK:     # Symbol 8
-// CHECK:    (('n_strx', 92)
-// CHECK:     ('n_type', 0x1f)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_private_ext_C')
-// CHECK:    ),
-// CHECK:     # Symbol 9
-// CHECK:    (('n_strx', 26)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 128)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_weak_def_A')
-// CHECK:    ),
-// CHECK:     # Symbol 10
-// CHECK:    (('n_strx', 41)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 33)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lazy_ref_A')
-// CHECK:    ),
-// CHECK:     # Symbol 11
-// CHECK:    (('n_strx', 128)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 32)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_no_dead_strip_A')
-// CHECK:    ),
-// CHECK:     # Symbol 12
-// CHECK:    (('n_strx', 56)
-// CHECK:     ('n_type', 0x11)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_private_ext_A')
-// CHECK:    ),
-// CHECK:     # Symbol 13
-// CHECK:    (('n_strx', 110)
-// CHECK:     ('n_type', 0x11)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_private_ext_D')
-// CHECK:    ),
-// CHECK:     # Symbol 14
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 4660)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_ref_A')
-// CHECK:    ),
-// CHECK:     # Symbol 15
-// CHECK:    (('n_strx', 11)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 64)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_weak_ref_A')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 7)
-// CHECK:   ('iextdefsym', 7)
-// CHECK:   ('nextdefsym', 3)
-// CHECK:   ('iundefsym', 10)
-// CHECK:   ('nundefsym', 6)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/symbol-indirect.s b/libclamav/c++/llvm/test/MC/MachO/symbol-indirect.s
deleted file mode 100644
index 461291a..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/symbol-indirect.s
+++ /dev/null
@@ -1,268 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-// FIXME: We are missing a lot of diagnostics on this kind of stuff which the
-// assembler has.
-        
-        .lazy_symbol_pointer
-        .indirect_symbol sym_lsp_B
-        .long 0
-        
-        .globl sym_lsp_A
-        .indirect_symbol sym_lsp_A
-        .long 0
-        
-sym_lsp_C:      
-        .indirect_symbol sym_lsp_C
-        .long 0
-
-// FIXME: Enable this test once missing llvm-mc support is in place.
-.if 0
-        .indirect_symbol sym_lsp_D
-        .long sym_lsp_D
-.endif
-
-        .indirect_symbol sym_lsp_E
-        .long 0xFA
-
-// FIXME: Enable this test once missing llvm-mc support is in place.
-.if 0
-sym_lsp_F = 10
-        .indirect_symbol sym_lsp_F
-        .long 0
-.endif
-
-        .globl sym_lsp_G
-sym_lsp_G:
-        .indirect_symbol sym_lsp_G
-        .long 0
-        
-        .non_lazy_symbol_pointer
-        .indirect_symbol sym_nlp_B
-        .long 0
-
-        .globl sym_nlp_A
-        .indirect_symbol sym_nlp_A
-        .long 0
-
-sym_nlp_C:      
-        .indirect_symbol sym_nlp_C
-        .long 0
-
-// FIXME: Enable this test once missing llvm-mc support is in place.
-.if 0
-        .indirect_symbol sym_nlp_D
-        .long sym_nlp_D
-.endif
-
-        .indirect_symbol sym_nlp_E
-        .long 0xAF
-
-// FIXME: Enable this test once missing llvm-mc support is in place.
-.if 0
-sym_nlp_F = 10
-        .indirect_symbol sym_nlp_F
-        .long 0
-.endif
-
-        .globl sym_nlp_G
-sym_nlp_G:
-        .indirect_symbol sym_nlp_G
-        .long 0
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 260)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 40)
-// CHECK:   ('file_offset', 392)
-// CHECK:   ('file_size', 40)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 3)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 392)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__la_symbol_ptr\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 20)
-// CHECK:     ('offset', 392)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x7)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 2
-// CHECK:    (('section_name', '__nl_symbol_ptr\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 20)
-// CHECK:     ('size', 20)
-// CHECK:     ('offset', 412)
-// CHECK:     ('alignment', 2)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x6)
-        // FIXME: Enable this when fixed!
-// CHECX:     ('reserved1', 5)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 472)
-// CHECK:   ('nsyms', 10)
-// CHECK:   ('stroff', 592)
-// CHECK:   ('strsize', 104)
-// CHECK:   ('_string_data', '\x00sym_lsp_A\x00sym_lsp_G\x00sym_nlp_A\x00sym_nlp_G\x00sym_nlp_B\x00sym_nlp_E\x00sym_lsp_B\x00sym_lsp_E\x00sym_lsp_C\x00sym_nlp_C\x00\x00\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 81)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 8)
-// CHECK:     ('_string', 'sym_lsp_C')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 91)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 3)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 28)
-// CHECK:     ('_string', 'sym_nlp_C')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 11)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 16)
-// CHECK:     ('_string', 'sym_lsp_G')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 31)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 3)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 36)
-// CHECK:     ('_string', 'sym_nlp_G')
-// CHECK:    ),
-// CHECK:     # Symbol 4
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lsp_A')
-// CHECK:    ),
-// CHECK:     # Symbol 5
-// CHECK:    (('n_strx', 61)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 1)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lsp_B')
-// CHECK:    ),
-// CHECK:     # Symbol 6
-// CHECK:    (('n_strx', 71)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 1)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lsp_E')
-// CHECK:    ),
-// CHECK:     # Symbol 7
-// CHECK:    (('n_strx', 21)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_nlp_A')
-// CHECK:    ),
-// CHECK:     # Symbol 8
-// CHECK:    (('n_strx', 41)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_nlp_B')
-// CHECK:    ),
-// CHECK:     # Symbol 9
-// CHECK:    (('n_strx', 51)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_nlp_E')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 2)
-// CHECK:   ('iextdefsym', 2)
-// CHECK:   ('nextdefsym', 2)
-// CHECK:   ('iundefsym', 4)
-// CHECK:   ('nundefsym', 6)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 432)
-// CHECK:   ('nindirectsyms', 10)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:     # Indirect Symbol 0
-// CHECK:     (('symbol_index', 0x5),),
-// CHECK:     # Indirect Symbol 1
-// CHECK:     (('symbol_index', 0x4),),
-// CHECK:     # Indirect Symbol 2
-// CHECK:     (('symbol_index', 0x0),),
-// CHECK:     # Indirect Symbol 3
-// CHECK:     (('symbol_index', 0x6),),
-// CHECK:     # Indirect Symbol 4
-// CHECK:     (('symbol_index', 0x2),),
-// CHECK:     # Indirect Symbol 5
-// CHECK:     (('symbol_index', 0x8),),
-// CHECK:     # Indirect Symbol 6
-// CHECK:     (('symbol_index', 0x7),),
-// CHECK:     # Indirect Symbol 7
-// CHECK:     (('symbol_index', 0x80000000),),
-// CHECK:     # Indirect Symbol 8
-// CHECK:     (('symbol_index', 0x9),),
-// CHECK:     # Indirect Symbol 9
-// CHECK:     (('symbol_index', 0x3),),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/symbols-1.s b/libclamav/c++/llvm/test/MC/MachO/symbols-1.s
deleted file mode 100644
index 4c72fb3..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/symbols-1.s
+++ /dev/null
@@ -1,161 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-sym_local_B:
-.globl sym_globl_def_B
-.globl sym_globl_undef_B
-sym_local_A:
-.globl sym_globl_def_A
-.globl sym_globl_undef_A
-sym_local_C:
-.globl sym_globl_def_C
-.globl sym_globl_undef_C
-        
-sym_globl_def_A: 
-sym_globl_def_B: 
-sym_globl_def_C: 
-Lsym_asm_temp:
-        .long 0
-        
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 228)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 124)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 4)
-// CHECK:   ('file_offset', 256)
-// CHECK:   ('file_size', 4)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 1)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 4)
-// CHECK:     ('offset', 256)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 260)
-// CHECK:   ('nsyms', 9)
-// CHECK:   ('stroff', 368)
-// CHECK:   ('strsize', 140)
-// CHECK:   ('_string_data', '\x00sym_globl_def_B\x00sym_globl_undef_B\x00sym_globl_def_A\x00sym_globl_undef_A\x00sym_globl_def_C\x00sym_globl_undef_C\x00sym_local_B\x00sym_local_A\x00sym_local_C\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 103)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_local_B')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 115)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_local_A')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 127)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_local_C')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 35)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_globl_def_A')
-// CHECK:    ),
-// CHECK:     # Symbol 4
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_globl_def_B')
-// CHECK:    ),
-// CHECK:     # Symbol 5
-// CHECK:    (('n_strx', 69)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_globl_def_C')
-// CHECK:    ),
-// CHECK:     # Symbol 6
-// CHECK:    (('n_strx', 51)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_globl_undef_A')
-// CHECK:    ),
-// CHECK:     # Symbol 7
-// CHECK:    (('n_strx', 17)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_globl_undef_B')
-// CHECK:    ),
-// CHECK:     # Symbol 8
-// CHECK:    (('n_strx', 85)
-// CHECK:     ('n_type', 0x1)
-// CHECK:     ('n_sect', 0)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_globl_undef_C')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 3)
-// CHECK:   ('iextdefsym', 3)
-// CHECK:   ('nextdefsym', 3)
-// CHECK:   ('iundefsym', 6)
-// CHECK:   ('nundefsym', 3)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/values.s b/libclamav/c++/llvm/test/MC/MachO/values.s
deleted file mode 100644
index 2a472ab..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/values.s
+++ /dev/null
@@ -1,135 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-        .long 0
-text_def_int:
-        .long 0
-
-        .globl text_def_ext
-text_def_ext:
-        .long 0
-
-        .data
-        .long 0
-data_def_int:
-        .long 0
-
-        .globl data_def_ext
-data_def_ext:
-        .long 0
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 192)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 24)
-// CHECK:   ('file_offset', 324)
-// CHECK:   ('file_size', 24)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 2)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 12)
-// CHECK:     ('offset', 324)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 12)
-// CHECK:     ('size', 12)
-// CHECK:     ('offset', 336)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 348)
-// CHECK:   ('nsyms', 4)
-// CHECK:   ('stroff', 396)
-// CHECK:   ('strsize', 56)
-// CHECK:   ('_string_data', '\x00text_def_ext\x00data_def_ext\x00text_def_int\x00data_def_int\x00\x00\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 27)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 4)
-// CHECK:     ('_string', 'text_def_int')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 40)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 16)
-// CHECK:     ('_string', 'data_def_int')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 14)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 20)
-// CHECK:     ('_string', 'data_def_ext')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 1)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 8)
-// CHECK:     ('_string', 'text_def_ext')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 2)
-// CHECK:   ('iextdefsym', 2)
-// CHECK:   ('nextdefsym', 2)
-// CHECK:   ('iundefsym', 4)
-// CHECK:   ('nundefsym', 0)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/zerofill-1.s b/libclamav/c++/llvm/test/MC/MachO/zerofill-1.s
deleted file mode 100644
index a175d4c..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/zerofill-1.s
+++ /dev/null
@@ -1,121 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
-
-        .text
-        .byte 0                 // Align to 2**3 bytes, not 2**1
-        
-        .zerofill       __DATA, __common, zfill, 2, 1
-        
-        .data
-        .align 3
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 260)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 10)
-// CHECK:   ('file_offset', 392)
-// CHECK:   ('file_size', 8)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 3)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 1)
-// CHECK:     ('offset', 392)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__common\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 8)
-// CHECK:     ('size', 2)
-// CHECK:     ('offset', 0)
-// CHECK:     ('alignment', 1)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x1)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:     # Section 2
-// CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 8)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 400)
-// CHECK:     ('alignment', 3)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x0)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 400)
-// CHECK:   ('nsyms', 1)
-// CHECK:   ('stroff', 412)
-// CHECK:   ('strsize', 8)
-// CHECK:   ('_string_data', '\x00zfill\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 8)
-// CHECK:     ('_string', 'zfill')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 1)
-// CHECK:   ('iextdefsym', 1)
-// CHECK:   ('nextdefsym', 0)
-// CHECK:   ('iundefsym', 1)
-// CHECK:   ('nundefsym', 0)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/zerofill-2.s b/libclamav/c++/llvm/test/MC/MachO/zerofill-2.s
deleted file mode 100644
index e76de84..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/zerofill-2.s
+++ /dev/null
@@ -1,103 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
-
-        .byte 0
-
-        // This file has size 2, the tail padding doesn't count.
-        .zerofill       __DATA, __bss, sym_a, 1
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 192)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 2)
-// CHECK:   ('file_offset', 324)
-// CHECK:   ('file_size', 1)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 2)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 1)
-// CHECK:     ('offset', 324)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 1)
-// CHECK:     ('size', 1)
-// CHECK:     ('offset', 0)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x1)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 328)
-// CHECK:   ('nsyms', 1)
-// CHECK:   ('stroff', 340)
-// CHECK:   ('strsize', 8)
-// CHECK:   ('_string_data', '\x00sym_a\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 1)
-// CHECK:     ('_string', 'sym_a')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 1)
-// CHECK:   ('iextdefsym', 1)
-// CHECK:   ('nextdefsym', 0)
-// CHECK:   ('iundefsym', 1)
-// CHECK:   ('nundefsym', 0)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/MC/MachO/zerofill-3.s b/libclamav/c++/llvm/test/MC/MachO/zerofill-3.s
deleted file mode 100644
index e7f4c7b..0000000
--- a/libclamav/c++/llvm/test/MC/MachO/zerofill-3.s
+++ /dev/null
@@ -1,141 +0,0 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
-
-        // FIXME: We don't get the order right currently, the assembler first
-        // orders the symbols, then assigns addresses. :(
-.if 0        
-        .lcomm          sym_lcomm_B, 4
-        .lcomm          sym_lcomm_C, 4, 4 
-        .lcomm          sym_lcomm_A, 4, 3
-        .lcomm          sym_lcomm_D, 4
-        .globl          sym_lcomm_D
-        .globl          sym_lcomm_C
-.else
-        .lcomm          sym_lcomm_C, 4, 4 
-        .lcomm          sym_lcomm_D, 4
-        .globl          sym_lcomm_D
-        .globl          sym_lcomm_C
-        
-        .lcomm          sym_lcomm_A, 4, 3
-        .lcomm          sym_lcomm_B, 4
-.endif
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK:   # Load Command 0
-// CHECK:  (('command', 1)
-// CHECK:   ('size', 192)
-// CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:   ('vm_addr', 0)
-// CHECK:   ('vm_size', 16)
-// CHECK:   ('file_offset', 324)
-// CHECK:   ('file_size', 0)
-// CHECK:   ('maxprot', 7)
-// CHECK:   ('initprot', 7)
-// CHECK:   ('num_sections', 2)
-// CHECK:   ('flags', 0)
-// CHECK:   ('sections', [
-// CHECK:     # Section 0
-// CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 0)
-// CHECK:     ('offset', 324)
-// CHECK:     ('alignment', 0)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x80000000)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:     # Section 1
-// CHECK:    (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK:     ('address', 0)
-// CHECK:     ('size', 16)
-// CHECK:     ('offset', 0)
-// CHECK:     ('alignment', 4)
-// CHECK:     ('reloc_offset', 0)
-// CHECK:     ('num_reloc', 0)
-// CHECK:     ('flags', 0x1)
-// CHECK:     ('reserved1', 0)
-// CHECK:     ('reserved2', 0)
-// CHECK:    ),
-// CHECK:   ('_relocations', [
-// CHECK:   ])
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 1
-// CHECK:  (('command', 2)
-// CHECK:   ('size', 24)
-// CHECK:   ('symoff', 324)
-// CHECK:   ('nsyms', 4)
-// CHECK:   ('stroff', 372)
-// CHECK:   ('strsize', 52)
-// CHECK:   ('_string_data', '\x00sym_lcomm_C\x00sym_lcomm_D\x00sym_lcomm_A\x00sym_lcomm_B\x00\x00\x00\x00')
-// CHECK:   ('_symbols', [
-// CHECK:     # Symbol 0
-// CHECK:    (('n_strx', 25)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 8)
-// CHECK:     ('_string', 'sym_lcomm_A')
-// CHECK:    ),
-// CHECK:     # Symbol 1
-// CHECK:    (('n_strx', 37)
-// CHECK:     ('n_type', 0xe)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 12)
-// CHECK:     ('_string', 'sym_lcomm_B')
-// CHECK:    ),
-// CHECK:     # Symbol 2
-// CHECK:    (('n_strx', 1)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 0)
-// CHECK:     ('_string', 'sym_lcomm_C')
-// CHECK:    ),
-// CHECK:     # Symbol 3
-// CHECK:    (('n_strx', 13)
-// CHECK:     ('n_type', 0xf)
-// CHECK:     ('n_sect', 2)
-// CHECK:     ('n_desc', 0)
-// CHECK:     ('n_value', 4)
-// CHECK:     ('_string', 'sym_lcomm_D')
-// CHECK:    ),
-// CHECK:   ])
-// CHECK:  ),
-// CHECK:   # Load Command 2
-// CHECK:  (('command', 11)
-// CHECK:   ('size', 80)
-// CHECK:   ('ilocalsym', 0)
-// CHECK:   ('nlocalsym', 2)
-// CHECK:   ('iextdefsym', 2)
-// CHECK:   ('nextdefsym', 2)
-// CHECK:   ('iundefsym', 4)
-// CHECK:   ('nundefsym', 0)
-// CHECK:   ('tocoff', 0)
-// CHECK:   ('ntoc', 0)
-// CHECK:   ('modtaboff', 0)
-// CHECK:   ('nmodtab', 0)
-// CHECK:   ('extrefsymoff', 0)
-// CHECK:   ('nextrefsyms', 0)
-// CHECK:   ('indirectsymoff', 0)
-// CHECK:   ('nindirectsyms', 0)
-// CHECK:   ('extreloff', 0)
-// CHECK:   ('nextrel', 0)
-// CHECK:   ('locreloff', 0)
-// CHECK:   ('nlocrel', 0)
-// CHECK:   ('_indirect_symbols', [
-// CHECK:   ])
-// CHECK:  ),
-// CHECK: ])
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-01-31-UseStuckAround.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-01-31-UseStuckAround.ll
deleted file mode 100644
index 893d82b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-01-31-UseStuckAround.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN:  llvm-as %s -o - | opt -adce
-
-define i32 @"main"(i32 %argc)
-begin
-	br label %2
-
-	%retval = phi i32 [ %argc, %2 ]		; <i32>	[#uses=2]
-	%two = add i32 %retval, %retval		; <i32>	[#uses=1]
-	ret i32 %two
-
-	br label %1
-end
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-22-PHITest.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-22-PHITest.ll
deleted file mode 100644
index 04f0051..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-22-PHITest.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; It is illegal to remove BB1 because it will mess up the PHI node!
-;
-; RUN: llvm-as < %s | opt -adce | llvm-dis | grep BB1
-
-define i32 @test(i1 %C, i32 %A, i32 %B) {
-; <label>:0
-        br i1 %C, label %BB1, label %BB2
-
-BB1:            ; preds = %0
-        br label %BB2
-
-BB2:            ; preds = %BB1, %0
-        %R = phi i32 [ %A, %0 ], [ %B, %BB1 ]           ; <i32> [#uses=1]
-        ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll
deleted file mode 100644
index 911f8e6..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; This testcase contains a entire loop that should be removed.  The only thing
-; left is the store instruction in BB0.  The problem this testcase was running
-; into was that when the reg109 PHI was getting zero predecessors, it was 
-; removed even though there were uses still around.  Now the uses are filled
-; in with a dummy value before the PHI is deleted.
-;
-; RUN: llvm-as < %s | opt -adce
-	
-        %node_t = type { double*, %node_t*, %node_t**, double**, double*, i32, i32 }
-
-define void @localize_local(%node_t* %nodelist) {
-bb0:
-        %nodelist.upgrd.1 = alloca %node_t*             ; <%node_t**> [#uses=2]
-        store %node_t* %nodelist, %node_t** %nodelist.upgrd.1
-        br label %bb1
-
-bb1:            ; preds = %bb0
-        %reg107 = load %node_t** %nodelist.upgrd.1              ; <%node_t*> [#uses=2]
-        %cond211 = icmp eq %node_t* %reg107, null               ; <i1> [#uses=1]
-        br i1 %cond211, label %bb3, label %bb2
-
-bb2:            ; preds = %bb2, %bb1
-        %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ]             ; <%node_t*> [#uses=1]
-        %reg212 = getelementptr %node_t* %reg109, i64 0, i32 1          ; <%node_t**> [#uses=1]
-        %reg110 = load %node_t** %reg212                ; <%node_t*> [#uses=2]
-        %cond213 = icmp ne %node_t* %reg110, null               ; <i1> [#uses=1]
-        br i1 %cond213, label %bb2, label %bb3
-
-bb3:            ; preds = %bb2, %bb1
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll
deleted file mode 100644
index 5d25ff1..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This testcase is a distilled form of: 2002-05-28-Crash.ll
-
-; RUN: llvm-as < %s | opt -adce 
-
-define float @test(i32 %i) {
-        %F = sitofp i32 %i to float             ; <float> [#uses=1]
-        %I = bitcast i32 %i to i32              ; <i32> [#uses=1]
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %B = icmp ne i32 %I, 0          ; <i1> [#uses=1]
-        br i1 %B, label %Out, label %Loop
-
-Out:            ; preds = %Loop
-        ret float %F
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-28-Crash.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-28-Crash.ll
deleted file mode 100644
index 27c7205..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-05-28-Crash.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; This testcase is distilled from the GNU rx package.  The loop should be 
-; removed but causes a problem when ADCE does.  The source function is:
-; int rx_bitset_empty (int size, rx_Bitset set) {
-;  int x;
-;  RX_subset s;
-;  s = set[0];
-;  set[0] = 1;
-;  for (x = rx_bitset_numb_subsets(size) - 1; !set[x]; --x)
-;    ;
-;  set[0] = s;
-;  return !s;
-;}
-;
-; RUN: llvm-as < %s | opt -adce
-
-define i32 @rx_bitset_empty(i32 %size, i32* %set) {
-bb1:
-        %reg110 = load i32* %set                ; <i32> [#uses=2]
-        store i32 1, i32* %set
-        %cast112 = sext i32 %size to i64                ; <i64> [#uses=1]
-        %reg113 = add i64 %cast112, 31          ; <i64> [#uses=1]
-        %reg114 = lshr i64 %reg113, 5           ; <i64> [#uses=2]
-        %cast109 = trunc i64 %reg114 to i32             ; <i32> [#uses=1]
-        %reg129 = add i32 %cast109, -1          ; <i32> [#uses=1]
-        %reg114-idxcast = trunc i64 %reg114 to i32              ; <i32> [#uses=1]
-        %reg114-idxcast-offset = add i32 %reg114-idxcast, 1073741823            ; <i32> [#uses=1]
-        %reg114-idxcast-offset.upgrd.1 = zext i32 %reg114-idxcast-offset to i64         ; <i64> [#uses=1]
-        %reg124 = getelementptr i32* %set, i64 %reg114-idxcast-offset.upgrd.1           ; <i32*> [#uses=1]
-        %reg125 = load i32* %reg124             ; <i32> [#uses=1]
-        %cond232 = icmp ne i32 %reg125, 0               ; <i1> [#uses=1]
-        br i1 %cond232, label %bb3, label %bb2
-
-bb2:            ; preds = %bb2, %bb1
-        %cann-indvar = phi i32 [ 0, %bb1 ], [ %add1-indvar, %bb2 ]              ; <i32> [#uses=2]
-        %reg130-scale = mul i32 %cann-indvar, -1                ; <i32> [#uses=1]
-        %reg130 = add i32 %reg130-scale, %reg129                ; <i32> [#uses=1]
-        %add1-indvar = add i32 %cann-indvar, 1          ; <i32> [#uses=1]
-        %reg130-idxcast = bitcast i32 %reg130 to i32            ; <i32> [#uses=1]
-        %reg130-idxcast-offset = add i32 %reg130-idxcast, 1073741823            ; <i32> [#uses=1]
-        %reg130-idxcast-offset.upgrd.2 = zext i32 %reg130-idxcast-offset to i64         ; <i64> [#uses=1]
-        %reg118 = getelementptr i32* %set, i64 %reg130-idxcast-offset.upgrd.2           ; <i32*> [#uses=1]
-        %reg119 = load i32* %reg118             ; <i32> [#uses=1]
-        %cond233 = icmp eq i32 %reg119, 0               ; <i1> [#uses=1]
-        br i1 %cond233, label %bb2, label %bb3
-
-bb3:            ; preds = %bb2, %bb1
-        store i32 %reg110, i32* %set
-        %cast126 = zext i32 %reg110 to i64              ; <i64> [#uses=1]
-        %reg127 = add i64 %cast126, -1          ; <i64> [#uses=1]
-        %reg128 = lshr i64 %reg127, 63          ; <i64> [#uses=1]
-        %cast120 = trunc i64 %reg128 to i32             ; <i32> [#uses=1]
-        ret i32 %cast120
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll
deleted file mode 100644
index fb4fe4a..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; This testcase fails because ADCE does not correctly delete the chain of 
-; three instructions that are dead here.  Ironically there were a dead basic
-; block in this function, it would work fine, but that would be the part we 
-; have to fix now, wouldn't it....
-;
-; RUN: llvm-as < %s | opt -adce
-
-define void @foo(i8* %reg5481) {
-        %cast611 = bitcast i8* %reg5481 to i8**         ; <i8**> [#uses=1]
-        %reg162 = load i8** %cast611            ; <i8*> [#uses=1]
-        ptrtoint i8* %reg162 to i32             ; <i32>:1 [#uses=0]
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll
deleted file mode 100644
index 42a7e4d..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll
+++ /dev/null
@@ -1,48 +0,0 @@
-; This testcase was extracted from the gzip SPEC benchmark
-;
-; RUN: llvm-as < %s | opt -adce
-
- at bk = external global i32               ; <i32*> [#uses=2]
- at hufts = external global i32            ; <i32*> [#uses=1]
-
-define i32 @inflate() {
-bb0:
-        br label %bb2
-
-bb2:            ; preds = %bb6, %bb0
-        %reg128 = phi i32 [ %reg130, %bb6 ], [ 0, %bb0 ]                ; <i32> [#uses=2]
-        br i1 true, label %bb4, label %bb3
-
-bb3:            ; preds = %bb2
-        br label %UnifiedExitNode
-
-bb4:            ; preds = %bb2
-        %reg117 = load i32* @hufts              ; <i32> [#uses=2]
-        %cond241 = icmp ule i32 %reg117, %reg128                ; <i1> [#uses=1]
-        br i1 %cond241, label %bb6, label %bb5
-
-bb5:            ; preds = %bb4
-        br label %bb6
-
-bb6:            ; preds = %bb5, %bb4
-        %reg130 = phi i32 [ %reg117, %bb5 ], [ %reg128, %bb4 ]          ; <i32> [#uses=1]
-        br i1 false, label %bb2, label %bb7
-
-bb7:            ; preds = %bb6
-        %reg126 = load i32* @bk         ; <i32> [#uses=1]
-        %cond247 = icmp ule i32 %reg126, 7              ; <i1> [#uses=1]
-        br i1 %cond247, label %bb9, label %bb8
-
-bb8:            ; preds = %bb8, %bb7
-        %reg119 = load i32* @bk         ; <i32> [#uses=1]
-        %cond256 = icmp ugt i32 %reg119, 7              ; <i1> [#uses=1]
-        br i1 %cond256, label %bb8, label %bb9
-
-bb9:            ; preds = %bb8, %bb7
-        br label %UnifiedExitNode
-
-UnifiedExitNode:                ; preds = %bb9, %bb3
-        %UnifiedRetVal = phi i32 [ 7, %bb3 ], [ 0, %bb9 ]               ; <i32> [#uses=1]
-        ret i32 %UnifiedRetVal
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-29-Segfault.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-29-Segfault.ll
deleted file mode 100644
index 1c65b3b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2002-07-29-Segfault.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN:  llvm-as < %s | opt -adce
-
-define void @test() {
-        br label %BB3
-
-BB3:            ; preds = %BB3, %0
-        br label %BB3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll
deleted file mode 100644
index 4ec9005..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; Testcase reduced from 197.parser by bugpoint
-; RUN: llvm-as < %s | opt -adce 
-
-define void @conjunction_prune() {
-; <label>:0
-        br label %bb19
-
-bb19:           ; preds = %bb23, %bb22, %0
-        %reg205 = phi i8* [ null, %bb22 ], [ null, %bb23 ], [ null, %0 ]                ; <i8*> [#uses=1]
-        br i1 false, label %bb21, label %bb22
-
-bb21:           ; preds = %bb19
-        %cast455 = bitcast i8* %reg205 to i8**          ; <i8**> [#uses=0]
-        br label %bb22
-
-bb22:           ; preds = %bb21, %bb19
-        br i1 false, label %bb19, label %bb23
-
-bb23:           ; preds = %bb22
-        br i1 false, label %bb19, label %bb28
-
-bb28:           ; preds = %bb23
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll
deleted file mode 100644
index 603b14b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; THis testcase caused an assertion failure because a PHI node did not have 
-; entries for it's postdominator.  But I think this can only happen when the 
-; PHI node is dead, so we just avoid patching up dead PHI nodes.
-
-; RUN: llvm-as < %s | opt -adce
-
-target datalayout = "e-p:32:32"
-
-define void @dead_test8() {
-entry:
-        br label %loopentry
-
-loopentry:              ; preds = %endif, %entry
-        %k.1 = phi i32 [ %k.0, %endif ], [ 0, %entry ]          ; <i32> [#uses=1]
-        br i1 false, label %no_exit, label %return
-
-no_exit:                ; preds = %loopentry
-        br i1 false, label %then, label %else
-
-then:           ; preds = %no_exit
-        br label %endif
-
-else:           ; preds = %no_exit
-        %dec = add i32 %k.1, -1         ; <i32> [#uses=1]
-        br label %endif
-
-endif:          ; preds = %else, %then
-        %k.0 = phi i32 [ %dec, %else ], [ 0, %then ]            ; <i32> [#uses=1]
-        store i32 2, i32* null
-        br label %loopentry
-
-return:         ; preds = %loopentry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll
deleted file mode 100644
index a9657a7..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -disable-output
-
- at G = external global i32*               ; <i32**> [#uses=1]
-
-declare void @Fn(i32*)
-
-define i32 @main(i32 %argc.1, i8** %argv.1) {
-entry:
-        br label %endif.42
-
-endif.42:               ; preds = %shortcirc_done.12, %then.66, %endif.42, %entry
-        br i1 false, label %endif.65, label %endif.42
-
-then.66:                ; preds = %shortcirc_done.12
-        call void @Fn( i32* %tmp.2846 )
-        br label %endif.42
-
-endif.65:               ; preds = %endif.42
-        %tmp.2846 = load i32** @G               ; <i32*> [#uses=1]
-        br i1 false, label %shortcirc_next.12, label %shortcirc_done.12
-
-shortcirc_next.12:              ; preds = %endif.65
-        br label %shortcirc_done.12
-
-shortcirc_done.12:              ; preds = %shortcirc_next.12, %endif.65
-        br i1 false, label %then.66, label %endif.42
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll
deleted file mode 100644
index e5dd0cc..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll
+++ /dev/null
@@ -1,91 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -disable-output
-target datalayout = "e-p:32:32"
-	%struct..CppObjTypeDesc = type { i32, i16, i16 }
-	%struct..TypeToken = type { i32, i16, i16 }
-
-define i32 @C_ReFaxToDb() {
-entry:
-	br i1 false, label %endif.0, label %then.0
-
-then.0:		; preds = %entry
-	ret i32 0
-
-endif.0:		; preds = %entry
-	br i1 false, label %then.11, label %then.4
-
-then.4:		; preds = %endif.0
-	ret i32 0
-
-then.11:		; preds = %endif.0
-	br i1 false, label %loopentry.0, label %else.2
-
-loopentry.0:		; preds = %loopentry.1, %endif.14, %then.11
-	br i1 false, label %endif.14, label %loopexit.0
-
-endif.14:		; preds = %loopentry.0
-	br i1 false, label %loopentry.1, label %loopentry.0
-
-loopentry.1:		; preds = %then.53, %endif.14
-	%SubArrays.10 = phi i32* [ %SubArrays.8, %then.53 ], [ null, %endif.14 ]		; <i32*> [#uses=3]
-	br i1 false, label %no_exit.1, label %loopentry.0
-
-no_exit.1:		; preds = %loopentry.1
-	switch i32 0, label %label.17 [
-		 i32 2, label %label.11
-		 i32 19, label %label.10
-	]
-
-label.10:		; preds = %no_exit.1
-	br i1 false, label %then.43, label %endif.43
-
-then.43:		; preds = %label.10
-	br i1 false, label %then.44, label %endif.44
-
-then.44:		; preds = %then.43
-	br i1 false, label %shortcirc_next.4, label %endif.45
-
-shortcirc_next.4:		; preds = %then.44
-	br i1 false, label %no_exit.2, label %loopexit.2
-
-no_exit.2:		; preds = %shortcirc_next.4
-	%tmp.897 = getelementptr i32* %SubArrays.10, i64 0		; <i32*> [#uses=1]
-	%tmp.899 = load i32* %tmp.897		; <i32> [#uses=1]
-	store i32 %tmp.899, i32* null
-	ret i32 0
-
-loopexit.2:		; preds = %shortcirc_next.4
-	ret i32 0
-
-endif.45:		; preds = %then.44
-	ret i32 0
-
-endif.44:		; preds = %then.43
-	ret i32 0
-
-endif.43:		; preds = %label.10
-	ret i32 0
-
-label.11:		; preds = %no_exit.1
-	ret i32 0
-
-label.17:		; preds = %no_exit.1
-	br i1 false, label %then.53, label %shortcirc_next.7
-
-shortcirc_next.7:		; preds = %label.17
-	br i1 false, label %then.53, label %shortcirc_next.8
-
-shortcirc_next.8:		; preds = %shortcirc_next.7
-	ret i32 0
-
-then.53:		; preds = %shortcirc_next.7, %label.17
-	%SubArrays.8 = phi i32* [ %SubArrays.10, %shortcirc_next.7 ], [ %SubArrays.10, %label.17 ]		; <i32*> [#uses=1]
-	%tmp.1023 = load i32* null		; <i32> [#uses=1]
-	switch i32 %tmp.1023, label %loopentry.1 [
-	]
-
-loopexit.0:		; preds = %loopentry.0
-	ret i32 0
-
-else.2:		; preds = %then.11
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll
deleted file mode 100644
index 9c6764d..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis | not grep then:
-
-define void @dead_test8(i32* %data.1, i32 %idx.1) {
-entry:
-        %tmp.1 = load i32* %data.1              ; <i32> [#uses=2]
-        %tmp.41 = icmp sgt i32 %tmp.1, 0                ; <i1> [#uses=1]
-        br i1 %tmp.41, label %no_exit.preheader, label %return
-
-no_exit.preheader:              ; preds = %entry
-        %tmp.11 = getelementptr i32* %data.1, i64 1             ; <i32*> [#uses=1]
-        %tmp.22-idxcast = sext i32 %idx.1 to i64                ; <i64> [#uses=1]
-        %tmp.28 = getelementptr i32* %data.1, i64 %tmp.22-idxcast               ; <i32*> [#uses=1]
-        br label %no_exit
-
-no_exit:                ; preds = %endif, %no_exit.preheader
-        %k.1 = phi i32 [ %k.0, %endif ], [ 0, %no_exit.preheader ]              ; <i32> [#uses=3]
-        %i.0 = phi i32 [ %inc.1, %endif ], [ 0, %no_exit.preheader ]            ; <i32> [#uses=1]
-        %tmp.12 = load i32* %tmp.11             ; <i32> [#uses=1]
-        %tmp.14 = sub i32 0, %tmp.12            ; <i32> [#uses=1]
-        %tmp.161 = icmp ne i32 %k.1, %tmp.14            ; <i1> [#uses=1]
-        br i1 %tmp.161, label %then, label %else
-
-then:           ; preds = %no_exit
-        %inc.0 = add i32 %k.1, 1                ; <i32> [#uses=1]
-        br label %endif
-
-else:           ; preds = %no_exit
-        %dec = add i32 %k.1, -1         ; <i32> [#uses=1]
-        br label %endif
-
-endif:          ; preds = %else, %then
-        %k.0 = phi i32 [ %dec, %else ], [ %inc.0, %then ]               ; <i32> [#uses=1]
-        store i32 2, i32* %tmp.28
-        %inc.1 = add i32 %i.0, 1                ; <i32> [#uses=2]
-        %tmp.4 = icmp slt i32 %inc.1, %tmp.1            ; <i1> [#uses=1]
-        br i1 %tmp.4, label %no_exit, label %return
-
-return:         ; preds = %endif, %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll
deleted file mode 100644
index e6345c1..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -disable-output
-
-define void @test() {
-        br i1 false, label %then, label %endif
-
-then:           ; preds = %0
-        invoke void null( i8* null )
-                        to label %invoke_cont unwind label %invoke_catch
-
-invoke_catch:           ; preds = %then
-        unwind
-
-invoke_cont:            ; preds = %then
-        ret void
-
-endif:          ; preds = %0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll
deleted file mode 100644
index 37e077f..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -disable-output
-
-define i32 @main() {
-        br label %loop
-
-loop:           ; preds = %loop, %0
-        br label %loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll
deleted file mode 100644
index 6e9b17e..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis | grep call
-declare void @exit(i32)
-
-define i32 @main(i32 %argc) {
-        %C = icmp eq i32 %argc, 1               ; <i1> [#uses=2]
-        br i1 %C, label %Cond, label %Done
-
-Cond:           ; preds = %0
-        br i1 %C, label %Loop, label %Done
-
-Loop:           ; preds = %Loop, %Cond
-        call void @exit( i32 0 )
-        br label %Loop
-
-Done:           ; preds = %Cond, %0
-        ret i32 1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll
deleted file mode 100644
index 87a1550..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -disable-output
-
-define void @test() {
-entry:
-        br label %UnifiedReturnBlock
-
-UnifiedReturnBlock:             ; preds = %invoke_catch.0, %entry
-        ret void
-
-invoke_catch.0:         ; No predecessors!
-        br i1 false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock
-
-UnifiedUnwindBlock:             ; preds = %invoke_catch.0
-        unwind
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll b/libclamav/c++/llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll
deleted file mode 100644
index 8ddbbbe..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -disable-output
-
-declare void @strlen()
-
-declare void @_ZN10QByteArray6resizeEi()
-
-declare void @q_atomic_decrement()
-
-define void @_ZNK10QByteArray13leftJustifiedEicb() {
-entry:
-        invoke void @strlen( )
-                        to label %tmp.3.i.noexc unwind label %invoke_catch.0
-
-tmp.3.i.noexc:          ; preds = %entry
-        br i1 false, label %then.0, label %else.0
-
-invoke_catch.0:         ; preds = %entry
-        invoke void @q_atomic_decrement( )
-                        to label %tmp.1.i.i183.noexc unwind label %terminate
-
-tmp.1.i.i183.noexc:             ; preds = %invoke_catch.0
-        unwind
-
-then.0:         ; preds = %tmp.3.i.noexc
-        invoke void @_ZN10QByteArray6resizeEi( )
-                        to label %invoke_cont.1 unwind label %invoke_catch.1
-
-invoke_catch.1:         ; preds = %then.0
-        invoke void @q_atomic_decrement( )
-                        to label %tmp.1.i.i162.noexc unwind label %terminate
-
-tmp.1.i.i162.noexc:             ; preds = %invoke_catch.1
-        ret void
-
-invoke_cont.1:          ; preds = %then.0
-        ret void
-
-else.0:         ; preds = %tmp.3.i.noexc
-        ret void
-
-terminate:              ; preds = %invoke_catch.1, %invoke_catch.0
-        %dbg.0.1 = phi {  }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ]               ; <{  }*> [#uses=0]
-        unreachable
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/basictest.ll b/libclamav/c++/llvm/test/Transforms/ADCE/basictest.ll
deleted file mode 100644
index 22ff0f7..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/basictest.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis
-
-define i32 @Test(i32 %A, i32 %B) {
-BB1:
-        br label %BB4
-
-BB2:            ; No predecessors!
-        br label %BB3
-
-BB3:            ; preds = %BB4, %BB2
-        %ret = phi i32 [ %X, %BB4 ], [ %B, %BB2 ]               ; <i32> [#uses=1]
-        ret i32 %ret
-
-BB4:            ; preds = %BB1
-        %X = phi i32 [ %A, %BB1 ]               ; <i32> [#uses=1]
-        br label %BB3
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/basictest1.ll b/libclamav/c++/llvm/test/Transforms/ADCE/basictest1.ll
deleted file mode 100644
index 29f40de..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/basictest1.ll
+++ /dev/null
@@ -1,97 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis	
-%FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 }
-	%spec_fd_t = type { i32, i32, i32, i8* }
- at __iob = external global [20 x %FILE]		; <[20 x %FILE]*> [#uses=1]
- at dbglvl = global i32 4		; <i32*> [#uses=3]
- at spec_fd = external global [3 x %spec_fd_t]		; <[3 x %spec_fd_t]*> [#uses=4]
- at .LC9 = internal global [34 x i8] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00"		; <[34 x i8]*> [#uses=1]
- at .LC10 = internal global [4 x i8] c"EOF\00"		; <[4 x i8]*> [#uses=1]
- at .LC11 = internal global [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
- at .LC12 = internal global [17 x i8] c"spec_getc: %d = \00"		; <[17 x i8]*> [#uses=1]
-
-declare i32 @fprintf(%FILE*, i8*, ...)
-
-declare void @exit(i32)
-
-declare i32 @remove(i8*)
-
-declare i32 @fputc(i32, %FILE*)
-
-declare i32 @fwrite(i8*, i32, i32, %FILE*)
-
-declare void @perror(i8*)
-
-define i32 @spec_getc(i32 %fd) {
-	%reg109 = load i32* @dbglvl		; <i32> [#uses=1]
-	%cond266 = icmp sle i32 %reg109, 4		; <i1> [#uses=1]
-	br i1 %cond266, label %bb3, label %bb2
-
-bb2:		; preds = %0
-	%cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0		; <i8*> [#uses=0]
-	br label %bb3
-
-bb3:		; preds = %bb2, %0
-	%cond267 = icmp sle i32 %fd, 3		; <i1> [#uses=1]
-	br i1 %cond267, label %bb5, label %bb4
-
-bb4:		; preds = %bb3
-	%reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3		; <i8*> [#uses=1]
-	%cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0		; <i8*> [#uses=0]
-	%cast282 = bitcast i8* %reg111 to %FILE*		; <%FILE*> [#uses=0]
-	call void @exit( i32 1 )
-	br label %UnifiedExitNode
-
-bb5:		; preds = %bb3
-	%reg107-idxcast1 = sext i32 %fd to i64		; <i64> [#uses=2]
-	%reg107-idxcast2 = sext i32 %fd to i64		; <i64> [#uses=1]
-	%reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2		; <%spec_fd_t*> [#uses=1]
-	%idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2		; <i32*> [#uses=1]
-	%reg1321 = load i32* %idx1		; <i32> [#uses=3]
-	%idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1		; <i32*> [#uses=1]
-	%reg1331 = load i32* %idx2		; <i32> [#uses=1]
-	%cond270 = icmp slt i32 %reg1321, %reg1331		; <i1> [#uses=1]
-	br i1 %cond270, label %bb9, label %bb6
-
-bb6:		; preds = %bb5
-	%reg134 = load i32* @dbglvl		; <i32> [#uses=1]
-	%cond271 = icmp sle i32 %reg134, 4		; <i1> [#uses=1]
-	br i1 %cond271, label %bb8, label %bb7
-
-bb7:		; preds = %bb6
-	%cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0		; <i8*> [#uses=0]
-	br label %bb8
-
-bb8:		; preds = %bb7, %bb6
-	br label %UnifiedExitNode
-
-bb9:		; preds = %bb5
-	%reg107-idxcast3 = sext i32 %fd to i64		; <i64> [#uses=1]
-	%idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3		; <i8**> [#uses=1]
-	%reg1601 = load i8** %idx3		; <i8*> [#uses=1]
-	%reg132-idxcast1 = sext i32 %reg1321 to i64		; <i64> [#uses=1]
-	%idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1		; <i8*> [#uses=1]
-	%reg1621 = load i8* %idx4		; <i8> [#uses=2]
-	%cast108 = zext i8 %reg1621 to i64		; <i64> [#uses=0]
-	%reg157 = add i32 %reg1321, 1		; <i32> [#uses=1]
-	%idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2		; <i32*> [#uses=1]
-	store i32 %reg157, i32* %idx5
-	%reg163 = load i32* @dbglvl		; <i32> [#uses=1]
-	%cond272 = icmp sle i32 %reg163, 4		; <i1> [#uses=1]
-	br i1 %cond272, label %bb11, label %bb10
-
-bb10:		; preds = %bb9
-	%cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0		; <i8*> [#uses=0]
-	br label %bb11
-
-bb11:		; preds = %bb10, %bb9
-	%cast291 = zext i8 %reg1621 to i32		; <i32> [#uses=1]
-	br label %UnifiedExitNode
-
-UnifiedExitNode:		; preds = %bb11, %bb8, %bb4
-	%UnifiedRetVal = phi i32 [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ]		; <i32> [#uses=1]
-	ret i32 %UnifiedRetVal
-}
-
-declare i32 @puts(i8*)
-
-declare i32 @printf(i8*, ...)
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/basictest2.ll b/libclamav/c++/llvm/test/Transforms/ADCE/basictest2.ll
deleted file mode 100644
index 120e233..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/basictest2.ll
+++ /dev/null
@@ -1,97 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis
-	%FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 }
-	%spec_fd_t = type { i32, i32, i32, i8* }
- at __iob = external global [20 x %FILE]		; <[20 x %FILE]*> [#uses=1]
- at dbglvl = global i32 4		; <i32*> [#uses=3]
- at spec_fd = external global [3 x %spec_fd_t]		; <[3 x %spec_fd_t]*> [#uses=4]
- at .LC9 = internal global [34 x i8] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00"		; <[34 x i8]*> [#uses=1]
- at .LC10 = internal global [4 x i8] c"EOF\00"		; <[4 x i8]*> [#uses=1]
- at .LC11 = internal global [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
- at .LC12 = internal global [17 x i8] c"spec_getc: %d = \00"		; <[17 x i8]*> [#uses=1]
-
-declare i32 @fprintf(%FILE*, i8*, ...)
-
-declare void @exit(i32)
-
-declare i32 @remove(i8*)
-
-declare i32 @fputc(i32, %FILE*)
-
-declare i32 @fwrite(i8*, i32, i32, %FILE*)
-
-declare void @perror(i8*)
-
-define i32 @spec_getc(i32 %fd) {
-	%reg109 = load i32* @dbglvl		; <i32> [#uses=1]
-	%cond266 = icmp sle i32 %reg109, 4		; <i1> [#uses=1]
-	br i1 %cond266, label %bb3, label %bb2
-
-bb2:		; preds = %0
-	%cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0		; <i8*> [#uses=0]
-	br label %bb3
-
-bb3:		; preds = %bb2, %0
-	%cond267 = icmp sle i32 %fd, 3		; <i1> [#uses=0]
-	br label %bb5
-
-bb4:		; No predecessors!
-	%reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3		; <i8*> [#uses=1]
-	%cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0		; <i8*> [#uses=0]
-	%cast282 = bitcast i8* %reg111 to %FILE*		; <%FILE*> [#uses=0]
-	call void @exit( i32 1 )
-	br label %UnifiedExitNode
-
-bb5:		; preds = %bb3
-	%reg107-idxcast1 = sext i32 %fd to i64		; <i64> [#uses=2]
-	%reg107-idxcast2 = sext i32 %fd to i64		; <i64> [#uses=1]
-	%reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2		; <%spec_fd_t*> [#uses=1]
-	%idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2		; <i32*> [#uses=1]
-	%reg1321 = load i32* %idx1		; <i32> [#uses=3]
-	%idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1		; <i32*> [#uses=1]
-	%reg1331 = load i32* %idx2		; <i32> [#uses=1]
-	%cond270 = icmp slt i32 %reg1321, %reg1331		; <i1> [#uses=1]
-	br i1 %cond270, label %bb9, label %bb6
-
-bb6:		; preds = %bb5
-	%reg134 = load i32* @dbglvl		; <i32> [#uses=1]
-	%cond271 = icmp sle i32 %reg134, 4		; <i1> [#uses=1]
-	br i1 %cond271, label %bb8, label %bb7
-
-bb7:		; preds = %bb6
-	%cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0		; <i8*> [#uses=0]
-	br label %bb8
-
-bb8:		; preds = %bb7, %bb6
-	br label %UnifiedExitNode
-
-bb9:		; preds = %bb5
-	%reg107-idxcast3 = sext i32 %fd to i64		; <i64> [#uses=1]
-	%idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3		; <i8**> [#uses=1]
-	%reg1601 = load i8** %idx3		; <i8*> [#uses=1]
-	%reg132-idxcast1 = sext i32 %reg1321 to i64		; <i64> [#uses=1]
-	%idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1		; <i8*> [#uses=1]
-	%reg1621 = load i8* %idx4		; <i8> [#uses=2]
-	%cast108 = zext i8 %reg1621 to i64		; <i64> [#uses=0]
-	%reg157 = add i32 %reg1321, 1		; <i32> [#uses=1]
-	%idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2		; <i32*> [#uses=1]
-	store i32 %reg157, i32* %idx5
-	%reg163 = load i32* @dbglvl		; <i32> [#uses=1]
-	%cond272 = icmp sle i32 %reg163, 4		; <i1> [#uses=1]
-	br i1 %cond272, label %bb11, label %bb10
-
-bb10:		; preds = %bb9
-	%cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0		; <i8*> [#uses=0]
-	br label %bb11
-
-bb11:		; preds = %bb10, %bb9
-	%cast291 = zext i8 %reg1621 to i32		; <i32> [#uses=1]
-	br label %UnifiedExitNode
-
-UnifiedExitNode:		; preds = %bb11, %bb8, %bb4
-	%UnifiedRetVal = phi i32 [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ]		; <i32> [#uses=1]
-	ret i32 %UnifiedRetVal
-}
-
-declare i32 @puts(i8*)
-
-declare i32 @printf(i8*, ...)
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/dce_pure_call.ll b/libclamav/c++/llvm/test/Transforms/ADCE/dce_pure_call.ll
deleted file mode 100644
index 3935bf7..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/dce_pure_call.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep call
-
-declare i32 @strlen(i8*) readonly nounwind
-
-define void @test() {
-	call i32 @strlen( i8* null )		; <i32>:1 [#uses=0]
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/dce_pure_invoke.ll b/libclamav/c++/llvm/test/Transforms/ADCE/dce_pure_invoke.ll
deleted file mode 100644
index bd28df2..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/dce_pure_invoke.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -adce | llvm-dis | grep null
-
-declare i32 @strlen(i8*) readnone
-
-define i32 @test() {
-	; invoke of pure function should not be deleted!
-	invoke i32 @strlen( i8* null ) readnone
-			to label %Cont unwind label %Other		; <i32>:1 [#uses=0]
-
-Cont:		; preds = %0
-	ret i32 0
-
-Other:		; preds = %0
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/dg.exp b/libclamav/c++/llvm/test/Transforms/ADCE/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/ADCE/unreachable-function.ll b/libclamav/c++/llvm/test/Transforms/ADCE/unreachable-function.ll
deleted file mode 100644
index 86c55f5..0000000
--- a/libclamav/c++/llvm/test/Transforms/ADCE/unreachable-function.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | opt -adce -disable-output
-
-define void @test() {
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
deleted file mode 100644
index 67c061f..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | grep nounwind | count 2
-
-define internal i32 @deref(i32* %x) nounwind {
-entry:
-	%tmp2 = load i32* %x, align 4		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
-define i32 @f(i32 %x) {
-entry:
-	%x_addr = alloca i32		; <i32*> [#uses=2]
-	store i32 %x, i32* %x_addr, align 4
-	%tmp1 = call i32 @deref( i32* %x_addr ) nounwind 		; <i32> [#uses=1]
-	ret i32 %tmp1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll
deleted file mode 100644
index 11bcb28..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion | llvm-dis > %t
-; RUN: cat %t | grep {define.*@callee(.*i32\\*}
-; PR2498
-
-; This test tries to convince argpromotion about promoting the load from %A + 2,
-; because there is a load of %A in the entry block
-define internal i32 @callee(i1 %C, i32* %A) {
-entry:
-        ; Unconditonally load the element at %A
-        %A.0 = load i32* %A
-        br i1 %C, label %T, label %F
-T:
-        ret i32 %A.0
-F:
-        ; Load the element at offset two from %A. This should not be promoted!
-        %A.2 = getelementptr i32* %A, i32 2
-        %R = load i32* %A.2
-        ret i32 %R
-}
-
-define i32 @foo() {
-        %X = call i32 @callee(i1 false, i32* null)             ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll
deleted file mode 100644
index 047ff0a..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -argpromotion -disable-output
-
-define internal fastcc i32 @hash(i32* %ts, i32 %mod) nounwind {
-entry:
-	unreachable
-}
-
-define void @encode(i32* %m, i32* %ts, i32* %new) nounwind {
-entry:
-	%0 = call fastcc i32 @hash( i32* %ts, i32 0 ) nounwind		; <i32> [#uses=0]
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll
deleted file mode 100644
index d406165..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion -disable-output
-
-define internal fastcc i32 @term_SharingList(i32* %Term, i32* %List) nounwind {
-entry:
-	br i1 false, label %bb, label %bb5
-
-bb:		; preds = %entry
-	%0 = call fastcc i32 @term_SharingList( i32* null, i32* %List ) nounwind		; <i32> [#uses=0]
-	unreachable
-
-bb5:		; preds = %entry
-	ret i32 0
-}
-
-define i32 @term_Sharing(i32* %Term) nounwind {
-entry:
-	br i1 false, label %bb.i, label %bb14
-
-bb.i:		; preds = %entry
-	%0 = call fastcc i32 @term_SharingList( i32* null, i32* null ) nounwind		; <i32> [#uses=0]
-	ret i32 1
-
-bb14:		; preds = %entry
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/aggregate-promote.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/aggregate-promote.ll
deleted file mode 100644
index 62b1a07..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/aggregate-promote.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion -instcombine | llvm-dis | not grep load
-
-%QuadTy = type { i32, i32, i32, i32 }
- at G = constant %QuadTy {
-    i32 0, 
-    i32 0, 
-    i32 17, 
-    i32 25 }            ; <%QuadTy*> [#uses=1]
-
-define internal i32 @test(%QuadTy* %P) {
-        %A = getelementptr %QuadTy* %P, i64 0, i32 3            ; <i32*> [#uses=1]
-        %B = getelementptr %QuadTy* %P, i64 0, i32 2            ; <i32*> [#uses=1]
-        %a = load i32* %A               ; <i32> [#uses=1]
-        %b = load i32* %B               ; <i32> [#uses=1]
-        %V = add i32 %a, %b             ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i32 @caller() {
-        %V = call i32 @test( %QuadTy* @G )              ; <i32> [#uses=1]
-        ret i32 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/attrs.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/attrs.ll
deleted file mode 100644
index 0fb38be..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/attrs.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | grep zeroext
-
-	%struct.ss = type { i32, i64 }
-
-define internal void @f(%struct.ss* byval  %b, i32* byval %X, i32 %i) nounwind  {
-entry:
-	%tmp = getelementptr %struct.ss* %b, i32 0, i32 0
-	%tmp1 = load i32* %tmp, align 4
-	%tmp2 = add i32 %tmp1, 1	
-	store i32 %tmp2, i32* %tmp, align 4
-
-	store i32 0, i32* %X
-	ret void
-}
-
-define i32 @test(i32* %X) {
-entry:
-	%S = alloca %struct.ss		; <%struct.ss*> [#uses=4]
-	%tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp1, align 8
-	%tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1		; <i64*> [#uses=1]
-	store i64 2, i64* %tmp4, align 4
-	call void @f( %struct.ss* byval %S, i32* byval %X, i32 zeroext 0) 
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/basictest.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/basictest.ll
deleted file mode 100644
index 99697f4..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/basictest.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion -mem2reg | llvm-dis | not grep alloca
-define internal i32 @test(i32* %X, i32* %Y) {
-        %A = load i32* %X               ; <i32> [#uses=1]
-        %B = load i32* %Y               ; <i32> [#uses=1]
-        %C = add i32 %A, %B             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define internal i32 @caller(i32* %B) {
-        %A = alloca i32         ; <i32*> [#uses=2]
-        store i32 1, i32* %A
-        %C = call i32 @test( i32* %A, i32* %B )         ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @callercaller() {
-        %B = alloca i32         ; <i32*> [#uses=2]
-        store i32 2, i32* %B
-        %X = call i32 @caller( i32* %B )                ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/byval-2.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/byval-2.ll
deleted file mode 100644
index d625357..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/byval-2.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | grep -F {i32* byval} | count 2
-; Argpromote + scalarrepl should change this to passing the two integers by value.
-
-	%struct.ss = type { i32, i64 }
-
-define internal void @f(%struct.ss* byval  %b, i32* byval %X) nounwind  {
-entry:
-	%tmp = getelementptr %struct.ss* %b, i32 0, i32 0
-	%tmp1 = load i32* %tmp, align 4
-	%tmp2 = add i32 %tmp1, 1	
-	store i32 %tmp2, i32* %tmp, align 4
-
-	store i32 0, i32* %X
-	ret void
-}
-
-define i32 @test(i32* %X) {
-entry:
-	%S = alloca %struct.ss		; <%struct.ss*> [#uses=4]
-	%tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp1, align 8
-	%tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1		; <i64*> [#uses=1]
-	store i64 2, i64* %tmp4, align 4
-	call void @f( %struct.ss* byval %S, i32* byval %X) 
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/byval.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/byval.ll
deleted file mode 100644
index 3a3458f..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/byval.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion -scalarrepl | llvm-dis | not grep load
-; Argpromote + scalarrepl should change this to passing the two integers by value.
-
-	%struct.ss = type { i32, i64 }
-
-define internal void @f(%struct.ss* byval  %b) nounwind  {
-entry:
-	%tmp = getelementptr %struct.ss* %b, i32 0, i32 0		; <i32*> [#uses=2]
-	%tmp1 = load i32* %tmp, align 4		; <i32> [#uses=1]
-	%tmp2 = add i32 %tmp1, 1		; <i32> [#uses=1]
-	store i32 %tmp2, i32* %tmp, align 4
-	ret void
-}
-
-define i32 @main() nounwind  {
-entry:
-	%S = alloca %struct.ss		; <%struct.ss*> [#uses=4]
-	%tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp1, align 8
-	%tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1		; <i64*> [#uses=1]
-	store i64 2, i64* %tmp4, align 4
-	call void @f( %struct.ss* byval  %S ) nounwind 
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/chained.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/chained.ll
deleted file mode 100644
index de5f6e5..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/chained.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion -instcombine | llvm-dis | not grep load
-
- at G1 = constant i32 0            ; <i32*> [#uses=1]
- at G2 = constant i32* @G1         ; <i32**> [#uses=1]
-
-define internal i32 @test(i32** %X) {
-        %Y = load i32** %X              ; <i32*> [#uses=1]
-        %X.upgrd.1 = load i32* %Y               ; <i32> [#uses=1]
-        ret i32 %X.upgrd.1
-}
-
-define i32 @caller(i32** %P) {
-        %X = call i32 @test( i32** @G2 )                ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/control-flow.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/control-flow.ll
deleted file mode 100644
index 76e8fd9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/control-flow.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \
-; RUN:    not grep {load i32\* null}
-
-define internal i32 @callee(i1 %C, i32* %P) {
-        br i1 %C, label %T, label %F
-
-T:              ; preds = %0
-        ret i32 17
-
-F:              ; preds = %0
-        %X = load i32* %P               ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-define i32 @foo() {
-        %X = call i32 @callee( i1 true, i32* null )             ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/control-flow2.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/control-flow2.ll
deleted file mode 100644
index 5875013..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/control-flow2.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \
-; RUN:   grep {load i32\\* %A}
-
-define internal i32 @callee(i1 %C, i32* %P) {
-        br i1 %C, label %T, label %F
-
-T:              ; preds = %0
-        ret i32 17
-
-F:              ; preds = %0
-        %X = load i32* %P               ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-define i32 @foo() {
-        %A = alloca i32         ; <i32*> [#uses=2]
-        store i32 17, i32* %A
-        %X = call i32 @callee( i1 false, i32* %A )              ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/dg.exp b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/pr3085.ll b/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/pr3085.ll
deleted file mode 100644
index e350370..0000000
--- a/libclamav/c++/llvm/test/Transforms/ArgumentPromotion/pr3085.ll
+++ /dev/null
@@ -1,1944 +0,0 @@
-; RUN: llvm-as < %s | opt -disable-output -loop-extract-single -loop-rotate -loop-reduce -argpromotion
-; PR 3085
-
-	%struct.Lit = type { i8 }
-
-define fastcc %struct.Lit* @import_lit(i32 %lit) nounwind {
-entry:
-	br i1 false, label %bb, label %bb1
-
-bb:		; preds = %entry
-	unreachable
-
-bb1:		; preds = %entry
-	br label %bb3
-
-bb2:		; preds = %bb3
-	br label %bb3
-
-bb3:		; preds = %bb2, %bb1
-	br i1 false, label %bb2, label %bb6
-
-bb6:		; preds = %bb3
-	br i1 false, label %bb.i.i, label %bb1.i.i
-
-bb.i.i:		; preds = %bb6
-	br label %int2lit.exit
-
-bb1.i.i:		; preds = %bb6
-	br label %int2lit.exit
-
-int2lit.exit:		; preds = %bb1.i.i, %bb.i.i
-	ret %struct.Lit* null
-}
-
-define fastcc i32 @picosat_main(i32 %argc, i8** %argv) nounwind {
-entry:
-	br i1 false, label %bb.i, label %picosat_time_stamp.exit
-
-bb.i:		; preds = %entry
-	br label %picosat_time_stamp.exit
-
-picosat_time_stamp.exit:		; preds = %bb.i, %entry
-	br label %bb108
-
-bb:		; preds = %bb108
-	br i1 false, label %bb1, label %bb2
-
-bb1:		; preds = %bb
-	br label %bb106
-
-bb2:		; preds = %bb
-	br i1 false, label %bb3, label %bb4
-
-bb3:		; preds = %bb2
-	br label %bb106
-
-bb4:		; preds = %bb2
-	br i1 false, label %bb5, label %bb6
-
-bb5:		; preds = %bb4
-	br label %bb106
-
-bb6:		; preds = %bb4
-	br i1 false, label %bb7, label %bb8
-
-bb7:		; preds = %bb6
-	br label %bb106
-
-bb8:		; preds = %bb6
-	br i1 false, label %bb106, label %bb10
-
-bb10:		; preds = %bb8
-	br i1 false, label %bb106, label %bb12
-
-bb12:		; preds = %bb10
-	br i1 false, label %bb106, label %bb14
-
-bb14:		; preds = %bb12
-	br i1 false, label %bb15, label %bb19
-
-bb15:		; preds = %bb14
-	br i1 false, label %bb16, label %bb17
-
-bb16:		; preds = %bb15
-	br label %bb106
-
-bb17:		; preds = %bb15
-	br label %bb106
-
-bb19:		; preds = %bb14
-	br i1 false, label %bb20, label %bb28
-
-bb20:		; preds = %bb19
-	br i1 false, label %bb21, label %bb22
-
-bb21:		; preds = %bb20
-	br label %bb106
-
-bb22:		; preds = %bb20
-	br i1 false, label %bb106, label %bb24
-
-bb24:		; preds = %bb22
-	br i1 false, label %bb106, label %bb26
-
-bb26:		; preds = %bb24
-	br label %bb106
-
-bb28:		; preds = %bb19
-	br i1 false, label %bb29, label %bb35
-
-bb29:		; preds = %bb28
-	br i1 false, label %bb30, label %bb31
-
-bb30:		; preds = %bb29
-	br label %bb106
-
-bb31:		; preds = %bb29
-	br i1 false, label %bb32, label %bb33
-
-bb32:		; preds = %bb31
-	br label %bb106
-
-bb33:		; preds = %bb31
-	br label %bb106
-
-bb35:		; preds = %bb28
-	br i1 false, label %bb36, label %bb40
-
-bb36:		; preds = %bb35
-	br i1 false, label %bb37, label %bb38
-
-bb37:		; preds = %bb36
-	br label %bb106
-
-bb38:		; preds = %bb36
-	br label %bb106
-
-bb40:		; preds = %bb35
-	br i1 false, label %bb41, label %bb49
-
-bb41:		; preds = %bb40
-	br i1 false, label %bb43, label %bb42
-
-bb42:		; preds = %bb41
-	br label %bb106
-
-bb43:		; preds = %bb41
-	br i1 false, label %bb44, label %bb45
-
-bb44:		; preds = %bb43
-	br label %bb106
-
-bb45:		; preds = %bb43
-	br i1 false, label %bb46, label %bb47
-
-bb46:		; preds = %bb45
-	br label %bb106
-
-bb47:		; preds = %bb45
-	br label %bb106
-
-bb49:		; preds = %bb40
-	br i1 false, label %bb50, label %bb56
-
-bb50:		; preds = %bb49
-	br i1 false, label %bb52, label %bb51
-
-bb51:		; preds = %bb50
-	br label %bb106
-
-bb52:		; preds = %bb50
-	br i1 false, label %bb53, label %bb54
-
-bb53:		; preds = %bb52
-	br label %bb106
-
-bb54:		; preds = %bb52
-	br label %bb106
-
-bb56:		; preds = %bb49
-	br i1 false, label %bb57, label %bb63
-
-bb57:		; preds = %bb56
-	br i1 false, label %bb59, label %bb58
-
-bb58:		; preds = %bb57
-	br label %bb106
-
-bb59:		; preds = %bb57
-	br i1 false, label %bb60, label %bb61
-
-bb60:		; preds = %bb59
-	br label %bb106
-
-bb61:		; preds = %bb59
-	br label %bb106
-
-bb63:		; preds = %bb56
-	br i1 false, label %bb64, label %bb70
-
-bb64:		; preds = %bb63
-	br i1 false, label %bb66, label %bb65
-
-bb65:		; preds = %bb64
-	br label %bb106
-
-bb66:		; preds = %bb64
-	br i1 false, label %bb67, label %bb68
-
-bb67:		; preds = %bb66
-	br label %bb106
-
-bb68:		; preds = %bb66
-	br label %bb106
-
-bb70:		; preds = %bb63
-	br i1 false, label %bb71, label %bb79
-
-bb71:		; preds = %bb70
-	br i1 false, label %bb73, label %bb72
-
-bb72:		; preds = %bb71
-	br label %bb106
-
-bb73:		; preds = %bb71
-	br i1 false, label %bb74, label %bb75
-
-bb74:		; preds = %bb73
-	br label %bb106
-
-bb75:		; preds = %bb73
-	br i1 false, label %bb76, label %bb77
-
-bb76:		; preds = %bb75
-	br label %bb106
-
-bb77:		; preds = %bb75
-	br label %bb106
-
-bb79:		; preds = %bb70
-	br i1 false, label %bb80, label %bb86
-
-bb80:		; preds = %bb79
-	br i1 false, label %bb82, label %bb81
-
-bb81:		; preds = %bb80
-	br label %bb106
-
-bb82:		; preds = %bb80
-	br i1 false, label %bb83, label %bb84
-
-bb83:		; preds = %bb82
-	br label %bb106
-
-bb84:		; preds = %bb82
-	br label %bb106
-
-bb86:		; preds = %bb79
-	br i1 false, label %bb87, label %bb93
-
-bb87:		; preds = %bb86
-	br i1 false, label %bb89, label %bb88
-
-bb88:		; preds = %bb87
-	br label %bb106
-
-bb89:		; preds = %bb87
-	br i1 false, label %bb90, label %bb91
-
-bb90:		; preds = %bb89
-	br label %bb106
-
-bb91:		; preds = %bb89
-	br label %bb106
-
-bb93:		; preds = %bb86
-	br i1 false, label %bb94, label %bb95
-
-bb94:		; preds = %bb93
-	br label %bb106
-
-bb95:		; preds = %bb93
-	br i1 false, label %bb98, label %bb97
-
-bb97:		; preds = %bb95
-	br label %bb106
-
-bb98:		; preds = %bb95
-	br i1 false, label %bb103, label %bb1.i24
-
-bb1.i24:		; preds = %bb98
-	br i1 false, label %bb99, label %bb103
-
-bb99:		; preds = %bb1.i24
-	br i1 false, label %bb101, label %bb100
-
-bb100:		; preds = %bb99
-	br label %bb102
-
-bb101:		; preds = %bb99
-	br label %bb102
-
-bb102:		; preds = %bb101, %bb100
-	br label %bb106
-
-bb103:		; preds = %bb1.i24, %bb98
-	br i1 false, label %bb104, label %bb105
-
-bb104:		; preds = %bb103
-	br label %bb106
-
-bb105:		; preds = %bb103
-	br label %bb106
-
-bb106:		; preds = %bb105, %bb104, %bb102, %bb97, %bb94, %bb91, %bb90, %bb88, %bb84, %bb83, %bb81, %bb77, %bb76, %bb74, %bb72, %bb68, %bb67, %bb65, %bb61, %bb60, %bb58, %bb54, %bb53, %bb51, %bb47, %bb46, %bb44, %bb42, %bb38, %bb37, %bb33, %bb32, %bb30, %bb26, %bb24, %bb22, %bb21, %bb17, %bb16, %bb12, %bb10, %bb8, %bb7, %bb5, %bb3, %bb1
-	br i1 false, label %bb108, label %bb110
-
-bb108:		; preds = %bb106, %picosat_time_stamp.exit
-	br i1 false, label %bb, label %bb110
-
-bb110:		; preds = %bb108, %bb106
-	br i1 false, label %bb112, label %bb171
-
-bb112:		; preds = %bb110
-	br i1 false, label %bb114, label %bb113
-
-bb113:		; preds = %bb112
-	br label %bb114
-
-bb114:		; preds = %bb113, %bb112
-	br i1 false, label %bb.i.i35, label %bb1.i.i36
-
-bb.i.i35:		; preds = %bb114
-	unreachable
-
-bb1.i.i36:		; preds = %bb114
-	br i1 false, label %bb5.i.i.i41, label %bb6.i.i.i42
-
-bb5.i.i.i41:		; preds = %bb1.i.i36
-	unreachable
-
-bb6.i.i.i42:		; preds = %bb1.i.i36
-	br i1 false, label %bb7.i.i.i43, label %bb8.i.i.i44
-
-bb7.i.i.i43:		; preds = %bb6.i.i.i42
-	br label %bb8.i.i.i44
-
-bb8.i.i.i44:		; preds = %bb7.i.i.i43, %bb6.i.i.i42
-	br i1 false, label %picosat_init.exit, label %bb14.i.i
-
-bb14.i.i:		; preds = %bb8.i.i.i44
-	br label %picosat_init.exit
-
-picosat_init.exit:		; preds = %bb14.i.i, %bb8.i.i.i44
-	br i1 false, label %bb116, label %bb115
-
-bb115:		; preds = %picosat_init.exit
-	br label %bb116
-
-bb116:		; preds = %bb115, %picosat_init.exit
-	br i1 false, label %bb119, label %bb118
-
-bb118:		; preds = %bb116
-	br label %bb119
-
-bb119:		; preds = %bb118, %bb116
-	br i1 false, label %bb121, label %bb120
-
-bb120:		; preds = %bb119
-	br label %bb121
-
-bb121:		; preds = %bb120, %bb119
-	br i1 false, label %bb126, label %bb122
-
-bb122:		; preds = %bb121
-	br label %bb126
-
-bb126:		; preds = %bb122, %bb121
-	br i1 false, label %bb128, label %bb127
-
-bb127:		; preds = %bb126
-	br label %bb128
-
-bb128:		; preds = %bb127, %bb126
-	br label %SKIP_COMMENTS.i
-
-SKIP_COMMENTS.i.loopexit:		; preds = %bb.i149, %bb.i149
-	br label %SKIP_COMMENTS.i.backedge
-
-SKIP_COMMENTS.i:		; preds = %SKIP_COMMENTS.i.backedge, %bb128
-	br i1 false, label %bb.i149.preheader, label %bb3.i152
-
-bb.i149.preheader:		; preds = %SKIP_COMMENTS.i
-	br label %bb.i149
-
-bb.i149:		; preds = %bb.i149, %bb.i149.preheader
-	switch i32 0, label %bb.i149 [
-		i32 -1, label %SKIP_COMMENTS.i.loopexit
-		i32 10, label %SKIP_COMMENTS.i.loopexit
-	]
-
-bb3.i152:		; preds = %SKIP_COMMENTS.i
-	br i1 false, label %bb4.i153, label %SKIP_COMMENTS.i.backedge
-
-SKIP_COMMENTS.i.backedge:		; preds = %bb3.i152, %SKIP_COMMENTS.i.loopexit
-	br label %SKIP_COMMENTS.i
-
-bb4.i153:		; preds = %bb3.i152
-	br i1 false, label %bb5.i154, label %bb129
-
-bb5.i154:		; preds = %bb4.i153
-	br i1 false, label %bb129, label %bb6.i155.preheader
-
-bb6.i155.preheader:		; preds = %bb5.i154
-	br label %bb6.i155
-
-bb6.i155:		; preds = %bb6.i155, %bb6.i155.preheader
-	br i1 false, label %bb7.i156, label %bb6.i155
-
-bb7.i156:		; preds = %bb6.i155
-	br i1 false, label %bb8.i157, label %bb129
-
-bb8.i157:		; preds = %bb7.i156
-	br i1 false, label %bb9.i158, label %bb129
-
-bb9.i158:		; preds = %bb8.i157
-	br i1 false, label %bb10.i159, label %bb129
-
-bb10.i159:		; preds = %bb9.i158
-	br i1 false, label %bb129, label %bb11.i160.preheader
-
-bb11.i160.preheader:		; preds = %bb10.i159
-	br label %bb11.i160
-
-bb11.i160:		; preds = %bb11.i160, %bb11.i160.preheader
-	br i1 false, label %bb12.i161, label %bb11.i160
-
-bb12.i161:		; preds = %bb11.i160
-	br i1 false, label %bb129, label %bb15.i165.preheader
-
-bb15.i165.preheader:		; preds = %bb12.i161
-	br label %bb15.i165
-
-bb14.i163:		; preds = %bb15.i165
-	br label %bb15.i165
-
-bb15.i165:		; preds = %bb14.i163, %bb15.i165.preheader
-	br i1 false, label %bb16.i166, label %bb14.i163
-
-bb16.i166:		; preds = %bb15.i165
-	br i1 false, label %bb129, label %bb17.i167.preheader
-
-bb17.i167.preheader:		; preds = %bb16.i166
-	br label %bb17.i167
-
-bb17.i167:		; preds = %bb17.i167, %bb17.i167.preheader
-	br i1 false, label %bb18.i168, label %bb17.i167
-
-bb18.i168:		; preds = %bb17.i167
-	br i1 false, label %bb129, label %bb21.i172.preheader
-
-bb21.i172.preheader:		; preds = %bb18.i168
-	br label %bb21.i172
-
-bb20.i170:		; preds = %bb21.i172
-	br label %bb21.i172
-
-bb21.i172:		; preds = %bb20.i170, %bb21.i172.preheader
-	br i1 false, label %bb22.i173, label %bb20.i170
-
-bb22.i173:		; preds = %bb21.i172
-	br i1 false, label %bb24.i175, label %bb129
-
-bb24.i175:		; preds = %bb22.i173
-	br i1 false, label %bb26.i180, label %bb25.i176
-
-bb25.i176:		; preds = %bb24.i175
-	br label %bb26.i180
-
-bb26.i180:		; preds = %bb25.i176, %bb24.i175
-	br i1 false, label %bb.i.i181, label %bb3.i.i184.preheader
-
-bb.i.i181:		; preds = %bb26.i180
-	br label %bb3.i.i184.preheader
-
-bb3.i.i184.preheader:		; preds = %bb.i.i181, %bb26.i180
-	br label %bb3.i.i184
-
-bb2.i.i183:		; preds = %bb3.i.i184
-	br label %bb3.i.i184
-
-bb3.i.i184:		; preds = %bb2.i.i183, %bb3.i.i184.preheader
-	br i1 false, label %bb2.i.i183, label %bb4.i.i185
-
-bb4.i.i185:		; preds = %bb3.i.i184
-	br i1 false, label %bb.i.i.i186, label %picosat_adjust.exit.i
-
-bb.i.i.i186:		; preds = %bb4.i.i185
-	br label %picosat_adjust.exit.i
-
-picosat_adjust.exit.i:		; preds = %bb.i.i.i186, %bb4.i.i185
-	br i1 false, label %bb28.i188, label %bb27.i187
-
-bb27.i187:		; preds = %picosat_adjust.exit.i
-	br label %bb28.i188
-
-bb28.i188:		; preds = %bb27.i187, %picosat_adjust.exit.i
-	br label %READ_LITERAL.i.outer
-
-READ_LITERAL.i.outer:		; preds = %READ_LITERAL.i.outer.backedge, %bb28.i188
-	br label %READ_LITERAL.i
-
-READ_LITERAL.i.loopexit:		; preds = %bb29.i189, %bb29.i189
-	br label %READ_LITERAL.i.backedge
-
-READ_LITERAL.i:		; preds = %READ_LITERAL.i.backedge, %READ_LITERAL.i.outer
-	switch i32 0, label %bb39.i199 [
-		i32 99, label %bb29.i189.preheader
-		i32 -1, label %bb33.i193
-	]
-
-bb29.i189.preheader:		; preds = %READ_LITERAL.i
-	br label %bb29.i189
-
-bb29.i189:		; preds = %bb29.i189, %bb29.i189.preheader
-	switch i32 0, label %bb29.i189 [
-		i32 -1, label %READ_LITERAL.i.loopexit
-		i32 10, label %READ_LITERAL.i.loopexit
-	]
-
-bb33.i193:		; preds = %READ_LITERAL.i
-	br i1 false, label %bb35.i195, label %parse.exit
-
-bb35.i195:		; preds = %bb33.i193
-	br i1 false, label %bb38.i198, label %parse.exit
-
-bb38.i198:		; preds = %bb35.i195
-	br label %parse.exit
-
-bb39.i199:		; preds = %READ_LITERAL.i
-	br i1 false, label %bb40.i200, label %READ_LITERAL.i.backedge
-
-READ_LITERAL.i.backedge:		; preds = %bb39.i199, %READ_LITERAL.i.loopexit
-	br label %READ_LITERAL.i
-
-bb40.i200:		; preds = %bb39.i199
-	br i1 false, label %bb41.i201, label %bb42.i202
-
-bb41.i201:		; preds = %bb40.i200
-	br label %bb42.i202
-
-bb42.i202:		; preds = %bb41.i201, %bb40.i200
-	br i1 false, label %parse.exit.loopexit, label %bb46.i.preheader
-
-bb46.i.preheader:		; preds = %bb42.i202
-	br label %bb46.i
-
-bb45.i:		; preds = %bb46.i
-	br label %bb46.i
-
-bb46.i:		; preds = %bb45.i, %bb46.i.preheader
-	br i1 false, label %bb47.i, label %bb45.i
-
-bb47.i:		; preds = %bb46.i
-	br i1 false, label %parse.exit.loopexit, label %bb50.i
-
-bb50.i:		; preds = %bb47.i
-	br i1 false, label %bb55.i, label %bb51.i
-
-bb51.i:		; preds = %bb50.i
-	br i1 false, label %parse.exit.loopexit, label %bb54.i
-
-bb54.i:		; preds = %bb51.i
-	br label %bb56.i
-
-bb55.i:		; preds = %bb50.i
-	br label %bb56.i
-
-bb56.i:		; preds = %bb55.i, %bb54.i
-	br i1 false, label %bb3.i11.i, label %bb.i8.i
-
-bb.i8.i:		; preds = %bb56.i
-	br i1 false, label %bb1.i9.i, label %bb3.i11.i
-
-bb1.i9.i:		; preds = %bb.i8.i
-	br i1 false, label %bb3.i11.i, label %bb2.i10.i
-
-bb2.i10.i:		; preds = %bb1.i9.i
-	unreachable
-
-bb3.i11.i:		; preds = %bb1.i9.i, %bb.i8.i, %bb56.i
-	br i1 false, label %bb7.i.i208, label %bb6.i.i207
-
-bb6.i.i207:		; preds = %bb3.i11.i
-	br label %READ_LITERAL.i.outer.backedge
-
-bb7.i.i208:		; preds = %bb3.i11.i
-	br i1 false, label %bb53.i.i.i.i.preheader, label %bb.i.i.i.i210.preheader
-
-bb.i.i.i.i210.preheader:		; preds = %bb7.i.i208
-	br label %bb.i.i.i.i210
-
-bb.i.i.i.i210:		; preds = %bb.i.i.i.i210.backedge, %bb.i.i.i.i210.preheader
-	br i1 false, label %bb17.i.i.i.i, label %bb18.i.i.i.i
-
-bb17.i.i.i.i:		; preds = %bb.i.i.i.i210
-	br label %bb18.i.i.i.i
-
-bb18.i.i.i.i:		; preds = %bb17.i.i.i.i, %bb.i.i.i.i210
-	br i1 false, label %bb19.i.i.i.i, label %bb20.i.i.i.i
-
-bb19.i.i.i.i:		; preds = %bb18.i.i.i.i
-	br label %bb20.i.i.i.i
-
-bb20.i.i.i.i:		; preds = %bb19.i.i.i.i, %bb18.i.i.i.i
-	br i1 false, label %bb21.i.i.i.i, label %bb22.i.i.i.i
-
-bb21.i.i.i.i:		; preds = %bb20.i.i.i.i
-	br label %bb22.i.i.i.i
-
-bb22.i.i.i.i:		; preds = %bb21.i.i.i.i, %bb20.i.i.i.i
-	br label %bb23.i.i.i.i.outer
-
-bb23.i.i.i.i.outer:		; preds = %bb28.i.i.i.i, %bb22.i.i.i.i
-	br label %bb23.i.i.i.i
-
-bb23.i.i.i.i:		; preds = %bb23.i.i.i.i, %bb23.i.i.i.i.outer
-	br i1 false, label %bb23.i.i.i.i, label %bb26.i.i.i.i.preheader
-
-bb26.i.i.i.i.preheader:		; preds = %bb23.i.i.i.i
-	br label %bb26.i.i.i.i
-
-bb26.i.i.i.i:		; preds = %bb26.i.i.i.i, %bb26.i.i.i.i.preheader
-	br i1 false, label %bb27.i.i.i.i, label %bb26.i.i.i.i
-
-bb27.i.i.i.i:		; preds = %bb26.i.i.i.i
-	br i1 false, label %bb28.i.i.i.i, label %bb29.i.i.i.i
-
-bb28.i.i.i.i:		; preds = %bb27.i.i.i.i
-	br label %bb23.i.i.i.i.outer
-
-bb29.i.i.i.i:		; preds = %bb27.i.i.i.i
-	br i1 false, label %bb33.i.i.i.i, label %bb44.i.i.i.i
-
-bb33.i.i.i.i:		; preds = %bb29.i.i.i.i
-	br i1 false, label %bb34.i.i.i.i, label %bb38.i.i.i.i
-
-bb34.i.i.i.i:		; preds = %bb33.i.i.i.i
-	br i1 false, label %bb37.i.i.i.i, label %bb35.i.i.i.i
-
-bb35.i.i.i.i:		; preds = %bb34.i.i.i.i
-	br label %bb37.i.i.i.i
-
-bb37.i.i.i.i:		; preds = %bb35.i.i.i.i, %bb34.i.i.i.i
-	br label %bb38.i.i.i.i
-
-bb38.i.i.i.i:		; preds = %bb37.i.i.i.i, %bb33.i.i.i.i
-	br i1 false, label %bb39.i.i.i.i, label %bb43.i.i.i.i
-
-bb39.i.i.i.i:		; preds = %bb38.i.i.i.i
-	br i1 false, label %bb42.i.i.i.i, label %bb40.i.i.i.i
-
-bb40.i.i.i.i:		; preds = %bb39.i.i.i.i
-	br label %bb42.i.i.i.i
-
-bb42.i.i.i.i:		; preds = %bb40.i.i.i.i, %bb39.i.i.i.i
-	br label %bb43.i.i.i.i
-
-bb43.i.i.i.i:		; preds = %bb42.i.i.i.i, %bb38.i.i.i.i
-	br label %bb.i.i.i.i210.backedge
-
-bb.i.i.i.i210.backedge:		; preds = %bb47.i.i.i.i, %bb44.i.i.i.i, %bb43.i.i.i.i
-	br label %bb.i.i.i.i210
-
-bb44.i.i.i.i:		; preds = %bb29.i.i.i.i
-	br i1 false, label %bb.i.i.i.i210.backedge, label %bb46.i.i.i.i
-
-bb46.i.i.i.i:		; preds = %bb44.i.i.i.i
-	br i1 false, label %bb47.i.i.i.i, label %bb53.i.i.i.i.preheader.loopexit
-
-bb53.i.i.i.i.preheader.loopexit:		; preds = %bb46.i.i.i.i
-	br label %bb53.i.i.i.i.preheader
-
-bb53.i.i.i.i.preheader:		; preds = %bb53.i.i.i.i.preheader.loopexit, %bb7.i.i208
-	br label %bb53.i.i.i.i
-
-bb47.i.i.i.i:		; preds = %bb46.i.i.i.i
-	br label %bb.i.i.i.i210.backedge
-
-bb50.i.i.i.i:		; preds = %bb53.i.i.i.i
-	br i1 false, label %bb51.i.i.i.i, label %bb52.i.i.i.i
-
-bb51.i.i.i.i:		; preds = %bb50.i.i.i.i
-	br label %bb52.i.i.i.i
-
-bb52.i.i.i.i:		; preds = %bb51.i.i.i.i, %bb50.i.i.i.i
-	br label %bb53.i.i.i.i
-
-bb53.i.i.i.i:		; preds = %bb52.i.i.i.i, %bb53.i.i.i.i.preheader
-	br i1 false, label %bb50.i.i.i.i, label %bb59.i.i.i.i.preheader
-
-bb59.i.i.i.i.preheader:		; preds = %bb53.i.i.i.i
-	br label %bb59.i.i.i.i
-
-bb55.i.i.i.i:		; preds = %bb59.i.i.i.i
-	br label %bb57.i.i.i.i
-
-bb56.i.i.i.i:		; preds = %bb57.i.i.i.i
-	br label %bb57.i.i.i.i
-
-bb57.i.i.i.i:		; preds = %bb56.i.i.i.i, %bb55.i.i.i.i
-	br i1 false, label %bb56.i.i.i.i, label %bb58.i.i.i.i
-
-bb58.i.i.i.i:		; preds = %bb57.i.i.i.i
-	br label %bb59.i.i.i.i
-
-bb59.i.i.i.i:		; preds = %bb58.i.i.i.i, %bb59.i.i.i.i.preheader
-	br i1 false, label %bb60.i.i.i.i, label %bb55.i.i.i.i
-
-bb60.i.i.i.i:		; preds = %bb59.i.i.i.i
-	br label %bb69.i.i.i.i
-
-bb61.i.i.i.i:		; preds = %bb69.i.i.i.i
-	br i1 false, label %bb68.i.i.i.i, label %bb62.i.i.i.i
-
-bb62.i.i.i.i:		; preds = %bb61.i.i.i.i
-	br i1 false, label %bb63.i.i.i.i, label %bb65.i.i.i.i
-
-bb63.i.i.i.i:		; preds = %bb62.i.i.i.i
-	br i1 false, label %bb.i.i12.i, label %bb65.i.i.i.i
-
-bb65.i.i.i.i:		; preds = %bb63.i.i.i.i, %bb62.i.i.i.i
-	br i1 false, label %bb.i.i12.i, label %bb67.i.i.i.i
-
-bb67.i.i.i.i:		; preds = %bb65.i.i.i.i
-	br label %bb68.i.i.i.i
-
-bb68.i.i.i.i:		; preds = %bb67.i.i.i.i, %bb61.i.i.i.i
-	br label %bb69.i.i.i.i
-
-bb69.i.i.i.i:		; preds = %bb68.i.i.i.i, %bb60.i.i.i.i
-	br i1 false, label %bb61.i.i.i.i, label %bb70.i.i.i.i
-
-bb70.i.i.i.i:		; preds = %bb69.i.i.i.i
-	br label %READ_LITERAL.i.outer.backedge
-
-bb.i.i12.i:		; preds = %bb65.i.i.i.i, %bb63.i.i.i.i
-	br i1 false, label %bb1.i.i.i213, label %bb5.i.i.i218
-
-bb1.i.i.i213:		; preds = %bb.i.i12.i
-	br i1 false, label %bb4.i.i.i217, label %bb2.i.i.i214
-
-bb2.i.i.i214:		; preds = %bb1.i.i.i213
-	br label %bb4.i.i.i217
-
-bb4.i.i.i217:		; preds = %bb2.i.i.i214, %bb1.i.i.i213
-	br label %bb5.i.i.i218
-
-bb5.i.i.i218:		; preds = %bb4.i.i.i217, %bb.i.i12.i
-	br label %READ_LITERAL.i.outer.backedge
-
-READ_LITERAL.i.outer.backedge:		; preds = %bb5.i.i.i218, %bb70.i.i.i.i, %bb6.i.i207
-	br label %READ_LITERAL.i.outer
-
-parse.exit.loopexit:		; preds = %bb51.i, %bb47.i, %bb42.i202
-	br label %parse.exit
-
-parse.exit:		; preds = %parse.exit.loopexit, %bb38.i198, %bb35.i195, %bb33.i193
-	br i1 false, label %bb130, label %bb129
-
-bb129:		; preds = %parse.exit, %bb22.i173, %bb18.i168, %bb16.i166, %bb12.i161, %bb10.i159, %bb9.i158, %bb8.i157, %bb7.i156, %bb5.i154, %bb4.i153
-	br label %bb170
-
-bb130:		; preds = %parse.exit
-	br i1 false, label %bb143, label %bb142.preheader
-
-bb142.preheader:		; preds = %bb130
-	br label %bb142
-
-bb132:		; preds = %bb142
-	br i1 false, label %bb137, label %bb133
-
-bb133:		; preds = %bb132
-	br i1 false, label %bb137, label %bb134
-
-bb134:		; preds = %bb133
-	br i1 false, label %bb137, label %bb135
-
-bb135:		; preds = %bb134
-	br i1 false, label %bb137, label %bb136
-
-bb136:		; preds = %bb135
-	br i1 false, label %bb137, label %bb138
-
-bb137:		; preds = %bb136, %bb135, %bb134, %bb133, %bb132
-	br label %bb141
-
-bb138:		; preds = %bb136
-	br i1 false, label %bb139, label %bb141
-
-bb139:		; preds = %bb138
-	br i1 false, label %bb2.i126, label %picosat_assume.exit
-
-bb2.i126:		; preds = %bb139
-	br i1 false, label %bb5.i130, label %bb3.i127
-
-bb3.i127:		; preds = %bb2.i126
-	br label %bb5.i130
-
-bb5.i130:		; preds = %bb3.i127, %bb2.i126
-	br label %picosat_assume.exit
-
-picosat_assume.exit:		; preds = %bb5.i130, %bb139
-	br i1 false, label %bb141, label %bb140
-
-bb140:		; preds = %picosat_assume.exit
-	br label %bb141
-
-bb141:		; preds = %bb140, %picosat_assume.exit, %bb138, %bb137
-	br label %bb142
-
-bb142:		; preds = %bb141, %bb142.preheader
-	br i1 false, label %bb132, label %bb143.loopexit
-
-bb143.loopexit:		; preds = %bb142
-	br label %bb143
-
-bb143:		; preds = %bb143.loopexit, %bb130
-	br i1 false, label %bb145, label %bb144
-
-bb144:		; preds = %bb143
-	br label %bb11.i
-
-bb5.i114:		; preds = %bb11.i
-	br label %bb11.i
-
-bb11.i:		; preds = %bb5.i114, %bb144
-	br i1 false, label %bb12.i, label %bb5.i114
-
-bb12.i:		; preds = %bb11.i
-	br i1 false, label %bb.i.i.i118, label %bb1.i.i.i119
-
-bb.i.i.i118:		; preds = %bb12.i
-	br label %int2lit.exit.i
-
-bb1.i.i.i119:		; preds = %bb12.i
-	br label %int2lit.exit.i
-
-int2lit.exit.i:		; preds = %bb1.i.i.i119, %bb.i.i.i118
-	br label %bb19.i
-
-bb13.i:		; preds = %bb19.i
-	br label %bb17.i
-
-bb14.i:		; preds = %bb17.i
-	br label %bb17.i
-
-bb17.i:		; preds = %bb14.i, %bb13.i
-	br i1 false, label %bb14.i, label %bb18.i
-
-bb18.i:		; preds = %bb17.i
-	br label %bb19.i
-
-bb19.i:		; preds = %bb18.i, %int2lit.exit.i
-	br i1 false, label %bb20.i, label %bb13.i
-
-bb20.i:		; preds = %bb19.i
-	br label %bb33.i
-
-bb24.i:		; preds = %bb33.i
-	br i1 false, label %bb29.i, label %bb25.i
-
-bb25.i:		; preds = %bb24.i
-	br label %bb27.i
-
-bb26.i:		; preds = %bb27.i
-	br label %bb27.i
-
-bb27.i:		; preds = %bb26.i, %bb25.i
-	br i1 false, label %bb26.i, label %bb28.i
-
-bb28.i:		; preds = %bb27.i
-	br label %bb29.i
-
-bb29.i:		; preds = %bb28.i, %bb24.i
-	br label %bb33.i
-
-bb33.i:		; preds = %bb29.i, %bb20.i
-	br i1 false, label %bb34.i, label %bb24.i
-
-bb34.i:		; preds = %bb33.i
-	br i1 false, label %bb.i.i58.i, label %bb1.i.i59.i
-
-bb.i.i58.i:		; preds = %bb34.i
-	br label %int2lit.exit63.i
-
-bb1.i.i59.i:		; preds = %bb34.i
-	br label %int2lit.exit63.i
-
-int2lit.exit63.i:		; preds = %bb1.i.i59.i, %bb.i.i58.i
-	br label %bb41.i
-
-bb35.i:		; preds = %bb41.i
-	br label %bb39.i
-
-bb36.i:		; preds = %bb39.i
-	br i1 false, label %bb38.i, label %bb37.i
-
-bb37.i:		; preds = %bb36.i
-	br label %bb38.i
-
-bb38.i:		; preds = %bb37.i, %bb36.i
-	br label %bb39.i
-
-bb39.i:		; preds = %bb38.i, %bb35.i
-	br i1 false, label %bb36.i, label %bb40.i
-
-bb40.i:		; preds = %bb39.i
-	br label %bb41.i
-
-bb41.i:		; preds = %bb40.i, %int2lit.exit63.i
-	br i1 false, label %bb42.i, label %bb35.i
-
-bb42.i:		; preds = %bb41.i
-	br label %bb44.i
-
-bb43.i:		; preds = %bb44.i
-	br label %bb44.i
-
-bb44.i:		; preds = %bb43.i, %bb42.i
-	br i1 false, label %bb43.i, label %picosat_print.exit
-
-picosat_print.exit:		; preds = %bb44.i
-	br label %bb167
-
-bb145:		; preds = %bb143
-	br i1 false, label %bb147, label %bb146
-
-bb146:		; preds = %bb145
-	br label %bb147
-
-bb147:		; preds = %bb146, %bb145
-	br i1 false, label %bb149, label %bb148
-
-bb148:		; preds = %bb147
-	br label %bb149
-
-bb149:		; preds = %bb148, %bb147
-	br i1 false, label %bb.i54, label %bb1.i55
-
-bb.i54:		; preds = %bb149
-	unreachable
-
-bb1.i55:		; preds = %bb149
-	br i1 false, label %bb.i.i56, label %bb1.i.i57
-
-bb.i.i56:		; preds = %bb1.i55
-	br label %bb1.i.i57
-
-bb1.i.i57:		; preds = %bb.i.i56, %bb1.i55
-	br i1 false, label %bb3.i.i59, label %bb2.i.i58
-
-bb2.i.i58:		; preds = %bb1.i.i57
-	br label %bb3.i.i59
-
-bb3.i.i59:		; preds = %bb2.i.i58, %bb1.i.i57
-	br i1 false, label %bb5.i.i61, label %sat.exit.i
-
-bb5.i.i61:		; preds = %bb3.i.i59
-	br i1 false, label %bb6.i.i65, label %bb1.i.i.i63
-
-bb1.i.i.i63:		; preds = %bb5.i.i61
-	br i1 false, label %sat.exit.i, label %bb6.i.i65
-
-bb6.i.i65:		; preds = %bb1.i.i.i63, %bb5.i.i61
-	br i1 false, label %bb8.i.i67, label %bb7.i.i66
-
-bb7.i.i66:		; preds = %bb6.i.i65
-	br label %bb8.i.i67
-
-bb8.i.i67:		; preds = %bb7.i.i66, %bb6.i.i65
-	br i1 false, label %bb10.i.i69, label %sat.exit.i
-
-bb10.i.i69:		; preds = %bb8.i.i67
-	br i1 false, label %bb11.i.i70, label %bb1.i61.i.i
-
-bb1.i61.i.i:		; preds = %bb10.i.i69
-	br i1 false, label %sat.exit.i, label %bb11.i.i70
-
-bb11.i.i70:		; preds = %bb1.i61.i.i, %bb10.i.i69
-	br label %bb13.i.i71.outer
-
-bb13.i.i71.outer:		; preds = %bb42.i.i, %bb11.i.i70
-	br label %bb13.i.i71
-
-bb13.i.i71:		; preds = %bb13.i.i71.backedge, %bb13.i.i71.outer
-	br i1 false, label %bb14.i.i72, label %bb15.i.i73
-
-bb14.i.i72:		; preds = %bb13.i.i71
-	br label %bb15.i.i73
-
-bb15.i.i73:		; preds = %bb14.i.i72, %bb13.i.i71
-	br i1 false, label %bb19.i.i, label %bb16.i.i
-
-bb16.i.i:		; preds = %bb15.i.i73
-	br i1 false, label %bb.i.i79.i.i, label %incincs.exit.i.i
-
-bb.i.i79.i.i:		; preds = %bb16.i.i
-	br label %bb4.i.i.i85.i.i
-
-bb.i.i.i80.i.i:		; preds = %bb4.i.i.i85.i.i
-	br i1 false, label %bb3.i.i.i83.i.i, label %bb1.i.i.i81.i.i
-
-bb1.i.i.i81.i.i:		; preds = %bb.i.i.i80.i.i
-	br i1 false, label %bb2.i.i.i82.i.i, label %bb3.i.i.i83.i.i
-
-bb2.i.i.i82.i.i:		; preds = %bb1.i.i.i81.i.i
-	br label %bb3.i.i.i83.i.i
-
-bb3.i.i.i83.i.i:		; preds = %bb2.i.i.i82.i.i, %bb1.i.i.i81.i.i, %bb.i.i.i80.i.i
-	br label %bb4.i.i.i85.i.i
-
-bb4.i.i.i85.i.i:		; preds = %bb3.i.i.i83.i.i, %bb.i.i79.i.i
-	br i1 false, label %crescore.exit.i.i.i.i, label %bb.i.i.i80.i.i
-
-crescore.exit.i.i.i.i:		; preds = %bb4.i.i.i85.i.i
-	br label %incincs.exit.i.i
-
-incincs.exit.i.i:		; preds = %crescore.exit.i.i.i.i, %bb16.i.i
-	br i1 false, label %bb13.i.i71.backedge, label %sat.exit.i.loopexit.loopexit
-
-bb13.i.i71.backedge:		; preds = %bb1.i55.i.i, %bb28.i.i, %incincs.exit.i.i
-	br label %bb13.i.i71
-
-bb19.i.i:		; preds = %bb15.i.i73
-	br i1 false, label %bb20.i.i, label %bb1.i68.i.i
-
-bb1.i68.i.i:		; preds = %bb19.i.i
-	br i1 false, label %sat.exit.i.loopexit.loopexit, label %bb20.i.i
-
-bb20.i.i:		; preds = %bb1.i68.i.i, %bb19.i.i
-	br i1 false, label %bb24.i.i, label %bb21.i.i
-
-bb21.i.i:		; preds = %bb20.i.i
-	br i1 false, label %bb22.i.i, label %bb24.i.i
-
-bb22.i.i:		; preds = %bb21.i.i
-	br i1 false, label %bb23.i.i, label %bb24.i.i
-
-bb23.i.i:		; preds = %bb22.i.i
-	br label %bb24.i.i
-
-bb24.i.i:		; preds = %bb23.i.i, %bb22.i.i, %bb21.i.i, %bb20.i.i
-	br i1 false, label %bb26.i.i, label %sat.exit.i.loopexit.loopexit
-
-bb26.i.i:		; preds = %bb24.i.i
-	br i1 false, label %bb27.i.i, label %bb33.i.i.loopexit
-
-bb27.i.i:		; preds = %bb26.i.i
-	br i1 false, label %bb33.i.i.loopexit, label %bb28.i.i
-
-bb28.i.i:		; preds = %bb27.i.i
-	br i1 false, label %bb1.i55.i.i, label %bb13.i.i71.backedge
-
-bb1.i55.i.i:		; preds = %bb28.i.i
-	br i1 false, label %bb29.i.i, label %bb13.i.i71.backedge
-
-bb29.i.i:		; preds = %bb1.i55.i.i
-	br i1 false, label %bb31.i.i, label %sat.exit.i.loopexit.loopexit2
-
-bb31.i.i:		; preds = %bb29.i.i
-	br i1 false, label %bb33.i.i, label %bb1.i48.i.i
-
-bb1.i48.i.i:		; preds = %bb31.i.i
-	br i1 false, label %sat.exit.i.loopexit.loopexit2, label %bb33.i.i
-
-bb33.i.i.loopexit:		; preds = %bb27.i.i, %bb26.i.i
-	br label %bb33.i.i
-
-bb33.i.i:		; preds = %bb33.i.i.loopexit, %bb1.i48.i.i, %bb31.i.i
-	br i1 false, label %bb34.i.i, label %bb35.i.i
-
-bb34.i.i:		; preds = %bb33.i.i
-	br i1 false, label %bb35.i.i, label %bb2.i44.i.i76
-
-bb2.i44.i.i76:		; preds = %bb34.i.i
-	br label %bb35.i.i
-
-bb35.i.i:		; preds = %bb2.i44.i.i76, %bb34.i.i, %bb33.i.i
-	br i1 false, label %bb1.i37.i.i, label %bb.i35.i.i
-
-bb.i35.i.i:		; preds = %bb35.i.i
-	br label %bb36.i.i
-
-bb1.i37.i.i:		; preds = %bb35.i.i
-	br i1 false, label %bb37.i.i, label %bb36.i.i
-
-bb36.i.i:		; preds = %bb1.i37.i.i, %bb.i35.i.i
-	br label %bb25.i23.i.i
-
-bb.i18.i.i:		; preds = %bb25.i23.i.i
-	br i1 false, label %bb24.i22.i.i, label %bb22.i19.i.i
-
-bb22.i19.i.i:		; preds = %bb.i18.i.i
-	br label %bb24.i22.i.i
-
-bb24.i22.i.i:		; preds = %bb22.i19.i.i, %bb.i18.i.i
-	br label %bb25.i23.i.i
-
-bb25.i23.i.i:		; preds = %bb24.i22.i.i, %bb36.i.i
-	br i1 false, label %bb.i18.i.i, label %bb26.i24.i.i
-
-bb26.i24.i.i:		; preds = %bb25.i23.i.i
-	br i1 false, label %bb27.i25.i.i, label %bb32.i.i.i
-
-bb27.i25.i.i:		; preds = %bb26.i24.i.i
-	br label %bb32.i.i.i
-
-bb32.i.i.i:		; preds = %bb27.i25.i.i, %bb26.i24.i.i
-	br label %bb64.i.i.i
-
-bb33.i.i.i:		; preds = %bb64.i.i.i
-	br i1 false, label %bb60.i.i.i, label %bb34.i.i.i
-
-bb34.i.i.i:		; preds = %bb33.i.i.i
-	br i1 false, label %bb38.i.i.i, label %bb60.i.i.i
-
-bb38.i.i.i:		; preds = %bb34.i.i.i
-	br i1 false, label %bb39.i.i.i, label %bb48.i.i.i
-
-bb39.i.i.i:		; preds = %bb38.i.i.i
-	br i1 false, label %bb48.i.i.i, label %bb40.i.i.i
-
-bb40.i.i.i:		; preds = %bb39.i.i.i
-	br i1 false, label %bb60.i.i.i, label %bb45.i.i.i
-
-bb45.i.i.i:		; preds = %bb40.i.i.i
-	br label %bb60.i.i.i
-
-bb48.i.i.i:		; preds = %bb39.i.i.i, %bb38.i.i.i
-	br i1 false, label %bb53.i.i.i, label %bb60.i.i.i
-
-bb53.i.i.i:		; preds = %bb48.i.i.i
-	br i1 false, label %bb60.i.i.i, label %bb58.i.i.i
-
-bb58.i.i.i:		; preds = %bb53.i.i.i
-	br i1 false, label %bb59.i.i.i, label %bb60.i.i.i
-
-bb59.i.i.i:		; preds = %bb58.i.i.i
-	br label %bb60.i.i.i
-
-bb60.i.i.i:		; preds = %bb59.i.i.i, %bb58.i.i.i, %bb53.i.i.i, %bb48.i.i.i, %bb45.i.i.i, %bb40.i.i.i, %bb34.i.i.i, %bb33.i.i.i
-	%lcollect.i.i.i.1 = phi i32 [ %lcollect.i.i.i.2, %bb34.i.i.i ], [ %lcollect.i.i.i.2, %bb48.i.i.i ], [ %lcollect.i.i.i.2, %bb58.i.i.i ], [ %lcollect.i.i.i.2, %bb59.i.i.i ], [ %lcollect.i.i.i.2, %bb53.i.i.i ], [ %lcollect.i.i.i.2, %bb33.i.i.i ], [ %lcollect.i.i.i.2, %bb40.i.i.i ], [ 0, %bb45.i.i.i ]		; <i32> [#uses=1]
-	br label %bb64.i.i.i
-
-bb64.i.i.i:		; preds = %bb60.i.i.i, %bb32.i.i.i
-	%lcollect.i.i.i.2 = phi i32 [ 0, %bb32.i.i.i ], [ %lcollect.i.i.i.1, %bb60.i.i.i ]		; <i32> [#uses=8]
-	br i1 false, label %bb65.i.i.i, label %bb33.i.i.i
-
-bb65.i.i.i:		; preds = %bb64.i.i.i
-	br i1 false, label %bb103.i.i.i.preheader, label %bb66.i.i.i.preheader
-
-bb66.i.i.i.preheader:		; preds = %bb65.i.i.i
-	br label %bb66.i.i.i
-
-bb66.i.i.i:		; preds = %bb66.i.i.i.backedge, %bb66.i.i.i.preheader
-	br i1 false, label %bb67.i.i.i, label %bb68.i.i.i
-
-bb67.i.i.i:		; preds = %bb66.i.i.i
-	br label %bb68.i.i.i
-
-bb68.i.i.i:		; preds = %bb67.i.i.i, %bb66.i.i.i
-	br i1 false, label %bb69.i.i.i, label %bb70.i.i.i
-
-bb69.i.i.i:		; preds = %bb68.i.i.i
-	br label %bb70.i.i.i
-
-bb70.i.i.i:		; preds = %bb69.i.i.i, %bb68.i.i.i
-	br i1 false, label %bb71.i.i.i, label %bb72.i.i.i
-
-bb71.i.i.i:		; preds = %bb70.i.i.i
-	br label %bb72.i.i.i
-
-bb72.i.i.i:		; preds = %bb71.i.i.i, %bb70.i.i.i
-	br label %bb73.i.i.i.outer
-
-bb73.i.i.i.outer:		; preds = %bb78.i.i.i, %bb72.i.i.i
-	br label %bb73.i.i.i
-
-bb73.i.i.i:		; preds = %bb73.i.i.i, %bb73.i.i.i.outer
-	br i1 false, label %bb73.i.i.i, label %bb76.i.i.i.preheader
-
-bb76.i.i.i.preheader:		; preds = %bb73.i.i.i
-	br label %bb76.i.i.i
-
-bb76.i.i.i:		; preds = %bb76.i.i.i, %bb76.i.i.i.preheader
-	br i1 false, label %bb77.i.i.i, label %bb76.i.i.i
-
-bb77.i.i.i:		; preds = %bb76.i.i.i
-	br i1 false, label %bb78.i.i.i, label %bb79.i.i.i
-
-bb78.i.i.i:		; preds = %bb77.i.i.i
-	br label %bb73.i.i.i.outer
-
-bb79.i.i.i:		; preds = %bb77.i.i.i
-	br i1 false, label %bb83.i.i.i, label %bb94.i.i.i
-
-bb83.i.i.i:		; preds = %bb79.i.i.i
-	br i1 false, label %bb84.i.i.i, label %bb88.i.i.i
-
-bb84.i.i.i:		; preds = %bb83.i.i.i
-	br i1 false, label %bb87.i.i.i, label %bb85.i.i.i
-
-bb85.i.i.i:		; preds = %bb84.i.i.i
-	br label %bb87.i.i.i
-
-bb87.i.i.i:		; preds = %bb85.i.i.i, %bb84.i.i.i
-	br label %bb88.i.i.i
-
-bb88.i.i.i:		; preds = %bb87.i.i.i, %bb83.i.i.i
-	br i1 false, label %bb89.i.i.i, label %bb93.i.i.i
-
-bb89.i.i.i:		; preds = %bb88.i.i.i
-	br i1 false, label %bb92.i.i.i, label %bb90.i.i.i
-
-bb90.i.i.i:		; preds = %bb89.i.i.i
-	br label %bb92.i.i.i
-
-bb92.i.i.i:		; preds = %bb90.i.i.i, %bb89.i.i.i
-	br label %bb93.i.i.i
-
-bb93.i.i.i:		; preds = %bb92.i.i.i, %bb88.i.i.i
-	br label %bb66.i.i.i.backedge
-
-bb66.i.i.i.backedge:		; preds = %bb97.i.i.i, %bb94.i.i.i, %bb93.i.i.i
-	br label %bb66.i.i.i
-
-bb94.i.i.i:		; preds = %bb79.i.i.i
-	br i1 false, label %bb66.i.i.i.backedge, label %bb96.i.i.i
-
-bb96.i.i.i:		; preds = %bb94.i.i.i
-	br i1 false, label %bb97.i.i.i, label %bb103.i.i.i.preheader.loopexit
-
-bb103.i.i.i.preheader.loopexit:		; preds = %bb96.i.i.i
-	br label %bb103.i.i.i.preheader
-
-bb103.i.i.i.preheader:		; preds = %bb103.i.i.i.preheader.loopexit, %bb65.i.i.i
-	br label %bb103.i.i.i
-
-bb97.i.i.i:		; preds = %bb96.i.i.i
-	br label %bb66.i.i.i.backedge
-
-bb100.i.i.i:		; preds = %bb103.i.i.i
-	br i1 false, label %bb101.i.i.i, label %bb102.i.i.i
-
-bb101.i.i.i:		; preds = %bb100.i.i.i
-	br label %bb102.i.i.i
-
-bb102.i.i.i:		; preds = %bb101.i.i.i, %bb100.i.i.i
-	br label %bb103.i.i.i
-
-bb103.i.i.i:		; preds = %bb102.i.i.i, %bb103.i.i.i.preheader
-	br i1 false, label %bb100.i.i.i, label %bb109.i.i.i.preheader
-
-bb109.i.i.i.preheader:		; preds = %bb103.i.i.i
-	br label %bb109.i.i.i
-
-bb105.i.i.i:		; preds = %bb109.i.i.i
-	br label %bb107.i.i.i
-
-bb106.i.i.i:		; preds = %bb107.i.i.i
-	br label %bb107.i.i.i
-
-bb107.i.i.i:		; preds = %bb106.i.i.i, %bb105.i.i.i
-	br i1 false, label %bb106.i.i.i, label %bb108.i.i.i
-
-bb108.i.i.i:		; preds = %bb107.i.i.i
-	br label %bb109.i.i.i
-
-bb109.i.i.i:		; preds = %bb108.i.i.i, %bb109.i.i.i.preheader
-	br i1 false, label %bb110.i.i.i, label %bb105.i.i.i
-
-bb110.i.i.i:		; preds = %bb109.i.i.i
-	%0 = sub i32 0, %lcollect.i.i.i.2		; <i32> [#uses=1]
-	%1 = add i32 %0, 1		; <i32> [#uses=1]
-	br label %bb113.i.i.i
-
-bb111.i.i.i:		; preds = %bb113.i.i.i
-	br i1 false, label %bb114.i.i.i, label %bb113.i.i.i
-
-bb113.i.i.i:		; preds = %bb111.i.i.i, %bb110.i.i.i
-	br i1 false, label %bb111.i.i.i, label %bb114.i.i.i
-
-bb114.i.i.i:		; preds = %bb113.i.i.i, %bb111.i.i.i
-	%2 = lshr i32 %1, 1		; <i32> [#uses=2]
-	br i1 false, label %bb116.i.i.i, label %bb124.i.i.i
-
-bb116.i.i.i:		; preds = %bb114.i.i.i
-	br i1 false, label %bb117.i.i.i.preheader, label %bb122.i.i.i.preheader
-
-bb122.i.i.i.preheader:		; preds = %bb116.i.i.i
-	br label %bb122.i.i.i
-
-bb117.i.i.i.preheader:		; preds = %bb116.i.i.i
-	br label %bb117.i.i.i
-
-bb117.i.i.i:		; preds = %bb118.i.i.i, %bb117.i.i.i.preheader
-	%target.i.i.i.1 = phi i32 [ %3, %bb118.i.i.i ], [ %2, %bb117.i.i.i.preheader ]		; <i32> [#uses=1]
-	%3 = add i32 %target.i.i.i.1, 1		; <i32> [#uses=2]
-	br i1 false, label %bb118.i.i.i, label %bb124.i.i.i.loopexit
-
-bb118.i.i.i:		; preds = %bb117.i.i.i
-	br i1 false, label %bb117.i.i.i, label %bb124.i.i.i.loopexit
-
-bb122.i.i.i:		; preds = %bb123.i.i.i, %bb122.i.i.i.preheader
-	%target.i.i.i.2 = phi i32 [ %4, %bb123.i.i.i ], [ %2, %bb122.i.i.i.preheader ]		; <i32> [#uses=2]
-	br i1 false, label %bb124.i.i.i.loopexit1, label %bb123.i.i.i
-
-bb123.i.i.i:		; preds = %bb122.i.i.i
-	%4 = add i32 %target.i.i.i.2, -1		; <i32> [#uses=1]
-	br i1 false, label %bb122.i.i.i, label %bb124.i.i.i.loopexit1
-
-bb124.i.i.i.loopexit:		; preds = %bb118.i.i.i, %bb117.i.i.i
-	br label %bb124.i.i.i
-
-bb124.i.i.i.loopexit1:		; preds = %bb123.i.i.i, %bb122.i.i.i
-	br label %bb124.i.i.i
-
-bb124.i.i.i:		; preds = %bb124.i.i.i.loopexit1, %bb124.i.i.i.loopexit, %bb114.i.i.i
-	%target.i.i.i.0 = phi i32 [ 0, %bb114.i.i.i ], [ %3, %bb124.i.i.i.loopexit ], [ %target.i.i.i.2, %bb124.i.i.i.loopexit1 ]		; <i32> [#uses=0]
-	br label %bb132.i.i.i.outer
-
-bb125.i.i.i:		; preds = %bb132.i.i.i
-	br i1 false, label %bb132.i.i.i, label %bb130.i.i.i
-
-bb130.i.i.i:		; preds = %bb125.i.i.i
-	br label %bb132.i.i.i.outer
-
-bb132.i.i.i.outer:		; preds = %bb130.i.i.i, %bb124.i.i.i
-	br label %bb132.i.i.i
-
-bb132.i.i.i:		; preds = %bb132.i.i.i.outer, %bb125.i.i.i
-	br i1 false, label %bb125.i.i.i, label %bb133.i.i.i
-
-bb133.i.i.i:		; preds = %bb132.i.i.i
-	br i1 false, label %bb136.i.i.i, label %bb134.i.i.i
-
-bb134.i.i.i:		; preds = %bb133.i.i.i
-	br i1 false, label %bb136.i.i.i, label %bb135.i.i.i
-
-bb135.i.i.i:		; preds = %bb134.i.i.i
-	br label %bb136.i.i.i
-
-bb136.i.i.i:		; preds = %bb135.i.i.i, %bb134.i.i.i, %bb133.i.i.i
-	br i1 false, label %bb137.i.i.i, label %bb37.i.i
-
-bb137.i.i.i:		; preds = %bb136.i.i.i
-	br label %bb37.i.i
-
-bb37.i.i:		; preds = %bb137.i.i.i, %bb136.i.i.i, %bb1.i37.i.i
-	br i1 false, label %bb40.i.i, label %bb38.i.i
-
-bb38.i.i:		; preds = %bb37.i.i
-	br i1 false, label %bb39.i.i, label %bb40.i.i
-
-bb39.i.i:		; preds = %bb38.i.i
-	br i1 false, label %bb17.i.i.i, label %bb3.i12.i.i
-
-bb3.i12.i.i:		; preds = %bb39.i.i
-	br label %bb5.i14.i.i
-
-bb5.i14.i.i:		; preds = %bb8.i.i.i79, %bb3.i12.i.i
-	br i1 false, label %bb6.i15.i.i, label %bb9.i.i.i80
-
-bb6.i15.i.i:		; preds = %bb5.i14.i.i
-	br i1 false, label %bb7.i.i.i78, label %bb9.i.i.i80
-
-bb7.i.i.i78:		; preds = %bb6.i15.i.i
-	br i1 false, label %bb9.i.i.i80, label %bb8.i.i.i79
-
-bb8.i.i.i79:		; preds = %bb7.i.i.i78
-	br i1 false, label %bb9.i.i.i80, label %bb5.i14.i.i
-
-bb9.i.i.i80:		; preds = %bb8.i.i.i79, %bb7.i.i.i78, %bb6.i15.i.i, %bb5.i14.i.i
-	br i1 false, label %bb16.i.i.i, label %bb10.i.i.i81
-
-bb10.i.i.i81:		; preds = %bb9.i.i.i80
-	br i1 false, label %bb11.i.i.i, label %bb15.i.i.i
-
-bb11.i.i.i:		; preds = %bb10.i.i.i81
-	br i1 false, label %bb16.i.i.i, label %bb15.i.i.i
-
-bb15.i.i.i:		; preds = %bb11.i.i.i, %bb10.i.i.i81
-	br label %bb16.i.i.i
-
-bb16.i.i.i:		; preds = %bb15.i.i.i, %bb11.i.i.i, %bb9.i.i.i80
-	br label %bb17.i.i.i
-
-bb17.i.i.i:		; preds = %bb16.i.i.i, %bb39.i.i
-	br i1 false, label %bb18.i.i.i, label %bb25.i.i.i
-
-bb18.i.i.i:		; preds = %bb17.i.i.i
-	br i1 false, label %bb24.i.i.i, label %bb23.i.i.i
-
-bb23.i.i.i:		; preds = %bb18.i.i.i
-	br label %bb24.i.i.i
-
-bb24.i.i.i:		; preds = %bb23.i.i.i, %bb18.i.i.i
-	br label %bb29.i.i.i
-
-bb25.i.i.i:		; preds = %bb17.i.i.i
-	br i1 false, label %bb29.i.i.i, label %bb27.i.i.i
-
-bb27.i.i.i:		; preds = %bb25.i.i.i
-	br i1 false, label %bb29.i.i.i, label %bb28.i.i.i
-
-bb28.i.i.i:		; preds = %bb27.i.i.i
-	br i1 false, label %bb29.i.i.i, label %bb.i4.i.i.i
-
-bb.i4.i.i.i:		; preds = %bb28.i.i.i
-	br i1 false, label %bb4.i.i16.i.i, label %bb29.i.i.i
-
-bb4.i.i16.i.i:		; preds = %bb.i4.i.i.i
-	br label %bb29.i.i.i
-
-bb29.i.i.i:		; preds = %bb4.i.i16.i.i, %bb.i4.i.i.i, %bb28.i.i.i, %bb27.i.i.i, %bb25.i.i.i, %bb24.i.i.i
-	br label %bb40.i.i
-
-bb40.i.i:		; preds = %bb29.i.i.i, %bb38.i.i, %bb37.i.i
-	br i1 false, label %bb9.i.i.i.i.preheader, label %bb2.i.i.i87
-
-bb9.i.i.i.i.preheader:		; preds = %bb40.i.i
-	br label %bb9.i.i.i.i
-
-bb.i.i.i.i84:		; preds = %bb9.i.i.i.i
-	switch i8 0, label %bb8.i.i.i.i [
-		i8 -1, label %bb1.i.i.i.i85
-		i8 1, label %bb9.i.i.i.i
-	]
-
-bb1.i.i.i.i85:		; preds = %bb.i.i.i.i84
-	br i1 false, label %bb5.i.i.i.i, label %bb2.i.i.i87
-
-bb5.i.i.i.i:		; preds = %bb1.i.i.i.i85
-	br label %bb2.i.i.i87
-
-bb8.i.i.i.i:		; preds = %bb.i.i.i.i84
-	br i1 false, label %bb2.i.i.i87, label %bb6.i.i.i95
-
-bb9.i.i.i.i:		; preds = %bb.i.i.i.i84, %bb9.i.i.i.i.preheader
-	br i1 false, label %bb.i.i.i.i84, label %bb10.i.i.i.i
-
-bb10.i.i.i.i:		; preds = %bb9.i.i.i.i
-	br label %bb2.i.i.i87
-
-bb2.i.i.i87:		; preds = %bb10.i.i.i.i, %bb8.i.i.i.i, %bb5.i.i.i.i, %bb1.i.i.i.i85, %bb40.i.i
-	br i1 false, label %bb3.i.i.i88, label %decide.exit.i.i
-
-bb3.i.i.i88:		; preds = %bb2.i.i.i87
-	br i1 false, label %bb4.i.i.i90, label %bb1.i23.i.i.i
-
-bb1.i23.i.i.i:		; preds = %bb3.i.i.i88
-	br i1 false, label %decide.exit.i.i, label %bb4.i.i.i90
-
-bb4.i.i.i90:		; preds = %bb1.i23.i.i.i, %bb3.i.i.i88
-	br i1 false, label %bb1.i9.i.i.i, label %bb5.i.i.i94
-
-bb1.i9.i.i.i:		; preds = %bb4.i.i.i90
-	br i1 false, label %bb.i.i27.i.i.i.i, label %bb1.i.i28.i.i.i.i
-
-bb.i.i27.i.i.i.i:		; preds = %bb1.i9.i.i.i
-	br label %int2lit.exit32.i.i.i.i
-
-bb1.i.i28.i.i.i.i:		; preds = %bb1.i9.i.i.i
-	br label %int2lit.exit32.i.i.i.i
-
-int2lit.exit32.i.i.i.i:		; preds = %bb1.i.i28.i.i.i.i, %bb.i.i27.i.i.i.i
-	br i1 false, label %bb8.i19.i.i.i, label %bb2.i.i.i.i91
-
-bb2.i.i.i.i91:		; preds = %int2lit.exit32.i.i.i.i
-	br label %bb4.i.i.i.i
-
-bb3.i.i.i.i92:		; preds = %gcd.exit.i.i.i.i
-	br label %bb4.i.i.i.i
-
-bb4.i.i.i.i:		; preds = %bb3.i.i.i.i92, %bb2.i.i.i.i91
-	br label %bb3.i.i13.i.i.i
-
-bb2.i.i12.i.i.i:		; preds = %bb3.i.i13.i.i.i
-	br label %bb3.i.i13.i.i.i
-
-bb3.i.i13.i.i.i:		; preds = %bb2.i.i12.i.i.i, %bb4.i.i.i.i
-	br i1 false, label %gcd.exit.i.i.i.i, label %bb2.i.i12.i.i.i
-
-gcd.exit.i.i.i.i:		; preds = %bb3.i.i13.i.i.i
-	br i1 false, label %bb5.i14.i.i.i.preheader, label %bb3.i.i.i.i92
-
-bb5.i14.i.i.i.preheader:		; preds = %gcd.exit.i.i.i.i
-	br label %bb5.i14.i.i.i
-
-bb5.i14.i.i.i:		; preds = %int2lit.exit.i.i.i.i, %bb5.i14.i.i.i.preheader
-	br i1 false, label %bb.i.i.i17.i.i.i, label %bb1.i.i.i18.i.i.i
-
-bb.i.i.i17.i.i.i:		; preds = %bb5.i14.i.i.i
-	br label %int2lit.exit.i.i.i.i
-
-bb1.i.i.i18.i.i.i:		; preds = %bb5.i14.i.i.i
-	br label %int2lit.exit.i.i.i.i
-
-int2lit.exit.i.i.i.i:		; preds = %bb1.i.i.i18.i.i.i, %bb.i.i.i17.i.i.i
-	br i1 false, label %bb8.i19.i.i.i.loopexit, label %bb5.i14.i.i.i
-
-bb8.i19.i.i.i.loopexit:		; preds = %int2lit.exit.i.i.i.i
-	br label %bb8.i19.i.i.i
-
-bb8.i19.i.i.i:		; preds = %bb8.i19.i.i.i.loopexit, %int2lit.exit32.i.i.i.i
-	br i1 false, label %bb5.i.i.i94, label %bb6.i.i.i95
-
-bb5.i.i.i94:		; preds = %bb8.i19.i.i.i, %bb4.i.i.i90
-	br label %bb.i2.i.i.i
-
-bb.i2.i.i.i:		; preds = %hpop.exit.i.i.i.i, %bb5.i.i.i94
-	br i1 false, label %hpop.exit.i.i.i.i, label %bb1.i.i.i.i.i
-
-bb1.i.i.i.i.i:		; preds = %bb.i2.i.i.i
-	br label %bb2.i.i.i.i.i
-
-bb2.i.i.i.i.i:		; preds = %bb11.i.i.i.i.i, %bb1.i.i.i.i.i
-	br i1 false, label %bb3.i.i.i.i.i, label %bb12.i.i.i.i.i
-
-bb3.i.i.i.i.i:		; preds = %bb2.i.i.i.i.i
-	br i1 false, label %bb4.i.i.i.i.i, label %bb1.i.i.i.i.i.i
-
-bb1.i.i.i.i.i.i:		; preds = %bb3.i.i.i.i.i
-	br i1 false, label %bb8.i.i.i.i.i, label %bb3.i.i.i.i.i.i
-
-bb3.i.i.i.i.i.i:		; preds = %bb1.i.i.i.i.i.i
-	br i1 false, label %bb4.i.i.i.i.i, label %bb8.i.i.i.i.i
-
-bb4.i.i.i.i.i:		; preds = %bb3.i.i.i.i.i.i, %bb3.i.i.i.i.i
-	br i1 false, label %bb5.i.i.i.i.i, label %bb11.i.i.i.i.i
-
-bb5.i.i.i.i.i:		; preds = %bb4.i.i.i.i.i
-	br i1 false, label %bb6.i.i.i.i.i, label %bb1.i21.i.i.i.i.i
-
-bb1.i21.i.i.i.i.i:		; preds = %bb5.i.i.i.i.i
-	br i1 false, label %bb11.i.i.i.i.i, label %bb3.i24.i.i.i.i.i
-
-bb3.i24.i.i.i.i.i:		; preds = %bb1.i21.i.i.i.i.i
-	br i1 false, label %bb6.i.i.i.i.i, label %bb11.i.i.i.i.i
-
-bb6.i.i.i.i.i:		; preds = %bb3.i24.i.i.i.i.i, %bb5.i.i.i.i.i
-	br label %bb11.i.i.i.i.i
-
-bb8.i.i.i.i.i:		; preds = %bb3.i.i.i.i.i.i, %bb1.i.i.i.i.i.i
-	br i1 false, label %bb9.i.i.i.i.i, label %bb12.i.i.i.i.i
-
-bb9.i.i.i.i.i:		; preds = %bb8.i.i.i.i.i
-	br i1 false, label %bb11.i.i.i.i.i, label %bb1.i8.i.i.i.i.i
-
-bb1.i8.i.i.i.i.i:		; preds = %bb9.i.i.i.i.i
-	br i1 false, label %bb12.i.i.i.i.i, label %bb3.i11.i.i.i.i.i
-
-bb3.i11.i.i.i.i.i:		; preds = %bb1.i8.i.i.i.i.i
-	br i1 false, label %bb11.i.i.i.i.i, label %bb12.i.i.i.i.i
-
-bb11.i.i.i.i.i:		; preds = %bb3.i11.i.i.i.i.i, %bb9.i.i.i.i.i, %bb6.i.i.i.i.i, %bb3.i24.i.i.i.i.i, %bb1.i21.i.i.i.i.i, %bb4.i.i.i.i.i
-	br label %bb2.i.i.i.i.i
-
-bb12.i.i.i.i.i:		; preds = %bb3.i11.i.i.i.i.i, %bb1.i8.i.i.i.i.i, %bb8.i.i.i.i.i, %bb2.i.i.i.i.i
-	br label %hpop.exit.i.i.i.i
-
-hpop.exit.i.i.i.i:		; preds = %bb12.i.i.i.i.i, %bb.i2.i.i.i
-	br i1 false, label %sdecide.exit.i.i.i, label %bb.i2.i.i.i
-
-sdecide.exit.i.i.i:		; preds = %hpop.exit.i.i.i.i
-	br label %bb6.i.i.i95
-
-bb6.i.i.i95:		; preds = %sdecide.exit.i.i.i, %bb8.i19.i.i.i, %bb8.i.i.i.i
-	br label %decide.exit.i.i
-
-decide.exit.i.i:		; preds = %bb6.i.i.i95, %bb1.i23.i.i.i, %bb2.i.i.i87
-	br i1 false, label %bb42.i.i, label %sat.exit.i.loopexit.loopexit2
-
-bb42.i.i:		; preds = %decide.exit.i.i
-	br label %bb13.i.i71.outer
-
-sat.exit.i.loopexit.loopexit:		; preds = %bb24.i.i, %bb1.i68.i.i, %incincs.exit.i.i
-	br label %sat.exit.i.loopexit
-
-sat.exit.i.loopexit.loopexit2:		; preds = %decide.exit.i.i, %bb1.i48.i.i, %bb29.i.i
-	br label %sat.exit.i.loopexit
-
-sat.exit.i.loopexit:		; preds = %sat.exit.i.loopexit.loopexit2, %sat.exit.i.loopexit.loopexit
-	br label %sat.exit.i
-
-sat.exit.i:		; preds = %sat.exit.i.loopexit, %bb1.i61.i.i, %bb8.i.i67, %bb1.i.i.i63, %bb3.i.i59
-	br i1 false, label %bb7.i, label %bb2.i96
-
-bb2.i96:		; preds = %sat.exit.i
-	switch i32 0, label %bb5.i99 [
-		i32 10, label %bb4.i98
-		i32 20, label %bb6.i100
-	]
-
-bb4.i98:		; preds = %bb2.i96
-	br label %bb6.i100
-
-bb5.i99:		; preds = %bb2.i96
-	br label %bb6.i100
-
-bb6.i100:		; preds = %bb5.i99, %bb4.i98, %bb2.i96
-	br label %bb7.i
-
-bb7.i:		; preds = %bb6.i100, %sat.exit.i
-	br i1 false, label %bb.i1.i, label %picosat_sat.exit
-
-bb.i1.i:		; preds = %bb7.i
-	br label %picosat_sat.exit
-
-picosat_sat.exit:		; preds = %bb.i1.i, %bb7.i
-	switch i32 0, label %bb166 [
-		i32 20, label %bb150
-		i32 10, label %bb163
-	]
-
-bb150:		; preds = %picosat_sat.exit
-	br i1 false, label %bb152, label %bb151
-
-bb151:		; preds = %bb150
-	br label %bb152
-
-bb152:		; preds = %bb151, %bb150
-	br i1 false, label %bb154, label %bb153
-
-bb153:		; preds = %bb152
-	br label %bb154
-
-bb154:		; preds = %bb153, %bb152
-	br i1 false, label %bb157, label %bb156
-
-bb156:		; preds = %bb154
-	br label %bb157
-
-bb157:		; preds = %bb156, %bb154
-	br i1 false, label %bb159, label %bb158
-
-bb158:		; preds = %bb157
-	br label %bb159
-
-bb159:		; preds = %bb158, %bb157
-	br i1 false, label %bb167, label %bb160
-
-bb160:		; preds = %bb159
-	br label %bb167
-
-bb163:		; preds = %picosat_sat.exit
-	br i1 false, label %bb167, label %bb164
-
-bb164:		; preds = %bb163
-	br label %bb4.i
-
-bb.i11:		; preds = %bb4.i
-	br i1 false, label %bb.i.i12, label %bb1.i.i14
-
-bb.i.i12:		; preds = %bb.i11
-	unreachable
-
-bb1.i.i14:		; preds = %bb.i11
-	br i1 false, label %bb3.i.i16, label %bb2.i.i15
-
-bb2.i.i15:		; preds = %bb1.i.i14
-	unreachable
-
-bb3.i.i16:		; preds = %bb1.i.i14
-	br i1 false, label %bb3.i, label %bb7.i.i
-
-bb7.i.i:		; preds = %bb3.i.i16
-	br i1 false, label %bb.i.i.i.i17, label %bb1.i.i.i.i18
-
-bb.i.i.i.i17:		; preds = %bb7.i.i
-	br label %int2lit.exit.i.i
-
-bb1.i.i.i.i18:		; preds = %bb7.i.i
-	br label %int2lit.exit.i.i
-
-int2lit.exit.i.i:		; preds = %bb1.i.i.i.i18, %bb.i.i.i.i17
-	br i1 false, label %bb3.i, label %bb9.i.i
-
-bb9.i.i:		; preds = %int2lit.exit.i.i
-	br label %bb3.i
-
-bb3.i:		; preds = %bb9.i.i, %int2lit.exit.i.i, %bb3.i.i16
-	br label %bb4.i
-
-bb4.i:		; preds = %bb3.i, %bb164
-	br i1 false, label %bb5.i, label %bb.i11
-
-bb5.i:		; preds = %bb4.i
-	br i1 false, label %bb6.i, label %bb167
-
-bb6.i:		; preds = %bb5.i
-	br label %bb167
-
-bb166:		; preds = %picosat_sat.exit
-	br label %bb167
-
-bb167:		; preds = %bb166, %bb6.i, %bb5.i, %bb163, %bb160, %bb159, %picosat_print.exit
-	br i1 false, label %bb168, label %bb170
-
-bb168:		; preds = %bb167
-	br i1 false, label %bb170, label %bb169
-
-bb169:		; preds = %bb168
-	br i1 false, label %bb.i7, label %picosat_time_stamp.exit9
-
-bb.i7:		; preds = %bb169
-	br label %picosat_time_stamp.exit9
-
-picosat_time_stamp.exit9:		; preds = %bb.i7, %bb169
-	br label %bb170
-
-bb170:		; preds = %picosat_time_stamp.exit9, %bb168, %bb167, %bb129
-	br i1 false, label %bb.i.i3, label %picosat_leave.exit
-
-bb.i.i3:		; preds = %bb170
-	br label %picosat_leave.exit
-
-picosat_leave.exit:		; preds = %bb.i.i3, %bb170
-	br i1 false, label %bb1.i.i, label %bb.i.i
-
-bb.i.i:		; preds = %picosat_leave.exit
-	unreachable
-
-bb1.i.i:		; preds = %picosat_leave.exit
-	br label %bb9.i.i.i
-
-bb3.i.i.i:		; preds = %bb9.i.i.i
-	br i1 false, label %bb5.i.i.i, label %bb4.i.i.i
-
-bb4.i.i.i:		; preds = %bb3.i.i.i
-	br label %bb5.i.i.i
-
-bb5.i.i.i:		; preds = %bb4.i.i.i, %bb3.i.i.i
-	br label %bb9.i.i.i
-
-bb9.i.i.i:		; preds = %bb5.i.i.i, %bb1.i.i
-	br i1 false, label %bb10.i.i.i, label %bb3.i.i.i
-
-bb10.i.i.i:		; preds = %bb9.i.i.i
-	br i1 false, label %delete.exit.i.i.i, label %bb1.i.i.i.i
-
-bb1.i.i.i.i:		; preds = %bb10.i.i.i
-	br label %delete.exit.i.i.i
-
-delete.exit.i.i.i:		; preds = %bb1.i.i.i.i, %bb10.i.i.i
-	br i1 false, label %delete_clauses.exit.i.i, label %bb1.i7.i.i.i
-
-bb1.i7.i.i.i:		; preds = %delete.exit.i.i.i
-	br label %delete_clauses.exit.i.i
-
-delete_clauses.exit.i.i:		; preds = %bb1.i7.i.i.i, %delete.exit.i.i.i
-	br label %bb3.i.i
-
-bb2.i.i:		; preds = %bb3.i.i
-	br i1 false, label %lrelease.exit.i.i, label %bb1.i.i23.i.i
-
-bb1.i.i23.i.i:		; preds = %bb2.i.i
-	br label %lrelease.exit.i.i
-
-lrelease.exit.i.i:		; preds = %bb1.i.i23.i.i, %bb2.i.i
-	br label %bb3.i.i
-
-bb3.i.i:		; preds = %lrelease.exit.i.i, %delete_clauses.exit.i.i
-	br i1 false, label %bb4.i.i, label %bb2.i.i
-
-bb4.i.i:		; preds = %bb3.i.i
-	br i1 false, label %delete.exit214.i.i, label %bb1.i208.i.i
-
-bb1.i208.i.i:		; preds = %bb4.i.i
-	br label %delete.exit214.i.i
-
-delete.exit214.i.i:		; preds = %bb1.i208.i.i, %bb4.i.i
-	br i1 false, label %delete.exit203.i.i, label %bb1.i197.i.i
-
-bb1.i197.i.i:		; preds = %delete.exit214.i.i
-	br label %delete.exit203.i.i
-
-delete.exit203.i.i:		; preds = %bb1.i197.i.i, %delete.exit214.i.i
-	br i1 false, label %delete.exit192.i.i, label %bb1.i186.i.i
-
-bb1.i186.i.i:		; preds = %delete.exit203.i.i
-	br label %delete.exit192.i.i
-
-delete.exit192.i.i:		; preds = %bb1.i186.i.i, %delete.exit203.i.i
-	br i1 false, label %delete.exit181.i.i, label %bb1.i175.i.i
-
-bb1.i175.i.i:		; preds = %delete.exit192.i.i
-	br label %delete.exit181.i.i
-
-delete.exit181.i.i:		; preds = %bb1.i175.i.i, %delete.exit192.i.i
-	br i1 false, label %delete.exit170.i.i, label %bb1.i164.i.i
-
-bb1.i164.i.i:		; preds = %delete.exit181.i.i
-	br label %delete.exit170.i.i
-
-delete.exit170.i.i:		; preds = %bb1.i164.i.i, %delete.exit181.i.i
-	br i1 false, label %delete.exit159.i.i, label %bb1.i153.i.i
-
-bb1.i153.i.i:		; preds = %delete.exit170.i.i
-	br label %delete.exit159.i.i
-
-delete.exit159.i.i:		; preds = %bb1.i153.i.i, %delete.exit170.i.i
-	br i1 false, label %delete.exit148.i.i, label %bb1.i142.i.i
-
-bb1.i142.i.i:		; preds = %delete.exit159.i.i
-	br label %delete.exit148.i.i
-
-delete.exit148.i.i:		; preds = %bb1.i142.i.i, %delete.exit159.i.i
-	br i1 false, label %delete.exit137.i.i, label %bb1.i131.i.i
-
-bb1.i131.i.i:		; preds = %delete.exit148.i.i
-	br label %delete.exit137.i.i
-
-delete.exit137.i.i:		; preds = %bb1.i131.i.i, %delete.exit148.i.i
-	br i1 false, label %delete.exit126.i.i, label %bb1.i120.i.i
-
-bb1.i120.i.i:		; preds = %delete.exit137.i.i
-	br label %delete.exit126.i.i
-
-delete.exit126.i.i:		; preds = %bb1.i120.i.i, %delete.exit137.i.i
-	br i1 false, label %delete.exit115.i.i, label %bb1.i109.i.i
-
-bb1.i109.i.i:		; preds = %delete.exit126.i.i
-	br label %delete.exit115.i.i
-
-delete.exit115.i.i:		; preds = %bb1.i109.i.i, %delete.exit126.i.i
-	br i1 false, label %delete.exit104.i.i, label %bb1.i98.i.i
-
-bb1.i98.i.i:		; preds = %delete.exit115.i.i
-	br label %delete.exit104.i.i
-
-delete.exit104.i.i:		; preds = %bb1.i98.i.i, %delete.exit115.i.i
-	br i1 false, label %delete.exit93.i.i, label %bb1.i87.i.i
-
-bb1.i87.i.i:		; preds = %delete.exit104.i.i
-	br label %delete.exit93.i.i
-
-delete.exit93.i.i:		; preds = %bb1.i87.i.i, %delete.exit104.i.i
-	br i1 false, label %delete.exit82.i.i, label %bb1.i76.i.i
-
-bb1.i76.i.i:		; preds = %delete.exit93.i.i
-	br label %delete.exit82.i.i
-
-delete.exit82.i.i:		; preds = %bb1.i76.i.i, %delete.exit93.i.i
-	br i1 false, label %delete.exit71.i.i, label %bb1.i65.i.i
-
-bb1.i65.i.i:		; preds = %delete.exit82.i.i
-	br label %delete.exit71.i.i
-
-delete.exit71.i.i:		; preds = %bb1.i65.i.i, %delete.exit82.i.i
-	br i1 false, label %delete.exit60.i.i, label %bb1.i54.i.i
-
-bb1.i54.i.i:		; preds = %delete.exit71.i.i
-	br label %delete.exit60.i.i
-
-delete.exit60.i.i:		; preds = %bb1.i54.i.i, %delete.exit71.i.i
-	br i1 false, label %delete.exit38.i.i, label %bb1.i32.i.i
-
-bb1.i32.i.i:		; preds = %delete.exit60.i.i
-	br label %delete.exit38.i.i
-
-delete.exit38.i.i:		; preds = %bb1.i32.i.i, %delete.exit60.i.i
-	br i1 false, label %delete.exit18.i.i, label %bb1.i12.i.i
-
-bb1.i12.i.i:		; preds = %delete.exit38.i.i
-	br label %delete.exit18.i.i
-
-delete.exit18.i.i:		; preds = %bb1.i12.i.i, %delete.exit38.i.i
-	br i1 false, label %picosat_reset.exit, label %bb1.i2.i.i
-
-bb1.i2.i.i:		; preds = %delete.exit18.i.i
-	br label %picosat_reset.exit
-
-picosat_reset.exit:		; preds = %bb1.i2.i.i, %delete.exit18.i.i
-	br label %bb171
-
-bb171:		; preds = %picosat_reset.exit, %bb110
-	br i1 false, label %bb173, label %bb172
-
-bb172:		; preds = %bb171
-	br label %bb173
-
-bb173:		; preds = %bb172, %bb171
-	br i1 false, label %bb175, label %bb174
-
-bb174:		; preds = %bb173
-	br label %bb175
-
-bb175:		; preds = %bb174, %bb173
-	br i1 false, label %bb177, label %bb176
-
-bb176:		; preds = %bb175
-	br label %bb177
-
-bb177:		; preds = %bb176, %bb175
-	br i1 false, label %bb179, label %bb178
-
-bb178:		; preds = %bb177
-	ret i32 0
-
-bb179:		; preds = %bb177
-	ret i32 0
-}
-
-define i32 @main(i32 %argc, i8** %argv) nounwind {
-entry:
-	br label %bb2
-
-bb:		; preds = %bb2
-	br i1 false, label %bb3, label %bb2
-
-bb2:		; preds = %bb, %entry
-	br i1 false, label %bb5.loopexit, label %bb
-
-bb3:		; preds = %bb
-	br i1 false, label %bb5, label %bb4
-
-bb4:		; preds = %bb3
-	br label %bb5
-
-bb5.loopexit:		; preds = %bb2
-	br label %bb5
-
-bb5:		; preds = %bb5.loopexit, %bb4, %bb3
-	%0 = call fastcc i32 @picosat_main(i32 %argc, i8** %argv) nounwind		; <i32> [#uses=2]
-	br i1 false, label %bb7, label %bb6
-
-bb6:		; preds = %bb5
-	ret i32 %0
-
-bb7:		; preds = %bb5
-	ret i32 %0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/BlockPlacement/basictest.ll b/libclamav/c++/llvm/test/Transforms/BlockPlacement/basictest.ll
deleted file mode 100644
index 4eec23e..0000000
--- a/libclamav/c++/llvm/test/Transforms/BlockPlacement/basictest.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -block-placement -disable-output -print-function 2> /dev/null
-
-define i32 @test() {
-        br i1 true, label %X, label %Y
-
-A:              ; preds = %Y, %X
-        ret i32 0
-
-X:              ; preds = %0
-        br label %A
-
-Y:              ; preds = %0
-        br label %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/BlockPlacement/dg.exp b/libclamav/c++/llvm/test/Transforms/BlockPlacement/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/BlockPlacement/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/BranchFolding/2007-10-19-InlineAsmDirectives.ll b/libclamav/c++/llvm/test/Transforms/BranchFolding/2007-10-19-InlineAsmDirectives.ll
deleted file mode 100644
index 8afdcae..0000000
--- a/libclamav/c++/llvm/test/Transforms/BranchFolding/2007-10-19-InlineAsmDirectives.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -std-compile-opts -o - | llc -o - | grep bork_directive | wc -l | grep 2
-
-;; We don't want branch folding to fold asm directives.
-
-define void @bork(i32 %param) {
-entry:
-	%tmp = icmp eq i32 %param, 0
-        br i1 %tmp, label %cond_true, label %cond_false
-
-cond_true:   
-        call void asm sideeffect ".bork_directive /* ${0:c}:${1:c} */", "i,i,~{dirflag},~{fpsr},~{flags}"( i32 37, i32 927 )
-        ret void
-
-cond_false:
-	call void asm sideeffect ".foo_directive ${0:c}:${1:c}", "i,i,~{dirflag},~{fpsr},~{flags}"( i32 37, i32 927 )
-        call void asm sideeffect ".bork_directive /* ${0:c}:${1:c} */", "i,i,~{dirflag},~{fpsr},~{flags}"( i32 37, i32 927 )
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll
deleted file mode 100644
index aba3564..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll
+++ /dev/null
@@ -1,75 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-extract -disable-output
-
-define void @solve() {
-entry:
-	br label %loopentry.0
-
-loopentry.0:		; preds = %endif.0, %entry
-	br i1 false, label %no_exit.0, label %loopexit.0
-
-no_exit.0:		; preds = %loopentry.0
-	br i1 false, label %then.0, label %endif.0
-
-then.0:		; preds = %no_exit.0
-	br i1 false, label %shortcirc_done, label %shortcirc_next
-
-shortcirc_next:		; preds = %then.0
-	br label %shortcirc_done
-
-shortcirc_done:		; preds = %shortcirc_next, %then.0
-	br i1 false, label %then.1, label %endif.1
-
-then.1:		; preds = %shortcirc_done
-	br i1 false, label %cond_true, label %cond_false
-
-cond_true:		; preds = %then.1
-	br label %cond_continue
-
-cond_false:		; preds = %then.1
-	br label %cond_continue
-
-cond_continue:		; preds = %cond_false, %cond_true
-	br label %return
-
-after_ret.0:		; No predecessors!
-	br label %endif.1
-
-endif.1:		; preds = %after_ret.0, %shortcirc_done
-	br label %endif.0
-
-endif.0:		; preds = %endif.1, %no_exit.0
-	br label %loopentry.0
-
-loopexit.0:		; preds = %loopentry.0
-	br i1 false, label %then.2, label %endif.2
-
-then.2:		; preds = %loopexit.0
-	br i1 false, label %then.3, label %endif.3
-
-then.3:		; preds = %then.2
-	br label %return
-
-after_ret.1:		; No predecessors!
-	br label %endif.3
-
-endif.3:		; preds = %after_ret.1, %then.2
-	br label %endif.2
-
-endif.2:		; preds = %endif.3, %loopexit.0
-	br label %loopentry.1
-
-loopentry.1:		; preds = %no_exit.1, %endif.2
-	br i1 false, label %no_exit.1, label %loopexit.1
-
-no_exit.1:		; preds = %loopentry.1
-	br label %loopentry.1
-
-loopexit.1:		; preds = %loopentry.1
-	br label %return
-
-after_ret.2:		; No predecessors!
-	br label %return
-
-return:		; preds = %after_ret.2, %loopexit.1, %then.3, %cond_continue
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll
deleted file mode 100644
index a41430d..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-extract -disable-output
-; This testcase is failing the loop extractor because not all exit blocks 
-; are dominated by all of the live-outs.
-
-define i32 @ab(i32 %alpha, i32 %beta) {
-entry:
-        br label %loopentry.1.preheader
-
-loopentry.1.preheader:          ; preds = %entry
-        br label %loopentry.1
-
-loopentry.1:            ; preds = %no_exit.1, %loopentry.1.preheader
-        br i1 false, label %no_exit.1, label %loopexit.0.loopexit1
-
-no_exit.1:              ; preds = %loopentry.1
-        %tmp.53 = load i32* null                ; <i32> [#uses=1]
-        br i1 false, label %shortcirc_next.2, label %loopentry.1
-
-shortcirc_next.2:               ; preds = %no_exit.1
-        %tmp.563 = call i32 @wins( i32 0, i32 %tmp.53, i32 3 )          ; <i32> [#uses=0]
-        ret i32 0
-
-loopexit.0.loopexit1:           ; preds = %loopentry.1
-        br label %loopexit.0
-
-loopexit.0:             ; preds = %loopexit.0.loopexit1
-        ret i32 0
-}
-
-declare i32 @wins(i32, i32, i32)
-
-declare i16 @ab_code()
-
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll
deleted file mode 100644
index ded821b..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-extract-single -disable-output
-
-define void @ab() {
-entry:
-        br label %codeReplTail
-
-then.1:         ; preds = %codeReplTail
-        br label %loopentry.1
-
-loopentry.1:            ; preds = %no_exit.1, %then.1
-        br i1 false, label %no_exit.1, label %loopexit.0.loopexit1
-
-no_exit.1:              ; preds = %loopentry.1
-        br label %loopentry.1
-
-loopexit.0.loopexit:            ; preds = %codeReplTail
-        ret void
-
-loopexit.0.loopexit1:           ; preds = %loopentry.1
-        ret void
-
-codeReplTail:           ; preds = %codeReplTail, %entry
-        switch i16 0, label %codeReplTail [
-                 i16 0, label %loopexit.0.loopexit
-                 i16 1, label %then.1
-        ]
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll
deleted file mode 100644
index e2030e2..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-extract -disable-output
-
-define void @sendMTFValues() {
-entry:
-	br i1 false, label %then.1, label %endif.1
-
-then.1:		; preds = %entry
-	br i1 false, label %loopentry.6.preheader, label %else.0
-
-endif.1:		; preds = %entry
-	ret void
-
-else.0:		; preds = %then.1
-	ret void
-
-loopentry.6.preheader:		; preds = %then.1
-	br i1 false, label %endif.7.preheader, label %loopexit.9
-
-endif.7.preheader:		; preds = %loopentry.6.preheader
-	%tmp.183 = add i32 0, -1		; <i32> [#uses=1]
-	br label %endif.7
-
-endif.7:		; preds = %loopexit.15, %endif.7.preheader
-	br i1 false, label %loopentry.10, label %loopentry.12
-
-loopentry.10:		; preds = %endif.7
-	br label %loopentry.12
-
-loopentry.12:		; preds = %loopentry.10, %endif.7
-	%ge.2.1 = phi i32 [ 0, %loopentry.10 ], [ %tmp.183, %endif.7 ]		; <i32> [#uses=0]
-	br i1 false, label %loopexit.14, label %no_exit.11
-
-no_exit.11:		; preds = %loopentry.12
-	ret void
-
-loopexit.14:		; preds = %loopentry.12
-	br i1 false, label %loopexit.15, label %no_exit.14
-
-no_exit.14:		; preds = %loopexit.14
-	ret void
-
-loopexit.15:		; preds = %loopexit.14
-	br i1 false, label %endif.7, label %loopexit.9
-
-loopexit.9:		; preds = %loopexit.15, %loopentry.6.preheader
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll
deleted file mode 100644
index 9f4b273..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-OutputMismatch.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-extract -disable-output
-
-%struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, i32, i32 }
-%struct.table_t = type { [1 x %struct.node_t**], [1 x %struct.node_t**] }
-
-define void @make_tables() {
-entry:
-        %tmp.0.i = malloc %struct.node_t                ; <%struct.node_t*> [#uses=1]
-        br i1 false, label %no_exit.i, label %loopexit.i
-
-no_exit.i:              ; preds = %no_exit.i, %entry
-        %prev_node.0.i.1 = phi %struct.node_t* [ %tmp.16.i, %no_exit.i ], [ %tmp.0.i, %entry ]          ; <%struct.node_t*> [#uses=0]
-        %tmp.16.i = malloc %struct.node_t               ; <%struct.node_t*> [#uses=2]
-        br i1 false, label %no_exit.i, label %loopexit.i
-
-loopexit.i:             ; preds = %no_exit.i, %entry
-        %cur_node.0.i.0 = phi %struct.node_t* [ null, %entry ], [ %tmp.16.i, %no_exit.i ]               ; <%struct.node_t*> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll
deleted file mode 100644
index b1b0324..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-extract -disable-output
-
-define void @maketree() {
-entry:
-        br i1 false, label %no_exit.1, label %loopexit.0
-
-no_exit.1:              ; preds = %endif, %expandbox.entry, %entry
-        br i1 false, label %endif, label %expandbox.entry
-
-expandbox.entry:                ; preds = %no_exit.1
-        br i1 false, label %loopexit.1, label %no_exit.1
-
-endif:          ; preds = %no_exit.1
-        br i1 false, label %loopexit.1, label %no_exit.1
-
-loopexit.1:             ; preds = %endif, %expandbox.entry
-        %ic.i.0.0.4 = phi i32 [ 0, %expandbox.entry ], [ 0, %endif ]            ; <i32> [#uses=0]
-        ret void
-
-loopexit.0:             ; preds = %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll
deleted file mode 100644
index 48e5a76..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll
+++ /dev/null
@@ -1,194 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-extract -disable-output
-
-declare i32 @_IO_getc()
-
-declare void @__errno_location()
-
-define void @yylex() {
-entry:
-	switch i32 0, label %label.126 [
-		 i32 0, label %return
-		 i32 61, label %combine
-		 i32 33, label %combine
-		 i32 94, label %combine
-		 i32 37, label %combine
-		 i32 47, label %combine
-		 i32 42, label %combine
-		 i32 62, label %combine
-		 i32 60, label %combine
-		 i32 58, label %combine
-		 i32 124, label %combine
-		 i32 38, label %combine
-		 i32 45, label %combine
-		 i32 43, label %combine
-		 i32 34, label %string_constant
-		 i32 39, label %char_constant
-		 i32 46, label %loopexit.2
-		 i32 57, label %loopexit.2
-		 i32 56, label %loopexit.2
-		 i32 55, label %loopexit.2
-		 i32 54, label %loopexit.2
-		 i32 53, label %loopexit.2
-		 i32 52, label %loopexit.2
-		 i32 51, label %loopexit.2
-		 i32 50, label %loopexit.2
-		 i32 49, label %loopexit.2
-		 i32 48, label %loopexit.2
-		 i32 95, label %letter
-		 i32 122, label %letter
-		 i32 121, label %letter
-		 i32 120, label %letter
-		 i32 119, label %letter
-		 i32 118, label %letter
-		 i32 117, label %letter
-		 i32 116, label %letter
-		 i32 115, label %letter
-		 i32 114, label %letter
-		 i32 113, label %letter
-		 i32 112, label %letter
-		 i32 111, label %letter
-		 i32 110, label %letter
-		 i32 109, label %letter
-		 i32 108, label %letter
-		 i32 107, label %letter
-		 i32 106, label %letter
-		 i32 105, label %letter
-		 i32 104, label %letter
-		 i32 103, label %letter
-		 i32 102, label %letter
-		 i32 101, label %letter
-		 i32 100, label %letter
-		 i32 99, label %letter
-		 i32 98, label %letter
-		 i32 97, label %letter
-		 i32 90, label %letter
-		 i32 89, label %letter
-		 i32 88, label %letter
-		 i32 87, label %letter
-		 i32 86, label %letter
-		 i32 85, label %letter
-		 i32 84, label %letter
-		 i32 83, label %letter
-		 i32 82, label %letter
-		 i32 81, label %letter
-		 i32 80, label %letter
-		 i32 79, label %letter
-		 i32 78, label %letter
-		 i32 77, label %letter
-		 i32 75, label %letter
-		 i32 74, label %letter
-		 i32 73, label %letter
-		 i32 72, label %letter
-		 i32 71, label %letter
-		 i32 70, label %letter
-		 i32 69, label %letter
-		 i32 68, label %letter
-		 i32 67, label %letter
-		 i32 66, label %letter
-		 i32 65, label %letter
-		 i32 64, label %label.13
-		 i32 76, label %label.12
-		 i32 36, label %label.11
-		 i32 -1, label %label.10
-	]
-
-label.10:		; preds = %entry
-	ret void
-
-label.11:		; preds = %entry
-	ret void
-
-label.12:		; preds = %entry
-	ret void
-
-label.13:		; preds = %entry
-	ret void
-
-letter:		; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
-	ret void
-
-loopexit.2:		; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
-	switch i32 0, label %shortcirc_next.14 [
-		 i32 48, label %then.20
-		 i32 46, label %endif.38
-	]
-
-then.20:		; preds = %loopexit.2
-	switch i32 0, label %else.4 [
-		 i32 120, label %then.21
-		 i32 88, label %then.21
-	]
-
-then.21:		; preds = %then.20, %then.20
-	ret void
-
-else.4:		; preds = %then.20
-	ret void
-
-shortcirc_next.14:		; preds = %loopexit.2
-	ret void
-
-endif.38:		; preds = %loopexit.2
-	br i1 false, label %then.40, label %then.39
-
-then.39:		; preds = %endif.38
-	ret void
-
-then.40:		; preds = %endif.38
-	invoke void @__errno_location( )
-			to label %switchexit.2 unwind label %LongJmpBlkPre
-
-loopentry.6:		; preds = %endif.52
-	switch i32 0, label %switchexit.2 [
-		 i32 73, label %label.82
-		 i32 105, label %label.82
-		 i32 76, label %label.80
-		 i32 108, label %label.80
-		 i32 70, label %label.78
-		 i32 102, label %label.78
-	]
-
-label.78:		; preds = %loopentry.6, %loopentry.6
-	ret void
-
-label.80:		; preds = %loopentry.6, %loopentry.6
-	ret void
-
-label.82:		; preds = %loopentry.6, %loopentry.6
-	%c.0.15.5 = phi i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ]		; <i32> [#uses=0]
-	ret void
-
-switchexit.2:		; preds = %loopentry.6, %then.40
-	br i1 false, label %endif.51, label %loopexit.6
-
-endif.51:		; preds = %switchexit.2
-	br i1 false, label %endif.52, label %then.52
-
-then.52:		; preds = %endif.51
-	ret void
-
-endif.52:		; preds = %endif.51
-	%tmp.79417 = invoke i32 @_IO_getc( )
-			to label %loopentry.6 unwind label %LongJmpBlkPre		; <i32> [#uses=2]
-
-loopexit.6:		; preds = %switchexit.2
-	ret void
-
-char_constant:		; preds = %entry
-	ret void
-
-string_constant:		; preds = %entry
-	ret void
-
-combine:		; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
-	ret void
-
-label.126:		; preds = %entry
-	ret void
-
-return:		; preds = %entry
-	ret void
-
-LongJmpBlkPre:		; preds = %endif.52, %then.40
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll
deleted file mode 100644
index 0ab5498..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -extract-blocks -disable-output
-
-define void @test1() {
-no_exit.0.i:
-        br i1 false, label %yylex.entry, label %yylex.entry
-
-yylex.entry:            ; preds = %no_exit.0.i, %no_exit.0.i
-        %tmp.1027 = phi i32 [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ]            ; <i32> [#uses=0]
-        ret void
-}
-
-define void @test2() {
-no_exit.0.i:
-        switch i32 0, label %yylex.entry [
-                 i32 0, label %yylex.entry
-                 i32 1, label %foo
-        ]
-
-yylex.entry:            ; preds = %no_exit.0.i, %no_exit.0.i
-        %tmp.1027 = phi i32 [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ]            ; <i32> [#uses=0]
-        ret void
-
-foo:            ; preds = %no_exit.0.i
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll b/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll
deleted file mode 100644
index 8cd6094..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -extract-blocks -disable-output
-define i32 @foo() {
-        br label %EB
-
-EB:             ; preds = %0
-        %V = invoke i32 @foo( )
-                        to label %Cont unwind label %Unw                ; <i32> [#uses=1]
-
-Cont:           ; preds = %EB
-        ret i32 %V
-
-Unw:            ; preds = %EB
-        unwind
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/CodeExtractor/dg.exp b/libclamav/c++/llvm/test/Transforms/CodeExtractor/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeExtractor/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/CodeGenPrepare/2008-11-24-RAUW-Self.ll b/libclamav/c++/llvm/test/Transforms/CodeGenPrepare/2008-11-24-RAUW-Self.ll
deleted file mode 100644
index 12d6c0c..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeGenPrepare/2008-11-24-RAUW-Self.ll
+++ /dev/null
@@ -1,511 +0,0 @@
-; RUN: llvm-as < %s | opt -codegenprepare | llvm-dis
-; PR3113
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-
-define fastcc i32 @ascii2flt(i8* %str) nounwind {
-entry:
-	br label %bb2.i
-
-bb2.i:		; preds = %bb4.i.bb2.i_crit_edge, %entry
-	br i1 false, label %bb4.i, label %base2flt.exit
-
-bb4.i:		; preds = %bb2.i
-	br i1 false, label %bb11.i, label %bb4.i.bb2.i_crit_edge
-
-bb4.i.bb2.i_crit_edge:		; preds = %bb4.i
-	br label %bb2.i
-
-bb11.i:		; preds = %bb4.i
-	br label %bb11.i.base2flt.exit204_crit_edge
-
-bb11.i.base2flt.exit204_crit_edge:		; preds = %bb11.i
-	br label %base2flt.exit204
-
-bb11.i.bb7.i197_crit_edge:		; No predecessors!
-	br label %bb7.i197
-
-base2flt.exit:		; preds = %bb2.i
-	br label %base2flt.exit.base2flt.exit204_crit_edge
-
-base2flt.exit.base2flt.exit204_crit_edge:		; preds = %base2flt.exit
-	br label %base2flt.exit204
-
-base2flt.exit.bb7.i197_crit_edge:		; No predecessors!
-	br label %bb7.i197
-
-bb10.i196:		; preds = %bb7.i197
-	br label %bb10.i196.base2flt.exit204_crit_edge
-
-bb10.i196.base2flt.exit204_crit_edge:		; preds = %bb7.i197, %bb10.i196
-	br label %base2flt.exit204
-
-bb10.i196.bb7.i197_crit_edge:		; No predecessors!
-	br label %bb7.i197
-
-bb7.i197:		; preds = %bb10.i196.bb7.i197_crit_edge, %base2flt.exit.bb7.i197_crit_edge, %bb11.i.bb7.i197_crit_edge
-	%.reg2mem.0 = phi i32 [ 0, %base2flt.exit.bb7.i197_crit_edge ], [ %.reg2mem.0, %bb10.i196.bb7.i197_crit_edge ], [ 0, %bb11.i.bb7.i197_crit_edge ]		; <i32> [#uses=1]
-	br i1 undef, label %bb10.i196.base2flt.exit204_crit_edge, label %bb10.i196
-
-base2flt.exit204:		; preds = %bb10.i196.base2flt.exit204_crit_edge, %base2flt.exit.base2flt.exit204_crit_edge, %bb11.i.base2flt.exit204_crit_edge
-	br i1 false, label %base2flt.exit204.bb8_crit_edge, label %bb
-
-base2flt.exit204.bb8_crit_edge:		; preds = %base2flt.exit204
-	br label %bb8
-
-bb:		; preds = %base2flt.exit204
-	br i1 false, label %bb.bb18_crit_edge, label %bb1.i
-
-bb.bb18_crit_edge:		; preds = %bb9, %bb
-	br label %bb18
-
-bb1.i:		; preds = %bb
-	br i1 false, label %bb1.i.bb7_crit_edge, label %bb1.i158
-
-bb1.i.bb7_crit_edge.loopexit:		; preds = %bb2.i164
-	br label %bb1.i.bb7_crit_edge
-
-bb1.i.bb7_crit_edge:		; preds = %bb1.i.bb7_crit_edge.loopexit, %bb1.i
-	br label %bb7.preheader
-
-bb1.i158:		; preds = %bb1.i
-	br i1 false, label %bb1.i158.bb10.i179_crit_edge, label %bb1.i158.bb2.i164_crit_edge
-
-bb1.i158.bb2.i164_crit_edge:		; preds = %bb1.i158
-	br label %bb2.i164
-
-bb1.i158.bb10.i179_crit_edge:		; preds = %bb1.i158
-	br label %bb10.i179
-
-bb2.i164:		; preds = %bb4.i166.bb2.i164_crit_edge, %bb1.i158.bb2.i164_crit_edge
-	br i1 false, label %bb4.i166, label %bb1.i.bb7_crit_edge.loopexit
-
-bb4.i166:		; preds = %bb2.i164
-	br i1 false, label %bb4.i166.bb11.i172_crit_edge, label %bb4.i166.bb2.i164_crit_edge
-
-bb4.i166.bb2.i164_crit_edge:		; preds = %bb4.i166
-	br label %bb2.i164
-
-bb4.i166.bb11.i172_crit_edge:		; preds = %bb4.i166
-	br label %bb11.i172
-
-bb11.i172:		; preds = %bb10.i179.bb11.i172_crit_edge, %bb4.i166.bb11.i172_crit_edge
-	br label %bb7.preheader
-
-bb10.i179:		; preds = %bb9.i182, %bb1.i158.bb10.i179_crit_edge
-	br i1 false, label %bb7.i180, label %bb10.i179.bb11.i172_crit_edge
-
-bb10.i179.bb11.i172_crit_edge:		; preds = %bb10.i179
-	br label %bb11.i172
-
-bb7.i180:		; preds = %bb10.i179
-	br i1 false, label %bb7.i180.bb7_crit_edge, label %bb9.i182
-
-bb7.i180.bb7_crit_edge:		; preds = %bb7.i180
-	br label %bb7.preheader
-
-bb7.preheader:		; preds = %bb7.i180.bb7_crit_edge, %bb11.i172, %bb1.i.bb7_crit_edge
-	br label %bb7
-
-bb9.i182:		; preds = %bb7.i180
-	br label %bb10.i179
-
-bb7:		; preds = %addflt.exit114, %bb7.preheader
-	switch i8 0, label %bb4 [
-		i8 0, label %bb7.bb8_crit_edge
-		i8 46, label %bb7.bb8_crit_edge
-	]
-
-bb7.bb8_crit_edge:		; preds = %bb7, %bb7
-	br label %bb8
-
-bb4:		; preds = %bb7
-	br i1 false, label %bb18.loopexit1, label %bb1.i5
-
-bb1.i5:		; preds = %bb4
-	br i1 false, label %bb1.i5.mulflt.exit157_crit_edge, label %bb3.i147
-
-bb1.i5.mulflt.exit157_crit_edge:		; preds = %bb5.i148, %bb1.i5
-	br label %mulflt.exit157
-
-bb3.i147:		; preds = %bb1.i5
-	br i1 false, label %bb3.i147.mulflt.exit157_crit_edge, label %bb5.i148
-
-bb3.i147.mulflt.exit157_crit_edge:		; preds = %bb8.i150, %bb3.i147
-	br label %mulflt.exit157
-
-bb5.i148:		; preds = %bb3.i147
-	br i1 false, label %bb1.i5.mulflt.exit157_crit_edge, label %bb7.i149
-
-bb7.i149:		; preds = %bb5.i148
-	br i1 false, label %bb8.i150, label %bb7.i149.bb12.i154_crit_edge
-
-bb7.i149.bb12.i154_crit_edge:		; preds = %bb7.i149
-	br label %bb12.i154
-
-bb8.i150:		; preds = %bb7.i149
-	br i1 false, label %bb3.i147.mulflt.exit157_crit_edge, label %bb10.i151
-
-bb10.i151:		; preds = %bb8.i150
-	br label %bb12.i154
-
-bb12.i154:		; preds = %bb10.i151, %bb7.i149.bb12.i154_crit_edge
-	br label %mulflt.exit157
-
-mulflt.exit157:		; preds = %bb12.i154, %bb3.i147.mulflt.exit157_crit_edge, %bb1.i5.mulflt.exit157_crit_edge
-	br i1 false, label %mulflt.exit157.base2flt.exit144_crit_edge, label %bb1.i115
-
-mulflt.exit157.base2flt.exit144_crit_edge.loopexit:		; preds = %bb2.i121
-	br label %mulflt.exit157.base2flt.exit144_crit_edge
-
-mulflt.exit157.base2flt.exit144_crit_edge:		; preds = %mulflt.exit157.base2flt.exit144_crit_edge.loopexit, %mulflt.exit157
-	br label %base2flt.exit144
-
-bb1.i115:		; preds = %mulflt.exit157
-	br i1 false, label %bb1.i115.bb10.i136_crit_edge, label %bb1.i115.bb2.i121_crit_edge
-
-bb1.i115.bb2.i121_crit_edge:		; preds = %bb1.i115
-	br label %bb2.i121
-
-bb1.i115.bb10.i136_crit_edge:		; preds = %bb1.i115
-	br label %bb10.i136
-
-bb2.i121:		; preds = %bb4.i123.bb2.i121_crit_edge, %bb1.i115.bb2.i121_crit_edge
-	br i1 false, label %bb4.i123, label %mulflt.exit157.base2flt.exit144_crit_edge.loopexit
-
-bb4.i123:		; preds = %bb2.i121
-	br i1 false, label %bb4.i123.bb11.i129_crit_edge, label %bb4.i123.bb2.i121_crit_edge
-
-bb4.i123.bb2.i121_crit_edge:		; preds = %bb4.i123
-	br label %bb2.i121
-
-bb4.i123.bb11.i129_crit_edge:		; preds = %bb4.i123
-	br label %bb11.i129
-
-bb11.i129:		; preds = %bb10.i136.bb11.i129_crit_edge, %bb4.i123.bb11.i129_crit_edge
-	br label %base2flt.exit144
-
-bb10.i136:		; preds = %bb9.i139, %bb1.i115.bb10.i136_crit_edge
-	br i1 false, label %bb7.i137, label %bb10.i136.bb11.i129_crit_edge
-
-bb10.i136.bb11.i129_crit_edge:		; preds = %bb10.i136
-	br label %bb11.i129
-
-bb7.i137:		; preds = %bb10.i136
-	br i1 false, label %bb7.i137.base2flt.exit144_crit_edge, label %bb9.i139
-
-bb7.i137.base2flt.exit144_crit_edge:		; preds = %bb7.i137
-	br label %base2flt.exit144
-
-bb9.i139:		; preds = %bb7.i137
-	br label %bb10.i136
-
-base2flt.exit144:		; preds = %bb7.i137.base2flt.exit144_crit_edge, %bb11.i129, %mulflt.exit157.base2flt.exit144_crit_edge
-	br i1 false, label %base2flt.exit144.addflt.exit114_crit_edge, label %bb3.i105
-
-base2flt.exit144.addflt.exit114_crit_edge:		; preds = %bb3.i105, %base2flt.exit144
-	br label %addflt.exit114
-
-bb3.i105:		; preds = %base2flt.exit144
-	br i1 false, label %base2flt.exit144.addflt.exit114_crit_edge, label %bb5.i106
-
-bb5.i106:		; preds = %bb3.i105
-	br i1 false, label %bb5.i106.bb9.i111_crit_edge, label %bb6.i107
-
-bb5.i106.bb9.i111_crit_edge:		; preds = %bb5.i106
-	br label %bb9.i111
-
-bb6.i107:		; preds = %bb5.i106
-	br i1 false, label %bb6.i107.addflt.exit114_crit_edge, label %bb8.i108
-
-bb6.i107.addflt.exit114_crit_edge:		; preds = %bb6.i107
-	br label %addflt.exit114
-
-bb8.i108:		; preds = %bb6.i107
-	br label %bb9.i111
-
-bb9.i111:		; preds = %bb8.i108, %bb5.i106.bb9.i111_crit_edge
-	br label %addflt.exit114
-
-addflt.exit114:		; preds = %bb9.i111, %bb6.i107.addflt.exit114_crit_edge, %base2flt.exit144.addflt.exit114_crit_edge
-	br label %bb7
-
-bb18.loopexit1:		; preds = %bb4
-	ret i32 -1
-
-bb18:		; preds = %bb8.bb18_crit_edge, %bb.bb18_crit_edge
-	ret i32 0
-
-bb8:		; preds = %bb7.bb8_crit_edge, %base2flt.exit204.bb8_crit_edge
-	br i1 false, label %bb9, label %bb8.bb18_crit_edge
-
-bb8.bb18_crit_edge:		; preds = %bb8
-	br label %bb18
-
-bb9:		; preds = %bb8
-	br i1 false, label %bb.bb18_crit_edge, label %bb1.i13
-
-bb1.i13:		; preds = %bb9
-	br i1 false, label %bb1.i13.base2flt.exit102_crit_edge, label %bb1.i73
-
-bb1.i13.base2flt.exit102_crit_edge.loopexit:		; preds = %bb2.i79
-	br label %bb1.i13.base2flt.exit102_crit_edge
-
-bb1.i13.base2flt.exit102_crit_edge:		; preds = %bb1.i13.base2flt.exit102_crit_edge.loopexit, %bb1.i13
-	br label %base2flt.exit102
-
-bb1.i73:		; preds = %bb1.i13
-	br i1 false, label %bb1.i73.bb10.i94_crit_edge, label %bb1.i73.bb2.i79_crit_edge
-
-bb1.i73.bb2.i79_crit_edge:		; preds = %bb1.i73
-	br label %bb2.i79
-
-bb1.i73.bb10.i94_crit_edge:		; preds = %bb1.i73
-	br label %bb10.i94
-
-bb2.i79:		; preds = %bb4.i81.bb2.i79_crit_edge, %bb1.i73.bb2.i79_crit_edge
-	br i1 false, label %bb4.i81, label %bb1.i13.base2flt.exit102_crit_edge.loopexit
-
-bb4.i81:		; preds = %bb2.i79
-	br i1 false, label %bb4.i81.bb11.i87_crit_edge, label %bb4.i81.bb2.i79_crit_edge
-
-bb4.i81.bb2.i79_crit_edge:		; preds = %bb4.i81
-	br label %bb2.i79
-
-bb4.i81.bb11.i87_crit_edge:		; preds = %bb4.i81
-	br label %bb11.i87
-
-bb11.i87:		; preds = %bb10.i94.bb11.i87_crit_edge, %bb4.i81.bb11.i87_crit_edge
-	br label %base2flt.exit102
-
-bb10.i94:		; preds = %bb9.i97, %bb1.i73.bb10.i94_crit_edge
-	br i1 false, label %bb7.i95, label %bb10.i94.bb11.i87_crit_edge
-
-bb10.i94.bb11.i87_crit_edge:		; preds = %bb10.i94
-	br label %bb11.i87
-
-bb7.i95:		; preds = %bb10.i94
-	br i1 false, label %bb7.i95.base2flt.exit102_crit_edge, label %bb9.i97
-
-bb7.i95.base2flt.exit102_crit_edge:		; preds = %bb7.i95
-	br label %base2flt.exit102
-
-bb9.i97:		; preds = %bb7.i95
-	br label %bb10.i94
-
-base2flt.exit102:		; preds = %bb7.i95.base2flt.exit102_crit_edge, %bb11.i87, %bb1.i13.base2flt.exit102_crit_edge
-	br i1 false, label %base2flt.exit102.mulflt.exit72_crit_edge, label %bb3.i62
-
-base2flt.exit102.mulflt.exit72_crit_edge:		; preds = %bb5.i63, %base2flt.exit102
-	br label %mulflt.exit72
-
-bb3.i62:		; preds = %base2flt.exit102
-	br i1 false, label %bb3.i62.mulflt.exit72_crit_edge, label %bb5.i63
-
-bb3.i62.mulflt.exit72_crit_edge:		; preds = %bb8.i65, %bb3.i62
-	br label %mulflt.exit72
-
-bb5.i63:		; preds = %bb3.i62
-	br i1 false, label %base2flt.exit102.mulflt.exit72_crit_edge, label %bb7.i64
-
-bb7.i64:		; preds = %bb5.i63
-	br i1 false, label %bb8.i65, label %bb7.i64.bb12.i69_crit_edge
-
-bb7.i64.bb12.i69_crit_edge:		; preds = %bb7.i64
-	br label %bb12.i69
-
-bb8.i65:		; preds = %bb7.i64
-	br i1 false, label %bb3.i62.mulflt.exit72_crit_edge, label %bb10.i66
-
-bb10.i66:		; preds = %bb8.i65
-	br label %bb12.i69
-
-bb12.i69:		; preds = %bb10.i66, %bb7.i64.bb12.i69_crit_edge
-	br label %mulflt.exit72
-
-mulflt.exit72:		; preds = %bb12.i69, %bb3.i62.mulflt.exit72_crit_edge, %base2flt.exit102.mulflt.exit72_crit_edge
-	br i1 false, label %mulflt.exit72.bb10.i58_crit_edge, label %bb3.i50
-
-mulflt.exit72.bb10.i58_crit_edge:		; preds = %bb3.i50, %mulflt.exit72
-	br label %bb10.i58
-
-bb3.i50:		; preds = %mulflt.exit72
-	br i1 false, label %mulflt.exit72.bb10.i58_crit_edge, label %bb5.i51
-
-bb5.i51:		; preds = %bb3.i50
-	br i1 false, label %bb5.i51.bb9.i56_crit_edge, label %bb6.i52
-
-bb5.i51.bb9.i56_crit_edge:		; preds = %bb5.i51
-	br label %bb9.i56
-
-bb6.i52:		; preds = %bb5.i51
-	br i1 false, label %bb6.i52.bb10.i58_crit_edge, label %bb8.i53
-
-bb6.i52.bb10.i58_crit_edge:		; preds = %bb6.i52
-	br label %bb10.i58
-
-bb8.i53:		; preds = %bb6.i52
-	br label %bb9.i56
-
-bb9.i56:		; preds = %bb8.i53, %bb5.i51.bb9.i56_crit_edge
-	br label %bb15.preheader
-
-bb10.i58:		; preds = %bb6.i52.bb10.i58_crit_edge, %mulflt.exit72.bb10.i58_crit_edge
-	br label %bb15.preheader
-
-bb15.preheader:		; preds = %bb10.i58, %bb9.i56
-	br label %bb15
-
-bb15:		; preds = %addflt.exit, %bb15.preheader
-	br i1 false, label %bb15.bb18.loopexit_crit_edge, label %bb12
-
-bb15.bb18.loopexit_crit_edge:		; preds = %bb15
-	br label %bb18.loopexit
-
-bb12:		; preds = %bb15
-	br i1 false, label %bb12.bb18.loopexit_crit_edge, label %bb1.i21
-
-bb12.bb18.loopexit_crit_edge:		; preds = %bb12
-	br label %bb18.loopexit
-
-bb1.i21:		; preds = %bb12
-	br i1 false, label %bb1.i21.mulflt.exit47_crit_edge, label %bb3.i37
-
-bb1.i21.mulflt.exit47_crit_edge:		; preds = %bb5.i38, %bb1.i21
-	br label %mulflt.exit47
-
-bb3.i37:		; preds = %bb1.i21
-	br i1 false, label %bb3.i37.mulflt.exit47_crit_edge, label %bb5.i38
-
-bb3.i37.mulflt.exit47_crit_edge:		; preds = %bb8.i40, %bb3.i37
-	br label %mulflt.exit47
-
-bb5.i38:		; preds = %bb3.i37
-	br i1 false, label %bb1.i21.mulflt.exit47_crit_edge, label %bb7.i39
-
-bb7.i39:		; preds = %bb5.i38
-	br i1 false, label %bb8.i40, label %bb7.i39.bb12.i44_crit_edge
-
-bb7.i39.bb12.i44_crit_edge:		; preds = %bb7.i39
-	br label %bb12.i44
-
-bb8.i40:		; preds = %bb7.i39
-	br i1 false, label %bb3.i37.mulflt.exit47_crit_edge, label %bb10.i41
-
-bb10.i41:		; preds = %bb8.i40
-	br label %bb12.i44
-
-bb12.i44:		; preds = %bb10.i41, %bb7.i39.bb12.i44_crit_edge
-	br label %mulflt.exit47
-
-mulflt.exit47:		; preds = %bb12.i44, %bb3.i37.mulflt.exit47_crit_edge, %bb1.i21.mulflt.exit47_crit_edge
-	br i1 false, label %mulflt.exit47.base2flt.exit34_crit_edge, label %bb1.i15
-
-mulflt.exit47.base2flt.exit34_crit_edge.loopexit:		; preds = %bb2.i20
-	br label %mulflt.exit47.base2flt.exit34_crit_edge
-
-mulflt.exit47.base2flt.exit34_crit_edge:		; preds = %mulflt.exit47.base2flt.exit34_crit_edge.loopexit, %mulflt.exit47
-	br label %base2flt.exit34
-
-bb1.i15:		; preds = %mulflt.exit47
-	br i1 false, label %bb1.i15.bb10.i31_crit_edge, label %bb1.i15.bb2.i20_crit_edge
-
-bb1.i15.bb2.i20_crit_edge:		; preds = %bb1.i15
-	br label %bb2.i20
-
-bb1.i15.bb10.i31_crit_edge:		; preds = %bb1.i15
-	br label %bb10.i31
-
-bb2.i20:		; preds = %bb4.i22.bb2.i20_crit_edge, %bb1.i15.bb2.i20_crit_edge
-	br i1 false, label %bb4.i22, label %mulflt.exit47.base2flt.exit34_crit_edge.loopexit
-
-bb4.i22:		; preds = %bb2.i20
-	br i1 false, label %bb4.i22.bb11.i28_crit_edge, label %bb4.i22.bb2.i20_crit_edge
-
-bb4.i22.bb2.i20_crit_edge:		; preds = %bb4.i22
-	br label %bb2.i20
-
-bb4.i22.bb11.i28_crit_edge:		; preds = %bb4.i22
-	br label %bb11.i28
-
-bb11.i28:		; preds = %bb10.i31.bb11.i28_crit_edge, %bb4.i22.bb11.i28_crit_edge
-	br label %base2flt.exit34
-
-bb10.i31:		; preds = %bb9.i33, %bb1.i15.bb10.i31_crit_edge
-	br i1 false, label %bb7.i32, label %bb10.i31.bb11.i28_crit_edge
-
-bb10.i31.bb11.i28_crit_edge:		; preds = %bb10.i31
-	br label %bb11.i28
-
-bb7.i32:		; preds = %bb10.i31
-	br i1 false, label %bb7.i32.base2flt.exit34_crit_edge, label %bb9.i33
-
-bb7.i32.base2flt.exit34_crit_edge:		; preds = %bb7.i32
-	br label %base2flt.exit34
-
-bb9.i33:		; preds = %bb7.i32
-	br label %bb10.i31
-
-base2flt.exit34:		; preds = %bb7.i32.base2flt.exit34_crit_edge, %bb11.i28, %mulflt.exit47.base2flt.exit34_crit_edge
-	br i1 false, label %base2flt.exit34.mulflt.exit_crit_edge, label %bb3.i9
-
-base2flt.exit34.mulflt.exit_crit_edge:		; preds = %bb5.i10, %base2flt.exit34
-	br label %mulflt.exit
-
-bb3.i9:		; preds = %base2flt.exit34
-	br i1 false, label %bb3.i9.mulflt.exit_crit_edge, label %bb5.i10
-
-bb3.i9.mulflt.exit_crit_edge:		; preds = %bb8.i11, %bb3.i9
-	br label %mulflt.exit
-
-bb5.i10:		; preds = %bb3.i9
-	br i1 false, label %base2flt.exit34.mulflt.exit_crit_edge, label %bb7.i
-
-bb7.i:		; preds = %bb5.i10
-	br i1 false, label %bb8.i11, label %bb7.i.bb12.i_crit_edge
-
-bb7.i.bb12.i_crit_edge:		; preds = %bb7.i
-	br label %bb12.i
-
-bb8.i11:		; preds = %bb7.i
-	br i1 false, label %bb3.i9.mulflt.exit_crit_edge, label %bb10.i12
-
-bb10.i12:		; preds = %bb8.i11
-	br label %bb12.i
-
-bb12.i:		; preds = %bb10.i12, %bb7.i.bb12.i_crit_edge
-	br label %mulflt.exit
-
-mulflt.exit:		; preds = %bb12.i, %bb3.i9.mulflt.exit_crit_edge, %base2flt.exit34.mulflt.exit_crit_edge
-	br i1 false, label %mulflt.exit.addflt.exit_crit_edge, label %bb3.i
-
-mulflt.exit.addflt.exit_crit_edge:		; preds = %bb3.i, %mulflt.exit
-	br label %addflt.exit
-
-bb3.i:		; preds = %mulflt.exit
-	br i1 false, label %mulflt.exit.addflt.exit_crit_edge, label %bb5.i
-
-bb5.i:		; preds = %bb3.i
-	br i1 false, label %bb5.i.bb9.i_crit_edge, label %bb6.i
-
-bb5.i.bb9.i_crit_edge:		; preds = %bb5.i
-	br label %bb9.i
-
-bb6.i:		; preds = %bb5.i
-	br i1 false, label %bb6.i.addflt.exit_crit_edge, label %bb8.i
-
-bb6.i.addflt.exit_crit_edge:		; preds = %bb6.i
-	br label %addflt.exit
-
-bb8.i:		; preds = %bb6.i
-	br label %bb9.i
-
-bb9.i:		; preds = %bb8.i, %bb5.i.bb9.i_crit_edge
-	br label %addflt.exit
-
-addflt.exit:		; preds = %bb9.i, %bb6.i.addflt.exit_crit_edge, %mulflt.exit.addflt.exit_crit_edge
-	br label %bb15
-
-bb18.loopexit:		; preds = %bb12.bb18.loopexit_crit_edge, %bb15.bb18.loopexit_crit_edge
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CodeGenPrepare/dg.exp b/libclamav/c++/llvm/test/Transforms/CodeGenPrepare/dg.exp
deleted file mode 100644
index de42dad..0000000
--- a/libclamav/c++/llvm/test/Transforms/CodeGenPrepare/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.ll]]
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll b/libclamav/c++/llvm/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll
deleted file mode 100644
index fa08379..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/2006-08-14-SingleEntryPhiCrash.ll
+++ /dev/null
@@ -1,462 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop -disable-output
-; PR877
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin9.0.0d1"
-	%"struct.kc::impl_Ccode_option" = type { %"struct.kc::impl_abstract_phylum" }
-	%"struct.kc::impl_ID" = type { %"struct.kc::impl_abstract_phylum", %"struct.kc::impl_Ccode_option"*, %"struct.kc::impl_casestring__Str"*, i32, %"struct.kc::impl_casestring__Str"* }
-	%"struct.kc::impl_abstract_phylum" = type { i32 (...)** }
-	%"struct.kc::impl_casestring__Str" = type { %"struct.kc::impl_abstract_phylum", i8* }
-	%"struct.kc::impl_elem_patternrepresentation" = type { %"struct.kc::impl_abstract_phylum", i32, %"struct.kc::impl_casestring__Str"*, %"struct.kc::impl_ID"* }
-	%"struct.kc::impl_outmostpatterns" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_elem_patternrepresentation"*, %"struct.kc::impl_outmostpatterns"* }
-	%"struct.kc::impl_patternrepresentations" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_outmostpatterns"*, %"struct.kc::impl_patternrepresentations"* }
-
-define void @_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() {
-entry:
-	br label %bb1269.outer.outer.outer.outer
-
-cond_true:		; preds = %cond_true1298
-	br label %bb1269.outer69
-
-cond_false:		; preds = %cond_true1298
-	br i1 false, label %cond_next, label %bb51
-
-cond_next:		; preds = %cond_false
-	br i1 false, label %bb52, label %bb51
-
-bb51:		; preds = %cond_next, %cond_false
-	br label %bb52
-
-bb52:		; preds = %bb51, %cond_next
-	br i1 false, label %cond_false82, label %cond_true55
-
-cond_true55:		; preds = %bb52
-	br i1 false, label %UnifiedReturnBlock, label %cond_true57
-
-cond_true57:		; preds = %cond_true55
-	br label %UnifiedReturnBlock
-
-cond_false82:		; preds = %bb52
-	br i1 false, label %cond_next97, label %bb113
-
-cond_next97:		; preds = %cond_false82
-	br i1 false, label %bb114, label %bb113
-
-bb113:		; preds = %cond_next97, %cond_false82
-	br label %bb114
-
-bb114:		; preds = %bb113, %cond_next97
-	br i1 false, label %cond_false151, label %cond_true117
-
-cond_true117:		; preds = %bb114
-	br i1 false, label %UnifiedReturnBlock, label %cond_true120
-
-cond_true120:		; preds = %cond_true117
-	br label %UnifiedReturnBlock
-
-cond_false151:		; preds = %bb114
-	br i1 false, label %cond_next166, label %bb182
-
-cond_next166:		; preds = %cond_false151
-	br i1 false, label %bb183, label %bb182
-
-bb182:		; preds = %cond_next166, %cond_false151
-	br label %bb183
-
-bb183:		; preds = %bb182, %cond_next166
-	br i1 false, label %cond_false256, label %cond_true186
-
-cond_true186:		; preds = %bb183
-	br i1 false, label %cond_true207, label %cond_false214
-
-cond_true207:		; preds = %cond_true186
-	br label %bb1269.outer38.backedge
-
-bb1269.outer38.backedge:		; preds = %cond_true545, %cond_true432, %cond_true320, %cond_true207
-	br label %bb1269.outer38
-
-cond_false214:		; preds = %cond_true186
-	br i1 false, label %cond_true228, label %cond_false235
-
-cond_true228:		; preds = %cond_false214
-	br label %bb1269.outer21.backedge
-
-bb1269.outer21.backedge:		; preds = %cond_true566, %cond_true453, %cond_true341, %cond_true228
-	br label %bb1269.outer21
-
-cond_false235:		; preds = %cond_false214
-	br i1 false, label %UnifiedReturnBlock, label %cond_false250
-
-cond_false250:		; preds = %cond_false235
-	br label %UnifiedUnreachableBlock
-
-cond_false256:		; preds = %bb183
-	br i1 false, label %cond_next271, label %bb287
-
-cond_next271:		; preds = %cond_false256
-	br i1 false, label %bb288, label %bb287
-
-bb287:		; preds = %cond_next271, %cond_false256
-	br label %bb288
-
-bb288:		; preds = %bb287, %cond_next271
-	br i1 false, label %cond_false369, label %cond_true291
-
-cond_true291:		; preds = %bb288
-	br i1 false, label %cond_true320, label %cond_false327
-
-cond_true320:		; preds = %cond_true291
-	br label %bb1269.outer38.backedge
-
-cond_false327:		; preds = %cond_true291
-	br i1 false, label %cond_true341, label %cond_false348
-
-cond_true341:		; preds = %cond_false327
-	br label %bb1269.outer21.backedge
-
-cond_false348:		; preds = %cond_false327
-	br i1 false, label %UnifiedReturnBlock, label %cond_false363
-
-cond_false363:		; preds = %cond_false348
-	br label %UnifiedUnreachableBlock
-
-cond_false369:		; preds = %bb288
-	br i1 false, label %cond_next384, label %bb400
-
-cond_next384:		; preds = %cond_false369
-	br i1 false, label %bb401, label %bb400
-
-bb400:		; preds = %cond_next384, %cond_false369
-	br label %bb401
-
-bb401:		; preds = %bb400, %cond_next384
-	br i1 false, label %cond_false481, label %cond_true404
-
-cond_true404:		; preds = %bb401
-	br i1 false, label %cond_true432, label %cond_false439
-
-cond_true432:		; preds = %cond_true404
-	br label %bb1269.outer38.backedge
-
-cond_false439:		; preds = %cond_true404
-	br i1 false, label %cond_true453, label %cond_false460
-
-cond_true453:		; preds = %cond_false439
-	br label %bb1269.outer21.backedge
-
-cond_false460:		; preds = %cond_false439
-	br i1 false, label %UnifiedReturnBlock, label %cond_false475
-
-cond_false475:		; preds = %cond_false460
-	br label %UnifiedUnreachableBlock
-
-cond_false481:		; preds = %bb401
-	br i1 false, label %cond_next496, label %bb512
-
-cond_next496:		; preds = %cond_false481
-	br i1 false, label %bb513, label %bb512
-
-bb512:		; preds = %cond_next496, %cond_false481
-	br label %bb513
-
-bb513:		; preds = %bb512, %cond_next496
-	br i1 false, label %cond_false594, label %cond_true516
-
-cond_true516:		; preds = %bb513
-	br i1 false, label %cond_true545, label %cond_false552
-
-cond_true545:		; preds = %cond_true516
-	br label %bb1269.outer38.backedge
-
-cond_false552:		; preds = %cond_true516
-	br i1 false, label %cond_true566, label %cond_false573
-
-cond_true566:		; preds = %cond_false552
-	br label %bb1269.outer21.backedge
-
-cond_false573:		; preds = %cond_false552
-	br i1 false, label %UnifiedReturnBlock, label %cond_false588
-
-cond_false588:		; preds = %cond_false573
-	br label %UnifiedUnreachableBlock
-
-cond_false594:		; preds = %bb513
-	br i1 false, label %cond_next609, label %bb625
-
-cond_next609:		; preds = %cond_false594
-	br i1 false, label %bb626, label %bb625
-
-bb625:		; preds = %cond_next609, %cond_false594
-	br label %bb626
-
-bb626:		; preds = %bb625, %cond_next609
-	br i1 false, label %cond_false707, label %cond_true629
-
-cond_true629:		; preds = %bb626
-	br i1 false, label %cond_true658, label %cond_false665
-
-cond_true658:		; preds = %cond_true629
-	br label %bb1269.outer2.backedge
-
-bb1269.outer2.backedge:		; preds = %cond_true679, %cond_true658
-	br label %bb1269.outer2
-
-cond_false665:		; preds = %cond_true629
-	br i1 false, label %cond_true679, label %cond_false686
-
-cond_true679:		; preds = %cond_false665
-	br label %bb1269.outer2.backedge
-
-cond_false686:		; preds = %cond_false665
-	br i1 false, label %UnifiedReturnBlock, label %cond_false701
-
-cond_false701:		; preds = %cond_false686
-	br label %UnifiedUnreachableBlock
-
-cond_false707:		; preds = %bb626
-	br i1 false, label %cond_next722, label %bb738
-
-cond_next722:		; preds = %cond_false707
-	br i1 false, label %bb739, label %bb738
-
-bb738:		; preds = %cond_next722, %cond_false707
-	br label %bb739
-
-bb739:		; preds = %bb738, %cond_next722
-	br i1 false, label %cond_false820, label %cond_true742
-
-cond_true742:		; preds = %bb739
-	br i1 false, label %cond_true771, label %cond_false778
-
-cond_true771:		; preds = %cond_true742
-	br label %bb1269.outer.backedge
-
-bb1269.outer.backedge:		; preds = %cond_true792, %cond_true771
-	br label %bb1269.outer
-
-cond_false778:		; preds = %cond_true742
-	br i1 false, label %cond_true792, label %cond_false799
-
-cond_true792:		; preds = %cond_false778
-	br label %bb1269.outer.backedge
-
-cond_false799:		; preds = %cond_false778
-	br i1 false, label %UnifiedReturnBlock, label %cond_false814
-
-cond_false814:		; preds = %cond_false799
-	br label %UnifiedUnreachableBlock
-
-cond_false820:		; preds = %bb739
-	br i1 false, label %cond_next835, label %bb851
-
-cond_next835:		; preds = %cond_false820
-	br i1 false, label %bb852, label %bb851
-
-bb851:		; preds = %cond_next835, %cond_false820
-	br label %bb852
-
-bb852:		; preds = %bb851, %cond_next835
-	br i1 false, label %cond_false933, label %cond_true855
-
-cond_true855:		; preds = %bb852
-	br i1 false, label %cond_true884, label %cond_false891
-
-cond_true884:		; preds = %cond_true855
-	br label %bb1269.outer.outer.backedge
-
-bb1269.outer.outer.backedge:		; preds = %cond_true905, %cond_true884
-	br label %bb1269.outer.outer
-
-cond_false891:		; preds = %cond_true855
-	br i1 false, label %cond_true905, label %cond_false912
-
-cond_true905:		; preds = %cond_false891
-	br label %bb1269.outer.outer.backedge
-
-cond_false912:		; preds = %cond_false891
-	br i1 false, label %UnifiedReturnBlock, label %cond_false927
-
-cond_false927:		; preds = %cond_false912
-	br label %UnifiedUnreachableBlock
-
-cond_false933:		; preds = %bb852
-	br i1 false, label %cond_next948, label %bb964
-
-cond_next948:		; preds = %cond_false933
-	br i1 false, label %bb965, label %bb964
-
-bb964:		; preds = %cond_next948, %cond_false933
-	br label %bb965
-
-bb965:		; preds = %bb964, %cond_next948
-	br i1 false, label %cond_false1046, label %cond_true968
-
-cond_true968:		; preds = %bb965
-	br i1 false, label %cond_true997, label %cond_false1004
-
-cond_true997:		; preds = %cond_true968
-	br label %bb1269.outer.outer.outer.backedge
-
-bb1269.outer.outer.outer.backedge:		; preds = %cond_true1018, %cond_true997
-	br label %bb1269.outer.outer.outer
-
-cond_false1004:		; preds = %cond_true968
-	br i1 false, label %cond_true1018, label %cond_false1025
-
-cond_true1018:		; preds = %cond_false1004
-	br label %bb1269.outer.outer.outer.backedge
-
-cond_false1025:		; preds = %cond_false1004
-	br i1 false, label %UnifiedReturnBlock, label %cond_false1040
-
-cond_false1040:		; preds = %cond_false1025
-	br label %UnifiedUnreachableBlock
-
-cond_false1046:		; preds = %bb965
-	br i1 false, label %cond_next1061, label %bb1077
-
-cond_next1061:		; preds = %cond_false1046
-	br i1 false, label %bb1078, label %bb1077
-
-bb1077:		; preds = %cond_next1061, %cond_false1046
-	br label %bb1078
-
-bb1078:		; preds = %bb1077, %cond_next1061
-	%tmp1080 = phi i1 [ true, %bb1077 ], [ false, %cond_next1061 ]		; <i1> [#uses=1]
-	br i1 %tmp1080, label %cond_false1159, label %cond_true1081
-
-cond_true1081:		; preds = %bb1078
-	br i1 false, label %cond_true1110, label %cond_false1117
-
-cond_true1110:		; preds = %cond_true1081
-	br label %bb1269.outer.outer.outer.outer.backedge
-
-bb1269.outer.outer.outer.outer.backedge:		; preds = %cond_true1131, %cond_true1110
-	br label %bb1269.outer.outer.outer.outer
-
-cond_false1117:		; preds = %cond_true1081
-	br i1 false, label %cond_true1131, label %cond_false1138
-
-cond_true1131:		; preds = %cond_false1117
-	br label %bb1269.outer.outer.outer.outer.backedge
-
-cond_false1138:		; preds = %cond_false1117
-	br i1 false, label %UnifiedReturnBlock, label %cond_false1153
-
-cond_false1153:		; preds = %cond_false1138
-	br label %UnifiedUnreachableBlock
-
-cond_false1159:		; preds = %bb1078
-	%tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi %"struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ]		; <%"struct.kc::impl_elem_patternrepresentation"*> [#uses=0]
-	br i1 false, label %UnifiedReturnBlock, label %cond_false1174
-
-cond_false1174:		; preds = %cond_false1159
-	br i1 false, label %UnifiedReturnBlock, label %cond_false1189
-
-cond_false1189:		; preds = %cond_false1174
-	br i1 false, label %UnifiedReturnBlock, label %cond_false1204
-
-cond_false1204:		; preds = %cond_false1189
-	br i1 false, label %UnifiedReturnBlock, label %cond_false1219
-
-cond_false1219:		; preds = %cond_false1204
-	br i1 false, label %UnifiedReturnBlock, label %cond_true1222
-
-cond_true1222:		; preds = %cond_false1219
-	br label %UnifiedReturnBlock
-
-bb1269.outer.outer.outer.outer:		; preds = %bb1269.outer.outer.outer.outer.backedge, %entry
-	br label %bb1269.outer.outer.outer
-
-bb1269.outer.outer.outer:		; preds = %bb1269.outer.outer.outer.outer, %bb1269.outer.outer.outer.backedge
-	br label %bb1269.outer.outer
-
-bb1269.outer.outer:		; preds = %bb1269.outer.outer.outer, %bb1269.outer.outer.backedge
-	br label %bb1269.outer
-
-bb1269.outer:		; preds = %bb1269.outer.outer, %bb1269.outer.backedge
-	br label %bb1269.outer2
-
-bb1269.outer2:		; preds = %bb1269.outer, %bb1269.outer2.backedge
-	br label %bb1269.outer21
-
-bb1269.outer21:		; preds = %bb1269.outer2, %bb1269.outer21.backedge
-	br label %bb1269.outer38
-
-bb1269.outer38:		; preds = %bb1269.outer21, %bb1269.outer38.backedge
-	br label %bb1269.outer54
-
-bb1269.outer54:		; preds = %bb1269.outer38
-	br label %bb1269.outer69
-
-bb1269.outer69:		; preds = %bb1269.outer54, %cond_true
-	br label %bb1269
-
-bb1269:		; preds = %bb1269.outer69
-	br i1 false, label %cond_next1281, label %bb1294
-
-cond_next1281:		; preds = %bb1269
-	br i1 false, label %cond_true1298, label %bb1294
-
-bb1294:		; preds = %cond_next1281, %bb1269
-	br i1 false, label %cond_true1331, label %cond_next1313
-
-cond_true1298:		; preds = %cond_next1281
-	br i1 false, label %cond_false, label %cond_true
-
-cond_next1313:		; preds = %bb1294
-	br i1 false, label %cond_true1331, label %cond_next1355
-
-cond_true1331:		; preds = %cond_next1313, %bb1294
-	br i1 false, label %cond_false1346, label %cond_true1342
-
-cond_true1342:		; preds = %cond_true1331
-	br label %cond_next1350
-
-cond_false1346:		; preds = %cond_true1331
-	br label %cond_next1350
-
-cond_next1350:		; preds = %cond_false1346, %cond_true1342
-	br label %bb.i
-
-bb.i:		; preds = %bb.i, %cond_next1350
-	br i1 false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i
-
-_ZN2kc18impl_abstract_list8freelistEv.exit:		; preds = %bb.i
-	br label %cond_next1355
-
-cond_next1355:		; preds = %_ZN2kc18impl_abstract_list8freelistEv.exit, %cond_next1313
-	br i1 false, label %cond_next1363, label %bb1388
-
-cond_next1363:		; preds = %cond_next1355
-	br i1 false, label %UnifiedReturnBlock, label %cond_true1366
-
-cond_true1366:		; preds = %cond_next1363
-	br label %UnifiedReturnBlock
-
-bb1388:		; preds = %cond_next1355
-	br i1 false, label %UnifiedReturnBlock, label %bb1414.preheader
-
-bb1414.preheader:		; preds = %bb1388
-	br label %bb1414
-
-bb1414:		; preds = %cond_true1426, %bb1414.preheader
-	br i1 false, label %cond_true1426, label %bb1429
-
-cond_true1426:		; preds = %bb1414
-	br label %bb1414
-
-bb1429:		; preds = %bb1414
-	br i1 false, label %cond_true1431, label %UnifiedReturnBlock
-
-cond_true1431:		; preds = %bb1429
-	br i1 false, label %UnifiedReturnBlock, label %cond_true1434
-
-cond_true1434:		; preds = %cond_true1431
-	br label %UnifiedReturnBlock
-
-UnifiedUnreachableBlock:		; preds = %cond_false1153, %cond_false1040, %cond_false927, %cond_false814, %cond_false701, %cond_false588, %cond_false475, %cond_false363, %cond_false250
-	unreachable
-
-UnifiedReturnBlock:		; preds = %cond_true1434, %cond_true1431, %bb1429, %bb1388, %cond_true1366, %cond_next1363, %cond_true1222, %cond_false1219, %cond_false1204, %cond_false1189, %cond_false1174, %cond_false1159, %cond_false1138, %cond_false1025, %cond_false912, %cond_false799, %cond_false686, %cond_false573, %cond_false460, %cond_false348, %cond_false235, %cond_true120, %cond_true117, %cond_true57, %cond_true55
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll b/libclamav/c++/llvm/test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll
deleted file mode 100644
index 573ee6c..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/2006-11-01-PhiNodeCrash.ll
+++ /dev/null
@@ -1,1084 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop -disable-output
-; PR979
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct.IO_APIC_reg_00 = type { i32 }
-	%struct.Qdisc = type { i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, i32, %struct.Qdisc_ops*, %struct.Qdisc*, i32, %struct.IO_APIC_reg_00, %struct.sk_buff_head, %struct.net_device*, %struct.tc_stats, i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.Qdisc*, [1 x i8] }
-	%struct.Qdisc_class_ops = type { i32 (%struct.Qdisc*, i32, %struct.Qdisc*, %struct.Qdisc**)*, %struct.Qdisc* (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32)*, void (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, i32, %struct._agp_version**, i32*)*, i32 (%struct.Qdisc*, i32)*, void (%struct.Qdisc*, %struct.qdisc_walker*)*, %struct.tcf_proto** (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, i32)*, void (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, %struct.sk_buff*, %struct.tcmsg*)* }
-	%struct.Qdisc_ops = type { %struct.Qdisc_ops*, %struct.Qdisc_class_ops*, [16 x i8], i32, i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, i32 (%struct.sk_buff*, %struct.Qdisc*)*, i32 (%struct.Qdisc*)*, i32 (%struct.Qdisc*, %struct._agp_version*)*, void (%struct.Qdisc*)*, void (%struct.Qdisc*)*, i32 (%struct.Qdisc*, %struct._agp_version*)*, i32 (%struct.Qdisc*, %struct.sk_buff*)* }
-	%struct.ViceFid = type { i32, i32, i32 }
-	%struct.__wait_queue = type { i32, %struct.task_struct*, %struct.list_head }
-	%struct.__wait_queue_head = type { %struct.IO_APIC_reg_00, %struct.list_head }
-	%struct._agp_version = type { i16, i16 }
-	%struct._drm_i810_overlay_t = type { i32, i32 }
-	%struct.address_space = type { %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.address_space_operations*, %struct.inode*, %struct.vm_area_struct*, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, i32 }
-	%struct.address_space_operations = type { i32 (%struct.page*)*, i32 (%struct.file*, %struct.page*)*, i32 (%struct.page*)*, i32 (%struct.file*, %struct.page*, i32, i32)*, i32 (%struct.file*, %struct.page*, i32, i32)*, i32 (%struct.address_space*, i32)*, i32 (%struct.page*, i32)*, i32 (%struct.page*, i32)*, i32 (i32, %struct.inode*, %struct.kiobuf*, i32, i32)*, i32 (i32, %struct.file*, %struct.kiobuf*, i32, i32)*, void (%struct.page*)* }
-	%struct.audio_buf_info = type { i32, i32, i32, i32 }
-	%struct.autofs_packet_hdr = type { i32, i32 }
-	%struct.block_device = type { %struct.list_head, %struct.IO_APIC_reg_00, %struct.inode*, i16, i32, %struct.block_device_operations*, %struct.semaphore, %struct.list_head }
-	%struct.block_device_operations = type { i32 (%struct.inode*, %struct.file*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.inode*, %struct.file*, i32, i32)*, i32 (i16)*, i32 (i16)*, %struct.module* }
-	%struct.bluez_skb_cb = type { i32 }
-	%struct.buffer_head = type { %struct.buffer_head*, i32, i16, i16, i16, %struct.IO_APIC_reg_00, i16, i32, i32, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head**, i8*, %struct.page*, void (%struct.buffer_head*, i32)*, i8*, i32, %struct.__wait_queue_head, %struct.list_head }
-	%struct.char_device = type { %struct.list_head, %struct.IO_APIC_reg_00, i16, %struct.IO_APIC_reg_00, %struct.semaphore }
-	%struct.completion = type { i32, %struct.__wait_queue_head }
-	%struct.cramfs_info = type { i32, i32, i32, i32 }
-	%struct.dentry = type { %struct.IO_APIC_reg_00, i32, %struct.inode*, %struct.dentry*, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.qstr, i32, %struct.dentry_operations*, %struct.super_block*, i32, i8*, [16 x i8] }
-	%struct.dentry_operations = type { i32 (%struct.dentry*, i32)*, i32 (%struct.dentry*, %struct.qstr*)*, i32 (%struct.dentry*, %struct.qstr*, %struct.qstr*)*, i32 (%struct.dentry*)*, void (%struct.dentry*)*, void (%struct.dentry*, %struct.inode*)* }
-	%struct.dev_mc_list = type { %struct.dev_mc_list*, [8 x i8], i8, i32, i32 }
-	%struct.dnotify_struct = type { %struct.dnotify_struct*, i32, i32, %struct.file*, %struct.files_struct* }
-	%struct.dquot = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.__wait_queue_head, %struct.__wait_queue_head, i32, i32, %struct.super_block*, i32, i16, i64, i16, i16, i32, %struct.mem_dqblk }
-	%struct.dquot_operations = type { void (%struct.inode*, i32)*, void (%struct.inode*)*, i32 (%struct.inode*, i64, i32)*, i32 (%struct.inode*, i32)*, void (%struct.inode*, i64)*, void (%struct.inode*, i32)*, i32 (%struct.inode*, %struct.iattr*)*, i32 (%struct.dquot*)* }
-	%struct.drm_clip_rect = type { i16, i16, i16, i16 }
-	%struct.drm_ctx_priv_map = type { i32, i8* }
-	%struct.drm_mga_indices = type { i32, i32, i32, i32 }
-	%struct.dst_entry = type { %struct.dst_entry*, %struct.IO_APIC_reg_00, i32, %struct.net_device*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.neighbour*, %struct.hh_cache*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, %struct.dst_ops*, [0 x i8] }
-	%struct.dst_ops = type { i16, i16, i32, i32 ()*, %struct.dst_entry* (%struct.dst_entry*, i32)*, %struct.dst_entry* (%struct.dst_entry*, %struct.sk_buff*)*, void (%struct.dst_entry*)*, %struct.dst_entry* (%struct.dst_entry*)*, void (%struct.sk_buff*)*, i32, %struct.IO_APIC_reg_00, %struct.kmem_cache_s* }
-	%struct.e820entry = type { i64, i64, i32 }
-	%struct.exec_domain = type { i8*, void (i32, %struct.pt_regs*)*, i8, i8, i32*, i32*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.module*, %struct.exec_domain* }
-	%struct.ext2_inode_info = type { [15 x i32], i32, i32, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.ext3_inode_info = type { [15 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.list_head, i64, %struct.rw_semaphore }
-	%struct.fasync_struct = type { i32, i32, %struct.fasync_struct*, %struct.file* }
-	%struct.file = type { %struct.list_head, %struct.dentry*, %struct.vfsmount*, %struct.file_operations*, %struct.IO_APIC_reg_00, i32, i16, i64, i32, i32, i32, i32, i32, %struct.audio_buf_info, i32, i32, i32, i32, i8*, %struct.kiobuf*, i32 }
-	%struct.file_lock = type { %struct.file_lock*, %struct.list_head, %struct.list_head, %struct.files_struct*, i32, %struct.__wait_queue_head, %struct.file*, i8, i8, i64, i64, void (%struct.file_lock*)*, void (%struct.file_lock*)*, void (%struct.file_lock*)*, %struct.fasync_struct*, i32, { %struct.nfs_lock_info } }
-	%struct.file_operations = type { %struct.module*, i64 (%struct.file*, i64, i32)*, i32 (%struct.file*, i8*, i32, i64*)*, i32 (%struct.file*, i8*, i32, i64*)*, i32 (%struct.file*, i8*, i32 (i8*, i8*, i32, i64, i32, i32)*)*, i32 (%struct.file*, %struct.poll_table_struct*)*, i32 (%struct.inode*, %struct.file*, i32, i32)*, i32 (%struct.file*, %struct.vm_area_struct*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.file*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.file*, %struct.dentry*, i32)*, i32 (i32, %struct.file*, i32)*, i32 (%struct.file*, i32, %struct.file_lock*)*, i32 (%struct.file*, %struct.iovec*, i32, i64*)*, i32 (%struct.file*, %struct.iovec*, i32, i64*)*, i32 (%struct.file*, %struct.page*, i32, i32, i64*, i32)*, i32 (%struct.file*, i32, i32, i32, i32)* }
-	%struct.file_system_type = type { i8*, i32, %struct.super_block* (%struct.super_block*, i8*, i32)*, %struct.module*, %struct.file_system_type*, %struct.list_head }
-	%struct.files_struct = type { %struct.IO_APIC_reg_00, %typedef.rwlock_t, i32, i32, i32, %struct.file**, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set, %typedef.__kernel_fd_set, [32 x %struct.file*] }
-	%struct.fs_disk_quota = type { i8, i8, i16, i32, i64, i64, i64, i64, i64, i64, i32, i32, i16, i16, i32, i64, i64, i64, i32, i16, i16, [8 x i8] }
-	%struct.fs_quota_stat = type { i8, i16, i8, %struct.e820entry, %struct.e820entry, i32, i32, i32, i32, i16, i16 }
-	%struct.fs_struct = type { %struct.IO_APIC_reg_00, %typedef.rwlock_t, i32, %struct.dentry*, %struct.dentry*, %struct.dentry*, %struct.vfsmount*, %struct.vfsmount*, %struct.vfsmount* }
-	%struct.hh_cache = type { %struct.hh_cache*, %struct.IO_APIC_reg_00, i16, i32, i32 (%struct.sk_buff*)*, %typedef.rwlock_t, [32 x i32] }
-	%struct.i387_fxsave_struct = type { i16, i16, i16, i16, i32, i32, i32, i32, i32, i32, [32 x i32], [32 x i32], [56 x i32] }
-	%struct.iattr = type { i32, i16, i32, i32, i64, i32, i32, i32, i32 }
-	%struct.if_dqblk = type { i64, i64, i64, i64, i64, i64, i64, i64, i32 }
-	%struct.if_dqinfo = type { i64, i64, i32, i32 }
-	%struct.ifmap = type { i32, i32, i16, i8, i8, i8 }
-	%struct.ifreq = type { { [16 x i8] }, %typedef.dvd_authinfo }
-	%struct.inode = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.IO_APIC_reg_00, i16, i16, i16, i32, i32, i16, i64, i32, i32, i32, i32, i32, i32, i32, i16, %struct.semaphore, %struct.rw_semaphore, %struct.semaphore, %struct.inode_operations*, %struct.file_operations*, %struct.super_block*, %struct.__wait_queue_head, %struct.file_lock*, %struct.address_space*, %struct.address_space, [2 x %struct.dquot*], %struct.list_head, %struct.pipe_inode_info*, %struct.block_device*, %struct.char_device*, i32, %struct.dnotify_struct*, i32, i32, i8, %struct.IO_APIC_reg_00, i32, i32, { %struct.ext2_inode_info, %struct.ext3_inode_info, %struct.msdos_inode_info, %struct.iso_inode_info, %struct.nfs_inode_info, %struct._drm_i810_overlay_t, %struct.shmem_inode_info, %struct.proc_inode_info, %struct.socket, %struct.usbdev_inode_info, i8* } }
-	%struct.inode_operations = type { i32 (%struct.inode*, %struct.dentry*, i32)*, %struct.dentry* (%struct.inode*, %struct.dentry*)*, i32 (%struct.dentry*, %struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*, i8*)*, i32 (%struct.inode*, %struct.dentry*, i32)*, i32 (%struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*, i32, i32)*, i32 (%struct.inode*, %struct.dentry*, %struct.inode*, %struct.dentry*)*, i32 (%struct.dentry*, i8*, i32)*, i32 (%struct.dentry*, %struct.nameidata*)*, void (%struct.inode*)*, i32 (%struct.inode*, i32)*, i32 (%struct.dentry*)*, i32 (%struct.dentry*, %struct.iattr*)*, i32 (%struct.dentry*, %struct.iattr*)*, i32 (%struct.dentry*, i8*, i8*, i32, i32)*, i32 (%struct.dentry*, i8*, i8*, i32)*, i32 (%struct.dentry*, i8*, i32)*, i32 (%struct.dentry*, i8*)* }
-	%struct.iovec = type { i8*, i32 }
-	%struct.ip_options = type { i32, i8, i8, i8, i8, i8, i8, i8, i8, [0 x i8] }
-	%struct.isapnp_dma = type { i8, i8, %struct.isapnp_resources*, %struct.isapnp_dma* }
-	%struct.isapnp_irq = type { i16, i8, i8, %struct.isapnp_resources*, %struct.isapnp_irq* }
-	%struct.isapnp_mem = type { i32, i32, i32, i32, i8, i8, %struct.isapnp_resources*, %struct.isapnp_mem* }
-	%struct.isapnp_mem32 = type { [17 x i8], %struct.isapnp_resources*, %struct.isapnp_mem32* }
-	%struct.isapnp_port = type { i16, i16, i8, i8, i8, i8, %struct.isapnp_resources*, %struct.isapnp_port* }
-	%struct.isapnp_resources = type { i16, i16, %struct.isapnp_port*, %struct.isapnp_irq*, %struct.isapnp_dma*, %struct.isapnp_mem*, %struct.isapnp_mem32*, %struct.pci_dev*, %struct.isapnp_resources*, %struct.isapnp_resources* }
-	%struct.iso_inode_info = type { i32, i8, [3 x i8], i32, i32 }
-	%struct.iw_handler_def = type opaque
-	%struct.iw_statistics = type opaque
-	%struct.k_sigaction = type { %struct.sigaction }
-	%struct.kern_ipc_perm = type { i32, i32, i32, i32, i32, i16, i32 }
-	%struct.kiobuf = type { i32, i32, i32, i32, i32, %struct.page**, %struct.buffer_head**, i32*, %struct.IO_APIC_reg_00, i32, void (%struct.kiobuf*)*, %struct.__wait_queue_head }
-	%struct.kmem_cache_s = type { %struct.list_head, %struct.list_head, %struct.list_head, i32, i32, i32, %struct.IO_APIC_reg_00, i32, i32, i32, i32, i32, i32, %struct.kmem_cache_s*, i32, i32, void (i8*, %struct.kmem_cache_s*, i32)*, void (i8*, %struct.kmem_cache_s*, i32)*, i32, [20 x i8], %struct.list_head, [32 x %struct._drm_i810_overlay_t*], i32 }
-	%struct.linux_binfmt = type { %struct.linux_binfmt*, %struct.module*, i32 (%struct.linux_binprm*, %struct.pt_regs*)*, i32 (%struct.file*)*, i32 (i32, %struct.pt_regs*, %struct.file*)*, i32, i32 (%struct.linux_binprm*, i8*)* }
-	%struct.linux_binprm = type { [128 x i8], [32 x %struct.page*], i32, i32, %struct.file*, i32, i32, i32, i32, i32, i32, i32, i8*, i32, i32 }
-	%struct.list_head = type { %struct.list_head*, %struct.list_head* }
-	%struct.llva_sigcontext = type { %typedef.llva_icontext_t, %typedef.llva_fp_state_t, i32, i32, i32, i32, [1 x i32], i8* }
-	%struct.map_segment = type opaque
-	%struct.mem_dqblk = type { i32, i32, i64, i32, i32, i32, i32, i32 }
-	%struct.mem_dqinfo = type { %struct.quota_format_type*, i32, i32, i32, { %struct.ViceFid } }
-	%struct.mm_struct = type { %struct.vm_area_struct*, %struct.rb_root_s, %struct.vm_area_struct*, %struct.IO_APIC_reg_00*, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32, %struct.rw_semaphore, %struct.IO_APIC_reg_00, %struct.list_head, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.iovec }
-	%struct.module = type { i32, %struct.module*, i8*, i32, %struct.IO_APIC_reg_00, i32, i32, i32, %struct.drm_ctx_priv_map*, %struct.module_ref*, %struct.module_ref*, i32 ()*, void ()*, %struct._drm_i810_overlay_t*, %struct._drm_i810_overlay_t*, %struct.module_persist*, %struct.module_persist*, i32 ()*, i32, i8*, i8*, i8*, i8*, i8* }
-	%struct.module_persist = type opaque
-	%struct.module_ref = type { %struct.module*, %struct.module*, %struct.module_ref* }
-	%struct.msdos_inode_info = type { i32, i32, i32, i32, i32, i32, %struct.inode*, %struct.list_head }
-	%struct.msghdr = type { i8*, i32, %struct.iovec*, i32, i8*, i32, i32 }
-	%struct.msq_setbuf = type { i32, i32, i32, i16 }
-	%struct.nameidata = type { %struct.dentry*, %struct.vfsmount*, %struct.qstr, i32, i32 }
-	%struct.namespace = type { %struct.IO_APIC_reg_00, %struct.vfsmount*, %struct.list_head, %struct.rw_semaphore }
-	%struct.neigh_ops = type { i32, void (%struct.neighbour*)*, void (%struct.neighbour*, %struct.sk_buff*)*, void (%struct.neighbour*, %struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)* }
-	%struct.neigh_parms = type { %struct.neigh_parms*, i32 (%struct.neighbour*)*, %struct.neigh_table*, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.neigh_table = type { %struct.neigh_table*, i32, i32, i32, i32 (i8*, %struct.net_device*)*, i32 (%struct.neighbour*)*, i32 (%struct.pneigh_entry*)*, void (%struct.pneigh_entry*)*, void (%struct.sk_buff*)*, i8*, %struct.neigh_parms, i32, i32, i32, i32, i32, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, i32, %typedef.rwlock_t, i32, %struct.neigh_parms*, %struct.kmem_cache_s*, %struct.tasklet_struct, %struct.audio_buf_info, [32 x %struct.neighbour*], [16 x %struct.pneigh_entry*] }
-	%struct.neighbour = type { %struct.neighbour*, %struct.neigh_table*, %struct.neigh_parms*, %struct.net_device*, i32, i32, i32, i8, i8, i8, i8, %struct.IO_APIC_reg_00, %typedef.rwlock_t, [8 x i8], %struct.hh_cache*, %struct.IO_APIC_reg_00, i32 (%struct.sk_buff*)*, %struct.sk_buff_head, %struct.timer_list, %struct.neigh_ops*, [0 x i8] }
-	%struct.net_bridge_port = type opaque
-	%struct.net_device = type { [16 x i8], i32, i32, i32, i32, i32, i32, i8, i8, i32, %struct.net_device*, i32 (%struct.net_device*)*, %struct.net_device*, i32, i32, %struct.net_device_stats* (%struct.net_device*)*, %struct.iw_statistics* (%struct.net_device*)*, %struct.iw_handler_def*, i32, i32, i16, i16, i16, i16, i32, i16, i16, i8*, %struct.net_device*, [8 x i8], [8 x i8], i8, %struct.dev_mc_list*, i32, i32, i32, i32, %struct.timer_list, i8*, i8*, i8*, i8*, i8*, %struct.list_head, i32, i32, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, i32, %struct.IO_APIC_reg_00, i32, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32, i32, void (%struct.net_device*)*, void (%struct.net_device*)*, i32 (%struct.net_device*)*, i32 (%struct.net_device*)*, i32 (%struct.sk_buff*, %struct.net_device*)*, i32 (%struct.net_device*, i32*)*, i32 (%struct.sk_buff*, %struct.net_device*, i16, i8*, i8*, i32)*, i32 (%struct.sk_buff*)*, void (%struct.net_device*)*, i32 (%struct.net_device*, i8*)*, i32 (%struct.net_device*, %struct.ifreq*, i32)*, i32 (%struct.net_device*, %struct.ifmap*)*, i32 (%struct.neighbour*, %struct.hh_cache*)*, void (%struct.hh_cache*, %struct.net_device*, i8*)*, i32 (%struct.net_device*, i32)*, void (%struct.net_device*)*, void (%struct.net_device*, %struct.vlan_group*)*, void (%struct.net_device*, i16)*, void (%struct.net_device*, i16)*, i32 (%struct.sk_buff*, i8*)*, i32 (%struct.net_device*, %struct.neigh_parms*)*, i32 (%struct.net_device*, %struct.dst_entry*)*, %struct.module*, %struct.net_bridge_port* }
-	%struct.net_device_stats = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.nf_conntrack = type { %struct.IO_APIC_reg_00, void (%struct.nf_conntrack*)* }
-	%struct.nf_ct_info = type { %struct.nf_conntrack* }
-	%struct.nfs_fh = type { i16, [64 x i8] }
-	%struct.nfs_inode_info = type { i64, %struct.nfs_fh, i16, i32, i64, i64, i64, i32, i32, i32, [2 x i32], %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, i32, i32, i32, %struct.rpc_cred* }
-	%struct.nfs_lock_info = type { i32, i32, %struct.nlm_host* }
-	%struct.nlm_host = type opaque
-	%struct.open_request = type { %struct.open_request*, i32, i32, i16, i16, i8, i8, i16, i32, i32, i32, i32, %struct.or_calltable*, %struct.sock*, { %struct.tcp_v4_open_req } }
-	%struct.or_calltable = type { i32, i32 (%struct.sock*, %struct.open_request*, %struct.dst_entry*)*, void (%struct.sk_buff*, %struct.open_request*)*, void (%struct.open_request*)*, void (%struct.sk_buff*)* }
-	%struct.page = type { %struct.list_head, %struct.address_space*, i32, %struct.page*, %struct.IO_APIC_reg_00, i32, %struct.list_head, %struct.page**, %struct.buffer_head* }
-	%struct.pci_bus = type { %struct.list_head, %struct.pci_bus*, %struct.list_head, %struct.list_head, %struct.pci_dev*, [4 x %struct.resource*], %struct.pci_ops*, i8*, %struct.proc_dir_entry*, i8, i8, i8, i8, [48 x i8], i16, i16, i32, i8, i8, i8, i8 }
-	%struct.pci_dev = type { %struct.list_head, %struct.list_head, %struct.pci_bus*, %struct.pci_bus*, i8*, %struct.proc_dir_entry*, i32, i16, i16, i16, i16, i32, i8, i8, %struct.pci_driver*, i8*, i64, i32, [4 x i16], [4 x i16], i32, [12 x %struct.resource], [2 x %struct.resource], [2 x %struct.resource], [90 x i8], [8 x i8], i32, i32, i16, i16, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*)* }
-	%struct.pci_device_id = type { i32, i32, i32, i32, i32, i32, i32 }
-	%struct.pci_driver = type { %struct.list_head, i8*, %struct.pci_device_id*, i32 (%struct.pci_dev*, %struct.pci_device_id*)*, void (%struct.pci_dev*)*, i32 (%struct.pci_dev*, i32)*, i32 (%struct.pci_dev*, i32)*, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*, i32, i32)* }
-	%struct.pci_ops = type { i32 (%struct.pci_dev*, i32, i8*)*, i32 (%struct.pci_dev*, i32, i16*)*, i32 (%struct.pci_dev*, i32, i32*)*, i32 (%struct.pci_dev*, i32, i8)*, i32 (%struct.pci_dev*, i32, i16)*, i32 (%struct.pci_dev*, i32, i32)* }
-	%struct.pipe_inode_info = type { %struct.__wait_queue_head, i8*, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.pneigh_entry = type { %struct.pneigh_entry*, %struct.net_device*, [0 x i8] }
-	%struct.poll_table_entry = type { %struct.file*, %struct.__wait_queue, %struct.__wait_queue_head* }
-	%struct.poll_table_page = type { %struct.poll_table_page*, %struct.poll_table_entry*, [0 x %struct.poll_table_entry] }
-	%struct.poll_table_struct = type { i32, %struct.poll_table_page* }
-	%struct.proc_dir_entry = type { i16, i16, i8*, i16, i16, i32, i32, i32, %struct.inode_operations*, %struct.file_operations*, i32 (i8*, i8**, i32, i32)*, %struct.module*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, i8*, i32 (i8*, i8**, i32, i32, i32*, i8*)*, i32 (%struct.file*, i8*, i32, i8*)*, %struct.IO_APIC_reg_00, i32, i16 }
-	%struct.proc_inode_info = type { %struct.task_struct*, i32, { i32 (%struct.task_struct*, i8*)* }, %struct.file* }
-	%struct.proto = type { void (%struct.sock*, i32)*, i32 (%struct.sock*, %struct.sockaddr*, i32)*, i32 (%struct.sock*, i32)*, %struct.sock* (%struct.sock*, i32, i32*)*, i32 (%struct.sock*, i32, i32)*, i32 (%struct.sock*)*, i32 (%struct.sock*)*, void (%struct.sock*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32*)*, i32 (%struct.sock*, %struct.msghdr*, i32)*, i32 (%struct.sock*, %struct.msghdr*, i32, i32, i32, i32*)*, i32 (%struct.sock*, %struct.sockaddr*, i32)*, i32 (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)*, void (%struct.sock*)*, i32 (%struct.sock*, i16)*, [32 x i8], [32 x { i32, [28 x i8] }] }
-	%struct.proto_ops = type { i32, i32 (%struct.socket*)*, i32 (%struct.socket*, %struct.sockaddr*, i32)*, i32 (%struct.socket*, %struct.sockaddr*, i32, i32)*, i32 (%struct.socket*, %struct.socket*)*, i32 (%struct.socket*, %struct.socket*, i32)*, i32 (%struct.socket*, %struct.sockaddr*, i32*, i32)*, i32 (%struct.file*, %struct.socket*, %struct.poll_table_struct*)*, i32 (%struct.socket*, i32, i32)*, i32 (%struct.socket*, i32)*, i32 (%struct.socket*, i32)*, i32 (%struct.socket*, i32, i32, i8*, i32)*, i32 (%struct.socket*, i32, i32, i8*, i32*)*, i32 (%struct.socket*, %struct.msghdr*, i32, %struct.scm_cookie*)*, i32 (%struct.socket*, %struct.msghdr*, i32, i32, %struct.scm_cookie*)*, i32 (%struct.file*, %struct.socket*, %struct.vm_area_struct*)*, i32 (%struct.socket*, %struct.page*, i32, i32, i32)* }
-	%struct.pt_regs = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.qdisc_walker = type { i32, i32, i32, i32 (%struct.Qdisc*, i32, %struct.qdisc_walker*)* }
-	%struct.qstr = type { i8*, i32, i32 }
-	%struct.quota_format_ops = type { i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.dquot*)*, i32 (%struct.dquot*)* }
-	%struct.quota_format_type = type { i32, %struct.quota_format_ops*, %struct.module*, %struct.quota_format_type* }
-	%struct.quota_info = type { i32, %struct.semaphore, %struct.semaphore, [2 x %struct.file*], [2 x %struct.mem_dqinfo], [2 x %struct.quota_format_ops*] }
-	%struct.quotactl_ops = type { i32 (%struct.super_block*, i32, i32, i8*)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32, %struct.if_dqinfo*)*, i32 (%struct.super_block*, i32, %struct.if_dqinfo*)*, i32 (%struct.super_block*, i32, i32, %struct.if_dqblk*)*, i32 (%struct.super_block*, i32, i32, %struct.if_dqblk*)*, i32 (%struct.super_block*, %struct.fs_quota_stat*)*, i32 (%struct.super_block*, i32, i32)*, i32 (%struct.super_block*, i32, i32, %struct.fs_disk_quota*)*, i32 (%struct.super_block*, i32, i32, %struct.fs_disk_quota*)* }
-	%struct.rb_node_s = type { %struct.rb_node_s*, i32, %struct.rb_node_s*, %struct.rb_node_s* }
-	%struct.rb_root_s = type { %struct.rb_node_s* }
-	%struct.resource = type { i8*, i32, i32, i32, %struct.resource*, %struct.resource*, %struct.resource* }
-	%struct.revectored_struct = type { [8 x i32] }
-	%struct.rpc_auth = type { [8 x %struct.rpc_cred*], i32, i32, i32, i32, i32, %struct.rpc_authops* }
-	%struct.rpc_authops = type { i32, i8*, %struct.rpc_auth* (%struct.rpc_clnt*)*, void (%struct.rpc_auth*)*, %struct.rpc_cred* (i32)* }
-	%struct.rpc_clnt = type { %struct.IO_APIC_reg_00, %struct.rpc_xprt*, %struct.rpc_procinfo*, i32, i8*, i8*, %struct.rpc_auth*, %struct.rpc_stat*, i32, i32, i32, %struct.rpc_rtt, %struct.msq_setbuf, %struct.rpc_wait_queue, i32, [32 x i8] }
-	%struct.rpc_cred = type { %struct.rpc_cred*, %struct.rpc_auth*, %struct.rpc_credops*, i32, %struct.IO_APIC_reg_00, i16, i32, i32 }
-	%struct.rpc_credops = type { void (%struct.rpc_cred*)*, i32 (%struct.rpc_cred*, i32)*, i32* (%struct.rpc_task*, i32*, i32)*, i32 (%struct.rpc_task*)*, i32* (%struct.rpc_task*, i32*)* }
-	%struct.rpc_message = type { i32, i8*, i8*, %struct.rpc_cred* }
-	%struct.rpc_procinfo = type { i8*, i32 (i8*, i32*, i8*)*, i32 (i8*, i32*, i8*)*, i32, i32, i32 }
-	%struct.rpc_program = type { i8*, i32, i32, %struct.rpc_version**, %struct.rpc_stat* }
-	%struct.rpc_rqst = type { %struct.rpc_xprt*, %struct.rpc_timeout, %struct.xdr_buf, %struct.xdr_buf, %struct.rpc_task*, i32, %struct.rpc_rqst*, i32, i32, %struct.list_head, %struct.xdr_buf, [2 x i32], i32, i32, i32, i32 }
-	%struct.rpc_rtt = type { i32, [5 x i32], [5 x i32], %struct.IO_APIC_reg_00 }
-	%struct.rpc_stat = type { %struct.rpc_program*, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.rpc_task = type { %struct.list_head, i32, %struct.list_head, %struct.rpc_clnt*, %struct.rpc_rqst*, i32, %struct.rpc_wait_queue*, %struct.rpc_message, i32*, i8, i8, i8, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, i8*, %struct.timer_list, %struct.__wait_queue_head, i32, i16, i8, i32, i16 }
-	%struct.rpc_timeout = type { i32, i32, i32, i32, i16, i8 }
-	%struct.rpc_version = type { i32, i32, %struct.rpc_procinfo* }
-	%struct.rpc_wait_queue = type { %struct.list_head, i8* }
-	%struct.rpc_xprt = type { %struct.socket*, %struct.sock*, %struct.rpc_timeout, %struct.sockaddr_in, i32, i32, i32, i32, i32, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_rqst*, [16 x %struct.rpc_rqst], i32, i8, i32, i32, i32, i32, i32, i32, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.rpc_task*, %struct.list_head, void (%struct.sock*, i32)*, void (%struct.sock*)*, void (%struct.sock*)*, %struct.__wait_queue_head }
-	%struct.rw_semaphore = type { i32, %struct.IO_APIC_reg_00, %struct.list_head }
-	%struct.scm_cookie = type { %struct.ViceFid, %struct.scm_fp_list*, i32 }
-	%struct.scm_fp_list = type { i32, [255 x %struct.file*] }
-	%struct.sem_array = type { %struct.kern_ipc_perm, i32, i32, %struct._drm_i810_overlay_t*, %struct.sem_queue*, %struct.sem_queue**, %struct.sem_undo*, i32 }
-	%struct.sem_queue = type { %struct.sem_queue*, %struct.sem_queue**, %struct.task_struct*, %struct.sem_undo*, i32, i32, %struct.sem_array*, i32, %struct.sembuf*, i32, i32 }
-	%struct.sem_undo = type { %struct.sem_undo*, %struct.sem_undo*, i32, i16* }
-	%struct.semaphore = type { %struct.IO_APIC_reg_00, i32, %struct.__wait_queue_head }
-	%struct.sembuf = type { i16, i16, i16 }
-	%struct.seq_file = type { i8*, i32, i32, i32, i64, %struct.semaphore, %struct.seq_operations*, i8* }
-	%struct.seq_operations = type { i8* (%struct.seq_file*, i64*)*, void (%struct.seq_file*, i8*)*, i8* (%struct.seq_file*, i8*, i64*)*, i32 (%struct.seq_file*, i8*)* }
-	%struct.shmem_inode_info = type { %struct.IO_APIC_reg_00, i32, [16 x %struct.IO_APIC_reg_00], i8**, i32, i32, %struct.list_head, %struct.inode* }
-	%struct.sigaction = type { void (i32)*, i32, void ()*, %typedef.__kernel_fsid_t }
-	%struct.siginfo = type { i32, i32, i32, { [29 x i32] } }
-	%struct.signal_struct = type { %struct.IO_APIC_reg_00, [64 x %struct.k_sigaction], %struct.IO_APIC_reg_00 }
-	%struct.sigpending = type { %struct.sigqueue*, %struct.sigqueue**, %typedef.__kernel_fsid_t }
-	%struct.sigqueue = type { %struct.sigqueue*, %struct.siginfo }
-	%struct.sk_buff = type { %struct.sk_buff*, %struct.sk_buff*, %struct.sk_buff_head*, %struct.sock*, %struct._drm_i810_overlay_t, %struct.net_device*, %struct.net_device*, { i8* }, { i8* }, { i8* }, %struct.dst_entry*, [48 x i8], i32, i32, i32, i8, i8, i8, i8, i32, %struct.IO_APIC_reg_00, i16, i16, i32, i8*, i8*, i8*, i8*, void (%struct.sk_buff*)*, i32, i32, %struct.nf_ct_info*, i32 }
-	%struct.sk_buff_head = type { %struct.sk_buff*, %struct.sk_buff*, i32, %struct.IO_APIC_reg_00 }
-	%struct.sock = type { i32, i32, i16, i16, i32, %struct.sock*, %struct.sock**, %struct.sock*, %struct.sock**, i8, i8, i16, i16, i8, i8, %struct.IO_APIC_reg_00, %struct.semaphore, i32, %struct.__wait_queue_head*, %struct.dst_entry*, %typedef.rwlock_t, %struct.IO_APIC_reg_00, %struct.sk_buff_head, %struct.IO_APIC_reg_00, %struct.sk_buff_head, %struct.IO_APIC_reg_00, i32, i32, i32, i32, i32, %struct.sock*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, %struct.sock*, { %struct.sk_buff*, %struct.sk_buff* }, %typedef.rwlock_t, %struct.sk_buff_head, %struct.proto*, { %struct.tcp_opt }, i32, i32, i16, i16, i32, i16, i8, i8, %struct.ViceFid, i32, i32, i32, { %struct.unix_opt }, %struct.timer_list, %struct._drm_i810_overlay_t, %struct.socket*, i8*, void (%struct.sock*)*, void (%struct.sock*, i32)*, void (%struct.sock*)*, void (%struct.sock*)*, i32 (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)* }
-	%struct.sockaddr = type { i16, [14 x i8] }
-	%struct.sockaddr_in = type { i16, i16, %struct.IO_APIC_reg_00, [8 x i8] }
-	%struct.sockaddr_un = type { i16, [108 x i8] }
-	%struct.socket = type { i32, i32, %struct.proto_ops*, %struct.inode*, %struct.fasync_struct*, %struct.file*, %struct.sock*, %struct.__wait_queue_head, i16, i8 }
-	%struct.statfs = type { i32, i32, i32, i32, i32, i32, i32, %typedef.__kernel_fsid_t, i32, [6 x i32] }
-	%struct.super_block = type { %struct.list_head, i16, i32, i8, i8, i64, %struct.file_system_type*, %struct.super_operations*, %struct.dquot_operations*, %struct.quotactl_ops*, i32, i32, %struct.dentry*, %struct.rw_semaphore, %struct.semaphore, i32, %struct.IO_APIC_reg_00, %struct.list_head, %struct.list_head, %struct.list_head, %struct.block_device*, %struct.list_head, %struct.quota_info, { [115 x i32] }, %struct.semaphore, %struct.semaphore }
-	%struct.super_operations = type { %struct.inode* (%struct.super_block*)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.inode*, i8*)*, void (%struct.inode*)*, void (%struct.inode*, i32)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, i32 (%struct.super_block*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, i32 (%struct.super_block*, %struct.statfs*)*, i32 (%struct.super_block*, i32*, i8*)*, void (%struct.inode*)*, void (%struct.super_block*)*, %struct.dentry* (%struct.super_block*, i32*, i32, i32, i32)*, i32 (%struct.dentry*, i32*, i32*, i32)*, i32 (%struct.seq_file*, %struct.vfsmount*)* }
-	%struct.task_struct = type { i32, i32, i32, %struct.IO_APIC_reg_00, %struct.exec_domain*, i32, i32, i32, i32, i32, i32, %struct.mm_struct*, i32, i32, i32, %struct.list_head, i32, %struct.task_struct*, %struct.task_struct*, %struct.mm_struct*, %struct.list_head, i32, i32, %struct.linux_binfmt*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.list_head, %struct.task_struct*, %struct.task_struct**, %struct.__wait_queue_head, %struct.completion*, i32, i32, i32, i32, i32, i32, i32, %struct.timer_list, %struct.audio_buf_info, i32, [32 x i32], [32 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [32 x i32], i32, i32, i32, i32, %struct.user_struct*, [11 x %struct._drm_i810_overlay_t], i16, [16 x i8], i32, i32, %struct.tty_struct*, i32, %struct.sem_undo*, %struct.sem_queue*, %struct.thread_struct, %struct.fs_struct*, %struct.files_struct*, %struct.namespace*, %struct.IO_APIC_reg_00, %struct.signal_struct*, %typedef.__kernel_fsid_t, %struct.sigpending, i32, i32, i32 (i8*)*, i8*, %typedef.__kernel_fsid_t*, i32, i32, %struct.IO_APIC_reg_00, i8*, %struct.llva_sigcontext*, i32, %struct.task_struct*, i32, %typedef.llva_icontext_t, %typedef.llva_fp_state_t, i32*, i32, i8* }
-	%struct.tasklet_struct = type { %struct.tasklet_struct*, i32, %struct.IO_APIC_reg_00, void (i32)*, i32 }
-	%struct.tc_stats = type { i64, i32, i32, i32, i32, i32, i32, i32, %struct.IO_APIC_reg_00* }
-	%struct.tcf_proto = type { %struct.tcf_proto*, i8*, i32 (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, i32, i32, i32, %struct.Qdisc*, i8*, %struct.tcf_proto_ops* }
-	%struct.tcf_proto_ops = type { %struct.tcf_proto_ops*, [16 x i8], i32 (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, i32 (%struct.tcf_proto*)*, void (%struct.tcf_proto*)*, i32 (%struct.tcf_proto*, i32)*, void (%struct.tcf_proto*, i32)*, i32 (%struct.tcf_proto*, i32, i32, %struct._agp_version**, i32*)*, i32 (%struct.tcf_proto*, i32)*, void (%struct.tcf_proto*, %struct.tcf_walker*)*, i32 (%struct.tcf_proto*, i32, %struct.sk_buff*, %struct.tcmsg*)* }
-	%struct.tcf_walker = type { i32, i32, i32, i32 (%struct.tcf_proto*, i32, %struct.tcf_walker*)* }
-	%struct.tcmsg = type { i8, i8, i16, i32, i32, i32, i32 }
-	%struct.tcp_func = type { i32 (%struct.sk_buff*)*, void (%struct.sock*, %struct.tcphdr*, i32, %struct.sk_buff*)*, i32 (%struct.sock*)*, i32 (%struct.sock*, %struct.sk_buff*)*, %struct.sock* (%struct.sock*, %struct.sk_buff*, %struct.open_request*, %struct.dst_entry*)*, i32 (%struct.sock*)*, i16, i32 (%struct.sock*, i32, i32, i8*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32*)*, void (%struct.sock*, %struct.sockaddr*)*, i32 }
-	%struct.tcp_listen_opt = type { i8, i32, i32, i32, i32, [512 x %struct.open_request*] }
-	%struct.tcp_opt = type { i32, i32, i32, i32, i32, i32, i32, i32, { i8, i8, i8, i8, i32, i32, i32, i16, i16 }, { %struct.sk_buff_head, %struct.task_struct*, %struct.iovec*, i32, i32 }, i32, i32, i32, i32, i16, i16, i16, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32, i32, i32, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, %struct.tcp_func*, %struct.sk_buff*, %struct.page*, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i16, i8, i8, [1 x %struct._drm_i810_overlay_t], [4 x %struct._drm_i810_overlay_t], i32, i32, i8, i8, i16, i8, i8, i16, i32, i32, i32, i32, i32, i32, i32, i32, i16, i8, i8, i32, %typedef.rwlock_t, %struct.tcp_listen_opt*, %struct.open_request*, %struct.open_request*, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.tcp_v4_open_req = type { i32, i32, %struct.ip_options* }
-	%struct.tcphdr = type { i16, i16, i32, i32, i16, i16, i16, i16 }
-	%struct.termios = type { i32, i32, i32, i32, i8, [19 x i8] }
-	%struct.thread_struct = type { i32, i32, i32, i32, i32, [8 x i32], i32, i32, i32, %union.i387_union, %struct.vm86_struct*, i32, i32, i32, i32, i32, [33 x i32] }
-	%struct.timer_list = type { %struct.list_head, i32, i32, void (i32)* }
-	%struct.tq_struct = type { %struct.list_head, i32, void (i8*)*, i8* }
-	%struct.tty_driver = type { i32, i8*, i8*, i32, i16, i16, i16, i16, i16, %struct.termios, i32, i32*, %struct.proc_dir_entry*, %struct.tty_driver*, %struct.tty_struct**, %struct.termios**, %struct.termios**, i8*, i32 (%struct.tty_struct*, %struct.file*)*, void (%struct.tty_struct*, %struct.file*)*, i32 (%struct.tty_struct*, i32, i8*, i32)*, void (%struct.tty_struct*, i8)*, void (%struct.tty_struct*)*, i32 (%struct.tty_struct*)*, i32 (%struct.tty_struct*)*, i32 (%struct.tty_struct*, %struct.file*, i32, i32)*, void (%struct.tty_struct*, %struct.termios*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*, i32)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*, i32)*, void (%struct.tty_struct*, i8)*, i32 (i8*, i8**, i32, i32, i32*, i8*)*, i32 (%struct.file*, i8*, i32, i8*)*, %struct.tty_driver*, %struct.tty_driver* }
-	%struct.tty_flip_buffer = type { %struct.tq_struct, %struct.semaphore, i8*, i8*, i32, i32, [1024 x i8], [1024 x i8], [4 x i8] }
-	%struct.tty_ldisc = type { i32, i8*, i32, i32, i32 (%struct.tty_struct*)*, void (%struct.tty_struct*)*, void (%struct.tty_struct*)*, i32 (%struct.tty_struct*)*, i32 (%struct.tty_struct*, %struct.file*, i8*, i32)*, i32 (%struct.tty_struct*, %struct.file*, i8*, i32)*, i32 (%struct.tty_struct*, %struct.file*, i32, i32)*, void (%struct.tty_struct*, %struct.termios*)*, i32 (%struct.tty_struct*, %struct.file*, %struct.poll_table_struct*)*, void (%struct.tty_struct*, i8*, i8*, i32)*, i32 (%struct.tty_struct*)*, void (%struct.tty_struct*)* }
-	%struct.tty_struct = type { i32, %struct.tty_driver, %struct.tty_ldisc, %struct.termios*, %struct.termios*, i32, i32, i16, i32, i32, %struct.drm_clip_rect, i8, i8, %struct.tty_struct*, %struct.fasync_struct*, %struct.tty_flip_buffer, i32, i32, %struct.__wait_queue_head, %struct.__wait_queue_head, %struct.tq_struct, i8*, i8*, %struct.list_head, i32, i8, i16, i32, i32, [8 x i32], i8*, i32, i32, i32, [128 x i32], i32, i32, i32, %struct.semaphore, %struct.semaphore, %struct.IO_APIC_reg_00, %struct.tq_struct }
-	%struct.unix_address = type { %struct.IO_APIC_reg_00, i32, i32, [0 x %struct.sockaddr_un] }
-	%struct.unix_opt = type { %struct.unix_address*, %struct.dentry*, %struct.vfsmount*, %struct.semaphore, %struct.sock*, %struct.sock**, %struct.sock*, %struct.IO_APIC_reg_00, %typedef.rwlock_t, %struct.__wait_queue_head }
-	%struct.usb_bus = type opaque
-	%struct.usbdev_inode_info = type { %struct.list_head, %struct.list_head, { %struct.usb_bus* } }
-	%struct.user_struct = type { %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.user_struct*, %struct.user_struct**, i32 }
-	%struct.vfsmount = type { %struct.list_head, %struct.vfsmount*, %struct.dentry*, %struct.dentry*, %struct.super_block*, %struct.list_head, %struct.list_head, %struct.IO_APIC_reg_00, i32, i8*, %struct.list_head }
-	%struct.vlan_group = type opaque
-	%struct.vm86_regs = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
-	%struct.vm86_struct = type { %struct.vm86_regs, i32, i32, i32, %struct.revectored_struct, %struct.revectored_struct }
-	%struct.vm_area_struct = type { %struct.mm_struct*, i32, i32, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, i32, %struct.rb_node_s, %struct.vm_area_struct*, %struct.vm_area_struct**, %struct.vm_operations_struct*, i32, %struct.file*, i32, i8* }
-	%struct.vm_operations_struct = type { void (%struct.vm_area_struct*)*, void (%struct.vm_area_struct*)*, %struct.page* (%struct.vm_area_struct*, i32, i32)* }
-	%struct.xdr_buf = type { [1 x %struct.iovec], [1 x %struct.iovec], %struct.page**, i32, i32, i32 }
-	%typedef.__kernel_fd_set = type { [32 x i32] }
-	%typedef.__kernel_fsid_t = type { [2 x i32] }
-	%typedef.dvd_authinfo = type { [2 x i64] }
-	%typedef.llva_fp_state_t = type { [7 x i32], [20 x i32] }
-	%typedef.llva_icontext_t = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32*, i32 }
-	%typedef.rwlock_t = type { %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32 }
-	%typedef.sigset_t = type { [2 x i32] }
-	%typedef.socket_lock_t = type { %struct.IO_APIC_reg_00, i32, %struct.__wait_queue_head }
-	%union.i387_union = type { %struct.i387_fxsave_struct }
-
-define void @rs_init() {
-entry:
-	br i1 false, label %loopentry.0.no_exit.0_crit_edge, label %loopentry.0.loopexit.0_crit_edge
-
-loopentry.0:		; No predecessors!
-	unreachable
-
-loopentry.0.loopexit.0_crit_edge:		; preds = %entry
-	br label %loopexit.0
-
-loopentry.0.no_exit.0_crit_edge:		; preds = %entry
-	br label %no_exit.0
-
-no_exit.0:		; preds = %no_exit.0.no_exit.0_crit_edge, %loopentry.0.no_exit.0_crit_edge
-	br i1 false, label %no_exit.0.no_exit.0_crit_edge, label %no_exit.0.loopexit.0_crit_edge
-
-no_exit.0.loopexit.0_crit_edge:		; preds = %no_exit.0
-	br label %loopexit.0
-
-no_exit.0.no_exit.0_crit_edge:		; preds = %no_exit.0
-	br label %no_exit.0
-
-loopexit.0:		; preds = %no_exit.0.loopexit.0_crit_edge, %loopentry.0.loopexit.0_crit_edge
-	br i1 false, label %then.0, label %loopexit.0.endif.0_crit_edge
-
-loopexit.0.endif.0_crit_edge:		; preds = %loopexit.0
-	br label %endif.0
-
-then.0:		; preds = %loopexit.0
-	br i1 false, label %loopentry.1.no_exit.1_crit_edge, label %loopentry.1.loopexit.1_crit_edge
-
-loopentry.1:		; No predecessors!
-	unreachable
-
-loopentry.1.loopexit.1_crit_edge:		; preds = %then.0
-	br label %loopexit.1
-
-loopentry.1.no_exit.1_crit_edge:		; preds = %then.0
-	br label %no_exit.1
-
-no_exit.1:		; preds = %no_exit.1.backedge, %loopentry.1.no_exit.1_crit_edge
-	br i1 false, label %shortcirc_next.0, label %no_exit.1.shortcirc_done.0_crit_edge
-
-no_exit.1.shortcirc_done.0_crit_edge:		; preds = %no_exit.1
-	br label %shortcirc_done.0
-
-shortcirc_next.0:		; preds = %no_exit.1
-	br label %shortcirc_done.0
-
-shortcirc_done.0:		; preds = %shortcirc_next.0, %no_exit.1.shortcirc_done.0_crit_edge
-	br i1 false, label %then.1, label %endif.1
-
-then.1:		; preds = %shortcirc_done.0
-	br i1 false, label %then.1.no_exit.1_crit_edge, label %then.1.loopexit.1_crit_edge
-
-then.1.loopexit.1_crit_edge:		; preds = %then.1
-	br label %loopexit.1
-
-then.1.no_exit.1_crit_edge:		; preds = %then.1
-	br label %no_exit.1.backedge
-
-no_exit.1.backedge:		; preds = %endif.1.no_exit.1_crit_edge, %then.1.no_exit.1_crit_edge
-	br label %no_exit.1
-
-endif.1:		; preds = %shortcirc_done.0
-	br i1 false, label %endif.1.no_exit.1_crit_edge, label %endif.1.loopexit.1_crit_edge
-
-endif.1.loopexit.1_crit_edge:		; preds = %endif.1
-	br label %loopexit.1
-
-endif.1.no_exit.1_crit_edge:		; preds = %endif.1
-	br label %no_exit.1.backedge
-
-loopexit.1:		; preds = %endif.1.loopexit.1_crit_edge, %then.1.loopexit.1_crit_edge, %loopentry.1.loopexit.1_crit_edge
-	br label %endif.0
-
-endif.0:		; preds = %loopexit.1, %loopexit.0.endif.0_crit_edge
-	br i1 false, label %then.2, label %endif.0.endif.2_crit_edge
-
-endif.0.endif.2_crit_edge:		; preds = %endif.0
-	br label %endif.2
-
-then.2:		; preds = %endif.0
-	unreachable
-
-dead_block.0:		; No predecessors!
-	br label %endif.2
-
-endif.2:		; preds = %dead_block.0, %endif.0.endif.2_crit_edge
-	br i1 false, label %then.3, label %endif.2.endif.3_crit_edge
-
-endif.2.endif.3_crit_edge:		; preds = %endif.2
-	br label %endif.3
-
-then.3:		; preds = %endif.2
-	unreachable
-
-dead_block.1:		; No predecessors!
-	br label %endif.3
-
-endif.3:		; preds = %dead_block.1, %endif.2.endif.3_crit_edge
-	br label %loopentry.2
-
-loopentry.2:		; preds = %endif.6, %endif.3
-	br i1 false, label %loopentry.2.no_exit.2_crit_edge, label %loopentry.2.loopexit.2_crit_edge
-
-loopentry.2.loopexit.2_crit_edge:		; preds = %loopentry.2
-	br label %loopexit.2
-
-loopentry.2.no_exit.2_crit_edge:		; preds = %loopentry.2
-	br label %no_exit.2
-
-no_exit.2:		; preds = %then.5.no_exit.2_crit_edge, %loopentry.2.no_exit.2_crit_edge
-	br i1 false, label %then.4, label %no_exit.2.endif.4_crit_edge
-
-no_exit.2.endif.4_crit_edge:		; preds = %no_exit.2
-	br label %endif.4
-
-then.4:		; preds = %no_exit.2
-	br label %endif.4
-
-endif.4:		; preds = %then.4, %no_exit.2.endif.4_crit_edge
-	br i1 false, label %shortcirc_next.1, label %endif.4.shortcirc_done.1_crit_edge
-
-endif.4.shortcirc_done.1_crit_edge:		; preds = %endif.4
-	br label %shortcirc_done.1
-
-shortcirc_next.1:		; preds = %endif.4
-	br i1 false, label %then.i21, label %endif.i
-
-then.i21:		; preds = %shortcirc_next.1
-	br label %then.5
-
-then.i21.endif.5_crit_edge:		; No predecessors!
-	unreachable
-
-then.i21.then.5_crit_edge:		; No predecessors!
-	unreachable
-
-endif.i:		; preds = %shortcirc_next.1
-	br label %shortcirc_done.1
-
-__check_region.exit:		; No predecessors!
-	unreachable
-
-shortcirc_done.1:		; preds = %endif.i, %endif.4.shortcirc_done.1_crit_edge
-	br i1 false, label %shortcirc_done.1.then.5_crit_edge, label %shortcirc_done.1.endif.5_crit_edge
-
-shortcirc_done.1.endif.5_crit_edge:		; preds = %shortcirc_done.1
-	br label %endif.5
-
-shortcirc_done.1.then.5_crit_edge:		; preds = %shortcirc_done.1
-	br label %then.5
-
-then.5:		; preds = %shortcirc_done.1.then.5_crit_edge, %then.i21
-	br i1 false, label %then.5.no_exit.2_crit_edge, label %then.5.loopexit.2_crit_edge
-
-then.5.loopexit.2_crit_edge:		; preds = %then.5
-	br label %loopexit.2
-
-then.5.no_exit.2_crit_edge:		; preds = %then.5
-	br label %no_exit.2
-
-dead_block_after_continue.0:		; No predecessors!
-	unreachable
-
-endif.5:		; preds = %shortcirc_done.1.endif.5_crit_edge
-	br i1 false, label %then.6, label %endif.5.endif.6_crit_edge
-
-endif.5.endif.6_crit_edge:		; preds = %endif.5
-	br label %endif.6
-
-then.6:		; preds = %endif.5
-	br label %endif.6
-
-endif.6:		; preds = %then.6, %endif.5.endif.6_crit_edge
-	br label %loopentry.2
-
-loopcont.2:		; No predecessors!
-	unreachable
-
-loopexit.2:		; preds = %then.5.loopexit.2_crit_edge, %loopentry.2.loopexit.2_crit_edge
-	br label %loopentry.3
-
-loopentry.3:		; preds = %endif.9, %loopexit.2
-	br i1 false, label %loopentry.3.no_exit.3_crit_edge, label %loopentry.3.loopexit.3_crit_edge
-
-loopentry.3.loopexit.3_crit_edge:		; preds = %loopentry.3
-	br label %loopexit.3
-
-loopentry.3.no_exit.3_crit_edge:		; preds = %loopentry.3
-	br label %no_exit.3
-
-no_exit.3:		; preds = %then.7.no_exit.3_crit_edge, %loopentry.3.no_exit.3_crit_edge
-	br i1 false, label %then.7, label %no_exit.3.endif.7_crit_edge
-
-no_exit.3.endif.7_crit_edge:		; preds = %no_exit.3
-	br label %endif.7
-
-then.7:		; preds = %no_exit.3
-	br i1 false, label %then.7.no_exit.3_crit_edge, label %then.7.loopexit.3_crit_edge
-
-then.7.loopexit.3_crit_edge:		; preds = %then.7
-	br label %loopexit.3
-
-then.7.no_exit.3_crit_edge:		; preds = %then.7
-	br label %no_exit.3
-
-dead_block_after_continue.1:		; No predecessors!
-	unreachable
-
-endif.7:		; preds = %no_exit.3.endif.7_crit_edge
-	br i1 false, label %shortcirc_next.2, label %endif.7.shortcirc_done.2_crit_edge
-
-endif.7.shortcirc_done.2_crit_edge:		; preds = %endif.7
-	br label %shortcirc_done.2
-
-shortcirc_next.2:		; preds = %endif.7
-	br label %shortcirc_done.2
-
-shortcirc_done.2:		; preds = %shortcirc_next.2, %endif.7.shortcirc_done.2_crit_edge
-	br i1 false, label %shortcirc_next.3, label %shortcirc_done.2.shortcirc_done.3_crit_edge
-
-shortcirc_done.2.shortcirc_done.3_crit_edge:		; preds = %shortcirc_done.2
-	br label %shortcirc_done.3
-
-shortcirc_next.3:		; preds = %shortcirc_done.2
-	br i1 false, label %shortcirc_next.3.shortcirc_done.4_crit_edge, label %shortcirc_next.4
-
-shortcirc_next.3.shortcirc_done.4_crit_edge:		; preds = %shortcirc_next.3
-	br label %shortcirc_done.4
-
-shortcirc_next.4:		; preds = %shortcirc_next.3
-	br label %shortcirc_done.4
-
-shortcirc_done.4:		; preds = %shortcirc_next.4, %shortcirc_next.3.shortcirc_done.4_crit_edge
-	br label %shortcirc_done.3
-
-shortcirc_done.3:		; preds = %shortcirc_done.4, %shortcirc_done.2.shortcirc_done.3_crit_edge
-	br i1 false, label %then.8, label %shortcirc_done.3.endif.8_crit_edge
-
-shortcirc_done.3.endif.8_crit_edge:		; preds = %shortcirc_done.3
-	br label %endif.8
-
-then.8:		; preds = %shortcirc_done.3
-	br label %endif.8
-
-endif.8:		; preds = %then.8, %shortcirc_done.3.endif.8_crit_edge
-	br i1 false, label %then.9, label %else
-
-then.9:		; preds = %endif.8
-	br i1 false, label %cond_true.0, label %cond_false.0
-
-cond_true.0:		; preds = %then.9
-	br label %cond_continue.0
-
-cond_false.0:		; preds = %then.9
-	br label %cond_continue.0
-
-cond_continue.0:		; preds = %cond_false.0, %cond_true.0
-	br label %endif.9
-
-else:		; preds = %endif.8
-	br i1 false, label %cond_true.1, label %cond_false.1
-
-cond_true.1:		; preds = %else
-	br label %cond_continue.1
-
-cond_false.1:		; preds = %else
-	br label %cond_continue.1
-
-cond_continue.1:		; preds = %cond_false.1, %cond_true.1
-	br label %endif.9
-
-endif.9:		; preds = %cond_continue.1, %cond_continue.0
-	br label %loopentry.3
-
-loopcont.3:		; No predecessors!
-	unreachable
-
-loopexit.3:		; preds = %then.7.loopexit.3_crit_edge, %loopentry.3.loopexit.3_crit_edge
-	br i1 false, label %loopentry.i.i.i2.no_exit.i.i.i4_crit_edge, label %loopentry.i.i.i2.pci_register_driver.exit.i.i_crit_edge
-
-loopentry.i.i.i2:		; No predecessors!
-	unreachable
-
-loopentry.i.i.i2.pci_register_driver.exit.i.i_crit_edge:		; preds = %loopexit.3
-	br label %pci_register_driver.exit.i.i
-
-loopentry.i.i.i2.no_exit.i.i.i4_crit_edge:		; preds = %loopexit.3
-	br label %no_exit.i.i.i4
-
-no_exit.i.i.i4:		; preds = %endif.i.i.i10.no_exit.i.i.i4_crit_edge, %loopentry.i.i.i2.no_exit.i.i.i4_crit_edge
-	br i1 false, label %then.i.i.i6, label %no_exit.i.i.i4.endif.i.i.i10_crit_edge
-
-no_exit.i.i.i4.endif.i.i.i10_crit_edge:		; preds = %no_exit.i.i.i4
-	br label %endif.i.i.i10
-
-then.i.i.i6:		; preds = %no_exit.i.i.i4
-	br i1 false, label %then.0.i.i.i.i, label %else.i.i.i.i
-
-then.0.i.i.i.i:		; preds = %then.i.i.i6
-	br i1 false, label %then.1.i.i.i.i, label %endif.1.i.i.i.i
-
-then.1.i.i.i.i:		; preds = %then.0.i.i.i.i
-	br label %endif.i.i.i10
-
-endif.1.i.i.i.i:		; preds = %then.0.i.i.i.i
-	br i1 false, label %endif.1.i.i.i.i.then.i.i.i.i.i.i_crit_edge, label %endif.1.i.i.i.i.endif.i.i.i.i.i.i_crit_edge
-
-endif.1.i.i.i.i.endif.i.i.i.i.i.i_crit_edge:		; preds = %endif.1.i.i.i.i
-	br label %endif.i.i.i.i.i.i
-
-endif.1.i.i.i.i.then.i.i.i.i.i.i_crit_edge:		; preds = %endif.1.i.i.i.i
-	br label %then.i.i.i.i.i.i
-
-else.i.i.i.i:		; preds = %then.i.i.i6
-	br i1 false, label %endif.0.i.i.i.i.then.i.i.i.i.i.i_crit_edge, label %endif.0.i.i.i.i.endif.i.i.i.i.i.i_crit_edge
-
-endif.0.i.i.i.i:		; No predecessors!
-	unreachable
-
-endif.0.i.i.i.i.endif.i.i.i.i.i.i_crit_edge:		; preds = %else.i.i.i.i
-	br label %endif.i.i.i.i.i.i
-
-endif.0.i.i.i.i.then.i.i.i.i.i.i_crit_edge:		; preds = %else.i.i.i.i
-	br label %then.i.i.i.i.i.i
-
-then.i.i.i.i.i.i:		; preds = %endif.0.i.i.i.i.then.i.i.i.i.i.i_crit_edge, %endif.1.i.i.i.i.then.i.i.i.i.i.i_crit_edge
-	br i1 false, label %then.i.i.i.i.i.i.then.2.i.i.i.i_crit_edge, label %then.i.i.i.i.i.i.endif.2.i.i.i.i_crit_edge
-
-then.i.i.i.i.i.i.endif.2.i.i.i.i_crit_edge:		; preds = %then.i.i.i.i.i.i
-	br label %endif.2.i.i.i.i
-
-then.i.i.i.i.i.i.then.2.i.i.i.i_crit_edge:		; preds = %then.i.i.i.i.i.i
-	br label %then.2.i.i.i.i
-
-endif.i.i.i.i.i.i:		; preds = %endif.0.i.i.i.i.endif.i.i.i.i.i.i_crit_edge, %endif.1.i.i.i.i.endif.i.i.i.i.i.i_crit_edge
-	br i1 false, label %dev_probe_lock.exit.i.i.i.i.then.2.i.i.i.i_crit_edge, label %dev_probe_lock.exit.i.i.i.i.endif.2.i.i.i.i_crit_edge
-
-dev_probe_lock.exit.i.i.i.i:		; No predecessors!
-	unreachable
-
-dev_probe_lock.exit.i.i.i.i.endif.2.i.i.i.i_crit_edge:		; preds = %endif.i.i.i.i.i.i
-	br label %endif.2.i.i.i.i
-
-dev_probe_lock.exit.i.i.i.i.then.2.i.i.i.i_crit_edge:		; preds = %endif.i.i.i.i.i.i
-	br label %then.2.i.i.i.i
-
-then.2.i.i.i.i:		; preds = %dev_probe_lock.exit.i.i.i.i.then.2.i.i.i.i_crit_edge, %then.i.i.i.i.i.i.then.2.i.i.i.i_crit_edge
-	br label %endif.2.i.i.i.i
-
-endif.2.i.i.i.i:		; preds = %then.2.i.i.i.i, %dev_probe_lock.exit.i.i.i.i.endif.2.i.i.i.i_crit_edge, %then.i.i.i.i.i.i.endif.2.i.i.i.i_crit_edge
-	br i1 false, label %then.i.i2.i.i.i.i, label %endif.i.i3.i.i.i.i
-
-then.i.i2.i.i.i.i:		; preds = %endif.2.i.i.i.i
-	br label %endif.i.i.i10
-
-endif.i.i3.i.i.i.i:		; preds = %endif.2.i.i.i.i
-	br label %endif.i.i.i10
-
-dev_probe_unlock.exit.i.i.i.i:		; No predecessors!
-	unreachable
-
-pci_announce_device.exit.i.i.i:		; No predecessors!
-	unreachable
-
-endif.i.i.i10:		; preds = %endif.i.i3.i.i.i.i, %then.i.i2.i.i.i.i, %then.1.i.i.i.i, %no_exit.i.i.i4.endif.i.i.i10_crit_edge
-	br i1 false, label %endif.i.i.i10.no_exit.i.i.i4_crit_edge, label %endif.i.i.i10.pci_register_driver.exit.i.i_crit_edge
-
-endif.i.i.i10.pci_register_driver.exit.i.i_crit_edge:		; preds = %endif.i.i.i10
-	br label %pci_register_driver.exit.i.i
-
-endif.i.i.i10.no_exit.i.i.i4_crit_edge:		; preds = %endif.i.i.i10
-	br label %no_exit.i.i.i4
-
-pci_register_driver.exit.i.i:		; preds = %endif.i.i.i10.pci_register_driver.exit.i.i_crit_edge, %loopentry.i.i.i2.pci_register_driver.exit.i.i_crit_edge
-	br i1 false, label %then.0.i.i12, label %endif.0.i.i13
-
-then.0.i.i12:		; preds = %pci_register_driver.exit.i.i
-	br label %probe_serial_pci.exit
-
-then.0.i.i12.probe_serial_pci.exit_crit_edge:		; No predecessors!
-	unreachable
-
-then.0.i.i12.then.i_crit_edge:		; No predecessors!
-	br label %then.i
-
-endif.0.i.i13:		; preds = %pci_register_driver.exit.i.i
-	br i1 false, label %then.1.i.i14, label %endif.0.i.i13.endif.1.i.i15_crit_edge
-
-endif.0.i.i13.endif.1.i.i15_crit_edge:		; preds = %endif.0.i.i13
-	br label %endif.1.i.i15
-
-then.1.i.i14:		; preds = %endif.0.i.i13
-	br label %endif.1.i.i15
-
-endif.1.i.i15:		; preds = %then.1.i.i14, %endif.0.i.i13.endif.1.i.i15_crit_edge
-	br i1 false, label %loopentry.i8.i.i.no_exit.i9.i.i_crit_edge, label %loopentry.i8.i.i.pci_unregister_driver.exit.i.i_crit_edge
-
-loopentry.i8.i.i:		; No predecessors!
-	unreachable
-
-loopentry.i8.i.i.pci_unregister_driver.exit.i.i_crit_edge:		; preds = %endif.1.i.i15
-	br label %pci_unregister_driver.exit.i.i
-
-loopentry.i8.i.i.no_exit.i9.i.i_crit_edge:		; preds = %endif.1.i.i15
-	br label %no_exit.i9.i.i
-
-no_exit.i9.i.i:		; preds = %endif.0.i.i.i.no_exit.i9.i.i_crit_edge, %loopentry.i8.i.i.no_exit.i9.i.i_crit_edge
-	br i1 false, label %then.0.i.i.i, label %no_exit.i9.i.i.endif.0.i.i.i_crit_edge
-
-no_exit.i9.i.i.endif.0.i.i.i_crit_edge:		; preds = %no_exit.i9.i.i
-	br label %endif.0.i.i.i
-
-then.0.i.i.i:		; preds = %no_exit.i9.i.i
-	br i1 false, label %then.1.i.i.i, label %then.0.i.i.i.endif.1.i.i.i_crit_edge
-
-then.0.i.i.i.endif.1.i.i.i_crit_edge:		; preds = %then.0.i.i.i
-	br label %endif.1.i.i.i
-
-then.1.i.i.i:		; preds = %then.0.i.i.i
-	br label %endif.1.i.i.i
-
-endif.1.i.i.i:		; preds = %then.1.i.i.i, %then.0.i.i.i.endif.1.i.i.i_crit_edge
-	br label %endif.0.i.i.i
-
-endif.0.i.i.i:		; preds = %endif.1.i.i.i, %no_exit.i9.i.i.endif.0.i.i.i_crit_edge
-	br i1 false, label %endif.0.i.i.i.no_exit.i9.i.i_crit_edge, label %endif.0.i.i.i.pci_unregister_driver.exit.i.i_crit_edge
-
-endif.0.i.i.i.pci_unregister_driver.exit.i.i_crit_edge:		; preds = %endif.0.i.i.i
-	br label %pci_unregister_driver.exit.i.i
-
-endif.0.i.i.i.no_exit.i9.i.i_crit_edge:		; preds = %endif.0.i.i.i
-	br label %no_exit.i9.i.i
-
-pci_unregister_driver.exit.i.i:		; preds = %endif.0.i.i.i.pci_unregister_driver.exit.i.i_crit_edge, %loopentry.i8.i.i.pci_unregister_driver.exit.i.i_crit_edge
-	br i1 false, label %pci_module_init.exit.i.then.i_crit_edge, label %pci_module_init.exit.i.probe_serial_pci.exit_crit_edge
-
-pci_module_init.exit.i:		; No predecessors!
-	unreachable
-
-pci_module_init.exit.i.probe_serial_pci.exit_crit_edge:		; preds = %pci_unregister_driver.exit.i.i
-	br label %probe_serial_pci.exit
-
-pci_module_init.exit.i.then.i_crit_edge:		; preds = %pci_unregister_driver.exit.i.i
-	br label %then.i
-
-then.i:		; preds = %pci_module_init.exit.i.then.i_crit_edge, %then.0.i.i12.then.i_crit_edge
-	br label %probe_serial_pci.exit
-
-probe_serial_pci.exit:		; preds = %then.i, %pci_module_init.exit.i.probe_serial_pci.exit_crit_edge, %then.0.i.i12
-	br i1 false, label %then.0.i, label %endif.0.i
-
-then.0.i:		; preds = %probe_serial_pci.exit
-	ret void
-
-endif.0.i:		; preds = %probe_serial_pci.exit
-	br i1 false, label %loopentry.0.i.no_exit.0.i_crit_edge, label %loopentry.0.i.loopexit.0.i_crit_edge
-
-loopentry.0.i:		; No predecessors!
-	unreachable
-
-loopentry.0.i.loopexit.0.i_crit_edge:		; preds = %endif.0.i
-	br label %loopexit.0.i
-
-loopentry.0.i.no_exit.0.i_crit_edge:		; preds = %endif.0.i
-	br label %no_exit.0.i
-
-no_exit.0.i:		; preds = %loopcont.0.i.no_exit.0.i_crit_edge, %loopentry.0.i.no_exit.0.i_crit_edge
-	br i1 false, label %then.1.i, label %endif.1.i
-
-then.1.i:		; preds = %no_exit.0.i
-	br label %loopcont.0.i
-
-endif.1.i:		; preds = %no_exit.0.i
-	br i1 false, label %loopentry.1.i.no_exit.1.i_crit_edge, label %loopentry.1.i.loopexit.1.i_crit_edge
-
-loopentry.1.i:		; No predecessors!
-	unreachable
-
-loopentry.1.i.loopexit.1.i_crit_edge:		; preds = %endif.1.i
-	br label %loopexit.1.i
-
-loopentry.1.i.no_exit.1.i_crit_edge:		; preds = %endif.1.i
-	br label %no_exit.1.i
-
-no_exit.1.i:		; preds = %endif.2.i.no_exit.1.i_crit_edge, %loopentry.1.i.no_exit.1.i_crit_edge
-	br i1 false, label %shortcirc_next.0.i, label %no_exit.1.i.shortcirc_done.0.i_crit_edge
-
-no_exit.1.i.shortcirc_done.0.i_crit_edge:		; preds = %no_exit.1.i
-	br label %shortcirc_done.0.i
-
-shortcirc_next.0.i:		; preds = %no_exit.1.i
-	br label %shortcirc_done.0.i
-
-shortcirc_done.0.i:		; preds = %shortcirc_next.0.i, %no_exit.1.i.shortcirc_done.0.i_crit_edge
-	br i1 false, label %then.2.i, label %endif.2.i
-
-then.2.i:		; preds = %shortcirc_done.0.i
-	br i1 false, label %then.2.i.then.3.i_crit_edge, label %then.2.i.else.i_crit_edge
-
-then.2.i.else.i_crit_edge:		; preds = %then.2.i
-	br label %else.i
-
-then.2.i.then.3.i_crit_edge:		; preds = %then.2.i
-	br label %then.3.i
-
-endif.2.i:		; preds = %shortcirc_done.0.i
-	br i1 false, label %endif.2.i.no_exit.1.i_crit_edge, label %endif.2.i.loopexit.1.i_crit_edge
-
-endif.2.i.loopexit.1.i_crit_edge:		; preds = %endif.2.i
-	br label %loopexit.1.i
-
-endif.2.i.no_exit.1.i_crit_edge:		; preds = %endif.2.i
-	br label %no_exit.1.i
-
-loopexit.1.i:		; preds = %endif.2.i.loopexit.1.i_crit_edge, %loopentry.1.i.loopexit.1.i_crit_edge
-	br i1 false, label %loopexit.1.i.then.3.i_crit_edge, label %loopexit.1.i.else.i_crit_edge
-
-loopexit.1.i.else.i_crit_edge:		; preds = %loopexit.1.i
-	br label %else.i
-
-loopexit.1.i.then.3.i_crit_edge:		; preds = %loopexit.1.i
-	br label %then.3.i
-
-then.3.i:		; preds = %loopexit.1.i.then.3.i_crit_edge, %then.2.i.then.3.i_crit_edge
-	br i1 false, label %shortcirc_next.1.i, label %then.3.i.shortcirc_done.1.i_crit_edge
-
-then.3.i.shortcirc_done.1.i_crit_edge:		; preds = %then.3.i
-	br label %shortcirc_done.1.i
-
-shortcirc_next.1.i:		; preds = %then.3.i
-	br label %shortcirc_done.1.i
-
-shortcirc_done.1.i:		; preds = %shortcirc_next.1.i, %then.3.i.shortcirc_done.1.i_crit_edge
-	br i1 false, label %then.4.i, label %endif.4.i
-
-then.4.i:		; preds = %shortcirc_done.1.i
-	br label %endif.3.i
-
-endif.4.i:		; preds = %shortcirc_done.1.i
-	br label %endif.3.i
-
-else.i:		; preds = %loopexit.1.i.else.i_crit_edge, %then.2.i.else.i_crit_edge
-	br i1 false, label %shortcirc_next.0.i.i, label %else.i.shortcirc_done.0.i.i_crit_edge
-
-else.i.shortcirc_done.0.i.i_crit_edge:		; preds = %else.i
-	br label %shortcirc_done.0.i.i
-
-shortcirc_next.0.i.i:		; preds = %else.i
-	br label %shortcirc_done.0.i.i
-
-shortcirc_done.0.i.i:		; preds = %shortcirc_next.0.i.i, %else.i.shortcirc_done.0.i.i_crit_edge
-	br i1 false, label %shortcirc_next.1.i.i, label %shortcirc_done.0.i.i.shortcirc_done.1.i.i_crit_edge
-
-shortcirc_done.0.i.i.shortcirc_done.1.i.i_crit_edge:		; preds = %shortcirc_done.0.i.i
-	br label %shortcirc_done.1.i.i
-
-shortcirc_next.1.i.i:		; preds = %shortcirc_done.0.i.i
-	br i1 false, label %loopentry.i.i2.i.no_exit.i.i3.i_crit_edge, label %loopentry.i.i2.i.loopexit.i.i.i_crit_edge
-
-loopentry.i.i2.i:		; No predecessors!
-	unreachable
-
-loopentry.i.i2.i.loopexit.i.i.i_crit_edge:		; preds = %shortcirc_next.1.i.i
-	br label %loopexit.i.i.i
-
-loopentry.i.i2.i.no_exit.i.i3.i_crit_edge:		; preds = %shortcirc_next.1.i.i
-	br label %no_exit.i.i3.i
-
-no_exit.i.i3.i:		; preds = %endif.i.i.i.no_exit.i.i3.i_crit_edge, %loopentry.i.i2.i.no_exit.i.i3.i_crit_edge
-	br i1 false, label %shortcirc_next.0.i.i.i, label %no_exit.i.i3.i.shortcirc_done.0.i.i.i_crit_edge
-
-no_exit.i.i3.i.shortcirc_done.0.i.i.i_crit_edge:		; preds = %no_exit.i.i3.i
-	br label %shortcirc_done.0.i.i.i
-
-shortcirc_next.0.i.i.i:		; preds = %no_exit.i.i3.i
-	br label %shortcirc_done.0.i.i.i
-
-shortcirc_done.0.i.i.i:		; preds = %shortcirc_next.0.i.i.i, %no_exit.i.i3.i.shortcirc_done.0.i.i.i_crit_edge
-	br i1 false, label %shortcirc_next.1.i.i.i, label %shortcirc_done.0.i.i.i.shortcirc_done.1.i.i.i_crit_edge
-
-shortcirc_done.0.i.i.i.shortcirc_done.1.i.i.i_crit_edge:		; preds = %shortcirc_done.0.i.i.i
-	br label %shortcirc_done.1.i.i.i
-
-shortcirc_next.1.i.i.i:		; preds = %shortcirc_done.0.i.i.i
-	br label %shortcirc_done.1.i.i.i
-
-shortcirc_done.1.i.i.i:		; preds = %shortcirc_next.1.i.i.i, %shortcirc_done.0.i.i.i.shortcirc_done.1.i.i.i_crit_edge
-	br i1 false, label %then.i.i.i, label %endif.i.i.i
-
-then.i.i.i:		; preds = %shortcirc_done.1.i.i.i
-	br label %then.0.i.i
-
-then.i.i.i.endif.0.i.i_crit_edge:		; No predecessors!
-	unreachable
-
-then.i.i.i.then.0.i.i_crit_edge:		; No predecessors!
-	unreachable
-
-endif.i.i.i:		; preds = %shortcirc_done.1.i.i.i
-	br i1 false, label %endif.i.i.i.no_exit.i.i3.i_crit_edge, label %endif.i.i.i.loopexit.i.i.i_crit_edge
-
-endif.i.i.i.loopexit.i.i.i_crit_edge:		; preds = %endif.i.i.i
-	br label %loopexit.i.i.i
-
-endif.i.i.i.no_exit.i.i3.i_crit_edge:		; preds = %endif.i.i.i
-	br label %no_exit.i.i3.i
-
-loopexit.i.i.i:		; preds = %endif.i.i.i.loopexit.i.i.i_crit_edge, %loopentry.i.i2.i.loopexit.i.i.i_crit_edge
-	br label %shortcirc_done.1.i.i
-
-check_compatible_id.exit.i.i:		; No predecessors!
-	unreachable
-
-shortcirc_done.1.i.i:		; preds = %loopexit.i.i.i, %shortcirc_done.0.i.i.shortcirc_done.1.i.i_crit_edge
-	br i1 false, label %shortcirc_done.1.i.i.then.0.i.i_crit_edge, label %shortcirc_done.1.i.i.endif.0.i.i_crit_edge
-
-shortcirc_done.1.i.i.endif.0.i.i_crit_edge:		; preds = %shortcirc_done.1.i.i
-	br label %endif.0.i.i
-
-shortcirc_done.1.i.i.then.0.i.i_crit_edge:		; preds = %shortcirc_done.1.i.i
-	br label %then.0.i.i
-
-then.0.i.i:		; preds = %shortcirc_done.1.i.i.then.0.i.i_crit_edge, %then.i.i.i
-	br label %then.5.i
-
-then.0.i.i.endif.5.i_crit_edge:		; No predecessors!
-	unreachable
-
-then.0.i.i.then.5.i_crit_edge:		; No predecessors!
-	unreachable
-
-endif.0.i.i:		; preds = %shortcirc_done.1.i.i.endif.0.i.i_crit_edge
-	br i1 false, label %endif.0.i.i.shortcirc_done.2.i.i_crit_edge, label %shortcirc_next.2.i.i
-
-endif.0.i.i.shortcirc_done.2.i.i_crit_edge:		; preds = %endif.0.i.i
-	br label %shortcirc_done.2.i.i
-
-shortcirc_next.2.i.i:		; preds = %endif.0.i.i
-	br label %shortcirc_done.2.i.i
-
-shortcirc_done.2.i.i:		; preds = %shortcirc_next.2.i.i, %endif.0.i.i.shortcirc_done.2.i.i_crit_edge
-	br i1 false, label %then.1.i.i, label %endif.1.i.i
-
-then.1.i.i:		; preds = %shortcirc_done.2.i.i
-	br label %then.5.i
-
-then.1.i.i.endif.5.i_crit_edge:		; No predecessors!
-	unreachable
-
-then.1.i.i.then.5.i_crit_edge:		; No predecessors!
-	unreachable
-
-endif.1.i.i:		; preds = %shortcirc_done.2.i.i
-	br i1 false, label %loopentry.0.i7.i.no_exit.0.i8.i_crit_edge, label %loopentry.0.i7.i.loopexit.0.i11.i_crit_edge
-
-loopentry.0.i7.i:		; No predecessors!
-	unreachable
-
-loopentry.0.i7.i.loopexit.0.i11.i_crit_edge:		; preds = %endif.1.i.i
-	br label %loopexit.0.i11.i
-
-loopentry.0.i7.i.no_exit.0.i8.i_crit_edge:		; preds = %endif.1.i.i
-	br label %no_exit.0.i8.i
-
-no_exit.0.i8.i:		; preds = %loopexit.1.i.i.no_exit.0.i8.i_crit_edge, %loopentry.0.i7.i.no_exit.0.i8.i_crit_edge
-	br i1 false, label %loopentry.1.i9.i.no_exit.1.i10.i_crit_edge, label %loopentry.1.i9.i.loopexit.1.i.i_crit_edge
-
-loopentry.1.i9.i:		; No predecessors!
-	unreachable
-
-loopentry.1.i9.i.loopexit.1.i.i_crit_edge:		; preds = %no_exit.0.i8.i
-	br label %loopexit.1.i.i
-
-loopentry.1.i9.i.no_exit.1.i10.i_crit_edge:		; preds = %no_exit.0.i8.i
-	br label %no_exit.1.i10.i
-
-no_exit.1.i10.i:		; preds = %endif.2.i.i.no_exit.1.i10.i_crit_edge, %loopentry.1.i9.i.no_exit.1.i10.i_crit_edge
-	br i1 false, label %shortcirc_next.3.i.i, label %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge
-
-no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge:		; preds = %no_exit.1.i10.i
-	br label %shortcirc_done.3.i.i
-
-shortcirc_next.3.i.i:		; preds = %no_exit.1.i10.i
-	br i1 false, label %shortcirc_next.3.i.i.shortcirc_done.4.i.i_crit_edge, label %shortcirc_next.4.i.i
-
-shortcirc_next.3.i.i.shortcirc_done.4.i.i_crit_edge:		; preds = %shortcirc_next.3.i.i
-	br label %shortcirc_done.4.i.i
-
-shortcirc_next.4.i.i:		; preds = %shortcirc_next.3.i.i
-	br label %shortcirc_done.4.i.i
-
-shortcirc_done.4.i.i:		; preds = %shortcirc_next.4.i.i, %shortcirc_next.3.i.i.shortcirc_done.4.i.i_crit_edge
-	br i1 false, label %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge, label %shortcirc_next.5.i.i
-
-shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge:		; preds = %shortcirc_done.4.i.i
-	br label %shortcirc_done.5.i.i
-
-shortcirc_next.5.i.i:		; preds = %shortcirc_done.4.i.i
-	%tmp.68.i.i = icmp eq i16 0, 1000		; <i1> [#uses=1]
-	br label %shortcirc_done.5.i.i
-
-shortcirc_done.5.i.i:		; preds = %shortcirc_next.5.i.i, %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge
-	%shortcirc_val.4.i.i = phi i1 [ true, %shortcirc_done.4.i.i.shortcirc_done.5.i.i_crit_edge ], [ %tmp.68.i.i, %shortcirc_next.5.i.i ]		; <i1> [#uses=1]
-	br label %shortcirc_done.3.i.i
-
-shortcirc_done.3.i.i:		; preds = %shortcirc_done.5.i.i, %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge
-	%shortcirc_val.5.i.i = phi i1 [ false, %no_exit.1.i10.i.shortcirc_done.3.i.i_crit_edge ], [ %shortcirc_val.4.i.i, %shortcirc_done.5.i.i ]		; <i1> [#uses=1]
-	br i1 %shortcirc_val.5.i.i, label %then.2.i.i, label %endif.2.i.i
-
-then.2.i.i:		; preds = %shortcirc_done.3.i.i
-	%port.2.i.i.8.lcssa20 = phi %struct.isapnp_port* [ null, %shortcirc_done.3.i.i ]		; <%struct.isapnp_port*> [#uses=0]
-	br label %endif.5.i
-
-then.2.i.i.endif.5.i_crit_edge:		; No predecessors!
-	unreachable
-
-then.2.i.i.then.5.i_crit_edge:		; No predecessors!
-	unreachable
-
-endif.2.i.i:		; preds = %shortcirc_done.3.i.i
-	br i1 false, label %endif.2.i.i.no_exit.1.i10.i_crit_edge, label %endif.2.i.i.loopexit.1.i.i_crit_edge
-
-endif.2.i.i.loopexit.1.i.i_crit_edge:		; preds = %endif.2.i.i
-	br label %loopexit.1.i.i
-
-endif.2.i.i.no_exit.1.i10.i_crit_edge:		; preds = %endif.2.i.i
-	br label %no_exit.1.i10.i
-
-loopexit.1.i.i:		; preds = %endif.2.i.i.loopexit.1.i.i_crit_edge, %loopentry.1.i9.i.loopexit.1.i.i_crit_edge
-	br i1 false, label %loopexit.1.i.i.no_exit.0.i8.i_crit_edge, label %loopexit.1.i.i.loopexit.0.i11.i_crit_edge
-
-loopexit.1.i.i.loopexit.0.i11.i_crit_edge:		; preds = %loopexit.1.i.i
-	br label %loopexit.0.i11.i
-
-loopexit.1.i.i.no_exit.0.i8.i_crit_edge:		; preds = %loopexit.1.i.i
-	br label %no_exit.0.i8.i
-
-loopexit.0.i11.i:		; preds = %loopexit.1.i.i.loopexit.0.i11.i_crit_edge, %loopentry.0.i7.i.loopexit.0.i11.i_crit_edge
-	br i1 false, label %serial_pnp_guess_board.exit.i.then.5.i_crit_edge, label %serial_pnp_guess_board.exit.i.endif.5.i_crit_edge
-
-serial_pnp_guess_board.exit.i:		; No predecessors!
-	unreachable
-
-serial_pnp_guess_board.exit.i.endif.5.i_crit_edge:		; preds = %loopexit.0.i11.i
-	br label %endif.5.i
-
-serial_pnp_guess_board.exit.i.then.5.i_crit_edge:		; preds = %loopexit.0.i11.i
-	br label %then.5.i
-
-then.5.i:		; preds = %serial_pnp_guess_board.exit.i.then.5.i_crit_edge, %then.1.i.i, %then.0.i.i
-	br label %loopcont.0.i
-
-endif.5.i:		; preds = %serial_pnp_guess_board.exit.i.endif.5.i_crit_edge, %then.2.i.i
-	br label %endif.3.i
-
-endif.3.i:		; preds = %endif.5.i, %endif.4.i, %then.4.i
-	br i1 false, label %then.6.i, label %endif.3.i.endif.6.i_crit_edge
-
-endif.3.i.endif.6.i_crit_edge:		; preds = %endif.3.i
-	br label %endif.6.i
-
-then.6.i:		; preds = %endif.3.i
-	br label %loopentry.0.i.i
-
-loopentry.0.i.i:		; preds = %endif.i.i, %then.6.i
-	br i1 false, label %loopentry.0.i.i.no_exit.0.i.i_crit_edge, label %loopentry.0.i.i.loopexit.0.i.i_crit_edge
-
-loopentry.0.i.i.loopexit.0.i.i_crit_edge:		; preds = %loopentry.0.i.i
-	br label %loopexit.0.i.i
-
-loopentry.0.i.i.no_exit.0.i.i_crit_edge:		; preds = %loopentry.0.i.i
-	br label %no_exit.0.i.i
-
-no_exit.0.i.i:		; preds = %clear_bit195.exit.i.i.no_exit.0.i.i_crit_edge, %loopentry.0.i.i.no_exit.0.i.i_crit_edge
-	br i1 false, label %then.i.i, label %endif.i.i
-
-then.i.i:		; preds = %no_exit.0.i.i
-	br label %loopentry.i.i.i
-
-loopentry.i.i.i:		; preds = %no_exit.i.i.i, %then.i.i
-	br i1 false, label %no_exit.i.i.i, label %clear_bit195.exit.i.i
-
-no_exit.i.i.i:		; preds = %loopentry.i.i.i
-	br label %loopentry.i.i.i
-
-clear_bit195.exit.i.i:		; preds = %loopentry.i.i.i
-	br i1 false, label %clear_bit195.exit.i.i.no_exit.0.i.i_crit_edge, label %clear_bit195.exit.i.i.loopexit.0.i.i_crit_edge
-
-clear_bit195.exit.i.i.loopexit.0.i.i_crit_edge:		; preds = %clear_bit195.exit.i.i
-	br label %loopexit.0.i.i
-
-clear_bit195.exit.i.i.no_exit.0.i.i_crit_edge:		; preds = %clear_bit195.exit.i.i
-	br label %no_exit.0.i.i
-
-endif.i.i:		; preds = %no_exit.0.i.i
-	br label %loopentry.0.i.i
-
-loopexit.0.i.i:		; preds = %clear_bit195.exit.i.i.loopexit.0.i.i_crit_edge, %loopentry.0.i.i.loopexit.0.i.i_crit_edge
-	br i1 false, label %loopentry.1.i.i.no_exit.1.i.i_crit_edge, label %loopentry.1.i.i.avoid_irq_share.exit.i_crit_edge
-
-loopentry.1.i.i:		; No predecessors!
-	unreachable
-
-loopentry.1.i.i.avoid_irq_share.exit.i_crit_edge:		; preds = %loopexit.0.i.i
-	br label %avoid_irq_share.exit.i
-
-loopentry.1.i.i.no_exit.1.i.i_crit_edge:		; preds = %loopexit.0.i.i
-	br label %no_exit.1.i.i
-
-no_exit.1.i.i:		; preds = %loopexit.2.i.i.no_exit.1.i.i_crit_edge, %loopentry.1.i.i.no_exit.1.i.i_crit_edge
-	br i1 false, label %loopentry.2.i.i.no_exit.2.i.i_crit_edge, label %loopentry.2.i.i.loopexit.2.i.i_crit_edge
-
-loopentry.2.i.i:		; No predecessors!
-	unreachable
-
-loopentry.2.i.i.loopexit.2.i.i_crit_edge:		; preds = %no_exit.1.i.i
-	br label %loopexit.2.i.i
-
-loopentry.2.i.i.no_exit.2.i.i_crit_edge:		; preds = %no_exit.1.i.i
-	br label %no_exit.2.i.i
-
-no_exit.2.i.i:		; preds = %no_exit.2.i.i.no_exit.2.i.i_crit_edge, %loopentry.2.i.i.no_exit.2.i.i_crit_edge
-	br i1 false, label %no_exit.2.i.i.no_exit.2.i.i_crit_edge, label %no_exit.2.i.i.loopexit.2.i.i_crit_edge
-
-no_exit.2.i.i.loopexit.2.i.i_crit_edge:		; preds = %no_exit.2.i.i
-	br label %loopexit.2.i.i
-
-no_exit.2.i.i.no_exit.2.i.i_crit_edge:		; preds = %no_exit.2.i.i
-	br label %no_exit.2.i.i
-
-loopexit.2.i.i:		; preds = %no_exit.2.i.i.loopexit.2.i.i_crit_edge, %loopentry.2.i.i.loopexit.2.i.i_crit_edge
-	br i1 false, label %loopexit.2.i.i.no_exit.1.i.i_crit_edge, label %loopexit.2.i.i.avoid_irq_share.exit.i_crit_edge
-
-loopexit.2.i.i.avoid_irq_share.exit.i_crit_edge:		; preds = %loopexit.2.i.i
-	br label %avoid_irq_share.exit.i
-
-loopexit.2.i.i.no_exit.1.i.i_crit_edge:		; preds = %loopexit.2.i.i
-	br label %no_exit.1.i.i
-
-avoid_irq_share.exit.i:		; preds = %loopexit.2.i.i.avoid_irq_share.exit.i_crit_edge, %loopentry.1.i.i.avoid_irq_share.exit.i_crit_edge
-	br label %endif.6.i
-
-endif.6.i:		; preds = %avoid_irq_share.exit.i, %endif.3.i.endif.6.i_crit_edge
-	br label %loopcont.0.i
-
-loopcont.0.i:		; preds = %endif.6.i, %then.5.i, %then.1.i
-	br i1 false, label %loopcont.0.i.no_exit.0.i_crit_edge, label %loopcont.0.i.loopexit.0.i_crit_edge
-
-loopcont.0.i.loopexit.0.i_crit_edge:		; preds = %loopcont.0.i
-	br label %loopexit.0.i
-
-loopcont.0.i.no_exit.0.i_crit_edge:		; preds = %loopcont.0.i
-	br label %no_exit.0.i
-
-loopexit.0.i:		; preds = %loopcont.0.i.loopexit.0.i_crit_edge, %loopentry.0.i.loopexit.0.i_crit_edge
-	ret void
-
-probe_serial_pnp.exit:		; No predecessors!
-	unreachable
-
-after_ret:		; No predecessors!
-	ret void
-
-return:		; No predecessors!
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/2007-08-01-InvalidRead.ll b/libclamav/c++/llvm/test/Transforms/CondProp/2007-08-01-InvalidRead.ll
deleted file mode 100644
index 1e1f8cb..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/2007-08-01-InvalidRead.ll
+++ /dev/null
@@ -1,814 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -tailduplicate -condprop -simplifycfg -disable-output
-; PR1575
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-	%struct.DCTtab = type { i8, i8, i8 }
-	%struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
-	%struct.VLCtab = type { i8, i8 }
-	%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
-	%struct.layer_data = type { i32, [2048 x i8], i8*, [16 x i8], i32, i8*, i32, i32, [64 x i32], [64 x i32], [64 x i32], [64 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [12 x [64 x i16]] }
- at ld = external global %struct.layer_data*		; <%struct.layer_data**> [#uses=1]
- at System_Stream_Flag = external global i32		; <i32*> [#uses=0]
- at Fault_Flag = external global i32		; <i32*> [#uses=2]
- at picture_coding_type = external global i32		; <i32*> [#uses=1]
- at DCTtabnext = external global [12 x %struct.DCTtab]		; <[12 x %struct.DCTtab]*> [#uses=0]
- at DCTtab0 = external global [60 x %struct.DCTtab]		; <[60 x %struct.DCTtab]*> [#uses=0]
- at DCTtab1 = external global [8 x %struct.DCTtab]		; <[8 x %struct.DCTtab]*> [#uses=0]
- at DCTtab2 = external global [16 x %struct.DCTtab]		; <[16 x %struct.DCTtab]*> [#uses=0]
- at DCTtab3 = external global [16 x %struct.DCTtab]		; <[16 x %struct.DCTtab]*> [#uses=0]
- at DCTtab4 = external global [16 x %struct.DCTtab]		; <[16 x %struct.DCTtab]*> [#uses=0]
- at DCTtab5 = external global [16 x %struct.DCTtab]		; <[16 x %struct.DCTtab]*> [#uses=0]
- at DCTtab6 = external global [16 x %struct.DCTtab]		; <[16 x %struct.DCTtab]*> [#uses=0]
- at Quiet_Flag = external global i32		; <i32*> [#uses=0]
- at .str = external constant [51 x i8]		; <[51 x i8]*> [#uses=0]
- at stderr = external global %struct.FILE*		; <%struct.FILE**> [#uses=0]
- at .str1 = external constant [43 x i8]		; <[43 x i8]*> [#uses=0]
- at scan = external global [2 x [64 x i8]]		; <[2 x [64 x i8]]*> [#uses=0]
- at DCTtabfirst = external global [12 x %struct.DCTtab]		; <[12 x %struct.DCTtab]*> [#uses=0]
- at .str2 = external constant [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str3 = external constant [43 x i8]		; <[43 x i8]*> [#uses=0]
- at base = external global %struct.layer_data		; <%struct.layer_data*> [#uses=1]
- at enhan = external global %struct.layer_data		; <%struct.layer_data*> [#uses=0]
- at chroma_format = external global i32		; <i32*> [#uses=2]
- at intra_dc_precision = external global i32		; <i32*> [#uses=0]
- at intra_vlc_format = external global i32		; <i32*> [#uses=0]
- at DCTtab0a = external global [252 x %struct.DCTtab]		; <[252 x %struct.DCTtab]*> [#uses=0]
- at DCTtab1a = external global [8 x %struct.DCTtab]		; <[8 x %struct.DCTtab]*> [#uses=0]
- at .str4 = external constant [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str5 = external constant [45 x i8]		; <[45 x i8]*> [#uses=0]
- at .str6 = external constant [44 x i8]		; <[44 x i8]*> [#uses=0]
- at .str7 = external constant [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str8 = external constant [44 x i8]		; <[44 x i8]*> [#uses=0]
- at Temporal_Reference_Base = external global i32		; <i32*> [#uses=0]
- at True_Framenum_max = external global i32		; <i32*> [#uses=0]
- at Temporal_Reference_GOP_Reset.b = external global i1		; <i1*> [#uses=0]
- at frame_rate_Table = external constant [16 x double]		; <[16 x double]*> [#uses=0]
- at .str9 = external constant [43 x i8]		; <[43 x i8]*> [#uses=0]
- at horizontal_size = external global i32		; <i32*> [#uses=0]
- at vertical_size = external global i32		; <i32*> [#uses=0]
- at aspect_ratio_information = external global i32		; <i32*> [#uses=0]
- at frame_rate_code = external global i32		; <i32*> [#uses=0]
- at bit_rate_value = external global i32		; <i32*> [#uses=0]
- at .str110 = external constant [18 x i8]		; <[18 x i8]*> [#uses=0]
- at vbv_buffer_size = external global i32		; <i32*> [#uses=0]
- at constrained_parameters_flag = external global i32		; <i32*> [#uses=0]
- at default_intra_quantizer_matrix = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at drop_flag = external global i32		; <i32*> [#uses=0]
- at hour = external global i32		; <i32*> [#uses=0]
- at minute = external global i32		; <i32*> [#uses=0]
- at .str211 = external constant [27 x i8]		; <[27 x i8]*> [#uses=0]
- at sec = external global i32		; <i32*> [#uses=0]
- at frame = external global i32		; <i32*> [#uses=0]
- at closed_gop = external global i32		; <i32*> [#uses=0]
- at broken_link = external global i32		; <i32*> [#uses=0]
- at temporal_reference = external global i32		; <i32*> [#uses=0]
- at vbv_delay = external global i32		; <i32*> [#uses=0]
- at full_pel_forward_vector = external global i32		; <i32*> [#uses=0]
- at forward_f_code = external global i32		; <i32*> [#uses=0]
- at full_pel_backward_vector = external global i32		; <i32*> [#uses=0]
- at backward_f_code = external global i32		; <i32*> [#uses=1]
- at Non_Linear_quantizer_scale = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str312 = external constant [37 x i8]		; <[37 x i8]*> [#uses=0]
- at layer_id = external global i32		; <i32*> [#uses=0]
- at profile_and_level_indication = external global i32		; <i32*> [#uses=0]
- at progressive_sequence = external global i32		; <i32*> [#uses=0]
- at .str413 = external constant [19 x i8]		; <[19 x i8]*> [#uses=0]
- at low_delay = external global i32		; <i32*> [#uses=0]
- at frame_rate_extension_n = external global i32		; <i32*> [#uses=0]
- at frame_rate_extension_d = external global i32		; <i32*> [#uses=0]
- at frame_rate = external global double		; <double*> [#uses=0]
- at profile = external global i32		; <i32*> [#uses=0]
- at level = external global i32		; <i32*> [#uses=0]
- at bit_rate = external global double		; <double*> [#uses=0]
- at video_format = external global i32		; <i32*> [#uses=0]
- at color_description = external global i32		; <i32*> [#uses=0]
- at color_primaries = external global i32		; <i32*> [#uses=0]
- at transfer_characteristics = external global i32		; <i32*> [#uses=0]
- at matrix_coefficients = external global i32		; <i32*> [#uses=0]
- at display_horizontal_size = external global i32		; <i32*> [#uses=0]
- at .str514 = external constant [27 x i8]		; <[27 x i8]*> [#uses=0]
- at display_vertical_size = external global i32		; <i32*> [#uses=0]
- at lower_layer_prediction_horizontal_size = external global i32		; <i32*> [#uses=0]
- at .str615 = external constant [30 x i8]		; <[30 x i8]*> [#uses=0]
- at lower_layer_prediction_vertical_size = external global i32		; <i32*> [#uses=0]
- at horizontal_subsampling_factor_m = external global i32		; <i32*> [#uses=0]
- at horizontal_subsampling_factor_n = external global i32		; <i32*> [#uses=0]
- at vertical_subsampling_factor_m = external global i32		; <i32*> [#uses=0]
- at vertical_subsampling_factor_n = external global i32		; <i32*> [#uses=0]
- at .str716 = external constant [38 x i8]		; <[38 x i8]*> [#uses=0]
- at repeat_first_field = external global i32		; <i32*> [#uses=0]
- at top_field_first = external global i32		; <i32*> [#uses=0]
- at picture_structure = external global i32		; <i32*> [#uses=0]
- at frame_center_horizontal_offset = external global [3 x i32]		; <[3 x i32]*> [#uses=0]
- at .str817 = external constant [44 x i8]		; <[44 x i8]*> [#uses=0]
- at frame_center_vertical_offset = external global [3 x i32]		; <[3 x i32]*> [#uses=0]
- at .str918 = external constant [45 x i8]		; <[45 x i8]*> [#uses=0]
- at f_code = external global [2 x [2 x i32]]		; <[2 x [2 x i32]]*> [#uses=0]
- at frame_pred_frame_dct = external global i32		; <i32*> [#uses=0]
- at concealment_motion_vectors = external global i32		; <i32*> [#uses=1]
- at chroma_420_type = external global i32		; <i32*> [#uses=0]
- at progressive_frame = external global i32		; <i32*> [#uses=0]
- at composite_display_flag = external global i32		; <i32*> [#uses=0]
- at v_axis = external global i32		; <i32*> [#uses=0]
- at field_sequence = external global i32		; <i32*> [#uses=0]
- at sub_carrier = external global i32		; <i32*> [#uses=0]
- at burst_amplitude = external global i32		; <i32*> [#uses=0]
- at sub_carrier_phase = external global i32		; <i32*> [#uses=0]
- at lower_layer_temporal_reference = external global i32		; <i32*> [#uses=0]
- at .str10 = external constant [55 x i8]		; <[55 x i8]*> [#uses=0]
- at lower_layer_horizontal_offset = external global i32		; <i32*> [#uses=0]
- at .str11 = external constant [56 x i8]		; <[56 x i8]*> [#uses=0]
- at lower_layer_vertical_offset = external global i32		; <i32*> [#uses=0]
- at spatial_temporal_weight_code_table_index = external global i32		; <i32*> [#uses=0]
- at lower_layer_progressive_frame = external global i32		; <i32*> [#uses=0]
- at lower_layer_deinterlaced_field_select = external global i32		; <i32*> [#uses=0]
- at .str12 = external constant [36 x i8]		; <[36 x i8]*> [#uses=0]
- at copyright_flag = external global i32		; <i32*> [#uses=0]
- at copyright_identifier = external global i32		; <i32*> [#uses=0]
- at original_or_copy = external global i32		; <i32*> [#uses=0]
- at .str13 = external constant [40 x i8]		; <[40 x i8]*> [#uses=0]
- at copyright_number_1 = external global i32		; <i32*> [#uses=0]
- at .str14 = external constant [41 x i8]		; <[41 x i8]*> [#uses=0]
- at copyright_number_2 = external global i32		; <i32*> [#uses=0]
- at .str15 = external constant [40 x i8]		; <[40 x i8]*> [#uses=0]
- at copyright_number_3 = external global i32		; <i32*> [#uses=0]
- at Verbose_Flag = external global i32		; <i32*> [#uses=0]
- at .str16 = external constant [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str17 = external constant [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str18 = external constant [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str19 = external constant [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str20 = external constant [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str21 = external constant [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str22 = external constant [25 x i8]		; <[25 x i8]*> [#uses=0]
- at temporal_reference_old.2592 = external global i32		; <i32*> [#uses=0]
- at temporal_reference_wrap.2591.b = external global i1		; <i1*> [#uses=0]
- at True_Framenum = external global i32		; <i32*> [#uses=0]
- at Second_Field = external global i32		; <i32*> [#uses=0]
- at .str23 = external constant [29 x i8]		; <[29 x i8]*> [#uses=0]
- at Ersatz_Flag = external global i32		; <i32*> [#uses=0]
- at mb_width = external global i32		; <i32*> [#uses=0]
- at mb_height = external global i32		; <i32*> [#uses=0]
- at Two_Streams = external global i32		; <i32*> [#uses=0]
- at .str124 = external constant [32 x i8]		; <[32 x i8]*> [#uses=0]
- at stwc_table.2193 = external constant [3 x [4 x i8]]		; <[3 x [4 x i8]]*> [#uses=0]
- at stwclass_table.2194 = external constant [9 x i8]		; <[9 x i8]*> [#uses=0]
- at current_frame = external global [3 x i8*]		; <[3 x i8*]*> [#uses=0]
- at Coded_Picture_Width = external global i32		; <i32*> [#uses=0]
- at Chroma_Width = external global i32		; <i32*> [#uses=0]
- at Clip = external global i8*		; <i8**> [#uses=0]
- at .str225 = external constant [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str326 = external constant [27 x i8]		; <[27 x i8]*> [#uses=0]
- at block_count = external global i32		; <i32*> [#uses=1]
- at auxframe = external global [3 x i8*]		; <[3 x i8*]*> [#uses=0]
- at forward_reference_frame = external global [3 x i8*]		; <[3 x i8*]*> [#uses=0]
- at backward_reference_frame = external global [3 x i8*]		; <[3 x i8*]*> [#uses=0]
- at .str427 = external constant [34 x i8]		; <[34 x i8]*> [#uses=0]
- at Newref_progressive_frame.2631 = external global i32		; <i32*> [#uses=0]
- at Oldref_progressive_frame.2630 = external global i32		; <i32*> [#uses=0]
- at Reference_IDCT_Flag = external global i32		; <i32*> [#uses=0]
- at .str528 = external constant [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str629 = external constant [29 x i8]		; <[29 x i8]*> [#uses=0]
- at .str730 = external constant [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str831 = external constant [32 x i8]		; <[32 x i8]*> [#uses=0]
- at PMBtab0 = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at PMBtab1 = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at BMBtab0 = external constant [16 x %struct.VLCtab]		; <[16 x %struct.VLCtab]*> [#uses=0]
- at BMBtab1 = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at spIMBtab = external constant [16 x %struct.VLCtab]		; <[16 x %struct.VLCtab]*> [#uses=0]
- at spPMBtab0 = external constant [16 x %struct.VLCtab]		; <[16 x %struct.VLCtab]*> [#uses=0]
- at spPMBtab1 = external constant [16 x %struct.VLCtab]		; <[16 x %struct.VLCtab]*> [#uses=0]
- at spBMBtab0 = external constant [14 x %struct.VLCtab]		; <[14 x %struct.VLCtab]*> [#uses=0]
- at spBMBtab1 = external constant [12 x %struct.VLCtab]		; <[12 x %struct.VLCtab]*> [#uses=0]
- at spBMBtab2 = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at SNRMBtab = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at MVtab0 = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at MVtab1 = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at MVtab2 = external constant [12 x %struct.VLCtab]		; <[12 x %struct.VLCtab]*> [#uses=0]
- at CBPtab0 = external constant [32 x %struct.VLCtab]		; <[32 x %struct.VLCtab]*> [#uses=0]
- at CBPtab1 = external constant [64 x %struct.VLCtab]		; <[64 x %struct.VLCtab]*> [#uses=0]
- at CBPtab2 = external constant [8 x %struct.VLCtab]		; <[8 x %struct.VLCtab]*> [#uses=0]
- at MBAtab1 = external constant [16 x %struct.VLCtab]		; <[16 x %struct.VLCtab]*> [#uses=0]
- at MBAtab2 = external constant [104 x %struct.VLCtab]		; <[104 x %struct.VLCtab]*> [#uses=0]
- at DClumtab0 = external constant [32 x %struct.VLCtab]		; <[32 x %struct.VLCtab]*> [#uses=0]
- at DClumtab1 = external constant [16 x %struct.VLCtab]		; <[16 x %struct.VLCtab]*> [#uses=0]
- at DCchromtab0 = external constant [32 x %struct.VLCtab]		; <[32 x %struct.VLCtab]*> [#uses=0]
- at DCchromtab1 = external constant [32 x %struct.VLCtab]		; <[32 x %struct.VLCtab]*> [#uses=0]
- at .str32 = external constant [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str133 = external constant [29 x i8]		; <[29 x i8]*> [#uses=0]
- at global_pic = external global i32		; <i32*> [#uses=0]
- at global_MBA = external global i32		; <i32*> [#uses=0]
- at .str1648 = external constant [45 x i8]		; <[45 x i8]*> [#uses=0]
- at .str1749 = external constant [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str1850 = external constant [42 x i8]		; <[42 x i8]*> [#uses=0]
- at iclp = external global i16*		; <i16**> [#uses=0]
- at iclip = external global [1024 x i16]		; <[1024 x i16]*> [#uses=0]
- at c = external global [8 x [8 x double]]		; <[8 x [8 x double]]*> [#uses=0]
- at Version = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at Author = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
- at Inverse_Table_6_9 = external global [8 x [4 x i32]]		; <[8 x [4 x i32]]*> [#uses=0]
- at Main_Bitstream_Filename = external global i8*		; <i8**> [#uses=0]
- at .str51 = external constant [36 x i8]		; <[36 x i8]*> [#uses=0]
- at Error_Text = external global [256 x i8]		; <[256 x i8]*> [#uses=0]
- at .str152 = external constant [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str253 = external constant [33 x i8]		; <[33 x i8]*> [#uses=0]
- at Enhancement_Layer_Bitstream_Filename = external global i8*		; <i8**> [#uses=0]
- at .str354 = external constant [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str455 = external constant [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str556 = external constant [30 x i8]		; <[30 x i8]*> [#uses=0]
- at Coded_Picture_Height = external global i32		; <i32*> [#uses=0]
- at Chroma_Height = external global i32		; <i32*> [#uses=0]
- at Table_6_20.3737 = external constant [3 x i32]		; <[3 x i32]*> [#uses=0]
- at .str657 = external constant [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str758 = external constant [41 x i8]		; <[41 x i8]*> [#uses=0]
- at .str859 = external constant [26 x i8]		; <[26 x i8]*> [#uses=0]
- at substitute_frame = external global [3 x i8*]		; <[3 x i8*]*> [#uses=0]
- at .str960 = external constant [34 x i8]		; <[34 x i8]*> [#uses=0]
- at llframe0 = external global [3 x i8*]		; <[3 x i8*]*> [#uses=0]
- at .str1061 = external constant [24 x i8]		; <[24 x i8]*> [#uses=0]
- at llframe1 = external global [3 x i8*]		; <[3 x i8*]*> [#uses=0]
- at .str1162 = external constant [24 x i8]		; <[24 x i8]*> [#uses=0]
- at lltmp = external global i16*		; <i16**> [#uses=0]
- at .str1263 = external constant [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str1364 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str1465 = external constant [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str1566 = external constant [1195 x i8]		; <[1195 x i8]*> [#uses=0]
- at Output_Type = external global i32		; <i32*> [#uses=0]
- at Main_Bitstream_Flag = external global i32		; <i32*> [#uses=0]
- at .str1667 = external constant [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str1768 = external constant [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str1869 = external constant [39 x i8]		; <[39 x i8]*> [#uses=0]
- at Frame_Store_Flag = external global i32		; <i32*> [#uses=0]
- at Big_Picture_Flag = external global i32		; <i32*> [#uses=0]
- at .str1970 = external constant [49 x i8]		; <[49 x i8]*> [#uses=0]
- at Spatial_Flag = external global i32		; <i32*> [#uses=0]
- at .str2071 = external constant [39 x i8]		; <[39 x i8]*> [#uses=0]
- at Lower_Layer_Picture_Filename = external global i8*		; <i8**> [#uses=0]
- at Output_Picture_Filename = external global i8*		; <i8**> [#uses=0]
- at .str2172 = external constant [1 x i8]		; <[1 x i8]*> [#uses=0]
- at .str2273 = external constant [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str2374 = external constant [49 x i8]		; <[49 x i8]*> [#uses=0]
- at User_Data_Flag = external global i32		; <i32*> [#uses=0]
- at .str24 = external constant [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str25 = external constant [39 x i8]		; <[39 x i8]*> [#uses=0]
- at Substitute_Picture_Filename = external global i8*		; <i8**> [#uses=0]
- at .str26 = external constant [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str27 = external constant [55 x i8]		; <[55 x i8]*> [#uses=0]
- at Display_Progressive_Flag = external global i32		; <i32*> [#uses=0]
- at .str28 = external constant [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str29 = external constant [2 x i8]		; <[2 x i8]*> [#uses=0]
- at hiQdither = external global i32		; <i32*> [#uses=0]
- at Trace_Flag = external global i32		; <i32*> [#uses=0]
- at Verify_Flag = external global i32		; <i32*> [#uses=0]
- at Stats_Flag = external global i32		; <i32*> [#uses=0]
- at Decode_Layer = external global i32		; <i32*> [#uses=0]
- at .str75 = external constant [20 x i8]		; <[20 x i8]*> [#uses=0]
- at C.53.2124 = external constant [3 x [3 x i8]]		; <[3 x [3 x i8]]*> [#uses=0]
- at .str76 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at C.60.2169 = external constant [3 x [3 x i8]]		; <[3 x [3 x i8]]*> [#uses=0]
- at .str77 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str178 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str279 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str380 = external constant [11 x i8]		; <[11 x i8]*> [#uses=0]
- at outfile = external global i32		; <i32*> [#uses=0]
- at .str481 = external constant [20 x i8]		; <[20 x i8]*> [#uses=0]
- at optr = external global i8*		; <i8**> [#uses=0]
- at obfr = external global [4096 x i8]		; <[4096 x i8]*> [#uses=0]
- at .str582 = external constant [35 x i8]		; <[35 x i8]*> [#uses=0]
- at u422.3075 = external global i8*		; <i8**> [#uses=0]
- at v422.3076 = external global i8*		; <i8**> [#uses=0]
- at .str683 = external constant [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str784 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at u444.3185 = external global i8*		; <i8**> [#uses=0]
- at v444.3186 = external global i8*		; <i8**> [#uses=0]
- at u422.3183 = external global i8*		; <i8**> [#uses=0]
- at v422.3184 = external global i8*		; <i8**> [#uses=0]
- at .str885 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str986 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at tga24.3181 = external constant [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str1087 = external constant [14 x i8]		; <[14 x i8]*> [#uses=0]
- at bgate.2952.b = external global i1		; <i1*> [#uses=0]
- at previous_temporal_reference.2947 = external global i32		; <i32*> [#uses=0]
- at previous_picture_coding_type.2951 = external global i32		; <i32*> [#uses=0]
- at previous_anchor_temporal_reference.2949 = external global i32		; <i32*> [#uses=0]
- at .str88 = external constant [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str189 = external constant [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str290 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str391 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str492 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str593 = external constant [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str694 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str795 = external constant [18 x i8]		; <[18 x i8]*> [#uses=0]
- at .str896 = external constant [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str97 = external constant [18 x i8]		; <[18 x i8]*> [#uses=0]
- at .str198 = external constant [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str299 = external constant [43 x i8]		; <[43 x i8]*> [#uses=0]
-
-declare void @Initialize_Buffer()
-
-declare void @Fill_Buffer()
-
-declare i32 @read(...)
-
-declare i32 @Get_Byte()
-
-declare i32 @Get_Word()
-
-declare i32 @Show_Bits(i32)
-
-declare i32 @Get_Bits1()
-
-declare void @Flush_Buffer(i32)
-
-declare void @Next_Packet()
-
-declare i32 @Get_Bits(i32)
-
-declare void @Decode_MPEG1_Intra_Block(i32, i32*)
-
-declare i32 @Get_Luma_DC_dct_diff()
-
-declare i32 @Get_Chroma_DC_dct_diff()
-
-declare i32 @puts(i8*)
-
-declare i32 @fwrite(i8*, i32, i32, i8*)
-
-declare void @Decode_MPEG1_Non_Intra_Block(i32)
-
-declare void @Decode_MPEG2_Intra_Block(i32, i32*)
-
-declare void @Decode_MPEG2_Non_Intra_Block(i32)
-
-declare i32 @Get_Hdr()
-
-declare i32 @Get_Bits32()
-
-declare i32 @fprintf(%struct.FILE*, i8*, ...)
-
-declare void @next_start_code()
-
-declare fastcc void @sequence_header()
-
-define internal fastcc void @group_of_pictures_header() {
-entry:
-	ret void
-}
-
-define internal fastcc void @picture_header() {
-entry:
-	unreachable
-}
-
-declare i32 @slice_header()
-
-declare fastcc void @extension_and_user_data()
-
-declare void @Flush_Buffer32()
-
-declare fastcc void @sequence_extension()
-
-declare fastcc void @sequence_display_extension()
-
-declare fastcc void @quant_matrix_extension()
-
-declare fastcc void @sequence_scalable_extension()
-
-declare void @Error(i8*)
-
-declare fastcc void @picture_display_extension()
-
-declare fastcc void @picture_coding_extension()
-
-declare fastcc void @picture_spatial_scalable_extension()
-
-declare fastcc void @picture_temporal_scalable_extension()
-
-declare fastcc void @extra_bit_information()
-
-declare void @marker_bit(i8*)
-
-declare fastcc void @user_data()
-
-declare fastcc void @copyright_extension()
-
-declare i32 @printf(i8*, ...)
-
-declare fastcc void @Update_Temporal_Reference_Tacking_Data()
-
-define void @Decode_Picture(i32 %bitstream_framenum, i32 %sequence_framenum) {
-entry:
-	%tmp16 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp16, label %bb43, label %bb22
-
-bb22:		; preds = %entry
-	ret void
-
-bb43:		; preds = %entry
-	call fastcc void @picture_data( )
-	ret void
-}
-
-declare void @Substitute_Frame_Buffer(i32, i32)
-
-define void @Spatial_Prediction() {
-entry:
-	ret void
-}
-
-define internal fastcc void @picture_data() {
-entry:
-	%tmp4 = icmp eq i32 0, 3		; <i1> [#uses=1]
-	br i1 %tmp4, label %bb8, label %bb
-
-bb:		; preds = %entry
-	ret void
-
-bb8:		; preds = %entry
-	%tmp11 = call fastcc i32 @slice( i32 0 )		; <i32> [#uses=0]
-	ret void
-}
-
-define internal fastcc i32 @slice(i32 %MBAmax) {
-entry:
-	%tmp6 = icmp eq i32 0, 1		; <i1> [#uses=1]
-	br i1 %tmp6, label %bb9, label %bb231
-
-bb9:		; preds = %entry
-	%tmp11 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp11, label %bb27, label %bb17
-
-bb17:		; preds = %bb9
-	ret i32 0
-
-bb27:		; preds = %bb9
-	%tmp31 = icmp slt i32 0, %MBAmax		; <i1> [#uses=1]
-	br i1 %tmp31, label %bb110, label %bb231
-
-resync:		; preds = %bb139
-	ret i32 0
-
-bb110:		; preds = %bb27
-	%tmp113 = icmp slt i32 0, %MBAmax		; <i1> [#uses=1]
-	br i1 %tmp113, label %bb131, label %bb119
-
-bb119:		; preds = %bb110
-	ret i32 0
-
-bb131:		; preds = %bb110
-	%tmp133 = icmp eq i32 0, 1		; <i1> [#uses=1]
-	br i1 %tmp133, label %bb139, label %bb166
-
-bb139:		; preds = %bb131
-	%tmp144 = call fastcc i32 @decode_macroblock( i32* null, i32* null, i32* null, i32* null, i32* null, [2 x [2 x i32]]* null, i32* null, [2 x i32]* null, i32* null )		; <i32> [#uses=1]
-	switch i32 %tmp144, label %bb166 [
-		 i32 -1, label %bb231
-		 i32 0, label %resync
-	]
-
-bb166:		; preds = %bb139, %bb131
-	ret i32 0
-
-bb231:		; preds = %bb139, %bb27, %entry
-	ret i32 0
-}
-
-declare i32 @Get_macroblock_address_increment()
-
-declare fastcc void @macroblock_modes(i32*, i32*, i32*, i32*, i32*, i32*, i32*, i32*, i32*)
-
-declare i32 @Get_macroblock_type()
-
-declare fastcc void @Add_Block(i32, i32, i32, i32, i32)
-
-declare fastcc void @Decode_SNR_Macroblock(i32*, i32*, i32, i32, i32*)
-
-declare i32 @Get_coded_block_pattern()
-
-declare fastcc void @Clear_Block(i32)
-
-declare fastcc void @Sum_Block(i32)
-
-declare fastcc void @Saturate(i16*)
-
-declare fastcc void @Update_Picture_Buffers()
-
-declare void @Output_Last_Frame_of_Sequence(i32)
-
-declare void @Write_Frame(i8**, i32)
-
-declare fastcc void @frame_reorder(i32, i32)
-
-declare fastcc void @motion_compensation(i32, i32, i32, [2 x [2 x i32]]*, [2 x i32]*, i32*, i32, i32)
-
-declare void @form_predictions(i32, i32, i32, i32, [2 x [2 x i32]]*, [2 x i32]*, i32*, i32)
-
-declare void @Reference_IDCT(i16*)
-
-declare void @Fast_IDCT(i16*)
-
-declare fastcc void @skipped_macroblock(i32*, [2 x [2 x i32]]*, i32*, [2 x i32]*, i32*, i32*)
-
-declare fastcc i32 @start_of_slice(i32*, i32*, i32*, [2 x [2 x i32]]*)
-
-define internal fastcc i32 @decode_macroblock(i32* %macroblock_type, i32* %stwtype, i32* %stwclass, i32* %motion_type, i32* %dct_type, [2 x [2 x i32]]* %PMV, i32* %dc_dct_pred, [2 x i32]* %motion_vertical_field_select, i32* %dmvector) {
-entry:
-	%tmp3 = icmp eq i32 0, 1		; <i1> [#uses=1]
-	br i1 %tmp3, label %bb, label %bb15
-
-bb:		; preds = %entry
-	%tmp7 = icmp slt i32 0, 3		; <i1> [#uses=1]
-	br i1 %tmp7, label %bb13, label %bb14
-
-bb13:		; preds = %bb
-	br label %bb15
-
-bb14:		; preds = %bb
-	ret i32 0
-
-bb15:		; preds = %bb13, %entry
-	%tmp21 = load i32* @Fault_Flag, align 4		; <i32> [#uses=1]
-	%tmp22 = icmp eq i32 %tmp21, 0		; <i1> [#uses=1]
-	br i1 %tmp22, label %bb29, label %bb630
-
-bb29:		; preds = %bb15
-	%tmp33 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp33, label %bb91, label %bb39
-
-bb39:		; preds = %bb29
-	ret i32 0
-
-bb91:		; preds = %bb29
-	%tmp94 = and i32 0, 8		; <i32> [#uses=0]
-	%tmp121 = load %struct.layer_data** @ld, align 4		; <%struct.layer_data*> [#uses=0]
-	%tmp123 = load i32* null		; <i32> [#uses=1]
-	%tmp124 = icmp eq i32 %tmp123, 0		; <i1> [#uses=1]
-	br i1 %tmp124, label %bb146, label %bb130
-
-bb130:		; preds = %bb91
-	call void @motion_vectors( [2 x [2 x i32]]* %PMV, i32* %dmvector, [2 x i32]* %motion_vertical_field_select, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 )
-	br label %bb157
-
-bb146:		; preds = %bb91
-	br label %bb157
-
-bb157:		; preds = %bb146, %bb130
-	%tmp159 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp159, label %bb166, label %bb630
-
-bb166:		; preds = %bb157
-	%tmp180 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp180, label %bb201, label %bb186
-
-bb186:		; preds = %bb166
-	br label %bb212
-
-bb201:		; preds = %bb166
-	%tmp205 = load i32* @backward_f_code, align 4		; <i32> [#uses=0]
-	br label %bb212
-
-bb212:		; preds = %bb201, %bb186
-	%tmp214 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp214, label %bb221, label %bb630
-
-bb221:		; preds = %bb212
-	%tmp22422511 = and i32 0, 1		; <i32> [#uses=1]
-	%toBool226 = icmp eq i32 %tmp22422511, 0		; <i1> [#uses=1]
-	br i1 %toBool226, label %bb239, label %bb230
-
-bb230:		; preds = %bb221
-	ret i32 0
-
-bb239:		; preds = %bb221
-	%tmp241 = load i32* getelementptr (%struct.layer_data* @base, i32 0, i32 17), align 4		; <i32> [#uses=0]
-	%tmp262 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp262, label %bb296, label %bb268
-
-bb268:		; preds = %bb239
-	%tmp270 = load i32* @chroma_format, align 4		; <i32> [#uses=1]
-	%tmp271 = icmp eq i32 %tmp270, 2		; <i1> [#uses=1]
-	br i1 %tmp271, label %bb277, label %bb282
-
-bb277:		; preds = %bb268
-	br label %bb312
-
-bb282:		; preds = %bb268
-	%tmp283 = load i32* @chroma_format, align 4		; <i32> [#uses=0]
-	br label %bb312
-
-bb296:		; preds = %bb239
-	%tmp298 = load i32* %macroblock_type		; <i32> [#uses=1]
-	%tmp2993009 = and i32 %tmp298, 1		; <i32> [#uses=1]
-	%toBool301 = icmp eq i32 %tmp2993009, 0		; <i1> [#uses=1]
-	br i1 %toBool301, label %bb312, label %bb305
-
-bb305:		; preds = %bb296
-	%tmp306 = load i32* @block_count, align 4		; <i32> [#uses=0]
-	%tmp308 = add i32 0, -1		; <i32> [#uses=0]
-	br label %bb312
-
-bb312:		; preds = %bb305, %bb296, %bb282, %bb277
-	%tmp313 = load i32* @Fault_Flag, align 4		; <i32> [#uses=1]
-	%tmp314 = icmp eq i32 %tmp313, 0		; <i1> [#uses=1]
-	br i1 %tmp314, label %bb398, label %bb630
-
-bb346:		; preds = %cond_true404
-	%toBool351 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	%tmp359 = icmp ne i32 0, 0		; <i1> [#uses=2]
-	br i1 %toBool351, label %bb372, label %bb355
-
-bb355:		; preds = %bb346
-	br i1 %tmp359, label %bb365, label %bb368
-
-bb365:		; preds = %bb355
-	br label %bb386
-
-bb368:		; preds = %bb355
-	call void @Decode_MPEG1_Intra_Block( i32 0, i32* %dc_dct_pred )
-	br label %bb386
-
-bb372:		; preds = %bb346
-	br i1 %tmp359, label %bb382, label %bb384
-
-bb382:		; preds = %bb372
-	br label %bb386
-
-bb384:		; preds = %bb372
-	call void @Decode_MPEG1_Non_Intra_Block( i32 0 )
-	br label %bb386
-
-bb386:		; preds = %bb384, %bb382, %bb368, %bb365
-	%tmp388 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp388, label %bb395, label %bb630
-
-bb395:		; preds = %cond_true404, %bb386
-	%tmp397 = add i32 0, 1		; <i32> [#uses=0]
-	ret i32 0
-
-bb398:		; preds = %bb312
-	%tmp401 = icmp slt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp401, label %cond_true404, label %bb407
-
-cond_true404:		; preds = %bb398
-	%tmp340341514 = and i32 0, 0		; <i32> [#uses=1]
-	%toBool342 = icmp eq i32 %tmp340341514, 0		; <i1> [#uses=1]
-	br i1 %toBool342, label %bb395, label %bb346
-
-bb407:		; preds = %bb398
-	%tmp408 = load i32* @picture_coding_type, align 4		; <i32> [#uses=0]
-	%tmp419 = load i32* %macroblock_type		; <i32> [#uses=1]
-	%tmp420 = and i32 %tmp419, 1		; <i32> [#uses=1]
-	%tmp421 = icmp eq i32 %tmp420, 0		; <i1> [#uses=0]
-	%tmp442 = load i32* %macroblock_type		; <i32> [#uses=1]
-	%tmp4434447 = and i32 %tmp442, 1		; <i32> [#uses=0]
-	%tmp450 = load i32* @concealment_motion_vectors, align 4		; <i32> [#uses=0]
-	%tmp572 = icmp eq i32 0, 4		; <i1> [#uses=1]
-	br i1 %tmp572, label %bb578, label %bb630
-
-bb578:		; preds = %bb407
-	%tmp613 = getelementptr [2 x [2 x i32]]* %PMV, i32 1, i32 1, i32 1		; <i32*> [#uses=0]
-	%tmp618 = getelementptr [2 x [2 x i32]]* %PMV, i32 1, i32 1, i32 0		; <i32*> [#uses=0]
-	%tmp623 = getelementptr [2 x [2 x i32]]* %PMV, i32 0, i32 1, i32 1		; <i32*> [#uses=0]
-	%tmp628 = getelementptr [2 x [2 x i32]]* %PMV, i32 0, i32 1, i32 0		; <i32*> [#uses=0]
-	ret i32 1
-
-bb630:		; preds = %bb407, %bb386, %bb312, %bb212, %bb157, %bb15
-	%tmp.0 = phi i32 [ 0, %bb15 ], [ 0, %bb157 ], [ 0, %bb212 ], [ 0, %bb312 ], [ 0, %bb386 ], [ 1, %bb407 ]		; <i32> [#uses=1]
-	ret i32 %tmp.0
-}
-
-declare void @motion_vectors([2 x [2 x i32]]*, i32*, [2 x i32]*, i32, i32, i32, i32, i32, i32, i32)
-
-declare void @motion_vector(i32*, i32*, i32, i32, i32, i32, i32)
-
-declare fastcc i32 @Get_I_macroblock_type()
-
-declare fastcc i32 @Get_P_macroblock_type()
-
-declare fastcc i32 @Get_B_macroblock_type()
-
-declare fastcc void @Get_D_macroblock_type()
-
-declare fastcc i32 @Get_I_Spatial_macroblock_type()
-
-declare fastcc i32 @Get_P_Spatial_macroblock_type()
-
-declare fastcc i32 @Get_B_Spatial_macroblock_type()
-
-declare fastcc i32 @Get_SNR_macroblock_type()
-
-declare i32 @Get_motion_code()
-
-declare i32 @Get_dmvector()
-
-declare fastcc void @idctrow(i16*)
-
-declare fastcc void @idctcol(i16*)
-
-declare void @Initialize_Fast_IDCT()
-
-declare void @Initialize_Reference_IDCT()
-
-declare double @cos(double)
-
-declare double @floor(double)
-
-declare fastcc void @decode_motion_vector(i32*, i32, i32, i32, i32)
-
-declare void @Dual_Prime_Arithmetic([2 x i32]*, i32*, i32, i32)
-
-declare i32 @main(i32, i8**)
-
-declare i32 @open(i8*, i32, ...)
-
-declare void @exit(i32)
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-declare i32 @lseek(i32, i32, i32)
-
-declare i32 @sprintf(i8*, i8*, ...)
-
-declare i32 @close(i32)
-
-declare fastcc void @Initialize_Decoder()
-
-declare fastcc void @Initialize_Sequence()
-
-declare void @Print_Bits(i32, i32, i32)
-
-declare fastcc void @Process_Options(i32, i8**)
-
-declare i32 @toupper(i32)
-
-declare i32 @atoi(i8*)
-
-declare fastcc i32 @Headers()
-
-declare fastcc void @Decode_Bitstream()
-
-declare fastcc void @Deinitialize_Sequence()
-
-declare fastcc i32 @video_sequence(i32*)
-
-declare void @Clear_Options()
-
-declare fastcc void @form_prediction(i8**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32)
-
-declare fastcc void @form_component_prediction(i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32)
-
-declare fastcc void @Read_Lower_Layer_Component_Framewise(i32, i32, i32)
-
-declare i8* @strcat(i8*, i8*)
-
-declare %struct.FILE* @fopen(i8*, i8*)
-
-declare i32 @_IO_getc(%struct.FILE*)
-
-declare i32 @fclose(%struct.FILE*)
-
-declare fastcc void @Read_Lower_Layer_Component_Fieldwise(i32, i32, i32)
-
-declare fastcc void @Make_Spatial_Prediction_Frame(i32, i32, i8*, i8*, i16*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32)
-
-declare fastcc void @Deinterlace(i8*, i8*, i32, i32, i32, i32)
-
-declare fastcc void @Subsample_Vertical(i8*, i16*, i32, i32, i32, i32, i32, i32, i32)
-
-declare fastcc void @Subsample_Horizontal(i16*, i8*, i32, i32, i32, i32, i32, i32, i32)
-
-declare fastcc void @store_one(i8*, i8**, i32, i32, i32)
-
-declare fastcc void @store_yuv(i8*, i8**, i32, i32, i32)
-
-declare fastcc void @store_yuv1(i8*, i8*, i32, i32, i32, i32)
-
-declare i32 @write(...)
-
-declare fastcc void @store_sif(i8*, i8**, i32, i32, i32)
-
-declare fastcc void @store_ppm_tga(i8*, i8**, i32, i32, i32, i32)
-
-declare fastcc void @putbyte(i32)
-
-declare fastcc void @putword(i32)
-
-declare fastcc void @conv422to444(i8*, i8*)
-
-declare fastcc void @conv420to422(i8*, i8*)
-
-declare fastcc void @Read_Frame(i8*, i8**, i32)
-
-declare fastcc i32 @Read_Components(i8*, i32)
-
-declare fastcc void @Read_Component(i8*, i8*, i32, i32)
-
-declare fastcc i32 @Extract_Components(i8*, i32)
-
-declare i32 @fseek(%struct.FILE*, i32, i32)
-
-declare i32 @fread(i8*, i32, i32, %struct.FILE*)
-
-declare fastcc void @Copy_Frame(i8*, i8*, i32, i32, i32, i32)
-
-declare i32 @Get_Long()
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/2009-01-25-SingleEntryPHI.ll b/libclamav/c++/llvm/test/Transforms/CondProp/2009-01-25-SingleEntryPHI.ll
deleted file mode 100644
index d14ce38..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/2009-01-25-SingleEntryPHI.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop | llvm-dis
-; PR3405
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-
-define i32 @main(i32 %argc, i8** %argv) nounwind {
-entry:
-	br label %bb2
-
-bb2:		; preds = %bb.bb2_crit_edge, %entry
-	br i1 false, label %bb5.thread2, label %bb
-
-bb:		; preds = %bb2
-	br i1 false, label %bb3, label %bb.bb2_crit_edge
-
-bb.bb2_crit_edge:		; preds = %bb
-	br label %bb2
-
-bb3:		; preds = %bb
-	%.lcssa4 = phi i1 [ false, %bb ]		; <i1> [#uses=1]
-	br i1 %.lcssa4, label %bb5.thread, label %bb6
-
-bb5.thread:		; preds = %bb3
-	br label %bb7
-
-bb7:		; preds = %bb5.thread2, %bb5.thread
-	br label %UnifiedReturnBlock
-
-bb6:		; preds = %bb3
-	br label %UnifiedReturnBlock
-
-bb5.thread2:		; preds = %bb2
-	br label %bb7
-
-UnifiedReturnBlock:		; preds = %bb6, %bb7
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/basictest-dbg.ll b/libclamav/c++/llvm/test/Transforms/CondProp/basictest-dbg.ll
deleted file mode 100644
index d8a680b..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/basictest-dbg.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop | llvm-dis | \
-; RUN:    not grep {br label}
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-
-define i32 @test(i1 %C) {
-        br i1 %C, label %T1, label %F1
-
-T1:             ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        br label %Cont
-
-F1:             ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        br label %Cont
-
-Cont:           ; preds = %F1, %T1
-        %C2 = phi i1 [ false, %F1 ], [ true, %T1 ]              ; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        br i1 %C2, label %T2, label %F2
-
-T2:             ; preds = %Cont
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        call void @bar( )
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        ret i32 17
-
-F2:             ; preds = %Cont
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        ret i32 1
-}
-
-declare void @bar()
-
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/basictest.ll b/libclamav/c++/llvm/test/Transforms/CondProp/basictest.ll
deleted file mode 100644
index 317247c..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/basictest.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop | llvm-dis | \
-; RUN:    not grep {br label}
-; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep T2
-
-
-define i32 @test(i1 %C) {
-        br i1 %C, label %T1, label %F1
-
-T1:             ; preds = %0
-        br label %Cont
-
-F1:             ; preds = %0
-        br label %Cont
-
-Cont:           ; preds = %F1, %T1
-        %C2 = phi i1 [ false, %F1 ], [ true, %T1 ]              ; <i1> [#uses=1]
-        br i1 %C2, label %T2, label %F2
-
-T2:             ; preds = %Cont
-        call void @bar( )
-        ret i32 17
-
-F2:             ; preds = %Cont
-        ret i32 1
-}
-
-declare void @bar()
-
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/dg.exp b/libclamav/c++/llvm/test/Transforms/CondProp/dg.exp
deleted file mode 100644
index 39954d8..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll}]]
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify.ll b/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify.ll
deleted file mode 100644
index 5b5a304..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi
-
-define i32 @test(i32 %C, i1 %Val) {
-        switch i32 %C, label %T1 [
-                 i32 4, label %T2
-                 i32 17, label %T3
-        ]
-
-T1:             ; preds = %0
-        call void @a( )
-        br label %Cont
-
-T2:             ; preds = %0
-        call void @b( )
-        br label %Cont
-
-T3:             ; preds = %0
-        call void @c( )
-        br label %Cont
-
-Cont:           ; preds = %T3, %T2, %T1
-        ;; PHI becomes dead after threading T2
-        %C2 = phi i1 [ %Val, %T1 ], [ true, %T2 ], [ %Val, %T3 ]                ; <i1> [#uses=1]
-        br i1 %C2, label %L2, label %F2
-
-L2:             ; preds = %Cont
-        call void @d( )
-        ret i32 17
-
-F2:             ; preds = %Cont
-        call void @e( )
-        ret i32 1
-}
-
-declare void @a()
-
-declare void @b()
-
-declare void @c()
-
-declare void @d()
-
-declare void @e()
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify2.ll b/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify2.ll
deleted file mode 100644
index 03d12e3..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify2.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi
-
-declare i1 @foo()
-
-define i32 @test(i32 %C) {
-        %Val = call i1 @foo( )          ; <i1> [#uses=2]
-        switch i32 %C, label %T1 [
-                 i32 4, label %T2
-                 i32 17, label %T3
-        ]
-
-T1:             ; preds = %0
-        call void @a( )
-        br label %Cont
-
-T2:             ; preds = %0
-        call void @b( )
-        br label %Cont
-
-T3:             ; preds = %0
-        call void @c( )
-        br label %Cont
-
-Cont:           ; preds = %T3, %T2, %T1
-        ;; PHI becomes dead after threading T2
-        %C2 = phi i1 [ %Val, %T1 ], [ true, %T2 ], [ %Val, %T3 ]                ; <i1> [#uses=1]
-        br i1 %C2, label %L2, label %F2
-
-L2:             ; preds = %Cont
-        call void @d( )
-        ret i32 17
-
-F2:             ; preds = %Cont
-        call void @e( )
-        ret i32 1
-}
-
-declare void @a()
-
-declare void @b()
-
-declare void @c()
-
-declare void @d()
-
-declare void @e()
diff --git a/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify3.ll b/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify3.ll
deleted file mode 100644
index 1678597..0000000
--- a/libclamav/c++/llvm/test/Transforms/CondProp/phisimplify3.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi
-
-define i32 @foo(i1, i32, i32) {
-prologue:
-	br i1 %0, label %eq, label %ne
-
-eq:		; preds = %prologue
-	store i32 0, i32* inttoptr (i32 10000 to i32*)
-	%3 = icmp eq i32 %1, %2		; <i1> [#uses=1]
-	br label %join
-
-ne:		; preds = %prologue
-	%4 = icmp ne i32 %1, %2		; <i1> [#uses=1]
-	br label %join
-
-join:		; preds = %ne, %eq
-	%5 = phi i1 [ %3, %eq ], [ %4, %ne ]		; <i1> [#uses=1]
-	br i1 %5, label %yes, label %no
-
-yes:		; preds = %join
-	store i32 0, i32* inttoptr (i32 20000 to i32*)
-	ret i32 5
-
-no:		; preds = %join
-	ret i32 20
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll
deleted file mode 100644
index 1a0845c..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; Make sure that the constant propogator doesn't divide by zero!
-;
-; RUN: llvm-as < %s | opt -constprop
-;
-
-define i32 @test() {
-        %R = sdiv i32 12, 0             ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i32 @test2() {
-        %R = srem i32 12, 0             ; <i32> [#uses=1]
-        ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2002-05-03-NotOperator.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2002-05-03-NotOperator.ll
deleted file mode 100644
index 7a281aa..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2002-05-03-NotOperator.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; This bug has to do with the fact that constant propogation was implemented in
-; terms of _logical_ not (! in C) instead of _bitwise_ not (~ in C).  This was
-; due to a spec change.
-
-; Fix #2: The unary not instruction now no longer exists. Change to xor.
-
-; RUN: llvm-as < $test | opt -constprop | llvm-dis | \
-; RUN:   not grep {i32 0}
-
-define i32 @test1() {
-        %R = xor i32 123, -1            ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i32 @test2() {
-        %R = xor i32 -123, -1           ; <i32> [#uses=1]
-        ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll
deleted file mode 100644
index 781d796..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; SetCC on boolean values was not implemented!
-
-; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | \
-; RUN:   not grep set
-
-define i1 @test1() {
-        %A = icmp ule i1 true, false            ; <i1> [#uses=1]
-        %B = icmp uge i1 true, false            ; <i1> [#uses=1]
-        %C = icmp ult i1 false, true            ; <i1> [#uses=1]
-        %D = icmp ugt i1 true, false            ; <i1> [#uses=1]
-        %E = icmp eq i1 false, false            ; <i1> [#uses=1]
-        %F = icmp ne i1 false, true             ; <i1> [#uses=1]
-        %G = and i1 %A, %B              ; <i1> [#uses=1]
-        %H = and i1 %C, %D              ; <i1> [#uses=1]
-        %I = and i1 %E, %F              ; <i1> [#uses=1]
-        %J = and i1 %G, %H              ; <i1> [#uses=1]
-        %K = and i1 %I, %J              ; <i1> [#uses=1]
-        ret i1 %K
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2003-05-12-DivideError.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2003-05-12-DivideError.ll
deleted file mode 100644
index a3f239f..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2003-05-12-DivideError.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; Make sure that the constant propagator doesn't cause a sigfpe
-;
-; RUN: llvm-as < %s | opt -constprop
-;
-
-define i32 @test() {
-        %R = sdiv i32 -2147483648, -1           ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i32 @test2() {
-        %R = srem i32 -2147483648, -1           ; <i32> [#uses=1]
-        ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll
deleted file mode 100644
index 9ffbcd1..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | \
-; RUN:    not grep {ret i1 false}
-
- at b = external global [2 x {  }]         ; <[2 x {  }]*> [#uses=2]
-
-define i1 @f() {
-        %tmp.2 = icmp eq {  }* getelementptr ([2 x {  }]* @b, i32 0, i32 0), getelementptr ([2 x {  }]* @b, i32 0, i32 1)                ; <i1> [#uses=1]
-        ret i1 %tmp.2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2006-11-30-vector-cast.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2006-11-30-vector-cast.ll
deleted file mode 100644
index 812cbcf..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2006-11-30-vector-cast.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | \
-; RUN:   grep {i32 -1}
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | \
-; RUN:   not grep zeroinitializer
-
-define <4 x i32> @test() {
-        %tmp40 = bitcast <2 x i64> bitcast (<4 x i32> < i32 0, i32 0, i32 -1, i32 0 > to <2 x i64>) to <4 x i32>; <<4 x i32>> [#uses=1]
-        ret <4 x i32> %tmp40
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll
deleted file mode 100644
index 889ef56..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {ret i1 false}
-define i1 @test() {
-        %X = trunc i32 320 to i1                ; <i1> [#uses=1]
-        ret i1 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2006-12-01-bool-casts.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2006-12-01-bool-casts.ll
deleted file mode 100644
index dd1e46d..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2006-12-01-bool-casts.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | \
-; RUN:    grep {ret i32 -1}
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | \
-; RUN:    grep {ret i32 1}
-
-define i32 @test1() {
-        %A = sext i1 true to i32                ; <i32> [#uses=1]
-        ret i32 %A
-}
-
-define i32 @test2() {
-        %A = zext i1 true to i32                ; <i32> [#uses=1]
-        ret i32 %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2007-02-05-BitCast.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2007-02-05-BitCast.ll
deleted file mode 100644
index a1d7c3e..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2007-02-05-BitCast.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | grep 1065353216
-
-define i32 @test() {
-        %A = bitcast float 1.000000e+00 to i32          ; <i32> [#uses=1]
-        ret i32 %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2007-02-23-sdiv.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2007-02-23-sdiv.ll
deleted file mode 100644
index 721199f..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2007-02-23-sdiv.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis | grep {global i32 0}
-; PR1215
-
- at G = global i32 sdiv (i32 0, i32 -1)
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2007-11-23-cttz.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2007-11-23-cttz.ll
deleted file mode 100644
index 995ce2f..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2007-11-23-cttz.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | grep {ret i13 13}
-; PR1816
-declare i13 @llvm.cttz.i13(i13)
-
-define i13 @test() {
-	%X = call i13 @llvm.cttz.i13(i13 0)
-	ret i13 %X
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll
deleted file mode 100644
index 2cb01ba..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop -disable-output
-; PR2529
-define <4 x i1> @test1(i32 %argc, i8** %argv) {
-entry:  
-        %foo = icmp slt <4 x i32> undef, <i32 14, i32 undef, i32 undef, i32 undef>
-        ret <4 x i1> %foo
-}
-
-define <4 x i1> @test2(i32 %argc, i8** %argv) {
-entry:  
-        %foo = icmp slt <4 x i32> <i32 undef, i32 undef, i32 undef, i32
-undef>, <i32 undef, i32 undef, i32 undef, i32 undef>
-        ret <4 x i1> %foo
-}
-
-
-define <4 x i1> @test3() {
-       %foo = fcmp ueq <4 x float> <float 0.0, float 0.0, float 0.0, float
-undef>, <float 1.0, float 1.0, float 1.0, float undef>
-	ret <4 x i1> %foo
-}
-
-define <4 x i1> @test4() {
-	%foo = fcmp ueq <4 x float> <float 0.0, float 0.0, float 0.0, float 0.0>, <float 1.0, float 1.0, float 1.0, float 0.0>
-
-	ret <4 x i1> %foo
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll
deleted file mode 100644
index 3322605..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis | not grep ptrtoint
-; PR4424
- at G = external global i32
- at test1 = constant i32 sdiv (i32 0, i32 ptrtoint (i32* @G to i32))
- at test2 = constant i32 udiv (i32 0, i32 ptrtoint (i32* @G to i32))
- at test3 = constant i32 srem (i32 0, i32 ptrtoint (i32* @G to i32))
- at test4 = constant i32 urem (i32 0, i32 ptrtoint (i32* @G to i32))
- at test5 = constant i32 lshr (i32 0, i32 ptrtoint (i32* @G to i32))
- at test6 = constant i32 ashr (i32 0, i32 ptrtoint (i32* @G to i32))
- at test7 = constant i32 shl (i32 0, i32 ptrtoint (i32* @G to i32))
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/basictest.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/basictest.ll
deleted file mode 100644
index 56892d9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/basictest.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; This is a basic sanity check for constant propogation.  The add instruction 
-; should be eliminated.
-
-; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep add
-
-define i32 @test(i1 %B) {
-        br i1 %B, label %BB1, label %BB2
-
-BB1:            ; preds = %0
-        %Val = add i32 0, 0             ; <i32> [#uses=1]
-        br label %BB3
-
-BB2:            ; preds = %0
-        br label %BB3
-
-BB3:            ; preds = %BB2, %BB1
-        %Ret = phi i32 [ %Val, %BB1 ], [ 1, %BB2 ]              ; <i32> [#uses=1]
-        ret i32 %Ret
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/bitcast.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/bitcast.ll
deleted file mode 100644
index bf943c9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/bitcast.ll
+++ /dev/null
@@ -1,2 +0,0 @@
-; RUN: llvm-as < %s | llvm-dis | grep 0x36A0000000000000
- at A = global float 0x36A0000000000000            ; <float*> [#uses=0]
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/bitcast2.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/bitcast2.ll
deleted file mode 100644
index 66def7f..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/bitcast2.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep bitcast
-; PR2165
-
-define <1 x i64> @test() {
-  %A = bitcast i64 63 to <1 x i64>
-  ret <1 x i64> %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/bswap.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/bswap.ll
deleted file mode 100644
index 4975827..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/bswap.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; bswap should be constant folded when it is passed a constant argument
-
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | not grep call
-
-declare i16 @llvm.bswap.i16(i16)
-
-declare i32 @llvm.bswap.i32(i32)
-
-declare i64 @llvm.bswap.i64(i64)
-
-define i16 @W() {
-        %Z = call i16 @llvm.bswap.i16( i16 1 )          ; <i16> [#uses=1]
-        ret i16 %Z
-}
-
-define i32 @X() {
-        %Z = call i32 @llvm.bswap.i32( i32 1 )          ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define i64 @Y() {
-        %Z = call i64 @llvm.bswap.i64( i64 1 )          ; <i64> [#uses=1]
-        ret i64 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/calls.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/calls.ll
deleted file mode 100644
index c573e56..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/calls.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | not grep call
-
-declare double @cos(double)
-
-declare double @sin(double)
-
-declare double @tan(double)
-
-declare double @sqrt(double)
-
-declare i1 @llvm.isunordered.f64(double, double)
-
-define double @T() {
-        %A = call double @cos( double 0.000000e+00 )            ; <double> [#uses=1]
-        %B = call double @sin( double 0.000000e+00 )            ; <double> [#uses=1]
-        %a = fadd double %A, %B          ; <double> [#uses=1]
-        %C = call double @tan( double 0.000000e+00 )            ; <double> [#uses=1]
-        %b = fadd double %a, %C          ; <double> [#uses=1]
-        %D = call double @sqrt( double 4.000000e+00 )           ; <double> [#uses=1]
-        %c = fadd double %b, %D          ; <double> [#uses=1]
-        ret double %c
-}
-
-define i1 @TNAN() {
-        %A = fcmp uno double 0x7FF8000000000000, 1.000000e+00           ; <i1> [#uses=1]
-        %B = fcmp uno double 1.230000e+02, 1.000000e+00         ; <i1> [#uses=1]
-        %C = or i1 %A, %B               ; <i1> [#uses=1]
-        ret i1 %C
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/dg.exp b/libclamav/c++/llvm/test/Transforms/ConstProp/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/div-zero.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/div-zero.ll
deleted file mode 100644
index 166c643..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/div-zero.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 0}
-; PR4424
-declare void @ext()
-
-define i32 @foo(i32 %ptr) {
-entry:
-        %zero = sub i32 %ptr, %ptr              ; <i32> [#uses=1]
-        %div_zero = sdiv i32 %zero, ptrtoint (i32* getelementptr (i32* null,
-i32 1) to i32)             ; <i32> [#uses=1]
-        ret i32 %div_zero
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/float-to-ptr-cast.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/float-to-ptr-cast.ll
deleted file mode 100644
index cbf84f5..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/float-to-ptr-cast.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop | llvm-dis | \
-; RUN:    grep -F {ret i32* null} | count 2
-
-define i32* @test1() {
-        %X = inttoptr i64 0 to i32*             ; <i32*> [#uses=1]
-        ret i32* %X
-}
-
-define i32* @test2() {
-        ret i32* null
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/logicaltest.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/logicaltest.ll
deleted file mode 100644
index 81bdb95..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/logicaltest.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; Ensure constant propogation of logical instructions is working correctly.
-
-; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | \
-; RUN:   not egrep {and|or|xor}
-
-define i32 @test1() {
-        %R = and i32 4, 1234            ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i1 @test1.upgrd.1() {
-        %R = and i1 true, false         ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i32 @test2() {
-        %R = or i32 4, 1234             ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i1 @test2.upgrd.2() {
-        %R = or i1 true, false          ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i32 @test3() {
-        %R = xor i32 4, 1234            ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i1 @test3.upgrd.3() {
-        %R = xor i1 true, false         ; <i1> [#uses=1]
-        ret i1 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/nottest.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/nottest.ll
deleted file mode 100644
index 41ea1b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/nottest.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; Ensure constant propogation of 'not' instructions is working correctly.
-
-; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep xor
-
-define i32 @test1() {
-        %R = xor i32 4, -1              ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i32 @test2() {
-        %R = xor i32 -23, -1            ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i1 @test3() {
-        %R = xor i1 true, true          ; <i1> [#uses=1]
-        ret i1 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/phi.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/phi.ll
deleted file mode 100644
index 858c0be..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/phi.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This is a basic sanity check for constant propogation.  The add instruction 
-; should be eliminated.
-
-; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep phi
-
-define i32 @test(i1 %B) {
-BB0:
-        br i1 %B, label %BB1, label %BB3
-
-BB1:            ; preds = %BB0
-        br label %BB3
-
-BB3:            ; preds = %BB1, %BB0
-        %Ret = phi i32 [ 1, %BB0 ], [ 1, %BB1 ]         ; <i32> [#uses=1]
-        ret i32 %Ret
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstProp/remtest.ll b/libclamav/c++/llvm/test/Transforms/ConstProp/remtest.ll
deleted file mode 100644
index 11861a4..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstProp/remtest.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; Ensure constant propagation of remainder instructions is working correctly.
-
-; RUN: llvm-as < %s | opt -constprop -die | llvm-dis | not grep rem
-
-define i32 @test1() {
-        %R = srem i32 4, 3              ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i32 @test2() {
-        %R = srem i32 123, -23          ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define float @test3() {
-        %R = frem float 0x4028E66660000000, 0x405ECDA1C0000000          ; <float> [#uses=1]
-        ret float %R
-}
-
-define double @test4() {
-        %R = frem double 0x4073833BEE07AFF8, 0x4028AAABB2A0D19C         ; <double> [#uses=1]
-        ret double %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll b/libclamav/c++/llvm/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll
deleted file mode 100644
index 658944d..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -constmerge > /dev/null
-
- at foo.upgrd.1 = internal constant { i32 } { i32 7 }              ; <{ i32 }*> [#uses=1]
- at bar = internal constant { i32 } { i32 7 }              ; <{ i32 }*> [#uses=1]
-
-declare i32 @test(i32*)
-
-define void @foo() {
-        call i32 @test( i32* getelementptr ({ i32 }* @foo.upgrd.1, i64 0, i32 0) )              ; <i32>:1 [#uses=0]
-        call i32 @test( i32* getelementptr ({ i32 }* @bar, i64 0, i32 0) )              ; <i32>:2 [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll b/libclamav/c++/llvm/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll
deleted file mode 100644
index 9a9c3dd..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | opt -constmerge | llvm-dis | %prcontext foo 2 | grep bar
-
- at foo = constant i32 6           ; <i32*> [#uses=0]
- at bar = constant i32 6           ; <i32*> [#uses=0]
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll b/libclamav/c++/llvm/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll
deleted file mode 100644
index a621b59..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -constmerge | llvm-dis | grep foo
-; RUN: llvm-as < %s | opt -constmerge | llvm-dis | grep bar
-
-; Don't merge constants in different sections.
-
- at G1 = internal constant i32 1, section "foo"            ; <i32*> [#uses=1]
- at G2 = internal constant i32 1, section "bar"            ; <i32*> [#uses=1]
- at G3 = internal constant i32 1, section "bar"            ; <i32*> [#uses=1]
-
-define void @test(i32** %P1, i32** %P2, i32** %P3) {
-        store i32* @G1, i32** %P1
-        store i32* @G2, i32** %P2
-        store i32* @G3, i32** %P3
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ConstantMerge/dg.exp b/libclamav/c++/llvm/test/Transforms/ConstantMerge/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/ConstantMerge/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll
deleted file mode 100644
index 0d86800..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim -disable-output
-
-define internal void @build_delaunay({ i32 }* sret  %agg.result) {
-        ret void
-}
-
-define void @test() {
-        call void @build_delaunay( { i32 }* sret  null )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-02-07-FuncRename.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-02-07-FuncRename.ll
deleted file mode 100644
index 2b3a2ea..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-02-07-FuncRename.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | grep {@test(}
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep dead
-
-define internal i32 @test(i32 %X, i32 %dead) {
-	ret i32 %X
-}
-
-define i32 @caller() {
-	%A = call i32 @test(i32 123, i32 456)
-	ret i32 %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-10-18-VarargsReturn.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-10-18-VarargsReturn.ll
deleted file mode 100644
index 2a09b76..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-10-18-VarargsReturn.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep {ret i32 0}
-; PR1735
-
-define internal i32 @test(i32 %A, ...) { 
-	ret i32 %A
-}
-
-define i32 @foo() {
-	%A = call i32(i32, ...)* @test(i32 1)
-	ret i32 %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-12-20-ParamAttrs.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-12-20-ParamAttrs.ll
deleted file mode 100644
index 47a85ea..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2007-12-20-ParamAttrs.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis > %t
-; RUN: cat %t | grep nounwind | count 2
-; RUN: cat %t | grep signext | count 2
-; RUN: cat %t | not grep inreg
-; RUN: cat %t | not grep zeroext
-; RUN: cat %t | not grep byval
-
-	%struct = type { }
-
- at g = global i8 0
-
-define internal i8 @foo(i8* inreg %p, i8 signext %y, ... ) zeroext nounwind {
-	store i8 %y, i8* @g
-	ret i8 0
-}
-
-define i32 @bar() {
-	%A = call i8(i8*, i8, ...)* @foo(i8* inreg null, i8 signext 1, %struct* byval null ) zeroext nounwind
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll
deleted file mode 100644
index 96cddf1..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | grep byval
-
-	%struct.point = type { double, double }
- at pts = global [4 x %struct.point] [ %struct.point { double 1.000000e+00, double 2.000000e+00 }, %struct.point { double 3.000000e+00, double 4.000000e+00 }, %struct.point { double 5.000000e+00, double 6.000000e+00 }, %struct.point { double 7.000000e+00, double 8.000000e+00 } ], align 32		; <[4 x %struct.point]*> [#uses=1]
-
-define internal i32 @va1(i32 %nargs, ...) {
-entry:
-	%pi = alloca %struct.point		; <%struct.point*> [#uses=0]
-	%args = alloca i8*		; <i8**> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%args1 = bitcast i8** %args to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_start( i8* %args1 )
-	%args41 = bitcast i8** %args to i8*		; <i8*> [#uses=1]
-	call void @llvm.va_end( i8* %args41 )
-	ret i32 undef
-}
-
-declare void @llvm.va_start(i8*) nounwind 
-
-declare void @llvm.va_end(i8*) nounwind 
-
-define i32 @main() {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp = getelementptr [4 x %struct.point]* @pts, i32 0, i32 0		; <%struct.point*> [#uses=1]
-	%tmp1 = call i32 (i32, ...)* @va1( i32 1, %struct.point* byval  %tmp ) nounwind 		; <i32> [#uses=0]
-	call void @exit( i32 0 ) noreturn nounwind 
-	unreachable
-}
-
-declare void @exit(i32) noreturn nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2008-06-23-DeadAfterLive.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/2008-06-23-DeadAfterLive.ll
deleted file mode 100644
index 2c94160..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2008-06-23-DeadAfterLive.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim -die | llvm-dis > %t
-; RUN: cat %t | grep 123
-
-; This test tries to catch wrongful removal of return values for a specific case
-; that was break llvm-gcc builds.
-
-; This function has a live return value, it is used by @alive.
-define internal i32 @test5() {
-  ret i32 123 
-}
-
-; This function doesn't use the return value @test5 and tries to lure DAE into
-; marking @test5's return value dead because only this call is unused.
-define i32 @dead() {
-  %DEAD = call i32 @test5()
-  ret i32 0
-}
-
-; This function ensures the retval of @test5 is live.
-define i32 @alive() {
-  %LIVE = call i32 @test5()
-  ret i32 %LIVE
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll
deleted file mode 100644
index f5f2ce1..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis
-; PR3807
-
-define internal { i32, i32 } @foo() {
-  ret {i32,i32} {i32 42, i32 4}
-}
-
-define i32 @bar() {
-  %x = invoke {i32,i32} @foo() to label %T unwind label %T2
-T:
-  %y = extractvalue {i32,i32} %x, 1
-  ret i32 %y
-T2:
-  unreachable
-}
-
-define i32 @bar2() {
-entry:
-  %x = invoke {i32,i32} @foo() to label %T unwind label %T2
-T:
-  %PN = phi i32 [0, %entry]
-  %y = extractvalue {i32,i32} %x, 1
-  ret i32 %y
-T2:
-  unreachable
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/basictest.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/basictest.ll
deleted file mode 100644
index 5f68f98..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/basictest.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep DEADARG
-
-; test - an obviously dead argument
-define internal i32 @test(i32 %v, i32 %DEADARG1, i32* %p) {
-        store i32 %v, i32* %p
-        ret i32 %v
-}
-
-; hardertest - an argument which is only used by a call of a function with a 
-; dead argument.
-define internal i32 @hardertest(i32 %DEADARG2) {
-        %p = alloca i32         ; <i32*> [#uses=1]
-        %V = call i32 @test( i32 5, i32 %DEADARG2, i32* %p )            ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-; evenhardertest - recursive dead argument...
-define internal void @evenhardertest(i32 %DEADARG3) {
-        call void @evenhardertest( i32 %DEADARG3 )
-        ret void
-}
-
-define internal void @needarg(i32 %TEST) {
-        call i32 @needarg2( i32 %TEST )         ; <i32>:1 [#uses=0]
-        ret void
-}
-
-define internal i32 @needarg2(i32 %TEST) {
-        ret i32 %TEST
-}
-
-define internal void @needarg3(i32 %TEST3) {
-        call void @needarg( i32 %TEST3 )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/canon.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/canon.ll
deleted file mode 100644
index b8adb71..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/canon.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; This test shows a few canonicalizations made by deadargelim
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis > %t
-; This test should remove {} and replace it with void
-; RUN: cat %t | grep {define internal void @test}
-; This test shouls replace the {i32} return value with just i32
-; RUN: cat %t | grep {define internal i32 @test2}
-
-define internal {} @test() {
-  ret {} undef
-}
-
-define internal {i32} @test2() {
-  ret {i32} undef;
-}
-
-define void @caller() {
-  call {} @test()
-  %X = call {i32} @test2();
-  %Y = extractvalue {i32} %X, 0
-  call void @user(i32 %Y, {i32} %X)
-  ret void
-}
-
-declare void @user(i32, {i32})
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/dead_vaargs.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/dead_vaargs.ll
deleted file mode 100644
index a4444bc..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/dead_vaargs.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep 47 
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep 1.0
-
-define i32 @bar(i32 %A) {
-        %tmp4 = tail call i32 (i32, ...)* @foo( i32 %A, i32 %A, i32 %A, i32 %A, i64 47, double 1.000000e+00 )   ; <i32> [#uses=1]
-        ret i32 %tmp4
-}
-
-define internal i32 @foo(i32 %X, ...) {
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/deadretval.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/deadretval.ll
deleted file mode 100644
index 5395290..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/deadretval.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep DEAD
-
-; Dead arg only used by dead retval
-define internal i32 @test(i32 %DEADARG) {
-        ret i32 %DEADARG
-}
-
-define i32 @test2(i32 %A) {
-        %DEAD = call i32 @test( i32 %A )                ; <i32> [#uses=0]
-        ret i32 123
-}
-
-define i32 @test3() {
-        %X = call i32 @test2( i32 3232 )                ; <i32> [#uses=1]
-        %Y = add i32 %X, -123           ; <i32> [#uses=1]
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/deadretval2.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/deadretval2.ll
deleted file mode 100644
index 316d755..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/deadretval2.ll
+++ /dev/null
@@ -1,59 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim -die | llvm-dis > %t
-; RUN: cat %t | not grep DEAD
-; RUN: cat %t | grep LIVE | count 4
-
- at P = external global i32                ; <i32*> [#uses=1]
-
-; Dead arg only used by dead retval
-define internal i32 @test(i32 %DEADARG) {
-        ret i32 %DEADARG
-}
-
-define internal i32 @test2(i32 %DEADARG) {
-        %DEADRETVAL = call i32 @test( i32 %DEADARG )            ; <i32> [#uses=1]
-        ret i32 %DEADRETVAL
-}
-
-define void @test3(i32 %X) {
-        %DEADRETVAL = call i32 @test2( i32 %X )         ; <i32> [#uses=0]
-        ret void
-}
-
-define internal i32 @foo() {
-        %DEAD = load i32* @P            ; <i32> [#uses=1]
-        ret i32 %DEAD
-}
-
-define internal i32 @id(i32 %X) {
-        ret i32 %X
-}
-
-define void @test4() {
-        %DEAD = call i32 @foo( )                ; <i32> [#uses=1]
-        %DEAD2 = call i32 @id( i32 %DEAD )              ; <i32> [#uses=0]
-        ret void
-}
-
-; These test if returning another functions return value properly marks that
-; other function's return value as live. We do this twice, with the functions in
-; different orders (ie, first the caller, than the callee and first the callee
-; and then the caller) since DAE processes functions one by one and handles
-; these cases slightly different.
-
-define internal i32 @test5() {
-  ret i32 123 
-}
-
-define i32 @test6() {
-  %LIVE = call i32 @test5()
-  ret i32 %LIVE
-}
-
-define i32 @test7() {
-  %LIVE = call i32 @test8()
-  ret i32 %LIVE
-}
-
-define internal i32 @test8() {
-  ret i32 124
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/dg.exp b/libclamav/c++/llvm/test/Transforms/DeadArgElim/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/keepalive.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/keepalive.ll
deleted file mode 100644
index 899ebd9..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/keepalive.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -deadargelim | llvm-dis > %t
-; RUN: grep {define internal zeroext i32 @test1() nounwind} %t
-; RUN: grep {define internal %Ty @test2} %t
-
-%Ty = type <{ i32, i32 }>
-
-; Check if the pass doesn't modify anything that doesn't need changing. We feed
-; an unused argument to each function to lure it into changing _something_ about
-; the function and then changing too much.
-
-; This checks if the return value attributes are not removed
-define internal zeroext i32 @test1(i32 %DEADARG1) nounwind {
-        ret i32 1
-}
-
-; This checks if the struct doesn't get non-packed
-define internal <{ i32, i32 }> @test2(i32 %DEADARG1) {
-        ret <{ i32, i32 }> <{ i32 1, i32 2 }>
-}
-
-; We use this external function to make sure the return values don't become dead
-declare void @user(i32, <{ i32, i32 }>)
-
-define void @caller() {
-        %B = call i32 @test1(i32 1)
-        %C = call <{ i32, i32 }> @test2(i32 2)
-        call void @user(i32 %B, <{ i32, i32 }> %C)
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadArgElim/multdeadretval.ll b/libclamav/c++/llvm/test/Transforms/DeadArgElim/multdeadretval.ll
deleted file mode 100644
index 6e0474a..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadArgElim/multdeadretval.ll
+++ /dev/null
@@ -1,68 +0,0 @@
-; This test sees if return values (and arguments) are properly removed when they
-; are unused. All unused values are typed i16, so we can easily check. We also
-; run instcombine to fold insert/extractvalue chains and we run dce to clean up
-; any remaining dead stuff.
-; RUN: llvm-as < %s | opt -deadargelim -instcombine -dce | llvm-dis | not grep i16
-
-define internal {i16, i32} @test(i16 %DEADARG) {
-        %A = insertvalue {i16,i32} undef, i16 1, 0
-        %B = insertvalue {i16,i32} %A, i32 1001, 1
-        ret {i16,i32} %B
-}
-
-define internal {i32, i16} @test2() {
-        %DEAD = call i16 @test4()
-        %A = insertvalue {i32,i16} undef, i32 1, 0
-        %B = insertvalue {i32,i16} %A, i16 %DEAD, 1
-        ret {i32,i16} %B
-}
-
-; Dead argument, used to check if the second result of test2 is dead even when
-; it's used as a dead argument
-define internal i32 @test3(i16 %A) {
-        %ret = call {i16, i32} @test( i16 %A )                ; <i32> [#uses=0]
-        %DEAD = extractvalue {i16, i32} %ret, 0
-        %LIVE = extractvalue {i16, i32} %ret, 1
-        ret i32 %LIVE
-}
-
-define internal i16 @test4() {
-        ret i16 0
-}
-
-; Multiple return values, multiple live return values
-define internal {i32, i32, i16} @test5() {
-        %A = insertvalue {i32,i32,i16} undef, i32 1, 0
-        %B = insertvalue {i32,i32,i16} %A, i32 2, 1
-        %C = insertvalue {i32,i32,i16} %B, i16 3, 2
-        ret {i32, i32, i16} %C
-}
-
-; Nested return values
-define internal {{i32}, {i16, i16}} @test6() {
-        %A = insertvalue {{i32}, {i16, i16}} undef, i32 1, 0, 0
-        %B = insertvalue {{i32}, {i16, i16}} %A, i16 2, 1, 0
-        %C = insertvalue {{i32}, {i16, i16}} %B, i16 3, 1, 1
-        ret {{i32}, {i16, i16}} %C
-}
-
-define i32 @main() {
-        %ret = call {i32, i16} @test2()                ; <i32> [#uses=1]
-        %LIVE = extractvalue {i32, i16} %ret, 0
-        %DEAD = extractvalue {i32, i16} %ret, 1
-        %Y = add i32 %LIVE, -123           ; <i32> [#uses=1]
-        %LIVE2 = call i32 @test3(i16 %DEAD)                ; <i32> [#uses=1]
-        %Z = add i32 %LIVE2, %Y           ; <i32> [#uses=1]
-        %ret1 = call { i32, i32, i16 } @test5 ()
-        %LIVE3 = extractvalue { i32, i32, i16} %ret1, 0
-        %LIVE4 = extractvalue { i32, i32, i16} %ret1, 1
-        %DEAD2 = extractvalue { i32, i32, i16} %ret1, 2
-        %V = add i32 %LIVE3, %LIVE4
-        %W = add i32 %Z, %V
-        %ret2 = call { { i32 }, { i16, i16 } } @test6 ()
-        %LIVE5 = extractvalue { { i32 }, { i16, i16 } } %ret2, 0, 0
-        %DEAD3 = extractvalue { { i32 }, { i16, i16 } } %ret2, 1, 0
-        %DEAD4 = extractvalue { { i32 }, { i16, i16 } } %ret2, 1, 1
-        %Q = add i32 %W, %LIVE5
-        ret i32 %Q
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll
deleted file mode 100644
index 54fa078..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2004-11-28-LiveStoreDeleted.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -dse -scalarrepl -instcombine | \
-; RUN:   llvm-dis | not grep {ret i32 undef}
-
-define i32 @test(double %__x) {
-        %__u = alloca { [3 x i32] }             ; <{ [3 x i32] }*> [#uses=2]
-        %tmp.1 = bitcast { [3 x i32] }* %__u to double*         ; <double*> [#uses=1]
-        store double %__x, double* %tmp.1
-        %tmp.4 = getelementptr { [3 x i32] }* %__u, i32 0, i32 0, i32 1         ; <i32*> [#uses=1]
-        %tmp.5 = load i32* %tmp.4               ; <i32> [#uses=1]
-        %tmp.6 = icmp slt i32 %tmp.5, 0         ; <i1> [#uses=1]
-        %tmp.7 = zext i1 %tmp.6 to i32          ; <i32> [#uses=1]
-        ret i32 %tmp.7
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll
deleted file mode 100644
index 3c40347..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | \
-; RUN:    grep {store i32 1234567}
-
-; Do not delete stores that are only partially killed.
-
-define i32 @test() {
-        %V = alloca i32         ; <i32*> [#uses=3]
-        store i32 1234567, i32* %V
-        %V2 = bitcast i32* %V to i8*            ; <i8*> [#uses=1]
-        store i8 0, i8* %V2
-        %X = load i32* %V               ; <i32> [#uses=1]
-        ret i32 %X
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll
deleted file mode 100644
index 58d6787..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2005-11-30-vaarg.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | grep store
-
-define double @foo(i8* %X) {
-        %X_addr = alloca i8*            ; <i8**> [#uses=2]
-        store i8* %X, i8** %X_addr
-        %tmp.0 = va_arg i8** %X_addr, double            ; <double> [#uses=1]
-        ret double %tmp.0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll
deleted file mode 100644
index 3b3f8ad..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll
+++ /dev/null
@@ -1,1113 +0,0 @@
-; RUN: llvm-as < %s | opt -globalsmodref-aa -dse -disable-output
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin8"
-	%struct.ECacheType = type { i32, i32, i32 }
-	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
-	%struct.QTType = type { i8, i8, i16, i32, i32, i32 }
-	%struct.TType = type { i8, i8, i8, i8, i16, i32, i32, i32 }
-	%struct._RuneEntry = type { i32, i32, i32, i32* }
-	%struct._RuneLocale = type { [8 x i8], [32 x i8], i32 (i8*, i32, i8**)*, i32 (i32, i8*, i32, i8**)*, i32, [256 x i32], [256 x i32], [256 x i32], %struct._RuneRange, %struct._RuneRange, %struct._RuneRange, i8*, i32 }
-	%struct._RuneRange = type { i32, %struct._RuneEntry* }
-	%struct.__sFILEX = type opaque
-	%struct.__sbuf = type { i8*, i32 }
-	%struct.move_s = type { i32, i32, i32, i32, i32, i32 }
-	%struct.move_x = type { i32, i32, i32, i32 }
-	%struct.node_t = type { i8, i8, i8, i8, i32, i32, %struct.node_t**, %struct.node_t*, %struct.move_s }
-	%struct.see_data = type { i32, i32 }
- at rook_o.2925 = internal global [4 x i32] [ i32 12, i32 -12, i32 1, i32 -1 ]		; <[4 x i32]*> [#uses=0]
- at bishop_o.2926 = internal global [4 x i32] [ i32 11, i32 -11, i32 13, i32 -13 ]		; <[4 x i32]*> [#uses=0]
- at knight_o.2927 = internal global [8 x i32] [ i32 10, i32 -10, i32 14, i32 -14, i32 23, i32 -23, i32 25, i32 -25 ]		; <[8 x i32]*> [#uses=0]
- at board = internal global [144 x i32] zeroinitializer		; <[144 x i32]*> [#uses=0]
- at holding = internal global [2 x [16 x i32]] zeroinitializer		; <[2 x [16 x i32]]*> [#uses=0]
- at hold_hash = internal global i32 0		; <i32*> [#uses=0]
- at white_hand_eval = internal global i32 0		; <i32*> [#uses=0]
- at black_hand_eval = internal global i32 0		; <i32*> [#uses=0]
- at num_holding = internal global [2 x i32] zeroinitializer		; <[2 x i32]*> [#uses=0]
- at zobrist = internal global [14 x [144 x i32]] zeroinitializer		; <[14 x [144 x i32]]*> [#uses=0]
- at Variant = internal global i32 0		; <i32*> [#uses=7]
- at userealholdings.b = internal global i1 false		; <i1*> [#uses=1]
- at realholdings = internal global [255 x i8] zeroinitializer		; <[255 x i8]*> [#uses=0]
- at comp_color = internal global i32 0		; <i32*> [#uses=0]
- at C.97.3177 = internal global [13 x i32] [ i32 0, i32 2, i32 1, i32 4, i32 3, i32 0, i32 0, i32 8, i32 7, i32 10, i32 9, i32 12, i32 11 ]		; <[13 x i32]*> [#uses=0]
- at str = internal global [30 x i8] c"%s:%u: failed assertion `%s'\0A\00"		; <[30 x i8]*> [#uses=0]
- at str.upgrd.1 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/crazy.c\00"		; <[81 x i8]*> [#uses=0]
- at str.upgrd.2 = internal global [32 x i8] c"piece > frame && piece < npiece\00"		; <[32 x i8]*> [#uses=0]
- at C.101.3190 = internal global [13 x i32] [ i32 0, i32 2, i32 1, i32 2, i32 1, i32 0, i32 0, i32 2, i32 1, i32 2, i32 1, i32 2, i32 1 ]		; <[13 x i32]*> [#uses=0]
- at hand_value = internal global [13 x i32] [ i32 0, i32 100, i32 -100, i32 210, i32 -210, i32 0, i32 0, i32 250, i32 -250, i32 450, i32 -450, i32 230, i32 -230 ]		; <[13 x i32]*> [#uses=0]
- at material = internal global [14 x i32] zeroinitializer		; <[14 x i32]*> [#uses=0]
- at Material = internal global i32 0		; <i32*> [#uses=0]
- at str.upgrd.3 = internal global [23 x i8] c"holding[who][what] > 0\00"		; <[23 x i8]*> [#uses=0]
- at str.upgrd.4 = internal global [24 x i8] c"holding[who][what] < 20\00"		; <[24 x i8]*> [#uses=0]
- at fifty = internal global i32 0		; <i32*> [#uses=0]
- at move_number = internal global i32 0		; <i32*> [#uses=1]
- at ply = internal global i32 0		; <i32*> [#uses=2]
- at hash_history = internal global [600 x i32] zeroinitializer		; <[600 x i32]*> [#uses=1]
- at hash = internal global i32 0		; <i32*> [#uses=1]
- at ECacheSize.b = internal global i1 false		; <i1*> [#uses=1]
- at ECache = internal global %struct.ECacheType* null		; <%struct.ECacheType**> [#uses=1]
- at ECacheProbes = internal global i32 0		; <i32*> [#uses=1]
- at ECacheHits = internal global i32 0		; <i32*> [#uses=1]
- at str.upgrd.5 = internal global [34 x i8] c"Out of memory allocating ECache.\0A\00"		; <[34 x i8]*> [#uses=0]
- at rankoffsets.2930 = internal global [8 x i32] [ i32 110, i32 98, i32 86, i32 74, i32 62, i32 50, i32 38, i32 26 ]		; <[8 x i32]*> [#uses=0]
- at white_castled = internal global i32 0		; <i32*> [#uses=0]
- at black_castled = internal global i32 0		; <i32*> [#uses=0]
- at book_ply = internal global i32 0		; <i32*> [#uses=0]
- at bking_loc = internal global i32 0		; <i32*> [#uses=1]
- at wking_loc = internal global i32 0		; <i32*> [#uses=1]
- at white_to_move = internal global i32 0		; <i32*> [#uses=3]
- at moved = internal global [144 x i32] zeroinitializer		; <[144 x i32]*> [#uses=0]
- at ep_square = internal global i32 0		; <i32*> [#uses=0]
- at _DefaultRuneLocale = external global %struct._RuneLocale		; <%struct._RuneLocale*> [#uses=0]
- at str.upgrd.6 = internal global [3 x i8] c"bm\00"		; <[3 x i8]*> [#uses=0]
- at str1 = internal global [3 x i8] c"am\00"		; <[3 x i8]*> [#uses=0]
- at str1.upgrd.7 = internal global [34 x i8] c"No best-move or avoid-move found!\00"		; <[34 x i8]*> [#uses=0]
- at str.upgrd.8 = internal global [25 x i8] c"\0AName of EPD testsuite: \00"		; <[25 x i8]*> [#uses=0]
- at __sF = external global [0 x %struct.FILE]		; <[0 x %struct.FILE]*> [#uses=0]
- at str.upgrd.9 = internal global [21 x i8] c"\0ATime per move (s): \00"		; <[21 x i8]*> [#uses=0]
- at str.upgrd.10 = internal global [2 x i8] c"\0A\00"		; <[2 x i8]*> [#uses=0]
- at str2 = internal global [2 x i8] c"r\00"		; <[2 x i8]*> [#uses=0]
- at root_to_move = internal global i32 0		; <i32*> [#uses=1]
- at forcedwin.b = internal global i1 false		; <i1*> [#uses=2]
- at fixed_time = internal global i32 0		; <i32*> [#uses=1]
- at nodes = internal global i32 0		; <i32*> [#uses=1]
- at qnodes = internal global i32 0		; <i32*> [#uses=1]
- at str.upgrd.11 = internal global [29 x i8] c"\0ANodes: %i (%0.2f%% qnodes)\0A\00"		; <[29 x i8]*> [#uses=0]
- at str.upgrd.12 = internal global [54 x i8] c"ECacheProbes : %u   ECacheHits : %u   HitRate : %f%%\0A\00"		; <[54 x i8]*> [#uses=0]
- at TTStores = internal global i32 0		; <i32*> [#uses=1]
- at TTProbes = internal global i32 0		; <i32*> [#uses=1]
- at TTHits = internal global i32 0		; <i32*> [#uses=1]
- at str.upgrd.13 = internal global [60 x i8] c"TTStores : %u TTProbes : %u   TTHits : %u   HitRate : %f%%\0A\00"		; <[60 x i8]*> [#uses=0]
- at NTries = internal global i32 0		; <i32*> [#uses=1]
- at NCuts = internal global i32 0		; <i32*> [#uses=1]
- at TExt = internal global i32 0		; <i32*> [#uses=1]
- at str.upgrd.14 = internal global [51 x i8] c"NTries : %u  NCuts : %u  CutRate : %f%%  TExt: %u\0A\00"		; <[51 x i8]*> [#uses=0]
- at ext_check = internal global i32 0		; <i32*> [#uses=1]
- at razor_drop = internal global i32 0		; <i32*> [#uses=1]
- at razor_material = internal global i32 0		; <i32*> [#uses=1]
- at str.upgrd.15 = internal global [61 x i8] c"Check extensions: %u  Razor drops : %u  Razor Material : %u\0A\00"		; <[61 x i8]*> [#uses=0]
- at FHF = internal global i32 0		; <i32*> [#uses=1]
- at FH = internal global i32 0		; <i32*> [#uses=1]
- at str.upgrd.16 = internal global [22 x i8] c"Move ordering : %f%%\0A\00"		; <[22 x i8]*> [#uses=0]
- at maxposdiff = internal global i32 0		; <i32*> [#uses=1]
- at str.upgrd.17 = internal global [47 x i8] c"Material score: %d  Eval : %d  MaxPosDiff: %d\0A\00"		; <[47 x i8]*> [#uses=0]
- at str.upgrd.18 = internal global [17 x i8] c"Solution found.\0A\00"		; <[17 x i8]*> [#uses=0]
- at str3 = internal global [21 x i8] c"Solution not found.\0A\00"		; <[21 x i8]*> [#uses=0]
- at str.upgrd.19 = internal global [15 x i8] c"Solved: %d/%d\0A\00"		; <[15 x i8]*> [#uses=0]
- at str.upgrd.20 = internal global [9 x i8] c"EPD: %s\0A\00"		; <[9 x i8]*> [#uses=0]
- at str4 = internal global [21 x i8] c"Searching to %d ply\0A\00"		; <[21 x i8]*> [#uses=0]
- at maxdepth = internal global i32 0		; <i32*> [#uses=0]
- at std_material = internal global [14 x i32] [ i32 0, i32 100, i32 -100, i32 310, i32 -310, i32 4000, i32 -4000, i32 500, i32 -500, i32 900, i32 -900, i32 325, i32 -325, i32 0 ]		; <[14 x i32]*> [#uses=0]
- at zh_material = internal global [14 x i32] [ i32 0, i32 100, i32 -100, i32 210, i32 -210, i32 4000, i32 -4000, i32 250, i32 -250, i32 450, i32 -450, i32 230, i32 -230, i32 0 ]		; <[14 x i32]*> [#uses=0]
- at suicide_material = internal global [14 x i32] [ i32 0, i32 15, i32 -15, i32 150, i32 -150, i32 500, i32 -500, i32 150, i32 -150, i32 50, i32 -50, i32 0, i32 0, i32 0 ]		; <[14 x i32]*> [#uses=0]
- at losers_material = internal global [14 x i32] [ i32 0, i32 80, i32 -80, i32 320, i32 -320, i32 1000, i32 -1000, i32 350, i32 -350, i32 400, i32 -400, i32 270, i32 -270, i32 0 ]		; <[14 x i32]*> [#uses=0]
- at Xfile = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at Xrank = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 0, i32 0, i32 0, i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 0, i32 0, i32 0, i32 0, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 6, i32 0, i32 0, i32 0, i32 0, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 0, i32 0, i32 0, i32 0, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at Xdiagl = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 0, i32 0, i32 0, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 0, i32 0, i32 0, i32 0, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 0, i32 0, i32 0, i32 0, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 0, i32 0, i32 0, i32 0, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 0, i32 0, i32 0, i32 0, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 0, i32 0, i32 0, i32 0, i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at Xdiagr = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 0, i32 0, i32 0, i32 0, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 0, i32 0, i32 0, i32 0, i32 13, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 0, i32 0, i32 0, i32 0, i32 12, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 0, i32 0, i32 0, i32 0, i32 11, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 0, i32 0, i32 0, i32 0, i32 10, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 0, i32 0, i32 0, i32 0, i32 9, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at sqcolor = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at pcsqbishop = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 10, i32 5, i32 10, i32 10, i32 5, i32 10, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 5, i32 6, i32 15, i32 15, i32 6, i32 5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 3, i32 15, i32 10, i32 10, i32 15, i32 3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 3, i32 15, i32 10, i32 10, i32 15, i32 3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 5, i32 6, i32 15, i32 15, i32 6, i32 5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 10, i32 5, i32 10, i32 10, i32 5, i32 10, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 -10, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at black_knight = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 25, i32 25, i32 25, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 35, i32 35, i32 35, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 10, i32 25, i32 20, i32 25, i32 25, i32 10, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 20, i32 20, i32 20, i32 20, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -35, i32 -10, i32 -10, i32 -10, i32 -10, i32 -35, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at white_knight = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -35, i32 -10, i32 -10, i32 -10, i32 -10, i32 -35, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 20, i32 20, i32 20, i32 20, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 10, i32 25, i32 20, i32 25, i32 25, i32 10, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 35, i32 35, i32 35, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 15, i32 25, i32 25, i32 25, i32 25, i32 15, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at white_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 25, i32 25, i32 35, i32 5, i32 5, i32 50, i32 45, i32 30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 7, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 14, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 20, i32 20, i32 10, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 12, i32 18, i32 18, i32 27, i32 27, i32 18, i32 18, i32 18, i32 0, i32 0, i32 0, i32 0, i32 25, i32 30, i32 30, i32 35, i32 35, i32 35, i32 30, i32 25, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at black_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 30, i32 30, i32 30, i32 35, i32 35, i32 35, i32 30, i32 25, i32 0, i32 0, i32 0, i32 0, i32 12, i32 18, i32 18, i32 27, i32 27, i32 18, i32 18, i32 18, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 20, i32 20, i32 10, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 14, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 7, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 25, i32 25, i32 35, i32 5, i32 5, i32 50, i32 45, i32 30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at white_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -100, i32 7, i32 4, i32 0, i32 10, i32 4, i32 7, i32 -100, i32 0, i32 0, i32 0, i32 0, i32 -250, i32 -200, i32 -150, i32 -100, i32 -100, i32 -150, i32 -200, i32 -250, i32 0, i32 0, i32 0, i32 0, i32 -350, i32 -300, i32 -300, i32 -250, i32 -250, i32 -300, i32 -300, i32 -350, i32 0, i32 0, i32 0, i32 0, i32 -400, i32 -400, i32 -400, i32 -350, i32 -350, i32 -400, i32 -400, i32 -400, i32 0, i32 0, i32 0, i32 0, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at black_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 -500, i32 0, i32 0, i32 0, i32 0, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 -450, i32 0, i32 0, i32 0, i32 0, i32 -400, i32 -400, i32 -400, i32 -350, i32 -350, i32 -400, i32 -400, i32 -400, i32 0, i32 0, i32 0, i32 0, i32 -350, i32 -300, i32 -300, i32 -250, i32 -250, i32 -300, i32 -300, i32 -350, i32 0, i32 0, i32 0, i32 0, i32 -250, i32 -200, i32 -150, i32 -100, i32 -100, i32 -150, i32 -200, i32 -250, i32 0, i32 0, i32 0, i32 0, i32 -100, i32 7, i32 4, i32 0, i32 10, i32 4, i32 7, i32 -100, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at black_queen = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 5, i32 5, i32 10, i32 10, i32 5, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 0, i32 0, i32 0, i32 0, i32 -60, i32 -40, i32 -40, i32 -60, i32 -60, i32 -40, i32 -40, i32 -60, i32 0, i32 0, i32 0, i32 0, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at white_queen = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 -40, i32 0, i32 0, i32 0, i32 0, i32 -60, i32 -40, i32 -40, i32 -60, i32 -60, i32 -40, i32 -40, i32 -60, i32 0, i32 0, i32 0, i32 0, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 -30, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 5, i32 5, i32 10, i32 10, i32 5, i32 5, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at black_rook = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 25, i32 25, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -30, i32 -30, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at white_rook = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 7, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 -15, i32 -15, i32 -10, i32 -10, i32 -15, i32 -15, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -30, i32 -30, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 15, i32 20, i32 25, i32 25, i32 20, i32 15, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at upscale = internal global [64 x i32] [ i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117 ]		; <[64 x i32]*> [#uses=0]
- at pre_p_tropism = internal global [9 x i32] [ i32 9999, i32 40, i32 20, i32 10, i32 3, i32 1, i32 1, i32 0, i32 9999 ]		; <[9 x i32]*> [#uses=0]
- at pre_r_tropism = internal global [9 x i32] [ i32 9999, i32 50, i32 40, i32 15, i32 5, i32 1, i32 1, i32 0, i32 9999 ]		; <[9 x i32]*> [#uses=0]
- at pre_n_tropism = internal global [9 x i32] [ i32 9999, i32 50, i32 70, i32 35, i32 10, i32 2, i32 1, i32 0, i32 9999 ]		; <[9 x i32]*> [#uses=0]
- at pre_q_tropism = internal global [9 x i32] [ i32 9999, i32 100, i32 60, i32 20, i32 5, i32 2, i32 0, i32 0, i32 9999 ]		; <[9 x i32]*> [#uses=0]
- at pre_b_tropism = internal global [9 x i32] [ i32 9999, i32 50, i32 25, i32 15, i32 5, i32 2, i32 2, i32 2, i32 9999 ]		; <[9 x i32]*> [#uses=0]
- at rookdistance = internal global [144 x [144 x i32]] zeroinitializer		; <[144 x [144 x i32]]*> [#uses=0]
- at distance = internal global [144 x [144 x i32]] zeroinitializer		; <[144 x [144 x i32]]*> [#uses=0]
- at p_tropism = internal global [144 x [144 x i8]] zeroinitializer		; <[144 x [144 x i8]]*> [#uses=0]
- at b_tropism = internal global [144 x [144 x i8]] zeroinitializer		; <[144 x [144 x i8]]*> [#uses=0]
- at n_tropism = internal global [144 x [144 x i8]] zeroinitializer		; <[144 x [144 x i8]]*> [#uses=0]
- at r_tropism = internal global [144 x [144 x i8]] zeroinitializer		; <[144 x [144 x i8]]*> [#uses=0]
- at q_tropism = internal global [144 x [144 x i8]] zeroinitializer		; <[144 x [144 x i8]]*> [#uses=0]
- at cfg_devscale.b = internal global i1 false		; <i1*> [#uses=0]
- at pieces = internal global [62 x i32] zeroinitializer		; <[62 x i32]*> [#uses=0]
- at piece_count = internal global i32 0		; <i32*> [#uses=1]
- at cfg_smarteval.b = internal global i1 false		; <i1*> [#uses=0]
- at lcentral = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 30, i32 30, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 30, i32 30, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 15, i32 15, i32 15, i32 15, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -15, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -15, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -15, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at str3.upgrd.21 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/leval.c\00"		; <[81 x i8]*> [#uses=0]
- at str5 = internal global [21 x i8] c"(i > 0) && (i < 145)\00"		; <[21 x i8]*> [#uses=0]
- at kingcap.b = internal global i1 false		; <i1*> [#uses=0]
- at numb_moves = internal global i32 0		; <i32*> [#uses=2]
- at genfor = internal global %struct.move_s* null		; <%struct.move_s**> [#uses=0]
- at captures = internal global i32 0		; <i32*> [#uses=1]
- at fcaptures.b = internal global i1 false		; <i1*> [#uses=0]
- at gfrom = internal global i32 0		; <i32*> [#uses=0]
- at Giveaway.b = internal global i1 false		; <i1*> [#uses=0]
- at path_x = internal global [300 x %struct.move_x] zeroinitializer		; <[300 x %struct.move_x]*> [#uses=0]
- at str7 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/moves.c\00"		; <[81 x i8]*> [#uses=0]
- at str8 = internal global [15 x i8] c"find_slot < 63\00"		; <[15 x i8]*> [#uses=0]
- at is_promoted = internal global [62 x i32] zeroinitializer		; <[62 x i32]*> [#uses=0]
- at squares = internal global [144 x i32] zeroinitializer		; <[144 x i32]*> [#uses=0]
- at str.upgrd.22 = internal global [38 x i8] c"promoted > frame && promoted < npiece\00"		; <[38 x i8]*> [#uses=0]
- at str1.upgrd.23 = internal global [38 x i8] c"promoted < npiece && promoted > frame\00"		; <[38 x i8]*> [#uses=0]
- at evalRoutines = internal global [7 x i32 (i32, i32)*] [ i32 (i32, i32)* @ErrorIt, i32 (i32, i32)* @Pawn, i32 (i32, i32)* @Knight, i32 (i32, i32)* @King, i32 (i32, i32)* @Rook, i32 (i32, i32)* @Queen, i32 (i32, i32)* @Bishop ]		; <[7 x i32 (i32, i32)*]*> [#uses=0]
- at sbishop = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 8, i32 5, i32 5, i32 5, i32 5, i32 8, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 3, i32 3, i32 5, i32 5, i32 3, i32 3, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 2, i32 5, i32 4, i32 4, i32 5, i32 2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 2, i32 5, i32 4, i32 4, i32 5, i32 2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 3, i32 3, i32 5, i32 5, i32 3, i32 3, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 8, i32 5, i32 5, i32 5, i32 5, i32 8, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at sknight = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 5, i32 5, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 10, i32 10, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 10, i32 10, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 5, i32 5, i32 5, i32 5, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 3, i32 3, i32 0, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at swhite_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 10, i32 10, i32 3, i32 2, i32 1, i32 0, i32 0, i32 0, i32 0, i32 2, i32 4, i32 6, i32 12, i32 12, i32 6, i32 4, i32 2, i32 0, i32 0, i32 0, i32 0, i32 3, i32 6, i32 9, i32 14, i32 14, i32 9, i32 6, i32 3, i32 0, i32 0, i32 0, i32 0, i32 10, i32 12, i32 14, i32 16, i32 16, i32 14, i32 12, i32 10, i32 0, i32 0, i32 0, i32 0, i32 20, i32 22, i32 24, i32 26, i32 26, i32 24, i32 22, i32 20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at sblack_pawn = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 20, i32 22, i32 24, i32 26, i32 26, i32 24, i32 22, i32 20, i32 0, i32 0, i32 0, i32 0, i32 10, i32 12, i32 14, i32 16, i32 16, i32 14, i32 12, i32 10, i32 0, i32 0, i32 0, i32 0, i32 3, i32 6, i32 9, i32 14, i32 14, i32 9, i32 6, i32 3, i32 0, i32 0, i32 0, i32 0, i32 2, i32 4, i32 6, i32 12, i32 12, i32 6, i32 4, i32 2, i32 0, i32 0, i32 0, i32 0, i32 1, i32 2, i32 3, i32 10, i32 10, i32 3, i32 2, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at swhite_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 14, i32 0, i32 0, i32 0, i32 9, i32 14, i32 2, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 -5, i32 -6, i32 -6, i32 -6, i32 -6, i32 -5, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -8, i32 -8, i32 -8, i32 -8, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -8, i32 -8, i32 -13, i32 -13, i32 -13, i32 -13, i32 -8, i32 -8, i32 0, i32 0, i32 0, i32 0, i32 -13, i32 -13, i32 -21, i32 -21, i32 -21, i32 -21, i32 -13, i32 -13, i32 0, i32 0, i32 0, i32 0, i32 -21, i32 -21, i32 -34, i32 -34, i32 -34, i32 -34, i32 -21, i32 -21, i32 0, i32 0, i32 0, i32 0, i32 -34, i32 -34, i32 -55, i32 -55, i32 -55, i32 -55, i32 -34, i32 -34, i32 0, i32 0, i32 0, i32 0, i32 -55, i32 -55, i32 -89, i32 -89, i32 -89, i32 -89, i32 -55, i32 -55, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at sblack_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -55, i32 -55, i32 -89, i32 -89, i32 -89, i32 -89, i32 -55, i32 -55, i32 0, i32 0, i32 0, i32 0, i32 -34, i32 -34, i32 -55, i32 -55, i32 -55, i32 -55, i32 -34, i32 -34, i32 0, i32 0, i32 0, i32 0, i32 -21, i32 -21, i32 -34, i32 -34, i32 -34, i32 -34, i32 -21, i32 -21, i32 0, i32 0, i32 0, i32 0, i32 -13, i32 -13, i32 -21, i32 -21, i32 -21, i32 -21, i32 -13, i32 -13, i32 0, i32 0, i32 0, i32 0, i32 -8, i32 -8, i32 -13, i32 -13, i32 -13, i32 -13, i32 -8, i32 -8, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -5, i32 -8, i32 -8, i32 -8, i32 -8, i32 -5, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 -5, i32 -6, i32 -6, i32 -6, i32 -6, i32 -5, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 2, i32 14, i32 0, i32 0, i32 0, i32 9, i32 14, i32 2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at send_king = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -3, i32 -1, i32 0, i32 0, i32 -1, i32 -3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 -1, i32 10, i32 25, i32 25, i32 25, i32 25, i32 10, i32 -1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 25, i32 50, i32 50, i32 25, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 25, i32 50, i32 50, i32 25, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -1, i32 10, i32 25, i32 25, i32 25, i32 25, i32 10, i32 -1, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 10, i32 10, i32 10, i32 10, i32 10, i32 10, i32 -3, i32 0, i32 0, i32 0, i32 0, i32 -5, i32 -3, i32 -1, i32 0, i32 0, i32 -1, i32 -3, i32 -5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at srev_rank = internal global [9 x i32] [ i32 0, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1 ]		; <[9 x i32]*> [#uses=0]
- at std_p_tropism = internal global [8 x i32] [ i32 9999, i32 15, i32 10, i32 7, i32 2, i32 0, i32 0, i32 0 ]		; <[8 x i32]*> [#uses=0]
- at std_own_p_tropism = internal global [8 x i32] [ i32 9999, i32 30, i32 10, i32 2, i32 0, i32 0, i32 0, i32 0 ]		; <[8 x i32]*> [#uses=0]
- at std_r_tropism = internal global [16 x i32] [ i32 9999, i32 0, i32 15, i32 5, i32 2, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[16 x i32]*> [#uses=0]
- at std_n_tropism = internal global [8 x i32] [ i32 9999, i32 14, i32 9, i32 6, i32 1, i32 0, i32 0, i32 0 ]		; <[8 x i32]*> [#uses=0]
- at std_q_tropism = internal global [8 x i32] [ i32 9999, i32 200, i32 50, i32 15, i32 3, i32 2, i32 1, i32 0 ]		; <[8 x i32]*> [#uses=0]
- at std_b_tropism = internal global [8 x i32] [ i32 9999, i32 12, i32 7, i32 5, i32 0, i32 0, i32 0, i32 0 ]		; <[8 x i32]*> [#uses=0]
- at phase = internal global i32 0		; <i32*> [#uses=1]
- at dir.3001 = internal global [4 x i32] [ i32 -13, i32 -11, i32 11, i32 13 ]		; <[4 x i32]*> [#uses=0]
- at dir.3021 = internal global [4 x i32] [ i32 -1, i32 1, i32 12, i32 -12 ]		; <[4 x i32]*> [#uses=0]
- at king_locs = internal global [2 x i32] zeroinitializer		; <[2 x i32]*> [#uses=0]
- at square_d1.3081 = internal global [2 x i32] [ i32 29, i32 113 ]		; <[2 x i32]*> [#uses=0]
- at wmat = internal global i32 0		; <i32*> [#uses=0]
- at bmat = internal global i32 0		; <i32*> [#uses=0]
- at str.upgrd.24 = internal global [35 x i8] c"Illegal piece detected sq=%i c=%i\0A\00"		; <[35 x i8]*> [#uses=0]
- at str10 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/neval.c\00"		; <[81 x i8]*> [#uses=0]
- at std_hand_value = internal global [13 x i32] [ i32 0, i32 100, i32 -100, i32 210, i32 -210, i32 0, i32 0, i32 250, i32 -250, i32 450, i32 -450, i32 230, i32 -230 ]		; <[13 x i32]*> [#uses=0]
- at xb_mode = internal global i32 0		; <i32*> [#uses=0]
- at str.upgrd.25 = internal global [69 x i8] c"tellics ptell Hello! I am Sjeng and hope you enjoy playing with me.\0A\00"		; <[69 x i8]*> [#uses=0]
- at str.upgrd.26 = internal global [76 x i8] c"tellics ptell For help on some commands that I understand, ptell me 'help'\0A\00"		; <[76 x i8]*> [#uses=0]
- at str12 = internal global [3 x i8] c"%s\00"		; <[3 x i8]*> [#uses=0]
- at my_partner = internal global [256 x i8] zeroinitializer		; <[256 x i8]*> [#uses=0]
- at str13 = internal global [25 x i8] c"tellics set f5 bughouse\0A\00"		; <[25 x i8]*> [#uses=0]
- at str.upgrd.27 = internal global [16 x i8] c"tellics unseek\0A\00"		; <[16 x i8]*> [#uses=0]
- at str.upgrd.28 = internal global [20 x i8] c"tellics set f5 1=1\0A\00"		; <[20 x i8]*> [#uses=0]
- at str.upgrd.29 = internal global [80 x i8] c"is...uh...what did you say?\0A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"		; <[80 x i8]*> [#uses=0]
- at str.upgrd.30 = internal global [5 x i8] c"help\00"		; <[5 x i8]*> [#uses=0]
- at str.upgrd.31 = internal global [147 x i8] c"tellics ptell Commands that I understand are : sit, go, fast, slow, abort, flag, +/++/+++/-/--/---{p,n,b,r,q,d,h,trades}, x, dead, formula, help.\0A\00"		; <[147 x i8]*> [#uses=0]
- at str.upgrd.32 = internal global [6 x i8] c"sorry\00"		; <[6 x i8]*> [#uses=0]
- at str.upgrd.33 = internal global [59 x i8] c"tellics ptell Sorry, but I'm not playing a bughouse game.\0A\00"		; <[59 x i8]*> [#uses=0]
- at str.upgrd.34 = internal global [4 x i8] c"sit\00"		; <[4 x i8]*> [#uses=0]
- at str.upgrd.35 = internal global [56 x i8] c"tellics ptell Ok, I sit next move. Tell me when to go.\0A\00"		; <[56 x i8]*> [#uses=0]
- at must_sit.b = internal global i1 false		; <i1*> [#uses=0]
- at str114 = internal global [3 x i8] c"go\00"		; <[3 x i8]*> [#uses=0]
- at str2.upgrd.36 = internal global [5 x i8] c"move\00"		; <[5 x i8]*> [#uses=0]
- at str.upgrd.37 = internal global [31 x i8] c"tellics ptell Ok, I'm moving.\0A\00"		; <[31 x i8]*> [#uses=0]
- at str3.upgrd.38 = internal global [5 x i8] c"fast\00"		; <[5 x i8]*> [#uses=0]
- at str4.upgrd.39 = internal global [5 x i8] c"time\00"		; <[5 x i8]*> [#uses=0]
- at str15 = internal global [35 x i8] c"tellics ptell Ok, I'm going FAST!\0A\00"		; <[35 x i8]*> [#uses=0]
- at go_fast.b = internal global i1 false		; <i1*> [#uses=0]
- at str5.upgrd.40 = internal global [5 x i8] c"slow\00"		; <[5 x i8]*> [#uses=0]
- at str16 = internal global [36 x i8] c"tellics ptell Ok, moving normally.\0A\00"		; <[36 x i8]*> [#uses=0]
- at str6 = internal global [6 x i8] c"abort\00"		; <[6 x i8]*> [#uses=0]
- at str7.upgrd.41 = internal global [35 x i8] c"tellics ptell Requesting abort...\0A\00"		; <[35 x i8]*> [#uses=0]
- at str17 = internal global [15 x i8] c"tellics abort\0A\00"		; <[15 x i8]*> [#uses=0]
- at str8.upgrd.42 = internal global [5 x i8] c"flag\00"		; <[5 x i8]*> [#uses=0]
- at str.upgrd.43 = internal global [27 x i8] c"tellics ptell Flagging...\0A\00"		; <[27 x i8]*> [#uses=0]
- at str.upgrd.44 = internal global [14 x i8] c"tellics flag\0A\00"		; <[14 x i8]*> [#uses=0]
- at str18 = internal global [2 x i8] c"+\00"		; <[2 x i8]*> [#uses=0]
- at str9 = internal global [6 x i8] c"trade\00"		; <[6 x i8]*> [#uses=0]
- at str10.upgrd.45 = internal global [35 x i8] c"tellics ptell Ok, trading is GOOD\0A\00"		; <[35 x i8]*> [#uses=0]
- at str11 = internal global [4 x i8] c"+++\00"		; <[4 x i8]*> [#uses=0]
- at str12.upgrd.46 = internal global [6 x i8] c"mates\00"		; <[6 x i8]*> [#uses=0]
- at str13.upgrd.47 = internal global [3 x i8] c"++\00"		; <[3 x i8]*> [#uses=0]
- at str.upgrd.48 = internal global [49 x i8] c"is VERY good (ptell me 'x' to play normal again)\00"		; <[49 x i8]*> [#uses=0]
- at str.upgrd.49 = internal global [44 x i8] c"is good (ptell me 'x' to play normal again)\00"		; <[44 x i8]*> [#uses=0]
- at str19 = internal global [29 x i8] c"tellics ptell Ok, Knight %s\0A\00"		; <[29 x i8]*> [#uses=0]
- at str14 = internal global [29 x i8] c"tellics ptell Ok, Bishop %s\0A\00"		; <[29 x i8]*> [#uses=0]
- at str15.upgrd.50 = internal global [27 x i8] c"tellics ptell Ok, Rook %s\0A\00"		; <[27 x i8]*> [#uses=0]
- at str.upgrd.51 = internal global [28 x i8] c"tellics ptell Ok, Queen %s\0A\00"		; <[28 x i8]*> [#uses=0]
- at str16.upgrd.52 = internal global [27 x i8] c"tellics ptell Ok, Pawn %s\0A\00"		; <[27 x i8]*> [#uses=0]
- at str17.upgrd.53 = internal global [31 x i8] c"tellics ptell Ok, Diagonal %s\0A\00"		; <[31 x i8]*> [#uses=0]
- at str18.upgrd.54 = internal global [28 x i8] c"tellics ptell Ok, Heavy %s\0A\00"		; <[28 x i8]*> [#uses=0]
- at str20 = internal global [34 x i8] c"tellics ptell Ok, trading is BAD\0A\00"		; <[34 x i8]*> [#uses=0]
- at str20.upgrd.55 = internal global [4 x i8] c"---\00"		; <[4 x i8]*> [#uses=0]
- at str.upgrd.56 = internal global [53 x i8] c"mates you (ptell me 'x' when it no longer mates you)\00"		; <[53 x i8]*> [#uses=0]
- at str21 = internal global [3 x i8] c"--\00"		; <[3 x i8]*> [#uses=0]
- at str.upgrd.57 = internal global [52 x i8] c"is VERY bad (ptell me 'x' when it is no longer bad)\00"		; <[52 x i8]*> [#uses=0]
- at str21.upgrd.58 = internal global [47 x i8] c"is bad (ptell me 'x' when it is no longer bad)\00"		; <[47 x i8]*> [#uses=0]
- at str23 = internal global [16 x i8] c"mate me anymore\00"		; <[16 x i8]*> [#uses=0]
- at str24 = internal global [6 x i8] c"never\00"		; <[6 x i8]*> [#uses=0]
- at str25 = internal global [5 x i8] c"mind\00"		; <[5 x i8]*> [#uses=0]
- at str22 = internal global [9 x i8] c"ptell me\00"		; <[9 x i8]*> [#uses=0]
- at str.upgrd.59 = internal global [55 x i8] c"tellics ptell Ok, reverting to STANDARD piece values!\0A\00"		; <[55 x i8]*> [#uses=0]
- at partnerdead.b = internal global i1 false		; <i1*> [#uses=0]
- at piecedead.b = internal global i1 false		; <i1*> [#uses=0]
- at str.upgrd.60 = internal global [26 x i8] c"i'll have to sit...(dead)\00"		; <[26 x i8]*> [#uses=0]
- at str27 = internal global [5 x i8] c"dead\00"		; <[5 x i8]*> [#uses=0]
- at str28 = internal global [27 x i8] c"i'll have to sit...(piece)\00"		; <[27 x i8]*> [#uses=0]
- at str29 = internal global [3 x i8] c"ok\00"		; <[3 x i8]*> [#uses=0]
- at str30 = internal global [3 x i8] c"hi\00"		; <[3 x i8]*> [#uses=0]
- at str31 = internal global [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=0]
- at str32 = internal global [26 x i8] c"tellics ptell Greetings.\0A\00"		; <[26 x i8]*> [#uses=0]
- at str.upgrd.61 = internal global [8 x i8] c"formula\00"		; <[8 x i8]*> [#uses=0]
- at str.upgrd.62 = internal global [87 x i8] c"tellics ptell Setting formula, if you are still interrupted, complain to my operator.\0A\00"		; <[87 x i8]*> [#uses=0]
- at str33 = internal global [59 x i8] c"tellics ptell Sorry, but I don't understand that command.\0A\00"		; <[59 x i8]*> [#uses=0]
- at pawnmated.3298 = internal global i32 0		; <i32*> [#uses=0]
- at knightmated.3299 = internal global i32 0		; <i32*> [#uses=0]
- at bishopmated.3300 = internal global i32 0		; <i32*> [#uses=0]
- at rookmated.3301 = internal global i32 0		; <i32*> [#uses=0]
- at queenmated.3302 = internal global i32 0		; <i32*> [#uses=0]
- at str.upgrd.63 = internal global [41 x i8] c"tellics ptell p doesn't mate me anymore\0A\00"		; <[41 x i8]*> [#uses=0]
- at str34 = internal global [41 x i8] c"tellics ptell n doesn't mate me anymore\0A\00"		; <[41 x i8]*> [#uses=0]
- at str35 = internal global [41 x i8] c"tellics ptell b doesn't mate me anymore\0A\00"		; <[41 x i8]*> [#uses=0]
- at str36 = internal global [41 x i8] c"tellics ptell r doesn't mate me anymore\0A\00"		; <[41 x i8]*> [#uses=0]
- at str37 = internal global [41 x i8] c"tellics ptell q doesn't mate me anymore\0A\00"		; <[41 x i8]*> [#uses=0]
- at str38 = internal global [20 x i8] c"tellics ptell ---p\0A\00"		; <[20 x i8]*> [#uses=0]
- at str39 = internal global [20 x i8] c"tellics ptell ---n\0A\00"		; <[20 x i8]*> [#uses=0]
- at str40 = internal global [20 x i8] c"tellics ptell ---b\0A\00"		; <[20 x i8]*> [#uses=0]
- at str41 = internal global [20 x i8] c"tellics ptell ---r\0A\00"		; <[20 x i8]*> [#uses=0]
- at str42 = internal global [20 x i8] c"tellics ptell ---q\0A\00"		; <[20 x i8]*> [#uses=0]
- at str23.upgrd.64 = internal global [17 x i8] c"tellics ptell x\0A\00"		; <[17 x i8]*> [#uses=0]
- at str.upgrd.65 = internal global [18 x i8] c"tellics ptell go\0A\00"		; <[18 x i8]*> [#uses=0]
- at bufftop = internal global i32 0		; <i32*> [#uses=2]
- at membuff = internal global i8* null		; <i8**> [#uses=3]
- at maxply = internal global i32 0		; <i32*> [#uses=1]
- at forwards = internal global i32 0		; <i32*> [#uses=1]
- at nodecount = internal global i32 0		; <i32*> [#uses=1]
- at frees = internal global i32 0		; <i32*> [#uses=0]
- at PBSize.b = internal global i1 false		; <i1*> [#uses=1]
- at alllosers.b = internal global i1 false		; <i1*> [#uses=1]
- at rootlosers = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=1]
- at pn_move = internal global %struct.move_s zeroinitializer		; <%struct.move_s*> [#uses=7]
- at iters = internal global i32 0		; <i32*> [#uses=1]
- at kibitzed.b = internal global i1 false		; <i1*> [#uses=0]
- at str24.upgrd.66 = internal global [28 x i8] c"tellics kibitz Forced win!\0A\00"		; <[28 x i8]*> [#uses=0]
- at str25.upgrd.67 = internal global [34 x i8] c"tellics kibitz Forced win! (alt)\0A\00"		; <[34 x i8]*> [#uses=0]
- at pn_time = internal global i32 0		; <i32*> [#uses=1]
- at post = internal global i32 0		; <i32*> [#uses=0]
- at str.upgrd.68 = internal global [94 x i8] c"tellics whisper proof %d, disproof %d, %d losers, highest depth %d, primary %d, secondary %d\0A\00"		; <[94 x i8]*> [#uses=0]
- at str26 = internal global [30 x i8] c"tellics whisper Forced reply\0A\00"		; <[30 x i8]*> [#uses=0]
- at str27.upgrd.69 = internal global [60 x i8] c"P: %d D: %d N: %d S: %d Mem: %2.2fM Iters: %d MaxDepth: %d\0A\00"		; <[60 x i8]*> [#uses=0]
- at str.upgrd.70 = internal global [90 x i8] c"tellics whisper proof %d, disproof %d, %d nodes, %d forwards, %d iters, highest depth %d\0A\00"		; <[90 x i8]*> [#uses=0]
- at str.upgrd.71 = internal global [11 x i8] c"Time : %f\0A\00"		; <[11 x i8]*> [#uses=0]
- at str28.upgrd.72 = internal global [23 x i8] c"This position is WON.\0A\00"		; <[23 x i8]*> [#uses=0]
- at str29.upgrd.73 = internal global [5 x i8] c"PV: \00"		; <[5 x i8]*> [#uses=0]
- at str30.upgrd.74 = internal global [4 x i8] c"%s \00"		; <[4 x i8]*> [#uses=0]
- at str31.upgrd.75 = internal global [2 x i8] c" \00"		; <[2 x i8]*> [#uses=0]
- at str32.upgrd.76 = internal global [41 x i8] c"\0Atellics kibitz Forced win in %d moves.\0A\00"		; <[41 x i8]*> [#uses=0]
- at str33.upgrd.77 = internal global [20 x i8] c"\0A1-0 {White mates}\0A\00"		; <[20 x i8]*> [#uses=0]
- at result = internal global i32 0		; <i32*> [#uses=4]
- at str1.upgrd.78 = internal global [20 x i8] c"\0A0-1 {Black mates}\0A\00"		; <[20 x i8]*> [#uses=0]
- at str35.upgrd.79 = internal global [24 x i8] c"This position is LOST.\0A\00"		; <[24 x i8]*> [#uses=0]
- at str36.upgrd.80 = internal global [27 x i8] c"This position is UNKNOWN.\0A\00"		; <[27 x i8]*> [#uses=0]
- at str37.upgrd.81 = internal global [47 x i8] c"P: %d D: %d N: %d S: %d Mem: %2.2fM Iters: %d\0A\00"		; <[47 x i8]*> [#uses=0]
- at s_threat.b = internal global i1 false		; <i1*> [#uses=0]
- at TTSize.b = internal global i1 false		; <i1*> [#uses=3]
- at cfg_razordrop.b = internal global i1 false		; <i1*> [#uses=0]
- at cfg_futprune.b = internal global i1 false		; <i1*> [#uses=0]
- at cfg_onerep.b = internal global i1 false		; <i1*> [#uses=0]
- at setcode = internal global [30 x i8] zeroinitializer		; <[30 x i8]*> [#uses=0]
- at str38.upgrd.82 = internal global [3 x i8] c"%u\00"		; <[3 x i8]*> [#uses=0]
- at searching_pv.b = internal global i1 false		; <i1*> [#uses=0]
- at pv = internal global [300 x [300 x %struct.move_s]] zeroinitializer		; <[300 x [300 x %struct.move_s]]*> [#uses=0]
- at i_depth = internal global i32 0		; <i32*> [#uses=0]
- at history_h = internal global [144 x [144 x i32]] zeroinitializer		; <[144 x [144 x i32]]*> [#uses=0]
- at killer1 = internal global [300 x %struct.move_s] zeroinitializer		; <[300 x %struct.move_s]*> [#uses=0]
- at killer2 = internal global [300 x %struct.move_s] zeroinitializer		; <[300 x %struct.move_s]*> [#uses=0]
- at killer3 = internal global [300 x %struct.move_s] zeroinitializer		; <[300 x %struct.move_s]*> [#uses=0]
- at rootnodecount = internal global [512 x i32] zeroinitializer		; <[512 x i32]*> [#uses=0]
- at raw_nodes = internal global i32 0		; <i32*> [#uses=0]
- at pv_length = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=0]
- at time_exit.b = internal global i1 false		; <i1*> [#uses=0]
- at time_for_move = internal global i32 0		; <i32*> [#uses=3]
- at failed = internal global i32 0		; <i32*> [#uses=0]
- at extendedtime.b = internal global i1 false		; <i1*> [#uses=1]
- at time_left = internal global i32 0		; <i32*> [#uses=0]
- at str39.upgrd.83 = internal global [38 x i8] c"Extended from %d to %d, time left %d\0A\00"		; <[38 x i8]*> [#uses=0]
- at checks = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=0]
- at singular = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=0]
- at recaps = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=0]
- at ext_onerep = internal global i32 0		; <i32*> [#uses=1]
- at FULL = internal global i32 0		; <i32*> [#uses=1]
- at PVS = internal global i32 0		; <i32*> [#uses=1]
- at PVSF = internal global i32 0		; <i32*> [#uses=1]
- at killer_scores = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=0]
- at killer_scores2 = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=0]
- at killer_scores3 = internal global [300 x i32] zeroinitializer		; <[300 x i32]*> [#uses=0]
- at time_failure.b = internal global i1 false		; <i1*> [#uses=0]
- at cur_score = internal global i32 0		; <i32*> [#uses=0]
- at legals = internal global i32 0		; <i32*> [#uses=3]
- at movetotal = internal global i32 0		; <i32*> [#uses=0]
- at searching_move = internal global [20 x i8] zeroinitializer		; <[20 x i8]*> [#uses=0]
- at is_pondering.b = internal global i1 false		; <i1*> [#uses=6]
- at true_i_depth = internal global i8 0		; <i8*> [#uses=1]
- at is_analyzing.b = internal global i1 false		; <i1*> [#uses=0]
- at inc = internal global i32 0		; <i32*> [#uses=1]
- at time_cushion = internal global i32 0		; <i32*> [#uses=2]
- at str40.upgrd.84 = internal global [16 x i8] c"Opening phase.\0A\00"		; <[16 x i8]*> [#uses=1]
- at str.upgrd.85 = internal global [19 x i8] c"Middlegame phase.\0A\00"		; <[19 x i8]*> [#uses=1]
- at str1.upgrd.86 = internal global [16 x i8] c"Endgame phase.\0A\00"		; <[16 x i8]*> [#uses=1]
- at str43 = internal global [20 x i8] c"Time for move : %d\0A\00"		; <[20 x i8]*> [#uses=1]
- at postpv = internal global [256 x i8] zeroinitializer		; <[256 x i8]*> [#uses=0]
- at str44 = internal global [49 x i8] c"tellics whisper %d restart(s), ended up with %s\0A\00"		; <[49 x i8]*> [#uses=0]
- at moves_to_tc = internal global i32 0		; <i32*> [#uses=0]
- at str45 = internal global [27 x i8] c"tellics kibitz Mate in %d\0A\00"		; <[27 x i8]*> [#uses=0]
- at str46 = internal global [52 x i8] c"tellics ptell Mate in %d, give him no more pieces.\0A\00"		; <[52 x i8]*> [#uses=0]
- at tradefreely.b = internal global i1 false		; <i1*> [#uses=0]
- at str.upgrd.87 = internal global [37 x i8] c"tellics ptell You can trade freely.\0A\00"		; <[37 x i8]*> [#uses=0]
- at str47 = internal global [25 x i8] c"tellics ptell ---trades\0A\00"		; <[25 x i8]*> [#uses=0]
- at str2.upgrd.88 = internal global [49 x i8] c"tellics kibitz Both players dead...resigning...\0A\00"		; <[49 x i8]*> [#uses=0]
- at str3.upgrd.89 = internal global [16 x i8] c"tellics resign\0A\00"		; <[16 x i8]*> [#uses=0]
- at str48 = internal global [81 x i8] c"tellics ptell I am forcedly mated (dead). Tell me 'go' to start moving into it.\0A\00"		; <[81 x i8]*> [#uses=0]
- at str.upgrd.90 = internal global [62 x i8] c"tellics ptell I'll have to sit...(lose piece that mates you)\0A\00"		; <[62 x i8]*> [#uses=0]
- at see_num_attackers = internal global [2 x i32] zeroinitializer		; <[2 x i32]*> [#uses=0]
- at see_attackers = internal global [2 x [16 x %struct.see_data]] zeroinitializer		; <[2 x [16 x %struct.see_data]]*> [#uses=0]
- at scentral = internal global [144 x i32] [ i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 2, i32 15, i32 15, i32 15, i32 15, i32 2, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 7, i32 15, i32 25, i32 25, i32 15, i32 7, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 7, i32 15, i32 25, i32 25, i32 15, i32 7, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 2, i32 15, i32 15, i32 15, i32 15, i32 2, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -10, i32 0, i32 3, i32 5, i32 5, i32 3, i32 0, i32 -10, i32 0, i32 0, i32 0, i32 0, i32 -20, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -10, i32 -20, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 ]		; <[144 x i32]*> [#uses=0]
- at str51 = internal global [81 x i8] c"/Volumes/Stuff/src/speccpu2006-091-llvm/benchspec//CPU2006/458.sjeng/src/seval.c\00"		; <[81 x i8]*> [#uses=0]
- at divider = internal global [50 x i8] c"-------------------------------------------------\00"		; <[50 x i8]*> [#uses=0]
- at min_per_game = internal global i32 0		; <i32*> [#uses=0]
- at opp_rating = internal global i32 0		; <i32*> [#uses=0]
- at my_rating = internal global i32 0		; <i32*> [#uses=0]
- at str53 = internal global [15 x i8] c"SPEC Workload\0A\00"		; <[15 x i8]*> [#uses=0]
- at opening_history = internal global [256 x i8] zeroinitializer		; <[256 x i8]*> [#uses=0]
- at str60 = internal global [81 x i8] c"Material score: %d   Eval : %d  MaxPosDiff: %d  White hand: %d  Black hand : %d\0A\00"		; <[81 x i8]*> [#uses=0]
- at str61 = internal global [26 x i8] c"Hash : %X  HoldHash : %X\0A\00"		; <[26 x i8]*> [#uses=0]
- at str62 = internal global [9 x i8] c"move %s\0A\00"		; <[9 x i8]*> [#uses=0]
- at str63 = internal global [5 x i8] c"\0A%s\0A\00"		; <[5 x i8]*> [#uses=0]
- at str64 = internal global [19 x i8] c"0-1 {Black Mates}\0A\00"		; <[19 x i8]*> [#uses=0]
- at str1.upgrd.91 = internal global [19 x i8] c"1-0 {White Mates}\0A\00"		; <[19 x i8]*> [#uses=0]
- at str65 = internal global [27 x i8] c"1/2-1/2 {Fifty move rule}\0A\00"		; <[27 x i8]*> [#uses=0]
- at str2.upgrd.92 = internal global [29 x i8] c"1/2-1/2 {3 fold repetition}\0A\00"		; <[29 x i8]*> [#uses=0]
- at str66 = internal global [16 x i8] c"1/2-1/2 {Draw}\0A\00"		; <[16 x i8]*> [#uses=0]
- at str68 = internal global [8 x i8] c"Sjeng: \00"		; <[8 x i8]*> [#uses=0]
- at str69 = internal global [18 x i8] c"Illegal move: %s\0A\00"		; <[18 x i8]*> [#uses=0]
- at str3.upgrd.93 = internal global [9 x i8] c"setboard\00"		; <[9 x i8]*> [#uses=0]
- at str470 = internal global [5 x i8] c"quit\00"		; <[5 x i8]*> [#uses=0]
- at str571 = internal global [5 x i8] c"exit\00"		; <[5 x i8]*> [#uses=0]
- at str6.upgrd.94 = internal global [8 x i8] c"diagram\00"		; <[8 x i8]*> [#uses=0]
- at str7.upgrd.95 = internal global [2 x i8] c"d\00"		; <[2 x i8]*> [#uses=0]
- at str72 = internal global [6 x i8] c"perft\00"		; <[6 x i8]*> [#uses=0]
- at str73 = internal global [3 x i8] c"%d\00"		; <[3 x i8]*> [#uses=0]
- at str74 = internal global [28 x i8] c"Raw nodes for depth %d: %i\0A\00"		; <[28 x i8]*> [#uses=0]
- at str.upgrd.96 = internal global [13 x i8] c"Time : %.2f\0A\00"		; <[13 x i8]*> [#uses=0]
- at str75 = internal global [4 x i8] c"new\00"		; <[4 x i8]*> [#uses=0]
- at str.upgrd.97 = internal global [40 x i8] c"tellics set 1 Sjeng SPEC 1.0 (SPEC/%s)\0A\00"		; <[40 x i8]*> [#uses=0]
- at str.upgrd.98 = internal global [7 x i8] c"xboard\00"		; <[7 x i8]*> [#uses=0]
- at str8.upgrd.99 = internal global [6 x i8] c"nodes\00"		; <[6 x i8]*> [#uses=0]
- at str77 = internal global [38 x i8] c"Number of nodes: %i (%0.2f%% qnodes)\0A\00"		; <[38 x i8]*> [#uses=0]
- at str9.upgrd.100 = internal global [5 x i8] c"post\00"		; <[5 x i8]*> [#uses=0]
- at str10.upgrd.101 = internal global [7 x i8] c"nopost\00"		; <[7 x i8]*> [#uses=0]
- at str11.upgrd.102 = internal global [7 x i8] c"random\00"		; <[7 x i8]*> [#uses=0]
- at str12.upgrd.103 = internal global [5 x i8] c"hard\00"		; <[5 x i8]*> [#uses=0]
- at str13.upgrd.104 = internal global [5 x i8] c"easy\00"		; <[5 x i8]*> [#uses=0]
- at str14.upgrd.105 = internal global [2 x i8] c"?\00"		; <[2 x i8]*> [#uses=0]
- at str15.upgrd.106 = internal global [6 x i8] c"white\00"		; <[6 x i8]*> [#uses=0]
- at str16.upgrd.107 = internal global [6 x i8] c"black\00"		; <[6 x i8]*> [#uses=0]
- at str17.upgrd.108 = internal global [6 x i8] c"force\00"		; <[6 x i8]*> [#uses=0]
- at str18.upgrd.109 = internal global [5 x i8] c"eval\00"		; <[5 x i8]*> [#uses=0]
- at str.upgrd.110 = internal global [10 x i8] c"Eval: %d\0A\00"		; <[10 x i8]*> [#uses=0]
- at str2178 = internal global [3 x i8] c"%i\00"		; <[3 x i8]*> [#uses=0]
- at str22.upgrd.111 = internal global [5 x i8] c"otim\00"		; <[5 x i8]*> [#uses=0]
- at opp_time = internal global i32 0		; <i32*> [#uses=0]
- at str23.upgrd.112 = internal global [6 x i8] c"level\00"		; <[6 x i8]*> [#uses=0]
- at str.upgrd.113 = internal global [12 x i8] c"%i %i:%i %i\00"		; <[12 x i8]*> [#uses=0]
- at sec_per_game = internal global i32 0		; <i32*> [#uses=0]
- at str24.upgrd.114 = internal global [9 x i8] c"%i %i %i\00"		; <[9 x i8]*> [#uses=0]
- at str25.upgrd.115 = internal global [7 x i8] c"rating\00"		; <[7 x i8]*> [#uses=0]
- at str26.upgrd.116 = internal global [6 x i8] c"%i %i\00"		; <[6 x i8]*> [#uses=0]
- at str27.upgrd.117 = internal global [8 x i8] c"holding\00"		; <[8 x i8]*> [#uses=0]
- at str28.upgrd.118 = internal global [8 x i8] c"variant\00"		; <[8 x i8]*> [#uses=0]
- at str29.upgrd.119 = internal global [7 x i8] c"normal\00"		; <[7 x i8]*> [#uses=0]
- at str79 = internal global [11 x i8] c"crazyhouse\00"		; <[11 x i8]*> [#uses=0]
- at str30.upgrd.120 = internal global [9 x i8] c"bughouse\00"		; <[9 x i8]*> [#uses=0]
- at str31.upgrd.121 = internal global [8 x i8] c"suicide\00"		; <[8 x i8]*> [#uses=0]
- at str32.upgrd.122 = internal global [9 x i8] c"giveaway\00"		; <[9 x i8]*> [#uses=0]
- at str33.upgrd.123 = internal global [7 x i8] c"losers\00"		; <[7 x i8]*> [#uses=0]
- at str34.upgrd.124 = internal global [8 x i8] c"analyze\00"		; <[8 x i8]*> [#uses=0]
- at str35.upgrd.125 = internal global [5 x i8] c"undo\00"		; <[5 x i8]*> [#uses=0]
- at str36.upgrd.126 = internal global [18 x i8] c"Move number : %d\0A\00"		; <[18 x i8]*> [#uses=0]
- at str37.upgrd.127 = internal global [7 x i8] c"remove\00"		; <[7 x i8]*> [#uses=0]
- at str38.upgrd.128 = internal global [5 x i8] c"edit\00"		; <[5 x i8]*> [#uses=0]
- at str41.upgrd.129 = internal global [2 x i8] c"#\00"		; <[2 x i8]*> [#uses=0]
- at str42.upgrd.130 = internal global [8 x i8] c"partner\00"		; <[8 x i8]*> [#uses=0]
- at str43.upgrd.131 = internal global [9 x i8] c"$partner\00"		; <[9 x i8]*> [#uses=0]
- at str44.upgrd.132 = internal global [6 x i8] c"ptell\00"		; <[6 x i8]*> [#uses=0]
- at str45.upgrd.133 = internal global [5 x i8] c"test\00"		; <[5 x i8]*> [#uses=0]
- at str46.upgrd.134 = internal global [3 x i8] c"st\00"		; <[3 x i8]*> [#uses=0]
- at str47.upgrd.135 = internal global [7 x i8] c"result\00"		; <[7 x i8]*> [#uses=0]
- at str48.upgrd.136 = internal global [6 x i8] c"prove\00"		; <[6 x i8]*> [#uses=0]
- at str49 = internal global [26 x i8] c"\0AMax time to search (s): \00"		; <[26 x i8]*> [#uses=0]
- at str50 = internal global [5 x i8] c"ping\00"		; <[5 x i8]*> [#uses=0]
- at str51.upgrd.137 = internal global [9 x i8] c"pong %d\0A\00"		; <[9 x i8]*> [#uses=0]
- at str52 = internal global [6 x i8] c"fritz\00"		; <[6 x i8]*> [#uses=0]
- at str53.upgrd.138 = internal global [6 x i8] c"reset\00"		; <[6 x i8]*> [#uses=0]
- at str54 = internal global [3 x i8] c"sd\00"		; <[3 x i8]*> [#uses=0]
- at str55 = internal global [26 x i8] c"New max depth set to: %d\0A\00"		; <[26 x i8]*> [#uses=0]
- at str56 = internal global [5 x i8] c"auto\00"		; <[5 x i8]*> [#uses=0]
- at str57 = internal global [9 x i8] c"protover\00"		; <[9 x i8]*> [#uses=0]
- at str.upgrd.139 = internal global [63 x i8] c"feature ping=0 setboard=1 playother=0 san=0 usermove=0 time=1\0A\00"		; <[63 x i8]*> [#uses=0]
- at str80 = internal global [53 x i8] c"feature draw=0 sigint=0 sigterm=0 reuse=1 analyze=0\0A\00"		; <[53 x i8]*> [#uses=0]
- at str.upgrd.140 = internal global [33 x i8] c"feature myname=\22Sjeng SPEC 1.0\22\0A\00"		; <[33 x i8]*> [#uses=0]
- at str.upgrd.141 = internal global [71 x i8] c"feature variants=\22normal,bughouse,crazyhouse,suicide,giveaway,losers\22\0A\00"		; <[71 x i8]*> [#uses=0]
- at str.upgrd.142 = internal global [46 x i8] c"feature colors=1 ics=0 name=0 pause=0 done=1\0A\00"		; <[46 x i8]*> [#uses=0]
- at str58 = internal global [9 x i8] c"accepted\00"		; <[9 x i8]*> [#uses=0]
- at str59 = internal global [9 x i8] c"rejected\00"		; <[9 x i8]*> [#uses=0]
- at str.upgrd.143 = internal global [65 x i8] c"Interface does not support a required feature...expect trouble.\0A\00"		; <[65 x i8]*> [#uses=0]
- at str61.upgrd.144 = internal global [6 x i8] c"\0A%s\0A\0A\00"		; <[6 x i8]*> [#uses=0]
- at str81 = internal global [41 x i8] c"diagram/d:       toggle diagram display\0A\00"		; <[41 x i8]*> [#uses=0]
- at str82 = internal global [34 x i8] c"exit/quit:       terminate Sjeng\0A\00"		; <[34 x i8]*> [#uses=0]
- at str62.upgrd.145 = internal global [51 x i8] c"go:              make Sjeng play the side to move\0A\00"		; <[51 x i8]*> [#uses=0]
- at str83 = internal global [35 x i8] c"new:             start a new game\0A\00"		; <[35 x i8]*> [#uses=0]
- at str84 = internal global [55 x i8] c"level <x>:       the xboard style command to set time\0A\00"		; <[55 x i8]*> [#uses=0]
- at str85 = internal global [49 x i8] c"  <x> should be in the form: <a> <b> <c> where:\0A\00"		; <[49 x i8]*> [#uses=0]
- at str63.upgrd.146 = internal global [49 x i8] c"  a -> moves to TC (0 if using an ICS style TC)\0A\00"		; <[49 x i8]*> [#uses=0]
- at str86 = internal global [25 x i8] c"  b -> minutes per game\0A\00"		; <[25 x i8]*> [#uses=0]
- at str64.upgrd.147 = internal global [29 x i8] c"  c -> increment in seconds\0A\00"		; <[29 x i8]*> [#uses=0]
- at str65.upgrd.148 = internal global [55 x i8] c"nodes:           outputs the number of nodes searched\0A\00"		; <[55 x i8]*> [#uses=0]
- at str87 = internal global [47 x i8] c"perft <x>:       compute raw nodes to depth x\0A\00"		; <[47 x i8]*> [#uses=0]
- at str.upgrd.149 = internal global [42 x i8] c"post:            toggles thinking output\0A\00"		; <[42 x i8]*> [#uses=0]
- at str.upgrd.150 = internal global [45 x i8] c"xboard:          put Sjeng into xboard mode\0A\00"		; <[45 x i8]*> [#uses=0]
- at str.upgrd.151 = internal global [39 x i8] c"test:            run an EPD testsuite\0A\00"		; <[39 x i8]*> [#uses=0]
- at str88 = internal global [52 x i8] c"speed:           test movegen and evaluation speed\0A\00"		; <[52 x i8]*> [#uses=0]
- at str89 = internal global [59 x i8] c"proof:           try to prove or disprove the current pos\0A\00"		; <[59 x i8]*> [#uses=0]
- at str90 = internal global [44 x i8] c"sd <x>:          limit thinking to depth x\0A\00"		; <[44 x i8]*> [#uses=0]
- at str66.upgrd.152 = internal global [51 x i8] c"st <x>:          limit thinking to x centiseconds\0A\00"		; <[51 x i8]*> [#uses=0]
- at str67 = internal global [54 x i8] c"setboard <FEN>:  set board to a specified FEN string\0A\00"		; <[54 x i8]*> [#uses=0]
- at str68.upgrd.153 = internal global [38 x i8] c"undo:            back up a half move\0A\00"		; <[38 x i8]*> [#uses=0]
- at str69.upgrd.154 = internal global [38 x i8] c"remove:          back up a full move\0A\00"		; <[38 x i8]*> [#uses=0]
- at str70 = internal global [42 x i8] c"force:           disable computer moving\0A\00"		; <[42 x i8]*> [#uses=0]
- at str71 = internal global [44 x i8] c"auto:            computer plays both sides\0A\00"		; <[44 x i8]*> [#uses=0]
- at DP_TTable = internal global %struct.TType* null		; <%struct.TType**> [#uses=1]
- at AS_TTable = internal global %struct.TType* null		; <%struct.TType**> [#uses=1]
- at QS_TTable = internal global %struct.QTType* null		; <%struct.QTType**> [#uses=1]
- at str93 = internal global [38 x i8] c"Out of memory allocating hashtables.\0A\00"		; <[38 x i8]*> [#uses=0]
- at type_to_char.3058 = internal global [14 x i32] [ i32 70, i32 80, i32 80, i32 78, i32 78, i32 75, i32 75, i32 82, i32 82, i32 81, i32 81, i32 66, i32 66, i32 69 ]		; <[14 x i32]*> [#uses=0]
- at str94 = internal global [8 x i8] c"%c@%c%d\00"		; <[8 x i8]*> [#uses=0]
- at str95 = internal global [5 x i8] c"%c%d\00"		; <[5 x i8]*> [#uses=0]
- at str1.upgrd.155 = internal global [8 x i8] c"%c%d=%c\00"		; <[8 x i8]*> [#uses=0]
- at str2.upgrd.156 = internal global [8 x i8] c"%cx%c%d\00"		; <[8 x i8]*> [#uses=0]
- at str96 = internal global [11 x i8] c"%cx%c%d=%c\00"		; <[11 x i8]*> [#uses=0]
- at str97 = internal global [4 x i8] c"O-O\00"		; <[4 x i8]*> [#uses=0]
- at str98 = internal global [6 x i8] c"O-O-O\00"		; <[6 x i8]*> [#uses=0]
- at str99 = internal global [9 x i8] c"%c%c%c%d\00"		; <[9 x i8]*> [#uses=0]
- at str3100 = internal global [9 x i8] c"%c%d%c%d\00"		; <[9 x i8]*> [#uses=0]
- at str101 = internal global [10 x i8] c"%c%cx%c%d\00"		; <[10 x i8]*> [#uses=0]
- at str4.upgrd.157 = internal global [10 x i8] c"%c%dx%c%d\00"		; <[10 x i8]*> [#uses=0]
- at str102 = internal global [7 x i8] c"%c%c%d\00"		; <[7 x i8]*> [#uses=0]
- at str5103 = internal global [5 x i8] c"illg\00"		; <[5 x i8]*> [#uses=0]
- at type_to_char.3190 = internal global [14 x i32] [ i32 70, i32 80, i32 112, i32 78, i32 110, i32 75, i32 107, i32 82, i32 114, i32 81, i32 113, i32 66, i32 98, i32 69 ]		; <[14 x i32]*> [#uses=0]
- at str7.upgrd.158 = internal global [10 x i8] c"%c%d%c%dn\00"		; <[10 x i8]*> [#uses=0]
- at str8.upgrd.159 = internal global [10 x i8] c"%c%d%c%dr\00"		; <[10 x i8]*> [#uses=0]
- at str9.upgrd.160 = internal global [10 x i8] c"%c%d%c%db\00"		; <[10 x i8]*> [#uses=0]
- at str10.upgrd.161 = internal global [10 x i8] c"%c%d%c%dk\00"		; <[10 x i8]*> [#uses=0]
- at str11.upgrd.162 = internal global [10 x i8] c"%c%d%c%dq\00"		; <[10 x i8]*> [#uses=0]
- at C.88.3251 = internal global [14 x i8*] [ i8* getelementptr ([3 x i8]* @str105, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str12106, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str13107, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str141, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str152, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str163, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str174, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str185, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str19108, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str206, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str21109, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str227, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str238, i32 0, i32 0), i8* getelementptr ([3 x i8]* @str249, i32 0, i32 0) ]		; <[14 x i8*]*> [#uses=0]
- at str105 = internal global [3 x i8] c"!!\00"		; <[3 x i8]*> [#uses=1]
- at str12106 = internal global [3 x i8] c" P\00"		; <[3 x i8]*> [#uses=1]
- at str13107 = internal global [3 x i8] c"*P\00"		; <[3 x i8]*> [#uses=1]
- at str141 = internal global [3 x i8] c" N\00"		; <[3 x i8]*> [#uses=1]
- at str152 = internal global [3 x i8] c"*N\00"		; <[3 x i8]*> [#uses=1]
- at str163 = internal global [3 x i8] c" K\00"		; <[3 x i8]*> [#uses=1]
- at str174 = internal global [3 x i8] c"*K\00"		; <[3 x i8]*> [#uses=1]
- at str185 = internal global [3 x i8] c" R\00"		; <[3 x i8]*> [#uses=1]
- at str19108 = internal global [3 x i8] c"*R\00"		; <[3 x i8]*> [#uses=1]
- at str206 = internal global [3 x i8] c" Q\00"		; <[3 x i8]*> [#uses=1]
- at str21109 = internal global [3 x i8] c"*Q\00"		; <[3 x i8]*> [#uses=1]
- at str227 = internal global [3 x i8] c" B\00"		; <[3 x i8]*> [#uses=1]
- at str238 = internal global [3 x i8] c"*B\00"		; <[3 x i8]*> [#uses=1]
- at str249 = internal global [3 x i8] c"  \00"		; <[3 x i8]*> [#uses=1]
- at str110 = internal global [42 x i8] c"+----+----+----+----+----+----+----+----+\00"		; <[42 x i8]*> [#uses=0]
- at str25.upgrd.163 = internal global [6 x i8] c"  %s\0A\00"		; <[6 x i8]*> [#uses=0]
- at str26.upgrd.164 = internal global [5 x i8] c"%d |\00"		; <[5 x i8]*> [#uses=0]
- at str27.upgrd.165 = internal global [6 x i8] c" %s |\00"		; <[6 x i8]*> [#uses=0]
- at str28.upgrd.166 = internal global [7 x i8] c"\0A  %s\0A\00"		; <[7 x i8]*> [#uses=0]
- at str111 = internal global [45 x i8] c"\0A     a    b    c    d    e    f    g    h\0A\0A\00"		; <[45 x i8]*> [#uses=0]
- at str29.upgrd.167 = internal global [45 x i8] c"\0A     h    g    f    e    d    c    b    a\0A\0A\00"		; <[45 x i8]*> [#uses=0]
- at str33.upgrd.168 = internal global [2 x i8] c"<\00"		; <[2 x i8]*> [#uses=0]
- at str34.upgrd.169 = internal global [3 x i8] c"> \00"		; <[3 x i8]*> [#uses=0]
- at str114.upgrd.170 = internal global [18 x i8] c"%2i %7i %5i %8i  \00"		; <[18 x i8]*> [#uses=0]
- at str115 = internal global [20 x i8] c"%2i %c%1i.%02i %9i \00"		; <[20 x i8]*> [#uses=0]
- at str39.upgrd.171 = internal global [5 x i8] c"%s !\00"		; <[5 x i8]*> [#uses=0]
- at str40.upgrd.172 = internal global [6 x i8] c"%s !!\00"		; <[6 x i8]*> [#uses=0]
- at str41.upgrd.173 = internal global [6 x i8] c"%s ??\00"		; <[6 x i8]*> [#uses=0]
- at str124 = internal global [71 x i8] c"\0ASjeng version SPEC 1.0, Copyright (C) 2000-2005 Gian-Carlo Pascutto\0A\0A\00"		; <[71 x i8]*> [#uses=0]
- at state = internal global [625 x i32] zeroinitializer		; <[625 x i32]*> [#uses=0]
-
-declare fastcc i32 @calc_attackers(i32, i32)
-
-declare fastcc i32 @is_attacked(i32, i32)
-
-declare fastcc void @ProcessHoldings(i8*)
-
-declare void @llvm.memset.i32(i8*, i8, i32, i32)
-
-declare i8* @strncpy(i8*, i8*, i32)
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-declare void @__eprintf(i8*, i8*, i32, i8*)
-
-declare fastcc void @addHolding(i32, i32)
-
-declare fastcc void @removeHolding(i32, i32)
-
-declare fastcc void @DropremoveHolding(i32, i32)
-
-declare i32 @printf(i8*, ...)
-
-declare fastcc i32 @is_draw()
-
-declare void @exit(i32)
-
-declare fastcc void @setup_epd_line(i8*)
-
-declare i32 @atoi(i8*)
-
-declare fastcc void @reset_piece_square()
-
-declare fastcc void @initialize_hash()
-
-declare i32 @__maskrune(i32, i32)
-
-declare fastcc void @comp_to_san(i64, i64, i64, i8*)
-
-declare i8* @strstr(i8*, i8*)
-
-declare i32 @atol(i8*)
-
-declare %struct.FILE* @fopen(i8*, i8*)
-
-declare fastcc void @display_board(i32)
-
-define internal void @think(%struct.move_s* sret  %agg.result) {
-entry:
-	%output.i = alloca [8 x i8], align 8		; <[8 x i8]*> [#uses=0]
-	%comp_move = alloca %struct.move_s, align 16		; <%struct.move_s*> [#uses=7]
-	%temp_move = alloca %struct.move_s, align 16		; <%struct.move_s*> [#uses=6]
-	%moves = alloca [512 x %struct.move_s], align 16		; <[512 x %struct.move_s]*> [#uses=7]
-	%output = alloca [8 x i8], align 8		; <[8 x i8]*> [#uses=1]
-	store i1 false, i1* @userealholdings.b
-	%tmp = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0		; <%struct.move_s*> [#uses=3]
-	%tmp362 = getelementptr %struct.move_s* %comp_move, i32 0, i32 0		; <i32*> [#uses=0]
-	%tmp365 = getelementptr %struct.move_s* %comp_move, i32 0, i32 1		; <i32*> [#uses=0]
-	%tmp368 = getelementptr %struct.move_s* %comp_move, i32 0, i32 2		; <i32*> [#uses=0]
-	%tmp371 = getelementptr %struct.move_s* %comp_move, i32 0, i32 3		; <i32*> [#uses=0]
-	%tmp374 = getelementptr %struct.move_s* %comp_move, i32 0, i32 4		; <i32*> [#uses=0]
-	%tmp377 = getelementptr %struct.move_s* %comp_move, i32 0, i32 5		; <i32*> [#uses=0]
-	%tmp.upgrd.174 = bitcast %struct.move_s* %comp_move to { i64, i64, i64 }*		; <{ i64, i64, i64 }*> [#uses=3]
-	%tmp.upgrd.175 = getelementptr { i64, i64, i64 }* %tmp.upgrd.174, i32 0, i32 0		; <i64*> [#uses=0]
-	%tmp829 = getelementptr { i64, i64, i64 }* %tmp.upgrd.174, i32 0, i32 1		; <i64*> [#uses=0]
-	%tmp832 = getelementptr { i64, i64, i64 }* %tmp.upgrd.174, i32 0, i32 2		; <i64*> [#uses=0]
-	%output.upgrd.176 = getelementptr [8 x i8]* %output, i32 0, i32 0		; <i8*> [#uses=0]
-	%tmp573 = getelementptr %struct.move_s* %temp_move, i32 0, i32 0		; <i32*> [#uses=0]
-	%tmp576 = getelementptr %struct.move_s* %temp_move, i32 0, i32 1		; <i32*> [#uses=0]
-	%tmp579 = getelementptr %struct.move_s* %temp_move, i32 0, i32 2		; <i32*> [#uses=0]
-	%tmp582 = getelementptr %struct.move_s* %temp_move, i32 0, i32 3		; <i32*> [#uses=0]
-	%tmp585 = getelementptr %struct.move_s* %temp_move, i32 0, i32 4		; <i32*> [#uses=0]
-	%tmp588 = getelementptr %struct.move_s* %temp_move, i32 0, i32 5		; <i32*> [#uses=0]
-	%pn_restart.0.ph = bitcast i32 0 to i32		; <i32> [#uses=2]
-	%tmp21362 = icmp eq i32 0, 0		; <i1> [#uses=2]
-	%tmp216 = sitofp i32 %pn_restart.0.ph to float		; <float> [#uses=1]
-	%tmp216.upgrd.177 = fpext float %tmp216 to double		; <double> [#uses=1]
-	%tmp217 = fadd double %tmp216.upgrd.177, 1.000000e+00		; <double> [#uses=1]
-	%tmp835 = icmp sgt i32 %pn_restart.0.ph, 9		; <i1> [#uses=0]
-	store i32 0, i32* @nodes
-	store i32 0, i32* @qnodes
-	store i32 1, i32* @ply
-	store i32 0, i32* @ECacheProbes
-	store i32 0, i32* @ECacheHits
-	store i32 0, i32* @TTProbes
-	store i32 0, i32* @TTHits
-	store i32 0, i32* @TTStores
-	store i32 0, i32* @NCuts
-	store i32 0, i32* @NTries
-	store i32 0, i32* @TExt
-	store i32 0, i32* @FH
-	store i32 0, i32* @FHF
-	store i32 0, i32* @PVS
-	store i32 0, i32* @FULL
-	store i32 0, i32* @PVSF
-	store i32 0, i32* @ext_check
-	store i32 0, i32* @ext_onerep
-	store i32 0, i32* @razor_drop
-	store i32 0, i32* @razor_material
-	store i1 false, i1* @extendedtime.b
-	store i1 false, i1* @forcedwin.b
-	store i32 200, i32* @maxposdiff
-	store i8 0, i8* @true_i_depth
-	store i32 0, i32* @legals
-	%tmp48 = load i32* @Variant		; <i32> [#uses=1]
-	%tmp49 = icmp eq i32 %tmp48, 4		; <i1> [#uses=1]
-	%storemerge = zext i1 %tmp49 to i32		; <i32> [#uses=1]
-	store i32 %storemerge, i32* @captures
-	call fastcc void @gen( %struct.move_s* %tmp )
-	%tmp53 = load i32* @numb_moves		; <i32> [#uses=1]
-	%tmp.i = load i32* @Variant		; <i32> [#uses=1]
-	%tmp.i.upgrd.178 = icmp eq i32 %tmp.i, 3		; <i1> [#uses=1]
-	br i1 %tmp.i.upgrd.178, label %in_check.exit, label %cond_next.i
-
-cond_next.i:		; preds = %entry
-	%tmp2.i5 = load i32* @white_to_move		; <i32> [#uses=1]
-	%tmp3.i = icmp eq i32 %tmp2.i5, 1		; <i1> [#uses=0]
-	ret void
-
-in_check.exit:		; preds = %entry
-	%tmp7637 = icmp sgt i32 %tmp53, 0		; <i1> [#uses=1]
-	br i1 %tmp7637, label %cond_true77, label %bb80
-
-cond_true77:		; preds = %in_check.exit
-	%l.1.0 = bitcast i32 0 to i32		; <i32> [#uses=2]
-	call fastcc void @make( %struct.move_s* %tmp, i32 %l.1.0 )
-	%tmp61 = call fastcc i32 @check_legal( %struct.move_s* %tmp, i32 %l.1.0, i32 0 )		; <i32> [#uses=1]
-	%tmp62 = icmp eq i32 %tmp61, 0		; <i1> [#uses=0]
-	ret void
-
-bb80:		; preds = %in_check.exit
-	%tmp81 = load i32* @Variant		; <i32> [#uses=1]
-	%tmp82 = icmp eq i32 %tmp81, 4		; <i1> [#uses=1]
-	br i1 %tmp82, label %cond_true83, label %cond_next118
-
-cond_true83:		; preds = %bb80
-	%tmp84 = load i32* @legals		; <i32> [#uses=1]
-	%tmp85 = icmp eq i32 %tmp84, 0		; <i1> [#uses=0]
-	ret void
-
-cond_next118:		; preds = %bb80
-	%tmp119 = load i32* @Variant		; <i32> [#uses=1]
-	%tmp120 = icmp eq i32 %tmp119, 1		; <i1> [#uses=1]
-	br i1 %tmp120, label %cond_next176, label %cond_true121
-
-cond_true121:		; preds = %cond_next118
-	%tmp122.b = load i1* @is_pondering.b		; <i1> [#uses=1]
-	br i1 %tmp122.b, label %cond_next176, label %cond_true124
-
-cond_true124:		; preds = %cond_true121
-	%tmp125 = load i32* @legals		; <i32> [#uses=1]
-	%tmp126 = icmp eq i32 %tmp125, 1		; <i1> [#uses=1]
-	br i1 %tmp126, label %cond_true127, label %cond_next176
-
-cond_true127:		; preds = %cond_true124
-	%tmp128 = load i32* @inc		; <i32> [#uses=1]
-	%tmp129 = mul i32 %tmp128, 100		; <i32> [#uses=1]
-	%tmp130 = load i32* @time_cushion		; <i32> [#uses=1]
-	%tmp131 = add i32 %tmp129, %tmp130		; <i32> [#uses=1]
-	store i32 %tmp131, i32* @time_cushion
-	%tmp134 = getelementptr %struct.move_s* %agg.result, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp135 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp136 = load i32* %tmp135		; <i32> [#uses=1]
-	store i32 %tmp136, i32* %tmp134
-	%tmp137 = getelementptr %struct.move_s* %agg.result, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp138 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp139 = load i32* %tmp138		; <i32> [#uses=1]
-	store i32 %tmp139, i32* %tmp137
-	%tmp140 = getelementptr %struct.move_s* %agg.result, i32 0, i32 2		; <i32*> [#uses=1]
-	%tmp141 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 2		; <i32*> [#uses=1]
-	%tmp142 = load i32* %tmp141		; <i32> [#uses=1]
-	store i32 %tmp142, i32* %tmp140
-	%tmp143 = getelementptr %struct.move_s* %agg.result, i32 0, i32 3		; <i32*> [#uses=1]
-	%tmp144 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 3		; <i32*> [#uses=1]
-	%tmp145 = load i32* %tmp144		; <i32> [#uses=1]
-	store i32 %tmp145, i32* %tmp143
-	%tmp146 = getelementptr %struct.move_s* %agg.result, i32 0, i32 4		; <i32*> [#uses=1]
-	%tmp147 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 4		; <i32*> [#uses=1]
-	%tmp148 = load i32* %tmp147		; <i32> [#uses=1]
-	store i32 %tmp148, i32* %tmp146
-	%tmp149 = getelementptr %struct.move_s* %agg.result, i32 0, i32 5		; <i32*> [#uses=1]
-	%tmp150 = getelementptr [512 x %struct.move_s]* %moves, i32 0, i32 0, i32 5		; <i32*> [#uses=1]
-	%tmp151 = load i32* %tmp150		; <i32> [#uses=1]
-	store i32 %tmp151, i32* %tmp149
-	ret void
-
-cond_next176:		; preds = %cond_true124, %cond_true121, %cond_next118
-	call fastcc void @check_phase( )
-	%tmp177 = load i32* @phase		; <i32> [#uses=1]
-	switch i32 %tmp177, label %bb187 [
-		 i32 0, label %bb178
-		 i32 1, label %bb180
-		 i32 2, label %bb183
-	]
-
-bb178:		; preds = %cond_next176
-	%tmp179 = call i32 (i8*, ...)* @printf( i8* getelementptr ([16 x i8]* @str40.upgrd.84, i32 0, i64 0) )		; <i32> [#uses=0]
-	%tmp18854.b = load i1* @is_pondering.b		; <i1> [#uses=1]
-	br i1 %tmp18854.b, label %cond_false210, label %cond_true190
-
-bb180:		; preds = %cond_next176
-	%tmp182 = call i32 (i8*, ...)* @printf( i8* getelementptr ([19 x i8]* @str.upgrd.85, i32 0, i64 0) )		; <i32> [#uses=0]
-	%tmp18856.b = load i1* @is_pondering.b		; <i1> [#uses=0]
-	ret void
-
-bb183:		; preds = %cond_next176
-	%tmp185 = call i32 (i8*, ...)* @printf( i8* getelementptr ([16 x i8]* @str1.upgrd.86, i32 0, i64 0) )		; <i32> [#uses=0]
-	%tmp18858.b = load i1* @is_pondering.b		; <i1> [#uses=0]
-	ret void
-
-bb187:		; preds = %cond_next176
-	%tmp188.b = load i1* @is_pondering.b		; <i1> [#uses=0]
-	ret void
-
-cond_true190:		; preds = %bb178
-	%tmp191 = load i32* @fixed_time		; <i32> [#uses=1]
-	%tmp192 = icmp eq i32 %tmp191, 0		; <i1> [#uses=0]
-	ret void
-
-cond_false210:		; preds = %bb178
-	store i32 999999, i32* @time_for_move
-	br i1 %tmp21362, label %cond_true226.critedge, label %bb287.critedge
-
-cond_true226.critedge:		; preds = %cond_false210
-	%tmp223.c = call i32 (i8*, ...)* @printf( i8* getelementptr ([20 x i8]* @str43, i32 0, i64 0), i32 999999 )		; <i32> [#uses=0]
-	%tmp.i.upgrd.179 = load %struct.TType** @DP_TTable		; <%struct.TType*> [#uses=1]
-	%tmp.i7.b = load i1* @TTSize.b		; <i1> [#uses=1]
-	%tmp1.i = select i1 %tmp.i7.b, i32 60000000, i32 0		; <i32> [#uses=1]
-	%tmp.i.sb = getelementptr %struct.TType* %tmp.i.upgrd.179, i32 0, i32 0		; <i8*> [#uses=1]
-	call void @llvm.memset.i32( i8* %tmp.i.sb, i8 0, i32 %tmp1.i, i32 4 )
-	%tmp2.i = load %struct.TType** @AS_TTable		; <%struct.TType*> [#uses=1]
-	%tmp3.i8.b = load i1* @TTSize.b		; <i1> [#uses=1]
-	%tmp4.i = select i1 %tmp3.i8.b, i32 60000000, i32 0		; <i32> [#uses=1]
-	%tmp2.i.upgrd.180 = getelementptr %struct.TType* %tmp2.i, i32 0, i32 0		; <i8*> [#uses=1]
-	call void @llvm.memset.i32( i8* %tmp2.i.upgrd.180, i8 0, i32 %tmp4.i, i32 4 )
-	%tmp.i.QTT = load %struct.QTType** @QS_TTable		; <%struct.QTType*> [#uses=1]
-	%tmp5.i9.b = load i1* @TTSize.b		; <i1> [#uses=1]
-	%tmp6.i10 = select i1 %tmp5.i9.b, i32 48000000, i32 0		; <i32> [#uses=1]
-	%tmp7.i = getelementptr %struct.QTType* %tmp.i.QTT, i32 0, i32 0		; <i8*> [#uses=1]
-	call void @llvm.memset.i32( i8* %tmp7.i, i8 0, i32 %tmp6.i10, i32 4 )
-	%tmp.i.ECache = load %struct.ECacheType** @ECache		; <%struct.ECacheType*> [#uses=1]
-	%tmp.i14.b = load i1* @ECacheSize.b		; <i1> [#uses=1]
-	%tmp1.i16 = select i1 %tmp.i14.b, i32 12000000, i32 0		; <i32> [#uses=1]
-	%tmp.i17 = bitcast %struct.ECacheType* %tmp.i.ECache to i8*		; <i8*> [#uses=1]
-	call void @llvm.memset.i32( i8* %tmp.i17, i8 0, i32 %tmp1.i16, i32 4 )
-	call void @llvm.memset.i32( i8* bitcast ([300 x i32]* @rootlosers to i8*), i8 0, i32 1200, i32 4 )
-	%tmp234.b = load i1* @is_pondering.b		; <i1> [#uses=1]
-	br i1 %tmp234.b, label %bb263, label %cond_next238
-
-cond_next238:		; preds = %cond_true226.critedge
-	%tmp239 = load i32* @Variant		; <i32> [#uses=2]
-	switch i32 %tmp239, label %bb263 [
-		 i32 3, label %bb249
-		 i32 4, label %bb249
-	]
-
-bb249:		; preds = %cond_next238, %cond_next238
-	%tmp250 = load i32* @piece_count		; <i32> [#uses=1]
-	%tmp251 = icmp sgt i32 %tmp250, 3		; <i1> [#uses=1]
-	%tmp240.not = icmp ne i32 %tmp239, 3		; <i1> [#uses=1]
-	%brmerge = or i1 %tmp251, %tmp240.not		; <i1> [#uses=1]
-	br i1 %brmerge, label %bb260, label %bb263
-
-bb260:		; preds = %bb249
-	%tmp261 = load i32* @time_for_move		; <i32> [#uses=1]
-	%tmp261.upgrd.181 = sitofp i32 %tmp261 to float		; <float> [#uses=1]
-	%tmp261.upgrd.182 = fpext float %tmp261.upgrd.181 to double		; <double> [#uses=1]
-	%tmp262 = fdiv double %tmp261.upgrd.182, 3.000000e+00		; <double> [#uses=1]
-	%tmp262.upgrd.183 = fptosi double %tmp262 to i32		; <i32> [#uses=1]
-	store i32 %tmp262.upgrd.183, i32* @pn_time
-	%tmp1.b.i = load i1* @PBSize.b		; <i1> [#uses=1]
-	%tmp1.i1 = select i1 %tmp1.b.i, i32 200000, i32 0		; <i32> [#uses=1]
-	%tmp.i2 = call i8* @calloc( i32 %tmp1.i1, i32 44 )		; <i8*> [#uses=1]
-	%tmp.i.ub = bitcast i8* %tmp.i2 to i8*		; <i8*> [#uses=1]
-	store i8* %tmp.i.ub, i8** @membuff
-	%tmp2.i3 = call i8* @calloc( i32 1, i32 44 )		; <i8*> [#uses=3]
-	%tmp2.i.upgrd.184 = bitcast i8* %tmp2.i3 to %struct.node_t*		; <%struct.node_t*> [#uses=6]
-	%tmp.i.move_s = getelementptr [512 x %struct.move_s]* null, i32 0, i32 0		; <%struct.move_s*> [#uses=3]
-	call fastcc void @gen( %struct.move_s* %tmp.i.move_s )
-	%tmp3.i4 = load i32* @numb_moves		; <i32> [#uses=4]
-	%tmp3.i5 = bitcast i32 %tmp3.i4 to i32		; <i32> [#uses=0]
-	store i1 false, i1* @alllosers.b
-	call void @llvm.memset.i32( i8* bitcast ([300 x i32]* @rootlosers to i8*), i8 0, i32 1200, i32 4 )
-	%nodesspent.i = bitcast [512 x i32]* null to i8*		; <i8*> [#uses=1]
-	call void @llvm.memset.i32( i8* %nodesspent.i, i8 0, i32 2048, i32 16 )
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 0)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 1)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 2)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 3)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 4)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 5)
-	%tmp.i.i = load i32* @Variant		; <i32> [#uses=1]
-	%tmp.i.i.upgrd.185 = icmp eq i32 %tmp.i.i, 3		; <i1> [#uses=1]
-	br i1 %tmp.i.i.upgrd.185, label %in_check.exit.i, label %cond_next.i.i
-
-cond_next.i.i:		; preds = %bb260
-	%tmp2.i.i = load i32* @white_to_move		; <i32> [#uses=1]
-	%tmp3.i.i = icmp eq i32 %tmp2.i.i, 1		; <i1> [#uses=1]
-	br i1 %tmp3.i.i, label %cond_true4.i.i, label %cond_false12.i.i
-
-cond_true4.i.i:		; preds = %cond_next.i.i
-	%tmp5.i.i = load i32* @wking_loc		; <i32> [#uses=1]
-	%tmp6.i.i = call fastcc i32 @is_attacked( i32 %tmp5.i.i, i32 0 )		; <i32> [#uses=1]
-	%not.tmp7.i.i = icmp ne i32 %tmp6.i.i, 0		; <i1> [#uses=1]
-	%tmp217.i = zext i1 %not.tmp7.i.i to i32		; <i32> [#uses=1]
-	%tmp4219.i = icmp sgt i32 %tmp3.i4, 0		; <i1> [#uses=1]
-	br i1 %tmp4219.i, label %cond_true43.i, label %bb46.i
-
-cond_false12.i.i:		; preds = %cond_next.i.i
-	%tmp13.i.i = load i32* @bking_loc		; <i32> [#uses=1]
-	%tmp14.i.i = call fastcc i32 @is_attacked( i32 %tmp13.i.i, i32 1 )		; <i32> [#uses=1]
-	%not.tmp15.i.i = icmp ne i32 %tmp14.i.i, 0		; <i1> [#uses=1]
-	%tmp2120.i = zext i1 %not.tmp15.i.i to i32		; <i32> [#uses=1]
-	%tmp4222.i = icmp sgt i32 %tmp3.i4, 0		; <i1> [#uses=1]
-	br i1 %tmp4222.i, label %cond_true43.i, label %bb46.i
-
-in_check.exit.i:		; preds = %bb260
-	%tmp4224.i = icmp sgt i32 %tmp3.i4, 0		; <i1> [#uses=0]
-	ret void
-
-cond_true43.i:		; preds = %cond_false12.i.i, %cond_true4.i.i
-	%tmp21.0.ph.i = phi i32 [ %tmp217.i, %cond_true4.i.i ], [ %tmp2120.i, %cond_false12.i.i ]		; <i32> [#uses=1]
-	%i.0.0.i = bitcast i32 0 to i32		; <i32> [#uses=2]
-	call fastcc void @make( %struct.move_s* %tmp.i.move_s, i32 %i.0.0.i )
-	%tmp27.i = call fastcc i32 @check_legal( %struct.move_s* %tmp.i.move_s, i32 %i.0.0.i, i32 %tmp21.0.ph.i )		; <i32> [#uses=1]
-	%tmp.i6 = icmp eq i32 %tmp27.i, 0		; <i1> [#uses=0]
-	ret void
-
-bb46.i:		; preds = %cond_false12.i.i, %cond_true4.i.i
-	%tmp48.i = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp48.i, label %cond_true49.i, label %cond_next53.i
-
-cond_true49.i:		; preds = %bb46.i
-	store i32 0, i32* @bufftop
-	%tmp50.i = load i8** @membuff		; <i8*> [#uses=1]
-	free i8* %tmp50.i
-	free i8* %tmp2.i3
-	ret void
-
-cond_next53.i:		; preds = %bb46.i
-	store i32 1, i32* @nodecount
-	store i32 0, i32* @iters
-	store i32 0, i32* @maxply
-	store i32 0, i32* @forwards
-	%tmp54.i = load i32* @move_number		; <i32> [#uses=1]
-	%tmp55.i = load i32* @ply		; <i32> [#uses=1]
-	%tmp56.i = add i32 %tmp54.i, -1		; <i32> [#uses=1]
-	%tmp57.i = add i32 %tmp56.i, %tmp55.i		; <i32> [#uses=1]
-	%tmp58.i = load i32* @hash		; <i32> [#uses=1]
-	%tmp.i.upgrd.186 = getelementptr [600 x i32]* @hash_history, i32 0, i32 %tmp57.i		; <i32*> [#uses=1]
-	store i32 %tmp58.i, i32* %tmp.i.upgrd.186
-	%tmp59.i = load i32* @white_to_move		; <i32> [#uses=1]
-	%tmp60.i = icmp eq i32 %tmp59.i, 0		; <i1> [#uses=1]
-	%tmp60.i.upgrd.187 = zext i1 %tmp60.i to i32		; <i32> [#uses=1]
-	store i32 %tmp60.i.upgrd.187, i32* @root_to_move
-	%tmp.i4.i = load i32* @Variant		; <i32> [#uses=2]
-	%tmp.i5.i = icmp eq i32 %tmp.i4.i, 3		; <i1> [#uses=1]
-	br i1 %tmp.i5.i, label %cond_true.i.i, label %cond_false.i.i
-
-cond_true.i.i:		; preds = %cond_next53.i
-	call fastcc void @suicide_pn_eval( %struct.node_t* %tmp2.i.upgrd.184 )
-	%tmp6328.i = getelementptr %struct.node_t* %tmp2.i.upgrd.184, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp29.i = load i8* %tmp6328.i		; <i8> [#uses=1]
-	%tmp6430.i = icmp eq i8 %tmp29.i, 1		; <i1> [#uses=0]
-	ret void
-
-cond_false.i.i:		; preds = %cond_next53.i
-	%tmp2.i.i.upgrd.188 = icmp eq i32 %tmp.i4.i, 4		; <i1> [#uses=1]
-	%tmp63.i = getelementptr %struct.node_t* %tmp2.i.upgrd.184, i32 0, i32 0		; <i8*> [#uses=2]
-	br i1 %tmp2.i.i.upgrd.188, label %cond_true3.i.i, label %cond_false5.i.i
-
-cond_true3.i.i:		; preds = %cond_false.i.i
-	call fastcc void @losers_pn_eval( %struct.node_t* %tmp2.i.upgrd.184 )
-	%tmp31.i = load i8* %tmp63.i		; <i8> [#uses=1]
-	%tmp6432.i = icmp eq i8 %tmp31.i, 1		; <i1> [#uses=1]
-	br i1 %tmp6432.i, label %bb75.i, label %cond_next67.i
-
-cond_false5.i.i:		; preds = %cond_false.i.i
-	call fastcc void @std_pn_eval( %struct.node_t* %tmp2.i.upgrd.184 )
-	%tmp.i.upgrd.189 = load i8* %tmp63.i		; <i8> [#uses=1]
-	%tmp64.i = icmp eq i8 %tmp.i.upgrd.189, 1		; <i1> [#uses=0]
-	ret void
-
-cond_next67.i:		; preds = %cond_true3.i.i
-	%tmp69.i = getelementptr %struct.node_t* %tmp2.i.upgrd.184, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp70.i = load i8* %tmp69.i		; <i8> [#uses=1]
-	%tmp71.i = icmp eq i8 %tmp70.i, 0		; <i1> [#uses=0]
-	ret void
-
-bb75.i:		; preds = %cond_true3.i.i
-	store i32 0, i32* @bufftop
-	%tmp76.i = load i8** @membuff		; <i8*> [#uses=1]
-	free i8* %tmp76.i
-	free i8* %tmp2.i3
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 0)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 1)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 2)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 3)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 4)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 5)
-	%tmp28869 = load i32* @result		; <i32> [#uses=1]
-	%tmp28970 = icmp eq i32 %tmp28869, 0		; <i1> [#uses=1]
-	br i1 %tmp28970, label %cond_next337, label %cond_true290
-
-bb263:		; preds = %bb249, %cond_next238, %cond_true226.critedge
-	br i1 %tmp21362, label %cond_true266, label %bb287
-
-cond_true266:		; preds = %bb263
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 0)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 1)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 2)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 3)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 4)
-	store i32 0, i32* getelementptr (%struct.move_s* @pn_move, i64 0, i32 5)
-	%tmp28871 = load i32* @result		; <i32> [#uses=1]
-	%tmp28972 = icmp eq i32 %tmp28871, 0		; <i1> [#uses=0]
-	ret void
-
-bb287.critedge:		; preds = %cond_false210
-	%tmp218.c = fdiv double 1.999998e+06, %tmp217		; <double> [#uses=1]
-	%tmp218.c.upgrd.190 = fptosi double %tmp218.c to i32		; <i32> [#uses=2]
-	store i32 %tmp218.c.upgrd.190, i32* @time_for_move
-	%tmp22367.c = call i32 (i8*, ...)* @printf( i8* getelementptr ([20 x i8]* @str43, i32 0, i64 0), i32 %tmp218.c.upgrd.190 )		; <i32> [#uses=0]
-	ret void
-
-bb287:		; preds = %bb263
-	%tmp288 = load i32* @result		; <i32> [#uses=1]
-	%tmp289 = icmp eq i32 %tmp288, 0		; <i1> [#uses=0]
-	ret void
-
-cond_true290:		; preds = %bb75.i
-	%tmp292 = load i32* getelementptr (%struct.move_s* @pn_move, i32 0, i32 1)		; <i32> [#uses=1]
-	%tmp295 = icmp eq i32 %tmp292, 0		; <i1> [#uses=0]
-	ret void
-
-cond_next337:		; preds = %bb75.i
-	%tmp338.b = load i1* @forcedwin.b		; <i1> [#uses=1]
-	br i1 %tmp338.b, label %bb348, label %cond_next342
-
-cond_next342:		; preds = %cond_next337
-	%tmp343 = load i32* @result		; <i32> [#uses=1]
-	%tmp344 = icmp eq i32 %tmp343, 0		; <i1> [#uses=0]
-	ret void
-
-bb348:		; preds = %cond_next337
-	%tmp350 = load i32* getelementptr (%struct.move_s* @pn_move, i32 0, i32 1)		; <i32> [#uses=1]
-	%tmp353 = icmp eq i32 %tmp350, 0		; <i1> [#uses=0]
-	ret void
-}
-
-declare fastcc i32 @eval(i32, i32)
-
-declare i8* @fgets(i8*, i32, %struct.FILE*)
-
-declare i32 @fclose(%struct.FILE*)
-
-declare fastcc i32 @losers_eval()
-
-declare fastcc i32 @l_bishop_mobility(i32)
-
-declare fastcc i32 @l_rook_mobility(i32)
-
-declare fastcc i32 @check_legal(%struct.move_s*, i32, i32)
-
-declare fastcc void @gen(%struct.move_s*)
-
-declare fastcc void @push_pawn(i32, i32)
-
-declare fastcc void @push_knighT(i32)
-
-declare fastcc void @push_slidE(i32)
-
-declare fastcc void @push_king(i32)
-
-declare fastcc i32 @f_in_check(%struct.move_s*, i32)
-
-declare fastcc void @make(%struct.move_s*, i32)
-
-declare fastcc void @add_capture(i32, i32, i32)
-
-declare fastcc void @unmake(%struct.move_s*, i32)
-
-declare i32 @ErrorIt(i32, i32)
-
-declare i32 @Pawn(i32, i32)
-
-declare i32 @Knight(i32, i32)
-
-declare i32 @King(i32, i32)
-
-declare i32 @Rook(i32, i32)
-
-declare i32 @Queen(i32, i32)
-
-declare i32 @Bishop(i32, i32)
-
-declare fastcc void @check_phase()
-
-declare fastcc i32 @bishop_mobility(i32)
-
-declare fastcc i32 @rook_mobility(i32)
-
-declare i32 @sscanf(i8*, i8*, ...)
-
-declare i32 @strncmp(i8*, i8*, i32)
-
-declare i8* @strchr(i8*, i32)
-
-declare fastcc void @CheckBadFlow(i32)
-
-declare fastcc void @suicide_pn_eval(%struct.node_t*)
-
-declare fastcc void @losers_pn_eval(%struct.node_t*)
-
-declare fastcc void @std_pn_eval(%struct.node_t*)
-
-declare fastcc %struct.node_t* @select_most_proving(%struct.node_t*)
-
-declare fastcc void @set_proof_and_disproof_numbers(%struct.node_t*)
-
-declare fastcc void @StoreTT(i32, i32, i32, i32, i32, i32)
-
-declare fastcc void @develop_node(%struct.node_t*)
-
-declare fastcc void @update_ancestors(%struct.node_t*)
-
-declare i8* @calloc(i32, i32)
-
-declare fastcc void @comp_to_coord(i64, i64, i64, i8*)
-
-declare i8* @strcat(i8*, i8*)
-
-declare i32 @sprintf(i8*, i8*, ...)
-
-declare fastcc void @order_moves(%struct.move_s*, i32*, i32*, i32, i32)
-
-declare fastcc i32 @see(i32, i32, i32)
-
-declare fastcc void @perft(i32)
-
-declare fastcc i32 @qsearch(i32, i32, i32)
-
-declare fastcc i32 @allocate_time()
-
-declare fastcc void @QStoreTT(i32, i32, i32, i32)
-
-declare fastcc i32 @search(i32, i32, i32, i32)
-
-declare fastcc i32 @ProbeTT(i32*, i32, i32*, i32*, i32*, i32)
-
-declare void @search_root(%struct.move_s* sret , i32, i32, i32)
-
-declare fastcc void @post_fh_thinking(i32, %struct.move_s*)
-
-declare fastcc void @post_thinking(i32)
-
-declare i32 @fprintf(%struct.FILE*, i8*, ...)
-
-declare fastcc i32 @s_bishop_mobility(i32)
-
-declare fastcc i32 @s_rook_mobility(i32)
-
-declare fastcc i32 @suicide_mid_eval()
-
-declare i32 @main(i32, i8**)
-
-declare fastcc void @init_game()
-
-declare void @setbuf(%struct.FILE*, i8*)
-
-declare i8* @strcpy(i8*, i8*)
-
-declare i32 @__tolower(i32)
-
-declare i32 @strcmp(i8*, i8*)
-
-declare void (i32)* @signal(i32, void (i32)*)
-
-declare fastcc void @hash_extract_pv(i32, i8*)
-
-declare double @difftime(i32, i32)
-
-declare i32 @getc(%struct.FILE*)
-
-declare i32 @strlen(i8*)
-
-declare i32 @fwrite(i8*, i32, i32, %struct.FILE*)
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-07-28-load-store.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-07-28-load-store.ll
deleted file mode 100644
index 0ba8479..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-07-28-load-store.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep tmp5
-; PR2599
-
-define void @foo({ i32, i32 }* %x) nounwind  {
-entry:
-	%tmp4 = getelementptr { i32, i32 }* %x, i32 0, i32 0		; <i32*> [#uses=2]
-	%tmp5 = load i32* %tmp4, align 4		; <i32> [#uses=1]
-	%tmp7 = getelementptr { i32, i32 }* %x, i32 0, i32 1		; <i32*> [#uses=2]
-	%tmp8 = load i32* %tmp7, align 4		; <i32> [#uses=1]
-	%tmp17 = sub i32 0, %tmp8		; <i32> [#uses=1]
-	store i32 %tmp5, i32* %tmp4, align 4
-	store i32 %tmp17, i32* %tmp7, align 4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-11-28-MemDepUpdate.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-11-28-MemDepUpdate.ll
deleted file mode 100644
index 0f3350d..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-11-28-MemDepUpdate.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis
-; PR3141
-	%struct.ada__tags__dispatch_table = type { [1 x i32] }
-	%struct.f393a00_1__object = type { %struct.ada__tags__dispatch_table*, i8 }
-	%struct.f393a00_2__windmill = type { %struct.f393a00_1__object, i16 }
-
-define void @f393a00_2__swap(%struct.f393a00_2__windmill* %a, %struct.f393a00_2__windmill* %b) {
-entry:
-	%t = alloca %struct.f393a00_2__windmill		; <%struct.f393a00_2__windmill*> [#uses=1]
-	%0 = getelementptr %struct.f393a00_2__windmill* %t, i32 0, i32 0, i32 0		; <%struct.ada__tags__dispatch_table**> [#uses=1]
-	%1 = load %struct.ada__tags__dispatch_table** null, align 4		; <%struct.ada__tags__dispatch_table*> [#uses=1]
-	%2 = load %struct.ada__tags__dispatch_table** %0, align 8		; <%struct.ada__tags__dispatch_table*> [#uses=1]
-	store %struct.ada__tags__dispatch_table* %2, %struct.ada__tags__dispatch_table** null, align 4
-	store %struct.ada__tags__dispatch_table* %1, %struct.ada__tags__dispatch_table** null, align 4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-11-29-OffEndOfBlock.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-11-29-OffEndOfBlock.ll
deleted file mode 100644
index 11e2ffd..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/2008-11-29-OffEndOfBlock.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-	%struct.cab_archive = type { i32, i16, i16, i16, i16, i8, %struct.cab_folder*, %struct.cab_file* }
-	%struct.cab_file = type { i32, i16, i64, i8*, i32, i32, i32, %struct.cab_folder*, %struct.cab_file*, %struct.cab_archive*, %struct.cab_state* }
-	%struct.cab_folder = type { i16, i16, %struct.cab_archive*, i64, %struct.cab_folder* }
-	%struct.cab_state = type { i8*, i8*, [38912 x i8], i16, i16, i8*, i16 }
-	%struct.lzx_stream = type { i32, i32, i8, i64, i64, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i32, i8*, i8*, i8*, i8*, i8*, i32, i32, i32, [84 x i8], [720 x i8], [314 x i8], [72 x i8], [104 x i16], [5408 x i16], [4596 x i16], [144 x i16], [51 x i32], [51 x i8], [32768 x i8], %struct.cab_file*, i32 (%struct.cab_file*, i8*, i32)* }
-
-declare fastcc i32 @lzx_read_lens(%struct.lzx_stream*, i8*, i32, i32) nounwind
-
-define i32 @lzx_decompress(%struct.lzx_stream* %lzx, i64 %out_bytes) nounwind {
-bb13:		; preds = %entry
-	%0 = getelementptr %struct.lzx_stream* %lzx, i32 0, i32 25		; <i8**> [#uses=2]
-	%1 = getelementptr %struct.lzx_stream* %lzx, i32 0, i32 26		; <i8**> [#uses=2]
-	%2 = getelementptr %struct.lzx_stream* %lzx, i32 0, i32 29		; <i32*> [#uses=0]
-	br label %bb14
-
-bb14:		; preds = %bb13
-	%3 = load i8** %0, align 4		; <i8*> [#uses=1]
-	%4 = load i8** %1, align 4		; <i8*> [#uses=1]
-	store i8* %3, i8** %0, align 4
-	store i8* %4, i8** %1, align 4
-	%5 = call fastcc i32 @lzx_read_lens(%struct.lzx_stream* %lzx, i8* null, i32 256, i32 0) nounwind		; <i32> [#uses=0]
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/PartialStore.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/PartialStore.ll
deleted file mode 100644
index ce19657..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/PartialStore.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | \
-; RUN:    not grep {store i8}
-; Ensure that the dead store is deleted in this case.  It is wholely
-; overwritten by the second store.
-define i32 @test() {
-        %V = alloca i32         ; <i32*> [#uses=3]
-        %V2 = bitcast i32* %V to i8*            ; <i8*> [#uses=1]
-        store i8 0, i8* %V2
-        store i32 1234567, i32* %V
-        %X = load i32* %V               ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/alloca.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/alloca.ll
deleted file mode 100644
index 7a2c94f..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/alloca.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD
-
-define void @test(i32* %Q) {
-        %P = alloca i32         ; <i32*> [#uses=1]
-        %DEAD = load i32* %Q            ; <i32> [#uses=1]
-        store i32 %DEAD, i32* %P
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/byval.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/byval.ll
deleted file mode 100644
index 08f69a4..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/byval.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep store
-
-%struct.x = type { i32, i32, i32, i32 }
-
-define i32 @foo(%struct.x* byval  %a) nounwind  {
-entry:
-	%tmp2 = getelementptr %struct.x* %a, i32 0, i32 0
-	store i32 1, i32* %tmp2, align 4
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/context-sensitive.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/context-sensitive.ll
deleted file mode 100644
index 266fdbc..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/context-sensitive.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD
-
-declare void @ext()
-
-define i32* @caller() {
-        %P = malloc i32         ; <i32*> [#uses=4]
-        %DEAD = load i32* %P            ; <i32> [#uses=1]
-        %DEAD2 = add i32 %DEAD, 1               ; <i32> [#uses=1]
-        store i32 %DEAD2, i32* %P
-        call void @ext( )
-        store i32 0, i32* %P
-        ret i32* %P
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/dg.exp b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/free.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/free.ll
deleted file mode 100644
index 246de93..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/free.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD
-
-define void @test(i32* %Q, i32* %P) {
-        %DEAD = load i32* %Q            ; <i32> [#uses=1]
-        store i32 %DEAD, i32* %P
-        free i32* %P
-        ret void
-}
-
-define void @test2({i32, i32}* %P) {
-	%Q = getelementptr {i32, i32} *%P, i32 0, i32 1
-	store i32 4, i32* %Q
-	free {i32,i32}* %P
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/memcpy.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/memcpy.ll
deleted file mode 100644
index e96b2e8..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/memcpy.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep alloca
-; ModuleID = 'placeholder.adb'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct.placeholder__T5b = type { i32, [1 x i32] }
-	%struct.placeholder__an_interval___PAD = type { %struct.placeholder__interval, [4 x i32] }
-	%struct.placeholder__interval = type { i32, i32 }
-	%struct.placeholder__s__s__the_interval___PAD = type { %struct.placeholder__interval }
-
-define void @_ada_placeholder() nounwind  {
-entry:
-	%an_interval = alloca %struct.placeholder__an_interval___PAD		; <%struct.placeholder__an_interval___PAD*> [#uses=3]
-	%tmp34 = bitcast %struct.placeholder__an_interval___PAD* %an_interval to %struct.placeholder__T5b*		; <%struct.placeholder__T5b*> [#uses=1]
-	%tmp5 = getelementptr %struct.placeholder__an_interval___PAD* %an_interval, i32 0, i32 0, i32 0		; <i32*> [#uses=2]
-	store i32 1, i32* %tmp5, align 8
-	%tmp10 = getelementptr %struct.placeholder__T5b* %tmp34, i32 0, i32 1, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp10, align 4
-	%tmp82 = load i32* %tmp5, align 8		; <i32> [#uses=5]
-	%tmp83 = icmp slt i32 %tmp82, 6		; <i1> [#uses=1]
-	%min84 = select i1 %tmp83, i32 %tmp82, i32 5		; <i32> [#uses=3]
-	%tmp85 = icmp sgt i32 %min84, -1		; <i1> [#uses=2]
-	%min84.cast193 = zext i32 %min84 to i64		; <i64> [#uses=1]
-	%min84.cast193.op = shl i64 %min84.cast193, 33		; <i64> [#uses=1]
-	%tmp104 = icmp sgt i32 %tmp82, -1		; <i1> [#uses=2]
-	%tmp103.cast192 = zext i32 %tmp82 to i64		; <i64> [#uses=1]
-	%tmp103.cast192.op = shl i64 %tmp103.cast192, 33		; <i64> [#uses=1]
-	%min84.cast193.op.op = ashr i64 %min84.cast193.op, 28		; <i64> [#uses=1]
-	%sextr121 = select i1 %tmp85, i64 %min84.cast193.op.op, i64 0		; <i64> [#uses=2]
-	%tmp103.cast192.op.op = ashr i64 %tmp103.cast192.op, 28		; <i64> [#uses=1]
-	%sextr123 = select i1 %tmp104, i64 %tmp103.cast192.op.op, i64 0		; <i64> [#uses=2]
-	%tmp124 = icmp sle i64 %sextr121, %sextr123		; <i1> [#uses=1]
-	%min125 = select i1 %tmp124, i64 %sextr121, i64 %sextr123		; <i64> [#uses=1]
-	%sextr131194 = and i64 %min125, 34359738336		; <i64> [#uses=1]
-	%tmp134 = add i64 %sextr131194, 63		; <i64> [#uses=1]
-	lshr i64 %tmp134, 3		; <i64>:0 [#uses=1]
-	%tmp150188.shrunk = trunc i64 %0 to i32		; <i32> [#uses=1]
-	%tmp159 = and i32 %tmp150188.shrunk, -4		; <i32> [#uses=1]
-	%tmp161 = alloca i8, i32 %tmp159		; <i8*> [#uses=1]
-	%min167.op = shl i32 %min84, 2		; <i32> [#uses=1]
-	%tmp170 = select i1 %tmp85, i32 %min167.op, i32 0		; <i32> [#uses=2]
-	%tmp173.op = shl i32 %tmp82, 2		; <i32> [#uses=1]
-	%tmp176 = select i1 %tmp104, i32 %tmp173.op, i32 0		; <i32> [#uses=2]
-	%tmp177 = icmp sle i32 %tmp170, %tmp176		; <i1> [#uses=1]
-	%min178 = select i1 %tmp177, i32 %tmp170, i32 %tmp176		; <i32> [#uses=1]
-	%tmp179 = add i32 %min178, 7		; <i32> [#uses=1]
-	%tmp180 = and i32 %tmp179, -4		; <i32> [#uses=1]
-	%tmp183185 = bitcast %struct.placeholder__an_interval___PAD* %an_interval to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp161, i8* %tmp183185, i32 %tmp180, i32 4 )
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/simple.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/simple.ll
deleted file mode 100644
index 594671d..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/simple.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD
-
-define void @test(i32* %Q, i32* %P) {
-        %DEAD = load i32* %Q            ; <i32> [#uses=1]
-        store i32 %DEAD, i32* %P
-        store i32 0, i32* %P
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/volatile-load.ll b/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/volatile-load.ll
deleted file mode 100644
index c458284..0000000
--- a/libclamav/c++/llvm/test/Transforms/DeadStoreElimination/volatile-load.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -dse | llvm-dis | grep {volatile load}
-
- at g_1 = global i32 0
-
-define void @foo() nounwind  {
-	%t = volatile load i32* @g_1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-Mutual.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-Mutual.ll
deleted file mode 100644
index 5261ac4..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-Mutual.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep readnone
-
-define i32 @a() {
-	%tmp = call i32 @b( )		; <i32> [#uses=1]
-	ret i32 %tmp
-}
-
-define i32 @b() {
-	%tmp = call i32 @a( )		; <i32> [#uses=1]
-	ret i32 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll
deleted file mode 100644
index a17d381..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep readnone | count 4
- at x = global i32 0
-
-declare i32 @e() readnone
-
-define i32 @f() {
-	%tmp = call i32 @e( )		; <i32> [#uses=1]
-	ret i32 %tmp
-}
-
-define i32 @g() readonly {
-	ret i32 0
-}
-
-define i32 @h() readnone {
-	%tmp = load i32* @x		; <i32> [#uses=1]
-	ret i32 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadOnly.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadOnly.ll
deleted file mode 100644
index cebfdac..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadOnly.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep readonly | count 2
-
-define i32 @f() {
-entry:
-	%tmp = call i32 @e( )		; <i32> [#uses=1]
-	ret i32 %tmp
-}
-
-declare i32 @e() readonly
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll
deleted file mode 100644
index b6077fd..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | not grep read
-; PR2792
-
- at g = global i32 0		; <i32*> [#uses=1]
-
-define i32 @f() {
-	%t = volatile load i32* @g		; <i32> [#uses=1]
-	ret i32 %t
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-10-04-LocalMemory.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-10-04-LocalMemory.ll
deleted file mode 100644
index 50ca641..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-10-04-LocalMemory.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep readnone | count 2
-
-declare i32 @g(i32*) readnone
-
-define i32 @f() {
-	%x = alloca i32		; <i32*> [#uses=2]
-	store i32 0, i32* %x
-	%y = call i32 @g(i32* %x)		; <i32> [#uses=1]
-	ret i32 %y
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll
deleted file mode 100644
index d9c0117..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep readnone
-
- at s = external constant i8		; <i8*> [#uses=1]
-
-define i8 @f() {
-	%tmp = load i8* @s		; <i8> [#uses=1]
-	ret i8 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll
deleted file mode 100644
index 39a64e6..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll
+++ /dev/null
@@ -1,101 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | not grep {nocapture *%%q}
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep {nocapture *%%p} | count 6
- at g = global i32* null		; <i32**> [#uses=1]
-
-define i32* @c1(i32* %q) {
-	ret i32* %q
-}
-
-define void @c2(i32* %q) {
-	store i32* %q, i32** @g
-	ret void
-}
-
-define void @c3(i32* %q) {
-	call void @c2(i32* %q)
-	ret void
-}
-
-define i1 @c4(i32* %q, i32 %bitno) {
-	%tmp = ptrtoint i32* %q to i32
-	%tmp2 = lshr i32 %tmp, %bitno
-	%bit = trunc i32 %tmp2 to i1
-	br i1 %bit, label %l1, label %l0
-l0:
-	ret i1 0 ; escaping value not caught by def-use chaining.
-l1:
-	ret i1 1 ; escaping value not caught by def-use chaining.
-}
-
- at lookup_table = global [2 x i1] [ i1 0, i1 1 ]
-
-define i1 @c5(i32* %q, i32 %bitno) {
-	%tmp = ptrtoint i32* %q to i32
-	%tmp2 = lshr i32 %tmp, %bitno
-	%bit = and i32 %tmp2, 1
-        ; subtle escape mechanism follows
-	%lookup = getelementptr [2 x i1]* @lookup_table, i32 0, i32 %bit
-	%val = load i1* %lookup
-	ret i1 %val
-}
-
-declare void @throw_if_bit_set(i8*, i8) readonly
-define i1 @c6(i8* %q, i8 %bit) {
-	invoke void @throw_if_bit_set(i8* %q, i8 %bit)
-		to label %ret0 unwind label %ret1
-ret0:
-	ret i1 0
-ret1:
-	ret i1 1
-}
-
-define i1* @lookup_bit(i32* %q, i32 %bitno) readnone nounwind {
-	%tmp = ptrtoint i32* %q to i32
-	%tmp2 = lshr i32 %tmp, %bitno
-	%bit = and i32 %tmp2, 1
-	%lookup = getelementptr [2 x i1]* @lookup_table, i32 0, i32 %bit
-	ret i1* %lookup
-}
-
-define i1 @c7(i32* %q, i32 %bitno) {
-	%ptr = call i1* @lookup_bit(i32* %q, i32 %bitno)
-	%val = load i1* %ptr
-	ret i1 %val
-}
-
-
-define i32 @nc1(i32* %q, i32* %p, i1 %b) {
-e:
-	br label %l
-l:
-	%x = phi i32* [ %p, %e ]
-	%y = phi i32* [ %q, %e ]
-	%tmp = bitcast i32* %x to i32*		; <i32*> [#uses=2]
-	%tmp2 = select i1 %b, i32* %tmp, i32* %y
-	%val = load i32* %tmp2		; <i32> [#uses=1]
-	store i32 0, i32* %tmp
-	store i32* %y, i32** @g
-	ret i32 %val
-}
-
-define void @nc2(i32* %p, i32* %q) {
-	%1 = call i32 @nc1(i32* %q, i32* %p, i1 0)		; <i32> [#uses=0]
-	ret void
-}
-
-define void @nc3(void ()* %p) {
-	call void %p()
-	ret void
-}
-
-declare void @external(i8*) readonly nounwind
-define void @nc4(i8* %p) {
-	call void @external(i8* %p)
-	ret void
-}
-
-define void @nc5(void (i8*)* %f, i8* %p) {
-	call void %f(i8* %p) readonly nounwind
-	call void %f(i8* nocapture %p)
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
deleted file mode 100644
index 68a232f..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | not grep {nocapture *%%q}
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep {nocapture *%%p}
-
-define i32* @a(i32** %p) {
-	%tmp = load i32** %p
-	ret i32* %tmp
-}
-
-define i32* @b(i32 *%q) {
-	%mem = alloca i32*
-	store i32* %q, i32** %mem
-	%tmp = call i32* @a(i32** %mem)
-	ret i32* %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2009-05-06-Malloc.ll b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2009-05-06-Malloc.ll
deleted file mode 100644
index 4022033..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/2009-05-06-Malloc.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | not grep read
-; PR3754
-
-define i8* @m(i32 %size) {
-	%tmp = malloc i8, i32 %size		; <i8*> [#uses=1]
-	ret i8* %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/dg.exp b/libclamav/c++/llvm/test/Transforms/FunctionAttrs/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/FunctionAttrs/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-DominatedLoop.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-DominatedLoop.ll
deleted file mode 100644
index 7c10f97..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-DominatedLoop.ll
+++ /dev/null
@@ -1,86 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-
-	%struct.PerlInterpreter = type { i8 }
- at PL_sv_count = external global i32		; <i32*> [#uses=2]
-
-define void @perl_destruct(%struct.PerlInterpreter* %sv_interp) {
-entry:
-	br i1 false, label %cond_next25, label %cond_true16
-
-cond_true16:		; preds = %entry
-	ret void
-
-cond_next25:		; preds = %entry
-	br i1 false, label %cond_next33, label %cond_true32
-
-cond_true32:		; preds = %cond_next25
-	ret void
-
-cond_next33:		; preds = %cond_next25
-	br i1 false, label %cond_next61, label %cond_true.i46
-
-cond_true.i46:		; preds = %cond_next33
-	ret void
-
-cond_next61:		; preds = %cond_next33
-	br i1 false, label %cond_next69, label %cond_true66
-
-cond_true66:		; preds = %cond_next61
-	ret void
-
-cond_next69:		; preds = %cond_next61
-	br i1 false, label %Perl_safefree.exit52, label %cond_true.i50
-
-cond_true.i50:		; preds = %cond_next69
-	ret void
-
-Perl_safefree.exit52:		; preds = %cond_next69
-	br i1 false, label %cond_next80, label %cond_true77
-
-cond_true77:		; preds = %Perl_safefree.exit52
-	ret void
-
-cond_next80:		; preds = %Perl_safefree.exit52
-	br i1 false, label %Perl_safefree.exit56, label %cond_true.i54
-
-cond_true.i54:		; preds = %cond_next80
-	ret void
-
-Perl_safefree.exit56:		; preds = %cond_next80
-	br i1 false, label %Perl_safefree.exit60, label %cond_true.i58
-
-cond_true.i58:		; preds = %Perl_safefree.exit56
-	ret void
-
-Perl_safefree.exit60:		; preds = %Perl_safefree.exit56
-	br i1 false, label %Perl_safefree.exit64, label %cond_true.i62
-
-cond_true.i62:		; preds = %Perl_safefree.exit60
-	ret void
-
-Perl_safefree.exit64:		; preds = %Perl_safefree.exit60
-	br i1 false, label %Perl_safefree.exit68, label %cond_true.i66
-
-cond_true.i66:		; preds = %Perl_safefree.exit64
-	ret void
-
-Perl_safefree.exit68:		; preds = %Perl_safefree.exit64
-	br i1 false, label %cond_next150, label %cond_true23.i
-
-cond_true23.i:		; preds = %Perl_safefree.exit68
-	ret void
-
-cond_next150:		; preds = %Perl_safefree.exit68
-	%tmp16092 = load i32* @PL_sv_count, align 4		; <i32> [#uses=0]
-	br label %cond_next165
-
-bb157:		; preds = %cond_next165
-	%tmp158 = load i32* @PL_sv_count, align 4		; <i32> [#uses=0]
-	br label %cond_next165
-
-cond_next165:		; preds = %bb157, %cond_next150
-	br i1 false, label %bb171, label %bb157
-
-bb171:		; preds = %cond_next165
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-InfiniteLoop.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-InfiniteLoop.ll
deleted file mode 100644
index 442ba08..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-InfiniteLoop.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp10 =}
-
-	%struct.INT2 = type { i32, i32 }
- at blkshifts = external global %struct.INT2*		; <%struct.INT2**> [#uses=2]
-
-define i32 @xcompact() {
-entry:
-	store %struct.INT2* null, %struct.INT2** @blkshifts, align 4
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%tmp10 = load %struct.INT2** @blkshifts, align 4		; <%struct.INT2*> [#uses=0]
-	br label %bb
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-Loop.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-Loop.ll
deleted file mode 100644
index 2efacb5..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-Loop.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-
-	%struct.s_segment_inf = type { float, i32, i16, i16, float, float, i32, float, float }
-
-define void @print_arch(i8* %arch_file, i32 %route_type, i64 %det_routing_arch.0.0, i64 %det_routing_arch.0.1, i64 %det_routing_arch.0.2, i64 %det_routing_arch.0.3, i64 %det_routing_arch.0.4, %struct.s_segment_inf* %segment_inf, i64 %timing_inf.0.0, i64 %timing_inf.0.1, i64 %timing_inf.0.2, i64 %timing_inf.0.3, i64 %timing_inf.0.4, i32 %timing_inf.1) {
-entry:
-	br i1 false, label %bb278, label %bb344
-
-bb278:		; preds = %bb278, %entry
-	br i1 false, label %bb278, label %bb344
-
-bb344:		; preds = %bb278, %entry
-	%tmp38758 = load i16* null, align 2		; <i16> [#uses=0]
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-NestedLoop.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-NestedLoop.ll
deleted file mode 100644
index cebaaa3..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-NestedLoop.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-
-	%struct.TypHeader = type { i32, %struct.TypHeader**, [3 x i8], i8 }
-
-define %struct.TypHeader* @LtRec(%struct.TypHeader* %hdL, %struct.TypHeader* %hdR) {
-entry:
-	br i1 false, label %bb556.preheader, label %bb534.preheader
-
-bb534.preheader:		; preds = %entry
-	ret %struct.TypHeader* null
-
-bb556.preheader:		; preds = %entry
-	%tmp56119 = getelementptr %struct.TypHeader* %hdR, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp56220 = load i32* %tmp56119		; <i32> [#uses=0]
-	br i1 false, label %bb.nph23, label %bb675.preheader
-
-bb.nph23:		; preds = %bb556.preheader
-	ret %struct.TypHeader* null
-
-bb656:		; preds = %bb675.outer, %bb656
-	%tmp678 = load i32* %tmp677		; <i32> [#uses=0]
-	br i1 false, label %bb684, label %bb656
-
-bb684:		; preds = %bb675.outer, %bb656
-	br i1 false, label %bb924.preheader, label %bb675.outer
-
-bb675.outer:		; preds = %bb675.preheader, %bb684
-	%tmp67812 = load i32* %tmp67711		; <i32> [#uses=0]
-	br i1 false, label %bb684, label %bb656
-
-bb675.preheader:		; preds = %bb556.preheader
-	%tmp67711 = getelementptr %struct.TypHeader* %hdR, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp677 = getelementptr %struct.TypHeader* %hdR, i32 0, i32 0		; <i32*> [#uses=1]
-	br label %bb675.outer
-
-bb924.preheader:		; preds = %bb684
-	ret %struct.TypHeader* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-SinglePredecessor.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-SinglePredecessor.ll
deleted file mode 100644
index 10482d8..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-25-SinglePredecessor.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-
-	%struct.ggBRDF = type { i32 (...)** }
-	%struct.ggBox3 = type { %struct.ggPoint3, %struct.ggPoint3 }
-	%struct.ggMaterialRecord = type { %struct.ggPoint2, %struct.ggBox3, %struct.ggBox3, %struct.ggSpectrum, %struct.ggSpectrum, %struct.ggSpectrum, %struct.ggBRDF*, i32, i32, i32, i32 }
-	%struct.ggONB3 = type { %struct.ggPoint3, %struct.ggPoint3, %struct.ggPoint3 }
-	%struct.ggPoint2 = type { [2 x double] }
-	%struct.ggPoint3 = type { [3 x double] }
-	%struct.ggSpectrum = type { [8 x float] }
-	%struct.mrViewingHitRecord = type { double, %struct.ggPoint3, %struct.ggONB3, %struct.ggPoint2, double, %struct.ggSpectrum, %struct.ggSpectrum, i32, i32, i32, i32 }
-	%struct.mrXEllipticalCylinder = type { %struct.ggBRDF, float, float, float, float, float, float }
-
-define i32 @_ZNK21mrZEllipticalCylinder10viewingHitERK6ggRay3dddR18mrViewingHitRecordR16ggMaterialRecord(%struct.mrXEllipticalCylinder* %this, %struct.ggBox3* %ray, double %unnamed_arg, double %tmin, double %tmax, %struct.mrViewingHitRecord* %VHR, %struct.ggMaterialRecord* %unnamed_arg2) {
-entry:
-	%tmp80.i = getelementptr %struct.mrViewingHitRecord* %VHR, i32 0, i32 1, i32 0, i32 0		; <double*> [#uses=1]
-	store double 0.000000e+00, double* %tmp80.i
-	br i1 false, label %return, label %cond_next.i
-
-cond_next.i:		; preds = %entry
-	br i1 false, label %return, label %cond_true
-
-cond_true:		; preds = %cond_next.i
-	%tmp3.i8 = getelementptr %struct.mrViewingHitRecord* %VHR, i32 0, i32 1, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp46 = load double* %tmp3.i8		; <double> [#uses=0]
-	ret i32 1
-
-return:		; preds = %cond_next.i, %entry
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll
deleted file mode 100644
index 076ba4c..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp17625.* = phi i32. }
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp17631.* = phi i32. }
-
- at last = external global [65 x i32*]		; <[65 x i32*]*> [#uses=1]
-
-define i32 @NextRootMove(i32 %wtm) {
-cond_next95:		; preds = %cond_true85, %cond_true79, %cond_true73, %bb68
-	%tmp17618 = load i32** getelementptr ([65 x i32*]* @last, i32 0, i32 1), align 4		; <i32*> [#uses=0]
-	br label %cond_true116
-
-cond_true116:		; preds = %cond_true111
-	br i1 false, label %cond_true128, label %cond_true145
-
-cond_true128:		; preds = %cond_true121
-	%tmp17625 = load i32** getelementptr ([65 x i32*]* @last, i32 0, i32 1), align 4		; <i32*> [#uses=0]
-	br i1 false, label %bb98.backedge, label %return.loopexit
-
-bb98.backedge:		; preds = %bb171, %cond_true145, %cond_true128
-	br label %cond_true116
-
-cond_true145:		; preds = %cond_false
-	%tmp17631 = load i32** getelementptr ([65 x i32*]* @last, i32 0, i32 1), align 4		; <i32*> [#uses=0]
-	br i1 false, label %bb98.backedge, label %return.loopexit
-
-return.loopexit:		; preds = %bb171, %cond_true145, %cond_true128
-	br label %return
-
-return:		; preds = %return.loopexit, %cond_next95, %cond_true85
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-NonRedundant.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-NonRedundant.ll
deleted file mode 100644
index 204803a..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-NonRedundant.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-
- at bsLive = external global i32		; <i32*> [#uses=2]
-
-define i32 @bsR(i32 %n) {
-entry:
-	br i1 false, label %cond_next, label %bb19
-
-cond_next:		; preds = %entry
-	store i32 0, i32* @bsLive, align 4
-	br label %bb19
-
-bb19:		; preds = %cond_next, %entry
-	%tmp29 = load i32* @bsLive, align 4		; <i32> [#uses=0]
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-PhiErasure.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-PhiErasure.ll
deleted file mode 100644
index 4925df7..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-26-PhiErasure.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp298316 = phi i32 }
-
-	%struct..0anon = type { i32 }
-	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
-	%struct.__sFILEX = type opaque
-	%struct.__sbuf = type { i8*, i32 }
-	%struct.rtx_def = type { i16, i8, i8, [1 x %struct..0anon] }
- at n_spills = external global i32		; <i32*> [#uses=2]
-
-define i32 @reload(%struct.rtx_def* %first, i32 %global, %struct.FILE* %dumpfile) {
-cond_next2835.1:		; preds = %cond_next2861
-	%tmp2922 = load i32* @n_spills, align 4		; <i32> [#uses=0]
-	br label %bb2928
-
-bb2928:		; preds = %cond_next2835.1, %cond_next2943
-	br i1 false, label %cond_next2943, label %cond_true2935
-
-cond_true2935:		; preds = %bb2928
-	br label %cond_next2943
-
-cond_next2943:		; preds = %cond_true2935, %bb2928
-	br i1 false, label %bb2982.preheader, label %bb2928
-
-bb2982.preheader:		; preds = %cond_next2943
-	%tmp298316 = load i32* @n_spills, align 4		; <i32> [#uses=0]
-	ret i32 0
-
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-30-PredIDom.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-30-PredIDom.ll
deleted file mode 100644
index 1d1aec1..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-30-PredIDom.ll
+++ /dev/null
@@ -1,274 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-
-	%"struct.Block::$_16" = type { i32 }
-	%struct.Exp = type { %struct.Exp_*, i32, i32, i32, %struct.Exp*, %struct.Exp*, %"struct.Exp::$_10", %"struct.Block::$_16", %"struct.Exp::$_12" }
-	%"struct.Exp::$_10" = type { %struct.Exp* }
-	%"struct.Exp::$_12" = type { %struct.Exp** }
-	%struct.Exp_ = type { i32, i32, i32, i32, %struct.Id* }
-	%struct.Id = type { i8*, i32, i32, i32, %"struct.Id::$_13" }
-	%"struct.Id::$_13" = type { double }
-
-define i8* @_ZN3Exp8toStringEj(%struct.Exp* %this, i32 %nextpc) {
-entry:
-	switch i32 0, label %bb970 [
-		 i32 1, label %bb
-		 i32 2, label %bb39
-		 i32 3, label %bb195
-		 i32 4, label %bb270
-		 i32 5, label %bb418
-		 i32 6, label %bb633
-		 i32 7, label %bb810
-		 i32 8, label %bb882
-		 i32 9, label %bb925
-	]
-
-bb:		; preds = %entry
-	store i8* null, i8** null
-	br label %return
-
-bb39:		; preds = %entry
-	br i1 false, label %cond_true, label %cond_false132
-
-cond_true:		; preds = %bb39
-	br i1 false, label %cond_true73, label %cond_false
-
-cond_true73:		; preds = %cond_true
-	br i1 false, label %cond_true108, label %cond_next
-
-cond_true108:		; preds = %cond_true73
-	br label %cond_next
-
-cond_next:		; preds = %cond_true108, %cond_true73
-	br label %cond_next131
-
-cond_false:		; preds = %cond_true
-	br label %cond_next131
-
-cond_next131:		; preds = %cond_false, %cond_next
-	br label %cond_next141
-
-cond_false132:		; preds = %bb39
-	br label %cond_next141
-
-cond_next141:		; preds = %cond_false132, %cond_next131
-	br i1 false, label %cond_true169, label %cond_false175
-
-cond_true169:		; preds = %cond_next141
-	br label %cond_next181
-
-cond_false175:		; preds = %cond_next141
-	br label %cond_next181
-
-cond_next181:		; preds = %cond_false175, %cond_true169
-	br i1 false, label %cond_true189, label %cond_next191
-
-cond_true189:		; preds = %cond_next181
-	br label %cond_next191
-
-cond_next191:		; preds = %cond_true189, %cond_next181
-	store i8* null, i8** null
-	br label %return
-
-bb195:		; preds = %entry
-	br i1 false, label %cond_true248, label %cond_false250
-
-cond_true248:		; preds = %bb195
-	br label %cond_next252
-
-cond_false250:		; preds = %bb195
-	br label %cond_next252
-
-cond_next252:		; preds = %cond_false250, %cond_true248
-	br i1 false, label %cond_true265, label %cond_next267
-
-cond_true265:		; preds = %cond_next252
-	br label %cond_next267
-
-cond_next267:		; preds = %cond_true265, %cond_next252
-	store i8* null, i8** null
-	br label %return
-
-bb270:		; preds = %entry
-	br i1 false, label %cond_true338, label %cond_false340
-
-cond_true338:		; preds = %bb270
-	br label %cond_next342
-
-cond_false340:		; preds = %bb270
-	br label %cond_next342
-
-cond_next342:		; preds = %cond_false340, %cond_true338
-	br i1 false, label %cond_true362, label %cond_false364
-
-cond_true362:		; preds = %cond_next342
-	br label %cond_next366
-
-cond_false364:		; preds = %cond_next342
-	br label %cond_next366
-
-cond_next366:		; preds = %cond_false364, %cond_true362
-	br i1 false, label %cond_true393, label %cond_next395
-
-cond_true393:		; preds = %cond_next366
-	br label %cond_next395
-
-cond_next395:		; preds = %cond_true393, %cond_next366
-	br i1 false, label %cond_true406, label %cond_next408
-
-cond_true406:		; preds = %cond_next395
-	br label %cond_next408
-
-cond_next408:		; preds = %cond_true406, %cond_next395
-	br i1 false, label %cond_true413, label %cond_next415
-
-cond_true413:		; preds = %cond_next408
-	br label %cond_next415
-
-cond_next415:		; preds = %cond_true413, %cond_next408
-	store i8* null, i8** null
-	br label %return
-
-bb418:		; preds = %entry
-	br i1 false, label %cond_true512, label %cond_false514
-
-cond_true512:		; preds = %bb418
-	br label %cond_next516
-
-cond_false514:		; preds = %bb418
-	br label %cond_next516
-
-cond_next516:		; preds = %cond_false514, %cond_true512
-	br i1 false, label %cond_true536, label %cond_false538
-
-cond_true536:		; preds = %cond_next516
-	br label %cond_next540
-
-cond_false538:		; preds = %cond_next516
-	br label %cond_next540
-
-cond_next540:		; preds = %cond_false538, %cond_true536
-	br i1 false, label %cond_true560, label %cond_false562
-
-cond_true560:		; preds = %cond_next540
-	br label %cond_next564
-
-cond_false562:		; preds = %cond_next540
-	br label %cond_next564
-
-cond_next564:		; preds = %cond_false562, %cond_true560
-	br i1 false, label %cond_true597, label %cond_next599
-
-cond_true597:		; preds = %cond_next564
-	br label %cond_next599
-
-cond_next599:		; preds = %cond_true597, %cond_next564
-	br i1 false, label %cond_true614, label %cond_next616
-
-cond_true614:		; preds = %cond_next599
-	br label %cond_next616
-
-cond_next616:		; preds = %cond_true614, %cond_next599
-	br i1 false, label %cond_true621, label %cond_next623
-
-cond_true621:		; preds = %cond_next616
-	br label %cond_next623
-
-cond_next623:		; preds = %cond_true621, %cond_next616
-	br i1 false, label %cond_true628, label %cond_next630
-
-cond_true628:		; preds = %cond_next623
-	br label %cond_next630
-
-cond_next630:		; preds = %cond_true628, %cond_next623
-	store i8* null, i8** null
-	br label %return
-
-bb633:		; preds = %entry
-	br i1 false, label %cond_true667, label %cond_next669
-
-cond_true667:		; preds = %bb633
-	br label %cond_next669
-
-cond_next669:		; preds = %cond_true667, %bb633
-	br i1 false, label %cond_true678, label %cond_next791
-
-cond_true678:		; preds = %cond_next669
-	br label %bb735
-
-bb679:		; preds = %bb735
-	br i1 false, label %cond_true729, label %cond_next731
-
-cond_true729:		; preds = %bb679
-	br label %cond_next731
-
-cond_next731:		; preds = %cond_true729, %bb679
-	br label %bb735
-
-bb735:		; preds = %cond_next731, %cond_true678
-	br i1 false, label %bb679, label %bb743
-
-bb743:		; preds = %bb735
-	br i1 false, label %cond_true788, label %cond_next790
-
-cond_true788:		; preds = %bb743
-	br label %cond_next790
-
-cond_next790:		; preds = %cond_true788, %bb743
-	br label %cond_next791
-
-cond_next791:		; preds = %cond_next790, %cond_next669
-	br i1 false, label %cond_true805, label %cond_next807
-
-cond_true805:		; preds = %cond_next791
-	br label %cond_next807
-
-cond_next807:		; preds = %cond_true805, %cond_next791
-	store i8* null, i8** null
-	br label %return
-
-bb810:		; preds = %entry
-	br i1 false, label %cond_true870, label %cond_next872
-
-cond_true870:		; preds = %bb810
-	br label %cond_next872
-
-cond_next872:		; preds = %cond_true870, %bb810
-	br i1 false, label %cond_true877, label %cond_next879
-
-cond_true877:		; preds = %cond_next872
-	br label %cond_next879
-
-cond_next879:		; preds = %cond_true877, %cond_next872
-	store i8* null, i8** null
-	br label %return
-
-bb882:		; preds = %entry
-	br i1 false, label %cond_true920, label %cond_next922
-
-cond_true920:		; preds = %bb882
-	br label %cond_next922
-
-cond_next922:		; preds = %cond_true920, %bb882
-	store i8* null, i8** null
-	br label %return
-
-bb925:		; preds = %entry
-	br i1 false, label %cond_true965, label %cond_next967
-
-cond_true965:		; preds = %bb925
-	br label %cond_next967
-
-cond_next967:		; preds = %cond_true965, %bb925
-	store i8* null, i8** null
-	br label %return
-
-bb970:		; preds = %entry
-	unreachable
-		; No predecessors!
-	store i8* null, i8** null
-	br label %return
-
-return:		; preds = %0, %cond_next967, %cond_next922, %cond_next879, %cond_next807, %cond_next630, %cond_next415, %cond_next267, %cond_next191, %bb
-	%retval980 = load i8** null		; <i8*> [#uses=1]
-	ret i8* %retval980
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-31-NoDomInherit.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-31-NoDomInherit.ll
deleted file mode 100644
index 6cb7785..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-31-NoDomInherit.ll
+++ /dev/null
@@ -1,313 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp47 = phi i32 }
-
-	%struct.anon = type { i32 (i32, i32, i32)*, i32, i32, [3 x i32], i8*, i8*, i8* }
- at debug = external constant i32		; <i32*> [#uses=0]
- at counters = external constant i32		; <i32*> [#uses=1]
- at trialx = external global [17 x i32]		; <[17 x i32]*> [#uses=1]
- at dummy1 = external global [7 x i32]		; <[7 x i32]*> [#uses=0]
- at dummy2 = external global [4 x i32]		; <[4 x i32]*> [#uses=0]
- at unacceptable = external global i32		; <i32*> [#uses=0]
- at isa = external global [13 x %struct.anon]		; <[13 x %struct.anon]*> [#uses=3]
- at .str = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str1 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str2 = external constant [1 x i8]		; <[1 x i8]*> [#uses=0]
- at .str3 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str4 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str5 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str6 = external constant [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str7 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str8 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str9 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str10 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str11 = external constant [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str12 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str13 = external constant [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str14 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str15 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str16 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str17 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str18 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str19 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str20 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str21 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str22 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str23 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str24 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str25 = external constant [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str26 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str27 = external constant [6 x i8]		; <[6 x i8]*> [#uses=0]
- at r = external global [17 x i32]		; <[17 x i32]*> [#uses=0]
- at .str28 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str29 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at pgm = external global [5 x { i32, [3 x i32] }]		; <[5 x { i32, [3 x i32] }]*> [#uses=4]
- at .str30 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str31 = external constant [13 x i8]		; <[13 x i8]*> [#uses=0]
- at .str32 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str33 = external constant [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str34 = external constant [20 x i8]		; <[20 x i8]*> [#uses=0]
- at numi = external global i32		; <i32*> [#uses=7]
- at .str35 = external constant [10 x i8]		; <[10 x i8]*> [#uses=0]
- at counter = external global [5 x i32]		; <[5 x i32]*> [#uses=2]
- at itrialx.2510 = external global i32		; <i32*> [#uses=0]
- at .str36 = external constant [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str37 = external constant [42 x i8]		; <[42 x i8]*> [#uses=0]
- at corr_result = external global i32		; <i32*> [#uses=0]
- at .str38 = external constant [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str39 = external constant [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str40 = external constant [47 x i8]		; <[47 x i8]*> [#uses=0]
- at correct_result = external global [17 x i32]		; <[17 x i32]*> [#uses=1]
- at .str41 = external constant [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str42 = external constant [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str43 = external constant [44 x i8]		; <[44 x i8]*> [#uses=1]
- at .str44 = external constant [21 x i8]		; <[21 x i8]*> [#uses=1]
- at .str45 = external constant [12 x i8]		; <[12 x i8]*> [#uses=1]
- at .str46 = external constant [5 x i8]		; <[5 x i8]*> [#uses=1]
- at .str47 = external constant [12 x i8]		; <[12 x i8]*> [#uses=1]
-
-declare i32 @neg(i32, i32, i32)
-
-declare i32 @Not(i32, i32, i32)
-
-declare i32 @pop(i32, i32, i32)
-
-declare i32 @nlz(i32, i32, i32)
-
-declare i32 @rev(i32, i32, i32)
-
-declare i32 @add(i32, i32, i32)
-
-declare i32 @sub(i32, i32, i32)
-
-declare i32 @mul(i32, i32, i32)
-
-declare i32 @divide(i32, i32, i32)
-
-declare i32 @divu(i32, i32, i32)
-
-declare i32 @And(i32, i32, i32)
-
-declare i32 @Or(i32, i32, i32)
-
-declare i32 @Xor(i32, i32, i32)
-
-declare i32 @rotl(i32, i32, i32)
-
-declare i32 @shl(i32, i32, i32)
-
-declare i32 @shr(i32, i32, i32)
-
-declare i32 @shrs(i32, i32, i32)
-
-declare i32 @cmpeq(i32, i32, i32)
-
-declare i32 @cmplt(i32, i32, i32)
-
-declare i32 @cmpltu(i32, i32, i32)
-
-declare i32 @seleq(i32, i32, i32)
-
-declare i32 @sellt(i32, i32, i32)
-
-declare i32 @selle(i32, i32, i32)
-
-declare void @print_expr(i32)
-
-declare i32 @printf(i8*, ...)
-
-declare i32 @putchar(i32)
-
-declare void @print_pgm()
-
-declare void @simulate_one_instruction(i32)
-
-declare i32 @check(i32)
-
-declare i32 @puts(i8*)
-
-declare void @fix_operands(i32)
-
-declare void @abort()
-
-declare i32 @increment()
-
-declare i32 @search()
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	%argc_addr = alloca i32		; <i32*> [#uses=1]
-	%argv_addr = alloca i8**		; <i8***> [#uses=1]
-	%retval = alloca i32, align 4		; <i32*> [#uses=2]
-	%tmp = alloca i32, align 4		; <i32*> [#uses=2]
-	%i = alloca i32, align 4		; <i32*> [#uses=21]
-	%num_sol = alloca i32, align 4		; <i32*> [#uses=4]
-	%total = alloca i32, align 4		; <i32*> [#uses=4]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %argc, i32* %argc_addr
-	store i8** %argv, i8*** %argv_addr
-	store i32 0, i32* %num_sol
-	store i32 1, i32* @numi
-	br label %bb91
-
-bb:		; preds = %cond_next97
-	%tmp1 = load i32* @numi		; <i32> [#uses=1]
-	%tmp2 = getelementptr [44 x i8]* @.str43, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp3 = call i32 (i8*, ...)* @printf( i8* %tmp2, i32 %tmp1 )		; <i32> [#uses=0]
-	store i32 0, i32* %i
-	br label %bb13
-
-bb4:		; preds = %bb13
-	%tmp5 = load i32* %i		; <i32> [#uses=1]
-	%tmp6 = load i32* %i		; <i32> [#uses=1]
-	%tmp7 = getelementptr [17 x i32]* @trialx, i32 0, i32 %tmp6		; <i32*> [#uses=1]
-	%tmp8 = load i32* %tmp7		; <i32> [#uses=1]
-	%tmp9 = call i32 @userfun( i32 %tmp8 )		; <i32> [#uses=1]
-	%tmp10 = getelementptr [17 x i32]* @correct_result, i32 0, i32 %tmp5		; <i32*> [#uses=1]
-	store i32 %tmp9, i32* %tmp10
-	%tmp11 = load i32* %i		; <i32> [#uses=1]
-	%tmp12 = add i32 %tmp11, 1		; <i32> [#uses=1]
-	store i32 %tmp12, i32* %i
-	br label %bb13
-
-bb13:		; preds = %bb4, %bb
-	%tmp14 = load i32* %i		; <i32> [#uses=1]
-	%tmp15 = icmp sle i32 %tmp14, 16		; <i1> [#uses=1]
-	%tmp1516 = zext i1 %tmp15 to i32		; <i32> [#uses=1]
-	%toBool = icmp ne i32 %tmp1516, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %bb4, label %bb17
-
-bb17:		; preds = %bb13
-	store i32 0, i32* %i
-	br label %bb49
-
-bb18:		; preds = %bb49
-	%tmp19 = load i32* %i		; <i32> [#uses=1]
-	%tmp20 = getelementptr [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp19		; <{ i32, [3 x i32] }*> [#uses=1]
-	%tmp21 = getelementptr { i32, [3 x i32] }* %tmp20, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp21
-	%tmp22 = load i32* %i		; <i32> [#uses=1]
-	%tmp23 = getelementptr [13 x %struct.anon]* @isa, i32 0, i32 0		; <%struct.anon*> [#uses=1]
-	%tmp24 = getelementptr %struct.anon* %tmp23, i32 0, i32 3		; <[3 x i32]*> [#uses=1]
-	%tmp25 = getelementptr [3 x i32]* %tmp24, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp26 = load i32* %tmp25		; <i32> [#uses=1]
-	%tmp27 = getelementptr [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp22		; <{ i32, [3 x i32] }*> [#uses=1]
-	%tmp28 = getelementptr { i32, [3 x i32] }* %tmp27, i32 0, i32 1		; <[3 x i32]*> [#uses=1]
-	%tmp29 = getelementptr [3 x i32]* %tmp28, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %tmp26, i32* %tmp29
-	%tmp30 = load i32* %i		; <i32> [#uses=1]
-	%tmp31 = getelementptr [13 x %struct.anon]* @isa, i32 0, i32 0		; <%struct.anon*> [#uses=1]
-	%tmp32 = getelementptr %struct.anon* %tmp31, i32 0, i32 3		; <[3 x i32]*> [#uses=1]
-	%tmp33 = getelementptr [3 x i32]* %tmp32, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp34 = load i32* %tmp33		; <i32> [#uses=1]
-	%tmp35 = getelementptr [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp30		; <{ i32, [3 x i32] }*> [#uses=1]
-	%tmp36 = getelementptr { i32, [3 x i32] }* %tmp35, i32 0, i32 1		; <[3 x i32]*> [#uses=1]
-	%tmp37 = getelementptr [3 x i32]* %tmp36, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %tmp34, i32* %tmp37
-	%tmp38 = load i32* %i		; <i32> [#uses=1]
-	%tmp39 = getelementptr [13 x %struct.anon]* @isa, i32 0, i32 0		; <%struct.anon*> [#uses=1]
-	%tmp40 = getelementptr %struct.anon* %tmp39, i32 0, i32 3		; <[3 x i32]*> [#uses=1]
-	%tmp41 = getelementptr [3 x i32]* %tmp40, i32 0, i32 2		; <i32*> [#uses=1]
-	%tmp42 = load i32* %tmp41		; <i32> [#uses=1]
-	%tmp43 = getelementptr [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp38		; <{ i32, [3 x i32] }*> [#uses=1]
-	%tmp44 = getelementptr { i32, [3 x i32] }* %tmp43, i32 0, i32 1		; <[3 x i32]*> [#uses=1]
-	%tmp45 = getelementptr [3 x i32]* %tmp44, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %tmp42, i32* %tmp45
-	%tmp46 = load i32* %i		; <i32> [#uses=1]
-	call void @fix_operands( i32 %tmp46 )
-	%tmp47 = load i32* %i		; <i32> [#uses=1]
-	%tmp48 = add i32 %tmp47, 1		; <i32> [#uses=1]
-	store i32 %tmp48, i32* %i
-	br label %bb49
-
-bb49:		; preds = %bb18, %bb17
-	%tmp50 = load i32* @numi		; <i32> [#uses=1]
-	%tmp51 = load i32* %i		; <i32> [#uses=1]
-	%tmp52 = icmp slt i32 %tmp51, %tmp50		; <i1> [#uses=1]
-	%tmp5253 = zext i1 %tmp52 to i32		; <i32> [#uses=1]
-	%toBool54 = icmp ne i32 %tmp5253, 0		; <i1> [#uses=1]
-	br i1 %toBool54, label %bb18, label %bb55
-
-bb55:		; preds = %bb49
-	%tmp56 = call i32 @search( )		; <i32> [#uses=1]
-	store i32 %tmp56, i32* %num_sol
-	%tmp57 = getelementptr [21 x i8]* @.str44, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp58 = load i32* %num_sol		; <i32> [#uses=1]
-	%tmp59 = call i32 (i8*, ...)* @printf( i8* %tmp57, i32 %tmp58 )		; <i32> [#uses=0]
-	%tmp60 = load i32* @counters		; <i32> [#uses=1]
-	%tmp61 = icmp ne i32 %tmp60, 0		; <i1> [#uses=1]
-	%tmp6162 = zext i1 %tmp61 to i32		; <i32> [#uses=1]
-	%toBool63 = icmp ne i32 %tmp6162, 0		; <i1> [#uses=1]
-	br i1 %toBool63, label %cond_true, label %cond_next
-
-cond_true:		; preds = %bb55
-	store i32 0, i32* %total
-	%tmp64 = getelementptr [12 x i8]* @.str45, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp65 = call i32 (i8*, ...)* @printf( i8* %tmp64 )		; <i32> [#uses=0]
-	store i32 0, i32* %i
-	br label %bb79
-
-bb66:		; preds = %bb79
-	%tmp67 = load i32* %i		; <i32> [#uses=1]
-	%tmp68 = getelementptr [5 x i32]* @counter, i32 0, i32 %tmp67		; <i32*> [#uses=1]
-	%tmp69 = load i32* %tmp68		; <i32> [#uses=1]
-	%tmp70 = getelementptr [5 x i8]* @.str46, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp71 = call i32 (i8*, ...)* @printf( i8* %tmp70, i32 %tmp69 )		; <i32> [#uses=0]
-	%tmp72 = load i32* %i		; <i32> [#uses=1]
-	%tmp73 = getelementptr [5 x i32]* @counter, i32 0, i32 %tmp72		; <i32*> [#uses=1]
-	%tmp74 = load i32* %tmp73		; <i32> [#uses=1]
-	%tmp75 = load i32* %total		; <i32> [#uses=1]
-	%tmp76 = add i32 %tmp74, %tmp75		; <i32> [#uses=1]
-	store i32 %tmp76, i32* %total
-	%tmp77 = load i32* %i		; <i32> [#uses=1]
-	%tmp78 = add i32 %tmp77, 1		; <i32> [#uses=1]
-	store i32 %tmp78, i32* %i
-	br label %bb79
-
-bb79:		; preds = %bb66, %cond_true
-	%tmp80 = load i32* @numi		; <i32> [#uses=1]
-	%tmp81 = load i32* %i		; <i32> [#uses=1]
-	%tmp82 = icmp slt i32 %tmp81, %tmp80		; <i1> [#uses=1]
-	%tmp8283 = zext i1 %tmp82 to i32		; <i32> [#uses=1]
-	%toBool84 = icmp ne i32 %tmp8283, 0		; <i1> [#uses=1]
-	br i1 %toBool84, label %bb66, label %bb85
-
-bb85:		; preds = %bb79
-	%tmp86 = getelementptr [12 x i8]* @.str47, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp87 = load i32* %total		; <i32> [#uses=1]
-	%tmp88 = call i32 (i8*, ...)* @printf( i8* %tmp86, i32 %tmp87 )		; <i32> [#uses=0]
-	br label %cond_next
-
-cond_next:		; preds = %bb85, %bb55
-	%tmp89 = load i32* @numi		; <i32> [#uses=1]
-	%tmp90 = add i32 %tmp89, 1		; <i32> [#uses=1]
-	store i32 %tmp90, i32* @numi
-	br label %bb91
-
-bb91:		; preds = %cond_next, %entry
-	%tmp92 = load i32* @numi		; <i32> [#uses=1]
-	%tmp93 = icmp sgt i32 %tmp92, 5		; <i1> [#uses=1]
-	%tmp9394 = zext i1 %tmp93 to i32		; <i32> [#uses=1]
-	%toBool95 = icmp ne i32 %tmp9394, 0		; <i1> [#uses=1]
-	br i1 %toBool95, label %cond_true96, label %cond_next97
-
-cond_true96:		; preds = %bb91
-	br label %bb102
-
-cond_next97:		; preds = %bb91
-	%tmp98 = load i32* %num_sol		; <i32> [#uses=1]
-	%tmp99 = icmp eq i32 %tmp98, 0		; <i1> [#uses=1]
-	%tmp99100 = zext i1 %tmp99 to i32		; <i32> [#uses=1]
-	%toBool101 = icmp ne i32 %tmp99100, 0		; <i1> [#uses=1]
-	br i1 %toBool101, label %bb, label %bb102
-
-bb102:		; preds = %cond_next97, %cond_true96
-	store i32 0, i32* %tmp
-	%tmp103 = load i32* %tmp		; <i32> [#uses=1]
-	store i32 %tmp103, i32* %retval
-	br label %return
-
-return:		; preds = %bb102
-	%retval104 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval104
-}
-
-declare i32 @userfun(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-31-RedundantPhi.ll b/libclamav/c++/llvm/test/Transforms/GVN/2007-07-31-RedundantPhi.ll
deleted file mode 100644
index a9ca71a..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2007-07-31-RedundantPhi.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp701 =}
-
- at img_width = external global i16		; <i16*> [#uses=2]
-
-define i32 @smpUMHEXBipredIntegerPelBlockMotionSearch(i16* %cur_pic, i16 signext  %ref, i32 %list, i32 %pic_pix_x, i32 %pic_pix_y, i32 %blocktype, i16 signext  %pred_mv_x1, i16 signext  %pred_mv_y1, i16 signext  %pred_mv_x2, i16 signext  %pred_mv_y2, i16* %mv_x, i16* %mv_y, i16* %s_mv_x, i16* %s_mv_y, i32 %search_range, i32 %min_mcost, i32 %lambda_factor) {
-cond_next143:		; preds = %entry
-	store i16 0, i16* @img_width, align 2
-	br i1 false, label %cond_next449, label %cond_false434
-
-cond_false434:		; preds = %cond_true415
-	br label %cond_next449
-
-cond_next449:		; preds = %cond_false434, %cond_true415
-	br i1 false, label %cond_next698, label %cond_false470
-
-cond_false470:		; preds = %cond_next449
-	br label %cond_next698
-
-cond_next698:		; preds = %cond_true492
-	%tmp701 = load i16* @img_width, align 2		; <i16> [#uses=0]
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-12-UndefLoad.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-02-12-UndefLoad.ll
deleted file mode 100644
index 5ee3d6c..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-12-UndefLoad.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep load
-; PR1996
-
-%struct.anon = type { i32, i8, i8, i8, i8 }
-
-define i32 @a() {
-entry:
-        %c = alloca %struct.anon                ; <%struct.anon*> [#uses=2]
-        %tmp = getelementptr %struct.anon* %c, i32 0, i32 0             ; <i32*> [#uses=1]
-        %tmp1 = getelementptr i32* %tmp, i32 1          ; <i32*> [#uses=2]
-        %tmp2 = load i32* %tmp1, align 4                ; <i32> [#uses=1]
-        %tmp3 = or i32 %tmp2, 11                ; <i32> [#uses=1]
-        %tmp4 = and i32 %tmp3, -21              ; <i32> [#uses=1]
-        store i32 %tmp4, i32* %tmp1, align 4
-        %call = call i32 (...)* @x( %struct.anon* %c )          ; <i32> [#uses=0]
-        ret i32 undef
-}
-
-
-declare i32 @x(...)
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-13-NewPHI.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-02-13-NewPHI.ll
deleted file mode 100644
index d3e3251..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-13-NewPHI.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -anders-aa -gvn
-; PR2032
-
-define i32 @sscal(i32 %n, double %sa1, float* %sx, i32 %incx) {
-entry:
-	%sx_addr = alloca float*		; <float**> [#uses=3]
-	store float* %sx, float** %sx_addr, align 4
-	br label %bb33
-
-bb:		; preds = %bb33
-	%tmp27 = load float** %sx_addr, align 4		; <float*> [#uses=1]
-	store float 0.000000e+00, float* %tmp27, align 4
-	store float* null, float** %sx_addr, align 4
-	br label %bb33
-
-bb33:		; preds = %bb, %entry
-	br i1 false, label %bb, label %return
-
-return:		; preds = %bb33
-	%retval59 = load i32* null, align 4		; <i32> [#uses=1]
-	ret i32 %retval59
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-24-NonDominatedMemcpy.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-02-24-NonDominatedMemcpy.ll
deleted file mode 100644
index 54a2201..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-24-NonDominatedMemcpy.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -dse | llvm-dis | grep {call.*memcpy} | count 1
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin8"
-	%struct.ggFrame3 = type { %struct.ggPoint3, %struct.ggONB3 }
-	%struct.ggHMatrix3 = type { [4 x [4 x double]] }
-	%struct.ggONB3 = type { %struct.ggPoint3, %struct.ggPoint3, %struct.ggPoint3 }
-	%struct.ggPoint3 = type { [3 x double] }
-	%struct.ggQuaternion = type { [4 x double], i32, %struct.ggHMatrix3 }
-
-declare void @llvm.memcpy.i64(i8*, i8*, i64, i32) nounwind 
-
-define void @_Z10ggCRSplineRK8ggFrame3S1_S1_S1_d(%struct.ggFrame3* noalias sret  %agg.result, %struct.ggFrame3* %f0, %struct.ggFrame3* %f1, %struct.ggFrame3* %f2, %struct.ggFrame3* %f3, double %t) nounwind  {
-entry:
-	%qresult = alloca %struct.ggQuaternion		; <%struct.ggQuaternion*> [#uses=1]
-	%tmp = alloca %struct.ggONB3		; <%struct.ggONB3*> [#uses=2]
-	call void @_ZN12ggQuaternion7getONB3Ev( %struct.ggONB3* noalias sret  %tmp, %struct.ggQuaternion* %qresult ) nounwind 
-	%tmp1.i = getelementptr %struct.ggFrame3* %agg.result, i32 0, i32 1		; <%struct.ggONB3*> [#uses=1]
-	%tmp13.i = bitcast %struct.ggONB3* %tmp1.i to i8*		; <i8*> [#uses=1]
-	%tmp24.i = bitcast %struct.ggONB3* %tmp to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i64( i8* %tmp13.i, i8* %tmp24.i, i64 72, i32 8 ) nounwind 
-	ret void
-}
-
-declare void @_ZN12ggQuaternion7getONB3Ev(%struct.ggONB3* noalias sret , %struct.ggQuaternion*) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-26-MemCpySize.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-02-26-MemCpySize.ll
deleted file mode 100644
index 92cac07..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-02-26-MemCpySize.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -dse | llvm-dis | grep {call.*memcpy.*cell} | count 2
-; PR2099
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin9"
-	%struct.s = type { [11 x i8], i32 }
- at .str = internal constant [11 x i8] c"0123456789\00"		; <[11 x i8]*> [#uses=1]
- at cell = weak global %struct.s zeroinitializer		; <%struct.s*> [#uses=2]
-
-declare i32 @check(%struct.s* byval  %p) nounwind
-
-declare i32 @strcmp(i8*, i8*) nounwind readonly 
-
-define i32 @main() noreturn nounwind  {
-entry:
-	%p = alloca %struct.s, align 8		; <%struct.s*> [#uses=2]
-	store i32 99, i32* getelementptr (%struct.s* @cell, i32 0, i32 1), align 4
-	call void @llvm.memcpy.i32( i8* getelementptr (%struct.s* @cell, i32 0, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str, i32 0, i32 0), i32 11, i32 1 )
-	%tmp = getelementptr %struct.s* %p, i32 0, i32 0, i32 0		; <i8*> [#uses=2]
-	call void @llvm.memcpy.i64( i8* %tmp, i8* getelementptr (%struct.s* @cell, i32 0, i32 0, i32 0), i64 16, i32 8 )
-	%tmp1.i = getelementptr %struct.s* %p, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp2.i = load i32* %tmp1.i, align 4		; <i32> [#uses=1]
-	%tmp3.i = icmp eq i32 %tmp2.i, 99		; <i1> [#uses=1]
-	br i1 %tmp3.i, label %bb5.i, label %bb
-
-bb5.i:		; preds = %entry
-	%tmp91.i = call i32 @strcmp( i8* %tmp, i8* getelementptr ([11 x i8]* @.str, i32 0, i32 0) ) nounwind readonly 		; <i32> [#uses=1]
-	%tmp53 = icmp eq i32 %tmp91.i, 0		; <i1> [#uses=1]
-	br i1 %tmp53, label %bb7, label %bb
-
-bb:		; preds = %bb5.i, %entry
-	call void @abort( ) noreturn nounwind 
-	unreachable
-
-bb7:		; preds = %bb5.i
-	call void @exit( i32 0 ) noreturn nounwind 
-	unreachable
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
-
-declare void @abort() noreturn nounwind 
-
-declare void @exit(i32) noreturn nounwind 
-
-declare void @llvm.memcpy.i64(i8*, i8*, i64, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-07-02-Unreachable.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-07-02-Unreachable.ll
deleted file mode 100644
index 15667d2..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-07-02-Unreachable.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep undef
-; PR2503
-
- at g_3 = external global i8		; <i8*> [#uses=2]
-
-define i8 @func_1() nounwind  {
-entry:
-	br i1 false, label %ifelse, label %ifthen
-
-ifthen:		; preds = %entry
-	br label %ifend
-
-ifelse:		; preds = %entry
-	%tmp3 = load i8* @g_3		; <i8> [#uses=0]
-	br label %forcond.thread
-
-forcond.thread:		; preds = %ifelse
-	br label %afterfor
-
-forcond:		; preds = %forinc
-	br i1 false, label %afterfor, label %forbody
-
-forbody:		; preds = %forcond
-	br label %forinc
-
-forinc:		; preds = %forbody
-	br label %forcond
-
-afterfor:		; preds = %forcond, %forcond.thread
-	%tmp10 = load i8* @g_3		; <i8> [#uses=0]
-	ret i8 %tmp10
-
-ifend:		; preds = %afterfor, %ifthen
-	ret i8 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-09-SelfRemove.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-12-09-SelfRemove.ll
deleted file mode 100644
index 48ce8f6..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-09-SelfRemove.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep getelementptr | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.5"
-	%struct.anon = type { i8*, i32 }
-	%struct.d_print_info = type { i32, i8*, i32, i32, %struct.d_print_template*, %struct.d_print_mod*, i32 }
-	%struct.d_print_mod = type { %struct.d_print_mod*, %struct.demangle_component*, i32, %struct.d_print_template* }
-	%struct.d_print_template = type { %struct.d_print_template*, %struct.demangle_component* }
-	%struct.demangle_component = type { i32, { %struct.anon } }
-
-define void @d_print_mod_list(%struct.d_print_info* %dpi, %struct.d_print_mod* %mods, i32 %suffix) nounwind {
-entry:
-	%0 = getelementptr %struct.d_print_info* %dpi, i32 0, i32 1		; <i8**> [#uses=1]
-	br i1 false, label %return, label %bb
-
-bb:		; preds = %entry
-	%1 = load i8** %0, align 4		; <i8*> [#uses=0]
-	%2 = getelementptr %struct.d_print_info* %dpi, i32 0, i32 1		; <i8**> [#uses=0]
-	br label %bb21
-
-bb21:		; preds = %bb21, %bb
-	br label %bb21
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-12-RLE-Crash.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-12-12-RLE-Crash.ll
deleted file mode 100644
index 99fadc7..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-12-RLE-Crash.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-
-define i32 @main(i32 %argc, i8** %argv) nounwind {
-entry:
-	br label %bb84
-
-bb41:		; preds = %bb82
-	%tmp = load i8* %opt.0, align 1		; <i8> [#uses=0]
-	%tmp1 = getelementptr i8* %opt.0, i32 1		; <i8*> [#uses=2]
-	switch i32 0, label %bb81 [
-		i32 102, label %bb82
-		i32 110, label %bb79
-		i32 118, label %bb80
-	]
-
-bb79:		; preds = %bb41
-	br label %bb82
-
-bb80:		; preds = %bb41
-	ret i32 0
-
-bb81:		; preds = %bb41
-	ret i32 1
-
-bb82:		; preds = %bb84, %bb79, %bb41
-	%opt.0 = phi i8* [ %tmp3, %bb84 ], [ %tmp1, %bb79 ], [ %tmp1, %bb41 ]		; <i8*> [#uses=3]
-	%tmp2 = load i8* %opt.0, align 1		; <i8> [#uses=0]
-	br i1 false, label %bb84, label %bb41
-
-bb84:		; preds = %bb82, %entry
-	%tmp3 = getelementptr i8* null, i32 1		; <i8*> [#uses=1]
-	br label %bb82
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-14-rle-reanalyze.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-12-14-rle-reanalyze.ll
deleted file mode 100644
index 9bcfcac..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-14-rle-reanalyze.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
- at sort_value = external global [256 x i32], align 32		; <[256 x i32]*> [#uses=2]
-
-define i32 @Quiesce(i32 %alpha, i32 %beta, i32 %wtm, i32 %ply) nounwind {
-entry:
-	br label %bb22
-
-bb22:		; preds = %bb23, %bb22, %entry
-	br i1 false, label %bb23, label %bb22
-
-bb23:		; preds = %bb23, %bb22
-	%sortv.233 = phi i32* [ getelementptr ([256 x i32]* @sort_value, i32 0, i32 0), %bb22 ], [ %sortv.2, %bb23 ]		; <i32*> [#uses=1]
-	%0 = load i32* %sortv.233, align 4		; <i32> [#uses=0]
-	%sortv.2 = getelementptr [256 x i32]* @sort_value, i32 0, i32 0		; <i32*> [#uses=1]
-	br i1 false, label %bb23, label %bb22
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-15-CacheVisited.ll b/libclamav/c++/llvm/test/Transforms/GVN/2008-12-15-CacheVisited.ll
deleted file mode 100644
index b547003..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2008-12-15-CacheVisited.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-; Cached results must be added to and verified against the visited sets.
-; PR3217
-
-define fastcc void @gen_field_die(i32* %decl) nounwind {
-entry:
-	br i1 false, label %bb203, label %bb202
-
-bb202:		; preds = %entry
-	unreachable
-
-bb203:		; preds = %entry
-	%tmp = getelementptr i32* %decl, i32 1		; <i32*> [#uses=1]
-	%tmp1 = load i32* %tmp, align 4		; <i32> [#uses=0]
-	br i1 false, label %bb207, label %bb204
-
-bb204:		; preds = %bb203
-	%tmp2 = getelementptr i32* %decl, i32 1		; <i32*> [#uses=1]
-	br label %bb208
-
-bb207:		; preds = %bb203
-	br label %bb208
-
-bb208:		; preds = %bb207, %bb204
-	%iftmp.1374.0.in = phi i32* [ null, %bb207 ], [ %tmp2, %bb204 ]		; <i32*> [#uses=1]
-	%iftmp.1374.0 = load i32* %iftmp.1374.0.in		; <i32> [#uses=0]
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2009-01-21-SortInvalidation.ll b/libclamav/c++/llvm/test/Transforms/GVN/2009-01-21-SortInvalidation.ll
deleted file mode 100644
index 51ca6cb..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2009-01-21-SortInvalidation.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-; PR3358
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-	%struct.re_pattern_buffer = type { i8*, i64, i64, i64, i8*, i8*, i64, i8 }
-	%struct.re_registers = type { i32, i32*, i32* }
-
-define fastcc i32 @byte_re_match_2_internal(%struct.re_pattern_buffer* nocapture %bufp, i8* %string1, i32 %size1, i8* %string2, i32 %size2, i32 %pos, %struct.re_registers* %regs, i32 %stop) nounwind {
-entry:
-	br label %bb159
-
-succeed_label:		; preds = %bb159
-	ret i32 0
-
-bb159:		; preds = %bb664, %bb554, %bb159, %bb159, %bb159, %entry
-	%d.0 = phi i8* [ null, %entry ], [ %d.0, %bb159 ], [ %d.0, %bb554 ], [ %d.0, %bb159 ], [ %d.0, %bb159 ], [ %d.12, %bb664 ]		; <i8*> [#uses=5]
-	switch i32 0, label %bb661 [
-		i32 0, label %bb159
-		i32 1, label %succeed_label
-		i32 13, label %bb159
-		i32 14, label %bb159
-		i32 16, label %bb411
-		i32 24, label %bb622
-		i32 28, label %bb543
-	]
-
-bb411:		; preds = %bb411, %bb159
-	br label %bb411
-
-bb543:		; preds = %bb159
-	br i1 false, label %bb549, label %bb550
-
-bb549:		; preds = %bb543
-	br label %bb554
-
-bb550:		; preds = %bb543
-	br i1 false, label %bb554, label %bb552
-
-bb552:		; preds = %bb550
-	%0 = load i8* %d.0, align 8		; <i8> [#uses=0]
-	br label %bb554
-
-bb554:		; preds = %bb552, %bb550, %bb549
-	br i1 false, label %bb159, label %bb661
-
-bb622:		; preds = %bb622, %bb159
-	br label %bb622
-
-bb661:		; preds = %bb554, %bb159
-	%d.12 = select i1 false, i8* null, i8* null		; <i8*> [#uses=1]
-	br label %bb664
-
-bb664:		; preds = %bb664, %bb661
-	br i1 false, label %bb159, label %bb664
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2009-01-22-SortInvalidation.ll b/libclamav/c++/llvm/test/Transforms/GVN/2009-01-22-SortInvalidation.ll
deleted file mode 100644
index 9b7fa06..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2009-01-22-SortInvalidation.ll
+++ /dev/null
@@ -1,100 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-	%struct..4sPragmaType = type { i8*, i32 }
-	%struct.AggInfo = type { i8, i8, i32, %struct.ExprList*, i32, %struct.AggInfo_col*, i32, i32, i32, %struct.AggInfo_func*, i32, i32 }
-	%struct.AggInfo_col = type { %struct.Table*, i32, i32, i32, i32, %struct.Expr* }
-	%struct.AggInfo_func = type { %struct.Expr*, %struct.FuncDef*, i32, i32 }
-	%struct.AuxData = type { i8*, void (i8*)* }
-	%struct.Bitvec = type { i32, i32, i32, { [125 x i32] } }
-	%struct.BtCursor = type { %struct.Btree*, %struct.BtShared*, %struct.BtCursor*, %struct.BtCursor*, i32 (i8*, i32, i8*, i32, i8*)*, i8*, i32, %struct.MemPage*, i32, %struct.CellInfo, i8, i8, i8*, i64, i32, i8, i32* }
-	%struct.BtLock = type { %struct.Btree*, i32, i8, %struct.BtLock* }
-	%struct.BtShared = type { %struct.Pager*, %struct.sqlite3*, %struct.BtCursor*, %struct.MemPage*, i8, i8, i8, i8, i8, i8, i8, i8, i32, i16, i16, i32, i32, i32, i32, i8, i32, i8*, void (i8*)*, %struct.sqlite3_mutex*, %struct.BusyHandler, i32, %struct.BtShared*, %struct.BtLock*, %struct.Btree* }
-	%struct.Btree = type { %struct.sqlite3*, %struct.BtShared*, i8, i8, i8, i32, %struct.Btree*, %struct.Btree* }
-	%struct.BtreeMutexArray = type { i32, [11 x %struct.Btree*] }
-	%struct.BusyHandler = type { i32 (i8*, i32)*, i8*, i32 }
-	%struct.CellInfo = type { i8*, i64, i32, i32, i16, i16, i16, i16 }
-	%struct.CollSeq = type { i8*, i8, i8, i8*, i32 (i8*, i32, i8*, i32, i8*)*, void (i8*)* }
-	%struct.Column = type { i8*, %struct.Expr*, i8*, i8*, i8, i8, i8, i8 }
-	%struct.Context = type { i64, i32, %struct.Fifo }
-	%struct.CountCtx = type { i64 }
-	%struct.Cursor = type { %struct.BtCursor*, i32, i64, i64, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i64, %struct.Btree*, i32, i8*, i64, i8*, %struct.KeyInfo*, i32, i64, %struct.sqlite3_vtab_cursor*, %struct.sqlite3_module*, i32, i32, i32*, i32*, i8* }
-	%struct.Db = type { i8*, %struct.Btree*, i8, i8, i8*, void (i8*)*, %struct.Schema* }
-	%struct.Expr = type { i8, i8, i16, %struct.CollSeq*, %struct.Expr*, %struct.Expr*, %struct.ExprList*, %struct..4sPragmaType, %struct..4sPragmaType, i32, i32, %struct.AggInfo*, i32, i32, %struct.Select*, %struct.Table*, i32 }
-	%struct.ExprList = type { i32, i32, i32, %struct.ExprList_item* }
-	%struct.ExprList_item = type { %struct.Expr*, i8*, i8, i8, i8 }
-	%struct.FKey = type { %struct.Table*, %struct.FKey*, i8*, %struct.FKey*, i32, %struct.sColMap*, i8, i8, i8, i8 }
-	%struct.Fifo = type { i32, %struct.FifoPage*, %struct.FifoPage* }
-	%struct.FifoPage = type { i32, i32, i32, %struct.FifoPage*, [1 x i64] }
-	%struct.FuncDef = type { i16, i8, i8, i8, i8*, %struct.FuncDef*, void (%struct.sqlite3_context*, i32, %struct.Mem**)*, void (%struct.sqlite3_context*, i32, %struct.Mem**)*, void (%struct.sqlite3_context*)*, [1 x i8] }
-	%struct.Hash = type { i8, i8, i32, i32, %struct.HashElem*, %struct._ht* }
-	%struct.HashElem = type { %struct.HashElem*, %struct.HashElem*, i8*, i8*, i32 }
-	%struct.IdList = type { %struct..4sPragmaType*, i32, i32 }
-	%struct.Index = type { i8*, i32, i32*, i32*, %struct.Table*, i32, i8, i8, i8*, %struct.Index*, %struct.Schema*, i8*, i8** }
-	%struct.KeyInfo = type { %struct.sqlite3*, i8, i8, i8, i32, i8*, [1 x %struct.CollSeq*] }
-	%struct.Mem = type { %struct.CountCtx, double, %struct.sqlite3*, i8*, i32, i16, i8, i8, void (i8*)* }
-	%struct.MemPage = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i16, [5 x %struct._OvflCell], %struct.BtShared*, i8*, %struct.PgHdr*, i32, %struct.MemPage* }
-	%struct.Module = type { %struct.sqlite3_module*, i8*, i8*, void (i8*)* }
-	%struct.Op = type { i8, i8, i8, i8, i32, i32, i32, { i32 } }
-	%struct.Pager = type { %struct.sqlite3_vfs*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.Bitvec*, %struct.Bitvec*, i8*, i8*, i8*, i8*, %struct.sqlite3_file*, %struct.sqlite3_file*, %struct.sqlite3_file*, %struct.BusyHandler*, %struct.PagerLruList, %struct.PgHdr*, %struct.PgHdr*, %struct.PgHdr*, i64, i64, i64, i64, i64, i32, void (%struct.PgHdr*, i32)*, void (%struct.PgHdr*, i32)*, i32, %struct.PgHdr**, i8*, [16 x i8] }
-	%struct.PagerLruLink = type { %struct.PgHdr*, %struct.PgHdr* }
-	%struct.PagerLruList = type { %struct.PgHdr*, %struct.PgHdr*, %struct.PgHdr* }
-	%struct.Parse = type { %struct.sqlite3*, i32, i8*, %struct.Vdbe*, i8, i8, i8, i8, i8, i8, i8, [8 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [12 x i32], i32, %struct.TableLock*, i32, i32, i32, i32, i32, %struct.Expr**, i8, %struct..4sPragmaType, %struct..4sPragmaType, %struct..4sPragmaType, i8*, i8*, %struct.Table*, %struct.Trigger*, %struct.TriggerStack*, i8*, %struct..4sPragmaType, i8, %struct.Table*, i32 }
-	%struct.PgHdr = type { %struct.Pager*, i32, %struct.PgHdr*, %struct.PgHdr*, %struct.PagerLruLink, %struct.PgHdr*, i8, i8, i8, i8, i8, i16, %struct.PgHdr*, %struct.PgHdr*, i8* }
-	%struct.Schema = type { i32, %struct.Hash, %struct.Hash, %struct.Hash, %struct.Hash, %struct.Table*, i8, i8, i16, i32, %struct.sqlite3* }
-	%struct.Select = type { %struct.ExprList*, i8, i8, i8, i8, i8, i8, i8, %struct.SrcList*, %struct.Expr*, %struct.ExprList*, %struct.Expr*, %struct.ExprList*, %struct.Select*, %struct.Select*, %struct.Select*, %struct.Expr*, %struct.Expr*, i32, i32, [3 x i32] }
-	%struct.SrcList = type { i16, i16, [1 x %struct.SrcList_item] }
-	%struct.SrcList_item = type { i8*, i8*, i8*, %struct.Table*, %struct.Select*, i8, i8, i32, %struct.Expr*, %struct.IdList*, i64 }
-	%struct.Table = type { i8*, i32, %struct.Column*, i32, %struct.Index*, i32, %struct.Select*, i32, %struct.Trigger*, %struct.FKey*, i8*, %struct.Expr*, i32, i8, i8, i8, i8, i8, i8, i8, %struct.Module*, %struct.sqlite3_vtab*, i32, i8**, %struct.Schema* }
-	%struct.TableLock = type { i32, i32, i8, i8* }
-	%struct.Trigger = type { i8*, i8*, i8, i8, %struct.Expr*, %struct.IdList*, %struct..4sPragmaType, %struct.Schema*, %struct.Schema*, %struct.TriggerStep*, %struct.Trigger* }
-	%struct.TriggerStack = type { %struct.Table*, i32, i32, i32, i32, i32, i32, %struct.Trigger*, %struct.TriggerStack* }
-	%struct.TriggerStep = type { i32, i32, %struct.Trigger*, %struct.Select*, %struct..4sPragmaType, %struct.Expr*, %struct.ExprList*, %struct.IdList*, %struct.TriggerStep*, %struct.TriggerStep* }
-	%struct.Vdbe = type { %struct.sqlite3*, %struct.Vdbe*, %struct.Vdbe*, i32, i32, %struct.Op*, i32, i32, i32*, %struct.Mem**, %struct.Mem*, i32, %struct.Cursor**, i32, %struct.Mem*, i8**, i32, i32, i32, %struct.Mem*, i32, i32, %struct.Fifo, i32, i32, %struct.Context*, i32, i32, i32, i32, i32, [25 x i32], i32, i32, i8**, i8*, %struct.Mem*, i8, i8, i8, i8, i8, i8, i32, i64, i32, %struct.BtreeMutexArray, i32, i8*, i32 }
-	%struct.VdbeFunc = type { %struct.FuncDef*, i32, [1 x %struct.AuxData] }
-	%struct._OvflCell = type { i8*, i16 }
-	%struct._ht = type { i32, %struct.HashElem* }
-	%struct.anon = type { double }
-	%struct.sColMap = type { i32, i8* }
-	%struct.sqlite3 = type { %struct.sqlite3_vfs*, i32, %struct.Db*, i32, i32, i32, i32, i8, i8, i8, i8, i32, %struct.CollSeq*, i64, i64, i32, i32, i32, %struct.sqlite3_mutex*, %struct.sqlite3InitInfo, i32, i8**, %struct.Vdbe*, i32, void (i8*, i8*)*, i8*, void (i8*, i8*, i64)*, i8*, i8*, i32 (i8*)*, i8*, void (i8*)*, i8*, void (i8*, i32, i8*, i8*, i64)*, void (i8*, %struct.sqlite3*, i32, i8*)*, void (i8*, %struct.sqlite3*, i32, i8*)*, i8*, %struct.Mem*, i8*, i8*, %struct.anon, i32 (i8*, i32, i8*, i8*, i8*, i8*)*, i8*, i32 (i8*)*, i8*, i32, %struct.Hash, %struct.Table*, %struct.sqlite3_vtab**, i32, %struct.Hash, %struct.Hash, %struct.BusyHandler, i32, [2 x %struct.Db], i8 }
-	%struct.sqlite3InitInfo = type { i32, i32, i8 }
-	%struct.sqlite3_context = type { %struct.FuncDef*, %struct.VdbeFunc*, %struct.Mem, %struct.Mem*, i32, %struct.CollSeq* }
-	%struct.sqlite3_file = type { %struct.sqlite3_io_methods* }
-	%struct.sqlite3_index_constraint = type { i32, i8, i8, i32 }
-	%struct.sqlite3_index_constraint_usage = type { i32, i8 }
-	%struct.sqlite3_index_info = type { i32, %struct.sqlite3_index_constraint*, i32, %struct.sqlite3_index_constraint_usage*, %struct.sqlite3_index_constraint_usage*, i32, i8*, i32, i32, double }
-	%struct.sqlite3_io_methods = type { i32, i32 (%struct.sqlite3_file*)*, i32 (%struct.sqlite3_file*, i8*, i32, i64)*, i32 (%struct.sqlite3_file*, i8*, i32, i64)*, i32 (%struct.sqlite3_file*, i64)*, i32 (%struct.sqlite3_file*, i32)*, i32 (%struct.sqlite3_file*, i64*)*, i32 (%struct.sqlite3_file*, i32)*, i32 (%struct.sqlite3_file*, i32)*, i32 (%struct.sqlite3_file*)*, i32 (%struct.sqlite3_file*, i32, i8*)*, i32 (%struct.sqlite3_file*)*, i32 (%struct.sqlite3_file*)* }
-	%struct.sqlite3_module = type { i32, i32 (%struct.sqlite3*, i8*, i32, i8**, %struct.sqlite3_vtab**, i8**)*, i32 (%struct.sqlite3*, i8*, i32, i8**, %struct.sqlite3_vtab**, i8**)*, i32 (%struct.sqlite3_vtab*, %struct.sqlite3_index_info*)*, i32 (%struct.sqlite3_vtab*)*, i32 (%struct.sqlite3_vtab*)*, i32 (%struct.sqlite3_vtab*, %struct.sqlite3_vtab_cursor**)*, i32 (%struct.sqlite3_vtab_cursor*)*, i32 (%struct.sqlite3_vtab_cursor*, i32, i8*, i32, %struct.Mem**)*, i32 (%struct.sqlite3_vtab_cursor*)*, i32 (%struct.sqlite3_vtab_cursor*)*, i32 (%struct.sqlite3_vtab_cursor*, %struct.sqlite3_context*, i32)*, i32 (%struct.sqlite3_vtab_cursor*, i64*)*, i32 (%struct.sqlite3_vtab*, i32, %struct.Mem**, i64*)*, i32 (%struct.sqlite3_vtab*)*, i32 (%struct.sqlite3_vtab*)*, i32 (%struct.sqlite3_vtab*)*, i32 (%struct.sqlite3_vtab*)*, i32 (%struct.sqlite3_vtab*, i32, i8*, void (%struct.sqlite3_context*, i32, %struct.Mem**)**, i8**)*, i32 (%struct.sqlite3_vtab*, i8*)* }
-	%struct.sqlite3_mutex = type opaque
-	%struct.sqlite3_vfs = type { i32, i32, i32, %struct.sqlite3_vfs*, i8*, i8*, i32 (%struct.sqlite3_vfs*, i8*, %struct.sqlite3_file*, i32, i32*)*, i32 (%struct.sqlite3_vfs*, i8*, i32)*, i32 (%struct.sqlite3_vfs*, i8*, i32)*, i32 (%struct.sqlite3_vfs*, i32, i8*)*, i32 (%struct.sqlite3_vfs*, i8*, i32, i8*)*, i8* (%struct.sqlite3_vfs*, i8*)*, void (%struct.sqlite3_vfs*, i32, i8*)*, i8* (%struct.sqlite3_vfs*, i8*, i8*)*, void (%struct.sqlite3_vfs*, i8*)*, i32 (%struct.sqlite3_vfs*, i32, i8*)*, i32 (%struct.sqlite3_vfs*, i32)*, i32 (%struct.sqlite3_vfs*, double*)* }
-	%struct.sqlite3_vtab = type { %struct.sqlite3_module*, i32, i8* }
-	%struct.sqlite3_vtab_cursor = type { %struct.sqlite3_vtab* }
-
-define fastcc void @sqlite3Insert(%struct.Parse* %pParse, %struct.SrcList* %pTabList, %struct.ExprList* %pList, %struct.Select* %pSelect, %struct.IdList* %pColumn, i32 %onError) nounwind {
-entry:
-	br i1 false, label %bb54, label %bb69.loopexit
-
-bb54:		; preds = %entry
-	br label %bb69.loopexit
-
-bb59:		; preds = %bb63.preheader
-	%0 = load %struct..4sPragmaType** %3, align 4		; <%struct..4sPragmaType*> [#uses=0]
-	br label %bb65
-
-bb65:		; preds = %bb63.preheader, %bb59
-	%1 = load %struct..4sPragmaType** %4, align 4		; <%struct..4sPragmaType*> [#uses=0]
-	br i1 false, label %bb67, label %bb63.preheader
-
-bb67:		; preds = %bb65
-	%2 = getelementptr %struct.IdList* %pColumn, i32 0, i32 0		; <%struct..4sPragmaType**> [#uses=0]
-	unreachable
-
-bb69.loopexit:		; preds = %bb54, %entry
-	%3 = getelementptr %struct.IdList* %pColumn, i32 0, i32 0		; <%struct..4sPragmaType**> [#uses=1]
-	%4 = getelementptr %struct.IdList* %pColumn, i32 0, i32 0		; <%struct..4sPragmaType**> [#uses=1]
-	br label %bb63.preheader
-
-bb63.preheader:		; preds = %bb69.loopexit, %bb65
-	br i1 false, label %bb59, label %bb65
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll b/libclamav/c++/llvm/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll
deleted file mode 100644
index 34dc344..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll
+++ /dev/null
@@ -1,193 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-load-pre -disable-output
-
-	%struct.VEC_rtx_base = type { i32, i32, [1 x %struct.rtx_def*] }
-	%struct.VEC_rtx_gc = type { %struct.VEC_rtx_base }
-	%struct.block_symbol = type { [3 x %struct.cgraph_rtl_info], %struct.object_block*, i64 }
-	%struct.cgraph_rtl_info = type { i32 }
-	%struct.object_block = type { %struct.section*, i32, i64, %struct.VEC_rtx_gc*, %struct.VEC_rtx_gc* }
-	%struct.rtvec_def = type { i32, [1 x %struct.rtx_def*] }
-	%struct.rtx_def = type { i16, i8, i8, %struct.u }
-	%struct.section = type { %struct.unnamed_section }
-	%struct.u = type { %struct.block_symbol }
-	%struct.unnamed_section = type { %struct.cgraph_rtl_info, void (i8*)*, i8*, %struct.section* }
-
-declare %struct.rtvec_def* @gen_rtvec(i32, ...)
-
-declare %struct.rtx_def* @plus_constant(%struct.rtx_def*, i64)
-
-declare %struct.rtx_def* @gen_rtx_fmt_Ei(i32, i32, %struct.rtvec_def*, i32)
-
-declare i32 @local_symbolic_operand(%struct.rtx_def*, i32)
-
-define %struct.rtx_def* @legitimize_pic_address(%struct.rtx_def* %orig, %struct.rtx_def* %reg) nounwind {
-entry:
-	%addr = alloca %struct.rtx_def*		; <%struct.rtx_def**> [#uses=5]
-	%iftmp.1532 = alloca %struct.rtx_def*		; <%struct.rtx_def**> [#uses=3]
-	store %struct.rtx_def* %orig, %struct.rtx_def** null
-	%0 = load %struct.rtx_def** null, align 4		; <%struct.rtx_def*> [#uses=0]
-	br i1 false, label %bb96, label %bb59
-
-bb59:		; preds = %entry
-	%1 = load %struct.rtx_def** %addr, align 4		; <%struct.rtx_def*> [#uses=1]
-	%2 = call i32 @local_symbolic_operand(%struct.rtx_def* %1, i32 0) nounwind		; <i32> [#uses=0]
-	br i1 false, label %bb96, label %bb63
-
-bb63:		; preds = %bb59
-	br i1 false, label %bb64, label %bb74
-
-bb64:		; preds = %bb63
-	br i1 false, label %bb72, label %bb65
-
-bb65:		; preds = %bb64
-	br label %bb72
-
-bb72:		; preds = %bb65, %bb64
-	br label %bb74
-
-bb74:		; preds = %bb72, %bb63
-	br i1 false, label %bb75, label %bb76
-
-bb75:		; preds = %bb74
-	br label %bb76
-
-bb76:		; preds = %bb75, %bb74
-	br i1 false, label %bb77, label %bb84
-
-bb77:		; preds = %bb76
-	%3 = getelementptr [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0		; <%struct.cgraph_rtl_info*> [#uses=0]
-	unreachable
-
-bb84:		; preds = %bb76
-	br i1 false, label %bb85, label %bb86
-
-bb85:		; preds = %bb84
-	br label %bb87
-
-bb86:		; preds = %bb84
-	br label %bb87
-
-bb87:		; preds = %bb86, %bb85
-	%4 = call %struct.rtx_def* @gen_rtx_fmt_Ei(i32 16, i32 0, %struct.rtvec_def* null, i32 1) nounwind		; <%struct.rtx_def*> [#uses=0]
-	br i1 false, label %bb89, label %bb90
-
-bb89:		; preds = %bb87
-	br label %bb91
-
-bb90:		; preds = %bb87
-	br label %bb91
-
-bb91:		; preds = %bb90, %bb89
-	br i1 false, label %bb92, label %bb93
-
-bb92:		; preds = %bb91
-	br label %bb94
-
-bb93:		; preds = %bb91
-	br label %bb94
-
-bb94:		; preds = %bb93, %bb92
-	unreachable
-
-bb96:		; preds = %bb59, %entry
-	%5 = load %struct.rtx_def** %addr, align 4		; <%struct.rtx_def*> [#uses=1]
-	%6 = getelementptr %struct.rtx_def* %5, i32 0, i32 0		; <i16*> [#uses=1]
-	%7 = load i16* %6, align 2		; <i16> [#uses=0]
-	br i1 false, label %bb147, label %bb97
-
-bb97:		; preds = %bb96
-	%8 = load %struct.rtx_def** %addr, align 4		; <%struct.rtx_def*> [#uses=0]
-	br i1 false, label %bb147, label %bb99
-
-bb99:		; preds = %bb97
-	unreachable
-
-bb147:		; preds = %bb97, %bb96
-	%9 = load %struct.rtx_def** %addr, align 4		; <%struct.rtx_def*> [#uses=1]
-	%10 = getelementptr %struct.rtx_def* %9, i32 0, i32 0		; <i16*> [#uses=1]
-	%11 = load i16* %10, align 2		; <i16> [#uses=0]
-	br i1 false, label %bb164, label %bb148
-
-bb148:		; preds = %bb147
-	br i1 false, label %bb164, label %bb149
-
-bb149:		; preds = %bb148
-	br i1 false, label %bb150, label %bb152
-
-bb150:		; preds = %bb149
-	unreachable
-
-bb152:		; preds = %bb149
-	br label %bb164
-
-bb164:		; preds = %bb152, %bb148, %bb147
-	%12 = getelementptr [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 1		; <%struct.cgraph_rtl_info*> [#uses=0]
-	br i1 false, label %bb165, label %bb166
-
-bb165:		; preds = %bb164
-	br label %bb167
-
-bb166:		; preds = %bb164
-	br label %bb167
-
-bb167:		; preds = %bb166, %bb165
-	br i1 false, label %bb211, label %bb168
-
-bb168:		; preds = %bb167
-	br i1 false, label %bb211, label %bb170
-
-bb170:		; preds = %bb168
-	br i1 false, label %bb172, label %bb181
-
-bb172:		; preds = %bb170
-	br i1 false, label %bb179, label %bb174
-
-bb174:		; preds = %bb172
-	br i1 false, label %bb177, label %bb175
-
-bb175:		; preds = %bb174
-	br i1 false, label %bb177, label %bb176
-
-bb176:		; preds = %bb175
-	br label %bb178
-
-bb177:		; preds = %bb175, %bb174
-	br label %bb178
-
-bb178:		; preds = %bb177, %bb176
-	br label %bb180
-
-bb179:		; preds = %bb172
-	br label %bb180
-
-bb180:		; preds = %bb179, %bb178
-	br label %bb181
-
-bb181:		; preds = %bb180, %bb170
-	%13 = call %struct.rtvec_def* (i32, ...)* @gen_rtvec(i32 1, %struct.rtx_def* null) nounwind		; <%struct.rtvec_def*> [#uses=0]
-	unreachable
-
-bb211:		; preds = %bb168, %bb167
-	%14 = load %struct.rtx_def** %addr, align 4		; <%struct.rtx_def*> [#uses=0]
-	%15 = getelementptr [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0		; <%struct.cgraph_rtl_info*> [#uses=0]
-	store %struct.rtx_def* null, %struct.rtx_def** null, align 4
-	br i1 false, label %bb212, label %bb213
-
-bb212:		; preds = %bb211
-	store %struct.rtx_def* null, %struct.rtx_def** %iftmp.1532, align 4
-	br label %bb214
-
-bb213:		; preds = %bb211
-	store %struct.rtx_def* null, %struct.rtx_def** %iftmp.1532, align 4
-	br label %bb214
-
-bb214:		; preds = %bb213, %bb212
-	%16 = bitcast %struct.block_symbol* null to [1 x %struct.cgraph_rtl_info]*		; <[1 x %struct.cgraph_rtl_info]*> [#uses=1]
-	%17 = getelementptr [1 x %struct.cgraph_rtl_info]* %16, i32 0, i32 1		; <%struct.cgraph_rtl_info*> [#uses=0]
-	%18 = load %struct.rtx_def** %iftmp.1532, align 4		; <%struct.rtx_def*> [#uses=0]
-	%19 = getelementptr %struct.rtx_def* null, i32 0, i32 3		; <%struct.u*> [#uses=1]
-	%20 = getelementptr %struct.u* %19, i32 0, i32 0		; <%struct.block_symbol*> [#uses=1]
-	%21 = bitcast %struct.block_symbol* %20 to [1 x i64]*		; <[1 x i64]*> [#uses=1]
-	%22 = getelementptr [1 x i64]* %21, i32 0, i32 0		; <i64*> [#uses=0]
-	%23 = call %struct.rtx_def* @plus_constant(%struct.rtx_def* null, i64 0) nounwind		; <%struct.rtx_def*> [#uses=0]
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2009-03-05-dbg.ll b/libclamav/c++/llvm/test/Transforms/GVN/2009-03-05-dbg.ll
deleted file mode 100644
index 0450a7a..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2009-03-05-dbg.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -disable-output
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
- at llvm.dbg.compile_unit298 = external constant %llvm.dbg.compile_unit.type		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-define i8* @__deregister_frame_info_bases(i8* %begin) {
-entry:
-	br i1 false, label %bb17, label %bb
-
-bb:		; preds = %entry
-	br i1 false, label %bb17, label %bb6.preheader
-
-bb6.preheader:		; preds = %bb
-	br label %bb6
-
-bb3:		; preds = %bb6
-	br i1 false, label %bb4, label %bb6
-
-bb4:		; preds = %bb3
-	br label %out
-
-bb6:		; preds = %bb3, %bb6.preheader
-	br i1 false, label %bb14.loopexit, label %bb3
-
-bb8:		; preds = %bb14
-	br i1 false, label %bb9, label %bb11
-
-bb9:		; preds = %bb8
-	br i1 false, label %bb10, label %bb13
-
-bb10:		; preds = %bb9
-	br label %out
-
-bb11:		; preds = %bb8
-	br i1 false, label %bb12, label %bb13
-
-bb12:		; preds = %bb11
-	br label %out
-
-bb13:		; preds = %bb11, %bb9
-	br label %bb14
-
-bb14.loopexit:		; preds = %bb6
-	br label %bb14
-
-bb14:		; preds = %bb14.loopexit, %bb13
-	br i1 false, label %bb15.loopexit, label %bb8
-
-out:		; preds = %bb12, %bb10, %bb4
-	tail call void @llvm.dbg.stoppoint(i32 217, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit298 to { }*))
-	br i1 false, label %bb15, label %bb16
-
-bb15.loopexit:		; preds = %bb14
-	br label %bb15
-
-bb15:		; preds = %bb15.loopexit, %out
-	tail call void @llvm.dbg.stoppoint(i32 217, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit298 to { }*))
-	unreachable
-
-bb16:		; preds = %out
-	ret i8* null
-
-bb17:		; preds = %bb, %entry
-	ret i8* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2009-03-10-PREOnVoid.ll b/libclamav/c++/llvm/test/Transforms/GVN/2009-03-10-PREOnVoid.ll
deleted file mode 100644
index 63ddc45..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2009-03-10-PREOnVoid.ll
+++ /dev/null
@@ -1,82 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -disable-output
-; PR3775
-
-; ModuleID = 'bugpoint-reduced-simplified.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%"struct.__gnu_cxx::hash<void*>" = type <{ i8 }>
-	%struct.__sched_param = type { i32 }
-	%struct._pthread_descr_struct = type opaque
-	%struct.pthread_attr_t = type { i32, i32, %struct.__sched_param, i32, i32, i32, i32, i8*, i32 }
-	%struct.pthread_mutex_t = type { i32, i32, %struct._pthread_descr_struct*, i32, %llvm.dbg.anchor.type }
-	%"struct.std::_Rb_tree<void*,std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > >,std::_Select1st<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,std::less<void*>,std::allocator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > > >" = type { %"struct.std::_Rb_tree<void*,std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > >,std::_Select1st<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,std::less<void*>,std::allocator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > > >::_Rb_tree_impl<std::less<void*>,false>" }
-	%"struct.std::_Rb_tree<void*,std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > >,std::_Select1st<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,std::less<void*>,std::allocator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > > >::_Rb_tree_impl<std::less<void*>,false>" = type { %"struct.__gnu_cxx::hash<void*>", %"struct.std::_Rb_tree_node_base", i32 }
-	%"struct.std::_Rb_tree_iterator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >" = type { %"struct.std::_Rb_tree_node_base"* }
-	%"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* }
-	%"struct.std::pair<std::_Rb_tree_iterator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,bool>" = type { %"struct.std::_Rb_tree_iterator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >", i8 }
-	%"struct.std::pair<void* const,void*>" = type { i8*, i8* }
-
- at _ZL20__gthrw_pthread_oncePiPFvvE = alias weak i32 (i32*, void ()*)* @pthread_once		; <i32 (i32*, void ()*)*> [#uses=0]
- at _ZL27__gthrw_pthread_getspecificj = alias weak i8* (i32)* @pthread_getspecific		; <i8* (i32)*> [#uses=0]
- at _ZL27__gthrw_pthread_setspecificjPKv = alias weak i32 (i32, i8*)* @pthread_setspecific		; <i32 (i32, i8*)*> [#uses=0]
- at _ZL22__gthrw_pthread_createPmPK16__pthread_attr_sPFPvS3_ES3_ = alias weak i32 (i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)* @pthread_create		; <i32 (i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)*> [#uses=0]
- at _ZL22__gthrw_pthread_cancelm = alias weak i32 (i32)* @pthread_cancel		; <i32 (i32)*> [#uses=0]
- at _ZL26__gthrw_pthread_mutex_lockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_lock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL29__gthrw_pthread_mutex_trylockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_trylock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL28__gthrw_pthread_mutex_unlockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_unlock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL26__gthrw_pthread_mutex_initP15pthread_mutex_tPK19pthread_mutexattr_t = alias weak i32 (%struct.pthread_mutex_t*, %struct.__sched_param*)* @pthread_mutex_init		; <i32 (%struct.pthread_mutex_t*, %struct.__sched_param*)*> [#uses=0]
- at _ZL26__gthrw_pthread_key_createPjPFvPvE = alias weak i32 (i32*, void (i8*)*)* @pthread_key_create		; <i32 (i32*, void (i8*)*)*> [#uses=0]
- at _ZL26__gthrw_pthread_key_deletej = alias weak i32 (i32)* @pthread_key_delete		; <i32 (i32)*> [#uses=0]
- at _ZL30__gthrw_pthread_mutexattr_initP19pthread_mutexattr_t = alias weak i32 (%struct.__sched_param*)* @pthread_mutexattr_init		; <i32 (%struct.__sched_param*)*> [#uses=0]
- at _ZL33__gthrw_pthread_mutexattr_settypeP19pthread_mutexattr_ti = alias weak i32 (%struct.__sched_param*, i32)* @pthread_mutexattr_settype		; <i32 (%struct.__sched_param*, i32)*> [#uses=0]
- at _ZL33__gthrw_pthread_mutexattr_destroyP19pthread_mutexattr_t = alias weak i32 (%struct.__sched_param*)* @pthread_mutexattr_destroy		; <i32 (%struct.__sched_param*)*> [#uses=0]
-
-declare fastcc void @_ZNSt10_Select1stISt4pairIKPvS1_EEC1Ev() nounwind readnone
-
-define fastcc void @_ZNSt8_Rb_treeIPvSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE16_M_insert_uniqueERKS3_(%"struct.std::pair<std::_Rb_tree_iterator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,bool>"* noalias nocapture sret %agg.result, %"struct.std::_Rb_tree<void*,std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > >,std::_Select1st<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > >,std::less<void*>,std::allocator<std::pair<void* const, std::vector<ShadowInfo, std::allocator<ShadowInfo> > > > >"* %this, %"struct.std::pair<void* const,void*>"* %__v) nounwind {
-entry:
-	br i1 false, label %bb7, label %bb
-
-bb:		; preds = %bb, %entry
-	br i1 false, label %bb5, label %bb
-
-bb5:		; preds = %bb
-	call fastcc void @_ZNSt10_Select1stISt4pairIKPvS1_EEC1Ev() nounwind
-	br i1 false, label %bb11, label %bb7
-
-bb7:		; preds = %bb5, %entry
-	br label %bb11
-
-bb11:		; preds = %bb7, %bb5
-	call fastcc void @_ZNSt10_Select1stISt4pairIKPvS1_EEC1Ev() nounwind
-	unreachable
-}
-
-declare i32 @pthread_once(i32*, void ()*)
-
-declare i8* @pthread_getspecific(i32)
-
-declare i32 @pthread_setspecific(i32, i8*)
-
-declare i32 @pthread_create(i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)
-
-declare i32 @pthread_cancel(i32)
-
-declare i32 @pthread_mutex_lock(%struct.pthread_mutex_t*)
-
-declare i32 @pthread_mutex_trylock(%struct.pthread_mutex_t*)
-
-declare i32 @pthread_mutex_unlock(%struct.pthread_mutex_t*)
-
-declare i32 @pthread_mutex_init(%struct.pthread_mutex_t*, %struct.__sched_param*)
-
-declare i32 @pthread_key_create(i32*, void (i8*)*)
-
-declare i32 @pthread_key_delete(i32)
-
-declare i32 @pthread_mutexattr_init(%struct.__sched_param*)
-
-declare i32 @pthread_mutexattr_settype(%struct.__sched_param*, i32)
-
-declare i32 @pthread_mutexattr_destroy(%struct.__sched_param*)
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2009-06-17-InvalidPRE.ll b/libclamav/c++/llvm/test/Transforms/GVN/2009-06-17-InvalidPRE.ll
deleted file mode 100644
index c8982c8..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2009-06-17-InvalidPRE.ll
+++ /dev/null
@@ -1,72 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-load-pre | llvm-dis | not grep pre1
-; GVN load pre was hoisting the loads at %13 and %16 up to bb4.outer.  
-; This is invalid as it bypasses the check for %m.0.ph==null in bb4. 
-; ModuleID = 'mbuf.c'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-  %struct.mbuf = type { %struct.mbuf*, %struct.mbuf*, i32, i8*, i16, i16, i32 }
-
-define void @m_adj(%struct.mbuf* %mp, i32 %req_len) nounwind optsize {
-entry:
-  %0 = icmp eq %struct.mbuf* %mp, null    ; <i1> [#uses=1]
-  %1 = icmp slt i32 %req_len, 0   ; <i1> [#uses=1]
-  %or.cond = or i1 %1, %0   ; <i1> [#uses=1]
-  br i1 %or.cond, label %return, label %bb4.preheader
-
-bb4.preheader:    ; preds = %entry
-  br label %bb4.outer
-
-bb2:    ; preds = %bb1
-  %2 = sub i32 %len.0, %13   ; <i32> [#uses=1]
-  %3 = getelementptr %struct.mbuf* %m.0.ph, i32 0, i32 2    ; <i32*> [#uses=1]
-  store i32 0, i32* %3, align 4
-  %4 = getelementptr %struct.mbuf* %m.0.ph, i32 0, i32 0    ; <%struct.mbuf**> [#uses=1]
-  %5 = load %struct.mbuf** %4, align 4    ; <%struct.mbuf*> [#uses=1]
-  br label %bb4.outer
-
-bb4.outer:    ; preds = %bb4.preheader, %bb2
-  %m.0.ph = phi %struct.mbuf* [ %5, %bb2 ], [ %mp, %bb4.preheader ]   ; <%struct.mbuf*> [#uses=7]
-  %len.0.ph = phi i32 [ %2, %bb2 ], [ %req_len, %bb4.preheader ]    ; <i32> [#uses=1]
-  %6 = icmp ne %struct.mbuf* %m.0.ph, null    ; <i1> [#uses=1]
-  %7 = getelementptr %struct.mbuf* %m.0.ph, i32 0, i32 2    ; <i32*> [#uses=1]
-  %8 = getelementptr %struct.mbuf* %m.0.ph, i32 0, i32 2   ; <i32*> [#uses=1]
-  %9 = getelementptr %struct.mbuf* %m.0.ph, i32 0, i32 3   ; <i8**> [#uses=1]
-  %10 = getelementptr %struct.mbuf* %m.0.ph, i32 0, i32 3   ; <i8**> [#uses=1]
-  br label %bb4
-
-bb4:    ; preds = %bb4.outer, %bb3
-  %len.0 = phi i32 [ 0, %bb3 ], [ %len.0.ph, %bb4.outer ]   ; <i32> [#uses=6]
-  %11 = icmp sgt i32 %len.0, 0    ; <i1> [#uses=1]
-  %12 = and i1 %11, %6    ; <i1> [#uses=1]
-  br i1 %12, label %bb1, label %bb7
-
-bb1:    ; preds = %bb4
-  %13 = load i32* %7, align 4    ; <i32> [#uses=3]
-  %14 = icmp sgt i32 %13, %len.0    ; <i1> [#uses=1]
-  br i1 %14, label %bb3, label %bb2
-
-bb3:    ; preds = %bb1
-  %15 = sub i32 %13, %len.0    ; <i32> [#uses=1]
-  store i32 %15, i32* %8, align 4
-  %16 = load i8** %9, align 4    ; <i8*> [#uses=1]
-  %17 = getelementptr i8* %16, i32 %len.0   ; <i8*> [#uses=1]
-  store i8* %17, i8** %10, align 4
-  br label %bb4
-
-bb7:    ; preds = %bb4
-  %18 = getelementptr %struct.mbuf* %mp, i32 0, i32 5   ; <i16*> [#uses=1]
-  %19 = load i16* %18, align 2    ; <i16> [#uses=1]
-  %20 = zext i16 %19 to i32   ; <i32> [#uses=1]
-  %21 = and i32 %20, 2    ; <i32> [#uses=1]
-  %22 = icmp eq i32 %21, 0    ; <i1> [#uses=1]
-  br i1 %22, label %return, label %bb8
-
-bb8:    ; preds = %bb7
-  %23 = sub i32 %req_len, %len.0    ; <i32> [#uses=1]
-  %24 = getelementptr %struct.mbuf* %mp, i32 0, i32 6   ; <i32*> [#uses=1]
-  store i32 %23, i32* %24, align 4
-  ret void
-
-return:   ; preds = %bb7, %entry
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/2009-07-13-MemDepSortFail.ll b/libclamav/c++/llvm/test/Transforms/GVN/2009-07-13-MemDepSortFail.ll
deleted file mode 100644
index f873704..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/2009-07-13-MemDepSortFail.ll
+++ /dev/null
@@ -1,67 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis
-; PR4256
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-linux-gnu"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%struct.cset = type { i8*, i8, i8, i32, i8* }
-	%struct.lmat = type { %struct.re_guts*, i32, %llvm.dbg.anchor.type*, i8*, i8*, i8*, i8*, i8**, i32, i8*, i8*, i8*, i8*, i8* }
-	%struct.re_guts = type { i32*, %struct.cset*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, i32, i32, [1 x i8] }
-
-define i8* @lbackref(%struct.lmat* %m, i8* %start, i8* %stop, i32 %startst, i32 %stopst, i32 %lev, i32 %rec) nounwind {
-entry:
-	br label %bb63
-
-bb:		; preds = %bb63
-	switch i32 0, label %bb62 [
-		i32 268435456, label %bb2
-		i32 805306368, label %bb9
-		i32 -1610612736, label %bb51
-	]
-
-bb2:		; preds = %bb
-	br label %bb62
-
-bb9:		; preds = %bb
-	%0 = load i8* %sp.1, align 1		; <i8> [#uses=0]
-	br label %bb62
-
-bb51:		; preds = %bb
-	%1 = load i8* %sp.1, align 1		; <i8> [#uses=0]
-	ret i8* null
-
-bb62:		; preds = %bb9, %bb2, %bb
-	br label %bb63
-
-bb63:		; preds = %bb84, %bb69, %bb62, %entry
-	%sp.1 = phi i8* [ null, %bb62 ], [ %sp.1.lcssa, %bb84 ], [ %start, %entry ], [ %sp.1.lcssa, %bb69 ]		; <i8*> [#uses=3]
-	br i1 false, label %bb, label %bb65
-
-bb65:		; preds = %bb63
-	%sp.1.lcssa = phi i8* [ %sp.1, %bb63 ]		; <i8*> [#uses=4]
-	br i1 false, label %bb66, label %bb69
-
-bb66:		; preds = %bb65
-	ret i8* null
-
-bb69:		; preds = %bb65
-	switch i32 0, label %bb108.loopexit2.loopexit.loopexit [
-		i32 1342177280, label %bb63
-		i32 1476395008, label %bb84
-		i32 1879048192, label %bb104
-		i32 2013265920, label %bb93
-	]
-
-bb84:		; preds = %bb69
-	%2 = tail call i8* @lbackref(%struct.lmat* %m, i8* %sp.1.lcssa, i8* %stop, i32 0, i32 %stopst, i32 0, i32 0) nounwind		; <i8*> [#uses=0]
-	br label %bb63
-
-bb93:		; preds = %bb69
-	ret i8* null
-
-bb104:		; preds = %bb69
-	%sp.1.lcssa.lcssa33 = phi i8* [ %sp.1.lcssa, %bb69 ]		; <i8*> [#uses=0]
-	unreachable
-
-bb108.loopexit2.loopexit.loopexit:		; preds = %bb69
-	ret i8* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/basic.ll b/libclamav/c++/llvm/test/Transforms/GVN/basic.ll
deleted file mode 100644
index ebf5daa..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/basic.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {%z2 =}
-
-define i32 @main() {
-block1:
-	%z1 = bitcast i32 0 to i32
-	br label %block2
-block2:
-  %z2 = bitcast i32 0 to i32
-  ret i32 %z2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/bitcast-of-call.ll b/libclamav/c++/llvm/test/Transforms/GVN/bitcast-of-call.ll
deleted file mode 100644
index 0a045c8..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/bitcast-of-call.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep tmp2
-; PR2213
-
-define i32* @f(i8* %x) {
-entry:
-        %tmp = call i8* @m( i32 12 )            ; <i8*> [#uses=2]
-        %tmp1 = bitcast i8* %tmp to i32*                ; <i32*> [#uses=0]
-        %tmp2 = bitcast i8* %tmp to i32*                ; <i32*> [#uses=0]
-        ret i32* %tmp2
-}
-
-declare i8* @m(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/calls-nonlocal.ll b/libclamav/c++/llvm/test/Transforms/GVN/calls-nonlocal.ll
deleted file mode 100644
index 0d1c8a3..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/calls-nonlocal.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep strlen | count 2
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9"
-
-define i32 @test(i32 %g, i8* %P) nounwind  {
-entry:
-	%tmp2 = call i32 @strlen( i8* %P ) nounwind readonly 		; <i32> [#uses=1]
-	%tmp3 = icmp eq i32 %tmp2, 100		; <i1> [#uses=1]
-	%tmp34 = zext i1 %tmp3 to i8		; <i8> [#uses=1]
-	%toBool = icmp ne i8 %tmp34, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %bb, label %bb6
-
-bb:		; preds = %entry
-	br label %bb27
-
-bb6:		; preds = %entry
-	%tmp8 = add i32 %g, 42		; <i32> [#uses=2]
-	%tmp10 = call i32 @strlen( i8* %P ) nounwind readonly 		; <i32> [#uses=1]
-	%tmp11 = icmp eq i32 %tmp10, 100		; <i1> [#uses=1]
-	%tmp1112 = zext i1 %tmp11 to i8		; <i8> [#uses=1]
-	%toBool13 = icmp ne i8 %tmp1112, 0		; <i1> [#uses=1]
-	br i1 %toBool13, label %bb14, label %bb16
-
-bb14:		; preds = %bb6
-	br label %bb27
-
-bb16:		; preds = %bb6
-	%tmp18 = mul i32 %tmp8, 2		; <i32> [#uses=1]
-	%tmp20 = call i32 @strlen( i8* %P ) nounwind readonly 		; <i32> [#uses=1]
-	%tmp21 = icmp eq i32 %tmp20, 100		; <i1> [#uses=1]
-	%tmp2122 = zext i1 %tmp21 to i8		; <i8> [#uses=1]
-	%toBool23 = icmp ne i8 %tmp2122, 0		; <i1> [#uses=1]
-	br i1 %toBool23, label %bb24, label %bb26
-
-bb24:		; preds = %bb16
-	br label %bb27
-
-bb26:		; preds = %bb16
-	br label %bb27
-
-bb27:		; preds = %bb26, %bb24, %bb14, %bb
-	%tmp.0 = phi i32 [ 11, %bb26 ], [ %tmp18, %bb24 ], [ %tmp8, %bb14 ], [ %g, %bb ]		; <i32> [#uses=1]
-	br label %return
-
-return:		; preds = %bb27
-	ret i32 %tmp.0
-}
-
-declare i32 @strlen(i8*) nounwind readonly 
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/calls-readonly.ll b/libclamav/c++/llvm/test/Transforms/GVN/calls-readonly.ll
deleted file mode 100644
index 723ef77..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/calls-readonly.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -basicaa -gvn | llvm-dis | grep {call.*strlen} | count 1
-; Should delete the second call to strlen even though the intervening strchr call exists.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-
-define i8* @test(i8* %P, i8* %Q, i32 %x, i32 %y) nounwind readonly {
-entry:
-	%0 = tail call i32 @strlen(i8* %P) nounwind readonly		; <i32> [#uses=2]
-	%1 = icmp eq i32 %0, 0		; <i1> [#uses=1]
-	br i1 %1, label %bb, label %bb1
-
-bb:		; preds = %entry
-	%2 = sdiv i32 %x, %y		; <i32> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%x_addr.0 = phi i32 [ %2, %bb ], [ %x, %entry ]		; <i32> [#uses=1]
-	%3 = tail call i8* @strchr(i8* %Q, i32 97) nounwind readonly		; <i8*> [#uses=1]
-	%4 = tail call i32 @strlen(i8* %P) nounwind readonly		; <i32> [#uses=1]
-	%5 = add i32 %x_addr.0, %0		; <i32> [#uses=1]
-	%.sum = sub i32 %5, %4		; <i32> [#uses=1]
-	%6 = getelementptr i8* %3, i32 %.sum		; <i8*> [#uses=1]
-	ret i8* %6
-}
-
-declare i32 @strlen(i8*) nounwind readonly
-
-declare i8* @strchr(i8*, i32) nounwind readonly
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/condprop.ll b/libclamav/c++/llvm/test/Transforms/GVN/condprop.ll
deleted file mode 100644
index 53cbb50..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/condprop.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {br i1 false}
-
- at a = external global i32		; <i32*> [#uses=7]
-
-define i32 @foo() nounwind {
-entry:
-	%0 = load i32* @a, align 4		; <i32> [#uses=1]
-	%1 = icmp eq i32 %0, 4		; <i1> [#uses=1]
-	br i1 %1, label %bb, label %bb1
-
-bb:		; preds = %entry
-	br label %bb8
-
-bb1:		; preds = %entry
-	%2 = load i32* @a, align 4		; <i32> [#uses=1]
-	%3 = icmp eq i32 %2, 5		; <i1> [#uses=1]
-	br i1 %3, label %bb2, label %bb3
-
-bb2:		; preds = %bb1
-	br label %bb8
-
-bb3:		; preds = %bb1
-	%4 = load i32* @a, align 4		; <i32> [#uses=1]
-	%5 = icmp eq i32 %4, 4		; <i1> [#uses=1]
-	br i1 %5, label %bb4, label %bb5
-
-bb4:		; preds = %bb3
-	%6 = load i32* @a, align 4		; <i32> [#uses=1]
-	%7 = add i32 %6, 5		; <i32> [#uses=1]
-	br label %bb8
-
-bb5:		; preds = %bb3
-	%8 = load i32* @a, align 4		; <i32> [#uses=1]
-	%9 = icmp eq i32 %8, 5		; <i1> [#uses=1]
-	br i1 %9, label %bb6, label %bb7
-
-bb6:		; preds = %bb5
-	%10 = load i32* @a, align 4		; <i32> [#uses=1]
-	%11 = add i32 %10, 4		; <i32> [#uses=1]
-	br label %bb8
-
-bb7:		; preds = %bb5
-	%12 = load i32* @a, align 4		; <i32> [#uses=1]
-	br label %bb8
-
-bb8:		; preds = %bb7, %bb6, %bb4, %bb2, %bb
-	%.0 = phi i32 [ %12, %bb7 ], [ %11, %bb6 ], [ %7, %bb4 ], [ 4, %bb2 ], [ 5, %bb ]		; <i32> [#uses=1]
-	br label %return
-
-return:		; preds = %bb8
-	ret i32 %.0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/dg.exp b/libclamav/c++/llvm/test/Transforms/GVN/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/load-constant-mem.ll b/libclamav/c++/llvm/test/Transforms/GVN/load-constant-mem.ll
deleted file mode 100644
index 83b9d38..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/load-constant-mem.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -instcombine | llvm-dis | grep {ret i32 0}
-; PR4189
- at G = external constant [4 x i32]
-
-define i32 @test(i8* %p, i32 %i) nounwind {
-entry:
-	%P = getelementptr [4 x i32]* @G, i32 0, i32 %i
-	%A = load i32* %P
-	store i8 4, i8* %p
-	%B = load i32* %P
-	%C = sub i32 %A, %B
-	ret i32 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/local-pre.ll b/libclamav/c++/llvm/test/Transforms/GVN/local-pre.ll
deleted file mode 100644
index 59158cc..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/local-pre.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-pre | llvm-dis | grep {b.pre}
-
-define i32 @main(i32 %p) {
-block1:
-  
-	br i1 true, label %block2, label %block3
-
-block2:
- %a = add i32 %p, 1
- br label %block4
-
-block3:
-  br label %block4
-
-block4:
-  %b = add i32 %p, 1
-  ret i32 %b
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/lpre-basic.ll b/libclamav/c++/llvm/test/Transforms/GVN/lpre-basic.ll
deleted file mode 100644
index 5b52863..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/lpre-basic.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-load-pre | llvm-dis | grep {%PRE = phi}
-
-define i32 @test(i32* %p, i1 %C) {
-block1:
-	br i1 %C, label %block2, label %block3
-
-block2:
- br label %block4
-
-block3:
-  %b = bitcast i32 0 to i32
-  store i32 %b, i32* %p
-  br label %block4
-
-block4:
-  %PRE = load i32* %p
-  ret i32 %PRE
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/lpre-call-wrap-2.ll b/libclamav/c++/llvm/test/Transforms/GVN/lpre-call-wrap-2.ll
deleted file mode 100644
index c9f9352..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/lpre-call-wrap-2.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-load-pre | llvm-dis > %t
-; RUN: %prcontext bb1: 2 < %t | grep phi
-; RUN: %prcontext bb1: 2 < %t | not grep load
-;
-; The partially redundant load in bb1 should be hoisted to "bb".  This comes
-; from this C code (GCC PR 23455):
-;   unsigned outcnt;  extern void flush_outbuf(void);
-;   void bi_windup(unsigned char *outbuf, unsigned char bi_buf) {
-;     outbuf[outcnt] = bi_buf;
-;     if (outcnt == 16384)
-;       flush_outbuf();
-;     outbuf[outcnt] = bi_buf;
-;   }
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
- at outcnt = common global i32 0		; <i32*> [#uses=3]
-
-define void @bi_windup(i8* %outbuf, i8 zeroext %bi_buf) nounwind {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%0 = load i32* @outcnt, align 4		; <i32> [#uses=1]
-	%1 = getelementptr i8* %outbuf, i32 %0		; <i8*> [#uses=1]
-	store i8 %bi_buf, i8* %1, align 1
-	%2 = load i32* @outcnt, align 4		; <i32> [#uses=1]
-	%3 = icmp eq i32 %2, 16384		; <i1> [#uses=1]
-	br i1 %3, label %bb, label %bb1
-
-bb:		; preds = %entry
-	call void @flush_outbuf() nounwind
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%4 = load i32* @outcnt, align 4		; <i32> [#uses=1]
-	%5 = getelementptr i8* %outbuf, i32 %4		; <i8*> [#uses=1]
-	store i8 %bi_buf, i8* %5, align 1
-	ret void
-}
-
-declare void @flush_outbuf()
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/lpre-call-wrap.ll b/libclamav/c++/llvm/test/Transforms/GVN/lpre-call-wrap.ll
deleted file mode 100644
index 7470953..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/lpre-call-wrap.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-load-pre | llvm-dis > %t
-; RUN: %prcontext bb3.backedge: 2 < %t | grep phi
-; RUN: %prcontext bb3.backedge: 2 < %t | not grep load
-;
-; Make sure the load in bb3.backedge is removed and moved into bb1 after the 
-; call.  This makes the non-call case faster. 
-;
-; This test is derived from this C++ code (GCC PR 37810):
-; void g();
-; struct A { 
-;   int n; int m;
-;   A& operator++(void) { ++n; if (n == m) g(); return *this; }
-;   A() : n(0), m(0) { } 
-;   friend bool operator!=(A const& a1, A const& a2) { return a1.n != a2.n; }
-; };
-; void testfunction(A& iter) { A const end; while (iter != end) ++iter; }
-;
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-	%struct.A = type { i32, i32 }
-
-define void @_Z12testfunctionR1A(%struct.A* %iter) {
-entry:
-	%0 = getelementptr %struct.A* %iter, i32 0, i32 0		; <i32*> [#uses=3]
-	%1 = load i32* %0, align 4		; <i32> [#uses=2]
-	%2 = icmp eq i32 %1, 0		; <i1> [#uses=1]
-	br i1 %2, label %return, label %bb.nph
-
-bb.nph:		; preds = %entry
-	%3 = getelementptr %struct.A* %iter, i32 0, i32 1		; <i32*> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb3.backedge, %bb.nph
-	%.rle = phi i32 [ %1, %bb.nph ], [ %7, %bb3.backedge ]		; <i32> [#uses=1]
-	%4 = add i32 %.rle, 1		; <i32> [#uses=2]
-	store i32 %4, i32* %0, align 4
-	%5 = load i32* %3, align 4		; <i32> [#uses=1]
-	%6 = icmp eq i32 %4, %5		; <i1> [#uses=1]
-	br i1 %6, label %bb1, label %bb3.backedge
-
-bb1:		; preds = %bb
-	tail call void @_Z1gv()
-	br label %bb3.backedge
-
-bb3.backedge:		; preds = %bb, %bb1
-	%7 = load i32* %0, align 4		; <i32> [#uses=2]
-	%8 = icmp eq i32 %7, 0		; <i1> [#uses=1]
-	br i1 %8, label %return, label %bb
-
-return:		; preds = %bb3.backedge, %entry
-	ret void
-}
-
-declare void @_Z1gv()
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/mixed.ll b/libclamav/c++/llvm/test/Transforms/GVN/mixed.ll
deleted file mode 100644
index 0c4f65c..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/mixed.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep DEADLOAD
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep DEADGEP
-
-define i32 @main(i32** %p) {
-block1:
-	%z1 = load i32** %p
-	%z2 = getelementptr i32* %z1, i32 0
-	%z3 = load i32* %z2
-	%DEADLOAD = load i32** %p
-	%DEADGEP = getelementptr i32* %DEADLOAD, i32 0
-	%DEADLOAD2 = load i32* %DEADGEP
-	ret i32 %DEADLOAD2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/pre-basic-add.ll b/libclamav/c++/llvm/test/Transforms/GVN/pre-basic-add.ll
deleted file mode 100644
index f00bda3..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/pre-basic-add.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-pre | llvm-dis | grep {.pre}
-
- at H = common global i32 0		; <i32*> [#uses=2]
- at G = common global i32 0		; <i32*> [#uses=1]
-
-define i32 @test() nounwind {
-entry:
-	%0 = load i32* @H, align 4		; <i32> [#uses=2]
-	%1 = call i32 (...)* @foo() nounwind		; <i32> [#uses=1]
-	%2 = icmp ne i32 %1, 0		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %bb1
-
-bb:		; preds = %entry
-	%3 = add i32 %0, 42		; <i32> [#uses=1]
-	store i32 %3, i32* @G, align 4
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%4 = add i32 %0, 42		; <i32> [#uses=1]
-	store i32 %4, i32* @H, align 4
-	br label %return
-
-return:		; preds = %bb1
-	ret i32 0
-}
-
-declare i32 @foo(...)
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/pre-single-pred.ll b/libclamav/c++/llvm/test/Transforms/GVN/pre-single-pred.ll
deleted file mode 100644
index cb71617..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/pre-single-pred.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -enable-load-pre | llvm-dis | not grep {tmp3 = load}
-
- at p = external global i32
-define i32 @f(i32 %n) nounwind {
-entry:
-	br label %for.cond
-
-for.cond:		; preds = %for.inc, %entry
-	%i.0 = phi i32 [ 0, %entry ], [ %indvar.next, %for.inc ]		; <i32> [#uses=2]
-	%cmp = icmp slt i32 %i.0, %n		; <i1> [#uses=1]
-	br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge
-
-for.cond.for.end_crit_edge:		; preds = %for.cond
-	br label %for.end
-
-for.body:		; preds = %for.cond
-	%tmp3 = load i32* @p		; <i32> [#uses=1]
-	%dec = add i32 %tmp3, -1		; <i32> [#uses=2]
-	store i32 %dec, i32* @p
-	%cmp6 = icmp slt i32 %dec, 0		; <i1> [#uses=1]
-	br i1 %cmp6, label %for.body.for.end_crit_edge, label %for.inc
-
-for.body.for.end_crit_edge:		; preds = %for.body
-	br label %for.end
-
-for.inc:		; preds = %for.body
-	%indvar.next = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %for.cond
-
-for.end:		; preds = %for.body.for.end_crit_edge, %for.cond.for.end_crit_edge
-	%tmp9 = load i32* @p		; <i32> [#uses=1]
-	ret i32 %tmp9
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/rle-dominated.ll b/libclamav/c++/llvm/test/Transforms/GVN/rle-dominated.ll
deleted file mode 100644
index 0d51717..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/rle-dominated.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep load | count 2
-
-define i32 @main(i32** %p) {
-block1:
-  %z = load i32** %p
-	br i1 true, label %block2, label %block3
-
-block2:
- %a = load i32** %p
- br label %block4
-
-block3:
-  %b = load i32** %p
-  br label %block4
-
-block4:
-  %c = load i32** %p
-  %d = load i32* %c
-  ret i32 %d
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/rle-must-alias.ll b/libclamav/c++/llvm/test/Transforms/GVN/rle-must-alias.ll
deleted file mode 100644
index ada4398..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/rle-must-alias.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD = phi i32 }
-; XFAIL: *
-
-; FIXME: GVN should eliminate the fully redundant %9 GEP which 
-; allows DEAD to be removed.  This is PR3198.
-
-; The %7 and %4 loads combine to make %DEAD unneeded.
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
- at H = common global [100 x i32] zeroinitializer, align 32		; <[100 x i32]*> [#uses=3]
- at G = common global i32 0		; <i32*> [#uses=2]
-
-define i32 @test(i32 %i) nounwind {
-entry:
-	%0 = tail call i32 (...)* @foo() nounwind		; <i32> [#uses=1]
-	%1 = icmp eq i32 %0, 0		; <i1> [#uses=1]
-	br i1 %1, label %bb1, label %bb
-
-bb:		; preds = %entry
-	%2 = tail call i32 (...)* @bar() nounwind		; <i32> [#uses=0]
-	%3 = getelementptr [100 x i32]* @H, i32 0, i32 %i		; <i32*> [#uses=1]
-	%4 = load i32* %3, align 4		; <i32> [#uses=1]
-	store i32 %4, i32* @G, align 4
-	br label %bb3
-
-bb1:		; preds = %entry
-	%5 = tail call i32 (...)* @baz() nounwind		; <i32> [#uses=0]
-	%6 = getelementptr [100 x i32]* @H, i32 0, i32 %i		; <i32*> [#uses=1]
-	%7 = load i32* %6, align 4		; <i32> [#uses=2]
-	store i32 %7, i32* @G, align 4
-	%8 = icmp eq i32 %7, 0		; <i1> [#uses=1]
-	br i1 %8, label %bb3, label %bb4
-
-bb3:		; preds = %bb1, %bb
-	%9 = getelementptr [100 x i32]* @H, i32 0, i32 %i		; <i32*> [#uses=1]
-	%DEAD = load i32* %9, align 4		; <i32> [#uses=1]
-	ret i32 %DEAD
-
-bb4:		; preds = %bb1
-	ret i32 0
-}
-
-declare i32 @foo(...)
-
-declare i32 @bar(...)
-
-declare i32 @baz(...)
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/rle-no-phi-translate.ll b/libclamav/c++/llvm/test/Transforms/GVN/rle-no-phi-translate.ll
deleted file mode 100644
index 9ffbe21..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/rle-no-phi-translate.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep load
-; FIXME: This should be promotable, but memdep/gvn don't track values
-; path/edge sensitively enough.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-
-define i32 @g(i32* %b, i32* %c) nounwind {
-entry:
-        store i32 1, i32* %b
-        store i32 2, i32* %c
-        
-	%t1 = icmp eq i32* %b, null		; <i1> [#uses=1]
-	br i1 %t1, label %bb, label %bb2
-
-bb:		; preds = %entry
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	%c_addr.0 = phi i32* [ %b, %entry ], [ %c, %bb ]		; <i32*> [#uses=1]
-	%cv = load i32* %c_addr.0, align 4		; <i32> [#uses=1]
-	ret i32 %cv
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/rle-nonlocal.ll b/libclamav/c++/llvm/test/Transforms/GVN/rle-nonlocal.ll
deleted file mode 100644
index d932231..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/rle-nonlocal.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%DEAD = phi i32. }
-
-define i32 @main(i32** %p) {
-block1:
-	br i1 true, label %block2, label %block3
-
-block2:
- %a = load i32** %p
- br label %block4
-
-block3:
-  %b = load i32** %p
-  br label %block4
-
-block4:
-  %DEAD = load i32** %p
-  %c = load i32* %DEAD
-  ret i32 %c
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/rle-phi-translate.ll b/libclamav/c++/llvm/test/Transforms/GVN/rle-phi-translate.ll
deleted file mode 100644
index b5311ee..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/rle-phi-translate.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%cv = phi i32}
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%bv = phi i32}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-
-define i32 @g(i32* %b, i32* %c) nounwind {
-entry:
-	%g = alloca i32		; <i32*> [#uses=4]
-	%t1 = icmp eq i32* %b, null		; <i1> [#uses=1]
-	br i1 %t1, label %bb, label %bb1
-
-bb:		; preds = %entry
-	%t2 = load i32* %c, align 4		; <i32> [#uses=1]
-	%t3 = add i32 %t2, 1		; <i32> [#uses=1]
-	store i32 %t3, i32* %g, align 4
-	br label %bb2
-
-bb1:		; preds = %entry
-	%t5 = load i32* %b, align 4		; <i32> [#uses=1]
-	%t6 = add i32 %t5, 1		; <i32> [#uses=1]
-	store i32 %t6, i32* %g, align 4
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	%c_addr.0 = phi i32* [ %g, %bb1 ], [ %c, %bb ]		; <i32*> [#uses=1]
-	%b_addr.0 = phi i32* [ %b, %bb1 ], [ %g, %bb ]		; <i32*> [#uses=1]
-	%cv = load i32* %c_addr.0, align 4		; <i32> [#uses=1]
-	%bv = load i32* %b_addr.0, align 4		; <i32> [#uses=1]
-	%ret = add i32 %cv, %bv		; <i32> [#uses=1]
-	ret i32 %ret
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GVN/rle-semidominated.ll b/libclamav/c++/llvm/test/Transforms/GVN/rle-semidominated.ll
deleted file mode 100644
index 5c11b06..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVN/rle-semidominated.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD = phi i32 }
-
-define i32 @main(i32* %p) {
-block1:
-  %z = load i32* %p
-	br i1 true, label %block2, label %block3
-
-block2:
- br label %block4
-
-block3:
-  %b = bitcast i32 0 to i32
-  store i32 %b, i32* %p
-  br label %block4
-
-block4:
-  %DEAD = load i32* %p
-  ret i32 %DEAD
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-12-NoExit.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-12-NoExit.ll
deleted file mode 100644
index b93a956..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-12-NoExit.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define void @_Z4sortI3Lit16LessThan_defaultIS0_EEvPT_iT0_() {
-entry:
-	br label %cond_false
-
-cond_false:		; preds = %cond_false, %entry
-	br label %cond_false
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-12-PhiTranslate.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-12-PhiTranslate.ll
deleted file mode 100644
index 3a6ac67..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-12-PhiTranslate.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define void @strength_test5(i32* %data) {
-entry:
-	br i1 false, label %cond_next16.preheader, label %cond_true
-
-cond_true:		; preds = %entry
-	%tmp12 = icmp sgt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp12, label %return, label %cond_next16.preheader
-
-cond_next16.preheader:		; preds = %cond_true, %entry
-	%i.01.1.ph = phi i32 [ 1, %entry ], [ 1, %cond_true ]		; <i32> [#uses=1]
-	%i.01.1 = add i32 0, %i.01.1.ph		; <i32> [#uses=0]
-	%indvar.next = add i32 0, 1		; <i32> [#uses=0]
-	ret void
-
-return:		; preds = %cond_true
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-15-InvokeInst.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-15-InvokeInst.ll
deleted file mode 100644
index 86187b2..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-15-InvokeInst.ll
+++ /dev/null
@@ -1,70 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
- at .str1 = external constant [4 x i8]		; <[4 x i8]*> [#uses=1]
- at .str2 = external constant [5 x i8]		; <[5 x i8]*> [#uses=1]
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	br i1 false, label %cond_next, label %cond_true
-
-cond_true:		; preds = %entry
-	ret i32 0
-
-cond_next:		; preds = %entry
-	%tmp10 = invoke i16 @_ZN12token_stream4openEPKc( i8* null, i8* null ) signext 
-			to label %invcont unwind label %cleanup690		; <i16> [#uses=0]
-
-invcont:		; preds = %cond_next
-	%tmp15 = invoke i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @.str1, i32 0, i32 0) )
-			to label %invcont14 unwind label %cleanup685		; <i32> [#uses=0]
-
-invcont14:		; preds = %invcont
-	%tmp17 = invoke i8* @_ZN24lambda_expression_parser10expressionEPP11arglst_node( i8* null, i8** null )
-			to label %cond_true22 unwind label %cleanup685
-
-cond_true22:		; preds = %invcont14
-	%tmp35 = invoke i32 null( i8* null )
-			to label %cond_next56 unwind label %cleanup685		; <i32> [#uses=0]
-
-cond_next56:		; preds = %cond_true22
-	%tmp59 = invoke i32 (i8*, ...)* @printf( i8* getelementptr ([5 x i8]* @.str2, i32 0, i32 0) )
-			to label %invcont58 unwind label %cleanup685		; <i32> [#uses=0]
-
-invcont58:		; preds = %cond_next56
-	invoke void null( i8* null, i8* null, i32 0 )
-			to label %invcont72 unwind label %cleanup685
-
-invcont72:		; preds = %invcont58
-	%tmp143 = invoke i32 null( i8* null )
-			to label %invcont142 unwind label %cleanup685		; <i32> [#uses=0]
-
-invcont142:		; preds = %invcont72
-	br i1 false, label %cond_false407, label %cond_true150
-
-cond_true150:		; preds = %invcont142
-	ret i32 0
-
-cond_false407:		; preds = %invcont142
-	%tmp431 = invoke i8* null( i8* null, i8* null, i32 0, i32* null )
-			to label %bb432 unwind label %cleanup685
-
-bb432:		; preds = %bb432, %cond_false407
-	%rexp413.7 = phi i8* [ %tmp431, %cond_false407 ], [ %rexp413.7, %bb432 ]
-	%tmp434 = icmp eq i8* %rexp413.7, null		; <i1> [#uses=1]
-	br i1 %tmp434, label %bb432, label %cond_true437
-
-cond_true437:		; preds = %bb432
-	ret i32 0
-
-cleanup685:		; preds = %cond_false407, %invcont72, %invcont58, %cond_next56, %cond_true22, %invcont14, %invcont
-	ret i32 0
-
-cleanup690:		; preds = %cond_next
-	ret i32 0
-}
-
-declare i16 @_ZN12token_stream4openEPKc(i8*, i8*) signext 
-
-declare i32 @printf(i8*, ...)
-
-declare i8* @_ZN24lambda_expression_parser10expressionEPP11arglst_node(i8*, i8**)
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-15-Looping.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-15-Looping.ll
deleted file mode 100644
index 92d2288..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-15-Looping.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define fastcc void @compute_max_score_1() {
-entry:
-	%tmp7 = sub i32 0, 0		; <i32> [#uses=0]
-	br label %bb
-
-bb:		; preds = %bb212, %entry
-	%indvar29 = phi i32 [ 0, %entry ], [ %indvar.next30, %bb212 ]		; <i32> [#uses=2]
-	%j.01.0 = sub i32 %indvar29, 0		; <i32> [#uses=0]
-	br label %cond_next166
-
-cond_next166:		; preds = %cond_next166, %bb
-	br i1 false, label %bb212, label %cond_next166
-
-bb212:		; preds = %cond_next166
-	%indvar.next30 = add i32 %indvar29, 1		; <i32> [#uses=1]
-	br i1 false, label %return, label %bb
-
-return:		; preds = %bb212
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll
deleted file mode 100644
index 180105a..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define void @vorbis_lsp_to_curve() {
-entry:
-	br i1 false, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	br label %bb34
-
-bb34:		; preds = %bb34, %bb.nph
-	%p.1 = phi float [ 0x3FE6A09E60000000, %bb.nph ], [ %tmp48, %bb34 ]		; <float> [#uses=1]
-	%tmp44 = load float* null		; <float> [#uses=1]
-	%tmp46 = fsub float %tmp44, 0.000000e+00		; <float> [#uses=1]
-	%tmp48 = fmul float %tmp46, %p.1		; <float> [#uses=1]
-	br i1 false, label %bb57, label %bb34
-
-bb57:		; preds = %bb34
-	ret void
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-18-EraseNumbering.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-18-EraseNumbering.ll
deleted file mode 100644
index af51a03..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-06-18-EraseNumbering.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define i32 @TreeCCStreamFlush(i8* %stream) {
-entry:
-	br i1 false, label %bb55.preheader, label %cond_true
-
-cond_true:		; preds = %entry
-	ret i32 0
-
-bb55.preheader:		; preds = %entry
-	%tmp57 = icmp eq i8* null, null		; <i1> [#uses=0]
-	br i1 false, label %cond_next106, label %bb124
-
-cond_next106:		; preds = %bb55.preheader
-	%tmp109 = load i8** null
-	br i1 false, label %bb124, label %bb116
-
-bb116:		; preds = %cond_next106
-	ret i32 0
-
-bb124:		; preds = %cond_next106, %bb55.preheader
-	%buffer.4 = phi i8* [ null, %bb55.preheader ], [ %tmp109, %cond_next106 ]
-	%tmp131 = icmp eq i8* %buffer.4, null
-	%bothcond = or i1 %tmp131, false
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-03-PhiTranslateGEP.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-03-PhiTranslateGEP.ll
deleted file mode 100644
index 65d70d9..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-03-PhiTranslateGEP.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define i64 @foo({ i32, i32 }** %__v) {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%__x.066.0 = phi { i32, i32 }* [ null, %entry ], [ null, %bb ]
-	%tmp2.i.i63 = getelementptr { i32, i32 }* %__x.066.0, i32 0, i32 1
-	br i1 false, label %bb, label %cond_true
-
-cond_true:		; preds = %bb
-	ret i64 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-04-CleanSelect.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-04-CleanSelect.ll
deleted file mode 100644
index d72e2e1..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-04-CleanSelect.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define i32* @_ZN6Solver9propagateEv(i32* %this) {
-entry:
-	%tmp15.i48 = load i8* null		; <i8> [#uses=2]
-	%tmp64.i.i51 = sub i8 0, %tmp15.i48		; <i8> [#uses=1]
-	%tmp231.i52 = select i1 false, i8 %tmp15.i48, i8 %tmp64.i.i51		; <i8> [#uses=0]
-	ret i32* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-04-SelectInst.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-04-SelectInst.ll
deleted file mode 100644
index 944a700..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-04-SelectInst.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-
-define void @set_depth_values(i32 %level) {
-cond_true90:		; preds = %cond_next84
-	br i1 false, label %cond_true105, label %cond_true151
-
-cond_true105:		; preds = %cond_true90
-	%tmp132 = add i32 %level, -3		; <i32> [#uses=2]
-	%tmp133 = icmp sgt i32 %tmp132, 0		; <i1> [#uses=1]
-	%max134 = select i1 %tmp133, i32 %tmp132, i32 1		; <i32> [#uses=0]
-	br label %cond_true151
-
-cond_true151:		; preds = %cond_true140, %cond_true105
-	%tmp153 = add i32 %level, -3		; <i32> [#uses=2]
-	%tmp154 = icmp sgt i32 %tmp153, 0		; <i1> [#uses=1]
-	%max155 = select i1 %tmp154, i32 %tmp153, i32 1		; <i32> [#uses=0]
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-05-AvailabilityUpdating.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-05-AvailabilityUpdating.ll
deleted file mode 100644
index 5510935..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-05-AvailabilityUpdating.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep tmp114115.gvnpre
-
-	%struct.AV = type { %struct.XPVAV*, i32, i32 }
-	%struct.CLONE_PARAMS = type { %struct.AV*, i32, %struct.PerlInterpreter* }
-	%struct.HE = type { %struct.HE*, %struct.HEK*, %struct.SV* }
-	%struct.HEK = type { i32, i32, [1 x i8] }
-	%struct.HV = type { %struct.XPVHV*, i32, i32 }
-	%struct.MAGIC = type { %struct.MAGIC*, %struct.MGVTBL*, i16, i8, i8, %struct.SV*, i8*, i32 }
-	%struct.MGVTBL = type { i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*, %struct.SV*, i8*, i32)*, i32 (%struct.MAGIC*, %struct.CLONE_PARAMS*)* }
-	%struct.OP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8 }
-	%struct.PMOP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8, %struct.OP*, %struct.OP*, %struct.OP*, %struct.OP*, %struct.PMOP*, %struct.REGEXP*, i32, i32, i8, %struct.HV* }
-	%struct.PerlInterpreter = type { i8 }
-	%struct.REGEXP = type { i32*, i32*, %struct.regnode*, %struct.reg_substr_data*, i8*, %struct.reg_data*, i8*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, [1 x %struct.regnode] }
-	%struct.SV = type { i8*, i32, i32 }
-	%struct.XPVAV = type { i8*, i32, i32, i32, double, %struct.MAGIC*, %struct.HV*, %struct.SV**, %struct.SV*, i8 }
-	%struct.XPVHV = type { i8*, i32, i32, i32, double, %struct.MAGIC*, %struct.HV*, i32, %struct.HE*, %struct.PMOP*, i8* }
-	%struct.reg_data = type { i32, i8*, [1 x i8*] }
-	%struct.reg_substr_data = type { [3 x %struct.reg_substr_datum] }
-	%struct.reg_substr_datum = type { i32, i32, %struct.SV*, %struct.SV* }
-	%struct.regnode = type { i8, i8, i16 }
-
-define void @Perl_op_clear(%struct.OP* %o) {
-entry:
-	switch i32 0, label %bb106 [
-		 i32 13, label %bb106
-		 i32 31, label %clear_pmop
-		 i32 32, label %clear_pmop
-		 i32 33, label %bb101
-	]
-
-bb101:		; preds = %entry
-	%tmp102103 = bitcast %struct.OP* %o to %struct.PMOP*		; <%struct.PMOP*> [#uses=1]
-	%tmp104 = getelementptr %struct.PMOP* %tmp102103, i32 0, i32 10		; <%struct.OP**> [#uses=0]
-	br i1 false, label %cond_next174, label %cond_true122
-
-bb106:		; preds = %entry, %entry
-	%tmp107108 = bitcast %struct.OP* %o to %struct.PMOP*		; <%struct.PMOP*> [#uses=0]
-	br label %clear_pmop
-
-clear_pmop:		; preds = %bb106, %entry, %entry
-	%tmp114115 = bitcast %struct.OP* %o to %struct.PMOP*		; <%struct.PMOP*> [#uses=0]
-	br label %cond_true122
-
-cond_true122:		; preds = %clear_pmop, %bb101
-	br i1 false, label %cond_next174, label %cond_true129
-
-cond_true129:		; preds = %cond_true122
-	ret void
-
-cond_next174:		; preds = %cond_true122, %bb101
-	%tmp175176 = bitcast %struct.OP* %o to %struct.PMOP*		; <%struct.PMOP*> [#uses=1]
-	%tmp177 = getelementptr %struct.PMOP* %tmp175176, i32 0, i32 10		; <%struct.OP**> [#uses=0]
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-07-AnticOutUnique.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-07-AnticOutUnique.ll
deleted file mode 100644
index 2a7e49c..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/2007-07-07-AnticOutUnique.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
-	%"struct.ObjectArena<char>" = type { i32, i32, %"struct.ResizeArray<char*>", i8*, i8* }
-	%"struct.ResizeArray<char*>" = type { i32 (...)**, %"struct.ResizeArrayRaw<char*>"* }
-	%"struct.ResizeArrayRaw<char*>" = type { i8**, i8*, i32, i32, i32, float, i32 }
-
-define void @_ZN11ObjectArenaIcED1Ev(%"struct.ObjectArena<char>"* %this) {
-entry:
-	br label %cond_true21
-
-cond_true21:		; preds = %cond_true21, %entry
-	%tmp215.0 = phi %"struct.ResizeArray<char*>"* [ null, %entry ], [ null, %cond_true21 ]		; <%"struct.ResizeArray<char*>"*> [#uses=1]
-	%tmp2.i2 = getelementptr %"struct.ResizeArray<char*>"* %tmp215.0, i32 0, i32 1		; <%"struct.ResizeArrayRaw<char*>"**> [#uses=0]
-	br label %cond_true21
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/basic.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/basic.ll
deleted file mode 100644
index b746873..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/basic.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | not grep {%z3 =}
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | not grep {%z9 =}
-
-define i32 @main() {
-block1:
-	%z1 = bitcast i32 0 to i32		; <i32> [#uses=5]
-	br label %block2
-
-block2:		; preds = %block6, %block1
-	%z2 = phi i32 [ %z1, %block1 ], [ %z3, %block6 ]		; <i32> [#uses=3]
-	%z3 = add i32 %z2, 1		; <i32> [#uses=5]
-	br i1 false, label %block3, label %block7
-
-block3:		; preds = %block2
-	br i1 true, label %block4, label %block5
-
-block4:		; preds = %block3
-	%z4 = add i32 %z2, %z3		; <i32> [#uses=1]
-	%z5 = bitcast i32 %z4 to i32		; <i32> [#uses=1]
-	%z6 = add i32 %z1, %z5		; <i32> [#uses=0]
-	br label %block6
-
-block5:		; preds = %block3
-	%z7 = add i32 %z3, 1		; <i32> [#uses=1]
-	br label %block6
-
-block6:		; preds = %block5, %block4
-	%z8 = phi i32 [ %z1, %block4 ], [ %z7, %block5 ]		; <i32> [#uses=1]
-	%z9 = add i32 %z2, %z3		; <i32> [#uses=2]
-	%z10 = add i32 %z9, %z8		; <i32> [#uses=0]
-	%z11 = bitcast i32 12 to i32		; <i32> [#uses=1]
-	%z12 = add i32 %z9, %z11		; <i32> [#uses=1]
-	%z13 = add i32 %z12, %z3		; <i32> [#uses=0]
-	br label %block2
-
-block7:		; preds = %block2
-	ret i32 %z1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/cast.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/cast.ll
deleted file mode 100644
index 3536a14..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/cast.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
-
-define i32 @extract() {
-entry:		; preds = %cond_false, %entry
-	br i1 true, label %cond_true, label %cond_false
-
-cond_true:
-  br label %end
-
-cond_false:
-  %a = sext i16 0 to i32
-  br label %end
-
-end:
-  %b = sext i16 0 to i32
-  ret i32 %b
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/dg.exp b/libclamav/c++/llvm/test/Transforms/GVNPRE/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/extractelement.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/extractelement.ll
deleted file mode 100644
index 7d05c8f..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/extractelement.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
-
-define i32 @extract() {
-entry:		; preds = %cond_false, %entry
-  %foo = add <2 x i32> < i32 1, i32 1 >, < i32 1, i32 1 >
-	br i1 true, label %cond_true, label %cond_false
-
-cond_true:
-  br label %end
-
-cond_false:
-  %a = extractelement <2 x i32> %foo, i32 0
-  br label %end
-
-end:
-  %b = extractelement <2 x i32> %foo, i32 0
-  ret i32 %b
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/gep.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/gep.ll
deleted file mode 100644
index 34bc4c7..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/gep.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
-
-define i32 @extract({ i32 }* %P) {
-entry:		; preds = %cond_false, %entry
-	br i1 true, label %cond_true, label %cond_false
-
-cond_true:
-  br label %end
-
-cond_false:
-  %a = getelementptr { i32 }* %P, i32 0, i32 0
-  br label %end
-
-end:
-  %b = getelementptr { i32 }* %P, i32 0, i32 0
-  ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/insertelement.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/insertelement.ll
deleted file mode 100644
index caf8474..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/insertelement.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
-
-define i32 @extract() {
-entry:		; preds = %cond_false, %entry
-  %foo = add <2 x i32> < i32 1, i32 1 >, < i32 1, i32 1 >
-	br i1 true, label %cond_true, label %cond_false
-
-cond_true:
-  br label %end
-
-cond_false:
-  %a = insertelement <2 x i32> %foo, i32 0, i32 3
-  br label %end
-
-end:
-  %b = insertelement <2 x i32> %foo, i32 0, i32 3
-  ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/select.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/select.ll
deleted file mode 100644
index c73c857..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/select.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
-
-define i32 @extract() {
-entry:		; preds = %cond_false, %entry
-	br i1 true, label %cond_true, label %cond_false
-
-cond_true:
-  br label %end
-
-cond_false:
-  %a = select i1 true, i32 0, i32 1
-  br label %end
-
-end:
-  %b = select i1 true, i32 0, i32 1
-  ret i32 %b
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GVNPRE/shufflevector.ll b/libclamav/c++/llvm/test/Transforms/GVNPRE/shufflevector.ll
deleted file mode 100644
index 9fc3592..0000000
--- a/libclamav/c++/llvm/test/Transforms/GVNPRE/shufflevector.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | grep b.gvnpre
-
-define i32 @extract() {
-entry:		; preds = %cond_false, %entry
-  %foo = add <2 x i32> < i32 1, i32 1 >, < i32 1, i32 1 >
-	br i1 true, label %cond_true, label %cond_false
-
-cond_true:
-  br label %end
-
-cond_false:
-  %a = shufflevector <2 x i32> %foo, <2 x i32> undef,  <2 x i32> < i32 0, i32 1 >
-  br label %end
-
-end:
-  %b = shufflevector <2 x i32> %foo, <2 x i32> undef,  <2 x i32> < i32 0, i32 1 >
-  ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll
deleted file mode 100644
index a79f673..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -globaldce
-;
-define internal void @func() {
-        ret void
-}
-
-define void @main() {
-        %X = bitcast void ()* @func to i32*             ; <i32*> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll
deleted file mode 100644
index 2a39846..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -globaldce
-;
-
- at X = global void ()* @func              ; <void ()**> [#uses=0]
-
-; Not dead, can be reachable via X
-define internal void @func() {
-        ret void
-}
-
-define void @main() {
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll
deleted file mode 100644
index dac81a3..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; Make sure that functions are removed successfully if they are referred to by
-; a global that is dead.  Make sure any globals they refer to die as well.
-
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep foo
-
-;; Unused, kills %foo
- at b = internal global i32 ()* @foo               ; <i32 ()**> [#uses=0]
-
-;; Should die when function %foo is killed
- at foo.upgrd.1 = internal global i32 7            ; <i32*> [#uses=1]
-
- ;; dies when %b dies.
-define internal i32 @foo() {
-        %ret = load i32* @foo.upgrd.1           ; <i32> [#uses=1]
-        ret i32 %ret
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll
deleted file mode 100644
index d07f014..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; This testcase tests that a worklist is being used, and that globals can be 
-; removed if they are the subject of a constexpr and ConstantPointerRef
-
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep global
-
- at t0 = internal global [4 x i8] c"foo\00"                ; <[4 x i8]*> [#uses=1]
- at t1 = internal global [4 x i8] c"bar\00"                ; <[4 x i8]*> [#uses=1]
- at s1 = internal global [1 x i8*] [ i8* getelementptr ([4 x i8]* @t0, i32 0, i32 0) ]             ; <[1 x i8*]*> [#uses=0]
- at s2 = internal global [1 x i8*] [ i8* getelementptr ([4 x i8]* @t1, i64 0, i64 0) ]             ; <[1 x i8*]*> [#uses=0]
- at b = internal global i32* @a            ; <i32**> [#uses=0]
- at a = internal global i32 7              ; <i32*> [#uses=1]
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll
deleted file mode 100644
index b49bfcc..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -globaldce
-
-;; Should die when function %foo is killed
- at foo.upgrd.1 = internal global i32 7            ; <i32*> [#uses=3]
- at bar = internal global [2 x { i32*, i32 }] [ { i32*, i32 } { i32* @foo.upgrd.1, i32 7 }, { i32*, i32 } { i32* @foo.upgrd.1, i32 1 } ]            ; <[2 x { i32*, i32 }]*> [#uses=0]
-
-define internal i32 @foo() {
-        %ret = load i32* @foo.upgrd.1           ; <i32> [#uses=1]
-        ret i32 %ret
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll
deleted file mode 100644
index c6c51df..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; distilled from 255.vortex
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep testfunc
-
-declare i1 ()* @getfunc()
-
-define internal i1 @testfunc() {
-        %F = call i1 ()* ()* @getfunc( )                ; <i1 ()*> [#uses=1]
-        %c = icmp eq i1 ()* %F, @testfunc               ; <i1> [#uses=1]
-        ret i1 %c
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll
deleted file mode 100644
index 12d4736..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; Weak variables should be preserved by global DCE!
-
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | grep @A
-
-
- at A = weak global i32 54
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll
deleted file mode 100644
index 264b81d..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep @D
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | grep @L | count 3
-
- at A = global i32 0
- at D = alias internal i32* @A
- at L1 = alias i32* @A
- at L2 = alias internal i32* @L1
- at L3 = alias i32* @L2
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll
deleted file mode 100644
index 8c15c51..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: llvm-as < %s | opt -globaldce
-
- at A = alias internal void ()* @F
-define internal void @F() { ret void }
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/basicvariabletest.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/basicvariabletest.ll
deleted file mode 100644
index c883e58..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/basicvariabletest.ll
+++ /dev/null
@@ -1,5 +0,0 @@
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep global
-
- at X = external global i32
- at Y = internal global i32 7
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/dg.exp b/libclamav/c++/llvm/test/Transforms/GlobalDCE/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalDCE/externally_available.ll b/libclamav/c++/llvm/test/Transforms/GlobalDCE/externally_available.ll
deleted file mode 100644
index ccdf7e1..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalDCE/externally_available.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -globaldce | llvm-dis | not grep test_
-
-; test_function should not be emitted to the .s file.
-define available_externally i32 @test_function() {
-  ret i32 4
-}
-
-; test_global should not be emitted to the .s file.
- at test_global = available_externally global i32 4
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
deleted file mode 100644
index 5f784e0..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt
-
- at V = global float 1.200000e+01          ; <float*> [#uses=1]
- at G = internal global i32* null          ; <i32**> [#uses=2]
-
-define i32 @user() {
-        %P = load i32** @G              ; <i32*> [#uses=1]
-        %Q = load i32* %P               ; <i32> [#uses=1]
-        ret i32 %Q
-}
-
-define void @setter() {
-        %Vi = bitcast float* @V to i32*         ; <i32*> [#uses=1]
-        store i32* %Vi, i32** @G
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
deleted file mode 100644
index 80f8243..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-; PR579
-
- at g_40507551 = internal global i16 31038         ; <i16*> [#uses=1]
-
-define void @main() {
-        %tmp.4.i.1 = load i8* getelementptr (i8* bitcast (i16* @g_40507551 to i8*), i32 1)              ; <i8> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
deleted file mode 100644
index 5eac431..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-        %RPyString = type { i32, %arraytype.Char }
-        %arraytype.Char = type { i32, [0 x i8] }
-        %arraytype.Signed = type { i32, [0 x i32] }
-        %functiontype.1 = type %RPyString* (i32)
-        %structtype.test = type { i32, %arraytype.Signed }
- at structinstance.test = internal global { i32, { i32, [2 x i32] } } { i32 41, { i32, [2 x i32] } { i32 2, [2 x i32] [ i32 100, i32 101 ] } }              ; <{ i32, { i32, [2 x i32] } }*> [#uses=1]
-
-define fastcc void @pypy_array_constant() {
-block0:
-        %tmp.9 = getelementptr %structtype.test* bitcast ({ i32, { i32, [2 x i32] } }* @structinstance.test to %structtype.test*), i32 0, i32 0          ; <i32*> [#uses=0]
-        ret void
-}
-
-define fastcc void @new.varsizestruct.rpy_string() {
-        unreachable
-}
-
-define void @__entrypoint__pypy_array_constant() {
-        call fastcc void @pypy_array_constant( )
-        ret void
-}
-
-define void @__entrypoint__raised_LLVMException() {
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
deleted file mode 100644
index 5559ef1..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
+++ /dev/null
@@ -1,135 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-; PR820
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct..0FileDescriptor = type { i32 }
-	%"struct.FlagDescription<int32>" = type { i8*, i32*, i1, i1, i32, i8* }
-	%"struct.FlagRegisterer<bool>" = type { i8 }
-	%struct.MutexLock = type { %struct..0FileDescriptor* }
-	%"struct.std::DisabledRangeMap" = type { %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" }
-	%"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >" = type { %"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" }
-	%"struct.std::_Rb_tree<const char*,std::pair<const char* const, FlagDescription<bool> >,std::_Select1st<std::pair<const char* const, FlagDescription<bool> > >,StringCmp,std::allocator<std::pair<const char* const, FlagDescription<bool> > > >::_Rb_tree_impl<StringCmp,false>" = type { %"struct.FlagRegisterer<bool>", %"struct.std::_Rb_tree_node_base", i32 }
-	%"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { %"struct.std::_Rb_tree_node_base"* }
-	%"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* }
-	%"struct.std::_Vector_base<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" }
-	%"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* }
-	%"struct.std::vector<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >" }
- at registry_lock = external global %struct..0FileDescriptor		; <%struct..0FileDescriptor*> [#uses=0]
- at _ZN61FLAG__foo_int32_44FLAGS_E = external global %"struct.FlagRegisterer<bool>"		; <%"struct.FlagRegisterer<bool>"*> [#uses=0]
- at llvm.global_ctors = appending global [20 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN7ScannerC2Ev }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z11StripStringPSsPKcc }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_ }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN8Hasher325ResetEj }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z25ACLRv }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_eventbuf }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__checker_bcad_variable } ]		; <[20 x { i32, void ()* }]*> [#uses=0]
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_10FLAGS_E()
-
-declare void @_GLOBAL__I__ZN60FLAG__foo_bool_19FLAGS_E()
-
-declare void @_GLOBAL__I__ZNK5Bzh4Enum13is_contiguousEv()
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_17FLAGS_E()
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int32_21FLAGS_E()
-
-define void @_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE() {
-entry:
-	call void @_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E( )
-	ret void
-}
-
-define void @_Z12RegisterFlagIiEvPKcRK15FlagDescriptionIT_E() {
-entry:
-	call void @_ZN9MutexLockC1EP5Mutex( )
-	ret void
-}
-
-declare void @_GLOBAL__I__ZN7ScannerC2Ev()
-
-declare void @_GLOBAL__I__Z11StripStringPSsPKcc()
-
-define void @_ZNSt6vectorIiSaIiEEC1ERKS0_() {
-entry:
-	unreachable
-}
-
-declare void @_GLOBAL__I__ZNK9__gnu_cxx4hashI11StringPieceEclERKS1_()
-
-declare void @_GLOBAL__I__ZN8Hasher325ResetEj()
-
-declare void @_GLOBAL__I__Z25ACLRv()
-
-define void @_ZN9MutexLockC1EP5Mutex() {
-entry:
-	call void @_ZN5Mutex4LockEv( )
-	ret void
-}
-
-define void @_ZN5Mutex4LockEv() {
-entry:
-	call void @_Z22Acquire_CASPViii( )
-	ret void
-}
-
-define void @_ZNSt3mapIPKc15FlagDescriptionIiE9StringCmpSaISt4pairIKS1_S3_EEE3endEv(%"struct.std::_Rb_tree_const_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >"* sret  %agg.result) {
-entry:
-	unreachable
-}
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int64_25FLAGS_E()
-
-define void @_Z14CASPViii() {
-entry:
-	%tmp3 = call i32 asm sideeffect "lock; cmpxchg $1,$2", "={ax},q,m,0,~{dirflag},~{fpsr},~{flags},~{memory}"( i32 0, i32* null, i32 0 )		; <i32> [#uses=0]
-	unreachable
-}
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int32_7FLAGS_E()
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_18FLAGS_E()
-
-define void @_Z22Acquire_CASPViii() {
-entry:
-	call void @_Z14CASPViii( )
-	unreachable
-}
-
-declare void @_GLOBAL__I__ZN61FLAG__foo_int32_25FLAGS_E()
-
-declare void @_GLOBAL__I_eventbuf()
-
-define void @_GLOBAL__I__ZN61FLAG__foo_int32_26FLAGS_E() {
-entry:
-	call void @_Z41__static_initialization_and_destruction_0ii1662( i32 1, i32 65535 )
-	ret void
-}
-
-define void @_Z41__static_initialization_and_destruction_0ii1662(i32 %__initialize_p, i32 %__priority) {
-entry:
-	%__initialize_p_addr = alloca i32		; <i32*> [#uses=2]
-	%__priority_addr = alloca i32		; <i32*> [#uses=2]
-	store i32 %__initialize_p, i32* %__initialize_p_addr
-	store i32 %__priority, i32* %__priority_addr
-	%tmp = load i32* %__priority_addr		; <i32> [#uses=1]
-	%tmp.upgrd.1 = icmp eq i32 %tmp, 65535		; <i1> [#uses=1]
-	br i1 %tmp.upgrd.1, label %cond_true, label %cond_next14
-
-cond_true:		; preds = %entry
-	%tmp8 = load i32* %__initialize_p_addr		; <i32> [#uses=1]
-	%tmp9 = icmp eq i32 %tmp8, 1		; <i1> [#uses=1]
-	br i1 %tmp9, label %cond_true10, label %cond_next14
-
-cond_true10:		; preds = %cond_true
-	call void @_ZN14FlagRegistererIiEC1EPKcRK15FlagDescriptionIiE( )
-	ret void
-
-cond_next14:		; preds = %cond_true, %entry
-	ret void
-}
-
-declare void @_GLOBAL__I__ZN62FLAG__foo_string_16FLAGS_E()
-
-define void @_ZN9__gnu_cxx13new_allocatorIPNS_15_Hashtable_nodeIjEEEC2Ev() {
-entry:
-	unreachable
-}
-
-declare void @_GLOBAL__I__ZN17InitializerC2EPKcS1_PFvvE()
-
-declare void @_GLOBAL__I__checker_bcad_variable()
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
deleted file mode 100644
index 39be6c4..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-
-        %struct._list = type { i32*, %struct._list* }
-        %struct._play = type { i32, i32*, %struct._list*, %struct._play* }
- at nrow = internal global i32 0           ; <i32*> [#uses=2]
-
-define void @make_play() {
-entry:
-        br label %cond_true16.i
-
-cond_true16.i:          ; preds = %cond_true16.i, %entry
-        %low.0.in.i.0 = phi i32* [ @nrow, %entry ], [ null, %cond_true16.i ]            ; <i32*> [#uses=1]
-        %low.0.i = load i32* %low.0.in.i.0              ; <i32> [#uses=0]
-        br label %cond_true16.i
-}
-
-define void @make_wanted() {
-entry:
-        unreachable
-}
-
-define void @get_good_move() {
-entry:
-        ret void
-}
-
-define void @main() {
-entry:
-        store i32 8, i32* @nrow
-        tail call void @make_play( )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
deleted file mode 100644
index 1991d90..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32"
-target triple = "thumb-apple-darwin8"
- at replacementUnichar = internal global i16 -3		; <i16*> [#uses=2]
-@"L_OBJC_IMAGE_INFO" = internal global [2 x i32] zeroinitializer		; <[2 x i32]*> [#uses=1]
- at llvm.used = appending global [1 x i8*] [ i8* bitcast ([2 x i32]* @"L_OBJC_IMAGE_INFO" to i8*) ]		; <[1 x i8*]*> [#uses=0]
-
-define i16 @__NSCharToUnicharCFWrapper(i8 zeroext  %ch) zeroext  {
-entry:
-	%iftmp.0.0.in.in = select i1 false, i16* @replacementUnichar, i16* null		; <i16*> [#uses=1]
-	%iftmp.0.0.in = load i16* %iftmp.0.0.in.in		; <i16> [#uses=1]
-	ret i16 %iftmp.0.0.in
-}
-
-define void @__NSASCIICharToUnichar() {
-entry:
-	ret void
-}
-
-define void @_NSDefaultCStringEncoding() {
-entry:
-	call void @__NSSetCStringCharToUnichar( )
-	br i1 false, label %cond_true6, label %cond_next8
-
-cond_true6:		; preds = %entry
-	store i16 -2, i16* @replacementUnichar
-	ret void
-
-cond_next8:		; preds = %entry
-	ret void
-}
-
-declare void @__NSSetCStringCharToUnichar()
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
deleted file mode 100644
index 22fee77..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
+++ /dev/null
@@ -1,74 +0,0 @@
-; RUN: llvm-as < %s | opt  -globalopt -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-apple-darwin8"
-        %struct.SFLMutableListItem = type { i16 }
-        %struct.__CFDictionary = type opaque
-        %struct.__CFString = type opaque
-        %struct.__builtin_CFString = type { i32*, i32, i8*, i32 }
- at _ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey = internal global %struct.__CFString* null             ; <%struct.__CFString**> [#uses=2]
- at _ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey = internal global %struct.__CFString* null               ; <%struct.__CFString**> [#uses=7]
-internal constant %struct.__builtin_CFString {
-    i32* getelementptr ([0 x i32]* @__CFConstantStringClassReference, i32 0, i32 0), 
-    i32 1992, 
-    i8* getelementptr ([14 x i8]* @.str, i32 0, i32 0), 
-    i32 13 }, section "__DATA,__cfstring"               ; <%struct.__builtin_CFString*>:0 [#uses=1]
- at __CFConstantStringClassReference = external global [0 x i32]           ; <[0 x i32]*> [#uses=1]
- at .str = internal constant [14 x i8] c"AlwaysVisible\00"         ; <[14 x i8]*> [#uses=1]
- at _ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey = internal global %struct.__CFString* null         ; <%struct.__CFString**> [#uses=2]
-
-define %struct.__CFString* @_Z19SFLGetVisibilityKeyv() {
-entry:
-        %tmp1 = load %struct.__CFString** @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey              ; <%struct.__CFString*> [#uses=1]
-        ret %struct.__CFString* %tmp1
-}
-
-define %struct.__CFString* @_Z22SFLGetAlwaysVisibleKeyv() {
-entry:
-        %tmp1 = load %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey                ; <%struct.__CFString*> [#uses=1]
-        %tmp2 = icmp eq %struct.__CFString* %tmp1, null         ; <i1> [#uses=1]
-        br i1 %tmp2, label %cond_true, label %cond_next
-
-cond_true:              ; preds = %entry
-        store %struct.__CFString* bitcast (%struct.__builtin_CFString* @0 to %struct.__CFString*), %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey
-        br label %cond_next
-
-cond_next:              ; preds = %entry, %cond_true
-        %tmp4 = load %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey                ; <%struct.__CFString*> [#uses=1]
-        ret %struct.__CFString* %tmp4
-}
-
-define %struct.__CFString* @_Z21SFLGetNeverVisibleKeyv() {
-entry:
-        %tmp1 = load %struct.__CFString** @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey          ; <%struct.__CFString*> [#uses=1]
-        ret %struct.__CFString* %tmp1
-}
-
-define %struct.__CFDictionary* @_ZN18SFLMutableListItem18GetPrefsDictionaryEv(%struct.SFLMutableListItem* %this) {
-entry:
-        %tmp4 = getelementptr %struct.SFLMutableListItem* %this, i32 0, i32 0  ; <i16*> [#uses=1]
-        %tmp5 = load i16* %tmp4         ; <i16> [#uses=1]
-        %tmp6 = icmp eq i16 %tmp5, 0            ; <i1> [#uses=1]
-        br i1 %tmp6, label %cond_next22, label %cond_true
-
-cond_true:              ; preds = %entry
-        %tmp9 = load %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey                ; <%struct.__CFString*> [#uses=1]
-        %tmp10 = icmp eq %struct.__CFString* %tmp9, null                ; <i1> [#uses=1]
-        br i1 %tmp10, label %cond_true13, label %cond_next22
-
-cond_true13:            ; preds = %cond_true
-        store %struct.__CFString* bitcast (%struct.__builtin_CFString* @0 to %struct.__CFString*), %struct.__CFString** @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey
-        br label %cond_next22
-
-cond_next22:            ; preds = %entry, %cond_true13, %cond_true
-        %iftmp.1.0.in = phi %struct.__CFString** [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true ], [ @_ZZ22SFLGetAlwaysVisibleKeyvE22_kSFLLAlwaysVisibleKey, %cond_true13 ], [ @_ZZ21SFLGetNeverVisibleKeyvE21_kSFLLNeverVisibleKey, %entry ]             ; <%struct.__CFString**> [#uses=1]
-        %iftmp.1.0 = load %struct.__CFString** %iftmp.1.0.in            ; <%struct.__CFString*> [#uses=1]
-        %tmp24 = load %struct.__CFString** @_ZZ19SFLGetVisibilityKeyvE19_kSFLLVisibilityKey             ; <%struct.__CFString*> [#uses=1]
-        %tmp2728 = bitcast %struct.__CFString* %tmp24 to i8*            ; <i8*> [#uses=1]
-        %tmp2930 = bitcast %struct.__CFString* %iftmp.1.0 to i8*               ; <i8*> [#uses=1]
-        call void @_Z20CFDictionaryAddValuePKvS0_( i8* %tmp2728, i8* %tmp2930 )
-        ret %struct.__CFDictionary* undef
-}
-
-declare void @_Z20CFDictionaryAddValuePKvS0_(i8*, i8*)
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
deleted file mode 100644
index 7394f04..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-; PR1491
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-	%"struct.__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int, int> > >" = type <{ i8 }>
-	%"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >" = type { %"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >::_Rb_tree_impl<std::less<int>,false>" }
-	%"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >::_Rb_tree_impl<std::less<int>,false>" = type { %"struct.__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int, int> > >", %"struct.std::_Rb_tree_node_base", i32 }
-	%"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* }
-	%"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >" = type { %"struct.std::_Rb_tree<int,std::pair<const int, int>,std::_Select1st<std::pair<const int, int> >,std::less<int>,std::allocator<std::pair<const int, int> > >" }
- at someMap = global %"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >" zeroinitializer		; <%"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >"*> [#uses=1]
- at llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_someMap } ]		; <[1 x { i32, void ()* }]*> [#uses=0]
- at llvm.global_dtors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__D_someMap } ]		; <[1 x { i32, void ()* }]*> [#uses=0]
-
-define void @_GLOBAL__I_someMap() {
-entry:
-	call void @_Z41__static_initialization_and_destruction_0ii( i32 1, i32 65535 )
-	ret void
-}
-
-declare void @_GLOBAL__D_someMap()
-
-define void @_Z41__static_initialization_and_destruction_0ii(i32 %__initialize_p, i32 %__priority) {
-entry:
-	%tmp1 = icmp eq i32 %__priority, 65535		; <i1> [#uses=1]
-	%tmp4 = icmp eq i32 %__initialize_p, 1		; <i1> [#uses=1]
-	%tmp7 = and i1 %tmp1, %tmp4		; <i1> [#uses=1]
-	br i1 %tmp7, label %cond_true, label %cond_next
-
-cond_true:		; preds = %entry
-	store i8 0, i8* getelementptr (%"struct.std::map<int,int,std::less<int>,std::allocator<std::pair<const int, int> > >"* @someMap, i32 0, i32 0, i32 0, i32 0, i32 0)
-	ret void
-
-cond_next:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
deleted file mode 100644
index 0d7d036..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -disable-output
-target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
-target triple = "powerpc-apple-darwin8"
-        %struct.empty0 = type {  }
-        %struct.es = type { %struct.empty0 }
-        %struct.es1 = type { %struct.empty0 }
- at aaui1 = internal global [6 x [2 x i32]] [ [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ], [2 x i32] [ i32 1, i32 1 ] ]              ; <[6 x [2 x i32]]*> [#uses=1]
- at aaui0 = internal global [0 x [2 x i32]] zeroinitializer                ; <[0 x [2 x i32]]*> [#uses=1]
-
-define i8 @func() {
-entry:
-        %tmp10 = getelementptr [2 x i32]* getelementptr ([6 x [2 x i32]]* @aaui1, i32 0, i32 0), i32 5, i32 1           ; <i32*> [#uses=1]
-        %tmp11 = load i32* %tmp10, align 4              ; <i32> [#uses=1]
-        %tmp12 = call i32 (...)* @func3( i32* null, i32 0, i32 %tmp11 )         ; <i32> [#uses=0]
-        ret i8 undef
-}
-
-declare i32 @func3(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
deleted file mode 100644
index 3d8c77d..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis
-; PR1896
-
- at indirect1 = internal global void (i32)* null		; <void (i32)**> [#uses=2]
-
-declare void @indirectmarked(i32)
-
-define i32 @main() {
-entry:
-	br i1 false, label %cond_next20.i, label %cond_true.i9
-
-cond_true.i9:		; preds = %entry
-	ret i32 0
-
-cond_next20.i:		; preds = %entry
-	store void (i32)* @indirectmarked, void (i32)** @indirect1, align 4
-	br i1 false, label %cond_next21.i.i23.i, label %stack_restore
-
-stack_restore:		; preds = %cond_next20.i
-	ret i32 0
-
-cond_next21.i.i23.i:		; preds = %cond_next20.i
-	%tmp6.i4.i = load i32* bitcast (void (i32)** @indirect1 to i32*), align 4		; <i32> [#uses=0]
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
deleted file mode 100644
index aace346..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {16 x .31 x double.. zeroinitializer}
-
-; The 'X' indices could be larger than 31.  Do not SROA the outer indices of this array.
- at mm = internal global [16 x [31 x double]] zeroinitializer, align 32
-
-define void @test(i32 %X) {
-	%P = getelementptr [16 x [31 x double]]* @mm, i32 0, i32 0, i32 %X
-	store double 1.0, double* %P
-	ret void
-}
-
-define double @get(i32 %X) {
-	%P = getelementptr [16 x [31 x double]]* @mm, i32 0, i32 0, i32 %X
-	%V = load double* %P
-	ret double %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
deleted file mode 100644
index 779e7fb..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {volatile load}
- at t0.1441 = internal global double 0x3FD5555555555555, align 8		; <double*> [#uses=1]
-
-define double @foo() nounwind  {
-entry:
-	%tmp1 = volatile load double* @t0.1441, align 8		; <double> [#uses=2]
-	%tmp4 = fmul double %tmp1, %tmp1		; <double> [#uses=1]
-	ret double %tmp4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-02-16-NestAttr.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-02-16-NestAttr.ll
deleted file mode 100644
index 59996c5..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-02-16-NestAttr.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep { nest } | count 1
-	%struct.FRAME.nest = type { i32, i32 (i32)* }
-	%struct.__builtin_trampoline = type { [10 x i8] }
- at .str = internal constant [7 x i8] c"%d %d\0A\00"		; <[7 x i8]*> [#uses=1]
-
-define i32 @process(i32 (i32)* %func) nounwind  {
-entry:
-	%tmp2 = tail call i32 %func( i32 1 ) nounwind 		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
-define internal fastcc i32 @g.1478(%struct.FRAME.nest* nest  %CHAIN.1, i32 %m) nounwind  {
-entry:
-	%tmp3 = getelementptr %struct.FRAME.nest* %CHAIN.1, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp4 = load i32* %tmp3, align 4		; <i32> [#uses=1]
-	%tmp7 = icmp eq i32 %tmp4, %m		; <i1> [#uses=1]
-	%tmp78 = zext i1 %tmp7 to i32		; <i32> [#uses=1]
-	ret i32 %tmp78
-}
-
-define internal i32 @f.1481(%struct.FRAME.nest* nest  %CHAIN.2, i32 %m) nounwind  {
-entry:
-	%tmp4 = tail call fastcc i32 @g.1478( %struct.FRAME.nest* nest  %CHAIN.2, i32 %m ) nounwind 		; <i32> [#uses=1]
-	%tmp6 = getelementptr %struct.FRAME.nest* %CHAIN.2, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp7 = load i32* %tmp6, align 4		; <i32> [#uses=1]
-	%tmp9 = icmp eq i32 %tmp4, %tmp7		; <i1> [#uses=1]
-	%tmp910 = zext i1 %tmp9 to i32		; <i32> [#uses=1]
-	ret i32 %tmp910
-}
-
-define i32 @nest(i32 %n) nounwind  {
-entry:
-	%TRAMP.316 = alloca [10 x i8]		; <[10 x i8]*> [#uses=1]
-	%FRAME.0 = alloca %struct.FRAME.nest		; <%struct.FRAME.nest*> [#uses=3]
-	%TRAMP.316.sub = getelementptr [10 x i8]* %TRAMP.316, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp3 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %n, i32* %tmp3, align 8
-	%FRAME.06 = bitcast %struct.FRAME.nest* %FRAME.0 to i8*		; <i8*> [#uses=1]
-	%tramp = call i8* @llvm.init.trampoline( i8* %TRAMP.316.sub, i8* bitcast (i32 (%struct.FRAME.nest*, i32)* @f.1481 to i8*), i8* %FRAME.06 )		; <i8*> [#uses=1]
-	%tmp7 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 1		; <i32 (i32)**> [#uses=1]
-	%tmp89 = bitcast i8* %tramp to i32 (i32)*		; <i32 (i32)*> [#uses=2]
-	store i32 (i32)* %tmp89, i32 (i32)** %tmp7, align 4
-	%tmp13 = call i32 @process( i32 (i32)* %tmp89 ) nounwind 		; <i32> [#uses=1]
-	ret i32 %tmp13
-}
-
-declare i8* @llvm.init.trampoline(i8*, i8*, i8*) nounwind 
-
-define i32 @main() nounwind  {
-entry:
-	%tmp = tail call i32 @nest( i32 2 ) nounwind 		; <i32> [#uses=1]
-	%tmp1 = tail call i32 @nest( i32 1 ) nounwind 		; <i32> [#uses=1]
-	%tmp3 = tail call i32 (i8*, ...)* @printf( i8* noalias  getelementptr ([7 x i8]* @.str, i32 0, i32 0), i32 %tmp1, i32 %tmp ) nounwind 		; <i32> [#uses=0]
-	ret i32 undef
-}
-
-declare i32 @printf(i8*, ...) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
deleted file mode 100644
index 8a0b5b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; Verify that when @G is SROA'd that the new globals have correct 
-; alignments.  Elements 0 and 2 must be 16-byte aligned, and element 
-; 1 must be at least 8 byte aligned (but could be more). 
-
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@G.0 = internal global .*align 16}
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@G.1 = internal global .*align 8}
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@G.2 = internal global .*align 16}
-; rdar://5891920
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin8"
-
-%T = type { double, double, double }
-
- at G = internal global %T zeroinitializer, align 16
-
-
-define void @test() {
-  store double 1.0, double* getelementptr (%T* @G, i32 0, i32 0), align 16
-  store double 2.0, double* getelementptr (%T* @G, i32 0, i32 1), align 8
-  store double 3.0, double* getelementptr (%T* @G, i32 0, i32 2), align 16
-  ret void
-}
-
-define double @test2() {
-  %V1 = load double* getelementptr (%T* @G, i32 0, i32 0), align 16
-  %V2 = load double* getelementptr (%T* @G, i32 0, i32 1), align 8
-  %V3 = load double* getelementptr (%T* @G, i32 0, i32 2), align 16
-  %R = fadd double %V1, %V2
-  %R2 = fadd double %R, %V3
-  ret double %R2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
deleted file mode 100644
index 735a84d..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; This test lets globalopt split the global struct and array into different
-; values. This used to crash, because globalopt forgot to put the new var in the
-; same address space as the old one.
-
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis > %t
-; Check that the new global values still have their address space
-; RUN: cat %t | grep global.*addrspace
-
- at struct = internal addrspace(1) global { i32, i32 } zeroinitializer
- at array = internal addrspace(1) global [ 2 x i32 ] zeroinitializer 
-
-define i32 @foo() {
-  %A = load i32 addrspace(1) * getelementptr ({ i32, i32 } addrspace(1) * @struct, i32 0, i32 0)
-  %B = load i32 addrspace(1) * getelementptr ([ 2 x i32 ] addrspace(1) * @array, i32 0, i32 0)
-  ; Use the loaded values, so they won't get removed completely
-  %R = add i32 %A, %B
-  ret i32 %R
-}
-
-; We put stores in a different function, so that the global variables won't get
-; optimized away completely.
-define void @bar(i32 %R) {
-  store i32 %R, i32 addrspace(1) * getelementptr ([ 2 x i32 ] addrspace(1) * @array, i32 0, i32 0)
-  store i32 %R, i32 addrspace(1) * getelementptr ({ i32, i32 } addrspace(1) * @struct, i32 0, i32 0)
-  ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
deleted file mode 100644
index cdc2771..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-	%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null		; <%struct.foo**> [#uses=2]
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
-	%tmp = malloc [1000000 x %struct.foo]		; <[1000000 x %struct.foo]*> [#uses=1]
-	%.sub = getelementptr [1000000 x %struct.foo]* %tmp, i32 0, i32 0		; <%struct.foo*> [#uses=1]
-	store %struct.foo* %.sub, %struct.foo** @X, align 4
-	ret void
-}
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
-	%tmpLD1 = load %struct.foo** @X, align 4		; <%struct.foo*> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb1, %bb1.thread
-	%tmp = phi %struct.foo* [ %tmpLD1, %bb1.thread ], [ %tmpLD1, %bb1 ]		; <%struct.foo*> [#uses=1]
-	%0 = getelementptr %struct.foo* %tmp, i32 1		; <%struct.foo*> [#uses=0]
-	br label %bb1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
deleted file mode 100644
index f284840..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-	%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null		; <%struct.foo**> [#uses=2]
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
-	%tmp = malloc [1000000 x %struct.foo]		; <[1000000 x %struct.foo]*> [#uses=1]
-	%.sub = getelementptr [1000000 x %struct.foo]* %tmp, i32 0, i32 0		; <%struct.foo*> [#uses=1]
-	store %struct.foo* %.sub, %struct.foo** @X, align 4
-	ret void
-}
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
-	%tmpLD1 = load %struct.foo** @X, align 4		; <%struct.foo*> [#uses=3]
-	store %struct.foo* %tmpLD1, %struct.foo** null
-	br label %bb1
-
-bb1:		; preds = %bb1, %bb1.thread
-	%tmp = phi %struct.foo* [ %tmpLD1, %bb1.thread ], [ %tmpLD1, %bb1 ]		; <%struct.foo*> [#uses=0]
-	br i1 false, label %bb2, label %bb1
-
-bb2:		; preds = %bb1
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
deleted file mode 100644
index 03ec3b6..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {phi.*@head}
-; PR3321
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-	%struct.node = type { %struct.node*, i32 }
- at head = internal global %struct.node* null		; <%struct.node**> [#uses=2]
- at node = internal global %struct.node { %struct.node* null, i32 42 }, align 16		; <%struct.node*> [#uses=1]
-
-define i32 @f() nounwind {
-entry:
-	store %struct.node* @node, %struct.node** @head, align 8
-	br label %bb1
-
-bb:		; preds = %bb1
-	%0 = getelementptr %struct.node* %t.0, i64 0, i32 1		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	%2 = getelementptr %struct.node* %t.0, i64 0, i32 0		; <%struct.node**> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%value.0 = phi i32 [ undef, %entry ], [ %1, %bb ]		; <i32> [#uses=1]
-	%t.0.in = phi %struct.node** [ @head, %entry ], [ %2, %bb ]		; <%struct.node**> [#uses=1]
-	%t.0 = load %struct.node** %t.0.in		; <%struct.node*> [#uses=3]
-	%3 = icmp eq %struct.node* %t.0, null		; <i1> [#uses=1]
-	br i1 %3, label %bb2, label %bb
-
-bb2:		; preds = %bb1
-	ret i32 %value.0
-}
-
-define i32 @main() nounwind {
-entry:
-	%0 = call i32 @f() nounwind		; <i32> [#uses=1]
-	ret i32 %0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
deleted file mode 100644
index e59c8df..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt
-
- at g = external global i32
-
- at a = alias bitcast (i32* @g to i8*)
-
-define void @f() {
-	%tmp = load i8* @a
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
deleted file mode 100644
index f042e59..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {define void @a}
-
-define internal void @f() {
-	ret void
-}
-
- at a = alias void ()* @f
-
-define void @g() {
-	call void()* @a()
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-03-dbg.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-03-dbg.ll
deleted file mode 100644
index 1996f62..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-03-dbg.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global_variable42
-; XFAIL: *
-
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }* }
-	%llvm.dbg.global_variable.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1, { }* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.subrange.type = type { i32, i64, i64 }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }* }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 2099)\00", section "llvm.metadata"		; <[57 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [1 x { }*] [ { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) ], section "llvm.metadata"		; <[1 x { }*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([1 x { }*]* @llvm.dbg.array to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str4 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 3, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str5 = internal constant [6 x i8] c"i_ptr\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 459008, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), i8* getelementptr ([6 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 5, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=0]
- at sillyArray.1433 = internal global [8 x i32] [ i32 2, i32 3, i32 5, i32 7, i32 11, i32 13, i32 17, i32 19 ]		; <[8 x i32]*> [#uses=1]
- at llvm.dbg.subrange = internal constant %llvm.dbg.subrange.type { i32 458785, i64 0, i64 7 }, section "llvm.metadata"		; <%llvm.dbg.subrange.type*> [#uses=1]
- at llvm.dbg.array6 = internal constant [1 x { }*] [ { }* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange to { }*) ], section "llvm.metadata"		; <[1 x { }*]*> [#uses=1]
- at llvm.dbg.composite7 = internal constant %llvm.dbg.composite.type { i32 458753, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 256, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast ([1 x { }*]* @llvm.dbg.array6 to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 52 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str8 = internal constant [16 x i8] c"sillyArray.1433\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str9 = internal constant [11 x i8] c"sillyArray\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.global_variable42 = internal constant %llvm.dbg.global_variable.type { i32 458804, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([16 x i8]* @.str8, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str9, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite7 to { }*), i1 true, i1 true, { }* bitcast ([8 x i32]* @sillyArray.1433 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.global_variable.type*> [#uses=0]
-
-define i32 @main() nounwind {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret i32 0
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
deleted file mode 100644
index 30e9a63..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
+++ /dev/null
@@ -1,67 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -stats -disable-output |& grep "1 globalopt - Number of global vars shrunk to booleans"
-; XFAIL: *
-
-	type { }		; type %0
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
-	%llvm.dbg.global_variable.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1, %0* }
-	%llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, %0*, i8*, %0*, i32, %0* }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [5 x i8] c"gs.c\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5641) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 1, i8* getelementptr ([5 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 4, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str5 = internal constant [2 x i8] c"i\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 459009, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %0*), i8* getelementptr ([2 x i8]* @.str5, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 4, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at Stop = internal global i32 0		; <i32*> [#uses=4]
- at llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 52 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str6 = internal constant [5 x i8] c"Stop\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type { i32 458804, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str6, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 2, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*), i1 true, i1 true, %0* bitcast (i32* @Stop to %0*) }, section "llvm.metadata"		; <%llvm.dbg.global_variable.type*> [#uses=0]
-
-define i32 @foo(i32 %i) nounwind {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %0*))
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = load i32* @Stop, align 4		; <i32> [#uses=1]
-	%1 = icmp eq i32 %0, 1		; <i1> [#uses=1]
-	br i1 %1, label %bb, label %bb1
-
-bb:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	store i32 0, i32* @Stop, align 4
-	call void @llvm.dbg.stoppoint(i32 7, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%2 = mul i32 %i, 42		; <i32> [#uses=1]
-	br label %bb2
-
-bb1:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 9, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	store i32 1, i32* @Stop, align 4
-	call void @llvm.dbg.stoppoint(i32 10, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	%.0 = phi i32 [ %i, %bb1 ], [ %2, %bb ]		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 10, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.stoppoint(i32 10, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %0*))
-	ret i32 %.0
-}
-
-declare void @llvm.dbg.func.start(%0*) nounwind readnone
-
-declare void @llvm.dbg.declare(%0*, %0*) nounwind readnone
-
-declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind readnone
-
-declare void @llvm.dbg.region.end(%0*) nounwind readnone
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
deleted file mode 100644
index ea13d29..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep internal | count 2
-
-global i32 0
-define i32* @1() {
-	ret i32* @0
-}
-define i32* @f() {
-entry:
-	call i32* @1()
-	ret i32* %0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
deleted file mode 100644
index 8dba5b1..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@X = internal global i32}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
- at X = internal global i32* null		; <i32**> [#uses=2]
- at Y = internal global i32 0		; <i32*> [#uses=1]
-
-define void @foo() nounwind {
-entry:
-	store i32* @Y, i32** @X, align 4
-	ret void
-}
-
-define i32* @get() nounwind {
-entry:
-	%0 = load i32** @X, align 4		; <i32*> [#uses=1]
-	ret i32* %0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
deleted file mode 100644
index 0ce16dd..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
+++ /dev/null
@@ -1,117 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt
-
-	%struct.s_annealing_sched = type { i32, float, float, float, float }
-	%struct.s_bb = type { i32, i32, i32, i32 }
-	%struct.s_net = type { i8*, i32, i32*, float, float }
-	%struct.s_placer_opts = type { i32, float, i32, i32, i8*, i32, i32 }
- at net = internal global %struct.s_net* null		; <%struct.s_net**> [#uses=4]
-
-define fastcc void @alloc_and_load_placement_structs(i32 %place_cost_type, i32 %num_regions, float %place_cost_exp, float*** nocapture %old_region_occ_x, float*** nocapture %old_region_occ_y) nounwind ssp {
-entry:
-	br i1 undef, label %bb.i, label %my_malloc.exit
-
-bb.i:		; preds = %entry
-	unreachable
-
-my_malloc.exit:		; preds = %entry
-	br i1 undef, label %bb.i81, label %my_malloc.exit83
-
-bb.i81:		; preds = %my_malloc.exit
-	unreachable
-
-my_malloc.exit83:		; preds = %my_malloc.exit
-	br i1 undef, label %bb.i.i57, label %my_calloc.exit.i
-
-bb.i.i57:		; preds = %my_malloc.exit83
-	unreachable
-
-my_calloc.exit.i:		; preds = %my_malloc.exit83
-	br i1 undef, label %bb.i4.i, label %my_calloc.exit5.i
-
-bb.i4.i:		; preds = %my_calloc.exit.i
-	unreachable
-
-my_calloc.exit5.i:		; preds = %my_calloc.exit.i
-	%.pre.i58 = load %struct.s_net** @net, align 4		; <%struct.s_net*> [#uses=1]
-	br label %bb17.i78
-
-bb1.i61:		; preds = %bb4.preheader.i, %bb1.i61
-	br i1 undef, label %bb1.i61, label %bb5.i62
-
-bb5.i62:		; preds = %bb1.i61
-	br i1 undef, label %bb6.i64, label %bb15.preheader.i
-
-bb15.preheader.i:		; preds = %bb4.preheader.i, %bb5.i62
-	br label %bb16.i77
-
-bb6.i64:		; preds = %bb5.i62
-	br i1 undef, label %bb7.i65, label %bb8.i67
-
-bb7.i65:		; preds = %bb6.i64
-	unreachable
-
-bb8.i67:		; preds = %bb6.i64
-	br i1 undef, label %bb.i1.i68, label %my_malloc.exit.i70
-
-bb.i1.i68:		; preds = %bb8.i67
-	unreachable
-
-my_malloc.exit.i70:		; preds = %bb8.i67
-	%0 = load %struct.s_net** @net, align 4		; <%struct.s_net*> [#uses=1]
-	br i1 undef, label %bb9.i71, label %bb16.i77
-
-bb9.i71:		; preds = %bb9.i71, %my_malloc.exit.i70
-	%1 = load %struct.s_net** @net, align 4		; <%struct.s_net*> [#uses=1]
-	br i1 undef, label %bb9.i71, label %bb16.i77
-
-bb16.i77:		; preds = %bb9.i71, %my_malloc.exit.i70, %bb15.preheader.i
-	%.pre41.i.rle244 = phi %struct.s_net* [ %.pre41.i, %bb15.preheader.i ], [ %0, %my_malloc.exit.i70 ], [ %1, %bb9.i71 ]		; <%struct.s_net*> [#uses=1]
-	br label %bb17.i78
-
-bb17.i78:		; preds = %bb16.i77, %my_calloc.exit5.i
-	%.pre41.i = phi %struct.s_net* [ %.pre41.i.rle244, %bb16.i77 ], [ %.pre.i58, %my_calloc.exit5.i ]		; <%struct.s_net*> [#uses=1]
-	br i1 undef, label %bb4.preheader.i, label %alloc_and_load_unique_pin_list.exit
-
-bb4.preheader.i:		; preds = %bb17.i78
-	br i1 undef, label %bb1.i61, label %bb15.preheader.i
-
-alloc_and_load_unique_pin_list.exit:		; preds = %bb17.i78
-	ret void
-}
-
-define void @read_net(i8* %net_file) nounwind ssp {
-entry:
-	br i1 undef, label %bb3.us.us.i, label %bb6.preheader
-
-bb6.preheader:		; preds = %entry
-	br i1 undef, label %bb7, label %bb
-
-bb3.us.us.i:		; preds = %entry
-	unreachable
-
-bb:		; preds = %bb6.preheader
-	br i1 undef, label %bb.i34, label %bb1.i38
-
-bb.i34:		; preds = %bb
-	unreachable
-
-bb1.i38:		; preds = %bb
-	%0 = malloc %struct.s_net, i32 undef		; <%struct.s_net*> [#uses=1]
-	br i1 undef, label %bb.i1.i39, label %my_malloc.exit2.i
-
-bb.i1.i39:		; preds = %bb1.i38
-	unreachable
-
-my_malloc.exit2.i:		; preds = %bb1.i38
-	store %struct.s_net* %0, %struct.s_net** @net, align 4
-	br i1 undef, label %bb.i7.i40, label %my_malloc.exit8.i
-
-bb.i7.i40:		; preds = %my_malloc.exit2.i
-	unreachable
-
-my_malloc.exit8.i:		; preds = %my_malloc.exit2.i
-	unreachable
-
-bb7:		; preds = %bb6.preheader
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/alias-resolve.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
deleted file mode 100644
index 3cae413..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis > %t
-; RUN: cat %t | grep foo1 | count 1
-; RUN: cat %t | grep foo2 | count 4
-; RUN: cat %t | grep bar1 | count 1
-; RUN: cat %t | grep bar2 | count 4
-
- at foo1 = alias void ()* @foo2
- at foo2 = alias weak void()* @bar1
- at bar1  = alias void ()* @bar2
-
-declare void @bar2()
-
-define void @baz() {
-entry:
-        call void @foo1()
-        call void @foo2()
-        call void @bar1()
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/basictest.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/basictest.ll
deleted file mode 100644
index 1c3bdbb..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/basictest.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global
-
- at X = internal global i32 4              ; <i32*> [#uses=1]
-
-define i32 @foo() {
-        %V = load i32* @X               ; <i32> [#uses=1]
-        ret i32 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
deleted file mode 100644
index 6fa139b..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -globalopt | llvm-dis | \
-; RUN:   grep {internal fastcc float @foo}
-
-define internal float @foo() {
-        ret float 0.000000e+00
-}
-
-define float @bar() {
-        %tmp1 = call float (...)* bitcast (float ()* @foo to float (...)*)( )
-        %tmp2 = fmul float %tmp1, 1.000000e+01           ; <float> [#uses=1]
-        ret float %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/ctor-list-opt-dbg.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/ctor-list-opt-dbg.ll
deleted file mode 100644
index 45fb453..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/ctor-list-opt-dbg.ll
+++ /dev/null
@@ -1,98 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep CTOR
- at llvm.global_ctors = appending global [10 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @CTOR1 }, { i32, void ()* } { i32 65535, void ()* @CTOR1 }, { i32, void ()* } { i32 65535, void ()* @CTOR2 }, { i32, void ()* } { i32 65535, void ()* @CTOR3 }, { i32, void ()* } { i32 65535, void ()* @CTOR4 }, { i32, void ()* } { i32 65535, void ()* @CTOR5 }, { i32, void ()* } { i32 65535, void ()* @CTOR6 }, { i32, void ()* } { i32 65535, void ()* @CTOR7 }, { i32, void ()* } { i32 65535, void ()* @CTOR8 }, { i32, void ()* } { i32 2147483647, void ()* null } ]		; <[10 x { i32, void ()* }]*> [#uses=0]
- at G = global i32 0		; <i32*> [#uses=1]
- at G2 = global i32 0		; <i32*> [#uses=1]
- at G3 = global i32 -123		; <i32*> [#uses=2]
- at X = global { i32, [2 x i32] } { i32 0, [2 x i32] [ i32 17, i32 21 ] }		; <{ i32, [2 x i32] }*> [#uses=2]
- at Y = global i32 -1		; <i32*> [#uses=2]
- at Z = global i32 123		; <i32*> [#uses=1]
- at D = global double 0.000000e+00		; <double*> [#uses=1]
- at CTORGV = internal global i1 false		; <i1*> [#uses=2]
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-define internal void @CTOR1() {
-	ret void
-}
-
-define internal void @CTOR2() {
-	%A = add i32 1, 23		; <i32> [#uses=1]
-        call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	store i32 %A, i32* @G
-	store i1 true, i1* @CTORGV
-	ret void
-}
-
-define internal void @CTOR3() {
-	%X = or i1 true, false		; <i1> [#uses=1]
-	br label %Cont
-
-Cont:		; preds = %0
-	br i1 %X, label %S, label %T
-
-S:		; preds = %Cont
-	store i32 24, i32* @G2
-	ret void
-
-T:		; preds = %Cont
-	ret void
-}
-
-define internal void @CTOR4() {
-	%X = load i32* @G3		; <i32> [#uses=1]
-	%Y = add i32 %X, 123		; <i32> [#uses=1]
-	store i32 %Y, i32* @G3
-	ret void
-}
-
-define internal void @CTOR5() {
-	%X.2p = getelementptr { i32, [2 x i32] }* @X, i32 0, i32 1, i32 0		; <i32*> [#uses=2]
-	%X.2 = load i32* %X.2p		; <i32> [#uses=1]
-	%X.1p = getelementptr { i32, [2 x i32] }* @X, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %X.2, i32* %X.1p
-	store i32 42, i32* %X.2p
-	ret void
-}
-
-define internal void @CTOR6() {
-	%A = alloca i32		; <i32*> [#uses=2]
-	%y = load i32* @Y		; <i32> [#uses=1]
-	store i32 %y, i32* %A
-	%Av = load i32* %A		; <i32> [#uses=1]
-	%Av1 = add i32 %Av, 1		; <i32> [#uses=1]
-	store i32 %Av1, i32* @Y
-	ret void
-}
-
-define internal void @CTOR7() {
-	call void @setto( i32* @Z, i32 0 )
-	ret void
-}
-
-define void @setto(i32* %P, i32 %V) {
-	store i32 %V, i32* %P
-	ret void
-}
-
-declare double @cos(double)
-
-define internal void @CTOR8() {
-	%X = call double @cos( double 1.000000e+00 )		; <double> [#uses=1]
-	store double %X, double* @D
-	ret void
-}
-
-define i1 @accessor() {
-	%V = load i1* @CTORGV		; <i1> [#uses=1]
-	ret i1 %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
deleted file mode 100644
index 56aeadb..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
+++ /dev/null
@@ -1,85 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep CTOR
- at llvm.global_ctors = appending global [10 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @CTOR1 }, { i32, void ()* } { i32 65535, void ()* @CTOR1 }, { i32, void ()* } { i32 65535, void ()* @CTOR2 }, { i32, void ()* } { i32 65535, void ()* @CTOR3 }, { i32, void ()* } { i32 65535, void ()* @CTOR4 }, { i32, void ()* } { i32 65535, void ()* @CTOR5 }, { i32, void ()* } { i32 65535, void ()* @CTOR6 }, { i32, void ()* } { i32 65535, void ()* @CTOR7 }, { i32, void ()* } { i32 65535, void ()* @CTOR8 }, { i32, void ()* } { i32 2147483647, void ()* null } ]		; <[10 x { i32, void ()* }]*> [#uses=0]
- at G = global i32 0		; <i32*> [#uses=1]
- at G2 = global i32 0		; <i32*> [#uses=1]
- at G3 = global i32 -123		; <i32*> [#uses=2]
- at X = global { i32, [2 x i32] } { i32 0, [2 x i32] [ i32 17, i32 21 ] }		; <{ i32, [2 x i32] }*> [#uses=2]
- at Y = global i32 -1		; <i32*> [#uses=2]
- at Z = global i32 123		; <i32*> [#uses=1]
- at D = global double 0.000000e+00		; <double*> [#uses=1]
- at CTORGV = internal global i1 false		; <i1*> [#uses=2]
-
-define internal void @CTOR1() {
-	ret void
-}
-
-define internal void @CTOR2() {
-	%A = add i32 1, 23		; <i32> [#uses=1]
-	store i32 %A, i32* @G
-	store i1 true, i1* @CTORGV
-	ret void
-}
-
-define internal void @CTOR3() {
-	%X = or i1 true, false		; <i1> [#uses=1]
-	br label %Cont
-
-Cont:		; preds = %0
-	br i1 %X, label %S, label %T
-
-S:		; preds = %Cont
-	store i32 24, i32* @G2
-	ret void
-
-T:		; preds = %Cont
-	ret void
-}
-
-define internal void @CTOR4() {
-	%X = load i32* @G3		; <i32> [#uses=1]
-	%Y = add i32 %X, 123		; <i32> [#uses=1]
-	store i32 %Y, i32* @G3
-	ret void
-}
-
-define internal void @CTOR5() {
-	%X.2p = getelementptr { i32, [2 x i32] }* @X, i32 0, i32 1, i32 0		; <i32*> [#uses=2]
-	%X.2 = load i32* %X.2p		; <i32> [#uses=1]
-	%X.1p = getelementptr { i32, [2 x i32] }* @X, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %X.2, i32* %X.1p
-	store i32 42, i32* %X.2p
-	ret void
-}
-
-define internal void @CTOR6() {
-	%A = alloca i32		; <i32*> [#uses=2]
-	%y = load i32* @Y		; <i32> [#uses=1]
-	store i32 %y, i32* %A
-	%Av = load i32* %A		; <i32> [#uses=1]
-	%Av1 = add i32 %Av, 1		; <i32> [#uses=1]
-	store i32 %Av1, i32* @Y
-	ret void
-}
-
-define internal void @CTOR7() {
-	call void @setto( i32* @Z, i32 0 )
-	ret void
-}
-
-define void @setto(i32* %P, i32 %V) {
-	store i32 %V, i32* %P
-	ret void
-}
-
-declare double @cos(double)
-
-define internal void @CTOR8() {
-	%X = call double @cos( double 1.000000e+00 )		; <double> [#uses=1]
-	store double %X, double* @D
-	ret void
-}
-
-define i1 @accessor() {
-	%V = load i1* @CTORGV		; <i1> [#uses=1]
-	ret i1 %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
deleted file mode 100644
index def6a09..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep internal
-
-; This is a harder case to delete as the GEP has a variable index.
-
- at G = internal global [4 x i32] zeroinitializer
-
-define void @foo(i32 %X) {
-	%Ptr = getelementptr [4 x i32]* @G, i32 0, i32 %X
-	store i32 1, i32* %Ptr
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/deadglobal.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/deadglobal.ll
deleted file mode 100644
index 7a47b8e..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/deadglobal.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep internal
-
- at G = internal global i32 123            ; <i32*> [#uses=1]
-
-define void @foo() {
-        store i32 1, i32* @G
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/dg.exp b/libclamav/c++/llvm/test/Transforms/GlobalOpt/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
deleted file mode 100644
index e52e7fe..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; In this case, the global can only be broken up by one level.
-
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep 12345
-
- at G = internal global { i32, [4 x float] } zeroinitializer               ; <{ i32, [4 x float] }*> [#uses=3]
-
-define void @onlystore() {
-        store i32 12345, i32* getelementptr ({ i32, [4 x float] }* @G, i32 0, i32 0)
-        ret void
-}
-
-define void @storeinit(i32 %i) {
-        %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i             ; <float*> [#uses=1]
-        store float 1.000000e+00, float* %Ptr
-        ret void
-}
-
-define float @readval(i32 %i) {
-        %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i             ; <float*> [#uses=1]
-        %V = load float* %Ptr           ; <float> [#uses=1]
-        ret float %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
deleted file mode 100644
index 7a5d5b7..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis > %t
-; RUN: grep {@Y = internal global \\\[3 x \[%\]struct.X\\\] zeroinitializer} %t
-; RUN: grep load %t | count 6
-; RUN: grep {add i32 \[%\]a, \[%\]b} %t | count 3
-
-; globalopt should not sra the global, because it can't see the index.
-
-%struct.X = type { [3 x i32], [3 x i32] }
-
- at Y = internal global [3 x %struct.X] zeroinitializer
-
- at addr = external global i8
-
-define void @frob() {
-  store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 ptrtoint (i8* @addr to i64)), align 4
-  ret void
-}
-define i32 @borf(i64 %i, i64 %j) {
-  %p = getelementptr inbounds [3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 0
-  %a = load i32* %p
-  %q = getelementptr inbounds [3 x %struct.X]* @Y, i64 0, i64 0, i32 1, i64 0
-  %b = load i32* %q
-  %c = add i32 %a, %b
-  ret i32 %c
-}
-define i32 @borg(i64 %i, i64 %j) {
-  %p = getelementptr inbounds [3 x %struct.X]* @Y, i64 0, i64 1, i32 0, i64 1
-  %a = load i32* %p
-  %q = getelementptr inbounds [3 x %struct.X]* @Y, i64 0, i64 1, i32 1, i64 1
-  %b = load i32* %q
-  %c = add i32 %a, %b
-  ret i32 %c
-}
-define i32 @borh(i64 %i, i64 %j) {
-  %p = getelementptr inbounds [3 x %struct.X]* @Y, i64 0, i64 2, i32 0, i64 2
-  %a = load i32* %p
-  %q = getelementptr inbounds [3 x %struct.X]* @Y, i64 0, i64 2, i32 1, i64 2
-  %b = load i32* %q
-  %c = add i32 %a, %b
-  ret i32 %c
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra.ll
deleted file mode 100644
index 3623555..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/globalsra.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global
-
- at G = internal global { i32, float, { double } } {
-    i32 1, 
-    float 1.000000e+00, 
-    { double } { double 1.727000e+01 } }                ; <{ i32, float, { double } }*> [#uses=3]
-
-define void @onlystore() {
-        store i32 123, i32* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 0)
-        ret void
-}
-
-define float @storeinit() {
-        store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1)
-        %X = load float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1)           ; <float> [#uses=1]
-        ret float %X
-}
-
-define double @constantize() {
-        %X = load double* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 2, i32 0)           ; <double> [#uses=1]
-        ret double %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
deleted file mode 100644
index 37e6d47..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@X.f0}
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@X.f1}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-
-	%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
-	%.sub = malloc %struct.foo, i32 %Size	
-	store %struct.foo* %.sub, %struct.foo** @X, align 4
-	ret void
-}
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
-	%0 = load %struct.foo** @X, align 4		
-	br label %bb1
-
-bb1:		; preds = %bb1, %bb1.thread
-	%i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]
-	%sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]
-	%1 = getelementptr %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0
-	%2 = load i32* %1, align 4
-	%3 = add i32 %2, %sum.0.reg2mem.0	
-	%indvar.next = add i32 %i.0.reg2mem.0, 1	
-	%exitcond = icmp eq i32 %indvar.next, 1200		
-	br i1 %exitcond, label %bb2, label %bb1
-
-bb2:		; preds = %bb1
-	ret i32 %3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
deleted file mode 100644
index 98f4a50..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@X.f0}
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {@X.f1}
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-	%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null		; <%struct.foo**> [#uses=2]
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
-	%0 = malloc [1000000 x %struct.foo]
-        ;%.sub = bitcast [1000000 x %struct.foo]* %0 to %struct.foo*
-	%.sub = getelementptr [1000000 x %struct.foo]* %0, i32 0, i32 0		; <%struct.foo*> [#uses=1]
-	store %struct.foo* %.sub, %struct.foo** @X, align 4
-	ret void
-}
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
-	%0 = load %struct.foo** @X, align 4		; <%struct.foo*> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb1, %bb1.thread
-	%i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]		; <i32> [#uses=2]
-	%sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %3, %bb1 ]		; <i32> [#uses=1]
-	%1 = getelementptr %struct.foo* %0, i32 %i.0.reg2mem.0, i32 0		; <i32*> [#uses=1]
-	%2 = load i32* %1, align 4		; <i32> [#uses=1]
-	%3 = add i32 %2, %sum.0.reg2mem.0		; <i32> [#uses=2]
-	%indvar.next = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, 1200		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb2, label %bb1
-
-bb2:		; preds = %bb1
-	ret i32 %3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
deleted file mode 100644
index 5f46a77..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {tmp.f1 = phi i32. }
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | grep {tmp.f0 = phi i32. }
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-	%struct.foo = type { i32, i32 }
- at X = internal global %struct.foo* null		; <%struct.foo**> [#uses=2]
-
-define void @bar(i32 %Size) nounwind noinline {
-entry:
-	%tmp = malloc [1000000 x %struct.foo]		; <[1000000 x %struct.foo]*> [#uses=1]
-	%.sub = getelementptr [1000000 x %struct.foo]* %tmp, i32 0, i32 0		; <%struct.foo*> [#uses=1]
-	store %struct.foo* %.sub, %struct.foo** @X, align 4
-	ret void
-}
-
-define i32 @baz() nounwind readonly noinline {
-bb1.thread:
-	%tmpLD1 = load %struct.foo** @X, align 4		; <%struct.foo*> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb1, %bb1.thread
-        %tmp = phi %struct.foo* [%tmpLD1, %bb1.thread ], [ %tmpLD2, %bb1 ]		; <i32> [#uses=2]
-	%i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ]		; <i32> [#uses=2]
-	%sum.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %tmp3, %bb1 ]		; <i32> [#uses=1]
-	%tmp1 = getelementptr %struct.foo* %tmp, i32 %i.0.reg2mem.0, i32 0		; <i32*> [#uses=1]
-	%tmp2 = load i32* %tmp1, align 4		; <i32> [#uses=1]
-	%tmp6 = add i32 %tmp2, %sum.0.reg2mem.0		; <i32> [#uses=2]
-	%tmp4 = getelementptr %struct.foo* %tmp, i32 %i.0.reg2mem.0, i32 1		; <i32*> [#uses=1]
-        %tmp5 = load i32 * %tmp4
-        %tmp3 = add i32 %tmp5, %tmp6
-	%indvar.next = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=2]
-        
-      	%tmpLD2 = load %struct.foo** @X, align 4		; <%struct.foo*> [#uses=1]
-
-	%exitcond = icmp eq i32 %indvar.next, 1200		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb2, label %bb1
-
-bb2:		; preds = %bb1
-	ret i32 %tmp3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/integer-bool.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/integer-bool.ll
deleted file mode 100644
index 9fbbe35..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/integer-bool.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt -instcombine | \
-; RUN:    llvm-dis | grep {ret i1 true}
-
-;; check that global opt turns integers that only hold 0 or 1 into bools.
-
- at G = internal global i32 0              ; <i32*> [#uses=3]
-
-define void @set1() {
-        store i32 0, i32* @G
-        ret void
-}
-
-define void @set2() {
-        store i32 1, i32* @G
-        ret void
-}
-
-define i1 @get() {
-        %A = load i32* @G               ; <i32> [#uses=1]
-        %C = icmp slt i32 %A, 2         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/iterate.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/iterate.ll
deleted file mode 100644
index d764c5d..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/iterate.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep %G
-
- at G = internal global i32 0              ; <i32*> [#uses=1]
- at H = internal global { i32* } { i32* @G }               ; <{ i32* }*> [#uses=1]
-
-define i32 @loadg() {
-        %G = load i32** getelementptr ({ i32* }* @H, i32 0, i32 0)              ; <i32*> [#uses=1]
-        %GV = load i32* %G              ; <i32> [#uses=1]
-        ret i32 %GV
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/load-store-global.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/load-store-global.ll
deleted file mode 100644
index d89d226..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/load-store-global.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep G
-
- at G = internal global i32 17             ; <i32*> [#uses=3]
-
-define void @foo() {
-        %V = load i32* @G               ; <i32> [#uses=1]
-        store i32 %V, i32* @G
-        ret void
-}
-
-define i32 @bar() {
-        %X = load i32* @G               ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
deleted file mode 100644
index fea4dbd..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global
-
- at G = internal global i32* null          ; <i32**> [#uses=3]
-
-define void @init() {
-        %P = malloc i32         ; <i32*> [#uses=1]
-        store i32* %P, i32** @G
-        %GV = load i32** @G             ; <i32*> [#uses=1]
-        store i32 0, i32* %GV
-        ret void
-}
-
-define i32 @get() {
-        %GV = load i32** @G             ; <i32*> [#uses=1]
-        %V = load i32* %GV              ; <i32> [#uses=1]
-        ret i32 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
deleted file mode 100644
index 1b33632..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc
-
- at G = internal global i32* null          ; <i32**> [#uses=3]
-
-define void @init() {
-        %P = malloc i32, i32 100                ; <i32*> [#uses=1]
-        store i32* %P, i32** @G
-        %GV = load i32** @G             ; <i32*> [#uses=1]
-        %GVe = getelementptr i32* %GV, i32 40           ; <i32*> [#uses=1]
-        store i32 20, i32* %GVe
-        ret void
-}
-
-define i32 @get() {
-        %GV = load i32** @G             ; <i32*> [#uses=1]
-        %GVe = getelementptr i32* %GV, i32 40           ; <i32*> [#uses=1]
-        %V = load i32* %GVe             ; <i32> [#uses=1]
-        ret i32 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
deleted file mode 100644
index 26ce8fd..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc
-
- at G = internal global i32* null          ; <i32**> [#uses=4]
-
-define void @init() {
-        %P = malloc i32, i32 100                ; <i32*> [#uses=1]
-        store i32* %P, i32** @G
-        %GV = load i32** @G             ; <i32*> [#uses=1]
-        %GVe = getelementptr i32* %GV, i32 40           ; <i32*> [#uses=1]
-        store i32 20, i32* %GVe
-        ret void
-}
-
-define i32 @get() {
-        %GV = load i32** @G             ; <i32*> [#uses=1]
-        %GVe = getelementptr i32* %GV, i32 40           ; <i32*> [#uses=1]
-        %V = load i32* %GVe             ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i1 @check() {
-        %GV = load i32** @G             ; <i32*> [#uses=1]
-        %V = icmp eq i32* %GV, null             ; <i1> [#uses=1]
-        ret i1 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/memcpy.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/memcpy.ll
deleted file mode 100644
index b51aedb..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/memcpy.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | \
-; RUN:   grep {G1 = internal constant}
-
- at G1 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00"         ; <[58 x i8]*> [#uses=1]
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-define void @foo() {
-        %Blah = alloca [58 x i8]                ; <[58 x i8]*> [#uses=1]
-        %tmp.0 = getelementptr [58 x i8]* %Blah, i32 0, i32 0           ; <i8*> [#uses=1]
-        call void @llvm.memcpy.i32( i8* %tmp.0, i8* getelementptr ([58 x i8]* @G1, i32 0, i32 0), i32 58, i32 1 )
-        ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/memset.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/memset.ll
deleted file mode 100644
index 0ee851f..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/memset.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; both globals are write only, delete them.
-
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | \
-; RUN:   not grep internal
-
- at G0 = internal global [58 x i8] c"asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd\00"         ; <[58 x i8]*> [#uses=1]
- at G1 = internal global [4 x i32] [ i32 1, i32 2, i32 3, i32 4 ]          ; <[4 x i32]*> [#uses=1]
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-declare void @llvm.memset.i32(i8*, i8, i32, i32)
-
-define void @foo() {
-        %Blah = alloca [58 x i8]                ; <[58 x i8]*> [#uses=1]
-        %tmp3 = bitcast [58 x i8]* %Blah to i8*         ; <i8*> [#uses=1]
-        call void @llvm.memcpy.i32( i8* bitcast ([4 x i32]* @G1 to i8*), i8* %tmp3, i32 16, i32 1 )
-        call void @llvm.memset.i32( i8* getelementptr ([58 x i8]* @G0, i32 0, i32 0), i8 17, i32 58, i32 1 )
-        ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/phi-select.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/phi-select.ll
deleted file mode 100644
index da1314f..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/phi-select.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; Test that PHI nodes and select instructions do not necessarily make stuff
-; non-constant.
-
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global
-
- at X = internal global i32 4              ; <i32*> [#uses=2]
- at Y = internal global i32 5              ; <i32*> [#uses=2]
-
-define i32 @test1(i1 %C) {
-        %P = select i1 %C, i32* @X, i32* @Y             ; <i32*> [#uses=1]
-        %V = load i32* %P               ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i32 @test2(i1 %C) {
-; <label>:0
-        br i1 %C, label %T, label %Cont
-
-T:              ; preds = %0
-        br label %Cont
-
-Cont:           ; preds = %T, %0
-        %P = phi i32* [ @X, %0 ], [ @Y, %T ]            ; <i32*> [#uses=1]
-        %V = load i32* %P               ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-
-
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
deleted file mode 100644
index 86eff51..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | \
-; RUN:   grep {call void @Actual}
-
-; Check that a comparison does not prevent an indirect call from being made 
-; direct.  The global will still remain, but indirect call elim is still good.
-
- at G = internal global void ()* null              ; <void ()**> [#uses=2]
-
-define internal void @Actual() {
-        ret void
-}
-
-define void @init() {
-        store void ()* @Actual, void ()** @G
-        ret void
-}
-
-define void @doit() {
-        %FP = load void ()** @G         ; <void ()*> [#uses=2]
-        %CC = icmp eq void ()* %FP, null                ; <i1> [#uses=1]
-        br i1 %CC, label %isNull, label %DoCall
-
-DoCall:         ; preds = %0
-        call void %FP( )
-        ret void
-
-isNull:         ; preds = %0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/storepointer.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/storepointer.ll
deleted file mode 100644
index d57a6ac..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/storepointer.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global
-
- at G = internal global void ()* null              ; <void ()**> [#uses=2]
-
-define internal void @Actual() {
-        ret void
-}
-
-define void @init() {
-        store void ()* @Actual, void ()** @G
-        ret void
-}
-
-define void @doit() {
-        %FP = load void ()** @G         ; <void ()*> [#uses=1]
-        call void %FP( )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/trivialstore.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/trivialstore.ll
deleted file mode 100644
index a662565..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/trivialstore.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep G
-
- at G = internal global i32 17             ; <i32*> [#uses=3]
-
-define void @foo() {
-        store i32 17, i32* @G
-        ret void
-}
-
-define i32 @bar() {
-        %X = load i32* @G               ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-define internal void @dead() {
-        store i32 123, i32* @G
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/GlobalOpt/undef-init.ll b/libclamav/c++/llvm/test/Transforms/GlobalOpt/undef-init.ll
deleted file mode 100644
index bb483fc..0000000
--- a/libclamav/c++/llvm/test/Transforms/GlobalOpt/undef-init.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep store
-
- at llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__Z3foov } ]          ; <[1 x { i32, void ()* }]*> [#uses=0]
- at X.0 = internal global i32 undef                ; <i32*> [#uses=2]
-
-define i32 @_Z3foov() {
-entry:
-        %tmp.1 = load i32* @X.0         ; <i32> [#uses=1]
-        ret i32 %tmp.1
-}
-
-define internal void @_GLOBAL__I__Z3foov() {
-entry:
-        store i32 1, i32* @X.0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IPConstantProp/2008-06-09-WeakProp.ll b/libclamav/c++/llvm/test/Transforms/IPConstantProp/2008-06-09-WeakProp.ll
deleted file mode 100644
index fc7e3bb..0000000
--- a/libclamav/c++/llvm/test/Transforms/IPConstantProp/2008-06-09-WeakProp.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -ipconstprop | llvm-dis | grep {ret i32 %r}
-; Should not propagate the result of a weak function.
-; PR2411
-
-define weak i32 @foo() nounwind  {
-entry:
-        ret i32 1
-}
-
-define i32 @main() nounwind  {
-entry:
-        %r = call i32 @foo( ) nounwind
-        ret i32 %r
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IPConstantProp/deadarg.ll b/libclamav/c++/llvm/test/Transforms/IPConstantProp/deadarg.ll
deleted file mode 100644
index 18b8f7d..0000000
--- a/libclamav/c++/llvm/test/Transforms/IPConstantProp/deadarg.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | opt -ipconstprop -disable-output
-define internal void @foo(i32 %X) {
-        call void @foo( i32 %X )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IPConstantProp/dg.exp b/libclamav/c++/llvm/test/Transforms/IPConstantProp/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/IPConstantProp/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/IPConstantProp/recursion.ll b/libclamav/c++/llvm/test/Transforms/IPConstantProp/recursion.ll
deleted file mode 100644
index 27c381a..0000000
--- a/libclamav/c++/llvm/test/Transforms/IPConstantProp/recursion.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -ipconstprop -deadargelim | llvm-dis | not grep %X
-define internal i32 @foo(i32 %X) {
-        %Y = call i32 @foo( i32 %X )            ; <i32> [#uses=1]
-        %Z = add i32 %Y, 1              ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define void @bar() {
-        call i32 @foo( i32 17 )         ; <i32>:1 [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-argument.ll b/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-argument.ll
deleted file mode 100644
index f860510..0000000
--- a/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-argument.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | opt -ipconstprop | llvm-dis > %t
-; RUN: cat %t | grep {store i32 %Z, i32\\* %Q}
-; RUN: cat %t | grep {add i32 1, 3}
-
-;; This function returns its second argument on all return statements
-define internal i32* @incdec(i1 %C, i32* %V) {
-        %X = load i32* %V
-        br i1 %C, label %T, label %F
-
-T:              ; preds = %0
-        %X1 = add i32 %X, 1
-        store i32 %X1, i32* %V
-        ret i32* %V
-
-F:              ; preds = %0
-        %X2 = sub i32 %X, 1
-        store i32 %X2, i32* %V
-        ret i32* %V
-}
-
-;; This function returns its first argument as a part of a multiple return
-;; value
-define internal { i32, i32 } @foo(i32 %A, i32 %B) {
-        %X = add i32 %A, %B
-        %Y = insertvalue { i32, i32 } undef, i32 %A, 0
-        %Z = insertvalue { i32, i32 } %Y, i32 %X, 1
-        ret { i32, i32 } %Z
-}
-
-define void @caller(i1 %C) {
-        %Q = alloca i32
-        ;; Call incdec to see if %W is properly replaced by %Q
-        %W = call i32* @incdec(i1 %C, i32* %Q )             ; <i32> [#uses=1]
-        ;; Call @foo twice, to prevent the arguments from propagating into the
-        ;; function (so we can check the returned argument is properly
-        ;; propagated per-caller).
-        %S1 = call { i32, i32 } @foo(i32 1, i32 2);
-        %X1 = extractvalue { i32, i32 } %S1, 0
-        %S2 = invoke { i32, i32 } @foo(i32 3, i32 4) to label %OK unwind label %RET;
-OK:
-        %X2 = extractvalue { i32, i32 } %S2, 0
-        ;; Do some stuff with the returned values which we can grep for
-        %Z  = add i32 %X1, %X2
-        store i32 %Z, i32* %W
-        br label %RET
-RET:
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-constant.ll b/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-constant.ll
deleted file mode 100644
index 381ef63..0000000
--- a/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-constant.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -ipconstprop -instcombine | \
-; RUN:    llvm-dis | grep {ret i1 true} | count 2
-define internal i32 @foo(i1 %C) {
-        br i1 %C, label %T, label %F
-
-T:              ; preds = %0
-        ret i32 52
-
-F:              ; preds = %0
-        ret i32 52
-}
-
-define i1 @caller(i1 %C) {
-        %X = call i32 @foo( i1 %C )             ; <i32> [#uses=1]
-        %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
-        ret i1 %Y
-}
-
-define i1 @invokecaller(i1 %C) {
-        %X = invoke i32 @foo( i1 %C ) to label %OK unwind label %FAIL             ; <i32> [#uses=1]
-OK:
-        %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
-        ret i1 %Y 
-FAIL:
-        ret i1 false
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-constants.ll b/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-constants.ll
deleted file mode 100644
index 7205c28..0000000
--- a/libclamav/c++/llvm/test/Transforms/IPConstantProp/return-constants.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -ipconstprop | llvm-dis > %t
-;; Check that the 21 constants got propagated properly
-; RUN: cat %t | grep {%M = add i32 21, 21}
-;; Check that the second return values didn't get propagated
-; RUN: cat %t | grep {%N = add i32 %B, %D}
-
-define internal {i32, i32} @foo(i1 %Q) {
-        br i1 %Q, label %T, label %F
-
-T:              ; preds = %0
-        ret i32 21, i32 22
-
-F:              ; preds = %0
-        ret i32 21, i32 23
-}
-
-define internal {i32, i32} @bar(i1 %Q) {
-        %A = insertvalue { i32, i32 } undef, i32 21, 0
-        br i1 %Q, label %T, label %F
-
-T:              ; preds = %0
-        %B = insertvalue { i32, i32 } %A, i32 22, 1
-        ret { i32, i32 } %B
-
-F:              ; preds = %0
-        %C = insertvalue { i32, i32 } %A, i32 23, 1
-        ret { i32, i32 } %C
-}
-
-define { i32, i32 } @caller(i1 %Q) {
-        %X = call {i32, i32} @foo( i1 %Q )
-        %A = getresult {i32, i32} %X, 0
-        %B = getresult {i32, i32} %X, 1
-        %Y = call {i32, i32} @bar( i1 %Q )
-        %C = extractvalue {i32, i32} %Y, 0
-        %D = extractvalue {i32, i32} %Y, 1
-        %M = add i32 %A, %C
-        %N = add i32 %B, %D
-        ret { i32, i32 } %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndMemRem/2009-01-24-Noalias.ll b/libclamav/c++/llvm/test/Transforms/IndMemRem/2009-01-24-Noalias.ll
deleted file mode 100644
index bc3d0bf..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndMemRem/2009-01-24-Noalias.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -indmemrem | llvm-dis | grep bounce | grep noalias
-
-declare i8* @malloc(i32)
-
- at g = external global i8*
-
-define void @test() {
-  %A = bitcast i8* (i32) * @malloc to i8*
-  store i8* %A, i8** @g
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndMemRem/dg.exp b/libclamav/c++/llvm/test/Transforms/IndMemRem/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndMemRem/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2002-09-09-PointerIndVar.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2002-09-09-PointerIndVar.ll
deleted file mode 100644
index 228772e..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2002-09-09-PointerIndVar.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; Induction variable pass is doing bad things with pointer induction vars, 
-; trying to do arithmetic on them directly.
-;
-; RUN: llvm-as < %s | opt -indvars
-;
-define void @test(i32 %A, i32 %S, i8* %S.upgrd.1) {
-; <label>:0
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %PIV = phi i8* [ %S.upgrd.1, %0 ], [ %PIVNext.upgrd.3, %Loop ]          ; <i8*> [#uses=1]
-        %PIV.upgrd.2 = ptrtoint i8* %PIV to i64         ; <i64> [#uses=1]
-        %PIVNext = add i64 %PIV.upgrd.2, 8              ; <i64> [#uses=1]
-        %PIVNext.upgrd.3 = inttoptr i64 %PIVNext to i8*         ; <i8*> [#uses=1]
-        br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-04-16-ExprAnalysis.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-04-16-ExprAnalysis.ll
deleted file mode 100644
index 2487ea9..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-04-16-ExprAnalysis.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This is a test case for the expression analysis code, not really indvars.
-; It was assuming any constant of int type was a ConstantInteger.
-;
-; RUN: llvm-as < %s | opt -indvars
-
- at X = global i32 7               ; <i32*> [#uses=1]
-
-define void @test(i32 %A) {
-; <label>:0
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %IV = phi i32 [ %A, %0 ], [ %IVNext, %Loop ]            ; <i32> [#uses=1]
-        %IVNext = add i32 %IV, ptrtoint (i32* @X to i32)                ; <i32> [#uses=1]
-        br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-09-12-MultiplePred.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-09-12-MultiplePred.ll
deleted file mode 100644
index 9619099..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-09-12-MultiplePred.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar
-
-define i32 @test() {
-; <label>:0
-        br i1 true, label %LoopHead, label %LoopHead
-
-LoopHead:               ; preds = %LoopHead, %0, %0
-        %A = phi i32 [ 7, %0 ], [ 7, %0 ], [ %B, %LoopHead ]            ; <i32> [#uses=1]
-        %B = add i32 %A, 1              ; <i32> [#uses=2]
-        br i1 false, label %LoopHead, label %Out
-
-Out:            ; preds = %LoopHead
-        ret i32 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-09-23-NotAtTop.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-09-23-NotAtTop.ll
deleted file mode 100644
index b4a2c50..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-09-23-NotAtTop.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | %prcontext ^Loop: 1 | grep %Canonical
-
-; The indvar simplification code should ensure that the first PHI in the block 
-; is the canonical one!
-
-define i32 @test() {
-; <label>:0
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %NonIndvar = phi i32 [ 200, %0 ], [ %NonIndvarNext, %Loop ]             ; <i32> [#uses=1]
-        %Canonical = phi i32 [ 0, %0 ], [ %CanonicalNext, %Loop ]               ; <i32> [#uses=2]
-        store i32 %Canonical, i32* null
-        %NonIndvarNext = sdiv i32 %NonIndvar, 2         ; <i32> [#uses=1]
-        %CanonicalNext = add i32 %Canonical, 1          ; <i32> [#uses=1]
-        br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-10-IndVarDeadCode.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-10-IndVarDeadCode.ll
deleted file mode 100644
index bd9d1ef..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-10-IndVarDeadCode.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; The induction variable canonicalization pass shouldn't leave dead
-; instructions laying around!
-;
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | \
-; RUN:   not grep {#uses=0}
-
-define i32 @mul(i32 %x, i32 %y) {
-entry:
-        br label %tailrecurse
-
-tailrecurse:            ; preds = %endif, %entry
-        %accumulator.tr = phi i32 [ %x, %entry ], [ %tmp.9, %endif ]            ; <i32> [#uses=2]
-        %y.tr = phi i32 [ %y, %entry ], [ %tmp.8, %endif ]              ; <i32> [#uses=2]
-        %tmp.1 = icmp eq i32 %y.tr, 0           ; <i1> [#uses=1]
-        br i1 %tmp.1, label %return, label %endif
-
-endif:          ; preds = %tailrecurse
-        %tmp.8 = add i32 %y.tr, -1              ; <i32> [#uses=1]
-        %tmp.9 = add i32 %accumulator.tr, %x            ; <i32> [#uses=1]
-        br label %tailrecurse
-
-return:         ; preds = %tailrecurse
-        ret i32 %accumulator.tr
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-10-RemoveInstrCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-10-RemoveInstrCrash.ll
deleted file mode 100644
index 11af997..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-10-RemoveInstrCrash.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-define void @test() {
-entry:
-        %inc.2 = add i32 1, 1           ; <i32> [#uses=1]
-        br i1 false, label %no_exit, label %loopexit
-
-no_exit:                ; preds = %no_exit, %entry
-        %j.0.pn = phi i32 [ %inc.3, %no_exit ], [ %inc.2, %entry ]              ; <i32> [#uses=1]
-        %k.0.pn = phi i32 [ %inc.4, %no_exit ], [ 1, %entry ]           ; <i32> [#uses=1]
-        %inc.3 = add i32 %j.0.pn, 1             ; <i32> [#uses=1]
-        %inc.4 = add i32 %k.0.pn, 1             ; <i32> [#uses=1]
-        br i1 false, label %no_exit, label %loopexit
-
-loopexit:               ; preds = %no_exit, %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-15-Crash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-15-Crash.ll
deleted file mode 100644
index b964d78..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-15-Crash.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output 
-define void @_ZN17CoinFactorization7cleanupEv() {
-entry:
-        br i1 false, label %loopexit.14, label %cond_continue.3
-
-cond_continue.3:                ; preds = %entry
-        ret void
-
-loopexit.14:            ; preds = %entry
-        %tmp.738 = sub i32 0, 0         ; <i32> [#uses=1]
-        br i1 false, label %no_exit.15.preheader, label %loopexit.15
-
-no_exit.15.preheader:           ; preds = %loopexit.14
-        br label %no_exit.15
-
-no_exit.15:             ; preds = %no_exit.15, %no_exit.15.preheader
-        %highC.0 = phi i32 [ %tmp.738, %no_exit.15.preheader ], [ %dec.0, %no_exit.15 ]         ; <i32> [#uses=1]
-        %dec.0 = add i32 %highC.0, -1           ; <i32> [#uses=1]
-        br i1 false, label %no_exit.15, label %loopexit.15
-
-loopexit.15:            ; preds = %no_exit.15, %loopexit.14
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-21-IndVarSize.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-21-IndVarSize.ll
deleted file mode 100644
index cf8c804..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2003-12-21-IndVarSize.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar | not grep i32
-
- at G = global i64 0               ; <i64*> [#uses=1]
-
-define void @test() {
-; <label>:0
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %X = phi i64 [ 1, %0 ], [ %X.next, %Loop ]              ; <i64> [#uses=2]
-        %X.next = add i64 %X, 1         ; <i64> [#uses=1]
-        store i64 %X, i64* @G
-        br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-03-10-PHIInsertionBug.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-03-10-PHIInsertionBug.ll
deleted file mode 100644
index 248b29b..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-03-10-PHIInsertionBug.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-define void @test() {
-        br label %endif.0.i
-
-endif.0.i:              ; preds = %0
-        br i1 false, label %then.3.i, label %endif.3.i
-
-then.3.i:               ; preds = %endif.0.i
-        br label %endif.3.i
-
-endif.3.i:              ; preds = %then.3.i, %endif.0.i
-        %inxm.0.i = phi i32 [ 8, %then.3.i ], [ 0, %endif.0.i ]         ; <i32> [#uses=1]
-        %doinner.1.i = phi i32 [ 0, %then.3.i ], [ 0, %endif.0.i ]              ; <i32> [#uses=0]
-        br label %loopentry.2.i
-
-loopentry.2.i:          ; preds = %no_exit.2.i, %endif.3.i
-        %inxk.0.i = phi i32 [ %tmp.210.i, %no_exit.2.i ], [ 0, %endif.3.i ]             ; <i32> [#uses=1]
-        br label %no_exit.2.i
-
-no_exit.2.i:            ; preds = %loopentry.2.i
-        %tmp.210.i = sub i32 %inxk.0.i, %inxm.0.i               ; <i32> [#uses=2]
-        %tmp.213.i = add i32 %tmp.210.i, 0              ; <i32> [#uses=0]
-        br label %loopentry.2.i
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-04-05-InvokeCastCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-04-05-InvokeCastCrash.ll
deleted file mode 100644
index 54d8547..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-04-05-InvokeCastCrash.ll
+++ /dev/null
@@ -1,283 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-; ModuleID = '2004-04-05-InvokeCastCrash.ll'
-	%struct.__false_type = type { i8 }
-	%"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>" = type { %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"*, %"struct.llvm::Constant"* }
-	%"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >" = type { %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"*, %"struct.std::pair<const llvm::Value* const,int>" }
-	%"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" }
-	%"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" }
-	%"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >", i32 }
-	%"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >", i32 }
-	%"struct.llvm::AbstractTypeUser" = type { i32 (...)** }
-	%"struct.llvm::Annotable" = type { i32 (...)**, %"struct.llvm::Annotation"* }
-	%"struct.llvm::Annotation" = type { i32 (...)**, %"struct.llvm::AnnotationID", %"struct.llvm::Annotation"* }
-	%"struct.llvm::AnnotationID" = type { i32 }
-	%"struct.llvm::Argument" = type { %"struct.llvm::Value", %"struct.llvm::Function"*, %"struct.llvm::Argument"*, %"struct.llvm::Argument"* }
-	%"struct.llvm::BasicBlock" = type { %"struct.llvm::Value", %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >", %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* }
-	%"struct.llvm::Constant" = type opaque
-	%"struct.llvm::DerivedType" = type { %"struct.llvm::Type", %"struct.llvm::AbstractTypeUser", %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" }
-	%"struct.llvm::Function" = type { %"struct.llvm::GlobalValue", %"struct.llvm::Annotable", %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >", %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >", %"struct.llvm::SymbolTable"*, %"struct.llvm::Function"*, %"struct.llvm::Function"* }
-	%"struct.llvm::FunctionPass" = type { %"struct.llvm::Pass" }
-	%"struct.llvm::FunctionType" = type { %"struct.llvm::DerivedType", i1 }
-	%"struct.llvm::GlobalValue" = type { %"struct.llvm::User", i32, %"struct.llvm::Module"* }
-	%"struct.llvm::Instruction" = type { %"struct.llvm::User", %"struct.llvm::Annotable", %"struct.llvm::BasicBlock"*, %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"*, i32 }
-	%"struct.llvm::IntrinsicLowering" = type opaque
-	%"struct.llvm::MachineBasicBlock" = type { %"struct.llvm::ilist<llvm::MachineInstr>", %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::BasicBlock"* }
-	%"struct.llvm::MachineConstantPool" = type opaque
-	%"struct.llvm::MachineFrameInfo" = type opaque
-	%"struct.llvm::MachineFunction" = type { %"struct.llvm::Annotation", %"struct.llvm::Function"*, %"struct.llvm::TargetMachine"*, %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >", %"struct.llvm::SSARegMap"*, %"struct.llvm::MachineFunctionInfo"*, %"struct.llvm::MachineFrameInfo"*, %"struct.llvm::MachineConstantPool"* }
-	%"struct.llvm::MachineFunctionInfo" = type { %"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >", %"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >", i32, i32, i32, i32, i32, i32, i32, i1, i1, i1, %"struct.llvm::MachineFunction"* }
-	%"struct.llvm::MachineFunctionPass" = type { %"struct.llvm::FunctionPass" }
-	%"struct.llvm::MachineInstr" = type { i16, i8, %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >", %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineBasicBlock"* }
-	%"struct.llvm::MachineInstrBuilder" = type { %"struct.llvm::MachineInstr"* }
-	%"struct.llvm::MachineOperand" = type { %"union.llvm::MachineOperand::._65", i32, i32 }
-	%"struct.llvm::Module" = type opaque
-	%"struct.llvm::PATypeHandle" = type { %"struct.llvm::Type"*, %"struct.llvm::AbstractTypeUser"* }
-	%"struct.llvm::PATypeHolder" = type { %"struct.llvm::Type"* }
-	%"struct.llvm::Pass" = type { i32 (...)**, %"struct.llvm::AbstractTypeUser"*, %"struct.llvm::PassInfo"*, %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" }
-	%"struct.llvm::PassInfo" = type { i8*, i8*, %"struct.std::type_info"*, i8, %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >", %"struct.llvm::Pass"* ()*, %"struct.llvm::Pass"* (%"struct.llvm::TargetMachine"*)* }
-	%"struct.llvm::SSARegMap" = type opaque
-	%"struct.llvm::SymbolTable" = type opaque
-	%"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::Function"*, %"struct.llvm::Function"* }
-	%"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::Function"*, %"struct.llvm::BasicBlock"* }
-	%"struct.llvm::TargetData" = type { %"struct.llvm::FunctionPass", i1, i8, i8, i8, i8, i8, i8, i8, i8 }
-	%"struct.llvm::TargetFrameInfo" = type { i32 (...)**, i32, i32, i32 }
-	%"struct.llvm::TargetInstrDescriptor" = type { i8*, i32, i32, i32, i1, i32, i32, i32, i32, i32, i32*, i32* }
-	%"struct.llvm::TargetInstrInfo" = type { i32 (...)**, %"struct.llvm::TargetInstrDescriptor"*, i32, i32 }
-	%"struct.llvm::TargetMachine" = type { i32 (...)**, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::TargetData", %"struct.llvm::IntrinsicLowering"* }
-	%"struct.llvm::TargetRegClassInfo" = type { i32 (...)**, i32, i32, i32 }
-	%"struct.llvm::TargetRegInfo" = type { i32 (...)**, %"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >", %"struct.llvm::TargetMachine"* }
-	%"struct.llvm::Type" = type { %"struct.llvm::Value", i32, i32, i1, i32, %"struct.llvm::Type"*, %"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" }
-	%"struct.llvm::Use" = type { %"struct.llvm::Value"*, %"struct.llvm::User"*, %"struct.llvm::Use"*, %"struct.llvm::Use"* }
-	%"struct.llvm::User" = type { %"struct.llvm::Value", %"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" }
-	%"struct.llvm::Value" = type { i32 (...)**, %"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::PATypeHolder", i32 }
-	%"struct.llvm::_GLOBAL__N_::InsertPrologEpilogCode" = type { %"struct.llvm::MachineFunctionPass" }
-	%"struct.llvm::ilist<llvm::MachineInstr>" = type { %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" }
-	%"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>" = type { %"struct.llvm::MachineBasicBlock"* }
-	%"struct.llvm::ilist_traits<llvm::Argument>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" }
-	%"struct.llvm::ilist_traits<llvm::Instruction>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" }
-	%"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", %"struct.llvm::Argument"*, %"struct.llvm::Argument"* }
-	%"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", %"struct.llvm::BasicBlock"*, %"struct.llvm::BasicBlock"* }
-	%"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::ilist_traits<llvm::Instruction>", %"struct.llvm::Instruction"*, %"struct.llvm::Instruction"* }
-	%"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" = type { %"struct.llvm::MachineBasicBlock"*, %"struct.llvm::MachineBasicBlock"* }
-	%"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" = type { %"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>", %"struct.llvm::MachineInstr"*, %"struct.llvm::MachineInstr"* }
-	%"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >" = type { %"struct.llvm::Use"*, %"struct.llvm::Use"* }
-	%"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" = type { %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"** }
-	%"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" = type { %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"** }
-	%"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" = type { %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"**, %"struct.llvm::PassInfo"** }
-	%"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" = type { %"struct.llvm::TargetFrameInfo"**, %"struct.llvm::TargetFrameInfo"**, %"struct.llvm::TargetFrameInfo"** }
-	%"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" = type { %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"**, %"struct.llvm::AbstractTypeUser"** }
-	%"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" = type { %"struct.llvm::MachineInstr"**, %"struct.llvm::MachineInstr"**, %"struct.llvm::MachineInstr"** }
-	%"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" = type { %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"*, %"struct.llvm::MachineOperand"* }
-	%"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" = type { %"struct.llvm::PATypeHandle"*, %"struct.llvm::PATypeHandle"*, %"struct.llvm::PATypeHandle"* }
-	%"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" = type { %"struct.llvm::Use"*, %"struct.llvm::Use"*, %"struct.llvm::Use"* }
-	%"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" = type { %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"* }
-	%"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" }
-	%"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" }
-	%"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" }
-	%"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" }
-	%"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" }
-	%"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" }
-	%"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" }
-	%"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" }
-	%"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" }
-	%"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
-	%"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>" = type { %"struct.llvm::PassInfo"*, %"struct.llvm::Pass"* }
-	%"struct.std::pair<const llvm::Value* const,int>" = type { %"struct.llvm::Value"*, i32 }
-	%"struct.std::type_info" = type { i32 (...)**, i8* }
-	%"struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" }
-	%"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" }
-	%"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" }
-	%"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" }
-	%"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" }
-	%"struct.std::vector<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" }
-	%"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" }
-	%"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" }
-	%"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" }
-	%"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" }
-	%"union.llvm::MachineOperand::._65" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* }
-
-declare void @_Znwj()
-
-declare void @_ZN4llvm12MachineInstrC1Esjbb()
-
-declare void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_()
-
-declare void @_ZNK4llvm8Function15getFunctionTypeEv()
-
-declare void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE()
-
-declare void @_ZNK4llvm19MachineInstrBuilder7addSImmEi()
-
-define void @_ZN4llvm11_GLOBAL__N_22InsertPrologEpilogCode20runOnMachineFunctionERNS_15MachineFunctionE(%"struct.llvm::MachineFunction"* %F) {
-entry:
-	%tmp.8.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.0.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetFrameInfo"*> [#uses=0]
-
-invoke_catch.0.i:		; preds = %invoke_cont.49.i, %invoke_cont.48.i, %invoke_cont.47.i, %invoke_cont.i53.i, %no_exit.i, %invoke_cont.44.i, %invoke_cont.43.i, %invoke_cont.42.i, %invoke_cont.41.i, %invoke_cont.40.i, %invoke_cont.39.i, %invoke_cont.38.i, %invoke_cont.37.i, %then.2.i, %invoke_cont.35.i, %invoke_cont.34.i, %then.1.i, %endif.0.i, %invoke_cont.9.i, %invoke_cont.8.i, %invoke_cont.7.i, %invoke_cont.i.i, %then.0.i, %invoke_cont.4.i, %invoke_cont.3.i, %invoke_cont.2.i, %invoke_cont.1.i, %endif.0.i.i, %tmp.7.i.noexc.i, %invoke_cont.0.i, %entry
-	ret void
-
-invoke_cont.0.i:		; preds = %entry
-	%tmp.7.i1.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %tmp.7.i.noexc.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetFrameInfo"*> [#uses=2]
-
-tmp.7.i.noexc.i:		; preds = %invoke_cont.0.i
-	%tmp.17.i2.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.7.i1.i )
-			to label %endif.0.i.i unwind label %invoke_catch.0.i		; <i32> [#uses=0]
-
-endif.0.i.i:		; preds = %tmp.7.i.noexc.i
-	%tmp.38.i4.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.7.i1.i )
-			to label %tmp.38.i.noexc.i unwind label %invoke_catch.0.i		; <i32> [#uses=0]
-
-tmp.38.i.noexc.i:		; preds = %endif.0.i.i
-	br i1 false, label %invoke_cont.1.i, label %then.1.i.i
-
-then.1.i.i:		; preds = %tmp.38.i.noexc.i
-	ret void
-
-invoke_cont.1.i:		; preds = %tmp.38.i.noexc.i
-	%tmp.21.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.2.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetRegInfo"*> [#uses=1]
-
-invoke_cont.2.i:		; preds = %invoke_cont.1.i
-	%tmp.28.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.21.i )
-			to label %invoke_cont.3.i unwind label %invoke_catch.0.i		; <i32> [#uses=0]
-
-invoke_cont.3.i:		; preds = %invoke_cont.2.i
-	%tmp.36.i = invoke %"struct.llvm::TargetInstrInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.4.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetInstrInfo"*> [#uses=1]
-
-invoke_cont.4.i:		; preds = %invoke_cont.3.i
-	%tmp.43.i = invoke i1 null( %"struct.llvm::TargetInstrInfo"* %tmp.36.i, i16 383, i64 0 )
-			to label %invoke_cont.5.i unwind label %invoke_catch.0.i		; <i1> [#uses=1]
-
-invoke_cont.5.i:		; preds = %invoke_cont.4.i
-	br i1 %tmp.43.i, label %then.0.i, label %else.i
-
-then.0.i:		; preds = %invoke_cont.5.i
-	invoke void @_Znwj( )
-			to label %tmp.0.i.noexc.i unwind label %invoke_catch.0.i
-
-tmp.0.i.noexc.i:		; preds = %then.0.i
-	invoke void @_ZN4llvm12MachineInstrC1Esjbb( )
-			to label %invoke_cont.i.i unwind label %cond_true.i.i
-
-cond_true.i.i:		; preds = %tmp.0.i.noexc.i
-	ret void
-
-invoke_cont.i.i:		; preds = %tmp.0.i.noexc.i
-	invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
-			to label %invoke_cont.7.i unwind label %invoke_catch.0.i
-
-invoke_cont.7.i:		; preds = %invoke_cont.i.i
-	invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
-			to label %invoke_cont.8.i unwind label %invoke_catch.0.i
-
-invoke_cont.8.i:		; preds = %invoke_cont.7.i
-	invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
-			to label %invoke_cont.9.i unwind label %invoke_catch.0.i
-
-invoke_cont.9.i:		; preds = %invoke_cont.8.i
-	invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
-			to label %endif.0.i unwind label %invoke_catch.0.i
-
-else.i:		; preds = %invoke_cont.5.i
-	ret void
-
-endif.0.i:		; preds = %invoke_cont.9.i
-	invoke void @_ZNK4llvm8Function15getFunctionTypeEv( )
-			to label %invoke_cont.33.i unwind label %invoke_catch.0.i
-
-invoke_cont.33.i:		; preds = %endif.0.i
-	br i1 false, label %then.1.i, label %endif.1.i
-
-then.1.i:		; preds = %invoke_cont.33.i
-	invoke void @_ZNK4llvm8Function15getFunctionTypeEv( )
-			to label %invoke_cont.34.i unwind label %invoke_catch.0.i
-
-invoke_cont.34.i:		; preds = %then.1.i
-	%tmp.121.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.35.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetRegInfo"*> [#uses=1]
-
-invoke_cont.35.i:		; preds = %invoke_cont.34.i
-	%tmp.128.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.121.i )
-			to label %invoke_cont.36.i unwind label %invoke_catch.0.i		; <i32> [#uses=0]
-
-invoke_cont.36.i:		; preds = %invoke_cont.35.i
-	br i1 false, label %then.2.i, label %endif.1.i
-
-then.2.i:		; preds = %invoke_cont.36.i
-	%tmp.140.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.37.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetRegInfo"*> [#uses=0]
-
-invoke_cont.37.i:		; preds = %then.2.i
-	%tmp.148.i = invoke %"struct.llvm::TargetRegInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.38.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetRegInfo"*> [#uses=1]
-
-invoke_cont.38.i:		; preds = %invoke_cont.37.i
-	%tmp.155.i = invoke i32 null( %"struct.llvm::TargetRegInfo"* %tmp.148.i, %"struct.llvm::Type"* null, i1 false )
-			to label %invoke_cont.39.i unwind label %invoke_catch.0.i		; <i32> [#uses=0]
-
-invoke_cont.39.i:		; preds = %invoke_cont.38.i
-	%tmp.163.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.40.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetFrameInfo"*> [#uses=1]
-
-invoke_cont.40.i:		; preds = %invoke_cont.39.i
-	%tmp.170.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.163.i )
-			to label %invoke_cont.41.i unwind label %invoke_catch.0.i		; <i32> [#uses=0]
-
-invoke_cont.41.i:		; preds = %invoke_cont.40.i
-	%tmp.177.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.42.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetFrameInfo"*> [#uses=1]
-
-invoke_cont.42.i:		; preds = %invoke_cont.41.i
-	%tmp.184.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.177.i )
-			to label %invoke_cont.43.i unwind label %invoke_catch.0.i		; <i32> [#uses=1]
-
-invoke_cont.43.i:		; preds = %invoke_cont.42.i
-	%tmp.191.i = invoke %"struct.llvm::TargetFrameInfo"* null( %"struct.llvm::TargetMachine"* null )
-			to label %invoke_cont.44.i unwind label %invoke_catch.0.i		; <%"struct.llvm::TargetFrameInfo"*> [#uses=1]
-
-invoke_cont.44.i:		; preds = %invoke_cont.43.i
-	%tmp.198.i = invoke i32 null( %"struct.llvm::TargetFrameInfo"* %tmp.191.i, %"struct.llvm::MachineFunction"* %F, i1* null )
-			to label %invoke_cont.45.i unwind label %invoke_catch.0.i		; <i32> [#uses=0]
-
-invoke_cont.45.i:		; preds = %invoke_cont.44.i
-	br i1 false, label %no_exit.i, label %endif.1.i
-
-no_exit.i:		; preds = %invoke_cont.50.i, %invoke_cont.45.i
-	%nextArgOffset.0.i.1 = phi i32 [ %tmp.221.i, %invoke_cont.50.i ], [ 0, %invoke_cont.45.i ]		; <i32> [#uses=1]
-	invoke void @_Znwj( )
-			to label %tmp.0.i.noexc55.i unwind label %invoke_catch.0.i
-
-tmp.0.i.noexc55.i:		; preds = %no_exit.i
-	invoke void @_ZN4llvm12MachineInstrC1Esjbb( )
-			to label %invoke_cont.i53.i unwind label %cond_true.i52.i
-
-cond_true.i52.i:		; preds = %tmp.0.i.noexc55.i
-	ret void
-
-invoke_cont.i53.i:		; preds = %tmp.0.i.noexc55.i
-	invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
-			to label %invoke_cont.47.i unwind label %invoke_catch.0.i
-
-invoke_cont.47.i:		; preds = %invoke_cont.i53.i
-	invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
-			to label %invoke_cont.48.i unwind label %invoke_catch.0.i
-
-invoke_cont.48.i:		; preds = %invoke_cont.47.i
-	invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
-			to label %invoke_cont.49.i unwind label %invoke_catch.0.i
-
-invoke_cont.49.i:		; preds = %invoke_cont.48.i
-	invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
-			to label %invoke_cont.50.i unwind label %invoke_catch.0.i
-
-invoke_cont.50.i:		; preds = %invoke_cont.49.i
-	%tmp.221.i = add i32 %nextArgOffset.0.i.1, %tmp.184.i		; <i32> [#uses=1]
-	br i1 false, label %no_exit.i, label %endif.1.i
-
-endif.1.i:		; preds = %invoke_cont.50.i, %invoke_cont.45.i, %invoke_cont.36.i, %invoke_cont.33.i
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-04-07-ScalarEvolutionCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-04-07-ScalarEvolutionCrash.ll
deleted file mode 100644
index b4eb3db..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2004-04-07-ScalarEvolutionCrash.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-define void @.outPlank_21() {
-entry:
-        br i1 false, label %loopexit.0, label %no_exit.0
-
-no_exit.0:              ; preds = %entry
-        ret void
-
-loopexit.0:             ; preds = %entry
-        br i1 false, label %no_exit.1, label %loopexit.1
-
-no_exit.1:              ; preds = %loopexit.2, %loopexit.0
-        %i.0.0 = phi i32 [ %inc, %loopexit.2 ], [ 0, %loopexit.0 ]              ; <i32> [#uses=1]
-        br i1 false, label %loopexit.2, label %no_exit.2
-
-no_exit.2:              ; preds = %no_exit.1
-        ret void
-
-loopexit.2:             ; preds = %no_exit.1
-        %inc = add i32 %i.0.0, 1                ; <i32> [#uses=1]
-        br i1 false, label %no_exit.1, label %loopexit.1
-
-loopexit.1:             ; preds = %loopexit.2, %loopexit.0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-11-InvokeCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-11-InvokeCrash.ll
deleted file mode 100644
index afee7e1..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-11-InvokeCrash.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-define void @_ZN5ArrayISt7complexIdEEC2ERK10dim_vector() {
-entry:
-        %tmp.7 = invoke i32 @_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector( )
-                        to label %invoke_cont.0 unwind label %cond_true.1               ; <i32> [#uses=2]
-
-cond_true.1:            ; preds = %entry
-        unwind
-
-invoke_cont.0:          ; preds = %entry
-        %tmp.4.i = bitcast i32 %tmp.7 to i32            ; <i32> [#uses=0]
-        %tmp.14.0.i5 = add i32 %tmp.7, -1               ; <i32> [#uses=1]
-        br label %no_exit.i
-
-no_exit.i:              ; preds = %no_exit.i, %invoke_cont.0
-        %tmp.14.0.i.0 = phi i32 [ %tmp.14.0.i, %no_exit.i ], [ %tmp.14.0.i5, %invoke_cont.0 ]           ; <i32> [#uses=1]
-        %tmp.14.0.i = add i32 %tmp.14.0.i.0, -1         ; <i32> [#uses=1]
-        br label %no_exit.i
-}
-
-declare i32 @_ZN5ArrayISt7complexIdEE8get_sizeERK10dim_vector()
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-17-TruncateExprCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-17-TruncateExprCrash.ll
deleted file mode 100644
index a1beec6..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-17-TruncateExprCrash.ll
+++ /dev/null
@@ -1,61 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-declare void @q_atomic_increment()
-
-declare void @_Z9qt_assertPKcS0_i()
-
-define void @_ZN13QMetaResourceC1EPKh() {
-entry:
-	invoke void @_Z9qt_assertPKcS0_i( )
-			to label %endif.1 unwind label %then.i.i551
-
-then.i.i551:		; preds = %entry
-	ret void
-
-endif.1:		; preds = %entry
-	br i1 false, label %then.2, label %then.i.i
-
-then.2:		; preds = %endif.1
-	invoke void @q_atomic_increment( )
-			to label %loopentry.0 unwind label %invoke_catch.6
-
-invoke_catch.6:		; preds = %then.2
-	ret void
-
-loopentry.0:		; preds = %then.2
-	br i1 false, label %shortcirc_next.i, label %endif.3
-
-endif.3:		; preds = %loopentry.0
-	ret void
-
-shortcirc_next.i:		; preds = %loopentry.0
-	br i1 false, label %_ZNK7QString2atEi.exit, label %then.i
-
-then.i:		; preds = %shortcirc_next.i
-	ret void
-
-_ZNK7QString2atEi.exit:		; preds = %shortcirc_next.i
-	br i1 false, label %endif.4, label %then.4
-
-then.4:		; preds = %_ZNK7QString2atEi.exit
-	ret void
-
-endif.4:		; preds = %_ZNK7QString2atEi.exit
-	%tmp.115 = load i8* null		; <i8> [#uses=1]
-	br i1 false, label %loopexit.1, label %no_exit.0
-
-no_exit.0:		; preds = %no_exit.0, %endif.4
-	%bytes_in_len.4.5 = phi i8 [ %dec, %no_exit.0 ], [ %tmp.115, %endif.4 ]		; <i8> [#uses=1]
-	%off.5.5.in = phi i32 [ %off.5.5, %no_exit.0 ], [ 0, %endif.4 ]		; <i32> [#uses=1]
-	%off.5.5 = add i32 %off.5.5.in, 1		; <i32> [#uses=2]
-	%dec = add i8 %bytes_in_len.4.5, -1		; <i8> [#uses=2]
-	%tmp.123631 = icmp eq i8 %dec, 0		; <i1> [#uses=1]
-	br i1 %tmp.123631, label %loopexit.1, label %no_exit.0
-
-loopexit.1:		; preds = %no_exit.0, %endif.4
-	%off.5.in.6 = phi i32 [ 0, %endif.4 ], [ %off.5.5, %no_exit.0 ]		; <i32> [#uses=0]
-	ret void
-
-then.i.i:		; preds = %endif.1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-26-ExitValueCompute.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-26-ExitValueCompute.ll
deleted file mode 100644
index 853d5ad..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-02-26-ExitValueCompute.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | \
-; RUN:   grep {ret i32 152}
-
-define i32 @main() {
-entry:
-        br label %no_exit
-
-no_exit:                ; preds = %no_exit, %entry
-        %i.1.0 = phi i32 [ 0, %entry ], [ %inc, %no_exit ]              ; <i32> [#uses=2]
-        %tmp.4 = icmp sgt i32 %i.1.0, 50                ; <i1> [#uses=1]
-        %tmp.7 = select i1 %tmp.4, i32 100, i32 0               ; <i32> [#uses=1]
-        %i.0 = add i32 %i.1.0, 1                ; <i32> [#uses=1]
-        %inc = add i32 %i.0, %tmp.7             ; <i32> [#uses=3]
-        %tmp.1 = icmp slt i32 %inc, 100         ; <i1> [#uses=1]
-        br i1 %tmp.1, label %no_exit, label %loopexit
-
-loopexit:               ; preds = %no_exit
-        ret i32 %inc
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-06-15-InstMoveCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-06-15-InstMoveCrash.ll
deleted file mode 100644
index ba4db9f..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-06-15-InstMoveCrash.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-define void @main() {
-entry:
-        br label %no_exit.1.outer
-
-no_exit.1.outer:                ; preds = %endif.0, %entry
-        %l_14237116.1.0.ph = phi i8 [ -46, %entry ], [ 0, %endif.0 ]            ; <i8> [#uses=1]
-        %i.0.0.0.ph = phi i32 [ 0, %entry ], [ %inc.1, %endif.0 ]               ; <i32> [#uses=1]
-        br label %no_exit.1
-
-no_exit.1:              ; preds = %_Z13func_47880058cc.exit, %no_exit.1.outer
-        br i1 false, label %_Z13func_47880058cc.exit, label %then.i
-
-then.i:         ; preds = %no_exit.1
-        br label %_Z13func_47880058cc.exit
-
-_Z13func_47880058cc.exit:               ; preds = %then.i, %no_exit.1
-        br i1 false, label %then.0, label %no_exit.1
-
-then.0:         ; preds = %_Z13func_47880058cc.exit
-        %tmp.6 = bitcast i8 %l_14237116.1.0.ph to i8            ; <i8> [#uses=1]
-        br i1 false, label %endif.0, label %then.1
-
-then.1:         ; preds = %then.0
-        br label %endif.0
-
-endif.0:                ; preds = %then.1, %then.0
-        %inc.1 = add i32 %i.0.0.0.ph, 1         ; <i32> [#uses=2]
-        %tmp.2 = icmp sgt i32 %inc.1, 99                ; <i1> [#uses=1]
-        br i1 %tmp.2, label %loopexit.0, label %no_exit.1.outer
-
-loopexit.0:             ; preds = %endif.0
-        %tmp.28 = zext i8 %tmp.6 to i32         ; <i32> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-11-18-Crash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-11-18-Crash.ll
deleted file mode 100644
index 5ee8cea..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2005-11-18-Crash.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
- at fixtab = external global [29 x [29 x [2 x i32]]]               ; <[29 x [29 x [2 x i32]]]*> [#uses=1]
-
-define void @init_optabs() {
-entry:
-        br label %no_exit.0
-
-no_exit.0:              ; preds = %no_exit.0, %entry
-        %p.0.0 = phi i32* [ getelementptr ([29 x [29 x [2 x i32]]]* @fixtab, i32 0, i32 0, i32 0, i32 0), %entry ], [ %inc.0, %no_exit.0 ]               ; <i32*> [#uses=1]
-        %inc.0 = getelementptr i32* %p.0.0, i32 1               ; <i32*> [#uses=1]
-        br i1 false, label %no_exit.0, label %no_exit.1
-
-no_exit.1:              ; preds = %no_exit.0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-03-31-NegativeStride.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-03-31-NegativeStride.ll
deleted file mode 100644
index 32abee9..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-03-31-NegativeStride.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; PR726
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | \
-; RUN:   grep {ret i32 27}
-
-; Make sure to compute the right exit value based on negative strides.
-
-define i32 @test() {
-entry:
-        br label %cond_true
-
-cond_true:              ; preds = %cond_true, %entry
-        %a.0.0 = phi i32 [ 10, %entry ], [ %tmp4, %cond_true ]          ; <i32> [#uses=2]
-        %b.0.0 = phi i32 [ 0, %entry ], [ %tmp2, %cond_true ]           ; <i32> [#uses=1]
-        %tmp2 = add i32 %b.0.0, %a.0.0          ; <i32> [#uses=2]
-        %tmp4 = add i32 %a.0.0, -1              ; <i32> [#uses=2]
-        %tmp = icmp sgt i32 %tmp4, 7            ; <i1> [#uses=1]
-        br i1 %tmp, label %cond_true, label %bb7
-
-bb7:            ; preds = %cond_true
-        ret i32 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-06-16-Indvar-LCSSA-Crash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-06-16-Indvar-LCSSA-Crash.ll
deleted file mode 100644
index 986831b..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-06-16-Indvar-LCSSA-Crash.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-define void @get_block() {
-endif.0:
-        br label %no_exit.30
-
-no_exit.30:             ; preds = %no_exit.30, %endif.0
-        %x.12.0 = phi i32 [ %inc.28, %no_exit.30 ], [ -2, %endif.0 ]            ; <i32> [#uses=1]
-        %tmp.583 = load i16* null               ; <i16> [#uses=1]
-        %tmp.584 = zext i16 %tmp.583 to i32             ; <i32> [#uses=1]
-        %tmp.588 = load i32* null               ; <i32> [#uses=1]
-        %tmp.589 = mul i32 %tmp.584, %tmp.588           ; <i32> [#uses=1]
-        %tmp.591 = add i32 %tmp.589, 0          ; <i32> [#uses=1]
-        %inc.28 = add i32 %x.12.0, 1            ; <i32> [#uses=2]
-        %tmp.565 = icmp sgt i32 %inc.28, 3              ; <i1> [#uses=1]
-        br i1 %tmp.565, label %loopexit.30, label %no_exit.30
-
-loopexit.30:            ; preds = %no_exit.30
-        %tmp.591.lcssa = phi i32 [ %tmp.591, %no_exit.30 ]              ; <i32> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-09-20-LFTR-Crash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-09-20-LFTR-Crash.ll
deleted file mode 100644
index 6a478ab..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-09-20-LFTR-Crash.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-; ModuleID = '2006-09-20-LFTR-Crash.ll'
-	%struct.p7prior_s = type { i32, i32, [200 x float], [200 x [7 x float]], i32, [200 x float], [200 x [20 x float]], i32, [200 x float], [200 x [20 x float]] }
-
-define void @P7DefaultPrior() {
-entry:
-	switch i32 0, label %UnifiedReturnBlock [
-		 i32 2, label %bb160
-		 i32 3, label %bb
-	]
-
-bb:		; preds = %entry
-	br i1 false, label %cond_true.i, label %sre_malloc.exit
-
-cond_true.i:		; preds = %bb
-	unreachable
-
-sre_malloc.exit:		; preds = %bb
-	br label %cond_true
-
-cond_true:		; preds = %cond_true66, %cond_true, %sre_malloc.exit
-	%tmp59 = phi i32 [ 1, %sre_malloc.exit ], [ %phitmp, %cond_true66 ], [ %tmp59, %cond_true ]		; <i32> [#uses=2]
-	%indvar245.0.ph = phi i32 [ 0, %sre_malloc.exit ], [ %indvar.next246, %cond_true66 ], [ %indvar245.0.ph, %cond_true ]		; <i32> [#uses=2]
-	br i1 false, label %bb57, label %cond_true
-
-bb57:		; preds = %cond_true
-	%tmp65 = icmp sgt i32 0, %tmp59		; <i1> [#uses=1]
-	%indvar.next246 = add i32 %indvar245.0.ph, 1		; <i32> [#uses=2]
-	br i1 %tmp65, label %cond_true66, label %bb69
-
-cond_true66:		; preds = %bb57
-	%q.1.0 = bitcast i32 %indvar.next246 to i32		; <i32> [#uses=1]
-	%phitmp = add i32 %q.1.0, 1		; <i32> [#uses=1]
-	br label %cond_true
-
-bb69:		; preds = %bb57
-	ret void
-
-bb160:		; preds = %entry
-	ret void
-
-UnifiedReturnBlock:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-12-10-BitCast.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-12-10-BitCast.ll
deleted file mode 100644
index b2f8258..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2006-12-10-BitCast.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-target datalayout = "e-p:32:32"
-target triple = "i686-apple-darwin8"
-	%struct.vorbis_dsp_state = type { i32, %struct.vorbis_info*, float**, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* }
-	%struct.vorbis_info = type { i32, i32, i32, i32, i32, i32, i32, i8* }
-
-define void @_ve_envelope_search() {
-entry:
-	br i1 false, label %cond_true27, label %bb137
-
-cond_true27:		; preds = %entry
-	br i1 false, label %cond_true52, label %bb80
-
-cond_true52:		; preds = %cond_true27
-	%tmp152.i = bitcast float 0.000000e+00 to i32		; <i32> [#uses=1]
-	br label %cond_next182.i
-
-cond_next182.i:		; preds = %cond_next182.i, %cond_true52
-	%decay.i.0 = phi i32 [ %tmp195.i.upgrd.1, %cond_next182.i ], [ %tmp152.i, %cond_true52 ]		; <i32> [#uses=1]
-	%tmp194.i53 = bitcast i32 %decay.i.0 to float		; <float> [#uses=1]
-	%tmp195.i = fsub float %tmp194.i53, 8.000000e+00		; <float> [#uses=1]
-	%tmp195.i.upgrd.1 = bitcast float %tmp195.i to i32		; <i32> [#uses=1]
-	br i1 false, label %cond_next182.i, label %bb418.i.preheader
-
-bb418.i.preheader:		; preds = %cond_next182.i
-	ret void
-
-bb80:		; preds = %cond_true27
-	ret void
-
-bb137:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-01-06-TripCount.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-01-06-TripCount.ll
deleted file mode 100644
index dd151e8..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-01-06-TripCount.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; PR1015
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | not grep {ret i32 0}
-
-target datalayout = "e-p:32:32"
-target triple = "i686-apple-darwin8"
- at foo = internal constant [5 x i8] c"\00abc\00"		; <[5 x i8]*> [#uses=1]
- at str = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
-
-
-define i32 @test(i32 %J) {
-entry:
-	br label %bb2
-
-bb:		; preds = %cond_next, %cond_true
-	%tmp1 = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %bb2
-
-bb2:		; preds = %bb, %entry
-	%i.0 = phi i32 [ 0, %entry ], [ %tmp1, %bb ]		; <i32> [#uses=4]
-	%tmp = icmp eq i32 %i.0, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %cond_true, label %cond_next
-
-cond_true:		; preds = %bb2
-	br label %bb
-
-cond_next:		; preds = %bb2
-	%tmp2 = getelementptr [5 x i8]* @foo, i32 0, i32 %i.0		; <i8*> [#uses=1]
-	%tmp3 = load i8* %tmp2		; <i8> [#uses=1]
-	%tmp5 = icmp eq i8 %tmp3, 0		; <i1> [#uses=1]
-	br i1 %tmp5, label %bb6, label %bb
-
-bb6:		; preds = %cond_next
-	br label %return
-
-return:		; preds = %bb6
-	ret i32 %i.0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-01-08-X86-64-Pointer.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-01-08-X86-64-Pointer.ll
deleted file mode 100644
index 7078494..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-01-08-X86-64-Pointer.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=x86-64 | grep {(%rdi,%rax,8)}
-; RUN: llvm-as < %s | llc -march=x86-64 | not grep {addq.*8}
-
-define void @foo(double* %y) nounwind {
-entry:
-        br label %bb
-
-bb:
-        %i = phi i64 [ 0, %entry ], [ %k, %bb ]
-        %j = getelementptr double* %y, i64 %i
-        store double 0.000000e+00, double* %j
-        %k = add i64 %i, 1
-        %n = icmp eq i64 %k, 0
-        br i1 %n, label %return, label %bb
-
-return:
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll
deleted file mode 100644
index 363c98c..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll
+++ /dev/null
@@ -1,117 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-; PR1487
-
-	%struct.AVClass = type { i8*, i8* (i8*)*, %struct.AVOption* }
-	%struct.AVCodec = type { i8*, i32, i32, i32, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, i8*, i32, i8*)*, i32 (%struct.AVCodecContext*)*, i32 (%struct.AVCodecContext*, i8*, i32*, i8*, i32)*, i32, %struct.AVCodec*, void (%struct.AVCodecContext*)*, %struct.AVCodecTag*, i32* }
-	%struct.AVCodecContext = type { %struct.AVClass*, i32, i32, i32, i32, i32, i8*, i32, %struct.AVCodecTag, i32, i32, i32, i32, i32, void (%struct.AVCodecContext*, %struct.AVFrame*, i32*, i32, i32, i32)*, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, float, i32, i32, i32, %struct.AVCodec*, i8*, i32, i32, void (%struct.AVCodecContext*, i8*, i32, i32)*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, [32 x i8], i32, i32, i32, i32, i32, i32, i32, float, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, void (%struct.AVCodecContext*, %struct.AVFrame*)*, i32, i32, i32, i32, i8*, i8*, float, float, i32, %struct.RcOverride*, i32, i8*, i32, i32, i32, float, float, float, float, i32, float, float, float, float, float, i32, i32, i32, i32*, i32, i32, i32, i32, %struct.AVCodecTag, %struct.AVFrame*, i32, i32, [4 x i64], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, i32*)*, i32, i32, i32, i32, i32, i32, i8*, i32, i32, i32, i32, i32, i32, i16*, i16*, i32, i32, i32, i32, %struct.AVPaletteControl*, i32, i32 (%struct.AVCodecContext*, %struct.AVFrame*)*, i32, i32, i32, i32, i32, i32, i32, i32 (%struct.AVCodecContext*, i32 (%struct.AVCodecContext*, i8*)*, i8**, i32*, i32)*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64 }
-	%struct.AVCodecTag = type { i32, i32 }
-	%struct.AVFrame = type { [4 x i8*], [4 x i32], [4 x i8*], i32, i32, i64, i32, i32, i32, i32, i32, i8*, i32, i8*, [2 x [2 x i16]*], i32*, i8, i8*, [4 x i64], i32, i32, i32, i32, i32, %struct.AVPanScan*, i32, i32, i16*, [2 x i8*] }
-	%struct.AVOption = type { i8*, i8*, i32, i32, double, double, double, i32, i8* }
-	%struct.AVPaletteControl = type { i32, [256 x i32] }
-	%struct.AVPanScan = type { i32, i32, i32, [3 x [2 x i16]] }
-	%struct.RcOverride = type { i32, i32, i32, float }
-
-define i32 @smc_decode_frame(%struct.AVCodecContext* %avctx, i8* %data, i32* %data_size, i8* %buf, i32 %buf_size) {
-entry:
-	br i1 false, label %cond_next, label %cond_true
-
-cond_true:		; preds = %entry
-	ret i32 -1
-
-cond_next:		; preds = %entry
-	br i1 false, label %bb.outer5.split.split.split.us, label %cond_true194.split
-
-bb.outer5.split.split.split.us:		; preds = %cond_next
-	br i1 false, label %cond_next188.us503.us, label %bb.us481
-
-bb275.us493.us:		; preds = %cond_next188.us503.us, %cond_next188.us503.us
-	ret i32 0
-
-cond_next188.us503.us:		; preds = %bb.outer5.split.split.split.us
-	switch i32 0, label %bb1401 [
-		 i32 0, label %cond_next202.bb215_crit_edge.split
-		 i32 16, label %bb215
-		 i32 32, label %bb275.us493.us
-		 i32 48, label %bb275.us493.us
-		 i32 64, label %cond_next202.bb417_crit_edge.split
-		 i32 80, label %bb417
-		 i32 96, label %cond_next202.bb615_crit_edge.split
-		 i32 112, label %bb615
-		 i32 128, label %cond_next202.bb716_crit_edge.split
-		 i32 144, label %bb716
-		 i32 160, label %cond_next202.bb882_crit_edge.split
-		 i32 176, label %bb882
-		 i32 192, label %cond_next202.bb1062_crit_edge.split
-		 i32 208, label %bb1062
-		 i32 224, label %bb1326.us.outer.outer
-	]
-
-bb.us481:		; preds = %bb.outer5.split.split.split.us
-	ret i32 0
-
-cond_true194.split:		; preds = %cond_next
-	ret i32 %buf_size
-
-cond_next202.bb1062_crit_edge.split:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-cond_next202.bb882_crit_edge.split:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-cond_next202.bb716_crit_edge.split:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-cond_next202.bb615_crit_edge.split:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-cond_next202.bb417_crit_edge.split:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-cond_next202.bb215_crit_edge.split:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-bb215:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-bb417:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-bb615:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-bb716:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-bb882:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-bb1062:		; preds = %cond_next188.us503.us
-	ret i32 0
-
-bb1326.us:		; preds = %bb1326.us.outer.outer, %bb1347.loopexit.us, %bb1326.us
-	%pixel_y.162036.us.ph = phi i32 [ %tmp1352.us, %bb1347.loopexit.us ], [ 0, %bb1326.us.outer.outer ], [ %pixel_y.162036.us.ph, %bb1326.us ]		; <i32> [#uses=2]
-	%stream_ptr.142038.us.ph = phi i32 [ %tmp1339.us, %bb1347.loopexit.us ], [ %stream_ptr.142038.us.ph.ph, %bb1326.us.outer.outer ], [ %stream_ptr.142038.us.ph, %bb1326.us ]		; <i32> [#uses=2]
-	%pixel_x.232031.us = phi i32 [ %tmp1341.us, %bb1326.us ], [ 0, %bb1326.us.outer.outer ], [ 0, %bb1347.loopexit.us ]		; <i32> [#uses=3]
-	%block_ptr.222030.us = add i32 0, %pixel_x.232031.us		; <i32> [#uses=1]
-	%stream_ptr.132032.us = add i32 %pixel_x.232031.us, %stream_ptr.142038.us.ph		; <i32> [#uses=1]
-	%tmp1341.us = add i32 %pixel_x.232031.us, 1		; <i32> [#uses=2]
-	%tmp1344.us = icmp slt i32 %tmp1341.us, 4		; <i1> [#uses=1]
-	br i1 %tmp1344.us, label %bb1326.us, label %bb1347.loopexit.us
-
-bb1347.loopexit.us:		; preds = %bb1326.us
-	%tmp1339.us = add i32 %stream_ptr.132032.us, 1		; <i32> [#uses=2]
-	%tmp1337.us = add i32 %block_ptr.222030.us, 1		; <i32> [#uses=0]
-	%tmp1352.us = add i32 %pixel_y.162036.us.ph, 1		; <i32> [#uses=2]
-	%tmp1355.us = icmp slt i32 %tmp1352.us, 4		; <i1> [#uses=1]
-	br i1 %tmp1355.us, label %bb1326.us, label %bb1358
-
-bb1358:		; preds = %bb1347.loopexit.us
-	br label %bb1326.us.outer.outer
-
-bb1326.us.outer.outer:		; preds = %bb1358, %cond_next188.us503.us
-	%stream_ptr.142038.us.ph.ph = phi i32 [ %tmp1339.us, %bb1358 ], [ 0, %cond_next188.us503.us ]		; <i32> [#uses=1]
-	br label %bb1326.us
-
-bb1401:		; preds = %cond_next188.us503.us
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-11-23-BitcastCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-11-23-BitcastCrash.ll
deleted file mode 100644
index 555cadd..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2007-11-23-BitcastCrash.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-; PR1814
-target datalayout = "e-p:32:32-f64:32:64-i64:32:64-f80:32:32"
-
-define void @FuncAt1938470480(i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i1, i1, i1, i1, i1, i1) {
-EntryBlock:
-	br label %asmBlockAt738ab7f3
-
-asmBlockAt738ab9b0:		; preds = %asmBlockAt738ab7f3
-	%.lcssa6 = phi i64 [ %23, %asmBlockAt738ab7f3 ]		; <i64> [#uses=0]
-	ret void
-
-asmBlockAt738ab7f3:		; preds = %asmBlockAt738ab7f3, %EntryBlock
-	%ebp95 = phi i32 [ 128, %EntryBlock ], [ %24, %asmBlockAt738ab7f3 ]		; <i32> [#uses=2]
-	sub <4 x i16> zeroinitializer, zeroinitializer		; <<4 x i16>>:22 [#uses=1]
-	bitcast <4 x i16> %22 to i64		; <i64>:23 [#uses=1]
-	add i32 %ebp95, -64		; <i32>:24 [#uses=1]
-	icmp ult i32 %ebp95, 64		; <i1>:25 [#uses=1]
-	br i1 %25, label %asmBlockAt738ab9b0, label %asmBlockAt738ab7f3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-06-15-SCEVExpanderBug.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-06-15-SCEVExpanderBug.ll
deleted file mode 100644
index aac8d97..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-06-15-SCEVExpanderBug.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-; PR2434
-
-define fastcc void @regcppop() nounwind  {
-entry:
-	%tmp61 = add i32 0, -5		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%PL_savestack_ix.tmp.0 = phi i32 [ %tmp61, %entry ], [ %tmp127, %bb ]		; <i32> [#uses=2]
-	%indvar10 = phi i32 [ 0, %entry ], [ %indvar.next11, %bb ]		; <i32> [#uses=2]
-	%tmp13 = mul i32 %indvar10, -4		; <i32> [#uses=0]
-	%tmp111 = add i32 %PL_savestack_ix.tmp.0, -3		; <i32> [#uses=0]
-	%tmp127 = add i32 %PL_savestack_ix.tmp.0, -4		; <i32> [#uses=1]
-	%indvar.next11 = add i32 %indvar10, 1		; <i32> [#uses=1]
-	br label %bb
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-09-02-IVType.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-09-02-IVType.ll
deleted file mode 100644
index 8111cbe..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-09-02-IVType.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep sext | count 1
-; ModuleID = '<stdin>'
-
-	%struct.App1Marker = type <{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>
-	%struct.ComponentInstanceRecord = type <{ [1 x i32] }>
-	%struct.DCPredictors = type { [5 x i16] }
-	%struct.DecodeTable = type { i16, i16, i16, i16, i8**, i8** }
-	%struct.ICMDataProcRecord = type <{ i16 (i8**, i32, i32)*, i32 }>
-	%struct.JPEGBitStream = type { i8*, i32, i32, i32, i32, i32, %struct.App1Marker*, i8*, i32, i16, i16, i32 }
-	%struct.JPEGGlobals = type { [2048 x i8], %struct.JPEGBitStream, i8*, i32, i32, %struct.ComponentInstanceRecord*, %struct.ComponentInstanceRecord*, i32, %struct.OpaqueQTMLMutex*, %struct.Rect, i32, i32, %struct.SharedGlobals, %struct.DCPredictors, i8, i8, void (i8*, i16**, i32, %struct.YUVGeneralParams*)*, %struct.YUVGeneralParams, i16, i16, i32, [5 x i16*], [5 x %struct.DecodeTable*], [5 x %struct.DecodeTable*], [5 x i8], [5 x i8], [4 x [65 x i16]], [4 x %struct.DecodeTable], [4 x %struct.DecodeTable], [4 x i8*], [4 x i8*], i16, i16, i32, i8**, i8**, i8**, i8**, i8**, i8**, i8**, i8**, i8**, i8**, [18 x i8], [18 x i8], [18 x i8], [18 x i8], i32, i32, i8**, i8**, i8, i8, i8, i8, i16, i16, %struct.App1Marker*, i8, i8, i8, i8, i32**, i8*, i16*, i8*, i16*, i8, [3 x i8], i32, [3 x i32], [3 x i32], [3 x i32], [3 x i32], [3 x i32], [3 x i16*], [3 x i16*], [3 x i8**], [3 x %struct.DecodeTable*], [3 x %struct.DecodeTable*], [3 x i32], i32, [3 x i16*], i32, i32, i32, [3 x i32], i8, i8, i8, i8, %struct.ICMDataProcRecord*, i32, i32, i8**, i8**, i8**, i8**, i32, i32, i8*, i32, i32, i16*, i16*, i8*, i32, i32, i32, i32, i32, i32, i32, [16 x <2 x i64>], [1280 x i8], i8 }
-	%struct.OpaqueQTMLMutex = type opaque
-	%struct.Rect = type { i16, i16, i16, i16 }
-	%struct.SharedDGlobals = type { %struct.DecodeTable, %struct.DecodeTable, %struct.DecodeTable, %struct.DecodeTable }
-	%struct.SharedEGlobals = type { i8**, i8**, i8**, i8** }
-	%struct.SharedGlobals = type { %struct.SharedEGlobals*, %struct.SharedDGlobals* }
-	%struct.YUVGeneralParams = type { i16*, i8*, i8*, i8*, i8*, i8*, void (i8*, i16**, i32, %struct.YUVGeneralParams*)*, i16, i16, i16, [6 x i8], void (i8*, i16**, i32, %struct.YUVGeneralParams*)*, i16, i16 }
- at llvm.used = appending global [1 x i8*] [ i8* bitcast (i16 (%struct.JPEGGlobals*)* @ExtractBufferedBlocksIgnored to i8*) ], section "llvm.metadata"		; <[1 x i8*]*> [#uses=0]
-
-define i16 @ExtractBufferedBlocksIgnored(%struct.JPEGGlobals* %globp) signext nounwind {
-entry:
-	%tmp4311 = getelementptr %struct.JPEGGlobals* %globp, i32 0, i32 70		; <i32*> [#uses=1]
-	%tmp4412 = load i32* %tmp4311, align 16		; <i32> [#uses=2]
-	%tmp4613 = icmp sgt i32 %tmp4412, 0		; <i1> [#uses=1]
-	br i1 %tmp4613, label %bb, label %bb49
-
-bb:		; preds = %bb28, %entry
-	%component.09 = phi i16 [ 0, %entry ], [ %tmp37, %bb28 ]		; <i16> [#uses=2]
-	%tmp12 = sext i16 %component.09 to i32		; <i32> [#uses=2]
-	%tmp6 = getelementptr %struct.JPEGGlobals* %globp, i32 0, i32 77, i32 %tmp12		; <i16**> [#uses=2]
-	%tmp7 = load i16** %tmp6, align 4		; <i16*> [#uses=2]
-	%tmp235 = getelementptr %struct.JPEGGlobals* %globp, i32 0, i32 71, i32 %tmp12		; <i32*> [#uses=1]
-	%tmp246 = load i32* %tmp235, align 4		; <i32> [#uses=2]
-	%tmp267 = icmp sgt i32 %tmp246, 0		; <i1> [#uses=1]
-	br i1 %tmp267, label %bb8, label %bb28
-
-bb8:		; preds = %bb8, %bb
-	%indvar = phi i32 [ 0, %bb ], [ %indvar.next2, %bb8 ]		; <i32> [#uses=3]
-	%theDCTBufferIter.01.rec = shl i32 %indvar, 6		; <i32> [#uses=1]
-	%tmp10.rec = add i32 %theDCTBufferIter.01.rec, 64		; <i32> [#uses=1]
-	%tmp10 = getelementptr i16* %tmp7, i32 %tmp10.rec		; <i16*> [#uses=1]
-	%i.02 = trunc i32 %indvar to i16		; <i16> [#uses=1]
-	%tmp13 = add i16 %i.02, 1		; <i16> [#uses=1]
-	%phitmp = sext i16 %tmp13 to i32		; <i32> [#uses=1]
-	%tmp26 = icmp slt i32 %phitmp, %tmp246		; <i1> [#uses=1]
-	%indvar.next2 = add i32 %indvar, 1		; <i32> [#uses=1]
-	br i1 %tmp26, label %bb8, label %bb28
-
-bb28:		; preds = %bb8, %bb
-	%theDCTBufferIter.0.lcssa = phi i16* [ %tmp7, %bb ], [ %tmp10, %bb8 ]		; <i16*> [#uses=1]
-	store i16* %theDCTBufferIter.0.lcssa, i16** %tmp6, align 4
-	%tmp37 = add i16 %component.09, 1		; <i16> [#uses=2]
-	%phitmp15 = sext i16 %tmp37 to i32		; <i32> [#uses=1]
-	%tmp46 = icmp slt i32 %phitmp15, 42		; <i1> [#uses=1]
-	br i1 %tmp46, label %bb, label %bb49
-
-bb49:		; preds = %bb28, %entry
-	ret i16 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-10-03-CouldNotCompute.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-10-03-CouldNotCompute.ll
deleted file mode 100644
index c78188d..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-10-03-CouldNotCompute.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-; PR2857
-
- at foo = external global i32		; <i32*> [#uses=1]
-
-define void @test(i32 %n, i32 %arg) {
-entry:
-	br i1 false, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	%0 = load i32* @foo, align 4		; <i32> [#uses=1]
-	%1 = sext i32 %0 to i64		; <i64> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %bb.nph
-	%.in = phi i32 [ %2, %bb ], [ %n, %bb.nph ]		; <i32> [#uses=1]
-	%val.02 = phi i64 [ %5, %bb ], [ 0, %bb.nph ]		; <i64> [#uses=2]
-	%result.01 = phi i64 [ %4, %bb ], [ 0, %bb.nph ]		; <i64> [#uses=1]
-	%2 = add i32 %.in, -1		; <i32> [#uses=2]
-	%3 = mul i64 %1, %val.02		; <i64> [#uses=1]
-	%4 = add i64 %3, %result.01		; <i64> [#uses=2]
-	%5 = add i64 %val.02, 1		; <i64> [#uses=1]
-	%6 = icmp sgt i32 %2, 0		; <i1> [#uses=1]
-	br i1 %6, label %bb, label %bb3.bb4_crit_edge
-
-bb3.bb4_crit_edge:		; preds = %bb
-	%.lcssa = phi i64 [ %4, %bb ]		; <i64> [#uses=0]
-	ret void
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-03-Floating.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-03-Floating.ll
deleted file mode 100644
index be8b36f..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-03-Floating.ll
+++ /dev/null
@@ -1,65 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep icmp | count 4
-define void @bar() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%x.0.reg2mem.0 = phi double [ 0.000000e+00, %entry ], [ %1, %bb ]		; <double> [#uses=2]
-	%0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind		; <i32> [#uses=0]
-	%1 = fadd double %x.0.reg2mem.0, 1.000000e+00		; <double> [#uses=2]
-	%2 = fcmp olt double %1, 1.000000e+04		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %return
-
-return:		; preds = %bb
-	ret void
-}
-
-declare i32 @foo(double)
-
-define void @bar2() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%x.0.reg2mem.0 = phi double [ -10.000000e+00, %entry ], [ %1, %bb ]		; <double> [#uses=2]
-	%0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind		; <i32> [#uses=0]
-	%1 = fadd double %x.0.reg2mem.0, 2.000000e+00		; <double> [#uses=2]
-	%2 = fcmp olt double %1, -1.000000e+00		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %return
-
-return:		; preds = %bb
-	ret void
-}
-
-
-define void @bar3() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%x.0.reg2mem.0 = phi double [ 0.000000e+00, %entry ], [ %1, %bb ]		; <double> [#uses=2]
-	%0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind		; <i32> [#uses=0]
-	%1 = fadd double %x.0.reg2mem.0, 1.000000e+00		; <double> [#uses=2]
-	%2 = fcmp olt double %1, -1.000000e+00		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %return
-
-return:		; preds = %bb
-	ret void
-}
-
-define void @bar4() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%x.0.reg2mem.0 = phi double [ 40.000000e+00, %entry ], [ %1, %bb ]		; <double> [#uses=2]
-	%0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind		; <i32> [#uses=0]
-	%1 = fadd double %x.0.reg2mem.0, -1.000000e+00		; <double> [#uses=2]
-	%2 = fcmp olt double %1, 1.000000e+00		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %return
-
-return:		; preds = %bb
-	ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-17-Floating.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-17-Floating.ll
deleted file mode 100644
index c947d3b..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-17-Floating.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep icmp | count 2
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep sitofp | count 1
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep uitofp | count 1
-
-define void @bar() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%x.0.reg2mem.0 = phi double [ 0.000000e+00, %entry ], [ %1, %bb ]		; <double> [#uses=2]
-	%0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind		; <i32> [#uses=0]
-	%1 = fadd double %x.0.reg2mem.0, 1.0e+0		; <double> [#uses=2]
-	%2 = fcmp olt double %1, 2147483646.0e+0		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %return
-
-return:		; preds = %bb
-	ret void
-}
-
-define void @bar1() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%x.0.reg2mem.0 = phi double [ 0.000000e+00, %entry ], [ %1, %bb ]		; <double> [#uses=2]
-	%0 = tail call i32 @foo(double %x.0.reg2mem.0) nounwind		; <i32> [#uses=0]
-	%1 = fadd double %x.0.reg2mem.0, 1.0e+0		; <double> [#uses=2]
-	%2 = fcmp olt double %1, 2147483647.0e+0		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %return
-
-return:		; preds = %bb
-	ret void
-}
-
-declare i32 @foo(double)
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-25-APFloatAssert.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-25-APFloatAssert.ll
deleted file mode 100644
index e611b1f..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2008-11-25-APFloatAssert.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-
-define void @t() nounwind {
-entry:
-	br label %bb23.i91
-
-bb23.i91:		; preds = %bb23.i91, %entry
-	%result.0.i89 = phi ppc_fp128 [ 0xM00000000000000000000000000000000, %entry ], [ %0, %bb23.i91 ]		; <ppc_fp128> [#uses=2]
-	%0 = fmul ppc_fp128 %result.0.i89, %result.0.i89		; <ppc_fp128> [#uses=1]
-	br label %bb23.i91
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-14-shorten_iv_vars.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-14-shorten_iv_vars.ll
deleted file mode 100644
index 134c9c7..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-14-shorten_iv_vars.ll
+++ /dev/null
@@ -1,114 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | not grep {sext}
-; ModuleID = '<stdin>'
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin9.6"
- at a = external global i32*		; <i32**> [#uses=3]
- at b = external global i32*		; <i32**> [#uses=3]
- at c = external global i32*		; <i32**> [#uses=3]
- at d = external global i32*		; <i32**> [#uses=3]
- at e = external global i32*		; <i32**> [#uses=3]
- at f = external global i32*		; <i32**> [#uses=3]
-
-define void @foo() nounwind {
-bb1.thread:
-	br label %bb1
-
-bb1:		; preds = %bb1, %bb1.thread
-	%i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %84, %bb1 ]		; <i32> [#uses=19]
-	%0 = load i32** @a, align 8		; <i32*> [#uses=1]
-	%1 = load i32** @b, align 8		; <i32*> [#uses=1]
-	%2 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
-	%3 = getelementptr i32* %1, i64 %2		; <i32*> [#uses=1]
-	%4 = load i32* %3, align 1		; <i32> [#uses=1]
-	%5 = load i32** @c, align 8		; <i32*> [#uses=1]
-	%6 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
-	%7 = getelementptr i32* %5, i64 %6		; <i32*> [#uses=1]
-	%8 = load i32* %7, align 1		; <i32> [#uses=1]
-	%9 = add i32 %8, %4		; <i32> [#uses=1]
-	%10 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
-	%11 = getelementptr i32* %0, i64 %10		; <i32*> [#uses=1]
-	store i32 %9, i32* %11, align 1
-	%12 = load i32** @a, align 8		; <i32*> [#uses=1]
-	%13 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%14 = load i32** @b, align 8		; <i32*> [#uses=1]
-	%15 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%16 = sext i32 %15 to i64		; <i64> [#uses=1]
-	%17 = getelementptr i32* %14, i64 %16		; <i32*> [#uses=1]
-	%18 = load i32* %17, align 1		; <i32> [#uses=1]
-	%19 = load i32** @c, align 8		; <i32*> [#uses=1]
-	%20 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%21 = sext i32 %20 to i64		; <i64> [#uses=1]
-	%22 = getelementptr i32* %19, i64 %21		; <i32*> [#uses=1]
-	%23 = load i32* %22, align 1		; <i32> [#uses=1]
-	%24 = add i32 %23, %18		; <i32> [#uses=1]
-	%25 = sext i32 %13 to i64		; <i64> [#uses=1]
-	%26 = getelementptr i32* %12, i64 %25		; <i32*> [#uses=1]
-	store i32 %24, i32* %26, align 1
-	%27 = load i32** @a, align 8		; <i32*> [#uses=1]
-	%28 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%29 = load i32** @b, align 8		; <i32*> [#uses=1]
-	%30 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%31 = sext i32 %30 to i64		; <i64> [#uses=1]
-	%32 = getelementptr i32* %29, i64 %31		; <i32*> [#uses=1]
-	%33 = load i32* %32, align 1		; <i32> [#uses=1]
-	%34 = load i32** @c, align 8		; <i32*> [#uses=1]
-	%35 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%36 = sext i32 %35 to i64		; <i64> [#uses=1]
-	%37 = getelementptr i32* %34, i64 %36		; <i32*> [#uses=1]
-	%38 = load i32* %37, align 1		; <i32> [#uses=1]
-	%39 = add i32 %38, %33		; <i32> [#uses=1]
-	%40 = sext i32 %28 to i64		; <i64> [#uses=1]
-	%41 = getelementptr i32* %27, i64 %40		; <i32*> [#uses=1]
-	store i32 %39, i32* %41, align 1
-	%42 = load i32** @d, align 8		; <i32*> [#uses=1]
-	%43 = load i32** @e, align 8		; <i32*> [#uses=1]
-	%44 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
-	%45 = getelementptr i32* %43, i64 %44		; <i32*> [#uses=1]
-	%46 = load i32* %45, align 1		; <i32> [#uses=1]
-	%47 = load i32** @f, align 8		; <i32*> [#uses=1]
-	%48 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
-	%49 = getelementptr i32* %47, i64 %48		; <i32*> [#uses=1]
-	%50 = load i32* %49, align 1		; <i32> [#uses=1]
-	%51 = add i32 %50, %46		; <i32> [#uses=1]
-	%52 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
-	%53 = getelementptr i32* %42, i64 %52		; <i32*> [#uses=1]
-	store i32 %51, i32* %53, align 1
-	%54 = load i32** @d, align 8		; <i32*> [#uses=1]
-	%55 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%56 = load i32** @e, align 8		; <i32*> [#uses=1]
-	%57 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%58 = sext i32 %57 to i64		; <i64> [#uses=1]
-	%59 = getelementptr i32* %56, i64 %58		; <i32*> [#uses=1]
-	%60 = load i32* %59, align 1		; <i32> [#uses=1]
-	%61 = load i32** @f, align 8		; <i32*> [#uses=1]
-	%62 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%63 = sext i32 %62 to i64		; <i64> [#uses=1]
-	%64 = getelementptr i32* %61, i64 %63		; <i32*> [#uses=1]
-	%65 = load i32* %64, align 1		; <i32> [#uses=1]
-	%66 = add i32 %65, %60		; <i32> [#uses=1]
-	%67 = sext i32 %55 to i64		; <i64> [#uses=1]
-	%68 = getelementptr i32* %54, i64 %67		; <i32*> [#uses=1]
-	store i32 %66, i32* %68, align 1
-	%69 = load i32** @d, align 8		; <i32*> [#uses=1]
-	%70 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%71 = load i32** @e, align 8		; <i32*> [#uses=1]
-	%72 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%73 = sext i32 %72 to i64		; <i64> [#uses=1]
-	%74 = getelementptr i32* %71, i64 %73		; <i32*> [#uses=1]
-	%75 = load i32* %74, align 1		; <i32> [#uses=1]
-	%76 = load i32** @f, align 8		; <i32*> [#uses=1]
-	%77 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%78 = sext i32 %77 to i64		; <i64> [#uses=1]
-	%79 = getelementptr i32* %76, i64 %78		; <i32*> [#uses=1]
-	%80 = load i32* %79, align 1		; <i32> [#uses=1]
-	%81 = add i32 %80, %75		; <i32> [#uses=1]
-	%82 = sext i32 %70 to i64		; <i64> [#uses=1]
-	%83 = getelementptr i32* %69, i64 %82		; <i32*> [#uses=1]
-	store i32 %81, i32* %83, align 1
-	%84 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%85 = icmp sgt i32 %84, 23646		; <i1> [#uses=1]
-	br i1 %85, label %return, label %bb1
-
-return:		; preds = %bb1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-15-shorten-iv-vars-2.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-15-shorten-iv-vars-2.ll
deleted file mode 100644
index 4d26803..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-15-shorten-iv-vars-2.ll
+++ /dev/null
@@ -1,160 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -instcombine | llvm-dis | not grep {\[sz\]ext}
-; ModuleID = '<stdin>'
-;extern int *a, *b, *c, *d, *e, *f;  /* 64 bit */
-;extern int K[256];
-;void foo () {
-;  int i;
-;  for (i=0; i<23647; i++) {
-;    a[(i&15)] = b[i&15]+c[i&15];
-;    a[(i+1)&15] = b[(i+1)&15]+c[(i+1)&15];
-;    a[(i+2)&15] = b[(i+2)&15]+c[(i+2)&15];
-;    d[i&15] = e[i&15]+f[i&15] +K[i];
-;    d[(i+1)&15] = e[(i+1)&15]+f[(i+1)&15]+K[i+1];
-;    d[(i+2)&15] = e[(i+2)&15]+f[(i+2)&15]+K[i+2];
-;  }
-;}
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin9.6"
- at a = external global i32*		; <i32**> [#uses=3]
- at b = external global i32*		; <i32**> [#uses=3]
- at c = external global i32*		; <i32**> [#uses=3]
- at d = external global i32*		; <i32**> [#uses=3]
- at e = external global i32*		; <i32**> [#uses=3]
- at f = external global i32*		; <i32**> [#uses=3]
- at K = external global [256 x i32]		; <[256 x i32]*> [#uses=3]
-
-define void @foo() nounwind {
-bb1.thread:
-	br label %bb1
-
-bb1:		; preds = %bb1, %bb1.thread
-	%i.0.reg2mem.0 = phi i32 [ 0, %bb1.thread ], [ %116, %bb1 ]		; <i32> [#uses=22]
-	%0 = load i32** @a, align 8		; <i32*> [#uses=1]
-	%1 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
-	%2 = load i32** @b, align 8		; <i32*> [#uses=1]
-	%3 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
-	%4 = zext i32 %3 to i64		; <i64> [#uses=1]
-	%5 = getelementptr i32* %2, i64 %4		; <i32*> [#uses=1]
-	%6 = load i32* %5, align 1		; <i32> [#uses=1]
-	%7 = load i32** @c, align 8		; <i32*> [#uses=1]
-	%8 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
-	%9 = zext i32 %8 to i64		; <i64> [#uses=1]
-	%10 = getelementptr i32* %7, i64 %9		; <i32*> [#uses=1]
-	%11 = load i32* %10, align 1		; <i32> [#uses=1]
-	%12 = add i32 %11, %6		; <i32> [#uses=1]
-	%13 = zext i32 %1 to i64		; <i64> [#uses=1]
-	%14 = getelementptr i32* %0, i64 %13		; <i32*> [#uses=1]
-	store i32 %12, i32* %14, align 1
-	%15 = load i32** @a, align 8		; <i32*> [#uses=1]
-	%16 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%17 = and i32 %16, 15		; <i32> [#uses=1]
-	%18 = load i32** @b, align 8		; <i32*> [#uses=1]
-	%19 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%20 = and i32 %19, 15		; <i32> [#uses=1]
-	%21 = zext i32 %20 to i64		; <i64> [#uses=1]
-	%22 = getelementptr i32* %18, i64 %21		; <i32*> [#uses=1]
-	%23 = load i32* %22, align 1		; <i32> [#uses=1]
-	%24 = load i32** @c, align 8		; <i32*> [#uses=1]
-	%25 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%26 = and i32 %25, 15		; <i32> [#uses=1]
-	%27 = zext i32 %26 to i64		; <i64> [#uses=1]
-	%28 = getelementptr i32* %24, i64 %27		; <i32*> [#uses=1]
-	%29 = load i32* %28, align 1		; <i32> [#uses=1]
-	%30 = add i32 %29, %23		; <i32> [#uses=1]
-	%31 = zext i32 %17 to i64		; <i64> [#uses=1]
-	%32 = getelementptr i32* %15, i64 %31		; <i32*> [#uses=1]
-	store i32 %30, i32* %32, align 1
-	%33 = load i32** @a, align 8		; <i32*> [#uses=1]
-	%34 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%35 = and i32 %34, 15		; <i32> [#uses=1]
-	%36 = load i32** @b, align 8		; <i32*> [#uses=1]
-	%37 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%38 = and i32 %37, 15		; <i32> [#uses=1]
-	%39 = zext i32 %38 to i64		; <i64> [#uses=1]
-	%40 = getelementptr i32* %36, i64 %39		; <i32*> [#uses=1]
-	%41 = load i32* %40, align 1		; <i32> [#uses=1]
-	%42 = load i32** @c, align 8		; <i32*> [#uses=1]
-	%43 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%44 = and i32 %43, 15		; <i32> [#uses=1]
-	%45 = zext i32 %44 to i64		; <i64> [#uses=1]
-	%46 = getelementptr i32* %42, i64 %45		; <i32*> [#uses=1]
-	%47 = load i32* %46, align 1		; <i32> [#uses=1]
-	%48 = add i32 %47, %41		; <i32> [#uses=1]
-	%49 = zext i32 %35 to i64		; <i64> [#uses=1]
-	%50 = getelementptr i32* %33, i64 %49		; <i32*> [#uses=1]
-	store i32 %48, i32* %50, align 1
-	%51 = load i32** @d, align 8		; <i32*> [#uses=1]
-	%52 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
-	%53 = load i32** @e, align 8		; <i32*> [#uses=1]
-	%54 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
-	%55 = zext i32 %54 to i64		; <i64> [#uses=1]
-	%56 = getelementptr i32* %53, i64 %55		; <i32*> [#uses=1]
-	%57 = load i32* %56, align 1		; <i32> [#uses=1]
-	%58 = load i32** @f, align 8		; <i32*> [#uses=1]
-	%59 = and i32 %i.0.reg2mem.0, 15		; <i32> [#uses=1]
-	%60 = zext i32 %59 to i64		; <i64> [#uses=1]
-	%61 = getelementptr i32* %58, i64 %60		; <i32*> [#uses=1]
-	%62 = load i32* %61, align 1		; <i32> [#uses=1]
-	%63 = sext i32 %i.0.reg2mem.0 to i64		; <i64> [#uses=1]
-	%64 = getelementptr [256 x i32]* @K, i64 0, i64 %63		; <i32*> [#uses=1]
-	%65 = load i32* %64, align 4		; <i32> [#uses=1]
-	%66 = add i32 %62, %57		; <i32> [#uses=1]
-	%67 = add i32 %66, %65		; <i32> [#uses=1]
-	%68 = zext i32 %52 to i64		; <i64> [#uses=1]
-	%69 = getelementptr i32* %51, i64 %68		; <i32*> [#uses=1]
-	store i32 %67, i32* %69, align 1
-	%70 = load i32** @d, align 8		; <i32*> [#uses=1]
-	%71 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%72 = and i32 %71, 15		; <i32> [#uses=1]
-	%73 = load i32** @e, align 8		; <i32*> [#uses=1]
-	%74 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%75 = and i32 %74, 15		; <i32> [#uses=1]
-	%76 = zext i32 %75 to i64		; <i64> [#uses=1]
-	%77 = getelementptr i32* %73, i64 %76		; <i32*> [#uses=1]
-	%78 = load i32* %77, align 1		; <i32> [#uses=1]
-	%79 = load i32** @f, align 8		; <i32*> [#uses=1]
-	%80 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%81 = and i32 %80, 15		; <i32> [#uses=1]
-	%82 = zext i32 %81 to i64		; <i64> [#uses=1]
-	%83 = getelementptr i32* %79, i64 %82		; <i32*> [#uses=1]
-	%84 = load i32* %83, align 1		; <i32> [#uses=1]
-	%85 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=1]
-	%86 = sext i32 %85 to i64		; <i64> [#uses=1]
-	%87 = getelementptr [256 x i32]* @K, i64 0, i64 %86		; <i32*> [#uses=1]
-	%88 = load i32* %87, align 4		; <i32> [#uses=1]
-	%89 = add i32 %84, %78		; <i32> [#uses=1]
-	%90 = add i32 %89, %88		; <i32> [#uses=1]
-	%91 = zext i32 %72 to i64		; <i64> [#uses=1]
-	%92 = getelementptr i32* %70, i64 %91		; <i32*> [#uses=1]
-	store i32 %90, i32* %92, align 1
-	%93 = load i32** @d, align 8		; <i32*> [#uses=1]
-	%94 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%95 = and i32 %94, 15		; <i32> [#uses=1]
-	%96 = load i32** @e, align 8		; <i32*> [#uses=1]
-	%97 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%98 = and i32 %97, 15		; <i32> [#uses=1]
-	%99 = zext i32 %98 to i64		; <i64> [#uses=1]
-	%100 = getelementptr i32* %96, i64 %99		; <i32*> [#uses=1]
-	%101 = load i32* %100, align 1		; <i32> [#uses=1]
-	%102 = load i32** @f, align 8		; <i32*> [#uses=1]
-	%103 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%104 = and i32 %103, 15		; <i32> [#uses=1]
-	%105 = zext i32 %104 to i64		; <i64> [#uses=1]
-	%106 = getelementptr i32* %102, i64 %105		; <i32*> [#uses=1]
-	%107 = load i32* %106, align 1		; <i32> [#uses=1]
-	%108 = add i32 %i.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%109 = sext i32 %108 to i64		; <i64> [#uses=1]
-	%110 = getelementptr [256 x i32]* @K, i64 0, i64 %109		; <i32*> [#uses=1]
-	%111 = load i32* %110, align 4		; <i32> [#uses=1]
-	%112 = add i32 %107, %101		; <i32> [#uses=1]
-	%113 = add i32 %112, %111		; <i32> [#uses=1]
-	%114 = zext i32 %95 to i64		; <i64> [#uses=1]
-	%115 = getelementptr i32* %93, i64 %114		; <i32*> [#uses=1]
-	store i32 %113, i32* %115, align 1
-	%116 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%117 = icmp sgt i32 %116, 23646		; <i1> [#uses=1]
-	br i1 %117, label %return, label %bb1
-
-return:		; preds = %bb1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-22-IndvarCrash.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-22-IndvarCrash.ll
deleted file mode 100644
index f39458f..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-22-IndvarCrash.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-; rdar://6817574
-
-define i32 @t1() nounwind ssp {
-entry:
-	br label %bb32
-
-bb32:		; preds = %bb32, %entry
-	%mbPartIdx.0.reg2mem.0 = phi i8 [ %2, %bb32 ], [ 0, %entry ]		; <i8> [#uses=3]
-	%0 = and i8 %mbPartIdx.0.reg2mem.0, 1		; <i8> [#uses=0]
-	%1 = zext i8 %mbPartIdx.0.reg2mem.0 to i64		; <i64> [#uses=0]
-	%2 = add i8 %mbPartIdx.0.reg2mem.0, 1		; <i8> [#uses=2]
-	%3 = icmp ugt i8 %2, 3		; <i1> [#uses=1]
-	br i1 %3, label %bb41, label %bb32
-
-bb41:		; preds = %bb32
-	ret i32 0
-}
-
-define i32 @t2() nounwind ssp {
-entry:
-	br label %bb116
-
-bb116:		; preds = %bb116, %entry
-	%mbPartIdx.1.reg2mem.0 = phi i8 [ %3, %bb116 ], [ 0, %entry ]		; <i8> [#uses=3]
-	%0 = and i8 %mbPartIdx.1.reg2mem.0, 1		; <i8> [#uses=1]
-	%1 = zext i8 %mbPartIdx.1.reg2mem.0 to i64		; <i64> [#uses=0]
-	%2 = zext i8 %0 to i32		; <i32> [#uses=0]
-	%3 = add i8 %mbPartIdx.1.reg2mem.0, 1		; <i8> [#uses=2]
-	%4 = icmp ugt i8 %3, 3		; <i1> [#uses=1]
-	br i1 %4, label %bb131, label %bb116
-
-bb131:		; preds = %bb116
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll
deleted file mode 100644
index e70d577..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep icmp | grep next
-; PR4086
-declare void @foo()
-
-define void @test() {
-entry:
-        br label %loop_body
-
-loop_body:              
-        %i = phi float [ %nexti, %loop_body ], [ 0.0, %entry ]          
-        tail call void @foo()
-        %nexti = fadd float %i, 1.0
-        %less = fcmp olt float %nexti, 2.0              
-        br i1 %less, label %loop_body, label %done
-
-done:           
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-05-24-useafterfree.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-05-24-useafterfree.ll
deleted file mode 100644
index ecbb231..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-05-24-useafterfree.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-; PR4258
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-linux-gnu"
-
-define void @0(i32*, i32*, i32, i32) nounwind {
-	br i1 false, label %bb.nph1.preheader, label %.outer._crit_edge
-
-bb.nph1.preheader:		; preds = %4
-	%smax = select i1 false, i32 -1, i32 0		; <i32> [#uses=1]
-	%tmp12 = sub i32 0, %smax		; <i32> [#uses=1]
-	br label %bb.nph1
-
-bb.nph1:		; preds = %.outer, %bb.nph1.preheader
-	br i1 false, label %bb.nph3.preheader, label %.outer
-
-bb.nph3.preheader:		; preds = %bb.nph1
-	br label %bb.nph3
-
-bb.nph3:		; preds = %bb.nph3, %bb.nph3.preheader
-	%indvar7 = phi i32 [ %indvar.next8, %bb.nph3 ], [ 0, %bb.nph3.preheader ]		; <i32> [#uses=3]
-	%tmp9 = mul i32 %indvar7, -1		; <i32> [#uses=1]
-	%tmp13 = add i32 %tmp9, %tmp12		; <i32> [#uses=1]
-	%tmp14 = add i32 %tmp13, -2		; <i32> [#uses=1]
-	%5 = icmp sgt i32 %tmp14, 0		; <i1> [#uses=1]
-	%indvar.next8 = add i32 %indvar7, 1		; <i32> [#uses=1]
-	br i1 %5, label %bb.nph3, label %.outer.loopexit
-
-.outer.loopexit:		; preds = %bb.nph3
-	%indvar7.lcssa = phi i32 [ %indvar7, %bb.nph3 ]		; <i32> [#uses=0]
-	br label %.outer
-
-.outer:		; preds = %.outer.loopexit, %bb.nph1
-	br i1 false, label %bb.nph1, label %.outer._crit_edge.loopexit
-
-.outer._crit_edge.loopexit:		; preds = %.outer
-	br label %.outer._crit_edge
-
-.outer._crit_edge:		; preds = %.outer._crit_edge.loopexit, %4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/ada-loops.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/ada-loops.ll
deleted file mode 100644
index 56325b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/ada-loops.ll
+++ /dev/null
@@ -1,90 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep phi %t | count 4
-; RUN: grep {= phi i32} %t | count 4
-; RUN: not grep {sext i} %t
-; RUN: not grep {zext i} %t
-; RUN: not grep {trunc i} %t
-; RUN: not grep {add i8} %t
-; PR1301
-
-; Do a bunch of analysis and prove that the loops can use an i32 trip
-; count without casting.
-
-; ModuleID = 'ada.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-
-define void @kinds__sbytezero([256 x i32]* nocapture %a) nounwind {
-bb.thread:
-	%tmp46 = getelementptr [256 x i32]* %a, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp46
-	br label %bb
-
-bb:		; preds = %bb, %bb.thread
-	%i.0.reg2mem.0 = phi i8 [ -128, %bb.thread ], [ %tmp8, %bb ]		; <i8> [#uses=1]
-	%tmp8 = add i8 %i.0.reg2mem.0, 1		; <i8> [#uses=3]
-	%tmp1 = sext i8 %tmp8 to i32		; <i32> [#uses=1]
-	%tmp3 = add i32 %tmp1, 128		; <i32> [#uses=1]
-	%tmp4 = getelementptr [256 x i32]* %a, i32 0, i32 %tmp3		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp4
-	%0 = icmp eq i8 %tmp8, 127		; <i1> [#uses=1]
-	br i1 %0, label %return, label %bb
-
-return:		; preds = %bb
-	ret void
-}
-
-define void @kinds__ubytezero([256 x i32]* nocapture %a) nounwind {
-bb.thread:
-	%tmp35 = getelementptr [256 x i32]* %a, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp35
-	br label %bb
-
-bb:		; preds = %bb, %bb.thread
-	%i.0.reg2mem.0 = phi i8 [ 0, %bb.thread ], [ %tmp7, %bb ]		; <i8> [#uses=1]
-	%tmp7 = add i8 %i.0.reg2mem.0, 1		; <i8> [#uses=3]
-	%tmp1 = zext i8 %tmp7 to i32		; <i32> [#uses=1]
-	%tmp3 = getelementptr [256 x i32]* %a, i32 0, i32 %tmp1		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp3
-	%0 = icmp eq i8 %tmp7, -1		; <i1> [#uses=1]
-	br i1 %0, label %return, label %bb
-
-return:		; preds = %bb
-	ret void
-}
-
-define void @kinds__srangezero([21 x i32]* nocapture %a) nounwind {
-bb.thread:
-	br label %bb
-
-bb:		; preds = %bb, %bb.thread
-	%i.0.reg2mem.0 = phi i8 [ -10, %bb.thread ], [ %tmp7, %bb ]		; <i8> [#uses=2]
-	%tmp12 = sext i8 %i.0.reg2mem.0 to i32		; <i32> [#uses=1]
-	%tmp4 = add i32 %tmp12, 10		; <i32> [#uses=1]
-	%tmp5 = getelementptr [21 x i32]* %a, i32 0, i32 %tmp4		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp5
-	%tmp7 = add i8 %i.0.reg2mem.0, 1		; <i8> [#uses=2]
-	%0 = icmp sgt i8 %tmp7, 10		; <i1> [#uses=1]
-	br i1 %0, label %return, label %bb
-
-return:		; preds = %bb
-	ret void
-}
-
-define void @kinds__urangezero([21 x i32]* nocapture %a) nounwind {
-bb.thread:
-	br label %bb
-
-bb:		; preds = %bb, %bb.thread
-	%i.0.reg2mem.0 = phi i8 [ 10, %bb.thread ], [ %tmp7, %bb ]		; <i8> [#uses=2]
-	%tmp12 = sext i8 %i.0.reg2mem.0 to i32		; <i32> [#uses=1]
-	%tmp4 = add i32 %tmp12, -10		; <i32> [#uses=1]
-	%tmp5 = getelementptr [21 x i32]* %a, i32 0, i32 %tmp4		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp5
-	%tmp7 = add i8 %i.0.reg2mem.0, 1		; <i8> [#uses=2]
-	%0 = icmp sgt i8 %tmp7, 30		; <i1> [#uses=1]
-	br i1 %0, label %return, label %bb
-
-return:		; preds = %bb
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/addrec-gep.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/addrec-gep.ll
deleted file mode 100644
index 132d4f8..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/addrec-gep.ll
+++ /dev/null
@@ -1,78 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep getelementptr %t | count 1
-; RUN: grep {mul .*, 37}  %t | count 1
-; RUN: grep {add .*, 5203}  %t | count 1
-; RUN: not grep cast %t
-
-; This test tests several things. The load and store should use the
-; same address instead of having it computed twice, and SCEVExpander should
-; be able to reconstruct the full getelementptr, despite it having a few
-; obstacles set in its way.
-
-target datalayout = "e-p:64:64:64"
-
-define void @foo(i64 %n, i64 %m, i64 %o, i64 %q, double* nocapture %p) nounwind {
-entry:
-	%tmp = icmp sgt i64 %n, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %bb.nph3, label %return
-
-bb.nph:		; preds = %bb2.preheader
-	%tmp1 = mul i64 %tmp16, %i.02		; <i64> [#uses=1]
-	%tmp2 = mul i64 %tmp19, %i.02		; <i64> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb2, %bb.nph
-	%j.01 = phi i64 [ %tmp9, %bb2 ], [ 0, %bb.nph ]		; <i64> [#uses=3]
-	%tmp3 = add i64 %j.01, %tmp1		; <i64> [#uses=1]
-	%tmp4 = add i64 %j.01, %tmp2		; <i64> [#uses=1]
-        %z0 = add i64 %tmp4, 5203
-	%tmp5 = getelementptr double* %p, i64 %z0		; <double*> [#uses=1]
-	%tmp6 = load double* %tmp5, align 8		; <double> [#uses=1]
-	%tmp7 = fdiv double %tmp6, 2.100000e+00		; <double> [#uses=1]
-        %z1 = add i64 %tmp4, 5203
-	%tmp8 = getelementptr double* %p, i64 %z1		; <double*> [#uses=1]
-	store double %tmp7, double* %tmp8, align 8
-	%tmp9 = add i64 %j.01, 1		; <i64> [#uses=2]
-	br label %bb2
-
-bb2:		; preds = %bb1
-	%tmp10 = icmp slt i64 %tmp9, %m		; <i1> [#uses=1]
-	br i1 %tmp10, label %bb1, label %bb2.bb3_crit_edge
-
-bb2.bb3_crit_edge:		; preds = %bb2
-	br label %bb3
-
-bb3:		; preds = %bb2.preheader, %bb2.bb3_crit_edge
-	%tmp11 = add i64 %i.02, 1		; <i64> [#uses=2]
-	br label %bb4
-
-bb4:		; preds = %bb3
-	%tmp12 = icmp slt i64 %tmp11, %n		; <i1> [#uses=1]
-	br i1 %tmp12, label %bb2.preheader, label %bb4.return_crit_edge
-
-bb4.return_crit_edge:		; preds = %bb4
-	br label %bb4.return_crit_edge.split
-
-bb4.return_crit_edge.split:		; preds = %bb.nph3, %bb4.return_crit_edge
-	br label %return
-
-bb.nph3:		; preds = %entry
-	%tmp13 = icmp sgt i64 %m, 0		; <i1> [#uses=1]
-	%tmp14 = mul i64 %n, 37		; <i64> [#uses=1]
-	%tmp15 = mul i64 %tmp14, %o		; <i64> [#uses=1]
-	%tmp16 = mul i64 %tmp15, %q		; <i64> [#uses=1]
-	%tmp17 = mul i64 %n, 37		; <i64> [#uses=1]
-	%tmp18 = mul i64 %tmp17, %o		; <i64> [#uses=1]
-	%tmp19 = mul i64 %tmp18, %q		; <i64> [#uses=1]
-	br i1 %tmp13, label %bb.nph3.split, label %bb4.return_crit_edge.split
-
-bb.nph3.split:		; preds = %bb.nph3
-	br label %bb2.preheader
-
-bb2.preheader:		; preds = %bb.nph3.split, %bb4
-	%i.02 = phi i64 [ %tmp11, %bb4 ], [ 0, %bb.nph3.split ]		; <i64> [#uses=3]
-	br i1 true, label %bb.nph, label %bb3
-
-return:		; preds = %bb4.return_crit_edge.split, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/ashr-tripcount.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/ashr-tripcount.ll
deleted file mode 100644
index 7b2cad2..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/ashr-tripcount.ll
+++ /dev/null
@@ -1,107 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep sext %t | count 1
-
-; Indvars should be able to eliminate all of the sign extensions
-; inside the loop.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
- at pow_2_tab = external constant [0 x float]		; <[0 x float]*> [#uses=1]
- at pow_2_025_tab = external constant [0 x float]		; <[0 x float]*> [#uses=1]
- at i_pow_2_tab = external constant [0 x float]		; <[0 x float]*> [#uses=1]
- at i_pow_2_025_tab = external constant [0 x float]		; <[0 x float]*> [#uses=1]
-
-define void @foo(i32 %gain, i32 %noOfLines, i32* %quaSpectrum, float* %iquaSpectrum, float* %pow4_3_tab_ptr) nounwind {
-entry:
-	%t0 = icmp slt i32 %gain, 0		; <i1> [#uses=1]
-	br i1 %t0, label %bb1, label %bb2
-
-bb1:		; preds = %entry
-	%t1 = sub i32 0, %gain		; <i32> [#uses=1]
-	%t2 = sub i32 0, %gain		; <i32> [#uses=1]
-	br label %bb2
-
-bb2:		; preds = %bb1, %entry
-	%pow_2_tab.pn = phi [0 x float]* [ @i_pow_2_tab, %bb1 ], [ @pow_2_tab, %entry ]		; <[0 x float]*> [#uses=1]
-	%.pn3.in.in = phi i32 [ %t1, %bb1 ], [ %gain, %entry ]		; <i32> [#uses=1]
-	%pow_2_025_tab.pn = phi [0 x float]* [ @i_pow_2_025_tab, %bb1 ], [ @pow_2_025_tab, %entry ]		; <[0 x float]*> [#uses=1]
-	%.pn2.in.in = phi i32 [ %t2, %bb1 ], [ %gain, %entry ]		; <i32> [#uses=1]
-	%.pn3.in = ashr i32 %.pn3.in.in, 2		; <i32> [#uses=1]
-	%.pn2.in = and i32 %.pn2.in.in, 3		; <i32> [#uses=1]
-	%.pn3 = sext i32 %.pn3.in to i64		; <i64> [#uses=1]
-	%.pn2 = zext i32 %.pn2.in to i64		; <i64> [#uses=1]
-	%.pn.in = getelementptr [0 x float]* %pow_2_tab.pn, i64 0, i64 %.pn3		; <float*> [#uses=1]
-	%.pn1.in = getelementptr [0 x float]* %pow_2_025_tab.pn, i64 0, i64 %.pn2		; <float*> [#uses=1]
-	%.pn = load float* %.pn.in		; <float> [#uses=1]
-	%.pn1 = load float* %.pn1.in		; <float> [#uses=1]
-	%invQuantizer.0 = fmul float %.pn, %.pn1		; <float> [#uses=4]
-	%t3 = ashr i32 %noOfLines, 2		; <i32> [#uses=1]
-	%t4 = icmp sgt i32 %t3, 0		; <i1> [#uses=1]
-	br i1 %t4, label %bb.nph, label %return
-
-bb.nph:		; preds = %bb2
-	%t5 = ashr i32 %noOfLines, 2		; <i32> [#uses=1]
-	br label %bb3
-
-bb3:		; preds = %bb4, %bb.nph
-	%i.05 = phi i32 [ %t49, %bb4 ], [ 0, %bb.nph ]		; <i32> [#uses=9]
-	%k.04 = phi i32 [ %t48, %bb4 ], [ 0, %bb.nph ]		; <i32> [#uses=1]
-	%t6 = sext i32 %i.05 to i64		; <i64> [#uses=1]
-	%t7 = getelementptr i32* %quaSpectrum, i64 %t6		; <i32*> [#uses=1]
-	%t8 = load i32* %t7, align 4		; <i32> [#uses=1]
-	%t9 = zext i32 %t8 to i64		; <i64> [#uses=1]
-	%t10 = getelementptr float* %pow4_3_tab_ptr, i64 %t9		; <float*> [#uses=1]
-	%t11 = load float* %t10, align 4		; <float> [#uses=1]
-	%t12 = or i32 %i.05, 1		; <i32> [#uses=1]
-	%t13 = sext i32 %t12 to i64		; <i64> [#uses=1]
-	%t14 = getelementptr i32* %quaSpectrum, i64 %t13		; <i32*> [#uses=1]
-	%t15 = load i32* %t14, align 4		; <i32> [#uses=1]
-	%t16 = zext i32 %t15 to i64		; <i64> [#uses=1]
-	%t17 = getelementptr float* %pow4_3_tab_ptr, i64 %t16		; <float*> [#uses=1]
-	%t18 = load float* %t17, align 4		; <float> [#uses=1]
-	%t19 = or i32 %i.05, 2		; <i32> [#uses=1]
-	%t20 = sext i32 %t19 to i64		; <i64> [#uses=1]
-	%t21 = getelementptr i32* %quaSpectrum, i64 %t20		; <i32*> [#uses=1]
-	%t22 = load i32* %t21, align 4		; <i32> [#uses=1]
-	%t23 = zext i32 %t22 to i64		; <i64> [#uses=1]
-	%t24 = getelementptr float* %pow4_3_tab_ptr, i64 %t23		; <float*> [#uses=1]
-	%t25 = load float* %t24, align 4		; <float> [#uses=1]
-	%t26 = or i32 %i.05, 3		; <i32> [#uses=1]
-	%t27 = sext i32 %t26 to i64		; <i64> [#uses=1]
-	%t28 = getelementptr i32* %quaSpectrum, i64 %t27		; <i32*> [#uses=1]
-	%t29 = load i32* %t28, align 4		; <i32> [#uses=1]
-	%t30 = zext i32 %t29 to i64		; <i64> [#uses=1]
-	%t31 = getelementptr float* %pow4_3_tab_ptr, i64 %t30		; <float*> [#uses=1]
-	%t32 = load float* %t31, align 4		; <float> [#uses=1]
-	%t33 = fmul float %t11, %invQuantizer.0		; <float> [#uses=1]
-	%t34 = sext i32 %i.05 to i64		; <i64> [#uses=1]
-	%t35 = getelementptr float* %iquaSpectrum, i64 %t34		; <float*> [#uses=1]
-	store float %t33, float* %t35, align 4
-	%t36 = or i32 %i.05, 1		; <i32> [#uses=1]
-	%t37 = fmul float %t18, %invQuantizer.0		; <float> [#uses=1]
-	%t38 = sext i32 %t36 to i64		; <i64> [#uses=1]
-	%t39 = getelementptr float* %iquaSpectrum, i64 %t38		; <float*> [#uses=1]
-	store float %t37, float* %t39, align 4
-	%t40 = or i32 %i.05, 2		; <i32> [#uses=1]
-	%t41 = fmul float %t25, %invQuantizer.0		; <float> [#uses=1]
-	%t42 = sext i32 %t40 to i64		; <i64> [#uses=1]
-	%t43 = getelementptr float* %iquaSpectrum, i64 %t42		; <float*> [#uses=1]
-	store float %t41, float* %t43, align 4
-	%t44 = or i32 %i.05, 3		; <i32> [#uses=1]
-	%t45 = fmul float %t32, %invQuantizer.0		; <float> [#uses=1]
-	%t46 = sext i32 %t44 to i64		; <i64> [#uses=1]
-	%t47 = getelementptr float* %iquaSpectrum, i64 %t46		; <float*> [#uses=1]
-	store float %t45, float* %t47, align 4
-	%t48 = add i32 %k.04, 1		; <i32> [#uses=2]
-	%t49 = add i32 %i.05, 4		; <i32> [#uses=1]
-	br label %bb4
-
-bb4:		; preds = %bb3
-	%t50 = icmp sgt i32 %t5, %t48		; <i1> [#uses=1]
-	br i1 %t50, label %bb3, label %bb4.return_crit_edge
-
-bb4.return_crit_edge:		; preds = %bb4
-	br label %return
-
-return:		; preds = %bb4.return_crit_edge, %bb2
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/avoid-i0.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/avoid-i0.ll
deleted file mode 100644
index 3456bd3..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/avoid-i0.ll
+++ /dev/null
@@ -1,126 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-; PR4052
-; PR4054
-
-; Don't treat an and with 0 as a mask (trunc+zext).
-
-define i32 @int80(i8 signext %p_71) nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb6, %entry
-	%p_71_addr.0 = phi i8 [ %p_71, %entry ], [ %0, %bb6 ]		; <i8> [#uses=0]
-	br i1 false, label %bb4, label %bb1
-
-bb1:		; preds = %bb
-	ret i32 0
-
-bb4:		; preds = %bb4, %bb
-	br i1 false, label %bb6, label %bb4
-
-bb6:		; preds = %bb4
-	%0 = and i8 0, 0		; <i8> [#uses=1]
-	br label %bb
-}
-
- at x = common global i32 0		; <i32*> [#uses=1]
-
-define signext i8 @safe_sub_func_int32_t_s_s(i32 %_si1, i8 signext %_si2) nounwind {
-entry:
-	%_si1_addr = alloca i32		; <i32*> [#uses=3]
-	%_si2_addr = alloca i8		; <i8*> [#uses=3]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %_si1, i32* %_si1_addr
-	store i8 %_si2, i8* %_si2_addr
-	%1 = load i8* %_si2_addr, align 1		; <i8> [#uses=1]
-	%2 = sext i8 %1 to i32		; <i32> [#uses=1]
-	%3 = load i32* %_si1_addr, align 4		; <i32> [#uses=1]
-	%4 = xor i32 %2, %3		; <i32> [#uses=1]
-	%5 = load i8* %_si2_addr, align 1		; <i8> [#uses=1]
-	%6 = sext i8 %5 to i32		; <i32> [#uses=1]
-	%7 = sub i32 7, %6		; <i32> [#uses=1]
-	%8 = load i32* %_si1_addr, align 4		; <i32> [#uses=1]
-	%9 = shl i32 %8, %7		; <i32> [#uses=1]
-	%10 = and i32 %4, %9		; <i32> [#uses=1]
-	%11 = icmp slt i32 %10, 0		; <i1> [#uses=1]
-	%12 = zext i1 %11 to i32		; <i32> [#uses=1]
-	store i32 %12, i32* %0, align 4
-	%13 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %13, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	%retval12 = trunc i32 %retval1 to i8		; <i8> [#uses=1]
-	ret i8 %retval12
-}
-
-define i32 @safe_sub_func_uint64_t_u_u(i32 %_ui1, i32 %_ui2) nounwind {
-entry:
-	%_ui1_addr = alloca i32		; <i32*> [#uses=2]
-	%_ui2_addr = alloca i32		; <i32*> [#uses=1]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %_ui1, i32* %_ui1_addr
-	store i32 %_ui2, i32* %_ui2_addr
-	%1 = load i32* %_ui1_addr, align 4		; <i32> [#uses=1]
-	%2 = sub i32 %1, 1		; <i32> [#uses=1]
-	store i32 %2, i32* %0, align 4
-	%3 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %3, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval1
-}
-
-define void @int87(i8 signext %p_48, i8 signext %p_49) nounwind {
-entry:
-	%p_48_addr = alloca i8		; <i8*> [#uses=1]
-	%p_49_addr = alloca i8		; <i8*> [#uses=1]
-	%l_52 = alloca i32		; <i32*> [#uses=7]
-	%vol.0 = alloca i32		; <i32*> [#uses=1]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i8 %p_48, i8* %p_48_addr
-	store i8 %p_49, i8* %p_49_addr
-	br label %bb4
-
-bb:		; preds = %bb4
-	%0 = volatile load i32* @x, align 4		; <i32> [#uses=1]
-	store i32 %0, i32* %vol.0, align 4
-	store i32 0, i32* %l_52, align 4
-	br label %bb2
-
-bb1:		; preds = %bb2
-	%1 = load i32* %l_52, align 4		; <i32> [#uses=1]
-	%2 = call i32 @safe_sub_func_uint64_t_u_u(i32 %1, i32 1) nounwind		; <i32> [#uses=1]
-	store i32 %2, i32* %l_52, align 4
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	%3 = load i32* %l_52, align 4		; <i32> [#uses=1]
-	%4 = icmp eq i32 %3, 0		; <i1> [#uses=1]
-	br i1 %4, label %bb1, label %bb3
-
-bb3:		; preds = %bb2
-	%5 = load i32* %l_52, align 4		; <i32> [#uses=1]
-	%6 = call signext i8 @safe_sub_func_int32_t_s_s(i32 %5, i8 signext 1) nounwind		; <i8> [#uses=1]
-	%7 = sext i8 %6 to i32		; <i32> [#uses=1]
-	store i32 %7, i32* %l_52, align 4
-	br label %bb4
-
-bb4:		; preds = %bb3, %entry
-	%8 = load i32* %l_52, align 4		; <i32> [#uses=1]
-	%9 = icmp ne i32 %8, 0		; <i1> [#uses=1]
-	br i1 %9, label %bb, label %bb5
-
-bb5:		; preds = %bb4
-	br label %return
-
-return:		; preds = %bb5
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/casted-argument.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/casted-argument.ll
deleted file mode 100644
index 6d7aaa9..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/casted-argument.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-; PR4009
-; PR4038
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define void @safe_bcopy(i8* %to) nounwind {
-entry:
-	%cmp11 = icmp ult i8* %to, null		; <i1> [#uses=1]
-	br i1 %cmp11, label %loop, label %return
-
-return:		; preds = %entry
-	ret void
-
-loop:		; preds = %loop, %if.else
-	%pn = phi i8* [ %ge, %loop ], [ null, %entry ]		; <i8*> [#uses=1]
-	%cp = ptrtoint i8* %to to i32		; <i32> [#uses=1]
-	%su = sub i32 0, %cp		; <i32> [#uses=1]
-	%ge = getelementptr i8* %pn, i32 %su		; <i8*> [#uses=2]
-	tail call void @bcopy(i8* %ge) nounwind
-	br label %loop
-}
-
-define void @safe_bcopy_4038(i8* %from, i8* %to, i32 %size) nounwind {
-entry:
-	br i1 false, label %if.else, label %if.then12
-
-if.then12:		; preds = %entry
-	ret void
-
-if.else:		; preds = %entry
-	%sub.ptr.rhs.cast40 = ptrtoint i8* %from to i32		; <i32> [#uses=1]
-	br label %if.end54
-
-if.end54:		; preds = %if.end54, %if.else
-	%sub.ptr4912.pn = phi i8* [ %sub.ptr4912, %if.end54 ], [ null, %if.else ]		; <i8*> [#uses=1]
-	%sub.ptr7 = phi i8* [ %sub.ptr, %if.end54 ], [ null, %if.else ]		; <i8*> [#uses=2]
-	%sub.ptr.rhs.cast46.pn = ptrtoint i8* %from to i32		; <i32> [#uses=1]
-	%sub.ptr.lhs.cast45.pn = ptrtoint i8* %to to i32		; <i32> [#uses=1]
-	%sub.ptr.sub47.pn = sub i32 %sub.ptr.rhs.cast46.pn, %sub.ptr.lhs.cast45.pn		; <i32> [#uses=1]
-	%sub.ptr4912 = getelementptr i8* %sub.ptr4912.pn, i32 %sub.ptr.sub47.pn		; <i8*> [#uses=2]
-	tail call void @bcopy_4038(i8* %sub.ptr4912, i8* %sub.ptr7, i32 0) nounwind
-	%sub.ptr = getelementptr i8* %sub.ptr7, i32 %sub.ptr.rhs.cast40		; <i8*> [#uses=1]
-	br label %if.end54
-}
-
-declare void @bcopy(i8* nocapture) nounwind
-
-declare void @bcopy_4038(i8*, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/complex-scev.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/complex-scev.ll
deleted file mode 100644
index 4bfc4e9..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/complex-scev.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; The i induction variable looks like a wrap-around, but it really is just
-; a simple affine IV.  Make sure that indvars eliminates it.
-
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep phi | count 1
-
-define void @foo() {
-entry:
-        br label %bb6
-
-bb6:            ; preds = %cond_true, %entry
-        %j.0 = phi i32 [ 1, %entry ], [ %tmp5, %cond_true ]             ; <i32> [#uses=3]
-        %i.0 = phi i32 [ 0, %entry ], [ %j.0, %cond_true ]              ; <i32> [#uses=1]
-        %tmp7 = call i32 (...)* @foo2( )                ; <i32> [#uses=1]
-        %tmp = icmp ne i32 %tmp7, 0             ; <i1> [#uses=1]
-        br i1 %tmp, label %cond_true, label %return
-
-cond_true:              ; preds = %bb6
-        %tmp2 = call i32 (...)* @bar( i32 %i.0, i32 %j.0 )              ; <i32> [#uses=0]
-        %tmp5 = add i32 %j.0, 1         ; <i32> [#uses=1]
-        br label %bb6
-
-return:         ; preds = %bb6
-        ret void
-}
-
-declare i32 @bar(...)
-
-declare i32 @foo2(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/dg.exp b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/divide-pointer.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/divide-pointer.ll
deleted file mode 100644
index 747d47e..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/divide-pointer.ll
+++ /dev/null
@@ -1,95 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-; PR4271
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin10.0"
-	%struct.xyz = type <{ i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, [8 x i8], i64, i64, i32, i32, [4 x i32], i32, i32, i32, i32, i32, i32, [76 x i32], i32, [2 x %struct.uvw] }>
-	%struct.uvw = type <{ i64, i64 }>
-
-define i32 @foo(%struct.xyz* %header, i8* %p2, i8* %p3, i8* nocapture %p4) nounwind {
-entry:
-	br label %while.body.i
-
-while.body.i:		; preds = %while.body.i, %entry
-	br i1 undef, label %while.body.i, label %bcopy_internal.exit
-
-bcopy_internal.exit:		; preds = %while.body.i
-	%conv135 = ptrtoint %struct.xyz* %header to i32		; <i32> [#uses=1]
-	%shr136 = lshr i32 %conv135, 12		; <i32> [#uses=1]
-	br label %for.body
-
-for.body:		; preds = %for.body, %bcopy_internal.exit
-	%ppnum.052 = phi i32 [ %inc, %for.body ], [ %shr136, %bcopy_internal.exit ]		; <i32> [#uses=1]
-	%inc = add i32 %ppnum.052, 1		; <i32> [#uses=2]
-	%cmp = icmp ugt i32 %inc, undef		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then199, label %for.body
-
-if.then199:		; preds = %if.then199, %for.body
-	br label %if.then199
-}
-
-define i32 @same_thing_but_signed(%struct.xyz* %header, i8* %p2, i8* %p3, i8* nocapture %p4) nounwind {
-entry:
-	br label %while.body.i
-
-while.body.i:		; preds = %while.body.i, %entry
-	br i1 undef, label %while.body.i, label %bcopy_internal.exit
-
-bcopy_internal.exit:		; preds = %while.body.i
-	%conv135 = ptrtoint %struct.xyz* %header to i32		; <i32> [#uses=1]
-	%shr136 = ashr i32 %conv135, 12		; <i32> [#uses=1]
-	br label %for.body
-
-for.body:		; preds = %for.body, %bcopy_internal.exit
-	%ppnum.052 = phi i32 [ %inc, %for.body ], [ %shr136, %bcopy_internal.exit ]		; <i32> [#uses=1]
-	%inc = add i32 %ppnum.052, 1		; <i32> [#uses=2]
-	%cmp = icmp ugt i32 %inc, undef		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then199, label %for.body
-
-if.then199:		; preds = %if.then199, %for.body
-	br label %if.then199
-}
-
-define i32 @same_thing_but_multiplied(%struct.xyz* %header, i8* %p2, i8* %p3, i8* nocapture %p4) nounwind {
-entry:
-	br label %while.body.i
-
-while.body.i:		; preds = %while.body.i, %entry
-	br i1 undef, label %while.body.i, label %bcopy_internal.exit
-
-bcopy_internal.exit:		; preds = %while.body.i
-	%conv135 = ptrtoint %struct.xyz* %header to i32		; <i32> [#uses=1]
-	%shr136 = shl i32 %conv135, 12		; <i32> [#uses=1]
-	br label %for.body
-
-for.body:		; preds = %for.body, %bcopy_internal.exit
-	%ppnum.052 = phi i32 [ %inc, %for.body ], [ %shr136, %bcopy_internal.exit ]		; <i32> [#uses=1]
-	%inc = add i32 %ppnum.052, 1		; <i32> [#uses=2]
-	%cmp = icmp ugt i32 %inc, undef		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then199, label %for.body
-
-if.then199:		; preds = %if.then199, %for.body
-	br label %if.then199
-}
-
-define i32 @same_thing_but_xored(%struct.xyz* %header, i8* %p2, i8* %p3, i8* nocapture %p4) nounwind {
-entry:
-	br label %while.body.i
-
-while.body.i:		; preds = %while.body.i, %entry
-	br i1 undef, label %while.body.i, label %bcopy_internal.exit
-
-bcopy_internal.exit:		; preds = %while.body.i
-	%conv135 = ptrtoint %struct.xyz* %header to i32		; <i32> [#uses=1]
-	%shr136 = xor i32 %conv135, 12		; <i32> [#uses=1]
-	br label %for.body
-
-for.body:		; preds = %for.body, %bcopy_internal.exit
-	%ppnum.052 = phi i32 [ %inc, %for.body ], [ %shr136, %bcopy_internal.exit ]		; <i32> [#uses=1]
-	%inc = add i32 %ppnum.052, 1		; <i32> [#uses=2]
-	%cmp = icmp ugt i32 %inc, undef		; <i1> [#uses=1]
-	br i1 %cmp, label %if.then199, label %for.body
-
-if.then199:		; preds = %if.then199, %for.body
-	br label %if.then199
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/exit_value_tests.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/exit_value_tests.ll
deleted file mode 100644
index b39f40f..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/exit_value_tests.ll
+++ /dev/null
@@ -1,114 +0,0 @@
-; Test that we can evaluate the exit values of various expression types.  Since
-; these loops all have predictable exit values we can replace the use outside
-; of the loop with a closed-form computation, making the loop dead.
-;
-; RUN: llvm-as < %s | opt -indvars -loop-deletion -simplifycfg | \
-; RUN:   llvm-dis | not grep br
-
-define i32 @polynomial_constant() {
-; <label>:0
-	br label %Loop
-
-Loop:		; preds = %Loop, %0
-	%A1 = phi i32 [ 0, %0 ], [ %A2, %Loop ]		; <i32> [#uses=3]
-	%B1 = phi i32 [ 0, %0 ], [ %B2, %Loop ]		; <i32> [#uses=1]
-	%A2 = add i32 %A1, 1		; <i32> [#uses=1]
-	%B2 = add i32 %B1, %A1		; <i32> [#uses=2]
-	%C = icmp eq i32 %A1, 1000		; <i1> [#uses=1]
-	br i1 %C, label %Out, label %Loop
-
-Out:		; preds = %Loop
-	ret i32 %B2
-}
-
-define i32 @NSquare(i32 %N) {
-; <label>:0
-	br label %Loop
-
-Loop:		; preds = %Loop, %0
-	%X = phi i32 [ 0, %0 ], [ %X2, %Loop ]		; <i32> [#uses=4]
-	%X2 = add i32 %X, 1		; <i32> [#uses=1]
-	%c = icmp eq i32 %X, %N		; <i1> [#uses=1]
-	br i1 %c, label %Out, label %Loop
-
-Out:		; preds = %Loop
-	%Y = mul i32 %X, %X		; <i32> [#uses=1]
-	ret i32 %Y
-}
-
-define i32 @NSquareOver2(i32 %N) {
-; <label>:0
-	br label %Loop
-
-Loop:		; preds = %Loop, %0
-	%X = phi i32 [ 0, %0 ], [ %X2, %Loop ]		; <i32> [#uses=3]
-	%Y = phi i32 [ 15, %0 ], [ %Y2, %Loop ]		; <i32> [#uses=1]
-	%Y2 = add i32 %Y, %X		; <i32> [#uses=2]
-	%X2 = add i32 %X, 1		; <i32> [#uses=1]
-	%c = icmp eq i32 %X, %N		; <i1> [#uses=1]
-	br i1 %c, label %Out, label %Loop
-
-Out:		; preds = %Loop
-	ret i32 %Y2
-}
-
-define i32 @strength_reduced() {
-; <label>:0
-	br label %Loop
-
-Loop:		; preds = %Loop, %0
-	%A1 = phi i32 [ 0, %0 ], [ %A2, %Loop ]		; <i32> [#uses=3]
-	%B1 = phi i32 [ 0, %0 ], [ %B2, %Loop ]		; <i32> [#uses=1]
-	%A2 = add i32 %A1, 1		; <i32> [#uses=1]
-	%B2 = add i32 %B1, %A1		; <i32> [#uses=2]
-	%C = icmp eq i32 %A1, 1000		; <i1> [#uses=1]
-	br i1 %C, label %Out, label %Loop
-
-Out:		; preds = %Loop
-	ret i32 %B2
-}
-
-define i32 @chrec_equals() {
-entry:
-	br label %no_exit
-
-no_exit:		; preds = %no_exit, %entry
-	%i0 = phi i32 [ 0, %entry ], [ %i1, %no_exit ]		; <i32> [#uses=3]
-	%ISq = mul i32 %i0, %i0		; <i32> [#uses=1]
-	%i1 = add i32 %i0, 1		; <i32> [#uses=2]
-	%tmp.1 = icmp ne i32 %ISq, 10000		; <i1> [#uses=1]
-	br i1 %tmp.1, label %no_exit, label %loopexit
-
-loopexit:		; preds = %no_exit
-	ret i32 %i1
-}
-
-define i16 @cast_chrec_test() {
-; <label>:0
-	br label %Loop
-
-Loop:		; preds = %Loop, %0
-	%A1 = phi i32 [ 0, %0 ], [ %A2, %Loop ]		; <i32> [#uses=2]
-	%B1 = trunc i32 %A1 to i16		; <i16> [#uses=2]
-	%A2 = add i32 %A1, 1		; <i32> [#uses=1]
-	%C = icmp eq i16 %B1, 1000		; <i1> [#uses=1]
-	br i1 %C, label %Out, label %Loop
-
-Out:		; preds = %Loop
-	ret i16 %B1
-}
-
-define i32 @linear_div_fold() {
-entry:
-	br label %loop
-
-loop:		; preds = %loop, %entry
-	%i = phi i32 [ 4, %entry ], [ %i.next, %loop ]		; <i32> [#uses=3]
-	%i.next = add i32 %i, 8		; <i32> [#uses=1]
-	%RV = udiv i32 %i, 2		; <i32> [#uses=1]
-	%c = icmp ne i32 %i, 68		; <i1> [#uses=1]
-	br i1 %c, label %loop, label %loopexit
-
-loopexit:		; preds = %loop
-	ret i32 %RV
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/gep-with-mul-base.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/gep-with-mul-base.ll
deleted file mode 100644
index e63c88c..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/gep-with-mul-base.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep add %t | count 8
-; RUN: grep mul %t | count 7
-
-define void @foo(i64 %n, i64 %m, i64 %o, double* nocapture %p) nounwind {
-entry:
-	%tmp = icmp sgt i64 %n, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	%tmp1 = mul i64 %n, 37		; <i64> [#uses=1]
-	%tmp2 = mul i64 %tmp1, %m		; <i64> [#uses=1]
-	%tmp3 = mul i64 %tmp2, %o		; <i64> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %bb.nph
-	%i.01 = phi i64 [ %tmp3, %bb.nph ], [ %tmp13, %bb ]		; <i64> [#uses=3]
-	%tmp9 = getelementptr double* %p, i64 %i.01		; <double*> [#uses=1]
-	%tmp10 = load double* %tmp9, align 8		; <double> [#uses=1]
-	%tmp11 = fdiv double %tmp10, 2.100000e+00		; <double> [#uses=1]
-	store double %tmp11, double* %tmp9, align 8
-	%tmp13 = add i64 %i.01, 1		; <i64> [#uses=2]
-	%tmp14 = icmp slt i64 %tmp13, %n		; <i1> [#uses=1]
-	br i1 %tmp14, label %bb, label %return.loopexit
-
-return.loopexit:		; preds = %bb
-	br label %return
-
-return:		; preds = %return.loopexit, %entry
-	ret void
-}
-define void @bar(i64 %n, i64 %m, i64 %o, i64 %q, double* nocapture %p) nounwind {
-entry:
-	%tmp = icmp sgt i64 %n, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	%tmp1 = mul i64 %n, %q		; <i64> [#uses=1]
-	%tmp2 = mul i64 %tmp1, %m		; <i64> [#uses=1]
-	%tmp3 = mul i64 %tmp2, %o		; <i64> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %bb.nph
-	%i.01 = phi i64 [ %tmp3, %bb.nph ], [ %tmp13, %bb ]		; <i64> [#uses=3]
-	%tmp9 = getelementptr double* %p, i64 %i.01		; <double*> [#uses=1]
-	%tmp10 = load double* %tmp9, align 8		; <double> [#uses=1]
-	%tmp11 = fdiv double %tmp10, 2.100000e+00		; <double> [#uses=1]
-	store double %tmp11, double* %tmp9, align 8
-	%tmp13 = add i64 %i.01, 1		; <i64> [#uses=2]
-	%tmp14 = icmp slt i64 %tmp13, %n		; <i1> [#uses=1]
-	br i1 %tmp14, label %bb, label %return.loopexit
-
-return.loopexit:		; preds = %bb
-	br label %return
-
-return:		; preds = %return.loopexit, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/interesting-invoke-use.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/interesting-invoke-use.ll
deleted file mode 100644
index b90d1e0..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/interesting-invoke-use.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-
-; An invoke has a result value which is used in an "Interesting"
-; expression inside the loop. IndVars should be able to rewrite
-; the expression in the correct place.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-  %struct.string___XUB = type { i32, i32 }
-  %struct.string___XUP = type { [0 x i8]*, %struct.string___XUB* }
- at .str7 = external constant [24 x i8]            ; <[24 x i8]*> [#uses=1]
- at C.17.316 = external constant %struct.string___XUB              ; <%struct.string___XUB*> [#uses=1]
-
-define void @_ada_c35503g() {
-entry:
-  br label %bb
-
-bb:             ; preds = %bb, %entry
-  br i1 false, label %bb65.loopexit, label %bb
-
-bb65.loopexit:          ; preds = %bb
-  br label %bb123
-
-bb123:          ; preds = %bb178, %bb65.loopexit
-  %i.0 = phi i32 [ %3, %bb178 ], [ 0, %bb65.loopexit ]          ; <i32> [#uses=3]
-  %0 = invoke i32 @report__ident_int(i32 1)
-      to label %invcont127 unwind label %lpad266                ; <i32> [#uses=1]
-
-invcont127:             ; preds = %bb123
-  %1 = sub i32 %i.0, %0         ; <i32> [#uses=1]
-  %2 = icmp eq i32 0, %1                ; <i1> [#uses=1]
-  br i1 %2, label %bb178, label %bb128
-
-bb128:          ; preds = %invcont127
-  invoke void @system__img_int__image_integer(%struct.string___XUP* noalias sret null, i32 %i.0)
-      to label %invcont129 unwind label %lpad266
-
-invcont129:             ; preds = %bb128
-  invoke void @system__string_ops__str_concat(%struct.string___XUP* noalias sret null, [0 x i8]* bitcast ([24 x i8]* @.str7 to [0 x i8]*), %struct.string___XUB* @C.17.316, [0 x i8]* null, %struct.string___XUB* null)
-      to label %invcont138 unwind label %lpad266
-
-invcont138:             ; preds = %invcont129
-  unreachable
-
-bb178:          ; preds = %invcont127
-  %3 = add i32 %i.0, 1          ; <i32> [#uses=1]
-  br label %bb123
-
-lpad266:                ; preds = %invcont129, %bb128, %bb123
-  unreachable
-}
-
-declare void @system__img_int__image_integer(%struct.string___XUP* noalias sret, i32)
-
-declare void @system__string_ops__str_concat(%struct.string___XUP* noalias sret, [0 x i8]*, %struct.string___XUB*, [0 x i8]*, %struct.string___XUB*)
-
-declare i32 @report__ident_int(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iterationCount_zext_or_trunc.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iterationCount_zext_or_trunc.ll
deleted file mode 100644
index 747c781..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iterationCount_zext_or_trunc.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-; ModuleID = 'testcase.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-
-define i32 @testcase(i5 zeroext  %k) {
-entry:
-	br label %bb2
-
-bb:		; preds = %bb2
-	%tmp1 = add i32 %tmp2, %result		; <i32> [#uses=1]
-	%indvar_next1 = add i5 %k_0, 1		; <i5> [#uses=1]
-	br label %bb2
-
-bb2:		; preds = %bb, %entry
-	%k_0 = phi i5 [ 0, %entry ], [ %indvar_next1, %bb ]		; <i5> [#uses=2]
-	%result = phi i32 [ 0, %entry ], [ %tmp1, %bb ]		; <i32> [#uses=2]
-	%tmp2 = zext i5 %k_0 to i32		; <i32> [#uses=1]
-	%exitcond = icmp eq i32 %tmp2, 16		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb3, label %bb
-
-bb3:		; preds = %bb2
-	ret i32 %result
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iv-sext.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iv-sext.ll
deleted file mode 100644
index 120acb2..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iv-sext.ll
+++ /dev/null
@@ -1,143 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep {= sext} %t | count 4
-; RUN: grep {phi i64} %t | count 2
-
-; Indvars should be able to promote the hiPart induction variable in the
-; inner loop to i64.
-; TODO: it should promote hiPart to i64 in the outer loop too.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-
-define void @t(float* %pTmp1, float* %peakWeight, float* %nrgReducePeakrate, i32 %bandEdgeIndex, float %tmp1) nounwind {
-entry:
-	%tmp = load float* %peakWeight, align 4		; <float> [#uses=1]
-	%tmp2 = icmp sgt i32 %bandEdgeIndex, 0		; <i1> [#uses=1]
-	br i1 %tmp2, label %bb.nph22, label %return
-
-bb.nph22:		; preds = %entry
-	%tmp3 = add i32 %bandEdgeIndex, -1		; <i32> [#uses=2]
-	br label %bb
-
-bb:		; preds = %bb8, %bb.nph22
-	%distERBhi.121 = phi float [ %distERBhi.2.lcssa, %bb8 ], [ 0.000000e+00, %bb.nph22 ]		; <float> [#uses=2]
-	%distERBlo.120 = phi float [ %distERBlo.0.lcssa, %bb8 ], [ 0.000000e+00, %bb.nph22 ]		; <float> [#uses=2]
-	%hiPart.119 = phi i32 [ %hiPart.0.lcssa, %bb8 ], [ 0, %bb.nph22 ]		; <i32> [#uses=3]
-	%loPart.118 = phi i32 [ %loPart.0.lcssa, %bb8 ], [ 0, %bb.nph22 ]		; <i32> [#uses=2]
-	%peakCount.117 = phi float [ %peakCount.2.lcssa, %bb8 ], [ %tmp, %bb.nph22 ]		; <float> [#uses=2]
-	%part.016 = phi i32 [ %tmp46, %bb8 ], [ 0, %bb.nph22 ]		; <i32> [#uses=5]
-	%tmp4 = icmp sgt i32 %part.016, 0		; <i1> [#uses=1]
-	br i1 %tmp4, label %bb1, label %bb3.preheader
-
-bb1:		; preds = %bb
-	%tmp5 = add i32 %part.016, -1		; <i32> [#uses=1]
-	%tmp6 = sext i32 %tmp5 to i64		; <i64> [#uses=1]
-	%tmp7 = getelementptr float* %pTmp1, i64 %tmp6		; <float*> [#uses=1]
-	%tmp8 = load float* %tmp7, align 4		; <float> [#uses=1]
-	%tmp9 = fadd float %tmp8, %distERBlo.120		; <float> [#uses=1]
-	%tmp10 = add i32 %part.016, -1		; <i32> [#uses=1]
-	%tmp11 = sext i32 %tmp10 to i64		; <i64> [#uses=1]
-	%tmp12 = getelementptr float* %pTmp1, i64 %tmp11		; <float*> [#uses=1]
-	%tmp13 = load float* %tmp12, align 4		; <float> [#uses=1]
-	%tmp14 = fsub float %distERBhi.121, %tmp13		; <float> [#uses=1]
-	br label %bb3.preheader
-
-bb3.preheader:		; preds = %bb1, %bb
-	%distERBlo.0.ph = phi float [ %distERBlo.120, %bb ], [ %tmp9, %bb1 ]		; <float> [#uses=3]
-	%distERBhi.0.ph = phi float [ %distERBhi.121, %bb ], [ %tmp14, %bb1 ]		; <float> [#uses=3]
-	%tmp15 = fcmp ogt float %distERBlo.0.ph, 2.500000e+00		; <i1> [#uses=1]
-	br i1 %tmp15, label %bb.nph, label %bb5.preheader
-
-bb.nph:		; preds = %bb3.preheader
-	br label %bb2
-
-bb2:		; preds = %bb3, %bb.nph
-	%distERBlo.03 = phi float [ %tmp19, %bb3 ], [ %distERBlo.0.ph, %bb.nph ]		; <float> [#uses=1]
-	%loPart.02 = phi i32 [ %tmp24, %bb3 ], [ %loPart.118, %bb.nph ]		; <i32> [#uses=3]
-	%peakCount.01 = phi float [ %tmp23, %bb3 ], [ %peakCount.117, %bb.nph ]		; <float> [#uses=1]
-	%tmp16 = sext i32 %loPart.02 to i64		; <i64> [#uses=1]
-	%tmp17 = getelementptr float* %pTmp1, i64 %tmp16		; <float*> [#uses=1]
-	%tmp18 = load float* %tmp17, align 4		; <float> [#uses=1]
-	%tmp19 = fsub float %distERBlo.03, %tmp18		; <float> [#uses=3]
-	%tmp20 = sext i32 %loPart.02 to i64		; <i64> [#uses=1]
-	%tmp21 = getelementptr float* %peakWeight, i64 %tmp20		; <float*> [#uses=1]
-	%tmp22 = load float* %tmp21, align 4		; <float> [#uses=1]
-	%tmp23 = fsub float %peakCount.01, %tmp22		; <float> [#uses=2]
-	%tmp24 = add i32 %loPart.02, 1		; <i32> [#uses=2]
-	br label %bb3
-
-bb3:		; preds = %bb2
-	%tmp25 = fcmp ogt float %tmp19, 2.500000e+00		; <i1> [#uses=1]
-	br i1 %tmp25, label %bb2, label %bb3.bb5.preheader_crit_edge
-
-bb3.bb5.preheader_crit_edge:		; preds = %bb3
-	%tmp24.lcssa = phi i32 [ %tmp24, %bb3 ]		; <i32> [#uses=1]
-	%tmp23.lcssa = phi float [ %tmp23, %bb3 ]		; <float> [#uses=1]
-	%tmp19.lcssa = phi float [ %tmp19, %bb3 ]		; <float> [#uses=1]
-	br label %bb5.preheader
-
-bb5.preheader:		; preds = %bb3.bb5.preheader_crit_edge, %bb3.preheader
-	%distERBlo.0.lcssa = phi float [ %tmp19.lcssa, %bb3.bb5.preheader_crit_edge ], [ %distERBlo.0.ph, %bb3.preheader ]		; <float> [#uses=2]
-	%loPart.0.lcssa = phi i32 [ %tmp24.lcssa, %bb3.bb5.preheader_crit_edge ], [ %loPart.118, %bb3.preheader ]		; <i32> [#uses=1]
-	%peakCount.0.lcssa = phi float [ %tmp23.lcssa, %bb3.bb5.preheader_crit_edge ], [ %peakCount.117, %bb3.preheader ]		; <float> [#uses=2]
-	%.not10 = fcmp olt float %distERBhi.0.ph, 2.500000e+00		; <i1> [#uses=1]
-	%tmp26 = icmp sgt i32 %tmp3, %hiPart.119		; <i1> [#uses=1]
-	%or.cond11 = and i1 %tmp26, %.not10		; <i1> [#uses=1]
-	br i1 %or.cond11, label %bb.nph12, label %bb7
-
-bb.nph12:		; preds = %bb5.preheader
-	br label %bb4
-
-bb4:		; preds = %bb5, %bb.nph12
-	%distERBhi.29 = phi float [ %tmp30, %bb5 ], [ %distERBhi.0.ph, %bb.nph12 ]		; <float> [#uses=1]
-	%hiPart.08 = phi i32 [ %tmp31, %bb5 ], [ %hiPart.119, %bb.nph12 ]		; <i32> [#uses=2]
-	%peakCount.27 = phi float [ %tmp35, %bb5 ], [ %peakCount.0.lcssa, %bb.nph12 ]		; <float> [#uses=1]
-	%tmp27 = sext i32 %hiPart.08 to i64		; <i64> [#uses=1]
-	%tmp28 = getelementptr float* %pTmp1, i64 %tmp27		; <float*> [#uses=1]
-	%tmp29 = load float* %tmp28, align 4		; <float> [#uses=1]
-	%tmp30 = fadd float %tmp29, %distERBhi.29		; <float> [#uses=3]
-	%tmp31 = add i32 %hiPart.08, 1		; <i32> [#uses=4]
-	%tmp32 = sext i32 %tmp31 to i64		; <i64> [#uses=1]
-	%tmp33 = getelementptr float* %peakWeight, i64 %tmp32		; <float*> [#uses=1]
-	%tmp34 = load float* %tmp33, align 4		; <float> [#uses=1]
-	%tmp35 = fadd float %tmp34, %peakCount.27		; <float> [#uses=2]
-	br label %bb5
-
-bb5:		; preds = %bb4
-	%.not = fcmp olt float %tmp30, 2.500000e+00		; <i1> [#uses=1]
-	%tmp36 = icmp sgt i32 %tmp3, %tmp31		; <i1> [#uses=1]
-	%or.cond = and i1 %tmp36, %.not		; <i1> [#uses=1]
-	br i1 %or.cond, label %bb4, label %bb5.bb7_crit_edge
-
-bb5.bb7_crit_edge:		; preds = %bb5
-	%tmp35.lcssa = phi float [ %tmp35, %bb5 ]		; <float> [#uses=1]
-	%tmp31.lcssa = phi i32 [ %tmp31, %bb5 ]		; <i32> [#uses=1]
-	%tmp30.lcssa = phi float [ %tmp30, %bb5 ]		; <float> [#uses=1]
-	br label %bb7
-
-bb7:		; preds = %bb5.bb7_crit_edge, %bb5.preheader
-	%distERBhi.2.lcssa = phi float [ %tmp30.lcssa, %bb5.bb7_crit_edge ], [ %distERBhi.0.ph, %bb5.preheader ]		; <float> [#uses=2]
-	%hiPart.0.lcssa = phi i32 [ %tmp31.lcssa, %bb5.bb7_crit_edge ], [ %hiPart.119, %bb5.preheader ]		; <i32> [#uses=1]
-	%peakCount.2.lcssa = phi float [ %tmp35.lcssa, %bb5.bb7_crit_edge ], [ %peakCount.0.lcssa, %bb5.preheader ]		; <float> [#uses=2]
-	%tmp37 = fadd float %distERBlo.0.lcssa, %distERBhi.2.lcssa		; <float> [#uses=1]
-	%tmp38 = fdiv float %peakCount.2.lcssa, %tmp37		; <float> [#uses=1]
-	%tmp39 = fmul float %tmp38, %tmp1		; <float> [#uses=2]
-	%tmp40 = fmul float %tmp39, %tmp39		; <float> [#uses=2]
-	%tmp41 = fmul float %tmp40, %tmp40		; <float> [#uses=1]
-	%tmp42 = fadd float %tmp41, 1.000000e+00		; <float> [#uses=1]
-	%tmp43 = fdiv float 1.000000e+00, %tmp42		; <float> [#uses=1]
-	%tmp44 = sext i32 %part.016 to i64		; <i64> [#uses=1]
-	%tmp45 = getelementptr float* %nrgReducePeakrate, i64 %tmp44		; <float*> [#uses=1]
-	store float %tmp43, float* %tmp45, align 4
-	%tmp46 = add i32 %part.016, 1		; <i32> [#uses=2]
-	br label %bb8
-
-bb8:		; preds = %bb7
-	%tmp47 = icmp slt i32 %tmp46, %bandEdgeIndex		; <i1> [#uses=1]
-	br i1 %tmp47, label %bb, label %bb8.return_crit_edge
-
-bb8.return_crit_edge:		; preds = %bb8
-	br label %return
-
-return:		; preds = %bb8.return_crit_edge, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iv-zext.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iv-zext.ll
deleted file mode 100644
index d7eb7bd..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/iv-zext.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: not grep and %t
-; RUN: not grep zext %t
-
-target datalayout = "-p:64:64:64"
-
-define void @foo(double* %d, i64 %n) nounwind {
-entry:
-	br label %loop
-
-loop:
-	%indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
-	%indvar.i8 = and i64 %indvar, 255
-	%t0 = getelementptr double* %d, i64 %indvar.i8
-	%t1 = load double* %t0
-	%t2 = fmul double %t1, 0.1
-	store double %t2, double* %t0
-	%indvar.i24 = and i64 %indvar, 16777215
-	%t3 = getelementptr double* %d, i64 %indvar.i24
-	%t4 = load double* %t3
-	%t5 = fmul double %t4, 2.3
-	store double %t5, double* %t3
-	%t6 = getelementptr double* %d, i64 %indvar
-	%t7 = load double* %t6
-	%t8 = fmul double %t7, 4.5
-	store double %t8, double* %t6
-	%indvar.next = add i64 %indvar, 1
-	%exitcond = icmp eq i64 %indvar.next, 10
-	br i1 %exitcond, label %return, label %loop
-
-return:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr-other-uses.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr-other-uses.ll
deleted file mode 100644
index c8f1e95..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr-other-uses.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -disable-output
-
-; Don't RAUW the loop's original comparison instruction if it has
-; other uses which aren't dominated by the new comparison instruction.
-
-	%struct.DecRefPicMarking_s = type { i32, i32, i32, i32, i32, %struct.DecRefPicMarking_s* }
-	%struct.datapartition = type { %typedef.Bitstream*, %typedef.DecodingEnvironment, i32 (%struct.syntaxelement*, %struct.img_par*, %struct.inp_par*, %struct.datapartition*)* }
-	%struct.img_par = type { i32, i32, i32, i32, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [16 x [16 x i16]], [6 x [32 x i32]], [16 x [16 x i32]], [4 x [12 x [4 x [4 x i32]]]], [16 x i32], i32**, i32*, i32***, i32**, i32, i32, i32, i32, %typedef.Slice*, %struct.macroblock*, i32, i32, i32, i32, i32, i32, i32**, %struct.DecRefPicMarking_s*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [3 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32***, i32***, i32****, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.timeb, %struct.timeb, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.inp_par = type { [100 x i8], [100 x i8], [100 x i8], i32, i32, i32, i32, i32, i32, i32 }
-	%struct.macroblock = type { i32, i32, i32, %struct.macroblock*, %struct.macroblock*, i32, [2 x [4 x [4 x [2 x i32]]]], i32, i64, i64, i32, i32, [4 x i32], [4 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.syntaxelement = type { i32, i32, i32, i32, i32, i32, i32, i32, void (i32, i32, i32*, i32*)*, void (%struct.syntaxelement*, %struct.inp_par*, %struct.img_par*, %typedef.DecodingEnvironment*)* }
-	%struct.timeb = type { i32, i16, i16, i16 }
-	%typedef.BiContextType = type { i16, i8 }
-	%typedef.Bitstream = type { i32, i32, i32, i32, i8*, i32 }
-	%typedef.DecodingEnvironment = type { i32, i32, i32, i32, i32, i8*, i32* }
-	%typedef.MotionInfoContexts = type { [4 x [11 x %typedef.BiContextType]], [2 x [9 x %typedef.BiContextType]], [2 x [10 x %typedef.BiContextType]], [2 x [6 x %typedef.BiContextType]], [4 x %typedef.BiContextType], [4 x %typedef.BiContextType], [3 x %typedef.BiContextType] }
-	%typedef.Slice = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.datapartition*, %typedef.MotionInfoContexts*, %typedef.TextureInfoContexts*, i32, i32*, i32*, i32*, i32, i32*, i32*, i32*, i32 (%struct.img_par*, %struct.inp_par*)*, i32, i32, i32, i32 }
-	%typedef.TextureInfoContexts = type { [2 x %typedef.BiContextType], [4 x %typedef.BiContextType], [3 x [4 x %typedef.BiContextType]], [10 x [4 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]], [10 x [5 x %typedef.BiContextType]], [10 x [5 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]], [10 x [15 x %typedef.BiContextType]] }
-
-define void @readCBP_CABAC(%struct.syntaxelement* %se, %struct.inp_par* %inp, %struct.img_par* %img.1, %typedef.DecodingEnvironment* %dep_dp) {
-entry:
-	br label %loopentry.0
-
-loopentry.0:		; preds = %loopentry.1, %entry
-	%mb_y.0 = phi i32 [ 0, %entry ], [ %tmp.152, %loopentry.1 ]		; <i32> [#uses=2]
-	%tmp.14 = icmp sle i32 %mb_y.0, 3		; <i1> [#uses=2]
-	%tmp.15 = zext i1 %tmp.14 to i32		; <i32> [#uses=0]
-	br i1 %tmp.14, label %loopentry.1, label %loopexit.0
-
-loopentry.1:		; preds = %loopentry.0
-	%tmp.152 = add i32 %mb_y.0, 2		; <i32> [#uses=1]
-	br label %loopentry.0
-
-loopexit.0:		; preds = %loopentry.0
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr-promote.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr-promote.ll
deleted file mode 100644
index b2cb770..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr-promote.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep add | count 1
-
-; Indvars should be able to compute the exit value of this loop
-; without any additional arithmetic. The only add needed should
-; be the canonical IV increment.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-
-define void @foo(double* %p, i32 %n) nounwind {
-entry:
-	%0 = icmp sgt i32 %n, 0		; <i1> [#uses=1]
-	br i1 %0, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	br label %bb2
-
-bb2:		; preds = %bb3, %bb.nph
-	%i.01 = phi i32 [ %7, %bb3 ], [ 0, %bb.nph ]		; <i32> [#uses=3]
-	%1 = sext i32 %i.01 to i64		; <i64> [#uses=1]
-	%2 = getelementptr double* %p, i64 %1		; <double*> [#uses=1]
-	%3 = load double* %2, align 8		; <double> [#uses=1]
-	%4 = fmul double %3, 1.100000e+00		; <double> [#uses=1]
-	%5 = sext i32 %i.01 to i64		; <i64> [#uses=1]
-	%6 = getelementptr double* %p, i64 %5		; <double*> [#uses=1]
-	store double %4, double* %6, align 8
-	%7 = add i32 %i.01, 1		; <i32> [#uses=2]
-	br label %bb3
-
-bb3:		; preds = %bb2
-	%8 = icmp slt i32 %7, %n		; <i1> [#uses=1]
-	br i1 %8, label %bb2, label %bb3.return_crit_edge
-
-bb3.return_crit_edge:		; preds = %bb3
-	br label %return
-
-return:		; preds = %bb3.return_crit_edge, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr_simple.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr_simple.ll
deleted file mode 100644
index 3f7c289..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/lftr_simple.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; LFTR should eliminate the need for the computation of i*i completely.  It 
-; is only used to compute the exit value.
-; RUN: llvm-as < %s | opt -indvars -dce | llvm-dis | not grep mul
-
- at A = external global i32                ; <i32*> [#uses=1]
-
-define i32 @quadratic_setlt() {
-entry:
-        br label %loop
-
-loop:           ; preds = %loop, %entry
-        %i = phi i32 [ 7, %entry ], [ %i.next, %loop ]          ; <i32> [#uses=5]
-        %i.next = add i32 %i, 1         ; <i32> [#uses=1]
-        store i32 %i, i32* @A
-        %i2 = mul i32 %i, %i            ; <i32> [#uses=1]
-        %c = icmp slt i32 %i2, 1000             ; <i1> [#uses=1]
-        br i1 %c, label %loop, label %loopexit
-
-loopexit:               ; preds = %loop
-        ret i32 %i
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop-invariant-step.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop-invariant-step.ll
deleted file mode 100644
index 40156ea..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop-invariant-step.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -instcombine -indvars -disable-output
-; PR4455
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-
-declare i8* @fast_memcpy(i8*, i8*, i64)
-
-define void @dvdsub_decode() nounwind {
-entry:		; preds = %bb1
-	br label %LoopA
-
-LoopA:		; preds = %LoopA, %entry
-	%x1.0.i17 = phi i32 [ %t0, %LoopA ], [ 0, %entry ]		; <i32> [#uses=2]
-	%t0 = add i32 %x1.0.i17, 1		; <i32> [#uses=1]
-	br i1 undef, label %LoopA, label %middle
-
-middle:		; preds = %LoopA
-	%t1 = sub i32 0, %x1.0.i17		; <i32> [#uses=1]
-	%t2 = add i32 %t1, 1		; <i32> [#uses=1]
-	br label %LoopB
-
-LoopB:		; preds = %LoopB, %bb.nph.i27
-	%y.029.i = phi i32 [ 0, %middle ], [ %t7, %LoopB ]		; <i32> [#uses=2]
-	%t3 = mul i32 %y.029.i, %t2		; <i32> [#uses=1]
-	%t4 = sext i32 %t3 to i64		; <i64> [#uses=1]
-	%t5 = getelementptr i8* null, i64 %t4		; <i8*> [#uses=1]
-	%t6 = call i8* @fast_memcpy(i8* %t5, i8* undef, i64 undef) nounwind		; <i8*> [#uses=0]
-	%t7 = add i32 %y.029.i, 1		; <i32> [#uses=1]
-	br i1 undef, label %LoopB, label %exit
-
-exit:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate10.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate10.ll
deleted file mode 100644
index 3766333..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate10.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis \
-; RUN:   | grep {%b.1 = phi i32 \\\[ 2, %bb \\\], \\\[ 1, %bb2 \\\]}
-
-; This loop has multiple exits, and the value of %b1 depends on which
-; exit is taken. Indvars should correctly compute the exit values.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-linux-gnu"
-	%struct..0anon = type <{ i8, [3 x i8] }>
-
-define i32 @main() nounwind {
-entry:
-	br label %bb2
-
-bb2:		; preds = %bb, %entry
-	%sdata.0 = phi i32 [ 1, %entry ], [ %ins10, %bb ]		; <i32> [#uses=2]
-	%b.0 = phi i32 [ 0, %entry ], [ %t0, %bb ]		; <i32> [#uses=2]
-	%tmp6 = trunc i32 %sdata.0 to i8		; <i8> [#uses=2]
-	%t2 = and i8 %tmp6, 1		; <i8> [#uses=1]
-	%t3 = icmp eq i8 %t2, 0		; <i1> [#uses=1]
-	%t4 = xor i8 %tmp6, 1		; <i8> [#uses=1]
-	%tmp8 = zext i8 %t4 to i32		; <i32> [#uses=1]
-	%mask9 = and i32 %sdata.0, -256		; <i32> [#uses=1]
-	%ins10 = or i32 %tmp8, %mask9		; <i32> [#uses=1]
-	br i1 %t3, label %bb3, label %bb
-
-bb:		; preds = %bb2
-	%t0 = add i32 %b.0, 1		; <i32> [#uses=3]
-	%t1 = icmp sgt i32 %t0, 100		; <i1> [#uses=1]
-	br i1 %t1, label %bb3, label %bb2
-
-bb3:		; preds = %bb, %bb2
-	%b.1 = phi i32 [ %t0, %bb ], [ %b.0, %bb2 ]		; <i32> [#uses=1]
-	%t5 = icmp eq i32 %b.1, 1		; <i1> [#uses=1]
-	br i1 %t5, label %bb5, label %bb4
-
-bb4:		; preds = %bb3
-	tail call void @abort() noreturn nounwind
-	unreachable
-
-bb5:		; preds = %bb3
-	ret i32 0
-}
-
-declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind
-
-declare void @abort() noreturn nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate11.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate11.ll
deleted file mode 100644
index 71bd5a7..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate11.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -domfrontier -indvars -loop-deletion
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-
-define void @slap_sl_mem_create() nounwind {
-entry:
-	br label %bb15
-
-bb15:		; preds = %bb15, %entry
-	%order_end.0 = phi i32 [ 0, %entry ], [ %tmp, %bb15 ]		; <i32> [#uses=1]
-	%tmp = add i32 %order_end.0, 1		; <i32> [#uses=2]
-	br i1 undef, label %bb17, label %bb15
-
-bb17:		; preds = %bb17, %bb15
-	%order_start.0 = phi i32 [ %tmp1, %bb17 ], [ 0, %bb15 ]		; <i32> [#uses=2]
-	%tmp1 = add i32 %order_start.0, 1		; <i32> [#uses=2]
-	%tmp2 = icmp eq i32 undef, 0		; <i1> [#uses=1]
-	br i1 %tmp2, label %bb18, label %bb17
-
-bb18:		; preds = %bb17
-	%tmp3 = sub i32 %tmp, %tmp1		; <i32> [#uses=0]
-	br label %bb59
-
-bb51:		; preds = %bb59
-	%tmp4 = add i32 %order_start.0, 2		; <i32> [#uses=1]
-	%tmp5 = add i32 %tmp4, undef		; <i32> [#uses=1]
-	%tmp6 = lshr i32 undef, %tmp5		; <i32> [#uses=1]
-	%tmp7 = icmp eq i32 %tmp6, 0		; <i1> [#uses=1]
-	br i1 %tmp7, label %bb52, label %bb59
-
-bb59:		; preds = %bb51, %bb18
-	br label %bb51
-
-bb52:		; preds = %bb51
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate7.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate7.ll
deleted file mode 100644
index 6e31c55..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate7.ll
+++ /dev/null
@@ -1,61 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-; PR4436
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define i8* @string_expandtabs(i32 %n, i8* %m) nounwind {
-entry:
-	br i1 undef, label %bb33, label %bb1
-
-bb1:		; preds = %entry
-	br i1 undef, label %overflow1, label %bb15
-
-bb15:		; preds = %bb1
-	br i1 undef, label %bb33, label %bb17
-
-bb17:		; preds = %bb15
-	br label %bb30
-
-bb19:		; preds = %bb30
-	br i1 undef, label %bb20, label %bb29
-
-bb20:		; preds = %bb19
-	%0 = load i32* undef, align 4		; <i32> [#uses=1]
-	%1 = sub i32 %0, %n		; <i32> [#uses=1]
-	br label %bb23
-
-bb21:		; preds = %bb23
-	%2 = icmp ult i8* %q.0, %m		; <i1> [#uses=1]
-	br i1 %2, label %bb22, label %overflow2
-
-bb22:		; preds = %bb21
-	%3 = getelementptr i8* %q.0, i32 1		; <i8*> [#uses=1]
-	br label %bb23
-
-bb23:		; preds = %bb22, %bb20
-	%i.2 = phi i32 [ %1, %bb20 ], [ %4, %bb22 ]		; <i32> [#uses=1]
-	%q.0 = phi i8* [ undef, %bb20 ], [ %3, %bb22 ]		; <i8*> [#uses=3]
-	%4 = add i32 %i.2, -1		; <i32> [#uses=2]
-	%5 = icmp eq i32 %4, -1		; <i1> [#uses=1]
-	br i1 %5, label %bb29, label %bb21
-
-bb29:		; preds = %bb23, %bb19
-	%q.1 = phi i8* [ undef, %bb19 ], [ %q.0, %bb23 ]		; <i8*> [#uses=0]
-	br label %bb30
-
-bb30:		; preds = %bb29, %bb17
-	br i1 undef, label %bb19, label %bb33
-
-overflow2:		; preds = %bb21
-	br i1 undef, label %bb32, label %overflow1
-
-bb32:		; preds = %overflow2
-	br label %overflow1
-
-overflow1:		; preds = %bb32, %overflow2, %bb1
-	ret i8* null
-
-bb33:		; preds = %bb30, %bb15, %entry
-	ret i8* undef
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate8.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate8.ll
deleted file mode 100644
index fa2f9e5..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate8.ll
+++ /dev/null
@@ -1,63 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | not grep select
-
-; This loop has backedge-taken-count zero. Indvars shouldn't expand any
-; instructions to compute a trip count.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define i8* @string_expandtabs() nounwind {
-entry:
-	br i1 undef, label %bb33, label %bb1
-
-bb1:		; preds = %entry
-	br i1 undef, label %overflow1, label %bb15
-
-bb15:		; preds = %bb1
-	br i1 undef, label %bb33, label %bb17
-
-bb17:		; preds = %bb15
-	br label %bb30
-
-bb19:		; preds = %bb30
-	br i1 undef, label %bb20, label %bb29
-
-bb20:		; preds = %bb19
-	%0 = load i32* undef, align 4		; <i32> [#uses=1]
-	%1 = sub i32 %0, undef		; <i32> [#uses=1]
-	br label %bb23
-
-bb21:		; preds = %bb23
-	%2 = icmp ult i8* %q.0, undef		; <i1> [#uses=1]
-	br i1 %2, label %bb22, label %overflow2
-
-bb22:		; preds = %bb21
-	%3 = getelementptr i8* %q.0, i32 1		; <i8*> [#uses=1]
-	br label %bb23
-
-bb23:		; preds = %bb22, %bb20
-	%i.2 = phi i32 [ %1, %bb20 ], [ %4, %bb22 ]		; <i32> [#uses=1]
-	%q.0 = phi i8* [ undef, %bb20 ], [ %3, %bb22 ]		; <i8*> [#uses=3]
-	%4 = add i32 %i.2, -1		; <i32> [#uses=2]
-	%5 = icmp eq i32 %4, -1		; <i1> [#uses=1]
-	br i1 %5, label %bb29, label %bb21
-
-bb29:		; preds = %bb23, %bb19
-	%q.1 = phi i8* [ undef, %bb19 ], [ %q.0, %bb23 ]		; <i8*> [#uses=0]
-	br label %bb30
-
-bb30:		; preds = %bb29, %bb17
-	br i1 undef, label %bb19, label %bb33
-
-overflow2:		; preds = %bb21
-	br i1 undef, label %bb32, label %overflow1
-
-bb32:		; preds = %overflow2
-	br label %overflow1
-
-overflow1:		; preds = %bb32, %overflow2, %bb1
-	ret i8* null
-
-bb33:		; preds = %bb30, %bb15, %entry
-	ret i8* undef
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate9.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate9.ll
deleted file mode 100644
index 8310038..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate9.ll
+++ /dev/null
@@ -1,78 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep {\[%\]tmp7 = icmp eq i8 -28, -28} %t
-; RUN: grep {\[%\]tmp8 = icmp eq i8 63, 63} %t
-; PR4477
-
-; Indvars should compute the exit values in loop.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	%struct.cc70a02__complex_integers__complex_type = type { i8, i8 }
- at .str = internal constant [13 x i8] c"fc70a00.adb\00\00", align 1		; <[13 x i8]*> [#uses=1]
-
-define void @_ada_cc70a02() {
-entry:
-	br label %bb1.i
-
-bb1.i:		; preds = %bb2.i, %entry
-	%indvar.i = phi i32 [ 0, %entry ], [ %indvar.next.i, %bb2.i ]		; <i32> [#uses=2]
-	%result.0.i = phi i16 [ 0, %entry ], [ %ins36.i, %bb2.i ]		; <i16> [#uses=2]
-	%tmp38.i = trunc i16 %result.0.i to i8		; <i8> [#uses=2]
-	%tmp = add i8 %tmp38.i, 96		; <i8> [#uses=1]
-	%tmp1 = icmp ugt i8 %tmp, -56		; <i1> [#uses=1]
-	br i1 %tmp1, label %bb.i.i, label %bb1.i.i
-
-bb.i.i:		; preds = %bb1.i
-	tail call void @__gnat_rcheck_12(i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 24) noreturn
-	unreachable
-
-bb1.i.i:		; preds = %bb1.i
-	%tmp41.i = lshr i16 %result.0.i, 8		; <i16> [#uses=1]
-	%tmp42.i = trunc i16 %tmp41.i to i8		; <i8> [#uses=2]
-	%tmp2 = add i8 %tmp42.i, 109		; <i8> [#uses=1]
-	%tmp3 = icmp ugt i8 %tmp2, -56		; <i1> [#uses=1]
-	br i1 %tmp3, label %bb2.i.i, label %cc70a02__complex_integers__Oadd.153.exit.i
-
-bb2.i.i:		; preds = %bb1.i.i
-	tail call void @__gnat_rcheck_12(i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 24) noreturn
-	unreachable
-
-cc70a02__complex_integers__Oadd.153.exit.i:		; preds = %bb1.i.i
-	%tmp4 = add i8 %tmp38.i, -4		; <i8> [#uses=2]
-	%tmp5 = add i8 %tmp42.i, 9		; <i8> [#uses=2]
-	%tmp25.i = zext i8 %tmp4 to i16		; <i16> [#uses=1]
-	%tmp33.i = zext i8 %tmp5 to i16		; <i16> [#uses=1]
-	%tmp34.i = shl i16 %tmp33.i, 8		; <i16> [#uses=1]
-	%ins36.i = or i16 %tmp34.i, %tmp25.i		; <i16> [#uses=1]
-	%tmp6 = icmp eq i32 %indvar.i, 6		; <i1> [#uses=1]
-	br i1 %tmp6, label %cc70a02__complex_multiplication.170.exit, label %bb2.i
-
-bb2.i:		; preds = %cc70a02__complex_integers__Oadd.153.exit.i
-	%indvar.next.i = add i32 %indvar.i, 1		; <i32> [#uses=1]
-	br label %bb1.i
-
-cc70a02__complex_multiplication.170.exit:		; preds = %cc70a02__complex_integers__Oadd.153.exit.i
-	%tmp7 = icmp eq i8 %tmp4, -28		; <i1> [#uses=1]
-	%tmp8 = icmp eq i8 %tmp5, 63		; <i1> [#uses=1]
-	%or.cond = and i1 %tmp8, %tmp7		; <i1> [#uses=1]
-	br i1 %or.cond, label %return, label %bb1
-
-bb1:		; preds = %cc70a02__complex_multiplication.170.exit
-	tail call void @exit(i32 1)
-	ret void
-
-return:		; preds = %cc70a02__complex_multiplication.170.exit
-	ret void
-}
-
-declare fastcc void @cc70a02__complex_integers__complex.164(%struct.cc70a02__complex_integers__complex_type* noalias nocapture sret, i8 signext, i8 signext) nounwind
-
-declare fastcc void @cc70a02__complex_integers__Osubtract.149(%struct.cc70a02__complex_integers__complex_type* noalias sret, %struct.cc70a02__complex_integers__complex_type* byval align 4)
-
-declare fastcc void @cc70a02__complex_integers__Oadd.153(%struct.cc70a02__complex_integers__complex_type* noalias sret, %struct.cc70a02__complex_integers__complex_type* byval align 4, %struct.cc70a02__complex_integers__complex_type* byval align 4)
-
-declare fastcc void @cc70a02__complex_multiplication.170(%struct.cc70a02__complex_integers__complex_type* noalias sret, %struct.cc70a02__complex_integers__complex_type* byval align 4)
-
-declare void @__gnat_rcheck_12(i8*, i32) noreturn
-
-declare void @exit(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
deleted file mode 100644
index dfb42e4..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -loop-deletion -simplifycfg | llvm-dis | not grep br
-;
-; Testcase distilled from 256.bzip2
-
-define i32 @main() {
-entry:
-        br label %loopentry
-
-loopentry:              ; preds = %loopentry, %entry
-        %indvar1 = phi i32 [ 0, %entry ], [ %indvar.next2, %loopentry ]         ; <i32> [#uses=1]
-        %h.0 = phi i32 [ %tmp.2, %loopentry ], [ 4, %entry ]            ; <i32> [#uses=1]
-        %tmp.1 = mul i32 %h.0, 3                ; <i32> [#uses=1]
-        %tmp.2 = add i32 %tmp.1, 1              ; <i32> [#uses=2]
-        %indvar.next2 = add i32 %indvar1, 1             ; <i32> [#uses=2]
-        %exitcond3 = icmp ne i32 %indvar.next2, 4               ; <i1> [#uses=1]
-        br i1 %exitcond3, label %loopentry, label %loopexit
-
-loopexit:               ; preds = %loopentry
-        ret i32 %tmp.2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll
deleted file mode 100644
index efcf20a..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -loop-deletion -simplifycfg | opt \
-; RUN:     -analyze -loops | not grep "^Loop Containing" 
-; PR1179
-
-define i32 @ltst(i32 %x) {
-entry:
-        icmp sgt i32 %x, 0              ; <i1>:0 [#uses=1]
-        br i1 %0, label %bb.preheader, label %bb8
-
-bb.preheader:           ; preds = %entry
-        br label %bb
-
-bb:             ; preds = %bb, %bb.preheader
-        %i.01.0 = phi i32 [ %tmp4, %bb ], [ 0, %bb.preheader ]          ; <i32> [#uses=1]
-        %j.03.0 = phi i32 [ %tmp2, %bb ], [ 0, %bb.preheader ]          ; <i32> [#uses=1]
-        %tmp4 = add i32 %i.01.0, 1              ; <i32> [#uses=2]
-        %tmp2 = add i32 %j.03.0, 1              ; <i32> [#uses=2]
-        icmp slt i32 %tmp4, %x          ; <i1>:1 [#uses=1]
-        br i1 %1, label %bb, label %bb8.loopexit
-
-bb8.loopexit:           ; preds = %bb
-        br label %bb8
-
-bb8:            ; preds = %bb8.loopexit, %entry
-        %j.03.1 = phi i32 [ 0, %entry ], [ %tmp2, %bb8.loopexit ]               ; <i32> [#uses=1]
-        ret i32 %j.03.1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_3.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_3.ll
deleted file mode 100644
index 2a2f69d..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_3.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep {ret i32 600000}
-; PR1179
-
-define i32 @foo() {
-entry:
-        br label %bb5
-
-bb5:            ; preds = %bb5, %entry
-        %i.01.0 = phi i32 [ 0, %entry ], [ %tmp2, %bb5 ]                ; <i32> [#uses=1]
-        %x.03.0 = phi i32 [ 0, %entry ], [ %tmp4, %bb5 ]                ; <i32> [#uses=1]
-        %tmp2 = add i32 %i.01.0, 3              ; <i32> [#uses=2]
-        %tmp4 = add i32 %x.03.0, 1              ; <i32> [#uses=2]
-        icmp slt i32 %tmp4, 200000              ; <i1>:0 [#uses=1]
-        br i1 %0, label %bb5, label %bb7
-
-bb7:            ; preds = %bb5
-        ret i32 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_4.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_4.ll
deleted file mode 100644
index 6c6a362..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_4.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep {ret i32 9900}
-; PR1179
-
-define i32 @test4() {
-entry:
-        br label %bb7
-
-bb7:            ; preds = %bb7, %entry
-        %v.01.0 = phi i32 [ 0, %entry ], [ %tmp4, %bb7 ]                ; <i32> [#uses=1]
-        %i.03.0 = phi i32 [ 0, %entry ], [ %tmp6, %bb7 ]                ; <i32> [#uses=2]
-        %tmp2 = shl i32 %i.03.0, 1              ; <i32> [#uses=1]
-        %tmp4 = add i32 %tmp2, %v.01.0          ; <i32> [#uses=2]
-        %tmp6 = add i32 %i.03.0, 1              ; <i32> [#uses=2]
-        icmp slt i32 %tmp6, 100         ; <i1>:0 [#uses=1]
-        br i1 %0, label %bb7, label %bb9
-
-bb9:            ; preds = %bb7
-        ret i32 %tmp4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_5.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_5.ll
deleted file mode 100644
index c6ce4a2..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_5.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep {120, %bb2.bb3_crit_edge}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-
-; Indvars should be able to compute an exit value for %tmp1.
-
-define i32 @testcase(i5 zeroext %k) nounwind readnone {
-entry:
-	br i1 false, label %bb3, label %bb.nph
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb2, %bb.nph
-	%result2 = phi i32 [ %tmp1, %bb2 ], [ 0, %bb.nph ]		; <i32> [#uses=1]
-	%k_01 = phi i5 [ %indvar_next1, %bb2 ], [ 0, %bb.nph ]		; <i5> [#uses=2]
-	%tmp2 = zext i5 %k_01 to i32		; <i32> [#uses=1]
-	%tmp1 = add i32 %tmp2, %result2		; <i32> [#uses=2]
-	%indvar_next1 = add i5 %k_01, 1		; <i5> [#uses=2]
-	br label %bb2
-
-bb2:		; preds = %bb
-	%phitmp = icmp eq i5 %indvar_next1, -16		; <i1> [#uses=1]
-	br i1 %phitmp, label %bb2.bb3_crit_edge, label %bb
-
-bb2.bb3_crit_edge:		; preds = %bb2
-	br label %bb3
-
-bb3:		; preds = %bb2.bb3_crit_edge, %entry
-	%result.lcssa = phi i32 [ %tmp1, %bb2.bb3_crit_edge ], [ 0, %entry ]		; <i32> [#uses=1]
-	ret i32 %result.lcssa
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_6.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_6.ll
deleted file mode 100644
index 0d17a80..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate_6.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -loop-deletion | llvm-dis | grep phi | count 1
-; XFAIL: *
-
-; Indvars can't evaluate this loop, because ScalarEvolution can't compute
-; an exact trip count, because it doesn't know if dividing by the stride will
-; have a remainder. It could be done with more aggressive VRP though.
-
-define i32 @test(i32 %x_offs) nounwind readnone {
-entry:
-	%0 = icmp sgt i32 %x_offs, 4		; <i1> [#uses=1]
-	br i1 %0, label %bb.nph, label %bb2
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%x_offs_addr.01 = phi i32 [ %1, %bb1 ], [ %x_offs, %bb.nph ]		; <i32> [#uses=1]
-	%1 = add i32 %x_offs_addr.01, -4		; <i32> [#uses=3]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%2 = icmp sgt i32 %1, 4		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %bb1.bb2_crit_edge
-
-bb1.bb2_crit_edge:		; preds = %bb1
-	br label %bb2
-
-bb2:		; preds = %bb1.bb2_crit_edge, %entry
-	%x_offs_addr.0.lcssa = phi i32 [ %1, %bb1.bb2_crit_edge ], [ %x_offs, %entry ]		; <i32> [#uses=1]
-	ret i32 %x_offs_addr.0.lcssa
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/masked-iv.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/masked-iv.ll
deleted file mode 100644
index f77b935..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/masked-iv.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: not grep trunc %t
-; RUN: grep and %t | count 1
-
-; Indvars should do the IV arithmetic in the canonical IV type (i64),
-; and only use one truncation.
-
-define void @foo(i64* %A, i64* %B, i64 %n, i64 %a, i64 %s) nounwind {
-entry:
-	%t0 = icmp sgt i64 %n, 0		; <i1> [#uses=1]
-	br i1 %t0, label %bb.preheader, label %return
-
-bb.preheader:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb, %bb.preheader
-	%i.01 = phi i64 [ %t6, %bb ], [ %a, %bb.preheader ]		; <i64> [#uses=3]
-	%t1 = and i64 %i.01, 255		; <i64> [#uses=1]
-	%t2 = getelementptr i64* %A, i64 %t1		; <i64*> [#uses=1]
-	store i64 %i.01, i64* %t2, align 8
-	%t6 = add i64 %i.01, %s		; <i64> [#uses=1]
-	br label %bb
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/max-pointer.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/max-pointer.ll
deleted file mode 100644
index 2ee08db..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/max-pointer.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep {icmp ugt i8\\\*} %t | count 1
-; RUN: grep {icmp sgt i8\\\*} %t | count 1
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-
-	%struct.CKenCodeCodec = type <{ i8 }>
-
-define void @foo(i8* %str1Ptr, i8* %str2Ptr, i8* %inLastBytePtr) nounwind {
-entry:
-	%0 = icmp ult i8* %str2Ptr, %str1Ptr		; <i1> [#uses=1]
-	%str2Ptr_addr.0 = select i1 %0, i8* %str1Ptr, i8* %str2Ptr		; <i8*> [#uses=1]
-	br label %bb2
-
-bb2:		; preds = %bb2, %entry
-	%str2Ptr_addr.1 = phi i8* [ %str2Ptr_addr.0, %entry ], [ %1, %bb2 ]		; <i8*> [#uses=1]
-	%1 = getelementptr i8* %str2Ptr_addr.1, i64 1		; <i8*> [#uses=2]
-	%2 = icmp ult i8* %1, %inLastBytePtr		; <i1> [#uses=0]
-	br i1 false, label %bb2, label %return
-
-return:		; preds = %bb2
-	ret void
-}
-
-define void @sfoo(i8* %str1Ptr, i8* %str2Ptr, i8* %inLastBytePtr) nounwind {
-entry:
-	%0 = icmp slt i8* %str2Ptr, %str1Ptr		; <i1> [#uses=1]
-	%str2Ptr_addr.0 = select i1 %0, i8* %str1Ptr, i8* %str2Ptr		; <i8*> [#uses=1]
-	br label %bb2
-
-bb2:		; preds = %bb2, %entry
-	%str2Ptr_addr.1 = phi i8* [ %str2Ptr_addr.0, %entry ], [ %1, %bb2 ]		; <i8*> [#uses=1]
-	%1 = getelementptr i8* %str2Ptr_addr.1, i64 1		; <i8*> [#uses=2]
-	%2 = icmp slt i8* %1, %inLastBytePtr		; <i1> [#uses=0]
-	br i1 false, label %bb2, label %return
-
-return:		; preds = %bb2
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
deleted file mode 100644
index 7119cbb..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-
- at ue = external global i64
-
-define i32 @foo() nounwind {
-entry:
-	br label %bb38.i
-
-bb14.i27:
-	%t0 = load i64* @ue, align 8
-	%t1 = sub i64 %t0, %i.0.i35
-	%t2 = add i64 %t1, 1
-	br i1 undef, label %bb15.i28, label %bb19.i31
-
-bb15.i28:
-	br label %bb19.i31
-
-bb19.i31:
-	%y.0.i = phi i64 [ %t2, %bb15.i28 ], [ %t2, %bb14.i27 ]
-	br label %bb35.i
-
-bb35.i:
-	br i1 undef, label %bb37.i, label %bb14.i27
-
-bb37.i:
-	%t3 = add i64 %i.0.i35, 1
-	br label %bb38.i
-
-bb38.i:
-	%i.0.i35 = phi i64 [ 1, %entry ], [ %t3, %bb37.i ]
-	br label %bb35.i
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/pointer-indvars.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/pointer-indvars.ll
deleted file mode 100644
index c9da157..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/pointer-indvars.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar
- at G = global i32* null           ; <i32**> [#uses=1]
- at Array = external global [40 x i32]             ; <[40 x i32]*> [#uses=1]
-
-define void @test() {
-; <label>:0
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %X = phi i32* [ getelementptr ([40 x i32]* @Array, i64 0, i64 0), %0 ], [ %X.next, %Loop ]              ; <i32*> [#uses=2]
-        %X.next = getelementptr i32* %X, i64 1          ; <i32*> [#uses=1]
-        store i32* %X, i32** @G
-        br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/pointer.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/pointer.ll
deleted file mode 100644
index 7ad1161..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/pointer.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep {%exitcond = icmp eq i64 %indvar.next, %n} %t
-; RUN: grep {getelementptr i8\\* %A, i64 %indvar} %t
-; RUN: grep getelementptr %t | count 1
-; RUN: grep add %t | count 1
-; RUN: not grep scevgep %t
-; RUN: not grep ptrtoint %t
-
-; Indvars should be able to expand the pointer-arithmetic
-; IV into an integer IV indexing into a simple getelementptr.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64"
-
-define void @foo(i8* %A, i64 %n) nounwind {
-entry:
-	%0 = icmp eq i64 %n, 0		; <i1> [#uses=1]
-	br i1 %0, label %return, label %bb.nph
-
-bb.nph:		; preds = %entry
-	%1 = getelementptr i8* %A, i64 %n		; <i8*> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%q.01 = phi i8* [ %2, %bb1 ], [ %A, %bb.nph ]		; <i8*> [#uses=2]
-	store i8 0, i8* %q.01, align 1
-	%2 = getelementptr i8* %q.01, i64 1		; <i8*> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%3 = icmp eq i8* %1, %2		; <i1> [#uses=1]
-	br i1 %3, label %bb1.return_crit_edge, label %bb
-
-bb1.return_crit_edge:		; preds = %bb1
-	br label %return
-
-return:		; preds = %bb1.return_crit_edge, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep-nested.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep-nested.ll
deleted file mode 100644
index 6959064..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep-nested.ll
+++ /dev/null
@@ -1,75 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; Exactly one getelementptr for each load+store.
-; RUN: grep getelementptr %t | count 6
-; Each getelementptr using %struct.Q* %s as a base and not i8*.
-; RUN: grep {getelementptr \[%\]struct\\.Q\\* \[%\]s,} %t | count 6
-; No explicit integer multiplications!
-; RUN: not grep {= mul} %t
-; No i8* arithmetic or pointer casting anywhere!
-; RUN: not grep {i8\\*} %t
-; RUN: not grep bitcast %t
-; RUN: not grep inttoptr %t
-; RUN: not grep ptrtoint %t
-
-; FIXME: This test should pass with or without TargetData. Until opt
-; supports running tests without targetdata, just hardware this in.
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-
-%struct.Q = type { [10 x %struct.N] }
-%struct.N = type { %struct.S }
-%struct.S = type { [100 x double], [100 x double] }
-
-define void @foo(%struct.Q* %s, i64 %n) nounwind {
-entry:
-  br label %bb1
-
-bb1:
-  %i = phi i64 [ 2, %entry ], [ %i.next, %bb ]
-  %j = phi i64 [ 0, %entry ], [ %j.next, %bb ]
-  %t5 = icmp slt i64 %i, %n
-  br i1 %t5, label %bb, label %return
-
-bb:
-  %t0 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 0, i32 0, i32 0, i64 %i
-  %t1 = load double* %t0, align 8
-  %t2 = fmul double %t1, 3.200000e+00
-  %t3 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 0, i32 0, i32 0, i64 %i
-  store double %t2, double* %t3, align 8
-
-  %s0 = getelementptr inbounds %struct.Q* %s, i64 13, i32 0, i64 7, i32 0, i32 1, i64 %i
-  %s1 = load double* %s0, align 8
-  %s2 = fmul double %s1, 3.200000e+00
-  %s3 = getelementptr inbounds %struct.Q* %s, i64 13, i32 0, i64 7, i32 0, i32 1, i64 %i
-  store double %s2, double* %s3, align 8
-
-  %u0 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 7, i32 0, i32 1, i64 %j
-  %u1 = load double* %u0, align 8
-  %u2 = fmul double %u1, 3.200000e+00
-  %u3 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 7, i32 0, i32 1, i64 %j
-  store double %u2, double* %u3, align 8
-
-  %v0 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 0, i32 0, i32 1, i64 %i
-  %v1 = load double* %v0, align 8
-  %v2 = fmul double %v1, 3.200000e+00
-  %v3 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 0, i32 0, i32 1, i64 %i
-  store double %v2, double* %v3, align 8
-
-  %w0 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 0, i32 0, i32 0, i64 %j
-  %w1 = load double* %w0, align 8
-  %w2 = fmul double %w1, 3.200000e+00
-  %w3 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 0, i32 0, i32 0, i64 %j
-  store double %w2, double* %w3, align 8
-
-  %x0 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 3, i32 0, i32 0, i64 %i
-  %x1 = load double* %x0, align 8
-  %x2 = fmul double %x1, 3.200000e+00
-  %x3 = getelementptr inbounds %struct.Q* %s, i64 0, i32 0, i64 3, i32 0, i32 0, i64 %i
-  store double %x2, double* %x3, align 8
-
-  %i.next = add i64 %i, 1
-  %j.next = add i64 %j, 1
-  br label %bb1
-
-return:
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep-remainder.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep-remainder.ll
deleted file mode 100644
index 95726ea..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep-remainder.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis \
-; RUN:   | grep {\[%\]p.2.ip.1 = getelementptr \\\[3 x \\\[3 x double\\\]\\\]\\* \[%\]p, i64 2, i64 \[%\]tmp, i64 1}
-
-; Indvars shouldn't expand this to
-;   %p.2.ip.1 = getelementptr [3 x [3 x double]]* %p, i64 0, i64 %tmp, i64 19
-; or something. That's valid, but more obscure.
-
-define void @foo([3 x [3 x double]]* noalias %p) nounwind {
-entry:
-  br label %loop
-
-loop:
-  %i = phi i64 [ 0, %entry ], [ %i.next, %loop ]
-  %ip = add i64 %i, 1
-  %p.2.ip.1 = getelementptr [3 x [3 x double]]* %p, i64 2, i64 %ip, i64 1
-  volatile store double 0.0, double* %p.2.ip.1
-  %i.next = add i64 %i, 1
-  br label %loop
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep.ll
deleted file mode 100644
index 2c8c224..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-gep.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: not grep ptrtoint %t
-; RUN: not grep inttoptr %t
-; RUN: grep getelementptr %t | count 1
-
-; Indvars shouldn't leave getelementptrs expanded out as
-; inttoptr+ptrtoint in its output in common cases.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-	%struct.Foo = type { i32, i32, [10 x i32], i32 }
-
-define void @me(%struct.Foo* nocapture %Bar) nounwind {
-entry:
-	br i1 false, label %return, label %bb.nph
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%i.01 = phi i64 [ %4, %bb1 ], [ 0, %bb.nph ]		; <i64> [#uses=3]
-	%0 = getelementptr %struct.Foo* %Bar, i64 %i.01, i32 2, i64 3		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	%2 = mul i32 %1, 113		; <i32> [#uses=1]
-	%3 = getelementptr %struct.Foo* %Bar, i64 %i.01, i32 2, i64 3		; <i32*> [#uses=1]
-	store i32 %2, i32* %3, align 4
-	%4 = add i64 %i.01, 1		; <i64> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%phitmp = icmp sgt i64 %4, 19999		; <i1> [#uses=1]
-	br i1 %phitmp, label %bb1.return_crit_edge, label %bb
-
-bb1.return_crit_edge:		; preds = %bb1
-	br label %return
-
-return:		; preds = %bb1.return_crit_edge, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-signed-wrap.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-signed-wrap.ll
deleted file mode 100644
index 0a91ec8..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/preserve-signed-wrap.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: grep sext %t | count 1
-; RUN: grep phi %t | count 1
-; RUN: grep {phi i64} %t
-
-; Indvars should insert a 64-bit induction variable to eliminate the
-; sext for the addressing, however it shouldn't eliminate the sext
-; on the other phi, since that value undergoes signed wrapping.
-
-define void @foo(i32* nocapture %d, i32 %n) nounwind {
-entry:
-	%0 = icmp sgt i32 %n, 0		; <i1> [#uses=1]
-	br i1 %0, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%i.02 = phi i32 [ %5, %bb1 ], [ 0, %bb.nph ]		; <i32> [#uses=2]
-	%p.01 = phi i8 [ %4, %bb1 ], [ -1, %bb.nph ]		; <i8> [#uses=2]
-	%1 = sext i8 %p.01 to i32		; <i32> [#uses=1]
-	%2 = sext i32 %i.02 to i64		; <i64> [#uses=1]
-	%3 = getelementptr i32* %d, i64 %2		; <i32*> [#uses=1]
-	store i32 %1, i32* %3, align 4
-	%4 = add i8 %p.01, 1		; <i8> [#uses=1]
-	%5 = add i32 %i.02, 1		; <i32> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%6 = icmp slt i32 %5, %n		; <i1> [#uses=1]
-	br i1 %6, label %bb, label %bb1.return_crit_edge
-
-bb1.return_crit_edge:		; preds = %bb1
-	br label %return
-
-return:		; preds = %bb1.return_crit_edge, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
deleted file mode 100644
index 48c060c..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
+++ /dev/null
@@ -1,99 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: not grep sext %t
-
-define i64 @test(i64* nocapture %first, i32 %count) nounwind readonly {
-entry:
-	%t0 = icmp sgt i32 %count, 0		; <i1> [#uses=1]
-	br i1 %t0, label %bb.nph, label %bb2
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%result.02 = phi i64 [ %t5, %bb1 ], [ 0, %bb.nph ]		; <i64> [#uses=1]
-	%n.01 = phi i32 [ %t6, %bb1 ], [ 0, %bb.nph ]		; <i32> [#uses=2]
-	%t1 = sext i32 %n.01 to i64		; <i64> [#uses=1]
-	%t2 = getelementptr i64* %first, i64 %t1		; <i64*> [#uses=1]
-	%t3 = load i64* %t2, align 8		; <i64> [#uses=1]
-	%t4 = lshr i64 %t3, 4		; <i64> [#uses=1]
-	%t5 = add i64 %t4, %result.02		; <i64> [#uses=2]
-	%t6 = add i32 %n.01, 1		; <i32> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%t7 = icmp slt i32 %t6, %count		; <i1> [#uses=1]
-	br i1 %t7, label %bb, label %bb1.bb2_crit_edge
-
-bb1.bb2_crit_edge:		; preds = %bb1
-	%.lcssa = phi i64 [ %t5, %bb1 ]		; <i64> [#uses=1]
-	br label %bb2
-
-bb2:		; preds = %bb1.bb2_crit_edge, %entry
-	%result.0.lcssa = phi i64 [ %.lcssa, %bb1.bb2_crit_edge ], [ 0, %entry ]		; <i64> [#uses=1]
-	ret i64 %result.0.lcssa
-}
-
-define void @foo(i16 signext %N, i32* nocapture %P) nounwind {
-entry:
-	%t0 = icmp sgt i16 %N, 0		; <i1> [#uses=1]
-	br i1 %t0, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb1, %bb.nph
-	%i.01 = phi i16 [ %t3, %bb1 ], [ 0, %bb.nph ]		; <i16> [#uses=2]
-	%t1 = sext i16 %i.01 to i64		; <i64> [#uses=1]
-	%t2 = getelementptr i32* %P, i64 %t1		; <i32*> [#uses=1]
-	store i32 123, i32* %t2, align 4
-	%t3 = add i16 %i.01, 1		; <i16> [#uses=2]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%t4 = icmp slt i16 %t3, %N		; <i1> [#uses=1]
-	br i1 %t4, label %bb, label %bb1.return_crit_edge
-
-bb1.return_crit_edge:		; preds = %bb1
-	br label %return
-
-return:		; preds = %bb1.return_crit_edge, %entry
-	ret void
-}
-
-; Test cases from PR1301:
-
-define void @kinds__srangezero([21 x i32]* nocapture %a) nounwind {
-bb.thread:
-  br label %bb
-
-bb:             ; preds = %bb, %bb.thread
-  %i.0.reg2mem.0 = phi i8 [ -10, %bb.thread ], [ %tmp7, %bb ]           ; <i8> [#uses=2]
-  %tmp12 = sext i8 %i.0.reg2mem.0 to i32                ; <i32> [#uses=1]
-  %tmp4 = add i32 %tmp12, 10            ; <i32> [#uses=1]
-  %tmp5 = getelementptr [21 x i32]* %a, i32 0, i32 %tmp4                ; <i32*> [#uses=1]
-  store i32 0, i32* %tmp5
-  %tmp7 = add i8 %i.0.reg2mem.0, 1              ; <i8> [#uses=2]
-  %0 = icmp sgt i8 %tmp7, 10            ; <i1> [#uses=1]
-  br i1 %0, label %return, label %bb
-
-return:         ; preds = %bb
-  ret void
-}
-
-define void @kinds__urangezero([21 x i32]* nocapture %a) nounwind {
-bb.thread:
-  br label %bb
-
-bb:             ; preds = %bb, %bb.thread
-  %i.0.reg2mem.0 = phi i8 [ 10, %bb.thread ], [ %tmp7, %bb ]            ; <i8> [#uses=2]
-  %tmp12 = sext i8 %i.0.reg2mem.0 to i32                ; <i32> [#uses=1]
-  %tmp4 = add i32 %tmp12, -10           ; <i32> [#uses=1]
-  %tmp5 = getelementptr [21 x i32]* %a, i32 0, i32 %tmp4                ; <i32*> [#uses=1]
-  store i32 0, i32* %tmp5
-  %tmp7 = add i8 %i.0.reg2mem.0, 1              ; <i8> [#uses=2]
-  %0 = icmp sgt i8 %tmp7, 30            ; <i1> [#uses=1]
-  br i1 %0, label %return, label %bb
-
-return:         ; preds = %bb
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/shrunk-constant.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/shrunk-constant.ll
deleted file mode 100644
index 0b2ecaf..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/shrunk-constant.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -scalar-evolution -analyze -disable-output \
-; RUN:  | grep {\\-->  (zext i4 {-7,+,-8}<loop> to i32)}
-
-define fastcc void @foo() nounwind {
-entry:
-	br label %loop
-
-loop:
-	%i = phi i32 [ 0, %entry ], [ %t2, %loop ]
-	%t0 = add i32 %i, 9
-	%t1 = and i32 %t0, 9
-        store i32 %t1, i32* null
-	%t2 = add i32 %i, 8
-	br label %loop
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/signed-trip-count.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/signed-trip-count.ll
deleted file mode 100644
index cd61d11..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/signed-trip-count.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis > %t
-; RUN: not grep sext %t
-; RUN: grep phi %t | count 1
-
-define void @foo(i64* nocapture %x, i32 %n) nounwind {
-entry:
-	%tmp102 = icmp sgt i32 %n, 0		; <i1> [#uses=1]
-	br i1 %tmp102, label %bb.nph, label %return
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb7, %bb.nph
-	%i.01 = phi i32 [ %tmp6, %bb7 ], [ 0, %bb.nph ]		; <i32> [#uses=3]
-	%tmp1 = sext i32 %i.01 to i64		; <i64> [#uses=1]
-	%tmp4 = getelementptr i64* %x, i32 %i.01		; <i64*> [#uses=1]
-	store i64 %tmp1, i64* %tmp4, align 8
-	%tmp6 = add i32 %i.01, 1		; <i32> [#uses=2]
-	br label %bb7
-
-bb7:		; preds = %bb
-	%tmp10 = icmp slt i32 %tmp6, %n		; <i1> [#uses=1]
-	br i1 %tmp10, label %bb, label %bb7.return_crit_edge
-
-bb7.return_crit_edge:		; preds = %bb7
-	br label %return
-
-return:		; preds = %bb7.return_crit_edge, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/single-element-range.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/single-element-range.ll
deleted file mode 100644
index e905912..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/single-element-range.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64"
-target triple = "armv6-apple-darwin10"
-
-define arm_apcscc void @sqlite3_free_table(i8** %azResult) nounwind {
-entry:
-	br i1 undef, label %return, label %bb
-
-bb:		; preds = %entry
-	%0 = load i8** undef, align 4		; <i8*> [#uses=2]
-	%1 = ptrtoint i8* %0 to i32		; <i32> [#uses=1]
-	%2 = icmp sgt i8* %0, inttoptr (i32 1 to i8*)		; <i1> [#uses=1]
-	br i1 %2, label %bb1, label %bb5
-
-bb1:		; preds = %bb1, %bb
-	%i.01 = phi i32 [ %3, %bb1 ], [ 1, %bb ]		; <i32> [#uses=1]
-	%3 = add i32 %i.01, 1		; <i32> [#uses=2]
-	%4 = icmp slt i32 %3, %1		; <i1> [#uses=1]
-	br i1 %4, label %bb1, label %bb5
-
-bb5:		; preds = %bb1, %bb
-	ret void
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/sink-alloca.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/sink-alloca.ll
deleted file mode 100644
index f5378cc..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/sink-alloca.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | FileCheck %s
-; PR4775
-
-; Indvars shouldn't sink the alloca out of the entry block, even though
-; it's not used until after the loop.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin10.0"
-
- at llvm.used = appending global [1 x i8*] [i8* bitcast (i32 ()* @main to i8*)],
-section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
-
-define i32 @main() nounwind {
-; CHECK: entry:
-; CHECK-NEXT: %result.i = alloca i32, align 4
-entry:
-  %result.i = alloca i32, align 4                 ; <i32*> [#uses=2]
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.cond, %entry
-  %call = call i32 @bar() nounwind                ; <i32> [#uses=1]
-  %tobool = icmp eq i32 %call, 0                  ; <i1> [#uses=1]
-  br i1 %tobool, label %while.end, label %while.cond
-
-while.end:                                        ; preds = %while.cond
-  volatile store i32 0, i32* %result.i
-  %tmp.i = volatile load i32* %result.i           ; <i32> [#uses=0]
-  ret i32 0
-}
-
-declare i32 @bar()
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/sink-trapping.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/sink-trapping.ll
deleted file mode 100644
index 5382c92..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/sink-trapping.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | FileCheck %s --check-prefix=CHECK
-
-declare i1 @b()
-
-define i32 @a(i32 %x) nounwind {
-for.body.preheader:
-    %y = sdiv i32 10, %x
-	br label %for.body
-
-for.body:
-    %cmp = call i1 @b()
-	br i1 %cmp, label %for.body, label %for.end.loopexit
-
-for.end.loopexit:
-	ret i32 %y
-}
-; CHECK: for.end.loopexit:
-; CHECK: sdiv
-; CHECK: ret
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/subtract.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/subtract.ll
deleted file mode 100644
index 51065cc..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/subtract.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar
-
- at G = global i64 0               ; <i64*> [#uses=1]
-
-define void @test(i64 %V) {
-; <label>:0
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %X = phi i64 [ 1, %0 ], [ %X.next, %Loop ]              ; <i64> [#uses=2]
-        %X.next = sub i64 %X, %V                ; <i64> [#uses=1]
-        store i64 %X, i64* @G
-        br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/tripcount_compute.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/tripcount_compute.ll
deleted file mode 100644
index 9ffce81..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/tripcount_compute.ll
+++ /dev/null
@@ -1,100 +0,0 @@
-; These tests ensure that we can compute the trip count of various forms of
-; loops.  If the trip count of the loop is computable, then we will know what
-; the exit value of the loop will be for some value, allowing us to substitute
-; it directly into users outside of the loop, making the loop dead.
-;
-; RUN: llvm-as < %s | opt -indvars -loop-deletion -simplifycfg | llvm-dis | not grep br
-
-define i32 @linear_setne() {
-entry:
-	br label %loop
-
-loop:		; preds = %loop, %entry
-	%i = phi i32 [ 0, %entry ], [ %i.next, %loop ]		; <i32> [#uses=3]
-	%i.next = add i32 %i, 1		; <i32> [#uses=1]
-	%c = icmp ne i32 %i, 100		; <i1> [#uses=1]
-	br i1 %c, label %loop, label %loopexit
-
-loopexit:		; preds = %loop
-	ret i32 %i
-}
-
-define i32 @linear_setne_2() {
-entry:
-	br label %loop
-
-loop:		; preds = %loop, %entry
-	%i = phi i32 [ 0, %entry ], [ %i.next, %loop ]		; <i32> [#uses=3]
-	%i.next = add i32 %i, 2		; <i32> [#uses=1]
-	%c = icmp ne i32 %i, 100		; <i1> [#uses=1]
-	br i1 %c, label %loop, label %loopexit
-
-loopexit:		; preds = %loop
-	ret i32 %i
-}
-
-define i32 @linear_setne_overflow() {
-entry:
-	br label %loop
-
-loop:		; preds = %loop, %entry
-	%i = phi i32 [ 1024, %entry ], [ %i.next, %loop ]		; <i32> [#uses=3]
-	%i.next = add i32 %i, 1024		; <i32> [#uses=1]
-	%c = icmp ne i32 %i, 0		; <i1> [#uses=1]
-	br i1 %c, label %loop, label %loopexit
-
-loopexit:		; preds = %loop
-	ret i32 %i
-}
-
-define i32 @linear_setlt() {
-entry:
-	br label %loop
-
-loop:		; preds = %loop, %entry
-	%i = phi i32 [ 0, %entry ], [ %i.next, %loop ]		; <i32> [#uses=3]
-	%i.next = add i32 %i, 1		; <i32> [#uses=1]
-	%c = icmp slt i32 %i, 100		; <i1> [#uses=1]
-	br i1 %c, label %loop, label %loopexit
-
-loopexit:		; preds = %loop
-	ret i32 %i
-}
-
-define i32 @quadratic_setlt() {
-entry:
-	br label %loop
-
-loop:		; preds = %loop, %entry
-	%i = phi i32 [ 7, %entry ], [ %i.next, %loop ]		; <i32> [#uses=4]
-	%i.next = add i32 %i, 3		; <i32> [#uses=1]
-	%i2 = mul i32 %i, %i		; <i32> [#uses=1]
-	%c = icmp slt i32 %i2, 1000		; <i1> [#uses=1]
-	br i1 %c, label %loop, label %loopexit
-
-loopexit:		; preds = %loop
-	ret i32 %i
-}
-
-define i32 @chained() {
-entry:
-	br label %loop
-
-loop:		; preds = %loop, %entry
-	%i = phi i32 [ 0, %entry ], [ %i.next, %loop ]		; <i32> [#uses=3]
-	%i.next = add i32 %i, 1		; <i32> [#uses=1]
-	%c = icmp ne i32 %i, 100		; <i1> [#uses=1]
-	br i1 %c, label %loop, label %loopexit
-
-loopexit:		; preds = %loop
-	br label %loop2
-
-loop2:		; preds = %loop2, %loopexit
-	%j = phi i32 [ %i, %loopexit ], [ %j.next, %loop2 ]		; <i32> [#uses=3]
-	%j.next = add i32 %j, 1		; <i32> [#uses=1]
-	%c2 = icmp ne i32 %j, 200		; <i1> [#uses=1]
-	br i1 %c2, label %loop2, label %loopexit2
-
-loopexit2:		; preds = %loop2
-	ret i32 %j
-}
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/tripcount_infinite.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/tripcount_infinite.ll
deleted file mode 100644
index d5965f4..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/tripcount_infinite.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; These tests have an infinite trip count.  We obviously shouldn't remove the 
-; loops!  :)
-;
-; RUN: llvm-as < %s | opt -indvars -adce -simplifycfg | llvm-dis | grep icmp | wc -l > %t2
-; RUN: llvm-as < %s | llvm-dis | grep icmp | wc -l > %t1
-; RUN: diff %t1 %t2
-
-;; test for (i = 1; i != 100; i += 2)
-define i32 @infinite_linear() {
-entry:
-        br label %loop
-
-loop:           ; preds = %loop, %entry
-        %i = phi i32 [ 1, %entry ], [ %i.next, %loop ]          ; <i32> [#uses=3]
-        %i.next = add i32 %i, 2         ; <i32> [#uses=1]
-        %c = icmp ne i32 %i, 100                ; <i1> [#uses=1]
-        br i1 %c, label %loop, label %loopexit
-
-loopexit:               ; preds = %loop
-        ret i32 %i
-}
-
-;; test for (i = 1; i*i != 63; ++i)
-define i32 @infinite_quadratic() {
-entry:
-        br label %loop
-
-loop:           ; preds = %loop, %entry
-        %i = phi i32 [ 1, %entry ], [ %i.next, %loop ]          ; <i32> [#uses=4]
-        %isquare = mul i32 %i, %i               ; <i32> [#uses=1]
-        %i.next = add i32 %i, 1         ; <i32> [#uses=1]
-        %c = icmp ne i32 %isquare, 63           ; <i1> [#uses=1]
-        br i1 %c, label %loop, label %loopexit
-
-loopexit:               ; preds = %loop
-        ret i32 %i
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-0.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-0.ll
deleted file mode 100644
index 759ba8e..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-0.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars -instcombine | llvm-dis | \
-; RUN:   grep {store i32 0}
-; Test that -indvars can reduce variable stride IVs.  If it can reduce variable
-; stride iv's, it will make %iv. and %m.0.0 isomorphic to each other without 
-; cycles, allowing the tmp.21 subtraction to be eliminated.
-; END.
-
-define void @vnum_test8(i32* %data) {
-entry:
-        %tmp.1 = getelementptr i32* %data, i32 3                ; <i32*> [#uses=1]
-        %tmp.2 = load i32* %tmp.1               ; <i32> [#uses=2]
-        %tmp.4 = getelementptr i32* %data, i32 4                ; <i32*> [#uses=1]
-        %tmp.5 = load i32* %tmp.4               ; <i32> [#uses=2]
-        %tmp.8 = getelementptr i32* %data, i32 2                ; <i32*> [#uses=1]
-        %tmp.9 = load i32* %tmp.8               ; <i32> [#uses=3]
-        %tmp.125 = icmp sgt i32 %tmp.2, 0               ; <i1> [#uses=1]
-        br i1 %tmp.125, label %no_exit.preheader, label %return
-
-no_exit.preheader:              ; preds = %entry
-        %tmp.16 = getelementptr i32* %data, i32 %tmp.9          ; <i32*> [#uses=1]
-        br label %no_exit
-
-no_exit:                ; preds = %no_exit, %no_exit.preheader
-        %iv.ui = phi i32 [ 0, %no_exit.preheader ], [ %iv..inc.ui, %no_exit ]           ; <i32> [#uses=1]
-        %iv. = phi i32 [ %tmp.5, %no_exit.preheader ], [ %iv..inc, %no_exit ]           ; <i32> [#uses=2]
-        %m.0.0 = phi i32 [ %tmp.5, %no_exit.preheader ], [ %tmp.24, %no_exit ]          ; <i32> [#uses=2]
-        store i32 2, i32* %tmp.16
-        %tmp.21 = sub i32 %m.0.0, %iv.          ; <i32> [#uses=1]
-        store i32 %tmp.21, i32* %data
-        %tmp.24 = add i32 %m.0.0, %tmp.9                ; <i32> [#uses=1]
-        %iv..inc = add i32 %tmp.9, %iv.         ; <i32> [#uses=1]
-        %iv..inc.ui = add i32 %iv.ui, 1         ; <i32> [#uses=2]
-        %iv..inc1 = bitcast i32 %iv..inc.ui to i32              ; <i32> [#uses=1]
-        %tmp.12 = icmp slt i32 %iv..inc1, %tmp.2                ; <i1> [#uses=1]
-        br i1 %tmp.12, label %no_exit, label %return.loopexit
-
-return.loopexit:                ; preds = %no_exit
-        br label %return
-
-return:         ; preds = %return.loopexit, %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-1.ll b/libclamav/c++/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-1.ll
deleted file mode 100644
index 075e899..0000000
--- a/libclamav/c++/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-1.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: llvm-as < %s | opt -indvars
-; PR4315
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "x86_64-undermydesk-freebsd8.0"
-	%struct.mbuf = type <{ %struct.mbuf*, i8*, i32, i8, i8, i8, i8 }>
-
-define i32 @crash(%struct.mbuf* %m) nounwind {
-entry:
-	br label %for.cond
-
-for.cond:		; preds = %if.end, %entry
-	%i.0 = phi i32 [ 0, %entry ], [ %inc, %if.end ]		; <i32> [#uses=3]
-	%chksum.0 = phi i8 [ 0, %entry ], [ %conv3, %if.end ]		; <i8> [#uses=3]
-	%cmp = icmp slt i32 %i.0, 1		; <i1> [#uses=1]
-	br i1 %cmp, label %for.body, label %do.body
-
-for.body:		; preds = %for.cond
-	br i1 undef, label %if.end, label %do.body
-
-if.end:		; preds = %for.body
-	%i.02 = trunc i32 %i.0 to i8		; <i8> [#uses=1]
-	%conv3 = add i8 %chksum.0, %i.02		; <i8> [#uses=1]
-	%inc = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %for.cond
-
-do.body:		; preds = %do.cond, %for.body, %for.cond
-	%chksum.2 = phi i8 [ undef, %do.cond ], [ %chksum.0, %for.body ], [ %chksum.0, %for.cond ]		; <i8> [#uses=1]
-	br i1 undef, label %do.cond, label %bb.nph
-
-bb.nph:		; preds = %do.body
-	br label %while.body
-
-while.body:		; preds = %while.body, %bb.nph
-	%chksum.13 = phi i8 [ undef, %while.body ], [ %chksum.2, %bb.nph ]		; <i8> [#uses=0]
-	br i1 undef, label %do.cond, label %while.body
-
-do.cond:		; preds = %while.body, %do.body
-	br i1 false, label %do.end, label %do.body
-
-do.end:		; preds = %do.cond
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-14-InlineValue.ll b/libclamav/c++/llvm/test/Transforms/Inline/2003-09-14-InlineValue.ll
deleted file mode 100644
index edc9b47..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-14-InlineValue.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-declare i32 @External()
-
-define internal i32 @Callee() {
-        %I = call i32 @External( )              ; <i32> [#uses=2]
-        %J = add i32 %I, %I             ; <i32> [#uses=1]
-        ret i32 %J
-}
-
-define i32 @Caller() {
-        %V = invoke i32 @Callee( )
-                        to label %Ok unwind label %Bad          ; <i32> [#uses=1]
-
-Ok:             ; preds = %0
-        ret i32 %V
-
-Bad:            ; preds = %0
-        ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll b/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll
deleted file mode 100644
index d57aee0..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-define i32 @main() {
-entry:
-        invoke void @__main( )
-                        to label %LongJmpBlkPre unwind label %LongJmpBlkPre
-
-LongJmpBlkPre:          ; preds = %entry, %entry
-        %i.3 = phi i32 [ 0, %entry ], [ 0, %entry ]             ; <i32> [#uses=0]
-        ret i32 0
-}
-
-define void @__main() {
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll b/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll
deleted file mode 100644
index d75999b..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-define i32 @main() {
-entry:
-        invoke void @__main( )
-                        to label %Call2Invoke unwind label %LongJmpBlkPre
-
-Call2Invoke:            ; preds = %entry
-        br label %LongJmpBlkPre
-
-LongJmpBlkPre:          ; preds = %Call2Invoke, %entry
-        %i.3 = phi i32 [ 0, %entry ], [ 0, %Call2Invoke ]               ; <i32> [#uses=0]
-        ret i32 0
-}
-
-define void @__main() {
-        call void @__llvm_getGlobalCtors( )
-        call void @__llvm_getGlobalDtors( )
-        ret void
-}
-
-declare void @__llvm_getGlobalCtors()
-
-declare void @__llvm_getGlobalDtors()
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll b/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll
deleted file mode 100644
index 09d516f..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-define i32 @main() {
-entry:
-        invoke void @__main( )
-                        to label %else unwind label %RethrowExcept
-
-else:           ; preds = %LJDecisionBB, %entry
-        %i.2 = phi i32 [ 36, %entry ], [ %i.2, %LJDecisionBB ]          ; <i32> [#uses=1]
-        br label %LJDecisionBB
-
-LJDecisionBB:           ; preds = %else
-        br label %else
-
-RethrowExcept:          ; preds = %entry
-        ret i32 0
-}
-
-define void @__main() {
-        ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll b/libclamav/c++/llvm/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll
deleted file mode 100644
index 6b6cf06..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-define i32 @reload() {
-reloadentry:
-        br label %A
-
-A:              ; preds = %reloadentry
-        call void @callee( )
-        ret i32 0
-}
-
-define internal void @callee() {
-entry:
-        %X = alloca i8, i32 0           ; <i8*> [#uses=0]
-        %Y = bitcast i32 0 to i32               ; <i32> [#uses=1]
-        %Z = alloca i8, i32 %Y          ; <i8*> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll b/libclamav/c++/llvm/test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll
deleted file mode 100644
index 675454e..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; The inliner is breaking inlining invoke instructions where there is a PHI 
-; node in the exception destination, and the inlined function contains an 
-; unwind instruction.
-
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-define linkonce void @foo() {
-        unwind
-}
-
-define i32 @test() {
-BB1:
-        invoke void @foo( )
-                        to label %Cont unwind label %Cont
-
-Cont:           ; preds = %BB1, %BB1
-        %A = phi i32 [ 0, %BB1 ], [ 0, %BB1 ]           ; <i32> [#uses=1]
-        ret i32 %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll b/libclamav/c++/llvm/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll
deleted file mode 100644
index 8a2f8e2..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-; Inlining the first call caused the inliner function to delete the second
-; call.  Then the inliner tries to inline the second call, which no longer
-; exists.
-
-define internal void @Callee1() {
-        unwind
-}
-
-define void @Callee2() {
-        ret void
-}
-
-define void @caller() {
-        call void @Callee1( )
-        call void @Callee2( )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2004-04-20-InlineLinkOnce.ll b/libclamav/c++/llvm/test/Transforms/Inline/2004-04-20-InlineLinkOnce.ll
deleted file mode 100644
index d9f09a0..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2004-04-20-InlineLinkOnce.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output
-
-define linkonce void @caller() {
-        call void @callee( )
-        ret void
-}
-
-define linkonce void @callee() {
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll b/libclamav/c++/llvm/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll
deleted file mode 100644
index 09666ec..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-
-define i32 @test() {
-        unwind
-}
-
-define i32 @caller() {
-        %X = call i32 @test( )          ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll b/libclamav/c++/llvm/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll
deleted file mode 100644
index acdf6ab..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output
-
-        %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" }
-        %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, i32*, i32*, i32*, i32*, i32*, i32*, %"struct.std::locale" }
-        %"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" }
-        %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
-        %"struct.std::ios_base::_Words" = type { i8*, i32 }
-        %"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
-        %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
-        %"struct.std::locale::facet" = type { i32 (...)**, i32 }
-        %"struct.std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, i32 }
-
-define void @_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl(%"struct.std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t> >"* %agg.result, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* %this, %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"* %__s.0__, i32 %__s.1__, %"struct.std::ios_base"* %__io, i32 %__fill, i32 %__v) {
-entry:
-        tail call fastcc void @_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_( )
-        ret void
-}
-
-define fastcc void @_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_() {
-entry:
-        %tmp.38 = shl i32 0, 3          ; <i32> [#uses=1]
-        %tmp.39 = alloca i8, i32 %tmp.38                ; <i8*> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll b/libclamav/c++/llvm/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
deleted file mode 100644
index 5215bec..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
+++ /dev/null
@@ -1,840 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output
-; PR827
- at _ZTV8CRjii = internal global [1 x i32 (...)*] [ i32 (...)* @_ZN8CRjii12NlFeeEPN5Jr7sE ]		; <[1 x i32 (...)*]*> [#uses=0]
-
-define internal i32 @_ZN8CRjii12NlFeeEPN5Jr7sE(...) {
-entry:
-	br i1 false, label %cond_true, label %cond_false179
-
-cond_true:		; preds = %entry
-	br label %bb9
-
-bb:		; preds = %cond_true14
-	br label %bb9
-
-bb9:		; preds = %bb, %cond_true
-	br i1 false, label %cond_true14, label %cond_false
-
-cond_true14:		; preds = %bb9
-	br label %bb
-
-cond_false:		; preds = %bb9
-	br label %bb15
-
-cond_next:		; No predecessors!
-	br label %bb15
-
-bb15:		; preds = %cond_next, %cond_false
-	br label %bb24
-
-bb17:		; preds = %cond_true29
-	br label %bb24
-
-bb24:		; preds = %bb17, %bb15
-	br i1 false, label %cond_true29, label %cond_false30
-
-cond_true29:		; preds = %bb24
-	br label %bb17
-
-cond_false30:		; preds = %bb24
-	br label %bb32
-
-cond_next31:		; No predecessors!
-	br label %bb32
-
-bb32:		; preds = %cond_next31, %cond_false30
-	br label %bb41
-
-bb34:		; preds = %cond_true46
-	br label %bb41
-
-bb41:		; preds = %bb34, %bb32
-	br i1 false, label %cond_true46, label %cond_false47
-
-cond_true46:		; preds = %bb41
-	br label %bb34
-
-cond_false47:		; preds = %bb41
-	br label %bb49
-
-cond_next48:		; No predecessors!
-	br label %bb49
-
-bb49:		; preds = %cond_next48, %cond_false47
-	br label %bb58
-
-bb51:		; preds = %cond_true63
-	br label %bb58
-
-bb58:		; preds = %bb51, %bb49
-	br i1 false, label %cond_true63, label %cond_false64
-
-cond_true63:		; preds = %bb58
-	br label %bb51
-
-cond_false64:		; preds = %bb58
-	br label %bb66
-
-cond_next65:		; No predecessors!
-	br label %bb66
-
-bb66:		; preds = %cond_next65, %cond_false64
-	br label %bb76
-
-bb68:		; preds = %cond_true81
-	br label %bb76
-
-bb76:		; preds = %bb68, %bb66
-	br i1 false, label %cond_true81, label %cond_false82
-
-cond_true81:		; preds = %bb76
-	br label %bb68
-
-cond_false82:		; preds = %bb76
-	br label %bb84
-
-cond_next83:		; No predecessors!
-	br label %bb84
-
-bb84:		; preds = %cond_next83, %cond_false82
-	br label %bb94
-
-bb86:		; preds = %cond_true99
-	br label %bb94
-
-bb94:		; preds = %bb86, %bb84
-	br i1 false, label %cond_true99, label %cond_false100
-
-cond_true99:		; preds = %bb94
-	br label %bb86
-
-cond_false100:		; preds = %bb94
-	br label %bb102
-
-cond_next101:		; No predecessors!
-	br label %bb102
-
-bb102:		; preds = %cond_next101, %cond_false100
-	br label %bb112
-
-bb104:		; preds = %cond_true117
-	br label %bb112
-
-bb112:		; preds = %bb104, %bb102
-	br i1 false, label %cond_true117, label %cond_false118
-
-cond_true117:		; preds = %bb112
-	br label %bb104
-
-cond_false118:		; preds = %bb112
-	br label %bb120
-
-cond_next119:		; No predecessors!
-	br label %bb120
-
-bb120:		; preds = %cond_next119, %cond_false118
-	br label %bb130
-
-bb122:		; preds = %cond_true135
-	br label %bb130
-
-bb130:		; preds = %bb122, %bb120
-	br i1 false, label %cond_true135, label %cond_false136
-
-cond_true135:		; preds = %bb130
-	br label %bb122
-
-cond_false136:		; preds = %bb130
-	br label %bb138
-
-cond_next137:		; No predecessors!
-	br label %bb138
-
-bb138:		; preds = %cond_next137, %cond_false136
-	br label %bb148
-
-bb140:		; preds = %cond_true153
-	call fastcc void @_Zjrf1( )
-	br label %bb148
-
-bb148:		; preds = %bb140, %bb138
-	br i1 false, label %cond_true153, label %cond_false154
-
-cond_true153:		; preds = %bb148
-	br label %bb140
-
-cond_false154:		; preds = %bb148
-	br label %bb156
-
-cond_next155:		; No predecessors!
-	br label %bb156
-
-bb156:		; preds = %cond_next155, %cond_false154
-	br label %bb166
-
-bb158:		; preds = %cond_true171
-	br label %bb166
-
-bb166:		; preds = %bb158, %bb156
-	br i1 false, label %cond_true171, label %cond_false172
-
-cond_true171:		; preds = %bb166
-	br label %bb158
-
-cond_false172:		; preds = %bb166
-	br label %bb174
-
-cond_next173:		; No predecessors!
-	br label %bb174
-
-bb174:		; preds = %cond_next173, %cond_false172
-	br label %cleanup
-
-cleanup:		; preds = %bb174
-	br label %finally
-
-finally:		; preds = %cleanup
-	br label %cond_next180
-
-cond_false179:		; preds = %entry
-	br label %cond_next180
-
-cond_next180:		; preds = %cond_false179, %finally
-	br label %return
-
-return:		; preds = %cond_next180
-	ret i32 0
-}
-
-define internal fastcc void @_Zjrf2() {
-entry:
-	br label %bb3
-
-bb:		; preds = %cond_true
-	br label %bb3
-
-bb3:		; preds = %bb, %entry
-	%tmp5 = load i8** null		; <i8*> [#uses=1]
-	%tmp = icmp ne i8* null, %tmp5		; <i1> [#uses=1]
-	br i1 %tmp, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb3
-	br label %bb
-
-cond_false:		; preds = %bb3
-	br label %bb6
-
-cond_next:		; No predecessors!
-	br label %bb6
-
-bb6:		; preds = %cond_next, %cond_false
-	br label %return
-
-return:		; preds = %bb6
-	ret void
-}
-
-define internal fastcc void @_Zjrf3() {
-entry:
-	call fastcc void @_Zjrf2( )
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define internal fastcc void @_Zjrf4() {
-entry:
-	br label %bb6
-
-bb:		; preds = %cond_true
-	br label %bb6
-
-bb6:		; preds = %bb, %entry
-	br i1 false, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb6
-	br label %bb
-
-cond_false:		; preds = %bb6
-	br label %bb8
-
-cond_next:		; No predecessors!
-	br label %bb8
-
-bb8:		; preds = %cond_next, %cond_false
-	br i1 false, label %cond_true9, label %cond_false12
-
-cond_true9:		; preds = %bb8
-	call fastcc void @_Zjrf3( )
-	br label %cond_next13
-
-cond_false12:		; preds = %bb8
-	br label %cond_next13
-
-cond_next13:		; preds = %cond_false12, %cond_true9
-	br label %return
-
-return:		; preds = %cond_next13
-	ret void
-}
-
-define internal fastcc void @_Zjrf5() {
-entry:
-	call fastcc void @_Zjrf4( )
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define internal fastcc void @_Zjrf6() {
-entry:
-	call fastcc void @_Zjrf5( )
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define internal fastcc void @_Zjrf7() {
-entry:
-	br label %cleanup
-
-cleanup:		; preds = %entry
-	br label %finally
-
-finally:		; preds = %cleanup
-	call fastcc void @_Zjrf6( )
-	br label %cleanup9
-
-cleanup9:		; preds = %finally
-	br label %finally8
-
-finally8:		; preds = %cleanup9
-	br label %cleanup11
-
-cleanup11:		; preds = %finally8
-	br label %finally10
-
-finally10:		; preds = %cleanup11
-	br label %finally23
-
-finally23:		; preds = %finally10
-	br label %return
-
-return:		; preds = %finally23
-	ret void
-}
-
-define internal fastcc void @_Zjrf11() {
-entry:
-	br label %bb7
-
-bb:		; preds = %cond_true
-	br label %bb7
-
-bb7:		; preds = %bb, %entry
-	br i1 false, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb7
-	br label %bb
-
-cond_false:		; preds = %bb7
-	br label %bb9
-
-cond_next:		; No predecessors!
-	br label %bb9
-
-bb9:		; preds = %cond_next, %cond_false
-	br label %return
-		; No predecessors!
-	br i1 false, label %cond_true12, label %cond_false15
-
-cond_true12:		; preds = %0
-	call fastcc void @_Zjrf3( )
-	br label %cond_next16
-
-cond_false15:		; preds = %0
-	br label %cond_next16
-
-cond_next16:		; preds = %cond_false15, %cond_true12
-	br label %return
-
-return:		; preds = %cond_next16, %bb9
-	ret void
-}
-
-define internal fastcc void @_Zjrf9() {
-entry:
-	call fastcc void @_Zjrf11( )
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define internal fastcc void @_Zjrf10() {
-entry:
-	call fastcc void @_Zjrf9( )
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define internal fastcc void @_Zjrf8() {
-entry:
-	br i1 false, label %cond_true, label %cond_false201
-
-cond_true:		; preds = %entry
-	br i1 false, label %cond_true36, label %cond_false
-
-cond_true36:		; preds = %cond_true
-	br label %cleanup
-
-cleanup:		; preds = %cond_true36
-	br label %finally
-
-finally:		; preds = %cleanup
-	br label %cond_next189
-
-cond_false:		; preds = %cond_true
-	br i1 false, label %cond_true99, label %cond_false137
-
-cond_true99:		; preds = %cond_false
-	br label %cleanup136
-
-cleanup136:		; preds = %cond_true99
-	br label %finally135
-
-finally135:		; preds = %cleanup136
-	br label %cond_next
-
-cond_false137:		; preds = %cond_false
-	call fastcc void @_Zjrf10( )
-	br label %cleanup188
-
-cleanup188:		; preds = %cond_false137
-	br label %finally187
-
-finally187:		; preds = %cleanup188
-	br label %cond_next
-
-cond_next:		; preds = %finally187, %finally135
-	br label %cond_next189
-
-cond_next189:		; preds = %cond_next, %finally
-	br label %cond_next202
-
-cond_false201:		; preds = %entry
-	br label %cond_next202
-
-cond_next202:		; preds = %cond_false201, %cond_next189
-	br label %return
-
-return:		; preds = %cond_next202
-	ret void
-}
-
-define internal fastcc void @_Zjrf1() {
-entry:
-	br label %bb492
-
-bb:		; preds = %cond_true499
-	br label %cleanup
-
-cleanup:		; preds = %bb
-	br label %finally
-
-finally:		; preds = %cleanup
-	br label %cleanup11
-
-cleanup11:		; preds = %finally
-	br label %finally10
-
-finally10:		; preds = %cleanup11
-	br i1 false, label %cond_true, label %cond_false286
-
-cond_true:		; preds = %finally10
-	br label %cleanup26
-
-cleanup26:		; preds = %cond_true
-	br label %finally25
-
-finally25:		; preds = %cleanup26
-	br label %bb30
-
-bb27:		; preds = %cond_true37
-	br label %bb30
-
-bb30:		; preds = %bb27, %finally25
-	br i1 false, label %cond_true37, label %cond_false
-
-cond_true37:		; preds = %bb30
-	br label %bb27
-
-cond_false:		; preds = %bb30
-	br label %bb38
-
-cond_next:		; No predecessors!
-	br label %bb38
-
-bb38:		; preds = %cond_next, %cond_false
-	br label %bb148
-
-bb40:		; preds = %cond_true156
-	br label %bb139
-
-bb41:		; preds = %cond_true142
-	call fastcc void @_Zjrf7( )
-	br label %bb105
-
-bb44:		; preds = %cond_true112
-	br label %bb74
-
-bb66:		; preds = %cond_true80
-	br label %bb74
-
-bb74:		; preds = %bb66, %bb44
-	br i1 false, label %cond_true80, label %cond_false81
-
-cond_true80:		; preds = %bb74
-	br label %bb66
-
-cond_false81:		; preds = %bb74
-	br label %bb83
-
-cond_next82:		; No predecessors!
-	br label %bb83
-
-bb83:		; preds = %cond_next82, %cond_false81
-	br label %cleanup97
-
-cleanup97:		; preds = %bb83
-	br label %finally96
-
-finally96:		; preds = %cleanup97
-	br label %cleanup99
-
-cleanup99:		; preds = %finally96
-	br label %finally98
-
-finally98:		; preds = %cleanup99
-	br label %bb105
-
-bb105:		; preds = %finally98, %bb41
-	br i1 false, label %cond_true112, label %cond_false113
-
-cond_true112:		; preds = %bb105
-	br label %bb44
-
-cond_false113:		; preds = %bb105
-	br label %bb115
-
-cond_next114:		; No predecessors!
-	br label %bb115
-
-bb115:		; preds = %cond_next114, %cond_false113
-	br i1 false, label %cond_true119, label %cond_false123
-
-cond_true119:		; preds = %bb115
-	call fastcc void @_Zjrf8( )
-	br label %cond_next124
-
-cond_false123:		; preds = %bb115
-	br label %cond_next124
-
-cond_next124:		; preds = %cond_false123, %cond_true119
-	br i1 false, label %cond_true131, label %cond_false132
-
-cond_true131:		; preds = %cond_next124
-	br label %cleanup135
-
-cond_false132:		; preds = %cond_next124
-	br label %cond_next133
-
-cond_next133:		; preds = %cond_false132
-	br label %cleanup136
-
-cleanup135:		; preds = %cond_true131
-	br label %done
-
-cleanup136:		; preds = %cond_next133
-	br label %finally134
-
-finally134:		; preds = %cleanup136
-	br label %bb139
-
-bb139:		; preds = %finally134, %bb40
-	br i1 false, label %cond_true142, label %cond_false143
-
-cond_true142:		; preds = %bb139
-	br label %bb41
-
-cond_false143:		; preds = %bb139
-	br label %bb145
-
-cond_next144:		; No predecessors!
-	br label %bb145
-
-bb145:		; preds = %cond_next144, %cond_false143
-	br label %bb148
-
-bb148:		; preds = %bb145, %bb38
-	br i1 false, label %cond_true156, label %cond_false157
-
-cond_true156:		; preds = %bb148
-	br label %bb40
-
-cond_false157:		; preds = %bb148
-	br label %bb159
-
-cond_next158:		; No predecessors!
-	br label %bb159
-
-bb159:		; preds = %cond_next158, %cond_false157
-	br label %done
-
-done:		; preds = %bb159, %cleanup135
-	br label %bb214
-
-bb185:		; preds = %cond_true218
-	br i1 false, label %cond_true193, label %cond_false206
-
-cond_true193:		; preds = %bb185
-	br label %cond_next211
-
-cond_false206:		; preds = %bb185
-	br label %cond_next211
-
-cond_next211:		; preds = %cond_false206, %cond_true193
-	br label %bb214
-
-bb214:		; preds = %cond_next211, %done
-	br i1 false, label %cond_true218, label %cond_false219
-
-cond_true218:		; preds = %bb214
-	br label %bb185
-
-cond_false219:		; preds = %bb214
-	br label %bb221
-
-cond_next220:		; No predecessors!
-	br label %bb221
-
-bb221:		; preds = %cond_next220, %cond_false219
-	br i1 false, label %cond_true236, label %cond_false245
-
-cond_true236:		; preds = %bb221
-	br label %cond_next249
-
-cond_false245:		; preds = %bb221
-	br label %cond_next249
-
-cond_next249:		; preds = %cond_false245, %cond_true236
-	br i1 false, label %cond_true272, label %cond_false277
-
-cond_true272:		; preds = %cond_next249
-	br label %cond_next278
-
-cond_false277:		; preds = %cond_next249
-	br label %cond_next278
-
-cond_next278:		; preds = %cond_false277, %cond_true272
-	br label %cleanup285
-
-cleanup285:		; preds = %cond_next278
-	br label %finally284
-
-finally284:		; preds = %cleanup285
-	br label %cond_next287
-
-cond_false286:		; preds = %finally10
-	br label %cond_next287
-
-cond_next287:		; preds = %cond_false286, %finally284
-	br i1 false, label %cond_true317, label %cond_false319
-
-cond_true317:		; preds = %cond_next287
-	br label %cond_next321
-
-cond_false319:		; preds = %cond_next287
-	br label %cond_next321
-
-cond_next321:		; preds = %cond_false319, %cond_true317
-	br label %bb348
-
-bb335:		; preds = %cond_true355
-	br label %bb348
-
-bb348:		; preds = %bb335, %cond_next321
-	br i1 false, label %cond_true355, label %cond_false356
-
-cond_true355:		; preds = %bb348
-	br label %bb335
-
-cond_false356:		; preds = %bb348
-	br label %bb358
-
-cond_next357:		; No predecessors!
-	br label %bb358
-
-bb358:		; preds = %cond_next357, %cond_false356
-	br i1 false, label %cond_true363, label %cond_false364
-
-cond_true363:		; preds = %bb358
-	br label %bb388
-
-cond_false364:		; preds = %bb358
-	br label %cond_next365
-
-cond_next365:		; preds = %cond_false364
-	br i1 false, label %cond_true370, label %cond_false371
-
-cond_true370:		; preds = %cond_next365
-	br label %bb388
-
-cond_false371:		; preds = %cond_next365
-	br label %cond_next372
-
-cond_next372:		; preds = %cond_false371
-	br i1 false, label %cond_true385, label %cond_false386
-
-cond_true385:		; preds = %cond_next372
-	br label %bb388
-
-cond_false386:		; preds = %cond_next372
-	br label %cond_next387
-
-cond_next387:		; preds = %cond_false386
-	br label %bb389
-
-bb388:		; preds = %cond_true385, %cond_true370, %cond_true363
-	br label %bb389
-
-bb389:		; preds = %bb388, %cond_next387
-	br i1 false, label %cond_true392, label %cond_false443
-
-cond_true392:		; preds = %bb389
-	br label %bb419
-
-bb402:		; preds = %cond_true425
-	br i1 false, label %cond_true406, label %cond_false412
-
-cond_true406:		; preds = %bb402
-	br label %cond_next416
-
-cond_false412:		; preds = %bb402
-	br label %cond_next416
-
-cond_next416:		; preds = %cond_false412, %cond_true406
-	br label %bb419
-
-bb419:		; preds = %cond_next416, %cond_true392
-	br i1 false, label %cond_true425, label %cond_false426
-
-cond_true425:		; preds = %bb419
-	br label %bb402
-
-cond_false426:		; preds = %bb419
-	br label %bb428
-
-cond_next427:		; No predecessors!
-	br label %bb428
-
-bb428:		; preds = %cond_next427, %cond_false426
-	br label %cond_next478
-
-cond_false443:		; preds = %bb389
-	br label %bb460
-
-bb450:		; preds = %cond_true466
-	br label %bb460
-
-bb460:		; preds = %bb450, %cond_false443
-	br i1 false, label %cond_true466, label %cond_false467
-
-cond_true466:		; preds = %bb460
-	br label %bb450
-
-cond_false467:		; preds = %bb460
-	br label %bb469
-
-cond_next468:		; No predecessors!
-	br label %bb469
-
-bb469:		; preds = %cond_next468, %cond_false467
-	br label %cond_next478
-
-cond_next478:		; preds = %bb469, %bb428
-	br label %cleanup485
-
-cleanup485:		; preds = %cond_next478
-	br label %finally484
-
-finally484:		; preds = %cleanup485
-	br label %cleanup487
-
-cleanup487:		; preds = %finally484
-	br label %finally486
-
-finally486:		; preds = %cleanup487
-	br label %cleanup489
-
-cleanup489:		; preds = %finally486
-	br label %finally488
-
-finally488:		; preds = %cleanup489
-	br label %bb492
-
-bb492:		; preds = %finally488, %entry
-	br i1 false, label %cond_true499, label %cond_false500
-
-cond_true499:		; preds = %bb492
-	br label %bb
-
-cond_false500:		; preds = %bb492
-	br label %bb502
-
-cond_next501:		; No predecessors!
-	br label %bb502
-
-bb502:		; preds = %cond_next501, %cond_false500
-	br label %return
-
-return:		; preds = %bb502
-	ret void
-}
-
-define internal fastcc void @_ZSt26__unguarded_insertion_sortIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEEvT_S7_() {
-entry:
-	br label %bb12
-
-bb:		; preds = %cond_true
-	br label %cleanup
-
-cleanup:		; preds = %bb
-	br label %finally
-
-finally:		; preds = %cleanup
-	br label %bb12
-
-bb12:		; preds = %finally, %entry
-	br i1 false, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb12
-	br label %bb
-
-cond_false:		; preds = %bb12
-	br label %bb14
-
-cond_next:		; No predecessors!
-	br label %bb14
-
-bb14:		; preds = %cond_next, %cond_false
-	br label %return
-
-return:		; preds = %bb14
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll b/libclamav/c++/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll
deleted file mode 100644
index bd2885d..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll
+++ /dev/null
@@ -1,245 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output
-; PR993
-target datalayout = "e-p:32:32"
-target triple = "i386-unknown-openbsd3.9"
-deplibs = [ "stdc++", "c", "crtend" ]
-	%"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { i8* }
-	%"struct.__gnu_cxx::char_producer<char>" = type { i32 (...)** }
-	%struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, i8*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
-	%struct.__sbuf = type { i8*, i32 }
-	%"struct.std::__basic_file<char>" = type { %struct.__sFILE*, i1 }
-	%"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" }
-	%"struct.std::bad_alloc" = type { %"struct.__gnu_cxx::char_producer<char>" }
-	%"struct.std::basic_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", i32, %"struct.std::__basic_file<char>", i32, %union.__mbstate_t, %union.__mbstate_t, i8*, i32, i1, i1, i1, i1, i8, i8*, i8*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* }
-	%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i1, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* }
-	%"struct.std::basic_iostream<char,std::char_traits<char> >" = type { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_ofstream<char,std::char_traits<char> >" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_filebuf<char,std::char_traits<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 }
-	%"struct.std::codecvt<char,char,__mbstate_t>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", i32* }
-	%"struct.std::ctype<char>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", i32*, i1, i32*, i32*, i32* }
-	%"struct.std::domain_error" = type { %"struct.std::logic_error" }
-	%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %struct.__sbuf, [8 x %struct.__sbuf], i32, %struct.__sbuf*, %"struct.std::locale" }
-	%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
-	%"struct.std::ios_base::_Words" = type { i8*, i32 }
-	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
-	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
-	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
-	%"struct.std::logic_error" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" }
-	%union.__mbstate_t = type { i64, [120 x i8] }
- at .str_1 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_9 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
-
-define void @main() {
-entry:
-	call fastcc void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode( )
-	ret void
-}
-
-define fastcc void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode() {
-entry:
-	%tmp.6 = icmp eq %"struct.std::basic_filebuf<char,std::char_traits<char> >"* null, null		; <i1> [#uses=1]
-	br i1 %tmp.6, label %then, label %UnifiedReturnBlock
-
-then:		; preds = %entry
-	tail call fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( )
-	ret void
-
-UnifiedReturnBlock:		; preds = %entry
-	ret void
-}
-
-define fastcc void @_ZN10__cxxabiv111__terminateEPFvvE() {
-entry:
-	unreachable
-}
-
-define void @_ZNSdD0Ev() {
-entry:
-	unreachable
-}
-
-define void @_ZThn8_NSdD1Ev() {
-entry:
-	ret void
-}
-
-define void @_ZNSt13basic_filebufIcSt11char_traitsIcEED0Ev() {
-entry:
-	ret void
-}
-
-define void @_ZNSt13basic_filebufIcSt11char_traitsIcEE9pbackfailEi() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSoD2Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() {
-entry:
-	tail call fastcc void @_ZSt19__throw_ios_failurePKc( )
-	ret void
-}
-
-declare fastcc void @_ZNSaIcED1Ev()
-
-define fastcc void @_ZNSsC1EPKcRKSaIcE() {
-entry:
-	tail call fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( )
-	unreachable
-}
-
-define fastcc void @_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZSt19__throw_ios_failurePKc() {
-entry:
-	call fastcc void @_ZNSsC1EPKcRKSaIcE( )
-	unwind
-}
-
-define void @_GLOBAL__D__ZSt23lexicographical_compareIPKaS1_EbT_S2_T0_S3_() {
-entry:
-	ret void
-}
-
-define void @_ZNSt9bad_allocD1Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZSt19__throw_logic_errorPKc() {
-entry:
-	invoke fastcc void @_ZNSt11logic_errorC1ERKSs( )
-			to label %try_exit.0 unwind label %try_catch.0
-
-try_catch.0:		; preds = %entry
-	unreachable
-
-try_exit.0:		; preds = %entry
-	unwind
-}
-
-define fastcc void @_ZNSt11logic_errorC1ERKSs() {
-entry:
-	call fastcc void @_ZNSsC1ERKSs( )
-	ret void
-}
-
-define void @_ZNSt12domain_errorD1Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZSt20__throw_length_errorPKc() {
-entry:
-	call fastcc void @_ZNSt12length_errorC1ERKSs( )
-	unwind
-}
-
-define fastcc void @_ZNSt12length_errorC1ERKSs() {
-entry:
-	invoke fastcc void @_ZNSsC1ERKSs( )
-			to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
-
-invoke_catch.i:		; preds = %entry
-	unwind
-
-_ZNSt11logic_errorC2ERKSs.exit:		; preds = %entry
-	ret void
-}
-
-define fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE() {
-entry:
-	call fastcc void @_ZSt20__throw_length_errorPKc( )
-	unreachable
-}
-
-define fastcc void @_ZNSs12_S_constructIN9__gnu_cxx17__normal_iteratorIPcSsEEEES2_T_S4_RKSaIcESt20forward_iterator_tag() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() {
-entry:
-	br i1 false, label %then.1.i, label %endif.1.i
-
-then.1.i:		; preds = %entry
-	call fastcc void @_ZSt19__throw_logic_errorPKc( )
-	br label %endif.1.i
-
-endif.1.i:		; preds = %then.1.i, %entry
-	call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( )
-	unreachable
-}
-
-define fastcc void @_ZNSsC1ERKSs() {
-entry:
-	call fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_( )
-	invoke fastcc void @_ZNSaIcEC1ERKS_( )
-			to label %invoke_cont.1 unwind label %invoke_catch.1
-
-invoke_catch.1:		; preds = %entry
-	call fastcc void @_ZNSaIcED1Ev( )
-	unwind
-
-invoke_cont.1:		; preds = %entry
-	call fastcc void @_ZNSaIcEC2ERKS_( )
-	ret void
-}
-
-define fastcc void @_ZNSaIcEC1ERKS_() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_() {
-entry:
-	br i1 false, label %else.i, label %cond_true
-
-cond_true:		; preds = %entry
-	ret void
-
-else.i:		; preds = %entry
-	tail call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( )
-	unreachable
-}
-
-define fastcc void @_ZNSaIcEC2ERKS_() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZN9__gnu_cxx12__pool_allocILb1ELi0EE8allocateEj() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZN9__gnu_cxx12__pool_allocILb1ELi0EE9_S_refillEj() {
-entry:
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll b/libclamav/c++/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll
deleted file mode 100644
index 05096f4..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll
+++ /dev/null
@@ -1,338 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output
-; PR992
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-deplibs = [ "stdc++", "c", "crtend" ]
-	%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [52 x i8] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
-	%"struct.__cxxabiv1::__array_type_info" = type { %"struct.std::type_info" }
-	%"struct.__cxxabiv1::__si_class_type_info" = type { %"struct.__cxxabiv1::__array_type_info", %"struct.__cxxabiv1::__array_type_info"* }
-	%"struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" = type { i32 }
-	%"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" = type { i8* }
-	%"struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" = type { i32* }
-	%"struct.__gnu_cxx::char_producer<char>" = type { i32 (...)** }
-	%"struct.__gnu_cxx::stdio_sync_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", %struct._IO_FILE*, i32 }
-	%"struct.__gnu_cxx::stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", %struct._IO_FILE*, i32 }
-	%struct.__locale_struct = type { [13 x %struct.locale_data*], i16*, i32*, i32*, [13 x i8*] }
-	%struct.__mbstate_t = type { i32, %"struct.__gnu_cxx::_Rope_rep_alloc_base<char,std::allocator<char>, true>" }
-	%struct.locale_data = type opaque
-	%"struct.std::__basic_file<char>" = type { %struct._IO_FILE*, i1 }
-	%"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>" = type { %"struct.std::locale::facet" }
-	%"struct.std::basic_filebuf<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", i32, %"struct.std::__basic_file<char>", i32, %struct.__mbstate_t, %struct.__mbstate_t, i8*, i32, i1, i1, i1, i1, i8, i8*, i8*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* }
-	%"struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >", i32, %"struct.std::__basic_file<char>", i32, %struct.__mbstate_t, %struct.__mbstate_t, i32*, i32, i1, i1, i1, i1, i32, i32*, i32*, i1, %"struct.std::codecvt<char,char,__mbstate_t>"*, i8*, i32, i8*, i8* }
-	%"struct.std::basic_fstream<char,std::char_traits<char> >" = type { { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>" }, %"struct.std::basic_filebuf<char,std::char_traits<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_fstream<wchar_t,std::char_traits<wchar_t> >" = type { { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>" }, %"struct.std::basic_filebuf<wchar_t,std::char_traits<wchar_t> >", %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
-	%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i1, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* }
-	%"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >"*, i32, i1, %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, %"struct.std::codecvt<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"*, %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>"* }
-	%"struct.std::basic_iostream<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::locale::facet", %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
-	%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, %"struct.std::basic_ios<wchar_t,std::char_traits<wchar_t> >" }
-	%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
-	%"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >" = type { i32 (...)**, i32*, i32*, i32*, i32*, i32*, i32*, %"struct.std::locale" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.__gnu_cxx::__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 }
-	%"struct.std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >" = type { %"struct.__gnu_cxx::__normal_iterator<const wchar_t*,std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >" }
-	%"struct.std::codecvt<char,char,__mbstate_t>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct* }
-	%"struct.std::collate<char>" = type { %"struct.std::locale::facet", %struct.__locale_struct* }
-	%"struct.std::collate_byname<char>" = type { %"struct.std::collate<char>" }
-	%"struct.std::ctype<char>" = type { %"struct.std::__codecvt_abstract_base<char,char,__mbstate_t>", %struct.__locale_struct*, i1, i32*, i32*, i16* }
-	%"struct.std::ctype_byname<char>" = type { %"struct.std::ctype<char>" }
-	%"struct.std::domain_error" = type { %"struct.std::logic_error" }
-	%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" }
-	%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
-	%"struct.std::ios_base::_Words" = type { i8*, i32 }
-	%"struct.std::istreambuf_iterator<char,std::char_traits<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, i32 }
-	%"struct.std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t> >" = type { %"struct.std::basic_streambuf<wchar_t,std::char_traits<wchar_t> >"*, i32 }
-	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
-	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
-	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
-	%"struct.std::logic_error" = type { %"struct.__gnu_cxx::char_producer<char>", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" }
-	%"struct.std::type_info" = type { i32 (...)**, i8* }
- at .str_11 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_9 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_1 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
-
-define void @main() {
-entry:
-	tail call fastcc void @_ZNSolsEi( )
-	ret void
-}
-
-define fastcc void @_ZNSolsEi() {
-entry:
-	%tmp.22 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp.22, label %else, label %then
-
-then:		; preds = %entry
-	ret void
-
-else:		; preds = %entry
-	tail call fastcc void @_ZNSolsEl( )
-	ret void
-}
-
-define void @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate() {
-entry:
-	tail call fastcc void @_ZSt19__throw_ios_failurePKc( )
-	ret void
-}
-
-define fastcc void @_ZNSo3putEc() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSolsEl() {
-entry:
-	%tmp.21.i = icmp eq %"struct.std::basic_ostream<char,std::char_traits<char> >"* null, null		; <i1> [#uses=1]
-	br i1 %tmp.21.i, label %endif.0.i, label %shortcirc_next.i
-
-shortcirc_next.i:		; preds = %entry
-	ret void
-
-endif.0.i:		; preds = %entry
-	call fastcc void @_ZNSt9basic_iosIcSt11char_traitsIcEE8setstateESt12_Ios_Iostate( )
-	ret void
-}
-
-define fastcc void @_ZSt19__throw_ios_failurePKc() {
-entry:
-	call fastcc void @_ZNSsC1EPKcRKSaIcE( )
-	ret void
-}
-
-define fastcc void @_ZNSt8ios_baseD2Ev() {
-entry:
-	unreachable
-}
-
-define void @_ZN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEE5uflowEv() {
-entry:
-	unreachable
-}
-
-define void @_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEED1Ev() {
-entry:
-	unreachable
-}
-
-define void @_ZNSt15basic_streambufIcSt11char_traitsIcEE6setbufEPci() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale() {
-entry:
-	ret void
-}
-
-declare fastcc void @_ZNSaIcED1Ev()
-
-define fastcc void @_ZSt19__throw_logic_errorPKc() {
-entry:
-	call fastcc void @_ZNSt11logic_errorC1ERKSs( )
-	ret void
-}
-
-define fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE() {
-entry:
-	br i1 false, label %then.0, label %endif.0
-
-then.0:		; preds = %entry
-	call fastcc void @_ZSt20__throw_length_errorPKc( )
-	ret void
-
-endif.0:		; preds = %entry
-	ret void
-}
-
-define fastcc void @_ZSt20__throw_length_errorPKc() {
-entry:
-	call fastcc void @_ZNSt12length_errorC1ERKSs( )
-	unwind
-}
-
-define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() {
-entry:
-	br i1 false, label %then.1.i, label %endif.1.i
-
-then.1.i:		; preds = %entry
-	call fastcc void @_ZSt19__throw_logic_errorPKc( )
-	ret void
-
-endif.1.i:		; preds = %entry
-	call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( )
-	unreachable
-}
-
-define fastcc void @_ZNSsC1ERKSs() {
-entry:
-	call fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_( )
-	invoke fastcc void @_ZNSaIcEC1ERKS_( )
-			to label %invoke_cont.1 unwind label %invoke_catch.1
-
-invoke_catch.1:		; preds = %entry
-	call fastcc void @_ZNSaIcED1Ev( )
-	unwind
-
-invoke_cont.1:		; preds = %entry
-	call fastcc void @_ZNSaIcEC2ERKS_( )
-	ret void
-}
-
-define fastcc void @_ZNSs7reserveEj() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSaIcEC1ERKS_() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSs4_Rep7_M_grabERKSaIcES2_() {
-entry:
-	br i1 false, label %else.i, label %cond_true
-
-cond_true:		; preds = %entry
-	ret void
-
-else.i:		; preds = %entry
-	tail call fastcc void @_ZNSs4_Rep9_S_createEjRKSaIcE( )
-	ret void
-}
-
-define fastcc void @_ZNSsC1EPKcRKSaIcE() {
-entry:
-	tail call fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type( )
-	unreachable
-}
-
-define fastcc void @_ZNSaIcEC2ERKS_() {
-entry:
-	ret void
-}
-
-define void @_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev() {
-entry:
-	unreachable
-}
-
-define void @_ZNSt14collate_bynameIcED1Ev() {
-entry:
-	unreachable
-}
-
-define void @_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy() {
-entry:
-	ret void
-}
-
-define void @_ZNSt23__codecvt_abstract_baseIcc11__mbstate_tED1Ev() {
-entry:
-	unreachable
-}
-
-define void @_ZNSt12ctype_bynameIcED0Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSt8messagesIwEC1Ej() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKP15__locale_structi() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEC1Ej() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEC1Ej() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE16_M_extract_floatES3_S3_RSt8ios_baseRSt12_Ios_IostateRSs() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_() {
-entry:
-	ret void
-}
-
-define void @_ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev() {
-entry:
-	unreachable
-}
-
-define void @_ZNSt15basic_streambufIcSt11char_traitsIcEE9showmanycEv() {
-entry:
-	ret void
-}
-
-define void @_ZNSt9exceptionD0Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSt11logic_errorC1ERKSs() {
-entry:
-	call fastcc void @_ZNSsC1ERKSs( )
-	ret void
-}
-
-define fastcc void @_ZNSt11logic_errorD2Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSt12length_errorC1ERKSs() {
-entry:
-	invoke fastcc void @_ZNSsC1ERKSs( )
-			to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
-
-invoke_catch.i:		; preds = %entry
-	unwind
-
-_ZNSt11logic_errorC2ERKSs.exit:		; preds = %entry
-	ret void
-}
-
-define void @_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_() {
-entry:
-	ret void
-}
-
-define fastcc void @_ZNSbIwSt11char_traitsIwESaIwEE16_S_construct_auxIPKwEEPwT_S7_RKS1_12__false_type() {
-entry:
-	ret void
-}
-
-define void @_ZTv0_n12_NSt13basic_fstreamIwSt11char_traitsIwEED1Ev() {
-entry:
-	ret void
-}
-
-define void @_ZNSt13basic_fstreamIcSt11char_traitsIcEED1Ev() {
-entry:
-	unreachable
-}
-
-define fastcc void @_ZNSt5ctypeIcEC1EPKtbj() {
-entry:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2007-04-15-InlineEH.ll b/libclamav/c++/llvm/test/Transforms/Inline/2007-04-15-InlineEH.ll
deleted file mode 100644
index 083a328..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2007-04-15-InlineEH.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep {invoke void asm}
-; PR1335
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-	%struct.gnat__strings__string_access = type { i8*, %struct.string___XUB* }
-	%struct.string___XUB = type { i32, i32 }
-
-define void @bc__support__high_resolution_time__clock() {
-entry:
-	call void asm "rdtsc\0A\09movl %eax, $0\0A\09movl %edx, $1", "=*imr,=*imr,~{dirflag},~{fpsr},~{flags},~{dx},~{ax}"( i32* null, i32* null ) nounwind
-	unreachable
-}
-
-define fastcc void @bc__support__high_resolution_time__initialize_clock_rate() {
-entry:
-	invoke void @gnat__os_lib__getenv( %struct.gnat__strings__string_access* null )
-			to label %invcont unwind label %cleanup144
-
-invcont:		; preds = %entry
-	invoke void @ada__calendar__delays__delay_for( )
-			to label %invcont64 unwind label %cleanup144
-
-invcont64:		; preds = %invcont
-	invoke void @ada__calendar__clock( )
-			to label %invcont65 unwind label %cleanup144
-
-invcont65:		; preds = %invcont64
-	invoke void @bc__support__high_resolution_time__clock( )
-			to label %invcont67 unwind label %cleanup144
-
-invcont67:		; preds = %invcont65
-	ret void
-
-cleanup144:		; preds = %invcont65, %invcont64, %invcont, %entry
-	unwind
-}
-
-declare void @gnat__os_lib__getenv(%struct.gnat__strings__string_access*)
-
-declare void @ada__calendar__delays__delay_for()
-
-declare void @ada__calendar__clock()
-
-define void @bc__support__high_resolution_time___elabb() {
-entry:
-	call fastcc void @bc__support__high_resolution_time__initialize_clock_rate( )
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2007-06-06-NoInline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2007-06-06-NoInline.ll
deleted file mode 100644
index f715074..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2007-06-06-NoInline.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -inline - | llvm-dis | grep "define internal i32 @bar" 
- at llvm.noinline = appending global [1 x i8*] [ i8* bitcast (i32 (i32, i32)* @bar to i8*) ], section "llvm.metadata"		; <[1 x i8*]*> [#uses=0]
-
-define internal i32 @bar(i32 %x, i32 %y) {
-entry:
-	%x_addr = alloca i32		; <i32*> [#uses=2]
-	%y_addr = alloca i32		; <i32*> [#uses=2]
-	%retval = alloca i32, align 4		; <i32*> [#uses=2]
-	%tmp = alloca i32, align 4		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %x, i32* %x_addr
-	store i32 %y, i32* %y_addr
-	%tmp1 = load i32* %x_addr		; <i32> [#uses=1]
-	%tmp2 = load i32* %y_addr		; <i32> [#uses=1]
-	%tmp3 = add i32 %tmp1, %tmp2		; <i32> [#uses=1]
-	store i32 %tmp3, i32* %tmp
-	%tmp4 = load i32* %tmp		; <i32> [#uses=1]
-	store i32 %tmp4, i32* %retval
-	br label %return
-
-return:		; preds = %entry
-	%retval5 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval5
-}
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
-	%a_addr = alloca i32		; <i32*> [#uses=2]
-	%b_addr = alloca i32		; <i32*> [#uses=2]
-	%retval = alloca i32, align 4		; <i32*> [#uses=2]
-	%tmp = alloca i32, align 4		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %a, i32* %a_addr
-	store i32 %b, i32* %b_addr
-	%tmp1 = load i32* %b_addr		; <i32> [#uses=1]
-	%tmp2 = load i32* %a_addr		; <i32> [#uses=1]
-	%tmp3 = call i32 @bar( i32 %tmp1, i32 %tmp2 )		; <i32> [#uses=1]
-	store i32 %tmp3, i32* %tmp
-	%tmp4 = load i32* %tmp		; <i32> [#uses=1]
-	store i32 %tmp4, i32* %retval
-	br label %return
-
-return:		; preds = %entry
-	%retval5 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval5
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2007-06-25-WeakInline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2007-06-25-WeakInline.ll
deleted file mode 100644
index 3cf758c..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2007-06-25-WeakInline.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | grep call
-
-; 'bar' can be overridden at link-time, don't inline it.
-
-define void @foo() {
-entry:
-        tail call void @bar( )            ; <i32> [#uses=0]
-        ret void
-}
-
-define weak void @bar() {
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2007-12-19-InlineNoUnwind.ll b/libclamav/c++/llvm/test/Transforms/Inline/2007-12-19-InlineNoUnwind.ll
deleted file mode 100644
index 5f7da15..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2007-12-19-InlineNoUnwind.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as %s -o - | opt -inline | llvm-dis | grep nounwind
-; RUN: llvm-as %s -o - | opt -inline | llvm-dis | grep unreachable
-
-declare i1 @extern()
-
-define internal i32 @test() {
-entry:
-	%n = call i1 @extern( )
-	br i1 %n, label %r, label %u
-r:
-	ret i32 0;
-u:
-	unwind
-}
-
-define i32 @caller() {
-	%X = call i32 @test( ) nounwind
-	ret i32 %X
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2008-03-04-StructRet.ll b/libclamav/c++/llvm/test/Transforms/Inline/2008-03-04-StructRet.ll
deleted file mode 100644
index fc7ebc4..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2008-03-04-StructRet.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-	%struct.Benchmark = type { i32 (...)** }
-	%struct.Complex = type { double, double }
-	%struct.ComplexBenchmark = type { %struct.Benchmark }
-
-define %struct.Complex @_Zml7ComplexS_1(double %a.0, double %a.1, double %b.0, double %b.1) nounwind  {
-entry:
-	%mrv = alloca %struct.Complex		; <%struct.Complex*> [#uses=2]
-	%mrv.gep = getelementptr %struct.Complex* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld = load double* %mrv.gep		; <double> [#uses=1]
-	%mrv.gep1 = getelementptr %struct.Complex* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld2 = load double* %mrv.gep1		; <double> [#uses=1]
-	ret double %mrv.ld, double %mrv.ld2
-}
-
-define void @_ZNK16ComplexBenchmark9oop_styleEv(%struct.ComplexBenchmark* %this) nounwind  {
-entry:
-	%tmp = alloca %struct.Complex		; <%struct.Complex*> [#uses=0]
-	br label %bb31
-bb:		; preds = %bb31
-	call %struct.Complex @_Zml7ComplexS_1( double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00 ) nounwind 		; <%struct.Complex>:0 [#uses=1]
-	%gr = getresult %struct.Complex %0, 1		; <double> [#uses=0]
-	br label %bb31
-bb31:		; preds = %bb, %entry
-	br i1 false, label %bb, label %return
-return:		; preds = %bb31
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2008-03-07-Inline-2.ll b/libclamav/c++/llvm/test/Transforms/Inline/2008-03-07-Inline-2.ll
deleted file mode 100644
index 0c25690..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2008-03-07-Inline-2.ll
+++ /dev/null
@@ -1,53 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-	%struct.Demand = type { double, double }
-	%struct.branch = type { %struct.Demand, double, double, double, double, %struct.branch*, [12 x %struct.leaf*] }
-	%struct.leaf = type { %struct.Demand, double, double }
- at P = external global double		; <double*> [#uses=1]
-
-define %struct.leaf* @build_leaf() nounwind  {
-entry:
-	unreachable
-}
-
-define %struct.Demand @Compute_Branch2(%struct.branch* %br, double %theta_R, double %theta_I, double %pi_R, double %pi_I) nounwind  {
-entry:
-	%mrv = alloca %struct.Demand		; <%struct.Demand*> [#uses=4]
-	%a2 = alloca %struct.Demand		; <%struct.Demand*> [#uses=0]
-	br i1 false, label %bb46, label %bb
-bb:		; preds = %entry
-	%mrv.gep = getelementptr %struct.Demand* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld = load double* %mrv.gep		; <double> [#uses=1]
-	%mrv.gep1 = getelementptr %struct.Demand* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld2 = load double* %mrv.gep1		; <double> [#uses=1]
-	ret double %mrv.ld, double %mrv.ld2
-bb46:		; preds = %entry
-	br label %bb72
-bb49:		; preds = %bb72
-	call %struct.Demand @Compute_Leaf1( %struct.leaf* null, double 0.000000e+00, double 0.000000e+00 ) nounwind 		; <%struct.Demand>:0 [#uses=1]
-	%gr = getresult %struct.Demand %0, 1		; <double> [#uses=0]
-	br label %bb72
-bb72:		; preds = %bb49, %bb46
-	br i1 false, label %bb49, label %bb77
-bb77:		; preds = %bb72
-	%mrv.gep3 = getelementptr %struct.Demand* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld4 = load double* %mrv.gep3		; <double> [#uses=1]
-	%mrv.gep5 = getelementptr %struct.Demand* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld6 = load double* %mrv.gep5		; <double> [#uses=1]
-	ret double %mrv.ld4, double %mrv.ld6
-}
-
-define %struct.Demand @Compute_Leaf1(%struct.leaf* %l, double %pi_R, double %pi_I) nounwind  {
-entry:
-	%mrv = alloca %struct.Demand		; <%struct.Demand*> [#uses=2]
-	%tmp10 = load double* @P, align 8		; <double> [#uses=1]
-	%tmp11 = fcmp olt double %tmp10, 0.000000e+00		; <i1> [#uses=1]
-	br i1 %tmp11, label %bb, label %bb13
-bb:		; preds = %entry
-	br label %bb13
-bb13:		; preds = %bb, %entry
-	%mrv.gep = getelementptr %struct.Demand* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld = load double* %mrv.gep		; <double> [#uses=1]
-	%mrv.gep1 = getelementptr %struct.Demand* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld2 = load double* %mrv.gep1		; <double> [#uses=1]
-	ret double %mrv.ld, double %mrv.ld2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2008-03-07-Inline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2008-03-07-Inline.ll
deleted file mode 100644
index 09d14f0..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2008-03-07-Inline.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-	%struct.Demand = type { double, double }
-	%struct.branch = type { %struct.Demand, double, double, double, double, %struct.branch*, [12 x %struct.leaf*] }
-	%struct.leaf = type { %struct.Demand, double, double }
- at P = external global double		; <double*> [#uses=1]
-
-define %struct.leaf* @build_leaf() nounwind  {
-entry:
-	unreachable
-}
-
-define %struct.Demand @Compute_Branch2(%struct.branch* %br, double %theta_R, double %theta_I, double %pi_R, double %pi_I) nounwind  {
-entry:
-	%mrv = alloca %struct.Demand		; <%struct.Demand*> [#uses=4]
-	%a2 = alloca %struct.Demand		; <%struct.Demand*> [#uses=0]
-	br i1 false, label %bb46, label %bb
-bb:		; preds = %entry
-	%mrv.gep = getelementptr %struct.Demand* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld = load double* %mrv.gep		; <double> [#uses=1]
-	%mrv.gep1 = getelementptr %struct.Demand* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld2 = load double* %mrv.gep1		; <double> [#uses=1]
-	ret double %mrv.ld, double %mrv.ld2
-bb46:		; preds = %entry
-	br label %bb72
-bb49:		; preds = %bb72
-	call %struct.Demand @Compute_Leaf1( %struct.leaf* null, double 0.000000e+00, double 0.000000e+00 ) nounwind 		; <%struct.Demand>:0 [#uses=1]
-	%gr = getresult %struct.Demand %0, 1		; <double> [#uses=0]
-	br label %bb72
-bb72:		; preds = %bb49, %bb46
-	br i1 false, label %bb49, label %bb77
-bb77:		; preds = %bb72
-	%mrv.gep3 = getelementptr %struct.Demand* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld4 = load double* %mrv.gep3		; <double> [#uses=1]
-	%mrv.gep5 = getelementptr %struct.Demand* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld6 = load double* %mrv.gep5		; <double> [#uses=1]
-	ret double %mrv.ld4, double %mrv.ld6
-}
-
-define %struct.Demand @Compute_Leaf1(%struct.leaf* %l, double %pi_R, double %pi_I) nounwind  {
-entry:
-	%mrv = alloca %struct.Demand		; <%struct.Demand*> [#uses=4]
-	%tmp10 = load double* @P, align 8		; <double> [#uses=1]
-	%tmp11 = fcmp olt double %tmp10, 0.000000e+00		; <i1> [#uses=1]
-	br i1 %tmp11, label %bb, label %bb13
-bb:		; preds = %entry
-	%mrv.gep = getelementptr %struct.Demand* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld = load double* %mrv.gep		; <double> [#uses=1]
-	%mrv.gep1 = getelementptr %struct.Demand* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld2 = load double* %mrv.gep1		; <double> [#uses=1]
-	ret double %mrv.ld, double %mrv.ld2
-bb13:		; preds = %entry
-	%mrv.gep3 = getelementptr %struct.Demand* %mrv, i32 0, i32 0		; <double*> [#uses=1]
-	%mrv.ld4 = load double* %mrv.gep3		; <double> [#uses=1]
-	%mrv.gep5 = getelementptr %struct.Demand* %mrv, i32 0, i32 1		; <double*> [#uses=1]
-	%mrv.ld6 = load double* %mrv.gep5		; <double> [#uses=1]
-	ret double %mrv.ld4, double %mrv.ld6
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2008-09-02-AlwaysInline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2008-09-02-AlwaysInline.ll
deleted file mode 100644
index b42e559..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2008-09-02-AlwaysInline.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt  -inline-threshold=0 -inline | llvm-dis | not grep call 
-
-define i32 @fn2() alwaysinline {
-  ret i32 1
-}
-
-define i32 @fn3() {
-   %r = call i32 @fn2()
-   ret i32 %r
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2008-09-02-NoInline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2008-09-02-NoInline.ll
deleted file mode 100644
index 35b4b46..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2008-09-02-NoInline.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | grep call | count 1
-
-define i32 @fn2() noinline {
-  ret i32 1
-}
-
-define i32 @fn3() {
-   %r = call i32 @fn2()
-   ret i32 %r
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2008-10-30-AlwaysInline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2008-10-30-AlwaysInline.ll
deleted file mode 100644
index 765fc75..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2008-10-30-AlwaysInline.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -always-inline | llvm-dis | not grep call 
-
-; Ensure that threshold doesn't disrupt always inline.
-; RUN: llvm-as < %s | opt -inline-threshold=-2000000001 -always-inline | llvm-dis | not grep call 
-
-
-define internal i32 @if0() alwaysinline {
-       ret i32 1 
-}
-
-define i32 @f0() {
-       %r = call i32 @if0()
-       ret i32 %r
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2008-11-04-AlwaysInline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2008-11-04-AlwaysInline.ll
deleted file mode 100644
index 7539852..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2008-11-04-AlwaysInline.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -always-inline | llvm-dis | grep {@foo}
-; Ensure that foo is not removed by always inliner
-; PR 2945
-
-define internal i32 @foo() nounwind {
-  ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll b/libclamav/c++/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll
deleted file mode 100644
index 14840ba..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | grep call
-; Do not inline calls to variable-sized alloca.
-
- at q = common global i8* null		; <i8**> [#uses=1]
-
-define i8* @a(i32 %i) nounwind {
-entry:
-	%i_addr = alloca i32		; <i32*> [#uses=2]
-	%retval = alloca i8*		; <i8**> [#uses=1]
-	%p = alloca i8*		; <i8**> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %i, i32* %i_addr
-	%0 = load i32* %i_addr, align 4		; <i32> [#uses=1]
-	%1 = alloca i8, i32 %0		; <i8*> [#uses=1]
-	store i8* %1, i8** %p, align 4
-	%2 = load i8** %p, align 4		; <i8*> [#uses=1]
-	store i8* %2, i8** @q, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i8** %retval		; <i8*> [#uses=1]
-	ret i8* %retval1
-}
-
-define void @b(i32 %i) nounwind {
-entry:
-	%i_addr = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %i, i32* %i_addr
-	%0 = load i32* %i_addr, align 4		; <i32> [#uses=1]
-	%1 = call i8* @a(i32 %0) nounwind		; <i8*> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2009-01-12-RecursiveInline.ll b/libclamav/c++/llvm/test/Transforms/Inline/2009-01-12-RecursiveInline.ll
deleted file mode 100644
index 8a4b2e0..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2009-01-12-RecursiveInline.ll
+++ /dev/null
@@ -1,92 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | grep {call.*fib} | count 4
-; First call to fib from fib is inlined, producing 2 instead of 1, total 3.
-; Second call to fib from fib is not inlined because new body of fib exceeds
-; inlining limit of 200.  Plus call in main = 4 total.
-
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-@"\01LC" = internal constant [5 x i8] c"%ld\0A\00"		; <[5 x i8]*> [#uses=1]
-
-define i32 @fib(i32 %n) nounwind {
-entry:
-	%n_addr = alloca i32		; <i32*> [#uses=4]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %n, i32* %n_addr
-	%1 = load i32* %n_addr, align 4		; <i32> [#uses=1]
-	%2 = icmp ule i32 %1, 1		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %bb1
-
-bb:		; preds = %entry
-	store i32 1, i32* %0, align 4
-	br label %bb2
-
-bb1:		; preds = %entry
-	%3 = load i32* %n_addr, align 4		; <i32> [#uses=1]
-	%4 = sub i32 %3, 2		; <i32> [#uses=1]
-	%5 = call i32 @fib(i32 %4) nounwind		; <i32> [#uses=1]
-	%6 = load i32* %n_addr, align 4		; <i32> [#uses=1]
-	%7 = sub i32 %6, 1		; <i32> [#uses=1]
-	%8 = call i32 @fib(i32 %7) nounwind		; <i32> [#uses=1]
-	%9 = add i32 %5, %8		; <i32> [#uses=1]
-	store i32 %9, i32* %0, align 4
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	%10 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %10, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %bb2
-	%retval3 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval3
-}
-
-define i32 @main(i32 %argc, i8** %argv) nounwind {
-entry:
-	%argc_addr = alloca i32		; <i32*> [#uses=2]
-	%argv_addr = alloca i8**		; <i8***> [#uses=2]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%N = alloca i32		; <i32*> [#uses=2]
-	%0 = alloca i32		; <i32*> [#uses=2]
-	%iftmp.0 = alloca i32		; <i32*> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %argc, i32* %argc_addr
-	store i8** %argv, i8*** %argv_addr
-	%1 = load i32* %argc_addr, align 4		; <i32> [#uses=1]
-	%2 = icmp eq i32 %1, 2		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %bb1
-
-bb:		; preds = %entry
-	%3 = load i8*** %argv_addr, align 4		; <i8**> [#uses=1]
-	%4 = getelementptr i8** %3, i32 1		; <i8**> [#uses=1]
-	%5 = load i8** %4, align 4		; <i8*> [#uses=1]
-	%6 = call i32 @atoi(i8* %5) nounwind		; <i32> [#uses=1]
-	store i32 %6, i32* %iftmp.0, align 4
-	br label %bb2
-
-bb1:		; preds = %entry
-	store i32 43, i32* %iftmp.0, align 4
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	%7 = load i32* %iftmp.0, align 4		; <i32> [#uses=1]
-	store i32 %7, i32* %N, align 4
-	%8 = load i32* %N, align 4		; <i32> [#uses=1]
-	%9 = call i32 @fib(i32 %8) nounwind		; <i32> [#uses=1]
-	%10 = call i32 (i8*, ...)* @printf(i8* getelementptr ([5 x i8]* @"\01LC", i32 0, i32 0), i32 %9) nounwind		; <i32> [#uses=0]
-	store i32 0, i32* %0, align 4
-	%11 = load i32* %0, align 4		; <i32> [#uses=1]
-	store i32 %11, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %bb2
-	%retval3 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval3
-}
-
-declare i32 @atoi(i8*)
-
-declare i32 @printf(i8*, ...) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll b/libclamav/c++/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll
deleted file mode 100644
index 3702afa..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll
+++ /dev/null
@@ -1,293 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -argpromotion -disable-output
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-	%struct.quad_struct = type { i32, i32, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct* }
- at NumNodes = external global i32		; <i32*> [#uses=0]
-@"\01LC" = external constant [43 x i8]		; <[43 x i8]*> [#uses=0]
-@"\01LC1" = external constant [19 x i8]		; <[19 x i8]*> [#uses=0]
-@"\01LC2" = external constant [17 x i8]		; <[17 x i8]*> [#uses=0]
-
-declare i32 @dealwithargs(i32, i8** nocapture) nounwind
-
-declare i32 @atoi(i8*)
-
-define internal fastcc i32 @adj(i32 %d, i32 %ct) nounwind readnone {
-entry:
-	switch i32 %d, label %return [
-		i32 0, label %bb
-		i32 1, label %bb10
-		i32 2, label %bb5
-		i32 3, label %bb15
-	]
-
-bb:		; preds = %entry
-	switch i32 %ct, label %bb3 [
-		i32 1, label %return
-		i32 0, label %return
-	]
-
-bb3:		; preds = %bb
-	ret i32 0
-
-bb5:		; preds = %entry
-	switch i32 %ct, label %bb8 [
-		i32 3, label %return
-		i32 2, label %return
-	]
-
-bb8:		; preds = %bb5
-	ret i32 0
-
-bb10:		; preds = %entry
-	switch i32 %ct, label %bb13 [
-		i32 1, label %return
-		i32 3, label %return
-	]
-
-bb13:		; preds = %bb10
-	ret i32 0
-
-bb15:		; preds = %entry
-	switch i32 %ct, label %bb18 [
-		i32 2, label %return
-		i32 0, label %return
-	]
-
-bb18:		; preds = %bb15
-	ret i32 0
-
-return:		; preds = %bb15, %bb15, %bb10, %bb10, %bb5, %bb5, %bb, %bb, %entry
-	ret i32 1
-}
-
-declare fastcc i32 @reflect(i32, i32) nounwind readnone
-
-declare i32 @CountTree(%struct.quad_struct* nocapture) nounwind readonly
-
-define internal fastcc %struct.quad_struct* @child(%struct.quad_struct* nocapture %tree, i32 %ct) nounwind readonly {
-entry:
-	switch i32 %ct, label %bb5 [
-		i32 0, label %bb1
-		i32 1, label %bb
-		i32 2, label %bb3
-		i32 3, label %bb2
-	]
-
-bb:		; preds = %entry
-	%0 = getelementptr %struct.quad_struct* %tree, i32 0, i32 3		; <%struct.quad_struct**> [#uses=1]
-	%1 = load %struct.quad_struct** %0, align 4		; <%struct.quad_struct*> [#uses=1]
-	ret %struct.quad_struct* %1
-
-bb1:		; preds = %entry
-	%2 = getelementptr %struct.quad_struct* %tree, i32 0, i32 2		; <%struct.quad_struct**> [#uses=1]
-	%3 = load %struct.quad_struct** %2, align 4		; <%struct.quad_struct*> [#uses=1]
-	ret %struct.quad_struct* %3
-
-bb2:		; preds = %entry
-	%4 = getelementptr %struct.quad_struct* %tree, i32 0, i32 5		; <%struct.quad_struct**> [#uses=1]
-	%5 = load %struct.quad_struct** %4, align 4		; <%struct.quad_struct*> [#uses=1]
-	ret %struct.quad_struct* %5
-
-bb3:		; preds = %entry
-	%6 = getelementptr %struct.quad_struct* %tree, i32 0, i32 4		; <%struct.quad_struct**> [#uses=1]
-	%7 = load %struct.quad_struct** %6, align 4		; <%struct.quad_struct*> [#uses=1]
-	ret %struct.quad_struct* %7
-
-bb5:		; preds = %entry
-	ret %struct.quad_struct* null
-}
-
-define internal fastcc %struct.quad_struct* @gtequal_adj_neighbor(%struct.quad_struct* nocapture %tree, i32 %d) nounwind readonly {
-entry:
-	%0 = getelementptr %struct.quad_struct* %tree, i32 0, i32 6		; <%struct.quad_struct**> [#uses=1]
-	%1 = load %struct.quad_struct** %0, align 4		; <%struct.quad_struct*> [#uses=4]
-	%2 = getelementptr %struct.quad_struct* %tree, i32 0, i32 1		; <i32*> [#uses=1]
-	%3 = load i32* %2, align 4		; <i32> [#uses=2]
-	%4 = icmp eq %struct.quad_struct* %1, null		; <i1> [#uses=1]
-	br i1 %4, label %bb3, label %bb
-
-bb:		; preds = %entry
-	%5 = call fastcc i32 @adj(i32 %d, i32 %3) nounwind		; <i32> [#uses=1]
-	%6 = icmp eq i32 %5, 0		; <i1> [#uses=1]
-	br i1 %6, label %bb3, label %bb1
-
-bb1:		; preds = %bb
-	%7 = call fastcc %struct.quad_struct* @gtequal_adj_neighbor(%struct.quad_struct* %1, i32 %d) nounwind		; <%struct.quad_struct*> [#uses=1]
-	br label %bb3
-
-bb3:		; preds = %bb1, %bb, %entry
-	%q.0 = phi %struct.quad_struct* [ %7, %bb1 ], [ %1, %bb ], [ %1, %entry ]		; <%struct.quad_struct*> [#uses=4]
-	%8 = icmp eq %struct.quad_struct* %q.0, null		; <i1> [#uses=1]
-	br i1 %8, label %bb7, label %bb4
-
-bb4:		; preds = %bb3
-	%9 = getelementptr %struct.quad_struct* %q.0, i32 0, i32 0		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 4		; <i32> [#uses=1]
-	%11 = icmp eq i32 %10, 2		; <i1> [#uses=1]
-	br i1 %11, label %bb5, label %bb7
-
-bb5:		; preds = %bb4
-	%12 = call fastcc i32 @reflect(i32 %d, i32 %3) nounwind		; <i32> [#uses=1]
-	%13 = call fastcc %struct.quad_struct* @child(%struct.quad_struct* %q.0, i32 %12) nounwind		; <%struct.quad_struct*> [#uses=1]
-	ret %struct.quad_struct* %13
-
-bb7:		; preds = %bb4, %bb3
-	ret %struct.quad_struct* %q.0
-}
-
-declare fastcc i32 @sum_adjacent(%struct.quad_struct* nocapture, i32, i32, i32) nounwind readonly
-
-define i32 @perimeter(%struct.quad_struct* nocapture %tree, i32 %size) nounwind readonly {
-entry:
-	%0 = getelementptr %struct.quad_struct* %tree, i32 0, i32 0		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	%2 = icmp eq i32 %1, 2		; <i1> [#uses=1]
-	br i1 %2, label %bb, label %bb2
-
-bb:		; preds = %entry
-	%3 = getelementptr %struct.quad_struct* %tree, i32 0, i32 4		; <%struct.quad_struct**> [#uses=1]
-	%4 = load %struct.quad_struct** %3, align 4		; <%struct.quad_struct*> [#uses=1]
-	%5 = sdiv i32 %size, 2		; <i32> [#uses=1]
-	%6 = call i32 @perimeter(%struct.quad_struct* %4, i32 %5) nounwind		; <i32> [#uses=1]
-	%7 = getelementptr %struct.quad_struct* %tree, i32 0, i32 5		; <%struct.quad_struct**> [#uses=1]
-	%8 = load %struct.quad_struct** %7, align 4		; <%struct.quad_struct*> [#uses=1]
-	%9 = sdiv i32 %size, 2		; <i32> [#uses=1]
-	%10 = call i32 @perimeter(%struct.quad_struct* %8, i32 %9) nounwind		; <i32> [#uses=1]
-	%11 = add i32 %10, %6		; <i32> [#uses=1]
-	%12 = getelementptr %struct.quad_struct* %tree, i32 0, i32 3		; <%struct.quad_struct**> [#uses=1]
-	%13 = load %struct.quad_struct** %12, align 4		; <%struct.quad_struct*> [#uses=1]
-	%14 = sdiv i32 %size, 2		; <i32> [#uses=1]
-	%15 = call i32 @perimeter(%struct.quad_struct* %13, i32 %14) nounwind		; <i32> [#uses=1]
-	%16 = add i32 %15, %11		; <i32> [#uses=1]
-	%17 = getelementptr %struct.quad_struct* %tree, i32 0, i32 2		; <%struct.quad_struct**> [#uses=1]
-	%18 = load %struct.quad_struct** %17, align 4		; <%struct.quad_struct*> [#uses=1]
-	%19 = sdiv i32 %size, 2		; <i32> [#uses=1]
-	%20 = call i32 @perimeter(%struct.quad_struct* %18, i32 %19) nounwind		; <i32> [#uses=1]
-	%21 = add i32 %20, %16		; <i32> [#uses=1]
-	ret i32 %21
-
-bb2:		; preds = %entry
-	%22 = getelementptr %struct.quad_struct* %tree, i32 0, i32 0		; <i32*> [#uses=1]
-	%23 = load i32* %22, align 4		; <i32> [#uses=1]
-	%24 = icmp eq i32 %23, 0		; <i1> [#uses=1]
-	br i1 %24, label %bb3, label %bb23
-
-bb3:		; preds = %bb2
-	%25 = call fastcc %struct.quad_struct* @gtequal_adj_neighbor(%struct.quad_struct* %tree, i32 0) nounwind		; <%struct.quad_struct*> [#uses=4]
-	%26 = icmp eq %struct.quad_struct* %25, null		; <i1> [#uses=1]
-	br i1 %26, label %bb8, label %bb4
-
-bb4:		; preds = %bb3
-	%27 = getelementptr %struct.quad_struct* %25, i32 0, i32 0		; <i32*> [#uses=1]
-	%28 = load i32* %27, align 4		; <i32> [#uses=1]
-	%29 = icmp eq i32 %28, 1		; <i1> [#uses=1]
-	br i1 %29, label %bb8, label %bb6
-
-bb6:		; preds = %bb4
-	%30 = getelementptr %struct.quad_struct* %25, i32 0, i32 0		; <i32*> [#uses=1]
-	%31 = load i32* %30, align 4		; <i32> [#uses=1]
-	%32 = icmp eq i32 %31, 2		; <i1> [#uses=1]
-	br i1 %32, label %bb7, label %bb8
-
-bb7:		; preds = %bb6
-	%33 = call fastcc i32 @sum_adjacent(%struct.quad_struct* %25, i32 3, i32 2, i32 %size) nounwind		; <i32> [#uses=1]
-	br label %bb8
-
-bb8:		; preds = %bb7, %bb6, %bb4, %bb3
-	%retval1.1 = phi i32 [ 0, %bb6 ], [ %33, %bb7 ], [ %size, %bb4 ], [ %size, %bb3 ]		; <i32> [#uses=3]
-	%34 = call fastcc %struct.quad_struct* @gtequal_adj_neighbor(%struct.quad_struct* %tree, i32 1) nounwind		; <%struct.quad_struct*> [#uses=4]
-	%35 = icmp eq %struct.quad_struct* %34, null		; <i1> [#uses=1]
-	br i1 %35, label %bb10, label %bb9
-
-bb9:		; preds = %bb8
-	%36 = getelementptr %struct.quad_struct* %34, i32 0, i32 0		; <i32*> [#uses=1]
-	%37 = load i32* %36, align 4		; <i32> [#uses=1]
-	%38 = icmp eq i32 %37, 1		; <i1> [#uses=1]
-	br i1 %38, label %bb10, label %bb11
-
-bb10:		; preds = %bb9, %bb8
-	%39 = add i32 %retval1.1, %size		; <i32> [#uses=1]
-	br label %bb13
-
-bb11:		; preds = %bb9
-	%40 = getelementptr %struct.quad_struct* %34, i32 0, i32 0		; <i32*> [#uses=1]
-	%41 = load i32* %40, align 4		; <i32> [#uses=1]
-	%42 = icmp eq i32 %41, 2		; <i1> [#uses=1]
-	br i1 %42, label %bb12, label %bb13
-
-bb12:		; preds = %bb11
-	%43 = call fastcc i32 @sum_adjacent(%struct.quad_struct* %34, i32 2, i32 0, i32 %size) nounwind		; <i32> [#uses=1]
-	%44 = add i32 %43, %retval1.1		; <i32> [#uses=1]
-	br label %bb13
-
-bb13:		; preds = %bb12, %bb11, %bb10
-	%retval1.2 = phi i32 [ %retval1.1, %bb11 ], [ %44, %bb12 ], [ %39, %bb10 ]		; <i32> [#uses=3]
-	%45 = call fastcc %struct.quad_struct* @gtequal_adj_neighbor(%struct.quad_struct* %tree, i32 2) nounwind		; <%struct.quad_struct*> [#uses=4]
-	%46 = icmp eq %struct.quad_struct* %45, null		; <i1> [#uses=1]
-	br i1 %46, label %bb15, label %bb14
-
-bb14:		; preds = %bb13
-	%47 = getelementptr %struct.quad_struct* %45, i32 0, i32 0		; <i32*> [#uses=1]
-	%48 = load i32* %47, align 4		; <i32> [#uses=1]
-	%49 = icmp eq i32 %48, 1		; <i1> [#uses=1]
-	br i1 %49, label %bb15, label %bb16
-
-bb15:		; preds = %bb14, %bb13
-	%50 = add i32 %retval1.2, %size		; <i32> [#uses=1]
-	br label %bb18
-
-bb16:		; preds = %bb14
-	%51 = getelementptr %struct.quad_struct* %45, i32 0, i32 0		; <i32*> [#uses=1]
-	%52 = load i32* %51, align 4		; <i32> [#uses=1]
-	%53 = icmp eq i32 %52, 2		; <i1> [#uses=1]
-	br i1 %53, label %bb17, label %bb18
-
-bb17:		; preds = %bb16
-	%54 = call fastcc i32 @sum_adjacent(%struct.quad_struct* %45, i32 0, i32 1, i32 %size) nounwind		; <i32> [#uses=1]
-	%55 = add i32 %54, %retval1.2		; <i32> [#uses=1]
-	br label %bb18
-
-bb18:		; preds = %bb17, %bb16, %bb15
-	%retval1.3 = phi i32 [ %retval1.2, %bb16 ], [ %55, %bb17 ], [ %50, %bb15 ]		; <i32> [#uses=3]
-	%56 = call fastcc %struct.quad_struct* @gtequal_adj_neighbor(%struct.quad_struct* %tree, i32 3) nounwind		; <%struct.quad_struct*> [#uses=4]
-	%57 = icmp eq %struct.quad_struct* %56, null		; <i1> [#uses=1]
-	br i1 %57, label %bb20, label %bb19
-
-bb19:		; preds = %bb18
-	%58 = getelementptr %struct.quad_struct* %56, i32 0, i32 0		; <i32*> [#uses=1]
-	%59 = load i32* %58, align 4		; <i32> [#uses=1]
-	%60 = icmp eq i32 %59, 1		; <i1> [#uses=1]
-	br i1 %60, label %bb20, label %bb21
-
-bb20:		; preds = %bb19, %bb18
-	%61 = add i32 %retval1.3, %size		; <i32> [#uses=1]
-	ret i32 %61
-
-bb21:		; preds = %bb19
-	%62 = getelementptr %struct.quad_struct* %56, i32 0, i32 0		; <i32*> [#uses=1]
-	%63 = load i32* %62, align 4		; <i32> [#uses=1]
-	%64 = icmp eq i32 %63, 2		; <i1> [#uses=1]
-	br i1 %64, label %bb22, label %bb23
-
-bb22:		; preds = %bb21
-	%65 = call fastcc i32 @sum_adjacent(%struct.quad_struct* %56, i32 1, i32 3, i32 %size) nounwind		; <i32> [#uses=1]
-	%66 = add i32 %65, %retval1.3		; <i32> [#uses=1]
-	ret i32 %66
-
-bb23:		; preds = %bb21, %bb2
-	%retval1.0 = phi i32 [ 0, %bb2 ], [ %retval1.3, %bb21 ]		; <i32> [#uses=1]
-	ret i32 %retval1.0
-}
-
-declare i32 @main(i32, i8** nocapture) noreturn nounwind
-
-declare i32 @printf(i8*, ...) nounwind
-
-declare void @exit(i32) noreturn nounwind
-
-declare fastcc i32 @CheckOutside(i32, i32) nounwind readnone
-
-declare fastcc i32 @CheckIntersect(i32, i32, i32) nounwind readnone
-
-declare %struct.quad_struct* @MakeTree(i32, i32, i32, i32, i32, %struct.quad_struct*, i32, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/2009-05-07-CallUsingSelfCrash.ll b/libclamav/c++/llvm/test/Transforms/Inline/2009-05-07-CallUsingSelfCrash.ll
deleted file mode 100644
index 067fd72..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/2009-05-07-CallUsingSelfCrash.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output
-; PR4123
-	%struct.S0 = type <{ i32 }>
-	%struct.S1 = type <{ i8, i8, i8, i8, %struct.S0 }>
-	%struct.S2 = type <{ %struct.S1, i32 }>
-
-define void @func_113(%struct.S1* noalias nocapture sret %agg.result, i8 signext %p_114) noreturn nounwind {
-entry:
-	unreachable
-
-for.inc:		; preds = %for.inc
-	%call48 = call fastcc signext i8 @safe_sub_func_uint8_t_u_u(i8 signext %call48)		; <i8> [#uses=1]
-	br label %for.inc
-}
-
-define fastcc signext i8 @safe_sub_func_uint8_t_u_u(i8 signext %_ui1) nounwind readnone {
-entry:
-	ret i8 %_ui1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/alloca-in-scc.ll b/libclamav/c++/llvm/test/Transforms/Inline/alloca-in-scc.ll
deleted file mode 100644
index 2ee8742..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/alloca-in-scc.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin10.0"
-
-define i32 @main(i32 %argc, i8** %argv) nounwind ssp {
-entry:
-  call fastcc void @c() nounwind
-  unreachable
-}
-
-define internal fastcc void @a() nounwind ssp {
-entry:
-  %al = alloca [3 x i32], align 4
-  %0 = getelementptr inbounds [3 x i32]* %al, i32 0, i32 2 
-  
-  call fastcc void @c() nounwind
-  unreachable
-}
-
-define internal fastcc void @b() nounwind ssp {
-entry:
-  tail call fastcc void @a() nounwind ssp
-  unreachable
-}
-
-define internal fastcc void @c() nounwind ssp {
-entry:
-  call fastcc void @b() nounwind
-  unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/alloca_test.ll b/libclamav/c++/llvm/test/Transforms/Inline/alloca_test.ll
deleted file mode 100644
index 1fbd095..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/alloca_test.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; This test ensures that alloca instructions in the entry block for an inlined
-; function are moved to the top of the function they are inlined into.
-;
-; RUN: llvm-as < %s | opt -inline | llvm-dis | %prcontext alloca 1 | grep Entry:
-
-define i32 @func(i32 %i) {
-        %X = alloca i32         ; <i32*> [#uses=1]
-        store i32 %i, i32* %X
-        ret i32 %i
-}
-
-declare void @bar()
-
-define i32 @main(i32 %argc) {
-Entry:
-        call void @bar( )
-        %X = call i32 @func( i32 7 )            ; <i32> [#uses=1]
-        %Y = add i32 %X, %argc          ; <i32> [#uses=1]
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/always_inline_dyn_alloca.ll b/libclamav/c++/llvm/test/Transforms/Inline/always_inline_dyn_alloca.ll
deleted file mode 100644
index 933925e..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/always_inline_dyn_alloca.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep callee
-; rdar://6655932
-
-; If callee is marked alwaysinline, inline it! Even if callee has dynamic
-; alloca and caller does not,
-
-define internal void @callee(i32 %N) alwaysinline {
-        %P = alloca i32, i32 %N
-        ret void
-}
-
-define void @foo(i32 %N) {
-        call void @callee( i32 %N )
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/array_merge.ll b/libclamav/c++/llvm/test/Transforms/Inline/array_merge.ll
deleted file mode 100644
index f4f53ca..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/array_merge.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | FileCheck %s
-; rdar://7173846
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin10.0"
-
-define internal void @foo() nounwind ssp {
-entry:
-  %A = alloca [100 x i32]
-  %B = alloca [100 x i32]
-  call void @bar([100 x i32]* %A, [100 x i32]* %B) nounwind
-  ret void
-}
-
-declare void @bar([100 x i32]*, [100 x i32]*)
-
-define void @test() nounwind ssp {
-entry:
-; CHECK: @test()
-; CHECK-NEXT: entry:
-; CHECK-NEXT: %A.i = alloca
-; CHECK-NEXT: %B.i = alloca
-; CHECK-NEXT: call void
-  call void @foo() nounwind
-  call void @foo() nounwind
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/basictest.ll b/libclamav/c++/llvm/test/Transforms/Inline/basictest.ll
deleted file mode 100644
index d954238..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/basictest.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -disable-output -print-function 2> /dev/null
-
-define i32 @func(i32 %i) {
-        ret i32 %i
-}
-
-define i32 @main(i32 %argc) {
-        %X = call i32 @func( i32 7 )            ; <i32> [#uses=1]
-        %Y = add i32 %X, %argc          ; <i32> [#uses=1]
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/byval.ll b/libclamav/c++/llvm/test/Transforms/Inline/byval.ll
deleted file mode 100644
index ea8c357..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/byval.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | grep {llvm.memcpy}
-
-; Inlining a byval struct should cause an explicit copy into an alloca.
-
-	%struct.ss = type { i32, i64 }
- at .str = internal constant [10 x i8] c"%d, %lld\0A\00"		; <[10 x i8]*> [#uses=1]
-
-define internal void @f(%struct.ss* byval  %b) nounwind  {
-entry:
-	%tmp = getelementptr %struct.ss* %b, i32 0, i32 0		; <i32*> [#uses=2]
-	%tmp1 = load i32* %tmp, align 4		; <i32> [#uses=1]
-	%tmp2 = add i32 %tmp1, 1		; <i32> [#uses=1]
-	store i32 %tmp2, i32* %tmp, align 4
-	ret void
-}
-
-declare i32 @printf(i8*, ...) nounwind 
-
-define i32 @main() nounwind  {
-entry:
-	%S = alloca %struct.ss		; <%struct.ss*> [#uses=4]
-	%tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp1, align 8
-	%tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1		; <i64*> [#uses=1]
-	store i64 2, i64* %tmp4, align 4
-	call void @f( %struct.ss* byval  %S ) nounwind 
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/byval2.ll b/libclamav/c++/llvm/test/Transforms/Inline/byval2.ll
deleted file mode 100644
index e949d01..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/byval2.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep {llvm.memcpy}
-
-; Inlining a byval struct should NOT cause an explicit copy 
-; into an alloca if the function is readonly
-
-	%struct.ss = type { i32, i64 }
- at .str = internal constant [10 x i8] c"%d, %lld\0A\00"		; <[10 x i8]*> [#uses=1]
-
-define internal i32 @f(%struct.ss* byval  %b) nounwind readonly {
-entry:
-	%tmp = getelementptr %struct.ss* %b, i32 0, i32 0		; <i32*> [#uses=2]
-	%tmp1 = load i32* %tmp, align 4		; <i32> [#uses=1]
-	%tmp2 = add i32 %tmp1, 1		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
-declare i32 @printf(i8*, ...) nounwind 
-
-define i32 @main() nounwind  {
-entry:
-	%S = alloca %struct.ss		; <%struct.ss*> [#uses=4]
-	%tmp1 = getelementptr %struct.ss* %S, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp1, align 8
-	%tmp4 = getelementptr %struct.ss* %S, i32 0, i32 1		; <i64*> [#uses=1]
-	store i64 2, i64* %tmp4, align 4
-	%X = call i32 @f( %struct.ss* byval  %S ) nounwind 
-	ret i32 %X
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/casts.ll b/libclamav/c++/llvm/test/Transforms/Inline/casts.ll
deleted file mode 100644
index 029d309..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/casts.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | grep {ret i32 1}
-; ModuleID = 'short.opt.bc'
-
-define i32 @testBool(i1 %X) {
-        %tmp = zext i1 %X to i32                ; <i32> [#uses=1]
-        ret i32 %tmp
-}
-
-define i32 @testByte(i8 %X) {
-        %tmp = icmp ne i8 %X, 0         ; <i1> [#uses=1]
-        %tmp.i = zext i1 %tmp to i32            ; <i32> [#uses=1]
-        ret i32 %tmp.i
-}
-
-define i32 @main() {
-        %rslt = call i32 @testByte( i8 123 )            ; <i32> [#uses=1]
-        ret i32 %rslt
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/cfg_preserve_test.ll b/libclamav/c++/llvm/test/Transforms/Inline/cfg_preserve_test.ll
deleted file mode 100644
index 6b6ff18..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/cfg_preserve_test.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This test ensures that inlining an "empty" function does not destroy the CFG
-;
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep br
-
-define i32 @func(i32 %i) {
-        ret i32 %i
-}
-
-declare void @bar()
-
-define i32 @main(i32 %argc) {
-Entry:
-        %X = call i32 @func( i32 7 )            ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/crash.ll b/libclamav/c++/llvm/test/Transforms/Inline/crash.ll
deleted file mode 100644
index ebf8147..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/crash.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -argpromotion -instcombine -disable-output
-
-; This test was failing because the inliner would inline @list_DeleteElement
-; into @list_DeleteDuplicates and then into @inf_GetBackwardPartnerLits,
-; turning the indirect call into a direct one.  This allowed instcombine to see
-; the bitcast and eliminate it, deleting the original call and introducing
-; another one.  This crashed the inliner because the new call was not in the
-; callgraph.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin10.0"
-
-
-define void @list_DeleteElement(i32 (i8*, i8*)* nocapture %Test) nounwind ssp {
-entry:
-  %0 = call i32 %Test(i8* null, i8* undef) nounwind
-  ret void
-}
-
-
-define void @list_DeleteDuplicates(i32 (i8*, i8*)* nocapture %Test) nounwind ssp {
-foo:
-  call void @list_DeleteElement(i32 (i8*, i8*)* %Test) nounwind ssp 
-  call fastcc void @list_Rplacd1284() nounwind ssp
-  unreachable
-
-}
-
-define internal i32 @inf_LiteralsHaveSameSubtermAndAreFromSameClause(i32* nocapture %L1, i32* nocapture %L2) nounwind readonly ssp {
-entry:
-  unreachable
-}
-
-
-define internal fastcc void @inf_GetBackwardPartnerLits(i32* nocapture %Flags) nounwind ssp {
-test:
-  call void @list_DeleteDuplicates(i32 (i8*, i8*)* bitcast (i32 (i32*, i32*)* @inf_LiteralsHaveSameSubtermAndAreFromSameClause to i32 (i8*, i8*)*)) nounwind 
-  ret void
-}
-
-
-define void @inf_BackwardEmptySortPlusPlus() nounwind ssp {
-entry:
-  call fastcc void @inf_GetBackwardPartnerLits(i32* null) nounwind ssp
-  unreachable
-}
-
-define void @inf_BackwardWeakening() nounwind ssp {
-entry:
-  call fastcc void @inf_GetBackwardPartnerLits(i32* null) nounwind ssp
-  unreachable
-}
-
-
-
-
-declare fastcc void @list_Rplacd1284() nounwind ssp
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/dg.exp b/libclamav/c++/llvm/test/Transforms/Inline/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/dynamic_alloca_test.ll b/libclamav/c++/llvm/test/Transforms/Inline/dynamic_alloca_test.ll
deleted file mode 100644
index b8ff7de..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/dynamic_alloca_test.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; Test that functions with dynamic allocas get inlined in a case where
-; naively inlining it would result in a miscompilation.
-; Functions with dynamic allocas can only be inlined into functions that
-; already have dynamic allocas.
-
-; RUN: llvm-as < %s | opt -inline | llvm-dis | \
-; RUN:   grep llvm.stacksave
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep callee
-
-
-declare void @ext(i32*)
-
-define internal void @callee(i32 %N) {
-        %P = alloca i32, i32 %N         ; <i32*> [#uses=1]
-        call void @ext( i32* %P )
-        ret void
-}
-
-define void @foo(i32 %N) {
-; <label>:0
-        %P = alloca i32, i32 %N         ; <i32*> [#uses=1]
-        call void @ext( i32* %P )
-        br label %Loop
-
-Loop:           ; preds = %Loop, %0
-        %count = phi i32 [ 0, %0 ], [ %next, %Loop ]            ; <i32> [#uses=2]
-        %next = add i32 %count, 1               ; <i32> [#uses=1]
-        call void @callee( i32 %N )
-        %cond = icmp eq i32 %count, 100000              ; <i1> [#uses=1]
-        br i1 %cond, label %out, label %Loop
-
-out:            ; preds = %Loop
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/externally_available.ll b/libclamav/c++/llvm/test/Transforms/Inline/externally_available.ll
deleted file mode 100644
index 68f7d65..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/externally_available.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -constprop | llvm-dis > %t
-; RUN: not grep test_function %t
-; RUN: grep {ret i32 5} %t
-
-
-; test_function should not be emitted to the .s file.
-define available_externally i32 @test_function() {
-  ret i32 4
-}
-
-
-define i32 @result() {
-  %A = call i32 @test_function()
-  %B = add i32 %A, 1
-  ret i32 %B
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/indirect_resolve.ll b/libclamav/c++/llvm/test/Transforms/Inline/indirect_resolve.ll
deleted file mode 100644
index 4be55d4..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/indirect_resolve.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis
-; PR4834
-
-define i32 @main() {
-  %funcall1_ = call fastcc i32 ()* ()* @f1()
-  %executecommandptr1_ = call i32 %funcall1_()
-  ret i32 %executecommandptr1_
-}
-
-define internal fastcc i32 ()* @f1() nounwind readnone {
-  ret i32 ()* @f2
-}
-
-define internal i32 @f2() nounwind readnone {
-  ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/inline-invoke-tail.ll b/libclamav/c++/llvm/test/Transforms/Inline/inline-invoke-tail.ll
deleted file mode 100644
index 53f755e..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/inline-invoke-tail.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep {tail call void @llvm.memcpy.i32}
-; PR3550
-
-define internal void @foo(i32* %p, i32* %q) {
-	%pp = bitcast i32* %p to i8*
-	%qq = bitcast i32* %q to i8*
-	tail call void @llvm.memcpy.i32(i8* %pp, i8* %qq, i32 4, i32 1)
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind
-
-define i32 @main() {
-	%a = alloca i32		; <i32*> [#uses=3]
-	%b = alloca i32		; <i32*> [#uses=2]
-	store i32 1, i32* %a, align 4
-	store i32 0, i32* %b, align 4
-	invoke void @foo(i32* %a, i32* %b)
-			to label %invcont unwind label %lpad
-
-invcont:
-	%retval = load i32* %a, align 4
-	ret i32 %retval
-
-lpad:
-	%eh_ptr = call i8* @llvm.eh.exception()
-	%eh_select = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)
-	unreachable
-}
-
-declare i8* @llvm.eh.exception() nounwind
-
-declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind
-
-declare i32 @__gxx_personality_v0(...)
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/inline-tail.ll b/libclamav/c++/llvm/test/Transforms/Inline/inline-tail.ll
deleted file mode 100644
index 5921655..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/inline-tail.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep tail
-
-declare void @bar(i32*)
-
-define internal void @foo(i32* %P) {
-        tail call void @bar( i32* %P )
-        ret void
-}
-
-define void @caller() {
-        %A = alloca i32         ; <i32*> [#uses=1]
-        call void @foo( i32* %A )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/inline_cleanup.ll b/libclamav/c++/llvm/test/Transforms/Inline/inline_cleanup.ll
deleted file mode 100644
index 89b3a82..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/inline_cleanup.ll
+++ /dev/null
@@ -1,63 +0,0 @@
-; Test that the inliner doesn't leave around dead allocas, and that it folds
-; uncond branches away after it is done specializing.
-
-; RUN: llvm-as < %s | opt -inline | llvm-dis | \
-; RUN:    not grep {alloca.*uses=0}
-; RUN: llvm-as < %s | opt -inline | llvm-dis | \
-; RUN:    not grep {br label}
- at A = weak global i32 0		; <i32*> [#uses=1]
- at B = weak global i32 0		; <i32*> [#uses=1]
- at C = weak global i32 0		; <i32*> [#uses=1]
-
-define internal fastcc void @foo(i32 %X) {
-entry:
-	%ALL = alloca i32, align 4		; <i32*> [#uses=1]
-	%tmp1 = and i32 %X, 1		; <i32> [#uses=1]
-	%tmp1.upgrd.1 = icmp eq i32 %tmp1, 0		; <i1> [#uses=1]
-	br i1 %tmp1.upgrd.1, label %cond_next, label %cond_true
-
-cond_true:		; preds = %entry
-	store i32 1, i32* @A
-	br label %cond_next
-
-cond_next:		; preds = %cond_true, %entry
-	%tmp4 = and i32 %X, 2		; <i32> [#uses=1]
-	%tmp4.upgrd.2 = icmp eq i32 %tmp4, 0		; <i1> [#uses=1]
-	br i1 %tmp4.upgrd.2, label %cond_next7, label %cond_true5
-
-cond_true5:		; preds = %cond_next
-	store i32 1, i32* @B
-	br label %cond_next7
-
-cond_next7:		; preds = %cond_true5, %cond_next
-	%tmp10 = and i32 %X, 4		; <i32> [#uses=1]
-	%tmp10.upgrd.3 = icmp eq i32 %tmp10, 0		; <i1> [#uses=1]
-	br i1 %tmp10.upgrd.3, label %cond_next13, label %cond_true11
-
-cond_true11:		; preds = %cond_next7
-	store i32 1, i32* @C
-	br label %cond_next13
-
-cond_next13:		; preds = %cond_true11, %cond_next7
-	%tmp16 = and i32 %X, 8		; <i32> [#uses=1]
-	%tmp16.upgrd.4 = icmp eq i32 %tmp16, 0		; <i1> [#uses=1]
-	br i1 %tmp16.upgrd.4, label %UnifiedReturnBlock, label %cond_true17
-
-cond_true17:		; preds = %cond_next13
-	call void @ext( i32* %ALL )
-	ret void
-
-UnifiedReturnBlock:		; preds = %cond_next13
-	ret void
-}
-
-declare void @ext(i32*)
-
-define void @test() {
-entry:
-	tail call fastcc void @foo( i32 1 )
-	tail call fastcc void @foo( i32 2 )
-	tail call fastcc void @foo( i32 3 )
-	tail call fastcc void @foo( i32 8 )
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/inline_constprop.ll b/libclamav/c++/llvm/test/Transforms/Inline/inline_constprop.ll
deleted file mode 100644
index 4744c86..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/inline_constprop.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep callee
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep div
-
-
-define internal i32 @callee(i32 %A, i32 %B) {
-        %C = sdiv i32 %A, %B            ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @test() {
-        %X = call i32 @callee( i32 10, i32 3 )          ; <i32> [#uses=1]
-        ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/inline_dce.ll b/libclamav/c++/llvm/test/Transforms/Inline/inline_dce.ll
deleted file mode 100644
index dd971be..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/inline_dce.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; This checks to ensure that the inline pass deletes functions if they get 
-; inlined into all of their callers.
-
-; RUN: llvm-as < %s | opt -inline | llvm-dis | \
-; RUN:   not grep @reallysmall
-
-define internal i32 @reallysmall(i32 %A) {
-        ret i32 %A
-}
-
-define void @caller1() {
-        call i32 @reallysmall( i32 5 )          ; <i32>:1 [#uses=0]
-        ret void
-}
-
-define void @caller2(i32 %A) {
-        call i32 @reallysmall( i32 %A )         ; <i32>:1 [#uses=0]
-        ret void
-}
-
-define i32 @caller3(i32 %A) {
-        %B = call i32 @reallysmall( i32 %A )            ; <i32> [#uses=1]
-        ret i32 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/inline_prune.ll b/libclamav/c++/llvm/test/Transforms/Inline/inline_prune.ll
deleted file mode 100644
index fcd8321..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/inline_prune.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llvm-as < %s | opt -inline | llvm-dis | \
-; RUN:    not grep {callee\[12\](}
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep mul
-
-define internal i32 @callee1(i32 %A, i32 %B) {
-        %cond = icmp eq i32 %A, 123             ; <i1> [#uses=1]
-        br i1 %cond, label %T, label %F
-
-T:              ; preds = %0
-        %C = mul i32 %B, %B             ; <i32> [#uses=1]
-        ret i32 %C
-
-F:              ; preds = %0
-        ret i32 0
-}
-
-define internal i32 @callee2(i32 %A, i32 %B) {
-        switch i32 %A, label %T [
-                 i32 10, label %F
-                 i32 1234, label %G
-        ]
-                ; No predecessors!
-        %cond = icmp eq i32 %A, 123             ; <i1> [#uses=1]
-        br i1 %cond, label %T, label %F
-
-T:              ; preds = %1, %0
-        %C = mul i32 %B, %B             ; <i32> [#uses=1]
-        ret i32 %C
-
-F:              ; preds = %1, %0
-        ret i32 0
-
-G:              ; preds = %0
-        %D = mul i32 %B, %B             ; <i32> [#uses=1]
-        %E = mul i32 %D, %B             ; <i32> [#uses=1]
-        ret i32 %E
-}
-
-define i32 @test(i32 %A) {
-        %X = call i32 @callee1( i32 10, i32 %A )                ; <i32> [#uses=1]
-        %Y = call i32 @callee2( i32 10, i32 %A )                ; <i32> [#uses=1]
-        %Z = add i32 %X, %Y             ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-1.ll b/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-1.ll
deleted file mode 100644
index 1fd3317..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-1.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; Test that we can inline a simple function, turning the calls in it into invoke
-; instructions
-
-; RUN: llvm-as < %s | opt -inline | llvm-dis | \
-; RUN:   not grep {call\[^e\]}
-
-declare void @might_throw()
-
-define internal void @callee() {
-        call void @might_throw( )
-        ret void
-}
-
-; caller returns true if might_throw throws an exception...
-define i32 @caller() {
-        invoke void @callee( )
-                        to label %cont unwind label %exc
-
-cont:           ; preds = %0
-        ret i32 0
-
-exc:            ; preds = %0
-        ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-2.ll b/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-2.ll
deleted file mode 100644
index 68b8bd8..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-2.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; Test that if an invoked function is inlined, and if that function cannot
-; throw, that the dead handler is now unreachable.
-
-; RUN: llvm-as < %s | opt -inline -simplifycfg | llvm-dis | \
-; RUN:   not grep UnreachableExceptionHandler
-
-declare void @might_throw()
-
-define internal i32 @callee() {
-        invoke void @might_throw( )
-                        to label %cont unwind label %exc
-
-cont:           ; preds = %0
-        ret i32 0
-
-exc:            ; preds = %0
-        ret i32 1
-}
-
-; caller returns true if might_throw throws an exception... callee cannot throw.
-define i32 @caller() {
-        %X = invoke i32 @callee( )
-                        to label %cont unwind label %UnreachableExceptionHandler                ; <i32> [#uses=1]
-
-cont:           ; preds = %0
-        ret i32 %X
-
-UnreachableExceptionHandler:            ; preds = %0
-        ret i32 -1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-3.ll b/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-3.ll
deleted file mode 100644
index a5deec6..0000000
--- a/libclamav/c++/llvm/test/Transforms/Inline/invoke_test-3.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; Test that any rethrown exceptions in an inlined function are automatically
-; turned into branches to the invoke destination.
-
-; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep unwind$
-
-declare void @might_throw()
-
-define internal i32 @callee() {
-        invoke void @might_throw( )
-                        to label %cont unwind label %exc
-
-cont:           ; preds = %0
-        ret i32 0
-
-exc:            ; preds = %0a
-       ; This just rethrows the exception!
-        unwind
-}
-
-; caller returns true if might_throw throws an exception... which gets
-; propagated by callee.
-define i32 @caller() {
-        %X = invoke i32 @callee( )
-                        to label %cont unwind label %Handler            ; <i32> [#uses=1]
-
-cont:           ; preds = %0
-        ret i32 %X
-
-Handler:                ; preds = %0
-; This consumes an exception thrown by might_throw
-        ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll
deleted file mode 100644
index 94ce68e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; This testcase causes instcombine to hang.
-;
-; RUN: llvm-as < %s | opt -instcombine
-
-define void @test(i32 %X) {
-        %reg117 = add i32 %X, 0         ; <i32> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-05-14-SubFailure.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2002-05-14-SubFailure.ll
deleted file mode 100644
index 34c2df6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-05-14-SubFailure.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; Instcombine was missing a test that caused it to make illegal transformations
-; sometimes.  In this case, it transforms the sub into an add:
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep sub
-;
-define i32 @test(i32 %i, i32 %j) {
-        %A = mul i32 %i, %j
-        %B = sub i32 2, %A
-        ret i32 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-08-02-CastTest.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2002-08-02-CastTest.ll
deleted file mode 100644
index 54c836c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-08-02-CastTest.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; This testcase is incorrectly getting completely eliminated.  There should be
-; SOME instruction named %c here, even if it's a bitwise and.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep %c
-;
-define i64 @test3(i64 %A) {
-        %c1 = trunc i64 %A to i8                ; <i8> [#uses=1]
-        %c2 = zext i8 %c1 to i64                ; <i64> [#uses=1]
-        ret i64 %c2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll
deleted file mode 100644
index e7bd6a8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep add
-
-define i32 @test(i32 %A) {
-        %A.neg = sub i32 0, %A          ; <i32> [#uses=1]
-        %.neg = sub i32 0, 1            ; <i32> [#uses=1]
-        %X = add i32 %.neg, 1           ; <i32> [#uses=1]
-        %Y.neg.ra = add i32 %A, %X              ; <i32> [#uses=1]
-        %r = add i32 %A.neg, %Y.neg.ra          ; <i32> [#uses=1]
-        ret i32 %r
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll
deleted file mode 100644
index e7e7848..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep 4294967295
-
-define i64 @test(i64 %Val) {
-        %tmp.3 = trunc i64 %Val to i32          ; <i32> [#uses=1]
-        %tmp.8 = zext i32 %tmp.3 to i64         ; <i64> [#uses=1]
-        ret i64 %tmp.8
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll
deleted file mode 100644
index 214fa4d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
- at X = global i32 5               ; <i32*> [#uses=1]
-
-define i64 @test() {
-        %C = add i64 1, 2               ; <i64> [#uses=1]
-        %V = add i64 ptrtoint (i32* @X to i64), %C              ; <i64> [#uses=1]
-        ret i64 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll
deleted file mode 100644
index 724f30f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This testcase causes an infinite loop in the instruction combiner,
-; because it things that the constant value is a not expression... and 
-; constantly inverts the branch back and forth.
-;
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define i8 @test19(i1 %c) {
-        br i1 true, label %True, label %False
-
-True:           ; preds = %0
-        ret i8 1
-
-False:          ; preds = %0
-        ret i8 3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll
deleted file mode 100644
index 09732d3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-;
-; Test: ExternalConstant
-;
-; Description:
-;	This regression test helps check whether the instruction combining
-;	optimization pass correctly handles global variables which are marked
-;	as external and constant.
-;
-;	If a problem occurs, we should die on an assert().  Otherwise, we
-;	should pass through the optimizer without failure.
-;
-; Extra code:
-; RUN: llvm-as < %s | opt -instcombine
-; END.
-
-target datalayout = "e-p:32:32"
- at silly = external constant i32          ; <i32*> [#uses=1]
-
-declare void @bzero(i8*, i32)
-
-declare void @bcopy(i8*, i8*, i32)
-
-declare i32 @bcmp(i8*, i8*, i32)
-
-declare i32 @fputs(i8*, i8*)
-
-declare i32 @fputs_unlocked(i8*, i8*)
-
-define i32 @function(i32 %a.1) {
-entry:
-        %a.0 = alloca i32               ; <i32*> [#uses=2]
-        %result = alloca i32            ; <i32*> [#uses=2]
-        store i32 %a.1, i32* %a.0
-        %tmp.0 = load i32* %a.0         ; <i32> [#uses=1]
-        %tmp.1 = load i32* @silly               ; <i32> [#uses=1]
-        %tmp.2 = add i32 %tmp.0, %tmp.1         ; <i32> [#uses=1]
-        store i32 %tmp.2, i32* %result
-        br label %return
-
-return:         ; preds = %entry
-        %tmp.3 = load i32* %result              ; <i32> [#uses=1]
-        ret i32 %tmp.3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll
deleted file mode 100644
index 209ab1b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; This testcase can be simplified by "realizing" that alloca can never return 
-; null.
-; RUN: llvm-as < %s | opt -instcombine -simplifycfg | \
-; RUN:    llvm-dis | not grep br
-
-declare i32 @bitmap_clear(...)
-
-define i32 @oof() {
-entry:
-        %live_head = alloca i32         ; <i32*> [#uses=2]
-        %tmp.1 = icmp ne i32* %live_head, null          ; <i1> [#uses=1]
-        br i1 %tmp.1, label %then, label %UnifiedExitNode
-
-then:           ; preds = %entry
-        %tmp.4 = call i32 (...)* @bitmap_clear( i32* %live_head )               ; <i32> [#uses=0]
-        br label %UnifiedExitNode
-
-UnifiedExitNode:                ; preds = %then, %entry
-        ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll
deleted file mode 100644
index 9779f21..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep load
-
-define void @test(i32* %P) {
-        ; Dead but not deletable!
-        %X = volatile load i32* %P              ; <i32> [#uses=0]
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll
deleted file mode 100644
index 7d219cb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-declare i32* @bar()
-
-define float* @foo() {
-        %tmp.11 = invoke float* bitcast (i32* ()* @bar to float* ()*)( )
-                        to label %invoke_cont unwind label %X           ; <float*> [#uses=1]
-
-invoke_cont:            ; preds = %0
-        ret float* %tmp.11
-
-X:              ; preds = %0
-        ret float* null
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll
deleted file mode 100644
index 71585d4..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; The cast in this testcase is not eliminable on a 32-bit target!
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep inttoptr
-
-target datalayout = "e-p:32:32"
-
-declare void @foo(...)
-
-define void @test(i64 %X) {
-        %Y = inttoptr i64 %X to i32*            ; <i32*> [#uses=1]
-        call void (...)* @foo( i32* %Y )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll
deleted file mode 100644
index b6930b5..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2003-11-13-ConstExprCastCall.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep call | notcast
-
-declare void @free(i8*)
-
-define void @test(i32* %X) {
-        call void (...)* bitcast (void (i8*)* @free to void (...)*)( i32* %X )          ; <i32>:1 [#uses=0]
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll
deleted file mode 100644
index c6a6b6a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; Test for a problem afflicting several C++ programs in the testsuite.  The 
-; instcombine pass is trying to get rid of the cast in the invoke instruction, 
-; inserting a cast of the return value after the PHI instruction, but which is
-; used by the PHI instruction.  This is bad: because of the semantics of the
-; invoke instruction, we really cannot perform this transformation at all at
-; least without splitting the critical edge.
-;
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-declare i8* @test()
-
-define i32 @foo() {
-entry:
-        br i1 true, label %cont, label %call
-
-call:           ; preds = %entry
-        %P = invoke i32* bitcast (i8* ()* @test to i32* ()*)( )
-                        to label %cont unwind label %N          ; <i32*> [#uses=1]
-
-cont:           ; preds = %call, %entry
-        %P2 = phi i32* [ %P, %call ], [ null, %entry ]          ; <i32*> [#uses=1]
-        %V = load i32* %P2              ; <i32> [#uses=1]
-        ret i32 %V
-
-N:              ; preds = %call
-        ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll
deleted file mode 100644
index 3a4b661..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep 34
-
-define i32 @test(i32 %X) {
-        ; Do not fold into shr X, 34, as this uses undefined behavior!
-        %Y = ashr i32 %X, 17            ; <i32> [#uses=1]
-        %Z = ashr i32 %Y, 17            ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define i32 @test2(i32 %X) {
-        ; Do not fold into shl X, 34, as this uses undefined behavior!
-        %Y = shl i32 %X, 17             ; <i32> [#uses=1]
-        %Z = shl i32 %Y, 17             ; <i32> [#uses=1]
-        ret i32 %Z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll
deleted file mode 100644
index 2b5481b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; This testcase caused the combiner to go into an infinite loop, moving the 
-; cast back and forth, changing the seteq to operate on int vs uint and back.
-
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define i1 @test(i32 %A, i32 %B) {
-        %C = sub i32 0, %A              ; <i32> [#uses=1]
-        %Cc = bitcast i32 %C to i32             ; <i32> [#uses=1]
-        %D = sub i32 0, %B              ; <i32> [#uses=1]
-        %E = icmp eq i32 %Cc, %D                ; <i1> [#uses=1]
-        ret i1 %E
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll
deleted file mode 100644
index 0b93eb2..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define i32 @test() {
-        ret i32 0
-
-Loop:           ; preds = %Loop
-        %X = add i32 %X, 1              ; <i32> [#uses=1]
-        br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll
deleted file mode 100644
index 66a5a4d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-%Ty = type opaque
-
-define i32 @test(%Ty* %X) {
-        %Y = bitcast %Ty* %X to i32*            ; <i32*> [#uses=1]
-        %Z = load i32* %Y               ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll
deleted file mode 100644
index 82eecbb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
- at p = weak global i32 0          ; <i32*> [#uses=1]
-
-define i32 @test(i32 %x) {
-        %y = mul i32 %x, ptrtoint (i32* @p to i32)              ; <i32> [#uses=1]
-        ret i32 %y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-08-09-RemInfLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-08-09-RemInfLoop.ll
deleted file mode 100644
index 9fc48de..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-08-09-RemInfLoop.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-
-; This testcase should not send the instcombiner into an infinite loop!
-
-define i32 @test(i32 %X) {
-        %Y = srem i32 %X, 0             ; <i32> [#uses=1]
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll
deleted file mode 100644
index 5d2ed0b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {ret i1 false}
-
-define i1 @test(i1 %V) {
-        %Y = icmp ult i1 %V, false              ; <i1> [#uses=1]
-        ret i1 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.ll
deleted file mode 100644
index e56c390..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | \
-; RUN:   not grep {i32 1}
-
-; When propagating the load through the select, make sure that the load is
-; inserted where the original load was, not where the select is.  Not doing
-; so could produce incorrect results!
-
-define i32 @test(i1 %C) {
-        %X = alloca i32         ; <i32*> [#uses=3]
-        %X2 = alloca i32                ; <i32*> [#uses=2]
-        store i32 1, i32* %X
-        store i32 2, i32* %X2
-        %Y = select i1 %C, i32* %X, i32* %X2            ; <i32*> [#uses=1]
-        store i32 3, i32* %X
-        %Z = load i32* %Y               ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.ll
deleted file mode 100644
index b89bd22..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -mem2reg -simplifycfg | \
-; RUN:   llvm-dis | grep -v store | not grep {i32 1}
-
-; Test to make sure that instcombine does not accidentally propagate the load
-; into the PHI, which would break the program.
-
-define i32 @test(i1 %C) {
-entry:
-        %X = alloca i32         ; <i32*> [#uses=3]
-        %X2 = alloca i32                ; <i32*> [#uses=2]
-        store i32 1, i32* %X
-        store i32 2, i32* %X2
-        br i1 %C, label %cond_true.i, label %cond_continue.i
-
-cond_true.i:            ; preds = %entry
-        br label %cond_continue.i
-
-cond_continue.i:                ; preds = %cond_true.i, %entry
-        %mem_tmp.i.0 = phi i32* [ %X, %cond_true.i ], [ %X2, %entry ]           ; <i32*> [#uses=1]
-        store i32 3, i32* %X
-        %tmp.3 = load i32* %mem_tmp.i.0         ; <i32> [#uses=1]
-        ret i32 %tmp.3
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.ll
deleted file mode 100644
index ee4f62c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep -- -65536
-
-define i1 @test(i32 %tmp.124) {
-        %tmp.125 = shl i32 %tmp.124, 8          ; <i32> [#uses=1]
-        %tmp.126.mask = and i32 %tmp.125, -16777216             ; <i32> [#uses=1]
-        %tmp.128 = icmp eq i32 %tmp.126.mask, 167772160         ; <i1> [#uses=1]
-        ret i1 %tmp.128
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll
deleted file mode 100644
index 766ba48..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep and
-
-define i8 @test21(i8 %A) {
-        ;; sign extend
-        %C = ashr i8 %A, 7              ; <i8> [#uses=1]
-        ;; chop off sign
-        %D = and i8 %C, 1               ; <i8> [#uses=1]
-        ret i8 %D
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll
deleted file mode 100644
index 53bb496..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll
+++ /dev/null
@@ -1,132 +0,0 @@
-; This test case tests the InstructionCombining optimization that
-; reduces things like:
-;   %Y = sext i8 %X to i32 
-;   %C = icmp ult i32 %Y, 1024
-; to
-;   %C = i1 true
-; It includes test cases for different constant values, signedness of the
-; cast operands, and types of setCC operators. In all cases, the cast should
-; be eliminated. In many cases the setCC is also eliminated based on the
-; constant value and the range of the casted value.
-;
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | \
-; RUN:    notcast .*int
-; END.
-define i1 @lt_signed_to_large_unsigned(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp ult i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_signed_to_large_signed(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp slt i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_signed_to_large_negative(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp slt i32 %Y, -1024             ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_signed_to_small_signed(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp slt i32 %Y, 17                ; <i1> [#uses=1]
-        ret i1 %C
-}
-define i1 @lt_signed_to_small_negative(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp slt i32 %Y, -17               ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_unsigned_to_large_unsigned(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp ult i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_unsigned_to_large_signed(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp slt i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_unsigned_to_large_negative(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp slt i32 %Y, -1024             ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_unsigned_to_small_unsigned(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp ult i32 %Y, 17                ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @lt_unsigned_to_small_negative(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp slt i32 %Y, -17               ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_signed_to_large_unsigned(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp ugt i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_signed_to_large_signed(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp sgt i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_signed_to_large_negative(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp sgt i32 %Y, -1024             ; <i1> [#uses=1]
-        ret i1 %C
-}
-define i1 @gt_signed_to_small_signed(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp sgt i32 %Y, 17                ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_signed_to_small_negative(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp sgt i32 %Y, -17               ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_unsigned_to_large_unsigned(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp ugt i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_unsigned_to_large_signed(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp sgt i32 %Y, 1024              ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_unsigned_to_large_negative(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp sgt i32 %Y, -1024             ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_unsigned_to_small_unsigned(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp ugt i32 %Y, 17                ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @gt_unsigned_to_small_negative(i8 %SB) {
-        %Y = zext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp sgt i32 %Y, -17               ; <i1> [#uses=1]
-        ret i1 %C
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll
deleted file mode 100644
index 4ea0b5c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-
-define i32 @test(i32 %X) {
-        %Y = srem i32 %X, undef         ; <i32> [#uses=1]
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll
deleted file mode 100644
index ffaa005..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep {ret i1 false}
-
-define i1 @test(i64 %tmp.169) {
-        %tmp.1710 = lshr i64 %tmp.169, 1                ; <i64> [#uses=1]
-        %tmp.1912 = icmp ugt i64 %tmp.1710, 0           ; <i1> [#uses=1]
-        ret i1 %tmp.1912
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll
deleted file mode 100644
index 8b2aa35..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define i32 @test(i1 %C, i32 %tmp.15) {
-        %tmp.16 = select i1 %C, i32 8, i32 1            ; <i32> [#uses=1]
-        %tmp.18 = udiv i32 %tmp.15, %tmp.16             ; <i32> [#uses=1]
-        ret i32 %tmp.18
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll
deleted file mode 100644
index 53585f9..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define i32 @_Z13func_31585107li(i32 %l_39521025, i32 %l_59244666) {
-        %shortcirc_val = select i1 false, i32 1, i32 0          ; <i32> [#uses=1]
-        %tmp.8 = udiv i32 0, %shortcirc_val             ; <i32> [#uses=1]
-        %tmp.9 = icmp eq i32 %tmp.8, 0          ; <i1> [#uses=1]
-        %retval = select i1 %tmp.9, i32 %l_59244666, i32 -1621308501            ; <i32> [#uses=1]
-        ret i32 %retval
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll
deleted file mode 100644
index 64bfec1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR577
-
-define i1 @test() {
-        %tmp.3 = shl i32 0, 41          ; <i32> [#uses=1]
-        %tmp.4 = icmp ne i32 %tmp.3, 0          ; <i1> [#uses=1]
-        ret i1 %tmp.4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll
deleted file mode 100644
index 10dbfec..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR585
-
-define i1 @test() {
-        %tmp.26 = sdiv i32 0, -2147483648               ; <i32> [#uses=1]
-        %tmp.27 = icmp eq i32 %tmp.26, 0                ; <i1> [#uses=1]
-        ret i1 %tmp.27
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll
deleted file mode 100644
index 010087b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {ret i1 true}
-; PR586
-
- at g_07918478 = external global i32               ; <i32*> [#uses=1]
-
-define i1 @test() {
-        %tmp.0 = load i32* @g_07918478          ; <i32> [#uses=2]
-        %tmp.1 = icmp ne i32 %tmp.0, 0          ; <i1> [#uses=1]
-        %tmp.4 = icmp ult i32 %tmp.0, 4111              ; <i1> [#uses=1]
-        %bothcond = or i1 %tmp.1, %tmp.4                ; <i1> [#uses=1]
-        ret i1 %bothcond
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll
deleted file mode 100644
index c58234a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-; This example caused instcombine to spin into an infinite loop.
-
-define void @test(i32* %P) {
-        ret void
-
-Dead:           ; preds = %Dead
-        %X = phi i32 [ %Y, %Dead ]              ; <i32> [#uses=1]
-        %Y = sdiv i32 %X, 10            ; <i32> [#uses=2]
-        store i32 %Y, i32* %P
-        br label %Dead
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll
deleted file mode 100644
index c89b0d5..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep undef
-
-define i32 @test(i8 %A) {
-        %B = sext i8 %A to i32          ; <i32> [#uses=1]
-        %C = ashr i32 %B, 8             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-02-28-Crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-02-28-Crash.ll
deleted file mode 100644
index 1f3c9e8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-02-28-Crash.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define i32 @test() {
-        %tmp203 = icmp eq i32 1, 2              ; <i1> [#uses=1]
-        %tmp203.upgrd.1 = zext i1 %tmp203 to i32                ; <i32> [#uses=1]
-        ret i32 %tmp203.upgrd.1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll
deleted file mode 100644
index e4b2b39..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define float @test(<4 x float> %V) {
-        %V2 = insertelement <4 x float> %V, float 1.000000e+00, i32 3           ; <<4 x float>> [#uses=1]
-        %R = extractelement <4 x float> %V2, i32 2              ; <float> [#uses=1]
-        ret float %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll
deleted file mode 100644
index 2541eb7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-
-; This cannot be turned into a sign extending cast!
-
-define i64 @test(i64 %X) {
-        %Y = shl i64 %X, 16             ; <i64> [#uses=1]
-        %Z = ashr i64 %Y, 16            ; <i64> [#uses=1]
-        ret i64 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll
deleted file mode 100644
index 1b9df40..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; END.
-
-define void @test() {
-bb38.i:
-	%varspec.0.i1014 = bitcast i64 123814269237067777 to i64		; <i64> [#uses=1]
-	%locspec.0.i1015 = bitcast i32 1 to i32		; <i32> [#uses=2]
-	%tmp51391.i1018 = lshr i64 %varspec.0.i1014, 16		; <i64> [#uses=1]
-	%tmp51392.i1019 = trunc i64 %tmp51391.i1018 to i32		; <i32> [#uses=2]
-	%tmp51392.mask.i1020 = lshr i32 %tmp51392.i1019, 29		; <i32> [#uses=1]
-	%tmp7.i1021 = and i32 %tmp51392.mask.i1020, 1		; <i32> [#uses=2]
-	%tmp18.i1026 = lshr i32 %tmp51392.i1019, 31		; <i32> [#uses=2]
-	%tmp18.i1027 = trunc i32 %tmp18.i1026 to i8		; <i8> [#uses=1]
-	br i1 false, label %cond_false1148.i1653, label %bb377.i1259
-
-bb377.i1259:		; preds = %bb38.i
-	br i1 false, label %cond_true541.i1317, label %cond_false1148.i1653
-
-cond_true541.i1317:		; preds = %bb377.i1259
-	%tmp545.i1318 = lshr i32 %locspec.0.i1015, 10		; <i32> [#uses=1]
-	%tmp550.i1319 = lshr i32 %locspec.0.i1015, 4		; <i32> [#uses=1]
-	%tmp550551.i1320 = and i32 %tmp550.i1319, 63		; <i32> [#uses=1]
-	%tmp553.i1321 = icmp ult i32 %tmp550551.i1320, 4		; <i1> [#uses=1]
-	%tmp558.i1322 = icmp eq i32 %tmp7.i1021, 0		; <i1> [#uses=1]
-	%bothcond.i1326 = or i1 %tmp553.i1321, false		; <i1> [#uses=1]
-	%bothcond1.i1327 = or i1 %bothcond.i1326, false		; <i1> [#uses=1]
-	%bothcond2.not.i1328 = or i1 %bothcond1.i1327, false		; <i1> [#uses=1]
-	%bothcond3.i1329 = or i1 %bothcond2.not.i1328, %tmp558.i1322		; <i1> [#uses=0]
-	br i1 false, label %cond_true583.i1333, label %cond_next592.i1337
-
-cond_true583.i1333:		; preds = %cond_true541.i1317
-	br i1 false, label %cond_true586.i1335, label %cond_next592.i1337
-
-cond_true586.i1335:		; preds = %cond_true583.i1333
-	br label %cond_true.i
-
-cond_next592.i1337:		; preds = %cond_true583.i1333, %cond_true541.i1317
-	%mask_z.0.i1339 = phi i32 [ %tmp18.i1026, %cond_true541.i1317 ], [ 0, %cond_true583.i1333 ]		; <i32> [#uses=0]
-	%tmp594.i1340 = and i32 %tmp545.i1318, 15		; <i32> [#uses=0]
-	br label %cond_true.i
-
-cond_false1148.i1653:		; preds = %bb377.i1259, %bb38.i
-	%tmp1150.i1654 = icmp eq i32 %tmp7.i1021, 0		; <i1> [#uses=1]
-	%tmp1160.i1656 = icmp eq i8 %tmp18.i1027, 0		; <i1> [#uses=1]
-	%bothcond8.i1658 = or i1 %tmp1150.i1654, %tmp1160.i1656		; <i1> [#uses=1]
-	%bothcond9.i1659 = or i1 %bothcond8.i1658, false		; <i1> [#uses=0]
-	br label %cond_true.i
-
-cond_true.i:		; preds = %cond_false1148.i1653, %cond_next592.i1337, %cond_true586.i1335
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-09-15-CastToBool.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-09-15-CastToBool.ll
deleted file mode 100644
index 043b598..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-09-15-CastToBool.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and
-; PR913
-
-define i32 @test(i32* %tmp1) {
-        %tmp.i = load i32* %tmp1                ; <i32> [#uses=1]
-        %tmp = bitcast i32 %tmp.i to i32                ; <i32> [#uses=1]
-        %tmp2.ui = lshr i32 %tmp, 5             ; <i32> [#uses=1]
-        %tmp2 = bitcast i32 %tmp2.ui to i32             ; <i32> [#uses=1]
-        %tmp3 = and i32 %tmp2, 1                ; <i32> [#uses=1]
-        %tmp3.upgrd.1 = icmp ne i32 %tmp3, 0            ; <i1> [#uses=1]
-        %tmp34 = zext i1 %tmp3.upgrd.1 to i32           ; <i32> [#uses=1]
-        ret i32 %tmp34
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll
deleted file mode 100644
index 4ca3dc1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; The optimizer should be able to remove cast operation here.
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | \
-; RUN:    not grep sext.*i32
-
-define i1 @eq_signed_to_small_unsigned(i8 %SB) {
-        %Y = sext i8 %SB to i32         ; <i32> [#uses=1]
-        %C = icmp eq i32 %Y, 17         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll
deleted file mode 100644
index 8678a85..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; This test case is reduced from llvmAsmParser.cpp
-; The optimizer should not remove the cast here.
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | \
-; RUN:    grep sext.*i32
-
-
-define i1 @test(i16 %X) {
-        %A = sext i16 %X to i32         ; <i32> [#uses=1]
-        %B = icmp ugt i32 %A, 1330              ; <i1> [#uses=1]
-        ret i1 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-20-mask.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-20-mask.ll
deleted file mode 100644
index a5864f1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-20-mask.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | \
-; RUN:    grep and
-
-define i64 @foo(i64 %tmp, i64 %tmp2) {
-        %tmp.upgrd.1 = trunc i64 %tmp to i32            ; <i32> [#uses=1]
-        %tmp2.upgrd.2 = trunc i64 %tmp2 to i32          ; <i32> [#uses=1]
-        %tmp3 = and i32 %tmp.upgrd.1, %tmp2.upgrd.2             ; <i32> [#uses=1]
-        %tmp4 = zext i32 %tmp3 to i64           ; <i64> [#uses=1]
-        ret i64 %tmp4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
deleted file mode 100644
index c7cf0dd..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep mul | count 2
-
-define <4 x float> @test(<4 x float> %V) {
-        %Y = fmul <4 x float> %V, < float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00 >                ; <<4 x float>> [#uses=1]
-        %Z = fmul <4 x float> %Y, < float 1.000000e+00, float 2.000000e+05, float -3.000000e+00, float 4.000000e+00 >               ; <<4 x float>> [#uses=1]
-        ret <4 x float> %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-03-Memmove64.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-03-Memmove64.ll
deleted file mode 100644
index 23e805a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-03-Memmove64.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep memmove.i32
-; Instcombine was trying to turn this into a memmove.i32
-
-target datalayout = "e-p:64:64"
-target triple = "alphaev67-unknown-linux-gnu"
- at str10 = internal constant [1 x i8] zeroinitializer             ; <[1 x i8]*> [#uses=1]
-
-define void @do_join(i8* %b) {
-entry:
-        call void @llvm.memmove.i64( i8* %b, i8* getelementptr ([1 x i8]* @str10, i32 0, i64 0), i64 1, i32 1 )
-        ret void
-}
-
-declare void @llvm.memmove.i64(i8*, i8*, i64, i32)
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll
deleted file mode 100644
index 8c48d43..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep lshr
-; Verify this is not turned into -1.
-
-define i32 @test(i8 %amt) {
-        %shift.upgrd.1 = zext i8 %amt to i32            ; <i32> [#uses=1]
-        %B = lshr i32 -1, %shift.upgrd.1                ; <i32> [#uses=1]
-        ret i32 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-27-XorBug.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-27-XorBug.ll
deleted file mode 100644
index 631b43f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-11-27-XorBug.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and.*32
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep or.*153
-; PR1014
-
-define i32 @test(i32 %tmp1) {
-        %ovm = and i32 %tmp1, 32                ; <i32> [#uses=1]
-        %ov3 = add i32 %ovm, 145                ; <i32> [#uses=1]
-        %ov110 = xor i32 %ov3, 153              ; <i32> [#uses=1]
-        ret i32 %ov110
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
deleted file mode 100644
index eaf10a3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep sub
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep add
-
-define <4 x float> @test(<4 x float> %tmp26, <4 x float> %tmp53) {
-        ; (X+Y)-Y != X for fp vectors.
-        %tmp64 = fadd <4 x float> %tmp26, %tmp53         ; <<4 x float>> [#uses=1]
-        %tmp75 = fsub <4 x float> %tmp64, %tmp53         ; <<4 x float>> [#uses=1]
-        ret <4 x float> %tmp75
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll
deleted file mode 100644
index 2c3313e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zext
-
-; Never merge these two conversions, even though it's possible: this is
-; significantly more expensive than the two conversions on some targets
-; and it causes libgcc to be compile __fixunsdfdi into a recursive 
-; function.
-define i64 @test(double %D) {
-        %A = fptoui double %D to i32            ; <i32> [#uses=1]
-        %B = zext i32 %A to i64         ; <i64> [#uses=1]
-        ret i64 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll
deleted file mode 100644
index ddfb88c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-ICmp-Combining.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {%bothcond =}
-
-define i1 @Doit_bb(i32 %i.0) {
-bb:
-        %tmp = icmp sgt i32 %i.0, 0             ; <i1> [#uses=1]
-        %tmp.not = xor i1 %tmp, true            ; <i1> [#uses=1]
-        %tmp2 = icmp sgt i32 %i.0, 8            ; <i1> [#uses=1]
-        %bothcond = or i1 %tmp.not, %tmp2               ; <i1> [#uses=1]
-        br i1 %bothcond, label %exitTrue, label %exitFalse
-
-exitTrue:               ; preds = %bb
-        ret i1 true
-
-exitFalse:              ; preds = %bb
-        ret i1 false
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll
deleted file mode 100644
index 1508a52..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {icmp sgt}
-; END.
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct.point = type { i32, i32 }
-
-define i32 @visible(i32 %direction, i64 %p1.0, i64 %p2.0, i64 %p3.0) {
-entry:
-	%p1_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
-	%p2_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
-	%p3_addr = alloca %struct.point		; <%struct.point*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp = bitcast %struct.point* %p1_addr to { i64 }*		; <{ i64 }*> [#uses=1]
-	%tmp.upgrd.1 = getelementptr { i64 }* %tmp, i64 0, i32 0		; <i64*> [#uses=1]
-	store i64 %p1.0, i64* %tmp.upgrd.1
-	%tmp1 = bitcast %struct.point* %p2_addr to { i64 }*		; <{ i64 }*> [#uses=1]
-	%tmp2 = getelementptr { i64 }* %tmp1, i64 0, i32 0		; <i64*> [#uses=1]
-	store i64 %p2.0, i64* %tmp2
-	%tmp3 = bitcast %struct.point* %p3_addr to { i64 }*		; <{ i64 }*> [#uses=1]
-	%tmp4 = getelementptr { i64 }* %tmp3, i64 0, i32 0		; <i64*> [#uses=1]
-	store i64 %p3.0, i64* %tmp4
-	%tmp.upgrd.2 = icmp eq i32 %direction, 0		; <i1> [#uses=1]
-	%tmp5 = bitcast %struct.point* %p1_addr to { i64 }*		; <{ i64 }*> [#uses=1]
-	%tmp6 = getelementptr { i64 }* %tmp5, i64 0, i32 0		; <i64*> [#uses=1]
-	%tmp.upgrd.3 = load i64* %tmp6		; <i64> [#uses=1]
-	%tmp7 = bitcast %struct.point* %p2_addr to { i64 }*		; <{ i64 }*> [#uses=1]
-	%tmp8 = getelementptr { i64 }* %tmp7, i64 0, i32 0		; <i64*> [#uses=1]
-	%tmp9 = load i64* %tmp8		; <i64> [#uses=1]
-	%tmp10 = bitcast %struct.point* %p3_addr to { i64 }*		; <{ i64 }*> [#uses=1]
-	%tmp11 = getelementptr { i64 }* %tmp10, i64 0, i32 0		; <i64*> [#uses=1]
-	%tmp12 = load i64* %tmp11		; <i64> [#uses=1]
-	%tmp13 = call i32 @determinant( i64 %tmp.upgrd.3, i64 %tmp9, i64 %tmp12 )		; <i32> [#uses=2]
-	br i1 %tmp.upgrd.2, label %cond_true, label %cond_false
-
-cond_true:		; preds = %entry
-	%tmp14 = icmp slt i32 %tmp13, 0		; <i1> [#uses=1]
-	%tmp14.upgrd.4 = zext i1 %tmp14 to i32		; <i32> [#uses=1]
-	br label %return
-
-cond_false:		; preds = %entry
-	%tmp26 = icmp sgt i32 %tmp13, 0		; <i1> [#uses=1]
-	%tmp26.upgrd.5 = zext i1 %tmp26 to i32		; <i32> [#uses=1]
-	br label %return
-
-return:		; preds = %cond_false, %cond_true
-	%retval.0 = phi i32 [ %tmp14.upgrd.4, %cond_true ], [ %tmp26.upgrd.5, %cond_false ]		; <i32> [#uses=1]
-	ret i32 %retval.0
-}
-
-declare i32 @determinant(i64, i64, i64)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll
deleted file mode 100644
index e4aade7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep select
-; END.
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-        %struct.point = type { i32, i32 }
-
-define i32 @visible(i32 %direction, i64 %p1.0, i64 %p2.0, i64 %p3.0) {
-entry:
-        %p1_addr = alloca %struct.point         ; <%struct.point*> [#uses=2]
-        %p2_addr = alloca %struct.point         ; <%struct.point*> [#uses=2]
-        %p3_addr = alloca %struct.point         ; <%struct.point*> [#uses=2]
-        %tmp = bitcast %struct.point* %p1_addr to { i64 }*              ; <{ i64 }*> [#uses=1]
-        %tmp.upgrd.1 = getelementptr { i64 }* %tmp, i32 0, i32 0                ; <i64*> [#uses=1]
-        store i64 %p1.0, i64* %tmp.upgrd.1
-        %tmp1 = bitcast %struct.point* %p2_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
-        %tmp2 = getelementptr { i64 }* %tmp1, i32 0, i32 0              ; <i64*> [#uses=1]
-        store i64 %p2.0, i64* %tmp2
-        %tmp3 = bitcast %struct.point* %p3_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
-        %tmp4 = getelementptr { i64 }* %tmp3, i32 0, i32 0              ; <i64*> [#uses=1]
-        store i64 %p3.0, i64* %tmp4
-        %tmp.upgrd.2 = icmp eq i32 %direction, 0                ; <i1> [#uses=1]
-        %tmp5 = bitcast %struct.point* %p1_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
-        %tmp6 = getelementptr { i64 }* %tmp5, i32 0, i32 0              ; <i64*> [#uses=1]
-        %tmp.upgrd.3 = load i64* %tmp6          ; <i64> [#uses=1]
-        %tmp7 = bitcast %struct.point* %p2_addr to { i64 }*             ; <{ i64 }*> [#uses=1]
-        %tmp8 = getelementptr { i64 }* %tmp7, i32 0, i32 0              ; <i64*> [#uses=1]
-        %tmp9 = load i64* %tmp8         ; <i64> [#uses=1]
-        %tmp10 = bitcast %struct.point* %p3_addr to { i64 }*            ; <{ i64 }*> [#uses=1]
-        %tmp11 = getelementptr { i64 }* %tmp10, i32 0, i32 0            ; <i64*> [#uses=1]
-        %tmp12 = load i64* %tmp11               ; <i64> [#uses=1]
-        %tmp13 = call i32 @determinant( i64 %tmp.upgrd.3, i64 %tmp9, i64 %tmp12 )         ; <i32> [#uses=2]
-        %tmp14 = icmp slt i32 %tmp13, 0         ; <i1> [#uses=1]
-        %tmp26 = icmp sgt i32 %tmp13, 0         ; <i1> [#uses=1]
-        %retval.0.in = select i1 %tmp.upgrd.2, i1 %tmp14, i1 %tmp26             ; <i1> [#uses=1]
-        %retval.0 = zext i1 %retval.0.in to i32         ; <i32> [#uses=1]
-        ret i32 %retval.0
-}
-
-declare i32 @determinant(i64, i64, i64)
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-15-Range-Test.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-15-Range-Test.ll
deleted file mode 100644
index 67bc84c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-15-Range-Test.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep icmp | count 1
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {icmp ugt} | count 1
-; END.
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
- at r = external global [17 x i32]         ; <[17 x i32]*> [#uses=1]
-
-define i1 @print_pgm_cond_true(i32 %tmp12.reload, i32* %tmp16.out) {
-newFuncRoot:
-        br label %cond_true
-
-bb27.exitStub:          ; preds = %cond_true
-        store i32 %tmp16, i32* %tmp16.out
-        ret i1 true
-
-cond_next23.exitStub:           ; preds = %cond_true
-        store i32 %tmp16, i32* %tmp16.out
-        ret i1 false
-
-cond_true:              ; preds = %newFuncRoot
-        %tmp15 = getelementptr [17 x i32]* @r, i32 0, i32 %tmp12.reload         ; <i32*> [#uses=1]
-        %tmp16 = load i32* %tmp15               ; <i32> [#uses=4]
-        %tmp18 = icmp slt i32 %tmp16, -31               ; <i1> [#uses=1]
-        %tmp21 = icmp sgt i32 %tmp16, 31                ; <i1> [#uses=1]
-        %bothcond = or i1 %tmp18, %tmp21                ; <i1> [#uses=1]
-        br i1 %bothcond, label %bb27.exitStub, label %cond_next23.exitStub
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll
deleted file mode 100644
index 695aea4..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; For PR1065. This causes an assertion in instcombine if a select with two cmp
-; operands is encountered.
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; END.
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct.internal_state = type { i32 }
-	%struct.mng_data = type { i32, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i8, i32, i32, i32, i32, i16, i16, i16, i8, i8, double, double, double, i8, i8, i8, i8, i32, i32, i32, i32, i32, i8, i32, i32, i8*, i8* (i32)*, void (i8*, i32)*, void (i8*, i8*, i32)*, i8 (%struct.mng_data*)*, i8 (%struct.mng_data*)*, i8 (%struct.mng_data*, i8*, i32, i32*)*, i8 (%struct.mng_data*, i8*, i32, i32*)*, i8 (%struct.mng_data*, i32, i8, i32, i32, i32, i32, i8*)*, i8 (%struct.mng_data*, i32, i32, i8*)*, i8 (%struct.mng_data*, i32, i32)*, i8 (%struct.mng_data*, i8, i8*, i8*, i8*, i8*)*, i8 (%struct.mng_data*)*, i8 (%struct.mng_data*, i8*)*, i8 (%struct.mng_data*, i8*)*, i8 (%struct.mng_data*, i32, i32)*, i8 (%struct.mng_data*, i32, i32, i8*)*, i8 (%struct.mng_data*, i8, i8, i32, i32)*, i8* (%struct.mng_data*, i32)*, i8* (%struct.mng_data*, i32)*, i8* (%struct.mng_data*, i32)*, i8 (%struct.mng_data*, i32, i32, i32, i32)*, i32 (%struct.mng_data*)*, i8 (%struct.mng_data*, i32)*, i8 (%struct.mng_data*, i32)*, i8 (%struct.mng_data*, i32, i32, i32, i32, i32, i32, i32, i32)*, i8 (%struct.mng_data*, i8)*, i8 (%struct.mng_data*, i32, i8*)*, i8 (%struct.mng_data*, i32, i8, i8*)*, i8, i32, i32, i8*, i8*, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i8, i8, i8, i8, i8, i32, i8, i8, i8, i32, i8*, i32, i8*, i32, i8, i8, i8, i32, i8*, i8*, i32, i32, i8*, i8*, %struct.mng_pushdata*, %struct.mng_pushdata*, %struct.mng_pushdata*, %struct.mng_pushdata*, i8, i8, i32, i32, i8*, i8, i8, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, i8*, i32, i32, i32, i8, i8, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8*, i8*, i8*, i32, i8*, i8*, i8*, i8*, i8*, %struct.mng_savedata*, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i8*, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i8*, i8*, i8*, i8*, [256 x i8], double, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, i16, i8, i8, i8, i8, i8, i32, i32, i8, i32, i32, i32, i32, i16, i16, i16, i8, i16, i8, i32, i32, i32, i32, i8, i32, i32, i8, i32, i32, i32, i32, i8, i32, i32, i8, i32, i32, i32, i32, i32, i8, i32, i8, i16, i16, i16, i16, i32, [256 x %struct.mng_palette8e], i32, [256 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i8*, i16, i16, i16, i8*, i8, i8, i32, i32, i32, i32, i8, void ()*, void ()*, void ()*, void ()*, void ()*, void ()*, i8*, i8, i8, i8, i32, i8*, i8*, i16, i16, i16, i16, i32, i32, i8*, %struct.z_stream, i32, i32, i32, i32, i32, i32, i8, i8, [256 x i32], i8 }
-	%struct.mng_palette8e = type { i8, i8, i8 }
-	%struct.mng_pushdata = type { i8*, i8*, i32, i8, i8*, i32 }
-	%struct.mng_savedata = type { i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i8, i16, i8, i8, i32, i32, i8, i32, i32, i32, i32, i32, [256 x %struct.mng_palette8e], i32, [256 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i8*, i16, i16, i16 }
-	%struct.z_stream = type { i8*, i32, i32, i8*, i32, i32, i8*, %struct.internal_state*, i8* (i8*, i32, i32)*, void (i8*, i8*)*, i8*, i32, i32, i32 }
-
-define void @mng_write_basi() {
-entry:
-	%tmp = load i8* null		; <i8> [#uses=1]
-	%tmp.upgrd.1 = icmp ugt i8 %tmp, 8		; <i1> [#uses=1]
-	%tmp.upgrd.2 = load i16* null		; <i16> [#uses=2]
-	%tmp3 = icmp eq i16 %tmp.upgrd.2, 255		; <i1> [#uses=1]
-	%tmp7 = icmp eq i16 %tmp.upgrd.2, -1		; <i1> [#uses=1]
-	%bOpaque.0.in = select i1 %tmp.upgrd.1, i1 %tmp7, i1 %tmp3		; <i1> [#uses=1]
-	br i1 %bOpaque.0.in, label %cond_next90, label %bb95
-
-cond_next90:		; preds = %entry
-	ret void
-
-bb95:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-13-ExtCompareMiscompile.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-13-ExtCompareMiscompile.ll
deleted file mode 100644
index edbcfee..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-13-ExtCompareMiscompile.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {icmp ugt}
-; PR1107
-; PR1940
-
-define i1 @test(i8 %A, i8 %B) {
-	%a = zext i8 %A to i32
-	%b = zext i8 %B to i32
-	%c = icmp sgt i32 %a, %b
-	ret i1 %c
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-14-FcmpSelf.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-14-FcmpSelf.ll
deleted file mode 100644
index 073d3a1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-14-FcmpSelf.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {fcmp uno.*0.0}
-; PR1111
-define i1 @test(double %X) {
-  %tmp = fcmp une double %X, %X
-  ret i1 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-18-VectorInfLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-18-VectorInfLoop.ll
deleted file mode 100644
index 83d05d9..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-18-VectorInfLoop.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define <4 x i32> @test(<4 x i32> %A) {
-    %B = xor <4 x i32> %A, < i32 -1, i32 -1, i32 -1, i32 -1 > 
-    %C = and <4 x i32> %B, < i32 -1, i32 -1, i32 -1, i32 -1 >
-    ret <4 x i32> %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-27-AndICmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-27-AndICmp.ll
deleted file mode 100644
index 0e8c5b1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-01-27-AndICmp.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ugt.*, 1}
-
-define i1 @test(i32 %tmp1030) {
-	%tmp1037 = icmp ne i32 %tmp1030, 40		; <i1> [#uses=1]
-	%tmp1039 = icmp ne i32 %tmp1030, 41		; <i1> [#uses=1]
-	%tmp1042 = and i1 %tmp1037, %tmp1039		; <i1> [#uses=1]
-	ret i1 %tmp1042
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-01-LoadSinkAlloca.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-01-LoadSinkAlloca.ll
deleted file mode 100644
index e559cdd..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-01-LoadSinkAlloca.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | grep {%A = alloca} 
-; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | \
-; RUN:    not grep {%B = alloca}
-; END.
-
-; Ensure that instcombine doesn't sink the loads in entry/cond_true into 
-; cond_next.  Doing so prevents mem2reg from promoting the B alloca.
-
-define i32 @test2(i32 %C) {
-entry:
-	%A = alloca i32
-	%B = alloca i32
-	%tmp = call i32 (...)* @bar( i32* %A )		; <i32> [#uses=0]
-	%T = load i32* %A		; <i32> [#uses=1]
-	%tmp2 = icmp eq i32 %C, 0		; <i1> [#uses=1]
-	br i1 %tmp2, label %cond_next, label %cond_true
-
-cond_true:		; preds = %entry
-	store i32 123, i32* %B
-	call i32 @test2( i32 123 )		; <i32>:0 [#uses=0]
-	%T1 = load i32* %B		; <i32> [#uses=1]
-	br label %cond_next
-
-cond_next:		; preds = %cond_true, %entry
-	%tmp1.0 = phi i32 [ %T1, %cond_true ], [ %T, %entry ]		; <i32> [#uses=1]
-	%tmp7 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp8 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp9 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp10 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp11 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp12 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp13 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp14 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp15 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp16 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp17 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp18 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp19 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	%tmp20 = call i32 (...)* @baq( )		; <i32> [#uses=0]
-	ret i32 %tmp1.0
-}
-
-declare i32 @bar(...)
-
-declare i32 @baq(...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll
deleted file mode 100644
index ce9eb3c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-;RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zext
-
-; Make sure the uint isn't removed.  Instcombine in llvm 1.9 was dropping the 
-; uint cast which was causing a sign extend. This only affected code with 
-; pointers in the high half of memory, so it wasn't noticed much
-; compile a kernel though...
-
-target datalayout = "e-p:32:32"
- at str = internal constant [6 x i8] c"%llx\0A\00"         ; <[6 x i8]*> [#uses=1]
-
-declare i32 @printf(i8*, ...)
-
-define i32 @main(i32 %x, i8** %a) {
-entry:
-        %tmp = getelementptr [6 x i8]* @str, i32 0, i64 0               ; <i8*> [#uses=1]
-        %tmp1 = load i8** %a            ; <i8*> [#uses=1]
-        %tmp2 = ptrtoint i8* %tmp1 to i32               ; <i32> [#uses=1]
-        %tmp3 = zext i32 %tmp2 to i64           ; <i64> [#uses=1]
-        %tmp.upgrd.1 = call i32 (i8*, ...)* @printf( i8* %tmp, i64 %tmp3 )              ; <i32> [#uses=0]
-        ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-23-PhiFoldInfLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-23-PhiFoldInfLoop.ll
deleted file mode 100644
index d60da44..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-02-23-PhiFoldInfLoop.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep ret
-; PR1217
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct.termbox = type { %struct.termbox*, i32, i32, i32, i32, i32 }
-
-
-define void @ggenorien() {
-entry:
-	%tmp68 = icmp eq %struct.termbox* null, null		; <i1> [#uses=1]
-	br i1 %tmp68, label %cond_next448, label %bb80
-
-bb80:		; preds = %entry
-	ret void
-
-cond_next448:		; preds = %entry
-	br i1 false, label %bb756, label %bb595
-
-bb595:		; preds = %cond_next448
-	br label %bb609
-
-bb609:		; preds = %bb756, %bb595
-	%termnum.6240.0 = phi i32 [ 2, %bb595 ], [ %termnum.6, %bb756 ]		; <i32> [#uses=1]
-	%tmp755 = add i32 %termnum.6240.0, 1		; <i32> [#uses=1]
-	br label %bb756
-
-bb756:		; preds = %bb609, %cond_next448
-	%termnum.6 = phi i32 [ %tmp755, %bb609 ], [ 2, %cond_next448 ]		; <i32> [#uses=1]
-	br label %bb609
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-13-CompareMerge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-13-CompareMerge.ll
deleted file mode 100644
index d101050..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-13-CompareMerge.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {icmp sle}
-; PR1244
-
-define i1 @test(i32 %c.3.i, i32 %d.292.2.i) {
-   %tmp266.i = icmp slt i32 %c.3.i, %d.292.2.i     
-   %tmp276.i = icmp eq i32 %c.3.i, %d.292.2.i 
-   %sel_tmp80 = or i1 %tmp266.i, %tmp276.i 
-   ret i1 %sel_tmp80
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-19-BadTruncChangePR1261.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-19-BadTruncChangePR1261.ll
deleted file mode 100644
index da58dec..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-19-BadTruncChangePR1261.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | grep zext
-; PR1261. 
-
-define i16 @test(i31 %zzz) {
-  %A = sext i31 %zzz to i32
-  %B = add i32 %A, 16384
-  %C = lshr i32 %B, 15
-  %D = trunc i32 %C to i16
-  ret i16 %D
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-21-SignedRangeTest.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-21-SignedRangeTest.ll
deleted file mode 100644
index c8dafd1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-21-SignedRangeTest.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; For PR1248
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | grep {ugt i32 .*, 11}
-define i1 @test(i32 %tmp6) {
-  %tmp7 = sdiv i32 %tmp6, 12     ; <i32> [#uses=1]
-  icmp ne i32 %tmp7, -6           ; <i1>:1 [#uses=1]
-  ret i1 %1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-25-BadShiftMask.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-25-BadShiftMask.ll
deleted file mode 100644
index 0b05f7c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-25-BadShiftMask.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; PR1271
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {icmp eq i32 .tmp.*, 2146435072}
-%struct..0anon = type { i32, i32 }
-%struct..1anon = type { double }
-
-define i32 @main() {
-entry:
-	%u = alloca %struct..1anon, align 8		; <%struct..1anon*> [#uses=4]
-	%tmp1 = getelementptr %struct..1anon* %u, i32 0, i32 0		; <double*> [#uses=1]
-	store double 0x7FF0000000000000, double* %tmp1
-	%tmp3 = getelementptr %struct..1anon* %u, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp34 = bitcast double* %tmp3 to %struct..0anon*		; <%struct..0anon*> [#uses=1]
-	%tmp5 = getelementptr %struct..0anon* %tmp34, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp6 = load i32* %tmp5		; <i32> [#uses=1]
-	%tmp7 = shl i32 %tmp6, 1		; <i32> [#uses=1]
-	%tmp8 = lshr i32 %tmp7, 21		; <i32> [#uses=1]
-	%tmp89 = trunc i32 %tmp8 to i16		; <i16> [#uses=1]
-	icmp ne i16 %tmp89, 2047		; <i1>:0 [#uses=1]
-	zext i1 %0 to i8		; <i8>:1 [#uses=1]
-	icmp ne i8 %1, 0		; <i1>:2 [#uses=1]
-	br i1 %2, label %cond_true, label %cond_false
-
-cond_true:		; preds = %entry
-	ret i32 0
-
-cond_false:		; preds = %entry
-        ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-25-DoubleShift.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-25-DoubleShift.ll
deleted file mode 100644
index d67e1a1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-25-DoubleShift.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; PR1271
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and
-define i1 @test(i32 %tmp13) {
-entry:
-	%tmp14 = shl i32 %tmp13, 12		; <i32> [#uses=1]
-	%tmp15 = lshr i32 %tmp14, 12		; <i32> [#uses=1]
-	%res = icmp ne i32 %tmp15, 0		; <i1>:3 [#uses=1]
-        ret i1 %res
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-26-BadShiftMask.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-26-BadShiftMask.ll
deleted file mode 100644
index 4a2e60e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-26-BadShiftMask.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; PR1271
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {ashr i32 %.mp137, 2}
-; END.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-
-
-define i1 @test(i32* %tmp141, i32* %tmp145, 
-            i32 %b8, i32 %iftmp.430.0, i32* %tmp134.out, i32* %tmp137.out)
-{
-newFuncRoot:
-	%tmp133 = and i32 %b8, 1		; <i32> [#uses=1]
-	%tmp134 = shl i32 %tmp133, 3		; <i32> [#uses=3]
-	%tmp136 = ashr i32 %b8, 1		; <i32> [#uses=1]
-	%tmp137 = shl i32 %tmp136, 3		; <i32> [#uses=3]
-	%tmp139 = ashr i32 %tmp134, 2		; <i32> [#uses=1]
-	store i32 %tmp139, i32* %tmp141
-	%tmp143 = ashr i32 %tmp137, 2		; <i32> [#uses=1]
-	store i32 %tmp143, i32* %tmp145
-	icmp eq i32 %iftmp.430.0, 0		; <i1>:0 [#uses=1]
-	zext i1 %0 to i8		; <i8>:1 [#uses=1]
-	icmp ne i8 %1, 0		; <i1>:2 [#uses=1]
-	br i1 %2, label %cond_true147.exitStub, label %cond_false252.exitStub
-
-cond_true147.exitStub:		; preds = %newFuncRoot
-	store i32 %tmp134, i32* %tmp134.out
-	store i32 %tmp137, i32* %tmp137.out
-	ret i1 true
-
-cond_false252.exitStub:		; preds = %newFuncRoot
-	store i32 %tmp134, i32* %tmp134.out
-	store i32 %tmp137, i32* %tmp137.out
-	ret i1 false
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-27-PR1280.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-27-PR1280.ll
deleted file mode 100644
index 6cb9aae..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-03-27-PR1280.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; PR1280 - we should be able to reduce this function to a trunc/sext but it
-;          would involve using a bit width (24) that doesn't match a size that
-;          the back end can handle. This test makes sure that such a transform
-;          is not done. It should be removed when code gen supports "funny"
-;          bit widths.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {add i49.*-8388608}
-
-define i49 @test5(i49 %x) {
-        ;; If we have ADD(XOR(AND(X, 0xFF), 0x80), 0xF..F80), it's a sext.
-        %X = and i49 %x, 16777215                     ; 0x0000000ffffff
-        %tmp.2 = xor i49 %X, 8388608                  ; 0x0000000800000
-        %tmp.4 = add i49 %tmp.2, -8388608             ; 0x1FFFFFF800000
-        ret i49 %tmp.4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-04-04-BadFoldBitcastIntoMalloc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-04-04-BadFoldBitcastIntoMalloc.ll
deleted file mode 100644
index e738635..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-04-04-BadFoldBitcastIntoMalloc.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; In the presence of a negative offset (the -8 below), a fold of a bitcast into
-; a malloc messes up the element count, causing an extra 4GB to be allocated on
-; 64-bit targets.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {= add }
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "x86_64-unknown-freebsd6.2"
-
-define i1 @test(i32 %tmp141, double** %tmp145)
-{
-  %tmp133 = add i32 %tmp141, 1
-  %tmp134 = shl i32 %tmp133, 3
-  %tmp135 = add i32 %tmp134, -8
-  %tmp136 = malloc i8, i32 %tmp135
-  %tmp137 = bitcast i8* %tmp136 to double*
-  store double* %tmp137, double** %tmp145
-  ret i1 false
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-04-08-SingleEltVectorCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-04-08-SingleEltVectorCrash.ll
deleted file mode 100644
index 34322a2..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-04-08-SingleEltVectorCrash.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR1304
-
-define i64 @bork(<1 x i64> %vec) {
-  %tmp = extractelement <1 x i64> %vec, i32 0
-  ret i64 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-04-Crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-04-Crash.ll
deleted file mode 100644
index 5ad7919..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-04-Crash.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR1384
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-apple-darwin8"
-	%struct.CFRuntimeBase = type { i32, [4 x i8] }
-	%struct.CGColor = type opaque
-	%struct.CGColorSpace = type { %struct.CFRuntimeBase, i8, i8, i8, i32, i32, i32, %struct.CGColor*, float*, %struct.CGMD5Signature, %struct.CGMD5Signature*, [0 x %struct.CGColorSpaceDescriptor] }
-	%struct.CGColorSpaceCalibratedRGBData = type { [3 x float], [3 x float], [3 x float], [9 x float] }
-	%struct.CGColorSpaceDescriptor = type { %struct.CGColorSpaceCalibratedRGBData }
-	%struct.CGColorSpaceLabData = type { [3 x float], [3 x float], [4 x float] }
-	%struct.CGMD5Signature = type { [16 x i8], i8 }
-
-declare fastcc %struct.CGColorSpace* @CGColorSpaceCreate(i32, i32)
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-define %struct.CGColorSpace* @CGColorSpaceCreateLab(float* %whitePoint, float* %blackPoint, float* %range) {
-entry:
-	%tmp17 = call fastcc %struct.CGColorSpace* @CGColorSpaceCreate( i32 5, i32 3 )		; <%struct.CGColorSpace*> [#uses=2]
-	%tmp28 = getelementptr %struct.CGColorSpace* %tmp17, i32 0, i32 11		; <[0 x %struct.CGColorSpaceDescriptor]*> [#uses=1]
-	%tmp29 = getelementptr [0 x %struct.CGColorSpaceDescriptor]* %tmp28, i32 0, i32 0		; <%struct.CGColorSpaceDescriptor*> [#uses=1]
-	%tmp30 = getelementptr %struct.CGColorSpaceDescriptor* %tmp29, i32 0, i32 0		; <%struct.CGColorSpaceCalibratedRGBData*> [#uses=1]
-	%tmp3031 = bitcast %struct.CGColorSpaceCalibratedRGBData* %tmp30 to %struct.CGColorSpaceLabData*		; <%struct.CGColorSpaceLabData*> [#uses=1]
-	%tmp45 = getelementptr %struct.CGColorSpaceLabData* %tmp3031, i32 0, i32 2		; <[4 x float]*> [#uses=1]
-	%tmp46 = getelementptr [4 x float]* %tmp45, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp4648 = bitcast float* %tmp46 to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp4648, i8* null, i32 16, i32 4 )
-	ret %struct.CGColorSpace* %tmp17
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-10-icmp-or.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-10-icmp-or.ll
deleted file mode 100644
index 8769ded..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-10-icmp-or.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-define i1 @test(i32 %tmp9) {
-        %tmp20 = icmp ugt i32 %tmp9, 255                ; <i1> [#uses=1]
-        %tmp11.not = icmp sgt i32 %tmp9, 255            ; <i1> [#uses=1]
-        %bothcond = or i1 %tmp20, %tmp11.not            ; <i1> [#uses=1]
-        ret i1 %bothcond
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-14-Crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-14-Crash.ll
deleted file mode 100644
index ececd35..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-14-Crash.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "powerpc-apple-darwin8.8.0"        
-
-%struct.abc = type { i32, [32 x i8] }        
-%struct.def = type { i8**, %struct.abc }        
-        %struct.anon = type <{  }>
-
-define i8* @foo(%struct.anon* %deviceRef, %struct.abc* %pCap) {
-entry:
-        %tmp1 = bitcast %struct.anon* %deviceRef to %struct.def*            
-        %tmp3 = getelementptr %struct.def* %tmp1, i32 0, i32 1               
-        %tmp35 = bitcast %struct.abc* %tmp3 to i8*           
-        ret i8* %tmp35
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-18-CastFoldBug.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-18-CastFoldBug.ll
deleted file mode 100644
index 55bfac5..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-05-18-CastFoldBug.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {call.*sret}
-; Make sure instcombine doesn't drop the sret attribute.
-
-define void @blah(i16* %tmp10) {
-entry:
-	call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend_stret to void (i16* sret )*)( i16* %tmp10 sret  )
-	ret void
-}
-
-declare i8* @objc_msgSend_stret(i8*, i8*, ...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-06-06-AshrSignBit.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-06-06-AshrSignBit.ll
deleted file mode 100644
index 482c608..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-06-06-AshrSignBit.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ashr}
-; PR1499
-
-define void @av_cmp_q_cond_true(i32* %retval, i32* %tmp9, i64* %tmp10) {
-newFuncRoot:
-	br label %cond_true
-
-return.exitStub:		; preds = %cond_true
-	ret void
-
-cond_true:		; preds = %newFuncRoot
-	%tmp30 = load i64* %tmp10		; <i64> [#uses=1]
-	%.cast = zext i32 63 to i64		; <i64> [#uses=1]
-	%tmp31 = ashr i64 %tmp30, %.cast		; <i64> [#uses=1]
-	%tmp3132 = trunc i64 %tmp31 to i32		; <i32> [#uses=1]
-	%tmp33 = or i32 %tmp3132, 1		; <i32> [#uses=1]
-	store i32 %tmp33, i32* %tmp9
-	%tmp34 = load i32* %tmp9		; <i32> [#uses=1]
-	store i32 %tmp34, i32* %retval
-	br label %return.exitStub
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-06-21-DivCompareMiscomp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-06-21-DivCompareMiscomp.ll
deleted file mode 100644
index ffc4026..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-06-21-DivCompareMiscomp.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 true}
-; rdar://5278853
-
-define i1 @test(i32 %tmp468) {
-        %tmp470 = udiv i32 %tmp468, 4           ; <i32> [#uses=2]
-        %tmp475 = icmp ult i32 %tmp470, 1073741824              ; <i1> [#uses=1]
-        ret i1 %tmp475
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-08-02-InfiniteLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-08-02-InfiniteLoop.ll
deleted file mode 100644
index 988599b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-08-02-InfiniteLoop.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR1594
-
-define i64 @test(i16 %tmp510, i16 %tmp512) {
-	%W = sext i16 %tmp510 to i32           ; <i32> [#uses=1]
-        %X = sext i16 %tmp512 to i32           ; <i32> [#uses=1]
-        %Y = add i32 %W, %X               ; <i32> [#uses=1]
-        %Z = sext i32 %Y to i64          ; <i64> [#uses=1]
-	ret i64 %Z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-10-AliasConstFold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-10-AliasConstFold.ll
deleted file mode 100644
index 2dcb439..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-10-AliasConstFold.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep icmp
-; PR1646
-
- at __gthrw_pthread_cancel = alias weak i32 (i32)* @pthread_cancel		; <i32 (i32)*> [#uses=1]
- at __gthread_active_ptr.5335 = internal constant i8* bitcast (i32 (i32)* @__gthrw_pthread_cancel to i8*)		; <i8**> [#uses=1]
-declare extern_weak i32 @pthread_cancel(i32)
-
-define i1 @__gthread_active_p() {
-entry:
-	%tmp1 = load i8** @__gthread_active_ptr.5335, align 4		; <i8*> [#uses=1]
-	%tmp2 = icmp ne i8* %tmp1, null		; <i1> [#uses=1]
-	ret i1 %tmp2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-11-Trampoline.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-11-Trampoline.ll
deleted file mode 100644
index c022e57..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-11-Trampoline.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {call i32 @f}
-
-	%struct.FRAME.nest = type { i32, i32 (i32)* }
-	%struct.__builtin_trampoline = type { [10 x i8] }
-
-declare i8* @llvm.init.trampoline(i8*, i8*, i8*)
-
-declare i32 @f(%struct.FRAME.nest* nest , i32 )
-
-define i32 @nest(i32 %n) {
-entry:
-	%FRAME.0 = alloca %struct.FRAME.nest, align 8		; <%struct.FRAME.nest*> [#uses=3]
-	%TRAMP.216 = alloca [10 x i8], align 16		; <[10 x i8]*> [#uses=1]
-	%TRAMP.216.sub = getelementptr [10 x i8]* %TRAMP.216, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp3 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %n, i32* %tmp3, align 8
-	%FRAME.06 = bitcast %struct.FRAME.nest* %FRAME.0 to i8*		; <i8*> [#uses=1]
-	%tramp = call i8* @llvm.init.trampoline( i8* %TRAMP.216.sub, i8* bitcast (i32 (%struct.FRAME.nest* nest , i32)* @f to i8*), i8* %FRAME.06 )		; <i8*> [#uses=1]
-	%tmp7 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 1		; <i32 (i32)**> [#uses=1]
-	%tmp89 = bitcast i8* %tramp to i32 (i32)*		; <i32 (i32)*> [#uses=2]
-	store i32 (i32)* %tmp89, i32 (i32)** %tmp7, align 8
-	%tmp2.i = call i32 %tmp89( i32 1 )		; <i32> [#uses=1]
-	ret i32 %tmp2.i
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-17-AliasConstFold2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-17-AliasConstFold2.ll
deleted file mode 100644
index 300edd5..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-09-17-AliasConstFold2.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep icmp
-; PR1678
-
- at A = alias weak void ()* @B		; <void ()*> [#uses=1]
-
-declare extern_weak void @B()
-
-define i32 @active() {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp1 = icmp ne void ()* @A, null		; <i1> [#uses=1]
-	%tmp12 = zext i1 %tmp1 to i32		; <i32> [#uses=1]
-	ret i32 %tmp12
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-10-EliminateMemCpy.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-10-EliminateMemCpy.ll
deleted file mode 100644
index 6d251b1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-10-EliminateMemCpy.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep call
-; RUN: llvm-as < %s | opt -std-compile-opts | llvm-dis | not grep xyz
-
- at .str = internal constant [4 x i8] c"xyz\00"		; <[4 x i8]*> [#uses=1]
-
-define void @foo(i8* %P) {
-entry:
-	%P_addr = alloca i8*		; <i8**> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i8* %P, i8** %P_addr
-	%tmp = load i8** %P_addr, align 4		; <i8*> [#uses=1]
-	%tmp1 = getelementptr [4 x i8]* @.str, i32 0, i32 0		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp, i8* %tmp1, i32 4, i32 1 )
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-12-Crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-12-Crash.ll
deleted file mode 100644
index ed98fcd..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-12-Crash.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-	%struct.Ray = type { %struct.Vec, %struct.Vec }
-	%struct.Scene = type { i32 (...)** }
-	%struct.Vec = type { double, double, double }
-
-declare double @_Z9ray_traceRK3VecRK3RayRK5Scene(%struct.Vec*, %struct.Ray*, %struct.Scene*)
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	%tmp3 = alloca %struct.Ray, align 4		; <%struct.Ray*> [#uses=2]
-	%tmp97 = icmp slt i32 0, 512		; <i1> [#uses=1]
-	br i1 %tmp97, label %bb71, label %bb108
-
-bb29:		; preds = %bb62
-	%tmp322 = bitcast %struct.Ray* %tmp3 to %struct.Vec*		; <%struct.Vec*> [#uses=1]
-	%tmp322.0 = getelementptr %struct.Vec* %tmp322, i32 0, i32 0		; <double*> [#uses=1]
-	store double 0.000000e+00, double* %tmp322.0
-	%tmp57 = call double @_Z9ray_traceRK3VecRK3RayRK5Scene( %struct.Vec* null, %struct.Ray* %tmp3, %struct.Scene* null )		; <double> [#uses=0]
-	br label %bb62
-
-bb62:		; preds = %bb71, %bb29
-	%tmp65 = icmp slt i32 0, 4		; <i1> [#uses=1]
-	br i1 %tmp65, label %bb29, label %bb68
-
-bb68:		; preds = %bb62
-	ret i32 0
-
-bb71:		; preds = %entry
-	%tmp74 = icmp slt i32 0, 4		; <i1> [#uses=1]
-	br i1 %tmp74, label %bb62, label %bb77
-
-bb77:		; preds = %bb71
-	ret i32 0
-
-bb108:		; preds = %entry
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-28-stacksave.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-28-stacksave.ll
deleted file mode 100644
index 5f884d4..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-28-stacksave.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {call.*stacksave}
-; PR1745
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
- at p = weak global i8* null		; <i8**> [#uses=1]
-
-define i32 @main() {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	br label %lab
-
-lab:		; preds = %cleanup31, %entry
-	%n.0 = phi i32 [ 0, %entry ], [ %tmp25, %cleanup31 ]		; <i32> [#uses=2]
-	%tmp2 = call i8* @llvm.stacksave( )		; <i8*> [#uses=2]
-	%tmp4 = srem i32 %n.0, 47		; <i32> [#uses=1]
-	%tmp5 = add i32 %tmp4, 1		; <i32> [#uses=5]
-	%tmp7 = sub i32 %tmp5, 1		; <i32> [#uses=0]
-	%tmp89 = zext i32 %tmp5 to i64		; <i64> [#uses=1]
-	%tmp10 = mul i64 %tmp89, 32		; <i64> [#uses=0]
-	%tmp12 = mul i32 %tmp5, 4		; <i32> [#uses=0]
-	%tmp1314 = zext i32 %tmp5 to i64		; <i64> [#uses=1]
-	%tmp15 = mul i64 %tmp1314, 32		; <i64> [#uses=0]
-	%tmp17 = mul i32 %tmp5, 4		; <i32> [#uses=1]
-	%tmp18 = alloca i8, i32 %tmp17		; <i8*> [#uses=1]
-	%tmp1819 = bitcast i8* %tmp18 to i32*		; <i32*> [#uses=2]
-	%tmp21 = getelementptr i32* %tmp1819, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp21, align 4
-	%tmp2223 = bitcast i32* %tmp1819 to i8*		; <i8*> [#uses=1]
-	volatile store i8* %tmp2223, i8** @p, align 4
-	%tmp25 = add i32 %n.0, 1		; <i32> [#uses=2]
-	%tmp27 = icmp sle i32 %tmp25, 999999		; <i1> [#uses=1]
-	%tmp2728 = zext i1 %tmp27 to i8		; <i8> [#uses=1]
-	%toBool = icmp ne i8 %tmp2728, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %cleanup31, label %cond_next
-
-cond_next:		; preds = %lab
-	call void @llvm.stackrestore( i8* %tmp2 )
-	ret i32 0
-
-cleanup31:		; preds = %lab
-	call void @llvm.stackrestore( i8* %tmp2 )
-	br label %lab
-}
-
-declare i8* @llvm.stacksave()
-
-declare void @llvm.stackrestore(i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-31-RangeCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-31-RangeCrash.ll
deleted file mode 100644
index 15e54b1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-31-RangeCrash.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
-target triple = "powerpc-apple-darwin8"
-
-define i32 @test() {
-entry:
-	%tmp50.i17 = icmp slt i32 0, 4		; <i1> [#uses=1]
-	br i1 %tmp50.i17, label %bb.i, label %calculateColorSpecificBlackLevel.exit
-
-bb.i:		; preds = %entry
-	br label %bb51.i.i
-
-bb27.i.i:		; preds = %bb51.i.i
-	%tmp31.i.i = load i16* null, align 2		; <i16> [#uses=2]
-	%tmp35.i.i = icmp ult i16 %tmp31.i.i, 1		; <i1> [#uses=1]
-	%tmp41.i.i = icmp ugt i16 %tmp31.i.i, -1		; <i1> [#uses=1]
-	%bothcond.i.i = or i1 %tmp35.i.i, %tmp41.i.i		; <i1> [#uses=1]
-	%bothcond1.i.i = zext i1 %bothcond.i.i to i32		; <i32> [#uses=1]
-	%tmp46.i.i = xor i32 %bothcond1.i.i, 1		; <i32> [#uses=1]
-	%count.0.i.i = add i32 %count.1.i.i, %tmp46.i.i		; <i32> [#uses=1]
-	%tmp50.i.i = add i32 %x.0.i.i, 2		; <i32> [#uses=1]
-	br label %bb51.i.i
-
-bb51.i.i:		; preds = %bb27.i.i, %bb.i
-	%count.1.i.i = phi i32 [ %count.0.i.i, %bb27.i.i ], [ 0, %bb.i ]		; <i32> [#uses=1]
-	%x.0.i.i = phi i32 [ %tmp50.i.i, %bb27.i.i ], [ 0, %bb.i ]		; <i32> [#uses=2]
-	%tmp54.i.i = icmp slt i32 %x.0.i.i, 0		; <i1> [#uses=1]
-	br i1 %tmp54.i.i, label %bb27.i.i, label %bb57.i.i
-
-bb57.i.i:		; preds = %bb51.i.i
-	ret i32 0
-
-calculateColorSpecificBlackLevel.exit:		; preds = %entry
-	ret i32 undef
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-31-StringCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-31-StringCrash.ll
deleted file mode 100644
index 6ba07e8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-10-31-StringCrash.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-
-declare void @__darwin_gcc3_preregister_frame_info()
-
-define void @_start(i32 %argc, i8** %argv, i8** %envp) {
-entry:
-	%tmp1 = bitcast void ()* @__darwin_gcc3_preregister_frame_info to i32*		; <i32*> [#uses=1]
-	%tmp2 = load i32* %tmp1, align 4		; <i32> [#uses=1]
-	%tmp3 = icmp ne i32 %tmp2, 0		; <i1> [#uses=1]
-	%tmp34 = zext i1 %tmp3 to i8		; <i8> [#uses=1]
-	%toBool = icmp ne i8 %tmp34, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %cond_true, label %return
-
-cond_true:		; preds = %entry
-	ret void
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-07-OpaqueAlignCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-07-OpaqueAlignCrash.ll
deleted file mode 100644
index f3caf07..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-07-OpaqueAlignCrash.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR1780
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-
-%opaque_t = type opaque
-
-%op_ts = type {opaque, i32}
-
- at g = external global %opaque_t
- at h = external global %op_ts
-
-define i32 @foo() {
-entry:
-        %x = load i8* bitcast (%opaque_t* @g to i8*)
-        %y = load i32* bitcast (%op_ts* @h to i32*)
-	%z = zext i8 %x to i32
-	%r = add i32 %y, %z
-        ret i32 %r
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-15-CompareMiscomp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-15-CompareMiscomp.ll
deleted file mode 100644
index d7ac211..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-15-CompareMiscomp.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {icmp eq i32 %In, 1}
-; PR1800
-
-define i1 @test(i32 %In) {
-	%c1 = icmp sgt i32 %In, -1
-	%c2 = icmp eq i32 %In, 1
-	%V = and i1 %c1, %c2
-	ret i1 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-22-IcmpCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-22-IcmpCrash.ll
deleted file mode 100644
index 1f211b6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-22-IcmpCrash.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR1817
-
-define i1 @test1(i32 %X) {
-	%A = icmp slt i32 %X, 10
-	%B = icmp ult i32 %X, 10
-	%C = and i1 %A, %B
-	ret i1 %C
-}
-
-define i1 @test2(i32 %X) {
-	%A = icmp slt i32 %X, 10
-	%B = icmp ult i32 %X, 10
-	%C = or i1 %A, %B
-	ret i1 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-25-CompatibleAttributes.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-25-CompatibleAttributes.ll
deleted file mode 100644
index 60a4b3b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-11-25-CompatibleAttributes.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep bitcast
-; PR1716
-
- at .str = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	%tmp32 = tail call i32 (i8* noalias , ...) nounwind * bitcast (i32 (i8*, ...) nounwind * @printf to i32 (i8* noalias , ...) nounwind *)( i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0) noalias , i32 0 ) nounwind 		; <i32> [#uses=0]
-	ret i32 undef
-}
-
-declare i32 @printf(i8*, ...) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-10-ConstFoldCompare.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-10-ConstFoldCompare.ll
deleted file mode 100644
index 80df6fb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-10-ConstFoldCompare.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {ret i1 0}
-; PR1850
-
-define i1 @test() {
-	%cond = icmp ule i8* inttoptr (i64 4294967297 to i8*), inttoptr (i64 5 to i8*)
-	ret i1 %cond
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-12-GEPScale.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-12-GEPScale.ll
deleted file mode 100644
index 6580f90..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-12-GEPScale.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep 1431655764
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-
-define i8* @foo([100 x {i8,i8,i8}]* %x) {
-entry:
-        %p = bitcast [100 x {i8,i8,i8}]* %x to i8*
-        %q = getelementptr i8* %p, i32 -4
-        ret i8* %q
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-16-AsmNoUnwind.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-16-AsmNoUnwind.ll
deleted file mode 100644
index 336c6d5..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-16-AsmNoUnwind.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep nounwind
-
-define void @bar() {
-entry:
-        call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"( )
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-18-AddSelCmpSub.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-18-AddSelCmpSub.ll
deleted file mode 100644
index e44fc6f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-18-AddSelCmpSub.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {add} | count 1
-
-define i32 @foo(i32 %a) {
-entry:
-        %tmp15 = sub i32 99, %a         ; <i32> [#uses=2]
-        %tmp16 = icmp slt i32 %tmp15, 0         ; <i1> [#uses=1]
-        %smax = select i1 %tmp16, i32 0, i32 %tmp15             ; <i32> [#uses=1]
-        %tmp12 = add i32 %smax, %a              ; <i32> [#uses=1]
-        %tmp13 = add i32 %tmp12, 1              ; <i32> [#uses=1]
-        ret i32 %tmp13
-}
-
-define i32 @bar(i32 %a) {
-entry:
-        %tmp15 = sub i32 99, %a         ; <i32> [#uses=2]
-        %tmp16 = icmp slt i32 %tmp15, 0         ; <i1> [#uses=1]
-        %smax = select i1 %tmp16, i32 0, i32 %tmp15             ; <i32> [#uses=1]
-        %tmp12 = add i32 %smax, %a              ; <i32> [#uses=1]
-        ret i32 %tmp12
-}
-
-define i32 @fun(i32 %a) {
-entry:
-        %tmp15 = sub i32 99, %a         ; <i32> [#uses=1]
-        %tmp16 = icmp slt i32 %a, 0         ; <i1> [#uses=1]
-        %smax = select i1 %tmp16, i32 0, i32 %tmp15             ; <i32> [#uses=1]
-        %tmp12 = add i32 %smax, %a              ; <i32> [#uses=1]
-        ret i32 %tmp12
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-28-IcmpSub2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-28-IcmpSub2.ll
deleted file mode 100644
index 5e95993..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-28-IcmpSub2.ll
+++ /dev/null
@@ -1,89 +0,0 @@
-; RUN: llvm-as < %s | opt -mem2reg -instcombine | llvm-dis | grep "ret i32 1" | count 8
-
-define i32 @test1() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp ule i32 %sub, 0
-	%retval = select i1 %cmp, i32 0, i32 1
-	ret i32 %retval
-}
-
-define i32 @test2() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp ugt i32 %sub, 0
-	%retval = select i1 %cmp, i32 1, i32 0
-	ret i32 %retval
-}
-
-define i32 @test3() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp slt i32 %sub, 0
-	%retval = select i1 %cmp, i32 1, i32 0
-	ret i32 %retval
-}
-
-define i32 @test4() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp sle i32 %sub, 0
-	%retval = select i1 %cmp, i32 1, i32 0
-	ret i32 %retval
-}
-
-define i32 @test5() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp sge i32 %sub, 0
-	%retval = select i1 %cmp, i32 0, i32 1
-	ret i32 %retval
-}
-
-define i32 @test6() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp sgt i32 %sub, 0
-	%retval = select i1 %cmp, i32 0, i32 1
-	ret i32 %retval
-}
-
-define i32 @test7() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp eq i32 %sub, 0
-	%retval = select i1 %cmp, i32 0, i32 1
-	ret i32 %retval
-}
-
-define i32 @test8() {
-entry:
-	%z = alloca i32
-	store i32 0, i32* %z
-	%tmp = load i32* %z
-	%sub = sub i32 %tmp, 1
-	%cmp = icmp ne i32 %sub, 0
-	%retval = select i1 %cmp, i32 1, i32 0
-	ret i32 %retval
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll
deleted file mode 100644
index 277b4f0..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; Ignore stderr, we expect warnings there
-; RUN: llvm-as < %s 2> /dev/null | opt -instcombine | llvm-dis | not grep bitcast
-
-define void @a() {
-	ret void
-}
-
-define i32 @b(i32* inreg  %x) signext  {
-	ret i32 0
-}
-
-define void @c(...) {
-	ret void
-}
-
-define void @g(i32* %y) {
-	call void bitcast (void ()* @a to void (i32*)*)( i32* noalias  %y )
-	call <2 x i32> bitcast (i32 (i32*)* @b to <2 x i32> (i32*)*)( i32* inreg  null )		; <<2 x i32>>:1 [#uses=0]
-	%x = call i64 bitcast (i32 (i32*)* @b to i64 (i32)*)( i32 0 )		; <i64> [#uses=0]
-	call void bitcast (void (...)* @c to void (i32)*)( i32 0 )
-	call void bitcast (void (...)* @c to void (i32)*)( i32 zeroext  0 )
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-CastCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-CastCrash.ll
deleted file mode 100644
index 1d816d4..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-CastCrash.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define <2 x i32> @f() {
-	ret <2 x i32> undef
-}
-
-define i32 @g() {
-	%x = call i32 bitcast (<2 x i32> ()* @f to i32 ()*)( )		; <i32> [#uses=1]
-	ret i32 %x
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-VoidCast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-VoidCast.ll
deleted file mode 100644
index 015210a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-06-VoidCast.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep bitcast
-
-define void @f(i16 %y) {
-	ret void
-}
-
-define i32 @g(i32 %y) {
-	%x = call i32 bitcast (void (i16)* @f to i32 (i32)*)( i32 %y )		; <i32> [#uses=1]
-	ret i32 %x
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-13-AndCmpCmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-13-AndCmpCmp.ll
deleted file mode 100644
index 71d5bf7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-13-AndCmpCmp.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and
-; PR1907
-
-define i1 @test(i32 %c84.17) {
-	%tmp2696 = icmp ne i32 %c84.17, 34		; <i1> [#uses=2]
- 	%tmp2699 = icmp sgt i32 %c84.17, -1		; <i1> [#uses=1]
- 	%tmp2703 = and i1 %tmp2696, %tmp2699		; <i1> [#uses=1]
-	ret i1 %tmp2703
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-13-NoBitCastAttributes.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-13-NoBitCastAttributes.ll
deleted file mode 100644
index d791d7b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-13-NoBitCastAttributes.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep bitcast | count 2
-
-define i32 @b(i32* inreg  %x) signext  {
-	ret i32 0
-}
-
-define void @c(...) {
-	ret void
-}
-
-define void @g(i32* %y) {
-	call i32 bitcast (i32 (i32*)* @b to i32 (i32)*)( i32 zeroext  0 )		; <i32>:2 [#uses=0]
-	call void bitcast (void (...)* @c to void (i32*)*)( i32* sret  null )
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-14-DoubleNest.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-14-DoubleNest.ll
deleted file mode 100644
index 5381db2..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-14-DoubleNest.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-	%struct.FRAME.nest = type { i32, i32 (i32*)* }
-	%struct.__builtin_trampoline = type { [10 x i8] }
-
-declare i8* @llvm.init.trampoline(i8*, i8*, i8*) nounwind 
-
-declare i32 @f(%struct.FRAME.nest* nest , i32*)
-
-define i32 @nest(i32 %n) {
-entry:
-	%FRAME.0 = alloca %struct.FRAME.nest, align 8		; <%struct.FRAME.nest*> [#uses=3]
-	%TRAMP.216 = alloca [10 x i8], align 16		; <[10 x i8]*> [#uses=1]
-	%TRAMP.216.sub = getelementptr [10 x i8]* %TRAMP.216, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp3 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %n, i32* %tmp3, align 8
-	%FRAME.06 = bitcast %struct.FRAME.nest* %FRAME.0 to i8*		; <i8*> [#uses=1]
-	%tramp = call i8* @llvm.init.trampoline( i8* %TRAMP.216.sub, i8* bitcast (i32 (%struct.FRAME.nest*, i32*)* @f to i8*), i8* %FRAME.06 )		; <i8*> [#uses=1]
-	%tmp7 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 1		; <i32 (i32*)**> [#uses=1]
-	%tmp89 = bitcast i8* %tramp to i32 (i32*)*		; <i32 (i32*)*> [#uses=2]
-	store i32 (i32*)* %tmp89, i32 (i32*)** %tmp7, align 8
-	%tmp2.i = call i32 %tmp89( i32* nest  null )		; <i32> [#uses=1]
-	ret i32 %tmp2.i
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-14-VarArgTrampoline.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-14-VarArgTrampoline.ll
deleted file mode 100644
index e35794a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-14-VarArgTrampoline.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zeroext
-
-	%struct.FRAME.nest = type { i32, i32 (...)* }
-	%struct.__builtin_trampoline = type { [10 x i8] }
-
-declare i8* @llvm.init.trampoline(i8*, i8*, i8*) nounwind 
-
-declare i32 @f(%struct.FRAME.nest* nest , ...)
-
-define i32 @nest(i32 %n) {
-entry:
-	%FRAME.0 = alloca %struct.FRAME.nest, align 8		; <%struct.FRAME.nest*> [#uses=3]
-	%TRAMP.216 = alloca [10 x i8], align 16		; <[10 x i8]*> [#uses=1]
-	%TRAMP.216.sub = getelementptr [10 x i8]* %TRAMP.216, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp3 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %n, i32* %tmp3, align 8
-	%FRAME.06 = bitcast %struct.FRAME.nest* %FRAME.0 to i8*		; <i8*> [#uses=1]
-	%tramp = call i8* @llvm.init.trampoline( i8* %TRAMP.216.sub, i8* bitcast (i32 (%struct.FRAME.nest*, ...)* @f to i8*), i8* %FRAME.06 )		; <i8*> [#uses=1]
-	%tmp7 = getelementptr %struct.FRAME.nest* %FRAME.0, i32 0, i32 1		; <i32 (...)**> [#uses=1]
-	%tmp89 = bitcast i8* %tramp to i32 (...)*		; <i32 (...)*> [#uses=2]
-	store i32 (...)* %tmp89, i32 (...)** %tmp7, align 8
-	%tmp2.i = call i32 (...)* %tmp89( i32 zeroext 0 )		; <i32> [#uses=1]
-	ret i32 %tmp2.i
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll
deleted file mode 100644
index 0c2cf54..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {icmp s}
-; PR1940
-
-define i1 @test1(i8 %A, i8 %B) {
-        %a = zext i8 %A to i32
-        %b = zext i8 %B to i32
-        %c = icmp sgt i32 %a, %b
-        ret i1 %c
-}
-
-define i1 @test2(i8 %A, i8 %B) {
-        %a = sext i8 %A to i32
-        %b = sext i8 %B to i32
-        %c = icmp ugt i32 %a, %b
-        ret i1 %c
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll
deleted file mode 100644
index 8de0959..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-
-define i16 @test1(i16 %a) {
-        %tmp = zext i16 %a to i32               ; <i32> [#uses=2]
-        %tmp21 = lshr i32 %tmp, 8               ; <i32> [#uses=1]
-        %tmp5 = mul i32 %tmp, 5         ; <i32> [#uses=1]
-        %tmp.upgrd.32 = or i32 %tmp21, %tmp5            ; <i32> [#uses=1]
-        %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16           ; <i16> [#uses=1]
-        ret i16 %tmp.upgrd.3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll
deleted file mode 100644
index 346f90f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep select
-
-define double @fold(i1 %a, double %b) {
-%s = select i1 %a, double 0., double 1.
-%c = fdiv double %b, %s
-ret double %c
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-29-AddICmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-29-AddICmp.ll
deleted file mode 100644
index d937f7b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-01-29-AddICmp.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {a.off}
-; PR1949
-
-define i1 @test1(i32 %a) {
-  %a.off = add i32 %a, 4          ; <i32> [#uses=1]
-  %C = icmp ult i32 %a.off, 4             ; <i1> [#uses=1]
-  ret i1 %C
-}
-
-define i1 @test2(i32 %a) {
-  %a.off = sub i32 %a, 4          ; <i32> [#uses=1]
-  %C = icmp ugt i32 %a.off, -5             ; <i1> [#uses=1]
-  ret i1 %C
-}
-
-define i1 @test3(i32 %a) {
-  %a.off = add i32 %a, 4          ; <i32> [#uses=1]
-  %C = icmp slt i32 %a.off, 2147483652             ; <i1> [#uses=1]
-  ret i1 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-13-MulURem.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-13-MulURem.ll
deleted file mode 100644
index 6697383..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-13-MulURem.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep rem
-; PR1933
-
-define i32 @fold(i32 %a) {
-  %s = mul i32 %a, 3
-  %c = urem i32 %s, 3
-  ret i32 %c
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-16-SDivOverflow.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-16-SDivOverflow.ll
deleted file mode 100644
index cd61a10..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-16-SDivOverflow.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i.* 0} | count 2
-; PR2048
-
-define i32 @i(i32 %a) {
-  %tmp1 = sdiv i32 %a, -1431655765
-  %tmp2 = sdiv i32 %tmp1, 3
-  ret i32 %tmp2
-}
-
-define i8 @j(i8 %a) {
-  %tmp1 = sdiv i8 %a, 64
-  %tmp2 = sdiv i8 %tmp1, 3
-  ret i8 %tmp2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-16-SDivOverflow2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-16-SDivOverflow2.ll
deleted file mode 100644
index 0e260c4..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-16-SDivOverflow2.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {sdiv i8 \%a, 9}
-; PR2048
-
-define i8 @i(i8 %a) {
-  %tmp1 = sdiv i8 %a, -3
-  %tmp2 = sdiv i8 %tmp1, -3
-  ret i8 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-23-MulSub.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-23-MulSub.ll
deleted file mode 100644
index a74e98d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-23-MulSub.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep mul
-
-define i26 @test(i26 %a) nounwind  {
-entry:
-	%_add = mul i26 %a, 2885		; <i26> [#uses=1]
-	%_shl2 = mul i26 %a, 2884		; <i26> [#uses=1]
-	%_sub = sub i26 %_add, %_shl2		; <i26> [#uses=1]
-	ret i26 %_sub
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-28-OrFCmpCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-28-OrFCmpCrash.ll
deleted file mode 100644
index ea02403..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-02-28-OrFCmpCrash.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-; rdar://5771353
-
-define float @test(float %x, x86_fp80 %y) nounwind readonly  {
-entry:
-	%tmp67 = fcmp uno x86_fp80 %y, 0xK00000000000000000000		; <i1> [#uses=1]
-	%tmp71 = fcmp uno float %x, 0.000000e+00		; <i1> [#uses=1]
-	%bothcond = or i1 %tmp67, %tmp71		; <i1> [#uses=1]
-	br i1 %bothcond, label %bb74, label %bb80
-
-bb74:		; preds = %entry
-	ret float 0.000000e+00
-
-bb80:		; preds = %entry
-	ret float 0.000000e+00
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-03-13-IntToPtr.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-03-13-IntToPtr.ll
deleted file mode 100644
index 31e7e35..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-03-13-IntToPtr.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {16} | count 1
-
-define i8* @bork(i8** %qux) {
-  %tmp275 = load i8** %qux, align 1
-  %tmp275276 = ptrtoint i8* %tmp275 to i32
-  %tmp277 = add i32 %tmp275276, 16
-  %tmp277278 = inttoptr i32 %tmp277 to i8*
-  ret i8* %tmp277278
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-22-ByValBitcast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-22-ByValBitcast.ll
deleted file mode 100644
index 0201213..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-22-ByValBitcast.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-;; The bitcast cannot be eliminated because byval arguments need
-;; the correct type, or at least a type of the correct size.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep bitcast
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9"
-	%struct.NSRect = type { [4 x float] }
-
-define void @foo(i8* %context) nounwind  {
-entry:
-	%tmp1 = bitcast i8* %context to %struct.NSRect*		; <%struct.NSRect*> [#uses=1]
-	call void (i32, ...)* @bar( i32 3, %struct.NSRect* byval align 4  %tmp1 ) nounwind 
-	ret void
-}
-
-declare void @bar(i32, ...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-28-VolatileStore.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-28-VolatileStore.ll
deleted file mode 100644
index 9bfe7aa..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-28-VolatileStore.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {volatile store}
-
-define void @test() {
-	%votf = alloca <4 x float>		; <<4 x float>*> [#uses=1]
-	volatile store <4 x float> zeroinitializer, <4 x float>* %votf, align 16
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadDontMerge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadDontMerge.ll
deleted file mode 100644
index e43c22d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadDontMerge.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {volatile load} | count 2
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
- at g_1 = internal global i32 0		; <i32*> [#uses=3]
-
-define i32 @main() nounwind  {
-entry:
-	%tmp93 = icmp slt i32 0, 10		; <i1> [#uses=0]
-	%tmp34 = volatile load i32* @g_1, align 4		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%b.0.reg2mem.0 = phi i32 [ 0, %entry ], [ %tmp6, %bb ]		; <i32> [#uses=1]
-	%tmp3.reg2mem.0 = phi i32 [ %tmp34, %entry ], [ %tmp3, %bb ]		; <i32> [#uses=1]
-	%tmp4 = add i32 %tmp3.reg2mem.0, 5		; <i32> [#uses=1]
-	volatile store i32 %tmp4, i32* @g_1, align 4
-	%tmp6 = add i32 %b.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp9 = icmp slt i32 %tmp6, 10		; <i1> [#uses=1]
-	%tmp3 = volatile load i32* @g_1, align 4		; <i32> [#uses=1]
-	br i1 %tmp9, label %bb, label %bb11
-
-bb11:		; preds = %bb
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadMerge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadMerge.ll
deleted file mode 100644
index 293052a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadMerge.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {volatile load} | count 2
-; PR2262
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
- at g_1 = internal global i32 0		; <i32*> [#uses=3]
-
-define i32 @main(i32 %i) nounwind  {
-entry:
-	%tmp93 = icmp slt i32 %i, 10		; <i1> [#uses=0]
-	%tmp34 = volatile load i32* @g_1, align 4		; <i32> [#uses=1]
-	br i1 %tmp93, label %bb11, label %bb
-
-bb:		; preds = %bb, %entry
-	%tmp3 = volatile load i32* @g_1, align 4		; <i32> [#uses=1]
-	br label %bb11
-
-bb11:		; preds = %bb
-	%tmp4 = phi i32 [ %tmp34, %entry ], [ %tmp3, %bb ]		; <i32> [#uses=1]
-	ret i32 %tmp4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-08-LiveStoreDelete.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-08-LiveStoreDelete.ll
deleted file mode 100644
index e9cc97d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-08-LiveStoreDelete.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {store i8} | count 3
-; PR2297
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
-
-define i32 @a() nounwind  {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp1 = call i8* @malloc( i32 10 ) nounwind 		; <i8*> [#uses=5]
-	%tmp3 = getelementptr i8* %tmp1, i32 1		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp3, align 1
-	%tmp5 = getelementptr i8* %tmp1, i32 0		; <i8*> [#uses=1]
-	store i8 1, i8* %tmp5, align 1
-	%tmp7 = call i32 @strlen( i8* %tmp1 ) nounwind readonly 		; <i32> [#uses=1]
-	%tmp9 = getelementptr i8* %tmp1, i32 0		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp9, align 1
-	%tmp11 = call i32 (...)* @b( i8* %tmp1 ) nounwind 		; <i32> [#uses=0]
-	ret i32 %tmp7
-}
-
-declare i8* @malloc(i32) nounwind 
-
-declare i32 @strlen(i8*) nounwind readonly 
-
-declare i32 @b(...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-08-StrLenSink.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-08-StrLenSink.ll
deleted file mode 100644
index e81e828..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-08-StrLenSink.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | %prcontext strlen 1 | not grep ret
-; PR2297
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
-
-define i32 @a() nounwind  {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp1 = call i8* @malloc( i32 10 ) nounwind 		; <i8*> [#uses=5]
-	%tmp3 = getelementptr i8* %tmp1, i32 1		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp3, align 1
-	%tmp5 = getelementptr i8* %tmp1, i32 0		; <i8*> [#uses=1]
-	store i8 1, i8* %tmp5, align 1
-	%tmp7 = call i32 @strlen( i8* %tmp1 ) nounwind readonly 		; <i32> [#uses=1]
-	%tmp9 = getelementptr i8* %tmp1, i32 0		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp9, align 1
-	%tmp11 = call i32 (...)* @b( i8* %tmp1 ) nounwind 		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret i32 %tmp7
-}
-
-declare i8* @malloc(i32) nounwind 
-
-declare i32 @strlen(i8*) nounwind readonly 
-
-declare i32 @b(...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-09-SinkOfInvoke.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-09-SinkOfInvoke.ll
deleted file mode 100644
index 4dd29a7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-09-SinkOfInvoke.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR2303
-	%"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
-	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
-
-declare i32* @_ZNSt6locale5facet15_S_get_c_localeEv()
-
-declare i32** @__ctype_toupper_loc() readnone 
-
-declare i32** @__ctype_tolower_loc() readnone 
-
-define void @_ZNSt5ctypeIcEC2EPiPKtbm(%"struct.std::ctype<char>"* %this, i32* %unnamed_arg, i16* %__table, i8 zeroext  %__del, i64 %__refs) {
-entry:
-	%tmp8 = invoke i32* @_ZNSt6locale5facet15_S_get_c_localeEv( )
-			to label %invcont unwind label %lpad		; <i32*> [#uses=0]
-
-invcont:		; preds = %entry
-	%tmp32 = invoke i32** @__ctype_toupper_loc( ) readnone 
-			to label %invcont31 unwind label %lpad		; <i32**> [#uses=0]
-
-invcont31:		; preds = %invcont
-	%tmp38 = invoke i32** @__ctype_tolower_loc( ) readnone 
-			to label %invcont37 unwind label %lpad		; <i32**> [#uses=1]
-
-invcont37:		; preds = %invcont31
-	%tmp39 = load i32** %tmp38, align 8		; <i32*> [#uses=1]
-	%tmp41 = getelementptr %"struct.std::ctype<char>"* %this, i32 0, i32 4		; <i32**> [#uses=1]
-	store i32* %tmp39, i32** %tmp41, align 8
-	ret void
-
-lpad:		; preds = %invcont31, %invcont, %entry
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-17-InfLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-17-InfLoop.ll
deleted file mode 100644
index 9cfbd6f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-17-InfLoop.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR2339
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-s0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-
-declare void @BZALLOC(i32)
-
-define void @f(i32) {
-entry:
-	%blockSize100k = alloca i32		; <i32*> [#uses=2]
-	store i32 %0, i32* %blockSize100k
-	%n = alloca i32		; <i32*> [#uses=2]
-	load i32* %blockSize100k		; <i32>:1 [#uses=1]
-	store i32 %1, i32* %n
-	load i32* %n		; <i32>:2 [#uses=1]
-	add i32 %2, 2		; <i32>:3 [#uses=1]
-	mul i32 %3, ptrtoint (i32* getelementptr (i32* null, i32 1) to i32)		; <i32>:4 [#uses=1]
-	call void @BZALLOC( i32 %4 )
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-18-FoldIntToPtr.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-18-FoldIntToPtr.ll
deleted file mode 100644
index e994399..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-18-FoldIntToPtr.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 false} | count 2
-; PR2329
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define i1 @f1() {
-  ret i1 icmp eq (i8* inttoptr (i32 1 to i8*), i8* inttoptr (i32 2 to i8*))
-}
-
-define i1 @f2() {
-  ret i1 icmp eq (i8* inttoptr (i16 1 to i8*), i8* inttoptr (i16 2 to i8*))
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-22-IDivVector.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-22-IDivVector.ll
deleted file mode 100644
index ad70b65..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-22-IDivVector.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-define <3 x i8> @f(<3 x i8> %i) {
-  %A = sdiv <3 x i8> %i, %i
-  ret <3 x i8> %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-22-NegValVector.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-22-NegValVector.ll
deleted file mode 100644
index f2511b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-22-NegValVector.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sub
-
-define <3 x i8> @f(<3 x i8> %a) {
-  %A = sub <3 x i8> zeroinitializer, %a
-  %B = mul <3 x i8> %A, <i8 5, i8 5, i8 5>
-  ret <3 x i8> %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-23-CompareFold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-23-CompareFold.ll
deleted file mode 100644
index c0f34e6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-23-CompareFold.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 false}
-; PR2359
-define i1 @f(i8* %x) {
-entry:
-       %tmp462 = load i8* %x, align 1          ; <i8> [#uses=1]
-       %tmp462463 = sitofp i8 %tmp462 to float         ; <float> [#uses=1]
-       %tmp464 = fcmp ugt float %tmp462463, 0x47EFFFFFE0000000         ; <i1>
-       ret i1 %tmp464
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-31-AddBool.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-31-AddBool.ll
deleted file mode 100644
index 7008587..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-31-AddBool.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {xor}
-; PR2389
-
-define i1 @test(i1 %a, i1 %b) {
-  %A = add i1 %a, %b
-  ret i1 %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-31-Bools.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-31-Bools.ll
deleted file mode 100644
index f3df49b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-05-31-Bools.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: grep {xor} %t
-; RUN: grep {and} %t
-; RUN: not grep {div} %t
-
-define i1 @foo1(i1 %a, i1 %b) {
-  %A = sub i1 %a, %b
-  ret i1 %A
-}
-
-define i1 @foo2(i1 %a, i1 %b) {
-  %A = mul i1 %a, %b
-  ret i1 %A
-}
-
-define i1 @foo3(i1 %a, i1 %b) {
-  %A = udiv i1 %a, %b
-  ret i1 %A
-}
-
-define i1 @foo4(i1 %a, i1 %b) {
-  %A = sdiv i1 %a, %b
-  ret i1 %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-05-ashr-crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-05-ashr-crash.ll
deleted file mode 100644
index ec13bbf..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-05-ashr-crash.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-
-define i65 @foo(i65 %x) nounwind  {
-entry:
-	%tmp2 = ashr i65 %x, 65		; <i65> [#uses=1]
-	ret i65 %tmp2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-08-ICmpPHI.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-08-ICmpPHI.ll
deleted file mode 100644
index da63dd6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-08-ICmpPHI.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {phi i32} | count 2
-
-define void @test() nounwind  {
-entry:
-	br label %bb
-
-bb:		; preds = %bb16, %entry
-	%i.0 = phi i32 [ 0, %entry ], [ %indvar.next, %somebb ]		; <i32> [#uses=1]
-	%x.0 = phi i32 [ 37, %entry ], [ %tmp17, %somebb ]		; <i32> [#uses=1]
-	%tmp = tail call i32 (...)* @bork( ) nounwind 		; <i32> [#uses=0]
-	%tmp1 = tail call i32 (...)* @bork( ) nounwind 		; <i32> [#uses=0]
-	%tmp2 = tail call i32 (...)* @bork( ) nounwind 		; <i32> [#uses=1]
-	%tmp3 = icmp eq i32 %tmp2, 0		; <i1> [#uses=1]
-	br i1 %tmp3, label %bb7, label %bb5
-
-bb5:		; preds = %bb
-	%tmp6 = tail call i32 (...)* @bork( ) nounwind 		; <i32> [#uses=0]
-	br label %bb7
-
-bb7:		; preds = %bb5, %bb
-	%tmp8 = tail call i32 (...)* @bork( ) nounwind 		; <i32> [#uses=0]
-	%tmp9 = tail call i32 (...)* @bork( ) nounwind 		; <i32> [#uses=0]
-	%tmp11 = icmp eq i32 %x.0, 37		; <i1> [#uses=1]
-	br i1 %tmp11, label %bb14, label %bb16
-
-bb14:		; preds = %bb7
-	%tmp15 = tail call i32 (...)* @bar( ) nounwind 		; <i32> [#uses=0]
-	br label %bb16
-
-bb16:		; preds = %bb14, %bb7
-	%tmp17 = tail call i32 (...)* @zap( ) nounwind 		; <i32> [#uses=1]
-	%indvar.next = add i32 %i.0, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, 42		; <i1> [#uses=1]
-	br i1 %exitcond, label %return, label %somebb
-
-somebb:
-	br label %bb
-
-return:		; preds = %bb16
-	ret void
-}
-
-declare i32 @bork(...)
-
-declare i32 @bar(...)
-
-declare i32 @zap(...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-13-InfiniteLoopStore.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-13-InfiniteLoopStore.ll
deleted file mode 100644
index c671eb8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-13-InfiniteLoopStore.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {store i32} | count 2
-
- at g_139 = global i32 0           ; <i32*> [#uses=2]
-
-define void @func_56(i32 %p_60) nounwind  {
-entry:
-        store i32 1, i32* @g_139, align 4
-        %tmp1 = icmp ne i32 %p_60, 0            ; <i1> [#uses=1]
-        %tmp12 = zext i1 %tmp1 to i8            ; <i8> [#uses=1]
-        %toBool = icmp ne i8 %tmp12, 0          ; <i1> [#uses=1]
-        br i1 %toBool, label %bb, label %return
-
-bb:             ; preds = %bb, %entry
-        store i32 1, i32* @g_139, align 4
-        br label %bb
-
-return:         ; preds = %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-13-ReadOnlyCallStore.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-13-ReadOnlyCallStore.ll
deleted file mode 100644
index 3f23098..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-13-ReadOnlyCallStore.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {store i8} | count 2
-
-define i32 @a(i8* %s) nounwind  {
-entry:
-	store i8 0, i8* %s, align 1 ; This store cannot be eliminated!
-	%tmp3 = call i32 @strlen( i8* %s ) nounwind readonly
-	%tmp5 = icmp ne i32 %tmp3, 0
-	br i1 %tmp5, label %bb, label %bb8
-
-bb:		; preds = %entry
-	store i8 0, i8* %s, align 1
-	br label %bb8
-
-bb8:
-	ret i32 %tmp3
-}
-
-declare i32 @strlen(i8*) nounwind readonly 
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-19-UncondLoad.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-19-UncondLoad.ll
deleted file mode 100644
index fa3dc0a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-19-UncondLoad.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep load | count 3
-; PR2471
-
-declare i32 @x(i32*)
-define i32 @b(i32* %a, i32* %b) {
-entry:
-        %tmp1 = load i32* %a            
-        %tmp3 = load i32* %b           
-        %add = add i32 %tmp1, %tmp3   
-        %call = call i32 @x( i32* %a )
-        %tobool = icmp ne i32 %add, 0
-	; not safe to turn into an uncond load
-        %cond = select i1 %tobool, i32* %b, i32* %a             
-        %tmp8 = load i32* %cond       
-        ret i32 %tmp8
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-21-CompareMiscomp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-21-CompareMiscomp.ll
deleted file mode 100644
index e2d7100..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-21-CompareMiscomp.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {icmp eq i32 %In, 15}
-; PR2479
-; (See also PR1800.)
-
-define i1 @test(i32 %In) {
-	%c1 = icmp ugt i32 %In, 13
-	%c2 = icmp eq i32 %In, 15
-	%V = and i1 %c1, %c2
-	ret i1 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-24-StackRestore.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-24-StackRestore.ll
deleted file mode 100644
index 9ed7be3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-06-24-StackRestore.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {call.*llvm.stackrestore}
-; PR2488
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
- at p = weak global i8* null		; <i8**> [#uses=2]
-
-define i32 @main() nounwind  {
-entry:
-	%tmp248 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%tmp2752 = alloca i32		; <i32*> [#uses=2]
-	%tmpcast53 = bitcast i32* %tmp2752 to i8*		; <i8*> [#uses=1]
-	store i32 2, i32* %tmp2752, align 4
-	volatile store i8* %tmpcast53, i8** @p, align 4
-	br label %bb44
-
-bb:		; preds = %bb44
-	ret i32 0
-
-bb44:		; preds = %bb44, %entry
-	%indvar = phi i32 [ 0, %entry ], [ %tmp3857, %bb44 ]		; <i32> [#uses=1]
-	%tmp249 = phi i8* [ %tmp248, %entry ], [ %tmp2, %bb44 ]		; <i8*> [#uses=1]
-	%tmp3857 = add i32 %indvar, 1		; <i32> [#uses=3]
-	call void @llvm.stackrestore( i8* %tmp249 )
-	%tmp2 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%tmp4 = srem i32 %tmp3857, 1000		; <i32> [#uses=2]
-	%tmp5 = add i32 %tmp4, 1		; <i32> [#uses=1]
-	%tmp27 = alloca i32, i32 %tmp5		; <i32*> [#uses=3]
-	%tmpcast = bitcast i32* %tmp27 to i8*		; <i8*> [#uses=1]
-	store i32 1, i32* %tmp27, align 4
-	%tmp34 = getelementptr i32* %tmp27, i32 %tmp4		; <i32*> [#uses=1]
-	store i32 2, i32* %tmp34, align 4
-	volatile store i8* %tmpcast, i8** @p, align 4
-	%exitcond = icmp eq i32 %tmp3857, 999999		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb, label %bb44
-}
-
-declare i8* @llvm.stacksave() nounwind 
-
-declare void @llvm.stackrestore(i8*) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-AndICmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-AndICmp.ll
deleted file mode 100644
index c600241..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-AndICmp.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep icmp | count 1
-; PR2330
-
-define i1 @foo(i32 %a, i32 %b) nounwind {
-entry:
-	icmp ult i32 %a, 8		; <i1>:0 [#uses=1]
-	icmp ult i32 %b, 8		; <i1>:1 [#uses=1]
-	and i1 %1, %0		; <i1>:2 [#uses=1]
-	ret i1 %2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-ShiftOneAndOne.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-ShiftOneAndOne.ll
deleted file mode 100644
index 956b9a6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-ShiftOneAndOne.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {icmp ne i32 \%a}
-; PR2330
-
-define i1 @foo(i32 %a) nounwind  {
-entry:
-	%tmp15 = shl i32 1, %a		; <i32> [#uses=1]
-	%tmp237 = and i32 %tmp15, 1		; <i32> [#uses=1]
-	%toBool = icmp eq i32 %tmp237, 0		; <i1> [#uses=1]
-	ret i1 %toBool
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-SubAnd.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-SubAnd.ll
deleted file mode 100644
index bf3afb9..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-SubAnd.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep -v {i32 8}
-; PR2330
-
-define i32 @a(i32 %a) nounwind  {
-entry:
-	%tmp2 = sub i32 8, %a		; <i32> [#uses=1]
-	%tmp3 = and i32 %tmp2, 7		; <i32> [#uses=1]
-	ret i32 %tmp3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-VolatileLoadMerge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-VolatileLoadMerge.ll
deleted file mode 100644
index af728eb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-08-VolatileLoadMerge.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {volatile load} | count 2
-; PR2496
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
- at g_1 = internal global i32 0		; <i32*> [#uses=3]
-
-define i32 @main() nounwind  {
-entry:
-	%tmp93 = icmp slt i32 0, 10		; <i1> [#uses=0]
-	%tmp34 = volatile load i32* @g_1, align 4		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%b.0.reg2mem.0 = phi i32 [ 0, %entry ], [ %tmp6, %bb ]		; <i32> [#uses=1]
-	%tmp3.reg2mem.0 = phi i32 [ %tmp3, %bb ], [ %tmp34, %entry ]
-	%tmp4 = add i32 %tmp3.reg2mem.0, 5		; <i32> [#uses=1]
-	volatile store i32 %tmp4, i32* @g_1, align 4
-	%tmp6 = add i32 %b.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp9 = icmp slt i32 %tmp6, 10		; <i1> [#uses=1]
-	%tmp3 = volatile load i32* @g_1, align 4		; <i32> [#uses=1]
-	br i1 %tmp9, label %bb, label %bb11
-
-bb11:		; preds = %bb
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-09-SubAndError.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-09-SubAndError.ll
deleted file mode 100644
index c5b9358..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-09-SubAndError.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {sub i32 0}
-; PR2330
-
-define i32 @foo(i32 %a) nounwind {
-entry:
-  %A = sub i32 5, %a
-  %B = and i32 %A, 2
-  ret i32 %B
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll
deleted file mode 100644
index 205e57d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {%C = xor i1 %A, true}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 false}
-; PR2539
-
-define i1 @test1(i1 %A) {
-	%B = zext i1 %A to i32
-	%C = icmp slt i32 %B, 1
-	ret i1 %C
-}
-
-
-define i1 @test2(i1 zeroext  %b) {
-entry:
-	%cmptmp = icmp slt i1 %b, true		; <i1> [#uses=1]
-	ret i1 %cmptmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-10-ICmpBinOp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-10-ICmpBinOp.ll
deleted file mode 100644
index 50533db..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-10-ICmpBinOp.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep add
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep mul
-; PR2330
-
-define i1 @f(i32 %x, i32 %y) nounwind {
-entry:
-  %A = add i32 %x, 5
-  %B = add i32 %y, 5
-  %C = icmp eq i32 %A, %B
-  ret i1 %C
-}
-
-define i1 @g(i32 %x, i32 %y) nounwind {
-entry:
-  %A = mul i32 %x, 5
-  %B = mul i32 %y, 5
-  %C = icmp eq i32 %A, %B
-  ret i1 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-11-RemAnd.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-11-RemAnd.ll
deleted file mode 100644
index 0bfd41d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-11-RemAnd.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep rem
-; PR2330
-
-define i32 @a(i32 %b) nounwind  {
-entry:
-	srem i32 %b, 8		; <i32>:0 [#uses=1]
-	and i32 %0, 1		; <i32>:1 [#uses=1]
-	ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-13-DivZero.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-13-DivZero.ll
deleted file mode 100644
index 85c3dbc..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-13-DivZero.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {lshr.*3}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {call .*%cond}
-; PR2506
-
-; We can simplify the operand of udiv to '8', but not the operand to the
-; call.  If the callee never returns, we can't assume the div is reachable.
-define i32 @a(i32 %x, i32 %y) {
-entry:
-        %tobool = icmp ne i32 %y, 0             ; <i1> [#uses=1]
-        %cond = select i1 %tobool, i32 8, i32 0         ; <i32> [#uses=2]
-        %call = call i32 @b( i32 %cond )                ; <i32> [#uses=0]
-        %div = udiv i32 %x, %cond               ; <i32> [#uses=1]
-        ret i32 %div
-}
-
-declare i32 @b(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-16-fsub.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-16-fsub.ll
deleted file mode 100644
index ca4174d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-16-fsub.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep sub
-; PR2553
-
-define double @test(double %X) nounwind {
-	; fsub of self can't be optimized away.
-	%Y = fsub double %X, %X
-	ret double %Y
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-16-sse2_storel_dq.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-16-sse2_storel_dq.ll
deleted file mode 100644
index 49e6cdd..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-07-16-sse2_storel_dq.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {store }
-; PR2296
-
- at G = common global double 0.000000e+00, align 16
-
-define void @x(<2 x i64> %y) nounwind  {
-entry:
-	bitcast <2 x i64> %y to <4 x i32>
-	call void @llvm.x86.sse2.storel.dq( i8* bitcast (double* @G to i8*), <4 x i32> %0 ) nounwind 
-	ret void
-}
-
-declare void @llvm.x86.sse2.storel.dq(i8*, <4 x i32>) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-08-05-And.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-08-05-And.ll
deleted file mode 100644
index 939e6b8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-08-05-And.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep or
-; PR2629
-
-define void @f(i8* %x) nounwind  {
-entry:
-        br label %bb
-
-bb:
-	%g1 = getelementptr i8* %x, i32 0
-        %l1 = load i8* %g1, align 1
-	%s1 = sub i8 %l1, 6
-	%c1 = icmp ugt i8 %s1, 2
-	%s2 = sub i8 %l1, 10
-        %c2 = icmp ugt i8 %s2, 2
-        %a1 = and i1 %c1, %c2
-	br i1 %a1, label %incompatible, label %okay
-
-okay:
-        ret void
-
-incompatible:
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-08-17-ICmpXorSignbit.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-08-17-ICmpXorSignbit.ll
deleted file mode 100644
index 428a359..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-08-17-ICmpXorSignbit.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep xor
-
-define i1 @test1(i8 %x, i8 %y) {
-  %X = xor i8 %x, 128
-  %Y = xor i8 %y, 128
-  %tmp = icmp slt i8 %X, %Y
-  ret i1 %tmp
-}
-
-define i1 @test2(i8 %x, i8 %y) {
-  %X = xor i8 %x, 128
-  %Y = xor i8 %y, 128
-  %tmp = icmp ult i8 %X, %Y
-  ret i1 %tmp
-}
-
-define i1 @test3(i8 %x) {
-  %X = xor i8 %x, 128
-  %tmp = icmp uge i8 %X, 15
-  ret i1 %tmp
-}
-
-define i1 @test4(i8 %x, i8 %y) {
-  %X = xor i8 %x, 127
-  %Y = xor i8 %y, 127
-  %tmp = icmp slt i8 %X, %Y
-  ret i1 %tmp
-}
-
-define i1 @test5(i8 %x, i8 %y) {
-  %X = xor i8 %x, 127
-  %Y = xor i8 %y, 127
-  %tmp = icmp ult i8 %X, %Y
-  ret i1 %tmp
-}
-
-define i1 @test6(i8 %x) {
-  %X = xor i8 %x, 127
-  %tmp = icmp uge i8 %X, 15
-  ret i1 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-09-02-VectorCrash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-09-02-VectorCrash.ll
deleted file mode 100644
index 4b5dc6a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-09-02-VectorCrash.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-
-define void @entry(i32 %m_task_id, i32 %start_x, i32 %end_x, i32 %start_y, i32 %end_y) {
-	br label %1
-
-; <label>:1		; preds = %4, %0
-	%2 = icmp slt i32 0, %end_y		; <i1> [#uses=1]
-	br i1 %2, label %4, label %3
-
-; <label>:3		; preds = %1
-	ret void
-
-; <label>:4		; preds = %6, %1
-	%5 = icmp slt i32 0, %end_x		; <i1> [#uses=1]
-	br i1 %5, label %6, label %1
-
-; <label>:6		; preds = %4
-	%7 = srem <2 x i32> zeroinitializer, zeroinitializer		; <<2 x i32>> [#uses=1]
-	%8 = extractelement <2 x i32> %7, i32 1		; <i32> [#uses=1]
-	%9 = select i1 false, i32 0, i32 %8		; <i32> [#uses=1]
-	%10 = insertelement <2 x i32> zeroinitializer, i32 %9, i32 1		; <<2 x i32>> [#uses=1]
-	%11 = extractelement <2 x i32> %10, i32 1		; <i32> [#uses=1]
-	%12 = insertelement <4 x i32> zeroinitializer, i32 %11, i32 3		; <<4 x i32>> [#uses=1]
-	%13 = sitofp <4 x i32> %12 to <4 x float>		; <<4 x float>> [#uses=1]
-	store <4 x float> %13, <4 x float>* null
-	br label %4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll
deleted file mode 100644
index e7a8ca9..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {or i1}
-; PR2844
-
-define i32 @test(i32 %p_74) {
-	%A = icmp eq i32 %p_74, 0		; <i1> [#uses=1]
-	%B = icmp slt i32 %p_74, -638208501		; <i1> [#uses=1]
-	%or.cond = or i1 %A, %B		; <i1> [#uses=1]
-	%iftmp.10.0 = select i1 %or.cond, i32 0, i32 1		; <i32> [#uses=1]
-	ret i32 %iftmp.10.0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-10-11-DivCompareFold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-10-11-DivCompareFold.ll
deleted file mode 100644
index dfe9c4a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-10-11-DivCompareFold.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 false}
-; PR2697
-
-define i1 @x(i32 %x) nounwind {
-	%div = sdiv i32 %x, 65536		; <i32> [#uses=1]
-	%cmp = icmp slt i32 %div, -65536
-	ret i1 %cmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-10-23-ConstFoldWithoutMask.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-10-23-ConstFoldWithoutMask.ll
deleted file mode 100644
index 8f35a85..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-10-23-ConstFoldWithoutMask.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-; PR2940
-
-define i32 @tstid() {
-	%var0 = inttoptr i32 1 to i8*		; <i8*> [#uses=1]
-	%var2 = ptrtoint i8* %var0 to i32		; <i32> [#uses=1]
-	ret i32 %var2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-01-SRemDemandedBits.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-01-SRemDemandedBits.ll
deleted file mode 100644
index 46e98eb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-01-SRemDemandedBits.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 true}
-; PR2993
-
-define i1 @foo(i32 %x) {
-  %1 = srem i32 %x, -1
-  %2 = icmp eq i32 %1, 0
-  ret i1 %2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-08-FCmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-08-FCmp.ll
deleted file mode 100644
index c088f31..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-08-FCmp.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: grep {icmp eq} %t
-; RUN: grep {ret i1 false} %t | count 2
-; RUN: grep {ret i1 true} %t | count 2
-; RUN: grep {icmp ne} %t
-; RUN: not grep {icmp slt} %t
-; PR3021
-
-; When inst combining an FCMP with the LHS coming from a uitofp instruction, we
-; can't lower it to signed ICMP instructions.
-
-define i1 @test1(i32 %val) {
-  %1 = uitofp i32 %val to double
-  %2 = fcmp ole double %1, 0.000000e+00
-  ret i1 %2
-}
-
-define i1 @test2(i32 %val) {
-  %1 = uitofp i32 %val to double
-  %2 = fcmp olt double %1, 0.000000e+00
-  ret i1 %2
-}
-
-define i1 @test3(i32 %val) {
-  %1 = uitofp i32 %val to double
-  %2 = fcmp oge double %1, 0.000000e+00
-  ret i1 %2
-}
-
-define i1 @test4(i32 %val) {
-  %1 = uitofp i32 %val to double
-  %2 = fcmp ogt double %1, 0.000000e+00
-  ret i1 %2
-}
-
-define i1 @test5(i32 %val) {
-  %1 = uitofp i32 %val to double
-  %2 = fcmp ogt double %1, -4.400000e+00
-  ret i1 %2
-}
-
-define i1 @test6(i32 %val) {
-  %1 = uitofp i32 %val to double
-  %2 = fcmp olt double %1, -4.400000e+00
-  ret i1 %2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-20-DivMulRem.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-20-DivMulRem.ll
deleted file mode 100644
index 8c58a2a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-20-DivMulRem.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: grep urem %t | count 3
-; RUN: grep srem %t | count 1
-; RUN: grep sub %t | count 2
-; RUN: grep add %t | count 1
-; PR3103
-
-define i8 @test1(i8 %x, i8 %y) {
-  %A = udiv i8 %x, %y
-  %B = mul i8 %A, %y
-  %C = sub i8 %x, %B
-  ret i8 %C
-}
-
-define i8 @test2(i8 %x, i8 %y) {
-  %A = sdiv i8 %x, %y
-  %B = mul i8 %A, %y
-  %C = sub i8 %x, %B
-  ret i8 %C
-}
-
-define i8 @test3(i8 %x, i8 %y) {
-  %A = udiv i8 %x, %y
-  %B = mul i8 %A, %y
-  %C = sub i8 %B, %x
-  ret i8 %C
-}
-
-define i8 @test4(i8 %x) {
-  %A = udiv i8 %x, 3
-  %B = mul i8 %A, -3
-  %C = sub i8 %x, %B
-  ret i8 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-IDivVector.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-IDivVector.ll
deleted file mode 100644
index 4275e11..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-IDivVector.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep div
-
-define <2 x i8> @f(<2 x i8> %x) {
-  %A = udiv <2 x i8> %x, <i8 1, i8 1>
-  ret <2 x i8> %A
-}
-
-define <2 x i8> @g(<2 x i8> %x) {
-  %A = sdiv <2 x i8> %x, <i8 1, i8 1>
-  ret <2 x i8> %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-MultiplyIntVec.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-MultiplyIntVec.ll
deleted file mode 100644
index 544e9ab..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-MultiplyIntVec.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep mul
-
-define <2 x i8> @f(<2 x i8> %x) {
-  %A = mul <2 x i8> %x, <i8 1, i8 1>
-  ret <2 x i8> %A
-}
-
-define <2 x i8> @g(<2 x i8> %x) {
-  %A = mul <2 x i8> %x, <i8 -1, i8 -1>
-  ret <2 x i8> %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-UDivNegative.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-UDivNegative.ll
deleted file mode 100644
index 6a6b5f3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-11-27-UDivNegative.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep div
-
-define i8 @test(i8 %x) readnone nounwind {
-  %A = udiv i8 %x, 250
-  ret i8 %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-12-17-SRemNegConstVec.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2008-12-17-SRemNegConstVec.ll
deleted file mode 100644
index f970b96..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2008-12-17-SRemNegConstVec.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {i8 2, i8 2}
-; PR2756
-
-define <2 x i8> @foo(<2 x i8> %x) {
-  %A = srem <2 x i8> %x, <i8 2, i8 -2>
-  ret <2 x i8> %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-05-i128-crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-05-i128-crash.ll
deleted file mode 100644
index df3a760..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-05-i128-crash.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-; PR3235
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-
-define hidden i128 @"\01_gfortrani_max_value"(i32 %length, i32 %signed_flag) nounwind {
-entry:
-	switch i32 %length, label %bb13 [
-		i32 1, label %bb17
-		i32 4, label %bb9
-		i32 8, label %bb5
-	]
-
-bb5:		; preds = %entry
-	%0 = icmp eq i32 %signed_flag, 0		; <i1> [#uses=1]
-	%iftmp.28.0 = select i1 %0, i128 18446744073709551615, i128 9223372036854775807		; <i128> [#uses=1]
-	ret i128 %iftmp.28.0
-
-bb9:		; preds = %entry
-	ret i128 0
-
-bb13:		; preds = %entry
-	ret i128 0
-
-bb17:		; preds = %entry
-	ret i128 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-08-AlignAlloca.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-08-AlignAlloca.ll
deleted file mode 100644
index 82b923a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-08-AlignAlloca.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: grep {, align 4} %t | count 3
-; RUN: grep {, align 8} %t | count 3
-; rdar://6480438
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-	%struct.Key = type { { i32, i32 } }
-	%struct.anon = type <{ i8, [3 x i8], i32 }>
-
-define i32 @bar(i64 %key_token2) nounwind {
-entry:
-	%iospec = alloca %struct.Key		; <%struct.Key*> [#uses=3]
-	%ret = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%0 = getelementptr %struct.Key* %iospec, i32 0, i32 0		; <{ i32, i32 }*> [#uses=2]
-	%1 = getelementptr { i32, i32 }* %0, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %1, align 4
-	%2 = getelementptr { i32, i32 }* %0, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 0, i32* %2, align 4
-	%3 = getelementptr %struct.Key* %iospec, i32 0, i32 0		; <{ i32, i32 }*> [#uses=1]
-	%4 = bitcast { i32, i32 }* %3 to i64*		; <i64*> [#uses=1]
-	store i64 %key_token2, i64* %4, align 4
-	%5 = call i32 (...)* @foo(%struct.Key* byval align 4 %iospec, i32* %ret) nounwind		; <i32> [#uses=0]
-	%6 = load i32* %ret, align 4		; <i32> [#uses=1]
-	ret i32 %6
-}
-
-declare i32 @foo(...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-16-PointerAddrSpace.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-16-PointerAddrSpace.ll
deleted file mode 100644
index e0a2610..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-16-PointerAddrSpace.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {store.*addrspace(1)}
-; PR3335
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-
-define i32 @test(i32* %P) nounwind {
-entry:
-  %Q = bitcast i32* %P to i32 addrspace(1)*
-  store i32 0, i32 addrspace(1)* %Q, align 4
-  ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll
deleted file mode 100644
index cc001f0..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll
+++ /dev/null
@@ -1,316 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine | llvm-dis | grep 0x7FF8000000000000 | count 7
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine | llvm-dis | grep 0x7FF00000FFFFFFFF | count 5
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine | llvm-dis | grep {0\\.0} | count 3
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine | llvm-dis | grep {3\\.5} | count 1
-;
-
-; ModuleID = 'apf.c'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-@"\01LC" = internal constant [4 x i8] c"%f\0A\00"		; <[4 x i8]*> [#uses=1]
-
-define void @foo1() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF0000000000000, float* %x, align 4
-	store float 0x7FF8000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-declare i32 @printf(i8*, ...) nounwind
-
-define void @foo2() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF0000000000000, float* %x, align 4
-	store float 0.000000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo3() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF0000000000000, float* %x, align 4
-	store float 3.500000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo4() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF0000000000000, float* %x, align 4
-	store float 0x7FF0000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo5() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF8000000000000, float* %x, align 4
-	store float 0x7FF0000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo6() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF8000000000000, float* %x, align 4
-	store float 0.000000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo7() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF8000000000000, float* %x, align 4
-	store float 3.500000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo8() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0x7FF8000000000000, float* %x, align 4
-	store float 0x7FF8000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo9() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0.000000e+00, float* %x, align 4
-	store float 0x7FF8000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo10() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0.000000e+00, float* %x, align 4
-	store float 0x7FF0000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo11() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0.000000e+00, float* %x, align 4
-	store float 0.000000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo12() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 0.000000e+00, float* %x, align 4
-	store float 3.500000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo13() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 3.500000e+00, float* %x, align 4
-	store float 0x7FF8000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo14() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 3.500000e+00, float* %x, align 4
-	store float 0x7FF0000000000000, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo15() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 3.500000e+00, float* %x, align 4
-	store float 0.000000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
-
-define void @foo16() nounwind {
-entry:
-	%y = alloca float		; <float*> [#uses=2]
-	%x = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store float 3.500000e+00, float* %x, align 4
-	store float 3.500000e+00, float* %y, align 4
-	%0 = load float* %y, align 4		; <float> [#uses=1]
-	%1 = fpext float %0 to double		; <double> [#uses=1]
-	%2 = load float* %x, align 4		; <float> [#uses=1]
-	%3 = fpext float %2 to double		; <double> [#uses=1]
-	%4 = frem double %3, %1		; <double> [#uses=1]
-	%5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
deleted file mode 100644
index 9cdb425..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
+++ /dev/null
@@ -1,75 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine | llvm-dis | grep 0x3FB99999A0000000 | count 2
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine | llvm-dis | grep 0xBFB99999A0000000 | count 2
-; check constant folding for 'frem'.  PR 3316.
-
-; ModuleID = 'tt.c'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-
-define float @test1() nounwind {
-entry:
-	%retval = alloca float		; <float*> [#uses=2]
-	%0 = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%1 = frem double 1.000000e-01, 1.000000e+00	; <double> [#uses=1]
-	%2 = fptrunc double %1 to float		; <float> [#uses=1]
-	store float %2, float* %0, align 4
-	%3 = load float* %0, align 4		; <float> [#uses=1]
-	store float %3, float* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load float* %retval		; <float> [#uses=1]
-	ret float %retval1
-}
-
-define float @test2() nounwind {
-entry:
-	%retval = alloca float		; <float*> [#uses=2]
-	%0 = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%1 = frem double -1.000000e-01, 1.000000e+00	; <double> [#uses=1]
-	%2 = fptrunc double %1 to float		; <float> [#uses=1]
-	store float %2, float* %0, align 4
-	%3 = load float* %0, align 4		; <float> [#uses=1]
-	store float %3, float* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load float* %retval		; <float> [#uses=1]
-	ret float %retval1
-}
-
-define float @test3() nounwind {
-entry:
-	%retval = alloca float		; <float*> [#uses=2]
-	%0 = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%1 = frem double 1.000000e-01, -1.000000e+00	; <double> [#uses=1]
-	%2 = fptrunc double %1 to float		; <float> [#uses=1]
-	store float %2, float* %0, align 4
-	%3 = load float* %0, align 4		; <float> [#uses=1]
-	store float %3, float* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load float* %retval		; <float> [#uses=1]
-	ret float %retval1
-}
-
-define float @test4() nounwind {
-entry:
-	%retval = alloca float		; <float*> [#uses=2]
-	%0 = alloca float		; <float*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%1 = frem double -1.000000e-01, -1.000000e+00	; <double> [#uses=1]
-	%2 = fptrunc double %1 to float		; <float> [#uses=1]
-	store float %2, float* %0, align 4
-	%3 = load float* %0, align 4		; <float> [#uses=1]
-	store float %3, float* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load float* %retval		; <float> [#uses=1]
-	ret float %retval1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-24-EmptyStruct.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-24-EmptyStruct.ll
deleted file mode 100644
index 313e76d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-24-EmptyStruct.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-; PR3381
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-	%struct.atomic_t = type { i32 }
-	%struct.inode = type { i32, %struct.mutex }
-	%struct.list_head = type { %struct.list_head*, %struct.list_head* }
-	%struct.lock_class_key = type {  }
-	%struct.mutex = type { %struct.atomic_t, %struct.rwlock_t, %struct.list_head }
-	%struct.rwlock_t = type { %struct.lock_class_key }
-
-define void @handle_event(%struct.inode* %bar) nounwind {
-entry:
-	%0 = getelementptr %struct.inode* %bar, i64 -1, i32 1, i32 1		; <%struct.rwlock_t*> [#uses=1]
-	%1 = bitcast %struct.rwlock_t* %0 to i32*		; <i32*> [#uses=1]
-	store i32 1, i32* %1, align 4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-31-InfIterate.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-31-InfIterate.ll
deleted file mode 100644
index 6620e4f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-31-InfIterate.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-; PR3452
-define i128 @test(i64 %A, i64 %B, i1 %C, i128 %Z, i128 %Y, i64* %P, i64* %Q) {
-entry:
-	%tmp2 = trunc i128 %Z to i64
-	%tmp4 = trunc i128 %Y to i64
-	store i64 %tmp2, i64* %P
-	store i64 %tmp4, i64* %Q
-	%x = sub i64 %tmp2, %tmp4
-	%c = sub i64 %tmp2, %tmp4
-	%tmp137 = zext i1 %C to i64
-	%tmp138 = sub i64 %c, %tmp137
-	br label %T
-
-T:
-	%G = phi i64 [%tmp138, %entry], [%tmp2, %Fal]
-	%F = zext i64 %G to i128
-	ret i128 %F
-
-Fal:
-	br label %T
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-31-Pressure.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-31-Pressure.ll
deleted file mode 100644
index 0c3066b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-01-31-Pressure.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {%B = add i8 %b, %x}
-; PR2698
-
-declare void @use1(i1)
-declare void @use8(i8)
-
-define void @test1(i8 %a, i8 %b, i8 %x) {
-  %A = add i8 %a, %x
-  %B = add i8 %b, %x
-  %C = icmp eq i8 %A, %B
-  call void @use1(i1 %C)
-  ret void
-}
-
-define void @test2(i8 %a, i8 %b, i8 %x) {
-  %A = add i8 %a, %x
-  %B = add i8 %b, %x
-  %C = icmp eq i8 %A, %B
-  call void @use1(i1 %C)
-  call void @use8(i8 %A)
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll
deleted file mode 100644
index b08c962..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-; PR3468
-
-define x86_fp80 @cast() {
-	%tmp = bitcast i80 0 to x86_fp80		; <x86_fp80> [#uses=1]
-	ret x86_fp80 %tmp
-}
-
-define i80 @invcast() {
-	%tmp = bitcast x86_fp80 0xK00000000000000000000 to i80		; <i80> [#uses=1]
-	ret i80 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-20-InstCombine-SROA.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-20-InstCombine-SROA.ll
deleted file mode 100644
index 52bcead..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-20-InstCombine-SROA.ll
+++ /dev/null
@@ -1,278 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -scalarrepl | llvm-dis | not grep { = alloca}
-; rdar://6417724
-; Instcombine shouldn't do anything to this function that prevents promoting the allocas inside it.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-	%"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >" = type { i32* }
-	%"struct.std::_Vector_base<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" }
-	%"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* }
-	%"struct.std::bidirectional_iterator_tag" = type <{ i8 }>
-	%"struct.std::forward_iterator_tag" = type <{ i8 }>
-	%"struct.std::input_iterator_tag" = type <{ i8 }>
-	%"struct.std::random_access_iterator_tag" = type <{ i8 }>
-	%"struct.std::vector<int,std::allocator<int> >" = type { %"struct.std::_Vector_base<int,std::allocator<int> >" }
-
-define i32* @_Z3fooRSt6vectorIiSaIiEE(%"struct.std::vector<int,std::allocator<int> >"* %X) {
-entry:
-	%0 = alloca %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"		; <%"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"*> [#uses=2]
-	%__first_addr.i.i = alloca %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"		; <%"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"*> [#uses=31]
-	%__last_addr.i.i = alloca %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"		; <%"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"*> [#uses=4]
-	%unnamed_arg.i = alloca %"struct.std::bidirectional_iterator_tag", align 8		; <%"struct.std::bidirectional_iterator_tag"*> [#uses=1]
-	%1 = alloca %"struct.std::bidirectional_iterator_tag"		; <%"struct.std::bidirectional_iterator_tag"*> [#uses=1]
-	%__first_addr.i = alloca %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"		; <%"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"*> [#uses=2]
-	%2 = alloca %"struct.std::bidirectional_iterator_tag"		; <%"struct.std::bidirectional_iterator_tag"*> [#uses=2]
-	%3 = alloca %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"		; <%"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"*> [#uses=2]
-	%4 = alloca i32		; <i32*> [#uses=8]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 42, i32* %4, align 4
-	%5 = getelementptr %"struct.std::vector<int,std::allocator<int> >"* %X, i32 0, i32 0		; <%"struct.std::_Vector_base<int,std::allocator<int> >"*> [#uses=1]
-	%6 = getelementptr %"struct.std::_Vector_base<int,std::allocator<int> >"* %5, i32 0, i32 0		; <%"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl"*> [#uses=1]
-	%7 = getelementptr %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl"* %6, i32 0, i32 1		; <i32**> [#uses=1]
-	%8 = load i32** %7, align 4		; <i32*> [#uses=1]
-	%9 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %3, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %8, i32** %9, align 4
-	%10 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %3, i32 0, i32 0		; <i32**> [#uses=1]
-	%11 = load i32** %10, align 4		; <i32*> [#uses=1]
-	%tmp2.i = ptrtoint i32* %11 to i32		; <i32> [#uses=1]
-	%tmp1.i = inttoptr i32 %tmp2.i to i32*		; <i32*> [#uses=1]
-	%tmp3 = ptrtoint i32* %tmp1.i to i32		; <i32> [#uses=1]
-	%tmp2 = inttoptr i32 %tmp3 to i32*		; <i32*> [#uses=1]
-	%12 = getelementptr %"struct.std::vector<int,std::allocator<int> >"* %X, i32 0, i32 0		; <%"struct.std::_Vector_base<int,std::allocator<int> >"*> [#uses=1]
-	%13 = getelementptr %"struct.std::_Vector_base<int,std::allocator<int> >"* %12, i32 0, i32 0		; <%"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl"*> [#uses=1]
-	%14 = getelementptr %"struct.std::_Vector_base<int,std::allocator<int> >::_Vector_impl"* %13, i32 0, i32 0		; <i32**> [#uses=1]
-	%15 = load i32** %14, align 4		; <i32*> [#uses=1]
-	%16 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %0, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %15, i32** %16, align 4
-	%17 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %0, i32 0, i32 0		; <i32**> [#uses=1]
-	%18 = load i32** %17, align 4		; <i32*> [#uses=1]
-	%tmp2.i17 = ptrtoint i32* %18 to i32		; <i32> [#uses=1]
-	%tmp1.i18 = inttoptr i32 %tmp2.i17 to i32*		; <i32*> [#uses=1]
-	%tmp8 = ptrtoint i32* %tmp1.i18 to i32		; <i32> [#uses=1]
-	%tmp6 = inttoptr i32 %tmp8 to i32*		; <i32*> [#uses=1]
-	%19 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %tmp6, i32** %19
-	%20 = getelementptr %"struct.std::bidirectional_iterator_tag"* %1, i32 0, i32 0		; <i8*> [#uses=1]
-	%21 = load i8* %20, align 1		; <i8> [#uses=1]
-	%22 = or i8 %21, 0		; <i8> [#uses=1]
-	%23 = or i8 %22, 0		; <i8> [#uses=1]
-	%24 = or i8 %23, 0		; <i8> [#uses=0]
-	%25 = getelementptr %"struct.std::bidirectional_iterator_tag"* %2, i32 0, i32 0		; <i8*> [#uses=1]
-	store i8 0, i8* %25, align 1
-	%elt.i = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%val.i = load i32** %elt.i		; <i32*> [#uses=1]
-	%tmp.i = bitcast %"struct.std::bidirectional_iterator_tag"* %unnamed_arg.i to i8*		; <i8*> [#uses=1]
-	%tmp9.i = bitcast %"struct.std::bidirectional_iterator_tag"* %2 to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i64(i8* %tmp.i, i8* %tmp9.i, i64 1, i32 1)
-	%26 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %val.i, i32** %26
-	%27 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__last_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %tmp2, i32** %27
-	%28 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__last_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%29 = load i32** %28, align 4		; <i32*> [#uses=1]
-	%30 = ptrtoint i32* %29 to i32		; <i32> [#uses=1]
-	%31 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%32 = load i32** %31, align 4		; <i32*> [#uses=1]
-	%33 = ptrtoint i32* %32 to i32		; <i32> [#uses=1]
-	%34 = sub i32 %30, %33		; <i32> [#uses=1]
-	%35 = ashr i32 %34, 2		; <i32> [#uses=1]
-	%36 = ashr i32 %35, 2		; <i32> [#uses=1]
-	br label %bb12.i.i
-
-bb.i.i:		; preds = %bb12.i.i
-	%37 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%38 = load i32** %37, align 4		; <i32*> [#uses=1]
-	%39 = load i32* %38, align 4		; <i32> [#uses=1]
-	%40 = load i32* %4, align 4		; <i32> [#uses=1]
-	%41 = icmp eq i32 %39, %40		; <i1> [#uses=1]
-	%42 = zext i1 %41 to i8		; <i8> [#uses=1]
-	%toBool.i.i = icmp ne i8 %42, 0		; <i1> [#uses=1]
-	br i1 %toBool.i.i, label %bb1.i.i, label %bb2.i.i
-
-bb1.i.i:		; preds = %bb.i.i
-	%43 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%44 = load i32** %43, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-bb2.i.i:		; preds = %bb.i.i
-	%45 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%46 = load i32** %45, align 4		; <i32*> [#uses=1]
-	%47 = getelementptr i32* %46, i64 1		; <i32*> [#uses=1]
-	%48 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %47, i32** %48, align 4
-	%49 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%50 = load i32** %49, align 4		; <i32*> [#uses=1]
-	%51 = load i32* %50, align 4		; <i32> [#uses=1]
-	%52 = load i32* %4, align 4		; <i32> [#uses=1]
-	%53 = icmp eq i32 %51, %52		; <i1> [#uses=1]
-	%54 = zext i1 %53 to i8		; <i8> [#uses=1]
-	%toBool3.i.i = icmp ne i8 %54, 0		; <i1> [#uses=1]
-	br i1 %toBool3.i.i, label %bb4.i.i, label %bb5.i.i
-
-bb4.i.i:		; preds = %bb2.i.i
-	%55 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%56 = load i32** %55, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-bb5.i.i:		; preds = %bb2.i.i
-	%57 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%58 = load i32** %57, align 4		; <i32*> [#uses=1]
-	%59 = getelementptr i32* %58, i64 1		; <i32*> [#uses=1]
-	%60 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %59, i32** %60, align 4
-	%61 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%62 = load i32** %61, align 4		; <i32*> [#uses=1]
-	%63 = load i32* %62, align 4		; <i32> [#uses=1]
-	%64 = load i32* %4, align 4		; <i32> [#uses=1]
-	%65 = icmp eq i32 %63, %64		; <i1> [#uses=1]
-	%66 = zext i1 %65 to i8		; <i8> [#uses=1]
-	%toBool6.i.i = icmp ne i8 %66, 0		; <i1> [#uses=1]
-	br i1 %toBool6.i.i, label %bb7.i.i, label %bb8.i.i
-
-bb7.i.i:		; preds = %bb5.i.i
-	%67 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%68 = load i32** %67, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-bb8.i.i:		; preds = %bb5.i.i
-	%69 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%70 = load i32** %69, align 4		; <i32*> [#uses=1]
-	%71 = getelementptr i32* %70, i64 1		; <i32*> [#uses=1]
-	%72 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %71, i32** %72, align 4
-	%73 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%74 = load i32** %73, align 4		; <i32*> [#uses=1]
-	%75 = load i32* %74, align 4		; <i32> [#uses=1]
-	%76 = load i32* %4, align 4		; <i32> [#uses=1]
-	%77 = icmp eq i32 %75, %76		; <i1> [#uses=1]
-	%78 = zext i1 %77 to i8		; <i8> [#uses=1]
-	%toBool9.i.i = icmp ne i8 %78, 0		; <i1> [#uses=1]
-	br i1 %toBool9.i.i, label %bb10.i.i, label %bb11.i.i
-
-bb10.i.i:		; preds = %bb8.i.i
-	%79 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%80 = load i32** %79, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-bb11.i.i:		; preds = %bb8.i.i
-	%81 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%82 = load i32** %81, align 4		; <i32*> [#uses=1]
-	%83 = getelementptr i32* %82, i64 1		; <i32*> [#uses=1]
-	%84 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %83, i32** %84, align 4
-	%85 = sub i32 %__trip_count.0.i.i, 1		; <i32> [#uses=1]
-	br label %bb12.i.i
-
-bb12.i.i:		; preds = %bb11.i.i, %entry
-	%__trip_count.0.i.i = phi i32 [ %36, %entry ], [ %85, %bb11.i.i ]		; <i32> [#uses=2]
-	%86 = icmp sgt i32 %__trip_count.0.i.i, 0		; <i1> [#uses=1]
-	br i1 %86, label %bb.i.i, label %bb13.i.i
-
-bb13.i.i:		; preds = %bb12.i.i
-	%87 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__last_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%88 = load i32** %87, align 4		; <i32*> [#uses=1]
-	%89 = ptrtoint i32* %88 to i32		; <i32> [#uses=1]
-	%90 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%91 = load i32** %90, align 4		; <i32*> [#uses=1]
-	%92 = ptrtoint i32* %91 to i32		; <i32> [#uses=1]
-	%93 = sub i32 %89, %92		; <i32> [#uses=1]
-	%94 = ashr i32 %93, 2		; <i32> [#uses=1]
-	switch i32 %94, label %bb26.i.i [
-		i32 1, label %bb22.i.i
-		i32 2, label %bb18.i.i
-		i32 3, label %bb14.i.i
-	]
-
-bb14.i.i:		; preds = %bb13.i.i
-	%95 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%96 = load i32** %95, align 4		; <i32*> [#uses=1]
-	%97 = load i32* %96, align 4		; <i32> [#uses=1]
-	%98 = load i32* %4, align 4		; <i32> [#uses=1]
-	%99 = icmp eq i32 %97, %98		; <i1> [#uses=1]
-	%100 = zext i1 %99 to i8		; <i8> [#uses=1]
-	%toBool15.i.i = icmp ne i8 %100, 0		; <i1> [#uses=1]
-	br i1 %toBool15.i.i, label %bb16.i.i, label %bb17.i.i
-
-bb16.i.i:		; preds = %bb14.i.i
-	%101 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%102 = load i32** %101, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-bb17.i.i:		; preds = %bb14.i.i
-	%103 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%104 = load i32** %103, align 4		; <i32*> [#uses=1]
-	%105 = getelementptr i32* %104, i64 1		; <i32*> [#uses=1]
-	%106 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %105, i32** %106, align 4
-	br label %bb18.i.i
-
-bb18.i.i:		; preds = %bb17.i.i, %bb13.i.i
-	%107 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%108 = load i32** %107, align 4		; <i32*> [#uses=1]
-	%109 = load i32* %108, align 4		; <i32> [#uses=1]
-	%110 = load i32* %4, align 4		; <i32> [#uses=1]
-	%111 = icmp eq i32 %109, %110		; <i1> [#uses=1]
-	%112 = zext i1 %111 to i8		; <i8> [#uses=1]
-	%toBool19.i.i = icmp ne i8 %112, 0		; <i1> [#uses=1]
-	br i1 %toBool19.i.i, label %bb20.i.i, label %bb21.i.i
-
-bb20.i.i:		; preds = %bb18.i.i
-	%113 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%114 = load i32** %113, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-bb21.i.i:		; preds = %bb18.i.i
-	%115 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%116 = load i32** %115, align 4		; <i32*> [#uses=1]
-	%117 = getelementptr i32* %116, i64 1		; <i32*> [#uses=1]
-	%118 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %117, i32** %118, align 4
-	br label %bb22.i.i
-
-bb22.i.i:		; preds = %bb21.i.i, %bb13.i.i
-	%119 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%120 = load i32** %119, align 4		; <i32*> [#uses=1]
-	%121 = load i32* %120, align 4		; <i32> [#uses=1]
-	%122 = load i32* %4, align 4		; <i32> [#uses=1]
-	%123 = icmp eq i32 %121, %122		; <i1> [#uses=1]
-	%124 = zext i1 %123 to i8		; <i8> [#uses=1]
-	%toBool23.i.i = icmp ne i8 %124, 0		; <i1> [#uses=1]
-	br i1 %toBool23.i.i, label %bb24.i.i, label %bb25.i.i
-
-bb24.i.i:		; preds = %bb22.i.i
-	%125 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%126 = load i32** %125, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-bb25.i.i:		; preds = %bb22.i.i
-	%127 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%128 = load i32** %127, align 4		; <i32*> [#uses=1]
-	%129 = getelementptr i32* %128, i64 1		; <i32*> [#uses=1]
-	%130 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__first_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	store i32* %129, i32** %130, align 4
-	br label %bb26.i.i
-
-bb26.i.i:		; preds = %bb25.i.i, %bb13.i.i
-	%131 = getelementptr %"struct.__gnu_cxx::__normal_iterator<int*,std::vector<int, std::allocator<int> > >"* %__last_addr.i.i, i32 0, i32 0		; <i32**> [#uses=1]
-	%132 = load i32** %131, align 4		; <i32*> [#uses=1]
-	br label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-
-_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit:		; preds = %bb26.i.i, %bb24.i.i, %bb20.i.i, %bb16.i.i, %bb10.i.i, %bb7.i.i, %bb4.i.i, %bb1.i.i
-	%.0.0.i.i = phi i32* [ %132, %bb26.i.i ], [ %126, %bb24.i.i ], [ %114, %bb20.i.i ], [ %102, %bb16.i.i ], [ %80, %bb10.i.i ], [ %68, %bb7.i.i ], [ %56, %bb4.i.i ], [ %44, %bb1.i.i ]		; <i32*> [#uses=1]
-	%tmp2.i.i = ptrtoint i32* %.0.0.i.i to i32		; <i32> [#uses=1]
-	%tmp1.i.i = inttoptr i32 %tmp2.i.i to i32*		; <i32*> [#uses=1]
-	%tmp4.i = ptrtoint i32* %tmp1.i.i to i32		; <i32> [#uses=1]
-	%tmp3.i = inttoptr i32 %tmp4.i to i32*		; <i32*> [#uses=1]
-	%tmp8.i = ptrtoint i32* %tmp3.i to i32		; <i32> [#uses=1]
-	%tmp6.i = inttoptr i32 %tmp8.i to i32*		; <i32*> [#uses=1]
-	%tmp12 = ptrtoint i32* %tmp6.i to i32		; <i32> [#uses=1]
-	%tmp10 = inttoptr i32 %tmp12 to i32*		; <i32*> [#uses=1]
-	%tmp16 = ptrtoint i32* %tmp10 to i32		; <i32> [#uses=1]
-	br label %return
-
-return:		; preds = %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_.exit
-	%tmp14 = inttoptr i32 %tmp16 to i32*		; <i32*> [#uses=1]
-	ret i32* %tmp14
-}
-
-declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-21-LoadCST.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-21-LoadCST.ll
deleted file mode 100644
index 2c126df..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-21-LoadCST.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 3679669}
-; PR3595
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
- at .str1 = internal constant [4 x i8] c"\B5%8\00"
-
-define i32 @test() {
-  %rhsv = load i32* bitcast ([4 x i8]* @.str1 to i32*), align 1
-  ret i32 %rhsv
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-25-CrashZeroSizeArray.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-25-CrashZeroSizeArray.ll
deleted file mode 100644
index c59c5ed..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-02-25-CrashZeroSizeArray.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-; PR3667
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define void @_ada_c32001b(i32 %tmp5) {
-entry:
-	%max289 = select i1 false, i32 %tmp5, i32 0		; <i32> [#uses=1]
-	%tmp6 = mul i32 %max289, 4		; <i32> [#uses=1]
-	%tmp7 = alloca i8, i32 0		; <i8*> [#uses=1]
-	%tmp8 = bitcast i8* %tmp7 to [0 x [0 x i32]]*		; <[0 x [0 x i32]]*> [#uses=1]
-	%tmp11 = load i32* null, align 1		; <i32> [#uses=1]
-	%tmp12 = icmp eq i32 %tmp11, 3		; <i1> [#uses=1]
-	%tmp13 = zext i1 %tmp12 to i8		; <i8> [#uses=1]
-	%tmp14 = ashr i32 %tmp6, 2		; <i32> [#uses=1]
-	%tmp15 = bitcast [0 x [0 x i32]]* %tmp8 to i8*		; <i8*> [#uses=1]
-	%tmp16 = mul i32 %tmp14, 4		; <i32> [#uses=1]
-	%tmp17 = mul i32 1, %tmp16		; <i32> [#uses=1]
-	%tmp18 = getelementptr i8* %tmp15, i32 %tmp17		; <i8*> [#uses=1]
-	%tmp19 = bitcast i8* %tmp18 to [0 x i32]*		; <[0 x i32]*> [#uses=1]
-	%tmp20 = bitcast [0 x i32]* %tmp19 to i32*		; <i32*> [#uses=1]
-	%tmp21 = getelementptr i32* %tmp20, i32 0		; <i32*> [#uses=1]
-	%tmp22 = load i32* %tmp21, align 1		; <i32> [#uses=1]
-	%tmp23 = icmp eq i32 %tmp22, 4		; <i1> [#uses=1]
-	%tmp24 = zext i1 %tmp23 to i8		; <i8> [#uses=1]
-	%toBool709 = icmp ne i8 %tmp13, 0		; <i1> [#uses=1]
-	%toBool710 = icmp ne i8 %tmp24, 0		; <i1> [#uses=1]
-	%tmp25 = and i1 %toBool709, %toBool710		; <i1> [#uses=1]
-	%tmp26 = zext i1 %tmp25 to i8		; <i8> [#uses=1]
-	%toBool711 = icmp ne i8 %tmp26, 0		; <i1> [#uses=1]
-	br i1 %toBool711, label %a, label %b
-
-a:		; preds = %entry
-	ret void
-
-b:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-18-vector-ashr-crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-18-vector-ashr-crash.ll
deleted file mode 100644
index ae690cf..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-18-vector-ashr-crash.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-; PR3826
-
-define void @0(<4 x i16>*, <4 x i16>*) {
-	%3 = alloca <4 x i16>*		; <<4 x i16>**> [#uses=1]
-	%4 = load <4 x i16>* null, align 1		; <<4 x i16>> [#uses=1]
-	%5 = ashr <4 x i16> %4, <i16 5, i16 5, i16 5, i16 5>		; <<4 x i16>> [#uses=1]
-	%6 = load <4 x i16>** %3		; <<4 x i16>*> [#uses=1]
-	store <4 x i16> %5, <4 x i16>* %6, align 1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-20-AShrOverShift.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-20-AShrOverShift.ll
deleted file mode 100644
index 92ace11..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-20-AShrOverShift.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ashr i32 %val, 31}
-; PR3851
-
-define i32 @foo2(i32 %val) nounwind {
-entry:
-	%shr = ashr i32 %val, 15		; <i32> [#uses=3]
-	%shr4 = ashr i32 %shr, 17		; <i32> [#uses=1]
-        ret i32 %shr4
- }
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-24-InfLoop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-24-InfLoop.ll
deleted file mode 100644
index 6d5a7bf..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-03-24-InfLoop.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; PR3874
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-  define i1 @test(i32 %x) {
-    %A = lshr i32 3968, %x
-    %B = and i32 %A, 1
-    %C = icmp eq i32 %B, 0
-    ret i1 %C
-  }
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-04-07-MulPromoteToI96.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-04-07-MulPromoteToI96.ll
deleted file mode 100644
index 82f8762..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-04-07-MulPromoteToI96.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {mul i64}
-; rdar://6762288
-
-; Instcombine should not promote the mul to i96 because it is definitely
-; not a legal type for the target, and we don't want a libcall.
-
-define i96 @test(i96 %a.4, i96 %b.2) {
-	%tmp1086 = trunc i96 %a.4 to i64		; <i64> [#uses=1]
-	%tmp836 = trunc i96 %b.2 to i64		; <i64> [#uses=1]
-	%mul185 = mul i64 %tmp1086, %tmp836		; <i64> [#uses=1]
-	%tmp544 = zext i64 %mul185 to i96		; <i96> [#uses=1]
-	ret i96 %tmp544
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-05-23-FCmpToICmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-05-23-FCmpToICmp.ll
deleted file mode 100644
index 1eda7df..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-05-23-FCmpToICmp.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep cmp
-; rdar://6903175
-
-define i1 @f0(i32 *%a) nounwind {
-       %b = load i32* %a, align 4
-       %c = uitofp i32 %b to double
-       %d = fcmp ogt double %c, 0x41EFFFFFFFE00000
-       ret i1 %d
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-06-11-StoreAddrSpace.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-06-11-StoreAddrSpace.ll
deleted file mode 100644
index ffb55a7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-06-11-StoreAddrSpace.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {store i32 0,}
-; PR4366
-
-define void @a() {
-  store i32 0, i32 addrspace(1)* null
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-06-16-SRemDemandedBits.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-06-16-SRemDemandedBits.ll
deleted file mode 100644
index 82b223a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-06-16-SRemDemandedBits.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep srem
-; PR3439
-
-define i32 @a(i32 %x) nounwind {
-entry:
-	%rem = srem i32 %x, 2
-	%and = and i32 %rem, 2
-	ret i32 %and
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-07-02-MaskedIntVector.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/2009-07-02-MaskedIntVector.ll
deleted file mode 100644
index 7505de1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/2009-07-02-MaskedIntVector.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-; PR4495
-
-define i32 @test(i64 %test) {
-entry:
-	%0 = bitcast <4 x i32> undef to <16 x i8>		; <<16 x i8>> [#uses=1]
-	%t12 = shufflevector <16 x i8> %0, <16 x i8> zeroinitializer, <16 x i32> <i32 0, i32 16, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>		; <<16 x i8>> [#uses=1]
-	%t11 = bitcast <16 x i8> %t12 to <2 x i64>		; <<2 x i64>> [#uses=1]
-	%t9 = extractelement <2 x i64> %t11, i32 0		; <i64> [#uses=1]
-	%t10 = bitcast i64 %t9 to <2 x i32>		; <<2 x i32>> [#uses=1]
-	%t7 = bitcast i64 %test to <2 x i32>		; <<2 x i32>> [#uses=1]
-	%t6 = xor <2 x i32> %t10, %t7		; <<2 x i32>> [#uses=1]
-	%t1 = extractelement <2 x i32> %t6, i32 0		; <i32> [#uses=1]
-	ret i32 %t1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/CPP_min_max.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/CPP_min_max.ll
deleted file mode 100644
index 785b91e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/CPP_min_max.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep select | not grep {i32\\*}
-
-; This testcase corresponds to PR362, which notices that this horrible code
-; is generated by the C++ front-end and LLVM optimizers, which has lots of
-; loads and other stuff that are unneeded.
-;
-; Instcombine should propagate the load through the select instructions to
-; allow elimination of the extra stuff by the mem2reg pass.
-
-define void @_Z5test1RiS_(i32* %x, i32* %y) {
-entry:
-        %tmp.1.i = load i32* %y         ; <i32> [#uses=1]
-        %tmp.3.i = load i32* %x         ; <i32> [#uses=1]
-        %tmp.4.i = icmp slt i32 %tmp.1.i, %tmp.3.i              ; <i1> [#uses=1]
-        %retval.i = select i1 %tmp.4.i, i32* %y, i32* %x                ; <i32*> [#uses=1]
-        %tmp.4 = load i32* %retval.i            ; <i32> [#uses=1]
-        store i32 %tmp.4, i32* %x
-        ret void
-}
-
-define void @_Z5test2RiS_(i32* %x, i32* %y) {
-entry:
-        %tmp.0 = alloca i32             ; <i32*> [#uses=2]
-        %tmp.2 = load i32* %x           ; <i32> [#uses=2]
-        store i32 %tmp.2, i32* %tmp.0
-        %tmp.3.i = load i32* %y         ; <i32> [#uses=1]
-        %tmp.4.i = icmp slt i32 %tmp.2, %tmp.3.i                ; <i1> [#uses=1]
-        %retval.i = select i1 %tmp.4.i, i32* %y, i32* %tmp.0            ; <i32*> [#uses=1]
-        %tmp.6 = load i32* %retval.i            ; <i32> [#uses=1]
-        store i32 %tmp.6, i32* %y
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/IntPtrCast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/IntPtrCast.ll
deleted file mode 100644
index e24d199..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/IntPtrCast.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-target datalayout = "e-p:32:32"
-
-define i32* @test(i32* %P) {
-        %V = ptrtoint i32* %P to i32            ; <i32> [#uses=1]
-        %P2 = inttoptr i32 %V to i32*           ; <i32*> [#uses=1]
-        ret i32* %P2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/JavaCompare.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/JavaCompare.ll
deleted file mode 100644
index 72cab42..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/JavaCompare.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; This is the sequence of stuff that the Java front-end expands for a single 
-; <= comparison.  Check to make sure we turn it into a <= (only)
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {%c3 = icmp sle i32 %A, %B}
-
-define i1 @le(i32 %A, i32 %B) {
-        %c1 = icmp sgt i32 %A, %B               ; <i1> [#uses=1]
-        %tmp = select i1 %c1, i32 1, i32 0              ; <i32> [#uses=1]
-        %c2 = icmp slt i32 %A, %B               ; <i1> [#uses=1]
-        %result = select i1 %c2, i32 -1, i32 %tmp               ; <i32> [#uses=1]
-        %c3 = icmp sle i32 %result, 0           ; <i1> [#uses=1]
-        ret i1 %c3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/README.txt b/libclamav/c++/llvm/test/Transforms/InstCombine/README.txt
deleted file mode 100644
index de043c7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains test cases for the instcombine transformation.  The
-dated tests are actual bug tests, whereas the named tests are used to test
-for features that the this pass should be capable of performing.
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/add-shrink.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/add-shrink.ll
deleted file mode 100644
index 6dc02f3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/add-shrink.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {add i32}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep sext | count 1
-
-; Should only have one sext and the add should be i32 instead of i64.
-
-define i64 @test1(i32 %A) {
-	%B = ashr i32 %A, 7		; <i32> [#uses=1]
-	%C = ashr i32 %A, 9		; <i32> [#uses=1]
-	%D = sext i32 %B to i64		; <i64> [#uses=1]
-	%E = sext i32 %C to i64		; <i64> [#uses=1]
-	%F = add i64 %D, %E		; <i64> [#uses=1]
-	ret i64 %F
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/add-sitofp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/add-sitofp.ll
deleted file mode 100644
index 298b9a1..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/add-sitofp.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {add i32}
-
-define double @x(i32 %a, i32 %b) nounwind {
-  %m = lshr i32 %a, 24
-  %n = and i32 %m, %b
-  %o = sitofp i32 %n to double
-  %p = fadd double %o, 1.0
-  ret double %p
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/add.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/add.ll
deleted file mode 100644
index 6ff2187..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/add.ll
+++ /dev/null
@@ -1,277 +0,0 @@
-; This test makes sure that add instructions are properly eliminated.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep -v OK | not grep add
-
-define i32 @test1(i32 %A) {
-        %B = add i32 %A, 0              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test2(i32 %A) {
-        %B = add i32 %A, 5              ; <i32> [#uses=1]
-        %C = add i32 %B, -5             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @test3(i32 %A) {
-        %B = add i32 %A, 5              ; <i32> [#uses=1]
-        ;; This should get converted to an add
-        %C = sub i32 %B, 5              ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @test4(i32 %A, i32 %B) {
-        %C = sub i32 0, %A              ; <i32> [#uses=1]
-        ; D = B + -A = B - A
-        %D = add i32 %B, %C             ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test5(i32 %A, i32 %B) {
-        %C = sub i32 0, %A              ; <i32> [#uses=1]
-        ; D = -A + B = B - A
-        %D = add i32 %C, %B             ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test6(i32 %A) {
-        %B = mul i32 7, %A              ; <i32> [#uses=1]
-        ; C = 7*A+A == 8*A == A << 3
-        %C = add i32 %B, %A             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @test7(i32 %A) {
-        %B = mul i32 7, %A              ; <i32> [#uses=1]
-        ; C = A+7*A == 8*A == A << 3
-        %C = add i32 %A, %B             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-; (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
-define i32 @test8(i32 %A, i32 %B) {
-        %A1 = and i32 %A, 7             ; <i32> [#uses=1]
-        %B1 = and i32 %B, 128           ; <i32> [#uses=1]
-        %C = add i32 %A1, %B1           ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @test9(i32 %A) {
-        %B = shl i32 %A, 4              ; <i32> [#uses=2]
-        ; === shl int %A, 5
-        %C = add i32 %B, %B             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i1 @test10(i8 %A, i8 %b) {
-        %B = add i8 %A, %b              ; <i8> [#uses=1]
-        ; === A != -b
-        %c = icmp ne i8 %B, 0           ; <i1> [#uses=1]
-        ret i1 %c
-}
-
-define i1 @test11(i8 %A) {
-        %B = add i8 %A, -1              ; <i8> [#uses=1]
-        ; === A != 1
-        %c = icmp ne i8 %B, 0           ; <i1> [#uses=1]
-        ret i1 %c
-}
-
-define i32 @test12(i32 %A, i32 %B) {
-        ; Should be transformed into shl A, 1
-         %C_OK = add i32 %B, %A          ; <i32> [#uses=1]
-        br label %X
-
-X:              ; preds = %0
-        %D = add i32 %C_OK, %A          ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test13(i32 %A, i32 %B, i32 %C) {
-        %D_OK = add i32 %A, %B          ; <i32> [#uses=1]
-        %E_OK = add i32 %D_OK, %C               ; <i32> [#uses=1]
-        ;; shl A, 1
-        %F = add i32 %E_OK, %A          ; <i32> [#uses=1]
-        ret i32 %F
-}
-
-define i32 @test14(i32 %offset, i32 %difference) {
-        %tmp.2 = and i32 %difference, 3         ; <i32> [#uses=1]
-        %tmp.3_OK = add i32 %tmp.2, %offset             ; <i32> [#uses=1]
-        %tmp.5.mask = and i32 %difference, -4           ; <i32> [#uses=1]
-        ; == add %offset, %difference
-        %tmp.8 = add i32 %tmp.3_OK, %tmp.5.mask         ; <i32> [#uses=1]
-        ret i32 %tmp.8
-}
-
-define i8 @test15(i8 %A) {
-        ; Does not effect result
-        %B = add i8 %A, -64             ; <i8> [#uses=1]
-        ; Only one bit set
-        %C = and i8 %B, 16              ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @test16(i8 %A) {
-        ; Turn this into a XOR
-        %B = add i8 %A, 16              ; <i8> [#uses=1]
-        ; Only one bit set
-        %C = and i8 %B, 16              ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i32 @test17(i32 %A) {
-        %B = xor i32 %A, -1             ; <i32> [#uses=1]
-        ; == sub int 0, %A
-        %C = add i32 %B, 1              ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i8 @test18(i8 %A) {
-        %B = xor i8 %A, -1              ; <i8> [#uses=1]
-        ; == sub ubyte 16, %A
-        %C = add i8 %B, 17              ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i32 @test19(i1 %C) {
-        %A = select i1 %C, i32 1000, i32 10             ; <i32> [#uses=1]
-        %V = add i32 %A, 123            ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i32 @test20(i32 %x) {
-        %tmp.2 = xor i32 %x, -2147483648                ; <i32> [#uses=1]
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.4 = add i32 %tmp.2, -2147483648            ; <i32> [#uses=1]
-        ret i32 %tmp.4
-}
-
-define i1 @test21(i32 %x) {
-        %t = add i32 %x, 4              ; <i32> [#uses=1]
-        %y = icmp eq i32 %t, 123                ; <i1> [#uses=1]
-        ret i1 %y
-}
-
-define i32 @test22(i32 %V) {
-        %V2 = add i32 %V, 10            ; <i32> [#uses=1]
-        switch i32 %V2, label %Default [
-                 i32 20, label %Lab1
-                 i32 30, label %Lab2
-        ]
-
-Default:                ; preds = %0
-        ret i32 123
-
-Lab1:           ; preds = %0
-        ret i32 12312
-
-Lab2:           ; preds = %0
-        ret i32 1231231
-}
-
-define i32 @test23(i1 %C, i32 %a) {
-entry:
-        br i1 %C, label %endif, label %else
-
-else:           ; preds = %entry
-        br label %endif
-
-endif:          ; preds = %else, %entry
-        %b.0 = phi i32 [ 0, %entry ], [ 1, %else ]              ; <i32> [#uses=1]
-        %tmp.4 = add i32 %b.0, 1                ; <i32> [#uses=1]
-        ret i32 %tmp.4
-}
-
-define i32 @test24(i32 %A) {
-        %B = add i32 %A, 1              ; <i32> [#uses=1]
-        %C = shl i32 %B, 1              ; <i32> [#uses=1]
-        %D = sub i32 %C, 2              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i64 @test25(i64 %Y) {
-        %tmp.4 = shl i64 %Y, 2          ; <i64> [#uses=1]
-        %tmp.12 = shl i64 %Y, 2         ; <i64> [#uses=1]
-        %tmp.8 = add i64 %tmp.4, %tmp.12                ; <i64> [#uses=1]
-        ret i64 %tmp.8
-}
-
-define i32 @test26(i32 %A, i32 %B) {
-        %C = add i32 %A, %B             ; <i32> [#uses=1]
-        %D = sub i32 %C, %B             ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test27(i1 %C, i32 %X, i32 %Y) {
-        %A = add i32 %X, %Y             ; <i32> [#uses=1]
-        %B = add i32 %Y, 123            ; <i32> [#uses=1]
-        ;; Fold add through select.
-        %C.upgrd.1 = select i1 %C, i32 %A, i32 %B               ; <i32> [#uses=1]
-        %D = sub i32 %C.upgrd.1, %Y             ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test28(i32 %X) {
-        %Y = add i32 %X, 1234           ; <i32> [#uses=1]
-        %Z = sub i32 42, %Y             ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define i32 @test29(i32 %X, i32 %x) {
-        %tmp.2 = sub i32 %X, %x         ; <i32> [#uses=2]
-        %tmp.2.mask = and i32 %tmp.2, 63                ; <i32> [#uses=1]
-        %tmp.6 = add i32 %tmp.2.mask, %x                ; <i32> [#uses=1]
-        %tmp.7 = and i32 %tmp.6, 63             ; <i32> [#uses=1]
-        %tmp.9 = and i32 %tmp.2, -64            ; <i32> [#uses=1]
-        %tmp.10 = or i32 %tmp.7, %tmp.9         ; <i32> [#uses=1]
-        ret i32 %tmp.10
-}
-
-define i64 @test30(i64 %x) {
-        %tmp.2 = xor i64 %x, -9223372036854775808               ; <i64> [#uses=1]
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.4 = add i64 %tmp.2, -9223372036854775808           ; <i64> [#uses=1]
-        ret i64 %tmp.4
-}
-
-define i32 @test31(i32 %A) {
-        %B = add i32 %A, 4              ; <i32> [#uses=1]
-        %C = mul i32 %B, 5              ; <i32> [#uses=1]
-        %D = sub i32 %C, 20             ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test32(i32 %A) {
-        %B = add i32 %A, 4              ; <i32> [#uses=1]
-        %C = shl i32 %B, 2              ; <i32> [#uses=1]
-        %D = sub i32 %C, 16             ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i8 @test33(i8 %A) {
-        %B = and i8 %A, -2              ; <i8> [#uses=1]
-        %C = add i8 %B, 1               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @test34(i8 %A) {
-        %B = add i8 %A, 64              ; <i8> [#uses=1]
-        %C = and i8 %B, 12              ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i32 @test35(i32 %a) {
-        %tmpnot = xor i32 %a, -1                ; <i32> [#uses=1]
-        %tmp2 = add i32 %tmpnot, %a             ; <i32> [#uses=1]
-        ret i32 %tmp2
-}
-
-define i32 @test36(i32 %a) {
-	%x = and i32 %a, -2
-	%y = and i32 %a, -126
-	%z = add i32 %x, %y
-	%q = and i32 %z, 1  ; always zero
-	ret i32 %q
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/add2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/add2.ll
deleted file mode 100644
index cd67d96..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/add2.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep add
-
-define i64 @test1(i64 %A, i32 %B) {
-        %tmp12 = zext i32 %B to i64
-        %tmp3 = shl i64 %tmp12, 32
-        %tmp5 = add i64 %tmp3, %A
-        %tmp6 = and i64 %tmp5, 123
-        ret i64 %tmp6
-}
-
-define i32 @test3(i32 %A) {
-  %B = and i32 %A, 7
-  %C = and i32 %A, 32
-  %F = add i32 %B, %C
-  ret i32 %F
-}
-
-define i32 @test4(i32 %A) {
-  %B = and i32 %A, 128
-  %C = lshr i32 %A, 30
-  %F = add i32 %B, %C
-  ret i32 %F
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/add3.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/add3.ll
deleted file mode 100644
index 55e7ec7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/add3.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep inttoptr | count 2
-
-;; Target triple for gep raising case below.
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-
-; PR1795
-define void @test2(i32 %.val24) {
-EntryBlock:
-        add i32 %.val24, -12
-        inttoptr i32 %0 to i32*
-        store i32 1, i32* %1
-        add i32 %.val24, -16
-        inttoptr i32 %2 to i32*
-        getelementptr i32* %3, i32 1
-        load i32* %4
-        tail call i32 @callee( i32 %5 )
-        ret void
-}
-
-declare i32 @callee(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/addnegneg.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/addnegneg.ll
deleted file mode 100644
index f3b9565..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/addnegneg.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep { sub } | count 1
-; PR2047
-
-define i32 @l(i32 %a, i32 %b, i32 %c, i32 %d) {
-entry:
-	%b.neg = sub i32 0, %b		; <i32> [#uses=1]
-	%c.neg = sub i32 0, %c		; <i32> [#uses=1]
-	%sub4 = add i32 %c.neg, %b.neg		; <i32> [#uses=1]
-	%sub6 = add i32 %sub4, %d		; <i32> [#uses=1]
-	ret i32 %sub6
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/adjust-for-sminmax.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/adjust-for-sminmax.ll
deleted file mode 100644
index 9328ad3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/adjust-for-sminmax.ll
+++ /dev/null
@@ -1,85 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {icmp s\[lg\]t i32 %n, 0} | count 16
-
-; Instcombine should recognize that this code can be adjusted
-; to fit the canonical smax/smin pattern.
-
-define i32 @floor_a(i32 %n) {
-  %t = icmp sgt i32 %n, -1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_a(i32 %n) {
-  %t = icmp slt i32 %n, 1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @floor_b(i32 %n) {
-  %t = icmp sgt i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_b(i32 %n) {
-  %t = icmp slt i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @floor_c(i32 %n) {
-  %t = icmp sge i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_c(i32 %n) {
-  %t = icmp sle i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @floor_d(i32 %n) {
-  %t = icmp sge i32 %n, 1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_d(i32 %n) {
-  %t = icmp sle i32 %n, -1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @floor_e(i32 %n) {
-  %t = icmp sgt i32 %n, -1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_e(i32 %n) {
-  %t = icmp slt i32 %n, 1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @floor_f(i32 %n) {
-  %t = icmp sgt i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_f(i32 %n) {
-  %t = icmp slt i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @floor_g(i32 %n) {
-  %t = icmp sge i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_g(i32 %n) {
-  %t = icmp sle i32 %n, 0
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @floor_h(i32 %n) {
-  %t = icmp sge i32 %n, 1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
-define i32 @ceil_h(i32 %n) {
-  %t = icmp sle i32 %n, -1
-  %m = select i1 %t, i32 %n, i32 0
-  ret i32 %m
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/align-2d-gep.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/align-2d-gep.ll
deleted file mode 100644
index c826e31..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/align-2d-gep.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {align 16} | count 1
-
-; A multi-dimensional array in a nested loop doing vector stores that
-; aren't yet aligned. Instcombine can understand the addressing in the
-; Nice case to prove 16 byte alignment. In the Awkward case, the inner
-; array dimension is not even, so the stores to it won't always be
-; aligned. Instcombine should prove alignment in exactly one of the two
-; stores.
-
- at Nice    = global [1001 x [20000 x double]] zeroinitializer, align 32
- at Awkward = global [1001 x [20001 x double]] zeroinitializer, align 32
-
-define void @foo() nounwind  {
-entry:
-  br label %bb7.outer
-
-bb7.outer:
-  %i = phi i64 [ 0, %entry ], [ %indvar.next26, %bb11 ]
-  br label %bb1
-
-bb1:
-  %j = phi i64 [ 0, %bb7.outer ], [ %indvar.next, %bb1 ]
-
-  %t4 = getelementptr [1001 x [20000 x double]]* @Nice, i64 0, i64 %i, i64 %j
-  %q = bitcast double* %t4 to <2 x double>*
-  store <2 x double><double 0.0, double 0.0>, <2 x double>* %q, align 8
-
-  %s4 = getelementptr [1001 x [20001 x double]]* @Awkward, i64 0, i64 %i, i64 %j
-  %r = bitcast double* %s4 to <2 x double>*
-  store <2 x double><double 0.0, double 0.0>, <2 x double>* %r, align 8
-
-  %indvar.next = add i64 %j, 2
-  %exitcond = icmp eq i64 %indvar.next, 557
-  br i1 %exitcond, label %bb11, label %bb1
-
-bb11:
-  %indvar.next26 = add i64 %i, 1
-  %exitcond27 = icmp eq i64 %indvar.next26, 991
-  br i1 %exitcond27, label %return.split, label %bb7.outer
-
-return.split:
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/align-addr.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/align-addr.ll
deleted file mode 100644
index a05c513..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/align-addr.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {align 16} | count 1
-
-; Instcombine should be able to prove vector alignment in the
-; presence of a few mild address computation tricks.
-
-define void @foo(i8* %b, i64 %n, i64 %u, i64 %y) nounwind  {
-entry:
-  %c = ptrtoint i8* %b to i64
-  %d = and i64 %c, -16
-  %e = inttoptr i64 %d to double*
-  %v = mul i64 %u, 2
-  %z = and i64 %y, -2
-  %t1421 = icmp eq i64 %n, 0
-  br i1 %t1421, label %return, label %bb
-
-bb:
-  %i = phi i64 [ %indvar.next, %bb ], [ 20, %entry ]
-  %j = mul i64 %i, %v
-  %h = add i64 %j, %z
-  %t8 = getelementptr double* %e, i64 %h
-  %p = bitcast double* %t8 to <2 x double>*
-  store <2 x double><double 0.0, double 0.0>, <2 x double>* %p, align 8
-  %indvar.next = add i64 %i, 1
-  %exitcond = icmp eq i64 %indvar.next, %n
-  br i1 %exitcond, label %return, label %bb
-
-return:
-  ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/align-external.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/align-external.ll
deleted file mode 100644
index 38be314..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/align-external.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-; Don't assume that external global variables have their preferred
-; alignment. They may only have the ABI minimum alignment.
-
-; CHECK: %s = shl i64 %a, 3
-; CHECK: %r = or i64 %s, ptrtoint (i32* @A to i64)
-; CHECK: %q = add i64 %r, 1
-; CHECK: ret i64 %q
-
-target datalayout = "-i32:8:32"
-
- at A = external global i32
- at B = external global i32
-
-define i64 @foo(i64 %a) {
-  %t = ptrtoint i32* @A to i64
-  %s = shl i64 %a, 3
-  %r = or i64 %t, %s
-  %q = add i64 %r, 1
-  ret i64 %q
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/align-inc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/align-inc.ll
deleted file mode 100644
index 104d991..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/align-inc.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {GLOBAL.*align 16}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {tmp = load}
-
- at GLOBAL = internal global [4 x i32] zeroinitializer
-
-define <16 x i8> @foo(<2 x i64> %x) {
-entry:
-	%tmp = load <16 x i8>* bitcast ([4 x i32]* @GLOBAL to <16 x i8>*), align 1
-	ret <16 x i8> %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/alloca.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/alloca.ll
deleted file mode 100644
index 95d0f09..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/alloca.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; Zero byte allocas should be deleted.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep alloca
-; END.
-
-declare void @use(...)
-
-define void @test() {
-        %X = alloca [0 x i32]           ; <[0 x i32]*> [#uses=1]
-        call void (...)* @use( [0 x i32]* %X )
-        %Y = alloca i32, i32 0          ; <i32*> [#uses=1]
-        call void (...)* @use( i32* %Y )
-        %Z = alloca {  }                ; <{  }*> [#uses=1]
-        call void (...)* @use( {  }* %Z )
-        ret void
-}
-
-define void @test2() {
-        %A = alloca i32         ; <i32*> [#uses=1]
-        store i32 123, i32* %A
-        ret void
-}
-
-define void @test3() {
-        %A = alloca { i32 }             ; <{ i32 }*> [#uses=1]
-        %B = getelementptr { i32 }* %A, i32 0, i32 0            ; <i32*> [#uses=1]
-        store i32 123, i32* %B
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and-compare.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and-compare.ll
deleted file mode 100644
index d2f2753..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and-compare.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep and | count 1
-
-; Should be optimized to one and.
-define i1 @test1(i32 %a, i32 %b) {
-        %tmp1 = and i32 %a, 65280               ; <i32> [#uses=1]
-        %tmp3 = and i32 %b, 65280               ; <i32> [#uses=1]
-        %tmp = icmp ne i32 %tmp1, %tmp3         ; <i1> [#uses=1]
-        ret i1 %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and-fcmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and-fcmp.ll
deleted file mode 100644
index 55efffa..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and-fcmp.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep fcmp | count 3
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep ret | grep 0
-
-define zeroext i8 @t1(float %x, float %y) nounwind {
-       %a = fcmp ueq float %x, %y
-       %b = fcmp ord float %x, %y
-       %c = and i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
-
-define zeroext i8 @t2(float %x, float %y) nounwind {
-       %a = fcmp olt float %x, %y
-       %b = fcmp ord float %x, %y
-       %c = and i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
-
-define zeroext i8 @t3(float %x, float %y) nounwind {
-       %a = fcmp oge float %x, %y
-       %b = fcmp uno float %x, %y
-       %c = and i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
-
-define zeroext i8 @t4(float %x, float %y) nounwind {
-       %a = fcmp one float %y, %x
-       %b = fcmp ord float %x, %y
-       %c = and i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and-not-or.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and-not-or.ll
deleted file mode 100644
index 9e9f397..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and-not-or.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {and i32 %x, %y} | count 4
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {or}
-
-define i32 @func1(i32 %x, i32 %y) nounwind {
-entry:
-	%n = xor i32 %y, -1
-	%o = or i32 %n, %x
-	%a = and i32 %o, %y
-	ret i32 %a
-}
-
-define i32 @func2(i32 %x, i32 %y) nounwind {
-entry:
-	%n = xor i32 %y, -1
-	%o = or i32 %x, %n
-	%a = and i32 %o, %y
-	ret i32 %a
-}
-
-define i32 @func3(i32 %x, i32 %y) nounwind {
-entry:
-	%n = xor i32 %y, -1
-	%o = or i32 %n, %x
-	%a = and i32 %y, %o
-	ret i32 %a
-}
-
-define i32 @func4(i32 %x, i32 %y) nounwind {
-entry:
-	%n = xor i32 %y, -1
-	%o = or i32 %x, %n
-	%a = and i32 %y, %o
-	ret i32 %a
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and-or-and.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and-or-and.ll
deleted file mode 100644
index 04d475c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and-or-and.ll
+++ /dev/null
@@ -1,61 +0,0 @@
-; If we have an 'and' of the result of an 'or', and one of the 'or' operands
-; cannot have contributed any of the resultant bits, delete the or.  This
-; occurs for very common C/C++ code like this:
-;
-; struct foo { int A : 16; int B : 16; };
-; void test(struct foo *F, int X, int Y) {
-;        F->A = X; F->B = Y;
-; }
-;
-; Which corresponds to test1.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep {or }
-
-define i32 @test1(i32 %X, i32 %Y) {
-        %A = and i32 %X, 7              ; <i32> [#uses=1]
-        %B = and i32 %Y, 8              ; <i32> [#uses=1]
-        %C = or i32 %A, %B              ; <i32> [#uses=1]
-        ;; This cannot include any bits from %Y!
-        %D = and i32 %C, 7              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test2(i32 %X, i8 %Y) {
-        %B = zext i8 %Y to i32          ; <i32> [#uses=1]
-        %C = or i32 %X, %B              ; <i32> [#uses=1]
-        ;; This cannot include any bits from %Y!
-        %D = and i32 %C, 65536          ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test3(i32 %X, i32 %Y) {
-        %B = shl i32 %Y, 1              ; <i32> [#uses=1]
-        %C = or i32 %X, %B              ; <i32> [#uses=1]
-        ;; This cannot include any bits from %Y!
-        %D = and i32 %C, 1              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test4(i32 %X, i32 %Y) {
-        %B = lshr i32 %Y, 31            ; <i32> [#uses=1]
-        %C = or i32 %X, %B              ; <i32> [#uses=1]
-        ;; This cannot include any bits from %Y!
-        %D = and i32 %C, 2              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @or_test1(i32 %X, i32 %Y) {
-        %A = and i32 %X, 1              ; <i32> [#uses=1]
-        ;; This cannot include any bits from X!
-        %B = or i32 %A, 1               ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i8 @or_test2(i8 %X, i8 %Y) {
-        %A = shl i8 %X, 7               ; <i8> [#uses=1]
-        ;; This cannot include any bits from X!
-        %B = or i8 %A, -128             ; <i8> [#uses=1]
-        ret i8 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and-or-not.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and-or-not.ll
deleted file mode 100644
index 8fc53a7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and-or-not.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep xor | count 4
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep and
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep { or}
-
-; PR1510
-
-; These are all equivelent to A^B
-
-define i32 @test1(i32 %a, i32 %b) {
-entry:
-        %tmp3 = or i32 %b, %a           ; <i32> [#uses=1]
-        %tmp3not = xor i32 %tmp3, -1            ; <i32> [#uses=1]
-        %tmp6 = and i32 %b, %a          ; <i32> [#uses=1]
-        %tmp7 = or i32 %tmp6, %tmp3not          ; <i32> [#uses=1]
-        %tmp7not = xor i32 %tmp7, -1            ; <i32> [#uses=1]
-        ret i32 %tmp7not
-}
-
-define i32 @test2(i32 %a, i32 %b) {
-entry:
-        %tmp3 = or i32 %b, %a           ; <i32> [#uses=1]
-        %tmp6 = and i32 %b, %a          ; <i32> [#uses=1]
-        %tmp6not = xor i32 %tmp6, -1            ; <i32> [#uses=1]
-        %tmp7 = and i32 %tmp3, %tmp6not         ; <i32> [#uses=1]
-        ret i32 %tmp7
-}
-
-define <4 x i32> @test3(<4 x i32> %a, <4 x i32> %b) {
-entry:
-        %tmp3 = or <4 x i32> %a, %b             ; <<4 x i32>> [#uses=1]
-        %tmp3not = xor <4 x i32> %tmp3, < i32 -1, i32 -1, i32 -1, i32 -1 >              ; <<4 x i32>> [#uses=1]
-        %tmp6 = and <4 x i32> %a, %b            ; <<4 x i32>> [#uses=1]
-        %tmp7 = or <4 x i32> %tmp6, %tmp3not            ; <<4 x i32>> [#uses=1]
-        %tmp7not = xor <4 x i32> %tmp7, < i32 -1, i32 -1, i32 -1, i32 -1 >              ; <<4 x i32>> [#uses=1]
-        ret <4 x i32> %tmp7not
-}
-
-define <4 x i32> @test4(<4 x i32> %a, <4 x i32> %b) {
-entry:
-        %tmp3 = or <4 x i32> %a, %b             ; <<4 x i32>> [#uses=1]
-        %tmp6 = and <4 x i32> %a, %b            ; <<4 x i32>> [#uses=1]
-        %tmp6not = xor <4 x i32> %tmp6, < i32 -1, i32 -1, i32 -1, i32 -1 >              ; <<4 x i32>> [#uses=1]
-        %tmp7 = and <4 x i32> %tmp3, %tmp6not           ; <<4 x i32>> [#uses=1]
-        ret <4 x i32> %tmp7
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and-or.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and-or.ll
deleted file mode 100644
index 38ad842..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and-or.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {and i32 %a, 1} | count 4
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {or i32 %0, %b} | count 4
-
-
-define i32 @func1(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%0 = or i32 %b, %a		; <i32> [#uses=1]
-	%1 = and i32 %0, 1		; <i32> [#uses=1]
-	%2 = and i32 %b, -2		; <i32> [#uses=1]
-	%3 = or i32 %1, %2		; <i32> [#uses=1]
-	ret i32 %3
-}
-
-define i32 @func2(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%0 = or i32 %a, %b		; <i32> [#uses=1]
-	%1 = and i32 1, %0		; <i32> [#uses=1]
-	%2 = and i32 -2, %b		; <i32> [#uses=1]
-	%3 = or i32 %1, %2		; <i32> [#uses=1]
-	ret i32 %3
-}
-
-define i32 @func3(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%0 = or i32 %b, %a		; <i32> [#uses=1]
-	%1 = and i32 %0, 1		; <i32> [#uses=1]
-	%2 = and i32 %b, -2		; <i32> [#uses=1]
-	%3 = or i32 %2, %1		; <i32> [#uses=1]
-	ret i32 %3
-}
-
-define i32 @func4(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%0 = or i32 %a, %b		; <i32> [#uses=1]
-	%1 = and i32 1, %0		; <i32> [#uses=1]
-	%2 = and i32 -2, %b		; <i32> [#uses=1]
-	%3 = or i32 %2, %1		; <i32> [#uses=1]
-	ret i32 %3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and-xor-merge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and-xor-merge.ll
deleted file mode 100644
index 85f8026..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and-xor-merge.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and | count 1
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep xor | count 2
-
-; (x&z) ^ (y&z) -> (x^y)&z
-define i32 @test1(i32 %x, i32 %y, i32 %z) {
-        %tmp3 = and i32 %z, %x
-        %tmp6 = and i32 %z, %y
-        %tmp7 = xor i32 %tmp3, %tmp6
-        ret i32 %tmp7
-}
-
-; (x & y) ^ (x|y) -> x^y
-define i32 @test2(i32 %x, i32 %y, i32 %z) {
-        %tmp3 = and i32 %y, %x
-        %tmp6 = or i32 %y, %x
-        %tmp7 = xor i32 %tmp3, %tmp6
-        ret i32 %tmp7
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and.ll
deleted file mode 100644
index edab47e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and.ll
+++ /dev/null
@@ -1,255 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep and
-
-define i32 @test1(i32 %A) {
-        ; zero result
-        %B = and i32 %A, 0              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test2(i32 %A) {
-        ; noop
-        %B = and i32 %A, -1             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i1 @test3(i1 %A) {
-        ; always = false
-        %B = and i1 %A, false           ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test4(i1 %A) {
-        ; noop
-        %B = and i1 %A, true            ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i32 @test5(i32 %A) {
-        %B = and i32 %A, %A             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i1 @test6(i1 %A) {
-        %B = and i1 %A, %A              ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-; A & ~A == 0
-define i32 @test7(i32 %A) {
-        %NotA = xor i32 %A, -1          ; <i32> [#uses=1]
-        %B = and i32 %A, %NotA          ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-; AND associates
-define i8 @test8(i8 %A) {
-        %B = and i8 %A, 3               ; <i8> [#uses=1]
-        %C = and i8 %B, 4               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i1 @test9(i32 %A) {
-        ; Test of sign bit, convert to setle %A, 0
-        %B = and i32 %A, -2147483648            ; <i32> [#uses=1]
-        %C = icmp ne i32 %B, 0          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test9a(i32 %A) {
-        ; Test of sign bit, convert to setle %A, 0
-        %B = and i32 %A, -2147483648            ; <i32> [#uses=1]
-        %C = icmp ne i32 %B, 0          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i32 @test10(i32 %A) {
-        %B = and i32 %A, 12             ; <i32> [#uses=1]
-        %C = xor i32 %B, 15             ; <i32> [#uses=1]
-        ; (X ^ C1) & C2 --> (X & C2) ^ (C1&C2)
-        %D = and i32 %C, 1              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test11(i32 %A, i32* %P) {
-        %B = or i32 %A, 3               ; <i32> [#uses=1]
-        %C = xor i32 %B, 12             ; <i32> [#uses=2]
-        ; additional use of C
-        store i32 %C, i32* %P
-        ; %C = and uint %B, 3 --> 3
-        %D = and i32 %C, 3              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i1 @test12(i32 %A, i32 %B) {
-        %C1 = icmp ult i32 %A, %B               ; <i1> [#uses=1]
-        %C2 = icmp ule i32 %A, %B               ; <i1> [#uses=1]
-        ; (A < B) & (A <= B) === (A < B)
-        %D = and i1 %C1, %C2            ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test13(i32 %A, i32 %B) {
-        %C1 = icmp ult i32 %A, %B               ; <i1> [#uses=1]
-        %C2 = icmp ugt i32 %A, %B               ; <i1> [#uses=1]
-        ; (A < B) & (A > B) === false
-        %D = and i1 %C1, %C2            ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test14(i8 %A) {
-        %B = and i8 %A, -128            ; <i8> [#uses=1]
-        %C = icmp ne i8 %B, 0           ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i8 @test15(i8 %A) {
-        %B = lshr i8 %A, 7              ; <i8> [#uses=1]
-        ; Always equals zero
-        %C = and i8 %B, 2               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i8 @test16(i8 %A) {
-        %B = shl i8 %A, 2               ; <i8> [#uses=1]
-        %C = and i8 %B, 3               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-;; ~(~X & Y) --> (X | ~Y)
-define i8 @test17(i8 %X, i8 %Y) {
-        %B = xor i8 %X, -1              ; <i8> [#uses=1]
-        %C = and i8 %B, %Y              ; <i8> [#uses=1]
-        %D = xor i8 %C, -1              ; <i8> [#uses=1]
-        ret i8 %D
-}
-
-define i1 @test18(i32 %A) {
-        %B = and i32 %A, -128           ; <i32> [#uses=1]
-        ;; C >= 128
-        %C = icmp ne i32 %B, 0          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test18a(i8 %A) {
-        %B = and i8 %A, -2              ; <i8> [#uses=1]
-        %C = icmp eq i8 %B, 0           ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i32 @test19(i32 %A) {
-        %B = shl i32 %A, 3              ; <i32> [#uses=1]
-        ;; Clearing a zero bit
-        %C = and i32 %B, -2             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i8 @test20(i8 %A) {
-        %C = lshr i8 %A, 7              ; <i8> [#uses=1]
-        ;; Unneeded
-        %D = and i8 %C, 1               ; <i8> [#uses=1]
-        ret i8 %D
-}
-
-define i1 @test22(i32 %A) {
-        %B = icmp eq i32 %A, 1          ; <i1> [#uses=1]
-        %C = icmp sge i32 %A, 3         ; <i1> [#uses=1]
-        ;; false
-        %D = and i1 %B, %C              ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test23(i32 %A) {
-        %B = icmp sgt i32 %A, 1         ; <i1> [#uses=1]
-        %C = icmp sle i32 %A, 2         ; <i1> [#uses=1]
-        ;; A == 2
-        %D = and i1 %B, %C              ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test24(i32 %A) {
-        %B = icmp sgt i32 %A, 1         ; <i1> [#uses=1]
-        %C = icmp ne i32 %A, 2          ; <i1> [#uses=1]
-        ;; A > 2
-        %D = and i1 %B, %C              ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test25(i32 %A) {
-        %B = icmp sge i32 %A, 50                ; <i1> [#uses=1]
-        %C = icmp slt i32 %A, 100               ; <i1> [#uses=1]
-        ;; (A-50) <u 50
-        %D = and i1 %B, %C              ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test26(i32 %A) {
-        %B = icmp ne i32 %A, 50         ; <i1> [#uses=1]
-        %C = icmp ne i32 %A, 51         ; <i1> [#uses=1]
-        ;; (A-50) > 1
-        %D = and i1 %B, %C              ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i8 @test27(i8 %A) {
-        %B = and i8 %A, 4               ; <i8> [#uses=1]
-        %C = sub i8 %B, 16              ; <i8> [#uses=1]
-        ;; 0xF0
-        %D = and i8 %C, -16             ; <i8> [#uses=1]
-        %E = add i8 %D, 16              ; <i8> [#uses=1]
-        ret i8 %E
-}
-
-;; This is juse a zero extending shr.
-define i32 @test28(i32 %X) {
-        ;; Sign extend
-        %Y = ashr i32 %X, 24            ; <i32> [#uses=1]
-        ;; Mask out sign bits
-        %Z = and i32 %Y, 255            ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define i32 @test29(i8 %X) {
-        %Y = zext i8 %X to i32          ; <i32> [#uses=1]
-       ;; Zero extend makes this unneeded.
-        %Z = and i32 %Y, 255            ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define i32 @test30(i1 %X) {
-        %Y = zext i1 %X to i32          ; <i32> [#uses=1]
-        %Z = and i32 %Y, 1              ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define i32 @test31(i1 %X) {
-        %Y = zext i1 %X to i32          ; <i32> [#uses=1]
-        %Z = shl i32 %Y, 4              ; <i32> [#uses=1]
-        %A = and i32 %Z, 16             ; <i32> [#uses=1]
-        ret i32 %A
-}
-
-define i32 @test32(i32 %In) {
-        %Y = and i32 %In, 16            ; <i32> [#uses=1]
-        %Z = lshr i32 %Y, 2             ; <i32> [#uses=1]
-        %A = and i32 %Z, 1              ; <i32> [#uses=1]
-        ret i32 %A
-}
-
-;; Code corresponding to one-bit bitfield ^1.
-define i32 @test33(i32 %b) {
-        %tmp.4.mask = and i32 %b, 1             ; <i32> [#uses=1]
-        %tmp.10 = xor i32 %tmp.4.mask, 1                ; <i32> [#uses=1]
-        %tmp.12 = and i32 %b, -2                ; <i32> [#uses=1]
-        %tmp.13 = or i32 %tmp.12, %tmp.10               ; <i32> [#uses=1]
-        ret i32 %tmp.13
-}
-
-define i32 @test34(i32 %A, i32 %B) {
-        %tmp.2 = or i32 %B, %A          ; <i32> [#uses=1]
-        %tmp.4 = and i32 %tmp.2, %B             ; <i32> [#uses=1]
-        ret i32 %tmp.4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/and2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/and2.ll
deleted file mode 100644
index 3b80d94..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/and2.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep and
-
-
-; PR1738
-define i1 @test1(double %X, double %Y) {
-        %tmp9 = fcmp ord double %X, 0.000000e+00
-        %tmp13 = fcmp ord double %Y, 0.000000e+00
-        %bothcond = and i1 %tmp13, %tmp9
-        ret i1 %bothcond
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-add1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-add1.ll
deleted file mode 100644
index 74280ee..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-add1.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; This test makes sure that add instructions are properly eliminated.
-; This test is for Integer BitWidth <= 64 && BitWidth % 8 != 0.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep -v OK | not grep add
-
-
-define i1 @test1(i1 %x) {
-        %tmp.2 = xor i1 %x, 1
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.4 = add i1 %tmp.2, 1
-        ret i1 %tmp.4
-}
-
-define i47 @test2(i47 %x) {
-        %tmp.2 = xor i47 %x, 70368744177664
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.4 = add i47 %tmp.2, 70368744177664
-        ret i47 %tmp.4
-}
-
-define i15 @test3(i15 %x) {
-        %tmp.2 = xor i15 %x, 16384
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.4 = add i15 %tmp.2, 16384
-        ret i15 %tmp.4
-}
-
-define i49 @test6(i49 %x) {
-        ;; (x & 254)+1 -> (x & 254)|1
-        %tmp.2 = and i49 %x, 562949953421310
-        %tmp.4 = add i49 %tmp.2, 1
-        ret i49 %tmp.4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-add2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-add2.ll
deleted file mode 100644
index 0ddfcc0..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-add2.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; This test makes sure that add instructions are properly eliminated.
-; This test is for Integer BitWidth > 64 && BitWidth <= 1024.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep -v OK | not grep add
-; END.
-
-define i111 @test1(i111 %x) {
-        %tmp.2 = shl i111 1, 110
-        %tmp.4 = xor i111 %x, %tmp.2
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.6 = add i111 %tmp.4, %tmp.2
-        ret i111 %tmp.6
-}
-
-define i65 @test2(i65 %x) {
-        %tmp.0 = shl i65 1, 64
-        %tmp.2 = xor i65 %x, %tmp.0
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.4 = add i65 %tmp.2, %tmp.0
-        ret i65 %tmp.4
-}
-
-define i1024 @test3(i1024 %x) {
-        %tmp.0 = shl i1024 1, 1023
-        %tmp.2 = xor i1024 %x, %tmp.0
-        ;; Add of sign bit -> xor of sign bit.
-        %tmp.4 = add i1024 %tmp.2, %tmp.0
-        ret i1024 %tmp.4
-}
-
-define i128 @test4(i128 %x) {
-        ;; If we have ADD(XOR(AND(X, 0xFF), 0xF..F80), 0x80), it's a sext.
-        %tmp.5 = shl i128 1, 127
-        %tmp.1 = ashr i128 %tmp.5, 120
-        %tmp.2 = xor i128 %x, %tmp.1      
-        %tmp.4 = add i128 %tmp.2, %tmp.5
-        ret i128 %tmp.4
-}
-
-define i77 @test6(i77 %x) {
-        ;; (x & 254)+1 -> (x & 254)|1
-        %tmp.2 = and i77 %x, 562949953421310
-        %tmp.4 = add i77 %tmp.2, 1
-        ret i77 %tmp.4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-compare.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-compare.ll
deleted file mode 100644
index ad2e41d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-compare.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and | count 2
-
-; Should be optimized to one and.
-define i1 @test1(i33 %a, i33 %b) {
-        %tmp1 = and i33 %a, 65280
-        %tmp3 = and i33 %b, 65280
-        %tmp = icmp ne i33 %tmp1, %tmp3
-        ret i1 %tmp
-}
-
-define i1 @test2(i999 %a, i999 %b) {
-        %tmp1 = and i999 %a, 65280
-        %tmp3 = and i999 %b, 65280
-        %tmp = icmp ne i999 %tmp1, %tmp3
-        ret i1 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-or-and.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-or-and.ll
deleted file mode 100644
index 4630f28..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-or-and.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; If we have an 'and' of the result of an 'or', and one of the 'or' operands
-; cannot have contributed any of the resultant bits, delete the or.  This
-; occurs for very common C/C++ code like this:
-;
-; struct foo { int A : 16; int B : 16; };
-; void test(struct foo *F, int X, int Y) {
-;        F->A = X; F->B = Y;
-; }
-;
-; Which corresponds to test1.
-; 
-; This tests arbitrary precision integers.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {or }
-; END.
-
-define i17 @test1(i17 %X, i17 %Y) {
-	%A = and i17 %X, 7
-	%B = and i17 %Y, 8
-	%C = or i17 %A, %B
-	%D = and i17 %C, 7  ;; This cannot include any bits from %Y!
-	ret i17 %D
-}
-
-define i49 @test3(i49 %X, i49 %Y) {
-	%B = shl i49 %Y, 1
-	%C = or i49 %X, %B
-	%D = and i49 %C, 1  ;; This cannot include any bits from %Y!
-	ret i49 %D
-}
-
-define i67 @test4(i67 %X, i67 %Y) {
-	%B = lshr i67 %Y, 66
-	%C = or i67 %X, %B
-	%D = and i67 %C, 2  ;; This cannot include any bits from %Y!
-	ret i67 %D
-}
-
-define i231 @or_test1(i231 %X, i231 %Y) {
-	%A = and i231 %X, 1
-	%B = or i231 %A, 1     ;; This cannot include any bits from X!
-	ret i231 %B
-}
-
-define i7 @or_test2(i7 %X, i7 %Y) {
-	%A = shl i7 %X, 6
-	%B = or i7 %A, 64     ;; This cannot include any bits from X!
-	ret i7 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-xor-merge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-xor-merge.ll
deleted file mode 100644
index e1e4e3c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and-xor-merge.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; This test case checks that the merge of and/xor can work on arbitrary
-; precision integers.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep and | count 1
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep xor | count 2
-
-; (x &z ) ^ (y & z) -> (x ^ y) & z
-define i57 @test1(i57 %x, i57 %y, i57 %z) {
-        %tmp3 = and i57 %z, %x
-        %tmp6 = and i57 %z, %y
-        %tmp7 = xor i57 %tmp3, %tmp6
-        ret i57 %tmp7
-}
-
-; (x & y) ^ (x | y) -> x ^ y
-define i23 @test2(i23 %x, i23 %y, i23 %z) {
-        %tmp3 = and i23 %y, %x
-        %tmp6 = or i23 %y, %x
-        %tmp7 = xor i23 %tmp3, %tmp6
-        ret i23 %tmp7
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and1.ll
deleted file mode 100644
index eb3b1a6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and1.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; This test makes sure that and instructions are properly eliminated.
-; This test is for Integer BitWidth <= 64 && BitWidth % 8 != 0.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {and }
-; END.
-
-define i39 @test0(i39 %A) {
-        %B = and i39 %A, 0 ; zero result
-        ret i39 %B
-}
-
-define i47 @test1(i47 %A, i47 %B) {
-        ;; (~A & ~B) == (~(A | B)) - De Morgan's Law
-        %NotA = xor i47 %A, -1
-        %NotB = xor i47 %B, -1
-        %C1 = and i47 %NotA, %NotB
-        ret i47 %C1
-}
-
-define i15 @test2(i15 %x) {
-        %tmp.2 = and i15 %x, -1 ; noop
-        ret i15 %tmp.2
-}
-
-define i23 @test3(i23 %x) {
-        %tmp.0 = and i23 %x, 127
-        %tmp.2 = and i23 %tmp.0, 128
-        ret i23 %tmp.2
-}
-
-define i1 @test4(i37 %x) {
-        %A = and i37 %x, -2147483648
-        %B = icmp ne i37 %A, 0
-        ret i1 %B
-}
-
-define i7 @test5(i7 %A, i7* %P) {
-        %B = or i7 %A, 3
-        %C = xor i7 %B, 12
-        store i7 %C, i7* %P
-        %r = and i7 %C, 3
-        ret i7 %r
-}
-
-define i7 @test6(i7 %A, i7 %B) {
-        ;; ~(~X & Y) --> (X | ~Y)
-        %t0 = xor i7 %A, -1
-        %t1 = and i7 %t0, %B
-        %r = xor i7 %t1, -1
-        ret i7 %r
-}
-
-define i47 @test7(i47 %A) {
-        %X = ashr i47 %A, 39 ;; sign extend
-        %C1 = and i47 %X, 255
-        ret i47 %C1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and2.ll
deleted file mode 100644
index f7b3934..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-and2.ll
+++ /dev/null
@@ -1,82 +0,0 @@
-; This test makes sure that and instructions are properly eliminated.
-; This test is for Integer BitWidth > 64 && BitWidth <= 1024.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {and }
-; END.
-
-
-define i999 @test0(i999 %A) {
-        %B = and i999 %A, 0 ; zero result
-        ret i999 %B
-}
-
-define i477 @test1(i477 %A, i477 %B) {
-        ;; (~A & ~B) == (~(A | B)) - De Morgan's Law
-        %NotA = xor i477 %A, -1
-        %NotB = xor i477 %B, -1
-        %C1 = and i477 %NotA, %NotB
-        ret i477 %C1
-}
-
-define i129 @tst(i129 %A, i129 %B) {
-        ;; (~A & ~B) == (~(A | B)) - De Morgan's Law
-        %NotA = xor i129 %A, -1
-        %NotB = xor i129 %B, -1
-        %C1 = and i129 %NotA, %NotB
-        ret i129 %C1
-}
-
-define i65 @test(i65 %A, i65 %B) {
-        ;; (~A & ~B) == (~(A | B)) - De Morgan's Law
-        %NotA = xor i65 %A, -1
-        %NotB = xor i65 -1, %B
-        %C1 = and i65 %NotA, %NotB
-        ret i65 %C1
-}
-
-define i66 @tes(i66 %A, i66 %B) {
-        ;; (~A & ~B) == (~(A | B)) - De Morgan's Law
-        %NotA = xor i66 %A, -1
-        %NotB = xor i66 %B, -1
-        %C1 = and i66 %NotA, %NotB
-        ret i66 %C1
-}
-
-define i1005 @test2(i1005 %x) {
-        %tmp.2 = and i1005 %x, -1 ; noop
-        ret i1005 %tmp.2
-}
-
-define i123 @test3(i123 %x) {
-        %tmp.0 = and i123 %x, 127
-        %tmp.2 = and i123 %tmp.0, 128
-        ret i123 %tmp.2
-}
-
-define i1 @test4(i737 %x) {
-        %A = and i737 %x, -2147483648
-        %B = icmp ne i737 %A, 0
-        ret i1 %B
-}
-
-define i117 @test5(i117 %A, i117* %P) {
-        %B = or i117 %A, 3
-        %C = xor i117 %B, 12
-        store i117 %C, i117* %P
-        %r = and i117 %C, 3
-        ret i117 %r
-}
-
-define i117 @test6(i117 %A, i117 %B) {
-        ;; ~(~X & Y) --> (X | ~Y)
-        %t0 = xor i117 %A, -1
-        %t1 = and i117 %t0, %B
-        %r = xor i117 %t1, -1
-        ret i117 %r
-}
-
-define i1024 @test7(i1024 %A) {
-        %X = ashr i1024 %A, 1016 ;; sign extend
-        %C1 = and i1024 %X, 255
-        ret i1024 %C1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-call-cast-target.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-call-cast-target.ll
deleted file mode 100644
index 3688fbe..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-call-cast-target.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep call | not grep bitcast
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-
-
-define i32 @main() {
-entry:
-	%tmp = call i32 bitcast (i7* (i999*)* @ctime to i32 (i99*)*)( i99* null )
-	ret i32 %tmp
-}
-
-define i7* @ctime(i999*) {
-entry:
-	%tmp = call i7* bitcast (i32 ()* @main to i7* ()*)( )
-	ret i7* %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast-and-cast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast-and-cast.ll
deleted file mode 100644
index 337fd7c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast-and-cast.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep bitcast
-
-define i19 @test1(i43 %val) {
-  %t1 = bitcast i43 %val to i43 
-  %t2 = and i43 %t1, 1
-  %t3 = trunc i43 %t2 to i19
-  ret i19 %t3
-}
-
-define i73 @test2(i677 %val) {
-  %t1 = bitcast i677 %val to i677 
-  %t2 = and i677 %t1, 1
-  %t3 = trunc i677 %t2 to i73
-  ret i73 %t3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast-cast-to-and.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast-cast-to-and.ll
deleted file mode 100644
index 29a8869..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast-cast-to-and.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep i41
-
-define i61 @test1(i61 %X) {
-        %Y = trunc i61 %X to i41 ;; Turn i61o an AND
-        %Z = zext i41 %Y to i61
-        ret i61 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast.ll
deleted file mode 100644
index dd00146..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-cast.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; Tests to make sure elimination of casts is working correctly
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-
-define i17 @test1(i17 %a) {
-        %tmp = zext i17 %a to i37               ; <i37> [#uses=2]
-        %tmp21 = lshr i37 %tmp, 8               ; <i37> [#uses=1]
-        %tmp5 = shl i37 %tmp, 8         ; <i37> [#uses=1]
-        %tmp.upgrd.32 = or i37 %tmp21, %tmp5            ; <i37> [#uses=1]
-        %tmp.upgrd.3 = trunc i37 %tmp.upgrd.32 to i17   ; <i17> [#uses=1]
-        ret i17 %tmp.upgrd.3
-}
-
-define i167 @test2(i167 %a) {
-        %tmp = zext i167 %a to i577               ; <i577> [#uses=2]
-        %tmp21 = lshr i577 %tmp, 9               ; <i577> [#uses=1]
-        %tmp5 = shl i577 %tmp, 8         ; <i577> [#uses=1]
-        %tmp.upgrd.32 = or i577 %tmp21, %tmp5            ; <i577> [#uses=1]
-        %tmp.upgrd.3 = trunc i577 %tmp.upgrd.32 to i167  ; <i167> [#uses=1]
-        ret i167 %tmp.upgrd.3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-div1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-div1.ll
deleted file mode 100644
index e9aa579..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-div1.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; This test makes sure that div instructions are properly eliminated.
-; This test is for Integer BitWidth < 64 && BitWidth % 2 != 0.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep div
-
-
-define i33 @test1(i33 %X) {
-    %Y = udiv i33 %X, 4096
-    ret i33 %Y
-}
-
-define i49 @test2(i49 %X) {
-    %tmp.0 = shl i49 4096, 17
-    %Y = udiv i49 %X, %tmp.0
-    ret i49 %Y
-}
-
-define i59 @test3(i59 %X, i1 %C) {
-        %V = select i1 %C, i59 1024, i59 4096
-        %R = udiv i59 %X, %V
-        ret i59 %R
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-div2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-div2.ll
deleted file mode 100644
index 2aa2c3a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-div2.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; This test makes sure that div instructions are properly eliminated.
-; This test is for Integer BitWidth >= 64 && BitWidth <= 1024.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep div
-
-
-define i333 @test1(i333 %X) {
-    %Y = udiv i333 %X, 70368744177664
-    ret i333 %Y
-}
-
-define i499 @test2(i499 %X) {
-    %tmp.0 = shl i499 4096, 197
-    %Y = udiv i499 %X, %tmp.0
-    ret i499 %Y
-}
-
-define i599 @test3(i599 %X, i1 %C) {
-        %V = select i1 %C, i599 70368744177664, i599 4096
-        %R = udiv i599 %X, %V
-        ret i599 %R
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-elim-logicalops.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-elim-logicalops.ll
deleted file mode 100644
index 13d032c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-elim-logicalops.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; Test that elimination of logical operators works with 
-; arbitrary precision integers.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep {(and\|xor\|add\|shl\|shr)}
-; END.
-
-define i33 @test1(i33 %x) {
-        %tmp.1 = and i33 %x, 65535           ; <i33> [#uses=1]
-        %tmp.2 = xor i33 %tmp.1, -32768      ; <i33> [#uses=1]
-        %tmp.3 = add i33 %tmp.2, 32768       ; <i33> [#uses=1]
-        ret i33 %tmp.3
-}
-
-define i33 @test2(i33 %x) {
-        %tmp.1 = and i33 %x, 65535           ; <i33> [#uses=1]
-        %tmp.2 = xor i33 %tmp.1, 32768       ; <i33> [#uses=1]
-        %tmp.3 = add i33 %tmp.2, -32768      ; <i33> [#uses=1]
-        ret i33 %tmp.3
-}
-
-define i33 @test3(i16 %P) {
-        %tmp.1 = zext i16 %P to i33          ; <i33> [#uses=1]
-        %tmp.4 = xor i33 %tmp.1, 32768       ; <i33> [#uses=1]
-        %tmp.5 = add i33 %tmp.4, -32768      ; <i33> [#uses=1]
-        ret i33 %tmp.5
-}
-
-define i33 @test5(i33 %x) {
-	%tmp.1 = and i33 %x, 254
-	%tmp.2 = xor i33 %tmp.1, 128
-	%tmp.3 = add i33 %tmp.2, -128
-	ret i33 %tmp.3
-}
-
-define i33 @test6(i33 %x) {
-        %tmp.2 = shl i33 %x, 16           ; <i33> [#uses=1]
-        %tmp.4 = lshr i33 %tmp.2, 16      ; <i33> [#uses=1]
-        ret i33 %tmp.4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-mul1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-mul1.ll
deleted file mode 100644
index 36b1102..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-mul1.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; This test makes sure that mul instructions are properly eliminated.
-; This test is for Integer BitWidth < 64 && BitWidth % 2 != 0.
-;
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep mul
-
-
-define i17 @test1(i17 %X) {
-    %Y = mul i17 %X, 1024
-    ret i17 %Y
-} 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-mul2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-mul2.ll
deleted file mode 100644
index 72fd97a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-mul2.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; This test makes sure that mul instructions are properly eliminated.
-; This test is for Integer BitWidth >= 64 && BitWidth % 2 >= 1024.
-;
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep mul
-
-
-define i177 @test1(i177 %X) {
-    %C = shl i177 1, 155
-    %Y = mul i177 %X, %C
-    ret i177 %Y
-} 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-not.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-not.ll
deleted file mode 100644
index f557fa8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-not.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; This test makes sure that the xor instructions are properly eliminated
-; when arbitrary precision integers are used.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep xor
-
-define i33 @test1(i33 %A) {
-	%B = xor i33 %A, -1
-	%C = xor i33 %B, -1
-	ret i33 %C
-}
-
-define i1 @test2(i52 %A, i52 %B) {
-	%cond = icmp ule i52 %A, %B     ; Can change into uge
-	%Ret = xor i1 %cond, true
-	ret i1 %Ret
-}
-
-; Test that demorgans law can be instcombined
-define i47 @test3(i47 %A, i47 %B) {
-	%a = xor i47 %A, -1
-	%b = xor i47 %B, -1
-	%c = and i47 %a, %b
-	%d = xor i47 %c, -1
-	ret i47 %d
-}
-
-; Test that demorgens law can work with constants
-define i61 @test4(i61 %A, i61 %B) {
-	%a = xor i61 %A, -1
-	%c = and i61 %a, 5    ; 5 = ~c2
-	%d = xor i61 %c, -1
-	ret i61 %d
-}
-
-; test the mirror of demorgans law...
-define i71 @test5(i71 %A, i71 %B) {
-	%a = xor i71 %A, -1
-	%b = xor i71 %B, -1
-	%c = or i71 %a, %b
-	%d = xor i71 %c, -1
-	ret i71 %d
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-or1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-or1.ll
deleted file mode 100644
index 51b87fe..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-or1.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; This test makes sure that or instructions are properly eliminated.
-; This test is for Integer BitWidth <= 64 && BitWidth % 2 != 0.
-;
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep or
-
-
-define i7 @test0(i7 %X) {
-    %Y = or i7 %X, 0
-    ret i7 %Y
-}
-
-define i17 @test1(i17 %X) {
-    %Y = or i17 %X, -1
-    ret i17 %Y
-} 
-
-define i23 @test2(i23 %A) {
-    ;; A | ~A == -1
-    %NotA = xor i23 -1, %A
-    %B = or i23 %A, %NotA
-    ret i23 %B
-}
-
-define i39 @test3(i39 %V, i39 %M) {
-    ;; If we have: ((V + N) & C1) | (V & C2)
-    ;; .. and C2 = ~C1 and C2 is 0+1+ and (N & C2) == 0
-    ;; replace with V+N.
-    %C1 = xor i39 274877906943, -1 ;; C2 = 274877906943
-    %N = and i39 %M, 274877906944
-    %A = add i39 %V, %N
-    %B = and i39 %A, %C1
-    %D = and i39 %V, 274877906943
-    %R = or i39 %B, %D
-    ret i39 %R
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-or2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-or2.ll
deleted file mode 100644
index 21dc565..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-or2.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; This test makes sure that or instructions are properly eliminated.
-; This test is for Integer BitWidth > 64 && BitWidth <= 1024.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep or
-
-
-define i777 @test0(i777 %X) {
-    %Y = or i777 %X, 0
-    ret i777 %Y
-}
-
-define i117 @test1(i117 %X) {
-    %Y = or i117 %X, -1
-    ret i117 %Y
-} 
-
-define i1023 @test2(i1023 %A) {
-    ;; A | ~A == -1
-    %NotA = xor i1023 -1, %A
-    %B = or i1023 %A, %NotA
-    ret i1023 %B
-}
-
-define i399 @test3(i399 %V, i399 %M) {
-    ;; If we have: ((V + N) & C1) | (V & C2)
-    ;; .. and C2 = ~C1 and C2 is 0+1+ and (N & C2) == 0
-    ;; replace with V+N.
-    %C1 = xor i399 274877906943, -1 ;; C2 = 274877906943
-    %N = and i399 %M, 18446742974197923840
-    %A = add i399 %V, %N
-    %B = and i399 %A, %C1
-    %D = and i399 %V, 274877906943
-    %R = or i399 %B, %D
-    ret i399 %R
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-rem1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-rem1.ll
deleted file mode 100644
index 2ec8c74..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-rem1.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-; This test is for Integer BitWidth < 64 && BitWidth % 2 != 0.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep rem
-
-
-define i33 @test1(i33 %A) {
-    %B = urem i33 %A, 4096
-    ret i33 %B
-}
-
-define i49 @test2(i49 %A) {
-    %B = shl i49 4096, 11
-    %Y = urem i49 %A, %B
-    ret i49 %Y
-}
-
-define i59 @test3(i59 %X, i1 %C) {
-	%V = select i1 %C, i59 70368744177664, i59 4096
-	%R = urem i59 %X, %V
-	ret i59 %R
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-rem2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-rem2.ll
deleted file mode 100644
index 4d22c22..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-rem2.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-; This test is for Integer BitWidth >= 64 && BitWidth <= 1024.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep rem
-
-
-define i333 @test1(i333 %A) {
-    %B = urem i333 %A, 70368744177664
-    ret i333 %B
-}
-
-define i499 @test2(i499 %A) {
-    %B = shl i499 4096, 111
-    %Y = urem i499 %A, %B
-    ret i499 %Y
-}
-
-define i599 @test3(i599 %X, i1 %C) {
-	%V = select i1 %C, i599 70368744177664, i599 4096
-	%R = urem i599 %X, %V
-	ret i599 %R
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-select.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-select.ll
deleted file mode 100644
index c2399fb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-select.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep select
-
-
-define i41 @test1(i1 %C) {
-	%V = select i1 %C, i41 1, i41 0  ; V = C
-	ret i41 %V
-}
-
-define i999 @test2(i1 %C) {
-	%V = select i1 %C, i999 0, i999 1  ; V = C
-	ret i999 %V
-}
-
-define i41 @test3(i41 %X) {
-    ;; (x <s 0) ? -1 : 0 -> ashr x, 31
-    %t = icmp slt i41 %X, 0
-    %V = select i1 %t, i41 -1, i41 0
-    ret i41 %V
-}
-
-define i1023 @test4(i1023 %X) {
-    ;; (x <s 0) ? -1 : 0 -> ashr x, 31
-    %t = icmp slt i1023 %X, 0
-    %V = select i1 %t, i1023 -1, i1023 0
-    ret i1023 %V
-}
-
-define i41 @test5(i41 %X) {
-    ;; ((X & 27) ? 27 : 0)
-    %Y = and i41 %X, 32
-    %t = icmp ne i41 %Y, 0
-    %V = select i1 %t, i41 32, i41 0
-    ret i41 %V
-}
-
-define i1023 @test6(i1023 %X) {
-    ;; ((X & 27) ? 27 : 0)
-    %Y = and i1023 %X, 64 
-    %t = icmp ne i1023 %Y, 0
-    %V = select i1 %t, i1023 64, i1023 0
-    ret i1023 %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shift-simplify.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shift-simplify.ll
deleted file mode 100644
index a0046fb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shift-simplify.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    egrep {shl|lshr|ashr} | count 3
-
-define i41 @test0(i41 %A, i41 %B, i41 %C) {
-	%X = shl i41 %A, %C
-	%Y = shl i41 %B, %C
-	%Z = and i41 %X, %Y
-	ret i41 %Z
-}
-
-define i57 @test1(i57 %A, i57 %B, i57 %C) {
-	%X = lshr i57 %A, %C
-	%Y = lshr i57 %B, %C
-	%Z = or i57 %X, %Y
-	ret i57 %Z
-}
-
-define i49 @test2(i49 %A, i49 %B, i49 %C) {
-	%X = ashr i49 %A, %C
-	%Y = ashr i49 %B, %C
-	%Z = xor i49 %X, %Y
-	ret i49 %Z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shift.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shift.ll
deleted file mode 100644
index afc5360..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shift.ll
+++ /dev/null
@@ -1,191 +0,0 @@
-; This test makes sure that shit instructions are properly eliminated
-; even with arbitrary precision integers.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sh
-; END.
-
-define i47 @test1(i47 %A) {
-	%B = shl i47 %A, 0		; <i47> [#uses=1]
-	ret i47 %B
-}
-
-define i41 @test2(i7 %X) {
-	%A = zext i7 %X to i41		; <i41> [#uses=1]
-	%B = shl i41 0, %A		; <i41> [#uses=1]
-	ret i41 %B
-}
-
-define i41 @test3(i41 %A) {
-	%B = ashr i41 %A, 0		; <i41> [#uses=1]
-	ret i41 %B
-}
-
-define i39 @test4(i7 %X) {
-	%A = zext i7 %X to i39		; <i39> [#uses=1]
-	%B = ashr i39 0, %A		; <i39> [#uses=1]
-	ret i39 %B
-}
-
-define i55 @test5(i55 %A) {
-	%B = lshr i55 %A, 55		; <i55> [#uses=1]
-	ret i55 %B
-}
-
-define i32 @test5a(i32 %A) {
-	%B = shl i32 %A, 32		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i55 @test6(i55 %A) {
-	%B = shl i55 %A, 1		; <i55> [#uses=1]
-	%C = mul i55 %B, 3		; <i55> [#uses=1]
-	ret i55 %C
-}
-
-define i29 @test7(i8 %X) {
-	%A = zext i8 %X to i29		; <i29> [#uses=1]
-	%B = ashr i29 -1, %A		; <i29> [#uses=1]
-	ret i29 %B
-}
-
-define i7 @test8(i7 %A) {
-	%B = shl i7 %A, 4		; <i7> [#uses=1]
-	%C = shl i7 %B, 3		; <i7> [#uses=1]
-	ret i7 %C
-}
-
-define i17 @test9(i17 %A) {
-	%B = shl i17 %A, 16		; <i17> [#uses=1]
-	%C = lshr i17 %B, 16		; <i17> [#uses=1]
-	ret i17 %C
-}
-
-define i19 @test10(i19 %A) {
-	%B = lshr i19 %A, 18		; <i19> [#uses=1]
-	%C = shl i19 %B, 18		; <i19> [#uses=1]
-	ret i19 %C
-}
-
-define i23 @test11(i23 %A) {
-	%a = mul i23 %A, 3		; <i23> [#uses=1]
-	%B = lshr i23 %a, 11		; <i23> [#uses=1]
-	%C = shl i23 %B, 12		; <i23> [#uses=1]
-	ret i23 %C
-}
-
-define i47 @test12(i47 %A) {
-	%B = ashr i47 %A, 8		; <i47> [#uses=1]
-	%C = shl i47 %B, 8		; <i47> [#uses=1]
-	ret i47 %C
-}
-
-define i18 @test13(i18 %A) {
-	%a = mul i18 %A, 3		; <i18> [#uses=1]
-	%B = ashr i18 %a, 8		; <i18> [#uses=1]
-	%C = shl i18 %B, 9		; <i18> [#uses=1]
-	ret i18 %C
-}
-
-define i35 @test14(i35 %A) {
-	%B = lshr i35 %A, 4		; <i35> [#uses=1]
-	%C = or i35 %B, 1234		; <i35> [#uses=1]
-	%D = shl i35 %C, 4		; <i35> [#uses=1]
-	ret i35 %D
-}
-
-define i79 @test14a(i79 %A) {
-	%B = shl i79 %A, 4		; <i79> [#uses=1]
-	%C = and i79 %B, 1234		; <i79> [#uses=1]
-	%D = lshr i79 %C, 4		; <i79> [#uses=1]
-	ret i79 %D
-}
-
-define i45 @test15(i1 %C) {
-	%A = select i1 %C, i45 3, i45 1	; <i45> [#uses=1]
-	%V = shl i45 %A, 2		; <i45> [#uses=1]
-	ret i45 %V
-}
-
-define i53 @test15a(i1 %X) {
-	%A = select i1 %X, i8 3, i8 1	; <i8> [#uses=1]
-	%B = zext i8 %A to i53		; <i53> [#uses=1]
-	%V = shl i53 64, %B		; <i53> [#uses=1]
-	ret i53 %V
-}
-
-define i1 @test16(i84 %X) {
-	%tmp.3 = ashr i84 %X, 4		; <i84> [#uses=1]
-	%tmp.6 = and i84 %tmp.3, 1	; <i84> [#uses=1]
-	%tmp.7 = icmp ne i84 %tmp.6, 0	; <i1> [#uses=1]
-	ret i1 %tmp.7
-}
-
-define i1 @test17(i106 %A) {
-	%B = lshr i106 %A, 3		; <i106> [#uses=1]
-	%C = icmp eq i106 %B, 1234	; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i1 @test18(i11 %A) {
-	%B = lshr i11 %A, 10		; <i11> [#uses=1]
-	%C = icmp eq i11 %B, 123	; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i1 @test19(i37 %A) {
-	%B = ashr i37 %A, 2		; <i37> [#uses=1]
-	%C = icmp eq i37 %B, 0		; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i1 @test19a(i39 %A) {
-	%B = ashr i39 %A, 2		; <i39> [#uses=1]
-	%C = icmp eq i39 %B, -1		; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i1 @test20(i13 %A) {
-	%B = ashr i13 %A, 12		; <i13> [#uses=1]
-	%C = icmp eq i13 %B, 123	; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i1 @test21(i12 %A) {
-	%B = shl i12 %A, 6		; <i12> [#uses=1]
-	%C = icmp eq i12 %B, -128		; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i1 @test22(i14 %A) {
-	%B = shl i14 %A, 7		; <i14> [#uses=1]
-	%C = icmp eq i14 %B, 0		; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i11 @test23(i44 %A) {
-	%B = shl i44 %A, 33		; <i44> [#uses=1]
-	%C = ashr i44 %B, 33		; <i44> [#uses=1]
-	%D = trunc i44 %C to i11	; <i8> [#uses=1]
-	ret i11 %D
-}
-
-define i17 @test24(i17 %X) {
-	%Y = and i17 %X, -5		; <i17> [#uses=1]
-	%Z = shl i17 %Y, 9		; <i17> [#uses=1]
-	%Q = ashr i17 %Z, 9		; <i17> [#uses=1]
-	ret i17 %Q
-}
-
-define i37 @test25(i37 %tmp.2, i37 %AA) {
-	%x = lshr i37 %AA, 17		; <i37> [#uses=1]
-	%tmp.3 = lshr i37 %tmp.2, 17		; <i37> [#uses=1]
-	%tmp.5 = add i37 %tmp.3, %x		; <i37> [#uses=1]
-	%tmp.6 = shl i37 %tmp.5, 17		; <i37> [#uses=1]
-	ret i37 %tmp.6
-}
-
-define i40 @test26(i40 %A) {
-	%B = lshr i40 %A, 1		; <i40> [#uses=1]
-	%C = bitcast i40 %B to i40		; <i40> [#uses=1]
-	%D = shl i40 %C, 1		; <i40> [#uses=1]
-	ret i40 %D
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shl-trunc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shl-trunc.ll
deleted file mode 100644
index a9cffde..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-shl-trunc.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl
-; END.
-
-define i1 @test0(i39 %X, i39 %A) {
-	%B = lshr i39 %X, %A
-	%D = trunc i39 %B to i1
-	ret i1 %D
-}
-
-define i1 @test1(i799 %X, i799 %A) {
-	%B = lshr i799 %X, %A
-	%D = trunc i799 %B to i1
-	ret i1 %D
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-sub.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-sub.ll
deleted file mode 100644
index 2ff763c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-sub.ll
+++ /dev/null
@@ -1,141 +0,0 @@
-; This test makes sure that sub instructions are properly eliminated
-; even with arbitrary precision integers.
-;
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep -v {sub i19 %Cok, %Bok} | grep -v {sub i25 0, %Aok} | not grep sub
-; END.
-
-define i23 @test1(i23 %A) {
-	%B = sub i23 %A, %A		; <i23> [#uses=1]
-	ret i23 %B
-}
-
-define i47 @test2(i47 %A) {
-	%B = sub i47 %A, 0		; <i47> [#uses=1]
-	ret i47 %B
-}
-
-define i97 @test3(i97 %A) {
-	%B = sub i97 0, %A		; <i97> [#uses=1]
-	%C = sub i97 0, %B		; <i97> [#uses=1]
-	ret i97 %C
-}
-
-define i108 @test4(i108 %A, i108 %x) {
-	%B = sub i108 0, %A		; <i108> [#uses=1]
-	%C = sub i108 %x, %B		; <i108> [#uses=1]
-	ret i108 %C
-}
-
-define i19 @test5(i19 %A, i19 %Bok, i19 %Cok) {
-	%D = sub i19 %Bok, %Cok		; <i19> [#uses=1]
-	%E = sub i19 %A, %D		; <i19> [#uses=1]
-	ret i19 %E
-}
-
-define i57 @test6(i57 %A, i57 %B) {
-	%C = and i57 %A, %B		; <i57> [#uses=1]
-	%D = sub i57 %A, %C		; <i57> [#uses=1]
-	ret i57 %D
-}
-
-define i77 @test7(i77 %A) {
-	%B = sub i77 -1, %A		; <i77> [#uses=1]
-	ret i77 %B
-}
-
-define i27 @test8(i27 %A) {
-	%B = mul i27 9, %A		; <i27> [#uses=1]
-	%C = sub i27 %B, %A		; <i27> [#uses=1]
-	ret i27 %C
-}
-
-define i42 @test9(i42 %A) {
-	%B = mul i42 3, %A		; <i42> [#uses=1]
-	%C = sub i42 %A, %B		; <i42> [#uses=1]
-	ret i42 %C
-}
-
-define i124 @test10(i124 %A, i124 %B) {
-	%C = sub i124 0, %A		; <i124> [#uses=1]
-	%D = sub i124 0, %B		; <i124> [#uses=1]
-	%E = mul i124 %C, %D		; <i124> [#uses=1]
-	ret i124 %E
-}
-
-define i55 @test10a(i55 %A) {
-	%C = sub i55 0, %A		; <i55> [#uses=1]
-	%E = mul i55 %C, 7		; <i55> [#uses=1]
-	ret i55 %E
-}
-
-define i1 @test11(i9 %A, i9 %B) {
-	%C = sub i9 %A, %B		; <i9> [#uses=1]
-	%cD = icmp ne i9 %C, 0		; <i1> [#uses=1]
-	ret i1 %cD
-}
-
-define i43 @test12(i43 %A) {
-	%B = ashr i43 %A, 42		; <i43> [#uses=1]
-	%C = sub i43 0, %B		; <i43> [#uses=1]
-	ret i43 %C
-}
-
-define i79 @test13(i79 %A) {
-	%B = lshr i79 %A, 78		; <i79> [#uses=1]
-	%C = sub i79 0, %B		; <i79> [#uses=1]
-	ret i79 %C
-}
-
-define i1024 @test14(i1024 %A) {
-	%B = lshr i1024 %A, 1023        ; <i1024> [#uses=1]
-	%C = bitcast i1024 %B to i1024	; <i1024> [#uses=1]
-	%D = sub i1024 0, %C		; <i1024> [#uses=1]
-	ret i1024 %D
-}
-
-define i14 @test15(i14 %A, i14 %B) {
-	%C = sub i14 0, %A		; <i14> [#uses=1]
-	%D = srem i14 %B, %C		; <i14> [#uses=1]
-	ret i14 %D
-}
-
-define i51 @test16(i51 %A) {
-	%X = sdiv i51 %A, 1123		; <i51> [#uses=1]
-	%Y = sub i51 0, %X		; <i51> [#uses=1]
-	ret i51 %Y
-}
-
-; Can't fold subtract here because negation it might oveflow.
-; PR3142
-define i25 @test17(i25 %Aok) {
-	%B = sub i25 0, %Aok		; <i25> [#uses=1]
-	%C = sdiv i25 %B, 1234		; <i25> [#uses=1]
-	ret i25 %C
-}
-
-define i128 @test18(i128 %Y) {
-	%tmp.4 = shl i128 %Y, 2		; <i128> [#uses=1]
-	%tmp.12 = shl i128 %Y, 2	; <i128> [#uses=1]
-	%tmp.8 = sub i128 %tmp.4, %tmp.12	; <i128> [#uses=1]
-	ret i128 %tmp.8
-}
-
-define i39 @test19(i39 %X, i39 %Y) {
-	%Z = sub i39 %X, %Y		; <i39> [#uses=1]
-	%Q = add i39 %Z, %Y		; <i39> [#uses=1]
-	ret i39 %Q
-}
-
-define i1 @test20(i33 %g, i33 %h) {
-	%tmp.2 = sub i33 %g, %h		; <i33> [#uses=1]
-	%tmp.4 = icmp ne i33 %tmp.2, %g		; <i1> [#uses=1]
-	ret i1 %tmp.4
-}
-
-define i1 @test21(i256 %g, i256 %h) {
-	%tmp.2 = sub i256 %g, %h	; <i256> [#uses=1]
-	%tmp.4 = icmp ne i256 %tmp.2, %g; <i1> [#uses=1]
-	ret i1 %tmp.4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-xor1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-xor1.ll
deleted file mode 100644
index 5ddf5cf..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-xor1.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; This test makes sure that xor instructions are properly eliminated.
-; This test is for Integer BitWidth <= 64 && BitWidth % 8 != 0.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {xor }
-
-
-define i47 @test1(i47 %A, i47 %B) {
-        ;; (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
-        %A1 = and i47 %A, 70368744177664
-        %B1 = and i47 %B, 70368744177661
-        %C1 = xor i47 %A1, %B1
-        ret i47 %C1
-}
-
-define i15 @test2(i15 %x) {
-        %tmp.2 = xor i15 %x, 0
-        ret i15 %tmp.2
-}
-
-define i23 @test3(i23 %x) {
-        %tmp.2 = xor i23 %x, %x
-        ret i23 %tmp.2
-}
-
-define i37 @test4(i37 %x) {
-        ; x ^ ~x == -1
-        %NotX = xor i37 -1, %x
-        %B = xor i37 %x, %NotX
-        ret i37 %B
-}
-
-define i7 @test5(i7 %A) {
-        ;; (A|B)^B == A & (~B)
-        %t1 = or i7 %A, 23
-        %r = xor i7 %t1, 23
-        ret i7 %r
-}
-
-define i7 @test6(i7 %A) {
-        %t1 = xor i7 %A, 23
-        %r = xor i7 %t1, 23
-        ret i7 %r
-}
-
-define i47 @test7(i47 %A) {
-        ;; (A | C1) ^ C2 -> (A | C1) & ~C2 iff (C1&C2) == C2
-        %B1 = or i47 %A,   70368744177663
-        %C1 = xor i47 %B1, 703687463
-        ret i47 %C1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-xor2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-xor2.ll
deleted file mode 100644
index 4d2d415..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-xor2.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; This test makes sure that xor instructions are properly eliminated.
-; This test is for Integer BitWidth > 64 && BitWidth <= 1024.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {xor }
-; END.
-
-
-define i447 @test1(i447 %A, i447 %B) {
-        ;; (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
-        %A1 = and i447 %A, 70368744177664
-        %B1 = and i447 %B, 70368744177663
-        %C1 = xor i447 %A1, %B1
-        ret i447 %C1
-}
-
-define i1005 @test2(i1005 %x) {
-        %tmp.2 = xor i1005 %x, 0
-        ret i1005 %tmp.2
-}
-
-define i123 @test3(i123 %x) {
-        %tmp.2 = xor i123 %x, %x
-        ret i123 %tmp.2
-}
-
-define i737 @test4(i737 %x) {
-        ; x ^ ~x == -1
-        %NotX = xor i737 -1, %x
-        %B = xor i737 %x, %NotX
-        ret i737 %B
-}
-
-define i700 @test5(i700 %A) {
-        ;; (A|B)^B == A & (~B)
-        %t1 = or i700 %A, 288230376151711743 
-        %r = xor i700 %t1, 288230376151711743 
-        ret i700 %r
-}
-
-define i77 @test6(i77 %A) {
-        %t1 = xor i77 %A, 23
-        %r = xor i77 %t1, 23
-        ret i77 %r
-}
-
-define i1023 @test7(i1023 %A) {
-        ;; (A | C1) ^ C2 -> (A | C1) & ~C2 iff (C1&C2) == C2
-        %B1 = or i1023 %A,   70368744177663
-        %C1 = xor i1023 %B1, 703687463
-        ret i1023 %C1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-zext1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-zext1.ll
deleted file mode 100644
index 03330c7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-zext1.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Tests to make sure elimination of casts is working correctly
-; This test is for Integer BitWidth <= 64 && BitWidth % 2 != 0.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast {} {%c1.*}
-
-define i47 @test_sext_zext(i11 %A) {
-    %c1 = zext i11 %A to i39
-    %c2 = sext i39 %c1 to i47
-    ret i47 %c2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-zext2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/apint-zext2.ll
deleted file mode 100644
index 8350d10..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/apint-zext2.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; Tests to make sure elimination of casts is working correctly
-; This test is for Integer BitWidth > 64 && BitWidth <= 1024.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast {} {%c1.*}
-
-define i1024 @test_sext_zext(i77 %A) {
-    %c1 = zext i77 %A to i533
-    %c2 = sext i533 %c1 to i1024
-    ret i1024 %c2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/ashr-nop.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/ashr-nop.ll
deleted file mode 100644
index bb0da34..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/ashr-nop.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep ashr
-
-define i32 @foo(i32 %x) {
-  %o = and i32 %x, 1
-  %n = add i32 %o, -1
-  %t = ashr i32 %n, 17
-  ret i32 %t
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/binop-cast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/binop-cast.ll
deleted file mode 100644
index ea5299b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/binop-cast.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-
-define i32 @testAdd(i32 %X, i32 %Y) {
-	%tmp = add i32 %X, %Y
-	%tmp.l = bitcast i32 %tmp to i32
-	ret i32 %tmp.l
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bit-tracking.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bit-tracking.ll
deleted file mode 100644
index d090c69..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bit-tracking.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; This file contains various testcases that require tracking whether bits are
-; set or cleared by various instructions.
-; RUN: llvm-as < %s | opt -instcombine -instcombine | llvm-dis |\
-; RUN:   not grep %ELIM
-
-; Reduce down to a single XOR
-define i32 @test3(i32 %B) {
-        %ELIMinc = and i32 %B, 1                ; <i32> [#uses=1]
-        %tmp.5 = xor i32 %ELIMinc, 1            ; <i32> [#uses=1]
-        %ELIM7 = and i32 %B, -2         ; <i32> [#uses=1]
-        %tmp.8 = or i32 %tmp.5, %ELIM7          ; <i32> [#uses=1]
-        ret i32 %tmp.8
-}
-
-; Finally, a bigger case where we chain things together.  This corresponds to
-; incrementing a single-bit bitfield, which should become just an xor.
-define i32 @test4(i32 %B) {
-        %ELIM3 = shl i32 %B, 31         ; <i32> [#uses=1]
-        %ELIM4 = ashr i32 %ELIM3, 31            ; <i32> [#uses=1]
-        %inc = add i32 %ELIM4, 1                ; <i32> [#uses=1]
-        %ELIM5 = and i32 %inc, 1                ; <i32> [#uses=1]
-        %ELIM7 = and i32 %B, -2         ; <i32> [#uses=1]
-        %tmp.8 = or i32 %ELIM5, %ELIM7          ; <i32> [#uses=1]
-        ret i32 %tmp.8
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-scalar-to-vector.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-scalar-to-vector.ll
deleted file mode 100644
index 8695d1e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-scalar-to-vector.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 0}
-; PR4487
-
-; Bitcasts between vectors and scalars are valid, despite being ill-advised.
-
-define i32 @test(i64 %a) {
-bb20:
-        %t1 = bitcast i64 %a to <2 x i32>
-        %t2 = bitcast i64 %a to <2 x i32>
-        %t3 = xor <2 x i32> %t1, %t2
-        %t4 = extractelement <2 x i32> %t3, i32 0
-        ret i32 %t4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
deleted file mode 100644
index 6bb986a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep element | count 4
-
-define double @a(<1 x i64> %y) {
-  %c = bitcast <1 x i64> %y to double
-  ret double %c 
-}
-
-define i64 @b(<1 x i64> %y) {
-  %c = bitcast <1 x i64> %y to i64
-  ret i64 %c 
-}
-
-define <1 x i64> @c(double %y) {
-  %c = bitcast double %y to <1 x i64>
-  ret <1 x i64> %c
-}
-
-define <1 x i64> @d(i64 %y) {
-  %c = bitcast i64 %y to <1 x i64>
-  ret <1 x i64> %c
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-vector-fold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-vector-fold.ll
deleted file mode 100644
index ded3e2f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcast-vector-fold.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep bitcast
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-
-define <2 x i64> @test1() {
-	%tmp3 = bitcast <4 x i32> < i32 0, i32 1, i32 2, i32 3 > to <2 x i64>
-	ret <2 x i64> %tmp3
-}
-
-define <4 x i32> @test2() {
-	%tmp3 = bitcast <2 x i64> < i64 0, i64 1 > to <4 x i32>
-	ret <4 x i32> %tmp3
-}
-
-define <2 x double> @test3() {
-	%tmp3 = bitcast <4 x i32> < i32 0, i32 1, i32 2, i32 3 > to <2 x double>
-	ret <2 x double> %tmp3
-}
-
-define <4 x float> @test4() {
-	%tmp3 = bitcast <2 x i64> < i64 0, i64 1 > to <4 x float>
-	ret <4 x float> %tmp3
-}
-
-define <2 x i64> @test5() {
-	%tmp3 = bitcast <4 x float> <float 0.0, float 1.0, float 2.0, float 3.0> to <2 x i64>
-	ret <2 x i64> %tmp3
-}
-
-define <4 x i32> @test6() {
-	%tmp3 = bitcast <2 x double> <double 0.5, double 1.0> to <4 x i32>
-	ret <4 x i32> %tmp3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcount.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bitcount.ll
deleted file mode 100644
index 8ebf289..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bitcount.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; Tests to make sure bit counts of constants are folded
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 19}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep -v declare | not grep llvm.ct
-
-declare i31 @llvm.ctpop.i31(i31 %val) 
-declare i32 @llvm.cttz.i32(i32 %val) 
-declare i33 @llvm.ctlz.i33(i33 %val) 
-
-define i32 @test(i32 %A) {
-  %c1 = call i31 @llvm.ctpop.i31(i31 12415124)
-  %c2 = call i32 @llvm.cttz.i32(i32 87359874)
-  %c3 = call i33 @llvm.ctlz.i33(i33 87359874)
-  %t1 = zext i31 %c1 to i32
-  %t3 = trunc i33 %c3 to i32
-  %r1 = add i32 %t1, %c2
-  %r2 = add i32 %r1, %t3
-  ret i32 %r2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bittest.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bittest.ll
deleted file mode 100644
index 8d45a48..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bittest.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -simplifycfg | llvm-dis |\
-; RUN:    not grep {call void @abort}
-
- at b_rec.0 = external global i32          ; <i32*> [#uses=2]
-
-define void @_Z12h000007_testv(i32* %P) {
-entry:
-        %tmp.2 = load i32* @b_rec.0             ; <i32> [#uses=1]
-        %tmp.9 = or i32 %tmp.2, -989855744              ; <i32> [#uses=2]
-        %tmp.16 = and i32 %tmp.9, -805306369            ; <i32> [#uses=2]
-        %tmp.17 = and i32 %tmp.9, -973078529            ; <i32> [#uses=1]
-        store i32 %tmp.17, i32* @b_rec.0
-        %tmp.17.shrunk = bitcast i32 %tmp.16 to i32             ; <i32> [#uses=1]
-        %tmp.22 = and i32 %tmp.17.shrunk, -1073741824           ; <i32> [#uses=1]
-        %tmp.23 = icmp eq i32 %tmp.22, -1073741824              ; <i1> [#uses=1]
-        br i1 %tmp.23, label %endif.0, label %then.0
-
-then.0:         ; preds = %entry
-        tail call void @abort( )
-        unreachable
-
-endif.0:                ; preds = %entry
-        %tmp.17.shrunk2 = bitcast i32 %tmp.16 to i32            ; <i32> [#uses=1]
-        %tmp.27.mask = and i32 %tmp.17.shrunk2, 100663295               ; <i32> [#uses=1]
-        store i32 %tmp.27.mask, i32* %P
-        ret void
-}
-
-declare void @abort()
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bswap-fold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bswap-fold.ll
deleted file mode 100644
index 87d8b04..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bswap-fold.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep ret | count 6
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep call.*bswap
-
-define i1 @test1(i16 %tmp2) {
-        %tmp10 = call i16 @llvm.bswap.i16( i16 %tmp2 )          ; <i16> [#uses=1]
-        %tmp = icmp eq i16 %tmp10, 1            ; <i1> [#uses=1]
-        ret i1 %tmp
-}
-
-define i1 @test2(i32 %tmp) {
-        %tmp34 = tail call i32 @llvm.bswap.i32( i32 %tmp )              ; <i32> [#uses=1]
-        %tmp.upgrd.1 = icmp eq i32 %tmp34, 1            ; <i1> [#uses=1]
-        ret i1 %tmp.upgrd.1
-}
-
-declare i32 @llvm.bswap.i32(i32)
-
-define i1 @test3(i64 %tmp) {
-        %tmp34 = tail call i64 @llvm.bswap.i64( i64 %tmp )              ; <i64> [#uses=1]
-        %tmp.upgrd.2 = icmp eq i64 %tmp34, 1            ; <i1> [#uses=1]
-        ret i1 %tmp.upgrd.2
-}
-
-declare i64 @llvm.bswap.i64(i64)
-
-declare i16 @llvm.bswap.i16(i16)
-
-; rdar://5992453
-; A & 255
-define i32 @test4(i32 %a) nounwind  {
-entry:
-	%tmp2 = tail call i32 @llvm.bswap.i32( i32 %a )	
-	%tmp4 = lshr i32 %tmp2, 24
-	ret i32 %tmp4
-}
-
-; A
-define i32 @test5(i32 %a) nounwind  {
-entry:
-	%tmp2 = tail call i32 @llvm.bswap.i32( i32 %a )
-	%tmp4 = tail call i32 @llvm.bswap.i32( i32 %tmp2 )
-	ret i32 %tmp4
-}
-
-; a >> 24
-define i32 @test6(i32 %a) nounwind  {
-entry:
-	%tmp2 = tail call i32 @llvm.bswap.i32( i32 %a )	
-	%tmp4 = and i32 %tmp2, 255
-	ret i32 %tmp4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/bswap.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/bswap.ll
deleted file mode 100644
index 2ba718e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/bswap.ll
+++ /dev/null
@@ -1,72 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {call.*llvm.bswap} | count 6
-
-define i32 @test1(i32 %i) {
-	%tmp1 = lshr i32 %i, 24		; <i32> [#uses=1]
-	%tmp3 = lshr i32 %i, 8		; <i32> [#uses=1]
-	%tmp4 = and i32 %tmp3, 65280		; <i32> [#uses=1]
-	%tmp5 = or i32 %tmp1, %tmp4		; <i32> [#uses=1]
-	%tmp7 = shl i32 %i, 8		; <i32> [#uses=1]
-	%tmp8 = and i32 %tmp7, 16711680		; <i32> [#uses=1]
-	%tmp9 = or i32 %tmp5, %tmp8		; <i32> [#uses=1]
-	%tmp11 = shl i32 %i, 24		; <i32> [#uses=1]
-	%tmp12 = or i32 %tmp9, %tmp11		; <i32> [#uses=1]
-	ret i32 %tmp12
-}
-
-define i32 @test2(i32 %arg) {
-	%tmp2 = shl i32 %arg, 24		; <i32> [#uses=1]
-	%tmp4 = shl i32 %arg, 8		; <i32> [#uses=1]
-	%tmp5 = and i32 %tmp4, 16711680		; <i32> [#uses=1]
-	%tmp6 = or i32 %tmp2, %tmp5		; <i32> [#uses=1]
-	%tmp8 = lshr i32 %arg, 8		; <i32> [#uses=1]
-	%tmp9 = and i32 %tmp8, 65280		; <i32> [#uses=1]
-	%tmp10 = or i32 %tmp6, %tmp9		; <i32> [#uses=1]
-	%tmp12 = lshr i32 %arg, 24		; <i32> [#uses=1]
-	%tmp14 = or i32 %tmp10, %tmp12		; <i32> [#uses=1]
-	ret i32 %tmp14
-}
-
-define i16 @test3(i16 %s) {
-	%tmp2 = lshr i16 %s, 8		; <i16> [#uses=1]
-	%tmp4 = shl i16 %s, 8		; <i16> [#uses=1]
-	%tmp5 = or i16 %tmp2, %tmp4		; <i16> [#uses=1]
-	ret i16 %tmp5
-}
-
-define i16 @test4(i16 %s) {
-	%tmp2 = lshr i16 %s, 8		; <i16> [#uses=1]
-	%tmp4 = shl i16 %s, 8		; <i16> [#uses=1]
-	%tmp5 = or i16 %tmp4, %tmp2		; <i16> [#uses=1]
-	ret i16 %tmp5
-}
-
-define i16 @test5(i16 %a) {
-	%tmp = zext i16 %a to i32		; <i32> [#uses=2]
-	%tmp1 = and i32 %tmp, 65280		; <i32> [#uses=1]
-	%tmp2 = ashr i32 %tmp1, 8		; <i32> [#uses=1]
-	%tmp2.upgrd.1 = trunc i32 %tmp2 to i16		; <i16> [#uses=1]
-	%tmp4 = and i32 %tmp, 255		; <i32> [#uses=1]
-	%tmp5 = shl i32 %tmp4, 8		; <i32> [#uses=1]
-	%tmp5.upgrd.2 = trunc i32 %tmp5 to i16		; <i16> [#uses=1]
-	%tmp.upgrd.3 = or i16 %tmp2.upgrd.1, %tmp5.upgrd.2		; <i16> [#uses=1]
-	%tmp6 = bitcast i16 %tmp.upgrd.3 to i16		; <i16> [#uses=1]
-	%tmp6.upgrd.4 = zext i16 %tmp6 to i32		; <i32> [#uses=1]
-	%retval = trunc i32 %tmp6.upgrd.4 to i16		; <i16> [#uses=1]
-	ret i16 %retval
-}
-
-; PR2842
-define i32 @test6(i32 %x) nounwind readnone {
-	%tmp = shl i32 %x, 16		; <i32> [#uses=1]
-	%x.mask = and i32 %x, 65280		; <i32> [#uses=1]
-	%tmp1 = lshr i32 %x, 16		; <i32> [#uses=1]
-	%tmp2 = and i32 %tmp1, 255		; <i32> [#uses=1]
-	%tmp3 = or i32 %x.mask, %tmp		; <i32> [#uses=1]
-	%tmp4 = or i32 %tmp3, %tmp2		; <i32> [#uses=1]
-	%tmp5 = shl i32 %tmp4, 8		; <i32> [#uses=1]
-	%tmp6 = lshr i32 %x, 24		; <i32> [#uses=1]
-	%tmp7 = or i32 %tmp5, %tmp6		; <i32> [#uses=1]
-	ret i32 %tmp7
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/call-cast-target.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/call-cast-target.ll
deleted file mode 100644
index 1a02514..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/call-cast-target.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep call | not grep bitcast
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-
-define i32 @main() {
-entry:
-        %tmp = call i32 bitcast (i8* (i32*)* @ctime to i32 (i32*)*)( i32* null )          ; <i32> [#uses=1]
-        ret i32 %tmp
-}
-
-declare i8* @ctime(i32*)
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/call-intrinsics.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/call-intrinsics.ll
deleted file mode 100644
index e1c6057..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/call-intrinsics.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-
- at X = global i8 0                ; <i8*> [#uses=3]
- at Y = global i8 12               ; <i8*> [#uses=2]
-
-declare void @llvm.memmove.i32(i8*, i8*, i32, i32)
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-declare void @llvm.memset.i32(i8*, i8, i32, i32)
-
-define void @zero_byte_test() {
-        ; These process zero bytes, so they are a noop.
-        call void @llvm.memmove.i32( i8* @X, i8* @Y, i32 0, i32 100 )
-        call void @llvm.memcpy.i32( i8* @X, i8* @Y, i32 0, i32 100 )
-        call void @llvm.memset.i32( i8* @X, i8 123, i32 0, i32 100 )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/call.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/call.ll
deleted file mode 100644
index df9b2a6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/call.ll
+++ /dev/null
@@ -1,78 +0,0 @@
-; Ignore stderr, we expect warnings there
-; RUN: llvm-as < %s 2> /dev/null | opt -instcombine | llvm-dis | \
-; RUN:    grep call | notcast
-; END.
-
-
-; Simple case, argument translatable without changing the value
-declare void @test1a(i8*)
-
-define void @test1(i32* %A) {
-        call void bitcast (void (i8*)* @test1a to void (i32*)*)( i32* %A )
-        ret void
-}
-
-; More complex case, translate argument because of resolution.  This is safe 
-; because we have the body of the function
-define void @test2a(i8 %A) {
-        ret void
-}
-
-define i32 @test2(i32 %A) {
-        call void bitcast (void (i8)* @test2a to void (i32)*)( i32 %A )
-        ret i32 %A
-}
-
-
-; Resolving this should insert a cast from sbyte to int, following the C 
-; promotion rules.
-declare void @test3a(i8, ...)
-
-define void @test3(i8 %A, i8 %B) {
-        call void bitcast (void (i8, ...)* @test3a to void (i8, i8)*)( i8 %A, i8 %B 
-)
-        ret void
-}
-
-
-; test conversion of return value...
-define i8 @test4a() {
-        ret i8 0
-}
-
-define i32 @test4() {
-        %X = call i32 bitcast (i8 ()* @test4a to i32 ()*)( )            ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-
-; test conversion of return value... no value conversion occurs so we can do 
-; this with just a prototype...
-declare i32 @test5a()
-
-define i32 @test5() {
-        %X = call i32 @test5a( )                ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-
-; test addition of new arguments...
-declare i32 @test6a(i32)
-
-define i32 @test6() {
-        %X = call i32 bitcast (i32 (i32)* @test6a to i32 ()*)( )                ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-
-; test removal of arguments, only can happen with a function body
-define void @test7a() {
-        ret void
-}
-
-define void @test7() {
-        call void bitcast (void ()* @test7a to void (i32)*)( i32 5 )
-        ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/call2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/call2.ll
deleted file mode 100644
index 4ba840f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/call2.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-
-; This used to crash trying to do a double-to-pointer conversion
-define i32 @bar() {
-entry:
-	%retval = alloca i32, align 4		; <i32*> [#uses=1]
-	"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp = call i32 (...)* bitcast (i32 (i8*)* @f to i32 (...)*)( double 3.000000e+00 )		; <i32> [#uses=0]
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval1
-}
-
-define i32 @f(i8* %p) {
-entry:
-	%p_addr = alloca i8*		; <i8**> [#uses=1]
-	%retval = alloca i32, align 4		; <i32*> [#uses=1]
-	"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i8* %p, i8** %p_addr
-	br label %return
-
-return:		; preds = %entry
-	%retval1 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/canonicalize_branch.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/canonicalize_branch.ll
deleted file mode 100644
index 79f02e7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/canonicalize_branch.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep {icmp ne\|icmp ule\|icmp uge}
-
-define i32 @test1(i32 %X, i32 %Y) {
-        %C = icmp ne i32 %X, %Y         ; <i1> [#uses=1]
-        br i1 %C, label %T, label %F
-
-T:              ; preds = %0
-        ret i32 12
-
-F:              ; preds = %0
-        ret i32 123
-}
-
-define i32 @test2(i32 %X, i32 %Y) {
-        %C = icmp ule i32 %X, %Y                ; <i1> [#uses=1]
-        br i1 %C, label %T, label %F
-
-T:              ; preds = %0
-        ret i32 12
-
-F:              ; preds = %0
-        ret i32 123
-}
-
-define i32 @test3(i32 %X, i32 %Y) {
-        %C = icmp uge i32 %X, %Y                ; <i1> [#uses=1]
-        br i1 %C, label %T, label %F
-
-T:              ; preds = %0
-        ret i32 12
-
-F:              ; preds = %0
-        ret i32 123
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-and-cast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-and-cast.ll
deleted file mode 100644
index f90cb74..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-and-cast.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep bitcast
-
-define i1 @test1(i32 %val) {
-        %t1 = bitcast i32 %val to i32           ; <i32> [#uses=1]
-        %t2 = and i32 %t1, 1            ; <i32> [#uses=1]
-        %t3 = trunc i32 %t2 to i1               ; <i1> [#uses=1]
-        ret i1 %t3
-}
-
-define i16 @test1.upgrd.1(i32 %val) {
-        %t1 = bitcast i32 %val to i32           ; <i32> [#uses=1]
-        %t2 = and i32 %t1, 1            ; <i32> [#uses=1]
-        %t3 = trunc i32 %t2 to i16              ; <i16> [#uses=1]
-        ret i16 %t3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-cast-to-and.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-cast-to-and.ll
deleted file mode 100644
index bb7c3dd..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-cast-to-and.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep i8 
-
-define i32 @test1(i32 %X) {
-        %Y = trunc i32 %X to i8         ; <i8> [#uses=1]
-        %Z = zext i8 %Y to i32          ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-load-gep.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-load-gep.ll
deleted file mode 100644
index bc2c7b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-load-gep.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -globaldce | llvm-dis | \
-; RUN:   not grep Array
-
-; Pulling the cast out of the load allows us to eliminate the load, and then 
-; the whole array.
-
-        %op = type { float }
-        %unop = type { i32 }
- at Array = internal constant [1 x %op* (%op*)*] [ %op* (%op*)* @foo ]             ; <[1 x %op* (%op*)*]*> [#uses=1]
-
-define %op* @foo(%op* %X) {
-        ret %op* %X
-}
-
-define %unop* @caller(%op* %O) {
-        %tmp = load %unop* (%op*)** bitcast ([1 x %op* (%op*)*]* @Array to %unop* (%op*)**); <%unop* (%op*)*> [#uses=1]
-        %tmp.2 = call %unop* %tmp( %op* %O )            ; <%unop*> [#uses=1]
-        ret %unop* %tmp.2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-malloc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-malloc.ll
deleted file mode 100644
index d05f6b0..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-malloc.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; test that casted mallocs get converted to malloc of the right type
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep bitcast
-
-; The target datalayout is important for this test case. We have to tell 
-; instcombine that the ABI alignment for a long is 4-bytes, not 8, otherwise
-; it won't do the transform.
-target datalayout = "e-i64:32:64"
-
-define i32* @test(i32 %size) {
-        %X = malloc i64, i32 %size              ; <i64*> [#uses=1]
-        %ret = bitcast i64* %X to i32*          ; <i32*> [#uses=1]
-        ret i32* %ret
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-mul-select.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-mul-select.ll
deleted file mode 100644
index 76e9b24..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-mul-select.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-
-define i32 @mul(i32 %x, i32 %y) {
-  %A = trunc i32 %x to i8
-  %B = trunc i32 %y to i8
-  %C = mul i8 %A, %B
-  %D = zext i8 %C to i32
-  ret i32 %D
-}
-
-define i32 @select1(i1 %cond, i32 %x, i32 %y, i32 %z) {
-  %A = trunc i32 %x to i8
-  %B = trunc i32 %y to i8
-  %C = trunc i32 %z to i8
-  %D = add i8 %A, %B
-  %E = select i1 %cond, i8 %C, i8 %D
-  %F = zext i8 %E to i32
-  ret i32 %F
-}
-
-define i8 @select2(i1 %cond, i8 %x, i8 %y, i8 %z) {
-  %A = zext i8 %x to i32
-  %B = zext i8 %y to i32
-  %C = zext i8 %z to i32
-  %D = add i32 %A, %B
-  %E = select i1 %cond, i32 %C, i32 %D
-  %F = trunc i32 %E to i8
-  ret i8 %F
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-propagate.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-propagate.ll
deleted file mode 100644
index c00f953..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-propagate.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | \
-; RUN:    not grep load
-
-define i32 @test1(i32* %P) {
-        %A = alloca i32         ; <i32*> [#uses=2]
-        store i32 123, i32* %A
-        ; Cast the result of the load not the source
-        %Q = bitcast i32* %A to i32*            ; <i32*> [#uses=1]
-        %V = load i32* %Q               ; <i32> [#uses=1]
-        ret i32 %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-set.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-set.ll
deleted file mode 100644
index 091f148..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-set.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; This tests for various complex cast elimination cases instcombine should
-; handle.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-
-define i1 @test1(i32 %X) {
-        %A = bitcast i32 %X to i32              ; <i32> [#uses=1]
-        ; Convert to setne int %X, 12
-        %c = icmp ne i32 %A, 12         ; <i1> [#uses=1]
-        ret i1 %c
-}
-
-define i1 @test2(i32 %X, i32 %Y) {
-        %A = bitcast i32 %X to i32              ; <i32> [#uses=1]
-        %B = bitcast i32 %Y to i32              ; <i32> [#uses=1]
-        ; Convert to setne int %X, %Y
-        %c = icmp ne i32 %A, %B         ; <i1> [#uses=1]
-        ret i1 %c
-}
-
-define i32 @test4(i32 %A) {
-        %B = bitcast i32 %A to i32              ; <i32> [#uses=1]
-        %C = shl i32 %B, 2              ; <i32> [#uses=1]
-        %D = bitcast i32 %C to i32              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i16 @test5(i16 %A) {
-        %B = sext i16 %A to i32         ; <i32> [#uses=1]
-        %C = and i32 %B, 15             ; <i32> [#uses=1]
-        %D = trunc i32 %C to i16                ; <i16> [#uses=1]
-        ret i16 %D
-}
-
-define i1 @test6(i1 %A) {
-        %B = zext i1 %A to i32          ; <i32> [#uses=1]
-        %C = icmp ne i32 %B, 0          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test6a(i1 %A) {
-        %B = zext i1 %A to i32          ; <i32> [#uses=1]
-        %C = icmp ne i32 %B, -1         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test7(i8* %A) {
-        %B = bitcast i8* %A to i32*             ; <i32*> [#uses=1]
-        %C = icmp eq i32* %B, null              ; <i1> [#uses=1]
-        ret i1 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-sext-zext.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast-sext-zext.ll
deleted file mode 100644
index 1acd758..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast-sext-zext.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sext
-; XFAIL: *
-
-define zeroext i16 @t(i8 zeroext %on_off, i16* nocapture %puls) nounwind readonly {
-entry:
-	%0 = zext i8 %on_off to i32
-	%1 = add i32 %0, -1
-	%2 = sext i32 %1 to i64
-	%3 = getelementptr i16* %puls, i64 %2
-	%4 = load i16* %3, align 2
-	ret i16 %4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast.ll
deleted file mode 100644
index 7a1e7a8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast.ll
+++ /dev/null
@@ -1,263 +0,0 @@
-; Tests to make sure elimination of casts is working correctly
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep %c | notcast
-
- at inbuf = external global [32832 x i8]           ; <[32832 x i8]*> [#uses=1]
-
-define i32 @test1(i32 %A) {
-        %c1 = bitcast i32 %A to i32             ; <i32> [#uses=1]
-        %c2 = bitcast i32 %c1 to i32            ; <i32> [#uses=1]
-        ret i32 %c2
-}
-
-define i64 @test2(i8 %A) {
-        %c1 = zext i8 %A to i16         ; <i16> [#uses=1]
-        %c2 = zext i16 %c1 to i32               ; <i32> [#uses=1]
-        %Ret = zext i32 %c2 to i64              ; <i64> [#uses=1]
-        ret i64 %Ret
-}
-
-; This function should just use bitwise AND
-define i64 @test3(i64 %A) {
-        %c1 = trunc i64 %A to i8                ; <i8> [#uses=1]
-        %c2 = zext i8 %c1 to i64                ; <i64> [#uses=1]
-        ret i64 %c2
-}
-
-define i32 @test4(i32 %A, i32 %B) {
-        %COND = icmp slt i32 %A, %B             ; <i1> [#uses=1]
-        ; Booleans are unsigned integrals
-        %c = zext i1 %COND to i8                ; <i8> [#uses=1]
-        ; for the cast elim purpose
-        %result = zext i8 %c to i32             ; <i32> [#uses=1]
-        ret i32 %result
-}
-
-define i32 @test5(i1 %B) {
-        ; This cast should get folded into
-        %c = zext i1 %B to i8           ; <i8> [#uses=1]
-        ; this cast        
-        %result = zext i8 %c to i32             ; <i32> [#uses=1]
-        ret i32 %result
-}
-
-define i32 @test6(i64 %A) {
-        %c1 = trunc i64 %A to i32               ; <i32> [#uses=1]
-        %res = bitcast i32 %c1 to i32           ; <i32> [#uses=1]
-        ret i32 %res
-}
-
-define i64 @test7(i1 %A) {
-        %c1 = zext i1 %A to i32         ; <i32> [#uses=1]
-        %res = sext i32 %c1 to i64              ; <i64> [#uses=1]
-        ret i64 %res
-}
-
-define i64 @test8(i8 %A) {
-        %c1 = sext i8 %A to i64         ; <i64> [#uses=1]
-        %res = bitcast i64 %c1 to i64           ; <i64> [#uses=1]
-        ret i64 %res
-}
-
-define i16 @test9(i16 %A) {
-        %c1 = sext i16 %A to i32                ; <i32> [#uses=1]
-        %c2 = trunc i32 %c1 to i16              ; <i16> [#uses=1]
-        ret i16 %c2
-}
-
-define i16 @test10(i16 %A) {
-        %c1 = sext i16 %A to i32                ; <i32> [#uses=1]
-        %c2 = trunc i32 %c1 to i16              ; <i16> [#uses=1]
-        ret i16 %c2
-}
-
-declare void @varargs(i32, ...)
-
-define void @test11(i32* %P) {
-        %c = bitcast i32* %P to i16*            ; <i16*> [#uses=1]
-        call void (i32, ...)* @varargs( i32 5, i16* %c )
-        ret void
-}
-
-define i32* @test12() {
-        %p = malloc [4 x i8]            ; <[4 x i8]*> [#uses=1]
-        %c = bitcast [4 x i8]* %p to i32*               ; <i32*> [#uses=1]
-        ret i32* %c
-}
-define i8* @test13(i64 %A) {
-        %c = getelementptr [0 x i8]* bitcast ([32832 x i8]* @inbuf to [0 x i8]*), i64 0, i64 %A             ; <i8*> [#uses=1]
-        ret i8* %c
-}
-
-define i1 @test14(i8 %A) {
-        %c = bitcast i8 %A to i8                ; <i8> [#uses=1]
-        %X = icmp ult i8 %c, -128               ; <i1> [#uses=1]
-        ret i1 %X
-}
-
-
-; This just won't occur when there's no difference between ubyte and sbyte
-;bool %test15(ubyte %A) {
-;        %c = cast ubyte %A to sbyte
-;        %X = setlt sbyte %c, 0   ; setgt %A, 127
-;        ret bool %X
-;}
-
-define i1 @test16(i32* %P) {
-        %c = icmp ne i32* %P, null              ; <i1> [#uses=1]
-        ret i1 %c
-}
-
-define i16 @test17(i1 %tmp3) {
-        %c = zext i1 %tmp3 to i32               ; <i32> [#uses=1]
-        %t86 = trunc i32 %c to i16              ; <i16> [#uses=1]
-        ret i16 %t86
-}
-
-define i16 @test18(i8 %tmp3) {
-        %c = sext i8 %tmp3 to i32               ; <i32> [#uses=1]
-        %t86 = trunc i32 %c to i16              ; <i16> [#uses=1]
-        ret i16 %t86
-}
-
-define i1 @test19(i32 %X) {
-        %c = sext i32 %X to i64         ; <i64> [#uses=1]
-        %Z = icmp slt i64 %c, 12345             ; <i1> [#uses=1]
-        ret i1 %Z
-}
-
-define i1 @test20(i1 %B) {
-        %c = zext i1 %B to i32          ; <i32> [#uses=1]
-        %D = icmp slt i32 %c, -1                ; <i1> [#uses=1]
-        ;; false
-        ret i1 %D
-}
-
-define i32 @test21(i32 %X) {
-        %c1 = trunc i32 %X to i8                ; <i8> [#uses=1]
-        ;; sext -> zext -> and -> nop
-        %c2 = sext i8 %c1 to i32                ; <i32> [#uses=1]
-        %RV = and i32 %c2, 255          ; <i32> [#uses=1]
-        ret i32 %RV
-}
-
-define i32 @test22(i32 %X) {
-        %c1 = trunc i32 %X to i8                ; <i8> [#uses=1]
-        ;; sext -> zext -> and -> nop
-        %c2 = sext i8 %c1 to i32                ; <i32> [#uses=1]
-        %RV = shl i32 %c2, 24           ; <i32> [#uses=1]
-        ret i32 %RV
-}
-
-define i32 @test23(i32 %X) {
-        ;; Turn into an AND even though X
-        %c1 = trunc i32 %X to i16               ; <i16> [#uses=1]
-        ;; and Z are signed.
-        %c2 = zext i16 %c1 to i32               ; <i32> [#uses=1]
-        ret i32 %c2
-}
-
-define i1 @test24(i1 %C) {
-        %X = select i1 %C, i32 14, i32 1234             ; <i32> [#uses=1]
-        ;; Fold cast into select
-        %c = icmp ne i32 %X, 0          ; <i1> [#uses=1]
-        ret i1 %c
-}
-
-define void @test25(i32** %P) {
-        %c = bitcast i32** %P to float**                ; <float**> [#uses=1]
-        ;; Fold cast into null
-        store float* null, float** %c
-        ret void
-}
-
-define i32 @test26(float %F) {
-        ;; no need to cast from float->double.
-        %c = fpext float %F to double           ; <double> [#uses=1]
-        %D = fptosi double %c to i32            ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define [4 x float]* @test27([9 x [4 x float]]* %A) {
-        %c = bitcast [9 x [4 x float]]* %A to [4 x float]*              ; <[4 x float]*> [#uses=1]
-        ret [4 x float]* %c
-}
-
-define float* @test28([4 x float]* %A) {
-        %c = bitcast [4 x float]* %A to float*          ; <float*> [#uses=1]
-        ret float* %c
-}
-
-define i32 @test29(i32 %c1, i32 %c2) {
-        %tmp1 = trunc i32 %c1 to i8             ; <i8> [#uses=1]
-        %tmp4.mask = trunc i32 %c2 to i8                ; <i8> [#uses=1]
-        %tmp = or i8 %tmp4.mask, %tmp1          ; <i8> [#uses=1]
-        %tmp10 = zext i8 %tmp to i32            ; <i32> [#uses=1]
-        ret i32 %tmp10
-}
-
-define i32 @test30(i32 %c1) {
-        %c2 = trunc i32 %c1 to i8               ; <i8> [#uses=1]
-        %c3 = xor i8 %c2, 1             ; <i8> [#uses=1]
-        %c4 = zext i8 %c3 to i32                ; <i32> [#uses=1]
-        ret i32 %c4
-}
-
-define i1 @test31(i64 %A) {
-        %B = trunc i64 %A to i32                ; <i32> [#uses=1]
-        %C = and i32 %B, 42             ; <i32> [#uses=1]
-        %D = icmp eq i32 %C, 10         ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define void @test32(double** %tmp) {
-        %tmp8 = malloc [16 x i8]                ; <[16 x i8]*> [#uses=1]
-        %tmp8.upgrd.1 = bitcast [16 x i8]* %tmp8 to double*             ; <double*> [#uses=1]
-        store double* %tmp8.upgrd.1, double** %tmp
-        ret void
-}
-
-define i32 @test33(i32 %c1) {
-        %x = bitcast i32 %c1 to float           ; <float> [#uses=1]
-        %y = bitcast float %x to i32            ; <i32> [#uses=1]
-        ret i32 %y
-}
-
-define i16 @test34(i16 %a) {
-        %c1 = zext i16 %a to i32                ; <i32> [#uses=1]
-        %tmp21 = lshr i32 %c1, 8                ; <i32> [#uses=1]
-        %c2 = trunc i32 %tmp21 to i16           ; <i16> [#uses=1]
-        ret i16 %c2
-}
-
-define i16 @test35(i16 %a) {
-        %c1 = bitcast i16 %a to i16             ; <i16> [#uses=1]
-        %tmp2 = lshr i16 %c1, 8         ; <i16> [#uses=1]
-        %c2 = bitcast i16 %tmp2 to i16          ; <i16> [#uses=1]
-        ret i16 %c2
-}
-
-; icmp sgt i32 %a, -1
-; rdar://6480391
-define i1 @test36(i32 %a) {
-        %b = lshr i32 %a, 31
-        %c = trunc i32 %b to i8
-        %d = icmp eq i8 %c, 0
-        ret i1 %d
-}
-
-; ret i1 false
-define i1 @test37(i32 %a) {
-        %b = lshr i32 %a, 31
-        %c = or i32 %b, 512
-        %d = trunc i32 %c to i8
-        %e = icmp eq i8 %d, 11
-        ret i1 %e
-}
-
-define i64 @test38(i32 %a) {
-	%1 = icmp eq i32 %a, -2
-	%2 = zext i1 %1 to i8
-	%3 = xor i8 %2, 1
-	%4 = zext i8 %3 to i64
-        ret i64 %4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast2.ll
deleted file mode 100644
index 5cc9087..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast2.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; Tests to make sure elimination of casts is working correctly
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast
-
-define i16 @test1(i16 %a) {
-        %tmp = zext i16 %a to i32               ; <i32> [#uses=2]
-        %tmp21 = lshr i32 %tmp, 8               ; <i32> [#uses=1]
-        %tmp5 = shl i32 %tmp, 8         ; <i32> [#uses=1]
-        %tmp.upgrd.32 = or i32 %tmp21, %tmp5            ; <i32> [#uses=1]
-        %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16           ; <i16> [#uses=1]
-        ret i16 %tmp.upgrd.3
-}
-
-define i16 @test2(i16 %a) {
-        %tmp = zext i16 %a to i32               ; <i32> [#uses=2]
-        %tmp21 = lshr i32 %tmp, 9               ; <i32> [#uses=1]
-        %tmp5 = shl i32 %tmp, 8         ; <i32> [#uses=1]
-        %tmp.upgrd.32 = or i32 %tmp21, %tmp5            ; <i32> [#uses=1]
-        %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16           ; <i16> [#uses=1]
-        ret i16 %tmp.upgrd.3
-}
-
-; PR1263
-define i32* @test3(i32* %tmp1) {
-        %tmp64 = bitcast i32* %tmp1 to { i32 }*         ; <{ i32 }*> [#uses=1]
-        %tmp65 = getelementptr { i32 }* %tmp64, i32 0, i32 0            ; <i32*> [#uses=1]
-        ret i32* %tmp65
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast3.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast3.ll
deleted file mode 100644
index 7cb8634..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast3.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep getelementptr
-; PR2831
-
-; Don't raise arbitrary inttoptr+arithmetic+ptrtoint to getelementptr.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-
-define i32 @main(i32 %argc, i8** %argv) nounwind {
-entry:
-	%0 = ptrtoint i8** %argv to i32		; <i32> [#uses=1]
-	%1 = add i32 %0, 1		; <i32> [#uses=1]
-	ret i32 %1
-}
-
-; This testcase could theoretically be optimized down to return zero,
-; but for now being conservative with ptrtoint/inttoptr is fine.
-define i32 @a() nounwind {
-entry:
-	%b = alloca i32		; <i32*> [#uses=3]
-	%a = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 1, i32* %b, align 4
-	%a1 = ptrtoint i32* %a to i32		; <i32> [#uses=1]
-	%b4 = ptrtoint i32* %b to i32		; <i32> [#uses=1]
-	%a7 = ptrtoint i32* %a to i32		; <i32> [#uses=1]
-	%0 = sub i32 %b4, %a7		; <i32> [#uses=1]
-	%1 = add i32 %a1, %0		; <i32> [#uses=1]
-	%2 = inttoptr i32 %1 to i32*		; <i32*> [#uses=1]
-	store i32 0, i32* %2, align 4
-	%3 = load i32* %b, align 4		; <i32> [#uses=1]
-	br label %return
-
-return:		; preds = %entry
-	ret i32 %3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast_ld_addr_space.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast_ld_addr_space.ll
deleted file mode 100644
index beb20e3..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast_ld_addr_space.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep bitcast | count 1
-
-; InstCombine can not 'load (cast P)' -> cast (load P)' if the cast changes
-; the address space.
-
-
-define void @test2(i8 addrspace(1)* %source, <2 x i8> addrspace(1)* %dest) {                                                                                        
-entry: 
-  %arrayidx1 = bitcast <2 x i8> addrspace(1)* %dest to <2 x i8> addrspace(1)*
-  %conv = bitcast i8 addrspace(1)* %source to <16 x i8>*
-  %arrayidx22 = bitcast <16 x i8>* %conv to <16 x i8>*
-  %tmp3 = load <16 x i8>* %arrayidx22
-  %arrayidx223 = bitcast i8 addrspace(1)* %source to i8*
-  %tmp4 = load i8* %arrayidx223
-  %tmp5 = insertelement <2 x i8> undef, i8 %tmp4, i32 0
-  %splat = shufflevector <2 x i8> %tmp5, <2 x i8> undef, <2 x i32> zeroinitializer
-  store <2 x i8> %splat, <2 x i8> addrspace(1)* %arrayidx1
-  ret void                                                                                                                                                             
-} 
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/cast_ptr.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/cast_ptr.ll
deleted file mode 100644
index 9b87ed0..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/cast_ptr.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; Tests to make sure elimination of casts is working correctly
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-target datalayout = "p:32:32"
-
-; This shouldn't convert to getelementptr because the relationship
-; between the arithmetic and the layout of allocated memory is
-; entirely unknown.
-; CHECK: @test1
-; CHECK: ptrtoint
-; CHECK: add
-; CHECK: inttoptr
-define i8* @test1(i8* %t) {
-        %tmpc = ptrtoint i8* %t to i32          ; <i32> [#uses=1]
-        %tmpa = add i32 %tmpc, 32               ; <i32> [#uses=1]
-        %tv = inttoptr i32 %tmpa to i8*         ; <i8*> [#uses=1]
-        ret i8* %tv
-}
-
-; These casts should be folded away.
-; CHECK: @test2
-; CHECK: icmp eq i8* %a, %b
-define i1 @test2(i8* %a, i8* %b) {
-        %tmpa = ptrtoint i8* %a to i32          ; <i32> [#uses=1]
-        %tmpb = ptrtoint i8* %b to i32          ; <i32> [#uses=1]
-        %r = icmp eq i32 %tmpa, %tmpb           ; <i1> [#uses=1]
-        ret i1 %r
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/constant-fold-gep.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/constant-fold-gep.ll
deleted file mode 100644
index 62af849..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/constant-fold-gep.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-; Constant folding should fix notionally out-of-bounds indices
-; and add inbounds keywords.
-
-%struct.X = type { [3 x i32], [3 x i32] }
-
- at Y = internal global [3 x %struct.X] zeroinitializer
-
-define void @frob() {
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 0), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 0), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 1), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 1), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 2), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 2), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 0, i32 1, i64 0), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 3), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 0, i32 1, i64 1), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 4), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 0, i32 1, i64 2), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 5), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 1, i32 0, i64 0), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 6), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 1, i32 0, i64 1), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 7), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 1, i32 0, i64 2), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 8), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 1, i32 1, i64 0), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 9), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 1, i32 1, i64 1), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 10), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 1, i32 1, i64 2), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 11), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 2, i32 0, i64 0), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 12), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 2, i32 0, i64 1), align 4
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 13), align 4
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 2, i32 0, i64 2), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 14), align 8
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 2, i32 1, i64 0), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 15), align 8
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 2, i32 1, i64 1), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 16), align 8
-; CHECK: store i32 1, i32* getelementptr inbounds ([3 x %struct.X]* @Y, i64 0, i64 2, i32 1, i64 2), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 17), align 8
-; CHECK: store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 1, i64 0, i32 0, i64 0), align 8
-  store i32 1, i32* getelementptr ([3 x %struct.X]* @Y, i64 0, i64 0, i32 0, i64 18), align 8
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/constant-fold-ptr-casts.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/constant-fold-ptr-casts.ll
deleted file mode 100644
index 27c4606..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/constant-fold-ptr-casts.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 2143034560}
-
-; Instcombine should be able to completely fold this code.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-
- at bar = constant [3 x i64] [i64 9220983451228067448, i64 9220983451228067449, i64 9220983450959631991], align 8
-
-define i32 @foo() nounwind {
-entry:
-	%tmp87.2 = load i64* inttoptr (i32 add (i32 16, i32 ptrtoint ([3 x i64]* @bar to i32)) to i64*), align 8
-	%t0 = bitcast i64 %tmp87.2 to double
-	%tmp9192.2 = fptrunc double %t0 to float
-	%t1 = bitcast float %tmp9192.2 to i32
-	ret i32 %t1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/crash.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/crash.ll
deleted file mode 100644
index 03bad99..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/crash.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin10.0"
-
-define i32 @_Z9model8bitR5Mixeri(i8 %tmp2) ssp {
-entry:
-  %tmp3 = zext i8 %tmp2 to i32
-  %tmp8 = lshr i32 %tmp3, 6 
-  %tmp9 = lshr i32 %tmp3, 7 
-  %tmp10 = xor i32 %tmp9, 67108858
-  %tmp11 = xor i32 %tmp10, %tmp8 
-  %tmp12 = xor i32 %tmp11, 0     
-  ret i32 %tmp12
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/dce-iterate.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/dce-iterate.ll
deleted file mode 100644
index faefa8a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/dce-iterate.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret double .sy}
-
-define internal double @ScaleObjectAdd(double %sx, double %sy, double %sz) nounwind {
-entry:
-        %sx34 = bitcast double %sx to i64               ; <i64> [#uses=1]
-        %sx3435 = zext i64 %sx34 to i960                ; <i960> [#uses=1]
-        %sy22 = bitcast double %sy to i64               ; <i64> [#uses=1]
-        %sy2223 = zext i64 %sy22 to i960                ; <i960> [#uses=1]
-        %sy222324 = shl i960 %sy2223, 320               ; <i960> [#uses=1]
-        %sy222324.ins = or i960 %sx3435, %sy222324              ; <i960> [#uses=1]
-        %sz10 = bitcast double %sz to i64               ; <i64> [#uses=1]
-        %sz1011 = zext i64 %sz10 to i960                ; <i960> [#uses=1]
-        %sz101112 = shl i960 %sz1011, 640               ; <i960> [#uses=1]
-        %sz101112.ins = or i960 %sy222324.ins, %sz101112 
-        
-        %a = trunc i960 %sz101112.ins to i64            ; <i64> [#uses=1]
-        %b = bitcast i64 %a to double           ; <double> [#uses=1]
-        %c = lshr i960 %sz101112.ins, 320               ; <i960> [#uses=1]
-        %d = trunc i960 %c to i64               ; <i64> [#uses=1]
-        %e = bitcast i64 %d to double           ; <double> [#uses=1]
-        %f = fadd double %b, %e
-
-        ret double %e
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/deadcode.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/deadcode.ll
deleted file mode 100644
index 43c1793..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/deadcode.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 %A}
-; RUN: llvm-as < %s | opt -die | llvm-dis | not grep call.*llvm.stacksave
-
-define i32 @test(i32 %A) {
-	%X = or i1 false, false		
-	br i1 %X, label %T, label %C
-
-T:		; preds = %0
-	%B = add i32 %A, 1	
-	br label %C
-
-C:		; preds = %T, %0
-	%C.upgrd.1 = phi i32 [ %B, %T ], [ %A, %0 ]
-	ret i32 %C.upgrd.1
-}
-
-define i32* @test2(i32 %width) {
-	%tmp = call i8* @llvm.stacksave( )
-        %tmp14 = alloca i32, i32 %width
-	ret i32* %tmp14
-} 
-
-declare i8* @llvm.stacksave()
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/dg.exp b/libclamav/c++/llvm/test/Transforms/InstCombine/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/div-cmp-overflow.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/div-cmp-overflow.ll
deleted file mode 100644
index 9276c96..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/div-cmp-overflow.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sdiv
-; PR2740
-
-define i1 @func_75(i32 %i2) nounwind {
-	%i3 = sdiv i32 %i2, -1328634635
-	%i4 = icmp eq i32 %i3, -1
-	ret i1 %i4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/div.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/div.ll
deleted file mode 100644
index ea6ea63..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/div.ll
+++ /dev/null
@@ -1,84 +0,0 @@
-; This test makes sure that div instructions are properly eliminated.
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep div
-
-define i32 @test1(i32 %A) {
-        %B = sdiv i32 %A, 1             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test2(i32 %A) {
-        ; => Shift
-        %B = udiv i32 %A, 8             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test3(i32 %A) {
-        ; => 0, don't need to keep traps
-        %B = sdiv i32 0, %A             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test4(i32 %A) {
-        ; 0-A
-        %B = sdiv i32 %A, -1            ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test5(i32 %A) {
-        %B = udiv i32 %A, -16           ; <i32> [#uses=1]
-        %C = udiv i32 %B, -4            ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i1 @test6(i32 %A) {
-        %B = udiv i32 %A, 123           ; <i32> [#uses=1]
-        ; A < 123
-        %C = icmp eq i32 %B, 0          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test7(i32 %A) {
-        %B = udiv i32 %A, 10            ; <i32> [#uses=1]
-        ; A >= 20 && A < 30
-        %C = icmp eq i32 %B, 2          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test8(i8 %A) {
-        %B = udiv i8 %A, 123            ; <i8> [#uses=1]
-        ; A >= 246
-        %C = icmp eq i8 %B, 2           ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test9(i8 %A) {
-        %B = udiv i8 %A, 123            ; <i8> [#uses=1]
-        ; A < 246
-        %C = icmp ne i8 %B, 2           ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i32 @test10(i32 %X, i1 %C) {
-        %V = select i1 %C, i32 64, i32 8                ; <i32> [#uses=1]
-        %R = udiv i32 %X, %V            ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i32 @test11(i32 %X, i1 %C) {
-        %A = select i1 %C, i32 1024, i32 32             ; <i32> [#uses=1]
-        %B = udiv i32 %X, %A            ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-; PR2328
-define i32 @test12(i32 %x) nounwind  {
-	%tmp3 = udiv i32 %x, %x		; 1
-	ret i32 %tmp3
-}
-
-define i32 @test13(i32 %x) nounwind  {
-	%tmp3 = sdiv i32 %x, %x		; 1
-	ret i32 %tmp3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/enforce-known-alignment.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/enforce-known-alignment.ll
deleted file mode 100644
index 6ac24a8..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/enforce-known-alignment.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep alloca | grep {align 16}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-
-define void @foo(i32) {
-	%2 = alloca [3 x <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>], align 16		; <[3 x <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>]*> [#uses=1]
-	%3 = getelementptr [3 x <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>]* %2, i32 0, i32 0		; <<{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>*> [#uses=1]
-	%4 = getelementptr <{ { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } } }>* %3, i32 0, i32 0		; <{ { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } }*> [#uses=1]
-	%5 = getelementptr { { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 } }* %4, i32 0, i32 0		; <{ [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 }*> [#uses=1]
-	%6 = bitcast { [2 x { { i32 } }], [2 x i8], { i16 }, [2 x i8], i8, i8 }* %5 to { [8 x i16] }*		; <{ [8 x i16] }*> [#uses=1]
-	%7 = getelementptr { [8 x i16] }* %6, i32 0, i32 0		; <[8 x i16]*> [#uses=1]
-	%8 = getelementptr [8 x i16]* %7, i32 0, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %8, align 16
-        call void @bar(i16* %8)
-	ret void
-}
-
-declare void @bar(i16*)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/exact-sdiv.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/exact-sdiv.ll
deleted file mode 100644
index 8379825..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/exact-sdiv.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-; CHECK: define i32 @foo
-; CHECK: sdiv i32 %x, 8
-define i32 @foo(i32 %x) {
-  %y = sdiv i32 %x, 8
-  ret i32 %y
-}
-
-; CHECK: define i32 @bar
-; CHECK: ashr i32 %x, 3
-define i32 @bar(i32 %x) {
-  %y = sdiv exact i32 %x, 8
-  ret i32 %y
-}
-
-; CHECK: i32 @a0
-; CHECK: %y = srem i32 %x, 3
-; CHECK: %z = sub i32 %x, %y
-; CHECK: ret i32 %z
-define i32 @a0(i32 %x) {
-  %y = sdiv i32 %x, 3
-  %z = mul i32 %y, 3
-  ret i32 %z
-}
-
-; CHECK: i32 @b0
-; CHECK: ret i32 %x
-define i32 @b0(i32 %x) {
-  %y = sdiv exact i32 %x, 3
-  %z = mul i32 %y, 3
-  ret i32 %z
-}
-
-; CHECK: i32 @a1
-; CHECK: %y = srem i32 %x, 3
-; CHECK: %z = sub i32 %y, %x
-; CHECK: ret i32 %z
-define i32 @a1(i32 %x) {
-  %y = sdiv i32 %x, 3
-  %z = mul i32 %y, -3
-  ret i32 %z
-}
-
-; CHECK: i32 @b1
-; CHECK: %z = sub i32 0, %x
-; CHECK: ret i32 %z
-define i32 @b1(i32 %x) {
-  %y = sdiv exact i32 %x, 3
-  %z = mul i32 %y, -3
-  ret i32 %z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/extractvalue.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/extractvalue.ll
deleted file mode 100644
index 59b996e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/extractvalue.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep extractvalue
-
-; Instcombine should fold various combinations of insertvalue and extractvalue
-; together
-declare void @bar({i32, i32} %a)
-
-define i32 @foo() {
-        ; Build a simple struct and pull values out again
-        %s1.1 = insertvalue {i32, i32} undef, i32 0, 0
-        %s1 = insertvalue {i32, i32} %s1.1, i32 1, 1
-        %v1 = extractvalue {i32, i32} %s1, 0
-        %v2 = extractvalue {i32, i32} %s1, 1
-        
-        ; Build a nested struct and pull a sub struct out of it
-        ; This requires instcombine to insert a few insertvalue instructions
-        %ns1.1 = insertvalue {i32, {i32, i32}} undef, i32 %v1, 0
-        %ns1.2 = insertvalue {i32, {i32, i32}} %ns1.1, i32 %v1, 1, 0
-        %ns1   = insertvalue {i32, {i32, i32}} %ns1.2, i32 %v2, 1, 1
-        %s2    = extractvalue {i32, {i32, i32}} %ns1, 1
-        %v3    = extractvalue {i32, {i32, i32}} %ns1, 1, 1
-        call void @bar({i32, i32} %s2)
-
-        ; Use nested extractvalues to get to a value
-        %s3    = extractvalue {i32, {i32, i32}} %ns1, 1
-        %v4    = extractvalue {i32, i32} %s3, 1
-        call void @bar({i32, i32} %s3)
-
-        ; Use nested insertvalues to build a nested struct
-        %s4.1 = insertvalue {i32, i32} undef, i32 %v3, 0
-        %s4   = insertvalue {i32, i32} %s4.1, i32 %v4, 1
-        %ns2  = insertvalue {i32, {i32, i32}} undef, {i32, i32} %s4, 1
-
-        ; And now extract a single value from there
-        %v5   = extractvalue {i32, {i32, i32}} %ns2, 1, 1
-
-        ret i32 %v5
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/fold-bin-operand.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/fold-bin-operand.ll
deleted file mode 100644
index e884e19..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/fold-bin-operand.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep icmp
-
-define i1 @f(i1 %x) {
-	%b = and i1 %x, icmp eq (i8* inttoptr (i32 1 to i8*), i8* inttoptr (i32 2 to i8*))
-	ret i1 %b
-}
-
-; FIXME: This doesn't fold at the moment!
-; define i32 @f(i32 %x) {
-;	%b = add i32 %x, zext (i1 icmp eq (i8* inttoptr (i32 1000000 to i8*), i8* inttoptr (i32 2000000 to i8*)) to i32)
-;	ret i32 %b
-;}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/fold-vector-zero.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/fold-vector-zero.ll
deleted file mode 100644
index 0b5b30a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/fold-vector-zero.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep zeroinitializer
-
-define void @foo(i64 %A, i64 %B) {
-bb8:
-	br label %bb30
-
-bb30:
-	%s0 = phi i64 [ 0, %bb8 ], [ %r21, %bb30 ]
-	%l0 = phi i64 [ -2222, %bb8 ], [ %r23, %bb30 ]
-	%r2 = add i64 %s0, %B
-	%r3 = inttoptr i64 %r2 to <2 x double>*
-	%r4 = load <2 x double>* %r3, align 8
-	%r6 = bitcast <2 x double> %r4 to <2 x i64>
-	%r7 = bitcast <2 x double> zeroinitializer to <2 x i64>
-	%r8 = insertelement <2 x i64> undef, i64 9223372036854775807, i32 0
-	%r9 = insertelement <2 x i64> undef, i64 -9223372036854775808, i32 0
-	%r10 = insertelement <2 x i64> %r8, i64 9223372036854775807, i32 1
-	%r11 = insertelement <2 x i64> %r9, i64 -9223372036854775808, i32 1
-	%r12 = and <2 x i64> %r6, %r10
-	%r13 = and <2 x i64> %r7, %r11
-	%r14 = or <2 x i64> %r12, %r13
-	%r15 = bitcast <2 x i64> %r14 to <2 x double>
-	%r18 = add i64 %s0, %A
-	%r19 = inttoptr i64 %r18 to <2 x double>*
-	store <2 x double> %r15, <2 x double>* %r19, align 8
-	%r21 = add i64 16, %s0
-	%r23 = add i64 1, %l0
-	%r25 = icmp slt i64 %r23, 0
-	%r26 = zext i1 %r25 to i64
-	%r27 = icmp ne i64 %r26, 0
-	br i1 %r27, label %bb30, label %bb5
-
-bb5:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/fp-ret-bitcast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/fp-ret-bitcast.ll
deleted file mode 100644
index 00c1ea0..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/fp-ret-bitcast.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {call float bitcast} | count 1
-	%struct.NSObject = type { %struct.objc_class* }
- 	%struct.NSArray = type { %struct.NSObject }
-	%struct.objc_class = type opaque
- 	%struct.objc_selector = type opaque
-
-@"\01L_OBJC_METH_VAR_NAME_112" = internal global [15 x i8] c"whiteComponent\00", section "__TEXT,__cstring,cstring_literals"
-@"\01L_OBJC_SELECTOR_REFERENCES_81" = internal global %struct.objc_selector* bitcast ([15 x i8]* @"\01L_OBJC_METH_VAR_NAME_112" to %struct.objc_selector*), section "__OBJC,__message_refs,literal_pointers,no_dead_strip"
-
-define void @bork() nounwind  {
-entry:
-	%color = alloca %struct.NSArray*
-	%color.466 = alloca %struct.NSObject*
-	%tmp103 = load %struct.NSArray** %color, align 4
-	%tmp103104 = getelementptr %struct.NSArray* %tmp103, i32 0, i32 0
-	store %struct.NSObject* %tmp103104, %struct.NSObject** %color.466, align 4
-	%tmp105 = load %struct.objc_selector** @"\01L_OBJC_SELECTOR_REFERENCES_81", align 4
-	%tmp106 = load %struct.NSObject** %color.466, align 4
-	%tmp107 = call float bitcast (void (%struct.NSObject*, ...)* @objc_msgSend_fpret to float (%struct.NSObject*, %struct.objc_selector*)*)( %struct.NSObject* %tmp106, %struct.objc_selector* %tmp105 ) nounwind
-	br label %exit
-
-exit:
-	ret void
-}
-
-declare void @objc_msgSend_fpret(%struct.NSObject*, ...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/fpcast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/fpcast.ll
deleted file mode 100644
index 7f25092..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/fpcast.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; Test some floating point casting cases
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | notcast
-; RUN: llvm-as %s -o - | opt -instcombine | llvm-dis | \
-; RUN:   egrep {ret i8 \(-1\)\|\(255\)}
-
-define i8 @test1() {
-        %x = fptoui float 2.550000e+02 to i8            ; <i8> [#uses=1]
-        ret i8 %x
-}
-
-define i8 @test2() {
-        %x = fptosi float -1.000000e+00 to i8           ; <i8> [#uses=1]
-        ret i8 %x
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/fpextend.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/fpextend.ll
deleted file mode 100644
index c212128..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/fpextend.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep fpext
- at X = external global float 
- at Y = external global float
-
-define void @test() nounwind  {
-entry:
-	%tmp = load float* @X, align 4		; <float> [#uses=1]
-	%tmp1 = fpext float %tmp to double		; <double> [#uses=1]
-	%tmp3 = fadd double %tmp1, 0.000000e+00		; <double> [#uses=1]
-	%tmp34 = fptrunc double %tmp3 to float		; <float> [#uses=1]
-	store float %tmp34, float* @X, align 4
-	ret void
-}
-
-define void @test3() nounwind  {
-entry:
-	%tmp = load float* @X, align 4		; <float> [#uses=1]
-	%tmp1 = fpext float %tmp to double		; <double> [#uses=1]
-	%tmp2 = load float* @Y, align 4		; <float> [#uses=1]
-	%tmp23 = fpext float %tmp2 to double		; <double> [#uses=1]
-	%tmp5 = fdiv double %tmp1, %tmp23		; <double> [#uses=1]
-	%tmp56 = fptrunc double %tmp5 to float		; <float> [#uses=1]
-	store float %tmp56, float* @X, align 4
-	ret void
-}
-
-define void @test4() nounwind  {
-entry:
-	%tmp = load float* @X, align 4		; <float> [#uses=1]
-	%tmp1 = fpext float %tmp to double		; <double> [#uses=1]
-	%tmp2 = fsub double -0.000000e+00, %tmp1		; <double> [#uses=1]
-	%tmp34 = fptrunc double %tmp2 to float		; <float> [#uses=1]
-	store float %tmp34, float* @X, align 4
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/fsub-fsub.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/fsub-fsub.ll
deleted file mode 100644
index ab70479..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/fsub-fsub.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep fsub | count 2
-; PR4374
-
-define float @func(float %a, float %b) nounwind {
-        %tmp3 = fsub float %a, %b
-        %tmp4 = fsub float -0.000000e+00, %tmp3
-        ret float %tmp4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/getelementptr.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/getelementptr.ll
deleted file mode 100644
index 7bc08d0..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/getelementptr.ll
+++ /dev/null
@@ -1,461 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-target datalayout = "e-p:64:64"
-%intstruct = type { i32 }
-%pair = type { i32, i32 }
-%struct.B = type { double }
-%struct.A = type { %struct.B, i32, i32 }
-
-
- at Global = constant [10 x i8] c"helloworld"
-
-; Test noop elimination
-define i32* @test1(i32* %I) {
-        %A = getelementptr i32* %I, i64 0 
-        ret i32* %A
-; CHECK: @test1
-; CHECK: ret i32* %I
-}
-
-; Test noop elimination
-define i32* @test2(i32* %I) {
-        %A = getelementptr i32* %I
-        ret i32* %A
-; CHECK: @test2
-; CHECK: ret i32* %I
-}
-
-; Test that two array indexing geps fold
-define i32* @test3(i32* %I) {
-        %A = getelementptr i32* %I, i64 17
-        %B = getelementptr i32* %A, i64 4
-        ret i32* %B
-; CHECK: @test3
-; CHECK: getelementptr i32* %I, i64 21
-}
-
-; Test that two getelementptr insts fold
-define i32* @test4({ i32 }* %I) {
-        %A = getelementptr { i32 }* %I, i64 1 
-        %B = getelementptr { i32 }* %A, i64 0, i32 0
-        ret i32* %B
-; CHECK: @test4
-; CHECK: getelementptr %intstruct* %I, i64 1, i32 0
-}
-
-define void @test5(i8 %B) {
-        ; This should be turned into a constexpr instead of being an instruction
-        %A = getelementptr [10 x i8]* @Global, i64 0, i64 4 
-        store i8 %B, i8* %A
-        ret void
-; CHECK: @test5
-; CHECK: store i8 %B, i8* getelementptr inbounds ([10 x i8]* @Global, i64 0, i64 4)
-}
-
-define i32* @test6() {
-        %M = malloc [4 x i32] 
-        %A = getelementptr [4 x i32]* %M, i64 0, i64 0
-        %B = getelementptr i32* %A, i64 2             
-        ret i32* %B
-; CHECK: @test6
-; CHECK: getelementptr [4 x i32]* %M, i64 0, i64 2
-}
-
-define i32* @test7(i32* %I, i64 %C, i64 %D) {
-        %A = getelementptr i32* %I, i64 %C 
-        %B = getelementptr i32* %A, i64 %D 
-        ret i32* %B
-; CHECK: @test7
-; CHECK: %A.sum = add i64 %C, %D
-; CHECK: getelementptr i32* %I, i64 %A.sum
-}
-
-define i8* @test8([10 x i32]* %X) {
-        ;; Fold into the cast.
-        %A = getelementptr [10 x i32]* %X, i64 0, i64 0 
-        %B = bitcast i32* %A to i8*     
-        ret i8* %B
-; CHECK: @test8
-; CHECK: bitcast [10 x i32]* %X to i8*
-}
-
-define i32 @test9() {
-        %A = getelementptr { i32, double }* null, i32 0, i32 1
-        %B = ptrtoint double* %A to i32        
-        ret i32 %B
-; CHECK: @test9
-; CHECK: ret i32 8
-}
-
-define i1 @test10({ i32, i32 }* %x, { i32, i32 }* %y) {
-        %tmp.1 = getelementptr { i32, i32 }* %x, i32 0, i32 1
-        %tmp.3 = getelementptr { i32, i32 }* %y, i32 0, i32 1
-        ;; seteq x, y
-        %tmp.4 = icmp eq i32* %tmp.1, %tmp.3       
-        ret i1 %tmp.4
-; CHECK: @test10
-; CHECK: icmp eq %pair* %x, %y
-}
-
-define i1 @test11({ i32, i32 }* %X) {
-        %P = getelementptr { i32, i32 }* %X, i32 0, i32 0 
-        %Q = icmp eq i32* %P, null             
-        ret i1 %Q
-; CHECK: @test11
-; CHECK: icmp eq %pair* %X, null
-}
-
-
-; PR4748
-define i32 @test12(%struct.A* %a) {
-entry:
-  %g3 = getelementptr %struct.A* %a, i32 0, i32 1
-  store i32 10, i32* %g3, align 4
-
-  %g4 = getelementptr %struct.A* %a, i32 0, i32 0
-  
-  %new_a = bitcast %struct.B* %g4 to %struct.A*
-
-  %g5 = getelementptr %struct.A* %new_a, i32 0, i32 1	
-  %a_a = load i32* %g5, align 4	
-  ret i32 %a_a
-; CHECK:      @test12
-; CHECK:      getelementptr %struct.A* %a, i64 0, i32 1
-; CHECK-NEXT: store i32 10, i32* %g3
-; CHECK-NEXT: ret i32 10
-}
-
-
-; PR2235
-%S = type { i32, [ 100 x i32] }
-define i1 @test13(i64 %X, %S* %P) {
-        %A = getelementptr inbounds %S* %P, i32 0, i32 1, i64 %X
-        %B = getelementptr inbounds %S* %P, i32 0, i32 0
-	%C = icmp eq i32* %A, %B
-	ret i1 %C
-; CHECK: @test13
-; CHECK:    %C = icmp eq i64 %X, -1
-}
-
-
- at G = external global [3 x i8]      
-define i8* @test14(i32 %Idx) {
-        %idx = zext i32 %Idx to i64
-        %tmp = getelementptr i8* getelementptr ([3 x i8]* @G, i32 0, i32 0), i64 %idx
-        ret i8* %tmp
-; CHECK: @test14
-; CHECK: getelementptr [3 x i8]* @G, i64 0, i64 %idx
-}
-
-
-; Test folding of constantexpr geps into normal geps.
- at Array = external global [40 x i32]
-define i32 *@test15(i64 %X) {
-        %A = getelementptr i32* getelementptr ([40 x i32]* @Array, i64 0, i64 0), i64 %X
-        ret i32* %A
-; CHECK: @test15
-; CHECK: getelementptr [40 x i32]* @Array, i64 0, i64 %X
-}
-
-
-define i32* @test16(i32* %X, i32 %Idx) {
-        %R = getelementptr i32* %X, i32 %Idx       
-        ret i32* %R
-; CHECK: @test16
-; CHECK: sext i32 %Idx to i64
-}
-
-
-define i1 @test17(i16* %P, i32 %I, i32 %J) {
-        %X = getelementptr inbounds i16* %P, i32 %I
-        %Y = getelementptr inbounds i16* %P, i32 %J
-        %C = icmp ult i16* %X, %Y
-        ret i1 %C
-; CHECK: @test17
-; CHECK: %C = icmp slt i32 %I, %J 
-}
-
-define i1 @test18(i16* %P, i32 %I) {
-        %X = getelementptr inbounds i16* %P, i32 %I
-        %C = icmp ult i16* %X, %P
-        ret i1 %C
-; CHECK: @test18
-; CHECK: %C = icmp slt i32 %I, 0
-}
-
-define i32 @test19(i32* %P, i32 %A, i32 %B) {
-        %tmp.4 = getelementptr inbounds i32* %P, i32 %A
-        %tmp.9 = getelementptr inbounds i32* %P, i32 %B
-        %tmp.10 = icmp eq i32* %tmp.4, %tmp.9
-        %tmp.11 = zext i1 %tmp.10 to i32
-        ret i32 %tmp.11
-; CHECK: @test19
-; CHECK: icmp eq i32 %A, %B
-}
-
-define i32 @test20(i32* %P, i32 %A, i32 %B) {
-        %tmp.4 = getelementptr inbounds i32* %P, i32 %A
-        %tmp.6 = icmp eq i32* %tmp.4, %P
-        %tmp.7 = zext i1 %tmp.6 to i32
-        ret i32 %tmp.7
-; CHECK: @test20
-; CHECK: icmp eq i32 %A, 0
-}
-
-
-define i32 @test21() {
-        %pbob1 = alloca %intstruct
-        %pbob2 = getelementptr %intstruct* %pbob1
-        %pbobel = getelementptr %intstruct* %pbob2, i64 0, i32 0
-        %rval = load i32* %pbobel
-        ret i32 %rval
-; CHECK: @test21
-; CHECK: getelementptr %intstruct* %pbob1, i64 0, i32 0
-}
-
-
- at A = global i32 1               ; <i32*> [#uses=1]
- at B = global i32 2               ; <i32*> [#uses=1]
-
-define i1 @test22() {
-        %C = icmp ult i32* getelementptr (i32* @A, i64 1), 
-                           getelementptr (i32* @B, i64 2) 
-        ret i1 %C
-; CHECK: @test22
-; CHECK: icmp ult (i32* getelementptr (i32* @A, i64 1), i32* getelementptr (i32* @B, i64 2))
-}
-
-
-%X = type { [10 x i32], float }
-
-define i1 @test23() {
-        %A = getelementptr %X* null, i64 0, i32 0, i64 0                ; <i32*> [#uses=1]
-        %B = icmp ne i32* %A, null              ; <i1> [#uses=1]
-        ret i1 %B
-; CHECK: @test23
-; CHECK: ret i1 false
-}
-
-%"java/lang/Object" = type { %struct.llvm_java_object_base }
-%"java/lang/StringBuffer" = type { %"java/lang/Object", i32, { %"java/lang/Object", i32, [0 x i16] }*, i1 }
-%struct.llvm_java_object_base = type opaque
-
-define void @test24() {
-bc0:
-        %tmp53 = getelementptr %"java/lang/StringBuffer"* null, i32 0, i32 1            ; <i32*> [#uses=1]
-        store i32 0, i32* %tmp53
-        ret void
-; CHECK: @test24
-; CHECK: store i32 0, i32* getelementptr (%"java/lang/StringBuffer"* null, i32 0, i32 1)
-}
-
-define void @test25() {
-entry:
-        %tmp = getelementptr { i64, i64, i64, i64 }* null, i32 0, i32 3         ; <i64*> [#uses=1]
-        %tmp.upgrd.1 = load i64* %tmp           ; <i64> [#uses=1]
-        %tmp8.ui = load i64* null               ; <i64> [#uses=1]
-        %tmp8 = bitcast i64 %tmp8.ui to i64             ; <i64> [#uses=1]
-        %tmp9 = and i64 %tmp8, %tmp.upgrd.1             ; <i64> [#uses=1]
-        %sext = trunc i64 %tmp9 to i32          ; <i32> [#uses=1]
-        %tmp27.i = sext i32 %sext to i64                ; <i64> [#uses=1]
-        tail call void @foo25( i32 0, i64 %tmp27.i )
-        unreachable
-; CHECK: @test25
-}
-
-declare void @foo25(i32, i64)
-
-
-; PR1637
-define i1 @test26(i8* %arr) {
-        %X = getelementptr i8* %arr, i32 1
-        %Y = getelementptr i8* %arr, i32 1
-        %test = icmp uge i8* %X, %Y
-        ret i1 %test
-; CHECK: @test26
-; CHECK: ret i1 true
-}
-
-	%struct.__large_struct = type { [100 x i64] }
-	%struct.compat_siginfo = type { i32, i32, i32, { [29 x i32] } }
-	%struct.siginfo_t = type { i32, i32, i32, { { i32, i32, [0 x i8], %struct.sigval_t, i32 }, [88 x i8] } }
-	%struct.sigval_t = type { i8* }
-
-define i32 @test27(%struct.compat_siginfo* %to, %struct.siginfo_t* %from) {
-entry:
-	%from_addr = alloca %struct.siginfo_t*	
-	%tmp344 = load %struct.siginfo_t** %from_addr, align 8	
-	%tmp345 = getelementptr %struct.siginfo_t* %tmp344, i32 0, i32 3
-	%tmp346 = getelementptr { { i32, i32, [0 x i8], %struct.sigval_t, i32 }, [88 x i8] }* %tmp345, i32 0, i32 0
-	%tmp346347 = bitcast { i32, i32, [0 x i8], %struct.sigval_t, i32 }* %tmp346 to { i32, i32, %struct.sigval_t }*	
-	%tmp348 = getelementptr { i32, i32, %struct.sigval_t }* %tmp346347, i32 0, i32 2
-	%tmp349 = getelementptr %struct.sigval_t* %tmp348, i32 0, i32 0
-	%tmp349350 = bitcast i8** %tmp349 to i32*
-	%tmp351 = load i32* %tmp349350, align 8	
-	%tmp360 = call i32 asm sideeffect "...",
-        "=r,ir,*m,i,0,~{dirflag},~{fpsr},~{flags}"( i32 %tmp351,
-         %struct.__large_struct* null, i32 -14, i32 0 )
-	unreachable
-; CHECK: @test27
-}
-
-; PR1978
-	%struct.x = type <{ i8 }>
- at .str = internal constant [6 x i8] c"Main!\00"	
- at .str1 = internal constant [12 x i8] c"destroy %p\0A\00"	
-
-define i32 @test28() nounwind  {
-entry:
-	%orientations = alloca [1 x [1 x %struct.x]]
-	%tmp3 = call i32 @puts( i8* getelementptr ([6 x i8]* @.str, i32 0, i32 0) ) nounwind 
-	%tmp45 = getelementptr inbounds [1 x [1 x %struct.x]]* %orientations, i32 1, i32 0, i32 0
-	%orientations62 = getelementptr [1 x [1 x %struct.x]]* %orientations, i32 0, i32 0, i32 0
-	br label %bb10
-
-bb10:
-	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb10 ]
-	%tmp.0.reg2mem.0.rec = mul i32 %indvar, -1	
-	%tmp12.rec = add i32 %tmp.0.reg2mem.0.rec, -1	
-	%tmp12 = getelementptr inbounds %struct.x* %tmp45, i32 %tmp12.rec
-	%tmp16 = call i32 (i8*, ...)* @printf( i8* getelementptr ([12 x i8]* @.str1, i32 0, i32 0), %struct.x* %tmp12 ) nounwind
-	%tmp84 = icmp eq %struct.x* %tmp12, %orientations62
-	%indvar.next = add i32 %indvar, 1
-	br i1 %tmp84, label %bb17, label %bb10
-
-bb17:	
-	ret i32 0
-; CHECK: @test28
-; CHECK: icmp eq i32 %indvar, 0
-}
-
-declare i32 @puts(i8*)
-
-declare i32 @printf(i8*, ...)
-
-
-
-
-; rdar://6762290
-	%T = type <{ i64, i64, i64 }>
-define i32 @test29(i8* %start, i32 %X) nounwind {
-entry:
-	%tmp3 = load i64* null		
-	%add.ptr = getelementptr i8* %start, i64 %tmp3
-	%tmp158 = load i32* null
-	%add.ptr159 = getelementptr %T* null, i32 %tmp158
-	%add.ptr209 = getelementptr i8* %start, i64 0
-	%add.ptr212 = getelementptr i8* %add.ptr209, i32 %X
-	%cmp214 = icmp ugt i8* %add.ptr212, %add.ptr
-	br i1 %cmp214, label %if.then216, label %if.end363
-
-if.then216:
-	ret i32 1
-
-if.end363:
-	ret i32 0
-; CHECK: @test29
-}
-
-
-; PR3694
-define i32 @test30(i32 %m, i32 %n) nounwind {
-entry:
-	%0 = alloca i32, i32 %n, align 4
-	%1 = bitcast i32* %0 to [0 x i32]*
-	call void @test30f(i32* %0) nounwind
-	%2 = getelementptr [0 x i32]* %1, i32 0, i32 %m
-	%3 = load i32* %2, align 4
-	ret i32 %3
-; CHECK: @test30
-; CHECK: getelementptr i32
-}
-
-declare void @test30f(i32*)
-
-
-
-define i1 @test31(i32* %A) {
-        %B = getelementptr i32* %A, i32 1
-        %C = getelementptr i32* %A, i64 1
-        %V = icmp eq i32* %B, %C 
-        ret i1 %V
-; CHECK: @test31
-; CHECK: ret i1 true
-}
-
-
-; PR1345
-define i8* @test32(i8* %v) {
-	%A = alloca [4 x i8*], align 16
-	%B = getelementptr [4 x i8*]* %A, i32 0, i32 0
-	store i8* null, i8** %B
-	%C = bitcast [4 x i8*]* %A to { [16 x i8] }*
-	%D = getelementptr { [16 x i8] }* %C, i32 0, i32 0, i32 8
-	%E = bitcast i8* %D to i8**
-	store i8* %v, i8** %E
-	%F = getelementptr [4 x i8*]* %A, i32 0, i32 2	
-	%G = load i8** %F
-	ret i8* %G
-; CHECK: @test32
-; CHECK: %D = getelementptr [4 x i8*]* %A, i64 0, i64 1
-; CHECK: %F = getelementptr [4 x i8*]* %A, i64 0, i64 2
-}
-
-; PR3290
-%struct.Key = type { { i32, i32 } }
-%struct.anon = type <{ i8, [3 x i8], i32 }>
-
-define i32 *@test33(%struct.Key *%A) {
-	%B = bitcast %struct.Key* %A to %struct.anon*
-        %C = getelementptr %struct.anon* %B, i32 0, i32 2 
-	ret i32 *%C
-; CHECK: @test33
-; CHECK: getelementptr %struct.Key* %A, i64 0, i32 0, i32 1
-}
-
-
-
-	%T2 = type { i8*, i8 }
-define i8* @test34(i8* %Val, i64 %V) nounwind {
-entry:
-	%A = alloca %T2, align 8	
-	%mrv_gep = bitcast %T2* %A to i64*
-	%B = getelementptr %T2* %A, i64 0, i32 0
-        
-      	store i64 %V, i64* %mrv_gep
-	%C = load i8** %B, align 8
-	ret i8* %C
-; CHECK: @test34
-; CHECK: %V.c = inttoptr i64 %V to i8*
-; CHECK: ret i8* %V.c
-}
-
-%t0 = type { i8*, [19 x i8] }
-%t1 = type { i8*, [0 x i8] }
-
- at array = external global [11 x i8]
-
- at s = external global %t0
-@"\01LC8" = external constant [17 x i8]
-
-; Instcombine should be able to fold this getelementptr.
-
-define i32 @test35() nounwind {
-  call i32 (i8*, ...)* @printf(i8* getelementptr ([17 x i8]* @"\01LC8", i32 0, i32 0),
-             i8* getelementptr (%t1* bitcast (%t0* @s to %t1*), i32 0, i32 1, i32 0)) nounwind
-  ret i32 0
-; CHECK: @test35
-; CHECK: call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([17 x i8]* @"\01LC8", i64 0, i64 0), i8* bitcast (i8** getelementptr (%t1* bitcast (%t0* @s to %t1*), i64 1, i32 0) to i8*)) nounwind
-}
-
-; Instcombine should constant-fold the GEP so that indices that have
-; static array extents are within bounds of those array extents.
-; In the below, -1 is not in the range [0,11). After the transformation,
-; the same address is computed, but 3 is in the range of [0,11).
-
-define i8* @test36() nounwind {
-  ret i8* getelementptr ([11 x i8]* @array, i32 0, i64 -1)
-; CHECK: @test36
-; CHECK: ret i8* getelementptr ([11 x i8]* @array, i64 1676976733973595601, i64 4)
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/hoist_instr.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/hoist_instr.ll
deleted file mode 100644
index e425bc2..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/hoist_instr.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   %prcontext div 1 | grep then:
-
-;; This tests that the div is hoisted into the then block.
-define i32 @foo(i1 %C, i32 %A, i32 %B) {
-entry:
-        br i1 %C, label %then, label %endif
-
-then:           ; preds = %entry
-        br label %endif
-
-endif:          ; preds = %then, %entry
-        %X = phi i32 [ %A, %then ], [ 15, %entry ]              ; <i32> [#uses=1]
-        %Y = sdiv i32 %X, 42            ; <i32> [#uses=1]
-        ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/icmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/icmp.ll
deleted file mode 100644
index 27136d6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/icmp.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep icmp
-
-define i32 @test1(i32 %X) {
-entry:
-        icmp slt i32 %X, 0              ; <i1>:0 [#uses=1]
-        zext i1 %0 to i32               ; <i32>:1 [#uses=1]
-        ret i32 %1
-}
-
-define i32 @test2(i32 %X) {
-entry:
-        icmp ult i32 %X, -2147483648            ; <i1>:0 [#uses=1]
-        zext i1 %0 to i32               ; <i32>:1 [#uses=1]
-        ret i32 %1
-}
-
-define i32 @test3(i32 %X) {
-entry:
-        icmp slt i32 %X, 0              ; <i1>:0 [#uses=1]
-        sext i1 %0 to i32               ; <i32>:1 [#uses=1]
-        ret i32 %1
-}
-
-define i32 @test4(i32 %X) {
-entry:
-        icmp ult i32 %X, -2147483648            ; <i1>:0 [#uses=1]
-        sext i1 %0 to i32               ; <i32>:1 [#uses=1]
-        ret i32 %1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/known_align.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/known_align.ll
deleted file mode 100644
index a6e3409..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/known_align.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {align 1}
-; END.
-
-	%struct.p = type <{ i8, i32 }>
- at t = global %struct.p <{ i8 1, i32 10 }>		; <%struct.p*> [#uses=1]
- at u = weak global %struct.p zeroinitializer		; <%struct.p*> [#uses=1]
-
-define i32 @main() {
-entry:
-	%retval = alloca i32, align 4		; <i32*> [#uses=2]
-	%tmp = alloca i32, align 4		; <i32*> [#uses=2]
-	%tmp1 = alloca i32, align 4		; <i32*> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp3 = load i32* getelementptr (%struct.p* @t, i32 0, i32 1), align 1		; <i32> [#uses=1]
-	store i32 %tmp3, i32* %tmp1, align 4
-	%tmp5 = load i32* %tmp1, align 4		; <i32> [#uses=1]
-	store i32 %tmp5, i32* getelementptr (%struct.p* @u, i32 0, i32 1), align 1
-	%tmp6 = load i32* %tmp1, align 4		; <i32> [#uses=1]
-	store i32 %tmp6, i32* %tmp, align 4
-	%tmp7 = load i32* %tmp, align 4		; <i32> [#uses=1]
-	store i32 %tmp7, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval8 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval8
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/load.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/load.ll
deleted file mode 100644
index 85a7495..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/load.ll
+++ /dev/null
@@ -1,78 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep load
-
- at X = constant i32 42		; <i32*> [#uses=2]
- at X2 = constant i32 47		; <i32*> [#uses=1]
- at Y = constant [2 x { i32, float }] [ { i32, float } { i32 12, float 1.000000e+00 }, { i32, float } { i32 37, float 0x3FF3B2FEC0000000 } ]		; <[2 x { i32, float }]*> [#uses=2]
- at Z = constant [2 x { i32, float }] zeroinitializer		; <[2 x { i32, float }]*> [#uses=1]
-
-define i32 @test1() {
-	%B = load i32* @X		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define float @test2() {
-	%A = getelementptr [2 x { i32, float }]* @Y, i64 0, i64 1, i32 1		; <float*> [#uses=1]
-	%B = load float* %A		; <float> [#uses=1]
-	ret float %B
-}
-
-define i32 @test3() {
-	%A = getelementptr [2 x { i32, float }]* @Y, i64 0, i64 0, i32 0		; <i32*> [#uses=1]
-	%B = load i32* %A		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i32 @test4() {
-	%A = getelementptr [2 x { i32, float }]* @Z, i64 0, i64 1, i32 0		; <i32*> [#uses=1]
-	%B = load i32* %A		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i32 @test5(i1 %C) {
-	%Y = select i1 %C, i32* @X, i32* @X2		; <i32*> [#uses=1]
-	%Z = load i32* %Y		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
-define i32 @test7(i32 %X) {
-	%V = getelementptr i32* null, i32 %X		; <i32*> [#uses=1]
-	%R = load i32* %V		; <i32> [#uses=1]
-	ret i32 %R
-}
-
-define i32 @test8(i32* %P) {
-	store i32 1, i32* %P
-	%X = load i32* %P		; <i32> [#uses=1]
-	ret i32 %X
-}
-
-define i32 @test9(i32* %P) {
-	%X = load i32* %P		; <i32> [#uses=1]
-	%Y = load i32* %P		; <i32> [#uses=1]
-	%Z = sub i32 %X, %Y		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
-define i32 @test10(i1 %C.upgrd.1, i32* %P, i32* %Q) {
-	br i1 %C.upgrd.1, label %T, label %F
-T:		; preds = %0
-	store i32 1, i32* %Q
-	store i32 0, i32* %P
-	br label %C
-F:		; preds = %0
-	store i32 0, i32* %P
-	br label %C
-C:		; preds = %F, %T
-	%V = load i32* %P		; <i32> [#uses=1]
-	ret i32 %V
-}
-
-define double @test11(double* %p) {
-  %t0 = getelementptr double* %p, i32 1
-  store double 2.0, double* %t0
-  %t1 = getelementptr double* %p, i32 1
-  %x = load double* %t1
-  ret double %x
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/load2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/load2.ll
deleted file mode 100644
index 5c3cf33..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/load2.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep load
-
- at GLOBAL = internal constant [4 x i32] zeroinitializer
-
-
-define <16 x i8> @foo(<2 x i64> %x) {
-entry:
-	%tmp = load <16 x i8> * bitcast ([4 x i32]* @GLOBAL to <16 x i8>*)
-	ret <16 x i8> %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/load3.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/load3.ll
deleted file mode 100644
index e102d39..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/load3.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep load | count 1
-
-; Instcombine should be able to do trivial CSE of loads.
-
-declare void @use(double %n)
-define void @bar(double* %p) {
-  %t0 = getelementptr double* %p, i32 1
-  %y = load double* %t0
-  %t1 = getelementptr double* %p, i32 1
-  %x = load double* %t1
-  call void @use(double %x)
-  call void @use(double %y)
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/loadstore-alignment.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/loadstore-alignment.ll
deleted file mode 100644
index ebea3e4..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/loadstore-alignment.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {, align 16} | count 14
-
- at x = external global <2 x i64>, align 16
- at xx = external global [13 x <2 x i64>], align 16
-
-define <2 x i64> @static_hem() {
-	%t = getelementptr <2 x i64>* @x, i32 7
-	%tmp1 = load <2 x i64>* %t, align 1
-	ret <2 x i64> %tmp1
-}
-
-define <2 x i64> @hem(i32 %i) {
-	%t = getelementptr <2 x i64>* @x, i32 %i
-	%tmp1 = load <2 x i64>* %t, align 1
-	ret <2 x i64> %tmp1
-}
-
-define <2 x i64> @hem_2d(i32 %i, i32 %j) {
-	%t = getelementptr [13 x <2 x i64>]* @xx, i32 %i, i32 %j
-	%tmp1 = load <2 x i64>* %t, align 1
-	ret <2 x i64> %tmp1
-}
-
-define <2 x i64> @foo() {
-	%tmp1 = load <2 x i64>* @x, align 1
-	ret <2 x i64> %tmp1
-}
-
-define <2 x i64> @bar() {
-	%t = alloca <2 x i64>
-        call void @kip(<2 x i64>* %t);
-	%tmp1 = load <2 x i64>* %t, align 1
-	ret <2 x i64> %tmp1
-}
-
-define void @static_hem_store(<2 x i64> %y) {
-	%t = getelementptr <2 x i64>* @x, i32 7
-	store <2 x i64> %y, <2 x i64>* %t, align 1
-        ret void
-}
-
-define void @hem_store(i32 %i, <2 x i64> %y) {
-	%t = getelementptr <2 x i64>* @x, i32 %i
-	store <2 x i64> %y, <2 x i64>* %t, align 1
-        ret void
-}
-
-define void @hem_2d_store(i32 %i, i32 %j, <2 x i64> %y) {
-	%t = getelementptr [13 x <2 x i64>]* @xx, i32 %i, i32 %j
-	store <2 x i64> %y, <2 x i64>* %t, align 1
-        ret void
-}
-
-define void @foo_store(<2 x i64> %y) {
-	store <2 x i64> %y, <2 x i64>* @x, align 1
-        ret void
-}
-
-define void @bar_store(<2 x i64> %y) {
-	%t = alloca <2 x i64>
-        call void @kip(<2 x i64>* %t);
-	store <2 x i64> %y, <2 x i64>* %t, align 1
-        ret void
-}
-
-declare void @kip(<2 x i64>* %t)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/logical-select.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/logical-select.ll
deleted file mode 100644
index 3bb2d34..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/logical-select.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: grep select %t | count 5
-; RUN: not grep and %t
-; RUN: not grep or %t
-
-define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
-  %e = icmp slt i32 %a, %b
-  %f = sext i1 %e to i32
-  %g = and i32 %c, %f
-  %h = xor i32 %f, -1
-  %i = and i32 %d, %h
-  %j = or i32 %g, %i
-  ret i32 %j
-}
-define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
-  %e = icmp slt i32 %a, %b
-  %f = sext i1 %e to i32
-  %g = and i32 %c, %f
-  %h = xor i32 %f, -1
-  %i = and i32 %d, %h
-  %j = or i32 %i, %g
-  ret i32 %j
-}
-define i32 @goo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
-entry:
-  %0 = icmp slt i32 %a, %b
-  %iftmp.0.0 = select i1 %0, i32 -1, i32 0
-  %1 = and i32 %iftmp.0.0, %c
-  %not = xor i32 %iftmp.0.0, -1
-  %2 = and i32 %not, %d
-  %3 = or i32 %1, %2
-  ret i32 %3
-}
-define i32 @poo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
-entry:
-  %0 = icmp slt i32 %a, %b
-  %iftmp.0.0 = select i1 %0, i32 -1, i32 0
-  %1 = and i32 %iftmp.0.0, %c
-  %iftmp = select i1 %0, i32 0, i32 -1
-  %2 = and i32 %iftmp, %d
-  %3 = or i32 %1, %2
-  ret i32 %3
-}
-
-define i32 @par(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
-entry:
-  %0 = icmp slt i32 %a, %b
-  %iftmp.1.0 = select i1 %0, i32 -1, i32 0
-  %1 = and i32 %iftmp.1.0, %c
-  %not = xor i32 %iftmp.1.0, -1
-  %2 = and i32 %not, %d
-  %3 = or i32 %1, %2
-  ret i32 %3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/lshr-phi.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/lshr-phi.ll
deleted file mode 100644
index 683eb87..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/lshr-phi.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: not grep lshr %t
-; RUN: grep add %t | count 1
-
-; Instcombine should be able to eliminate the lshr, because only
-; bits in the operand which might be non-zero will be shifted
-; off the end.
-
-define i32 @hash_string(i8* nocapture %key) nounwind readonly {
-entry:
-	%t0 = load i8* %key, align 1		; <i8> [#uses=1]
-	%t1 = icmp eq i8 %t0, 0		; <i1> [#uses=1]
-	br i1 %t1, label %bb2, label %bb
-
-bb:		; preds = %bb, %entry
-	%indvar = phi i64 [ 0, %entry ], [ %tmp, %bb ]		; <i64> [#uses=2]
-	%k.04 = phi i32 [ 0, %entry ], [ %t8, %bb ]		; <i32> [#uses=2]
-	%cp.05 = getelementptr i8* %key, i64 %indvar		; <i8*> [#uses=1]
-	%t2 = shl i32 %k.04, 1		; <i32> [#uses=1]
-	%t3 = lshr i32 %k.04, 14		; <i32> [#uses=1]
-	%t4 = add i32 %t2, %t3		; <i32> [#uses=1]
-	%t5 = load i8* %cp.05, align 1		; <i8> [#uses=1]
-	%t6 = sext i8 %t5 to i32		; <i32> [#uses=1]
-	%t7 = xor i32 %t6, %t4		; <i32> [#uses=1]
-	%t8 = and i32 %t7, 16383		; <i32> [#uses=2]
-	%tmp = add i64 %indvar, 1		; <i64> [#uses=2]
-	%scevgep = getelementptr i8* %key, i64 %tmp		; <i8*> [#uses=1]
-	%t9 = load i8* %scevgep, align 1		; <i8> [#uses=1]
-	%t10 = icmp eq i8 %t9, 0		; <i1> [#uses=1]
-	br i1 %t10, label %bb2, label %bb
-
-bb2:		; preds = %bb, %entry
-	%k.0.lcssa = phi i32 [ 0, %entry ], [ %t8, %bb ]		; <i32> [#uses=1]
-	ret i32 %k.0.lcssa
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc-free-delete.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/malloc-free-delete.ll
deleted file mode 100644
index 24f793f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc-free-delete.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 0}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep malloc
-; PR1201
-define i32 @main(i32 %argc, i8** %argv) {
-        %c_19 = alloca i8*              ; <i8**> [#uses=2]
-        %malloc_206 = malloc i8, i32 10         ; <i8*> [#uses=1]
-        store i8* %malloc_206, i8** %c_19
-        %tmp_207 = load i8** %c_19              ; <i8*> [#uses=1]
-        free i8* %tmp_207
-        ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/malloc.ll
deleted file mode 100644
index 6a4601a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; test that malloc's with a constant argument are promoted to array allocations
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep getelementptr
-
-define i32* @test() {
-	%X = malloc i32, i32 4
-	ret i32* %X
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/malloc2.ll
deleted file mode 100644
index eb7c9ab..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc2.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 0}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep malloc
-; PR1313
-
-define i32 @test1(i32 %argc, i8* %argv, i8* %envp) {
-        %tmp15.i.i.i23 = malloc [2564 x i32]            ; <[2564 x i32]*> [#uses=1]
-        %c = icmp eq [2564 x i32]* %tmp15.i.i.i23, null              ; <i1>:0 [#uses=1]
-        %retval = zext i1 %c to i32             ; <i32> [#uses=1]
-        ret i32 %retval
-}
-
-define i32 @test2(i32 %argc, i8* %argv, i8* %envp) {
-        %tmp15.i.i.i23 = malloc [2564 x i32]            ; <[2564 x i32]*> [#uses=1]
-        %X = bitcast [2564 x i32]* %tmp15.i.i.i23 to i32*
-        %c = icmp ne i32* %X, null
-        %retval = zext i1 %c to i32             ; <i32> [#uses=1]
-        ret i32 %retval
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc3.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/malloc3.ll
deleted file mode 100644
index f6f412d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/malloc3.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {malloc.*struct.foo} | count 2
-; PR1728
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-        %struct.foo = type { %struct.foo*, [10 x i32] }
- at .str = internal constant [21 x i8] c"tmp = %p, next = %p\0A\00"                ; <[21 x i8]*> [#uses=1]
-
-define i32 @main() {
-entry:
-        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
-        %tmp1 = malloc i8, i32 44               ; <i8*> [#uses=1]
-        %tmp12 = bitcast i8* %tmp1 to %struct.foo*              ; <%struct.foo*> [#uses=3]
-        %tmp3 = malloc i8, i32 44               ; <i8*> [#uses=1]
-        %tmp34 = bitcast i8* %tmp3 to %struct.foo*              ; <%struct.foo*> [#uses=1]
-        %tmp6 = getelementptr %struct.foo* %tmp12, i32 0, i32 0         ; <%struct.foo**> [#uses=1]
-        store %struct.foo* %tmp34, %struct.foo** %tmp6, align 4
-        %tmp8 = getelementptr %struct.foo* %tmp12, i32 0, i32 0         ; <%struct.foo**> [#uses=1]
-        %tmp9 = load %struct.foo** %tmp8, align 4               ; <%struct.foo*> [#uses=1]
-        %tmp10 = getelementptr [21 x i8]* @.str, i32 0, i32 0           ; <i8*> [#uses=1]
-        %tmp13 = call i32 (i8*, ...)* @printf( i8* %tmp10, %struct.foo* %tmp12, %struct.foo* %tmp9 )            ; <i32> [#uses=0]
-        ret i32 undef
-}
-
-declare i32 @printf(i8*, ...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/memcpy-to-load.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/memcpy-to-load.ll
deleted file mode 100644
index 7a0027d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/memcpy-to-load.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {load double}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-
-define void @foo(double* %X, double* %Y) {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp2 = bitcast double* %X to i8*		; <i8*> [#uses=1]
-	%tmp13 = bitcast double* %Y to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp2, i8* %tmp13, i32 8, i32 1 )
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/memmove.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/memmove.ll
deleted file mode 100644
index 09ec67d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/memmove.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; This test makes sure that memmove instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep {call void @llvm.memmove}
-
- at S = internal constant [33 x i8] c"panic: restorelist inconsistency\00"		; <[33 x i8]*> [#uses=1]
- at h = constant [2 x i8] c"h\00"		; <[2 x i8]*> [#uses=1]
- at hel = constant [4 x i8] c"hel\00"		; <[4 x i8]*> [#uses=1]
- at hello_u = constant [8 x i8] c"hello_u\00"		; <[8 x i8]*> [#uses=1]
-
-
-declare void @llvm.memmove.i32(i8*, i8*, i32, i32)
-
-define void @test1(i8* %A, i8* %B, i32 %N) {
-	call void @llvm.memmove.i32( i8* %A, i8* %B, i32 0, i32 1 )
-	ret void
-}
-
-define void @test2(i8* %A, i32 %N) {
-        ;; dest can't alias source since we can't write to source!
-	call void @llvm.memmove.i32( i8* %A, i8* getelementptr ([33 x i8]* @S, i32 0, i32 0), i32 %N, i32 1 )
-	ret void
-}
-
-define i32 @test3() {
-	%h_p = getelementptr [2 x i8]* @h, i32 0, i32 0		; <i8*> [#uses=1]
-	%hel_p = getelementptr [4 x i8]* @hel, i32 0, i32 0		; <i8*> [#uses=1]
-	%hello_u_p = getelementptr [8 x i8]* @hello_u, i32 0, i32 0		; <i8*> [#uses=1]
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%target_p = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=3]
-	call void @llvm.memmove.i32( i8* %target_p, i8* %h_p, i32 2, i32 2 )
-	call void @llvm.memmove.i32( i8* %target_p, i8* %hel_p, i32 4, i32 4 )
-	call void @llvm.memmove.i32( i8* %target_p, i8* %hello_u_p, i32 8, i32 8 )
-	ret i32 0
-}
-
-; PR2370
-define void @test4(i8* %a) {
-        tail call void @llvm.memmove.i32( i8* %a, i8* %a, i32 100, i32 1 )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/memset.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/memset.ll
deleted file mode 100644
index 27a5b60..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/memset.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {call.*llvm.memset}
-
-declare void @llvm.memset.i32(i8*, i8, i32, i32)
-
-define i32 @main() {
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%target_p = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=5]
-	call void @llvm.memset.i32( i8* %target_p, i8 1, i32 0, i32 1 )
-	call void @llvm.memset.i32( i8* %target_p, i8 1, i32 1, i32 1 )
-	call void @llvm.memset.i32( i8* %target_p, i8 1, i32 2, i32 2 )
-	call void @llvm.memset.i32( i8* %target_p, i8 1, i32 4, i32 4 )
-	call void @llvm.memset.i32( i8* %target_p, i8 1, i32 8, i32 8 )
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/mul-masked-bits.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/mul-masked-bits.ll
deleted file mode 100644
index 9b0a5bf..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/mul-masked-bits.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep ashr
-
-define i32 @foo(i32 %x, i32 %y) {
-  %a = and i32 %x, 7
-  %b = and i32 %y, 7
-  %c = mul i32 %a, %b
-  %d = shl i32 %c, 26
-  %e = ashr i32 %d, 26
-  ret i32 %e
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/mul.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/mul.ll
deleted file mode 100644
index cd13803..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/mul.ll
+++ /dev/null
@@ -1,90 +0,0 @@
-; This test makes sure that mul instructions are properly eliminated.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep mul
-
-define i32 @test1(i32 %A) {
-        %B = mul i32 %A, 1              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test2(i32 %A) {
-        ; Should convert to an add instruction
-        %B = mul i32 %A, 2              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test3(i32 %A) {
-        ; This should disappear entirely
-        %B = mul i32 %A, 0              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define double @test4(double %A) {
-        ; This is safe for FP
-        %B = fmul double 1.000000e+00, %A                ; <double> [#uses=1]
-        ret double %B
-}
-
-define i32 @test5(i32 %A) {
-        %B = mul i32 %A, 8              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i8 @test6(i8 %A) {
-        %B = mul i8 %A, 8               ; <i8> [#uses=1]
-        %C = mul i8 %B, 8               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-define i32 @test7(i32 %i) {
-        %tmp = mul i32 %i, -1           ; <i32> [#uses=1]
-        ret i32 %tmp
-}
-
-define i64 @test8(i64 %i) {
-       ; tmp = sub 0, %i
-        %j = mul i64 %i, -1             ; <i64> [#uses=1]
-        ret i64 %j
-}
-
-define i32 @test9(i32 %i) {
-        ; %j = sub 0, %i
-        %j = mul i32 %i, -1             ; <i32> [#uses=1]
-        ret i32 %j
-}
-
-define i32 @test10(i32 %a, i32 %b) {
-        %c = icmp slt i32 %a, 0         ; <i1> [#uses=1]
-        %d = zext i1 %c to i32          ; <i32> [#uses=1]
-       ; e = b & (a >> 31)
-        %e = mul i32 %d, %b             ; <i32> [#uses=1]
-        ret i32 %e
-}
-
-define i32 @test11(i32 %a, i32 %b) {
-        %c = icmp sle i32 %a, -1                ; <i1> [#uses=1]
-        %d = zext i1 %c to i32          ; <i32> [#uses=1]
-        ; e = b & (a >> 31)
-        %e = mul i32 %d, %b             ; <i32> [#uses=1]
-        ret i32 %e
-}
-
-define i32 @test12(i8 %a, i32 %b) {
-        %c = icmp ugt i8 %a, 127                ; <i1> [#uses=1]
-        %d = zext i1 %c to i32          ; <i32> [#uses=1]
-        ; e = b & (a >> 31)
-        %e = mul i32 %d, %b             ; <i32> [#uses=1]
-        ret i32 %e
-}
-
-; PR2642
-define internal void @test13(<4 x float>*) {
-	load <4 x float>* %0, align 1
-	fmul <4 x float> %2, < float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00 >
-	store <4 x float> %3, <4 x float>* %0, align 1
-	ret void
-}
-
-define <16 x i8> @test14(<16 x i8> %a) {
-        %b = mul <16 x i8> %a, zeroinitializer
-        ret <16 x i8> %b
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/multi-use-or.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/multi-use-or.ll
deleted file mode 100644
index 4804967..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/multi-use-or.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {add double .sx, .sy}
-; The 'or' has multiple uses, make sure that this doesn't prevent instcombine
-; from propagating the extends to the truncs.
-
-define double @ScaleObjectAdd(double %sx, double %sy, double %sz) nounwind {
-entry:
-        %sx34 = bitcast double %sx to i64               ; <i64> [#uses=1]
-        %sx3435 = zext i64 %sx34 to i192                ; <i192> [#uses=1]
-        %sy22 = bitcast double %sy to i64               ; <i64> [#uses=1]
-        %sy2223 = zext i64 %sy22 to i192                ; <i192> [#uses=1]
-        %sy222324 = shl i192 %sy2223, 128               ; <i192> [#uses=1]
-        %sy222324.ins = or i192 %sx3435, %sy222324              ; <i192> [#uses=1]
-        
-        
-        %a = trunc i192 %sy222324.ins to i64            ; <i64> [#uses=1]
-        %b = bitcast i64 %a to double           ; <double> [#uses=1]
-        %c = lshr i192 %sy222324.ins, 128               ; <i192> [#uses=1]
-        %d = trunc i192 %c to i64               ; <i64> [#uses=1]
-        %e = bitcast i64 %d to double           ; <double> [#uses=1]
-        %f = fadd double %b, %e
-
-;        ret double %e
-        ret double %f
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/narrow.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/narrow.ll
deleted file mode 100644
index 41106e7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/narrow.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; This file contains various testcases that check to see that instcombine
-; is narrowing computations when possible.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {ret i1 false}
-
-; test1 - Eliminating the casts in this testcase (by narrowing the AND
-; operation) allows instcombine to realize the function always returns false.
-;
-define i1 @test1(i32 %A, i32 %B) {
-        %C1 = icmp slt i32 %A, %B               ; <i1> [#uses=1]
-        %ELIM1 = zext i1 %C1 to i32             ; <i32> [#uses=1]
-        %C2 = icmp sgt i32 %A, %B               ; <i1> [#uses=1]
-        %ELIM2 = zext i1 %C2 to i32             ; <i32> [#uses=1]
-        %C3 = and i32 %ELIM1, %ELIM2            ; <i32> [#uses=1]
-        %ELIM3 = trunc i32 %C3 to i1            ; <i1> [#uses=1]
-        ret i1 %ELIM3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/not-fcmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/not-fcmp.ll
deleted file mode 100644
index 4560419..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/not-fcmp.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep "fcmp uge"
-; PR1570
-
-define i1 @f(float %X, float %Y) {
-entry:
-        %tmp3 = fcmp olt float %X, %Y           ; <i1> [#uses=1]
-        %toBoolnot5 = xor i1 %tmp3, true                ; <i1> [#uses=1]
-        ret i1 %toBoolnot5
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/not.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/not.ll
deleted file mode 100644
index a79e518..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/not.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep xor
-
-define i32 @test1(i32 %A) {
-        %B = xor i32 %A, -1             ; <i32> [#uses=1]
-        %C = xor i32 %B, -1             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i1 @test2(i32 %A, i32 %B) {
-        ; Can change into setge
-        %cond = icmp sle i32 %A, %B             ; <i1> [#uses=1]
-        %Ret = xor i1 %cond, true               ; <i1> [#uses=1]
-        ret i1 %Ret
-}
-
-; Test that demorgans law can be instcombined
-define i32 @test3(i32 %A, i32 %B) {
-        %a = xor i32 %A, -1             ; <i32> [#uses=1]
-        %b = xor i32 %B, -1             ; <i32> [#uses=1]
-        %c = and i32 %a, %b             ; <i32> [#uses=1]
-        %d = xor i32 %c, -1             ; <i32> [#uses=1]
-        ret i32 %d
-}
-
-; Test that demorgens law can work with constants
-define i32 @test4(i32 %A, i32 %B) {
-        %a = xor i32 %A, -1             ; <i32> [#uses=1]
-        %c = and i32 %a, 5              ; <i32> [#uses=1]
-        %d = xor i32 %c, -1             ; <i32> [#uses=1]
-        ret i32 %d
-}
-
-; test the mirror of demorgans law...
-define i32 @test5(i32 %A, i32 %B) {
-        %a = xor i32 %A, -1             ; <i32> [#uses=1]
-        %b = xor i32 %B, -1             ; <i32> [#uses=1]
-        %c = or i32 %a, %b              ; <i32> [#uses=1]
-        %d = xor i32 %c, -1             ; <i32> [#uses=1]
-        ret i32 %d
-}
-
-; PR2298
-define i8 @test6(i32 %a, i32 %b) zeroext nounwind  {
-entry:
-	%tmp1not = xor i32 %a, -1		; <i32> [#uses=1]
-	%tmp2not = xor i32 %b, -1		; <i32> [#uses=1]
-	%tmp3 = icmp slt i32 %tmp1not, %tmp2not		; <i1> [#uses=1]
-	%retval67 = zext i1 %tmp3 to i8		; <i8> [#uses=1]
-	ret i8 %retval67
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/nothrow.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/nothrow.ll
deleted file mode 100644
index fbf162a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/nothrow.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep call
-; rdar://6880732
-declare double @t1(i32) readonly
-
-define void @t2() nounwind {
-  call double @t1(i32 42)  ;; dead call even though callee is not nothrow.
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/nsw.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/nsw.ll
deleted file mode 100644
index 3218371..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/nsw.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-; CHECK: define i32 @foo
-; %y = sub i32 0, %x
-; %z = sdiv i32 %y, 337
-; ret i32 %y
-define i32 @foo(i32 %x) {
-  %y = sub i32 0, %x
-  %z = sdiv i32 %y, 337
-  ret i32 %y
-}
-
-; CHECK: define i32 @bar
-; %y = sdiv i32 %x, -337
-; ret i32 %y
-define i32 @bar(i32 %x) {
-  %y = sub nsw i32 0, %x
-  %z = sdiv i32 %y, 337
-  ret i32 %y
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/odr-linkage.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/odr-linkage.ll
deleted file mode 100644
index 96f8833..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/odr-linkage.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 10}
-
- at g1 = available_externally constant i32 1
- at g2 = linkonce_odr constant i32 2
- at g3 = weak_odr constant i32 3
- at g4 = internal constant i32 4
-
-define i32 @test() {
-  %A = load i32* @g1
-  %B = load i32* @g2
-  %C = load i32* @g3
-  %D = load i32* @g4
-  
-  %a = add i32 %A, %B
-  %b = add i32 %a, %C
-  %c = add i32 %b, %D
-  ret i32 %c
-}
-   
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/or-fcmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/or-fcmp.ll
deleted file mode 100644
index 3833c6f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/or-fcmp.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep fcmp | count 3
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep ret | grep 1
-
-define zeroext i8 @t1(float %x, float %y) nounwind {
-       %a = fcmp ueq float %x, %y             ; <i1> [#uses=1]
-       %b = fcmp uno float %x, %y               ; <i1> [#uses=1]
-       %c = or i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
-
-define zeroext i8 @t2(float %x, float %y) nounwind {
-       %a = fcmp olt float %x, %y             ; <i1> [#uses=1]
-       %b = fcmp oeq float %x, %y               ; <i1> [#uses=1]
-       %c = or i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
-
-define zeroext i8 @t3(float %x, float %y) nounwind {
-       %a = fcmp ult float %x, %y             ; <i1> [#uses=1]
-       %b = fcmp uge float %x, %y               ; <i1> [#uses=1]
-       %c = or i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
-
-define zeroext i8 @t4(float %x, float %y) nounwind {
-       %a = fcmp ult float %x, %y             ; <i1> [#uses=1]
-       %b = fcmp ugt float %x, %y               ; <i1> [#uses=1]
-       %c = or i1 %a, %b
-       %retval = zext i1 %c to i8
-       ret i8 %retval
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/or-to-xor.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/or-to-xor.ll
deleted file mode 100644
index e40417b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/or-to-xor.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {xor i32 %a, %b} | count 4
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {and}
-
-define i32 @func1(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%b_not = xor i32 %b, -1
-	%0 = and i32 %a, %b_not
-	%a_not = xor i32 %a, -1
-	%1 = and i32 %a_not, %b
-	%2 = or i32 %0, %1
-	ret i32 %2
-}
-
-define i32 @func2(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%b_not = xor i32 %b, -1
-	%0 = and i32 %b_not, %a
-	%a_not = xor i32 %a, -1
-	%1 = and i32 %a_not, %b
-	%2 = or i32 %0, %1
-	ret i32 %2
-}
-
-define i32 @func3(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%b_not = xor i32 %b, -1
-	%0 = and i32 %a, %b_not
-	%a_not = xor i32 %a, -1
-	%1 = and i32 %b, %a_not
-	%2 = or i32 %0, %1
-	ret i32 %2
-}
-
-define i32 @func4(i32 %a, i32 %b) nounwind readnone {
-entry:
-	%b_not = xor i32 %b, -1
-	%0 = and i32 %b_not, %a
-	%a_not = xor i32 %a, -1
-	%1 = and i32 %b, %a_not
-	%2 = or i32 %0, %1
-	ret i32 %2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/or.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/or.ll
deleted file mode 100644
index e70fb1c..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/or.ll
+++ /dev/null
@@ -1,171 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep -v xor | not grep {or }
-; END.
-
-define i32 @test1(i32 %A) {
-        %B = or i32 %A, 0               ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test2(i32 %A) {
-        %B = or i32 %A, -1              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i8 @test2a(i8 %A) {
-        %B = or i8 %A, -1               ; <i8> [#uses=1]
-        ret i8 %B
-}
-
-define i1 @test3(i1 %A) {
-        %B = or i1 %A, false            ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test4(i1 %A) {
-        %B = or i1 %A, true             ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test5(i1 %A) {
-        %B = or i1 %A, %A               ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i32 @test6(i32 %A) {
-        %B = or i32 %A, %A              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-; A | ~A == -1
-define i32 @test7(i32 %A) {
-        %NotA = xor i32 -1, %A          ; <i32> [#uses=1]
-        %B = or i32 %A, %NotA           ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i8 @test8(i8 %A) {
-        %B = or i8 %A, -2               ; <i8> [#uses=1]
-        %C = or i8 %B, 1                ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-; Test that (A|c1)|(B|c2) == (A|B)|(c1|c2)
-define i8 @test9(i8 %A, i8 %B) {
-        %C = or i8 %A, 1                ; <i8> [#uses=1]
-        %D = or i8 %B, -2               ; <i8> [#uses=1]
-        %E = or i8 %C, %D               ; <i8> [#uses=1]
-        ret i8 %E
-}
-
-define i8 @test10(i8 %A) {
-        %B = or i8 %A, 1                ; <i8> [#uses=1]
-        %C = and i8 %B, -2              ; <i8> [#uses=1]
-        ; (X & C1) | C2 --> (X | C2) & (C1|C2)
-        %D = or i8 %C, -2               ; <i8> [#uses=1]
-        ret i8 %D
-}
-
-define i8 @test11(i8 %A) {
-        %B = or i8 %A, -2               ; <i8> [#uses=1]
-        %C = xor i8 %B, 13              ; <i8> [#uses=1]
-        ; (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2)
-        %D = or i8 %C, 1                ; <i8> [#uses=1]
-        %E = xor i8 %D, 12              ; <i8> [#uses=1]
-        ret i8 %E
-}
-
-define i32 @test12(i32 %A) {
-        ; Should be eliminated
-        %B = or i32 %A, 4               ; <i32> [#uses=1]
-        %C = and i32 %B, 8              ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @test13(i32 %A) {
-        %B = or i32 %A, 12              ; <i32> [#uses=1]
-        ; Always equal to 8
-        %C = and i32 %B, 8              ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i1 @test14(i32 %A, i32 %B) {
-        %C1 = icmp ult i32 %A, %B               ; <i1> [#uses=1]
-        %C2 = icmp ugt i32 %A, %B               ; <i1> [#uses=1]
-        ; (A < B) | (A > B) === A != B
-        %D = or i1 %C1, %C2             ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test15(i32 %A, i32 %B) {
-        %C1 = icmp ult i32 %A, %B               ; <i1> [#uses=1]
-        %C2 = icmp eq i32 %A, %B                ; <i1> [#uses=1]
-        ; (A < B) | (A == B) === A <= B
-        %D = or i1 %C1, %C2             ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i32 @test16(i32 %A) {
-        %B = and i32 %A, 1              ; <i32> [#uses=1]
-        ; -2 = ~1
-        %C = and i32 %A, -2             ; <i32> [#uses=1]
-        ; %D = and int %B, -1 == %B
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test17(i32 %A) {
-        %B = and i32 %A, 1              ; <i32> [#uses=1]
-        %C = and i32 %A, 4              ; <i32> [#uses=1]
-        ; %D = and int %B, 5
-        %D = or i32 %B, %C              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i1 @test18(i32 %A) {
-        %B = icmp sge i32 %A, 100               ; <i1> [#uses=1]
-        %C = icmp slt i32 %A, 50                ; <i1> [#uses=1]
-        ;; (A-50) >u 50
-        %D = or i1 %B, %C               ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test19(i32 %A) {
-        %B = icmp eq i32 %A, 50         ; <i1> [#uses=1]
-        %C = icmp eq i32 %A, 51         ; <i1> [#uses=1]
-        ;; (A-50) < 2
-        %D = or i1 %B, %C               ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i32 @test20(i32 %x) {
-        %y = and i32 %x, 123            ; <i32> [#uses=1]
-        %z = or i32 %y, %x              ; <i32> [#uses=1]
-        ret i32 %z
-}
-
-define i32 @test21(i32 %tmp.1) {
-        %tmp.1.mask1 = add i32 %tmp.1, 2                ; <i32> [#uses=1]
-        %tmp.3 = and i32 %tmp.1.mask1, -2               ; <i32> [#uses=1]
-        %tmp.5 = and i32 %tmp.1, 1              ; <i32> [#uses=1]
-        ;; add tmp.1, 2
-        %tmp.6 = or i32 %tmp.5, %tmp.3          ; <i32> [#uses=1]
-        ret i32 %tmp.6
-}
-
-define i32 @test22(i32 %B) {
-        %ELIM41 = and i32 %B, 1         ; <i32> [#uses=1]
-        %ELIM7 = and i32 %B, -2         ; <i32> [#uses=1]
-        %ELIM5 = or i32 %ELIM41, %ELIM7         ; <i32> [#uses=1]
-        ret i32 %ELIM5
-}
-
-define i16 @test23(i16 %A) {
-        %B = lshr i16 %A, 1             ; <i16> [#uses=1]
-        ;; fold or into xor
-        %C = or i16 %B, -32768          ; <i16> [#uses=1]
-        %D = xor i16 %C, 8193           ; <i16> [#uses=1]
-        ret i16 %D
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/or2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/or2.ll
deleted file mode 100644
index f14a274..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/or2.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep -v xor | not grep {or }
-
-; PR1738
-define i1 @test1(double %X, double %Y) {
-        %tmp9 = fcmp uno double %X, 0.000000e+00                ; <i1> [#uses=1]
-        %tmp13 = fcmp uno double %Y, 0.000000e+00               ; <i1> [#uses=1]
-        %bothcond = or i1 %tmp13, %tmp9         ; <i1> [#uses=1]
-        ret i1 %bothcond
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/phi-merge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/phi-merge.ll
deleted file mode 100644
index daac412..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/phi-merge.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {phi i32}
-; PR1777
-
-declare i1 @rrr()
-
-define i1 @zxcv() {
-entry:
-%a = alloca i32
-%i = ptrtoint i32* %a to i32
-%b = call i1 @rrr()
-br i1 %b, label %one, label %two
-
-one:
-%x = phi i32 [%i, %entry], [%y, %two]
-%c = call i1 @rrr()
-br i1 %c, label %two, label %end
-
-two:
-%y = phi i32 [%i, %entry], [%x, %one]
-%d = call i1 @rrr()
-br i1 %d, label %one, label %end
-
-end:
-%f = phi i32 [ %x, %one], [%y, %two]
-; Change the %f to %i, and the optimizer suddenly becomes a lot smarter
-; even though %f must equal %i at this point
-%g = inttoptr i32 %f to i32*
-store i32 10, i32* %g
-%z = call i1 @rrr()
-ret i1 %z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/phi.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/phi.ll
deleted file mode 100644
index 4efbb79..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/phi.ll
+++ /dev/null
@@ -1,115 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep phi
-
-define i32 @test1(i32 %A, i1 %b) {
-BB0:
-        br i1 %b, label %BB1, label %BB2
-
-BB1:            ; preds = %BB0
-        ; Combine away one argument PHI nodes
-        %B = phi i32 [ %A, %BB0 ]               ; <i32> [#uses=1]
-        ret i32 %B
-
-BB2:            ; preds = %BB0
-        ret i32 %A
-}
-
-define i32 @test2(i32 %A, i1 %b) {
-BB0:
-        br i1 %b, label %BB1, label %BB2
-
-BB1:            ; preds = %BB0
-        br label %BB2
-
-BB2:            ; preds = %BB1, %BB0
-        ; Combine away PHI nodes with same values
-        %B = phi i32 [ %A, %BB0 ], [ %A, %BB1 ]         ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test3(i32 %A, i1 %b) {
-BB0:
-        br label %Loop
-
-Loop:           ; preds = %Loop, %BB0
-        ; PHI has same value always.
-        %B = phi i32 [ %A, %BB0 ], [ %B, %Loop ]                ; <i32> [#uses=2]
-        br i1 %b, label %Loop, label %Exit
-
-Exit:           ; preds = %Loop
-        ret i32 %B
-}
-
-define i32 @test4(i1 %b) {
-BB0:
-        ; Loop is unreachable
-        ret i32 7
-
-Loop:           ; preds = %L2, %Loop
-        ; PHI has same value always.
-        %B = phi i32 [ %B, %L2 ], [ %B, %Loop ]         ; <i32> [#uses=2]
-        br i1 %b, label %L2, label %Loop
-
-L2:             ; preds = %Loop
-        br label %Loop
-}
-
-define i32 @test5(i32 %A, i1 %b) {
-BB0:
-        br label %Loop
-
-Loop:           ; preds = %Loop, %BB0
-        ; PHI has same value always.
-        %B = phi i32 [ %A, %BB0 ], [ undef, %Loop ]             ; <i32> [#uses=1]
-        br i1 %b, label %Loop, label %Exit
-
-Exit:           ; preds = %Loop
-        ret i32 %B
-}
-
-define i32 @test6(i32 %A, i1 %b) {
-BB0:
-        %X = bitcast i32 %A to i32              ; <i32> [#uses=1]
-        br i1 %b, label %BB1, label %BB2
-
-BB1:            ; preds = %BB0
-        %Y = bitcast i32 %A to i32              ; <i32> [#uses=1]
-        br label %BB2
-
-BB2:            ; preds = %BB1, %BB0
-        ;; Suck casts into phi
-        %B = phi i32 [ %X, %BB0 ], [ %Y, %BB1 ]         ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test7(i32 %A, i1 %b) {
-BB0:
-        br label %Loop
-
-Loop:           ; preds = %Loop, %BB0
-        ; PHI is dead.
-        %B = phi i32 [ %A, %BB0 ], [ %C, %Loop ]                ; <i32> [#uses=1]
-        %C = add i32 %B, 123            ; <i32> [#uses=1]
-        br i1 %b, label %Loop, label %Exit
-
-Exit:           ; preds = %Loop
-        ret i32 0
-}
-
-define i32* @test8({ i32, i32 } *%A, i1 %b) {
-BB0:
-        %X = getelementptr { i32, i32 } *%A, i32 0, i32 1
-        br i1 %b, label %BB1, label %BB2
-
-BB1:
-        %Y = getelementptr { i32, i32 } *%A, i32 0, i32 1
-        br label %BB2
-
-BB2:
-        ;; Suck GEPs into phi
-        %B = phi i32* [ %X, %BB0 ], [ %Y, %BB1 ]
-        ret i32* %B
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/pr2645-0.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/pr2645-0.ll
deleted file mode 100644
index 04cc185..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/pr2645-0.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {insertelement <4 x float> undef}
-
-; Instcombine should be able to prove that none of the
-; insertelement's first operand's elements are needed.
-
-define internal void @""(i8*) {
-; <label>:1
-        bitcast i8* %0 to i32*          ; <i32*>:2 [#uses=1]
-        load i32* %2, align 1           ; <i32>:3 [#uses=1]
-        getelementptr i8* %0, i32 4             ; <i8*>:4 [#uses=1]
-        bitcast i8* %4 to i32*          ; <i32*>:5 [#uses=1]
-        load i32* %5, align 1           ; <i32>:6 [#uses=1]
-        br label %7
-
-; <label>:7             ; preds = %9, %1
-        %.01 = phi <4 x float> [ undef, %1 ], [ %12, %9 ]               ; <<4 x float>> [#uses=1]
-        %.0 = phi i32 [ %3, %1 ], [ %15, %9 ]           ; <i32> [#uses=3]
-        icmp slt i32 %.0, %6            ; <i1>:8 [#uses=1]
-        br i1 %8, label %9, label %16
-
-; <label>:9             ; preds = %7
-        sitofp i32 %.0 to float         ; <float>:10 [#uses=1]
-        insertelement <4 x float> %.01, float %10, i32 0                ; <<4 x float>>:11 [#uses=1]
-        shufflevector <4 x float> %11, <4 x float> undef, <4 x i32> zeroinitializer             ; <<4 x float>>:12 [#uses=2]
-        getelementptr i8* %0, i32 48            ; <i8*>:13 [#uses=1]
-        bitcast i8* %13 to <4 x float>*         ; <<4 x float>*>:14 [#uses=1]
-        store <4 x float> %12, <4 x float>* %14, align 16
-        add i32 %.0, 2          ; <i32>:15 [#uses=1]
-        br label %7
-
-; <label>:16            ; preds = %7
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/pr2645-1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/pr2645-1.ll
deleted file mode 100644
index 194d2cd..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/pr2645-1.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shufflevector
-; PR2645
-
-; instcombine shouldn't delete the shufflevector.
-
-define internal void @""(i8*, i32, i8*) {
-; <label>:3
-        br label %4
-
-; <label>:4             ; preds = %6, %3
-        %.0 = phi i32 [ 0, %3 ], [ %19, %6 ]            ; <i32> [#uses=4]
-        %5 = icmp slt i32 %.0, %1               ; <i1> [#uses=1]
-        br i1 %5, label %6, label %20
-
-; <label>:6             ; preds = %4
-        %7 = getelementptr i8* %2, i32 %.0              ; <i8*> [#uses=1]
-        %8 = bitcast i8* %7 to <4 x i16>*               ; <<4 x i16>*> [#uses=1]
-        %9 = load <4 x i16>* %8, align 1                ; <<4 x i16>> [#uses=1]
-        %10 = bitcast <4 x i16> %9 to <1 x i64>         ; <<1 x i64>> [#uses=1]
-        %11 = call <2 x i64> @foo(<1 x i64> %10)
-; <<2 x i64>> [#uses=1]
-        %12 = bitcast <2 x i64> %11 to <4 x i32>                ; <<4 x i32>> [#uses=1]
-        %13 = bitcast <4 x i32> %12 to <8 x i16>                ; <<8 x i16>> [#uses=2]
-        %14 = shufflevector <8 x i16> %13, <8 x i16> %13, <8 x i32> < i32 0, i32 0, i32 1, i32 1, i32 2, i32 2, i32 3, i32 3 >          ; <<8 x i16>> [#uses=1]
-        %15 = bitcast <8 x i16> %14 to <4 x i32>                ; <<4 x i32>> [#uses=1]
-        %16 = sitofp <4 x i32> %15 to <4 x float>               ; <<4 x float>> [#uses=1]
-        %17 = getelementptr i8* %0, i32 %.0             ; <i8*> [#uses=1]
-        %18 = bitcast i8* %17 to <4 x float>*           ; <<4 x float>*> [#uses=1]
-        store <4 x float> %16, <4 x float>* %18, align 1
-        %19 = add i32 %.0, 1            ; <i32> [#uses=1]
-        br label %4
-
-; <label>:20            ; preds = %4
-        call void @llvm.x86.mmx.emms( )
-        ret void
-}
-
-declare <2 x i64> @foo(<1 x i64>)
-declare void @llvm.x86.mmx.emms( )
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/pr2996.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/pr2996.ll
deleted file mode 100644
index 3e7dfa2..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/pr2996.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-; PR2996
-
-define void @func_53(i16 signext %p_56) nounwind {
-entry:
-	%0 = icmp sgt i16 %p_56, -1		; <i1> [#uses=1]
-	%iftmp.0.0 = select i1 %0, i32 -1, i32 0		; <i32> [#uses=1]
-	%1 = call i32 (...)* @func_4(i32 %iftmp.0.0) nounwind		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @func_4(...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/preserve-sminmax.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/preserve-sminmax.ll
deleted file mode 100644
index 24fb7da..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/preserve-sminmax.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep { i32 \[%\]sd, \[\[:alnum:\]\]* \\?1\\>} | count 4
-
-; Instcombine normally would fold the sdiv into the comparison,
-; making "icmp slt i32 %h, 2", but in this case the sdiv has
-; another use, so it wouldn't a big win, and it would also
-; obfuscate an otherise obvious smax pattern to the point where
-; other analyses wouldn't recognize it.
-
-define i32 @foo(i32 %h) {
-  %sd = sdiv i32 %h, 2
-  %t = icmp slt i32 %sd, 1
-  %r = select i1 %t, i32 %sd, i32 1
-  ret i32 %r
-}
-
-define i32 @bar(i32 %h) {
-  %sd = sdiv i32 %h, 2
-  %t = icmp sgt i32 %sd, 1
-  %r = select i1 %t, i32 %sd, i32 1
-  ret i32 %r
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/ptr-int-cast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/ptr-int-cast.ll
deleted file mode 100644
index 5c15439..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/ptr-int-cast.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-
-define i1 @test1(i32 *%x) nounwind {
-entry:
-; RUN: grep {ptrtoint i32\\* %x to i64} %t
-	%tmp = ptrtoint i32* %x to i1
-	ret i1 %tmp
-}
-
-define i32* @test2(i128 %x) nounwind {
-entry:
-; RUN: grep {inttoptr i64 %.mp1 to i32\\*} %t
-	%tmp = inttoptr i128 %x to i32*
-	ret i32* %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/rem.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/rem.ll
deleted file mode 100644
index 8b2263d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/rem.ll
+++ /dev/null
@@ -1,83 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep rem
-; END.
-
-define i32 @test1(i32 %A) {
-	%B = srem i32 %A, 1	; ISA constant 0
-	ret i32 %B
-}
-
-define i32 @test2(i32 %A) {	; 0 % X = 0, we don't need to preserve traps
-	%B = srem i32 0, %A
-	ret i32 %B
-}
-
-define i32 @test3(i32 %A) {
-	%B = urem i32 %A, 8
-	ret i32 %B
-}
-
-define i1 @test3a(i32 %A) {
-	%B = srem i32 %A, -8
-	%C = icmp ne i32 %B, 0
-	ret i1 %C
-}
-
-define i32 @test4(i32 %X, i1 %C) {
-	%V = select i1 %C, i32 1, i32 8
-	%R = urem i32 %X, %V
-	ret i32 %R
-}
-
-define i32 @test5(i32 %X, i8 %B) {
-	%shift.upgrd.1 = zext i8 %B to i32
-	%Amt = shl i32 32, %shift.upgrd.1
-	%V = urem i32 %X, %Amt
-	ret i32 %V
-}
-
-define i32 @test6(i32 %A) {
-	%B = srem i32 %A, 0	;; undef
-	ret i32 %B
-}
-
-define i32 @test7(i32 %A) {
-	%B = mul i32 %A, 8
-	%C = srem i32 %B, 4
-	ret i32 %C
-}
-
-define i32 @test8(i32 %A) {
-	%B = shl i32 %A, 4
-	%C = srem i32 %B, 8
-	ret i32 %C
-}
-
-define i32 @test9(i32 %A) {
-	%B = mul i32 %A, 64
-	%C = urem i32 %B, 32
-	ret i32 %C
-}
-
-define i32 @test10(i8 %c) {
-	%tmp.1 = zext i8 %c to i32
-	%tmp.2 = mul i32 %tmp.1, 4
-	%tmp.3 = sext i32 %tmp.2 to i64
-	%tmp.5 = urem i64 %tmp.3, 4
-	%tmp.6 = trunc i64 %tmp.5 to i32
-	ret i32 %tmp.6
-}
-
-define i32 @test11(i32 %i) {
-	%tmp.1 = and i32 %i, -2
-	%tmp.3 = mul i32 %tmp.1, 2
-	%tmp.5 = urem i32 %tmp.3, 4
-	ret i32 %tmp.5
-}
-
-define i32 @test12(i32 %i) {
-	%tmp.1 = and i32 %i, -4
-	%tmp.5 = srem i32 %tmp.1, 2
-	ret i32 %tmp.5
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-1.ll
deleted file mode 100644
index 305b6d7..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-1.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -inline | llvm-dis | not grep '-715827882'
-; PR3142
-
-define i32 @a(i32 %X) nounwind readnone {
-entry:
-       %0 = sub i32 0, %X
-       %1 = sdiv i32 %0, -3
-       ret i32 %1
-}
-
-define i32 @b(i32 %X) nounwind readnone {
-entry:
-       %0 = call i32 @a(i32 -2147483648)
-       ret i32 %0
-}
-
-define i32 @c(i32 %X) nounwind readnone {
-entry:
-       %0 = sub i32 0, -2147483648
-       %1 = sdiv i32 %0, -3
-       ret i32 %1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-2.ll
deleted file mode 100644
index db0c7fb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-2.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-; PR3144
-
-define fastcc i32 @func(i32 %length) nounwind {
-entry:
-	%0 = icmp ne i32 %length, -1		; <i1> [#uses=1]
-	%iftmp.13.0 = select i1 %0, i128 0, i128 200000000		; <i128> [#uses=2]
-	%1 = sdiv i128 %iftmp.13.0, 10		; <i128> [#uses=1]
-	br label %bb5
-
-bb5:		; preds = %bb8, %entry
-	%v.0 = phi i128 [ 0, %entry ], [ %6, %bb8 ]		; <i128> [#uses=2]
-	%2 = icmp sgt i128 %v.0, %1		; <i1> [#uses=1]
-	br i1 %2, label %overflow, label %bb7
-
-bb7:		; preds = %bb5
-	%3 = mul i128 %v.0, 10		; <i128> [#uses=2]
-	%4 = sub i128 %iftmp.13.0, 0		; <i128> [#uses=1]
-	%5 = icmp slt i128 %4, %3		; <i1> [#uses=1]
-	br i1 %5, label %overflow, label %bb8
-
-bb8:		; preds = %bb7
-	%6 = add i128 0, %3		; <i128> [#uses=1]
-	br label %bb5
-
-overflow:		; preds = %bb7, %bb5
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-shift.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-shift.ll
deleted file mode 100644
index 3fba05d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/sdiv-shift.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep div
-
-define i32 @a(i16 zeroext %x, i32 %y) nounwind {
-entry:
-	%conv = zext i16 %x to i32
-	%s = shl i32 2, %y
-	%d = sdiv i32 %conv, %s
-	ret i32 %d
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/select-2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/select-2.ll
deleted file mode 100644
index 4621f6e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/select-2.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep select | count 2
-
-; Make sure instcombine don't fold select into operands. We don't want to emit
-; select of two integers unless it's selecting 0 / 1.
-
-define i32 @t1(i32 %c, i32 %x) nounwind {
-       %t1 = icmp eq i32 %c, 0
-       %t2 = lshr i32 %x, 18
-       %t3 = select i1 %t1, i32 %t2, i32 %x
-       ret i32 %t3
-}
-
-define i32 @t2(i32 %c, i32 %x) nounwind {
-       %t1 = icmp eq i32 %c, 0
-       %t2 = and i32 %x, 18
-       %t3 = select i1 %t1, i32 %t2, i32 %x
-       ret i32 %t3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/select-load-call.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/select-load-call.ll
deleted file mode 100644
index 367356e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/select-load-call.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i32 1}
-
-declare void @test2()
-
-define i32 @test(i1 %cond, i32 *%P) {
-  %A = alloca i32
-  store i32 1, i32* %P
-  store i32 1, i32* %A
-
-  call void @test2() readonly
-
-  %P2 = select i1 %cond, i32 *%P, i32* %A
-  %V = load i32* %P2
-  ret i32 %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/select.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/select.ll
deleted file mode 100644
index 15083f2..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/select.ll
+++ /dev/null
@@ -1,204 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-; PR1822
-
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep select
-
-define i32 @test1(i32 %A, i32 %B) {
-        %C = select i1 false, i32 %A, i32 %B            ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-define i32 @test2(i32 %A, i32 %B) {
-        %C = select i1 true, i32 %A, i32 %B             ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-
-define i32 @test3(i1 %C, i32 %I) {
-        ; V = I
-        %V = select i1 %C, i32 %I, i32 %I               ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i1 @test4(i1 %C) {
-        ; V = C
-        %V = select i1 %C, i1 true, i1 false            ; <i1> [#uses=1]
-        ret i1 %V
-}
-
-define i1 @test5(i1 %C) {
-        ; V = !C
-        %V = select i1 %C, i1 false, i1 true            ; <i1> [#uses=1]
-        ret i1 %V
-}
-
-define i32 @test6(i1 %C) { 
-        ; V = cast C to int
-        %V = select i1 %C, i32 1, i32 0         ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i1 @test7(i1 %C, i1 %X) {
-        ; R = or C, X       
-        %R = select i1 %C, i1 true, i1 %X               ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i1 @test8(i1 %C, i1 %X) {
-        ; R = and C, X
-        %R = select i1 %C, i1 %X, i1 false              ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i1 @test9(i1 %C, i1 %X) {
-        ; R = and !C, X
-        %R = select i1 %C, i1 false, i1 %X              ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i1 @test10(i1 %C, i1 %X) {
-        ; R = or !C, X
-        %R = select i1 %C, i1 %X, i1 true               ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i32 @test11(i32 %a) {
-        %C = icmp eq i32 %a, 0          ; <i1> [#uses=1]
-        %R = select i1 %C, i32 0, i32 1         ; <i32> [#uses=1]
-        ret i32 %R
-}
-
-define i32 @test12(i1 %cond, i32 %a) {
-        %b = or i32 %a, 1               ; <i32> [#uses=1]
-        %c = select i1 %cond, i32 %b, i32 %a            ; <i32> [#uses=1]
-        ret i32 %c
-}
-
-define i32 @test12a(i1 %cond, i32 %a) {
-        %b = ashr i32 %a, 1             ; <i32> [#uses=1]
-        %c = select i1 %cond, i32 %b, i32 %a            ; <i32> [#uses=1]
-        ret i32 %c
-}
-
-define i32 @test12b(i1 %cond, i32 %a) {
-        %b = ashr i32 %a, 1             ; <i32> [#uses=1]
-        %c = select i1 %cond, i32 %a, i32 %b            ; <i32> [#uses=1]
-        ret i32 %c
-}
-
-define i32 @test13(i32 %a, i32 %b) {
-        %C = icmp eq i32 %a, %b         ; <i1> [#uses=1]
-        %V = select i1 %C, i32 %a, i32 %b               ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i32 @test13a(i32 %a, i32 %b) {
-        %C = icmp ne i32 %a, %b         ; <i1> [#uses=1]
-        %V = select i1 %C, i32 %a, i32 %b               ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i32 @test13b(i32 %a, i32 %b) {
-        %C = icmp eq i32 %a, %b         ; <i1> [#uses=1]
-        %V = select i1 %C, i32 %b, i32 %a               ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i1 @test14a(i1 %C, i32 %X) {
-        %V = select i1 %C, i32 %X, i32 0                ; <i32> [#uses=1]
-        ; (X < 1) | !C
-        %R = icmp slt i32 %V, 1         ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i1 @test14b(i1 %C, i32 %X) {
-        %V = select i1 %C, i32 0, i32 %X                ; <i32> [#uses=1]
-        ; (X < 1) | C
-        %R = icmp slt i32 %V, 1         ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-;; Code sequence for (X & 16) ? 16 : 0
-define i32 @test15a(i32 %X) {
-        %t1 = and i32 %X, 16            ; <i32> [#uses=1]
-        %t2 = icmp eq i32 %t1, 0                ; <i1> [#uses=1]
-        %t3 = select i1 %t2, i32 0, i32 16              ; <i32> [#uses=1]
-        ret i32 %t3
-}
-
-;; Code sequence for (X & 32) ? 0 : 24
-define i32 @test15b(i32 %X) {
-        %t1 = and i32 %X, 32            ; <i32> [#uses=1]
-        %t2 = icmp eq i32 %t1, 0                ; <i1> [#uses=1]
-        %t3 = select i1 %t2, i32 32, i32 0              ; <i32> [#uses=1]
-        ret i32 %t3
-}
-
-;; Alternate code sequence for (X & 16) ? 16 : 0
-define i32 @test15c(i32 %X) {
-        %t1 = and i32 %X, 16            ; <i32> [#uses=1]
-        %t2 = icmp eq i32 %t1, 16               ; <i1> [#uses=1]
-        %t3 = select i1 %t2, i32 16, i32 0              ; <i32> [#uses=1]
-        ret i32 %t3
-}
-
-;; Alternate code sequence for (X & 16) ? 16 : 0
-define i32 @test15d(i32 %X) {
-        %t1 = and i32 %X, 16            ; <i32> [#uses=1]
-        %t2 = icmp ne i32 %t1, 0                ; <i1> [#uses=1]
-        %t3 = select i1 %t2, i32 16, i32 0              ; <i32> [#uses=1]
-        ret i32 %t3
-}
-
-define i32 @test16(i1 %C, i32* %P) {
-        %P2 = select i1 %C, i32* %P, i32* null          ; <i32*> [#uses=1]
-        %V = load i32* %P2              ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i1 @test17(i32* %X, i1 %C) {
-        %R = select i1 %C, i32* %X, i32* null           ; <i32*> [#uses=1]
-        %RV = icmp eq i32* %R, null             ; <i1> [#uses=1]
-        ret i1 %RV
-}
-
-define i32 @test18(i32 %X, i32 %Y, i1 %C) {
-        %R = select i1 %C, i32 %X, i32 0                ; <i32> [#uses=1]
-        %V = sdiv i32 %Y, %R            ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i32 @test19(i32 %x) {
-        %tmp = icmp ugt i32 %x, 2147483647              ; <i1> [#uses=1]
-        %retval = select i1 %tmp, i32 -1, i32 0         ; <i32> [#uses=1]
-        ret i32 %retval
-}
-
-define i32 @test20(i32 %x) {
-        %tmp = icmp slt i32 %x, 0               ; <i1> [#uses=1]
-        %retval = select i1 %tmp, i32 -1, i32 0         ; <i32> [#uses=1]
-        ret i32 %retval
-}
-
-define i64 @test21(i32 %x) {
-        %tmp = icmp slt i32 %x, 0               ; <i1> [#uses=1]
-        %retval = select i1 %tmp, i64 -1, i64 0         ; <i64> [#uses=1]
-        ret i64 %retval
-}
-
-define i16 @test22(i32 %x) {
-        %tmp = icmp slt i32 %x, 0               ; <i1> [#uses=1]
-        %retval = select i1 %tmp, i16 -1, i16 0         ; <i16> [#uses=1]
-        ret i16 %retval
-}
-
-define i1 @test23(i1 %a, i1 %b) {
-        %c = select i1 %a, i1 %b, i1 %a         ; <i1> [#uses=1]
-        ret i1 %c
-}
-
-define i1 @test24(i1 %a, i1 %b) {
-        %c = select i1 %a, i1 %a, i1 %b         ; <i1> [#uses=1]
-        ret i1 %c
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/set.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/set.ll
deleted file mode 100644
index 5e3ca0b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/set.ll
+++ /dev/null
@@ -1,171 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep icmp
-; END.
-	
- at X = external global i32                ; <i32*> [#uses=2]
-
-define i1 @test1(i32 %A) {
-        %B = icmp eq i32 %A, %A         ; <i1> [#uses=1]
-        ; Never true
-        %C = icmp eq i32* @X, null              ; <i1> [#uses=1]
-        %D = and i1 %B, %C              ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test2(i32 %A) {
-        %B = icmp ne i32 %A, %A         ; <i1> [#uses=1]
-        ; Never false
-        %C = icmp ne i32* @X, null              ; <i1> [#uses=1]
-        %D = or i1 %B, %C               ; <i1> [#uses=1]
-        ret i1 %D
-}
-
-define i1 @test3(i32 %A) {
-        %B = icmp slt i32 %A, %A                ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-
-define i1 @test4(i32 %A) {
-        %B = icmp sgt i32 %A, %A                ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test5(i32 %A) {
-        %B = icmp sle i32 %A, %A                ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test6(i32 %A) {
-        %B = icmp sge i32 %A, %A                ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test7(i32 %A) {
-        ; true
-        %B = icmp uge i32 %A, 0         ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test8(i32 %A) {
-        ; false
-        %B = icmp ult i32 %A, 0         ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-;; test operations on boolean values these should all be eliminated$a
-define i1 @test9(i1 %A) {
-        ; false
-        %B = icmp ult i1 %A, false              ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test10(i1 %A) {
-        ; false
-        %B = icmp ugt i1 %A, true               ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test11(i1 %A) {
-        ; true
-        %B = icmp ule i1 %A, true               ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test12(i1 %A) {
-        ; true
-        %B = icmp uge i1 %A, false              ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test13(i1 %A, i1 %B) {
-        ; A | ~B
-        %C = icmp uge i1 %A, %B         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test14(i1 %A, i1 %B) {
-        ; ~(A ^ B)
-        %C = icmp eq i1 %A, %B          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test16(i32 %A) {
-        %B = and i32 %A, 5              ; <i32> [#uses=1]
-        ; Is never true
-        %C = icmp eq i32 %B, 8          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test17(i8 %A) {
-        %B = or i8 %A, 1                ; <i8> [#uses=1]
-        ; Always false
-        %C = icmp eq i8 %B, 2           ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test18(i1 %C, i32 %a) {
-entry:
-        br i1 %C, label %endif, label %else
-
-else:           ; preds = %entry
-        br label %endif
-
-endif:          ; preds = %else, %entry
-        %b.0 = phi i32 [ 0, %entry ], [ 1, %else ]              ; <i32> [#uses=1]
-        %tmp.4 = icmp slt i32 %b.0, 123         ; <i1> [#uses=1]
-        ret i1 %tmp.4
-}
-
-define i1 @test19(i1 %A, i1 %B) {
-        %a = zext i1 %A to i32          ; <i32> [#uses=1]
-        %b = zext i1 %B to i32          ; <i32> [#uses=1]
-        %C = icmp eq i32 %a, %b         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i32 @test20(i32 %A) {
-        %B = and i32 %A, 1              ; <i32> [#uses=1]
-        %C = icmp ne i32 %B, 0          ; <i1> [#uses=1]
-        %D = zext i1 %C to i32          ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test21(i32 %a) {
-        %tmp.6 = and i32 %a, 4          ; <i32> [#uses=1]
-        %not.tmp.7 = icmp ne i32 %tmp.6, 0              ; <i1> [#uses=1]
-        %retval = zext i1 %not.tmp.7 to i32             ; <i32> [#uses=1]
-        ret i32 %retval
-}
-
-define i1 @test22(i32 %A, i32 %X) {
-        %B = and i32 %A, 100663295              ; <i32> [#uses=1]
-        %C = icmp ult i32 %B, 268435456         ; <i1> [#uses=1]
-        %Y = and i32 %X, 7              ; <i32> [#uses=1]
-        %Z = icmp sgt i32 %Y, -1                ; <i1> [#uses=1]
-        %R = or i1 %C, %Z               ; <i1> [#uses=1]
-        ret i1 %R
-}
-
-define i32 @test23(i32 %a) {
-        %tmp.1 = and i32 %a, 1          ; <i32> [#uses=1]
-        %tmp.2 = icmp eq i32 %tmp.1, 0          ; <i1> [#uses=1]
-        %tmp.3 = zext i1 %tmp.2 to i32          ; <i32> [#uses=1]
-        ret i32 %tmp.3
-}
-
-define i32 @test24(i32 %a) {
-        %tmp1 = and i32 %a, 4           ; <i32> [#uses=1]
-        %tmp.1 = lshr i32 %tmp1, 2              ; <i32> [#uses=1]
-        %tmp.2 = icmp eq i32 %tmp.1, 0          ; <i1> [#uses=1]
-        %tmp.3 = zext i1 %tmp.2 to i32          ; <i32> [#uses=1]
-        ret i32 %tmp.3
-}
-
-define i1 @test25(i32 %A) {
-        %B = and i32 %A, 2              ; <i32> [#uses=1]
-        %C = icmp ugt i32 %B, 2         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/setcc-cast-cast.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/setcc-cast-cast.ll
deleted file mode 100644
index ed2e2be..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/setcc-cast-cast.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; This test case was reduced from MultiSource/Applications/hbd. It makes sure
-; that folding doesn't happen in case a zext is applied where a sext should have
-; been when a setcc is used with two casts.
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep {br i1 false}
-; END.
-
-define i32 @bug(i8 %inbuff) {
-entry:
-        %tmp = bitcast i8 %inbuff to i8         ; <i8> [#uses=1]
-        %tmp.upgrd.1 = sext i8 %tmp to i32              ; <i32> [#uses=3]
-        %tmp.upgrd.2 = icmp eq i32 %tmp.upgrd.1, 1              ; <i1> [#uses=1]
-        br i1 %tmp.upgrd.2, label %cond_true, label %cond_next
-
-cond_true:              ; preds = %entry
-        br label %bb
-
-cond_next:              ; preds = %entry
-        %tmp3 = icmp eq i32 %tmp.upgrd.1, -1            ; <i1> [#uses=1]
-        br i1 %tmp3, label %cond_true4, label %cond_next5
-
-cond_true4:             ; preds = %cond_next
-        br label %bb
-
-cond_next5:             ; preds = %cond_next
-        %tmp7 = icmp sgt i32 %tmp.upgrd.1, 1            ; <i1> [#uses=1]
-        br i1 %tmp7, label %cond_true8, label %cond_false
-
-cond_true8:             ; preds = %cond_next5
-        br label %cond_next9
-
-cond_false:             ; preds = %cond_next5
-        br label %cond_next9
-
-cond_next9:             ; preds = %cond_false, %cond_true8
-        %iftmp.1.0 = phi i32 [ 42, %cond_true8 ], [ 23, %cond_false ]           ; <i32> [#uses=1]
-        br label %return
-
-bb:             ; preds = %cond_true4, %cond_true
-        br label %return
-
-return:         ; preds = %bb, %cond_next9
-        %retval.0 = phi i32 [ 17, %bb ], [ %iftmp.1.0, %cond_next9 ]            ; <i32> [#uses=1]
-        ret i32 %retval.0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/setcc-strength-reduce.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/setcc-strength-reduce.ll
deleted file mode 100644
index 9931ccb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/setcc-strength-reduce.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; This test ensures that "strength reduction" of conditional expressions are
-; working.  Basically this boils down to converting setlt,gt,le,ge instructions
-; into equivalent setne,eq instructions.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep -v {icmp eq} | grep -v {icmp ne} | not grep icmp
-; END.
-
-define i1 @test1(i32 %A) {
-        ; setne %A, 0
-        %B = icmp uge i32 %A, 1         ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test2(i32 %A) {
-       ; setne %A, 0
-        %B = icmp ugt i32 %A, 0         ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test3(i8 %A) {
-        ; setne %A, -128
-        %B = icmp sge i8 %A, -127               ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test4(i8 %A) {
-        ; setne %A, 127 
-        %B = icmp sle i8 %A, 126                ; <i1> [#uses=1]
-        ret i1 %B
-}
-
-define i1 @test5(i8 %A) {
-        ; setne %A, 127
-        %B = icmp slt i8 %A, 127                ; <i1> [#uses=1]
-        ret i1 %B
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/sext-misc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/sext-misc.ll
deleted file mode 100644
index 5874966..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/sext-misc.ll
+++ /dev/null
@@ -1,75 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sext
-
-declare i32 @llvm.ctpop.i32(i32)
-declare i32 @llvm.ctlz.i32(i32)
-declare i32 @llvm.cttz.i32(i32)
-
-define i64 @foo(i32 %x) {
-  %t = call i32 @llvm.ctpop.i32(i32 %x)
-  %s = sext i32 %t to i64
-  ret i64 %s
-}
-define i64 @boo(i32 %x) {
-  %t = call i32 @llvm.ctlz.i32(i32 %x)
-  %s = sext i32 %t to i64
-  ret i64 %s
-}
-define i64 @zoo(i32 %x) {
-  %t = call i32 @llvm.cttz.i32(i32 %x)
-  %s = sext i32 %t to i64
-  ret i64 %s
-}
-define i64 @coo(i32 %x) {
-  %t = udiv i32 %x, 3
-  %s = sext i32 %t to i64
-  ret i64 %s
-}
-define i64 @moo(i32 %x) {
-  %t = urem i32 %x, 30000
-  %s = sext i32 %t to i64
-  ret i64 %s
-}
-define i64 @yoo(i32 %x) {
-  %u = lshr i32 %x, 3
-  %t = mul i32 %u, 3
-  %s = sext i32 %t to i64
-  ret i64 %s
-}
-define i64 @voo(i32 %x) {
-  %t = and i32 %x, 511
-  %u = sub i32 20000, %t
-  %s = sext i32 %u to i64
-  ret i64 %s
-}
-define i32 @woo(i8 %a, i32 %f, i1 %p, i32* %z) {
-  %d = lshr i32 %f, 24
-  %e = select i1 %p, i32 %d, i32 0
-  %s = trunc i32 %e to i16
-  %n = sext i16 %s to i32
-  ret i32 %n
-}
-
-; rdar://6013816
-define i16 @test(i16 %t, i1 %cond) nounwind {
-entry:
-	br i1 %cond, label %T, label %F
-T:
-	%t2 = sext i16 %t to i32
-	br label %F
-
-F:
-	%V = phi i32 [%t2, %T], [42, %entry]
-	%W = trunc i32 %V to i16
-	ret i16 %W
-}
-
-; PR2638
-define i32 @test2(i32 %i) nounwind  {
-entry:
-        %tmp12 = trunc i32 %i to i8             ; <i8> [#uses=1]
-        %tmp16 = shl i8 %tmp12, 6               ; <i8> [#uses=1]
-        %a = ashr i8 %tmp16, 6            ; <i8> [#uses=1]
-        %b = sext i8 %a to i32            ; <i32> [#uses=1]
-        ret i32 %b
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shift-simplify.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shift-simplify.ll
deleted file mode 100644
index ecf3f5f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shift-simplify.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    egrep {shl|lshr|ashr} | count 3
-
-define i32 @test0(i32 %A, i32 %B, i32 %C) {
-	%X = shl i32 %A, %C
-	%Y = shl i32 %B, %C
-	%Z = and i32 %X, %Y
-	ret i32 %Z
-}
-
-define i32 @test1(i32 %A, i32 %B, i32 %C) {
-	%X = lshr i32 %A, %C
-	%Y = lshr i32 %B, %C
-	%Z = or i32 %X, %Y
-	ret i32 %Z
-}
-
-define i32 @test2(i32 %A, i32 %B, i32 %C) {
-	%X = ashr i32 %A, %C
-	%Y = ashr i32 %B, %C
-	%Z = xor i32 %X, %Y
-	ret i32 %Z
-}
-
-define i1 @test3(i32 %X) {
-        %tmp1 = shl i32 %X, 7
-        %tmp2 = icmp slt i32 %tmp1, 0
-        ret i1 %tmp2
-}
-
-define i1 @test4(i32 %X) {
-        %tmp1 = lshr i32 %X, 7
-        %tmp2 = icmp slt i32 %tmp1, 0
-        ret i1 %tmp2
-}
-
-define i1 @test5(i32 %X) {
-        %tmp1 = ashr i32 %X, 7
-        %tmp2 = icmp slt i32 %tmp1, 0
-        ret i1 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shift-sra.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shift-sra.ll
deleted file mode 100644
index 6058bd6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shift-sra.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {lshr i32} | count 2
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep ashr
-
-
-define i32 @test1(i32 %X, i8 %A) {
-        %shift.upgrd.1 = zext i8 %A to i32              ; <i32> [#uses=1]
-        ; can be logical shift.
-        %Y = ashr i32 %X, %shift.upgrd.1                ; <i32> [#uses=1]
-        %Z = and i32 %Y, 1              ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-define i32 @test2(i8 %tmp) {
-        %tmp3 = zext i8 %tmp to i32             ; <i32> [#uses=1]
-        %tmp4 = add i32 %tmp3, 7                ; <i32> [#uses=1]
-        %tmp5 = ashr i32 %tmp4, 3               ; <i32> [#uses=1]
-        ret i32 %tmp5
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shift-trunc-shift.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shift-trunc-shift.ll
deleted file mode 100644
index bf9f407..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shift-trunc-shift.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep lshr.*63
-
-define i32 @t1(i64 %d18) {
-entry:
-	%tmp916 = lshr i64 %d18, 32		; <i64> [#uses=1]
-	%tmp917 = trunc i64 %tmp916 to i32		; <i32> [#uses=1]
-	%tmp10 = lshr i32 %tmp917, 31		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shift.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shift.ll
deleted file mode 100644
index 9dc7755..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shift.ll
+++ /dev/null
@@ -1,216 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep sh
-; END.
-
-define i32 @test1(i32 %A) {
-        %B = shl i32 %A, 0              ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test2(i8 %A) {
-        %shift.upgrd.1 = zext i8 %A to i32              ; <i32> [#uses=1]
-        %B = shl i32 0, %shift.upgrd.1          ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test3(i32 %A) {
-        %B = ashr i32 %A, 0             ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-define i32 @test4(i8 %A) {
-        %shift.upgrd.2 = zext i8 %A to i32              ; <i32> [#uses=1]
-        %B = ashr i32 0, %shift.upgrd.2         ; <i32> [#uses=1]
-        ret i32 %B
-}
-
-
-define i32 @test5(i32 %A) {
-        %B = lshr i32 %A, 32  ;; shift all bits out 
-        ret i32 %B
-}
-
-define i32 @test5a(i32 %A) {
-        %B = shl i32 %A, 32     ;; shift all bits out 
-        ret i32 %B
-}
-
-define i32 @test6(i32 %A) {
-        %B = shl i32 %A, 1      ;; convert to an mul instruction 
-        %C = mul i32 %B, 3             
-        ret i32 %C
-}
-
-define i32 @test7(i8 %A) {
-        %shift.upgrd.3 = zext i8 %A to i32 
-        %B = ashr i32 -1, %shift.upgrd.3  ;; Always equal to -1
-        ret i32 %B
-}
-
-;; (A << 5) << 3 === A << 8 == 0
-define i8 @test8(i8 %A) {
-        %B = shl i8 %A, 5               ; <i8> [#uses=1]
-        %C = shl i8 %B, 3               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-;; (A << 7) >> 7 === A & 1
-define i8 @test9(i8 %A) {
-        %B = shl i8 %A, 7               ; <i8> [#uses=1]
-        %C = lshr i8 %B, 7              ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-;; (A >> 7) << 7 === A & 128
-define i8 @test10(i8 %A) {
-        %B = lshr i8 %A, 7              ; <i8> [#uses=1]
-        %C = shl i8 %B, 7               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-;; (A >> 3) << 4 === (A & 0x1F) << 1
-define i8 @test11(i8 %A) {
-        %a = mul i8 %A, 3               ; <i8> [#uses=1]
-        %B = lshr i8 %a, 3              ; <i8> [#uses=1]
-        %C = shl i8 %B, 4               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-;; (A >> 8) << 8 === A & -256
-define i32 @test12(i32 %A) {
-        %B = ashr i32 %A, 8             ; <i32> [#uses=1]
-        %C = shl i32 %B, 8              ; <i32> [#uses=1]
-        ret i32 %C
-}
-
-;; (A >> 3) << 4 === (A & -8) * 2
-define i8 @test13(i8 %A) {
-        %a = mul i8 %A, 3               ; <i8> [#uses=1]
-        %B = ashr i8 %a, 3              ; <i8> [#uses=1]
-        %C = shl i8 %B, 4               ; <i8> [#uses=1]
-        ret i8 %C
-}
-
-;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
-define i32 @test14(i32 %A) {
-        %B = lshr i32 %A, 4             ; <i32> [#uses=1]
-        %C = or i32 %B, 1234            ; <i32> [#uses=1]
-        %D = shl i32 %C, 4              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-;; D = ((B | 1234) << 4) === ((B << 4)|(1234 << 4)
-define i32 @test14a(i32 %A) {
-        %B = shl i32 %A, 4              ; <i32> [#uses=1]
-        %C = and i32 %B, 1234           ; <i32> [#uses=1]
-        %D = lshr i32 %C, 4             ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-define i32 @test15(i1 %C) {
-        %A = select i1 %C, i32 3, i32 1         ; <i32> [#uses=1]
-        %V = shl i32 %A, 2              ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i32 @test15a(i1 %C) {
-        %A = select i1 %C, i8 3, i8 1           ; <i8> [#uses=1]
-        %shift.upgrd.4 = zext i8 %A to i32              ; <i32> [#uses=1]
-        %V = shl i32 64, %shift.upgrd.4         ; <i32> [#uses=1]
-        ret i32 %V
-}
-
-define i1 @test16(i32 %X) {
-        %tmp.3 = ashr i32 %X, 4         ; <i32> [#uses=1]
-        %tmp.6 = and i32 %tmp.3, 1              ; <i32> [#uses=1]
-        %tmp.7 = icmp ne i32 %tmp.6, 0          ; <i1> [#uses=1]
-        ret i1 %tmp.7
-}
-
-define i1 @test17(i32 %A) {
-        %B = lshr i32 %A, 3             ; <i32> [#uses=1]
-        %C = icmp eq i32 %B, 1234               ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-
-define i1 @test18(i8 %A) {
-        %B = lshr i8 %A, 7              ; <i8> [#uses=1]
-        ;; false
-        %C = icmp eq i8 %B, 123         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test19(i32 %A) {
-        %B = ashr i32 %A, 2             ; <i32> [#uses=1]
-        ;; (X & -4) == 0
-        %C = icmp eq i32 %B, 0          ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-
-define i1 @test19a(i32 %A) {
-        %B = ashr i32 %A, 2             ; <i32> [#uses=1]
-        ;; (X & -4) == -4
-        %C = icmp eq i32 %B, -1         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test20(i8 %A) {
-        %B = ashr i8 %A, 7              ; <i8> [#uses=1]
-        ;; false
-        %C = icmp eq i8 %B, 123         ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test21(i8 %A) {
-        %B = shl i8 %A, 4               ; <i8> [#uses=1]
-        %C = icmp eq i8 %B, -128                ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i1 @test22(i8 %A) {
-        %B = shl i8 %A, 4               ; <i8> [#uses=1]
-        %C = icmp eq i8 %B, 0           ; <i1> [#uses=1]
-        ret i1 %C
-}
-
-define i8 @test23(i32 %A) {
-        ;; casts not needed
-        %B = shl i32 %A, 24             ; <i32> [#uses=1]
-        %C = ashr i32 %B, 24            ; <i32> [#uses=1]
-        %D = trunc i32 %C to i8         ; <i8> [#uses=1]
-        ret i8 %D
-}
-
-define i8 @test24(i8 %X) {
-        %Y = and i8 %X, -5              ; <i8> [#uses=1]
-        %Z = shl i8 %Y, 5               ; <i8> [#uses=1]
-        %Q = ashr i8 %Z, 5              ; <i8> [#uses=1]
-        ret i8 %Q
-}
-
-define i32 @test25(i32 %tmp.2, i32 %AA) {
-        %x = lshr i32 %AA, 17           ; <i32> [#uses=1]
-        %tmp.3 = lshr i32 %tmp.2, 17            ; <i32> [#uses=1]
-        %tmp.5 = add i32 %tmp.3, %x             ; <i32> [#uses=1]
-        %tmp.6 = shl i32 %tmp.5, 17             ; <i32> [#uses=1]
-        ret i32 %tmp.6
-}
-
-;; handle casts between shifts.
-define i32 @test26(i32 %A) {
-        %B = lshr i32 %A, 1             ; <i32> [#uses=1]
-        %C = bitcast i32 %B to i32              ; <i32> [#uses=1]
-        %D = shl i32 %C, 1              ; <i32> [#uses=1]
-        ret i32 %D
-}
-
-
-define i1 @test27(i32 %x) nounwind {
-  %y = lshr i32 %x, 3
-  %z = trunc i32 %y to i1
-  ret i1 %z
-}
- 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shl-icmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shl-icmp.ll
deleted file mode 100644
index 234c40b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shl-icmp.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -stats -disable-output |& \
-; RUN:   grep {Number of insts combined} | grep 5
-
-define i8 @t1(i8 zeroext %x, i8 zeroext %y) zeroext nounwind {
-entry:
-	%tmp1 = lshr i8 %x, 7
-	%cond1 = icmp ne i8 %tmp1, 0
-	br i1 %cond1, label %bb1, label %bb2
-
-bb1:
-	ret i8 %tmp1
-
-bb2:
-        %tmp2 = add i8 %tmp1, %y
-	ret i8 %tmp2
-}
-
-define i8 @t2(i8 zeroext %x) zeroext nounwind {
-entry:
-	%tmp1 = lshr i8 %x, 7
-	%cond1 = icmp ne i8 %tmp1, 0
-	br i1 %cond1, label %bb1, label %bb2
-
-bb1:
-	ret i8 0
-
-bb2:
-	ret i8 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shl-trunc.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shl-trunc.ll
deleted file mode 100644
index ffef298..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shl-trunc.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep shl
-
-define i1 @test(i32 %X, i8 %A) {
-        %shift.upgrd.1 = zext i8 %A to i32              ; <i32> [#uses=1]
-        %B = lshr i32 %X, %shift.upgrd.1                ; <i32> [#uses=1]
-        %D = trunc i32 %B to i1         ; <i1> [#uses=1]
-        ret i1 %D
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shufflemask-undef.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shufflemask-undef.ll
deleted file mode 100644
index a9e8d34..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shufflemask-undef.ll
+++ /dev/null
@@ -1,109 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {shufflevector.\*i32 8}
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9"
-	%struct.ActiveTextureTargets = type { i64, i64, i64, i64, i64, i64 }
-	%struct.AlphaTest = type { float, i16, i8, i8 }
-	%struct.ArrayRange = type { i8, i8, i8, i8 }
-	%struct.BlendMode = type { i16, i16, i16, i16, %struct.IColor4, i16, i16, i8, i8, i8, i8 }
-	%struct.ClearColor = type { double, %struct.IColor4, %struct.IColor4, float, i32 }
-	%struct.ClipPlane = type { i32, [6 x %struct.IColor4] }
-	%struct.ColorBuffer = type { i16, i8, i8, [8 x i16], [0 x i32] }
-	%struct.ColorMatrix = type { [16 x float]*, %struct.ImagingColorScale }
-	%struct.Convolution = type { %struct.IColor4, %struct.ImagingColorScale, i16, i16, [0 x i32], float*, i32, i32 }
-	%struct.DepthTest = type { i16, i16, i8, i8, i8, i8, double, double }
-	%struct.FixedFunction = type { %struct.PPStreamToken* }
-	%struct.FogMode = type { %struct.IColor4, float, float, float, float, float, i16, i16, i16, i8, i8 }
-	%struct.HintMode = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
-	%struct.Histogram = type { %struct.ProgramLimits*, i32, i16, i8, i8 }
-	%struct.ImagingColorScale = type { %struct.TCoord2, %struct.TCoord2, %struct.TCoord2, %struct.TCoord2 }
-	%struct.ImagingSubset = type { %struct.Convolution, %struct.Convolution, %struct.Convolution, %struct.ColorMatrix, %struct.Minmax, %struct.Histogram, %struct.ImagingColorScale, %struct.ImagingColorScale, %struct.ImagingColorScale, %struct.ImagingColorScale, i32, [0 x i32] }
-	%struct.Light = type { %struct.IColor4, %struct.IColor4, %struct.IColor4, %struct.IColor4, %struct.PointLineLimits, float, float, float, float, float, %struct.PointLineLimits, float, %struct.PointLineLimits, float, %struct.PointLineLimits, float, float, float, float, float }
-	%struct.LightModel = type { %struct.IColor4, [8 x %struct.Light], [2 x %struct.Material], i32, i16, i16, i16, i8, i8, i8, i8, i8, i8 }
-	%struct.LightProduct = type { %struct.IColor4, %struct.IColor4, %struct.IColor4 }
-	%struct.LineMode = type { float, i32, i16, i16, i8, i8, i8, i8 }
-	%struct.LogicOp = type { i16, i8, i8 }
-	%struct.MaskMode = type { i32, [3 x i32], i8, i8, i8, i8, i8, i8, i8, i8 }
-	%struct.Material = type { %struct.IColor4, %struct.IColor4, %struct.IColor4, %struct.IColor4, float, float, float, float, [8 x %struct.LightProduct], %struct.IColor4, [8 x i32] }
-	%struct.Minmax = type { %struct.MinmaxTable*, i16, i8, i8, [0 x i32] }
-	%struct.MinmaxTable = type { %struct.IColor4, %struct.IColor4 }
-	%struct.Mipmaplevel = type { [4 x i32], [4 x i32], [4 x float], [4 x i32], i32, i32, float*, i8*, i16, i16, i16, i16, [2 x float] }
-	%struct.Multisample = type { float, i8, i8, i8, i8, i8, i8, i8, i8 }
-	%struct.PipelineProgramState = type { i8, i8, i8, i8, [0 x i32], %struct.IColor4* }
-	%struct.PixelMap = type { i32*, float*, float*, float*, float*, float*, float*, float*, float*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.PixelMode = type { float, float, %struct.PixelStore, %struct.PixelTransfer, %struct.PixelMap, %struct.ImagingSubset, i32, i32 }
-	%struct.PixelPack = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8 }
-	%struct.PixelStore = type { %struct.PixelPack, %struct.PixelPack }
-	%struct.PixelTransfer = type { float, float, float, float, float, float, float, float, float, float, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float }
-	%struct.PluginBufferData = type { i32 }
-	%struct.PointLineLimits = type { float, float, float }
-	%struct.PointMode = type { float, float, float, float, %struct.PointLineLimits, float, i8, i8, i8, i8, i16, i16, i32, i16, i16 }
-	%struct.PolygonMode = type { [128 x i8], float, float, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8 }
-	%struct.ProgramLimits = type { i32, i32, i32, i32 }
-	%struct.RegisterCombiners = type { i8, i8, i8, i8, i32, [2 x %struct.IColor4], [8 x %struct.RegisterCombinersPerStageState], %struct.RegisterCombinersFinalStageState }
-	%struct.RegisterCombinersFinalStageState = type { i8, i8, i8, i8, [7 x %struct.RegisterCombinersPerVariableState] }
-	%struct.RegisterCombinersPerPortionState = type { [4 x %struct.RegisterCombinersPerVariableState], i8, i8, i8, i8, i16, i16, i16, i16, i16, i16 }
-	%struct.RegisterCombinersPerStageState = type { [2 x %struct.RegisterCombinersPerPortionState], [2 x %struct.IColor4] }
-	%struct.RegisterCombinersPerVariableState = type { i16, i16, i16, i16 }
-	%struct.SWRSurfaceRec = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i8*, [4 x i8*], i32 }
-	%struct.ScissorTest = type { %struct.ProgramLimits, i8, i8, i8, i8 }
-	%struct.State = type <{ i16, i16, i16, i16, i32, i32, [256 x %struct.IColor4], [128 x %struct.IColor4], %struct.Viewport, %struct.Transform, %struct.LightModel, %struct.ActiveTextureTargets, %struct.AlphaTest, %struct.BlendMode, %struct.ClearColor, %struct.ColorBuffer, %struct.DepthTest, %struct.ArrayRange, %struct.FogMode, %struct.HintMode, %struct.LineMode, %struct.LogicOp, %struct.MaskMode, %struct.PixelMode, %struct.PointMode, %struct.PolygonMode, %struct.ScissorTest, i32, %struct.StencilTest, [8 x %struct.TextureMode], [16 x %struct.TextureImageMode], %struct.ArrayRange, [8 x %struct.TextureCoordGen], %struct.ClipPlane, %struct.Multisample, %struct.RegisterCombiners, %struct.ArrayRange, %struct.ArrayRange, [3 x %struct.PipelineProgramState], %struct.ArrayRange, %struct.TransformFeedback, i32*, %struct.FixedFunction, [3 x i32], [3 x i32] }>
-	%struct.StencilTest = type { [3 x { i32, i32, i16, i16, i16, i16 }], i32, [4 x i8] }
-	%struct.TextureCoordGen = type { { i16, i16, %struct.IColor4, %struct.IColor4 }, { i16, i16, %struct.IColor4, %struct.IColor4 }, { i16, i16, %struct.IColor4, %struct.IColor4 }, { i16, i16, %struct.IColor4, %struct.IColor4 }, i8, i8, i8, i8 }
-	%struct.TextureGeomState = type { i16, i16, i16, i16, i16, i8, i8, i8, i8, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i16], [6 x i16] }
-	%struct.TextureImageMode = type { float }
-	%struct.TextureLevel = type { i32, i32, i16, i16, i16, i8, i8, i16, i16, i16, i16, i8* }
-	%struct.TextureMode = type { %struct.IColor4, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, float, float, i16, i16, i16, i16, i16, i16, [4 x i16], i8, i8, i8, i8, [3 x float], [4 x float], float, float }
-	%struct.TextureParamState = type { i16, i16, i16, i16, i16, i16, %struct.IColor4, float, float, float, float, i16, i16, i16, i16, float, i16, i8, i8, i32, i8* }
-	%struct.TextureRec = type { [4 x float], %struct.TextureState*, %struct.Mipmaplevel*, %struct.Mipmaplevel*, float, float, float, float, i8, i8, i8, i8, i16, i16, i16, i16, i32, float, [2 x %struct.PPStreamToken] }
-	%struct.TextureState = type { i16, i8, i8, i16, i16, float, i32, %struct.SWRSurfaceRec*, %struct.TextureParamState, %struct.TextureGeomState, [0 x i32], i8*, i32, %struct.TextureLevel, [1 x [15 x %struct.TextureLevel]] }
-	%struct.Transform = type <{ [24 x [16 x float]], [24 x [16 x float]], [16 x float], float, float, float, float, float, i8, i8, i8, i8, i32, i32, i32, i16, i16, i8, i8, i8, i8, i32 }>
-	%struct.TransformFeedback = type { i8, i8, i8, i8, [0 x i32], [16 x i32], [16 x i32] }
-	%struct.Viewport = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, double, double, i32, i32, i32, i32, float, float, float, float }
-	%struct.IColor4 = type { float, float, float, float }
-	%struct.TCoord2 = type { float, float }
-	%struct.VMGPStack = type { [6 x <4 x float>*], <4 x float>*, i32, i32, <4 x float>*, <4 x float>**, i32, i32, i32, i32, i32, i32 }
-	%struct.VMTextures = type { [16 x %struct.TextureRec*] }
-	%struct.PPStreamToken = type { { i16, i16, i32 } }
-	%struct._VMConstants = type { <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, float, float, float, float, float, float, float, float, float, float, float, float, [256 x float], [528 x i8], { void (i8*, i8*, i32, i8*)*, float (float)*, float (float)*, float (float)*, i32 (float)* } }
-
-define i32 @foo(%struct.State* %dst, <4 x float>* %prgrm, <4 x float>** %buffs, %struct._VMConstants* %cnstn, %struct.PPStreamToken* %pstrm, %struct.PluginBufferData* %gpctx, %struct.VMTextures* %txtrs, %struct.VMGPStack* %gpstk) nounwind {
-bb266.i:
-	getelementptr <4 x float>* null, i32 11		; <<4 x float>*>:0 [#uses=1]
-	load <4 x float>* %0, align 16		; <<4 x float>>:1 [#uses=1]
-	shufflevector <4 x float> %1, <4 x float> undef, <4 x i32> < i32 0, i32 1, i32 1, i32 1 >		; <<4 x float>>:2 [#uses=1]
-	shufflevector <4 x float> %2, <4 x float> undef, <4 x i32> < i32 0, i32 4, i32 1, i32 5 >		; <<4 x float>>:3 [#uses=1]
-	shufflevector <4 x float> undef, <4 x float> undef, <4 x i32> < i32 0, i32 4, i32 1, i32 5 >		; <<4 x float>>:4 [#uses=1]
-	shufflevector <4 x float> %4, <4 x float> %3, <4 x i32> < i32 6, i32 7, i32 2, i32 3 >		; <<4 x float>>:5 [#uses=1]
-	fmul <4 x float> %5, zeroinitializer		; <<4 x float>>:6 [#uses=2]
-	fmul <4 x float> %6, %6		; <<4 x float>>:7 [#uses=1]
-	fadd <4 x float> zeroinitializer, %7		; <<4 x float>>:8 [#uses=1]
-	call <4 x float> @llvm.x86.sse.max.ps( <4 x float> zeroinitializer, <4 x float> %8 ) nounwind readnone		; <<4 x float>>:9 [#uses=1]
-	%phitmp40 = bitcast <4 x float> %9 to <4 x i32>		; <<4 x i32>> [#uses=1]
-	%tmp4109.i = and <4 x i32> %phitmp40, < i32 8388607, i32 8388607, i32 8388607, i32 8388607 >		; <<4 x i32>> [#uses=1]
-	%tmp4116.i = or <4 x i32> %tmp4109.i, < i32 1065353216, i32 1065353216, i32 1065353216, i32 1065353216 >		; <<4 x i32>> [#uses=1]
-	%tmp4117.i = bitcast <4 x i32> %tmp4116.i to <4 x float>		; <<4 x float>> [#uses=1]
-	fadd <4 x float> %tmp4117.i, zeroinitializer		; <<4 x float>>:10 [#uses=1]
-	fmul <4 x float> %10, < float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float 5.000000e-01 >		; <<4 x float>>:11 [#uses=1]
-	call <4 x float> @llvm.x86.sse.max.ps( <4 x float> %11, <4 x float> zeroinitializer ) nounwind readnone		; <<4 x float>>:12 [#uses=1]
-	call <4 x float> @llvm.x86.sse.min.ps( <4 x float> %12, <4 x float> zeroinitializer ) nounwind readnone		; <<4 x float>>:13 [#uses=1]
-	%tmp4170.i = call <4 x float> @llvm.x86.sse.cmp.ps( <4 x float> %13, <4 x float> zeroinitializer, i8 2 ) nounwind		; <<4 x float>> [#uses=1]
-	bitcast <4 x float> %tmp4170.i to <16 x i8>		; <<16 x i8>>:14 [#uses=1]
-	call i32 @llvm.x86.sse2.pmovmskb.128( <16 x i8> %14 ) nounwind readnone		; <i32>:15 [#uses=1]
-	icmp eq i32 %15, 0		; <i1>:16 [#uses=1]
-	br i1 %16, label %bb5574.i, label %bb4521.i
-
-bb4521.i:		; preds = %bb266.i
-	unreachable
-
-bb5574.i:		; preds = %bb266.i
-	unreachable
-}
-
-declare <4 x float> @llvm.x86.sse.cmp.ps(<4 x float>, <4 x float>, i8) nounwind readnone
-
-declare i32 @llvm.x86.sse2.pmovmskb.128(<16 x i8>) nounwind readnone
-
-declare <4 x float> @llvm.x86.sse.max.ps(<4 x float>, <4 x float>) nounwind readnone
-
-declare <4 x float> @llvm.x86.sse.min.ps(<4 x float>, <4 x float>) nounwind readnone
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/shufflevec-constant.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/shufflevec-constant.ll
deleted file mode 100644
index f153a48..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/shufflevec-constant.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep "2 x float"
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9"
-
-define <4 x float> @__inff4() nounwind readnone {
-entry:
-	%tmp14 = extractelement <1 x double> bitcast (<2 x float> <float 0x7FF0000000000000, float 0x7FF0000000000000> to <1 x double>), i32 0		; <double> [#uses=1]
-	%tmp4 = bitcast double %tmp14 to i64		; <i64> [#uses=1]
-	%tmp3 = bitcast i64 %tmp4 to <2 x float>		; <<2 x float>> [#uses=1]
-	%tmp8 = shufflevector <2 x float> %tmp3, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>		; <<4 x float>> [#uses=1]
-	%tmp9 = shufflevector <4 x float> zeroinitializer, <4 x float> %tmp8, <4 x i32> <i32 0, i32 1, i32 4, i32 5>		; <<4 x float>> [#uses=0]
-	ret <4 x float> %tmp9
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/signed-comparison.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/signed-comparison.ll
deleted file mode 100644
index 86e07ec..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/signed-comparison.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: not grep zext %t
-; RUN: not grep slt %t
-; RUN: grep {icmp ult} %t
-
-; Instcombine should convert the zext+slt into a simple ult.
-
-define void @foo(double* %p) nounwind {
-entry:
-	br label %bb
-
-bb:
-	%indvar = phi i64 [ 0, %entry ], [ %indvar.next, %bb ]
-	%t0 = and i64 %indvar, 65535
-	%t1 = getelementptr double* %p, i64 %t0
-	%t2 = load double* %t1, align 8
-	%t3 = fmul double %t2, 2.2
-	store double %t3, double* %t1, align 8
-	%i.04 = trunc i64 %indvar to i16
-	%t4 = add i16 %i.04, 1
-	%t5 = zext i16 %t4 to i32
-	%t6 = icmp slt i32 %t5, 500
-	%indvar.next = add i64 %indvar, 1
-	br i1 %t6, label %bb, label %return
-
-return:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/signext.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/signext.ll
deleted file mode 100644
index 7166626..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/signext.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep {(and\|xor\|add\|shl\|shr)}
-; END.
-
-define i32 @test1(i32 %x) {
-        %tmp.1 = and i32 %x, 65535              ; <i32> [#uses=1]
-        %tmp.2 = xor i32 %tmp.1, -32768         ; <i32> [#uses=1]
-        %tmp.3 = add i32 %tmp.2, 32768          ; <i32> [#uses=1]
-        ret i32 %tmp.3
-}
-
-define i32 @test2(i32 %x) {
-        %tmp.1 = and i32 %x, 65535              ; <i32> [#uses=1]
-        %tmp.2 = xor i32 %tmp.1, 32768          ; <i32> [#uses=1]
-        %tmp.3 = add i32 %tmp.2, -32768         ; <i32> [#uses=1]
-        ret i32 %tmp.3
-}
-
-define i32 @test3(i16 %P) {
-        %tmp.1 = zext i16 %P to i32             ; <i32> [#uses=1]
-        %tmp.4 = xor i32 %tmp.1, 32768          ; <i32> [#uses=1]
-        %tmp.5 = add i32 %tmp.4, -32768         ; <i32> [#uses=1]
-        ret i32 %tmp.5
-}
-
-define i32 @test4(i16 %P) {
-        %tmp.1 = zext i16 %P to i32             ; <i32> [#uses=1]
-        %tmp.4 = xor i32 %tmp.1, 32768          ; <i32> [#uses=1]
-        %tmp.5 = add i32 %tmp.4, -32768         ; <i32> [#uses=1]
-        ret i32 %tmp.5
-}
-
-define i32 @test5(i32 %x) {
-        %tmp.1 = and i32 %x, 254                ; <i32> [#uses=1]
-        %tmp.2 = xor i32 %tmp.1, 128            ; <i32> [#uses=1]
-        %tmp.3 = add i32 %tmp.2, -128           ; <i32> [#uses=1]
-        ret i32 %tmp.3
-}
-
-define i32 @test6(i32 %x) {
-        %tmp.2 = shl i32 %x, 16         ; <i32> [#uses=1]
-        %tmp.4 = ashr i32 %tmp.2, 16            ; <i32> [#uses=1]
-        ret i32 %tmp.4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/simplify-demanded-bits-pointer.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/simplify-demanded-bits-pointer.ll
deleted file mode 100644
index ac63534..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/simplify-demanded-bits-pointer.ll
+++ /dev/null
@@ -1,84 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine -disable-output
-
-; SimplifyDemandedBits should cope with pointer types.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-	%struct.VEC_rtx_base = type { i32, i32, [1 x %struct.rtx_def*] }
-	%struct.VEC_rtx_gc = type { %struct.VEC_rtx_base }
-	%struct.block_symbol = type { [3 x %struct.rtunion], %struct.object_block*, i64 }
-	%struct.object_block = type { %struct.section*, i32, i64, %struct.VEC_rtx_gc*, %struct.VEC_rtx_gc* }
-	%struct.omp_clause_subcode = type { i32 }
-	%struct.rtunion = type { i8* }
-	%struct.rtx_def = type { i16, i8, i8, %struct.u }
-	%struct.section = type { %struct.unnamed_section }
-	%struct.u = type { %struct.block_symbol }
-	%struct.unnamed_section = type { %struct.omp_clause_subcode, void (i8*)*, i8*, %struct.section* }
-
-define fastcc void @cse_insn(%struct.rtx_def* %insn, %struct.rtx_def* %libcall_insn) nounwind {
-entry:
-	br i1 undef, label %bb43, label %bb88
-
-bb43:		; preds = %entry
-	br label %bb88
-
-bb88:		; preds = %bb43, %entry
-	br i1 undef, label %bb95, label %bb107
-
-bb95:		; preds = %bb88
-	unreachable
-
-bb107:		; preds = %bb88
-	%0 = load i16* undef, align 8		; <i16> [#uses=1]
-	%1 = icmp eq i16 %0, 38		; <i1> [#uses=1]
-	%src_eqv_here.0 = select i1 %1, %struct.rtx_def* null, %struct.rtx_def* null		; <%struct.rtx_def*> [#uses=1]
-	br i1 undef, label %bb127, label %bb125
-
-bb125:		; preds = %bb107
-	br i1 undef, label %bb127, label %bb126
-
-bb126:		; preds = %bb125
-	br i1 undef, label %bb129, label %bb133
-
-bb127:		; preds = %bb125, %bb107
-	unreachable
-
-bb129:		; preds = %bb126
-	br label %bb133
-
-bb133:		; preds = %bb129, %bb126
-	br i1 undef, label %bb134, label %bb146
-
-bb134:		; preds = %bb133
-	unreachable
-
-bb146:		; preds = %bb133
-	br i1 undef, label %bb180, label %bb186
-
-bb180:		; preds = %bb146
-	%2 = icmp eq %struct.rtx_def* null, null		; <i1> [#uses=1]
-	%3 = zext i1 %2 to i8		; <i8> [#uses=1]
-	%4 = icmp ne %struct.rtx_def* %src_eqv_here.0, null		; <i1> [#uses=1]
-	%5 = zext i1 %4 to i8		; <i8> [#uses=1]
-	%toBool181 = icmp ne i8 %3, 0		; <i1> [#uses=1]
-	%toBool182 = icmp ne i8 %5, 0		; <i1> [#uses=1]
-	%6 = and i1 %toBool181, %toBool182		; <i1> [#uses=1]
-	%7 = zext i1 %6 to i8		; <i8> [#uses=1]
-	%toBool183 = icmp ne i8 %7, 0		; <i1> [#uses=1]
-	br i1 %toBool183, label %bb184, label %bb186
-
-bb184:		; preds = %bb180
-	br i1 undef, label %bb185, label %bb186
-
-bb185:		; preds = %bb184
-	br label %bb186
-
-bb186:		; preds = %bb185, %bb184, %bb180, %bb146
-	br i1 undef, label %bb190, label %bb195
-
-bb190:		; preds = %bb186
-	unreachable
-
-bb195:		; preds = %bb186
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/sink_instruction.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/sink_instruction.ll
deleted file mode 100644
index cb8a090..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/sink_instruction.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   %prcontext div 1 | grep ret
-
-;; This tests that the instructions in the entry blocks are sunk into each
-;; arm of the 'if'.
-
-define i32 @foo(i1 %C, i32 %A, i32 %B) {
-entry:
-        %tmp.2 = sdiv i32 %A, %B                ; <i32> [#uses=1]
-        %tmp.9 = add i32 %B, %A         ; <i32> [#uses=1]
-        br i1 %C, label %then, label %endif
-
-then:           ; preds = %entry
-        ret i32 %tmp.9
-
-endif:          ; preds = %entry
-        ret i32 %tmp.2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/sitofp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/sitofp.ll
deleted file mode 100644
index 2bf7385..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/sitofp.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep itofp
-
-define i1 @test1(i8 %A) {
-  %B = sitofp i8 %A to double
-  %C = fcmp ult double %B, 128.0
-  ret i1 %C  ;  True!
-}
-define i1 @test2(i8 %A) {
-  %B = sitofp i8 %A to double
-  %C = fcmp ugt double %B, -128.1
-  ret i1 %C  ;  True!
-}
-
-define i1 @test3(i8 %A) {
-  %B = sitofp i8 %A to double
-  %C = fcmp ule double %B, 127.0
-  ret i1 %C  ;  true!
-}
-
-define i1 @test4(i8 %A) {
-  %B = sitofp i8 %A to double
-  %C = fcmp ult double %B, 127.0
-  ret i1 %C  ;  A != 127
-}
-
-define i32 @test5(i32 %A) {
-  %B = sitofp i32 %A to double
-  %C = fptosi double %B to i32
-  %D = uitofp i32 %C to double
-  %E = fptoui double %D to i32
-  ret i32 %E
-}
-
-define i32 @test6(i32 %A) {
-	%B = and i32 %A, 7		; <i32> [#uses=1]
-	%C = and i32 %A, 32		; <i32> [#uses=1]
-	%D = sitofp i32 %B to double		; <double> [#uses=1]
-	%E = sitofp i32 %C to double		; <double> [#uses=1]
-	%F = fadd double %D, %E		; <double> [#uses=1]
-	%G = fptosi double %F to i32		; <i32> [#uses=1]
-	ret i32 %G
-}
-
-define i32 @test7(i32 %a) nounwind {
-	%b = sitofp i32 %a to double		; <double> [#uses=1]
-	%c = fptoui double %b to i32		; <i32> [#uses=1]
-	ret i32 %c
-}
-
-define i32 @test8(i32 %a) nounwind {
-	%b = uitofp i32 %a to double		; <double> [#uses=1]
-	%c = fptosi double %b to i32		; <i32> [#uses=1]
-	ret i32 %c
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/srem-simplify-bug.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/srem-simplify-bug.ll
deleted file mode 100644
index cdf5202..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/srem-simplify-bug.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 false}
-; PR2276
-
-define i1 @f(i32 %x) {
-  %A = or i32 %x, 1
-  %B = srem i32 %A, 1
-  %C = icmp ne i32 %B, 0
-  ret i1 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/srem.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/srem.ll
deleted file mode 100644
index 864775a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/srem.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep srem
-
-define i64 @foo(i64 %x1, i64 %y2) {
-	%r = sdiv i64 %x1, %y2
-	%r7 = mul i64 %r, %y2
-	%r8 = sub i64 %x1, %r7
-	ret i64 %r8
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/srem1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/srem1.ll
deleted file mode 100644
index ee59d3e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/srem1.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine
-; PR2670
-
- at g_127 = external global i32		; <i32*> [#uses=1]
-
-define i32 @func_56(i32 %p_58, i32 %p_59, i32 %p_61, i16 signext %p_62) nounwind {
-entry:
-	%call = call i32 (...)* @rshift_s_s( i32 %p_61, i32 1 )		; <i32> [#uses=1]
-	%conv = sext i32 %call to i64		; <i64> [#uses=1]
-	%or = or i64 -1734012817166602727, %conv		; <i64> [#uses=1]
-	%rem = srem i64 %or, 1		; <i64> [#uses=1]
-	%cmp = icmp eq i64 %rem, 1		; <i1> [#uses=1]
-	%cmp.ext = zext i1 %cmp to i32		; <i32> [#uses=1]
-	store i32 %cmp.ext, i32* @g_127
-	ret i32 undef
-}
-
-declare i32 @rshift_s_s(...)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/stack-overalign.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/stack-overalign.ll
deleted file mode 100644
index 45bdc2e..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/stack-overalign.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {align 32} | count 1
-
-; It's tempting to have an instcombine in which the src pointer of a
-; memcpy is aligned up to the alignment of the destination, however
-; there are pitfalls. If the src is an alloca, aligning it beyond what
-; the target's stack pointer is aligned at will require dynamic
-; stack realignment, which can require functions that don't otherwise
-; need a frame pointer to need one.
-;
-; Abstaining from this transform is not the only way to approach this
-; issue. Some late phase could be smart enough to reduce alloca
-; alignments when they are greater than they need to be. Or, codegen
-; could do dynamic alignment for just the one alloca, and leave the
-; main stack pointer at its standard alignment.
-
- at dst = global [1024 x i8] zeroinitializer, align 32
-
-define void @foo() nounwind {
-entry:
-	%src = alloca [1024 x i8], align 1
-	%src1 = getelementptr [1024 x i8]* %src, i32 0, i32 0
-	call void @llvm.memcpy.i32(i8* getelementptr ([1024 x i8]* @dst, i32 0, i32 0), i8* %src1, i32 1024, i32 1)
-	call void @frob(i8* %src1) nounwind
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind
-
-declare void @frob(i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/stacksaverestore.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/stacksaverestore.ll
deleted file mode 100644
index c82a425..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/stacksaverestore.ll
+++ /dev/null
@@ -1,56 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {call.*stackrestore} | count 1
-
-declare i8* @llvm.stacksave()
-declare void @llvm.stackrestore(i8*)
-
-;; Test that llvm.stackrestore is removed when possible.
-define i32* @test1(i32 %P) {
-	%tmp = call i8* @llvm.stacksave( )
-	call void @llvm.stackrestore( i8* %tmp ) ;; not restoring anything
-	%A = alloca i32, i32 %P		
-	ret i32* %A
-}
-
-define void @test2(i8* %X) {
-	call void @llvm.stackrestore( i8* %X )  ;; no allocas before return.
-	ret void
-}
-
-define void @foo(i32 %size) nounwind  {
-entry:
-	%tmp118124 = icmp sgt i32 %size, 0		; <i1> [#uses=1]
-	br i1 %tmp118124, label %bb.preheader, label %return
-
-bb.preheader:		; preds = %entry
-	%tmp25 = add i32 %size, -1		; <i32> [#uses=1]
-	%tmp125 = icmp slt i32 %size, 1		; <i1> [#uses=1]
-	%smax = select i1 %tmp125, i32 1, i32 %size		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %bb.preheader
-	%i.0.reg2mem.0 = phi i32 [ 0, %bb.preheader ], [ %indvar.next, %bb ]		; <i32> [#uses=2]
-	%tmp = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%tmp23 = alloca i8, i32 %size		; <i8*> [#uses=2]
-	%tmp27 = getelementptr i8* %tmp23, i32 %tmp25		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp27, align 1
-	%tmp28 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%tmp52 = alloca i8, i32 %size		; <i8*> [#uses=1]
-	%tmp53 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%tmp77 = alloca i8, i32 %size		; <i8*> [#uses=1]
-	%tmp78 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%tmp102 = alloca i8, i32 %size		; <i8*> [#uses=1]
-	call void @bar( i32 %i.0.reg2mem.0, i8* %tmp23, i8* %tmp52, i8* %tmp77, i8* %tmp102, i32 %size ) nounwind 
-	call void @llvm.stackrestore( i8* %tmp78 )
-	call void @llvm.stackrestore( i8* %tmp53 )
-	call void @llvm.stackrestore( i8* %tmp28 )
-	call void @llvm.stackrestore( i8* %tmp )
-	%indvar.next = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, %smax		; <i1> [#uses=1]
-	br i1 %exitcond, label %return, label %bb
-
-return:		; preds = %bb, %entry
-	ret void
-}
-
-declare void @bar(i32, i8*, i8*, i8*, i8*, i32)
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/store-merge.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/store-merge.ll
deleted file mode 100644
index 7b117ca..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/store-merge.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    grep {ret i32 %.toremerge} | count 2
-;; Simple sinking tests
-
-; "if then else"
-define i32 @test1(i1 %C) {
-	%A = alloca i32
-        br i1 %C, label %Cond, label %Cond2
-
-Cond:
-        store i32 -987654321, i32* %A
-        br label %Cont
-
-Cond2:
-	store i32 47, i32* %A
-	br label %Cont
-
-Cont:
-	%V = load i32* %A
-	ret i32 %V
-}
-
-; "if then"
-define i32 @test2(i1 %C) {
-	%A = alloca i32
-	store i32 47, i32* %A
-        br i1 %C, label %Cond, label %Cont
-
-Cond:
-        store i32 -987654321, i32* %A
-        br label %Cont
-
-Cont:
-	%V = load i32* %A
-	ret i32 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/store.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/store.ll
deleted file mode 100644
index 337b2cc..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/store.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep -v {store.*,.*null} | not grep store
-
-define void @test1(i32* %P) {
-        store i32 undef, i32* %P
-        store i32 123, i32* undef
-        store i32 124, i32* null
-        ret void
-}
-
-define void @test2(i32* %P) {
-        %X = load i32* %P               ; <i32> [#uses=1]
-        %Y = add i32 %X, 0              ; <i32> [#uses=1]
-        store i32 %Y, i32* %P
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/sub.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/sub.ll
deleted file mode 100644
index 1ab4eaf..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/sub.ll
+++ /dev/null
@@ -1,148 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep -v {sub i32 %Cok, %Bok} | grep -v {sub i32 0, %Aok} | not grep sub
-
-define i32 @test1(i32 %A) {
-	%B = sub i32 %A, %A		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i32 @test2(i32 %A) {
-	%B = sub i32 %A, 0		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i32 @test3(i32 %A) {
-	%B = sub i32 0, %A		; <i32> [#uses=1]
-	%C = sub i32 0, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test4(i32 %A, i32 %x) {
-	%B = sub i32 0, %A		; <i32> [#uses=1]
-	%C = sub i32 %x, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test5(i32 %A, i32 %Bok, i32 %Cok) {
-	%D = sub i32 %Bok, %Cok		; <i32> [#uses=1]
-	%E = sub i32 %A, %D		; <i32> [#uses=1]
-	ret i32 %E
-}
-
-define i32 @test6(i32 %A, i32 %B) {
-	%C = and i32 %A, %B		; <i32> [#uses=1]
-	%D = sub i32 %A, %C		; <i32> [#uses=1]
-	ret i32 %D
-}
-
-define i32 @test7(i32 %A) {
-	%B = sub i32 -1, %A		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i32 @test8(i32 %A) {
-	%B = mul i32 9, %A		; <i32> [#uses=1]
-	%C = sub i32 %B, %A		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test9(i32 %A) {
-	%B = mul i32 3, %A		; <i32> [#uses=1]
-	%C = sub i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test10(i32 %A, i32 %B) {
-	%C = sub i32 0, %A		; <i32> [#uses=1]
-	%D = sub i32 0, %B		; <i32> [#uses=1]
-	%E = mul i32 %C, %D		; <i32> [#uses=1]
-	ret i32 %E
-}
-
-define i32 @test10.upgrd.1(i32 %A) {
-	%C = sub i32 0, %A		; <i32> [#uses=1]
-	%E = mul i32 %C, 7		; <i32> [#uses=1]
-	ret i32 %E
-}
-
-define i1 @test11(i8 %A, i8 %B) {
-	%C = sub i8 %A, %B		; <i8> [#uses=1]
-	%cD = icmp ne i8 %C, 0		; <i1> [#uses=1]
-	ret i1 %cD
-}
-
-define i32 @test12(i32 %A) {
-	%B = ashr i32 %A, 31		; <i32> [#uses=1]
-	%C = sub i32 0, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test13(i32 %A) {
-	%B = lshr i32 %A, 31		; <i32> [#uses=1]
-	%C = sub i32 0, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test14(i32 %A) {
-	%B = lshr i32 %A, 31		; <i32> [#uses=1]
-	%C = bitcast i32 %B to i32		; <i32> [#uses=1]
-	%D = sub i32 0, %C		; <i32> [#uses=1]
-	ret i32 %D
-}
-
-define i32 @test15(i32 %A, i32 %B) {
-	%C = sub i32 0, %A		; <i32> [#uses=1]
-	%D = srem i32 %B, %C		; <i32> [#uses=1]
-	ret i32 %D
-}
-
-define i32 @test16(i32 %A) {
-	%X = sdiv i32 %A, 1123		; <i32> [#uses=1]
-	%Y = sub i32 0, %X		; <i32> [#uses=1]
-	ret i32 %Y
-}
-
-; Can't fold subtract here because negation it might oveflow.
-; PR3142
-define i32 @test17(i32 %Aok) {
-	%B = sub i32 0, %Aok		; <i32> [#uses=1]
-	%C = sdiv i32 %B, 1234		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i64 @test18(i64 %Y) {
-	%tmp.4 = shl i64 %Y, 2		; <i64> [#uses=1]
-	%tmp.12 = shl i64 %Y, 2		; <i64> [#uses=1]
-	%tmp.8 = sub i64 %tmp.4, %tmp.12		; <i64> [#uses=1]
-	ret i64 %tmp.8
-}
-
-define i32 @test19(i32 %X, i32 %Y) {
-	%Z = sub i32 %X, %Y		; <i32> [#uses=1]
-	%Q = add i32 %Z, %Y		; <i32> [#uses=1]
-	ret i32 %Q
-}
-
-define i1 @test20(i32 %g, i32 %h) {
-	%tmp.2 = sub i32 %g, %h		; <i32> [#uses=1]
-	%tmp.4 = icmp ne i32 %tmp.2, %g		; <i1> [#uses=1]
-	ret i1 %tmp.4
-}
-
-define i1 @test21(i32 %g, i32 %h) {
-	%tmp.2 = sub i32 %g, %h		; <i32> [#uses=1]
-	%tmp.4 = icmp ne i32 %tmp.2, %g		; <i1> [#uses=1]
-	ret i1 %tmp.4
-}
-
-; PR2298
-define i8 @test22(i32 %a, i32 %b) zeroext nounwind  {
-	%tmp2 = sub i32 0, %a		; <i32> [#uses=1]
-	%tmp4 = sub i32 0, %b		; <i32> [#uses=1]
-	%tmp5 = icmp eq i32 %tmp2, %tmp4		; <i1> [#uses=1]
-	%retval89 = zext i1 %tmp5 to i8		; <i8> [#uses=1]
-	ret i8 %retval89
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/trunc-mask-ext.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/trunc-mask-ext.ll
deleted file mode 100644
index 7e3d844..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/trunc-mask-ext.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t
-; RUN: not grep zext %t
-; RUN: not grep sext %t
-
-; Instcombine should be able to eliminate all of these ext casts.
-
-declare void @use(i32)
-
-define i64 @foo(i64 %a) {
-  %b = trunc i64 %a to i32
-  %c = and i32 %b, 15
-  %d = zext i32 %c to i64
-  call void @use(i32 %b)
-  ret i64 %d
-}
-define i64 @bar(i64 %a) {
-  %b = trunc i64 %a to i32
-  %c = shl i32 %b, 4
-  %q = ashr i32 %c, 4
-  %d = sext i32 %q to i64
-  call void @use(i32 %b)
-  ret i64 %d
-}
-define i64 @goo(i64 %a) {
-  %b = trunc i64 %a to i32
-  %c = and i32 %b, 8
-  %d = zext i32 %c to i64
-  call void @use(i32 %b)
-  ret i64 %d
-}
-define i64 @hoo(i64 %a) {
-  %b = trunc i64 %a to i32
-  %c = and i32 %b, 8
-  %x = xor i32 %c, 8
-  %d = zext i32 %x to i64
-  call void @use(i32 %b)
-  ret i64 %d
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/udiv-simplify-bug-0.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/udiv-simplify-bug-0.ll
deleted file mode 100644
index 5bcaa66..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/udiv-simplify-bug-0.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i64 0} | count 2
-
-define i64 @foo(i32 %x) nounwind {
-  %y = lshr i32 %x, 1
-  %r = udiv i32 %y, -1
-  %z = sext i32 %r to i64
-  ret i64 %z
-}
-define i64 @bar(i32 %x) nounwind {
-  %y = lshr i32 %x, 31
-  %r = udiv i32 %y, 3
-  %z = sext i32 %r to i64
-  ret i64 %z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/udiv-simplify-bug-1.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/udiv-simplify-bug-1.ll
deleted file mode 100644
index 0036760..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/udiv-simplify-bug-1.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis > %t1.ll
-; RUN: grep udiv %t1.ll | count 2
-; RUN: grep zext %t1.ll | count 2
-; PR2274
-
-; The udiv instructions shouldn't be optimized away, and the
-; sext instructions should be optimized to zext.
-
-define i64 @bar(i32 %x) nounwind {
-  %y = lshr i32 %x, 30
-  %r = udiv i32 %y, 3
-  %z = sext i32 %r to i64
-  ret i64 %z
-}
-define i64 @qux(i32 %x, i32 %v) nounwind {
-  %y = lshr i32 %x, 31
-  %r = udiv i32 %y, %v
-  %z = sext i32 %r to i64
-  ret i64 %z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/udiv_select_to_select_shift.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/udiv_select_to_select_shift.ll
deleted file mode 100644
index 5594e27..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/udiv_select_to_select_shift.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; Test that this transform works:
-; udiv X, (Select Cond, C1, C2) --> Select Cond, (shr X, C1), (shr X, C2)
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis -o %t
-; RUN:   not grep select %t
-; RUN:   grep lshr %t | count 2
-; RUN:   not grep udiv %t
-
-define i64 @test(i64 %X, i1 %Cond ) {
-entry:
-        %divisor1 = select i1 %Cond, i64 16, i64 8
-        %quotient1 = udiv i64 %X, %divisor1
-        %divisor2 = select i1 %Cond, i64 8, i64 0
-        %quotient2 = udiv i64 %X, %divisor2
-        %sum = add i64 %quotient1, %quotient2
-        ret i64 %sum
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/udivrem-change-width.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/udivrem-change-width.ll
deleted file mode 100644
index eb4ba66..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/udivrem-change-width.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep zext
-; PR4548
-
-define i8 @udiv_i8(i8 %a, i8 %b) nounwind {
-  %conv = zext i8 %a to i32       
-  %conv2 = zext i8 %b to i32      
-  %div = udiv i32 %conv, %conv2   
-  %conv3 = trunc i32 %div to i8   
-  ret i8 %conv3
-}
-
-define i8 @urem_i8(i8 %a, i8 %b) nounwind {
-  %conv = zext i8 %a to i32       
-  %conv2 = zext i8 %b to i32      
-  %div = urem i32 %conv, %conv2   
-  %conv3 = trunc i32 %div to i8   
-  ret i8 %conv3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/urem-simplify-bug.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/urem-simplify-bug.ll
deleted file mode 100644
index 8980e73..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/urem-simplify-bug.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {= or i32 %x, -5 }
-
- at .str = internal constant [5 x i8] c"foo\0A\00"		; <[5 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"bar\0A\00"		; <[5 x i8]*> [#uses=1]
-
-define i32 @main() nounwind  {
-entry:
-	%x = call i32 @func_11( ) nounwind 		; <i32> [#uses=1]
-	%tmp3 = or i32 %x, -5		; <i32> [#uses=1]
-	%tmp5 = urem i32 251, %tmp3		; <i32> [#uses=1]
-	%tmp6 = icmp ne i32 %tmp5, 0		; <i1> [#uses=1]
-	%tmp67 = zext i1 %tmp6 to i32		; <i32> [#uses=1]
-	%tmp9 = urem i32 %tmp67, 95		; <i32> [#uses=1]
-	%tmp10 = and i32 %tmp9, 1		; <i32> [#uses=1]
-	%tmp12 = icmp eq i32 %tmp10, 0		; <i1> [#uses=1]
-	br i1 %tmp12, label %bb14, label %bb
-
-bb:		; preds = %entry
-	br label %bb15
-
-bb14:		; preds = %entry
-	br label %bb15
-
-bb15:		; preds = %bb14, %bb
-	%iftmp.0.0 = phi i8* [ getelementptr ([5 x i8]* @.str1, i32 0, i32 0), %bb14 ], [ getelementptr ([5 x i8]* @.str, i32 0, i32 0), %bb ]		; <i8*> [#uses=1]
-	%tmp17 = call i32 (i8*, ...)* @printf( i8* %iftmp.0.0 ) nounwind 		; <i32> [#uses=0]
-	ret i32 0
-}
-
-declare i32 @func_11()
-
-declare i32 @printf(i8*, ...) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/urem.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/urem.ll
deleted file mode 100644
index 24e7463..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/urem.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep urem
-
-define i64 @rem_unsigned(i64 %x1, i64 %y2) {
-	%r = udiv i64 %x1, %y2
-	%r7 = mul i64 %r, %y2
-	%r8 = sub i64 %x1, %r7
-	ret i64 %r8
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts-2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts-2.ll
deleted file mode 100644
index dac0315..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts-2.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep extractelement
-
-define void @get_image() nounwind {
-entry:
-        %0 = call i32 @fgetc(i8* null) nounwind               ; <i32> [#uses=1]
-        %1 = trunc i32 %0 to i8         ; <i8> [#uses=1]
-        %tmp2 = insertelement <100 x i8> zeroinitializer, i8 %1, i32 1          ; <<100 x i8>> [#uses=1]
-        %tmp1 = extractelement <100 x i8> %tmp2, i32 0          ; <i8> [#uses=1]
-        %2 = icmp eq i8 %tmp1, 80               ; <i1> [#uses=1]
-        br i1 %2, label %bb2, label %bb3
-
-bb2:            ; preds = %entry
-        br label %bb3
-
-bb3:            ; preds = %bb2, %entry
-        unreachable
-}
-
-declare i32 @fgetc(i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts-3.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts-3.ll
deleted file mode 100644
index eba3629..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts-3.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep load
-; PR4340
-
-define void @vac(<4 x float>* nocapture %a) nounwind {
-entry:
-	%tmp1 = load <4 x float>* %a		; <<4 x float>> [#uses=1]
-	%vecins = insertelement <4 x float> %tmp1, float 0.000000e+00, i32 0	; <<4 x float>> [#uses=1]
-	%vecins4 = insertelement <4 x float> %vecins, float 0.000000e+00, i32 1; <<4 x float>> [#uses=1]
-	%vecins6 = insertelement <4 x float> %vecins4, float 0.000000e+00, i32 2; <<4 x float>> [#uses=1]
-	%vecins8 = insertelement <4 x float> %vecins6, float 0.000000e+00, i32 3; <<4 x float>> [#uses=1]
-	store <4 x float> %vecins8, <4 x float>* %a
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
deleted file mode 100644
index 95df8c6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {fadd float}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {fmul float}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep {insertelement.*0.00}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep {call.*llvm.x86.sse.mul}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep {call.*llvm.x86.sse.sub}
-; END.
-
-define i16 @test1(float %f) {
-entry:
-	%tmp = insertelement <4 x float> undef, float %f, i32 0		; <<4 x float>> [#uses=1]
-	%tmp10 = insertelement <4 x float> %tmp, float 0.000000e+00, i32 1		; <<4 x float>> [#uses=1]
-	%tmp11 = insertelement <4 x float> %tmp10, float 0.000000e+00, i32 2		; <<4 x float>> [#uses=1]
-	%tmp12 = insertelement <4 x float> %tmp11, float 0.000000e+00, i32 3		; <<4 x float>> [#uses=1]
-	%tmp28 = tail call <4 x float> @llvm.x86.sse.sub.ss( <4 x float> %tmp12, <4 x float> < float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00 > )		; <<4 x float>> [#uses=1]
-	%tmp37 = tail call <4 x float> @llvm.x86.sse.mul.ss( <4 x float> %tmp28, <4 x float> < float 5.000000e-01, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00 > )		; <<4 x float>> [#uses=1]
-	%tmp48 = tail call <4 x float> @llvm.x86.sse.min.ss( <4 x float> %tmp37, <4 x float> < float 6.553500e+04, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00 > )		; <<4 x float>> [#uses=1]
-	%tmp59 = tail call <4 x float> @llvm.x86.sse.max.ss( <4 x float> %tmp48, <4 x float> zeroinitializer )		; <<4 x float>> [#uses=1]
-	%tmp.upgrd.1 = tail call i32 @llvm.x86.sse.cvttss2si( <4 x float> %tmp59 )		; <i32> [#uses=1]
-	%tmp69 = trunc i32 %tmp.upgrd.1 to i16		; <i16> [#uses=1]
-	ret i16 %tmp69
-}
-
-define i32 @test2(float %f) {
-        %tmp5 = fmul float %f, %f
-        %tmp9 = insertelement <4 x float> undef, float %tmp5, i32 0             
-        %tmp10 = insertelement <4 x float> %tmp9, float 0.000000e+00, i32 1    
-        %tmp11 = insertelement <4 x float> %tmp10, float 0.000000e+00, i32 2  
-        %tmp12 = insertelement <4 x float> %tmp11, float 0.000000e+00, i32 3 
-        %tmp19 = bitcast <4 x float> %tmp12 to <4 x i32>  
-        %tmp21 = extractelement <4 x i32> %tmp19, i32 0  
-        ret i32 %tmp21
-}
-
-declare <4 x float> @llvm.x86.sse.sub.ss(<4 x float>, <4 x float>)
-
-declare <4 x float> @llvm.x86.sse.mul.ss(<4 x float>, <4 x float>)
-
-declare <4 x float> @llvm.x86.sse.min.ss(<4 x float>, <4 x float>)
-
-declare <4 x float> @llvm.x86.sse.max.ss(<4 x float>, <4 x float>)
-
-declare i32 @llvm.x86.sse.cvttss2si(<4 x float>)
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_extract_elt.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_extract_elt.ll
deleted file mode 100644
index 30b2f1d..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_extract_elt.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep extractelement
-
-define i32 @test(float %f) {
-        %tmp7 = insertelement <4 x float> undef, float %f, i32 0                ; <<4 x float>> [#uses=1]
-        %tmp17 = bitcast <4 x float> %tmp7 to <4 x i32>         ; <<4 x i32>> [#uses=1]
-        %tmp19 = extractelement <4 x i32> %tmp17, i32 0         ; <i32> [#uses=1]
-        ret i32 %tmp19
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_extract_elt2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_extract_elt2.ll
deleted file mode 100644
index 37463d2..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_extract_elt2.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-; The load replacing the extract element must occur before the call
-; that may modify local array a.
-
-declare void @mod_a_func(<4 x float>* %a);
-
-; CHECK: load float* %arraydecay1, align 16
-; CHECK: call void @mod_a_func
-
-define void @cl_jpegenc_k2(<4 x float> addrspace(1)* %src, float addrspace(1)* %dst) {
-  %a = alloca [2 x <4 x float>], align 16
-  %arraydecay = getelementptr [2 x <4 x float>]* %a, i32 0, i32 0
-  %arrayidx31 = getelementptr <4 x float> addrspace(1)* %src, i32 0
-  %tmp32 = load <4 x float> addrspace(1)* %arrayidx31
-  store <4 x float> %tmp32, <4 x float>* %arraydecay, align 16
-  %tmp86 = load <4 x float>* %arraydecay, align 16
-  call void @mod_a_func(<4 x float>* %arraydecay)
-  %arrayidx132 = getelementptr float addrspace(1)* %dst, i32 0
-  %tmp236 = extractelement <4 x float> %tmp86, i32 0
-  store float %tmp236, float addrspace(1)* %arrayidx132
-  ret void
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_insert_to_shuffle.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_insert_to_shuffle.ll
deleted file mode 100644
index df9cecd..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_insert_to_shuffle.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep shufflevec | count 1
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep insertelement
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   not grep extractelement
-; END.
-
-define <4 x float> @test(<4 x float> %tmp, <4 x float> %tmp1) {
-        %tmp4 = extractelement <4 x float> %tmp, i32 1          ; <float> [#uses=1]
-        %tmp2 = extractelement <4 x float> %tmp, i32 3          ; <float> [#uses=1]
-        %tmp1.upgrd.1 = extractelement <4 x float> %tmp1, i32 0         ; <float> [#uses=1]
-        %tmp128 = insertelement <4 x float> undef, float %tmp4, i32 0           ; <<4 x float>> [#uses=1]
-        %tmp130 = insertelement <4 x float> %tmp128, float undef, i32 1         ; <<4 x float>> [#uses=1]
-        %tmp132 = insertelement <4 x float> %tmp130, float %tmp2, i32 2         ; <<4 x float>> [#uses=1]
-        %tmp134 = insertelement <4 x float> %tmp132, float %tmp1.upgrd.1, i32 3         ; <<4 x float>> [#uses=1]
-        ret <4 x float> %tmp134
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_insertelt.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_insertelt.ll
deleted file mode 100644
index 9be154b..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_insertelt.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret <4 x i32> %A}
-
-; PR1286
-define <4 x i32> @test1(<4 x i32> %A) {
-	%B = insertelement <4 x i32> %A, i32 undef, i32 1
-	ret <4 x i32> %B
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_narrow.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_narrow.ll
deleted file mode 100644
index e444c2a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_narrow.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {add float}
-
-        %V = type <4 x float>
-
-define float @test(%V %A, %V %B, float %f) {
-        %C = insertelement %V %A, float %f, i32 0               ; <%V> [#uses=1]
-        %D = fadd %V %C, %B              ; <%V> [#uses=1]
-        %E = extractelement %V %D, i32 0                ; <float> [#uses=1]
-        ret float %E
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_shuffle.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_shuffle.ll
deleted file mode 100644
index aaaee3f..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_shuffle.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep vector_shuffle
-; END.
-
-%T = type <4 x float>
-
-
-define %T @test1(%T %v1) {
-  %v2 = shufflevector %T %v1, %T undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
-  ret %T %v2
-}
-
-define %T @test2(%T %v1) {
-  %v2 = shufflevector %T %v1, %T %v1, <4 x i32> <i32 0, i32 5, i32 2, i32 7>
-  ret %T %v2
-}
-
-define float @test3(%T %A, %T %B, float %f) {
-        %C = insertelement %T %A, float %f, i32 0
-        %D = shufflevector %T %C, %T %B, <4 x i32> <i32 5, i32 0, i32 2, i32 7>
-        %E = extractelement %T %D, i32 1
-        ret float %E
-}
-
-define i32 @test4(<4 x i32> %X) {
-        %tmp152.i53899.i = shufflevector <4 x i32> %X, <4 x i32> undef, <4 x i32> zeroinitializer
-        %tmp34 = extractelement <4 x i32> %tmp152.i53899.i, i32 0
-        ret i32 %tmp34
-}
-
-define i32 @test5(<4 x i32> %X) {
-        %tmp152.i53899.i = shufflevector <4 x i32> %X, <4 x i32> undef, <4 x i32> <i32 3, i32 2, i32 undef, i32 undef>
-        %tmp34 = extractelement <4 x i32> %tmp152.i53899.i, i32 0
-        ret i32 %tmp34
-}
-
-define float @test6(<4 x float> %X) {
-        %X1 = bitcast <4 x float> %X to <4 x i32>
-        %tmp152.i53899.i = shufflevector <4 x i32> %X1, <4 x i32> undef, <4 x i32> zeroinitializer
-        %tmp152.i53900.i = bitcast <4 x i32> %tmp152.i53899.i to <4 x float>
-        %tmp34 = extractelement <4 x float> %tmp152.i53900.i, i32 0
-        ret float %tmp34
-}
-
-define <4 x float> @test7(<4 x float> %tmp45.i) {
-        %tmp1642.i = shufflevector <4 x float> %tmp45.i, <4 x float> undef, <4 x i32> < i32 0, i32 1, i32 6, i32 7 >
-        ret <4 x float> %tmp1642.i
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_shuffle2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vec_shuffle2.ll
deleted file mode 100644
index 3bd8924..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vec_shuffle2.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep undef | count 1
-; END.
-
-; Test fold of two shuffles where the first shuffle vectors inputs are a
-; different length then the second.
-
-define void @test_cl(<4 x i8> addrspace(1)* %dest, <16 x i8> addrspace(1)* %old) nounwind {
-entry:
-	%arrayidx = getelementptr <4 x i8> addrspace(1)* %dest, i32 0		; <<4 x i8> addrspace(1)*> [#uses=1]
-	%arrayidx5 = getelementptr <16 x i8> addrspace(1)* %old, i32 0		; <<16 x i8> addrspace(1)*> [#uses=1]
-	%tmp6 = load <16 x i8> addrspace(1)* %arrayidx5		; <<16 x i8>> [#uses=1]
-	%tmp7 = shufflevector <16 x i8> %tmp6, <16 x i8> undef, <4 x i32> < i32 13, i32 9, i32 4, i32 13 >		; <<4 x i8>> [#uses=1]
-	%tmp9 = shufflevector <4 x i8> %tmp7, <4 x i8> undef, <4 x i32> < i32 3, i32 1, i32 2, i32 0 >		; <<4 x i8>> [#uses=1]
-	store <4 x i8> %tmp9, <4 x i8> addrspace(1)* %arrayidx
-	ret void
-
-return:		; preds = %entry
-	ret void
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vector-casts.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vector-casts.ll
deleted file mode 100644
index 36f7d70..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vector-casts.ll
+++ /dev/null
@@ -1,107 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | FileCheck %s
-
-; This turns into a&1 != 0
-define <2 x i1> @test1(<2 x i64> %a) {
-  %t = trunc <2 x i64> %a to <2 x i1>
-  ret <2 x i1> %t
-
-; CHECK: @test1
-; CHECK:   and <2 x i64> %a, <i64 1, i64 1>
-; CHECK:   icmp ne <2 x i64> %tmp, zeroinitializer
-}
-
-; The ashr turns into an lshr.
-define <2 x i64> @test2(<2 x i64> %a) {
-  %b = and <2 x i64> %a, <i64 65535, i64 65535>
-  %t = ashr <2 x i64> %b, <i64 1, i64 1>
-  ret <2 x i64> %t
-
-; CHECK: @test2
-; CHECK:   and <2 x i64> %a, <i64 65535, i64 65535>
-; CHECK:   lshr <2 x i64> %b, <i64 1, i64 1>
-}
-
-
-
-define <2 x i64> @test3(<4 x float> %a, <4 x float> %b) nounwind readnone {
-entry:
-	%cmp = fcmp ord <4 x float> %a, zeroinitializer	
-	%sext = sext <4 x i1> %cmp to <4 x i32>	
-	%cmp4 = fcmp ord <4 x float> %b, zeroinitializer
-	%sext5 = sext <4 x i1> %cmp4 to <4 x i32>
-	%and = and <4 x i32> %sext, %sext5
-	%conv = bitcast <4 x i32> %and to <2 x i64>
-	ret <2 x i64> %conv
-        
-; CHECK: @test3
-; CHECK:   fcmp ord <4 x float> %a, %b
-}
-
-define <2 x i64> @test4(<4 x float> %a, <4 x float> %b) nounwind readnone {
-entry:
-	%cmp = fcmp uno <4 x float> %a, zeroinitializer
-	%sext = sext <4 x i1> %cmp to <4 x i32>
-	%cmp4 = fcmp uno <4 x float> %b, zeroinitializer
-	%sext5 = sext <4 x i1> %cmp4 to <4 x i32>
-	%or = or <4 x i32> %sext, %sext5
-	%conv = bitcast <4 x i32> %or to <2 x i64>
-	ret <2 x i64> %conv
-; CHECK: @test4
-; CHECK:   fcmp uno <4 x float> %a, %b
-}
-
-
-
-define void @convert(<2 x i32>* %dst.addr, <2 x i64> %src) nounwind {
-entry:
-  %val = trunc <2 x i64> %src to <2 x i32>
-  %add = add <2 x i32> %val, <i32 1, i32 1>
-  store <2 x i32> %add, <2 x i32>* %dst.addr
-  ret void
-}
-
-define <2 x i65> @foo(<2 x i64> %t) {
-  %a = trunc <2 x i64> %t to <2 x i32>
-  %b = zext <2 x i32> %a to <2 x i65>
-  ret <2 x i65> %b
-}
-define <2 x i64> @bar(<2 x i65> %t) {
-  %a = trunc <2 x i65> %t to <2 x i32>
-  %b = zext <2 x i32> %a to <2 x i64>
-  ret <2 x i64> %b
-}
-define <2 x i65> @foos(<2 x i64> %t) {
-  %a = trunc <2 x i64> %t to <2 x i32>
-  %b = sext <2 x i32> %a to <2 x i65>
-  ret <2 x i65> %b
-}
-define <2 x i64> @bars(<2 x i65> %t) {
-  %a = trunc <2 x i65> %t to <2 x i32>
-  %b = sext <2 x i32> %a to <2 x i64>
-  ret <2 x i64> %b
-}
-define <2 x i64> @quxs(<2 x i64> %t) {
-  %a = trunc <2 x i64> %t to <2 x i32>
-  %b = sext <2 x i32> %a to <2 x i64>
-  ret <2 x i64> %b
-}
-define <2 x i64> @quxt(<2 x i64> %t) {
-  %a = shl <2 x i64> %t, <i64 32, i64 32>
-  %b = ashr <2 x i64> %a, <i64 32, i64 32>
-  ret <2 x i64> %b
-}
-define <2 x double> @fa(<2 x double> %t) {
-  %a = fptrunc <2 x double> %t to <2 x float>
-  %b = fpext <2 x float> %a to <2 x double>
-  ret <2 x double> %b
-}
-define <2 x double> @fb(<2 x double> %t) {
-  %a = fptoui <2 x double> %t to <2 x i64>
-  %b = uitofp <2 x i64> %a to <2 x double>
-  ret <2 x double> %b
-}
-define <2 x double> @fc(<2 x double> %t) {
-  %a = fptosi <2 x double> %t to <2 x i64>
-  %b = sitofp <2 x i64> %a to <2 x double>
-  ret <2 x double> %b
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/vector-srem.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/vector-srem.ll
deleted file mode 100644
index e8766eb..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/vector-srem.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {srem <4 x i32>}
-
-define <4 x i32> @foo(<4 x i32> %t, <4 x i32> %u)
-{
-  %k = sdiv <4 x i32> %t, %u
-  %l = mul <4 x i32> %k, %u
-  %m = sub <4 x i32> %t, %l
-  ret <4 x i32> %m
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/volatile_store.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/volatile_store.ll
deleted file mode 100644
index 09651ba..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/volatile_store.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {volatile store}
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {volatile load}
-
- at x = weak global i32 0		; <i32*> [#uses=2]
-
-define void @self_assign_1() {
-entry:
-	%tmp = volatile load i32* @x		; <i32> [#uses=1]
-	volatile store i32 %tmp, i32* @x
-	br label %return
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/xor-demorgans.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/xor-demorgans.ll
deleted file mode 100644
index c8de6db..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/xor-demorgans.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {= or}
-; PR3266
-; XFAIL: *
-
-define i1 @foo(i32 %x, i32 %y) nounwind {
-.summary:
-       %0 = icmp sgt i32 %x, 4         ; <i1> [#uses=1]
-       %1 = icmp sgt i32 %y, 0         ; <i1> [#uses=1]
-       %.demorgan = or i1 %1, %0               ; <i1> [#uses=1]
-       %2 = xor i1 %.demorgan, true            ; <i1> [#uses=1]
-       ret i1 %2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/xor-undef.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/xor-undef.ll
deleted file mode 100644
index c090223..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/xor-undef.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep zeroinitializer
-
-define <2 x i64> @f() {
-	%tmp = xor <2 x i64> undef, undef
-        ret <2 x i64> %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/xor.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/xor.ll
deleted file mode 100644
index d8b84a6..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/xor.ll
+++ /dev/null
@@ -1,193 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:    not grep {xor }
-; END.
- at G1 = global i32 0		; <i32*> [#uses=1]
- at G2 = global i32 0		; <i32*> [#uses=1]
-
-define i1 @test0(i1 %A) {
-	%B = xor i1 %A, false		; <i1> [#uses=1]
-	ret i1 %B
-}
-
-define i32 @test1(i32 %A) {
-	%B = xor i32 %A, 0		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i1 @test2(i1 %A) {
-	%B = xor i1 %A, %A		; <i1> [#uses=1]
-	ret i1 %B
-}
-
-define i32 @test3(i32 %A) {
-	%B = xor i32 %A, %A		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i32 @test4(i32 %A) {
-	%NotA = xor i32 -1, %A		; <i32> [#uses=1]
-	%B = xor i32 %A, %NotA		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define i32 @test5(i32 %A) {
-	%t1 = or i32 %A, 123		; <i32> [#uses=1]
-	%r = xor i32 %t1, 123		; <i32> [#uses=1]
-	ret i32 %r
-}
-
-define i8 @test6(i8 %A) {
-	%B = xor i8 %A, 17		; <i8> [#uses=1]
-	%C = xor i8 %B, 17		; <i8> [#uses=1]
-	ret i8 %C
-}
-
-define i32 @test7(i32 %A, i32 %B) {
-	%A1 = and i32 %A, 7		; <i32> [#uses=1]
-	%B1 = and i32 %B, 128		; <i32> [#uses=1]
-	%C1 = xor i32 %A1, %B1		; <i32> [#uses=1]
-	ret i32 %C1
-}
-
-define i8 @test8(i1 %c) {
-	%d = xor i1 %c, true		; <i1> [#uses=1]
-	br i1 %d, label %True, label %False
-
-True:		; preds = %0
-	ret i8 1
-
-False:		; preds = %0
-	ret i8 3
-}
-
-define i1 @test9(i8 %A) {
-	%B = xor i8 %A, 123		; <i8> [#uses=1]
-	%C = icmp eq i8 %B, 34		; <i1> [#uses=1]
-	ret i1 %C
-}
-
-define i8 @test10(i8 %A) {
-	%B = and i8 %A, 3		; <i8> [#uses=1]
-	%C = xor i8 %B, 4		; <i8> [#uses=1]
-	ret i8 %C
-}
-
-define i8 @test11(i8 %A) {
-	%B = or i8 %A, 12		; <i8> [#uses=1]
-	%C = xor i8 %B, 4		; <i8> [#uses=1]
-	ret i8 %C
-}
-
-define i1 @test12(i8 %A) {
-	%B = xor i8 %A, 4		; <i8> [#uses=1]
-	%c = icmp ne i8 %B, 0		; <i1> [#uses=1]
-	ret i1 %c
-}
-
-define i1 @test13(i8 %A, i8 %B) {
-	%C = icmp ult i8 %A, %B		; <i1> [#uses=1]
-	%D = icmp ugt i8 %A, %B		; <i1> [#uses=1]
-	%E = xor i1 %C, %D		; <i1> [#uses=1]
-	ret i1 %E
-}
-
-define i1 @test14(i8 %A, i8 %B) {
-	%C = icmp eq i8 %A, %B		; <i1> [#uses=1]
-	%D = icmp ne i8 %B, %A		; <i1> [#uses=1]
-	%E = xor i1 %C, %D		; <i1> [#uses=1]
-	ret i1 %E
-}
-
-define i32 @test15(i32 %A) {
-	%B = add i32 %A, -1		; <i32> [#uses=1]
-	%C = xor i32 %B, -1		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test16(i32 %A) {
-	%B = add i32 %A, 123		; <i32> [#uses=1]
-	%C = xor i32 %B, -1		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test17(i32 %A) {
-	%B = sub i32 123, %A		; <i32> [#uses=1]
-	%C = xor i32 %B, -1		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test18(i32 %A) {
-	%B = xor i32 %A, -1		; <i32> [#uses=1]
-	%C = sub i32 123, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-define i32 @test19(i32 %A, i32 %B) {
-	%C = xor i32 %A, %B		; <i32> [#uses=1]
-	%D = xor i32 %C, %A		; <i32> [#uses=1]
-	ret i32 %D
-}
-
-define void @test20(i32 %A, i32 %B) {
-	%tmp.2 = xor i32 %B, %A		; <i32> [#uses=2]
-	%tmp.5 = xor i32 %tmp.2, %B		; <i32> [#uses=2]
-	%tmp.8 = xor i32 %tmp.5, %tmp.2		; <i32> [#uses=1]
-	store i32 %tmp.8, i32* @G1
-	store i32 %tmp.5, i32* @G2
-	ret void
-}
-
-define i32 @test21(i1 %C, i32 %A, i32 %B) {
-	%C2 = xor i1 %C, true		; <i1> [#uses=1]
-	%D = select i1 %C2, i32 %A, i32 %B		; <i32> [#uses=1]
-	ret i32 %D
-}
-
-define i32 @test22(i1 %X) {
-	%Y = xor i1 %X, true		; <i1> [#uses=1]
-	%Z = zext i1 %Y to i32		; <i32> [#uses=1]
-	%Q = xor i32 %Z, 1		; <i32> [#uses=1]
-	ret i32 %Q
-}
-
-define i1 @test23(i32 %a, i32 %b) {
-	%tmp.2 = xor i32 %b, %a		; <i32> [#uses=1]
-	%tmp.4 = icmp eq i32 %tmp.2, %a		; <i1> [#uses=1]
-	ret i1 %tmp.4
-}
-
-define i1 @test24(i32 %c, i32 %d) {
-	%tmp.2 = xor i32 %d, %c		; <i32> [#uses=1]
-	%tmp.4 = icmp ne i32 %tmp.2, %c		; <i1> [#uses=1]
-	ret i1 %tmp.4
-}
-
-define i32 @test25(i32 %g, i32 %h) {
-	%h2 = xor i32 %h, -1		; <i32> [#uses=1]
-	%tmp2 = and i32 %h2, %g		; <i32> [#uses=1]
-	%tmp4 = xor i32 %tmp2, %g		; <i32> [#uses=1]
-	ret i32 %tmp4
-}
-
-define i32 @test26(i32 %a, i32 %b) {
-	%b2 = xor i32 %b, -1		; <i32> [#uses=1]
-	%tmp2 = xor i32 %a, %b2		; <i32> [#uses=1]
-	%tmp4 = and i32 %tmp2, %a		; <i32> [#uses=1]
-	ret i32 %tmp4
-}
-
-define i32 @test27(i32 %b, i32 %c, i32 %d) {
-	%tmp2 = xor i32 %d, %b		; <i32> [#uses=1]
-	%tmp5 = xor i32 %d, %c		; <i32> [#uses=1]
-	%tmp = icmp eq i32 %tmp2, %tmp5		; <i1> [#uses=1]
-	%tmp6 = zext i1 %tmp to i32		; <i32> [#uses=1]
-	ret i32 %tmp6
-}
-
-define i32 @test28(i32 %indvar) {
-	%tmp7 = add i32 %indvar, -2147483647		; <i32> [#uses=1]
-	%tmp214 = xor i32 %tmp7, -2147483648		; <i32> [#uses=1]
-	ret i32 %tmp214
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/xor2.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/xor2.ll
deleted file mode 100644
index efb3146..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/xor2.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This test makes sure that these instructions are properly eliminated.
-;
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep {xor }
-
-; PR1253
-define i1 @test0(i32 %A) {
-	%B = xor i32 %A, -2147483648
-	%C = icmp sgt i32 %B, -1
-	ret i1 %C
-}
-
-define i1 @test1(i32 %A) {
-	%B = xor i32 %A, 12345
-	%C = icmp slt i32 %B, 0
-	ret i1 %C
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/zero-point-zero-add.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/zero-point-zero-add.ll
deleted file mode 100644
index adb28e4..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/zero-point-zero-add.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep 0.0 | count 1
-
-declare double @abs(double)
-
-define double @test(double %X) {
-  %Y = fadd double %X, 0.0          ;; Should be a single add x, 0.0
-  %Z = fadd double %Y, 0.0
-  ret double %Z
-}
-
-define double @test1(double %X) {
-  %Y = call double @abs(double %X)
-  %Z = fadd double %Y, 0.0
-  ret double %Z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/zeroext-and-reduce.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/zeroext-and-reduce.ll
deleted file mode 100644
index 2b4950a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/zeroext-and-reduce.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   grep {and i32 %Y, 8}
-
-define i32 @test1(i8 %X) {
-        %Y = zext i8 %X to i32          ; <i32> [#uses=1]
-        %Z = and i32 %Y, 65544          ; <i32> [#uses=1]
-        ret i32 %Z
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll
deleted file mode 100644
index f1a3080..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep zext
-
-define i32 @a(i1 %x) {
-entry:
-        %y = zext i1 %x to i32
-        %res = add i32 %y, 1
-        ret i32 %res
-}
-
-define i32 @b(i1 %x) {
-entry:
-        %y = zext i1 %x to i32
-        %res = add i32 %y, -1
-        ret i32 %res
-}
-
-define i32 @c(i1 %x) {
-entry:
-        %y = zext i1 %x to i32
-        %res = sub i32 0, %y
-        ret i32 %res
-}
-
-define i32 @d(i1 %x) {
-entry:
-        %y = zext i1 %x to i32
-        %res = sub i32 3, %y
-        ret i32 %res
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/zext-fold.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/zext-fold.ll
deleted file mode 100644
index 27ea460..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/zext-fold.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {zext } | count 1
-; PR1570
-
-define i32 @test2(float %X, float %Y) {
-entry:
-        %tmp3 = fcmp uno float %X, %Y           ; <i1> [#uses=1]
-        %tmp34 = zext i1 %tmp3 to i8            ; <i8> [#uses=1]
-        %tmp = xor i8 %tmp34, 1         ; <i8> [#uses=1]
-        %toBoolnot5 = zext i8 %tmp to i32               ; <i32> [#uses=1]
-        ret i32 %toBoolnot5
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/zext-or-icmp.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/zext-or-icmp.ll
deleted file mode 100644
index 35c7c0a..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/zext-or-icmp.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep icmp | count 1
-
-	%struct.FooBar = type <{ i8, i8, [2 x i8], i8, i8, i8, i8, i16, i16, [4 x i8], [8 x %struct.Rock] }>
-	%struct.Rock = type { i16, i16 }
- at some_idx = internal constant [4 x i8] c"\0A\0B\0E\0F"		; <[4 x i8]*> [#uses=1]
-
-define i8 @t(%struct.FooBar* %up, i8 zeroext  %intra_flag, i32 %blk_i) zeroext nounwind  {
-entry:
-	%tmp2 = lshr i32 %blk_i, 1		; <i32> [#uses=1]
-	%tmp3 = and i32 %tmp2, 2		; <i32> [#uses=1]
-	%tmp5 = and i32 %blk_i, 1		; <i32> [#uses=1]
-	%tmp6 = or i32 %tmp3, %tmp5		; <i32> [#uses=1]
-	%tmp8 = getelementptr %struct.FooBar* %up, i32 0, i32 7		; <i16*> [#uses=1]
-	%tmp9 = load i16* %tmp8, align 1		; <i16> [#uses=1]
-	%tmp910 = zext i16 %tmp9 to i32		; <i32> [#uses=1]
-	%tmp12 = getelementptr [4 x i8]* @some_idx, i32 0, i32 %tmp6		; <i8*> [#uses=1]
-	%tmp13 = load i8* %tmp12, align 1		; <i8> [#uses=1]
-	%tmp1314 = zext i8 %tmp13 to i32		; <i32> [#uses=1]
-	%tmp151 = lshr i32 %tmp910, %tmp1314		; <i32> [#uses=1]
-	%tmp1516 = trunc i32 %tmp151 to i8		; <i8> [#uses=1]
-	%tmp18 = getelementptr %struct.FooBar* %up, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp19 = load i8* %tmp18, align 1		; <i8> [#uses=1]
-	%tmp22 = and i8 %tmp1516, %tmp19		; <i8> [#uses=1]
-	%tmp24 = getelementptr %struct.FooBar* %up, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp25 = load i8* %tmp24, align 1		; <i8> [#uses=1]
-	%tmp26.mask = and i8 %tmp25, 1		; <i8> [#uses=1]
-	%toBool = icmp eq i8 %tmp26.mask, 0		; <i1> [#uses=1]
-	%toBool.not = xor i1 %toBool, true		; <i1> [#uses=1]
-	%toBool33 = icmp eq i8 %intra_flag, 0		; <i1> [#uses=1]
-	%bothcond = or i1 %toBool.not, %toBool33		; <i1> [#uses=1]
-	%iftmp.1.0 = select i1 %bothcond, i8 0, i8 1		; <i8> [#uses=1]
-	%tmp40 = or i8 %tmp22, %iftmp.1.0		; <i8> [#uses=1]
-	%tmp432 = and i8 %tmp40, 1		; <i8> [#uses=1]
-	ret i8 %tmp432
-}
diff --git a/libclamav/c++/llvm/test/Transforms/InstCombine/zext.ll b/libclamav/c++/llvm/test/Transforms/InstCombine/zext.ll
deleted file mode 100644
index c0fa377..0000000
--- a/libclamav/c++/llvm/test/Transforms/InstCombine/zext.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; Tests to make sure elimination of casts is working correctly
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \
-; RUN:   notcast {} {%c1.*}
-
-define i64 @test_sext_zext(i16 %A) {
-        %c1 = zext i16 %A to i32                ; <i32> [#uses=1]
-        %c2 = sext i32 %c1 to i64               ; <i64> [#uses=1]
-        ret i64 %c2
-}
-
-; PR3599
-define i32 @test2(i64 %tmp) nounwind readnone {
-entry:
-	%tmp5 = trunc i64 %tmp to i8		; <i8> [#uses=1]
-	%tmp7 = lshr i64 %tmp, 8		; <i64> [#uses=1]
-	%tmp8 = trunc i64 %tmp7 to i8		; <i8> [#uses=1]
-	%tmp10 = lshr i64 %tmp, 16		; <i64> [#uses=1]
-	%tmp11 = trunc i64 %tmp10 to i8		; <i8> [#uses=1]
-	%tmp13 = lshr i64 %tmp, 24		; <i64> [#uses=1]
-	%tmp14 = trunc i64 %tmp13 to i8		; <i8> [#uses=1]
-	%tmp1 = zext i8 %tmp5 to i32		; <i32> [#uses=1]
-	%tmp2 = zext i8 %tmp8 to i32		; <i32> [#uses=1]
-	%tmp3 = shl i32 %tmp2, 8		; <i32> [#uses=1]
-	%tmp4 = zext i8 %tmp11 to i32		; <i32> [#uses=1]
-	%tmp6 = shl i32 %tmp4, 16		; <i32> [#uses=1]
-	%tmp9 = zext i8 %tmp14 to i32		; <i32> [#uses=1]
-	%tmp12 = shl i32 %tmp9, 24		; <i32> [#uses=1]
-	%tmp15 = or i32 %tmp12, %tmp1		; <i32> [#uses=1]
-	%tmp16 = or i32 %tmp15, %tmp6		; <i32> [#uses=1]
-	%tmp17 = or i32 %tmp16, %tmp3		; <i32> [#uses=1]
-	ret i32 %tmp17
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Internalize/2008-05-09-AllButMain.ll b/libclamav/c++/llvm/test/Transforms/Internalize/2008-05-09-AllButMain.ll
deleted file mode 100644
index 6ba5cb9..0000000
--- a/libclamav/c++/llvm/test/Transforms/Internalize/2008-05-09-AllButMain.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; No arguments means internalize all but main
-; RUN: llvm-as < %s | opt -internalize | llvm-dis | grep internal | count 4
-; Internalize all but foo and j
-; RUN: llvm-as < %s | opt -internalize -internalize-public-api-list foo -internalize-public-api-list j | llvm-dis | grep internal | count 3
-; Non existent files should be treated as if they were empty (so internalize all but main)
-; RUN: llvm-as < %s | opt -internalize -internalize-public-api-file /nonexistent/file 2> /dev/null | llvm-dis | grep internal | count 4
-; RUN: llvm-as < %s | opt -internalize -internalize-public-api-list bar -internalize-public-api-list foo -internalize-public-api-file /nonexistent/file 2> /dev/null | llvm-dis | grep internal | count 3
-; -file and -list options should be merged, the .apifile contains foo and j
-; RUN: llvm-as < %s | opt -internalize -internalize-public-api-list bar -internalize-public-api-file %s.apifile | llvm-dis | grep internal | count 2
-
- at i = weak global i32 0          ; <i32*> [#uses=0]
- at j = weak global i32 0          ; <i32*> [#uses=0]
-
-define void @main(...) {
-entry:  
-        ret void
-}
-
-define void @foo(...) {
-entry:  
-        ret void
-}
-
-define void @bar(...) {
-entry:  
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Internalize/2008-05-09-AllButMain.ll.apifile b/libclamav/c++/llvm/test/Transforms/Internalize/2008-05-09-AllButMain.ll.apifile
deleted file mode 100644
index f6c58b8..0000000
--- a/libclamav/c++/llvm/test/Transforms/Internalize/2008-05-09-AllButMain.ll.apifile
+++ /dev/null
@@ -1,2 +0,0 @@
-foo
-j
diff --git a/libclamav/c++/llvm/test/Transforms/Internalize/2009-01-05-InternalizeAliases.ll b/libclamav/c++/llvm/test/Transforms/Internalize/2009-01-05-InternalizeAliases.ll
deleted file mode 100644
index c0041ac..0000000
--- a/libclamav/c++/llvm/test/Transforms/Internalize/2009-01-05-InternalizeAliases.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -internalize | llvm-dis | grep internal | count 3
-
- at A = global i32 0
- at B = alias i32* @A
- at C = alias i32* @B
-
-define i32 @main() {
-	%tmp = load i32* @C
-	ret i32 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Internalize/dg.exp b/libclamav/c++/llvm/test/Transforms/Internalize/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/Internalize/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-04-24-InfLoop.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-04-24-InfLoop.ll
deleted file mode 100644
index 3eb2aa1..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-04-24-InfLoop.ll
+++ /dev/null
@@ -1,142 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -disable-output
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9"
- at Link = global [1 x i32] [ i32 -1 ]		; <[1 x i32]*> [#uses=2]
- at W = global [1 x i32] [ i32 2 ]		; <[1 x i32]*> [#uses=1]
-
-define i32 @f(i32 %k, i32 %p) nounwind  {
-entry:
-	br label %bb
-
-bb:		; preds = %bb56, %bb76.loopexit.us, %entry
-	%j.2 = phi i32 [ 0, %entry ], [ 1, %bb56 ], [ 1, %bb76.loopexit.us ]		; <i32> [#uses=5]
-	%pdest.2 = phi i32 [ 0, %entry ], [ %pdest.8, %bb56 ], [ %pdest.7.us, %bb76.loopexit.us ]		; <i32> [#uses=3]
-	%p_addr.0 = phi i32 [ %p, %entry ], [ 0, %bb56 ], [ %p_addr.1.us, %bb76.loopexit.us ]		; <i32> [#uses=3]
-	%k_addr.0 = phi i32 [ %k, %entry ], [ %tmp59, %bb56 ], [ %tmp59.us, %bb76.loopexit.us ]		; <i32> [#uses=4]
-	%tmp2 = icmp sgt i32 %pdest.2, 2		; <i1> [#uses=1]
-	br i1 %tmp2, label %bb4.preheader, label %bb13
-
-bb4.preheader:		; preds = %bb
-	%tmp109 = sub i32 1, %j.2		; <i32> [#uses=2]
-	%tmp110 = icmp slt i32 %tmp109, -2		; <i1> [#uses=1]
-	%smax111 = select i1 %tmp110, i32 -2, i32 %tmp109		; <i32> [#uses=2]
-	%tmp112 = add i32 %j.2, %smax111		; <i32> [#uses=2]
-	br label %bb4
-
-bb4:		; preds = %bb4, %bb4.preheader
-	%indvar = phi i32 [ 0, %bb4.preheader ], [ %indvar.next, %bb4 ]		; <i32> [#uses=1]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, %tmp112		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb13.loopexit, label %bb4
-
-bb13.loopexit:		; preds = %bb4
-	%tmp = add i32 %j.2, %pdest.2		; <i32> [#uses=1]
-	%tmp102 = add i32 %tmp, %smax111		; <i32> [#uses=1]
-	%tmp104 = add i32 %tmp112, -1		; <i32> [#uses=1]
-	%tmp106 = sub i32 %j.2, %tmp104		; <i32> [#uses=1]
-	%tmp107 = add i32 %tmp106, -1		; <i32> [#uses=1]
-	br label %bb13
-
-bb13:		; preds = %bb13.loopexit, %bb
-	%j.1 = phi i32 [ %tmp107, %bb13.loopexit ], [ %j.2, %bb ]		; <i32> [#uses=4]
-	%pdest.1 = phi i32 [ %tmp102, %bb13.loopexit ], [ %pdest.2, %bb ]		; <i32> [#uses=2]
-	%tmp15 = icmp eq i32 %j.1, 1		; <i1> [#uses=1]
-	br i1 %tmp15, label %bb82, label %bb27.preheader
-
-bb27.preheader:		; preds = %bb13
-	%tmp21 = icmp eq i32 %j.1, %p_addr.0		; <i1> [#uses=0]
-	br label %bb27.outer
-
-bb27.outer:		; preds = %bb27.outer.bb24.split_crit_edge, %bb27.preheader
-	%indvar118 = phi i32 [ 0, %bb27.preheader ], [ %indvar.next119, %bb27.outer.bb24.split_crit_edge ]		; <i32> [#uses=2]
-	%pdest.3.ph = add i32 %indvar118, %pdest.1		; <i32> [#uses=2]
-	%tmp30 = icmp sgt i32 %pdest.3.ph, %p_addr.0		; <i1> [#uses=1]
-	br i1 %tmp30, label %bb27.outer.bb24.split_crit_edge, label %bb27.outer.split
-
-bb27.outer.bb24.split_crit_edge:		; preds = %bb27.outer
-	%indvar.next119 = add i32 %indvar118, 1		; <i32> [#uses=1]
-	br label %bb27.outer
-
-bb27.outer.split:		; preds = %bb27.outer
-	%tmp35 = getelementptr [1 x i32]* @W, i32 0, i32 %k_addr.0		; <i32*> [#uses=3]
-	%tmp48 = icmp slt i32 %p_addr.0, 1		; <i1> [#uses=1]
-	%tmp53 = icmp sgt i32 %k_addr.0, 0		; <i1> [#uses=1]
-	br label %bb33
-
-bb33:		; preds = %bb51.split, %bb27.outer.split
-	%pdest.5 = phi i32 [ %pdest.3.ph, %bb27.outer.split ], [ %pdest.4, %bb51.split ]		; <i32> [#uses=1]
-	%tmp36 = load i32* %tmp35, align 4		; <i32> [#uses=2]
-	br i1 %tmp48, label %bb37.us, label %bb37
-
-bb37.us:		; preds = %bb42.us, %bb37.us, %bb33
-	%D1361.1.us = phi i32 [ %tmp36, %bb33 ], [ 0, %bb42.us ], [ %D1361.1.us, %bb37.us ]		; <i32> [#uses=2]
-	%tmp39.us = icmp eq i32 %D1361.1.us, 0		; <i1> [#uses=1]
-	br i1 %tmp39.us, label %bb37.us, label %bb42.us
-
-bb42.us:		; preds = %bb37.us
-	store i32 0, i32* %tmp35, align 4
-	br label %bb37.us
-
-bb37:		; preds = %bb33
-	%tmp39 = icmp eq i32 %tmp36, 0		; <i1> [#uses=1]
-	br i1 %tmp39, label %bb51.split, label %bb42
-
-bb42:		; preds = %bb37
-	store i32 0, i32* %tmp35, align 4
-	br label %bb51.split
-
-bb51.split:		; preds = %bb42, %bb37
-	%pdest.4 = phi i32 [ 1, %bb42 ], [ %pdest.5, %bb37 ]		; <i32> [#uses=3]
-	br i1 %tmp53, label %bb33, label %bb56.preheader
-
-bb56.preheader:		; preds = %bb51.split
-	%tmp7394 = icmp sgt i32 %j.1, 0		; <i1> [#uses=1]
-	br i1 %tmp7394, label %bb56.us, label %bb56
-
-bb56.us:		; preds = %bb76.loopexit.us, %bb56.preheader
-	%pdest.8.us = phi i32 [ %pdest.4, %bb56.preheader ], [ %pdest.7.us, %bb76.loopexit.us ]		; <i32> [#uses=1]
-	%k_addr.1.us = phi i32 [ %k_addr.0, %bb56.preheader ], [ %tmp59.us, %bb76.loopexit.us ]		; <i32> [#uses=1]
-	%tmp58.us = getelementptr [1 x i32]* @Link, i32 0, i32 %k_addr.1.us		; <i32*> [#uses=1]
-	%tmp59.us = load i32* %tmp58.us, align 4		; <i32> [#uses=3]
-	%tmp6295.us = icmp ne i32 %tmp59.us, -1		; <i1> [#uses=2]
-	br label %bb60.us
-
-bb60.us:		; preds = %bb60.us, %bb56.us
-	%pdest.7.reg2mem.0.us = phi i32 [ %pdest.8.us, %bb56.us ], [ %pdest.7.us, %bb60.us ]		; <i32> [#uses=1]
-	%p_addr.1.reg2mem.0.us = phi i32 [ 0, %bb56.us ], [ %p_addr.1.us, %bb60.us ]		; <i32> [#uses=1]
-	%tmp67.us = zext i1 %tmp6295.us to i32		; <i32> [#uses=2]
-	%pdest.7.us = add i32 %pdest.7.reg2mem.0.us, %tmp67.us		; <i32> [#uses=3]
-	%p_addr.1.us = add i32 %p_addr.1.reg2mem.0.us, %tmp67.us		; <i32> [#uses=3]
-	%tmp73.us = icmp slt i32 %p_addr.1.us, %j.1		; <i1> [#uses=1]
-	br i1 %tmp73.us, label %bb60.us, label %bb76.loopexit.us
-
-bb76.loopexit.us:		; preds = %bb60.us
-	br i1 %tmp6295.us, label %bb56.us, label %bb
-
-bb56:		; preds = %bb56, %bb56.preheader
-	%pdest.8 = phi i32 [ %pdest.4, %bb56.preheader ], [ %pdest.8, %bb56 ]		; <i32> [#uses=2]
-	%k_addr.1 = phi i32 [ %k_addr.0, %bb56.preheader ], [ %tmp59, %bb56 ]		; <i32> [#uses=1]
-	%tmp58 = getelementptr [1 x i32]* @Link, i32 0, i32 %k_addr.1		; <i32*> [#uses=1]
-	%tmp59 = load i32* %tmp58, align 4		; <i32> [#uses=3]
-	%tmp6295 = icmp ne i32 %tmp59, -1		; <i1> [#uses=1]
-	br i1 %tmp6295, label %bb56, label %bb
-
-bb82:		; preds = %bb13
-	ret i32 %pdest.1
-}
-
-define i32 @main() nounwind  {
-entry:
-	%tmp1 = tail call i32 @f( i32 0, i32 2 ) nounwind 		; <i32> [#uses=1]
-	%tmp2 = icmp eq i32 %tmp1, 0		; <i1> [#uses=1]
-	br i1 %tmp2, label %bb, label %bb4
-
-bb:		; preds = %entry
-	tail call void @abort( ) noreturn nounwind 
-	unreachable
-
-bb4:		; preds = %entry
-	ret i32 0
-}
-
-declare void @abort() noreturn nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-05-05-MRV-Crash.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-05-05-MRV-Crash.ll
deleted file mode 100644
index f109109..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-05-05-MRV-Crash.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -disable-output
-; PR2285
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-	%struct.system__secondary_stack__mark_id = type { i64, i64 }
-
-define void @_ada_c35507b() {
-entry:
-	br label %bb
-
-bb:		; preds = %bb13, %entry
-	%ch.0 = phi i8 [ 0, %entry ], [ 0, %bb13 ]		; <i8> [#uses=1]
-	%tmp11 = icmp ugt i8 %ch.0, 31		; <i1> [#uses=1]
-	%tmp120 = call %struct.system__secondary_stack__mark_id @system__secondary_stack__ss_mark( )		; <%struct.system__secondary_stack__mark_id> [#uses=1]
-	br i1 %tmp11, label %bb110, label %bb13
-
-bb13:		; preds = %bb
-	br label %bb
-
-bb110:		; preds = %bb
-	%mrv_gr124 = getresult %struct.system__secondary_stack__mark_id %tmp120, 1		; <i64> [#uses=0]
-	unreachable
-}
-
-declare %struct.system__secondary_stack__mark_id @system__secondary_stack__ss_mark()
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-11-27-EntryMunge.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-11-27-EntryMunge.ll
deleted file mode 100644
index 216dacb..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-11-27-EntryMunge.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s  | opt -jump-threading -simplifycfg | llvm-dis | grep {ret i32 0}
-; PR3138
-
-define i32 @jt() {
-entry:
-       br i1 true, label %bb3, label %bb
-
-bb:             ; preds = %entry
-       unreachable
-
-bb3:            ; preds = %entry
-       ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-11-28-InfLoop.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-11-28-InfLoop.ll
deleted file mode 100644
index 974b9ef..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/2008-11-28-InfLoop.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading | llvm-dis
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.5"
-	%struct.decContext = type { i32 }
-	%struct.decNumber = type { i32, i32 }
-
-define i32 @decNumberPower(%struct.decNumber* %res, %struct.decNumber* %lhs, %struct.decNumber* %rhs, %struct.decContext* %set) nounwind {
-entry:
-	br i1 true, label %decDivideOp.exit, label %bb7.i
-
-bb7.i:		; preds = %bb7.i, %entry
-	br label %bb7.i
-
-decDivideOp.exit:		; preds = %entry
-	ret i32 undef
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/2009-01-08-DeadLoopRepl.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/2009-01-08-DeadLoopRepl.ll
deleted file mode 100644
index 6de67eb..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/2009-01-08-DeadLoopRepl.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading | llvm-dis
-; PR3298
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-
-define i32 @func(i32 %p_79, i32 %p_80) nounwind {
-entry:
-	br label %bb7
-
-bb1:		; preds = %bb2
-	br label %bb2
-
-bb2:		; preds = %bb7, %bb1
-	%l_82.0 = phi i8 [ 0, %bb1 ], [ %l_82.1, %bb7 ]		; <i8> [#uses=3]
-	br i1 true, label %bb3, label %bb1
-
-bb3:		; preds = %bb2
-	%0 = icmp eq i32 %p_80_addr.1, 0		; <i1> [#uses=1]
-	br i1 %0, label %bb7, label %bb6
-
-bb5:		; preds = %bb6
-	%1 = icmp eq i8 %l_82.0, 0		; <i1> [#uses=1]
-	br i1 %1, label %bb1.i, label %bb.i
-
-bb.i:		; preds = %bb5
-	br label %safe_div_func_char_s_s.exit
-
-bb1.i:		; preds = %bb5
-	br label %safe_div_func_char_s_s.exit
-
-safe_div_func_char_s_s.exit:		; preds = %bb1.i, %bb.i
-	br label %bb6
-
-bb6:		; preds = %safe_div_func_char_s_s.exit, %bb3
-	%p_80_addr.0 = phi i32 [ %p_80_addr.1, %bb3 ], [ 1, %safe_div_func_char_s_s.exit ]		; <i32> [#uses=2]
-	%2 = icmp eq i32 %p_80_addr.0, 0		; <i1> [#uses=1]
-	br i1 %2, label %bb7, label %bb5
-
-bb7:		; preds = %bb6, %bb3, %entry
-	%l_82.1 = phi i8 [ 1, %entry ], [ %l_82.0, %bb3 ], [ %l_82.0, %bb6 ]		; <i8> [#uses=2]
-	%p_80_addr.1 = phi i32 [ 0, %entry ], [ %p_80_addr.1, %bb3 ], [ %p_80_addr.0, %bb6 ]		; <i32> [#uses=4]
-	%3 = icmp eq i32 %p_80_addr.1, 0		; <i1> [#uses=1]
-	br i1 %3, label %bb8, label %bb2
-
-bb8:		; preds = %bb7
-	%4 = sext i8 %l_82.1 to i32		; <i32> [#uses=0]
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/2009-01-19-InfSwitchLoop.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/2009-01-19-InfSwitchLoop.ll
deleted file mode 100644
index ab8b087..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/2009-01-19-InfSwitchLoop.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading | llvm-dis
-; PR3353
-
-define i32 @test(i8 %X) {
-entry:
-	%Y = add i8 %X, 1
-	%Z = add i8 %Y, 1
-	br label %bb33.i
-
-bb33.i:		; preds = %bb33.i, %bb32.i
-	switch i8 %Y, label %bb32.i [
-		i8 39, label %bb35.split.i
-		i8 13, label %bb33.i
-	]
-
-bb35.split.i:
-	ret i32 5
-bb32.i:
-	ret i32 1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/and-and-cond.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/and-and-cond.ll
deleted file mode 100644
index de4435c..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/and-and-cond.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -mem2reg -instcombine -simplifycfg  | llvm-dis | grep {ret i32 %v1}
-; There should be no uncond branches left.
-; RUN: llvm-as < %s | opt -jump-threading -mem2reg -instcombine -simplifycfg  | llvm-dis | not grep {br label}
-
-declare i32 @f1()
-declare i32 @f2()
-declare void @f3()
-
-define i32 @test(i1 %cond, i1 %cond2, i1 %cond3) {
-	br i1 %cond, label %T1, label %F1
-
-T1:
-	%v1 = call i32 @f1()
-	br label %Merge
-
-F1:
-	%v2 = call i32 @f2()
-	br label %Merge
-
-Merge:
-	%A = phi i1 [true, %T1], [false, %F1]
-	%B = phi i32 [%v1, %T1], [%v2, %F1]
-	%C = and i1 %A, %cond2
-	%D = and i1 %C, %cond3
-	br i1 %D, label %T2, label %F2
-
-T2:
-	call void @f3()
-	ret i32 %B
-
-F2:
-	ret i32 %B
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/and-cond.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/and-cond.ll
deleted file mode 100644
index b01c4ba..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/and-cond.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -mem2reg -instcombine -simplifycfg  | llvm-dis | grep {ret i32 %v1}
-; There should be no uncond branches left.
-; RUN: llvm-as < %s | opt -jump-threading -mem2reg -instcombine -simplifycfg  | llvm-dis | not grep {br label}
-
-declare i32 @f1()
-declare i32 @f2()
-declare void @f3()
-
-define i32 @test(i1 %cond, i1 %cond2) {
-	br i1 %cond, label %T1, label %F1
-
-T1:
-	%v1 = call i32 @f1()
-	br label %Merge
-
-F1:
-	%v2 = call i32 @f2()
-	br label %Merge
-
-Merge:
-	%A = phi i1 [true, %T1], [false, %F1]
-	%B = phi i32 [%v1, %T1], [%v2, %F1]
-	%C = and i1 %A, %cond2
-	br i1 %C, label %T2, label %F2
-
-T2:
-	call void @f3()
-	ret i32 %B
-
-F2:
-	ret i32 %B
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/basic.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/basic.ll
deleted file mode 100644
index bf746e7..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/basic.ll
+++ /dev/null
@@ -1,53 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -simplifycfg -mem2reg | llvm-dis | grep {ret i32 %v1}
-; There should be no uncond branches left.
-; RUN: llvm-as < %s | opt -jump-threading -simplifycfg -mem2reg | llvm-dis | not grep {br label}
-
-declare i32 @f1()
-declare i32 @f2()
-declare void @f3()
-
-define i32 @test(i1 %cond) {
-	br i1 %cond, label %T1, label %F1
-
-T1:
-	%v1 = call i32 @f1()
-	br label %Merge
-
-F1:
-	%v2 = call i32 @f2()
-	br label %Merge
-
-Merge:
-	%A = phi i1 [true, %T1], [false, %F1]
-	%B = phi i32 [%v1, %T1], [%v2, %F1]
-	br i1 %A, label %T2, label %F2
-
-T2:
-	call void @f3()
-	ret i32 %B
-
-F2:
-	ret i32 %B
-}
-
-
-;; cond is known false on Entry -> F1 edge!
-define i32 @test2(i1 %cond) {
-Entry:
-	br i1 %cond, label %T1, label %F1
-
-T1:
-	%v1 = call i32 @f1()
-	br label %Merge
-
-F1:
-	br i1 %cond, label %Merge, label %F2
-
-Merge:
-	%B = phi i32 [47, %T1], [192, %F1]
-	ret i32 %B
-
-F2:
-	call void @f3()
-	ret i32 12
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/branch-no-const.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/branch-no-const.ll
deleted file mode 100644
index 0ea2431..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/branch-no-const.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading | llvm-dis | not grep phi
-
-declare i8 @mcguffin()
-
-define i32 @test(i1 %foo, i8 %b) {
-entry:
-  %a = call i8 @mcguffin()
-  br i1 %foo, label %bb1, label %bb2
-bb1:
-  br label %jt
-bb2:
-  br label %jt
-jt:
-  %x = phi i8 [%a, %bb1], [%b, %bb2]
-  %A = icmp eq i8 %x, %a
-  br i1 %A, label %rt, label %rf
-rt:
-  ret i32 7
-rf:
-  ret i32 8
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/compare.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/compare.ll
deleted file mode 100644
index cbada56..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/compare.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; There should be no phi nodes left.
-; RUN: llvm-as < %s | opt -jump-threading -simplifycfg -mem2reg | llvm-dis | not grep {phi i32}
-
-declare i32 @f1()
-declare i32 @f2()
-declare void @f3()
-
-define i32 @test(i1 %cond) {
-	br i1 %cond, label %T1, label %F1
-
-T1:
-	%v1 = call i32 @f1()
-	br label %Merge
-
-F1:
-	%v2 = call i32 @f2()
-	br label %Merge
-
-Merge:
-	%B = phi i32 [%v1, %T1], [12, %F1]
-	%A = icmp ne i32 %B, 42
-	br i1 %A, label %T2, label %F2
-
-T2:
-	call void @f3()
-	ret i32 1
-
-F2:
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/dg.exp b/libclamav/c++/llvm/test/Transforms/JumpThreading/dg.exp
deleted file mode 100644
index de42dad..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.ll]]
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/dup-cond.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/dup-cond.ll
deleted file mode 100644
index e20d939..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/dup-cond.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -die | llvm-dis | grep icmp | count 1
-
-declare void @f1()
-declare void @f2()
-declare void @f3()
-
-define i32 @test(i32 %A) {
-	%tmp455 = icmp eq i32 %A, 42
-	br i1 %tmp455, label %BB1, label %BB2
-        
-BB2:
-	call void @f1()
-	br label %BB1
-        
-
-BB1:
-	%tmp459 = icmp eq i32 %A, 42
-	br i1 %tmp459, label %BB3, label %BB4
-
-BB3:
-	call void @f2()
-        ret i32 3
-
-BB4:
-	call void @f3()
-	ret i32 4
-}
-
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/no-irreducible-loops.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/no-irreducible-loops.ll
deleted file mode 100644
index 0c729d1..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/no-irreducible-loops.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -loop-rotate -instcombine -indvars -loop-unroll -simplifycfg | llvm-dis > %t
-; RUN: grep {volatile store} %t | count 3
-; RUN: not grep {br label} %t
-
-; Jump threading should not prevent this loop from being unrolled.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
- at v1 = external global i32		; <i32*> [#uses=2]
-
-define i32 @unroll() nounwind {
-entry:
-	br label %bb4
-
-bb:		; preds = %bb4
-	%0 = icmp eq i32 %i.0, 0		; <i1> [#uses=1]
-	br i1 %0, label %bb1, label %bb2
-
-bb1:		; preds = %bb
-	volatile store i32 1000, i32* @v1, align 4
-	br label %bb3
-
-bb2:		; preds = %bb
-	volatile store i32 1001, i32* @v1, align 4
-	br label %bb3
-
-bb3:		; preds = %bb2, %bb1
-	%1 = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %bb4
-
-bb4:		; preds = %bb3, %entry
-	%i.0 = phi i32 [ 0, %entry ], [ %1, %bb3 ]		; <i32> [#uses=3]
-	%2 = icmp sgt i32 %i.0, 2		; <i1> [#uses=1]
-	br i1 %2, label %bb5, label %bb
-
-bb5:		; preds = %bb4
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/thread-loads.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/thread-loads.ll
deleted file mode 100644
index 5c0b256..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/thread-loads.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading -mem2reg -simplifycfg | llvm-dis | grep {ret i32 1}
-; rdar://6402033
-
-; Test that we can thread through the block with the partially redundant load (%2).
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin7"
-
-define i32 @foo(i32* %P) nounwind {
-entry:
-	%0 = tail call i32 (...)* @f1() nounwind		; <i32> [#uses=1]
-	%1 = icmp eq i32 %0, 0		; <i1> [#uses=1]
-	br i1 %1, label %bb1, label %bb
-
-bb:		; preds = %entry
-	store i32 42, i32* %P, align 4
-	br label %bb1
-
-bb1:		; preds = %entry, %bb
-	%res.0 = phi i32 [ 1, %bb ], [ 0, %entry ]		; <i32> [#uses=2]
-	%2 = load i32* %P, align 4		; <i32> [#uses=1]
-	%3 = icmp sgt i32 %2, 36		; <i1> [#uses=1]
-	br i1 %3, label %bb3, label %bb2
-
-bb2:		; preds = %bb1
-	%4 = tail call i32 (...)* @f2() nounwind		; <i32> [#uses=0]
-	ret i32 %res.0
-
-bb3:		; preds = %bb1
-	ret i32 %res.0
-}
-
-declare i32 @f1(...)
-
-declare i32 @f2(...)
diff --git a/libclamav/c++/llvm/test/Transforms/JumpThreading/undef.ll b/libclamav/c++/llvm/test/Transforms/JumpThreading/undef.ll
deleted file mode 100644
index 497a87a..0000000
--- a/libclamav/c++/llvm/test/Transforms/JumpThreading/undef.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -jump-threading | llvm-dis | not grep {br }
-; RUN: llvm-as < %s | opt -jump-threading | llvm-dis | grep {ret i32} | count 1
-
-define i32 @test(i1 %cond) {
-	br i1 undef, label %T1, label %F1
-
-T1:
-	ret i32 42
-
-F1:
-	ret i32 17
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
deleted file mode 100644
index aa24014..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
-; RUN:   grep {%SJE.0.0.lcssa = phi .struct.SetJmpMapEntry}
-; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
-; RUN:   grep {%SJE.0.0.lcssa1 = phi .struct.SetJmpMapEntry}
-
-        %struct.SetJmpMapEntry = type { i8*, i32, %struct.SetJmpMapEntry* }
-
-define void @__llvm_sjljeh_try_catching_longjmp_exception() {
-entry:
-        br i1 false, label %UnifiedReturnBlock, label %no_exit
-no_exit:                ; preds = %endif, %entry
-        %SJE.0.0 = phi %struct.SetJmpMapEntry* [ %tmp.24, %endif ], [ null, %entry ]            ; <%struct.SetJmpMapEntry*> [#uses=1]
-        br i1 false, label %then, label %endif
-then:           ; preds = %no_exit
-        %tmp.20 = getelementptr %struct.SetJmpMapEntry* %SJE.0.0, i32 0, i32 1          ; <i32*> [#uses=0]
-        ret void
-endif:          ; preds = %no_exit
-        %tmp.24 = load %struct.SetJmpMapEntry** null            ; <%struct.SetJmpMapEntry*> [#uses=1]
-        br i1 false, label %UnifiedReturnBlock, label %no_exit
-UnifiedReturnBlock:             ; preds = %endif, %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
deleted file mode 100644
index eaccbad..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
-; RUN:    grep {%X.1.lcssa}
-; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
-; RUN:    not grep {%X.1.lcssa1}
-
-declare i1 @c1()
-
-declare i1 @c2()
-
-define i32 @foo() {
-entry:
-	br label %loop_begin
-loop_begin:		; preds = %loop_body.2, %entry
-	br i1 true, label %loop_body.1, label %loop_exit2
-loop_body.1:		; preds = %loop_begin
-	%X.1 = add i32 0, 1		; <i32> [#uses=1]
-	%rel.1 = call i1 @c1( )		; <i1> [#uses=1]
-	br i1 %rel.1, label %loop_exit, label %loop_body.2
-loop_body.2:		; preds = %loop_body.1
-	%rel.2 = call i1 @c2( )		; <i1> [#uses=1]
-	br i1 %rel.2, label %loop_exit, label %loop_begin
-loop_exit:		; preds = %loop_body.2, %loop_body.1
-	ret i32 %X.1
-loop_exit2:		; preds = %loop_begin
-	ret i32 1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
deleted file mode 100644
index c8af100..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -lcssa
-
-	%struct.SetJmpMapEntry = type { i8*, i32, %struct.SetJmpMapEntry* }
-
-define void @__llvm_sjljeh_try_catching_longjmp_exception() {
-entry:
-	br label %loopentry
-loopentry:		; preds = %endif, %entry
-	%SJE.0 = phi %struct.SetJmpMapEntry* [ null, %entry ], [ %tmp.25, %endif ]	; <%struct.SetJmpMapEntry*> [#uses=1]
-	br i1 false, label %no_exit, label %loopexit
-no_exit:		; preds = %loopentry
-	br i1 false, label %then, label %endif
-then:		; preds = %no_exit
-	%tmp.21 = getelementptr %struct.SetJmpMapEntry* %SJE.0, i32 0, i32 1		; <i32*> [#uses=0]
-	br label %return
-endif:		; preds = %no_exit
-	%tmp.25 = load %struct.SetJmpMapEntry** null		; <%struct.SetJmpMapEntry*> [#uses=1]
-	br label %loopentry
-loopexit:		; preds = %loopentry
-	br label %return
-return:		; preds = %loopexit, %then
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
deleted file mode 100644
index bececb1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
+++ /dev/null
@@ -1,145 +0,0 @@
-; RUN: llvm-as < %s | opt -lcssa -disable-output -verify-dom-info
-; PR977
-; END.
-declare i32 @opost_block()
-
-define void @write_chan() {
-entry:
-	br i1 false, label %shortcirc_next.0, label %shortcirc_done.0
-shortcirc_next.0:		; preds = %entry
-	br label %shortcirc_done.0
-shortcirc_done.0:		; preds = %shortcirc_next.0, %entry
-	br i1 false, label %shortcirc_next.1, label %shortcirc_done.1
-shortcirc_next.1:		; preds = %shortcirc_done.0
-	br label %shortcirc_done.1
-shortcirc_done.1:		; preds = %shortcirc_next.1, %shortcirc_done.0
-	br i1 false, label %then.0, label %endif.0
-then.0:		; preds = %shortcirc_done.1
-	br i1 false, label %then.1, label %endif.1
-then.1:		; preds = %then.0
-	br label %return
-after_ret.0:		; No predecessors!
-	br label %endif.1
-endif.1:		; preds = %after_ret.0, %then.0
-	br label %endif.0
-endif.0:		; preds = %endif.1, %shortcirc_done.1
-	br label %loopentry.0
-loopentry.0:		; preds = %endif.12, %endif.0
-	br i1 false, label %then.2, label %endif.2
-then.2:		; preds = %loopentry.0
-	br label %loopexit.0
-dead_block_after_break.0:		; No predecessors!
-	br label %endif.2
-endif.2:		; preds = %dead_block_after_break.0, %loopentry.0
-	br i1 false, label %shortcirc_done.2, label %shortcirc_next.2
-shortcirc_next.2:		; preds = %endif.2
-	br i1 false, label %shortcirc_next.3, label %shortcirc_done.3
-shortcirc_next.3:		; preds = %shortcirc_next.2
-	br label %shortcirc_done.3
-shortcirc_done.3:		; preds = %shortcirc_next.3, %shortcirc_next.2
-	br label %shortcirc_done.2
-shortcirc_done.2:		; preds = %shortcirc_done.3, %endif.2
-	br i1 false, label %then.3, label %endif.3
-then.3:		; preds = %shortcirc_done.2
-	br label %loopexit.0
-dead_block_after_break.1:		; No predecessors!
-	br label %endif.3
-endif.3:		; preds = %dead_block_after_break.1, %shortcirc_done.2
-	br i1 false, label %shortcirc_next.4, label %shortcirc_done.4
-shortcirc_next.4:		; preds = %endif.3
-	br label %shortcirc_done.4
-shortcirc_done.4:		; preds = %shortcirc_next.4, %endif.3
-	br i1 false, label %then.4, label %else
-then.4:		; preds = %shortcirc_done.4
-	br label %loopentry.1
-loopentry.1:		; preds = %endif.8, %then.4
-	br i1 false, label %no_exit, label %loopexit.1
-no_exit:		; preds = %loopentry.1
-	%tmp.94 = call i32 @opost_block( )		; <i32> [#uses=1]
-	br i1 false, label %then.5, label %endif.5
-then.5:		; preds = %no_exit
-	br i1 false, label %then.6, label %endif.6
-then.6:		; preds = %then.5
-	br label %loopexit.1
-dead_block_after_break.2:		; No predecessors!
-	br label %endif.6
-endif.6:		; preds = %dead_block_after_break.2, %then.5
-	br label %break_out
-dead_block_after_goto.0:		; No predecessors!
-	br label %endif.5
-endif.5:		; preds = %dead_block_after_goto.0, %no_exit
-	br i1 false, label %then.7, label %endif.7
-then.7:		; preds = %endif.5
-	br label %loopexit.1
-dead_block_after_break.3:		; No predecessors!
-	br label %endif.7
-endif.7:		; preds = %dead_block_after_break.3, %endif.5
-	switch i32 1, label %switchexit [
-		 i32 4, label %label.2
-		 i32 2, label %label.1
-		 i32 1, label %label.0
-	]
-label.0:		; preds = %endif.7
-	br label %switchexit
-dead_block_after_break.4:		; No predecessors!
-	br label %label.1
-label.1:		; preds = %dead_block_after_break.4, %endif.7
-	br label %switchexit
-dead_block_after_break.5:		; No predecessors!
-	br label %label.2
-label.2:		; preds = %dead_block_after_break.5, %endif.7
-	br label %switchexit
-dead_block_after_break.6:		; No predecessors!
-	br label %switchexit
-switchexit:		; preds = %dead_block_after_break.6, %label.2, %label.1, %label.0, %endif.7
-	br i1 false, label %then.8, label %endif.8
-then.8:		; preds = %switchexit
-	br label %loopexit.1
-dead_block_after_break.7:		; No predecessors!
-	br label %endif.8
-endif.8:		; preds = %dead_block_after_break.7, %switchexit
-	br label %loopentry.1
-loopexit.1:		; preds = %then.8, %then.7, %then.6, %loopentry.1
-	br i1 false, label %then.9, label %endif.9
-then.9:		; preds = %loopexit.1
-	br label %endif.9
-endif.9:		; preds = %then.9, %loopexit.1
-	br label %endif.4
-else:		; preds = %shortcirc_done.4
-	br i1 false, label %then.10, label %endif.10
-then.10:		; preds = %else
-	br label %break_out
-dead_block_after_goto.1:		; No predecessors!
-	br label %endif.10
-endif.10:		; preds = %dead_block_after_goto.1, %else
-	br label %endif.4
-endif.4:		; preds = %endif.10, %endif.9
-	br i1 false, label %then.11, label %endif.11
-then.11:		; preds = %endif.4
-	br label %loopexit.0
-dead_block_after_break.8:		; No predecessors!
-	br label %endif.11
-endif.11:		; preds = %dead_block_after_break.8, %endif.4
-	br i1 false, label %then.12, label %endif.12
-then.12:		; preds = %endif.11
-	br label %loopexit.0
-dead_block_after_break.9:		; No predecessors!
-	br label %endif.12
-endif.12:		; preds = %dead_block_after_break.9, %endif.11
-	br label %loopentry.0
-loopexit.0:		; preds = %then.12, %then.11, %then.3, %then.2
-	br label %break_out
-break_out:		; preds = %loopexit.0, %then.10, %endif.6
-	%retval.3 = phi i32 [ 0, %loopexit.0 ], [ %tmp.94, %endif.6 ], [ 0, %then.10 ]		; <i32> [#uses=0]
-	br i1 false, label %cond_true, label %cond_false
-cond_true:		; preds = %break_out
-	br label %cond_continue
-cond_false:		; preds = %break_out
-	br label %cond_continue
-cond_continue:		; preds = %cond_false, %cond_true
-	br label %return
-after_ret.1:		; No predecessors!
-	br label %return
-return:		; preds = %after_ret.1, %cond_continue, %then.1
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
deleted file mode 100644
index b02feb4..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
+++ /dev/null
@@ -1,184 +0,0 @@
-; RUN: llvm-as < %s | opt -lcssa -disable-output
-; PR977
-; END.
-
-define void @process_backlog() {
-entry:
-	br label %loopentry.preheader
-loopentry.preheader:		; preds = %dead_block_after_break, %entry
-	%work.0.ph = phi i32 [ %inc, %dead_block_after_break ], [ 0, %entry ]		; <i32> [#uses=0]
-	br label %loopentry
-loopentry:		; preds = %endif.1, %loopentry.preheader
-	br i1 false, label %then.i, label %loopentry.__skb_dequeue67.exit_crit_edge
-loopentry.__skb_dequeue67.exit_crit_edge:		; preds = %loopentry
-	br label %__skb_dequeue67.exit
-then.i:		; preds = %loopentry
-	br label %__skb_dequeue67.exit
-__skb_dequeue67.exit:		; preds = %then.i, %loopentry.__skb_dequeue67.exit_crit_edge
-	br i1 false, label %then.0, label %__skb_dequeue67.exit.endif.0_crit_edge
-__skb_dequeue67.exit.endif.0_crit_edge:		; preds = %__skb_dequeue67.exit
-	br label %endif.0
-then.0:		; preds = %__skb_dequeue67.exit
-	br label %job_done
-dead_block_after_goto:		; No predecessors!
-	unreachable
-endif.0:		; preds = %__skb_dequeue67.exit.endif.0_crit_edge
-	br i1 false, label %then.0.i, label %endif.0.endif.0.i_crit_edge
-endif.0.endif.0.i_crit_edge:		; preds = %endif.0
-	br label %endif.0.i
-then.0.i:		; preds = %endif.0
-	br label %endif.0.i
-endif.0.i:		; preds = %then.0.i, %endif.0.endif.0.i_crit_edge
-	br i1 false, label %then.i.i, label %endif.0.i.skb_bond.exit.i_crit_edge
-endif.0.i.skb_bond.exit.i_crit_edge:		; preds = %endif.0.i
-	br label %skb_bond.exit.i
-then.i.i:		; preds = %endif.0.i
-	br label %skb_bond.exit.i
-skb_bond.exit.i:		; preds = %then.i.i, %endif.0.i.skb_bond.exit.i_crit_edge
-	br label %loopentry.0.i
-loopentry.0.i:		; preds = %loopentry.0.i.backedge, %skb_bond.exit.i
-	br i1 false, label %loopentry.0.i.no_exit.0.i_crit_edge, label %loopentry.0.i.loopexit.0.i_crit_edge
-loopentry.0.i.loopexit.0.i_crit_edge:		; preds = %loopentry.0.i
-	br label %loopexit.0.i
-loopentry.0.i.no_exit.0.i_crit_edge:		; preds = %loopentry.0.i
-	br label %no_exit.0.i
-no_exit.0.i:		; preds = %then.3.i.no_exit.0.i_crit_edge, %loopentry.0.i.no_exit.0.i_crit_edge
-	br i1 false, label %no_exit.0.i.shortcirc_done.0.i_crit_edge, label %shortcirc_next.0.i
-no_exit.0.i.shortcirc_done.0.i_crit_edge:		; preds = %no_exit.0.i
-	br label %shortcirc_done.0.i
-shortcirc_next.0.i:		; preds = %no_exit.0.i
-	br label %shortcirc_done.0.i
-shortcirc_done.0.i:		; preds = %shortcirc_next.0.i, %no_exit.0.i.shortcirc_done.0.i_crit_edge
-	br i1 false, label %then.1.i, label %endif.1.i
-then.1.i:		; preds = %shortcirc_done.0.i
-	br i1 false, label %then.2.i, label %then.1.i.endif.2.i_crit_edge
-then.1.i.endif.2.i_crit_edge:		; preds = %then.1.i
-	br label %endif.2.i
-then.2.i:		; preds = %then.1.i
-	br i1 false, label %then.3.i, label %else.0.i
-then.3.i:		; preds = %then.2.i
-	br i1 false, label %then.3.i.no_exit.0.i_crit_edge, label %then.3.i.loopexit.0.i_crit_edge
-then.3.i.loopexit.0.i_crit_edge:		; preds = %then.3.i
-	br label %loopexit.0.i
-then.3.i.no_exit.0.i_crit_edge:		; preds = %then.3.i
-	br label %no_exit.0.i
-else.0.i:		; preds = %then.2.i
-	br label %endif.2.i
-endif.3.i:		; No predecessors!
-	unreachable
-endif.2.i:		; preds = %else.0.i, %then.1.i.endif.2.i_crit_edge
-	br label %loopentry.0.i.backedge
-endif.1.i:		; preds = %shortcirc_done.0.i
-	br label %loopentry.0.i.backedge
-loopentry.0.i.backedge:		; preds = %endif.1.i, %endif.2.i
-	br label %loopentry.0.i
-loopexit.0.i:		; preds = %then.3.i.loopexit.0.i_crit_edge, %loopentry.0.i.loopexit.0.i_crit_edge
-	br label %loopentry.1.i
-loopentry.1.i:		; preds = %loopentry.1.i.backedge, %loopexit.0.i
-	br i1 false, label %loopentry.1.i.no_exit.1.i_crit_edge, label %loopentry.1.i.loopexit.1.i_crit_edge
-loopentry.1.i.loopexit.1.i_crit_edge:		; preds = %loopentry.1.i
-	br label %loopexit.1.i
-loopentry.1.i.no_exit.1.i_crit_edge:		; preds = %loopentry.1.i
-	br label %no_exit.1.i
-no_exit.1.i:		; preds = %then.6.i.no_exit.1.i_crit_edge, %loopentry.1.i.no_exit.1.i_crit_edge
-	br i1 false, label %shortcirc_next.1.i, label %no_exit.1.i.shortcirc_done.1.i_crit_edge
-no_exit.1.i.shortcirc_done.1.i_crit_edge:		; preds = %no_exit.1.i
-	br label %shortcirc_done.1.i
-shortcirc_next.1.i:		; preds = %no_exit.1.i
-	br i1 false, label %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge, label %shortcirc_next.2.i
-shortcirc_next.1.i.shortcirc_done.2.i_crit_edge:		; preds = %shortcirc_next.1.i
-	br label %shortcirc_done.2.i
-shortcirc_next.2.i:		; preds = %shortcirc_next.1.i
-	br label %shortcirc_done.2.i
-shortcirc_done.2.i:		; preds = %shortcirc_next.2.i, %shortcirc_next.1.i.shortcirc_done.2.i_crit_edge
-	br label %shortcirc_done.1.i
-shortcirc_done.1.i:		; preds = %shortcirc_done.2.i, %no_exit.1.i.shortcirc_done.1.i_crit_edge
-	br i1 false, label %then.4.i, label %endif.4.i
-then.4.i:		; preds = %shortcirc_done.1.i
-	br i1 false, label %then.5.i, label %then.4.i.endif.5.i_crit_edge
-then.4.i.endif.5.i_crit_edge:		; preds = %then.4.i
-	br label %endif.5.i
-then.5.i:		; preds = %then.4.i
-	br i1 false, label %then.6.i, label %else.1.i
-then.6.i:		; preds = %then.5.i
-	br i1 false, label %then.6.i.no_exit.1.i_crit_edge, label %then.6.i.loopexit.1.i_crit_edge
-then.6.i.loopexit.1.i_crit_edge:		; preds = %then.6.i
-	br label %loopexit.1.i
-then.6.i.no_exit.1.i_crit_edge:		; preds = %then.6.i
-	br label %no_exit.1.i
-else.1.i:		; preds = %then.5.i
-	br label %endif.5.i
-endif.6.i:		; No predecessors!
-	unreachable
-endif.5.i:		; preds = %else.1.i, %then.4.i.endif.5.i_crit_edge
-	br label %loopentry.1.i.backedge
-endif.4.i:		; preds = %shortcirc_done.1.i
-	br label %loopentry.1.i.backedge
-loopentry.1.i.backedge:		; preds = %endif.4.i, %endif.5.i
-	br label %loopentry.1.i
-loopexit.1.i:		; preds = %then.6.i.loopexit.1.i_crit_edge, %loopentry.1.i.loopexit.1.i_crit_edge
-	br i1 false, label %then.7.i, label %else.2.i
-then.7.i:		; preds = %loopexit.1.i
-	br i1 false, label %then.8.i, label %else.3.i
-then.8.i:		; preds = %then.7.i
-	br label %netif_receive_skb.exit
-else.3.i:		; preds = %then.7.i
-	br label %netif_receive_skb.exit
-endif.8.i:		; No predecessors!
-	unreachable
-else.2.i:		; preds = %loopexit.1.i
-	br i1 false, label %else.2.i.shortcirc_done.i.i_crit_edge, label %shortcirc_next.i.i
-else.2.i.shortcirc_done.i.i_crit_edge:		; preds = %else.2.i
-	br label %shortcirc_done.i.i
-shortcirc_next.i.i:		; preds = %else.2.i
-	br label %shortcirc_done.i.i
-shortcirc_done.i.i:		; preds = %shortcirc_next.i.i, %else.2.i.shortcirc_done.i.i_crit_edge
-	br i1 false, label %then.i1.i, label %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge
-shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge:		; preds = %shortcirc_done.i.i
-	br label %kfree_skb65.exit.i
-then.i1.i:		; preds = %shortcirc_done.i.i
-	br label %kfree_skb65.exit.i
-kfree_skb65.exit.i:		; preds = %then.i1.i, %shortcirc_done.i.i.kfree_skb65.exit.i_crit_edge
-	br label %netif_receive_skb.exit
-netif_receive_skb.exit:		; preds = %kfree_skb65.exit.i, %else.3.i, %then.8.i
-	br i1 false, label %then.i1, label %netif_receive_skb.exit.dev_put69.exit_crit_edge
-netif_receive_skb.exit.dev_put69.exit_crit_edge:		; preds = %netif_receive_skb.exit
-	br label %dev_put69.exit
-then.i1:		; preds = %netif_receive_skb.exit
-	br label %dev_put69.exit
-dev_put69.exit:		; preds = %then.i1, %netif_receive_skb.exit.dev_put69.exit_crit_edge
-	%inc = add i32 0, 1		; <i32> [#uses=1]
-	br i1 false, label %dev_put69.exit.shortcirc_done_crit_edge, label %shortcirc_next
-dev_put69.exit.shortcirc_done_crit_edge:		; preds = %dev_put69.exit
-	br label %shortcirc_done
-shortcirc_next:		; preds = %dev_put69.exit
-	br label %shortcirc_done
-shortcirc_done:		; preds = %shortcirc_next, %dev_put69.exit.shortcirc_done_crit_edge
-	br i1 false, label %then.1, label %endif.1
-then.1:		; preds = %shortcirc_done
-	ret void
-dead_block_after_break:		; No predecessors!
-	br label %loopentry.preheader
-endif.1:		; preds = %shortcirc_done
-	br label %loopentry
-loopexit:		; No predecessors!
-	unreachable
-after_ret.0:		; No predecessors!
-	br label %job_done
-job_done:		; preds = %after_ret.0, %then.0
-	br label %loopentry.i
-loopentry.i:		; preds = %no_exit.i, %job_done
-	br i1 false, label %no_exit.i, label %clear_bit62.exit
-no_exit.i:		; preds = %loopentry.i
-	br label %loopentry.i
-clear_bit62.exit:		; preds = %loopentry.i
-	br i1 false, label %then.2, label %endif.2
-then.2:		; preds = %clear_bit62.exit
-	ret void
-endif.2:		; preds = %clear_bit62.exit
-	ret void
-after_ret.1:		; No predecessors!
-	ret void
-return:		; No predecessors!
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll
deleted file mode 100644
index e8dc391..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -licm -loop-unswitch -disable-output
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	br label %bb7
-
-bb7:		; preds = %bb7, %entry
-	%tmp39 = load <4 x float>* null		; <<4 x float>> [#uses=1]
-	%tmp40 = fadd <4 x float> %tmp39, < float 2.000000e+00, float 3.000000e+00, float 1.000000e+00, float 0.000000e+00 >		; <<4 x float>> [#uses=1]
-	%tmp43 = fadd <4 x float> %tmp40, < float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 2.000000e+00 >		; <<4 x float>> [#uses=1]
-	%tmp46 = fadd <4 x float> %tmp43, < float 3.000000e+00, float 0.000000e+00, float 2.000000e+00, float 4.000000e+00 >		; <<4 x float>> [#uses=1]
-	%tmp49 = fadd <4 x float> %tmp46, < float 0.000000e+00, float 4.000000e+00, float 6.000000e+00, float 1.000000e+00 >		; <<4 x float>> [#uses=1]
-	store <4 x float> %tmp49, <4 x float>* null
-	br i1 false, label %bb7, label %bb56
-
-bb56:		; preds = %bb7
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll
deleted file mode 100644
index 72cebed..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -licm -loop-unswitch -disable-output
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-        br label %bb
-
-bb:             ; preds = %bb56, %entry
-        br label %bb7
-
-bb7:            ; preds = %bb7, %bb
-        %tmp39 = load <4 x float>* null         ; <<4 x float>> [#uses=1]
-        %tmp40 = fadd <4 x float> %tmp39, < float 2.000000e+00, float 3.000000e+00, float 1.000000e+00, float 0.000000e+00 >             ; <<4 x float>> [#uses=1]
-        %tmp43 = fadd <4 x float> %tmp40, < float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 2.000000e+00 >             ; <<4 x float>> [#uses=1]
-        %tmp46 = fadd <4 x float> %tmp43, < float 3.000000e+00, float 0.000000e+00, float 2.000000e+00, float 4.000000e+00 >             ; <<4 x float>> [#uses=1]
-        %tmp49 = fadd <4 x float> %tmp46, < float 0.000000e+00, float 4.000000e+00, float 6.000000e+00, float 1.000000e+00 >             ; <<4 x float>> [#uses=1]
-        store <4 x float> %tmp49, <4 x float>* null
-        br i1 false, label %bb7, label %bb56
-
-bb56:           ; preds = %bb7
-        br i1 false, label %bb, label %bb64
-
-bb64:           ; preds = %bb56
-        ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll
deleted file mode 100644
index 0c433c3..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -licm -loop-unswitch -disable-output
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	br label %bb7
-
-bb7:		; preds = %bb7, %entry
-	%tmp39 = load <4 x float>* null		; <<4 x float>> [#uses=1]
-	%tmp40 = fadd <4 x float> %tmp39, < float 2.000000e+00, float 3.000000e+00, float 1.000000e+00, float 0.000000e+00 >		; <<4 x float>> [#uses=0]
-	store <4 x float> zeroinitializer, <4 x float>* null
-	br i1 false, label %bb7, label %bb56
-
-bb56:		; preds = %bb7
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/basictest.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/basictest.ll
deleted file mode 100644
index 090bde9..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/basictest.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
-; RUN:   grep {X3.lcssa = phi i32}
-; RUN: llvm-as < %s | opt -lcssa | llvm-dis | \
-; RUN:   grep {X4 = add i32 3, %X3.lcssa}
-
-define void @lcssa(i1 %S2) {
-entry:
-	br label %loop.interior
-loop.interior:		; preds = %post.if, %entry
-	br i1 %S2, label %if.true, label %if.false
-if.true:		; preds = %loop.interior
-	%X1 = add i32 0, 0		; <i32> [#uses=1]
-	br label %post.if
-if.false:		; preds = %loop.interior
-	%X2 = add i32 0, 1		; <i32> [#uses=1]
-	br label %post.if
-post.if:		; preds = %if.false, %if.true
-	%X3 = phi i32 [ %X1, %if.true ], [ %X2, %if.false ]		; <i32> [#uses=1]
-	br i1 %S2, label %loop.exit, label %loop.interior
-loop.exit:		; preds = %post.if
-	%X4 = add i32 3, %X3		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/dg.exp b/libclamav/c++/llvm/test/Transforms/LCSSA/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LCSSA/invoke-dest.ll b/libclamav/c++/llvm/test/Transforms/LCSSA/invoke-dest.ll
deleted file mode 100644
index 5c6c7a0..0000000
--- a/libclamav/c++/llvm/test/Transforms/LCSSA/invoke-dest.ll
+++ /dev/null
@@ -1,143 +0,0 @@
-; RUN: llvm-as < %s | opt -lcssa
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-
- at .str12 = external constant [3 x i8], align 1		; <[3 x i8]*> [#uses=1]
- at .str17175 = external constant [4 x i8], align 1		; <[4 x i8]*> [#uses=1]
- at .str21179 = external constant [12 x i8], align 1		; <[12 x i8]*> [#uses=1]
- at .str25183 = external constant [10 x i8], align 1		; <[10 x i8]*> [#uses=1]
- at .str32190 = external constant [92 x i8], align 1		; <[92 x i8]*> [#uses=1]
- at .str41 = external constant [25 x i8], align 1		; <[25 x i8]*> [#uses=1]
-
-define void @_ZN8EtherBus10initializeEv() {
-entry:
-	br i1 undef, label %_ZN7cObjectnwEj.exit, label %bb.i
-
-bb.i:		; preds = %entry
-	br label %_ZN7cObjectnwEj.exit
-
-_ZN7cObjectnwEj.exit:		; preds = %bb.i, %entry
-	invoke void @_ZN7cObjectC2EPKc(i8* undef, i8* getelementptr ([12 x i8]* @.str21179, i32 0, i32 0))
-			to label %bb1 unwind label %lpad
-
-bb1:		; preds = %_ZN7cObjectnwEj.exit
-	br i1 undef, label %_ZNK5cGate4sizeEv.exit, label %bb.i110
-
-bb.i110:		; preds = %bb1
-	br label %_ZNK5cGate4sizeEv.exit
-
-_ZNK5cGate4sizeEv.exit:		; preds = %bb.i110, %bb1
-	br i1 undef, label %_ZNK5cGate4sizeEv.exit122, label %bb.i120
-
-bb.i120:		; preds = %_ZNK5cGate4sizeEv.exit
-	br label %_ZNK5cGate4sizeEv.exit122
-
-_ZNK5cGate4sizeEv.exit122:		; preds = %bb.i120, %_ZNK5cGate4sizeEv.exit
-	br i1 undef, label %bb8, label %bb2
-
-bb2:		; preds = %_ZNK5cGate4sizeEv.exit122
-	unreachable
-
-bb8:		; preds = %_ZNK5cGate4sizeEv.exit122
-	%tmp = invoke i8* @_ZN7cModule3parEPKc(i8* undef, i8* getelementptr ([10 x i8]* @.str25183, i32 0, i32 0))
-			to label %invcont9 unwind label %lpad119		; <i8*> [#uses=1]
-
-invcont9:		; preds = %bb8
-	%tmp1 = invoke i8* @_ZN4cPar11stringValueEv(i8* %tmp)
-			to label %invcont10 unwind label %lpad119		; <i8*> [#uses=1]
-
-invcont10:		; preds = %invcont9
-	invoke void @_ZN8EtherBus8tokenizeEPKcRSt6vectorIdSaIdEE(i8* null, i8* %tmp1, i8* undef)
-			to label %invcont11 unwind label %lpad119
-
-invcont11:		; preds = %invcont10
-	br i1 undef, label %bb12, label %bb18
-
-bb12:		; preds = %invcont11
-	invoke void (i8*, i8*, ...)* @_ZN6cEnvir6printfEPKcz(i8* null, i8* getelementptr ([3 x i8]* @.str12, i32 0, i32 0), i32 undef)
-			to label %bb.i.i159 unwind label %lpad119
-
-bb.i.i159:		; preds = %bb12
-	unreachable
-
-bb18:		; preds = %invcont11
-	br i1 undef, label %bb32, label %bb34
-
-bb32:		; preds = %bb18
-	br i1 undef, label %bb.i.i123, label %bb34
-
-bb.i.i123:		; preds = %bb32
-	br label %bb34
-
-bb34:		; preds = %bb.i.i123, %bb32, %bb18
-	%tmp2 = invoke i8* @_Znaj(i32 undef)
-			to label %invcont35 unwind label %lpad119		; <i8*> [#uses=0]
-
-invcont35:		; preds = %bb34
-	br i1 undef, label %bb49, label %bb61
-
-bb49:		; preds = %invcont35
-	invoke void (i8*, i8*, ...)* @_ZNK13cSimpleModule5errorEPKcz(i8* undef, i8* getelementptr ([92 x i8]* @.str32190, i32 0, i32 0))
-			to label %bb51 unwind label %lpad119
-
-bb51:		; preds = %bb49
-	unreachable
-
-bb61:		; preds = %invcont35
-	br label %bb106
-
-.noexc:		; preds = %bb106
-	invoke void @_ZN7cObjectC2EPKc(i8* undef, i8* getelementptr ([25 x i8]* @.str41, i32 0, i32 0))
-			to label %bb102 unwind label %lpad123
-
-bb102:		; preds = %.noexc
-	invoke void undef(i8* undef, i8 zeroext 1)
-			to label %invcont103 unwind label %lpad119
-
-invcont103:		; preds = %bb102
-	invoke void undef(i8* undef, double 1.000000e+07)
-			to label %invcont104 unwind label %lpad119
-
-invcont104:		; preds = %invcont103
-	%tmp3 = invoke i32 @_ZN13cSimpleModule11sendDelayedEP8cMessagedPKci(i8* undef, i8* undef, double 0.000000e+00, i8* getelementptr ([4 x i8]* @.str17175, i32 0, i32 0), i32 undef)
-			to label %invcont105 unwind label %lpad119		; <i32> [#uses=0]
-
-invcont105:		; preds = %invcont104
-	br label %bb106
-
-bb106:		; preds = %invcont105, %bb61
-	%tmp4 = invoke i8* @_Znaj(i32 124)
-			to label %.noexc unwind label %lpad119		; <i8*> [#uses=1]
-
-lpad:		; preds = %_ZN7cObjectnwEj.exit
-	br label %Unwind
-
-lpad119:		; preds = %bb106, %invcont104, %invcont103, %bb102, %bb49, %bb34, %bb12, %invcont10, %invcont9, %bb8
-	unreachable
-
-lpad123:		; preds = %.noexc
-	%tmp5 = icmp eq i8* %tmp4, null		; <i1> [#uses=1]
-	br i1 %tmp5, label %Unwind, label %bb.i2
-
-bb.i2:		; preds = %lpad123
-	br label %Unwind
-
-Unwind:		; preds = %bb.i2, %lpad123, %lpad
-	unreachable
-}
-
-declare void @_ZN8EtherBus8tokenizeEPKcRSt6vectorIdSaIdEE(i8* nocapture, i8*, i8*)
-
-declare i8* @_Znaj(i32)
-
-declare void @_ZN6cEnvir6printfEPKcz(i8* nocapture, i8* nocapture, ...)
-
-declare void @_ZNK13cSimpleModule5errorEPKcz(i8* nocapture, i8* nocapture, ...) noreturn
-
-declare i8* @_ZN7cModule3parEPKc(i8*, i8*)
-
-declare i32 @_ZN13cSimpleModule11sendDelayedEP8cMessagedPKci(i8*, i8*, double, i8*, i32)
-
-declare void @_ZN7cObjectC2EPKc(i8*, i8*)
-
-declare i8* @_ZN4cPar11stringValueEv(i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll
deleted file mode 100644
index cf05206..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -basicaa -licm -disable-output
-
-;%MoveArray = external global [64 x ulong]
-
-define void @InitMoveArray() {
-bb3:
-	%X = alloca [2 x i64]		; <[2 x i64]*> [#uses=1]
-	br i1 false, label %bb13, label %bb4
-bb4:		; preds = %bb3
-	%reg3011 = getelementptr [2 x i64]* %X, i64 0, i64 0		; <i64*> [#uses=1]
-	br label %bb8
-bb8:		; preds = %bb8, %bb4
-	store i64 0, i64* %reg3011
-	br i1 false, label %bb8, label %bb13
-bb13:		; preds = %bb8, %bb3
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-NestedLoopExitBlocks.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-NestedLoopExitBlocks.ll
deleted file mode 100644
index bf209ea..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-NestedLoopExitBlocks.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; Exit blocks need to be updated for all nested loops...
-
-; RUN: llvm-as < %s | opt -loopsimplify
-
-define i32 @yyparse() {
-bb0:
-	br i1 false, label %UnifiedExitNode, label %bb19
-bb19:		; preds = %bb28, %bb0
-	br i1 false, label %bb28, label %UnifiedExitNode
-bb28:		; preds = %bb32, %bb19
-	br i1 false, label %bb32, label %bb19
-bb32:		; preds = %bb28
-	br i1 false, label %UnifiedExitNode, label %bb28
-UnifiedExitNode:		; preds = %bb32, %bb19, %bb0
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-PreheaderExitNodeUpdate.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-PreheaderExitNodeUpdate.ll
deleted file mode 100644
index 4b51a3b..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-PreheaderExitNodeUpdate.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This testcase fails because preheader insertion is not updating exit node 
-; information for loops.
-
-; RUN: llvm-as < %s | opt -licm
-
-define i32 @main(i32 %argc, i8** %argv) {
-bb0:
-	br i1 false, label %bb7, label %bb5
-bb5:		; preds = %bb5, %bb0
-	br i1 false, label %bb5, label %bb7
-bb7:		; preds = %bb7, %bb5, %bb0
-	br i1 false, label %bb7, label %bb10
-bb10:		; preds = %bb7
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-PreheaderProblem.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-PreheaderProblem.ll
deleted file mode 100644
index 18b8606..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-PreheaderProblem.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; Here we have a case where there are two loops and LICM is hoisting an 
-; instruction from one loop into the other loop!  This is obviously bad and 
-; happens because preheader insertion doesn't insert a preheader for this
-; case... bad.
-
-; RUN: llvm-as < %s | opt -licm -loop-deletion -simplifycfg | llvm-dis | \
-; RUN:   not grep {br }
-
-define i32 @main(i32 %argc) {
-; <label>:0
-	br label %bb5
-bb5:		; preds = %bb5, %0
-	%I = phi i32 [ 0, %0 ], [ %I2, %bb5 ]		; <i32> [#uses=1]
-	%I2 = add i32 %I, 1		; <i32> [#uses=2]
-	%c = icmp eq i32 %I2, 10		; <i1> [#uses=1]
-	br i1 %c, label %bb5, label %bb8
-bb8:		; preds = %bb8, %bb5
-	%cann-indvar = phi i32 [ 0, %bb8 ], [ 0, %bb5 ]		; <i32> [#uses=0]
-	%X = add i32 %argc, %argc		; <i32> [#uses=1]
-	br i1 false, label %bb8, label %bb10
-bb10:		; preds = %bb8
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-StoreSinkPHIs.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-StoreSinkPHIs.ll
deleted file mode 100644
index 7ce164e..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-27-StoreSinkPHIs.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; LICM is adding stores before phi nodes.  bad.
-
-; RUN: llvm-as < %s | opt -licm
-
-define i1 @test(i1 %c) {
-; <label>:0
-	br i1 %c, label %Loop, label %Out
-Loop:		; preds = %Loop, %0
-	store i32 0, i32* null
-	br i1 %c, label %Loop, label %Out
-Out:		; preds = %Loop, %0
-	%X = phi i1 [ %c, %0 ], [ true, %Loop ]		; <i1> [#uses=1]
-	ret i1 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-28-PromoteDifferentType.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-02-28-PromoteDifferentType.ll
deleted file mode 100644
index 849ecd7..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-02-28-PromoteDifferentType.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; Test that hoisting is disabled for pointers of different types...
-;
-; RUN: llvm-as < %s | opt -licm
-
-define void @test(i32* %P) {
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	store i32 5, i32* %P
-	%P2 = bitcast i32* %P to i8*		; <i8*> [#uses=1]
-	store i8 4, i8* %P2
-	br i1 true, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-05-02-LoadHoist.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-05-02-LoadHoist.ll
deleted file mode 100644
index 7b58535..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-05-02-LoadHoist.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; This testcase tests for a problem where LICM hoists loads out of a loop 
-; despite the fact that calls to unknown functions may modify what is being 
-; loaded from.  Basically if the load gets hoisted, the subtract gets turned
-; into a constant zero.
-;
-; RUN: llvm-as < %s | opt -licm -gvn -instcombine | llvm-dis | grep load
-
- at X = global i32 7		; <i32*> [#uses=2]
-
-declare void @foo()
-
-define i32 @test(i1 %c) {
-	%A = load i32* @X		; <i32> [#uses=1]
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	call void @foo( )
-        ;; Should not hoist this load!
-	%B = load i32* @X		; <i32> [#uses=1]
-	br i1 %c, label %Loop, label %Out
-Out:		; preds = %Loop
-	%C = sub i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2003-12-11-SinkingToPHI.ll b/libclamav/c++/llvm/test/Transforms/LICM/2003-12-11-SinkingToPHI.ll
deleted file mode 100644
index e491c9a..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2003-12-11-SinkingToPHI.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -licm | lli
-
-define i32 @main() {
-entry:
-	br label %Loop
-Loop:		; preds = %LoopCont, %entry
-	br i1 true, label %LoopCont, label %Out
-LoopCont:		; preds = %Loop
-	%X = add i32 1, 0		; <i32> [#uses=1]
-	br i1 true, label %Out, label %Loop
-Out:		; preds = %LoopCont, %Loop
-	%V = phi i32 [ 2, %Loop ], [ %X, %LoopCont ]		; <i32> [#uses=1]
-	%V2 = sub i32 %V, 1		; <i32> [#uses=1]
-	ret i32 %V2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll b/libclamav/c++/llvm/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll
deleted file mode 100644
index b9c9eb3..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -globalsmodref-aa -licm -disable-output
-
- at PL_regcomp_parse = internal global i8* null		; <i8**> [#uses=2]
-
-define void @test() {
-	br label %Outer
-Outer:		; preds = %Next, %0
-	br label %Inner
-Inner:		; preds = %Inner, %Outer
-	%tmp.114.i.i.i = load i8** @PL_regcomp_parse		; <i8*> [#uses=1]
-	%tmp.115.i.i.i = load i8* %tmp.114.i.i.i		; <i8> [#uses=0]
-	store i8* null, i8** @PL_regcomp_parse
-	br i1 false, label %Inner, label %Next
-Next:		; preds = %Inner
-	br i1 false, label %Outer, label %Exit
-Exit:		; preds = %Next
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll b/libclamav/c++/llvm/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll
deleted file mode 100644
index 9a53d95..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -disable-output
-	%struct.roadlet = type { i8*, %struct.vehicle*, [8 x %struct.roadlet*], [8 x %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)*] }
-	%struct.vehicle = type { %struct.roadlet*, i8*, i32, i32, %union.._631., i32 }
-	%union.._631. = type { i32 }
-
-declare %struct.roadlet* @_Z11return_nullP7roadletP7vehicle9direction(%struct.roadlet*, %struct.vehicle*, i32)
-
-declare %struct.roadlet* @_Z14lane_switch_okP7roadletP7vehicle9direction(%struct.roadlet*, %struct.vehicle*, i32)
-
-define void @main() {
-__main.entry:
-	br label %invoke_cont.3
-invoke_cont.3:		; preds = %invoke_cont.3, %__main.entry
-	%tmp.34.i.i502.7 = getelementptr %struct.roadlet* null, i32 0, i32 3, i32 7		; <%struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)**> [#uses=1]
-	store %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)* @_Z11return_nullP7roadletP7vehicle9direction, %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)** %tmp.34.i.i502.7
-	store %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)* @_Z14lane_switch_okP7roadletP7vehicle9direction, %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)** null
-	%tmp.4.i.i339 = getelementptr %struct.roadlet* null, i32 0, i32 3, i32 undef		; <%struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)**> [#uses=1]
-	store %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)* @_Z11return_nullP7roadletP7vehicle9direction, %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)** %tmp.4.i.i339
-	br label %invoke_cont.3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2005-03-24-LICM-Aggregate-Crash.ll b/libclamav/c++/llvm/test/Transforms/LICM/2005-03-24-LICM-Aggregate-Crash.ll
deleted file mode 100644
index b001cd0..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2005-03-24-LICM-Aggregate-Crash.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -disable-output
-
-define void @test({ i32 }* %P) {
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	free { i32 }* %P
-	br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll b/libclamav/c++/llvm/test/Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll
deleted file mode 100644
index c2c4bcb..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll
+++ /dev/null
@@ -1,148 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -disable-output
-; PR908
-; END.
-
-	%struct.alloc_chain = type { i8*, %struct.alloc_chain* }
-	%struct.oggpack_buffer = type { i32, i32, i8*, i8*, i32 }
-	%struct.vorbis_block = type { float**, %struct.oggpack_buffer, i32, i32, i32, i32, i32, i32, i64, i64, %struct.vorbis_dsp_state*, i8*, i32, i32, i32, %struct.alloc_chain*, i32, i32, i32, i32, i8* }
-	%struct.vorbis_dsp_state = type { i32, %struct.vorbis_info*, float**, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* }
-	%struct.vorbis_info = type { i32, i32, i32, i32, i32, i32, i32, i8* }
-
-define fastcc void @_01forward() {
-entry:
-	br i1 false, label %bb222.preheader, label %bb241
-cond_true67:		; preds = %cond_true87
-	br label %cond_next80
-cond_next80:		; preds = %cond_true87, %cond_true67
-	br label %bb83
-bb83.preheader:		; preds = %cond_true226
-	br i1 false, label %bb83.us.preheader, label %bb83.preheader1
-bb83.us.preheader:		; preds = %bb83.preheader
-	br label %bb83.us
-bb83.us:		; preds = %cond_next80.us, %bb83.us.preheader
-	br i1 false, label %cond_true87.us, label %cond_next92.loopexit2
-cond_next80.us:		; preds = %bb59.loopexit.us, %cond_true67.us
-	br label %bb83.us
-cond_true67.us:		; preds = %bb59.loopexit.us
-	br label %cond_next80.us
-cond_next.us:		; preds = %cond_true56.us, %cond_true38.us
-	br i1 false, label %cond_true56.us, label %bb59.loopexit.us
-cond_true38.us:		; preds = %cond_true56.us
-	br label %cond_next.us
-cond_true56.us:		; preds = %cond_true87.us, %cond_next.us
-	br i1 false, label %cond_true38.us, label %cond_next.us
-cond_true87.us:		; preds = %bb83.us
-	br label %cond_true56.us
-bb59.loopexit.us:		; preds = %cond_next.us
-	br i1 false, label %cond_true67.us, label %cond_next80.us
-bb83.preheader1:		; preds = %bb83.preheader
-	br label %bb83
-bb83:		; preds = %bb83.preheader1, %cond_next80
-	br i1 false, label %cond_next92.loopexit, label %cond_true87
-cond_true87:		; preds = %bb83
-	br i1 false, label %cond_true67, label %cond_next80
-cond_next92.loopexit:		; preds = %bb83
-	br label %cond_next92
-cond_next92.loopexit2:		; preds = %bb83.us
-	br label %cond_next92
-cond_next92:		; preds = %cond_true226, %cond_next92.loopexit2, %cond_next92.loopexit
-	br i1 false, label %cond_true218.loopexit, label %bb222
-cond_true139:		; preds = %cond_true202
-	br i1 false, label %cond_next195, label %cond_true155
-cond_true155:		; preds = %cond_true139
-	br i1 false, label %cond_true249.i.preheader, label %_encodepart.exit
-cond_true.i:		; preds = %cond_true115.i
-	br i1 false, label %bb60.i.preheader, label %cond_next97.i
-bb60.i.preheader:		; preds = %cond_true.i
-	br label %bb60.i
-bb60.i:		; preds = %cond_true63.i, %bb60.i.preheader
-	br i1 false, label %cond_true63.i, label %cond_next97.i.loopexit
-cond_true63.i:		; preds = %bb60.i
-	br i1 false, label %bb60.i, label %cond_next97.i.loopexit
-bb86.i.preheader:		; preds = %cond_true115.i
-	br label %bb86.i
-bb86.i:		; preds = %cond_true93.i, %bb86.i.preheader
-	br i1 false, label %cond_true93.i, label %cond_next97.i.loopexit3
-cond_true93.i:		; preds = %bb86.i
-	br i1 false, label %cond_next97.i.loopexit3, label %bb86.i
-cond_next97.i.loopexit:		; preds = %cond_true63.i, %bb60.i
-	br label %cond_next97.i
-cond_next97.i.loopexit3:		; preds = %cond_true93.i, %bb86.i
-	br label %cond_next97.i
-cond_next97.i:		; preds = %cond_next97.i.loopexit3, %cond_next97.i.loopexit, %cond_true.i
-	br i1 false, label %bb118.i.loopexit, label %cond_true115.i
-cond_true115.i.preheader:		; preds = %cond_true249.i
-	br label %cond_true115.i
-cond_true115.i:		; preds = %cond_true115.i.preheader, %cond_next97.i
-	br i1 false, label %cond_true.i, label %bb86.i.preheader
-bb118.i.loopexit:		; preds = %cond_next97.i
-	br label %bb118.i
-bb118.i:		; preds = %cond_true249.i, %bb118.i.loopexit
-	br i1 false, label %cond_next204.i, label %cond_true128.i
-cond_true128.i:		; preds = %bb118.i
-	br i1 false, label %cond_true199.i.preheader, label %cond_next204.i
-cond_true199.i.preheader:		; preds = %cond_true128.i
-	br label %cond_true199.i
-cond_true199.i.us:		; No predecessors!
-	br i1 false, label %cond_true167.i.us, label %cond_next187.i.us
-cond_next187.i.us:		; preds = %bb170.i.loopexit.us, %bb170.i.us.cond_next187.i.us_crit_edge, %cond_true199.i.us
-	unreachable
-bb170.i.us.cond_next187.i.us_crit_edge:		; preds = %bb170.i.loopexit.us
-	br label %cond_next187.i.us
-cond_true167.i.us:		; preds = %cond_true167.i.us, %cond_true199.i.us
-	br i1 false, label %cond_true167.i.us, label %bb170.i.loopexit.us
-bb170.i.loopexit.us:		; preds = %cond_true167.i.us
-	br i1 false, label %cond_next187.i.us, label %bb170.i.us.cond_next187.i.us_crit_edge
-cond_true199.i:		; preds = %cond_true199.i, %cond_true199.i.preheader
-	br i1 false, label %cond_next204.i.loopexit, label %cond_true199.i
-cond_next204.i.loopexit:		; preds = %cond_true199.i
-	br label %cond_next204.i
-cond_next204.i:		; preds = %cond_next204.i.loopexit, %cond_true128.i, %bb118.i
-	br label %bb233.i
-cond_true230.i:		; No predecessors!
-	%exitcond155 = icmp eq i32 0, %tmp16.i		; <i1> [#uses=0]
-	unreachable
-bb233.i:		; preds = %cond_next204.i
-	br i1 false, label %_encodepart.exit.loopexit, label %cond_true249.i
-cond_true249.i.preheader:		; preds = %cond_true155
-	br label %cond_true249.i
-cond_true249.i:		; preds = %cond_true249.i.preheader, %bb233.i
-	%tmp16.i = bitcast i32 0 to i32		; <i32> [#uses=1]
-	br i1 false, label %cond_true115.i.preheader, label %bb118.i
-_encodepart.exit.loopexit:		; preds = %bb233.i
-	br label %_encodepart.exit
-_encodepart.exit:		; preds = %_encodepart.exit.loopexit, %cond_true155
-	br label %cond_next195
-cond_next195:		; preds = %cond_true202, %_encodepart.exit, %cond_true139
-	br i1 false, label %bb205.loopexit, label %cond_true202
-cond_true202.preheader:		; preds = %cond_true218
-	br label %cond_true202
-cond_true202:		; preds = %cond_true202.preheader, %cond_next195
-	br i1 false, label %cond_next195, label %cond_true139
-bb205.loopexit:		; preds = %cond_next195
-	br label %bb205
-bb205:		; preds = %cond_true218, %bb205.loopexit
-	br i1 false, label %cond_true218, label %bb222.outer105.loopexit
-cond_true218.loopexit:		; preds = %cond_next92
-	br label %cond_true218
-cond_true218:		; preds = %cond_true218.loopexit, %bb205
-	br i1 false, label %cond_true202.preheader, label %bb205
-bb222.preheader:		; preds = %entry
-	br label %bb222.outer
-bb222.outer:		; preds = %bb229, %bb222.preheader
-	br label %bb222.outer105
-bb222.outer105.loopexit:		; preds = %bb205
-	br label %bb222.outer105
-bb222.outer105:		; preds = %bb222.outer105.loopexit, %bb222.outer
-	br label %bb222
-bb222:		; preds = %bb222.outer105, %cond_next92
-	br i1 false, label %cond_true226, label %bb229
-cond_true226:		; preds = %bb222
-	br i1 false, label %bb83.preheader, label %cond_next92
-bb229:		; preds = %bb222
-	br i1 false, label %bb222.outer, label %bb241.loopexit
-bb241.loopexit:		; preds = %bb229
-	br label %bb241
-bb241:		; preds = %bb241.loopexit, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2007-05-22-VolatileSink.ll b/libclamav/c++/llvm/test/Transforms/LICM/2007-05-22-VolatileSink.ll
deleted file mode 100644
index bf5d7bc..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2007-05-22-VolatileSink.ll
+++ /dev/null
@@ -1,56 +0,0 @@
-; RUN: llvm-as < %s | opt -licm | llvm-dis | grep {volatile store}
-; PR1435
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-apple-darwin8"
-
-define void @Transpose(i32* %DataIn, i32* %DataOut) {
-entry:
-	%buffer = alloca [64 x i32], align 16		; <[64 x i32]*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	br label %bb6
-
-bb:		; preds = %bb6
-	%tmp2 = volatile load i32* %DataIn		; <i32> [#uses=1]
-	%tmp3 = getelementptr [64 x i32]* %buffer, i32 0, i32 %i.0		; <i32*> [#uses=1]
-	store i32 %tmp2, i32* %tmp3
-	%tmp5 = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %bb6
-
-bb6:		; preds = %bb, %entry
-	%i.0 = phi i32 [ 0, %entry ], [ %tmp5, %bb ]		; <i32> [#uses=3]
-	%tmp8 = icmp sle i32 %i.0, 63		; <i1> [#uses=1]
-	%tmp89 = zext i1 %tmp8 to i8		; <i8> [#uses=1]
-	%toBool = icmp ne i8 %tmp89, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %bb, label %bb30
-
-bb12:		; preds = %bb22
-	%tmp14 = mul i32 %j.1, 8		; <i32> [#uses=1]
-	%tmp16 = add i32 %tmp14, %i.1		; <i32> [#uses=1]
-	%tmp17 = getelementptr [64 x i32]* %buffer, i32 0, i32 %tmp16		; <i32*> [#uses=1]
-	%tmp18 = load i32* %tmp17		; <i32> [#uses=1]
-	volatile store i32 %tmp18, i32* %DataOut
-	%tmp21 = add i32 %j.1, 1		; <i32> [#uses=1]
-	br label %bb22
-
-bb22:		; preds = %bb30, %bb12
-	%j.1 = phi i32 [ %tmp21, %bb12 ], [ 0, %bb30 ]		; <i32> [#uses=4]
-	%tmp24 = icmp sle i32 %j.1, 7		; <i1> [#uses=1]
-	%tmp2425 = zext i1 %tmp24 to i8		; <i8> [#uses=1]
-	%toBool26 = icmp ne i8 %tmp2425, 0		; <i1> [#uses=1]
-	br i1 %toBool26, label %bb12, label %bb27
-
-bb27:		; preds = %bb22
-	%tmp29 = add i32 %i.1, 1		; <i32> [#uses=1]
-	br label %bb30
-
-bb30:		; preds = %bb27, %bb6
-	%j.0 = phi i32 [ %j.1, %bb27 ], [ undef, %bb6 ]		; <i32> [#uses=0]
-	%i.1 = phi i32 [ %tmp29, %bb27 ], [ 0, %bb6 ]		; <i32> [#uses=3]
-	%tmp32 = icmp sle i32 %i.1, 7		; <i1> [#uses=1]
-	%tmp3233 = zext i1 %tmp32 to i8		; <i8> [#uses=1]
-	%toBool34 = icmp ne i8 %tmp3233, 0		; <i1> [#uses=1]
-	br i1 %toBool34, label %bb22, label %return
-
-return:		; preds = %bb30
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2007-07-30-AliasSet.ll b/libclamav/c++/llvm/test/Transforms/LICM/2007-07-30-AliasSet.ll
deleted file mode 100644
index 110d884..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2007-07-30-AliasSet.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -loop-unswitch -disable-output
-	%struct.III_scalefac_t = type { [22 x i32], [13 x [3 x i32]] }
-	%struct.gr_info = type { i32, i32, i32, i32, i32, i32, i32, i32, [3 x i32], [3 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32*, [4 x i32] }
-
-define i32 @scale_bitcount_lsf(%struct.III_scalefac_t* %scalefac, %struct.gr_info* %cod_info) {
-entry:
-	br i1 false, label %bb28, label %bb133.preheader
-
-bb133.preheader:		; preds = %entry
-	ret i32 0
-
-bb28:		; preds = %entry
-	br i1 false, label %bb63.outer, label %bb79
-
-bb63.outer:		; preds = %bb73, %bb28
-	br i1 false, label %bb35, label %bb73
-
-bb35:		; preds = %cond_next60, %bb63.outer
-	%window.34 = phi i32 [ %tmp62, %cond_next60 ], [ 0, %bb63.outer ]		; <i32> [#uses=1]
-	%tmp44 = getelementptr [4 x i32]* null, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp46 = load i32* %tmp44, align 4		; <i32> [#uses=0]
-	br i1 false, label %cond_true50, label %cond_next60
-
-cond_true50:		; preds = %bb35
-	%tmp59 = getelementptr [4 x i32]* null, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp59, align 4
-	br label %cond_next60
-
-cond_next60:		; preds = %cond_true50, %bb35
-	%tmp62 = add i32 %window.34, 1		; <i32> [#uses=1]
-	br i1 false, label %bb35, label %bb73
-
-bb73:		; preds = %cond_next60, %bb63.outer
-	%tmp76 = icmp slt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp76, label %bb63.outer, label %bb79
-
-bb79:		; preds = %bb73, %bb28
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2007-09-17-PromoteValue.ll b/libclamav/c++/llvm/test/Transforms/LICM/2007-09-17-PromoteValue.ll
deleted file mode 100644
index e9ba9e1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2007-09-17-PromoteValue.ll
+++ /dev/null
@@ -1,61 +0,0 @@
-; ModuleID = 'PR1657.bc'
-; Do not promote getelementptr because it may exposes load from a null pointer 
-; and store from a null pointer  which are covered by 
-; icmp eq %struct.decision* null, null condition.
-; RUN: llvm-as < %s | opt -licm | llvm-dis | not grep promoted
-	%struct.decision = type { i8, %struct.decision* }
-
-define i32 @main() {
-entry:
-	br label %blah.i
-
-blah.i:		; preds = %cond_true.i, %entry
-	%tmp3.i = icmp eq %struct.decision* null, null		; <i1> [#uses=1]
-	br i1 %tmp3.i, label %clear_modes.exit, label %cond_true.i
-
-cond_true.i:		; preds = %blah.i
-	%tmp1.i = getelementptr %struct.decision* null, i32 0, i32 0		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp1.i
-	br label %blah.i
-
-clear_modes.exit:		; preds = %blah.i
-	call void @exit( i32 0 )
-	unreachable
-}
-
-define i32 @f(i8* %ptr) {
-entry:
-        br label %loop.head
-
-loop.head:              ; preds = %cond.true, %entry
-        %x = phi i8* [ %ptr, %entry ], [ %ptr.i, %cond.true ]           ; <i8*> [#uses=1]
-        %tmp3.i = icmp ne i8* %ptr, %x          ; <i1> [#uses=1]
-        br i1 %tmp3.i, label %cond.true, label %exit
-
-cond.true:              ; preds = %loop.head
-        %ptr.i = getelementptr i8* %ptr, i32 0          ; <i8*> [#uses=2]
-        store i8 0, i8* %ptr.i
-        br label %loop.head
-
-exit:           ; preds = %loop.head
-        ret i32 0
-}
-
-define i32 @f2(i8* %p, i8* %q) {
-entry:
-        br label %loop.head
-
-loop.head:              ; preds = %cond.true, %entry
-        %tmp3.i = icmp eq i8* null, %q            ; <i1> [#uses=1]
-        br i1 %tmp3.i, label %exit, label %cond.true
-
-cond.true:              ; preds = %loop.head
-        %ptr.i = getelementptr i8* %p, i32 0          ; <i8*> [#uses=2]
-        store i8 0, i8* %ptr.i
-        br label %loop.head
-
-exit:           ; preds = %loop.head
-        ret i32 0
-}
-
-declare void @exit(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll b/libclamav/c++/llvm/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll
deleted file mode 100644
index f9f45f3..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; Do not promote null value because it may be unsafe to do so.
-; RUN: llvm-as < %s | opt -licm | llvm-dis | not grep promoted
-
-define i32 @f(i32 %foo, i32 %bar, i32 %com) {
-entry:
-	%tmp2 = icmp eq i32 %foo, 0		; <i1> [#uses=1]
-	br i1 %tmp2, label %cond_next, label %cond_true
-
-cond_true:		; preds = %entry
-	br label %return
-
-cond_next:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb15, %cond_next
-	switch i32 %bar, label %bb15 [
-		 i32 1, label %bb6
-	]
-
-bb6:		; preds = %bb
-	%tmp8 = icmp eq i32 %com, 0		; <i1> [#uses=1]
-	br i1 %tmp8, label %cond_next14, label %cond_true11
-
-cond_true11:		; preds = %bb6
-	br label %return
-
-cond_next14:		; preds = %bb6
-	store i8 0, i8* null
-	br label %bb15
-
-bb15:		; preds = %cond_next14, %bb
-	br label %bb
-
-return:		; preds = %cond_true11, %cond_true
-	%storemerge = phi i32 [ 0, %cond_true ], [ undef, %cond_true11 ]		; <i32> [#uses=1]
-	ret i32 %storemerge
-}
-
-define i32 @kdMain() {
-entry:
-	%tmp1 = call i32 @f( i32 0, i32 1, i32 1 )		; <i32> [#uses=0]
-	call void @exit( i32 0 )
-	unreachable
-}
-
-declare void @exit(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll b/libclamav/c++/llvm/test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll
deleted file mode 100644
index 7359cc0..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -licm | llvm-dis | grep promoted
-; Promote value if at least one use is safe
-
-
-define i32 @f2(i32* %p, i8* %q) {
-entry:
-        br label %loop.head
-
-loop.head:              ; preds = %cond.true, %entry
-        store i32 20, i32* %p
-        %tmp3.i = icmp eq i8* null, %q            ; <i1> [#uses=1]
-        br i1 %tmp3.i, label %exit, label %cond.true
-        
-cond.true:              ; preds = %loop.head
-        store i32 40, i32* %p
-        br label %loop.head
-
-exit:           ; preds = %loop.head
-        ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2008-05-20-AliasSetVAArg.ll b/libclamav/c++/llvm/test/Transforms/LICM/2008-05-20-AliasSetVAArg.ll
deleted file mode 100644
index dcb20e7..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2008-05-20-AliasSetVAArg.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -disable-output
-; PR2346
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-pc-linux-gnu"
-	%struct._zval_struct = type { %union._double, i32, i8, i8, i8, i8 }
-	%union._double = type { double }
-
-define i8* @zend_fetch_resource(%struct._zval_struct** %passed_id, i32 %default_id, i8* %resource_type_name, i32* %found_resource_type, i32 %num_resource_types, ...) {
-entry:
-	br label %whilebody.i.i
-
-whilebody.i.i:		; preds = %whilebody.i.i, %entry
-	br i1 false, label %ifthen.i.i, label %whilebody.i.i
-
-ifthen.i.i:		; preds = %whilebody.i.i
-	br label %forcond
-
-forcond:		; preds = %forbody, %ifthen.i.i
-	br i1 false, label %forbody, label %afterfor
-
-forbody:		; preds = %forcond
-	va_arg i8** null, i32		; <i32>:0 [#uses=0]
-	br i1 false, label %ifthen59, label %forcond
-
-ifthen59:		; preds = %forbody
-	unreachable
-
-afterfor:		; preds = %forcond
-	ret i8* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll b/libclamav/c++/llvm/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll
deleted file mode 100644
index 3824d53..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -enable-licm-constant-variables | llvm-dis | grep -A 1 entry | grep load.*@a
- at a = external constant float*
-
-define void @test(i32 %count) {
-entry:
-        br label %forcond
-
-forcond:
-        %i.0 = phi i32 [ 0, %entry ], [ %inc, %forbody ]
-        %cmp = icmp ult i32 %i.0, %count
-        br i1 %cmp, label %forbody, label %afterfor
-
-forbody:
-        %tmp3 = load float** @a
-        %arrayidx = getelementptr float* %tmp3, i32 %i.0
-        %tmp7 = uitofp i32 %i.0 to float
-        store float %tmp7, float* %arrayidx
-        %inc = add i32 %i.0, 1
-        br label %forcond
-
-afterfor:
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/2009-03-25-AliasSetTracker.ll b/libclamav/c++/llvm/test/Transforms/LICM/2009-03-25-AliasSetTracker.ll
deleted file mode 100644
index c3c9a81..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/2009-03-25-AliasSetTracker.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-
-; RUN: llvm-as < %s | opt -licm -loop-index-split -instcombine -disable-output
-
-	%struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
-@"\01LC81" = external constant [4 x i8]		; <[4 x i8]*> [#uses=1]
-
-define fastcc void @hex_dump_internal(i8* %avcl, %struct.FILE* %f, i32 %level, i8* nocapture %buf, i32 %size) nounwind {
-entry:
-	br i1 false, label %bb4, label %return
-
-bb4:		; preds = %bb30, %entry
-	br label %bb6
-
-bb6:		; preds = %bb15, %bb4
-	%j.0.reg2mem.0 = phi i32 [ %2, %bb15 ], [ 0, %bb4 ]		; <i32> [#uses=2]
-	%0 = icmp slt i32 %j.0.reg2mem.0, 0		; <i1> [#uses=1]
-	br i1 %0, label %bb7, label %bb13
-
-bb7:		; preds = %bb6
-	br label %bb15
-
-bb13:		; preds = %bb6
-	%1 = tail call i32 @fwrite(i8* getelementptr ([4 x i8]* @"\01LC81", i32 0, i32 0), i32 1, i32 3, i8* null) nounwind		; <i32> [#uses=0]
-	br label %bb15
-
-bb15:		; preds = %bb13, %bb7
-	%2 = add i32 %j.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%3 = icmp sgt i32 %2, 15		; <i1> [#uses=1]
-	br i1 %3, label %bb30, label %bb6
-
-bb30:		; preds = %bb15
-	br i1 false, label %bb4, label %return
-
-return:		; preds = %bb30, %entry
-	ret void
-}
-
-declare i32 @fwrite(i8* nocapture, i32, i32, i8* nocapture) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/Preserve-LCSSA.ll b/libclamav/c++/llvm/test/Transforms/LICM/Preserve-LCSSA.ll
deleted file mode 100644
index 850d071..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/Preserve-LCSSA.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -licm -loop-unswitch -disable-output
-
-define i32 @stringSearch_Clib(i32 %count) {
-entry:
-	br i1 false, label %bb36, label %bb44
-
-bb4:		; preds = %bb36
-	br i1 false, label %cond_next, label %cond_true
-
-cond_true:		; preds = %bb4
-	ret i32 0
-
-cond_next:		; preds = %bb4
-	ret i32 0
-
-bb36:		; preds = %bb41, %entry
-	br i1 false, label %bb4, label %bb41
-
-bb41:		; preds = %bb36
-	%ttmp2 = icmp slt i32 0, %count		; <i1> [#uses=1]
-	br i1 %ttmp2, label %bb36, label %bb44
-
-bb44:		; preds = %bb41, %entry
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/basictest.ll b/libclamav/c++/llvm/test/Transforms/LICM/basictest.ll
deleted file mode 100644
index 0a57ce4..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/basictest.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -licm | llvm-dis
-
-define void @testfunc(i32 %i) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%j = phi i32 [ 0, %0 ], [ %Next, %Loop ]		; <i32> [#uses=1]
-	%i2 = mul i32 %i, 17		; <i32> [#uses=1]
-	%Next = add i32 %j, %i2		; <i32> [#uses=2]
-	%cond = icmp eq i32 %Next, 0		; <i1> [#uses=1]
-	br i1 %cond, label %Out, label %Loop
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/dg.exp b/libclamav/c++/llvm/test/Transforms/LICM/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/hoisting.ll b/libclamav/c++/llvm/test/Transforms/LICM/hoisting.ll
deleted file mode 100644
index 821c8a3..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/hoisting.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; RUN: llvm-as < %s | opt -licm | llvm-dis | FileCheck %s
-
- at X = global i32 0		; <i32*> [#uses=1]
-
-declare void @foo()
-
-; This testcase tests for a problem where LICM hoists 
-; potentially trapping instructions when they are not guaranteed to execute.
-define i32 @test1(i1 %c) {
-; CHECK: @test1
-	%A = load i32* @X		; <i32> [#uses=2]
-	br label %Loop
-Loop:		; preds = %LoopTail, %0
-	call void @foo( )
-	br i1 %c, label %LoopTail, label %IfUnEqual
-        
-IfUnEqual:		; preds = %Loop
-; CHECK: IfUnEqual:
-; CHECK-NEXT: sdiv i32 4, %A
-	%B1 = sdiv i32 4, %A		; <i32> [#uses=1]
-	br label %LoopTail
-        
-LoopTail:		; preds = %IfUnEqual, %Loop
-	%B = phi i32 [ 0, %Loop ], [ %B1, %IfUnEqual ]		; <i32> [#uses=1]
-	br i1 %c, label %Loop, label %Out
-Out:		; preds = %LoopTail
-	%C = sub i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
-
-
-declare void @foo2(i32)
-
-
-;; It is ok and desirable to hoist this potentially trapping instruction.
-define i32 @test2(i1 %c) {
-; CHECK: @test2
-; CHECK-NEXT: load i32* @X
-; CHECK-NEXT: %B = sdiv i32 4, %A
-	%A = load i32* @X		; <i32> [#uses=2]
-	br label %Loop
-Loop:
-        ;; Should have hoisted this div!
-	%B = sdiv i32 4, %A		; <i32> [#uses=2]
-	call void @foo2( i32 %B )
-	br i1 %c, label %Loop, label %Out
-Out:		; preds = %Loop
-	%C = sub i32 %A, %B		; <i32> [#uses=1]
-	ret i32 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/no-preheader-test.ll b/libclamav/c++/llvm/test/Transforms/LICM/no-preheader-test.ll
deleted file mode 100644
index 6ea0861..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/no-preheader-test.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; Test that LICM works when there is not a loop-preheader
-; RUN: llvm-as < %s | opt -licm | llvm-dis
-
-define void @testfunc(i32 %i.s, i1 %ifcond) {
-	br i1 %ifcond, label %Then, label %Else
-Then:		; preds = %0
-	br label %Loop
-Else:		; preds = %0
-	br label %Loop
-Loop:		; preds = %Loop, %Else, %Then
-	%j = phi i32 [ 0, %Then ], [ 12, %Else ], [ %Next, %Loop ]		; <i32> [#uses=1]
-	%i = bitcast i32 %i.s to i32		; <i32> [#uses=1]
-	%i2 = mul i32 %i, 17		; <i32> [#uses=1]
-	%Next = add i32 %j, %i2		; <i32> [#uses=2]
-	%cond = icmp eq i32 %Next, 0		; <i1> [#uses=1]
-	br i1 %cond, label %Out, label %Loop
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/scalar_promote.ll b/libclamav/c++/llvm/test/Transforms/LICM/scalar_promote.ll
deleted file mode 100644
index 8f00d03..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/scalar_promote.ll
+++ /dev/null
@@ -1,73 +0,0 @@
-; RUN: llvm-as < %s | opt  -licm | llvm-dis | FileCheck %s
- at X = global i32 7		; <i32*> [#uses=4]
-
-define void @test1(i32 %i) {
-Entry:
-	br label %Loop
-; CHECK: @test1
-; CHECK: Entry:
-; CHECK-NEXT:   load i32* @X
-; CHECK-NEXT:   br label %Loop
-
-
-Loop:		; preds = %Loop, %0
-	%j = phi i32 [ 0, %Entry ], [ %Next, %Loop ]		; <i32> [#uses=1]
-	%x = load i32* @X		; <i32> [#uses=1]
-	%x2 = add i32 %x, 1		; <i32> [#uses=1]
-	store i32 %x2, i32* @X
-	%Next = add i32 %j, 1		; <i32> [#uses=2]
-	%cond = icmp eq i32 %Next, 0		; <i1> [#uses=1]
-	br i1 %cond, label %Out, label %Loop
-
-Out:	
-	ret void
-; CHECK: Out:
-; CHECK-NEXT:   store i32 %x2, i32* @X
-; CHECK-NEXT:   ret void
-
-}
-
-define void @test2(i32 %i) {
-Entry:
-	br label %Loop
-; CHECK: @test2
-; CHECK: Entry:
-; CHECK-NEXT:  %X1 = getelementptr i32* @X, i64 0 
-; CHECK-NEXT:    %X2 = getelementptr i32* @X, i64 0
-; CHECK-NEXT:    %X1.promoted = load i32* %X1 
-; CHECK-NEXT:    br label %Loop
-
-Loop:		; preds = %Loop, %0
-	%X1 = getelementptr i32* @X, i64 0		; <i32*> [#uses=1]
-	%A = load i32* %X1		; <i32> [#uses=1]
-	%V = add i32 %A, 1		; <i32> [#uses=1]
-	%X2 = getelementptr i32* @X, i64 0		; <i32*> [#uses=1]
-	store i32 %V, i32* %X2
-	br i1 false, label %Loop, label %Exit
-
-Exit:		; preds = %Loop
-	ret void
-; CHECK: Exit:
-; CHECK-NEXT:   store i32 %V, i32* %X1
-; CHECK-NEXT:   ret void
-}
-
-
-
-define void @test3(i32 %i) {
-; CHECK: @test3
-	br label %Loop
-Loop:
-        ; Should not promote this to a register
-	%x = volatile load i32* @X
-	%x2 = add i32 %x, 1	
-	store i32 %x2, i32* @X
-	br i1 true, label %Out, label %Loop
-        
-; CHECK: Loop:
-; CHECK-NEXT: volatile load
-
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LICM/sinking.ll b/libclamav/c++/llvm/test/Transforms/LICM/sinking.ll
deleted file mode 100644
index cf18277..0000000
--- a/libclamav/c++/llvm/test/Transforms/LICM/sinking.ll
+++ /dev/null
@@ -1,235 +0,0 @@
-; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | FileCheck %s
-
-declare i32 @strlen(i8*) readonly
-
-declare void @foo()
-
-; Sink readonly function.
-define i32 @test1(i8* %P) {
-	br label %Loop
-
-Loop:		; preds = %Loop, %0
-	%A = call i32 @strlen( i8* %P ) readonly
-	br i1 false, label %Loop, label %Out
-
-Out:		; preds = %Loop
-	ret i32 %A
-; CHECK: @test1
-; CHECK: Out:
-; CHECK-NEXT: call i32 @strlen
-; CHECK-NEXT: ret i32 %A
-}
-
-declare double @sin(double) readnone
-
-; Sink readnone function out of loop with unknown memory behavior.
-define double @test2(double %X) {
-	br label %Loop
-
-Loop:		; preds = %Loop, %0
-	call void @foo( )
-	%A = call double @sin( double %X ) readnone
-	br i1 true, label %Loop, label %Out
-
-Out:		; preds = %Loop
-	ret double %A
-; CHECK: @test2
-; CHECK: Out:
-; CHECK-NEXT: call double @sin
-; CHECK-NEXT: ret double %A
-}
-
-; This testcase checks to make sure the sinker does not cause problems with
-; critical edges.
-define void @test3() {
-Entry:
-	br i1 false, label %Loop, label %Exit
-Loop:
-	%X = add i32 0, 1
-	br i1 false, label %Loop, label %Exit
-Exit:
-	%Y = phi i32 [ 0, %Entry ], [ %X, %Loop ]
-	ret void
-        
-; CHECK: @test3
-; CHECK:     Exit.loopexit:
-; CHECK-NEXT:  %X = add i32 0, 1
-; CHECK-NEXT:  br label %Exit
-
-}
-
-; If the result of an instruction is only used outside of the loop, sink
-; the instruction to the exit blocks instead of executing it on every
-; iteration of the loop.
-;
-define i32 @test4(i32 %N) {
-Entry:
-	br label %Loop
-Loop:		; preds = %Loop, %Entry
-	%N_addr.0.pn = phi i32 [ %dec, %Loop ], [ %N, %Entry ]	
-	%tmp.6 = mul i32 %N, %N_addr.0.pn		; <i32> [#uses=1]
-	%tmp.7 = sub i32 %tmp.6, %N		; <i32> [#uses=1]
-	%dec = add i32 %N_addr.0.pn, -1		; <i32> [#uses=1]
-	%tmp.1 = icmp ne i32 %N_addr.0.pn, 1		; <i1> [#uses=1]
-	br i1 %tmp.1, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret i32 %tmp.7
-; CHECK: @test4
-; CHECK:     Out:
-; CHECK-NEXT:  mul i32 %N, %N_addr.0.pn
-; CHECK-NEXT:  sub i32 %tmp.6, %N
-; CHECK-NEXT:  ret i32
-}
-
-; To reduce register pressure, if a load is hoistable out of the loop, and the
-; result of the load is only used outside of the loop, sink the load instead of
-; hoisting it!
-;
- at X = global i32 5		; <i32*> [#uses=1]
-
-define i32 @test5(i32 %N) {
-Entry:
-	br label %Loop
-Loop:		; preds = %Loop, %Entry
-	%N_addr.0.pn = phi i32 [ %dec, %Loop ], [ %N, %Entry ]	
-	%tmp.6 = load i32* @X		; <i32> [#uses=1]
-	%dec = add i32 %N_addr.0.pn, -1		; <i32> [#uses=1]
-	%tmp.1 = icmp ne i32 %N_addr.0.pn, 1		; <i1> [#uses=1]
-	br i1 %tmp.1, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret i32 %tmp.6
-; CHECK: @test5
-; CHECK:     Out:
-; CHECK-NEXT:  %tmp.6 = load i32* @X
-; CHECK-NEXT:  ret i32 %tmp.6
-}
-
-
-
-; The loop sinker was running from the bottom of the loop to the top, causing
-; it to miss opportunities to sink instructions that depended on sinking other
-; instructions from the loop.  Instead they got hoisted, which is better than
-; leaving them in the loop, but increases register pressure pointlessly.
-
-	%Ty = type { i32, i32 }
- at X2 = external global %Ty
-
-define i32 @test6() {
-	br label %Loop
-Loop:
-	%dead = getelementptr %Ty* @X2, i64 0, i32 0
-	%sunk2 = load i32* %dead
-	br i1 false, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret i32 %sunk2
-; CHECK: @test6
-; CHECK:     Out:
-; CHECK-NEXT:  %dead = getelementptr %Ty* @X2, i64 0, i32 0
-; CHECK-NEXT:  %sunk2 = load i32* %dead
-; CHECK-NEXT:  ret i32 %sunk2
-}
-
-
-
-; This testcase ensures that we can sink instructions from loops with
-; multiple exits.
-;
-define i32 @test7(i32 %N, i1 %C) {
-Entry:
-	br label %Loop
-Loop:		; preds = %ContLoop, %Entry
-	%N_addr.0.pn = phi i32 [ %dec, %ContLoop ], [ %N, %Entry ]
-	%tmp.6 = mul i32 %N, %N_addr.0.pn
-	%tmp.7 = sub i32 %tmp.6, %N		; <i32> [#uses=2]
-	%dec = add i32 %N_addr.0.pn, -1		; <i32> [#uses=1]
-	br i1 %C, label %ContLoop, label %Out1
-ContLoop:
-	%tmp.1 = icmp ne i32 %N_addr.0.pn, 1
-	br i1 %tmp.1, label %Loop, label %Out2
-Out1:		; preds = %Loop
-	ret i32 %tmp.7
-Out2:		; preds = %ContLoop
-	ret i32 %tmp.7
-; CHECK: @test7
-; CHECK:     Out1:
-; CHECK-NEXT:  mul i32 %N, %N_addr.0.pn
-; CHECK-NEXT:  sub i32 %tmp.6, %N
-; CHECK-NEXT:  ret
-; CHECK:     Out2:
-; CHECK-NEXT:  mul i32 %N, %N_addr.0.pn
-; CHECK-NEXT:  sub i32 %tmp.6
-; CHECK-NEXT:  ret
-}
-
-
-; This testcase checks to make sure we can sink values which are only live on
-; some exits out of the loop, and that we can do so without breaking dominator
-; info.
-define i32 @test8(i1 %C1, i1 %C2, i32* %P, i32* %Q) {
-Entry:
-	br label %Loop
-Loop:		; preds = %Cont, %Entry
-	br i1 %C1, label %Cont, label %exit1
-Cont:		; preds = %Loop
-	%X = load i32* %P		; <i32> [#uses=2]
-	store i32 %X, i32* %Q
-	%V = add i32 %X, 1		; <i32> [#uses=1]
-	br i1 %C2, label %Loop, label %exit2
-exit1:		; preds = %Loop
-	ret i32 0
-exit2:		; preds = %Cont
-	ret i32 %V
-; CHECK: @test8
-; CHECK:     exit1:
-; CHECK-NEXT:  ret i32 0
-; CHECK:     exit2:
-; CHECK-NEXT:  %V = add i32 %X, 1
-; CHECK-NEXT:  ret i32 %V
-}
-
-
-define void @test9() {
-loopentry.2.i:
-	br i1 false, label %no_exit.1.i.preheader, label %loopentry.3.i.preheader
-no_exit.1.i.preheader:		; preds = %loopentry.2.i
-	br label %no_exit.1.i
-no_exit.1.i:		; preds = %endif.8.i, %no_exit.1.i.preheader
-	br i1 false, label %return.i, label %endif.8.i
-endif.8.i:		; preds = %no_exit.1.i
-	%inc.1.i = add i32 0, 1		; <i32> [#uses=1]
-	br i1 false, label %no_exit.1.i, label %loopentry.3.i.preheader.loopexit
-loopentry.3.i.preheader.loopexit:		; preds = %endif.8.i
-	br label %loopentry.3.i.preheader
-loopentry.3.i.preheader:		; preds = %loopentry.3.i.preheader.loopexit, %loopentry.2.i
-	%arg_num.0.i.ph13000 = phi i32 [ 0, %loopentry.2.i ], [ %inc.1.i, %loopentry.3.i.preheader.loopexit ]		; <i32> [#uses=0]
-	ret void
-return.i:		; preds = %no_exit.1.i
-	ret void
-
-; CHECK: @test9
-; CHECK: loopentry.3.i.preheader.loopexit:
-; CHECK-NEXT:  %inc.1.i = add i32 0, 1
-; CHECK-NEXT:  br label %loopentry.3.i.preheader
-}
-
-
-; Potentially trapping instructions may be sunk as long as they are guaranteed
-; to be executed.
-define i32 @test10(i32 %N) {
-Entry:
-	br label %Loop
-Loop:		; preds = %Loop, %Entry
-	%N_addr.0.pn = phi i32 [ %dec, %Loop ], [ %N, %Entry ]		; <i32> [#uses=3]
-	%tmp.6 = sdiv i32 %N, %N_addr.0.pn		; <i32> [#uses=1]
-	%dec = add i32 %N_addr.0.pn, -1		; <i32> [#uses=1]
-	%tmp.1 = icmp ne i32 %N_addr.0.pn, 0		; <i1> [#uses=1]
-	br i1 %tmp.1, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret i32 %tmp.6
-        
-; CHECK: @test10
-; CHECK: Out: 
-; CHECK-NEXT:  %tmp.6 = sdiv i32 %N, %N_addr.0.pn
-; CHECK-NEXT:  ret i32 %tmp.6
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopDeletion/2007-07-23-InfiniteLoop.ll b/libclamav/c++/llvm/test/Transforms/LoopDeletion/2007-07-23-InfiniteLoop.ll
deleted file mode 100644
index ecba2f4..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopDeletion/2007-07-23-InfiniteLoop.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-deletion | llvm-dis | grep switch
-; PR 1564
-  
-define fastcc void @out() {
-    start:
-            br label %loop
-    unreachable:
-            unreachable
-    loop:
-            switch i32 0, label %unreachable [
-                     i32 0, label %loop
-            ]
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopDeletion/2008-05-06-Phi.ll b/libclamav/c++/llvm/test/Transforms/LoopDeletion/2008-05-06-Phi.ll
deleted file mode 100644
index bfb747a..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopDeletion/2008-05-06-Phi.ll
+++ /dev/null
@@ -1,109 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -tailduplicate -instcombine -jump-threading -licm -loop-unswitch -instcombine -indvars -loop-deletion -gvn -simplifycfg -verify -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9"
-	%struct.BF_BitstreamElement = type { i32, i16 }
-	%struct.BF_BitstreamPart = type { i32, %struct.BF_BitstreamElement* }
-	%struct.BF_PartHolder = type { i32, %struct.BF_BitstreamPart* }
-	%struct.Bit_stream_struc = type { i8*, i32, %struct.FILE*, i8*, i32, i32, i32, i32 }
-	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
-	%struct.III_scalefac_t = type { [22 x i32], [13 x [3 x i32]] }
-	%struct.III_side_info_t = type { i32, i32, i32, [2 x [4 x i32]], [2 x %struct.anon] }
-	%struct.__sFILEX = type opaque
-	%struct.__sbuf = type { i8*, i32 }
-	%struct.anon = type { [2 x %struct.gr_info_ss] }
-	%struct.gr_info = type { i32, i32, i32, i32, i32, i32, i32, i32, [3 x i32], [3 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32*, [4 x i32] }
-	%struct.gr_info_ss = type { %struct.gr_info }
-	%struct.lame_global_flags = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, float, float, float, float, i32, i32, i32, i32, i32, i32, i32, i32 }
- at scaleFactorsPH = external global [2 x [2 x %struct.BF_PartHolder*]]		; <[2 x [2 x %struct.BF_PartHolder*]]*> [#uses=1]
- at slen1_tab = external constant [16 x i32]		; <[16 x i32]*> [#uses=1]
-
-declare %struct.BF_PartHolder* @BF_addElement(%struct.BF_PartHolder*, %struct.BF_BitstreamElement*) nounwind 
-
-define %struct.BF_PartHolder* @BF_addEntry(%struct.BF_PartHolder* %thePH, i32 %value, i32 %length) nounwind  {
-entry:
-	%myElement = alloca %struct.BF_BitstreamElement		; <%struct.BF_BitstreamElement*> [#uses=2]
-	%tmp1 = getelementptr %struct.BF_BitstreamElement* %myElement, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 %value, i32* %tmp1, align 8
-	%tmp7 = icmp eq i32 %length, 0		; <i1> [#uses=1]
-	br i1 %tmp7, label %bb13, label %bb
-
-bb:		; preds = %entry
-	%tmp10 = call %struct.BF_PartHolder* @BF_addElement( %struct.BF_PartHolder* %thePH, %struct.BF_BitstreamElement* %myElement ) nounwind 		; <%struct.BF_PartHolder*> [#uses=1]
-	ret %struct.BF_PartHolder* %tmp10
-
-bb13:		; preds = %entry
-	ret %struct.BF_PartHolder* %thePH
-}
-
-define void @III_format_bitstream(%struct.lame_global_flags* %gfp, i32 %bitsPerFrame, [2 x [576 x i32]]* %l3_enc, %struct.III_side_info_t* %l3_side, [2 x %struct.III_scalefac_t]* %scalefac, %struct.Bit_stream_struc* %in_bs) nounwind  {
-entry:
-	call fastcc void @encodeMainData( %struct.lame_global_flags* %gfp, [2 x [576 x i32]]* %l3_enc, %struct.III_side_info_t* %l3_side, [2 x %struct.III_scalefac_t]* %scalefac ) nounwind 
-	unreachable
-}
-
-define internal fastcc void @encodeMainData(%struct.lame_global_flags* %gfp, [2 x [576 x i32]]* %l3_enc, %struct.III_side_info_t* %si, [2 x %struct.III_scalefac_t]* %scalefac) nounwind  {
-entry:
-	%tmp69 = getelementptr %struct.lame_global_flags* %gfp, i32 0, i32 43		; <i32*> [#uses=1]
-	%tmp70 = load i32* %tmp69, align 4		; <i32> [#uses=1]
-	%tmp71 = icmp eq i32 %tmp70, 1		; <i1> [#uses=1]
-	br i1 %tmp71, label %bb352, label %bb498
-
-bb113:		; preds = %bb132
-	%tmp123 = getelementptr [2 x %struct.III_scalefac_t]* %scalefac, i32 0, i32 0, i32 1, i32 %sfb.0, i32 %window.0		; <i32*> [#uses=1]
-	%tmp124 = load i32* %tmp123, align 4		; <i32> [#uses=1]
-	%tmp126 = load %struct.BF_PartHolder** %tmp80, align 4		; <%struct.BF_PartHolder*> [#uses=1]
-	%tmp128 = call %struct.BF_PartHolder* @BF_addEntry( %struct.BF_PartHolder* %tmp126, i32 %tmp124, i32 %tmp93 ) nounwind 		; <%struct.BF_PartHolder*> [#uses=1]
-	store %struct.BF_PartHolder* %tmp128, %struct.BF_PartHolder** %tmp80, align 4
-	%tmp131 = add i32 %window.0, 1		; <i32> [#uses=1]
-	br label %bb132
-
-bb132:		; preds = %bb140, %bb113
-	%window.0 = phi i32 [ %tmp131, %bb113 ], [ 0, %bb140 ]		; <i32> [#uses=3]
-	%tmp134 = icmp slt i32 %window.0, 3		; <i1> [#uses=1]
-	br i1 %tmp134, label %bb113, label %bb137
-
-bb137:		; preds = %bb132
-	%tmp139 = add i32 %sfb.0, 1		; <i32> [#uses=1]
-	br label %bb140
-
-bb140:		; preds = %bb341, %bb137
-	%sfb.0 = phi i32 [ %tmp139, %bb137 ], [ 0, %bb341 ]		; <i32> [#uses=3]
-	%tmp142 = icmp slt i32 %sfb.0, 6		; <i1> [#uses=1]
-	br i1 %tmp142, label %bb132, label %bb174
-
-bb166:		; preds = %bb174
-	%tmp160 = load %struct.BF_PartHolder** %tmp80, align 4		; <%struct.BF_PartHolder*> [#uses=1]
-	%tmp162 = call %struct.BF_PartHolder* @BF_addEntry( %struct.BF_PartHolder* %tmp160, i32 0, i32 0 ) nounwind 		; <%struct.BF_PartHolder*> [#uses=0]
-	unreachable
-
-bb174:		; preds = %bb140
-	%tmp176 = icmp slt i32 6, 12		; <i1> [#uses=1]
-	br i1 %tmp176, label %bb166, label %bb341
-
-bb341:		; preds = %bb352, %bb174
-	%tmp80 = getelementptr [2 x [2 x %struct.BF_PartHolder*]]* @scaleFactorsPH, i32 0, i32 0, i32 0		; <%struct.BF_PartHolder**> [#uses=3]
-	%tmp92 = getelementptr [16 x i32]* @slen1_tab, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp93 = load i32* %tmp92, align 4		; <i32> [#uses=1]
-	br label %bb140
-
-bb352:		; preds = %entry
-	%tmp354 = icmp slt i32 0, 2		; <i1> [#uses=1]
-	br i1 %tmp354, label %bb341, label %return
-
-bb498:		; preds = %entry
-	ret void
-
-return:		; preds = %bb352
-	ret void
-}
-
-define void @getframebits(%struct.lame_global_flags* %gfp, i32* %bitsPerFrame, i32* %mean_bits) nounwind  {
-entry:
-	unreachable
-}
-
-define i32 @lame_encode_buffer(%struct.lame_global_flags* %gfp, i16* %buffer_l, i16* %buffer_r, i32 %nsamples, i8* %mp3buf, i32 %mp3buf_size) nounwind  {
-entry:
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopDeletion/dcetest.ll b/libclamav/c++/llvm/test/Transforms/LoopDeletion/dcetest.ll
deleted file mode 100644
index c112cae..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopDeletion/dcetest.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; This is the test case taken from Appel's book that illustrates a hard case
-; that SCCP gets right, and when followed by ADCE, is completely eliminated
-;
-; RUN: llvm-as < %s | opt -sccp -simplifycfg -indvars -loop-deletion -dce -simplifycfg | llvm-dis | not grep br
-
-define i32 @"test function"(i32 %i0, i32 %j0) {
-BB1:
-        br label %BB2
-
-BB2:            ; preds = %BB7, %BB1
-        %j2 = phi i32 [ %j4, %BB7 ], [ 1, %BB1 ]                ; <i32> [#uses=2]
-        %k2 = phi i32 [ %k4, %BB7 ], [ 0, %BB1 ]                ; <i32> [#uses=4]
-        %kcond = icmp slt i32 %k2, 100          ; <i1> [#uses=1]
-        br i1 %kcond, label %BB3, label %BB4
-
-BB3:            ; preds = %BB2
-        %jcond = icmp slt i32 %j2, 20           ; <i1> [#uses=1]
-        br i1 %jcond, label %BB5, label %BB6
-
-BB4:            ; preds = %BB2
-        ret i32 %j2
-
-BB5:            ; preds = %BB3
-        %k3 = add i32 %k2, 1            ; <i32> [#uses=1]
-        br label %BB7
-
-BB6:            ; preds = %BB3
-        %k5 = add i32 %k2, 1            ; <i32> [#uses=1]
-        br label %BB7
-
-BB7:            ; preds = %BB6, %BB5
-        %j4 = phi i32 [ 1, %BB5 ], [ %k2, %BB6 ]                ; <i32> [#uses=1]
-        %k4 = phi i32 [ %k3, %BB5 ], [ %k5, %BB6 ]              ; <i32> [#uses=1]
-        br label %BB2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopDeletion/dg.exp b/libclamav/c++/llvm/test/Transforms/LoopDeletion/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopDeletion/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-21-LoopBound.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-21-LoopBound.ll
deleted file mode 100644
index fa1ab2d..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-21-LoopBound.ll
+++ /dev/null
@@ -1,63 +0,0 @@
-; PR1692
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output 
-	%struct.CLAUSE_HELP = type { i32, i32, i32, i32, i32*, i32, %struct.LIST_NODE*, %struct.LIST_NODE*, i32, i32, %struct.LITERAL_HELP**, i32, i32, i32, i32 }
-	%struct.LIST_NODE = type { %struct.LIST_NODE*, i8* }
-	%struct.LITERAL_HELP = type { i32, i32, i32, %struct.CLAUSE_HELP*, %struct.term* }
-	%struct.anon = type { %struct.LIST_NODE* }
-	%struct.st = type { %struct.subst*, %struct.LIST_NODE*, %struct.LIST_NODE*, i16, i16 }
-	%struct.subst = type { %struct.subst*, i32, %struct.term* }
-	%struct.term = type { i32, %struct.anon, %struct.LIST_NODE*, i32, i32 }
-
-define %struct.LIST_NODE* @inf_HyperResolvents(%struct.CLAUSE_HELP* %Clause, %struct.subst* %Subst, %struct.LIST_NODE* %Restlits, i32 %GlobalMaxVar, %struct.LIST_NODE* %FoundMap, i32 %StrictlyMaximal, { %struct.st*, [3001 x %struct.term*], [4000 x %struct.term*], i32 }* %Index, i32* %Flags, i32* %Precedence) {
-entry:
-	br i1 false, label %cond_next44, label %bb37
-
-bb37:		; preds = %entry
-	ret %struct.LIST_NODE* null
-
-cond_next44:		; preds = %entry
-	br i1 false, label %bb29.i, label %bb.i31
-
-bb.i31:		; preds = %cond_next44
-	ret %struct.LIST_NODE* null
-
-bb29.i:		; preds = %cond_next44
-	br i1 false, label %cond_next89.i, label %bb34.i
-
-bb34.i:		; preds = %bb29.i
-	ret %struct.LIST_NODE* null
-
-cond_next89.i:		; preds = %bb29.i
-	br i1 false, label %clause_LiteralGetIndex.exit70.i, label %bb.i59.i
-
-bb.i59.i:		; preds = %cond_next89.i
-	ret %struct.LIST_NODE* null
-
-clause_LiteralGetIndex.exit70.i:		; preds = %cond_next89.i
-	br label %bb3.i.i
-
-bb3.i.i:		; preds = %bb3.i.i, %clause_LiteralGetIndex.exit70.i
-	br i1 false, label %bb40.i.i, label %bb3.i.i
-
-subst_Apply.exit.i.i:		; preds = %bb40.i.i
-	%tmp21.i.i = icmp sgt i32 %j.0.i.i, 0		; <i1> [#uses=1]
-	br i1 %tmp21.i.i, label %cond_false.i47.i, label %cond_true24.i.i
-
-cond_true24.i.i:		; preds = %subst_Apply.exit.i.i
-	br label %cond_next37.i.i
-
-cond_false.i47.i:		; preds = %subst_Apply.exit.i.i
-	br label %cond_next37.i.i
-
-cond_next37.i.i:		; preds = %cond_false.i47.i, %cond_true24.i.i
-	%tmp39.i.i = add i32 %j.0.i.i, 1		; <i32> [#uses=1]
-	br label %bb40.i.i
-
-bb40.i.i:		; preds = %cond_next37.i.i, %bb3.i.i
-	%j.0.i.i = phi i32 [ %tmp39.i.i, %cond_next37.i.i ], [ 0, %bb3.i.i ]		; <i32> [#uses=3]
-	%tmp43.i.i = icmp sgt i32 %j.0.i.i, 0		; <i1> [#uses=1]
-	br i1 %tmp43.i.i, label %inf_CopyHyperElectron.exit.i, label %subst_Apply.exit.i.i
-
-inf_CopyHyperElectron.exit.i:		; preds = %bb40.i.i
-	ret %struct.LIST_NODE* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-24-UpdateIterationSpace.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-24-UpdateIterationSpace.ll
deleted file mode 100644
index 928fd95..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-24-UpdateIterationSpace.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-
-; Update loop iteraton space to eliminate condition inside loop.
-; RUN: llvm-as < %s | opt -loop-index-split | llvm-dis | not grep bothcond
-define void @test(float* %x, i32 %ndat, float** %y, float %xcen, i32 %xmin, i32 %xmax, float %sigmal, float %contribution) {
-entry:
-	%tmp519 = icmp sgt i32 %xmin, %xmax		; <i1> [#uses=1]
-	br i1 %tmp519, label %return, label %bb.preheader
-
-bb.preheader:		; preds = %entry
-	%tmp3031 = fpext float %contribution to double		; <double> [#uses=1]
-	%tmp32 = fmul double %tmp3031, 5.000000e-01		; <double> [#uses=1]
-	%tmp3839 = fpext float %sigmal to double		; <double> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb.preheader, %cond_next45
-	%i.01.0 = phi i32 [ %tmp47, %cond_next45 ], [ 0, %bb.preheader ]		; <i32> [#uses=6]
-	%tmp2 = icmp sgt i32 %i.01.0, -1		; <i1> [#uses=1]
-	%tmp6 = icmp slt i32 %i.01.0, %ndat		; <i1> [#uses=1]
-	%bothcond = and i1 %tmp2, %tmp6		; <i1> [#uses=1]
-	br i1 %bothcond, label %cond_true9, label %cond_next45
-
-cond_true9:		; preds = %bb
-	%tmp12 = getelementptr float* %x, i32 %i.01.0		; <float*> [#uses=1]
-	%tmp13 = load float* %tmp12, align 4		; <float> [#uses=1]
-	%tmp15 = fsub float %xcen, %tmp13		; <float> [#uses=1]
-	%tmp16 = tail call float @fabsf( float %tmp15 )		; <float> [#uses=1]
-	%tmp18 = fdiv float %tmp16, %sigmal		; <float> [#uses=1]
-	%tmp21 = load float** %y, align 4		; <float*> [#uses=2]
-	%tmp27 = getelementptr float* %tmp21, i32 %i.01.0		; <float*> [#uses=1]
-	%tmp28 = load float* %tmp27, align 4		; <float> [#uses=1]
-	%tmp2829 = fpext float %tmp28 to double		; <double> [#uses=1]
-	%tmp34 = fsub float -0.000000e+00, %tmp18		; <float> [#uses=1]
-	%tmp3435 = fpext float %tmp34 to double		; <double> [#uses=1]
-	%tmp36 = tail call double @exp( double %tmp3435 )		; <double> [#uses=1]
-	%tmp37 = fmul double %tmp32, %tmp36		; <double> [#uses=1]
-	%tmp40 = fdiv double %tmp37, %tmp3839		; <double> [#uses=1]
-	%tmp41 = fadd double %tmp2829, %tmp40		; <double> [#uses=1]
-	%tmp4142 = fptrunc double %tmp41 to float		; <float> [#uses=1]
-	%tmp44 = getelementptr float* %tmp21, i32 %i.01.0		; <float*> [#uses=1]
-	store float %tmp4142, float* %tmp44, align 4
-	br label %cond_next45
-
-cond_next45:		; preds = %bb, %cond_true9
-	%tmp47 = add i32 %i.01.0, 1		; <i32> [#uses=2]
-	%tmp51 = icmp sgt i32 %tmp47, %xmax		; <i1> [#uses=1]
-	br i1 %tmp51, label %return.loopexit, label %bb
-
-return.loopexit:		; preds = %cond_next45
-	br label %return
-
-return:		; preds = %return.loopexit, %entry
-	ret void
-}
-
-declare float @fabsf(float)
-
-declare double @exp(double)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-25-UpdateIterationSpace-2.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-25-UpdateIterationSpace-2.ll
deleted file mode 100644
index 6619c7d..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2007-09-25-UpdateIterationSpace-2.ll
+++ /dev/null
@@ -1,60 +0,0 @@
-; PR714
-; Update loop iteraton space to eliminate condition inside loop.
-; RUN: llvm-as < %s | opt -loop-index-split | llvm-dis | not grep bothcond
-
-define void @test(float* %x, i32 %ndat, float** %y, float %xcen, i32 %xmin, i32 %xmax, float %sigmal, float %contribution) {
-entry:
-	%tmp5310 = icmp sgt i32 %xmin, %xmax		; <i1> [#uses=1]
-	br i1 %tmp5310, label %return, label %bb.preheader
-
-bb.preheader:		; preds = %entry
-	%tmp3031 = fpext float %contribution to double		; <double> [#uses=1]
-	%tmp32 = fmul double %tmp3031, 5.000000e-01		; <double> [#uses=1]
-	%tmp3839 = fpext float %sigmal to double		; <double> [#uses=1]
-	br label %bb
-
-bb:		; preds = %cond_next45, %bb.preheader
-	%k.06.0 = phi i32 [ 0, %bb.preheader ], [ %indvar.next, %cond_next45 ]		; <i32> [#uses=4]
-	%i.01.0 = add i32 %k.06.0, %xmin		; <i32> [#uses=4]
-	%tmp2 = icmp sgt i32 %i.01.0, -1		; <i1> [#uses=1]
-	%tmp6 = icmp slt i32 %i.01.0, %ndat		; <i1> [#uses=1]
-	%bothcond = and i1 %tmp2, %tmp6		; <i1> [#uses=1]
-	br i1 %bothcond, label %cond_true9, label %cond_next45
-
-cond_true9:		; preds = %bb
-	%tmp12 = getelementptr float* %x, i32 %i.01.0		; <float*> [#uses=1]
-	%tmp13 = load float* %tmp12, align 4		; <float> [#uses=1]
-	%tmp15 = fsub float %xcen, %tmp13		; <float> [#uses=1]
-	%tmp16 = tail call float @fabsf(float %tmp15)		; <float> [#uses=1]
-	%tmp18 = fdiv float %tmp16, %sigmal		; <float> [#uses=1]
-	%tmp21 = load float** %y, align 4		; <float*> [#uses=2]
-	%tmp27 = getelementptr float* %tmp21, i32 %k.06.0		; <float*> [#uses=1]
-	%tmp28 = load float* %tmp27, align 4		; <float> [#uses=1]
-	%tmp2829 = fpext float %tmp28 to double		; <double> [#uses=1]
-	%tmp34 = fsub float -0.000000e+00, %tmp18		; <float> [#uses=1]
-	%tmp3435 = fpext float %tmp34 to double		; <double> [#uses=1]
-	%tmp36 = tail call double @exp(double %tmp3435)		; <double> [#uses=1]
-	%tmp37 = fmul double %tmp32, %tmp36		; <double> [#uses=1]
-	%tmp40 = fdiv double %tmp37, %tmp3839		; <double> [#uses=1]
-	%tmp41 = fadd double %tmp2829, %tmp40		; <double> [#uses=1]
-	%tmp4142 = fptrunc double %tmp41 to float		; <float> [#uses=1]
-	%tmp44 = getelementptr float* %tmp21, i32 %k.06.0		; <float*> [#uses=1]
-	store float %tmp4142, float* %tmp44, align 4
-	br label %cond_next45
-
-cond_next45:		; preds = %cond_true9, %bb
-	%tmp47 = add i32 %i.01.0, 1		; <i32> [#uses=1]
-	%tmp53 = icmp sgt i32 %tmp47, %xmax		; <i1> [#uses=1]
-	%indvar.next = add i32 %k.06.0, 1		; <i32> [#uses=1]
-	br i1 %tmp53, label %return.loopexit, label %bb
-
-return.loopexit:		; preds = %cond_next45
-	br label %return
-
-return:		; preds = %return.loopexit, %entry
-	ret void
-}
-
-declare float @fabsf(float)
-
-declare double @exp(double)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-01-28-IndDecrement.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-01-28-IndDecrement.ll
deleted file mode 100644
index a4966a9..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-01-28-IndDecrement.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output -stats |& \
-; RUN: not grep "loop-index-split" 
-
-; Induction variable decrement is not yet handled.
-; pr1912.bc
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin9"
-	%struct.cset = type { i8*, i8, i8, i32, i8* }
-	%struct.parse = type { i8*, i8*, i32, i32*, i32, i32, i32, %struct.re_guts*, [10 x i32], [10 x i32] }
-	%struct.re_guts = type { i32, i32*, i32, i32, %struct.cset*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, i32, i32, [1 x i8] }
-
-define fastcc void @p_bracket(%struct.parse* %p) {
-entry:
-	br i1 false, label %bb160, label %bb195
-
-bb160:		; preds = %entry
-	br i1 false, label %bb.i169, label %bb9.i
-
-bb195:		; preds = %entry
-	ret void
-
-bb.i169:		; preds = %bb160
-	br i1 false, label %bb372, label %bb565
-
-bb9.i:		; preds = %bb160
-	ret void
-
-bb372:		; preds = %bb418, %bb.i169
-	%i1.0.reg2mem.0 = phi i32 [ %i1.0, %bb418 ], [ 0, %bb.i169 ]		; <i32> [#uses=2]
-	%tmp3.i.i.i170 = icmp ult i32 %i1.0.reg2mem.0, 128		; <i1> [#uses=1]
-	br i1 %tmp3.i.i.i170, label %bb.i.i173, label %bb13.i.i
-
-bb.i.i173:		; preds = %bb372
-	br label %bb418
-
-bb13.i.i:		; preds = %bb372
-	br label %bb418
-
-bb418:		; preds = %bb13.i.i, %bb.i.i173
-	%i1.0 = add i32 %i1.0.reg2mem.0, -1		; <i32> [#uses=2]
-	%tmp420 = icmp sgt i32 %i1.0, -1		; <i1> [#uses=1]
-	br i1 %tmp420, label %bb372, label %bb565
-
-bb565:		; preds = %bb418, %bb.i169
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-08-Crash.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-08-Crash.ll
deleted file mode 100644
index 4ad9067..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-08-Crash.ll
+++ /dev/null
@@ -1,48 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-; PR 1995
-
-define void @add_blkdev_randomness(i32 %major) nounwind  {
-entry:
-	br label %bb
-
-bb:		; preds = %bb39, %entry
-	%A.0.reg2mem.0 = phi i32 [ undef, %entry ], [ %TEMP.0, %bb39 ]		; <i32> [#uses=1]
-	%D.0.reg2mem.0 = phi i32 [ undef, %entry ], [ %C.0.reg2mem.0, %bb39 ]		; <i32> [#uses=3]
-	%C.0.reg2mem.0 = phi i32 [ undef, %entry ], [ %tmp34, %bb39 ]		; <i32> [#uses=4]
-	%TEMP.1.reg2mem.0 = phi i32 [ undef, %entry ], [ %TEMP.0, %bb39 ]		; <i32> [#uses=1]
-	%i.0.reg2mem.0 = phi i32 [ 0, %entry ], [ %tmp38, %bb39 ]		; <i32> [#uses=3]
-	%B.0.reg2mem.0 = phi i32 [ undef, %entry ], [ %A.0.reg2mem.0, %bb39 ]		; <i32> [#uses=5]
-	%tmp1 = icmp slt i32 %i.0.reg2mem.0, 40		; <i1> [#uses=1]
-	br i1 %tmp1, label %bb3, label %bb12
-
-bb3:		; preds = %bb
-	%tmp6 = xor i32 %C.0.reg2mem.0, %D.0.reg2mem.0		; <i32> [#uses=1]
-	%tmp8 = and i32 %B.0.reg2mem.0, %tmp6		; <i32> [#uses=1]
-	%tmp10 = xor i32 %tmp8, %D.0.reg2mem.0		; <i32> [#uses=1]
-	%tmp11 = add i32 %tmp10, 1518500249		; <i32> [#uses=1]
-	br label %bb39
-
-bb12:		; preds = %bb
-	%tmp14 = icmp slt i32 %i.0.reg2mem.0, 60		; <i1> [#uses=1]
-	br i1 %tmp14, label %bb17, label %bb39
-
-bb17:		; preds = %bb12
-	%tmp20 = and i32 %B.0.reg2mem.0, %C.0.reg2mem.0		; <i32> [#uses=1]
-	%tmp23 = xor i32 %B.0.reg2mem.0, %C.0.reg2mem.0		; <i32> [#uses=1]
-	%tmp25 = and i32 %tmp23, %D.0.reg2mem.0		; <i32> [#uses=1]
-	%tmp26 = add i32 %tmp20, -1894007588		; <i32> [#uses=1]
-	%tmp27 = add i32 %tmp26, %tmp25		; <i32> [#uses=1]
-	br label %bb39
-
-bb39:		; preds = %bb12, %bb3, %bb17
-	%TEMP.0 = phi i32 [ %tmp27, %bb17 ], [ %tmp11, %bb3 ], [ %TEMP.1.reg2mem.0, %bb12 ]		; <i32> [#uses=2]
-	%tmp31 = lshr i32 %B.0.reg2mem.0, 2		; <i32> [#uses=1]
-	%tmp33 = shl i32 %B.0.reg2mem.0, 30		; <i32> [#uses=1]
-	%tmp34 = or i32 %tmp31, %tmp33		; <i32> [#uses=1]
-	%tmp38 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp41 = icmp slt i32 %tmp38, 80		; <i1> [#uses=1]
-	br i1 %tmp41, label %bb, label %return
-
-return:		; preds = %bb39
-	ret void
-}
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-ExitValueNum.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-ExitValueNum.ll
deleted file mode 100644
index 9fa83e4..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-ExitValueNum.ll
+++ /dev/null
@@ -1,67 +0,0 @@
-; RUN: llvm-as < %s | opt -disable-output -loop-index-split
-; PR 2011
-	%struct.CLAUSE_HELP = type { i32, i32, i32, i32, i32*, i32, %struct.LIST_NODE*, %struct.LIST_NODE*, i32, i32, %struct.LITERAL_HELP**, i32, i32, i32, i32 }
-	%struct.LIST_NODE = type { %struct.LIST_NODE*, i8* }
-	%struct.LITERAL_HELP = type { i32, i32, i32, %struct.CLAUSE_HELP*, %struct.term* }
-	%struct.anon = type { %struct.LIST_NODE* }
-	%struct.st = type { %struct.subst*, %struct.LIST_NODE*, %struct.LIST_NODE*, i16, i16 }
-	%struct.subst = type { %struct.subst*, i32, %struct.term* }
-	%struct.term = type { i32, %struct.anon, %struct.LIST_NODE*, i32, i32 }
-
-define fastcc %struct.LIST_NODE* @inf_HyperResolvents(%struct.CLAUSE_HELP* %Clause, %struct.subst* %Subst, %struct.LIST_NODE* %Restlits, i32 %GlobalMaxVar, %struct.LIST_NODE* %FoundMap, i32 %StrictlyMaximal, { %struct.st*, [3001 x %struct.term*], [4000 x %struct.term*], i32 }* %Index, i32* %Flags, i32* %Precedence) nounwind  {
-entry:
-	br i1 false, label %bb960, label %bb885
-
-bb885:		; preds = %entry
-	ret %struct.LIST_NODE* null
-
-bb960:		; preds = %entry
-	br i1 false, label %bb1097, label %bb1005.preheader
-
-bb1005.preheader:		; preds = %bb960
-	ret %struct.LIST_NODE* null
-
-bb1097:		; preds = %bb960
-	br i1 false, label %bb1269.preheader, label %bb1141.preheader
-
-bb1141.preheader:		; preds = %bb1097
-	ret %struct.LIST_NODE* null
-
-bb1269.preheader:		; preds = %bb1097
-	br i1 false, label %bb1318, label %bb1281
-
-bb1281:		; preds = %bb1269.preheader
-	ret %struct.LIST_NODE* null
-
-bb1318:		; preds = %bb1269.preheader
-	br i1 false, label %bb1459, label %bb.nph52
-
-bb.nph52:		; preds = %bb1318
-	ret %struct.LIST_NODE* null
-
-bb1459:		; preds = %bb1318
-	br i1 false, label %bb1553, label %bb.nph62
-
-bb.nph62:		; preds = %bb1459
-	ret %struct.LIST_NODE* null
-
-bb1553:		; preds = %bb1669, %bb1459
-	%j295.0.reg2mem.0 = phi i32 [ %storemerge110, %bb1669 ], [ 0, %bb1459 ]		; <i32> [#uses=2]
-	%tmp1629 = icmp sgt i32 %j295.0.reg2mem.0, 0		; <i1> [#uses=1]
-	br i1 %tmp1629, label %bb1649, label %bb1632
-
-bb1632:		; preds = %bb1553
-	br label %bb1669
-
-bb1649:		; preds = %bb1553
-	br label %bb1669
-
-bb1669:		; preds = %bb1649, %bb1632
-	%storemerge110 = add i32 %j295.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp1672 = icmp sgt i32 %storemerge110, 0		; <i1> [#uses=1]
-	br i1 %tmp1672, label %bb1678, label %bb1553
-
-bb1678:		; preds = %bb1669
-	ret %struct.LIST_NODE* null
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-LoopLatch.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-LoopLatch.ll
deleted file mode 100644
index 0c67ea2..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-LoopLatch.ll
+++ /dev/null
@@ -1,72 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-; PR 2011
-	%struct.CLAUSE_HELP = type { i32, i32, i32, i32, i32*, i32, %struct.LIST_NODE*, %struct.LIST_NODE*, i32, i32, %struct.LITERAL_HELP**, i32, i32, i32, i32 }
-	%struct.LIST_NODE = type { %struct.LIST_NODE*, i8* }
-	%struct.LITERAL_HELP = type { i32, i32, i32, %struct.CLAUSE_HELP*, %struct.term* }
-	%struct.anon = type { %struct.LIST_NODE* }
-	%struct.st = type { %struct.subst*, %struct.LIST_NODE*, %struct.LIST_NODE*, i16, i16 }
-	%struct.subst = type { %struct.subst*, i32, %struct.term* }
-	%struct.term = type { i32, %struct.anon, %struct.LIST_NODE*, i32, i32 }
-
-define fastcc %struct.LIST_NODE* @inf_HyperResolvents(%struct.CLAUSE_HELP* %Clause, %struct.subst* %Subst, %struct.LIST_NODE* %Restlits, i32 %GlobalMaxVar, %struct.LIST_NODE* %FoundMap, i32 %StrictlyMaximal, { %struct.st*, [3001 x %struct.term*], [4000 x %struct.term*], i32 }* %Index, i32* %Flags, i32* %Precedence) nounwind  {
-entry:
-	br i1 false, label %bb960, label %bb885
-
-bb885:		; preds = %entry
-	ret %struct.LIST_NODE* null
-
-bb960:		; preds = %entry
-	br i1 false, label %bb1097, label %bb1005.preheader
-
-bb1005.preheader:		; preds = %bb960
-	ret %struct.LIST_NODE* null
-
-bb1097:		; preds = %bb960
-	br i1 false, label %bb1269.preheader, label %bb1141.preheader
-
-bb1141.preheader:		; preds = %bb1097
-	ret %struct.LIST_NODE* null
-
-bb1269.preheader:		; preds = %bb1097
-	br i1 false, label %bb1318, label %bb1281
-
-bb1281:		; preds = %bb1269.preheader
-	ret %struct.LIST_NODE* null
-
-bb1318:		; preds = %bb1269.preheader
-	br i1 false, label %bb1459, label %bb.nph52
-
-bb.nph52:		; preds = %bb1318
-	ret %struct.LIST_NODE* null
-
-bb1459:		; preds = %bb1318
-	br i1 false, label %bb1553, label %bb.nph62
-
-bb.nph62:		; preds = %bb1459
-	ret %struct.LIST_NODE* null
-
-bb1553:		; preds = %bb1669, %bb1459
-	%j295.0.reg2mem.0 = phi i32 [ %storemerge110, %bb1669 ], [ 0, %bb1459 ]		; <i32> [#uses=2]
-	br i1 false, label %bb1588, label %bb1616
-
-bb1588:		; preds = %bb1553
-	br label %bb1616
-
-bb1616:		; preds = %bb1588, %bb1553
-	%tmp1629 = icmp sgt i32 %j295.0.reg2mem.0, 0		; <i1> [#uses=1]
-	br i1 %tmp1629, label %bb1649, label %bb1632
-
-bb1632:		; preds = %bb1616
-	br label %bb1669
-
-bb1649:		; preds = %bb1616
-	br label %bb1669
-
-bb1669:		; preds = %bb1649, %bb1632
-	%storemerge110 = add i32 %j295.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp1672 = icmp sgt i32 %storemerge110, 0		; <i1> [#uses=1]
-	br i1 %tmp1672, label %bb1678, label %bb1553
-
-bb1678:		; preds = %bb1669
-	ret %struct.LIST_NODE* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-LoopLatchPHI.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-LoopLatchPHI.ll
deleted file mode 100644
index 393299f..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-13-LoopLatchPHI.ll
+++ /dev/null
@@ -1,74 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-; PR 2011
-	%struct.CLAUSE_HELP = type { i32, i32, i32, i32, i32*, i32, %struct.LIST_NODE*, %struct.LIST_NODE*, i32, i32, %struct.LITERAL_HELP**, i32, i32, i32, i32 }
-	%struct.LIST_NODE = type { %struct.LIST_NODE*, i8* }
-	%struct.LITERAL_HELP = type { i32, i32, i32, %struct.CLAUSE_HELP*, %struct.term* }
-	%struct.anon = type { %struct.LIST_NODE* }
-	%struct.st = type { %struct.subst*, %struct.LIST_NODE*, %struct.LIST_NODE*, i16, i16 }
-	%struct.subst = type { %struct.subst*, i32, %struct.term* }
-	%struct.term = type { i32, %struct.anon, %struct.LIST_NODE*, i32, i32 }
-
-define fastcc %struct.LIST_NODE* @inf_HyperResolvents(%struct.CLAUSE_HELP* %Clause, %struct.subst* %Subst, %struct.LIST_NODE* %Restlits, i32 %GlobalMaxVar, %struct.LIST_NODE* %FoundMap, i32 %StrictlyMaximal, { %struct.st*, [3001 x %struct.term*], [4000 x %struct.term*], i32 }* %Index, i32* %Flags, i32* %Precedence) nounwind  {
-entry:
-	br i1 false, label %bb960, label %bb885
-
-bb885:		; preds = %entry
-	ret %struct.LIST_NODE* null
-
-bb960:		; preds = %entry
-	br i1 false, label %bb1097, label %bb1005.preheader
-
-bb1005.preheader:		; preds = %bb960
-	ret %struct.LIST_NODE* null
-
-bb1097:		; preds = %bb960
-	br i1 false, label %bb1269.preheader, label %bb1141.preheader
-
-bb1141.preheader:		; preds = %bb1097
-	ret %struct.LIST_NODE* null
-
-bb1269.preheader:		; preds = %bb1097
-	br i1 false, label %bb1318, label %bb1281
-
-bb1281:		; preds = %bb1269.preheader
-	ret %struct.LIST_NODE* null
-
-bb1318:		; preds = %bb1269.preheader
-	br i1 false, label %bb1459, label %bb.nph52
-
-bb.nph52:		; preds = %bb1318
-	ret %struct.LIST_NODE* null
-
-bb1459:		; preds = %bb1318
-	br i1 false, label %bb1553, label %bb.nph62
-
-bb.nph62:		; preds = %bb1459
-	ret %struct.LIST_NODE* null
-
-bb1553:		; preds = %bb1669, %bb1459
-	%j295.0.reg2mem.0 = phi i32 [ %storemerge110, %bb1669 ], [ 0, %bb1459 ]		; <i32> [#uses=2]
-	%Constraint403.2.reg2mem.0 = phi %struct.LIST_NODE* [ %Constraint403.1.reg2mem.0, %bb1669 ], [ null, %bb1459 ]		; <%struct.LIST_NODE*> [#uses=1]
-	br i1 false, label %bb1588, label %bb1616
-
-bb1588:		; preds = %bb1553
-	br label %bb1616
-
-bb1616:		; preds = %bb1588, %bb1553
-	%tmp1629 = icmp sgt i32 %j295.0.reg2mem.0, 0		; <i1> [#uses=1]
-	br i1 %tmp1629, label %bb1649, label %bb1632
-
-bb1632:		; preds = %bb1616
-	br label %bb1669
-
-bb1649:		; preds = %bb1616
-	br label %bb1669
-
-bb1669:		; preds = %bb1649, %bb1632
-	%Constraint403.1.reg2mem.0 = phi %struct.LIST_NODE* [ null, %bb1632 ], [ %Constraint403.2.reg2mem.0, %bb1649 ]		; <%struct.LIST_NODE*> [#uses=1]
-	%storemerge110 = add i32 %j295.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp1672 = icmp sgt i32 %storemerge110, 0		; <i1> [#uses=1]
-	br i1 %tmp1672, label %bb1678, label %bb1553
-
-bb1678:		; preds = %bb1669
-	ret %struct.LIST_NODE* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-14-Crash.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-14-Crash.ll
deleted file mode 100644
index 2ee51e1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-14-Crash.ll
+++ /dev/null
@@ -1,464 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-; PR 2030
-	%struct.FULL = type { i32, i32, [1000 x float*] }
-
-define i32 @matgen(%struct.FULL* %a, float** %x, float** %b, float** %bt, i32** %ipvt, i32 %test_case, i32 %scale) {
-entry:
-	br i1 false, label %bb, label %entry.bb30_crit_edge
-
-entry.bb30_crit_edge:		; preds = %entry
-	br label %bb30
-
-bb:		; preds = %entry
-	br label %bb14
-
-bb6:		; preds = %bb14
-	br label %bb14
-
-bb14:		; preds = %bb6, %bb
-	br i1 false, label %bb6, label %bb22
-
-bb22:		; preds = %bb14
-	br label %bb30
-
-bb30:		; preds = %bb22, %entry.bb30_crit_edge
-	switch i32 %test_case, label %bb648 [
-		 i32 1, label %bb30.bb32_crit_edge
-		 i32 2, label %bb30.bb32_crit_edge1
-		 i32 3, label %bb30.bb32_crit_edge2
-		 i32 4, label %bb30.bb108_crit_edge
-		 i32 5, label %bb30.bb108_crit_edge3
-		 i32 6, label %bb30.bb142_crit_edge
-		 i32 7, label %bb30.bb142_crit_edge4
-		 i32 8, label %bb30.bb142_crit_edge5
-		 i32 9, label %bb234
-		 i32 10, label %bb292
-		 i32 11, label %bb353
-		 i32 12, label %bb419
-		 i32 13, label %bb485
-		 i32 14, label %bb567
-	]
-
-bb30.bb142_crit_edge5:		; preds = %bb30
-	br label %bb142
-
-bb30.bb142_crit_edge4:		; preds = %bb30
-	br label %bb142
-
-bb30.bb142_crit_edge:		; preds = %bb30
-	br label %bb142
-
-bb30.bb108_crit_edge3:		; preds = %bb30
-	br label %bb108
-
-bb30.bb108_crit_edge:		; preds = %bb30
-	br label %bb108
-
-bb30.bb32_crit_edge2:		; preds = %bb30
-	br label %bb32
-
-bb30.bb32_crit_edge1:		; preds = %bb30
-	br label %bb32
-
-bb30.bb32_crit_edge:		; preds = %bb30
-	br label %bb32
-
-bb32:		; preds = %bb30.bb32_crit_edge, %bb30.bb32_crit_edge1, %bb30.bb32_crit_edge2
-	br i1 false, label %bb53, label %bb52
-
-bb52:		; preds = %bb32
-	br label %bb739
-
-bb53:		; preds = %bb32
-	br label %bb101
-
-bb58:		; preds = %bb101
-	br label %bb92
-
-bb64:		; preds = %bb92
-	br i1 false, label %bb64.bb87_crit_edge, label %bb72
-
-bb64.bb87_crit_edge:		; preds = %bb64
-	br label %bb87
-
-bb72:		; preds = %bb64
-	br i1 false, label %bb72.bb87_crit_edge, label %bb79
-
-bb72.bb87_crit_edge:		; preds = %bb72
-	br label %bb87
-
-bb79:		; preds = %bb72
-	br label %bb87
-
-bb87:		; preds = %bb79, %bb72.bb87_crit_edge, %bb64.bb87_crit_edge
-	br label %bb92
-
-bb92:		; preds = %bb87, %bb58
-	br i1 false, label %bb64, label %bb98
-
-bb98:		; preds = %bb92
-	br label %bb101
-
-bb101:		; preds = %bb98, %bb53
-	br i1 false, label %bb58, label %bb107
-
-bb107:		; preds = %bb101
-	br label %bb651
-
-bb108:		; preds = %bb30.bb108_crit_edge, %bb30.bb108_crit_edge3
-	br i1 false, label %bb125, label %bb124
-
-bb124:		; preds = %bb108
-	br label %bb739
-
-bb125:		; preds = %bb108
-	br i1 false, label %bb138, label %bb139
-
-bb138:		; preds = %bb125
-	br label %bb140
-
-bb139:		; preds = %bb125
-	br label %bb140
-
-bb140:		; preds = %bb139, %bb138
-	br label %bb651
-
-bb142:		; preds = %bb30.bb142_crit_edge, %bb30.bb142_crit_edge4, %bb30.bb142_crit_edge5
-	br i1 false, label %bb161, label %bb160
-
-bb160:		; preds = %bb142
-	br label %bb739
-
-bb161:		; preds = %bb142
-	br i1 false, label %bb170, label %bb161.bb171_crit_edge
-
-bb161.bb171_crit_edge:		; preds = %bb161
-	br label %bb171
-
-bb170:		; preds = %bb161
-	br label %bb171
-
-bb171:		; preds = %bb170, %bb161.bb171_crit_edge
-	br i1 false, label %bb176, label %bb171.bb177_crit_edge
-
-bb171.bb177_crit_edge:		; preds = %bb171
-	br label %bb177
-
-bb176:		; preds = %bb171
-	br label %bb177
-
-bb177:		; preds = %bb176, %bb171.bb177_crit_edge
-	br label %bb227
-
-bb178:		; preds = %bb227
-	br label %bb218
-
-bb184:		; preds = %bb218
-	br i1 false, label %bb191, label %bb193
-
-bb191:		; preds = %bb184
-	br label %bb213
-
-bb193:		; preds = %bb184
-	br i1 false, label %bb200, label %bb203
-
-bb200:		; preds = %bb193
-	br label %bb213
-
-bb203:		; preds = %bb193
-	br i1 false, label %bb210, label %bb203.bb213_crit_edge
-
-bb203.bb213_crit_edge:		; preds = %bb203
-	br label %bb213
-
-bb210:		; preds = %bb203
-	br label %bb213
-
-bb213:		; preds = %bb210, %bb203.bb213_crit_edge, %bb200, %bb191
-	br label %bb218
-
-bb218:		; preds = %bb213, %bb178
-	br i1 false, label %bb184, label %bb224
-
-bb224:		; preds = %bb218
-	br label %bb227
-
-bb227:		; preds = %bb224, %bb177
-	br i1 false, label %bb178, label %bb233
-
-bb233:		; preds = %bb227
-	br label %bb651
-
-bb234:		; preds = %bb30
-	br i1 false, label %bb253, label %bb252
-
-bb252:		; preds = %bb234
-	br label %bb739
-
-bb253:		; preds = %bb234
-	br label %bb285
-
-bb258:		; preds = %bb285
-	br label %bb276
-
-bb264:		; preds = %bb276
-	br label %bb276
-
-bb276:		; preds = %bb264, %bb258
-	br i1 false, label %bb264, label %bb282
-
-bb282:		; preds = %bb276
-	br label %bb285
-
-bb285:		; preds = %bb282, %bb253
-	br i1 false, label %bb258, label %bb291
-
-bb291:		; preds = %bb285
-	br label %bb651
-
-bb292:		; preds = %bb30
-	br i1 false, label %bb311, label %bb310
-
-bb310:		; preds = %bb292
-	br label %bb739
-
-bb311:		; preds = %bb292
-	br label %bb346
-
-bb316:		; preds = %bb346
-	br label %bb337
-
-bb322:		; preds = %bb337
-	br label %bb337
-
-bb337:		; preds = %bb322, %bb316
-	br i1 false, label %bb322, label %bb343
-
-bb343:		; preds = %bb337
-	br label %bb346
-
-bb346:		; preds = %bb343, %bb311
-	br i1 false, label %bb316, label %bb352
-
-bb352:		; preds = %bb346
-	br label %bb651
-
-bb353:		; preds = %bb30
-	br i1 false, label %bb372, label %bb371
-
-bb371:		; preds = %bb353
-	br label %bb739
-
-bb372:		; preds = %bb353
-	br label %bb412
-
-bb377:		; preds = %bb412
-	br label %bb403
-
-bb383:		; preds = %bb403
-	br i1 false, label %bb395, label %bb389
-
-bb389:		; preds = %bb383
-	br label %bb396
-
-bb395:		; preds = %bb383
-	br label %bb396
-
-bb396:		; preds = %bb395, %bb389
-	br label %bb403
-
-bb403:		; preds = %bb396, %bb377
-	br i1 false, label %bb383, label %bb409
-
-bb409:		; preds = %bb403
-	br label %bb412
-
-bb412:		; preds = %bb409, %bb372
-	br i1 false, label %bb377, label %bb418
-
-bb418:		; preds = %bb412
-	br label %bb651
-
-bb419:		; preds = %bb30
-	br i1 false, label %bb438, label %bb437
-
-bb437:		; preds = %bb419
-	br label %bb739
-
-bb438:		; preds = %bb419
-	br label %bb478
-
-bb443:		; preds = %bb478
-	br label %bb469
-
-bb449:		; preds = %bb469
-	br i1 false, label %bb461, label %bb455
-
-bb455:		; preds = %bb449
-	br label %bb462
-
-bb461:		; preds = %bb449
-	br label %bb462
-
-bb462:		; preds = %bb461, %bb455
-	br label %bb469
-
-bb469:		; preds = %bb462, %bb443
-	br i1 false, label %bb449, label %bb475
-
-bb475:		; preds = %bb469
-	br label %bb478
-
-bb478:		; preds = %bb475, %bb438
-	br i1 false, label %bb443, label %bb484
-
-bb484:		; preds = %bb478
-	br label %bb651
-
-bb485:		; preds = %bb30
-	br i1 false, label %bb504, label %bb503
-
-bb503:		; preds = %bb485
-	br label %bb739
-
-bb504:		; preds = %bb485
-	br label %bb560
-
-bb513:		; preds = %bb560
-	br label %bb551
-
-bb519:		; preds = %bb551
-	br i1 false, label %bb528, label %bb532
-
-bb528:		; preds = %bb519
-	br label %bb536
-
-bb532:		; preds = %bb519
-	br label %bb536
-
-bb536:		; preds = %bb532, %bb528
-	br label %bb551
-
-bb551:		; preds = %bb536, %bb513
-	br i1 false, label %bb519, label %bb557
-
-bb557:		; preds = %bb551
-	br label %bb560
-
-bb560:		; preds = %bb557, %bb504
-	br i1 false, label %bb513, label %bb566
-
-bb566:		; preds = %bb560
-	br label %bb651
-
-bb567:		; preds = %bb30
-	br i1 false, label %bb586, label %bb585
-
-bb585:		; preds = %bb567
-	br label %bb739
-
-bb586:		; preds = %bb567
-	br label %bb641
-
-bb595:		; preds = %bb641
-	br label %bb632
-
-bb601:		; preds = %bb632
-	%tmp604 = icmp sgt i32 %i.7, 0		; <i1> [#uses=1]
-	br i1 %tmp604, label %bb607, label %bb611
-
-bb607:		; preds = %bb601
-	br label %bb615
-
-bb611:		; preds = %bb601
-	br label %bb615
-
-bb615:		; preds = %bb611, %bb607
-	%tmp629 = add i32 %i.7, 1		; <i32> [#uses=1]
-	%tmp631 = getelementptr float* %col.7, i32 1		; <float*> [#uses=1]
-	br label %bb632
-
-bb632:		; preds = %bb615, %bb595
-	%col.7 = phi float* [ null, %bb595 ], [ %tmp631, %bb615 ]		; <float*> [#uses=1]
-	%i.7 = phi i32 [ 0, %bb595 ], [ %tmp629, %bb615 ]		; <i32> [#uses=3]
-	%tmp635 = icmp slt i32 %i.7, 0		; <i1> [#uses=1]
-	br i1 %tmp635, label %bb601, label %bb638
-
-bb638:		; preds = %bb632
-	br label %bb641
-
-bb641:		; preds = %bb638, %bb586
-	br i1 false, label %bb595, label %bb647
-
-bb647:		; preds = %bb641
-	br label %bb651
-
-bb648:		; preds = %bb30
-	br label %bb739
-
-bb651:		; preds = %bb647, %bb566, %bb484, %bb418, %bb352, %bb291, %bb233, %bb140, %bb107
-	br i1 false, label %bb658, label %bb651.bb661_crit_edge
-
-bb651.bb661_crit_edge:		; preds = %bb651
-	br label %bb661
-
-bb658:		; preds = %bb651
-	br label %bb661
-
-bb661:		; preds = %bb658, %bb651.bb661_crit_edge
-	br i1 false, label %bb666, label %bb661.bb686_crit_edge
-
-bb661.bb686_crit_edge:		; preds = %bb661
-	br label %bb686
-
-bb666:		; preds = %bb661
-	br label %bb680
-
-bb670:		; preds = %bb680
-	br label %bb680
-
-bb680:		; preds = %bb670, %bb666
-	br i1 false, label %bb670, label %bb680.bb686_crit_edge
-
-bb680.bb686_crit_edge:		; preds = %bb680
-	br label %bb686
-
-bb686:		; preds = %bb680.bb686_crit_edge, %bb661.bb686_crit_edge
-	br i1 false, label %bb699, label %bb696
-
-bb696:		; preds = %bb686
-	br label %bb739
-
-bb699:		; preds = %bb686
-	br i1 false, label %bb712, label %bb709
-
-bb709:		; preds = %bb699
-	br label %bb739
-
-bb712:		; preds = %bb699
-	br i1 false, label %bb717, label %bb712.bb720_crit_edge
-
-bb712.bb720_crit_edge:		; preds = %bb712
-	br label %bb720
-
-bb717:		; preds = %bb712
-	br label %bb720
-
-bb720:		; preds = %bb717, %bb712.bb720_crit_edge
-	br i1 false, label %bb725, label %bb720.bb738_crit_edge
-
-bb720.bb738_crit_edge:		; preds = %bb720
-	br label %bb738
-
-bb725:		; preds = %bb720
-	br label %bb738
-
-bb738:		; preds = %bb725, %bb720.bb738_crit_edge
-	br label %bb739
-
-bb739:		; preds = %bb738, %bb709, %bb696, %bb648, %bb585, %bb503, %bb437, %bb371, %bb310, %bb252, %bb160, %bb124, %bb52
-	br label %return
-
-return:		; preds = %bb739
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-03-24-ExitPhi.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-03-24-ExitPhi.ll
deleted file mode 100644
index 24f22ca..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-03-24-ExitPhi.ll
+++ /dev/null
@@ -1,69 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-; Handle Exit block phis that do not have any use inside the loop.
-
-	%struct.ATOM = type { double, double, double, double, double, double, i32, double, double, double, double, i8*, i8, [9 x i8], double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, [200 x i8*], [32 x i8*], [32 x i8], i32 }
-	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
-	%struct.__sFILEX = type opaque
-	%struct.__sbuf = type { i8*, i32 }
-
-define i32 @math([80 x i8]* %tokens, double* %fvalue, i32* %ivalue, %struct.FILE* %ip, %struct.FILE* %op, i32 %echo) nounwind  {
-entry:
-	br i1 false, label %bb.i, label %bb35.i
-bb.i:		; preds = %entry
-	br i1 false, label %bb6.i, label %bb9.i
-bb9.i:		; preds = %bb.i
-	ret i32 0
-bb35.i:		; preds = %entry
-	ret i32 0
-bb6.i:		; preds = %bb.i
-	br i1 false, label %a_l2_f.exit, label %bb16.i
-bb16.i:		; preds = %bb6.i
-	ret i32 0
-a_l2_f.exit:		; preds = %bb6.i
-	br i1 false, label %bb7.i97, label %bb6.i71
-bb6.i71:		; preds = %a_l2_f.exit
-	ret i32 0
-bb7.i97:		; preds = %a_l2_f.exit
-	br i1 false, label %bb, label %bb18.i102
-bb18.i102:		; preds = %bb7.i97
-	ret i32 0
-bb:		; preds = %bb7.i97
-	br i1 false, label %bb38, label %AFOUND
-bb38:		; preds = %bb
-	br i1 false, label %bb111, label %bb7.i120
-AFOUND:		; preds = %bb
-	ret i32 0
-bb7.i120:		; preds = %bb38
-	ret i32 0
-bb111:		; preds = %bb38
-	switch i32 0, label %bb574 [
-		 i32 1, label %bb158
-		 i32 0, label %bb166
-	]
-bb158:		; preds = %bb111
-	ret i32 0
-bb166:		; preds = %bb111
-	ret i32 0
-bb574:		; preds = %bb111
-	br i1 false, label %bb11.i249, label %bb600
-bb11.i249:		; preds = %bb574
-	br i1 false, label %bb11.i265, label %bb596
-bb11.i265:		; preds = %bb590, %bb11.i249
-	%i.1.reg2mem.0 = phi i32 [ %tmp589.reg2mem.0, %bb590 ], [ 0, %bb11.i249 ]		; <i32> [#uses=2]
-	%tmp13.i264 = icmp slt i32 %i.1.reg2mem.0, 1		; <i1> [#uses=1]
-	br i1 %tmp13.i264, label %bb16.i267, label %bb30.i279
-bb16.i267:		; preds = %bb11.i265
-	br label %bb590
-bb30.i279:		; preds = %bb11.i265
-	br label %bb590
-bb590:		; preds = %bb30.i279, %bb16.i267
-	%tmp5876282.reg2mem.0 = phi %struct.ATOM* [ null, %bb30.i279 ], [ null, %bb16.i267 ]		; <%struct.ATOM*> [#uses=1]
-	%tmp589.reg2mem.0 = add i32 %i.1.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp593 = icmp slt i32 %tmp589.reg2mem.0, 0		; <i1> [#uses=1]
-	br i1 %tmp593, label %bb11.i265, label %bb596
-bb596:		; preds = %bb590, %bb11.i249
-	%ap.0.reg2mem.0 = phi %struct.ATOM* [ null, %bb11.i249 ], [ %tmp5876282.reg2mem.0, %bb590 ]		; <%struct.ATOM*> [#uses=0]
-	ret i32 0
-bb600:		; preds = %bb574
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-05-19-IndVar.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-05-19-IndVar.ll
deleted file mode 100644
index 5809918..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-05-19-IndVar.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -stats -disable-output | not grep "loop-index-split"
-;PR2294
- at g_2 = external global i16		; <i16*> [#uses=4]
- at g_5 = external global i32		; <i32*> [#uses=1]
- at .str = external constant [4 x i8]		; <[4 x i8]*> [#uses=1]
-
-declare void @func_1() nounwind 
-
-define i32 @main() nounwind  {
-entry:
-	%tmp101.i = load i16* @g_2, align 2		; <i16> [#uses=1]
-	%tmp112.i = icmp sgt i16 %tmp101.i, 0		; <i1> [#uses=1]
-	br i1 %tmp112.i, label %bb.preheader.i, label %func_1.exit
-bb.preheader.i:		; preds = %entry
-	%g_2.promoted.i = load i16* @g_2		; <i16> [#uses=1]
-	br label %bb.i
-bb.i:		; preds = %bb6.i, %bb.preheader.i
-	%g_2.tmp.0.i = phi i16 [ %g_2.promoted.i, %bb.preheader.i ], [ %tmp8.i, %bb6.i ]		; <i16> [#uses=2]
-	%tmp2.i = icmp eq i16 %g_2.tmp.0.i, 0		; <i1> [#uses=1]
-	br i1 %tmp2.i, label %bb4.i, label %bb6.i
-bb4.i:		; preds = %bb.i
-	%tmp5.i = volatile load i32* @g_5, align 4		; <i32> [#uses=0]
-	br label %bb6.i
-bb6.i:		; preds = %bb4.i, %bb.i
-	%tmp8.i = add i16 %g_2.tmp.0.i, 1		; <i16> [#uses=3]
-	%tmp11.i = icmp sgt i16 %tmp8.i, 42		; <i1> [#uses=1]
-	br i1 %tmp11.i, label %bb.i, label %return.loopexit.i
-return.loopexit.i:		; preds = %bb6.i
-	%tmp8.i.lcssa = phi i16 [ %tmp8.i, %bb6.i ]		; <i16> [#uses=1]
-	store i16 %tmp8.i.lcssa, i16* @g_2
-	br label %func_1.exit
-func_1.exit:		; preds = %return.loopexit.i, %entry
-	%tmp1 = load i16* @g_2, align 2		; <i16> [#uses=1]
-	%tmp12 = sext i16 %tmp1 to i32		; <i32> [#uses=1]
-	%tmp3 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i32 %tmp12 ) nounwind 		; <i32> [#uses=0]
-	ret i32 0
-}
-
-declare i32 @printf(i8*, ...) nounwind 
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-06-03-DomFrontier.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-06-03-DomFrontier.ll
deleted file mode 100644
index 1f6876c..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-06-03-DomFrontier.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -loop-unswitch -loop-index-split -instcombine -disable-output
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9"
-	%struct.__CFData = type opaque
-	%struct.__CFString = type opaque
-
-define %struct.__CFData* @WirelessCreatePSK(%struct.__CFString* %inPassphrase, %struct.__CFData* %inSSID) nounwind  {
-entry:
-	br label %bb52
-
-bb52:		; preds = %bb142, %bb52, %entry
-	br i1 false, label %bb142, label %bb52
-
-bb63:		; preds = %bb142, %bb131
-	%t.0.reg2mem.0 = phi i32 [ %tmp133, %bb131 ], [ 0, %bb142 ]		; <i32> [#uses=2]
-	%tmp65 = icmp ult i32 %t.0.reg2mem.0, 16		; <i1> [#uses=1]
-	br i1 %tmp65, label %bb68, label %bb89
-
-bb68:		; preds = %bb63
-	br label %bb131
-
-bb89:		; preds = %bb63
-	br label %bb131
-
-bb131:		; preds = %bb89, %bb68
-	%tmp133 = add i32 %t.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%tmp136 = icmp ult i32 %tmp133, 80		; <i1> [#uses=1]
-	br i1 %tmp136, label %bb63, label %bb142
-
-bb142:		; preds = %bb131, %bb52
-	br i1 undef, label %bb63, label %bb52
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-07-08-MisCompilation.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-07-08-MisCompilation.ll
deleted file mode 100644
index 7592511..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-07-08-MisCompilation.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -stats -disable-output | not grep "1 loop-index-split"
-; PR 2487
- at g_6 = external global i32		; <i32*> [#uses=1]
-
-define void @func_1() nounwind  {
-entry:
-	br label %bb
-
-bb:		; preds = %bb4, %entry
-	%l_3.0 = phi i8 [ 0, %entry ], [ %tmp6, %bb4 ]		; <i8> [#uses=2]
-	%tmp1 = icmp eq i8 %l_3.0, 0		; <i1> [#uses=1]
-	br i1 %tmp1, label %bb3, label %bb4
-
-bb3:		; preds = %bb
-	store i32 1, i32* @g_6, align 4
-	br label %bb4
-
-bb4:		; preds = %bb3, %bb
-	%tmp6 = add i8 %l_3.0, 1		; <i8> [#uses=2]
-	%tmp9 = icmp sgt i8 %tmp6, -1		; <i1> [#uses=1]
-	br i1 %tmp9, label %bb, label %return
-
-return:		; preds = %bb4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-09-17-IVUse.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-09-17-IVUse.ll
deleted file mode 100644
index a7a7cc2..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-09-17-IVUse.ll
+++ /dev/null
@@ -1,78 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -stats -disable-output | not grep "loop-index-split"
-; PR 2791
- at g_40 = common global i32 0		; <i32*> [#uses=1]
- at g_192 = common global i32 0		; <i32*> [#uses=2]
-@"\01LC" = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
-
-define void @func_29() nounwind {
-entry:
-	%0 = load i32* @g_40, align 4		; <i32> [#uses=1]
-	%1 = icmp eq i32 %0, 0		; <i1> [#uses=1]
-	%g_192.promoted = load i32* @g_192		; <i32> [#uses=0]
-	br i1 %1, label %entry.split.us, label %entry.split
-
-entry.split.us:		; preds = %entry
-	br label %bb.us
-
-bb.us:		; preds = %bb5.us, %entry.split.us
-	%i.0.reg2mem.0.us = phi i32 [ 0, %entry.split.us ], [ %3, %bb5.us ]		; <i32> [#uses=2]
-	%2 = icmp eq i32 %i.0.reg2mem.0.us, 0		; <i1> [#uses=1]
-	br i1 %2, label %bb1.us, label %bb5.us
-
-bb5.us:		; preds = %bb1.us, %bb4.us, %bb.us
-	%iftmp.0.0.us = phi i32 [ 0, %bb4.us ], [ 1, %bb.us ], [ 1, %bb1.us ]		; <i32> [#uses=1]
-	%3 = add i32 %i.0.reg2mem.0.us, 1		; <i32> [#uses=3]
-	%4 = icmp ult i32 %3, 10		; <i1> [#uses=1]
-	br i1 %4, label %bb.us, label %bb8.us
-
-bb4.us:		; preds = %bb1.us
-	br label %bb5.us
-
-bb1.us:		; preds = %bb.us
-	br i1 true, label %bb4.us, label %bb5.us
-
-bb8.us:		; preds = %bb5.us
-	%iftmp.0.0.lcssa.us = phi i32 [ %iftmp.0.0.us, %bb5.us ]		; <i32> [#uses=1]
-	%.lcssa.us = phi i32 [ %3, %bb5.us ]		; <i32> [#uses=1]
-	br label %bb8.split
-
-entry.split:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb5, %entry.split
-	%i.0.reg2mem.0 = phi i32 [ 0, %entry.split ], [ %6, %bb5 ]		; <i32> [#uses=2]
-	%5 = icmp eq i32 %i.0.reg2mem.0, 0		; <i1> [#uses=1]
-	br i1 %5, label %bb1, label %bb5
-
-bb1:		; preds = %bb
-	br i1 false, label %bb4, label %bb5
-
-bb4:		; preds = %bb1
-	br label %bb5
-
-bb5:		; preds = %bb1, %bb, %bb4
-	%iftmp.0.0 = phi i32 [ 0, %bb4 ], [ 1, %bb ], [ 1, %bb1 ]		; <i32> [#uses=1]
-	%6 = add i32 %i.0.reg2mem.0, 1		; <i32> [#uses=3]
-	%7 = icmp ult i32 %6, 10		; <i1> [#uses=1]
-	br i1 %7, label %bb, label %bb8
-
-bb8:		; preds = %bb5
-	%iftmp.0.0.lcssa = phi i32 [ %iftmp.0.0, %bb5 ]		; <i32> [#uses=1]
-	%.lcssa = phi i32 [ %6, %bb5 ]		; <i32> [#uses=1]
-	br label %bb8.split
-
-bb8.split:		; preds = %bb8.us, %bb8
-	%iftmp.0.0.lcssa.us-lcssa = phi i32 [ %iftmp.0.0.lcssa, %bb8 ], [ %iftmp.0.0.lcssa.us, %bb8.us ]		; <i32> [#uses=1]
-	%.lcssa.us-lcssa = phi i32 [ %.lcssa, %bb8 ], [ %.lcssa.us, %bb8.us ]		; <i32> [#uses=1]
-	store i32 %iftmp.0.0.lcssa.us-lcssa, i32* @g_192
-	%8 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), i32 %.lcssa.us-lcssa ) nounwind		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @printf(i8*, ...) nounwind
-
-define i32 @main() nounwind {
-entry:
-	call void @func_29( ) nounwind
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-09-20-Crash.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-09-20-Crash.ll
deleted file mode 100644
index f66edcd..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-09-20-Crash.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-; PR 2805
- at g_330 = common global i32 0		; <i32*> [#uses=1]
-
-define i32 @func_45(i32 %p_47) nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb3, %entry
-	%p_47_addr.0.reg2mem.0 = phi i32 [ 0, %entry ], [ %2, %bb3 ]		; <i32> [#uses=2]
-	%0 = icmp eq i32 %p_47_addr.0.reg2mem.0, 0		; <i1> [#uses=1]
-	br i1 %0, label %bb2, label %bb1
-
-bb1:		; preds = %bb
-	%1 = tail call i32 (...)* @func_70( i32 1 ) nounwind		; <i32> [#uses=0]
-	br label %bb3
-
-bb2:		; preds = %bb
-	store i32 1, i32* @g_330, align 4
-	br label %bb3
-
-bb3:		; preds = %bb2, %bb1
-	%2 = add i32 %p_47_addr.0.reg2mem.0, 1		; <i32> [#uses=3]
-	%3 = icmp ult i32 %2, 22		; <i1> [#uses=1]
-	br i1 %3, label %bb, label %bb6
-
-bb6:		; preds = %bb3
-	%.lcssa = phi i32 [ %2, %bb3 ]		; <i32> [#uses=1]
-	%4 = tail call i32 (...)* @func_95( i32 %.lcssa ) nounwind		; <i32> [#uses=1]
-	%5 = tail call i32 (...)* @func_56( i32 %4 ) nounwind		; <i32> [#uses=0]
-	ret i32 undef
-}
-
-declare i32 @func_70(...)
-
-declare i32 @func_95(...)
-
-declare i32 @func_56(...)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-10-06-Crash.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-10-06-Crash.ll
deleted file mode 100644
index b477b73..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-10-06-Crash.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-	%struct.RExC_state_t = type { i32, i8*, %struct.regexp*, i8*, i8*, i8*, i32, %struct.regnode*, %struct.regnode*, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.SV = type { i8*, i32, i32 }
-	%struct.reg_data = type { i32, i8*, [1 x i8*] }
-	%struct.reg_substr_data = type { [3 x %struct.reg_substr_datum] }
-	%struct.reg_substr_datum = type { i32, i32, %struct.SV*, %struct.SV* }
-	%struct.regexp = type { i32*, i32*, %struct.regnode*, %struct.reg_substr_data*, i8*, %struct.reg_data*, i8*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, [1 x %struct.regnode] }
-	%struct.regnode = type { i8, i8, i16 }
-
-define fastcc %struct.regnode* @S_regclass(%struct.RExC_state_t* %pRExC_state) nounwind {
-entry:
-	br label %bb439
-
-bb439:		; preds = %bb444, %entry
-	%value23.16.reg2mem.0 = phi i32 [ %3, %bb444 ], [ 0, %entry ]		; <i32> [#uses=3]
-	%0 = icmp ugt i32 %value23.16.reg2mem.0, 31		; <i1> [#uses=1]
-	%1 = icmp ne i32 %value23.16.reg2mem.0, 127		; <i1> [#uses=1]
-	%2 = and i1 %0, %1		; <i1> [#uses=1]
-	br i1 %2, label %bb443, label %bb444
-
-bb443:		; preds = %bb439
-	br label %bb444
-
-bb444:		; preds = %bb443, %bb439
-	%3 = add i32 %value23.16.reg2mem.0, 1		; <i32> [#uses=2]
-	%4 = icmp ugt i32 %3, 255		; <i1> [#uses=1]
-	br i1 %4, label %bb675, label %bb439
-
-bb675:		; preds = %bb444
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-10-10-OneIteration.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-10-10-OneIteration.ll
deleted file mode 100644
index 417f091..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-10-10-OneIteration.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -stats -disable-output |& grep "1 loop-index-split" 
-; PR 2869
-
- at w = external global [2 x [2 x i32]]		; <[2 x [2 x i32]]*> [#uses=5]
-
-declare i32 @f() nounwind
-
-define i32 @main() noreturn nounwind {
-entry:
-	br label %bb1.i.outer
-
-bb1.i.outer:		; preds = %bb5.i, %entry
-	%i.0.reg2mem.0.ph.i.ph = phi i32 [ 0, %entry ], [ %indvar.next1, %bb5.i ]		; <i32> [#uses=3]
-	br label %bb1.i
-
-bb1.i:		; preds = %bb3.i, %bb1.i.outer
-	%j.0.reg2mem.0.i = phi i32 [ 0, %bb1.i.outer ], [ %indvar.next, %bb3.i ]		; <i32> [#uses=3]
-	%0 = icmp eq i32 %i.0.reg2mem.0.ph.i.ph, %j.0.reg2mem.0.i		; <i1> [#uses=1]
-	br i1 %0, label %bb2.i, label %bb3.i
-
-bb2.i:		; preds = %bb1.i
-	%1 = getelementptr [2 x [2 x i32]]* @w, i32 0, i32 %i.0.reg2mem.0.ph.i.ph, i32 %j.0.reg2mem.0.i		; <i32*> [#uses=1]
-	store i32 1, i32* %1, align 4
-	br label %bb3.i
-
-bb3.i:		; preds = %bb2.i, %bb1.i
-	%indvar.next = add i32 %j.0.reg2mem.0.i, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, 2		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb5.i, label %bb1.i
-
-bb5.i:		; preds = %bb3.i
-	%indvar.next1 = add i32 %i.0.reg2mem.0.ph.i.ph, 1		; <i32> [#uses=2]
-	%exitcond2 = icmp eq i32 %indvar.next1, 2		; <i1> [#uses=1]
-	br i1 %exitcond2, label %f.exit, label %bb1.i.outer
-
-f.exit:		; preds = %bb5.i
-	%2 = load i32* getelementptr ([2 x [2 x i32]]* @w, i32 0, i32 0, i32 0), align 4		; <i32> [#uses=1]
-	%3 = icmp eq i32 %2, 1		; <i1> [#uses=1]
-	br i1 %3, label %bb, label %bb3
-
-bb:		; preds = %f.exit
-	%4 = load i32* getelementptr ([2 x [2 x i32]]* @w, i32 0, i32 1, i32 1), align 4		; <i32> [#uses=1]
-	%5 = icmp eq i32 %4, 1		; <i1> [#uses=1]
-	br i1 %5, label %bb1, label %bb3
-
-bb1:		; preds = %bb
-	%6 = load i32* getelementptr ([2 x [2 x i32]]* @w, i32 0, i32 1, i32 0), align 4		; <i32> [#uses=1]
-	%7 = icmp eq i32 %6, 0		; <i1> [#uses=1]
-	br i1 %7, label %bb2, label %bb3
-
-bb2:		; preds = %bb1
-	%8 = load i32* getelementptr ([2 x [2 x i32]]* @w, i32 0, i32 0, i32 1), align 4		; <i32> [#uses=1]
-	%9 = icmp eq i32 %8, 0		; <i1> [#uses=1]
-	br i1 %9, label %bb4, label %bb3
-
-bb3:		; preds = %bb2, %bb1, %bb, %f.exit
-	tail call void @abort() noreturn nounwind
-	unreachable
-
-bb4:		; preds = %bb2
-	ret i32 0
-}
-
-declare void @abort() noreturn nounwind
-
-declare void @exit(i32) noreturn nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-11-10-Sign.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-11-10-Sign.ll
deleted file mode 100644
index 11ee0f5..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-11-10-Sign.ll
+++ /dev/null
@@ -1,69 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -stats | not grep "loop-index-split"
-; PR3029
-
- at g_138 = common global i32 0		; <i32*> [#uses=3]
- at g_188 = common global i32 0		; <i32*> [#uses=4]
- at g_207 = common global i32 0		; <i32*> [#uses=3]
-@"\01LC" = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
- at g_102 = common global i32 0		; <i32*> [#uses=0]
-
-define i32 @func_119() nounwind {
-entry:
-	%0 = volatile load i32* @g_138, align 4		; <i32> [#uses=1]
-	ret i32 %0
-}
-
-define void @func_110(i32 %p_111) nounwind {
-entry:
-	%0 = load i32* @g_188, align 4		; <i32> [#uses=1]
-	%1 = icmp ugt i32 %0, -1572397472		; <i1> [#uses=1]
-	br i1 %1, label %bb, label %bb1
-
-bb:		; preds = %entry
-	%2 = volatile load i32* @g_138, align 4		; <i32> [#uses=0]
-	ret void
-
-bb1:		; preds = %entry
-	store i32 1, i32* @g_207, align 4
-	ret void
-}
-
-define void @func_34() nounwind {
-entry:
-	store i32 0, i32* @g_188
-	%g_188.promoted = load i32* @g_188		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %func_110.exit, %entry
-	%g_188.tmp.0 = phi i32 [ %g_188.promoted, %entry ], [ %2, %func_110.exit ]		; <i32> [#uses=2]
-	%0 = icmp ugt i32 %g_188.tmp.0, -1572397472		; <i1> [#uses=1]
-	br i1 %0, label %bb.i, label %bb1.i
-
-bb.i:		; preds = %bb
-	%1 = volatile load i32* @g_138, align 4		; <i32> [#uses=0]
-	br label %func_110.exit
-
-bb1.i:		; preds = %bb
-	store i32 1, i32* @g_207, align 4
-	br label %func_110.exit
-
-func_110.exit:		; preds = %bb.i, %bb1.i
-	%2 = add i32 %g_188.tmp.0, 1		; <i32> [#uses=3]
-	%3 = icmp sgt i32 %2, 1		; <i1> [#uses=1]
-	br i1 %3, label %return, label %bb
-
-return:		; preds = %func_110.exit
-	%.lcssa = phi i32 [ %2, %func_110.exit ]		; <i32> [#uses=1]
-	store i32 %.lcssa, i32* @g_188
-	ret void
-}
-
-define i32 @main() nounwind {
-entry:
-	call void @func_34() nounwind
-	%0 = load i32* @g_207, align 4		; <i32> [#uses=1]
-	%1 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), i32 %0) nounwind		; <i32> [#uses=0]
-	ret i32 0
-}
-
-declare i32 @printf(i8*, ...) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2009-03-02-UpdateIterationSpace-crash.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2009-03-02-UpdateIterationSpace-crash.ll
deleted file mode 100644
index 73113e7..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2009-03-02-UpdateIterationSpace-crash.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output
-	%struct.CGPoint = type { double, double }
-	%struct.IBCFMutableDictionary = type { %struct.NSMutableArray, %struct.__CFDictionary*, %struct.NSSortDescriptor*, %struct.NSSortDescriptor* }
-	%struct.IBInspectorMode = type opaque
-	%struct.IBInspectorModeView = type { %struct.NSView, %struct.NSArray*, %struct.IBCFMutableDictionary*, %struct.IBInspectorMode*, %struct.IBInspectorMode*, %struct.IBInspectorMode*, %struct.objc_selector*, %struct.NSObject* }
-	%struct.NSArray = type { %struct.NSObject }
-	%struct.NSImage = type { %struct.NSObject, %struct.NSArray*, %struct.CGPoint, %struct.__imageFlags, %struct.NSObject*, %struct._NSImageAuxiliary* }
-	%struct.NSMutableArray = type { %struct.NSArray }
-	%struct.NSObject = type { %struct.objc_class* }
-	%struct.NSRect = type { %struct.CGPoint, %struct.CGPoint }
-	%struct.NSResponder = type { %struct.NSObject, %struct.NSObject* }
-	%struct.NSSortDescriptor = type { %struct.NSObject, i64, %struct.NSArray*, %struct.objc_selector*, %struct.NSObject* }
-	%struct.NSURL = type { %struct.NSObject, %struct.NSArray*, %struct.NSURL*, i8*, i8* }
-	%struct.NSView = type { %struct.NSResponder, %struct.NSRect, %struct.NSRect, %struct.NSObject*, %struct.NSObject*, %struct.NSWindow*, %struct.NSObject*, %struct.NSObject*, %struct.NSObject*, %struct.NSObject*, %struct._NSViewAuxiliary*, %struct._VFlags, %struct.__VFlags2 }
-	%struct.NSWindow = type { %struct.NSResponder, %struct.NSRect, %struct.NSObject*, %struct.NSObject*, %struct.NSResponder*, %struct.NSView*, %struct.NSView*, %struct.NSObject*, %struct.NSObject*, i32, i64, i32, %struct.NSArray*, %struct.NSObject*, i8, i8, i8, i8, i8*, i8*, %struct.NSImage*, i32, %struct.NSMutableArray*, %struct.NSURL*, %struct.CGPoint*, %struct.NSArray*, %struct.NSArray*, %struct.__wFlags, %struct.NSObject*, %struct.NSView*, %struct.NSWindowAuxiliary* }
-	%struct.NSWindowAuxiliary = type opaque
-	%struct._NSImageAuxiliary = type opaque
-	%struct._NSViewAuxiliary = type opaque
-	%struct._VFlags = type <{ i8, i8, i8, i8 }>
-	%struct.__CFDictionary = type opaque
-	%struct.__VFlags2 = type <{ i32 }>
-	%struct.__imageFlags = type <{ i8, [3 x i8] }>
-	%struct.__wFlags = type <{ i8, i8, i8, i8, i8, i8, i8, i8 }>
-	%struct.objc_class = type opaque
-	%struct.objc_selector = type opaque
-
-define %struct.NSArray* @"\01-[IBInspectorModeView calculateModeRects]"(%struct.IBInspectorModeView* %self, %struct.objc_selector* %_cmd) optsize ssp {
-entry:
-	br i1 false, label %bb7, label %bb
-
-bb:		; preds = %entry
-	br i1 false, label %bb.nph, label %bb7.loopexit
-
-bb.nph:		; preds = %bb
-	br label %bb1
-
-bb1:		; preds = %bb6, %bb.nph
-	%midx.01 = phi i64 [ %3, %bb6 ], [ 0, %bb.nph ]		; <i64> [#uses=3]
-	%0 = icmp sge i64 %midx.01, 0		; <i1> [#uses=1]
-	%1 = icmp sle i64 %midx.01, 0		; <i1> [#uses=1]
-	%2 = and i1 %0, %1		; <i1> [#uses=1]
-	br i1 %2, label %bb4, label %bb5
-
-bb4:		; preds = %bb1
-	br label %bb5
-
-bb5:		; preds = %bb4, %bb1
-	%modeWidth.0 = phi double [ 0.000000e+00, %bb1 ], [ 0.000000e+00, %bb4 ]		; <double> [#uses=0]
-	%3 = add i64 %midx.01, 1		; <i64> [#uses=1]
-	br label %bb6
-
-bb6:		; preds = %bb5
-	%4 = icmp slt i64 0, 0		; <i1> [#uses=1]
-	br i1 %4, label %bb1, label %bb6.bb7.loopexit_crit_edge
-
-bb6.bb7.loopexit_crit_edge:		; preds = %bb6
-	br label %bb7.loopexit
-
-bb7.loopexit:		; preds = %bb6.bb7.loopexit_crit_edge, %bb
-	br label %bb7
-
-bb7:		; preds = %bb7.loopexit, %entry
-	ret %struct.NSArray* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2009-03-30-undef.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2009-03-30-undef.ll
deleted file mode 100644
index b34cb51..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2009-03-30-undef.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split | llvm-dis | not grep undef
-define i32 @main() {
-entry:
-	br label %header
-
-header:
-	%r = phi i32 [ 0, %entry ], [ %r3, %skip ]
-	%i = phi i32 [ 0, %entry ], [ %i1, %skip ]
-        %i99 = add i32 %i, 99
-	%cond = icmp eq i32 %i99, 3
-        br i1 %cond, label %body, label %skip
-
-body:
-        br label %skip
-
-skip:
-        %r3 = phi i32 [ %r, %header ], [ 3, %body ]
-        %i1 = add i32 %i, 1
-        %exitcond = icmp eq i32 %i1, 10
-        br i1 %exitcond, label %exit, label %header
-
-exit:
-        ret i32 %r3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash-2007-08-17.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash-2007-08-17.ll
deleted file mode 100644
index d77f55a..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash-2007-08-17.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output 
-
-        %struct._edit_script = type { %struct._edit_script*, i32, i8 }
-
-define void @align_path(i8* %seq1, i8* %seq2, i32 %i1, i32 %j1, i32 %i2, i32 %j2, i32 %dist, %struct._edit_script** %head, %struct._edit_script** %tail, i32 %M, i32 %N) {
-entry:
-        br label %bb354
-
-bb354:          ; preds = %bb511, %entry
-        br i1 false, label %bb495, label %bb368
-
-bb368:          ; preds = %bb354
-        ret void
-
-bb495:          ; preds = %bb495, %bb354
-        br i1 false, label %bb511, label %bb495
-
-bb511:          ; preds = %bb495
-        br i1 false, label %xmalloc.exit69, label %bb354
-
-xmalloc.exit69:         ; preds = %bb511
-        br i1 false, label %bb556, label %bb542.preheader
-
-bb542.preheader:                ; preds = %xmalloc.exit69
-        ret void
-
-bb556:          ; preds = %xmalloc.exit69
-        br label %bb583
-
-bb583:          ; preds = %cond_next693, %bb556
-        %k.4342.0 = phi i32 [ %tmp707, %cond_next693 ], [ 0, %bb556 ]           ; <i32> [#uses=2]
-        %tmp586 = icmp eq i32 %k.4342.0, 0              ; <i1> [#uses=1]
-        br i1 %tmp586, label %cond_true589, label %cond_false608
-
-cond_true589:           ; preds = %bb583
-        br label %cond_next693
-
-cond_false608:          ; preds = %bb583
-        br i1 false, label %cond_next661, label %cond_next693
-
-cond_next661:           ; preds = %cond_false608
-        br label %cond_next693
-
-cond_next693:           ; preds = %cond_next661, %cond_false608, %cond_true589
-        %tmp705 = getelementptr i32* null, i32 0                ; <i32*> [#uses=0]
-        %tmp707 = add i32 %k.4342.0, 1          ; <i32> [#uses=2]
-        %tmp711 = icmp sgt i32 %tmp707, 0               ; <i1> [#uses=1]
-        br i1 %tmp711, label %bb726.preheader, label %bb583
-
-bb726.preheader:                ; preds = %cond_next693
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash-2007-12-03.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash-2007-12-03.ll
deleted file mode 100644
index 4b2cffd..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash-2007-12-03.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output 
-; PR1828.bc
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-	%RPyOpaque_RuntimeTypeInfo = type opaque*
-	%arraytype_Char_1 = type { i32, [0 x i8] }
-	%arraytype_Signed = type { i32, [0 x i32] }
-	%functiontype_11 = type %structtype_object* ()
-	%functiontype_360 = type %structtype_rpy_string* (%structtype_pypy.rlib.rbigint.rbigint*, %structtype_rpy_string*, %structtype_rpy_string*, %structtype_rpy_string*)
-	%structtype_list_18 = type { i32, %arraytype_Signed* }
-	%structtype_object = type { %structtype_object_vtable* }
-	%structtype_object_vtable = type { i32, i32, %RPyOpaque_RuntimeTypeInfo*, %arraytype_Char_1*, %functiontype_11* }
-	%structtype_pypy.rlib.rbigint.rbigint = type { %structtype_object, %structtype_list_18*, i32 }
-	%structtype_rpy_string = type { i32, %arraytype_Char_1 }
-
-define fastcc %structtype_rpy_string* @pypy__format(%structtype_pypy.rlib.rbigint.rbigint* %a_1, %structtype_rpy_string* %digits_0, %structtype_rpy_string* %prefix_3, %structtype_rpy_string* %suffix_0) {
-block0:
-	br i1 false, label %block67, label %block13
-
-block13:		; preds = %block0
-	ret %structtype_rpy_string* null
-
-block31:		; preds = %block67, %block44
-	ret %structtype_rpy_string* null
-
-block42:		; preds = %block67, %block44
-	%j_167.reg2mem.0 = phi i32 [ %v63822, %block44 ], [ 0, %block67 ]		; <i32> [#uses=1]
-	%v63822 = add i32 %j_167.reg2mem.0, -1		; <i32> [#uses=3]
-	%v63823 = icmp slt i32 %v63822, 0		; <i1> [#uses=1]
-	br i1 %v63823, label %block46, label %block43
-
-block43:		; preds = %block42
-	br label %block44
-
-block44:		; preds = %block46, %block43
-	%v6377959 = icmp sgt i32 %v63822, 0		; <i1> [#uses=1]
-	br i1 %v6377959, label %block42, label %block31
-
-block46:		; preds = %block42
-	br label %block44
-
-block67:		; preds = %block0
-	br i1 false, label %block42, label %block31
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash2-2007-08-17.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash2-2007-08-17.ll
deleted file mode 100644
index 241b7dc..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/Crash2-2007-08-17.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output 
-
-        %struct._edit_script = type { %struct._edit_script*, i32, i8 }
-
-define void @align_path(i8* %seq1, i8* %seq2, i32 %i1, i32 %j1, i32 %i2, i32 %j2, i32 %dist, %struct._edit_script** %head, %struct._edit_script** %tail, i32 %M, i32 %N) {
-entry:
-        br label %bb354
-
-bb354:          ; preds = %bb511, %entry
-        br i1 false, label %bb495, label %bb368
-
-bb368:          ; preds = %bb354
-        ret void
-
-bb495:          ; preds = %bb495, %bb354
-        br i1 false, label %bb511, label %bb495
-
-bb511:          ; preds = %bb495
-        br i1 false, label %xmalloc.exit69, label %bb354
-
-xmalloc.exit69:         ; preds = %bb511
-        br i1 false, label %bb556, label %bb542.preheader
-
-bb542.preheader:                ; preds = %xmalloc.exit69
-        ret void
-
-bb556:          ; preds = %xmalloc.exit69
-        br label %bb583
-
-bb583:          ; preds = %cond_next693, %bb556
-        %k.4342.0 = phi i32 [ %tmp707, %cond_next693 ], [ 0, %bb556 ]           ; <i32> [#uses=2]
-        %tmp586 = icmp eq i32 %k.4342.0, 0              ; <i1> [#uses=1]
-        br i1 %tmp586, label %cond_true589, label %cond_false608
-
-cond_true589:           ; preds = %bb583
-        br label %cond_next693
-
-cond_false608:          ; preds = %bb583
-        br i1 false, label %bb645, label %cond_next693
-
-bb645:          ; preds = %cond_false608
-        br i1 false, label %bb684, label %cond_next661
-
-cond_next661:           ; preds = %bb645
-        br i1 false, label %bb684, label %cond_next693
-
-bb684:          ; preds = %cond_next661, %bb645
-        br label %cond_next693
-
-cond_next693:           ; preds = %bb684, %cond_next661, %cond_false608, %cond_true589
-        %tmp705 = getelementptr i32* null, i32 0                ; <i32*> [#uses=0]
-        %tmp707 = add i32 %k.4342.0, 1          ; <i32> [#uses=2]
-        %tmp711 = icmp sgt i32 %tmp707, 0               ; <i1> [#uses=1]
-        br i1 %tmp711, label %bb726.preheader, label %bb583
-
-bb726.preheader:                ; preds = %cond_next693
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/ExitCondition-2007-09-10.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/ExitCondition-2007-09-10.ll
deleted file mode 100644
index 9e79f48..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/ExitCondition-2007-09-10.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output 
-
- at k = external global i32		; <i32*> [#uses=2]
-
-define void @foobar(i32 %a, i32 %b) {
-entry:
-	br label %bb
-
-bb:		; preds = %cond_next16, %entry
-	%i.01.0 = phi i32 [ 0, %entry ], [ %tmp18, %cond_next16 ]		; <i32> [#uses=5]
-	%tsum.18.0 = phi i32 [ 42, %entry ], [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=3]
-	%tmp1 = icmp slt i32 %i.01.0, 50		; <i1> [#uses=1]
-	br i1 %tmp1, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb
-	%tmp4 = tail call i32 @foo( i32 %i.01.0 )		; <i32> [#uses=1]
-	%tmp6 = add i32 %tmp4, %tsum.18.0		; <i32> [#uses=2]
-	%tmp914 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp1015 = icmp eq i32 %tmp914, 0		; <i1> [#uses=1]
-	br i1 %tmp1015, label %cond_next16, label %cond_true13
-
-cond_false:		; preds = %bb
-	%tmp8 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	%tmp9 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp10 = icmp eq i32 %tmp9, 0		; <i1> [#uses=1]
-	br i1 %tmp10, label %cond_next16, label %cond_true13
-
-cond_true13:		; preds = %cond_false, %cond_true
-	%tsum.013.0 = phi i32 [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=1]
-	%tmp15 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	br label %cond_next16
-
-cond_next16:		; preds = %cond_false, %cond_true, %cond_true13
-	%tsum.013.1 = phi i32 [ %tsum.013.0, %cond_true13 ], [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=2]
-	%tmp18 = add i32 %i.01.0, 1		; <i32> [#uses=3]
-	%tmp21 = icmp eq i32 %tmp18, 100		; <i1> [#uses=1]
-	br i1 %tmp21, label %bb, label %bb24
-
-bb24:		; preds = %cond_next16
-	%tmp18.lcssa = phi i32 [ %tmp18, %cond_next16 ]		; <i32> [#uses=1]
-	%tsum.013.1.lcssa = phi i32 [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=1]
-	%tmp27 = tail call i32 @t( i32 %tmp18.lcssa, i32 %tsum.013.1.lcssa )		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @foo(i32)
-
-declare i32 @bar(i32)
-
-declare i32 @t(i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop-2007-08-17.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop-2007-08-17.ll
deleted file mode 100644
index e98f699..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop-2007-08-17.ll
+++ /dev/null
@@ -1,67 +0,0 @@
-; Loop is elimianted
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output -stats |& \
-; RUN: grep "loop-index-split" | count 1
-	%struct.anon = type { i32 }
- at S1 = external global i32		; <i32*> [#uses=1]
- at W1 = external global i32		; <i32*> [#uses=1]
- at Y = weak global [100 x %struct.anon] zeroinitializer, align 32		; <[100 x %struct.anon]*> [#uses=1]
- at ti = external global i32		; <i32*> [#uses=1]
- at T2 = external global [100 x [100 x i32]]		; <[100 x [100 x i32]]*> [#uses=1]
- at d = external global i32		; <i32*> [#uses=1]
- at T1 = external global i32		; <i32*> [#uses=2]
- at N2 = external global i32		; <i32*> [#uses=2]
-
-define void @foo() {
-entry:
-	%tmp = load i32* @S1, align 4		; <i32> [#uses=4]
-	%tmp266 = load i32* @N2, align 4		; <i32> [#uses=1]
-	%tmp288 = icmp ult i32 %tmp, %tmp266		; <i1> [#uses=1]
-	br i1 %tmp288, label %bb.preheader, label %return
-
-bb.preheader:		; preds = %entry
-	%tmp1 = load i32* @W1, align 4		; <i32> [#uses=1]
-	%tmp13 = load i32* @ti, align 4		; <i32> [#uses=1]
-	%tmp18 = load i32* @d, align 4		; <i32> [#uses=1]
-	%tmp26 = load i32* @N2, align 4		; <i32> [#uses=2]
-	%T1.promoted = load i32* @T1		; <i32> [#uses=1]
-	%tmp2 = add i32 %tmp, 1		; <i32> [#uses=2]
-	%tmp4 = icmp ugt i32 %tmp2, %tmp26		; <i1> [#uses=1]
-	%umax = select i1 %tmp4, i32 %tmp2, i32 %tmp26		; <i32> [#uses=1]
-	%tmp5 = sub i32 0, %tmp		; <i32> [#uses=1]
-	%tmp6 = add i32 %umax, %tmp5		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb25, %bb.preheader
-	%indvar = phi i32 [ 0, %bb.preheader ], [ %indvar.next, %bb25 ]		; <i32> [#uses=2]
-	%T1.tmp.1 = phi i32 [ %T1.promoted, %bb.preheader ], [ %T1.tmp.0, %bb25 ]		; <i32> [#uses=3]
-	%tj.01.0 = add i32 %indvar, %tmp		; <i32> [#uses=3]
-	%tmp3 = icmp eq i32 %tj.01.0, %tmp1		; <i1> [#uses=1]
-	br i1 %tmp3, label %cond_true, label %bb25
-
-cond_true:		; preds = %bb
-	%tmp7 = getelementptr [100 x %struct.anon]* @Y, i32 0, i32 %tj.01.0, i32 0		; <i32*> [#uses=1]
-	%tmp8 = load i32* %tmp7, align 4		; <i32> [#uses=1]
-	%tmp9 = icmp sgt i32 %tmp8, 0		; <i1> [#uses=1]
-	br i1 %tmp9, label %cond_true12, label %bb25
-
-cond_true12:		; preds = %cond_true
-	%tmp16 = getelementptr [100 x [100 x i32]]* @T2, i32 0, i32 %tmp13, i32 %tj.01.0		; <i32*> [#uses=1]
-	%tmp17 = load i32* %tmp16, align 4		; <i32> [#uses=1]
-	%tmp19 = mul i32 %tmp18, %tmp17		; <i32> [#uses=1]
-	%tmp21 = add i32 %tmp19, %T1.tmp.1		; <i32> [#uses=1]
-	br label %bb25
-
-bb25:		; preds = %cond_true12, %cond_true, %bb
-	%T1.tmp.0 = phi i32 [ %T1.tmp.1, %bb ], [ %T1.tmp.1, %cond_true ], [ %tmp21, %cond_true12 ]		; <i32> [#uses=2]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
-	%exitcond = icmp ne i32 %indvar.next, %tmp6		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb, label %return.loopexit
-
-return.loopexit:		; preds = %bb25
-	%T1.tmp.0.lcssa = phi i32 [ %T1.tmp.0, %bb25 ]		; <i32> [#uses=1]
-	store i32 %T1.tmp.0.lcssa, i32* @T1
-	br label %return
-
-return:		; preds = %return.loopexit, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop2-2007-08-17.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop2-2007-08-17.ll
deleted file mode 100644
index 31332bd..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop2-2007-08-17.ll
+++ /dev/null
@@ -1,69 +0,0 @@
-; Loop is elimianted. Save last value assignment.
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output -stats |& \
-; RUN: grep "loop-index-split" | count 1
-
-	%struct.anon = type { i32 }
- at S1 = external global i32		; <i32*> [#uses=1]
- at W1 = external global i32		; <i32*> [#uses=1]
- at Y = weak global [100 x %struct.anon] zeroinitializer, align 32		; <[100 x %struct.anon]*> [#uses=1]
- at ti = external global i32		; <i32*> [#uses=1]
- at T2 = external global [100 x [100 x i32]]		; <[100 x [100 x i32]]*> [#uses=1]
- at d = external global i32		; <i32*> [#uses=1]
- at T1 = external global i32		; <i32*> [#uses=2]
- at N1 = external global i32		; <i32*> [#uses=2]
-
-define void @foo() {
-entry:
-	%tmp = load i32* @S1, align 4		; <i32> [#uses=4]
-	%tmp266 = load i32* @N1, align 4		; <i32> [#uses=1]
-	%tmp288 = icmp ult i32 %tmp, %tmp266		; <i1> [#uses=1]
-	br i1 %tmp288, label %bb.preheader, label %return
-
-bb.preheader:		; preds = %entry
-	%tmp1 = load i32* @W1, align 4		; <i32> [#uses=1]
-	%tmp13 = load i32* @ti, align 4		; <i32> [#uses=1]
-	%tmp18 = load i32* @d, align 4		; <i32> [#uses=1]
-	%tmp26 = load i32* @N1, align 4		; <i32> [#uses=2]
-	%T1.promoted = load i32* @T1		; <i32> [#uses=1]
-	%tmp2 = add i32 %tmp, 1		; <i32> [#uses=2]
-	%tmp4 = icmp ugt i32 %tmp2, %tmp26		; <i1> [#uses=1]
-	%umax = select i1 %tmp4, i32 %tmp2, i32 %tmp26		; <i32> [#uses=1]
-	%tmp5 = sub i32 0, %tmp		; <i32> [#uses=1]
-	%tmp6 = add i32 %umax, %tmp5		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb25, %bb.preheader
-	%indvar = phi i32 [ 0, %bb.preheader ], [ %indvar.next, %bb25 ]		; <i32> [#uses=2]
-	%T1.tmp.1 = phi i32 [ %T1.promoted, %bb.preheader ], [ %T1.tmp.0, %bb25 ]		; <i32> [#uses=3]
-	%tj.01.0 = add i32 %indvar, %tmp		; <i32> [#uses=3]
-	%tmp24 = add i32 %tj.01.0, 1		; <i32> [#uses=1]
-	%tmp3 = icmp eq i32 %tmp24, %tmp1		; <i1> [#uses=1]
-	br i1 %tmp3, label %cond_true, label %bb25
-
-cond_true:		; preds = %bb
-	%tmp7 = getelementptr [100 x %struct.anon]* @Y, i32 0, i32 %tj.01.0, i32 0		; <i32*> [#uses=1]
-	%tmp8 = load i32* %tmp7, align 4		; <i32> [#uses=1]
-	%tmp9 = icmp sgt i32 %tmp8, 0		; <i1> [#uses=1]
-	br i1 %tmp9, label %cond_true12, label %bb25
-
-cond_true12:		; preds = %cond_true
-	%tmp16 = getelementptr [100 x [100 x i32]]* @T2, i32 0, i32 %tmp13, i32 %tj.01.0		; <i32*> [#uses=1]
-	%tmp17 = load i32* %tmp16, align 4		; <i32> [#uses=1]
-	%tmp19 = mul i32 %tmp18, %tmp17		; <i32> [#uses=1]
-	%tmp21 = add i32 %tmp19, %T1.tmp.1		; <i32> [#uses=1]
-	br label %bb25
-
-bb25:		; preds = %cond_true12, %cond_true, %bb
-	%T1.tmp.0 = phi i32 [ %T1.tmp.1, %bb ], [ %T1.tmp.1, %cond_true ], [ %tmp21, %cond_true12 ]		; <i32> [#uses=2]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
-	%exitcond = icmp ne i32 %indvar.next, %tmp6		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb, label %return.loopexit
-
-return.loopexit:		; preds = %bb25
-	%T1.tmp.0.lcssa = phi i32 [ %T1.tmp.0, %bb25 ]		; <i32> [#uses=1]
-	store i32 %T1.tmp.0.lcssa, i32* @T1
-	br label %return
-
-return:		; preds = %return.loopexit, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop3-2007-08-17.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop3-2007-08-17.ll
deleted file mode 100644
index bf568e5..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/OneIterLoop3-2007-08-17.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; Loop is elimianted. Save last value assignments, including induction variable.
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output -stats | not grep "loop-index-split"
-
-declare i32 @foo(i32)
-declare i32 @bar(i32, i32)
-
-define void @foobar(i32 %a, i32 %b) {
-entry:
-	br label %bb
-
-bb:		; preds = %cond_next, %entry
-	%i.01.0 = phi i32 [ 0, %entry ], [ %tmp8, %cond_next ]		; <i32> [#uses=3]
-	%tsum.16.0 = phi i32 [ 42, %entry ], [ %tsum.0, %cond_next ]		; <i32> [#uses=2]
-	%tmp1 = icmp eq i32 %i.01.0, 50		; <i1> [#uses=1]
-	br i1 %tmp1, label %cond_true, label %cond_next
-
-cond_true:		; preds = %bb
-	%tmp4 = tail call i32 @foo( i32 %i.01.0 )		; <i32> [#uses=1]
-	%tmp6 = add i32 %tmp4, %tsum.16.0		; <i32> [#uses=1]
-	br label %cond_next
-
-cond_next:		; preds = %bb, %cond_true
-	%tsum.0 = phi i32 [ %tmp6, %cond_true ], [ %tsum.16.0, %bb ]		; <i32> [#uses=2]
-	%tmp8 = add i32 %i.01.0, 1		; <i32> [#uses=3]
-	%tmp11 = icmp slt i32 %tmp8, 100		; <i1> [#uses=1]
-	br i1 %tmp11, label %bb, label %bb14
-
-bb14:		; preds = %cond_next
-	%tmp8.lcssa = phi i32 [ %tmp8, %cond_next ]		; <i32> [#uses=1]
-	%tsum.0.lcssa = phi i32 [ %tsum.0, %cond_next ]		; <i32> [#uses=1]
-	%tmp17 = tail call i32 @bar( i32 %tmp8.lcssa, i32 %tsum.0.lcssa )		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/PR3913.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/PR3913.ll
deleted file mode 100644
index c4fc0d1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/PR3913.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-index-split | llvm-dis | not grep "icmp ne"
-
-define i32 @main() {
-entry:
-	br label %header
-
-header:
-	%r = phi i32 [ 0, %entry ], [ %r3, %skip ]
-	%i = phi i32 [ 0, %entry ], [ %i1, %skip ]
-	%cond = icmp eq i32 %i, 99
-	br i1 %cond, label %body, label %skip
-
-body:
-	br label %skip
-
-skip:
-	%r3 = phi i32 [ %r, %header ], [ 3, %body ]
-	%i1 = add i32 %i, 1
-	%exitcond = icmp eq i32 %i1, 10
-	br i1 %exitcond, label %exit, label %header
-
-exit:
-	ret i32 %r3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SaveLastValue-2007-08-17.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SaveLastValue-2007-08-17.ll
deleted file mode 100644
index e19f22a..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SaveLastValue-2007-08-17.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; Split loop. Save last value.
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output -stats |& \
-; RUN: grep "loop-index-split" | count 1
-
- at k = external global i32		; <i32*> [#uses=2]
-
-define void @foobar(i32 %a, i32 %b) {
-entry:
-	br label %bb
-
-bb:		; preds = %cond_next16, %entry
-	%i.01.0 = phi i32 [ 0, %entry ], [ %tmp18, %cond_next16 ]		; <i32> [#uses=5]
-	%tsum.18.0 = phi i32 [ 42, %entry ], [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=3]
-	%tmp1 = icmp slt i32 %i.01.0, 50		; <i1> [#uses=1]
-	br i1 %tmp1, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb
-	%tmp4 = tail call i32 @foo( i32 %i.01.0 )		; <i32> [#uses=1]
-	%tmp6 = add i32 %tmp4, %tsum.18.0		; <i32> [#uses=2]
-	%tmp914 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp1015 = icmp eq i32 %tmp914, 0		; <i1> [#uses=1]
-	br i1 %tmp1015, label %cond_next16, label %cond_true13
-
-cond_false:		; preds = %bb
-	%tmp8 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	%tmp9 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp10 = icmp eq i32 %tmp9, 0		; <i1> [#uses=1]
-	br i1 %tmp10, label %cond_next16, label %cond_true13
-
-cond_true13:		; preds = %cond_false, %cond_true
-	%tsum.013.0 = phi i32 [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=1]
-	%tmp15 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	br label %cond_next16
-
-cond_next16:		; preds = %cond_false, %cond_true, %cond_true13
-	%tsum.013.1 = phi i32 [ %tsum.013.0, %cond_true13 ], [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=2]
-	%tmp18 = add i32 %i.01.0, 1		; <i32> [#uses=3]
-	%tmp21 = icmp slt i32 %tmp18, 100		; <i1> [#uses=1]
-	br i1 %tmp21, label %bb, label %bb24
-
-bb24:		; preds = %cond_next16
-	%tmp18.lcssa = phi i32 [ %tmp18, %cond_next16 ]		; <i32> [#uses=1]
-	%tsum.013.1.lcssa = phi i32 [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=1]
-	%tmp27 = tail call i32 @t( i32 %tmp18.lcssa, i32 %tsum.013.1.lcssa )		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @foo(i32)
-
-declare i32 @bar(i32)
-
-declare i32 @t(i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SplitValue-2007-08-24-dbg.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SplitValue-2007-08-24-dbg.ll
deleted file mode 100644
index 3b237bb..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SplitValue-2007-08-24-dbg.ll
+++ /dev/null
@@ -1,71 +0,0 @@
-; Split loop. Save last value. Split value is off by one in this example.
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output -stats |& \
-; RUN: grep "loop-index-split" | count 1
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-
- at k = external global i32		; <i32*> [#uses=2]
-
-define void @foobar(i32 %a, i32 %b) {
-entry:
-	br label %bb
-
-bb:		; preds = %cond_next16, %entry
-	%i.01.0 = phi i32 [ 0, %entry ], [ %tmp18, %cond_next16 ]		; <i32> [#uses=5]
-	%tsum.18.0 = phi i32 [ 42, %entry ], [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=3]
-	%tmp1 = icmp sgt i32 %i.01.0, 50		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp1, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb
-	%tmp4 = tail call i32 @foo( i32 %i.01.0 )		; <i32> [#uses=1]
-	%tmp6 = add i32 %tmp4, %tsum.18.0		; <i32> [#uses=2]
-	%tmp914 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp1015 = icmp eq i32 %tmp914, 0		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp1015, label %cond_next16, label %cond_true13
-
-cond_false:		; preds = %bb
-	%tmp8 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	%tmp9 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp10 = icmp eq i32 %tmp9, 0		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp10, label %cond_next16, label %cond_true13
-
-cond_true13:		; preds = %cond_false, %cond_true
-	%tsum.013.0 = phi i32 [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=1]
-	%tmp15 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %cond_next16
-
-cond_next16:		; preds = %cond_false, %cond_true, %cond_true13
-	%tsum.013.1 = phi i32 [ %tsum.013.0, %cond_true13 ], [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=2]
-	%tmp18 = add i32 %i.01.0, 1		; <i32> [#uses=3]
-	%tmp21 = icmp slt i32 %tmp18, 100		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp21, label %bb, label %bb24
-
-bb24:		; preds = %cond_next16
-	%tmp18.lcssa = phi i32 [ %tmp18, %cond_next16 ]		; <i32> [#uses=1]
-	%tsum.013.1.lcssa = phi i32 [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=1]
-	%tmp27 = tail call i32 @t( i32 %tmp18.lcssa, i32 %tsum.013.1.lcssa )		; <i32> [#uses=0]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-}
-
-declare i32 @foo(i32)
-
-declare i32 @bar(i32)
-
-declare i32 @t(i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SplitValue-2007-08-24.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SplitValue-2007-08-24.ll
deleted file mode 100644
index 27327a0..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/SplitValue-2007-08-24.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; Split loop. Save last value. Split value is off by one in this example.
-; RUN: llvm-as < %s | opt -loop-index-split -disable-output -stats |& \
-; RUN: grep "loop-index-split" | count 1
-
- at k = external global i32		; <i32*> [#uses=2]
-
-define void @foobar(i32 %a, i32 %b) {
-entry:
-	br label %bb
-
-bb:		; preds = %cond_next16, %entry
-	%i.01.0 = phi i32 [ 0, %entry ], [ %tmp18, %cond_next16 ]		; <i32> [#uses=5]
-	%tsum.18.0 = phi i32 [ 42, %entry ], [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=3]
-	%tmp1 = icmp sgt i32 %i.01.0, 50		; <i1> [#uses=1]
-	br i1 %tmp1, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb
-	%tmp4 = tail call i32 @foo( i32 %i.01.0 )		; <i32> [#uses=1]
-	%tmp6 = add i32 %tmp4, %tsum.18.0		; <i32> [#uses=2]
-	%tmp914 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp1015 = icmp eq i32 %tmp914, 0		; <i1> [#uses=1]
-	br i1 %tmp1015, label %cond_next16, label %cond_true13
-
-cond_false:		; preds = %bb
-	%tmp8 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	%tmp9 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp10 = icmp eq i32 %tmp9, 0		; <i1> [#uses=1]
-	br i1 %tmp10, label %cond_next16, label %cond_true13
-
-cond_true13:		; preds = %cond_false, %cond_true
-	%tsum.013.0 = phi i32 [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=1]
-	%tmp15 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	br label %cond_next16
-
-cond_next16:		; preds = %cond_false, %cond_true, %cond_true13
-	%tsum.013.1 = phi i32 [ %tsum.013.0, %cond_true13 ], [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=2]
-	%tmp18 = add i32 %i.01.0, 1		; <i32> [#uses=3]
-	%tmp21 = icmp slt i32 %tmp18, 100		; <i1> [#uses=1]
-	br i1 %tmp21, label %bb, label %bb24
-
-bb24:		; preds = %cond_next16
-	%tmp18.lcssa = phi i32 [ %tmp18, %cond_next16 ]		; <i32> [#uses=1]
-	%tsum.013.1.lcssa = phi i32 [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=1]
-	%tmp27 = tail call i32 @t( i32 %tmp18.lcssa, i32 %tsum.013.1.lcssa )		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @foo(i32)
-
-declare i32 @bar(i32)
-
-declare i32 @t(i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/UpperBound-2007-08-24.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/UpperBound-2007-08-24.ll
deleted file mode 100644
index c506451..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/UpperBound-2007-08-24.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; Split loop. Split value is a constant and greater then exit value. 
-; Check whether optimizer inserts proper checkfor split value or not.
-; RUN: llvm-as < %s | opt -loop-index-split | llvm-dis | grep select
-
- at k = external global i32		; <i32*> [#uses=2]
-
-define void @foobar(i32 %a, i32 %b) {
-entry:
-	br label %bb
-
-bb:		; preds = %cond_next16, %entry
-	%i.01.0 = phi i32 [ 0, %entry ], [ %tmp18, %cond_next16 ]		; <i32> [#uses=5]
-	%tsum.18.0 = phi i32 [ 42, %entry ], [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=3]
-	%tmp1 = icmp slt i32 %i.01.0, 500		; <i1> [#uses=1]
-	br i1 %tmp1, label %cond_true, label %cond_false
-
-cond_true:		; preds = %bb
-	%tmp4 = tail call i32 @foo( i32 %i.01.0 )		; <i32> [#uses=1]
-	%tmp6 = add i32 %tmp4, %tsum.18.0		; <i32> [#uses=2]
-	%tmp914 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp1015 = icmp eq i32 %tmp914, 0		; <i1> [#uses=1]
-	br i1 %tmp1015, label %cond_next16, label %cond_true13
-
-cond_false:		; preds = %bb
-	%tmp8 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	%tmp9 = load i32* @k, align 4		; <i32> [#uses=1]
-	%tmp10 = icmp eq i32 %tmp9, 0		; <i1> [#uses=1]
-	br i1 %tmp10, label %cond_next16, label %cond_true13
-
-cond_true13:		; preds = %cond_false, %cond_true
-	%tsum.013.0 = phi i32 [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=1]
-	%tmp15 = tail call i32 @bar( i32 %i.01.0 )		; <i32> [#uses=0]
-	br label %cond_next16
-
-cond_next16:		; preds = %cond_false, %cond_true, %cond_true13
-	%tsum.013.1 = phi i32 [ %tsum.013.0, %cond_true13 ], [ %tmp6, %cond_true ], [ %tsum.18.0, %cond_false ]		; <i32> [#uses=2]
-	%tmp18 = add i32 %i.01.0, 1		; <i32> [#uses=3]
-	%tmp21 = icmp slt i32 %tmp18, 100		; <i1> [#uses=1]
-	br i1 %tmp21, label %bb, label %bb24
-
-bb24:		; preds = %cond_next16
-	%tmp18.lcssa = phi i32 [ %tmp18, %cond_next16 ]		; <i32> [#uses=1]
-	%tsum.013.1.lcssa = phi i32 [ %tsum.013.1, %cond_next16 ]		; <i32> [#uses=1]
-	%tmp27 = tail call i32 @t( i32 %tmp18.lcssa, i32 %tsum.013.1.lcssa )		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @foo(i32)
-
-declare i32 @bar(i32)
-
-declare i32 @t(i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/dg.exp b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/non-iv-cmp-operand.ll b/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/non-iv-cmp-operand.ll
deleted file mode 100644
index caaa8ad..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopIndexSplit/non-iv-cmp-operand.ll
+++ /dev/null
@@ -1,195 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -reassociate -loop-rotate -loop-index-split -indvars -simplifycfg -verify
-; PR4471
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-	%struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.VEC_basic_block_base = type { i32, i32, [1 x %struct.basic_block_def*] }
-	%struct.VEC_basic_block_gc = type { %struct.VEC_basic_block_base }
-	%struct.VEC_edge_base = type { i32, i32, [1 x %struct.edge_def*] }
-	%struct.VEC_edge_gc = type { %struct.VEC_edge_base }
-	%struct.VEC_rtx_base = type { i32, i32, [1 x %struct.rtx_def*] }
-	%struct.VEC_rtx_gc = type { %struct.VEC_rtx_base }
-	%struct.VEC_temp_slot_p_base = type { i32, i32, [1 x %struct.temp_slot*] }
-	%struct.VEC_temp_slot_p_gc = type { %struct.VEC_temp_slot_p_base }
-	%struct.VEC_tree_base = type { i32, i32, [1 x %struct.tree_node*] }
-	%struct.VEC_tree_gc = type { %struct.VEC_tree_base }
-	%struct.__sbuf = type { i8*, i32 }
-	%struct._obstack_chunk = type { i8*, %struct._obstack_chunk*, [4 x i8] }
-	%struct.basic_block_def = type { %struct.tree_node*, %struct.VEC_edge_gc*, %struct.VEC_edge_gc*, i8*, %struct.loop*, [2 x %struct.et_node*], %struct.basic_block_def*, %struct.basic_block_def*, %struct.basic_block_il_dependent, %struct.tree_node*, %struct.edge_prediction*, i64, i32, i32, i32, i32 }
-	%struct.basic_block_il_dependent = type { %struct.rtl_bb_info* }
-	%struct.bitmap_element_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, [2 x i64] }
-	%struct.bitmap_head_def = type { %struct.bitmap_element_def*, %struct.bitmap_element_def*, i32, %struct.bitmap_obstack* }
-	%struct.bitmap_obstack = type { %struct.bitmap_element_def*, %struct.bitmap_head_def*, %struct.obstack }
-	%struct.block_symbol = type { [3 x %struct.rtunion], %struct.object_block*, i64 }
-	%struct.case_node = type { %struct.case_node*, %struct.case_node*, %struct.case_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node* }
-	%struct.control_flow_graph = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.VEC_basic_block_gc*, i32, i32, i32, %struct.VEC_basic_block_gc*, i32 }
-	%struct.edge_def = type { %struct.basic_block_def*, %struct.basic_block_def*, %struct.edge_def_insns, i8*, %struct.__sbuf*, i32, i32, i64, i32 }
-	%struct.edge_def_insns = type { %struct.rtx_def* }
-	%struct.edge_prediction = type opaque
-	%struct.eh_status = type opaque
-	%struct.emit_status = type { i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack*, i32, %struct.__sbuf, i32, i8*, %struct.rtx_def** }
-	%struct.et_node = type opaque
-	%struct.expr_status = type { i32, i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def* }
-	%struct.function = type { %struct.eh_status*, %struct.expr_status*, %struct.emit_status*, %struct.varasm_status*, %struct.control_flow_graph*, %struct.tree_node*, %struct.function*, i32, i32, i32, i32, %struct.rtx_def*, %struct.CUMULATIVE_ARGS, %struct.rtx_def*, %struct.rtx_def*, %struct.initial_value_struct*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i64, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.VEC_temp_slot_p_gc*, %struct.temp_slot*, %struct.var_refs_queue*, i32, i32, i32, i32, %struct.machine_function*, i32, i32, %struct.language_function*, %struct.htab*, %struct.rtx_def*, i32, i32, %struct.__sbuf, %struct.VEC_tree_gc*, %struct.tree_node*, i8*, i8*, i8*, i8*, i8*, %struct.tree_node*, i8, i8, i8, i8, i8 }
-	%struct.htab = type { i32 (i8*)*, i32 (i8*, i8*)*, void (i8*)*, i8**, i64, i64, i64, i32, i32, i8* (i64, i64)*, void (i8*)*, i8*, i8* (i8*, i64, i64)*, void (i8*, i8*)*, i32 }
-	%struct.initial_value_struct = type opaque
-	%struct.lang_decl = type opaque
-	%struct.language_function = type opaque
-	%struct.loop = type opaque
-	%struct.machine_function = type { %struct.stack_local_entry*, i8*, %struct.rtx_def*, i32, i32, [4 x i32], i32, i32, i32 }
-	%struct.object_block = type { %struct.section*, i32, i64, %struct.VEC_rtx_gc*, %struct.VEC_rtx_gc* }
-	%struct.obstack = type { i64, %struct._obstack_chunk*, i8*, i8*, i8*, i64, i32, %struct._obstack_chunk* (i8*, i64)*, void (i8*, %struct._obstack_chunk*)*, i8*, i8 }
-	%struct.omp_clause_subcode = type { i32 }
-	%struct.rtl_bb_info = type { %struct.rtx_def*, %struct.rtx_def*, %struct.bitmap_head_def*, %struct.bitmap_head_def*, %struct.rtx_def*, %struct.rtx_def*, i32 }
-	%struct.rtunion = type { i8* }
-	%struct.rtx_def = type { i16, i8, i8, %struct.u }
-	%struct.section = type { %struct.unnamed_section }
-	%struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack* }
-	%struct.stack_local_entry = type opaque
-	%struct.temp_slot = type opaque
-	%struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %union.tree_ann_d*, i8, i8, i8, i8 }
-	%struct.tree_decl_common = type { %struct.tree_decl_minimal, %struct.tree_node*, i8, i8, i8, i8, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_decl* }
-	%struct.tree_decl_minimal = type { %struct.tree_common, %struct.__sbuf, i32, %struct.tree_node*, %struct.tree_node* }
-	%struct.tree_decl_non_common = type { %struct.tree_decl_with_vis, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node* }
-	%struct.tree_decl_u1 = type { i64 }
-	%struct.tree_decl_with_rtl = type { %struct.tree_decl_common, %struct.rtx_def* }
-	%struct.tree_decl_with_vis = type { %struct.tree_decl_with_rtl, %struct.tree_node*, %struct.tree_node*, i8, i8, i8 }
-	%struct.tree_function_decl = type { %struct.tree_decl_non_common, i8, i8, %struct.function* }
-	%struct.tree_node = type { %struct.tree_function_decl }
-	%struct.u = type { %struct.block_symbol }
-	%struct.unnamed_section = type { %struct.omp_clause_subcode, void (i8*)*, i8*, %struct.section* }
-	%struct.var_refs_queue = type { %struct.rtx_def*, i32, i32, %struct.var_refs_queue* }
-	%struct.varasm_status = type opaque
-	%union.tree_ann_d = type opaque
-
-define void @emit_case_bit_tests(%struct.tree_node* %index_type, %struct.tree_node* %index_expr, %struct.tree_node* %minval, %struct.tree_node* %range, %struct.case_node* %nodes, %struct.rtx_def* %default_label) nounwind {
-entry:
-	br label %bb17
-
-bb:		; preds = %bb17
-	%0 = call i64 @tree_low_cst(%struct.tree_node* undef, i32 1) nounwind		; <i64> [#uses=1]
-	%1 = trunc i64 %0 to i32		; <i32> [#uses=1]
-	br label %bb15
-
-bb10:		; preds = %bb15
-	%2 = icmp ugt i32 %j.0, 63		; <i1> [#uses=1]
-	br i1 %2, label %bb11, label %bb12
-
-bb11:		; preds = %bb10
-	%3 = zext i32 0 to i64		; <i64> [#uses=0]
-	br label %bb14
-
-bb12:		; preds = %bb10
-	%4 = or i64 undef, undef		; <i64> [#uses=0]
-	br label %bb14
-
-bb14:		; preds = %bb12, %bb11
-	%5 = add i32 %j.0, 1		; <i32> [#uses=1]
-	br label %bb15
-
-bb15:		; preds = %bb14, %bb
-	%j.0 = phi i32 [ %1, %bb ], [ %5, %bb14 ]		; <i32> [#uses=3]
-	%6 = icmp ugt i32 %j.0, undef		; <i1> [#uses=1]
-	br i1 %6, label %bb16, label %bb10
-
-bb16:		; preds = %bb15
-	br label %bb17
-
-bb17:		; preds = %bb16, %entry
-	br i1 undef, label %bb18, label %bb
-
-bb18:		; preds = %bb17
-	unreachable
-}
-
-declare i64 @tree_low_cst(%struct.tree_node*, i32)
-
-define void @expand_case(%struct.tree_node* %exp) nounwind {
-entry:
-	br i1 undef, label %bb2, label %bb
-
-bb:		; preds = %entry
-	unreachable
-
-bb2:		; preds = %entry
-	br i1 undef, label %bb3, label %bb4
-
-bb3:		; preds = %bb2
-	unreachable
-
-bb4:		; preds = %bb2
-	br i1 undef, label %bb127, label %bb5
-
-bb5:		; preds = %bb4
-	br i1 undef, label %bb6, label %bb7
-
-bb6:		; preds = %bb5
-	unreachable
-
-bb7:		; preds = %bb5
-	br i1 undef, label %bb9, label %bb8
-
-bb8:		; preds = %bb7
-	unreachable
-
-bb9:		; preds = %bb7
-	br i1 undef, label %bb11, label %bb10
-
-bb10:		; preds = %bb9
-	unreachable
-
-bb11:		; preds = %bb9
-	br i1 undef, label %bb37, label %bb21
-
-bb21:		; preds = %bb11
-	unreachable
-
-bb37:		; preds = %bb11
-	br i1 undef, label %bb38, label %bb39
-
-bb38:		; preds = %bb37
-	ret void
-
-bb39:		; preds = %bb37
-	br i1 undef, label %bb59, label %bb40
-
-bb40:		; preds = %bb39
-	br i1 undef, label %bb41, label %bb59
-
-bb41:		; preds = %bb40
-	br i1 undef, label %bb42, label %bb59
-
-bb42:		; preds = %bb41
-	br i1 undef, label %bb43, label %bb59
-
-bb43:		; preds = %bb42
-	br i1 undef, label %bb59, label %bb44
-
-bb44:		; preds = %bb43
-	br i1 undef, label %bb56, label %bb58
-
-bb56:		; preds = %bb44
-	unreachable
-
-bb58:		; preds = %bb44
-	call void @emit_case_bit_tests(%struct.tree_node* undef, %struct.tree_node* undef, %struct.tree_node* null, %struct.tree_node* undef, %struct.case_node* undef, %struct.rtx_def* undef) nounwind
-	br i1 undef, label %bb126, label %bb125
-
-bb59:		; preds = %bb43, %bb42, %bb41, %bb40, %bb39
-	br i1 undef, label %bb70, label %bb60
-
-bb60:		; preds = %bb59
-	unreachable
-
-bb70:		; preds = %bb59
-	unreachable
-
-bb125:		; preds = %bb58
-	unreachable
-
-bb126:		; preds = %bb58
-	unreachable
-
-bb127:		; preds = %bb4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll
deleted file mode 100644
index 7cc3951..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate | llvm-dis
-; PR3408
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-	%struct.Cls = type { i32, i8, [2 x %struct.Cls*], [2 x %struct.Lit*] }
-	%struct.Lit = type { i8 }
-
-define void @picosat_main_bb13.i.i71.outer_bb132.i.i.i.outer(%struct.Cls**, %struct.Cls**, i32 %collect.i.i.i.1.lcssa, i32 %lcollect.i.i.i.2.lcssa, %struct.Cls*** %rhead.tmp.0236.out, i32* %collect.i.i.i.2.out, i32* %lcollect.i.i.i.3.ph.ph.ph.out) nounwind {
-newFuncRoot:
-	br label %codeRepl
-
-bb133.i.i.i.exitStub:		; preds = %codeRepl
-	ret void
-
-bb130.i.i.i:		; preds = %codeRepl
-	%rhead.tmp.0236.lcssa82 = phi %struct.Cls** [ null, %codeRepl ]		; <%struct.Cls**> [#uses=0]
-	br label %codeRepl
-
-codeRepl:		; preds = %bb130.i.i.i, %newFuncRoot
-	br i1 false, label %bb130.i.i.i, label %bb133.i.i.i.exitStub
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-1.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-1.ll
deleted file mode 100644
index e6c7667..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-1.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-
-	%struct.relation = type { [4 x i16], i32, [4 x i16], i32, i32 }
-
-define void @findAllPairs() {
-entry:
-	br i1 false, label %bb139, label %bb10.i44
-bb10.i44:		; preds = %entry
-	ret void
-bb127:		; preds = %bb139
-	br label %bb139
-bb139:		; preds = %bb127, %entry
-	br i1 false, label %bb127, label %bb142
-bb142:		; preds = %bb139
-	%r91.0.lcssa = phi %struct.relation* [ null, %bb139 ]		; <%struct.relation*> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-2.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-2.ll
deleted file mode 100644
index 6dbe76d..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-2.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-
-define void @findAllPairs() {
-entry:
-	br i1 false, label %bb139, label %cond_true
-cond_true:		; preds = %entry
-	ret void
-bb90:		; preds = %bb139
-	br i1 false, label %bb136, label %cond_next121
-cond_next121:		; preds = %bb90
-	br i1 false, label %bb136, label %bb127
-bb127:		; preds = %cond_next121
-	br label %bb136
-bb136:		; preds = %bb127, %cond_next121, %bb90
-	%changes.1 = phi i32 [ %changes.2, %bb90 ], [ %changes.2, %cond_next121 ], [ 1, %bb127 ]		; <i32> [#uses=1]
-	br label %bb139
-bb139:		; preds = %bb136, %entry
-	%changes.2 = phi i32 [ %changes.1, %bb136 ], [ 0, %entry ]		; <i32> [#uses=3]
-	br i1 false, label %bb90, label %bb142
-bb142:		; preds = %bb139
-	%changes.2.lcssa = phi i32 [ %changes.2, %bb139 ]		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-3.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-3.ll
deleted file mode 100644
index 94991a5..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-3.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-
-define void @_ZN9Classfile4readEv() {
-entry:
-	br i1 false, label %cond_false485, label %bb405
-bb405:		; preds = %entry
-	ret void
-cond_false485:		; preds = %entry
-	br label %bb830
-bb511:		; preds = %bb830
-	br i1 false, label %bb816, label %bb830
-cond_next667:		; preds = %bb816
-	br i1 false, label %cond_next695, label %bb680
-bb676:		; preds = %bb680
-	br label %bb680
-bb680:		; preds = %bb676, %cond_next667
-	%iftmp.68.0 = zext i1 false to i8		; <i8> [#uses=1]
-	br i1 false, label %bb676, label %cond_next695
-cond_next695:		; preds = %bb680, %cond_next667
-	%iftmp.68.2 = phi i8 [ %iftmp.68.0, %bb680 ], [ undef, %cond_next667 ]		; <i8> [#uses=0]
-	ret void
-bb816:		; preds = %bb816, %bb511
-	br i1 false, label %cond_next667, label %bb816
-bb830:		; preds = %bb511, %cond_false485
-	br i1 false, label %bb511, label %bb835
-bb835:		; preds = %bb830
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-4.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-4.ll
deleted file mode 100644
index ab43fc8..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-4.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-
-define void @InterpretSEIMessage(i8* %msg) {
-entry:
-	br label %bb15
-bb6:		; preds = %bb15
-	%gep.upgrd.1 = zext i32 %offset.1 to i64		; <i64> [#uses=1]
-	%tmp11 = getelementptr i8* %msg, i64 %gep.upgrd.1		; <i8*> [#uses=0]
-	br label %bb15
-bb15:		; preds = %bb6, %entry
-	%offset.1 = add i32 0, 1		; <i32> [#uses=2]
-	br i1 false, label %bb6, label %bb17
-bb17:		; preds = %bb15
-	%offset.1.lcssa = phi i32 [ %offset.1, %bb15 ]		; <i32> [#uses=0]
-	%payload_type.1.lcssa = phi i32 [ 0, %bb15 ]		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-5.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-5.ll
deleted file mode 100644
index d61e749..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/LRCrash-5.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin9"
-	%struct.NSArray = type { %struct.NSObject }
-	%struct.NSObject = type { %struct.objc_class* }
-	%struct.NSRange = type { i64, i64 }
-	%struct._message_ref_t = type { %struct.NSObject* (%struct.NSObject*, %struct._message_ref_t*, ...)*, %struct.objc_selector* }
-	%struct.objc_class = type opaque
-	%struct.objc_selector = type opaque
-@"\01L_OBJC_MESSAGE_REF_26" = external global %struct._message_ref_t		; <%struct._message_ref_t*> [#uses=1]
-
-define %struct.NSArray* @"-[NSString(DocSetPrivateAddition) _dsa_stringAsPathComponent]"(%struct.NSArray* %self, %struct._message_ref_t* %_cmd) {
-entry:
-	br label %bb116
-
-bb116:		; preds = %bb131, %entry
-	%tmp123 = call %struct.NSRange null( %struct.NSObject* null, %struct._message_ref_t* @"\01L_OBJC_MESSAGE_REF_26", %struct.NSArray* null )		; <%struct.NSRange> [#uses=1]
-	br i1 false, label %bb141, label %bb131
-
-bb131:		; preds = %bb116
-	%mrv_gr125 = getresult %struct.NSRange %tmp123, 1		; <i64> [#uses=0]
-	br label %bb116
-
-bb141:		; preds = %bb116
-	ret %struct.NSArray* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/PhiRename-1.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/PhiRename-1.ll
deleted file mode 100644
index 573e396..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/PhiRename-1.ll
+++ /dev/null
@@ -1,95 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate | llvm-dis | not grep {\\\[ .tmp224} 
-; END.
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-
-	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
-	%struct.Index_Map = type { i32, %struct.item_set** }
-	%struct.Item = type { [4 x i16], %struct.rule* }
-	%struct.__sFILEX = type opaque
-	%struct.__sbuf = type { i8*, i32 }
-	%struct.dimension = type { i16*, %struct.Index_Map, %struct.mapping*, i32, %struct.plankMap* }
-	%struct.item_set = type { i32, i32, %struct.operator*, [2 x %struct.item_set*], %struct.item_set*, i16*, %struct.Item*, %struct.Item* }
-	%struct.list = type { i8*, %struct.list* }
-	%struct.mapping = type { %struct.list**, i32, i32, i32, %struct.item_set** }
-	%struct.nonterminal = type { i8*, i32, i32, i32, %struct.plankMap*, %struct.rule* }
-	%struct.operator = type { i8*, i8, i32, i32, i32, i32, %struct.table* }
-	%struct.pattern = type { %struct.nonterminal*, %struct.operator*, [2 x %struct.nonterminal*] }
-	%struct.plank = type { i8*, %struct.list*, i32 }
-	%struct.plankMap = type { %struct.list*, i32, %struct.stateMap* }
-	%struct.rule = type { [4 x i16], i32, i32, i32, %struct.nonterminal*, %struct.pattern*, i8 }
-	%struct.stateMap = type { i8*, %struct.plank*, i32, i16* }
-	%struct.table = type { %struct.operator*, %struct.list*, i16*, [2 x %struct.dimension*], %struct.item_set** }
- at outfile = external global %struct.FILE*		; <%struct.FILE**> [#uses=1]
- at str1 = external constant [11 x i8]		; <[11 x i8]*> [#uses=1]
- at operators = weak global %struct.list* null		; <%struct.list**> [#uses=1]
-
-
-
-define i32 @opsOfArity(i32 %arity) {
-entry:
-	%arity_addr = alloca i32		; <i32*> [#uses=2]
-	%retval = alloca i32, align 4		; <i32*> [#uses=2]
-	%tmp = alloca i32, align 4		; <i32*> [#uses=2]
-	%c = alloca i32, align 4		; <i32*> [#uses=4]
-	%l = alloca %struct.list*, align 4		; <%struct.list**> [#uses=5]
-	%op = alloca %struct.operator*, align 4		; <%struct.operator**> [#uses=3]
-	"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 %arity, i32* %arity_addr
-	store i32 0, i32* %c
-	%tmp1 = load %struct.list** @operators		; <%struct.list*> [#uses=1]
-	store %struct.list* %tmp1, %struct.list** %l
-	br label %bb21
-
-bb:		; preds = %bb21
-	%tmp3 = getelementptr %struct.list* %tmp22, i32 0, i32 0		; <i8**> [#uses=1]
-	%tmp4 = load i8** %tmp3		; <i8*> [#uses=1]
-	%tmp45 = bitcast i8* %tmp4 to %struct.operator*		; <%struct.operator*> [#uses=1]
-	store %struct.operator* %tmp45, %struct.operator** %op
-	%tmp6 = load %struct.operator** %op		; <%struct.operator*> [#uses=1]
-	%tmp7 = getelementptr %struct.operator* %tmp6, i32 0, i32 5		; <i32*> [#uses=1]
-	%tmp8 = load i32* %tmp7		; <i32> [#uses=1]
-	%tmp9 = load i32* %arity_addr		; <i32> [#uses=1]
-	icmp eq i32 %tmp8, %tmp9		; <i1>:0 [#uses=1]
-	zext i1 %0 to i8		; <i8>:1 [#uses=1]
-	icmp ne i8 %1, 0		; <i1>:2 [#uses=1]
-	br i1 %2, label %cond_true, label %cond_next
-
-cond_true:		; preds = %bb
-	%tmp10 = load %struct.operator** %op		; <%struct.operator*> [#uses=1]
-	%tmp11 = getelementptr %struct.operator* %tmp10, i32 0, i32 2		; <i32*> [#uses=1]
-	%tmp12 = load i32* %tmp11		; <i32> [#uses=1]
-	%tmp13 = load %struct.FILE** @outfile		; <%struct.FILE*> [#uses=1]
-	%tmp14 = getelementptr [11 x i8]* @str1, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp15 = call i32 (%struct.FILE*, i8*, ...)* @fprintf( %struct.FILE* %tmp13, i8* %tmp14, i32 %tmp12 )		; <i32> [#uses=0]
-	%tmp16 = load i32* %c		; <i32> [#uses=1]
-	%tmp17 = add i32 %tmp16, 1		; <i32> [#uses=1]
-	store i32 %tmp17, i32* %c
-	br label %cond_next
-
-cond_next:		; preds = %cond_true, %bb
-	%tmp19 = getelementptr %struct.list* %tmp22, i32 0, i32 1		; <%struct.list**> [#uses=1]
-	%tmp20 = load %struct.list** %tmp19		; <%struct.list*> [#uses=1]
-	store %struct.list* %tmp20, %struct.list** %l
-	br label %bb21
-
-bb21:		; preds = %cond_next, %entry
-        %l.in = phi %struct.list** [ @operators, %entry ], [ %tmp19, %cond_next ]  ;
-	%tmp22 = load %struct.list** %l.in		; <%struct.list*> [#uses=1]
-	icmp ne %struct.list* %tmp22, null		; <i1>:3 [#uses=1]
-	zext i1 %3 to i8		; <i8>:4 [#uses=1]
-	icmp ne i8 %4, 0		; <i1>:5 [#uses=1]
-	br i1 %5, label %bb, label %bb23
-
-bb23:		; preds = %bb21
-	%tmp24 = load i32* %c		; <i32> [#uses=1]
-	store i32 %tmp24, i32* %tmp
-	%tmp25 = load i32* %tmp		; <i32> [#uses=1]
-	store i32 %tmp25, i32* %retval
-	br label %return
-
-return:		; preds = %bb23
-	%retval26 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval26
-}
-
-declare i32 @fprintf(%struct.FILE*, i8*, ...)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/PhiSelfRefernce-1.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/PhiSelfRefernce-1.ll
deleted file mode 100644
index a55704b..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/PhiSelfRefernce-1.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-rotate -disable-output
-; ModuleID = 'PhiSelfRefernce-1.bc'
-
-define void @snrm2(i32 %incx) {
-entry:
-	br i1 false, label %START, label %return
-
-START:		; preds = %entry
-	br i1 false, label %bb85, label %cond_false93
-
-bb52:		; preds = %bb85
-	br i1 false, label %bb307, label %cond_next71
-
-cond_next71:		; preds = %bb52
-	ret void
-
-bb85:		; preds = %START
-	br i1 false, label %bb52, label %bb88
-
-bb88:		; preds = %bb85
-	ret void
-
-cond_false93:		; preds = %START
-	ret void
-
-bb243:		; preds = %bb307
-	br label %bb307
-
-bb307:		; preds = %bb243, %bb52
-	%sx_addr.2.pn = phi float* [ %sx_addr.5, %bb243 ], [ null, %bb52 ]		; <float*> [#uses=1]
-	%sx_addr.5 = getelementptr float* %sx_addr.2.pn, i32 %incx		; <float*> [#uses=1]
-	br i1 false, label %bb243, label %bb310
-
-bb310:		; preds = %bb307
-	ret void
-
-return:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/dg.exp b/libclamav/c++/llvm/test/Transforms/LoopRotate/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LoopRotate/pr2639.ll b/libclamav/c++/llvm/test/Transforms/LoopRotate/pr2639.ll
deleted file mode 100644
index 67477ad..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopRotate/pr2639.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-deletion -loop-rotate -disable-output
-; PR 2639
-
-	%struct.HexxagonMove = type { i8, i8, i32 }
-
-define void @_ZN16HexxagonMoveList7addMoveER12HexxagonMove() {
-entry:
-	br i1 false, label %bb9.preheader, label %bb11
-
-bb9.preheader:		; preds = %entry
-	br label %bb9
-
-bb1:		; preds = %bb9
-	br i1 false, label %bb3, label %bb8
-
-bb3:		; preds = %bb1
-	br label %bb5
-
-bb4:		; preds = %bb5
-	br label %bb5
-
-bb5:		; preds = %bb4, %bb3
-	%exitcond = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb7, label %bb4
-
-bb7:		; preds = %bb5
-	store %struct.HexxagonMove* null, %struct.HexxagonMove** null, align 4
-	br label %bb8
-
-bb8:		; preds = %bb7, %bb1
-	br label %bb9
-
-bb9:		; preds = %bb8, %bb9.preheader
-	br i1 false, label %bb11, label %bb1
-
-bb11:		; preds = %bb9, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
deleted file mode 100644
index 70445fb..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; This testcase exposed a problem with the loop identification pass (LoopInfo).
-; Basically, it was incorrectly calculating the loop nesting information.
-;
-; RUN: llvm-as < %s | opt -loopsimplify
-
-define i32 @yylex() {
-	br label %loopentry.0
-loopentry.0:		; preds = %else.4, %0
-	br label %loopexit.2
-loopexit.2:		; preds = %else.4, %loopexit.2, %loopentry.0
-	br i1 false, label %loopexit.2, label %else.4
-yy_find_action:		; preds = %else.4
-	br label %else.4
-else.4:		; preds = %yy_find_action, %loopexit.2
-	switch i32 0, label %loopexit.2 [
-		 i32 2, label %yy_find_action
-		 i32 0, label %loopentry.0
-	]
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll
deleted file mode 100644
index ba2eef7..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll
+++ /dev/null
@@ -1,42 +0,0 @@
-; This (complex) testcase causes an assertion failure because a preheader is 
-; inserted for the "fail" loop, but the exit block of a loop is not updated
-; to be the preheader instead of the exit loop itself.
-
-; RUN: llvm-as < %s | opt -loopsimplify
-define i32 @re_match_2() {
-	br label %loopentry.1
-loopentry.1:		; preds = %endif.82, %0
-	br label %shortcirc_done.36
-shortcirc_done.36:		; preds = %loopentry.1
-	br i1 false, label %fail, label %endif.40
-endif.40:		; preds = %shortcirc_done.36
-	br label %loopexit.20
-loopentry.20:		; preds = %endif.46
-	br label %loopexit.20
-loopexit.20:		; preds = %loopentry.20, %endif.40
-	br label %loopentry.21
-loopentry.21:		; preds = %no_exit.19, %loopexit.20
-	br i1 false, label %no_exit.19, label %loopexit.21
-no_exit.19:		; preds = %loopentry.21
-	br i1 false, label %fail, label %loopentry.21
-loopexit.21:		; preds = %loopentry.21
-	br label %endif.45
-endif.45:		; preds = %loopexit.21
-	br label %cond_true.15
-cond_true.15:		; preds = %endif.45
-	br i1 false, label %fail, label %endif.46
-endif.46:		; preds = %cond_true.15
-	br label %loopentry.20
-fail:		; preds = %loopexit.37, %cond_true.15, %no_exit.19, %shortcirc_done.36
-	br label %then.80
-then.80:		; preds = %fail
-	br label %endif.81
-endif.81:		; preds = %then.80
-	br label %loopexit.37
-loopexit.37:		; preds = %endif.81
-	br i1 false, label %fail, label %endif.82
-endif.82:		; preds = %loopexit.37
-	br label %loopentry.1
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll
deleted file mode 100644
index 53fc59e..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -instcombine -simplifycfg -licm -disable-output
-target datalayout = "e-p:32:32"
- at yy_base = external global [787 x i16]		; <[787 x i16]*> [#uses=1]
- at yy_state_ptr = external global i32*		; <i32**> [#uses=3]
- at yy_state_buf = external global [16386 x i32]		; <[16386 x i32]*> [#uses=1]
- at yy_lp = external global i32		; <i32*> [#uses=1]
-
-define i32 @_yylex() {
-	br label %loopentry.0
-loopentry.0:		; preds = %else.26, %0
-	store i32* getelementptr ([16386 x i32]* @yy_state_buf, i64 0, i64 0), i32** @yy_state_ptr
-	%tmp.35 = load i32** @yy_state_ptr		; <i32*> [#uses=2]
-	%inc.0 = getelementptr i32* %tmp.35, i64 1		; <i32*> [#uses=1]
-	store i32* %inc.0, i32** @yy_state_ptr
-	%tmp.36 = load i32* null		; <i32> [#uses=1]
-	store i32 %tmp.36, i32* %tmp.35
-	br label %loopexit.2
-loopexit.2:		; preds = %else.26, %loopexit.2, %loopentry.0
-	store i8* null, i8** null
-	%tmp.91 = load i32* null		; <i32> [#uses=1]
-	%tmp.92 = sext i32 %tmp.91 to i64		; <i64> [#uses=1]
-	%tmp.93 = getelementptr [787 x i16]* @yy_base, i64 0, i64 %tmp.92		; <i16*> [#uses=1]
-	%tmp.94 = load i16* %tmp.93		; <i16> [#uses=1]
-	%tmp.95 = icmp ne i16 %tmp.94, 4394		; <i1> [#uses=1]
-	br i1 %tmp.95, label %loopexit.2, label %yy_find_action
-yy_find_action:		; preds = %else.26, %loopexit.2
-	br label %loopentry.3
-loopentry.3:		; preds = %then.9, %shortcirc_done.0, %yy_find_action
-	%tmp.105 = load i32* @yy_lp		; <i32> [#uses=1]
-	%tmp.106 = icmp ne i32 %tmp.105, 0		; <i1> [#uses=1]
-	br i1 %tmp.106, label %shortcirc_next.0, label %shortcirc_done.0
-shortcirc_next.0:		; preds = %loopentry.3
-	%tmp.114 = load i16* null		; <i16> [#uses=1]
-	%tmp.115 = sext i16 %tmp.114 to i32		; <i32> [#uses=1]
-	%tmp.116 = icmp slt i32 0, %tmp.115		; <i1> [#uses=1]
-	br label %shortcirc_done.0
-shortcirc_done.0:		; preds = %shortcirc_next.0, %loopentry.3
-	%shortcirc_val.0 = phi i1 [ false, %loopentry.3 ], [ %tmp.116, %shortcirc_next.0 ]		; <i1> [#uses=1]
-	br i1 %shortcirc_val.0, label %else.0, label %loopentry.3
-else.0:		; preds = %shortcirc_done.0
-	%tmp.144 = load i32* null		; <i32> [#uses=1]
-	%tmp.145 = and i32 %tmp.144, 8192		; <i32> [#uses=1]
-	%tmp.146 = icmp ne i32 %tmp.145, 0		; <i1> [#uses=1]
-	br i1 %tmp.146, label %then.9, label %else.26
-then.9:		; preds = %else.0
-	br label %loopentry.3
-else.26:		; preds = %else.0
-	switch i32 0, label %loopentry.0 [
-		 i32 2, label %yy_find_action
-		 i32 0, label %loopexit.2
-	]
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll
deleted file mode 100644
index bd39330..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; LoopSimplify is breaking LICM on this testcase because the exit blocks from
-; the loop are reachable from more than just the exit nodes: the exit blocks
-; have predecessors from outside of the loop!
-;
-; This is distilled from a monsterous crafty example.
-
-; RUN: llvm-as < %s | opt -licm -disable-output
-
-
- at G = weak global i32 0		; <i32*> [#uses=7]
-
-define i32 @main() {
-entry:
-	store i32 123, i32* @G
-	br label %loopentry.i
-loopentry.i:		; preds = %endif.1.i, %entry
-	%tmp.0.i = load i32* @G		; <i32> [#uses=1]
-	%tmp.1.i = icmp eq i32 %tmp.0.i, 123		; <i1> [#uses=1]
-	br i1 %tmp.1.i, label %Out.i, label %endif.0.i
-endif.0.i:		; preds = %loopentry.i
-	%tmp.3.i = load i32* @G		; <i32> [#uses=1]
-	%tmp.4.i = icmp eq i32 %tmp.3.i, 126		; <i1> [#uses=1]
-	br i1 %tmp.4.i, label %ExitBlock.i, label %endif.1.i
-endif.1.i:		; preds = %endif.0.i
-	%tmp.6.i = load i32* @G		; <i32> [#uses=1]
-	%inc.i = add i32 %tmp.6.i, 1		; <i32> [#uses=1]
-	store i32 %inc.i, i32* @G
-	br label %loopentry.i
-Out.i:		; preds = %loopentry.i
-	store i32 0, i32* @G
-	br label %ExitBlock.i
-ExitBlock.i:		; preds = %Out.i, %endif.0.i
-	%tmp.7.i = load i32* @G		; <i32> [#uses=1]
-	ret i32 %tmp.7.i
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll
deleted file mode 100644
index b8ced96..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify -verify -licm -disable-output
-
-define void @.subst_48() {
-entry:
-	br label %loopentry.0
-loopentry.0:		; preds = %loopentry.0, %entry
-	br i1 false, label %loopentry.0, label %loopentry.2
-loopentry.2:		; preds = %loopentry.2, %loopentry.0
-	%tmp.968 = icmp sle i32 0, 3		; <i1> [#uses=1]
-	br i1 %tmp.968, label %loopentry.2, label %UnifiedReturnBlock
-UnifiedReturnBlock:		; preds = %loopentry.2
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll
deleted file mode 100644
index 439ea7e..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify -licm -disable-output
-define void @main() {
-entry:
-	br i1 false, label %Out, label %loop
-loop:		; preds = %loop, %entry
-	%LI = icmp sgt i32 0, 0		; <i1> [#uses=1]
-	br i1 %LI, label %loop, label %Out
-Out:		; preds = %loop, %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
deleted file mode 100644
index e75b214..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify -licm -disable-output
-
-; This is PR306
-
-define void @NormalizeCoeffsVecFFE() {
-entry:
-	br label %loopentry.0
-loopentry.0:		; preds = %no_exit.0, %entry
-	br i1 false, label %loopentry.1, label %no_exit.0
-no_exit.0:		; preds = %loopentry.0
-	br i1 false, label %loopentry.0, label %loopentry.1
-loopentry.1:		; preds = %no_exit.1, %no_exit.0, %loopentry.0
-	br i1 false, label %no_exit.1, label %loopexit.1
-no_exit.1:		; preds = %loopentry.1
-	%tmp.43 = icmp eq i16 0, 0		; <i1> [#uses=1]
-	br i1 %tmp.43, label %loopentry.1, label %loopexit.1
-loopexit.1:		; preds = %no_exit.1, %loopentry.1
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll
deleted file mode 100644
index ae11d80..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify -disable-output
-
-define void @test() {
-loopentry.0:
-	br label %loopentry.1
-loopentry.1:		; preds = %then.6, %then.6, %loopentry.1, %loopentry.0
-	%pixel.4 = phi i32 [ 0, %loopentry.0 ], [ %pixel.4, %loopentry.1 ], [ %tmp.370, %then.6 ], [ %tmp.370, %then.6 ]		; <i32> [#uses=1]
-	br i1 false, label %then.6, label %loopentry.1
-then.6:		; preds = %loopentry.1
-	%tmp.370 = add i32 0, 0		; <i32> [#uses=2]
-	switch i32 0, label %label.7 [
-		 i32 6408, label %loopentry.1
-		 i32 32841, label %loopentry.1
-	]
-label.7:		; preds = %then.6
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
deleted file mode 100644
index bd0515c..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -loopsimplify -licm -disable-output -verify-dom-info
-
-define void @inflate() {
-entry:
-	br label %loopentry.0.outer1111
-loopentry.0.outer1111:		; preds = %then.41, %label.11, %loopentry.0.outer1111, %entry
-	%left.0.ph1107 = phi i32 [ %tmp.1172, %then.41 ], [ 0, %entry ], [ %tmp.1172, %label.11 ], [ %left.0.ph1107, %loopentry.0.outer1111 ]		; <i32> [#uses=2]
-	%tmp.1172 = sub i32 %left.0.ph1107, 0		; <i32> [#uses=2]
-	switch i32 0, label %label.11 [
-		 i32 23, label %loopentry.0.outer1111
-		 i32 13, label %then.41
-	]
-label.11:		; preds = %loopentry.0.outer1111
-	br label %loopentry.0.outer1111
-then.41:		; preds = %loopentry.0.outer1111
-	br label %loopentry.0.outer1111
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2007-10-28-InvokeCrash.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/2007-10-28-InvokeCrash.ll
deleted file mode 100644
index 914fcd1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/2007-10-28-InvokeCrash.ll
+++ /dev/null
@@ -1,892 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify -disable-output
-; PR1752
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-s0:0:64-f80:32:32"
-target triple = "i686-pc-mingw32"
-	%struct.BigInt = type { %"struct.std::vector<ulong,std::allocator<ulong> >" }
-	%struct.Fibonacci = type { %"struct.std::vector<BigInt,std::allocator<BigInt> >" }
-	%struct.__false_type = type <{ i8 }>
-	%"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >" = type { %struct.BigInt* }
-	%"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >" = type { %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >::_Vector_impl" }
-	%"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >::_Vector_impl" = type { %struct.BigInt*, %struct.BigInt*, %struct.BigInt* }
-	%"struct.std::_Vector_base<ulong,std::allocator<ulong> >" = type { %"struct.std::_Vector_base<ulong,std::allocator<ulong> >::_Vector_impl" }
-	%"struct.std::_Vector_base<ulong,std::allocator<ulong> >::_Vector_impl" = type { i32*, i32*, i32* }
-	%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i8, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"* }
-	%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
-	%"struct.std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_streambuf<char,std::char_traits<char> >", i32, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" }
-	%"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
-	%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" }
-	%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
-	%"struct.std::ios_base::_Words" = type { i8*, i32 }
-	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
-	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
-	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
-	%"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
-	%"struct.std::ostringstream" = type { [4 x i8], %"struct.std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >", %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::vector<BigInt,std::allocator<BigInt> >" = type { %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >" }
-	%"struct.std::vector<ulong,std::allocator<ulong> >" = type { %"struct.std::_Vector_base<ulong,std::allocator<ulong> >" }
- at .str13 = external constant [6 x i8]		; <[6 x i8]*> [#uses=1]
- at .str14 = external constant [5 x i8]		; <[5 x i8]*> [#uses=1]
- at .str15 = external constant [2 x i8]		; <[2 x i8]*> [#uses=1]
- at _ZSt4cout = external global %"struct.std::basic_ostream<char,std::char_traits<char> >"		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
-
-declare void @_ZN9Fibonacci10get_numberEj(%struct.BigInt* sret , %struct.Fibonacci*, i32)
-
-declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8*)
-
-declare void @_ZNSsD1Ev(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*)
-
-declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEm(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, i32)
-
-declare void @_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* sret , %"struct.std::ostringstream"*)
-
-declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*)
-
-declare void @_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"struct.std::ostringstream"*)
-
-declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @___ZlsRSoRK6BigInt___ZN9__gnu_cxx13new_allocatorI6BigIntE10deallocateEPS1_j(i32, %"struct.std::basic_ostream<char,std::char_traits<char> >"*, %struct.BigInt*, %struct.__false_type*, i32)
-
-declare void @___ZNSt12_Vector_baseI6BigIntSaIS0_EE13_M_deallocateEPS0_j___ZNSt12_Vector_baseI6BigIntSaIS0_EED2Ev___ZNSt6vectorI6BigIntSaIS0_EEC1ERKS1_(%"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >"*, i32, %struct.BigInt*, i32, %"struct.std::vector<BigInt,std::allocator<BigInt> >"*, %struct.__false_type*)
-
-declare i32 @___ZN9__gnu_cxxmiIPK6BigIntS3_St6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T1_E15difference_typeERKSA_RKNS7_IT0_S9_EE___ZNKSt6vectorI6BigIntSaIS0_EE4sizeEv___ZNK9Fibonacci16show_all_numbersEv___ZNKSt6vectorI6BigIntSaIS0_EE8capacityEv(%"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*, %"struct.std::vector<BigInt,std::allocator<BigInt> >"*, i32, %struct.Fibonacci*)
-
-declare %struct.BigInt* @___ZNSt6vectorI6BigIntSaIS0_EEixEj___ZNSt6vectorI6BigIntSaIS0_EE3endEv(%"struct.std::vector<BigInt,std::allocator<BigInt> >"*, i32, i32)
-
-declare %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* @___ZN9__gnu_cxx17__normal_iteratorIP6BigIntSt6vectorIS1_SaIS1_EEEppEv___ZNSt6vectorImSaImEED1Ev___ZN6BigIntD1Ev___ZN9__gnu_cxx13new_allocatorI6BigIntE7destroyEPS1____ZSt8_DestroyIP6BigIntSaIS0_EEvT_S3_T0_(i32, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*, %"struct.std::vector<ulong,std::allocator<ulong> >"*, %struct.BigInt*, %struct.__false_type*, %struct.BigInt*, %struct.__false_type* noalias )
-
-declare void @___ZNSt6vectorI6BigIntSaIS0_EED1Ev___ZN9FibonacciD1Ev___ZNSt6vectorImSaImEEC1ERKS0_(i32, %"struct.std::vector<BigInt,std::allocator<BigInt> >"*, %struct.Fibonacci*, %"struct.std::vector<ulong,std::allocator<ulong> >"*, %struct.__false_type*)
-
-define void @___ZN9FibonacciC1Ej___ZN9Fibonacci11show_numberEm(%struct.Fibonacci* %this_this, i32 %functionID, i32 %n_i_n_i) {
-bb_init:
-	br label %bb_main
-
-bb_main:		; preds = %meshBB349, %meshBB348, %meshBB347, %meshBB346, %meshBB345.unwinddest, %meshBB345, %meshBB344, %meshBB343, %meshBB342, %meshBB341, %meshBB340.normaldest, %meshBB340, %meshBB339, %invcont17.normaldest.normaldest, %invcont17.normaldest, %meshBB338.unwinddest, %meshBB338, %meshBB337.unwinddest, %meshBB337, %meshBB336.unwinddest, %meshBB336, %meshBB335, %meshBB334, %meshBB333, %meshBB332, %meshBB331, %meshBB330.normaldest, %meshBB330, %meshBB329.normaldest, %meshBB329, %meshBB328, %meshBB327, %meshBB326, %meshBB325.unwinddest, %meshBB325, %meshBB324, %meshBB323.normaldest, %meshBB323, %meshBB322.unwinddest, %meshBB322, %meshBB321, %meshBB320.unwinddest, %meshBB320, %meshBB319.unwinddest, %meshBB319, %meshBB318.unwinddest, %meshBB318, %meshBB317, %meshBB37.fragment, %meshBB37.unwinddest, %meshBB37, %meshBB36.fragment, %meshBB36, %meshBB35.fragment, %meshBB35, %meshBB34.fragment, %meshBB34, %meshBB33.fragment, %meshBB33, %meshBB32.fragment, %meshBB32, %meshBB31.fragment, %meshBB31, %meshBB30.fragment, %meshBB30.normaldest, %meshBB30, %meshBB29.fragment, %meshBB29.unwinddest, %meshBB29, %meshBB28.fragment, %meshBB28.unwinddest, %meshBB28, %meshBB27.fragment, %meshBB27, %meshBB26.fragment, %meshBB26.normaldest, %meshBB26, %meshBB25.fragment, %meshBB25, %meshBB24.fragment, %meshBB24.unwinddest, %meshBB24, %meshBB23.fragment, %meshBB23.normaldest, %meshBB23, %entry1.fragment.normaldest.normaldest, %entry1.fragment.normaldest, %meshBB22.fragment, %meshBB22.unwinddest, %meshBB22, %meshBB.fragment, %meshBB.unwinddest, %meshBB, %Unwind20, %unwind78.Unwind_crit_edge, %unwind78.fragment.fragment, %unwind78.fragment, %unwind78.fragment316, %unwind78, %invcont70, %unwind66.Unwind_crit_edge, %unwind66.fragment.fragment, %unwind66.fragment, %unwind66.fragment315, %unwind66, %unwind53.nofilter_crit_edge, %unwind53.fragment.fragment, %unwind53.fragment, %unwind53.fragment314, %unwind53, %nofilter.Unwind_crit_edge.normaldest, %nofilter.Unwind_crit_edge, %nofilter, %unwind43.nofilter_crit_edge, %unwind43.fragment.fragment, %unwind43.fragment, %unwind43.fragment313, %unwind43, %invcont41.normaldest, %invcont41, %unwind37.nofilter_crit_edge, %unwind37, %invcont36, %invcont33.unwind_crit_edge.unwinddest, %invcont33.unwind_crit_edge, %invcont30.unwind_crit_edge.unwinddest, %invcont30.unwind_crit_edge, %invcont30.normaldest, %invcont30, %invcont28.unwind_crit_edge, %invcont28.normaldest, %invcont28, %invcont25.unwind_crit_edge.unwinddest, %invcont25.unwind_crit_edge, %invcont25, %invcont22.unwind_crit_edge, %invcont22, %invcont17.unwind_crit_edge, %invcont17, %cond_next.unwind_crit_edge, %cond_next, %invcont12.cond_next_crit_edge, %invcont12.unwind_crit_edge, %invcont12, %cond_true.unwind_crit_edge.unwinddest, %cond_true.unwind_crit_edge, %invcont.cond_next_crit_edge, %invcont16.fragment, %invcont16, %unwind11.fragment, %unwind11, %entry.unwind_crit_edge, %entry1.fragment, %entry1.fragment312, %entry1, %Unwind, %unwind20.Unwind_crit_edge, %unwind20.fragment.fragment, %unwind20.fragment, %unwind20.fragment311, %unwind20, %invcont15, %invcont14.unwind10_crit_edge, %invcont14, %unwind10.Unwind_crit_edge, %unwind10.fragment, %unwind10.fragment310, %unwind10, %invcont.unwind10_crit_edge, %invcont, %unwind.fragment, %unwind, %entry.fragment, %entry.fragment309, %entry, %NewDefault, %LeafBlock, %LeafBlock914, %NodeBlock, %comb_entry.fragment, %old_entry, %bb_init
-	switch i32 0, label %old_entry [
-		 i32 2739, label %invcont28.fragment
-		 i32 2688, label %meshBB28.fragment
-		 i32 1318, label %meshBB32.fragment
-		 i32 2964, label %unwind53.fragment.fragment
-		 i32 824, label %unwind78.fragment.fragment
-		 i32 1983, label %meshBB33.fragment
-		 i32 2582, label %invcont30.fragment
-		 i32 2235, label %meshBB36.fragment
-		 i32 1275, label %meshBB343
-		 i32 2719, label %invcont.fragment
-		 i32 1500, label %entry1.fragment.fragment
-		 i32 815, label %unwind11.fragment
-		 i32 1051, label %entry
-		 i32 2342, label %unwind
-		 i32 1814, label %invcont
-		 i32 315, label %invcont.unwind10_crit_edge
-		 i32 2422, label %unwind10
-		 i32 2663, label %unwind10.Unwind_crit_edge
-		 i32 266, label %invcont14
-		 i32 367, label %invcont14.unwind10_crit_edge
-		 i32 2242, label %invcont15
-		 i32 452, label %unwind20
-		 i32 419, label %invcont.cond_next_crit_edge
-		 i32 181, label %cond_true
-		 i32 2089, label %unwind20.Unwind_crit_edge
-		 i32 633, label %filter
-		 i32 455, label %Unwind
-		 i32 2016, label %entry1
-		 i32 263, label %invcont33.unwind_crit_edge
-		 i32 2498, label %invcont36
-		 i32 2992, label %unwind37
-		 i32 616, label %entry.unwind_crit_edge
-		 i32 622, label %unwind11
-		 i32 875, label %invcont16
-		 i32 766, label %unwind53.nofilter_crit_edge
-		 i32 668, label %filter62
-		 i32 2138, label %unwind66
-		 i32 713, label %unwind66.Unwind_crit_edge
-		 i32 1422, label %invcont70
-		 i32 1976, label %cond_true.unwind_crit_edge
-		 i32 1263, label %invcont12
-		 i32 2453, label %invcont12.unwind_crit_edge
-		 i32 2876, label %invcont12.cond_next_crit_edge
-		 i32 2271, label %cond_next
-		 i32 2938, label %cond_next.unwind_crit_edge
-		 i32 1082, label %invcont17
-		 i32 531, label %invcont17.unwind_crit_edge
-		 i32 111, label %invcont22
-		 i32 1935, label %invcont22.unwind_crit_edge
-		 i32 2004, label %invcont25
-		 i32 1725, label %invcont25.unwind_crit_edge
-		 i32 1701, label %invcont28
-		 i32 957, label %invcont28.unwind_crit_edge
-		 i32 165, label %invcont30
-		 i32 899, label %invcont30.unwind_crit_edge
-		 i32 1092, label %invcont33
-		 i32 2869, label %unwind37.nofilter_crit_edge
-		 i32 203, label %invcont41
-		 i32 693, label %unwind43
-		 i32 2895, label %unwind43.nofilter_crit_edge
-		 i32 1174, label %invcont47
-		 i32 1153, label %filter19
-		 i32 2304, label %nofilter
-		 i32 848, label %nofilter.Unwind_crit_edge
-		 i32 1207, label %unwind53
-		 i32 2848, label %filter75
-		 i32 59, label %unwind78
-		 i32 1213, label %unwind78.Unwind_crit_edge
-		 i32 2199, label %filter87
-		 i32 1268, label %Unwind20
-		 i32 743, label %old_entry
-		 i32 1276, label %meshBB319
-		 i32 1619, label %meshBB320
-		 i32 2047, label %meshBB331
-		 i32 2828, label %meshBB23.fragment
-		 i32 2530, label %meshBB332
-		 i32 1389, label %meshBB318
-		 i32 1450, label %meshBB317
-		 i32 1416, label %meshBB31.fragment
-		 i32 82, label %meshBB322
-		 i32 853, label %unwind78.fragment316
-		 i32 107, label %meshBB24.fragment
-		 i32 1200, label %meshBB37.fragment
-		 i32 605, label %unwind53.fragment314
-		 i32 209, label %meshBB29.fragment
-		 i32 1513, label %meshBB27.fragment
-		 i32 1542, label %meshBB35.fragment
-		 i32 1873, label %meshBB348
-		 i32 472, label %meshBB325
-		 i32 2615, label %meshBB22.fragment
-		 i32 359, label %meshBB.fragment
-		 i32 2467, label %Unwind20.fragment
-		 i32 1671, label %unwind66.fragment.fragment
-		 i32 1006, label %meshBB25.fragment
-		 i32 1243, label %meshBB333
-		 i32 2795, label %unwind43.fragment313
-		 i32 1591, label %meshBB335
-		 i32 773, label %meshBB341
-		 i32 2440, label %cond_next.fragment
-		 i32 487, label %meshBB326
-		 i32 394, label %meshBB324
-		 i32 14, label %invcont16.fragment
-		 i32 574, label %entry1.fragment312
-		 i32 1453, label %meshBB35
-		 i32 345, label %entry1.fragment
-		 i32 2951, label %unwind20.fragment
-		 i32 1960, label %meshBB31
-		 i32 2163, label %meshBB32
-		 i32 1978, label %Unwind.fragment
-		 i32 1559, label %unwind20.fragment.fragment
-		 i32 950, label %unwind10.fragment
-		 i32 1724, label %unwind53.fragment
-		 i32 514, label %meshBB36
-		 i32 1928, label %unwind10.fragment.fragment
-		 i32 1266, label %meshBB26
-		 i32 3148, label %unwind20.fragment311
-		 i32 1581, label %unwind43.fragment
-		 i32 1829, label %meshBB34
-		 i32 1472, label %meshBB28
-		 i32 2657, label %unwind66.fragment
-		 i32 2169, label %meshBB22
-		 i32 2619, label %meshBB
-		 i32 1397, label %entry.fragment
-		 i32 231, label %invcont41.fragment
-		 i32 2557, label %meshBB338
-		 i32 2387, label %meshBB30.fragment
-		 i32 2927, label %meshBB340
-		 i32 2331, label %meshBB321
-		 i32 47, label %meshBB328
-		 i32 1753, label %meshBB342
-		 i32 2074, label %meshBB323
-		 i32 2128, label %meshBB334
-		 i32 2396, label %meshBB337
-		 i32 1811, label %meshBB29
-		 i32 1113, label %meshBB27
-		 i32 2232, label %unwind10.fragment310
-		 i32 804, label %meshBB24
-		 i32 3099, label %meshBB30
-		 i32 564, label %meshBB33
-		 i32 1359, label %unwind.fragment
-		 i32 1906, label %entry.fragment309
-		 i32 2644, label %entry.fragment.fragment
-		 i32 134, label %entry1.fragment.normaldest
-		 i32 2767, label %comb_entry.fragment
-		 i32 2577, label %meshBB25
-		 i32 3128, label %meshBB37
-		 i32 2360, label %meshBB23
-		 i32 286, label %unwind78.fragment
-		 i32 976, label %meshBB346
-		 i32 2412, label %meshBB339
-		 i32 876, label %meshBB345
-		 i32 3078, label %meshBB329
-		 i32 1297, label %meshBB347
-		 i32 3051, label %meshBB336
-		 i32 1342, label %meshBB344
-		 i32 728, label %meshBB330
-		 i32 1778, label %meshBB349
-		 i32 2784, label %meshBB327
-		 i32 1854, label %meshBB26.fragment
-		 i32 1025, label %meshBB34.fragment
-		 i32 2139, label %unwind43.fragment.fragment
-		 i32 2217, label %nofilter.fragment
-		 i32 665, label %invcont12.fragment
-		 i32 316, label %invcont22.fragment
-		 i32 1467, label %unwind66.fragment315
-		 i32 3018, label %unwind37.fragment
-		 i32 1123, label %invcont17.normaldest
-		 i32 2104, label %NewDefault
-		 i32 1639, label %LeafBlock
-		 i32 925, label %LeafBlock914
-		 i32 2880, label %NodeBlock
-	]
-
-old_entry:		; preds = %bb_main, %bb_main
-	br label %bb_main
-
-comb_entry.fragment:		; preds = %bb_main
-	br label %bb_main
-
-NodeBlock:		; preds = %bb_main
-	br label %bb_main
-
-LeafBlock914:		; preds = %bb_main
-	br label %bb_main
-
-LeafBlock:		; preds = %bb_main
-	br label %bb_main
-
-NewDefault:		; preds = %bb_main
-	br label %bb_main
-
-entry:		; preds = %bb_main
-	br label %bb_main
-
-entry.fragment309:		; preds = %bb_main
-	br label %bb_main
-
-entry.fragment:		; preds = %bb_main
-	br label %bb_main
-
-entry.fragment.fragment:		; preds = %bb_main
-	invoke void @___ZNSt12_Vector_baseI6BigIntSaIS0_EE13_M_deallocateEPS0_j___ZNSt12_Vector_baseI6BigIntSaIS0_EED2Ev___ZNSt6vectorI6BigIntSaIS0_EEC1ERKS1_( %"struct.std::_Vector_base<BigInt,std::allocator<BigInt> >"* null, i32 28, %struct.BigInt* null, i32 0, %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, %struct.__false_type* null )
-			to label %meshBB340 unwind label %meshBB325
-
-unwind:		; preds = %bb_main
-	br label %bb_main
-
-unwind.fragment:		; preds = %bb_main
-	br label %bb_main
-
-invcont:		; preds = %bb_main
-	br label %bb_main
-
-invcont.fragment:		; preds = %bb_main
-	invoke void @_ZN9Fibonacci10get_numberEj( %struct.BigInt* null sret , %struct.Fibonacci* %this_this, i32 %n_i_n_i )
-			to label %invcont14 unwind label %meshBB37
-
-invcont.unwind10_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-unwind10:		; preds = %bb_main
-	br label %bb_main
-
-unwind10.fragment310:		; preds = %bb_main
-	br label %bb_main
-
-unwind10.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind10.fragment.fragment:		; preds = %bb_main
-	invoke void @___ZNSt6vectorI6BigIntSaIS0_EED1Ev___ZN9FibonacciD1Ev___ZNSt6vectorImSaImEEC1ERKS0_( i32 57, %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, %struct.Fibonacci* null, %"struct.std::vector<ulong,std::allocator<ulong> >"* null, %struct.__false_type* null )
-			to label %meshBB329 unwind label %meshBB24
-
-unwind10.Unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont14:		; preds = %invcont.fragment, %bb_main
-	br label %bb_main
-
-invcont14.normaldest:		; No predecessors!
-	invoke %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* @___ZN9__gnu_cxx17__normal_iteratorIP6BigIntSt6vectorIS1_SaIS1_EEEppEv___ZNSt6vectorImSaImEED1Ev___ZN6BigIntD1Ev___ZN9__gnu_cxx13new_allocatorI6BigIntE7destroyEPS1____ZSt8_DestroyIP6BigIntSaIS0_EEvT_S3_T0_( i32 14, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.std::vector<ulong,std::allocator<ulong> >"* null, %struct.BigInt* null, %struct.__false_type* null, %struct.BigInt* null, %struct.__false_type* null noalias  )
-			to label %invcont15 unwind label %meshBB345		; <%"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*>:0 [#uses=0]
-
-invcont14.unwind10_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont15:		; preds = %invcont14.normaldest, %bb_main
-	br label %bb_main
-
-invcont15.normaldest:		; No predecessors!
-	br label %UnifiedReturnBlock
-
-unwind20:		; preds = %bb_main
-	br label %bb_main
-
-unwind20.fragment311:		; preds = %bb_main
-	br label %bb_main
-
-unwind20.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind20.fragment.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind20.Unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-filter:		; preds = %bb_main
-	br label %UnifiedUnreachableBlock
-
-Unwind:		; preds = %bb_main
-	br label %bb_main
-
-Unwind.fragment:		; preds = %bb_main
-	br label %UnifiedUnreachableBlock
-
-entry1:		; preds = %bb_main
-	br label %bb_main
-
-entry1.fragment312:		; preds = %bb_main
-	br label %bb_main
-
-entry1.fragment:		; preds = %bb_main
-	br label %bb_main
-
-entry1.fragment.fragment:		; preds = %bb_main
-	%tmp52 = invoke i32 @___ZN9__gnu_cxxmiIPK6BigIntS3_St6vectorIS1_SaIS1_EEEENS_17__normal_iteratorIT_T1_E15difference_typeERKSA_RKNS7_IT0_S9_EE___ZNKSt6vectorI6BigIntSaIS0_EE4sizeEv___ZNK9Fibonacci16show_all_numbersEv___ZNKSt6vectorI6BigIntSaIS0_EE8capacityEv( %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, i32 16, %struct.Fibonacci* null )
-			to label %entry1.fragment.normaldest unwind label %meshBB320		; <i32> [#uses=0]
-
-entry.unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-unwind11:		; preds = %bb_main
-	br label %bb_main
-
-unwind11.fragment:		; preds = %bb_main
-	br label %bb_main
-
-invcont16:		; preds = %bb_main
-	br label %bb_main
-
-invcont16.fragment:		; preds = %bb_main
-	br label %bb_main
-
-invcont.cond_next_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-cond_true:		; preds = %bb_main
-	invoke void @_ZN9Fibonacci10get_numberEj( %struct.BigInt* null sret , %struct.Fibonacci* %this_this, i32 %n_i_n_i )
-			to label %meshBB323 unwind label %cond_true.unwind_crit_edge
-
-cond_true.unwind_crit_edge:		; preds = %cond_true, %bb_main
-	br label %bb_main
-
-cond_true.unwind_crit_edge.unwinddest:		; No predecessors!
-	br label %bb_main
-
-invcont12:		; preds = %bb_main
-	br label %bb_main
-
-invcont12.fragment:		; preds = %bb_main
-	invoke %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* @___ZN9__gnu_cxx17__normal_iteratorIP6BigIntSt6vectorIS1_SaIS1_EEEppEv___ZNSt6vectorImSaImEED1Ev___ZN6BigIntD1Ev___ZN9__gnu_cxx13new_allocatorI6BigIntE7destroyEPS1____ZSt8_DestroyIP6BigIntSaIS0_EEvT_S3_T0_( i32 14, %"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"* null, %"struct.std::vector<ulong,std::allocator<ulong> >"* null, %struct.BigInt* null, %struct.__false_type* null, %struct.BigInt* null, %struct.__false_type* null noalias  )
-			to label %meshBB30 unwind label %meshBB337		; <%"struct.__gnu_cxx::__normal_iterator<BigInt*,std::vector<BigInt, std::allocator<BigInt> > >"*>:1 [#uses=0]
-
-invcont12.unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont12.cond_next_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-cond_next:		; preds = %bb_main
-	br label %bb_main
-
-cond_next.fragment:		; preds = %bb_main
-	%tmp183 = invoke %struct.BigInt* @___ZNSt6vectorI6BigIntSaIS0_EEixEj___ZNSt6vectorI6BigIntSaIS0_EE3endEv( %"struct.std::vector<BigInt,std::allocator<BigInt> >"* null, i32 %n_i_n_i, i32 29 )
-			to label %invcont17 unwind label %meshBB336		; <%struct.BigInt*> [#uses=0]
-
-cond_next.unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont17:		; preds = %cond_next.fragment, %bb_main
-	br label %bb_main
-
-invcont17.normaldest917:		; No predecessors!
-	%tmp23 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc( %"struct.std::basic_ostream<char,std::char_traits<char> >"* null, i8* getelementptr ([6 x i8]* @.str13, i32 0, i32 0) )
-			to label %invcont17.normaldest unwind label %meshBB318		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
-
-invcont17.unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont22:		; preds = %bb_main
-	br label %bb_main
-
-invcont22.fragment:		; preds = %bb_main
-	%tmp26 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEm( %"struct.std::basic_ostream<char,std::char_traits<char> >"* undef, i32 %n_i_n_i )
-			to label %invcont25 unwind label %meshBB319		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
-
-invcont22.unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont25:		; preds = %invcont22.fragment, %bb_main
-	br label %bb_main
-
-invcont25.normaldest:		; No predecessors!
-	%tmp2918 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc( %"struct.std::basic_ostream<char,std::char_traits<char> >"* %tmp26, i8* getelementptr ([5 x i8]* @.str14, i32 0, i32 0) )
-			to label %invcont28 unwind label %invcont25.unwind_crit_edge		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
-
-invcont25.unwind_crit_edge:		; preds = %invcont25.normaldest, %bb_main
-	br label %bb_main
-
-invcont25.unwind_crit_edge.unwinddest:		; No predecessors!
-	br label %bb_main
-
-invcont28:		; preds = %invcont25.normaldest, %bb_main
-	br label %bb_main
-
-invcont28.normaldest:		; No predecessors!
-	br label %bb_main
-
-invcont28.fragment:		; preds = %bb_main
-	%tmp311 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @___ZlsRSoRK6BigInt___ZN9__gnu_cxx13new_allocatorI6BigIntE10deallocateEPS1_j( i32 32, %"struct.std::basic_ostream<char,std::char_traits<char> >"* undef, %struct.BigInt* undef, %struct.__false_type* null, i32 0 )
-			to label %invcont30 unwind label %meshBB322		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
-
-invcont28.unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont30:		; preds = %invcont28.fragment, %bb_main
-	br label %bb_main
-
-invcont30.normaldest:		; No predecessors!
-	br label %bb_main
-
-invcont30.fragment:		; preds = %bb_main
-	%tmp34 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc( %"struct.std::basic_ostream<char,std::char_traits<char> >"* undef, i8* getelementptr ([2 x i8]* @.str15, i32 0, i32 0) )
-			to label %meshBB26 unwind label %invcont30.unwind_crit_edge		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
-
-invcont30.unwind_crit_edge:		; preds = %invcont30.fragment, %bb_main
-	br label %bb_main
-
-invcont30.unwind_crit_edge.unwinddest:		; No predecessors!
-	br label %bb_main
-
-invcont33:		; preds = %bb_main
-	invoke void @_ZNKSt19basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv( %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null sret , %"struct.std::ostringstream"* null )
-			to label %invcont36 unwind label %invcont33.unwind_crit_edge
-
-invcont33.unwind_crit_edge:		; preds = %invcont33, %bb_main
-	br label %bb_main
-
-invcont33.unwind_crit_edge.unwinddest:		; No predecessors!
-	br label %bb_main
-
-invcont36:		; preds = %invcont33, %bb_main
-	br label %bb_main
-
-invcont36.normaldest:		; No predecessors!
-	%tmp42 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E( %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZSt4cout, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null )
-			to label %invcont41 unwind label %meshBB338		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
-
-unwind37:		; preds = %bb_main
-	br label %bb_main
-
-unwind37.fragment:		; preds = %bb_main
-	invoke void @_ZNSsD1Ev( %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null )
-			to label %meshBB330 unwind label %meshBB22
-
-unwind37.nofilter_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont41:		; preds = %invcont36.normaldest, %bb_main
-	br label %bb_main
-
-invcont41.normaldest:		; No predecessors!
-	br label %bb_main
-
-invcont41.fragment:		; preds = %bb_main
-	invoke void @_ZNSsD1Ev( %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* null )
-			to label %meshBB23 unwind label %meshBB29
-
-unwind43:		; preds = %bb_main
-	br label %bb_main
-
-unwind43.fragment313:		; preds = %bb_main
-	br label %bb_main
-
-unwind43.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind43.fragment.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind43.nofilter_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont47:		; preds = %bb_main
-	invoke void @_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev( %"struct.std::ostringstream"* null )
-			to label %invcont70 unwind label %meshBB28
-
-filter19:		; preds = %bb_main
-	br label %UnifiedUnreachableBlock
-
-nofilter:		; preds = %bb_main
-	br label %bb_main
-
-nofilter.fragment:		; preds = %bb_main
-	invoke void @_ZNSt19basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev( %"struct.std::ostringstream"* null )
-			to label %nofilter.Unwind_crit_edge unwind label %meshBB
-
-nofilter.Unwind_crit_edge:		; preds = %nofilter.fragment, %bb_main
-	br label %bb_main
-
-nofilter.Unwind_crit_edge.normaldest:		; No predecessors!
-	br label %bb_main
-
-unwind53:		; preds = %bb_main
-	br label %bb_main
-
-unwind53.fragment314:		; preds = %bb_main
-	br label %bb_main
-
-unwind53.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind53.fragment.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind53.nofilter_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-filter62:		; preds = %bb_main
-	br label %UnifiedUnreachableBlock
-
-unwind66:		; preds = %bb_main
-	br label %bb_main
-
-unwind66.fragment315:		; preds = %bb_main
-	br label %bb_main
-
-unwind66.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind66.fragment.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind66.Unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-invcont70:		; preds = %invcont47, %bb_main
-	br label %bb_main
-
-invcont70.normaldest:		; No predecessors!
-	br label %UnifiedReturnBlock
-
-filter75:		; preds = %bb_main
-	br label %UnifiedUnreachableBlock
-
-unwind78:		; preds = %bb_main
-	br label %bb_main
-
-unwind78.fragment316:		; preds = %bb_main
-	br label %bb_main
-
-unwind78.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind78.fragment.fragment:		; preds = %bb_main
-	br label %bb_main
-
-unwind78.Unwind_crit_edge:		; preds = %bb_main
-	br label %bb_main
-
-filter87:		; preds = %bb_main
-	br label %UnifiedUnreachableBlock
-
-Unwind20:		; preds = %bb_main
-	br label %bb_main
-
-Unwind20.fragment:		; preds = %bb_main
-	br label %UnifiedUnreachableBlock
-
-meshBB:		; preds = %nofilter.fragment, %bb_main
-	br label %bb_main
-
-meshBB.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB22:		; preds = %unwind37.fragment, %bb_main
-	br label %bb_main
-
-meshBB22.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB22.fragment:		; preds = %bb_main
-	br label %bb_main
-
-entry1.fragment.normaldest:		; preds = %entry1.fragment.fragment, %bb_main
-	br label %bb_main
-
-entry1.fragment.normaldest.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB23:		; preds = %invcont41.fragment, %bb_main
-	br label %bb_main
-
-meshBB23.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB23.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB24:		; preds = %unwind10.fragment.fragment, %bb_main
-	br label %bb_main
-
-meshBB24.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB24.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB25:		; preds = %bb_main
-	br label %bb_main
-
-meshBB25.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB26:		; preds = %invcont30.fragment, %bb_main
-	br label %bb_main
-
-meshBB26.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB26.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB27:		; preds = %bb_main
-	br label %bb_main
-
-meshBB27.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB28:		; preds = %invcont47, %bb_main
-	br label %bb_main
-
-meshBB28.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB28.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB29:		; preds = %invcont41.fragment, %bb_main
-	br label %bb_main
-
-meshBB29.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB29.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB30:		; preds = %invcont12.fragment, %bb_main
-	br label %bb_main
-
-meshBB30.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB30.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB31:		; preds = %bb_main
-	br label %bb_main
-
-meshBB31.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB32:		; preds = %bb_main
-	br label %bb_main
-
-meshBB32.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB33:		; preds = %bb_main
-	br label %bb_main
-
-meshBB33.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB34:		; preds = %bb_main
-	br label %bb_main
-
-meshBB34.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB35:		; preds = %bb_main
-	br label %bb_main
-
-meshBB35.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB36:		; preds = %bb_main
-	br label %bb_main
-
-meshBB36.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB37:		; preds = %invcont.fragment, %bb_main
-	br label %bb_main
-
-meshBB37.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB37.fragment:		; preds = %bb_main
-	br label %bb_main
-
-meshBB317:		; preds = %bb_main
-	br label %bb_main
-
-meshBB318:		; preds = %invcont17.normaldest917, %bb_main
-	br label %bb_main
-
-meshBB318.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB319:		; preds = %invcont22.fragment, %bb_main
-	br label %bb_main
-
-meshBB319.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB320:		; preds = %entry1.fragment.fragment, %bb_main
-	br label %bb_main
-
-meshBB320.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB321:		; preds = %bb_main
-	br label %bb_main
-
-meshBB322:		; preds = %invcont28.fragment, %bb_main
-	br label %bb_main
-
-meshBB322.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB323:		; preds = %cond_true, %bb_main
-	br label %bb_main
-
-meshBB323.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB324:		; preds = %bb_main
-	br label %bb_main
-
-meshBB325:		; preds = %entry.fragment.fragment, %bb_main
-	br label %bb_main
-
-meshBB325.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB326:		; preds = %bb_main
-	br label %bb_main
-
-meshBB327:		; preds = %bb_main
-	br label %bb_main
-
-meshBB328:		; preds = %bb_main
-	br label %bb_main
-
-meshBB329:		; preds = %unwind10.fragment.fragment, %bb_main
-	br label %bb_main
-
-meshBB329.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB330:		; preds = %unwind37.fragment, %bb_main
-	br label %bb_main
-
-meshBB330.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB331:		; preds = %bb_main
-	br label %bb_main
-
-meshBB332:		; preds = %bb_main
-	br label %bb_main
-
-meshBB333:		; preds = %bb_main
-	br label %bb_main
-
-meshBB334:		; preds = %bb_main
-	br label %bb_main
-
-meshBB335:		; preds = %bb_main
-	br label %bb_main
-
-meshBB336:		; preds = %cond_next.fragment, %bb_main
-	br label %bb_main
-
-meshBB336.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB337:		; preds = %invcont12.fragment, %bb_main
-	br label %bb_main
-
-meshBB337.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB338:		; preds = %invcont36.normaldest, %bb_main
-	br label %bb_main
-
-meshBB338.unwinddest:		; No predecessors!
-	br label %bb_main
-
-invcont17.normaldest:		; preds = %invcont17.normaldest917, %bb_main
-	br label %bb_main
-
-invcont17.normaldest.normaldest:		; No predecessors!
-	store %"struct.std::basic_ostream<char,std::char_traits<char> >"* %tmp23, %"struct.std::basic_ostream<char,std::char_traits<char> >"** undef
-	br label %bb_main
-
-meshBB339:		; preds = %bb_main
-	br label %bb_main
-
-meshBB340:		; preds = %entry.fragment.fragment, %bb_main
-	br label %bb_main
-
-meshBB340.normaldest:		; No predecessors!
-	br label %bb_main
-
-meshBB341:		; preds = %bb_main
-	br label %bb_main
-
-meshBB342:		; preds = %bb_main
-	br label %bb_main
-
-meshBB343:		; preds = %bb_main
-	br label %bb_main
-
-meshBB344:		; preds = %bb_main
-	br label %bb_main
-
-meshBB345:		; preds = %invcont14.normaldest, %bb_main
-	br label %bb_main
-
-meshBB345.unwinddest:		; No predecessors!
-	br label %bb_main
-
-meshBB346:		; preds = %bb_main
-	br label %bb_main
-
-meshBB347:		; preds = %bb_main
-	br label %bb_main
-
-meshBB348:		; preds = %bb_main
-	br label %bb_main
-
-meshBB349:		; preds = %bb_main
-	br label %bb_main
-
-UnifiedUnreachableBlock:		; preds = %Unwind20.fragment, %filter87, %filter75, %filter62, %filter19, %Unwind.fragment, %filter
-	unreachable
-
-UnifiedReturnBlock:		; preds = %invcont70.normaldest, %invcont15.normaldest
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/basictest.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/basictest.ll
deleted file mode 100644
index 0388b0e..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/basictest.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify
-
-; This function should get a preheader inserted before BB3, that is jumped
-; to by BB1 & BB2
-;
-
-define void @test() {
-	br i1 true, label %BB1, label %BB2
-BB1:		; preds = %0
-	br label %BB3
-BB2:		; preds = %0
-	br label %BB3
-BB3:		; preds = %BB3, %BB2, %BB1
-	br label %BB3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/dg.exp b/libclamav/c++/llvm/test/Transforms/LoopSimplify/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/hardertest.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/hardertest.ll
deleted file mode 100644
index 6ee0567..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/hardertest.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify
-
-define void @foo(i1 %C) {
-	br i1 %C, label %T, label %F
-T:		; preds = %0
-	br label %Loop
-F:		; preds = %0
-	br label %Loop
-Loop:		; preds = %L2, %Loop, %F, %T
-	%Val = phi i32 [ 0, %T ], [ 1, %F ], [ 2, %Loop ], [ 3, %L2 ]		; <i32> [#uses=0]
-	br i1 %C, label %Loop, label %L2
-L2:		; preds = %Loop
-	br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/merge-exits.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/merge-exits.ll
deleted file mode 100644
index c5bf7fd..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/merge-exits.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llvm-as < %s | opt -loopsimplify -loop-rotate -instcombine -indvars \
-; RUN:  | llvm-dis > %t
-; RUN: not grep sext %t
-; RUN: grep {phi i64} %t | count 1
-
-; Loopsimplify should be able to merge the two loop exits
-; into one, so that loop rotate can rotate the loop, so
-; that indvars can promote the induction variable to i64
-; without needing casts.
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-
-define float @t(float* %pTmp1, float* %peakWeight, i32 %bandEdgeIndex) nounwind {
-entry:
-	%t0 = load float* %peakWeight, align 4		; <float> [#uses=1]
-	br label %bb1
-
-bb:		; preds = %bb2
-	%t1 = sext i32 %hiPart.0 to i64		; <i64> [#uses=1]
-	%t2 = getelementptr float* %pTmp1, i64 %t1		; <float*> [#uses=1]
-	%t3 = load float* %t2, align 4		; <float> [#uses=1]
-	%t4 = fadd float %t3, %distERBhi.0		; <float> [#uses=1]
-	%t5 = add i32 %hiPart.0, 1		; <i32> [#uses=2]
-	%t6 = sext i32 %t5 to i64		; <i64> [#uses=1]
-	%t7 = getelementptr float* %peakWeight, i64 %t6		; <float*> [#uses=1]
-	%t8 = load float* %t7, align 4		; <float> [#uses=1]
-	%t9 = fadd float %t8, %peakCount.0		; <float> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%peakCount.0 = phi float [ %t0, %entry ], [ %t9, %bb ]		; <float> [#uses=2]
-	%hiPart.0 = phi i32 [ 0, %entry ], [ %t5, %bb ]		; <i32> [#uses=3]
-	%distERBhi.0 = phi float [ 0.000000e+00, %entry ], [ %t4, %bb ]		; <float> [#uses=3]
-	%t10 = fcmp uge float %distERBhi.0, 2.500000e+00		; <i1> [#uses=1]
-	br i1 %t10, label %bb3, label %bb2
-
-bb2:		; preds = %bb1
-	%t11 = add i32 %bandEdgeIndex, -1		; <i32> [#uses=1]
-	%t12 = icmp sgt i32 %t11, %hiPart.0		; <i1> [#uses=1]
-	br i1 %t12, label %bb, label %bb3
-
-bb3:		; preds = %bb2, %bb1
-	%t13 = fdiv float %peakCount.0, %distERBhi.0		; <float> [#uses=1]
-	ret float %t13
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/phi-node-simplify.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/phi-node-simplify.ll
deleted file mode 100644
index a22fadb..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/phi-node-simplify.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; Loop Simplify should turn phi nodes like X = phi [X, Y]  into just Y, eliminating them.
-; RUN: llvm-as < %s | opt -loopsimplify | llvm-dis | grep phi | count 6
-
- at A = weak global [3000000 x i32] zeroinitializer		; <[3000000 x i32]*> [#uses=1]
- at B = weak global [20000 x i32] zeroinitializer		; <[20000 x i32]*> [#uses=1]
- at C = weak global [100 x i32] zeroinitializer		; <[100 x i32]*> [#uses=1]
- at Z = weak global i32 0		; <i32*> [#uses=2]
-
-define i32 @main() {
-entry:
-	tail call void @__main( )
-	br label %loopentry.1
-loopentry.1:		; preds = %loopexit.1, %entry
-	%indvar20 = phi i32 [ 0, %entry ], [ %indvar.next21, %loopexit.1 ]		; <i32> [#uses=1]
-	%a.1 = phi i32* [ getelementptr ([3000000 x i32]* @A, i32 0, i32 0), %entry ], [ %inc.0, %loopexit.1 ]		; <i32*> [#uses=1]
-	br label %no_exit.2
-no_exit.2:		; preds = %loopexit.2, %no_exit.2, %loopentry.1
-	%a.0.4.ph = phi i32* [ %a.1, %loopentry.1 ], [ %inc.0, %loopexit.2 ], [ %a.0.4.ph, %no_exit.2 ]		; <i32*> [#uses=3]
-	%b.1.4.ph = phi i32* [ getelementptr ([20000 x i32]* @B, i32 0, i32 0), %loopentry.1 ], [ %inc.1, %loopexit.2 ], [ %b.1.4.ph, %no_exit.2 ]		; <i32*> [#uses=3]
-	%indvar17 = phi i32 [ 0, %loopentry.1 ], [ %indvar.next18, %loopexit.2 ], [ %indvar17, %no_exit.2 ]		; <i32> [#uses=2]
-	%indvar = phi i32 [ %indvar.next, %no_exit.2 ], [ 0, %loopexit.2 ], [ 0, %loopentry.1 ]		; <i32> [#uses=5]
-	%b.1.4.rec = bitcast i32 %indvar to i32		; <i32> [#uses=1]
-	%gep.upgrd.1 = zext i32 %indvar to i64		; <i64> [#uses=1]
-	%c.2.4 = getelementptr [100 x i32]* @C, i32 0, i64 %gep.upgrd.1		; <i32*> [#uses=1]
-	%gep.upgrd.2 = zext i32 %indvar to i64		; <i64> [#uses=1]
-	%a.0.4 = getelementptr i32* %a.0.4.ph, i64 %gep.upgrd.2		; <i32*> [#uses=1]
-	%gep.upgrd.3 = zext i32 %indvar to i64		; <i64> [#uses=1]
-	%b.1.4 = getelementptr i32* %b.1.4.ph, i64 %gep.upgrd.3		; <i32*> [#uses=1]
-	%inc.0.rec = add i32 %b.1.4.rec, 1		; <i32> [#uses=2]
-	%inc.0 = getelementptr i32* %a.0.4.ph, i32 %inc.0.rec		; <i32*> [#uses=2]
-	%tmp.13 = load i32* %a.0.4		; <i32> [#uses=1]
-	%inc.1 = getelementptr i32* %b.1.4.ph, i32 %inc.0.rec		; <i32*> [#uses=1]
-	%tmp.15 = load i32* %b.1.4		; <i32> [#uses=1]
-	%tmp.18 = load i32* %c.2.4		; <i32> [#uses=1]
-	%tmp.16 = mul i32 %tmp.15, %tmp.13		; <i32> [#uses=1]
-	%tmp.19 = mul i32 %tmp.16, %tmp.18		; <i32> [#uses=1]
-	%tmp.20 = load i32* @Z		; <i32> [#uses=1]
-	%tmp.21 = add i32 %tmp.19, %tmp.20		; <i32> [#uses=1]
-	store i32 %tmp.21, i32* @Z
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, 100		; <i1> [#uses=1]
-	br i1 %exitcond, label %loopexit.2, label %no_exit.2
-loopexit.2:		; preds = %no_exit.2
-	%indvar.next18 = add i32 %indvar17, 1		; <i32> [#uses=2]
-	%exitcond19 = icmp eq i32 %indvar.next18, 200		; <i1> [#uses=1]
-	br i1 %exitcond19, label %loopexit.1, label %no_exit.2
-loopexit.1:		; preds = %loopexit.2
-	%indvar.next21 = add i32 %indvar20, 1		; <i32> [#uses=2]
-	%exitcond22 = icmp eq i32 %indvar.next21, 300		; <i1> [#uses=1]
-	br i1 %exitcond22, label %return, label %loopentry.1
-return:		; preds = %loopexit.1
-	ret i32 undef
-}
-
-declare void @__main()
diff --git a/libclamav/c++/llvm/test/Transforms/LoopSimplify/single-backedge.ll b/libclamav/c++/llvm/test/Transforms/LoopSimplify/single-backedge.ll
deleted file mode 100644
index 8391048..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopSimplify/single-backedge.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; The loop canonicalization pass should guarantee that there is one backedge 
-; for all loops.  This allows the -indvars pass to recognize the %IV 
-; induction variable in this testcase.
-
-; RUN: llvm-as < %s | opt -indvars | llvm-dis | grep indvar
-
-define i32 @test(i1 %C) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %BE2, %BE1, %0
-	%IV = phi i32 [ 1, %0 ], [ %IV2, %BE1 ], [ %IV2, %BE2 ]		; <i32> [#uses=2]
-	store i32 %IV, i32* null
-	%IV2 = add i32 %IV, 2		; <i32> [#uses=2]
-	br i1 %C, label %BE1, label %BE2
-BE1:		; preds = %Loop
-	br label %Loop
-BE2:		; preds = %Loop
-	br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-08-15-AddRecIV.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-08-15-AddRecIV.ll
deleted file mode 100644
index 75574c0..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-08-15-AddRecIV.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-
-define void @try_swap() {
-entry:
-	br i1 false, label %cond_continue.0.i, label %cond_false.0.i
-cond_false.0.i:		; preds = %entry
-	ret void
-cond_continue.0.i:		; preds = %entry
-	br i1 false, label %cond_continue.1.i, label %cond_false.1.i
-cond_false.1.i:		; preds = %cond_continue.0.i
-	ret void
-cond_continue.1.i:		; preds = %cond_continue.0.i
-	br i1 false, label %endif.3.i, label %else.0.i
-endif.3.i:		; preds = %cond_continue.1.i
-	br i1 false, label %my_irand.exit82, label %endif.0.i62
-else.0.i:		; preds = %cond_continue.1.i
-	ret void
-endif.0.i62:		; preds = %endif.3.i
-	ret void
-my_irand.exit82:		; preds = %endif.3.i
-	br i1 false, label %else.2, label %then.4
-then.4:		; preds = %my_irand.exit82
-	ret void
-else.2:		; preds = %my_irand.exit82
-	br i1 false, label %find_affected_nets.exit, label %loopentry.1.i107.outer.preheader
-loopentry.1.i107.outer.preheader:		; preds = %else.2
-	ret void
-find_affected_nets.exit:		; preds = %else.2
-	br i1 false, label %save_region_occ.exit, label %loopentry.1
-save_region_occ.exit:		; preds = %find_affected_nets.exit
-	br i1 false, label %no_exit.1.preheader, label %loopexit.1
-loopentry.1:		; preds = %find_affected_nets.exit
-	ret void
-no_exit.1.preheader:		; preds = %save_region_occ.exit
-	ret void
-loopexit.1:		; preds = %save_region_occ.exit
-	br i1 false, label %then.10, label %loopentry.3
-then.10:		; preds = %loopexit.1
-	ret void
-loopentry.3:		; preds = %endif.16, %loopexit.1
-	%indvar342 = phi i32 [ %indvar.next343, %endif.16 ], [ 0, %loopexit.1 ]		; <i32> [#uses=2]
-	br i1 false, label %loopexit.3, label %endif.16
-endif.16:		; preds = %loopentry.3
-	%indvar.next343 = add i32 %indvar342, 1		; <i32> [#uses=1]
-	br label %loopentry.3
-loopexit.3:		; preds = %loopentry.3
-	br label %loopentry.4
-loopentry.4:		; preds = %loopentry.4, %loopexit.3
-	%indvar340 = phi i32 [ 0, %loopexit.3 ], [ %indvar.next341, %loopentry.4 ]		; <i32> [#uses=2]
-	%tmp. = add i32 %indvar340, %indvar342		; <i32> [#uses=1]
-	%tmp.526 = load i32** null		; <i32*> [#uses=1]
-	%gep.upgrd.1 = zext i32 %tmp. to i64		; <i64> [#uses=1]
-	%tmp.528 = getelementptr i32* %tmp.526, i64 %gep.upgrd.1		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp.528
-	%indvar.next341 = add i32 %indvar340, 1		; <i32> [#uses=1]
-	br label %loopentry.4
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-08-17-OutOfLoopVariant.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-08-17-OutOfLoopVariant.ll
deleted file mode 100644
index 83d4696..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-08-17-OutOfLoopVariant.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-
-define i32 @image_to_texture(i32 %indvar454) {
-loopentry.1.outer:
-	%j.2.1.ph = bitcast i32 %indvar454 to i32		; <i32> [#uses=1]
-	br label %loopentry.1
-loopentry.1:		; preds = %loopentry.1, %loopentry.1.outer
-	%i.3 = phi i32 [ 0, %loopentry.1.outer ], [ %i.3.be, %loopentry.1 ]		; <i32> [#uses=2]
-	%tmp.390 = load i32* null		; <i32> [#uses=1]
-	%tmp.392 = mul i32 %tmp.390, %j.2.1.ph		; <i32> [#uses=1]
-	%tmp.394 = add i32 %tmp.392, %i.3		; <i32> [#uses=1]
-	%i.3.be = add i32 %i.3, 1		; <i32> [#uses=1]
-	br i1 false, label %loopentry.1, label %label.6
-label.6:		; preds = %loopentry.1
-	ret i32 %tmp.394
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-09-12-UsesOutOutsideOfLoop.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-09-12-UsesOutOutsideOfLoop.ll
deleted file mode 100644
index 145551b..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2005-09-12-UsesOutOutsideOfLoop.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-
-define void @main() {
-entry:
-	br label %loopentry.0
-loopentry.0:		; preds = %then.5, %entry
-	%arg_index.1.ph = phi i32 [ 1, %entry ], [ %arg_index.1.ph.be, %then.5 ]		; <i32> [#uses=1]
-	br i1 false, label %no_exit.0, label %loopexit.0
-no_exit.0:		; preds = %loopentry.0
-	%arg_index.1.1 = add i32 0, %arg_index.1.ph		; <i32> [#uses=2]
-	br i1 false, label %then.i55, label %endif.i61
-then.i55:		; preds = %no_exit.0
-	br i1 false, label %then.4, label %else.1
-endif.i61:		; preds = %no_exit.0
-	ret void
-then.4:		; preds = %then.i55
-	%tmp.19993 = add i32 %arg_index.1.1, 2		; <i32> [#uses=0]
-	ret void
-else.1:		; preds = %then.i55
-	br i1 false, label %then.i86, label %loopexit.i97
-then.i86:		; preds = %else.1
-	ret void
-loopexit.i97:		; preds = %else.1
-	br i1 false, label %then.5, label %else.2
-then.5:		; preds = %loopexit.i97
-	%arg_index.1.ph.be = add i32 %arg_index.1.1, 2		; <i32> [#uses=1]
-	br label %loopentry.0
-else.2:		; preds = %loopexit.i97
-	ret void
-loopexit.0:		; preds = %loopentry.0
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2007-04-23-UseIterator.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2007-04-23-UseIterator.ll
deleted file mode 100644
index 2d2dade..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2007-04-23-UseIterator.ll
+++ /dev/null
@@ -1,71 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-
-target triple = "i686-apple-darwin9"
-
-define i8* @foo( i8* %ABC) {
-entry:
-	switch i8 0, label %bb129 [
-		 i8 0, label %UnifiedReturnBlock
-		 i8 9, label %UnifiedReturnBlock
-		 i8 32, label %UnifiedReturnBlock
-		 i8 35, label %UnifiedReturnBlock
-		 i8 37, label %bb16.preheader
-	]
-
-bb16.preheader:		; preds = %entry
-	br label %bb16
-
-bb16:		; preds = %cond_next102, %bb16.preheader
-	%indvar = phi i32 [ %indvar.next, %cond_next102 ], [ 0, %bb16.preheader ]		; <i32> [#uses=2]
-	%ABC.2146.0.rec = mul i32 %indvar, 3		; <i32> [#uses=1]
-	br i1 false, label %UnifiedReturnBlock.loopexit, label %cond_next102
-
-cond_next102:		; preds = %bb16
-	%tmp138145.rec = add i32 %ABC.2146.0.rec, 3		; <i32> [#uses=1]
-	%tmp138145 = getelementptr i8* %ABC, i32 %tmp138145.rec		; <i8*> [#uses=4]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=1]
-	switch i8 0, label %bb129.loopexit [
-		 i8 0, label %UnifiedReturnBlock.loopexit
-		 i8 9, label %UnifiedReturnBlock.loopexit
-		 i8 32, label %UnifiedReturnBlock.loopexit
-		 i8 35, label %UnifiedReturnBlock.loopexit
-		 i8 37, label %bb16
-	]
-
-bb129.loopexit:		; preds = %cond_next102
-	br label %bb129
-
-bb129:		; preds = %bb129.loopexit, %entry
-	ret i8* null
-
-UnifiedReturnBlock.loopexit:		; preds = %cond_next102, %cond_next102, %cond_next102, %cond_next102, %bb16
-	%UnifiedRetVal.ph = phi i8* [ %tmp138145, %cond_next102 ], [ %tmp138145, %cond_next102 ], [ %tmp138145, %cond_next102 ], [ %tmp138145, %cond_next102 ], [ null, %bb16 ]		; <i8*> [#uses=0]
-	br label %UnifiedReturnBlock
-
-UnifiedReturnBlock:		; preds = %UnifiedReturnBlock.loopexit, %entry, %entry, %entry, %entry
-	ret i8* null
-}
-
-define i8* @bar() {
-entry:
-	switch i8 0, label %bb158 [
-		 i8 37, label %bb74
-		 i8 58, label %cond_true
-		 i8 64, label %bb11
-	]
-
-bb11:		; preds = %entry
-	ret i8* null
-
-cond_true:		; preds = %entry
-	ret i8* null
-
-bb74:		; preds = %entry
-	ret i8* null
-
-bb158:		; preds = %entry
-	ret i8* null
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll
deleted file mode 100644
index be95d4d..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep ugt
-; PR2535
-
- at .str = internal constant [4 x i8] c"%d\0A\00"
-
-declare i32 @printf(i8* noalias , ...) nounwind
-
-define i32 @main() nounwind {
-entry:
-        br label %forbody
-
-forbody:
-        %i.0 = phi i32 [ 0, %entry ], [ %inc, %forbody ]                ; <i32>[#uses=3]
-        %sub14 = sub i32 1027, %i.0             ; <i32> [#uses=1]
-        %mul15 = mul i32 %sub14, 10             ; <i32> [#uses=1]
-        %add166 = or i32 %mul15, 1              ; <i32> [#uses=1] *
-        call i32 (i8*, ...)* @printf( i8* noalias  getelementptr ([4 x i8]* @.str, i32 0, i32 0), i32 %add166 ) nounwind
-        %inc = add i32 %i.0, 1          ; <i32> [#uses=3]
-        %cmp = icmp ult i32 %inc, 1027          ; <i1> [#uses=1]
-        br i1 %cmp, label %forbody, label %afterfor
-
-afterfor:               ; preds = %forcond
-        ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-13-CmpStride.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-13-CmpStride.ll
deleted file mode 100644
index fbd3c1e..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-13-CmpStride.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep add | count 2
-; PR 2662
- at g_3 = common global i16 0		; <i16*> [#uses=2]
-@"\01LC" = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
-
-define void @func_1() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%l_2.0.reg2mem.0 = phi i16 [ 0, %entry ], [ %t1, %bb ]		; <i16> [#uses=2]
-	%t0 = shl i16 %l_2.0.reg2mem.0, 1		; <i16>:0 [#uses=1]
-	volatile store i16 %t0, i16* @g_3, align 2
-	%t1 = add i16 %l_2.0.reg2mem.0, -3		; <i16>:1 [#uses=2]
-	%t2 = icmp slt i16 %t1, 1		; <i1>:2 [#uses=1]
-	br i1 %t2, label %bb, label %return
-
-return:		; preds = %bb
-	ret void
-}
-
-define i32 @main() nounwind {
-entry:
-	tail call void @func_1( ) nounwind
-	volatile load i16* @g_3, align 2		; <i16>:0 [#uses=1]
-	zext i16 %0 to i32		; <i32>:1 [#uses=1]
-	tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), i32 %1 ) nounwind		; <i32>:2 [#uses=0]
-	ret i32 0
-}
-
-declare i32 @printf(i8*, ...) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-14-ShadowIV.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-14-ShadowIV.ll
deleted file mode 100644
index 2377589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-08-14-ShadowIV.ll
+++ /dev/null
@@ -1,99 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep "phi double" | count 1
-
-define void @foobar(i32 %n) nounwind {
-entry:
-	icmp eq i32 %n, 0		; <i1>:0 [#uses=2]
-	br i1 %0, label %return, label %bb.nph
-
-bb.nph:		; preds = %entry
-	%umax = select i1 %0, i32 1, i32 %n		; <i32> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %bb.nph
-	%i.03 = phi i32 [ 0, %bb.nph ], [ %indvar.next, %bb ]		; <i32> [#uses=3]
-	tail call void @bar( i32 %i.03 ) nounwind
-	uitofp i32 %i.03 to double		; <double>:1 [#uses=1]
-	tail call void @foo( double %1 ) nounwind
-	%indvar.next = add i32 %i.03, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, %umax		; <i1> [#uses=1]
-	br i1 %exitcond, label %return, label %bb
-
-return:		; preds = %bb, %entry
-	ret void
-}
-
-; Unable to eliminate cast because the mantissa bits for double are not enough
-; to hold all of i64 IV bits.
-define void @foobar2(i64 %n) nounwind {
-entry:
-	icmp eq i64 %n, 0		; <i1>:0 [#uses=2]
-	br i1 %0, label %return, label %bb.nph
-
-bb.nph:		; preds = %entry
-	%umax = select i1 %0, i64 1, i64 %n		; <i64> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb, %bb.nph
-	%i.03 = phi i64 [ 0, %bb.nph ], [ %indvar.next, %bb ]		; <i64> [#uses=3]
-	trunc i64 %i.03 to i32		; <i32>:1 [#uses=1]
-	tail call void @bar( i32 %1 ) nounwind
-	uitofp i64 %i.03 to double		; <double>:2 [#uses=1]
-	tail call void @foo( double %2 ) nounwind
-	%indvar.next = add i64 %i.03, 1		; <i64> [#uses=2]
-	%exitcond = icmp eq i64 %indvar.next, %umax		; <i1> [#uses=1]
-	br i1 %exitcond, label %return, label %bb
-
-return:		; preds = %bb, %entry
-	ret void
-}
-
-; Unable to eliminate cast due to potentional overflow.
-define void @foobar3() nounwind {
-entry:
-	tail call i32 (...)* @nn( ) nounwind		; <i32>:0 [#uses=1]
-	icmp eq i32 %0, 0		; <i1>:1 [#uses=1]
-	br i1 %1, label %return, label %bb
-
-bb:		; preds = %bb, %entry
-	%i.03 = phi i32 [ 0, %entry ], [ %3, %bb ]		; <i32> [#uses=3]
-	tail call void @bar( i32 %i.03 ) nounwind
-	uitofp i32 %i.03 to double		; <double>:2 [#uses=1]
-	tail call void @foo( double %2 ) nounwind
-	add i32 %i.03, 1		; <i32>:3 [#uses=2]
-	tail call i32 (...)* @nn( ) nounwind		; <i32>:4 [#uses=1]
-	icmp ugt i32 %4, %3		; <i1>:5 [#uses=1]
-	br i1 %5, label %bb, label %return
-
-return:		; preds = %bb, %entry
-	ret void
-}
-
-; Unable to eliminate cast due to overflow.
-define void @foobar4() nounwind {
-entry:
-	br label %bb.nph
-
-bb.nph:		; preds = %entry
-	br label %bb
-
-bb:		; preds = %bb, %bb.nph
-	%i.03 = phi i8 [ 0, %bb.nph ], [ %indvar.next, %bb ]		; <i32> [#uses=3]
-	%tmp2 = sext i8 %i.03 to i32		; <i32>:0 [#uses=1]
-	tail call void @bar( i32 %tmp2 ) nounwind
-	%tmp3 = uitofp i8 %i.03 to double		; <double>:1 [#uses=1]
-	tail call void @foo( double %tmp3 ) nounwind
-	%indvar.next = add i8 %i.03, 1		; <i32> [#uses=2]
-        %tmp = sext i8 %indvar.next to i32
-	%exitcond = icmp eq i32 %tmp, 32767		; <i1> [#uses=1]
-	br i1 %exitcond, label %return, label %bb
-
-return:		; preds = %bb, %entry
-	ret void
-}
-
-declare void @bar(i32)
-
-declare void @foo(double)
-
-declare i32 @nn(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-09-09-Overflow.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-09-09-Overflow.ll
deleted file mode 100644
index 703aebe..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2008-09-09-Overflow.ll
+++ /dev/null
@@ -1,48 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep phi | count 2
-; PR 2779
- at g_19 = common global i32 0		; <i32*> [#uses=3]
-@"\01LC" = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
-
-define i32 @func_8(i8 zeroext %p_9) nounwind {
-entry:
-	ret i32 1
-}
-
-define i32 @func_3(i8 signext %p_5) nounwind {
-entry:
-	ret i32 1
-}
-
-define void @func_1() nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb, %entry
-	%indvar = phi i16 [ 0, %entry ], [ %indvar.next, %bb ]		; <i16> [#uses=2]
-	%tmp = sub i16 0, %indvar		; <i16> [#uses=1]
-	%tmp27 = trunc i16 %tmp to i8		; <i8> [#uses=1]
-	load i32* @g_19, align 4		; <i32>:0 [#uses=2]
-	add i32 %0, 1		; <i32>:1 [#uses=1]
-	store i32 %1, i32* @g_19, align 4
-	trunc i32 %0 to i8		; <i8>:2 [#uses=1]
-	tail call i32 @func_8( i8 zeroext %2 ) nounwind		; <i32>:3 [#uses=0]
-	shl i8 %tmp27, 2		; <i8>:4 [#uses=1]
-	add i8 %4, -112		; <i8>:5 [#uses=1]
-	tail call i32 @func_3( i8 signext %5 ) nounwind		; <i32>:6 [#uses=0]
-	%indvar.next = add i16 %indvar, 1		; <i16> [#uses=2]
-	%exitcond = icmp eq i16 %indvar.next, -28		; <i1> [#uses=1]
-	br i1 %exitcond, label %return, label %bb
-
-return:		; preds = %bb
-	ret void
-}
-
-define i32 @main() nounwind {
-entry:
-	tail call void @func_1( ) nounwind
-	load i32* @g_19, align 4		; <i32>:0 [#uses=1]
-	tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), i32 %0 ) nounwind		; <i32>:1 [#uses=0]
-	ret i32 0
-}
-
-declare i32 @printf(i8*, ...) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-01-13-nonconstant-stride-outside-loop.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-01-13-nonconstant-stride-outside-loop.ll
deleted file mode 100644
index a707285..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-01-13-nonconstant-stride-outside-loop.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep phi | count 1
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep mul | count 1
-; ModuleID = '<stdin>'
-; Make sure examining a fuller expression outside the loop doesn't cause us to create a second
-; IV of stride %3.
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.5"
-	%struct.anon = type { %struct.obj*, %struct.obj* }
-	%struct.obj = type { i16, i16, { %struct.anon } }
- at heap_size = external global i32		; <i32*> [#uses=1]
-@"\01LC85" = external constant [39 x i8]		; <[39 x i8]*> [#uses=1]
-
-declare i32 @sprintf(i8*, i8*, ...) nounwind
-
-define %struct.obj* @gc_status(%struct.obj* %args) nounwind {
-entry:
-	br label %bb1.i
-
-bb.i2:		; preds = %bb2.i3
-	%indvar.next24 = add i32 %m.0.i, 1		; <i32> [#uses=1]
-	br label %bb1.i
-
-bb1.i:		; preds = %bb.i2, %entry
-	%m.0.i = phi i32 [ 0, %entry ], [ %indvar.next24, %bb.i2 ]		; <i32> [#uses=4]
-	%0 = icmp slt i32 %m.0.i, 0		; <i1> [#uses=1]
-	br i1 %0, label %bb2.i3, label %nactive_heaps.exit
-
-bb2.i3:		; preds = %bb1.i
-	%1 = load %struct.obj** null, align 4		; <%struct.obj*> [#uses=1]
-	%2 = icmp eq %struct.obj* %1, null		; <i1> [#uses=1]
-	br i1 %2, label %nactive_heaps.exit, label %bb.i2
-
-nactive_heaps.exit:		; preds = %bb2.i3, %bb1.i
-	%3 = load i32* @heap_size, align 4		; <i32> [#uses=1]
-	%4 = mul i32 %3, %m.0.i		; <i32> [#uses=1]
-	%5 = sub i32 %4, 0		; <i32> [#uses=1]
-	%6 = tail call i32 (i8*, i8*, ...)* @sprintf(i8* null, i8* getelementptr ([39 x i8]* @"\01LC85", i32 0, i32 0), i32 %m.0.i, i32 0, i32 %5, i32 0) nounwind		; <i32> [#uses=0]
-	ret %struct.obj* null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-02-09-ivs-different-sizes.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-02-09-ivs-different-sizes.ll
deleted file mode 100644
index 0235fa8..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-02-09-ivs-different-sizes.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | llc
-; This used to crash.
-; ModuleID = 'bugpoint-reduced-simplified.bc'
-target datalayout ="e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-unknown-linux-gnu"
-
-define void @parse_number(i8* nocapture %p) nounwind {
-entry:
-        %shift.0 = select i1 false, i32 4, i32 2                ; <i32> [#uses=1]
-        br label %bb47
-
-bb47:           ; preds = %bb47, %entry
-        br i1 false, label %bb54, label %bb47
-
-bb54:           ; preds = %bb47
-        br i1 false, label %bb56, label %bb66
-
-bb56:           ; preds = %bb62, %bb54
-        %p_addr.0.pn.rec = phi i64 [ %p_addr.6.rec, %bb62 ], [ 0, %bb54 ]             ; <i64> [#uses=2]
-        %ch.6.in.in = phi i8* [ %p_addr.6, %bb62 ], [ null, %bb54 ]           ; <i8*> [#uses=0]
-        %indvar202 = trunc i64 %p_addr.0.pn.rec to i32          ; <i32>[#uses=1]
-        %frac_bits.0 = mul i32 %indvar202, %shift.0             ; <i32>[#uses=1]
-        %p_addr.6.rec = add i64 %p_addr.0.pn.rec, 1             ; <i64>[#uses=2]
-        %p_addr.6 = getelementptr i8* null, i64 %p_addr.6.rec           ; <i8*>[#uses=1]
-        br i1 false, label %bb66, label %bb62
-
-bb62:           ; preds = %bb56
-        br label %bb56
-
-bb66:           ; preds = %bb56, %bb54
-        %frac_bits.1 = phi i32 [ 0, %bb54 ], [ %frac_bits.0, %bb56 ]           ; <i32> [#uses=0]
-        unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-04-28-no-reduce-mul.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-04-28-no-reduce-mul.ll
deleted file mode 100644
index e1c9642..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/2009-04-28-no-reduce-mul.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis \
-; RUN:   | grep {getelementptr.*%lsr.iv.*%lsr.iv.*<i32\\*>}
-; The multiply in bb2 must not be reduced to an add, as the sext causes the
-; %1 argument to become negative after a while.
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
- at table = common global [32 x [256 x i32]] zeroinitializer, align 32		; <[32 x [256 x i32]]*> [#uses=2]
-
-define i32 @main() nounwind {
-bb4.thread:
-	br label %bb2
-
-bb2:		; preds = %bb4, %bb2, %bb4.thread
-	%i.0.reg2mem.0.ph = phi i32 [ 0, %bb4.thread ], [ %i.0.reg2mem.0.ph, %bb2 ], [ %indvar.next9, %bb4 ]		; <i32> [#uses=4]
-	%j.0.reg2mem.0 = phi i32 [ 0, %bb4.thread ], [ %indvar.next, %bb2 ], [ 0, %bb4 ]		; <i32> [#uses=3]
-	%0 = trunc i32 %j.0.reg2mem.0 to i8		; <i8> [#uses=1]
-	%1 = sext i8 %0 to i32		; <i32> [#uses=1]
-	%2 = mul i32 %1, %i.0.reg2mem.0.ph		; <i32> [#uses=1]
-	%3 = getelementptr [32 x [256 x i32]]* @table, i32 0, i32 %i.0.reg2mem.0.ph, i32 %j.0.reg2mem.0		; <i32*> [#uses=1]
-	store i32 %2, i32* %3, align 4
-	%indvar.next = add i32 %j.0.reg2mem.0, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, 256		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb4, label %bb2
-
-bb4:		; preds = %bb2
-	%indvar.next9 = add i32 %i.0.reg2mem.0.ph, 1		; <i32> [#uses=2]
-	%exitcond10 = icmp eq i32 %indvar.next9, 32		; <i1> [#uses=1]
-	br i1 %exitcond10, label %bb5, label %bb2
-
-bb5:		; preds = %bb4
-	%4 = load i32* getelementptr ([32 x [256 x i32]]* @table, i32 0, i32 9, i32 132), align 16		; <i32> [#uses=1]
-	%5 = icmp eq i32 %4, -1116		; <i1> [#uses=1]
-	br i1 %5, label %bb7, label %bb6
-
-bb6:		; preds = %bb5
-	tail call void @abort() noreturn nounwind
-	unreachable
-
-bb7:		; preds = %bb5
-	ret i32 0
-}
-
-declare void @abort() noreturn nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll
deleted file mode 100644
index 33b0522..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | llc --x86-asm-syntax=att | grep {cmpl	\$4}
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin9"
-
-; This is like change-compare-stride-trickiness-1.ll except the comparison
-; happens before the relevant use, so the comparison stride can't be
-; easily changed.
-
-define void @foo() {
-entry:
-	br label %loop
-
-loop:
-	%indvar = phi i32 [ 0, %entry ], [ %i.2.0.us1534, %loop ]		; <i32> [#uses=1]
-	%i.2.0.us1534 = add i32 %indvar, 1		; <i32> [#uses=3]
-	%tmp611.us1535 = icmp eq i32 %i.2.0.us1534, 4		; <i1> [#uses=2]
-	%tmp623.us1538 = select i1 %tmp611.us1535, i32 6, i32 0		; <i32> [#uses=0]
-	%tmp628.us1540 = shl i32 %i.2.0.us1534, 1		; <i32> [#uses=1]
-	%tmp645646647.us1547 = sext i32 %tmp628.us1540 to i64		; <i64> [#uses=0]
-	br i1 %tmp611.us1535, label %exit, label %loop
-
-exit:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll
deleted file mode 100644
index cb2f3aa..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | llc --x86-asm-syntax=att | grep {cmpq	\$8}
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin9"
-
-; This is like change-compare-stride-trickiness-0.ll except the comparison
-; happens after the relevant use, so the comparison stride can be
-; easily changed.
-
-define void @foo() nounwind {
-entry:
-	br label %loop
-
-loop:
-	%indvar = phi i32 [ 0, %entry ], [ %i.2.0.us1534, %loop ]		; <i32> [#uses=1]
-	%i.2.0.us1534 = add i32 %indvar, 1		; <i32> [#uses=3]
-	%tmp628.us1540 = shl i32 %i.2.0.us1534, 1		; <i32> [#uses=1]
-	%tmp645646647.us1547 = sext i32 %tmp628.us1540 to i64		; <i64> [#uses=1]
-	store i64 %tmp645646647.us1547, i64* null
-	%tmp611.us1535 = icmp eq i32 %i.2.0.us1534, 4		; <i1> [#uses=2]
-	%tmp623.us1538 = select i1 %tmp611.us1535, i32 6, i32 0		; <i32> [#uses=1]
-	store i32 %tmp623.us1538, i32* null
-	br i1 %tmp611.us1535, label %exit, label %loop
-
-exit:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-2.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-2.ll
deleted file mode 100644
index f77aea3..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-2.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llvm-as < %s | llc
-; PR4222
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "x86_64-pc-linux-gnu"
-module asm ".ident\09\22$FreeBSD: head/sys/amd64/amd64/minidump_machdep.c 184499 2008-10-31 10:11:35Z kib $\22"
-	%struct.dumperinfo = type <{ i32 (i8*, i8*, i64, i64, i64)*, i8*, i32, i32, i64, i64 }>
-
-define void @minidumpsys(%struct.dumperinfo* %di) nounwind {
-entry:
-	br label %if.end
-
-if.end:		; preds = %if.end52, %entry
-	br label %for.cond.i.preheader
-
-for.cond.i.preheader:		; preds = %if.end52, %if.end
-	%indvar688 = phi i64 [ 0, %if.end ], [ %indvar.next689, %if.end52 ]		; <i64> [#uses=3]
-	%tmp690 = shl i64 %indvar688, 12		; <i64> [#uses=1]
-	%pa.0642 = add i64 %tmp690, 0		; <i64> [#uses=1]
-	%indvar688703 = trunc i64 %indvar688 to i32		; <i32> [#uses=1]
-	%tmp692693 = add i32 %indvar688703, 1		; <i32> [#uses=1]
-	%phitmp = sext i32 %tmp692693 to i64		; <i64> [#uses=1]
-	br i1 false, label %if.end52, label %land.lhs.true.i
-
-land.lhs.true.i:		; preds = %for.cond.i.preheader
-	%shr2.i = lshr i64 %pa.0642, 18		; <i64> [#uses=0]
-	unreachable
-
-if.end52:		; preds = %for.cond.i.preheader
-	%phitmp654 = icmp ult i64 %phitmp, 512		; <i1> [#uses=1]
-	%indvar.next689 = add i64 %indvar688, 1		; <i64> [#uses=1]
-	br i1 %phitmp654, label %for.cond.i.preheader, label %if.end
-}
-
-define void @promote(%struct.dumperinfo* %di) nounwind {
-entry:
-	br label %if.end
-
-if.end:		; preds = %if.end52, %entry
-	br label %for.cond.i.preheader
-
-for.cond.i.preheader:		; preds = %if.end52, %if.end
-	%indvar688 = phi i32 [ 0, %if.end ], [ %indvar.next689, %if.end52 ]		; <i64> [#uses=3]
-	%tmp690 = shl i32 %indvar688, 12		; <i64> [#uses=1]
-	%pa.0642 = add i32 %tmp690, 0		; <i64> [#uses=1]
-	%tmp692693 = add i32 %indvar688, 1		; <i32> [#uses=1]
-	%phitmp = sext i32 %tmp692693 to i64		; <i64> [#uses=1]
-	br i1 false, label %if.end52, label %land.lhs.true.i
-
-land.lhs.true.i:		; preds = %for.cond.i.preheader
-	%shr2.i = lshr i32 %pa.0642, 18		; <i64> [#uses=0]
-	unreachable
-
-if.end52:		; preds = %for.cond.i.preheader
-	%phitmp654 = icmp ult i64 %phitmp, 512		; <i1> [#uses=1]
-	%indvar.next689 = add i32 %indvar688, 1		; <i64> [#uses=1]
-	br i1 %phitmp654, label %for.cond.i.preheader, label %if.end
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dead-phi.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dead-phi.ll
deleted file mode 100644
index a6aafa9..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dead-phi.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep phi | count 1
-
-define void @foo(i32 %n) {
-entry:
-  br label %loop
-
-loop:
-  %i = phi i32 [ 0, %entry ], [ %i.next, %loop ]
-
-  ; These three instructions form an isolated cycle and can be deleted.
-  %j = phi i32 [ 0, %entry ], [ %j.y, %loop ]
-  %j.x = add i32 %j, 1
-  %j.y = mul i32 %j.x, 2
-
-  %i.next = add i32 %i, 1
-  %c = icmp ne i32 %i.next, %n
-  br i1 %c, label %loop, label %exit
-
-exit:
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dg.exp b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/different-type-ivs.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/different-type-ivs.ll
deleted file mode 100644
index e5225da..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/different-type-ivs.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-; Test to make sure that loop-reduce never crashes on IV's 
-; with different types but identical strides.
-
-define void @foo() {
-entry:
-	br label %no_exit
-no_exit:		; preds = %no_exit, %entry
-	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %no_exit ]		; <i32> [#uses=3]
-	%indvar.upgrd.1 = trunc i32 %indvar to i16		; <i16> [#uses=1]
-	%X.0.0 = mul i16 %indvar.upgrd.1, 1234		; <i16> [#uses=1]
-	%tmp. = mul i32 %indvar, 1234		; <i32> [#uses=1]
-	%tmp.5 = sext i16 %X.0.0 to i32		; <i32> [#uses=1]
-	%tmp.3 = call i32 (...)* @bar( i32 %tmp.5, i32 %tmp. )		; <i32> [#uses=0]
-	%tmp.0 = call i1 @pred( )		; <i1> [#uses=1]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=1]
-	br i1 %tmp.0, label %return, label %no_exit
-return:		; preds = %no_exit
-	ret void
-}
-
-declare i1 @pred()
-
-declare i32 @bar(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont-hoist-simple-loop-constants.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont-hoist-simple-loop-constants.ll
deleted file mode 100644
index 5209507..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont-hoist-simple-loop-constants.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | \
-; RUN:   not grep {bitcast i32 1 to i32}
-; END.
-; The setlt wants to use a value that is incremented one more than the dominant
-; IV.  Don't insert the 1 outside the loop, preventing folding it into the add.
-
-define void @test([700 x i32]* %nbeaux_.0__558, i32* %i_.16574) {
-then.0:
-	br label %no_exit.2
-no_exit.2:		; preds = %no_exit.2, %then.0
-	%indvar630 = phi i32 [ 0, %then.0 ], [ %indvar.next631, %no_exit.2 ]		; <i32> [#uses=4]
-	%gep.upgrd.1 = zext i32 %indvar630 to i64		; <i64> [#uses=1]
-	%tmp.38 = getelementptr [700 x i32]* %nbeaux_.0__558, i32 0, i64 %gep.upgrd.1		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp.38
-	%inc.2 = add i32 %indvar630, 2		; <i32> [#uses=2]
-	%tmp.34 = icmp slt i32 %inc.2, 701		; <i1> [#uses=1]
-	%indvar.next631 = add i32 %indvar630, 1		; <i32> [#uses=1]
-	br i1 %tmp.34, label %no_exit.2, label %loopexit.2.loopexit
-loopexit.2.loopexit:		; preds = %no_exit.2
-	store i32 %inc.2, i32* %i_.16574
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_insert_redundant_ops.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_insert_redundant_ops.ll
deleted file mode 100644
index 68eb107..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_insert_redundant_ops.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; Check that this test makes INDVAR and related stuff dead.
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep phi | count 2
-
-declare i1 @pred()
-
-define void @test1({ i32, i32 }* %P) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=3]
-	%gep1 = getelementptr { i32, i32 }* %P, i32 %INDVAR, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %gep1
-	%gep2 = getelementptr { i32, i32 }* %P, i32 %INDVAR, i32 1		; <i32*> [#uses=1]
-	store i32 0, i32* %gep2
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=1]
-	%cond = call i1 @pred( )		; <i1> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
-define void @test2([2 x i32]* %P) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=3]
-	%gep1 = getelementptr [2 x i32]* %P, i32 %INDVAR, i64 0		; <i32*> [#uses=1]
-	store i32 0, i32* %gep1
-	%gep2 = getelementptr [2 x i32]* %P, i32 %INDVAR, i64 1		; <i32*> [#uses=1]
-	store i32 0, i32* %gep2
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=1]
-	%cond = call i1 @pred( )		; <i1> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_reduce_bytes.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_reduce_bytes.ll
deleted file mode 100644
index bfbbecf..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_reduce_bytes.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; Don't reduce the byte access to P[i], at least not on targets that 
-; support an efficient 'mem[r1+r2]' addressing mode.
-
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-
-
-declare i1 @pred(i32)
-
-define void @test(i8* %PTR) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=2]
-	%STRRED = getelementptr i8* %PTR, i32 %INDVAR		; <i8*> [#uses=1]
-	store i8 0, i8* %STRRED
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=2]
-        ;; cannot eliminate indvar
-	%cond = call i1 @pred( i32 %INDVAR2 )		; <i1> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_reverse.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_reverse.ll
deleted file mode 100644
index 39eca6c..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/dont_reverse.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis \
-; RUN:    | grep {icmp eq i2 %lsr.iv.next, %xmp4344}
-
-; Don't reverse the iteration if the rhs of the compare is defined
-; inside the loop.
-
-define void @Fill_Buffer() nounwind {
-entry:
-	br label %bb8
-
-bb8:
-	%indvar34 = phi i32 [ 0, %entry ], [ %indvar.next35, %bb8 ]
-	%indvar3451 = trunc i32 %indvar34 to i2
-	%xmp4344 = xor i2 0, -1
-	%xmp104 = icmp eq i2 %indvar3451, %xmp4344
-	%indvar.next35 = add i32 %indvar34, 1
-	br i1 %xmp104, label %bb10, label %bb8
-
-bb10:
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/exit_compare_live_range.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/exit_compare_live_range.ll
deleted file mode 100644
index d21498b..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/exit_compare_live_range.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; Make sure that the compare instruction occurs after the increment to avoid
-; having overlapping live ranges that result in copies.  We want the setcc 
-; instruction immediately before the conditional branch.
-;
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | \
-; RUN:    %prcontext {br i1} 1 | grep icmp
-
-define void @foo(float* %D, i32 %E) {
-entry:
-	br label %no_exit
-no_exit:		; preds = %no_exit, %entry
-	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %no_exit ]		; <i32> [#uses=1]
-	volatile store float 0.000000e+00, float* %D
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, %E		; <i1> [#uses=1]
-	br i1 %exitcond, label %loopexit, label %no_exit
-loopexit:		; preds = %no_exit
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll
deleted file mode 100644
index 86a1c25..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; Check that the index of 'P[outer]' is pulled out of the loop.
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | \
-; RUN:   not grep {getelementptr.*%outer.*%INDVAR}
-
-declare i1 @pred()
-
-declare i32 @foo()
-
-define void @test([10000 x i32]* %P) {
-; <label>:0
-	%outer = call i32 @foo( )		; <i32> [#uses=1]
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=2]
-	%STRRED = getelementptr [10000 x i32]* %P, i32 %outer, i32 %INDVAR		; <i32*> [#uses=1]
-	store i32 0, i32* %STRRED
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=1]
-	%cond = call i1 @pred( )		; <i1> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll
deleted file mode 100644
index 8e9cbc4..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; Check that the index of 'P[outer]' is pulled out of the loop.
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | \
-; RUN:   not grep {getelementptr.*%outer.*%INDVAR}
-
-declare i1 @pred()
-
-define void @test([10000 x i32]* %P, i32 %outer) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=2]
-	%STRRED = getelementptr [10000 x i32]* %P, i32 %outer, i32 %INDVAR		; <i32*> [#uses=1]
-	store i32 0, i32* %STRRED
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=1]
-	%cond = call i1 @pred( )		; <i1> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/nested-reduce.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/nested-reduce.ll
deleted file mode 100644
index c19e844..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/nested-reduce.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | not grep mul
-
-; Make sure we don't get a multiply by 6 in this loop.
-
-define i32 @foo(i32 %A, i32 %B, i32 %C, i32 %D) {
-entry:
-	%tmp.5 = icmp sgt i32 %C, 0		; <i1> [#uses=1]
-	%tmp.25 = and i32 %A, 1		; <i32> [#uses=1]
-	br label %loopentry.1
-loopentry.1:		; preds = %loopexit.1, %entry
-	%indvar20 = phi i32 [ 0, %entry ], [ %indvar.next21, %loopexit.1 ]		; <i32> [#uses=2]
-	%k.1 = phi i32 [ 0, %entry ], [ %k.1.3, %loopexit.1 ]		; <i32> [#uses=2]
-	br i1 %tmp.5, label %no_exit.1.preheader, label %loopexit.1
-no_exit.1.preheader:		; preds = %loopentry.1
-	%i.0.0 = bitcast i32 %indvar20 to i32		; <i32> [#uses=1]
-	%tmp.9 = mul i32 %i.0.0, 6		; <i32> [#uses=1]
-	br label %no_exit.1.outer
-no_exit.1.outer:		; preds = %cond_true, %no_exit.1.preheader
-	%k.1.2.ph = phi i32 [ %k.1, %no_exit.1.preheader ], [ %k.09, %cond_true ]		; <i32> [#uses=2]
-	%j.1.2.ph = phi i32 [ 0, %no_exit.1.preheader ], [ %inc.1, %cond_true ]		; <i32> [#uses=1]
-	br label %no_exit.1
-no_exit.1:		; preds = %cond_continue, %no_exit.1.outer
-	%indvar.ui = phi i32 [ 0, %no_exit.1.outer ], [ %indvar.next, %cond_continue ]		; <i32> [#uses=2]
-	%indvar = bitcast i32 %indvar.ui to i32		; <i32> [#uses=1]
-	%j.1.2 = add i32 %indvar, %j.1.2.ph		; <i32> [#uses=2]
-	%tmp.11 = add i32 %j.1.2, %tmp.9		; <i32> [#uses=1]
-	%tmp.12 = trunc i32 %tmp.11 to i8		; <i8> [#uses=1]
-	%shift.upgrd.1 = zext i8 %tmp.12 to i32		; <i32> [#uses=1]
-	%tmp.13 = shl i32 %D, %shift.upgrd.1		; <i32> [#uses=2]
-	%tmp.15 = icmp eq i32 %tmp.13, %B		; <i1> [#uses=1]
-	%inc.1 = add i32 %j.1.2, 1		; <i32> [#uses=3]
-	br i1 %tmp.15, label %cond_true, label %cond_continue
-cond_true:		; preds = %no_exit.1
-	%tmp.26 = and i32 %tmp.25, %tmp.13		; <i32> [#uses=1]
-	%k.09 = add i32 %tmp.26, %k.1.2.ph		; <i32> [#uses=2]
-	%tmp.517 = icmp slt i32 %inc.1, %C		; <i1> [#uses=1]
-	br i1 %tmp.517, label %no_exit.1.outer, label %loopexit.1
-cond_continue:		; preds = %no_exit.1
-	%tmp.519 = icmp slt i32 %inc.1, %C		; <i1> [#uses=1]
-	%indvar.next = add i32 %indvar.ui, 1		; <i32> [#uses=1]
-	br i1 %tmp.519, label %no_exit.1, label %loopexit.1
-loopexit.1:		; preds = %cond_continue, %cond_true, %loopentry.1
-	%k.1.3 = phi i32 [ %k.1, %loopentry.1 ], [ %k.09, %cond_true ], [ %k.1.2.ph, %cond_continue ]		; <i32> [#uses=2]
-	%indvar.next21 = add i32 %indvar20, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next21, 4		; <i1> [#uses=1]
-	br i1 %exitcond, label %loopexit.0, label %loopentry.1
-loopexit.0:		; preds = %loopexit.1
-	ret i32 %k.1.3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll
deleted file mode 100644
index 5880dc1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; Check that this test makes INDVAR and related stuff dead, because P[indvar]
-; gets reduced, making INDVAR dead.
-
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | not grep INDVAR
-
-declare i1 @pred()
-
-declare i32 @getidx()
-
-define void @test([10000 x i32]* %P) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=2]
-	%idx = call i32 @getidx( )		; <i32> [#uses=1]
-	%STRRED = getelementptr [10000 x i32]* %P, i32 %INDVAR, i32 %idx		; <i32*> [#uses=1]
-	store i32 0, i32* %STRRED
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=1]
-	%cond = call i1 @pred( )		; <i1> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/phi_node_update_multiple_preds.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/phi_node_update_multiple_preds.ll
deleted file mode 100644
index 64d387a..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/phi_node_update_multiple_preds.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-; LSR should not crash on this.
-
-define fastcc void @loadloop() {
-entry:
-	switch i8 0, label %shortcirc_next [
-		 i8 32, label %loopexit.2
-		 i8 59, label %loopexit.2
-	]
-shortcirc_next:		; preds = %no_exit.2, %entry
-	%indvar37 = phi i32 [ 0, %entry ], [ %indvar.next38, %no_exit.2 ]		; <i32> [#uses=3]
-	%gep.upgrd.1 = zext i32 %indvar37 to i64		; <i64> [#uses=1]
-	%wp.2.4 = getelementptr i8* null, i64 %gep.upgrd.1		; <i8*> [#uses=1]
-	br i1 false, label %loopexit.2, label %no_exit.2
-no_exit.2:		; preds = %shortcirc_next
-	%wp.2.4.rec = bitcast i32 %indvar37 to i32		; <i32> [#uses=1]
-	%inc.1.rec = add i32 %wp.2.4.rec, 1		; <i32> [#uses=1]
-	%inc.1 = getelementptr i8* null, i32 %inc.1.rec		; <i8*> [#uses=2]
-	%indvar.next38 = add i32 %indvar37, 1		; <i32> [#uses=1]
-	switch i8 0, label %shortcirc_next [
-		 i8 32, label %loopexit.2
-		 i8 59, label %loopexit.2
-	]
-loopexit.2:		; preds = %no_exit.2, %no_exit.2, %shortcirc_next, %entry, %entry
-	%wp.2.7 = phi i8* [ null, %entry ], [ null, %entry ], [ %wp.2.4, %shortcirc_next ], [ %inc.1, %no_exit.2 ], [ %inc.1, %no_exit.2 ]		; <i8*> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr2537.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr2537.ll
deleted file mode 100644
index e9be384..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr2537.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-; PR 2537
-
-define void @a() {
-entry:
-        br label %dobody
-
-dobody:         ; preds = %dobody, %entry
-        %y.0 = phi i128 [ 0, %entry ], [ %add, %dobody ]
-        %x.0 = phi i128 [ 0, %entry ], [ %add2, %dobody ]
-        %add = add i128 %y.0, shl (i128 1, i128 64)
-        %add2 = add i128 %x.0, shl (i128 1, i128 48)
-        call void @b( i128 %add )
-        %cmp = icmp ult i128 %add2, shl (i128 1, i128 64)
-        br i1 %cmp, label %dobody, label %afterdo
-
-afterdo:                ; preds = %dobody
-        ret void
-}
-
-declare void @b(i128 %add)
\ No newline at end of file
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr2570.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr2570.ll
deleted file mode 100644
index ce0c3bf..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr2570.ll
+++ /dev/null
@@ -1,287 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep {phi\\>} | count 10
-; PR2570
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
- at g_14 = internal global i32 1		; <i32*> [#uses=1]
- at g_39 = internal global i16 -5		; <i16*> [#uses=2]
- at g_43 = internal global i32 -6		; <i32*> [#uses=3]
- at g_33 = internal global i32 -1269044541		; <i32*> [#uses=1]
- at g_137 = internal global i32 8		; <i32*> [#uses=1]
- at g_82 = internal global i32 -5		; <i32*> [#uses=3]
- at g_91 = internal global i32 1		; <i32*> [#uses=1]
- at g_197 = internal global i32 1		; <i32*> [#uses=4]
- at g_207 = internal global i32 1		; <i32*> [#uses=2]
- at g_222 = internal global i16 4165		; <i16*> [#uses=1]
- at g_247 = internal global i8 -21		; <i8*> [#uses=2]
- at g_260 = internal global i32 1		; <i32*> [#uses=2]
- at g_221 = internal global i16 -17503		; <i16*> [#uses=3]
- at g_267 = internal global i16 1		; <i16*> [#uses=1]
- at llvm.used = appending global [1 x i8*] [ i8* bitcast (i32 (i32, i32, i16, i32, i8, i32)* @func_44 to i8*) ], section "llvm.metadata"		; <[1 x i8*]*> [#uses=0]
-
-define i32 @func_44(i32 %p_45, i32 %p_46, i16 zeroext  %p_48, i32 %p_49, i8 zeroext  %p_50, i32 %p_52) nounwind  {
-entry:
-	tail call i32 @func_116( i8 zeroext  2 ) nounwind 		; <i32>:0 [#uses=0]
-	tail call i32 @func_63( i16 signext  2 ) nounwind 		; <i32>:1 [#uses=1]
-	load i16* @g_39, align 2		; <i16>:2 [#uses=1]
-	tail call i32 @func_63( i16 signext  %2 ) nounwind 		; <i32>:3 [#uses=1]
-	trunc i32 %3 to i16		; <i16>:4 [#uses=1]
-	and i16 %4, 1		; <i16>:5 [#uses=1]
-	trunc i32 %p_52 to i8		; <i8>:6 [#uses=1]
-	trunc i32 %1 to i16		; <i16>:7 [#uses=1]
-	tail call i32 @func_74( i16 zeroext  %5, i8 zeroext  %6, i16 zeroext  %7, i16 zeroext  0 ) nounwind 		; <i32>:8 [#uses=0]
-	tail call i32 @func_124( i32 544824386 ) nounwind 		; <i32>:9 [#uses=0]
-	zext i8 %p_50 to i32		; <i32>:10 [#uses=1]
-	load i32* @g_43, align 4		; <i32>:11 [#uses=1]
-	icmp sle i32 %10, %11		; <i1>:12 [#uses=1]
-	zext i1 %12 to i32		; <i32>:13 [#uses=2]
-	load i8* @g_247, align 1		; <i8>:14 [#uses=1]
-	trunc i32 %p_45 to i16		; <i16>:15 [#uses=1]
-	zext i8 %14 to i16		; <i16>:16 [#uses=1]
-	tail call i32 @func_74( i16 zeroext  %15, i8 zeroext  0, i16 zeroext  %16, i16 zeroext  23618 ) nounwind 		; <i32>:17 [#uses=4]
-	icmp slt i32 %17, 0		; <i1>:18 [#uses=1]
-	br i1 %18, label %bb162, label %bb152
-
-bb152:		; preds = %entry
-	lshr i32 2147483647, %13		; <i32>:19 [#uses=1]
-	icmp slt i32 %19, %17		; <i1>:20 [#uses=1]
-	select i1 %20, i32 0, i32 %13		; <i32>:21 [#uses=1]
-	%.348 = shl i32 %17, %21		; <i32> [#uses=1]
-	br label %bb162
-
-bb162:		; preds = %bb152, %entry
-	%.0346 = phi i32 [ %.348, %bb152 ], [ %17, %entry ]		; <i32> [#uses=1]
-	tail call i32 @func_124( i32 1 ) nounwind 		; <i32>:22 [#uses=1]
-	mul i32 %22, %.0346		; <i32>:23 [#uses=1]
-	icmp slt i32 %p_45, 0		; <i1>:24 [#uses=1]
-	icmp ugt i32 %p_45, 31		; <i1>:25 [#uses=1]
-	%or.cond = or i1 %24, %25		; <i1> [#uses=1]
-	br i1 %or.cond, label %bb172, label %bb168
-
-bb168:		; preds = %bb162
-	lshr i32 2147483647, %p_45		; <i32>:26 [#uses=1]
-	shl i32 1392859848, %p_45		; <i32>:27 [#uses=1]
-	icmp slt i32 %26, 1392859848		; <i1>:28 [#uses=1]
-	%.op355 = add i32 %27, 38978		; <i32> [#uses=1]
-	%phitmp = select i1 %28, i32 1392898826, i32 %.op355		; <i32> [#uses=1]
-	br label %bb172
-
-bb172:		; preds = %bb168, %bb162
-	%.0343 = phi i32 [ %phitmp, %bb168 ], [ 1392898826, %bb162 ]		; <i32> [#uses=2]
-	tail call i32 @func_84( i32 1, i16 zeroext  0, i16 zeroext  8 ) nounwind 		; <i32>:29 [#uses=0]
-	icmp eq i32 %.0343, 0		; <i1>:30 [#uses=1]
-	%.0341 = select i1 %30, i32 1, i32 %.0343		; <i32> [#uses=1]
-	urem i32 %23, %.0341		; <i32>:31 [#uses=1]
-	load i32* @g_137, align 4		; <i32>:32 [#uses=4]
-	icmp slt i32 %32, 0		; <i1>:33 [#uses=1]
-	br i1 %33, label %bb202, label %bb198
-
-bb198:		; preds = %bb172
-	%not. = icmp slt i32 %32, 1073741824		; <i1> [#uses=1]
-	zext i1 %not. to i32		; <i32>:34 [#uses=1]
-	%.351 = shl i32 %32, %34		; <i32> [#uses=1]
-	br label %bb202
-
-bb202:		; preds = %bb198, %bb172
-	%.0335 = phi i32 [ %.351, %bb198 ], [ %32, %bb172 ]		; <i32> [#uses=1]
-	icmp ne i32 %31, %.0335		; <i1>:35 [#uses=1]
-	zext i1 %35 to i32		; <i32>:36 [#uses=1]
-	tail call i32 @func_128( i32 %36 ) nounwind 		; <i32>:37 [#uses=0]
-	icmp eq i32 %p_45, 293685862		; <i1>:38 [#uses=1]
-	br i1 %38, label %bb205, label %bb311
-
-bb205:		; preds = %bb202
-	icmp sgt i32 %p_46, 214		; <i1>:39 [#uses=1]
-	zext i1 %39 to i32		; <i32>:40 [#uses=2]
-	tail call i32 @func_128( i32 %40 ) nounwind 		; <i32>:41 [#uses=0]
-	icmp sgt i32 %p_46, 65532		; <i1>:42 [#uses=1]
-	zext i1 %42 to i16		; <i16>:43 [#uses=1]
-	tail call i32 @func_74( i16 zeroext  23618, i8 zeroext  -29, i16 zeroext  %43, i16 zeroext  1 ) nounwind 		; <i32>:44 [#uses=2]
-	tail call i32 @func_103( i16 zeroext  -869 ) nounwind 		; <i32>:45 [#uses=0]
-	udiv i32 %44, 34162		; <i32>:46 [#uses=1]
-	icmp ult i32 %44, 34162		; <i1>:47 [#uses=1]
-	%.0331 = select i1 %47, i32 1, i32 %46		; <i32> [#uses=1]
-	urem i32 293685862, %.0331		; <i32>:48 [#uses=1]
-	tail call i32 @func_112( i32 %p_52, i16 zeroext  1 ) nounwind 		; <i32>:49 [#uses=0]
-	icmp eq i32 %p_52, 0		; <i1>:50 [#uses=2]
-	br i1 %50, label %bb222, label %bb215
-
-bb215:		; preds = %bb205
-	zext i16 %p_48 to i32		; <i32>:51 [#uses=1]
-	icmp eq i16 %p_48, 0		; <i1>:52 [#uses=1]
-	%.0329 = select i1 %52, i32 1, i32 %51		; <i32> [#uses=1]
-	udiv i32 -1, %.0329		; <i32>:53 [#uses=1]
-	icmp eq i32 %53, 0		; <i1>:54 [#uses=1]
-	br i1 %54, label %bb222, label %bb223
-
-bb222:		; preds = %bb215, %bb205
-	br label %bb223
-
-bb223:		; preds = %bb222, %bb215
-	%iftmp.437.0 = phi i32 [ 0, %bb222 ], [ 1, %bb215 ]		; <i32> [#uses=1]
-	load i32* @g_91, align 4		; <i32>:55 [#uses=3]
-	tail call i32 @func_103( i16 zeroext  4 ) nounwind 		; <i32>:56 [#uses=0]
-	tail call i32 @func_112( i32 0, i16 zeroext  -31374 ) nounwind 		; <i32>:57 [#uses=0]
-	load i32* @g_197, align 4		; <i32>:58 [#uses=1]
-	tail call i32 @func_124( i32 28156 ) nounwind 		; <i32>:59 [#uses=1]
-	load i32* @g_260, align 4		; <i32>:60 [#uses=1]
-	load i32* @g_43, align 4		; <i32>:61 [#uses=1]
-	xor i32 %61, %60		; <i32>:62 [#uses=1]
-	mul i32 %62, %59		; <i32>:63 [#uses=1]
-	trunc i32 %63 to i8		; <i8>:64 [#uses=1]
-	trunc i32 %58 to i16		; <i16>:65 [#uses=1]
-	tail call i32 @func_74( i16 zeroext  0, i8 zeroext  %64, i16 zeroext  %65, i16 zeroext  0 ) nounwind 		; <i32>:66 [#uses=2]
-	icmp slt i32 %66, 0		; <i1>:67 [#uses=1]
-	icmp slt i32 %55, 0		; <i1>:68 [#uses=1]
-	icmp ugt i32 %55, 31		; <i1>:69 [#uses=1]
-	or i1 %68, %69		; <i1>:70 [#uses=1]
-	%or.cond352 = or i1 %70, %67		; <i1> [#uses=1]
-	select i1 %or.cond352, i32 0, i32 %55		; <i32>:71 [#uses=1]
-	%.353 = ashr i32 %66, %71		; <i32> [#uses=2]
-	load i16* @g_221, align 2		; <i16>:72 [#uses=1]
-	zext i16 %72 to i32		; <i32>:73 [#uses=1]
-	icmp ugt i32 %.353, 31		; <i1>:74 [#uses=1]
-	select i1 %74, i32 0, i32 %.353		; <i32>:75 [#uses=1]
-	%.0323 = lshr i32 %73, %75		; <i32> [#uses=1]
-	add i32 %.0323, %iftmp.437.0		; <i32>:76 [#uses=1]
-	and i32 %48, 255		; <i32>:77 [#uses=2]
-	add i32 %77, 2042556439		; <i32>:78 [#uses=1]
-	load i32* @g_207, align 4		; <i32>:79 [#uses=2]
-	icmp ugt i32 %79, 31		; <i1>:80 [#uses=1]
-	select i1 %80, i32 0, i32 %79		; <i32>:81 [#uses=1]
-	%.0320 = lshr i32 %77, %81		; <i32> [#uses=1]
-	icmp ne i32 %78, %.0320		; <i1>:82 [#uses=1]
-	zext i1 %82 to i8		; <i8>:83 [#uses=1]
-	tail call i32 @func_25( i8 zeroext  %83 ) nounwind 		; <i32>:84 [#uses=1]
-	xor i32 %84, 1		; <i32>:85 [#uses=1]
-	load i32* @g_197, align 4		; <i32>:86 [#uses=1]
-	add i32 %86, 1		; <i32>:87 [#uses=1]
-	add i32 %87, %85		; <i32>:88 [#uses=1]
-	icmp ugt i32 %76, %88		; <i1>:89 [#uses=1]
-	br i1 %89, label %bb241, label %bb311
-
-bb241:		; preds = %bb223
-	store i16 -9, i16* @g_221, align 2
-	udiv i32 %p_52, 1538244727		; <i32>:90 [#uses=1]
-	load i32* @g_207, align 4		; <i32>:91 [#uses=1]
-	sub i32 %91, %90		; <i32>:92 [#uses=1]
-	load i32* @g_14, align 4		; <i32>:93 [#uses=1]
-	trunc i32 %93 to i16		; <i16>:94 [#uses=1]
-	trunc i32 %p_46 to i16		; <i16>:95 [#uses=2]
-	sub i16 %94, %95		; <i16>:96 [#uses=1]
-	load i32* @g_197, align 4		; <i32>:97 [#uses=1]
-	trunc i32 %97 to i16		; <i16>:98 [#uses=1]
-	tail call i32 @func_55( i32 -346178830, i16 zeroext  %98, i16 zeroext  %95 ) nounwind 		; <i32>:99 [#uses=0]
-	zext i16 %p_48 to i32		; <i32>:100 [#uses=1]
-	load i8* @g_247, align 1		; <i8>:101 [#uses=1]
-	zext i8 %101 to i32		; <i32>:102 [#uses=1]
-	sub i32 %100, %102		; <i32>:103 [#uses=1]
-	tail call i32 @func_55( i32 %103, i16 zeroext  -2972, i16 zeroext  %96 ) nounwind 		; <i32>:104 [#uses=0]
-	xor i32 %92, 2968		; <i32>:105 [#uses=1]
-	load i32* @g_197, align 4		; <i32>:106 [#uses=1]
-	icmp ugt i32 %105, %106		; <i1>:107 [#uses=1]
-	zext i1 %107 to i32		; <i32>:108 [#uses=1]
-	store i32 %108, i32* @g_33, align 4
-	br label %bb248
-
-bb248:		; preds = %bb284, %bb241
-	%p_49_addr.1.reg2mem.0 = phi i32 [ 0, %bb241 ], [ %134, %bb284 ]		; <i32> [#uses=2]
-	%p_48_addr.2.reg2mem.0 = phi i16 [ %p_48, %bb241 ], [ %p_48_addr.1, %bb284 ]		; <i16> [#uses=1]
-	%p_46_addr.1.reg2mem.0 = phi i32 [ %p_46, %bb241 ], [ %133, %bb284 ]		; <i32> [#uses=1]
-	%p_45_addr.1.reg2mem.0 = phi i32 [ %p_45, %bb241 ], [ %p_45_addr.0, %bb284 ]		; <i32> [#uses=2]
-	tail call i32 @func_63( i16 signext  1 ) nounwind 		; <i32>:109 [#uses=1]
-	icmp eq i32 %109, 0		; <i1>:110 [#uses=1]
-	br i1 %110, label %bb272.thread, label %bb255.thread
-
-bb272.thread:		; preds = %bb248
-	store i32 1, i32* @g_82
-	load i16* @g_267, align 2		; <i16>:111 [#uses=1]
-	icmp eq i16 %111, 0		; <i1>:112 [#uses=1]
-	br i1 %112, label %bb311.loopexit.split, label %bb268
-
-bb255.thread:		; preds = %bb248
-	load i32* @g_260, align 4		; <i32>:113 [#uses=1]
-	sub i32 %113, %p_52		; <i32>:114 [#uses=1]
-	and i32 %114, -20753		; <i32>:115 [#uses=1]
-	icmp ne i32 %115, 0		; <i1>:116 [#uses=1]
-	zext i1 %116 to i16		; <i16>:117 [#uses=1]
-	store i16 %117, i16* @g_221, align 2
-	br label %bb284
-
-bb268:		; preds = %bb268, %bb272.thread
-	%indvar = phi i32 [ 0, %bb272.thread ], [ %g_82.tmp.0, %bb268 ]		; <i32> [#uses=2]
-	%p_46_addr.0.reg2mem.0 = phi i32 [ %p_46_addr.1.reg2mem.0, %bb272.thread ], [ %119, %bb268 ]		; <i32> [#uses=1]
-	%g_82.tmp.0 = add i32 %indvar, 1		; <i32> [#uses=2]
-	trunc i32 %p_46_addr.0.reg2mem.0 to i16		; <i16>:118 [#uses=1]
-	and i32 %g_82.tmp.0, 28156		; <i32>:119 [#uses=1]
-	add i32 %indvar, 2		; <i32>:120 [#uses=4]
-	icmp sgt i32 %120, -1		; <i1>:121 [#uses=1]
-	br i1 %121, label %bb268, label %bb274.split
-
-bb274.split:		; preds = %bb268
-	store i32 %120, i32* @g_82
-	br i1 %50, label %bb279, label %bb276
-
-bb276:		; preds = %bb274.split
-	store i16 0, i16* @g_222, align 2
-	br label %bb284
-
-bb279:		; preds = %bb274.split
-	icmp eq i32 %120, 0		; <i1>:122 [#uses=1]
-	%.0317 = select i1 %122, i32 1, i32 %120		; <i32> [#uses=1]
-	udiv i32 -8, %.0317		; <i32>:123 [#uses=1]
-	trunc i32 %123 to i16		; <i16>:124 [#uses=1]
-	br label %bb284
-
-bb284:		; preds = %bb279, %bb276, %bb255.thread
-	%p_49_addr.0 = phi i32 [ %p_49_addr.1.reg2mem.0, %bb279 ], [ %p_49_addr.1.reg2mem.0, %bb276 ], [ 0, %bb255.thread ]		; <i32> [#uses=1]
-	%p_48_addr.1 = phi i16 [ %124, %bb279 ], [ %118, %bb276 ], [ %p_48_addr.2.reg2mem.0, %bb255.thread ]		; <i16> [#uses=1]
-	%p_45_addr.0 = phi i32 [ %p_45_addr.1.reg2mem.0, %bb279 ], [ %p_45_addr.1.reg2mem.0, %bb276 ], [ 8, %bb255.thread ]		; <i32> [#uses=3]
-	load i32* @g_43, align 4		; <i32>:125 [#uses=1]
-	trunc i32 %125 to i8		; <i8>:126 [#uses=1]
-	tail call i32 @func_116( i8 zeroext  %126 ) nounwind 		; <i32>:127 [#uses=0]
-	lshr i32 65255, %p_45_addr.0		; <i32>:128 [#uses=1]
-	icmp ugt i32 %p_45_addr.0, 31		; <i1>:129 [#uses=1]
-	%.op = lshr i32 %128, 31		; <i32> [#uses=1]
-	%.op.op = xor i32 %.op, 1		; <i32> [#uses=1]
-	%.354..lobit.not = select i1 %129, i32 1, i32 %.op.op		; <i32> [#uses=1]
-	load i16* @g_39, align 2		; <i16>:130 [#uses=1]
-	zext i16 %130 to i32		; <i32>:131 [#uses=1]
-	icmp slt i32 %.354..lobit.not, %131		; <i1>:132 [#uses=1]
-	zext i1 %132 to i32		; <i32>:133 [#uses=1]
-	add i32 %p_49_addr.0, 1		; <i32>:134 [#uses=2]
-	icmp sgt i32 %134, -1		; <i1>:135 [#uses=1]
-	br i1 %135, label %bb248, label %bb307
-
-bb307:		; preds = %bb284
-	tail call i32 @func_103( i16 zeroext  0 ) nounwind 		; <i32>:136 [#uses=0]
-	ret i32 %40
-
-bb311.loopexit.split:		; preds = %bb272.thread
-	store i32 1, i32* @g_82
-	ret i32 1
-
-bb311:		; preds = %bb223, %bb202
-	%.0 = phi i32 [ 1, %bb202 ], [ 0, %bb223 ]		; <i32> [#uses=1]
-	ret i32 %.0
-}
-
-declare i32 @func_25(i8 zeroext ) nounwind 
-
-declare i32 @func_55(i32, i16 zeroext , i16 zeroext ) nounwind 
-
-declare i32 @func_63(i16 signext ) nounwind 
-
-declare i32 @func_74(i16 zeroext , i8 zeroext , i16 zeroext , i16 zeroext ) nounwind 
-
-declare i32 @func_84(i32, i16 zeroext , i16 zeroext ) nounwind 
-
-declare i32 @func_103(i16 zeroext ) nounwind 
-
-declare i32 @func_124(i32) nounwind 
-
-declare i32 @func_128(i32) nounwind 
-
-declare i32 @func_116(i8 zeroext ) nounwind 
-
-declare i32 @func_112(i32, i16 zeroext ) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3086.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3086.ll
deleted file mode 100644
index f92bfe2..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3086.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce -disable-output
-; RUN: llvm-as < %s | opt -analyze -scalar-evolution -disable-output
-; PR 3086
-
-	%struct.Cls = type { i32, i8, [2 x %struct.Cls*], [2 x %struct.Lit*] }
-	%struct.Lit = type { i8 }
-
-define fastcc i64 @collect_clauses() nounwind {
-entry:
-	br label %bb11
-
-bb5:		; preds = %bb9
-	%0 = load %struct.Lit** %storemerge, align 8		; <%struct.Lit*> [#uses=0]
-	%indvar.next8 = add i64 %storemerge.rec, 1		; <i64> [#uses=1]
-	br label %bb9
-
-bb9:		; preds = %bb22, %bb5
-	%storemerge.rec = phi i64 [ %indvar.next8, %bb5 ], [ 0, %bb22 ]		; <i64> [#uses=2]
-	%storemerge = getelementptr %struct.Lit** null, i64 %storemerge.rec		; <%struct.Lit**> [#uses=2]
-	%1 = icmp ugt %struct.Lit** null, %storemerge		; <i1> [#uses=1]
-	br i1 %1, label %bb5, label %bb22
-
-bb11:		; preds = %bb22, %entry
-	%2 = load %struct.Cls** null, align 8		; <%struct.Cls*> [#uses=0]
-	br label %bb22
-
-bb22:		; preds = %bb11, %bb9
-	br i1 false, label %bb11, label %bb9
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3399.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3399.ll
deleted file mode 100644
index 9d2f5ed..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3399.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis
-; PR3399
-
- at g_53 = external global i32		; <i32*> [#uses=1]
-
-define i32 @foo() nounwind {
-bb5.thread:
-	br label %bb
-
-bb:		; preds = %bb5, %bb5.thread
-	%indvar = phi i32 [ 0, %bb5.thread ], [ %indvar.next, %bb5 ]		; <i32> [#uses=2]
-	br i1 false, label %bb5, label %bb1
-
-bb1:		; preds = %bb
-	%l_2.0.reg2mem.0 = sub i32 0, %indvar		; <i32> [#uses=1]
-	%0 = volatile load i32* @g_53, align 4		; <i32> [#uses=1]
-	%1 = trunc i32 %l_2.0.reg2mem.0 to i16		; <i16> [#uses=1]
-	%2 = trunc i32 %0 to i16		; <i16> [#uses=1]
-	%3 = mul i16 %2, %1		; <i16> [#uses=1]
-	%4 = icmp eq i16 %3, 0		; <i1> [#uses=1]
-	br i1 %4, label %bb7, label %bb2
-
-bb2:		; preds = %bb2, %bb1
-	br label %bb2
-
-bb5:		; preds = %bb
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=1]
-	br label %bb
-
-bb7:		; preds = %bb1
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3571.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3571.ll
deleted file mode 100644
index 79fcdb1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3571.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis
-; PR3571
-
-target triple = "i386-mingw32"
-define void @_ZNK18qdesigner_internal10TreeWidget12drawBranchesEP8QPainterRK5QRectRK11QModelIndex() nounwind {
-entry:
-	br label %_ZNK11QModelIndex7isValidEv.exit.i
-
-bb.i:		; preds = %_ZNK11QModelIndex7isValidEv.exit.i
-	%indvar.next = add i32 %result.0.i, 1		; <i32> [#uses=1]
-	br label %_ZNK11QModelIndex7isValidEv.exit.i
-
-_ZNK11QModelIndex7isValidEv.exit.i:		; preds = %bb.i, %entry
-	%result.0.i = phi i32 [ 0, %entry ], [ %indvar.next, %bb.i ]		; <i32> [#uses=2]
-	%0 = load i32** null, align 4		; <%struct.QAbstractItemDelegate*> [#uses=0]
-	br i1 false, label %_ZN18qdesigner_internalL5levelEP18QAbstractItemModelRK11QModelIndex.exit, label %bb.i
-
-_ZN18qdesigner_internalL5levelEP18QAbstractItemModelRK11QModelIndex.exit:		; preds = %_ZNK11QModelIndex7isValidEv.exit.i
-	%1 = call i32 @_ZNK9QTreeView11indentationEv(i32* null) nounwind		; <i32> [#uses=1]
-	%2 = mul i32 %1, %result.0.i		; <i32> [#uses=1]
-	%3 = add i32 %2, -2		; <i32> [#uses=1]
-	%4 = add i32 %3, 0		; <i32> [#uses=1]
-	store i32 %4, i32* null, align 8
-	unreachable
-}
-
-declare i32 @_ZNK9QTreeView11indentationEv(i32*)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll
deleted file mode 100644
index be1372d..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -analyze -iv-users -disable-output | grep {Stride i64 {3,+,2}<loop>:}
-
-; The value of %r is dependent on a polynomial iteration expression.
-
-define i64 @foo(i64 %n) {
-entry:
-  br label %loop
-
-loop:
-  %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
-  %indvar.next = add i64 %indvar, 1
-  %c = icmp eq i64 %indvar.next, %n
-  br i1 %c, label %exit, label %loop
-
-exit:
-  %r = mul i64 %indvar.next, %indvar.next
-  ret i64 %r
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/related_indvars.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/related_indvars.ll
deleted file mode 100644
index 434da99..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/related_indvars.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep phi | count 1
-
-; This should only result in one PHI node!
-
-; void foo(double *D, double *E, double F) {
-;   while (D != E)
-;     *D++ = F;
-; }
-
-define void @foo(double* %D, double* %E, double %F) {
-entry:
-	%tmp.24 = icmp eq double* %D, %E		; <i1> [#uses=1]
-	br i1 %tmp.24, label %return, label %no_exit
-no_exit:		; preds = %no_exit, %entry
-	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %no_exit ]		; <i32> [#uses=2]
-	%D_addr.0.0.rec = bitcast i32 %indvar to i32		; <i32> [#uses=2]
-	%D_addr.0.0 = getelementptr double* %D, i32 %D_addr.0.0.rec		; <double*> [#uses=1]
-	%inc.rec = add i32 %D_addr.0.0.rec, 1		; <i32> [#uses=1]
-	%inc = getelementptr double* %D, i32 %inc.rec		; <double*> [#uses=1]
-	store double %F, double* %D_addr.0.0
-	%tmp.2 = icmp eq double* %inc, %E		; <i1> [#uses=1]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=1]
-	br i1 %tmp.2, label %return, label %no_exit
-return:		; preds = %no_exit, %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/remove_indvar.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/remove_indvar.ll
deleted file mode 100644
index 623c0b5..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/remove_indvar.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; Check that this test makes INDVAR and related stuff dead.
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | not grep INDVAR
-
-declare i1 @pred()
-
-define void @test(i32* %P) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=2]
-	%STRRED = getelementptr i32* %P, i32 %INDVAR		; <i32*> [#uses=1]
-	store i32 0, i32* %STRRED
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=1]
-	%cond = call i1 @pred( )		; <i1> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/share_code_in_preheader.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/share_code_in_preheader.ll
deleted file mode 100644
index a78fa5f..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/share_code_in_preheader.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep mul | count 1
-; LSR should not make two copies of the Q*L expression in the preheader!
-
-define i8 @test(i8* %A, i8* %B, i32 %L, i32 %Q, i32 %N.s) {
-entry:
-	%tmp.6 = mul i32 %Q, %L		; <i32> [#uses=1]
-	%N = bitcast i32 %N.s to i32		; <i32> [#uses=1]
-	br label %no_exit
-no_exit:		; preds = %no_exit, %entry
-	%indvar.ui = phi i32 [ 0, %entry ], [ %indvar.next, %no_exit ]		; <i32> [#uses=2]
-	%Sum.0.0 = phi i8 [ 0, %entry ], [ %tmp.21, %no_exit ]		; <i8> [#uses=1]
-	%indvar = bitcast i32 %indvar.ui to i32		; <i32> [#uses=1]
-	%N_addr.0.0 = sub i32 %N.s, %indvar		; <i32> [#uses=1]
-	%tmp.8 = add i32 %N_addr.0.0, %tmp.6		; <i32> [#uses=2]
-	%tmp.9 = getelementptr i8* %A, i32 %tmp.8		; <i8*> [#uses=1]
-	%tmp.10 = load i8* %tmp.9		; <i8> [#uses=1]
-	%tmp.17 = getelementptr i8* %B, i32 %tmp.8		; <i8*> [#uses=1]
-	%tmp.18 = load i8* %tmp.17		; <i8> [#uses=1]
-	%tmp.19 = sub i8 %tmp.10, %tmp.18		; <i8> [#uses=1]
-	%tmp.21 = add i8 %tmp.19, %Sum.0.0		; <i8> [#uses=2]
-	%indvar.next = add i32 %indvar.ui, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next, %N		; <i1> [#uses=1]
-	br i1 %exitcond, label %loopexit, label %no_exit
-loopexit:		; preds = %no_exit
-	ret i8 %tmp.21
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/share_ivs.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/share_ivs.ll
deleted file mode 100644
index b52d571..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/share_ivs.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | grep phi | count 1
-
-; This testcase should have ONE stride 18 indvar, the other use should have a
-; loop invariant value (B) added to it inside of the loop, instead of having
-; a whole indvar based on B for it.
-
-declare i1 @cond(i32)
-
-define void @test(i32 %B) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%IV = phi i32 [ 0, %0 ], [ %IVn, %Loop ]		; <i32> [#uses=3]
-	%C = mul i32 %IV, 18		; <i32> [#uses=1]
-	%D = mul i32 %IV, 18		; <i32> [#uses=1]
-	%E = add i32 %D, %B		; <i32> [#uses=1]
-	%cnd = call i1 @cond( i32 %E )		; <i1> [#uses=1]
-	call i1 @cond( i32 %C )		; <i1>:1 [#uses=0]
-	%IVn = add i32 %IV, 1		; <i32> [#uses=1]
-	br i1 %cnd, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll
deleted file mode 100644
index 2c9c70d..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | \
-; RUN:   grep {add i32 %lsr.iv.next, 1}
-;
-; Make sure that the use of the IV outside of the loop (the store) uses the 
-; post incremented value of the IV, not the preincremented value.  This 
-; prevents the loop from having to keep the post and pre-incremented value
-; around for the duration of the loop, adding a copy and an extra register
-; to the loop.
-
-declare i1 @pred(i32)
-
-define void @test([700 x i32]* %nbeaux_.0__558, i32* %i_.16574) {
-then.0:
-	br label %no_exit.2
-no_exit.2:		; preds = %no_exit.2, %then.0
-	%indvar630.ui = phi i32 [ 0, %then.0 ], [ %indvar.next631, %no_exit.2 ]		; <i32> [#uses=3]
-	%indvar630 = bitcast i32 %indvar630.ui to i32		; <i32> [#uses=2]
-	%gep.upgrd.1 = zext i32 %indvar630.ui to i64		; <i64> [#uses=1]
-	%tmp.38 = getelementptr [700 x i32]* %nbeaux_.0__558, i32 0, i64 %gep.upgrd.1		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp.38
-	%inc.2 = add i32 %indvar630, 2		; <i32> [#uses=1]
-	%tmp.34 = call i1 @pred( i32 %indvar630 )		; <i1> [#uses=1]
-	%indvar.next631 = add i32 %indvar630.ui, 1		; <i32> [#uses=1]
-	br i1 %tmp.34, label %no_exit.2, label %loopexit.2.loopexit
-loopexit.2.loopexit:		; preds = %no_exit.2
-	store i32 %inc.2, i32* %i_.16574
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll
deleted file mode 100644
index 53eedd6..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; Base should not be i*3, it should be i*2.
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | \
-; RUN:   not grep {mul.*%i, 3}
-
-; Indvar should not start at zero:
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | \
-; RUN:   not grep {phi i32 .* 0}
-; END.
-
-; mul uint %i, 3
-
-target datalayout = "e-p:32:32"
-target triple = "i686-apple-darwin8"
- at flags2 = external global [8193 x i8], align 32		; <[8193 x i8]*> [#uses=1]
-
-define void @foo(i32 %k, i32 %i.s) {
-entry:
-	%i = bitcast i32 %i.s to i32		; <i32> [#uses=2]
-	%k_addr.012 = shl i32 %i.s, 1		; <i32> [#uses=1]
-	%tmp14 = icmp sgt i32 %k_addr.012, 8192		; <i1> [#uses=1]
-	br i1 %tmp14, label %return, label %bb.preheader
-bb.preheader:		; preds = %entry
-	%tmp. = shl i32 %i, 1		; <i32> [#uses=1]
-	br label %bb
-bb:		; preds = %bb, %bb.preheader
-	%indvar = phi i32 [ %indvar.next, %bb ], [ 0, %bb.preheader ]		; <i32> [#uses=2]
-	%tmp.15 = mul i32 %indvar, %i		; <i32> [#uses=1]
-	%tmp.16 = add i32 %tmp.15, %tmp.		; <i32> [#uses=2]
-	%k_addr.0.0 = bitcast i32 %tmp.16 to i32		; <i32> [#uses=1]
-	%gep.upgrd.1 = zext i32 %tmp.16 to i64		; <i64> [#uses=1]
-	%tmp = getelementptr [8193 x i8]* @flags2, i32 0, i64 %gep.upgrd.1		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp
-	%k_addr.0 = add i32 %k_addr.0.0, %i.s		; <i32> [#uses=1]
-	%tmp.upgrd.2 = icmp sgt i32 %k_addr.0, 8192		; <i1> [#uses=1]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=1]
-	br i1 %tmp.upgrd.2, label %return.loopexit, label %bb
-return.loopexit:		; preds = %bb
-	br label %return
-return:		; preds = %return.loopexit, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/variable_stride.ll b/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/variable_stride.ll
deleted file mode 100644
index 90d3947..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/variable_stride.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; Check that variable strides are reduced to adds instead of multiplies.
-; RUN: llvm-as < %s | opt -loop-reduce | llvm-dis | not grep mul
-
-declare i1 @pred(i32)
-
-define void @test([10000 x i32]* %P, i32 %STRIDE) {
-; <label>:0
-	br label %Loop
-Loop:		; preds = %Loop, %0
-	%INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ]		; <i32> [#uses=2]
-	%Idx = mul i32 %INDVAR, %STRIDE		; <i32> [#uses=1]
-	%cond = call i1 @pred( i32 %Idx )		; <i1> [#uses=1]
-	%INDVAR2 = add i32 %INDVAR, 1		; <i32> [#uses=1]
-	br i1 %cond, label %Loop, label %Out
-Out:		; preds = %Loop
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll b/libclamav/c++/llvm/test/Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll
deleted file mode 100644
index 13a26a2..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unroll -disable-output
-
-define i32 @main() {
-entry:
-	br label %no_exit
-no_exit:		; preds = %no_exit, %entry
-	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %no_exit ]		; <i32> [#uses=1]
-	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
-	%exitcond = icmp ne i32 %indvar.next, -2147483648		; <i1> [#uses=1]
-	br i1 %exitcond, label %no_exit, label %loopexit
-loopexit:		; preds = %no_exit
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll b/libclamav/c++/llvm/test/Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll
deleted file mode 100644
index db107fd..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unroll -loopsimplify -disable-output
-
-define void @print_board() {
-entry:
-	br label %no_exit.1
-no_exit.1:		; preds = %cond_false.2, %entry
-	br label %no_exit.2
-no_exit.2:		; preds = %no_exit.2, %no_exit.1
-	%indvar1 = phi i32 [ 0, %no_exit.1 ], [ %indvar.next2, %no_exit.2 ]		; <i32> [#uses=1]
-	%indvar.next2 = add i32 %indvar1, 1		; <i32> [#uses=2]
-	%exitcond3 = icmp ne i32 %indvar.next2, 7		; <i1> [#uses=1]
-	br i1 %exitcond3, label %no_exit.2, label %loopexit.2
-loopexit.2:		; preds = %no_exit.2
-	br i1 false, label %cond_true.2, label %cond_false.2
-cond_true.2:		; preds = %loopexit.2
-	ret void
-cond_false.2:		; preds = %loopexit.2
-	br i1 false, label %no_exit.1, label %loopexit.1
-loopexit.1:		; preds = %cond_false.2
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2006-08-24-MultiBlockLoop.ll b/libclamav/c++/llvm/test/Transforms/LoopUnroll/2006-08-24-MultiBlockLoop.ll
deleted file mode 100644
index 16419ca..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2006-08-24-MultiBlockLoop.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unroll | llvm-dis | grep bb72.2
-
-define void @vorbis_encode_noisebias_setup() {
-entry:
-	br label %cond_true.outer
-cond_true.outer:		; preds = %bb72, %entry
-	%indvar1.ph = phi i32 [ 0, %entry ], [ %indvar.next2, %bb72 ]		; <i32> [#uses=1]
-	br label %bb72
-bb72:		; preds = %cond_true.outer
-	%indvar.next2 = add i32 %indvar1.ph, 1		; <i32> [#uses=2]
-	%exitcond3 = icmp eq i32 %indvar.next2, 3		; <i1> [#uses=1]
-	br i1 %exitcond3, label %cond_true138, label %cond_true.outer
-cond_true138:		; preds = %bb72
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-04-16-PhiUpdate.ll b/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-04-16-PhiUpdate.ll
deleted file mode 100644
index 26fa60a..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-04-16-PhiUpdate.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; PR 1334
-; RUN: llvm-as < %s | opt -loop-unroll -disable-output
-
-define void @sal__math_float_manipulator_7__math__joint_array_dcv_ops__Omultiply__3([6 x float]* %agg.result) {
-entry:
-	%tmp282911 = zext i8 0 to i32		; <i32> [#uses=1]
-	br label %cond_next
-cond_next:		; preds = %cond_next, %entry
-	%indvar = phi i8 [ 0, %entry ], [ %indvar.next, %cond_next ]		; <i8> [#uses=1]
-	%indvar.next = add i8 %indvar, 1		; <i8> [#uses=2]
-	%exitcond = icmp eq i8 %indvar.next, 7		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb27, label %cond_next
-bb27:		; preds = %cond_next
-	%tmp282911.lcssa = phi i32 [ %tmp282911, %cond_next ]		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-05-05-UnrollMiscomp.ll b/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-05-05-UnrollMiscomp.ll
deleted file mode 100644
index 44890a6..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-05-05-UnrollMiscomp.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unroll | llvm-dis | not grep undef
-; PR1385
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-apple-darwin8"
-        %struct.__mpz_struct = type { i32, i32, i32* }
-
-
-define void @Foo(%struct.__mpz_struct* %base) {
-entry:
-        %want = alloca [1 x %struct.__mpz_struct], align 16             ; <[1 x %struct.__mpz_struct]*> [#uses=4]
-        %want1 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0          ; <%struct.__mpz_struct*> [#uses=1]
-        call void @__gmpz_init( %struct.__mpz_struct* %want1 )
-        %want27 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0         ; <%struct.__mpz_struct*> [#uses=1]
-        %want3 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0          ; <%struct.__mpz_struct*> [#uses=1]
-        %want2 = getelementptr [1 x %struct.__mpz_struct]* %want, i32 0, i32 0          ; <%struct.__mpz_struct*> [#uses=2]
-        br label %bb
-
-bb:             ; preds = %bb, %entry
-        %i.01.0 = phi i32 [ 0, %entry ], [ %indvar.next, %bb ]          ; <i32> [#uses=1]
-        %want23.0 = phi %struct.__mpz_struct* [ %want27, %entry ], [ %want2, %bb ]              ; <%struct.__mpz_struct*> [#uses=1]
-        call void @__gmpz_mul( %struct.__mpz_struct* %want23.0, %struct.__mpz_struct* %want3, %struct.__mpz_struct* %base )
-        %indvar.next = add i32 %i.01.0, 1               ; <i32> [#uses=2]
-        %exitcond = icmp ne i32 %indvar.next, 2         ; <i1> [#uses=1]
-        br i1 %exitcond, label %bb, label %bb10
-
-bb10:           ; preds = %bb
-        %want2.lcssa = phi %struct.__mpz_struct* [ %want2, %bb ]                ; <%struct.__mpz_struct*> [#uses=1]
-        call void @__gmpz_clear( %struct.__mpz_struct* %want2.lcssa )
-        ret void
-}
-
-declare void @__gmpz_init(%struct.__mpz_struct*)
-declare void @__gmpz_mul(%struct.__mpz_struct*, %struct.__mpz_struct*, %struct.__mpz_struct*)
-declare void @__gmpz_clear(%struct.__mpz_struct*)
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-05-09-UnknownTripCount.ll b/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-05-09-UnknownTripCount.ll
deleted file mode 100644
index 2086e96..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-05-09-UnknownTripCount.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unroll -unroll-count=3 | llvm-dis | grep bb72.2
-
-define void @foo(i32 %trips) {
-entry:
-	br label %cond_true.outer
-
-cond_true.outer:
-	%indvar1.ph = phi i32 [ 0, %entry ], [ %indvar.next2, %bb72 ]
-	br label %bb72
-
-bb72:
-	%indvar.next2 = add i32 %indvar1.ph, 1
-	%exitcond3 = icmp eq i32 %indvar.next2, %trips
-	br i1 %exitcond3, label %cond_true138, label %cond_true.outer
-
-cond_true138:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-11-05-Crash.ll b/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-11-05-Crash.ll
deleted file mode 100644
index a46c09e..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/2007-11-05-Crash.ll
+++ /dev/null
@@ -1,295 +0,0 @@
-; RUN: llvm-as < %s | opt -disable-output -loop-unroll
-; PR1770
-; PR1947
-
-	%struct.cl_engine = type { i32, i16, i32, i8**, i8**, i8*, i8*, i8*, i8*, i8*, i8*, i8* }
-	%struct.cl_limits = type { i32, i32, i32, i32, i16, i64 }
-	%struct.cli_ac_alt = type { i8, i8*, i16, i16, %struct.cli_ac_alt* }
-	%struct.cli_ac_node = type { i8, i8, %struct.cli_ac_patt*, %struct.cli_ac_node**, %struct.cli_ac_node* }
-	%struct.cli_ac_patt = type { i16*, i16*, i16, i16, i8, i32, i32, i8*, i8*, i32, i16, i16, i16, i16, %struct.cli_ac_alt**, i8, i16, %struct.cli_ac_patt*, %struct.cli_ac_patt* }
-	%struct.cli_bm_patt = type { i8*, i32, i8*, i8*, i8, %struct.cli_bm_patt* }
-	%struct.cli_ctx = type { i8**, i64*, %struct.cli_matcher*, %struct.cl_engine*, %struct.cl_limits*, i32, i32, i32, i32, %struct.cli_dconf* }
-	%struct.cli_dconf = type { i32, i32, i32, i32, i32, i32, i32 }
-	%struct.cli_matcher = type { i16, i8, i32*, %struct.cli_bm_patt**, i32*, i32, i8, i8, %struct.cli_ac_node*, %struct.cli_ac_node**, %struct.cli_ac_patt**, i32, i32, i32 }
-
-declare i8* @calloc(i64, i64)
-
-define fastcc i32 @cli_scanpe(i32 %desc, %struct.cli_ctx* %ctx) {
-entry:
-	br i1 false, label %cond_next17, label %cond_true14
-
-cond_true14:		; preds = %entry
-	ret i32 0
-
-cond_next17:		; preds = %entry
-	br i1 false, label %LeafBlock, label %LeafBlock1250
-
-LeafBlock1250:		; preds = %cond_next17
-	ret i32 0
-
-LeafBlock:		; preds = %cond_next17
-	br i1 false, label %cond_next33, label %cond_true30
-
-cond_true30:		; preds = %LeafBlock
-	ret i32 0
-
-cond_next33:		; preds = %LeafBlock
-	br i1 false, label %cond_next90, label %cond_true42
-
-cond_true42:		; preds = %cond_next33
-	ret i32 0
-
-cond_next90:		; preds = %cond_next33
-	br i1 false, label %cond_next100, label %cond_true97
-
-cond_true97:		; preds = %cond_next90
-	ret i32 0
-
-cond_next100:		; preds = %cond_next90
-	br i1 false, label %cond_next109, label %cond_true106
-
-cond_true106:		; preds = %cond_next100
-	ret i32 0
-
-cond_next109:		; preds = %cond_next100
-	br i1 false, label %cond_false, label %cond_true118
-
-cond_true118:		; preds = %cond_next109
-	ret i32 0
-
-cond_false:		; preds = %cond_next109
-	br i1 false, label %NodeBlock1482, label %cond_true126
-
-cond_true126:		; preds = %cond_false
-	ret i32 0
-
-NodeBlock1482:		; preds = %cond_false
-	br i1 false, label %cond_next285, label %NodeBlock1480
-
-NodeBlock1480:		; preds = %NodeBlock1482
-	ret i32 0
-
-cond_next285:		; preds = %NodeBlock1482
-	br i1 false, label %cond_next320, label %cond_true294
-
-cond_true294:		; preds = %cond_next285
-	ret i32 0
-
-cond_next320:		; preds = %cond_next285
-	br i1 false, label %LeafBlock1491, label %LeafBlock1493
-
-LeafBlock1493:		; preds = %cond_next320
-	ret i32 0
-
-LeafBlock1491:		; preds = %cond_next320
-	br i1 false, label %cond_true400, label %cond_true378
-
-cond_true378:		; preds = %LeafBlock1491
-	ret i32 1
-
-cond_true400:		; preds = %LeafBlock1491
-	br i1 false, label %cond_next413, label %cond_true406
-
-cond_true406:		; preds = %cond_true400
-	ret i32 0
-
-cond_next413:		; preds = %cond_true400
-	br i1 false, label %cond_next429, label %cond_true424
-
-cond_true424:		; preds = %cond_next413
-	ret i32 0
-
-cond_next429:		; preds = %cond_next413
-	br i1 false, label %NodeBlock1557, label %NodeBlock1579
-
-NodeBlock1579:		; preds = %cond_next429
-	ret i32 0
-
-NodeBlock1557:		; preds = %cond_next429
-	br i1 false, label %LeafBlock1543, label %NodeBlock1555
-
-NodeBlock1555:		; preds = %NodeBlock1557
-	ret i32 0
-
-LeafBlock1543:		; preds = %NodeBlock1557
-	br i1 false, label %cond_next870, label %cond_next663
-
-cond_next663:		; preds = %LeafBlock1543
-	ret i32 0
-
-cond_next870:		; preds = %LeafBlock1543
-	br i1 false, label %cond_true1012, label %cond_true916
-
-cond_true916:		; preds = %cond_next870
-	ret i32 0
-
-cond_true1012:		; preds = %cond_next870
-	br i1 false, label %cond_next3849, label %cond_true2105
-
-cond_true2105:		; preds = %cond_true1012
-	ret i32 0
-
-cond_next3849:		; preds = %cond_true1012
-	br i1 false, label %cond_next4378, label %bb6559
-
-bb3862:		; preds = %cond_next4385
-	br i1 false, label %cond_false3904, label %cond_true3876
-
-cond_true3876:		; preds = %bb3862
-	ret i32 0
-
-cond_false3904:		; preds = %bb3862
-	br i1 false, label %cond_next4003, label %cond_true3935
-
-cond_true3935:		; preds = %cond_false3904
-	ret i32 0
-
-cond_next4003:		; preds = %cond_false3904
-	br i1 false, label %cond_next5160, label %cond_next4015
-
-cond_next4015:		; preds = %cond_next4003
-	ret i32 0
-
-cond_next4378:		; preds = %cond_next3849
-	br i1 false, label %cond_next4385, label %bb4393
-
-cond_next4385:		; preds = %cond_next4378
-	br i1 false, label %bb3862, label %bb4393
-
-bb4393:		; preds = %cond_next4385, %cond_next4378
-	ret i32 0
-
-cond_next5160:		; preds = %cond_next4003
-	br i1 false, label %bb5188, label %bb6559
-
-bb5188:		; preds = %cond_next5160
-	br i1 false, label %cond_next5285, label %cond_true5210
-
-cond_true5210:		; preds = %bb5188
-	ret i32 0
-
-cond_next5285:		; preds = %bb5188
-	br i1 false, label %cond_true5302, label %cond_true5330
-
-cond_true5302:		; preds = %cond_next5285
-	br i1 false, label %bb7405, label %bb7367
-
-cond_true5330:		; preds = %cond_next5285
-	ret i32 0
-
-bb6559:		; preds = %cond_next5160, %cond_next3849
-	ret i32 0
-
-bb7367:		; preds = %cond_true5302
-	ret i32 0
-
-bb7405:		; preds = %cond_true5302
-	br i1 false, label %cond_next8154, label %cond_true7410
-
-cond_true7410:		; preds = %bb7405
-	ret i32 0
-
-cond_next8154:		; preds = %bb7405
-	br i1 false, label %cond_true8235, label %bb9065
-
-cond_true8235:		; preds = %cond_next8154
-	br i1 false, label %bb8274, label %bb8245
-
-bb8245:		; preds = %cond_true8235
-	ret i32 0
-
-bb8274:		; preds = %cond_true8235
-	br i1 false, label %cond_next8358, label %cond_true8295
-
-cond_true8295:		; preds = %bb8274
-	ret i32 0
-
-cond_next8358:		; preds = %bb8274
-	br i1 false, label %cond_next.i509, label %cond_true8371
-
-cond_true8371:		; preds = %cond_next8358
-	ret i32 -123
-
-cond_next.i509:		; preds = %cond_next8358
-	br i1 false, label %bb36.i, label %bb33.i
-
-bb33.i:		; preds = %cond_next.i509
-	ret i32 0
-
-bb36.i:		; preds = %cond_next.i509
-	br i1 false, label %cond_next54.i, label %cond_true51.i
-
-cond_true51.i:		; preds = %bb36.i
-	ret i32 0
-
-cond_next54.i:		; preds = %bb36.i
-	%tmp10.i.i527 = call i8* @calloc( i64 0, i64 1 )		; <i8*> [#uses=1]
-	br i1 false, label %cond_next11.i.i, label %bb132.i
-
-bb132.i:		; preds = %cond_next54.i
-	ret i32 0
-
-cond_next11.i.i:		; preds = %cond_next54.i
-	br i1 false, label %bb32.i.i545, label %cond_true1008.critedge.i
-
-bb32.i.i545:		; preds = %cond_next11.i.i
-	br i1 false, label %cond_next349.i, label %cond_true184.i
-
-cond_true184.i:		; preds = %bb32.i.i545
-	ret i32 0
-
-cond_next349.i:		; preds = %bb32.i.i545
-	br i1 false, label %cond_next535.i, label %cond_true1008.critedge1171.i
-
-cond_next535.i:		; preds = %cond_next349.i
-	br i1 false, label %cond_next569.i, label %cond_false574.i
-
-cond_next569.i:		; preds = %cond_next535.i
-	br i1 false, label %cond_next670.i, label %cond_true1008.critedge1185.i
-
-cond_false574.i:		; preds = %cond_next535.i
-	ret i32 0
-
-cond_next670.i:		; preds = %cond_next569.i
-	br i1 false, label %cond_true692.i, label %cond_next862.i
-
-cond_true692.i:		; preds = %cond_next670.i
-	br i1 false, label %cond_false742.i, label %cond_true718.i
-
-cond_true718.i:		; preds = %cond_true692.i
-	ret i32 0
-
-cond_false742.i:		; preds = %cond_true692.i
-	br i1 false, label %cond_true784.i, label %cond_next9079
-
-cond_true784.i:		; preds = %cond_next811.i, %cond_false742.i
-	%indvar1411.i.reg2mem.0 = phi i8 [ %indvar.next1412.i, %cond_next811.i ], [ 0, %cond_false742.i ]		; <i8> [#uses=1]
-	br i1 false, label %cond_true1008.critedge1190.i, label %cond_next811.i
-
-cond_next811.i:		; preds = %cond_true784.i
-	%indvar.next1412.i = add i8 %indvar1411.i.reg2mem.0, 1		; <i8> [#uses=2]
-	%tmp781.i = icmp eq i8 %indvar.next1412.i, 3		; <i1> [#uses=1]
-	br i1 %tmp781.i, label %cond_next9079, label %cond_true784.i
-
-cond_next862.i:		; preds = %cond_next670.i
-	ret i32 0
-
-cond_true1008.critedge.i:		; preds = %cond_next11.i.i
-	ret i32 0
-
-cond_true1008.critedge1171.i:		; preds = %cond_next349.i
-	ret i32 0
-
-cond_true1008.critedge1185.i:		; preds = %cond_next569.i
-	ret i32 0
-
-cond_true1008.critedge1190.i:		; preds = %cond_true784.i
-	%tmp621.i532.lcssa610 = phi i8* [ %tmp10.i.i527, %cond_true784.i ]		; <i8*> [#uses=0]
-	ret i32 0
-
-bb9065:		; preds = %cond_next8154
-	ret i32 0
-
-cond_next9079:		; preds = %cond_next811.i, %cond_false742.i
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnroll/dg.exp b/libclamav/c++/llvm/test/Transforms/LoopUnroll/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnroll/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-02-14-LoopSimplifyCrash.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-02-14-LoopSimplifyCrash.ll
deleted file mode 100644
index b80220a..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-02-14-LoopSimplifyCrash.ll
+++ /dev/null
@@ -1,1697 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-; END.
-
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin8.2.0"
-deplibs = [ "c", "crtend" ]
-	%struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
-	%struct.__sFILEX = type opaque
-	%struct.__sbuf = type { i8*, i32 }
-	%struct.fd_set = type { [32 x i32] }
-	%struct.timeval = type { i32, i32 }
-	%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* }
-	%typedef.CHESS_PATH = type { [65 x i32], i8, i8, i8 }
-	%typedef.CHESS_POSITION = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i8, i8, [64 x i8], i8, i8, i8, i8, i8 }
-	%typedef.HASH_ENTRY = type { i64, i64 }
-	%typedef.NEXT_MOVE = type { i32, i32, i32* }
-	%typedef.PAWN_HASH_ENTRY = type { i32, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
-	%typedef.SEARCH_POSITION = type { i8, i8, i8, i8 }
-	%union.doub0. = type { i64 }
- at search = external global %typedef.CHESS_POSITION		; <%typedef.CHESS_POSITION*> [#uses=1]
- at w_pawn_attacks = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at b_pawn_attacks = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at knight_attacks = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at bishop_attacks_rl45 = external global [64 x [256 x i64]]		; <[64 x [256 x i64]]*> [#uses=0]
- at bishop_shift_rl45 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at bishop_attacks_rr45 = external global [64 x [256 x i64]]		; <[64 x [256 x i64]]*> [#uses=0]
- at bishop_shift_rr45 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at rook_attacks_r0 = external global [64 x [256 x i64]]		; <[64 x [256 x i64]]*> [#uses=0]
- at rook_attacks_rl90 = external global [64 x [256 x i64]]		; <[64 x [256 x i64]]*> [#uses=0]
- at king_attacks = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at set_mask = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at first_ones = external global [65536 x i8]		; <[65536 x i8]*> [#uses=0]
- at last_ones = external global [65536 x i8]		; <[65536 x i8]*> [#uses=0]
- at draw_score_is_zero = external global i32		; <i32*> [#uses=0]
- at default_draw_score = external global i32		; <i32*> [#uses=0]
- at opening = external global i32		; <i32*> [#uses=0]
- at middle_game = external global i32		; <i32*> [#uses=0]
- at tc_increment = external global i32		; <i32*> [#uses=0]
- at tc_time_remaining_opponent = external global i32		; <i32*> [#uses=0]
- at .ctor_1 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at input_stream = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at __sF = external global [0 x %struct.__sFILE]		; <[0 x %struct.__sFILE]*> [#uses=1]
- at xboard = external global i32		; <i32*> [#uses=0]
- at .str_1 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_2 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at buffer = external global [512 x i8]		; <[512 x i8]*> [#uses=0]
- at nargs = external global i32		; <i32*> [#uses=0]
- at args = external global [32 x i8*]		; <[32 x i8*]*> [#uses=0]
- at .str_3 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_4 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_5 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_6 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_7 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_8 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_9 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_10 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_11 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_12 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_14 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at position = external global [67 x %typedef.SEARCH_POSITION]		; <[67 x %typedef.SEARCH_POSITION]*> [#uses=0]
- at log_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at move_number = external global i32		; <i32*> [#uses=0]
- at rephead_b = external global i64*		; <i64**> [#uses=0]
- at replist_b = external global [82 x i64]		; <[82 x i64]*> [#uses=0]
- at rephead_w = external global i64*		; <i64**> [#uses=0]
- at replist_w = external global [82 x i64]		; <[82 x i64]*> [#uses=0]
- at moves_out_of_book = external global i32		; <i32*> [#uses=0]
- at largest_positional_score = external global i32		; <i32*> [#uses=0]
- at end_game = external global i32		; <i32*> [#uses=0]
- at p_values = external global [15 x i32]		; <[15 x i32]*> [#uses=0]
- at clear_mask = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at directions = external global [64 x [64 x i8]]		; <[64 x [64 x i8]]*> [#uses=0]
- at root_wtm = external global i32		; <i32*> [#uses=0]
- at all_pawns = external global i64		; <i64*> [#uses=0]
- at pawn_score = external global %typedef.PAWN_HASH_ENTRY		; <%typedef.PAWN_HASH_ENTRY*> [#uses=0]
- at pawn_probes = external global i32		; <i32*> [#uses=0]
- at pawn_hits = external global i32		; <i32*> [#uses=0]
- at outside_passed = external global [128 x i32]		; <[128 x i32]*> [#uses=0]
- at root_total_black_pieces = external global i32		; <i32*> [#uses=0]
- at root_total_white_pawns = external global i32		; <i32*> [#uses=0]
- at root_total_white_pieces = external global i32		; <i32*> [#uses=0]
- at root_total_black_pawns = external global i32		; <i32*> [#uses=0]
- at mask_A7H7 = external global i64		; <i64*> [#uses=0]
- at mask_B6B7 = external global i64		; <i64*> [#uses=0]
- at mask_G6G7 = external global i64		; <i64*> [#uses=0]
- at mask_A2H2 = external global i64		; <i64*> [#uses=0]
- at mask_B2B3 = external global i64		; <i64*> [#uses=0]
- at mask_G2G3 = external global i64		; <i64*> [#uses=0]
- at king_defects_w = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at good_bishop_kw = external global i64		; <i64*> [#uses=0]
- at mask_F3H3 = external global i64		; <i64*> [#uses=0]
- at file_mask = external global [8 x i64]		; <[8 x i64]*> [#uses=0]
- at good_bishop_qw = external global i64		; <i64*> [#uses=0]
- at mask_A3C3 = external global i64		; <i64*> [#uses=0]
- at king_defects_b = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at good_bishop_kb = external global i64		; <i64*> [#uses=0]
- at mask_F6H6 = external global i64		; <i64*> [#uses=0]
- at good_bishop_qb = external global i64		; <i64*> [#uses=0]
- at mask_A6C6 = external global i64		; <i64*> [#uses=0]
- at square_color = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at evaluations = external global i32		; <i32*> [#uses=0]
- at king_value_w = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at rank_mask = external global [8 x i64]		; <[8 x i64]*> [#uses=0]
- at mask_kr_trapped_w = external global [3 x i64]		; <[3 x i64]*> [#uses=0]
- at mask_qr_trapped_w = external global [3 x i64]		; <[3 x i64]*> [#uses=0]
- at king_value_b = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at mask_kr_trapped_b = external global [3 x i64]		; <[3 x i64]*> [#uses=0]
- at mask_qr_trapped_b = external global [3 x i64]		; <[3 x i64]*> [#uses=0]
- at white_outpost = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at mask_no_pawn_attacks_b = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at knight_value_w = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at black_outpost = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at mask_no_pawn_attacks_w = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at knight_value_b = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at bishop_value_w = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at bishop_mobility_rl45 = external global [64 x [256 x i32]]		; <[64 x [256 x i32]]*> [#uses=0]
- at bishop_mobility_rr45 = external global [64 x [256 x i32]]		; <[64 x [256 x i32]]*> [#uses=0]
- at bishop_value_b = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at rook_value_w = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at plus8dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at mask_abs7_w = external global i64		; <i64*> [#uses=0]
- at rook_value_b = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at minus8dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at mask_abs7_b = external global i64		; <i64*> [#uses=0]
- at queen_value_w = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at queen_value_b = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at white_minor_pieces = external global i64		; <i64*> [#uses=0]
- at black_minor_pieces = external global i64		; <i64*> [#uses=0]
- at not_rook_pawns = external global i64		; <i64*> [#uses=0]
- at dark_squares = external global i64		; <i64*> [#uses=0]
- at b_n_mate_dark_squares = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at b_n_mate_light_squares = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at mate = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at first_ones_8bit = external global [256 x i8]		; <[256 x i8]*> [#uses=0]
- at reduced_material_passer = external global [20 x i32]		; <[20 x i32]*> [#uses=0]
- at supported_passer = external global [8 x i32]		; <[8 x i32]*> [#uses=0]
- at passed_pawn_value = external global [8 x i32]		; <[8 x i32]*> [#uses=0]
- at connected_passed = external global [256 x i8]		; <[256 x i8]*> [#uses=0]
- at black_pawn_race_btm = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at white_pawn_race_wtm = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at black_pawn_race_wtm = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at white_pawn_race_btm = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at obstructed = external global [64 x [64 x i64]]		; <[64 x [64 x i64]]*> [#uses=0]
- at pawn_hash_table = external global %typedef.PAWN_HASH_ENTRY*		; <%typedef.PAWN_HASH_ENTRY**> [#uses=0]
- at pawn_hash_mask = external global i32		; <i32*> [#uses=0]
- at pawn_value_w = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at mask_pawn_isolated = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at mask_pawn_passed_w = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at mask_pawn_protected_w = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at pawn_value_b = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at mask_pawn_passed_b = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at mask_pawn_protected_b = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at unblocked_pawns = external global [9 x i32]		; <[9 x i32]*> [#uses=0]
- at mask_wk_4th = external global i64		; <i64*> [#uses=0]
- at mask_wk_5th = external global i64		; <i64*> [#uses=0]
- at mask_wq_4th = external global i64		; <i64*> [#uses=0]
- at mask_wq_5th = external global i64		; <i64*> [#uses=0]
- at stonewall_white = external global i64		; <i64*> [#uses=0]
- at mask_bk_4th = external global i64		; <i64*> [#uses=0]
- at mask_bk_5th = external global i64		; <i64*> [#uses=0]
- at mask_bq_5th = external global i64		; <i64*> [#uses=0]
- at mask_bq_4th = external global i64		; <i64*> [#uses=0]
- at stonewall_black = external global i64		; <i64*> [#uses=0]
- at last_ones_8bit = external global [256 x i8]		; <[256 x i8]*> [#uses=0]
- at right_side_mask = external global [8 x i64]		; <[8 x i64]*> [#uses=0]
- at left_side_empty_mask = external global [8 x i64]		; <[8 x i64]*> [#uses=0]
- at left_side_mask = external global [8 x i64]		; <[8 x i64]*> [#uses=0]
- at right_side_empty_mask = external global [8 x i64]		; <[8 x i64]*> [#uses=0]
- at pv = external global [65 x %typedef.CHESS_PATH]		; <[65 x %typedef.CHESS_PATH]*> [#uses=0]
- at history_w = external global [4096 x i32]		; <[4096 x i32]*> [#uses=0]
- at history_b = external global [4096 x i32]		; <[4096 x i32]*> [#uses=0]
- at killer_move1 = external global [65 x i32]		; <[65 x i32]*> [#uses=0]
- at killer_count1 = external global [65 x i32]		; <[65 x i32]*> [#uses=0]
- at killer_move2 = external global [65 x i32]		; <[65 x i32]*> [#uses=0]
- at killer_count2 = external global [65 x i32]		; <[65 x i32]*> [#uses=0]
- at current_move = external global [65 x i32]		; <[65 x i32]*> [#uses=0]
- at init_r90 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at init_l90 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at init_l45 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at init_ul45 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at init_r45 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at init_ur45 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at diagonal_length = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at last = external global [65 x i32*]		; <[65 x i32*]*> [#uses=0]
- at move_list = external global [5120 x i32]		; <[5120 x i32]*> [#uses=0]
- at history_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at .str_1.upgrd.1 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_2.upgrd.2 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_3.upgrd.3 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str_5.upgrd.4 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_6.upgrd.5 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at trans_ref_wa = external global %typedef.HASH_ENTRY*		; <%typedef.HASH_ENTRY**> [#uses=0]
- at hash_table_size = external global i32		; <i32*> [#uses=0]
- at trans_ref_wb = external global %typedef.HASH_ENTRY*		; <%typedef.HASH_ENTRY**> [#uses=0]
- at trans_ref_ba = external global %typedef.HASH_ENTRY*		; <%typedef.HASH_ENTRY**> [#uses=0]
- at trans_ref_bb = external global %typedef.HASH_ENTRY*		; <%typedef.HASH_ENTRY**> [#uses=0]
- at pawn_hash_table_size = external global i32		; <i32*> [#uses=0]
- at .str_9.upgrd.6 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at log_hash = external global i32		; <i32*> [#uses=0]
- at log_pawn_hash = external global i32		; <i32*> [#uses=0]
- at hash_maska = external global i32		; <i32*> [#uses=0]
- at hash_maskb = external global i32		; <i32*> [#uses=0]
- at mask_1 = external global i64		; <i64*> [#uses=0]
- at bishop_attacks = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at queen_attacks = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at plus7dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at plus9dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at minus7dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at minus9dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at plus1dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at minus1dir = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at rook_attacks = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at king_attacks_1 = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at king_attacks_2 = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at .ctor_1.upgrd.7 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at .ctor_2 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at rook_mobility_r0 = external global [64 x [256 x i32]]		; <[64 x [256 x i32]]*> [#uses=0]
- at rook_mobility_rl90 = external global [64 x [256 x i32]]		; <[64 x [256 x i32]]*> [#uses=0]
- at initial_position = external global [80 x i8]		; <[80 x i8]*> [#uses=5]
-@"\01a1.0__" = external global [80 x i8]		; <[80 x i8]*> [#uses=0]
-@"\01a2.1__" = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
-@"\01a3.2__" = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
-@"\01a4.3__" = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
-@"\01a5.4__" = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
-@"\01args.5__" = external global [16 x i8*]		; <[16 x i8*]*> [#uses=0]
- at .str_10.upgrd.8 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at w_pawn_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at w_pawn_random32 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at b_pawn_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at b_pawn_random32 = external global [64 x i32]		; <[64 x i32]*> [#uses=0]
- at w_knight_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at b_knight_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at w_bishop_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at b_bishop_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at w_rook_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at b_rook_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at w_queen_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at b_queen_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at w_king_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at b_king_random = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at enpassant_random = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at castle_random_w = external global [2 x i64]		; <[2 x i64]*> [#uses=0]
- at castle_random_b = external global [2 x i64]		; <[2 x i64]*> [#uses=0]
- at set_mask_rl90 = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at set_mask_rl45 = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at set_mask_rr45 = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at transposition_id = external global i8		; <i8*> [#uses=0]
- at mask_2 = external global i64		; <i64*> [#uses=0]
- at mask_3 = external global i64		; <i64*> [#uses=0]
- at mask_4 = external global i64		; <i64*> [#uses=0]
- at mask_8 = external global i64		; <i64*> [#uses=0]
- at mask_16 = external global i64		; <i64*> [#uses=0]
- at mask_32 = external global i64		; <i64*> [#uses=0]
- at mask_72 = external global i64		; <i64*> [#uses=0]
- at mask_80 = external global i64		; <i64*> [#uses=0]
- at mask_85 = external global i64		; <i64*> [#uses=0]
- at mask_96 = external global i64		; <i64*> [#uses=0]
- at mask_107 = external global i64		; <i64*> [#uses=0]
- at mask_108 = external global i64		; <i64*> [#uses=0]
- at mask_112 = external global i64		; <i64*> [#uses=0]
- at mask_118 = external global i64		; <i64*> [#uses=0]
- at mask_120 = external global i64		; <i64*> [#uses=0]
- at mask_121 = external global i64		; <i64*> [#uses=0]
- at mask_127 = external global i64		; <i64*> [#uses=0]
- at mask_clear_entry = external global i64		; <i64*> [#uses=0]
- at clear_mask_rl45 = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at clear_mask_rr45 = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at clear_mask_rl90 = external global [65 x i64]		; <[65 x i64]*> [#uses=0]
- at right_half_mask = external global i64		; <i64*> [#uses=0]
- at left_half_mask = external global i64		; <i64*> [#uses=0]
- at mask_not_rank8 = external global i64		; <i64*> [#uses=0]
- at mask_not_rank1 = external global i64		; <i64*> [#uses=0]
- at center = external global i64		; <i64*> [#uses=0]
- at mask_pawn_connected = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at mask_eptest = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at mask_kingside_attack_w1 = external global i64		; <i64*> [#uses=0]
- at mask_kingside_attack_w2 = external global i64		; <i64*> [#uses=0]
- at mask_queenside_attack_w1 = external global i64		; <i64*> [#uses=0]
- at mask_queenside_attack_w2 = external global i64		; <i64*> [#uses=0]
- at mask_kingside_attack_b1 = external global i64		; <i64*> [#uses=0]
- at mask_kingside_attack_b2 = external global i64		; <i64*> [#uses=0]
- at mask_queenside_attack_b1 = external global i64		; <i64*> [#uses=0]
- at mask_queenside_attack_b2 = external global i64		; <i64*> [#uses=0]
- at pawns_cramp_black = external global i64		; <i64*> [#uses=0]
- at pawns_cramp_white = external global i64		; <i64*> [#uses=0]
- at light_squares = external global i64		; <i64*> [#uses=0]
- at mask_left_edge = external global i64		; <i64*> [#uses=0]
- at mask_right_edge = external global i64		; <i64*> [#uses=0]
- at mask_advance_2_w = external global i64		; <i64*> [#uses=0]
- at mask_advance_2_b = external global i64		; <i64*> [#uses=0]
- at mask_corner_squares = external global i64		; <i64*> [#uses=0]
- at mask_promotion_threat_w = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at mask_promotion_threat_b = external global [64 x i64]		; <[64 x i64]*> [#uses=0]
- at promote_mask_w = external global i64		; <i64*> [#uses=0]
- at promote_mask_b = external global i64		; <i64*> [#uses=0]
- at mask_a1_corner = external global i64		; <i64*> [#uses=0]
- at mask_h1_corner = external global i64		; <i64*> [#uses=0]
- at mask_a8_corner = external global i64		; <i64*> [#uses=0]
- at mask_h8_corner = external global i64		; <i64*> [#uses=0]
- at white_center_pawns = external global i64		; <i64*> [#uses=0]
- at black_center_pawns = external global i64		; <i64*> [#uses=0]
- at wtm_random = external global [2 x i64]		; <[2 x i64]*> [#uses=0]
- at endgame_random_w = external global i64		; <i64*> [#uses=0]
- at endgame_random_b = external global i64		; <i64*> [#uses=0]
- at w_rooks_random = external global i64		; <i64*> [#uses=0]
- at b_rooks_random = external global i64		; <i64*> [#uses=0]
- at .ctor_11 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .ctor_2.upgrd.9 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_1.upgrd.10 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_2.upgrd.11 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_32 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_4.upgrd.12 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_5.upgrd.13 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_6.upgrd.14 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_7.upgrd.15 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_8.upgrd.16 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_9.upgrd.17 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_10.upgrd.18 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_11.upgrd.19 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_12.upgrd.20 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_13 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at num_ponder_moves = external global i32		; <i32*> [#uses=0]
- at ponder_moves = external global [220 x i32]		; <[220 x i32]*> [#uses=0]
- at .str_14.upgrd.21 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_15 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_16 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at auto232 = external global i32		; <i32*> [#uses=0]
- at puzzling = external global i8		; <i8*> [#uses=0]
- at abort_search = external global i8		; <i8*> [#uses=0]
- at .str_24 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at wtm = external global i32		; <i32*> [#uses=0]
- at .str_3.upgrd.22 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_4.upgrd.23 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at end_time = external global i32		; <i32*> [#uses=0]
- at time_type = external global i32		; <i32*> [#uses=0]
- at start_time = external global i32		; <i32*> [#uses=0]
- at .str_6.upgrd.24 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_7.upgrd.25 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at nodes_searched = external global i32		; <i32*> [#uses=0]
- at iteration_depth = external global i32		; <i32*> [#uses=0]
- at searched_this_root_move = external global [256 x i8]		; <[256 x i8]*> [#uses=0]
- at .str_9.upgrd.26 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_10.upgrd.27 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_11.upgrd.28 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_12.upgrd.29 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_14.upgrd.30 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_16.upgrd.31 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at thinking = external global i8		; <i8*> [#uses=0]
- at time_abort = external global i32		; <i32*> [#uses=0]
- at .str_17 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at analyze_move_read = external global i32		; <i32*> [#uses=0]
- at analyze_mode = external global i32		; <i32*> [#uses=0]
- at pondering = external global i8		; <i8*> [#uses=0]
- at auto232_delay = external global i32		; <i32*> [#uses=0]
- at auto_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at .str_19 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_20 = external global [11 x i8]		; <[11 x i8]*> [#uses=0]
- at .str_21 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at ponder_move = external global i32		; <i32*> [#uses=0]
- at predicted = external global i32		; <i32*> [#uses=0]
- at made_predicted_move = external global i32		; <i32*> [#uses=0]
- at opponent_end_time = external global i32		; <i32*> [#uses=0]
- at program_start_time = external global i32		; <i32*> [#uses=0]
- at .str_23 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_24.upgrd.32 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_25 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_26 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_28 = external global [31 x i8]		; <[31 x i8]*> [#uses=0]
- at book_move = external global i32		; <i32*> [#uses=0]
- at elapsed_start = external global i32		; <i32*> [#uses=0]
- at burp = external global i32		; <i32*> [#uses=0]
- at cpu_percent = external global i32		; <i32*> [#uses=0]
- at next_time_check = external global i32		; <i32*> [#uses=0]
- at nodes_between_time_checks = external global i32		; <i32*> [#uses=0]
- at transposition_hits = external global i32		; <i32*> [#uses=0]
- at transposition_probes = external global i32		; <i32*> [#uses=0]
- at tb_probes = external global i32		; <i32*> [#uses=0]
- at tb_probes_successful = external global i32		; <i32*> [#uses=0]
- at check_extensions_done = external global i32		; <i32*> [#uses=0]
- at recapture_extensions_done = external global i32		; <i32*> [#uses=0]
- at passed_pawn_extensions_done = external global i32		; <i32*> [#uses=0]
- at one_reply_extensions_done = external global i32		; <i32*> [#uses=0]
- at program_end_time = external global i32		; <i32*> [#uses=0]
- at root_value = external global i32		; <i32*> [#uses=0]
- at last_search_value = external global i32		; <i32*> [#uses=0]
- at .str_1.upgrd.33 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_2.upgrd.34 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at booking = external global i8		; <i8*> [#uses=0]
- at annotate_mode = external global i32		; <i32*> [#uses=0]
- at .str_4.upgrd.35 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_5.upgrd.36 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at last_pv = external global %typedef.CHESS_PATH		; <%typedef.CHESS_PATH*> [#uses=0]
- at .str_8.upgrd.37 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at root_alpha = external global i32		; <i32*> [#uses=0]
- at last_value = external global i32		; <i32*> [#uses=0]
- at root_beta = external global i32		; <i32*> [#uses=0]
- at root_nodes = external global [256 x i32]		; <[256 x i32]*> [#uses=0]
- at trace_level = external global i32		; <i32*> [#uses=0]
- at .str_9.upgrd.38 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_10.upgrd.39 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at search_failed_high = external global i32		; <i32*> [#uses=0]
- at search_failed_low = external global i32		; <i32*> [#uses=0]
- at nodes_per_second = external global i32		; <i32*> [#uses=0]
- at time_limit = external global i32		; <i32*> [#uses=0]
- at easy_move = external global i32		; <i32*> [#uses=0]
- at noise_level = external global i32		; <i32*> [#uses=0]
- at .str_12.upgrd.40 = external global [34 x i8]		; <[34 x i8]*> [#uses=0]
- at .str_136 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at solution_type = external global i32		; <i32*> [#uses=0]
- at number_of_solutions = external global i32		; <i32*> [#uses=0]
- at solutions = external global [10 x i32]		; <[10 x i32]*> [#uses=0]
- at early_exit = external global i32		; <i32*> [#uses=0]
- at .str_14.upgrd.41 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_15.upgrd.42 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_16.upgrd.43 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at whisper_value = external global i32		; <i32*> [#uses=0]
- at .str_17.upgrd.44 = external global [29 x i8]		; <[29 x i8]*> [#uses=0]
- at .str_19.upgrd.45 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at last_mate_score = external global i32		; <i32*> [#uses=0]
- at search_depth = external global i32		; <i32*> [#uses=0]
- at elapsed_end = external global i32		; <i32*> [#uses=0]
- at .str_20.upgrd.46 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_21.upgrd.47 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_22 = external global [13 x i8]		; <[13 x i8]*> [#uses=0]
- at .str_23.upgrd.48 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_24.upgrd.49 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_25.upgrd.50 = external global [67 x i8]		; <[67 x i8]*> [#uses=0]
- at .str_26.upgrd.51 = external global [69 x i8]		; <[69 x i8]*> [#uses=0]
- at hash_move = external global [65 x i32]		; <[65 x i32]*> [#uses=0]
- at version = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at mode = external global i32		; <i32*> [#uses=0]
- at batch_mode = external global i32		; <i32*> [#uses=0]
- at crafty_rating = external global i32		; <i32*> [#uses=0]
- at opponent_rating = external global i32		; <i32*> [#uses=0]
- at pgn_event = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at pgn_site = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at pgn_date = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at pgn_round = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at pgn_white = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at pgn_white_elo = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at pgn_black = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at pgn_black_elo = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at pgn_result = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at number_auto_kibitzers = external global i32		; <i32*> [#uses=0]
- at auto_kibitz_list = external global [100 x [20 x i8]]		; <[100 x [20 x i8]]*> [#uses=0]
- at number_of_computers = external global i32		; <i32*> [#uses=0]
- at computer_list = external global [100 x [20 x i8]]		; <[100 x [20 x i8]]*> [#uses=0]
- at number_of_GMs = external global i32		; <i32*> [#uses=0]
- at GM_list = external global [100 x [20 x i8]]		; <[100 x [20 x i8]]*> [#uses=0]
- at number_of_IMs = external global i32		; <i32*> [#uses=0]
- at IM_list = external global [100 x [20 x i8]]		; <[100 x [20 x i8]]*> [#uses=0]
- at ics = external global i32		; <i32*> [#uses=0]
- at output_format = external global i32		; <i32*> [#uses=0]
- at EGTBlimit = external global i32		; <i32*> [#uses=0]
- at whisper = external global i32		; <i32*> [#uses=0]
- at channel = external global i32		; <i32*> [#uses=0]
- at new_game = external global i32		; <i32*> [#uses=0]
- at channel_title = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at initialized = external global i32		; <i32*> [#uses=0]
- at kibitz = external global i32		; <i32*> [#uses=0]
- at post = external global i32		; <i32*> [#uses=0]
- at log_id = external global i32		; <i32*> [#uses=0]
- at crafty_is_white = external global i32		; <i32*> [#uses=0]
- at last_opponent_move = external global i32		; <i32*> [#uses=0]
- at search_move = external global i32		; <i32*> [#uses=0]
- at time_used = external global i32		; <i32*> [#uses=0]
- at time_used_opponent = external global i32		; <i32*> [#uses=0]
- at auto_kibitzing = external global i32		; <i32*> [#uses=0]
- at test_mode = external global i32		; <i32*> [#uses=0]
- at resign = external global i8		; <i8*> [#uses=0]
- at resign_counter = external global i8		; <i8*> [#uses=0]
- at resign_count = external global i8		; <i8*> [#uses=0]
- at draw_counter = external global i8		; <i8*> [#uses=0]
- at draw_count = external global i8		; <i8*> [#uses=0]
- at tc_moves = external global i32		; <i32*> [#uses=0]
- at tc_time = external global i32		; <i32*> [#uses=0]
- at tc_time_remaining = external global i32		; <i32*> [#uses=0]
- at tc_moves_remaining = external global i32		; <i32*> [#uses=0]
- at tc_secondary_moves = external global i32		; <i32*> [#uses=0]
- at tc_secondary_time = external global i32		; <i32*> [#uses=0]
- at tc_sudden_death = external global i32		; <i32*> [#uses=0]
- at tc_operator_time = external global i32		; <i32*> [#uses=0]
- at tc_safety_margin = external global i32		; <i32*> [#uses=0]
- at force = external global i32		; <i32*> [#uses=0]
- at over = external global i32		; <i32*> [#uses=0]
- at usage_level = external global i32		; <i32*> [#uses=0]
- at audible_alarm = external global i8		; <i8*> [#uses=0]
- at ansi = external global i32		; <i32*> [#uses=0]
- at book_accept_mask = external global i32		; <i32*> [#uses=0]
- at book_reject_mask = external global i32		; <i32*> [#uses=0]
- at book_random = external global i32		; <i32*> [#uses=0]
- at book_search_trigger = external global i32		; <i32*> [#uses=0]
- at learning = external global i32		; <i32*> [#uses=0]
- at show_book = external global i32		; <i32*> [#uses=0]
- at book_selection_width = external global i32		; <i32*> [#uses=0]
- at ponder = external global i32		; <i32*> [#uses=0]
- at verbosity_level = external global i32		; <i32*> [#uses=0]
- at push_extensions = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_28.upgrd.52 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_3.upgrd.53 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at display = external global %typedef.CHESS_POSITION		; <%typedef.CHESS_POSITION*> [#uses=0]
- at .str_4.upgrd.54 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at opponent_start_time = external global i32		; <i32*> [#uses=0]
- at .str_8.upgrd.55 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_9.upgrd.56 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_18 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_19.upgrd.57 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_2013 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_21.upgrd.58 = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
- at .str_22.upgrd.59 = external global [29 x i8]		; <[29 x i8]*> [#uses=0]
- at .str_23.upgrd.60 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at whisper_text = external global [500 x i8]		; <[500 x i8]*> [#uses=0]
- at .str_24.upgrd.61 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_25.upgrd.62 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_26.upgrd.63 = external global [11 x i8]		; <[11 x i8]*> [#uses=0]
- at .str_28.upgrd.64 = external global [13 x i8]		; <[13 x i8]*> [#uses=0]
- at .str_29 = external global [13 x i8]		; <[13 x i8]*> [#uses=0]
- at .str_30 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_31 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_32.upgrd.65 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_36 = external global [3 x i8]		; <[3 x i8]*> [#uses=1]
- at .str_37 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_44 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_45 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_49 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_52 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at previous_search_value = external global i32		; <i32*> [#uses=0]
- at .str_64 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at whisper_depth = external global i32		; <i32*> [#uses=0]
- at .str_65 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_66 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at total_moves = external global i32		; <i32*> [#uses=0]
- at book_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at books_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at book_lrn_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at position_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at position_lrn_file = external global %struct.__sFILE*		; <%struct.__sFILE**> [#uses=0]
- at log_filename = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at history_filename = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at book_path = external global [128 x i8]		; <[128 x i8]*> [#uses=0]
- at log_path = external global [128 x i8]		; <[128 x i8]*> [#uses=0]
- at tb_path = external global [128 x i8]		; <[128 x i8]*> [#uses=0]
- at cmd_buffer = external global [512 x i8]		; <[512 x i8]*> [#uses=0]
- at root_move = external global i32		; <i32*> [#uses=0]
- at hint = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at absolute_time_limit = external global i32		; <i32*> [#uses=0]
- at search_time_limit = external global i32		; <i32*> [#uses=0]
- at in_check = external global [65 x i8]		; <[65 x i8]*> [#uses=0]
- at extended_reason = external global [65 x i8]		; <[65 x i8]*> [#uses=0]
- at current_phase = external global [65 x i8]		; <[65 x i8]*> [#uses=0]
- at sort_value = external global [256 x i32]		; <[256 x i32]*> [#uses=0]
- at next_status = external global [65 x %typedef.NEXT_MOVE]		; <[65 x %typedef.NEXT_MOVE]*> [#uses=0]
- at save_hash_key = external global [67 x i64]		; <[67 x i64]*> [#uses=0]
- at save_pawn_hash_key = external global [67 x i32]		; <[67 x i32]*> [#uses=0]
- at pawn_advance = external global [8 x i32]		; <[8 x i32]*> [#uses=0]
- at bit_move = external global i64		; <i64*> [#uses=0]
- at .str_1.upgrd.66 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_2.upgrd.67 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_3.upgrd.68 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_1.upgrd.69 = external global [34 x i8]		; <[34 x i8]*> [#uses=0]
- at .str_2.upgrd.70 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_2.upgrd.71 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_1.upgrd.72 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_2.upgrd.73 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_3.upgrd.74 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_4.upgrd.75 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_5.upgrd.76 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_615 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_7.upgrd.77 = external global [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str_10.upgrd.78 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_11.upgrd.79 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_12.upgrd.80 = external global [18 x i8]		; <[18 x i8]*> [#uses=0]
- at .str_1318 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_1419 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_15.upgrd.81 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_16.upgrd.82 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_19.upgrd.83 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_20.upgrd.84 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_2222 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_2323 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_25.upgrd.85 = external global [29 x i8]		; <[29 x i8]*> [#uses=0]
- at .str_27 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_28.upgrd.86 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_29.upgrd.87 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_30.upgrd.88 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_31.upgrd.89 = external global [18 x i8]		; <[18 x i8]*> [#uses=0]
- at .str_32.upgrd.90 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_33 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_34 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_35 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_36.upgrd.91 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_37.upgrd.92 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_38 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_41 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_42 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_43 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_44.upgrd.93 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_4525 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_46 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_47 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_48 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_49.upgrd.94 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_50 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_51 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_52.upgrd.95 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_53 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_54 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_55 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str_56 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_57 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_58 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_59 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_60 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_61 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_62 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_63 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_64.upgrd.96 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at .str_66.upgrd.97 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_67 = external global [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str_68 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_69 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_71 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_72 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_73 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_74 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_75 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_81 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_83 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_84 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_86 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_87 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_89 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_90 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_91 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_92 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_94 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at .str_95 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_96 = external global [34 x i8]		; <[34 x i8]*> [#uses=0]
- at .str_97 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_98 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_100 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_101 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_102 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_103 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_104 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_105 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_106 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_107 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_108 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_109 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_110 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_111 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_112 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_113 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_114 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_115 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_116 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_117 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_118 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_119 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_120 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_121 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_122 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_123 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_124 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_125 = external global [65 x i8]		; <[65 x i8]*> [#uses=0]
- at .str_126 = external global [65 x i8]		; <[65 x i8]*> [#uses=0]
- at .str_127 = external global [69 x i8]		; <[69 x i8]*> [#uses=0]
- at .str_128 = external global [66 x i8]		; <[66 x i8]*> [#uses=0]
- at .str_129 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_130 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_131 = external global [67 x i8]		; <[67 x i8]*> [#uses=0]
- at .str_132 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_133 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_134 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_135 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_136.upgrd.98 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_137 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_138 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_139 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_140 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_141 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_142 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_143 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_144 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_145 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_146 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_147 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_148 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_149 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_150 = external global [65 x i8]		; <[65 x i8]*> [#uses=0]
- at .str_151 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_152 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_153 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_154 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_156 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_157 = external global [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str_158 = external global [71 x i8]		; <[71 x i8]*> [#uses=0]
- at .str_159 = external global [72 x i8]		; <[72 x i8]*> [#uses=0]
- at .str_160 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_161 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_162 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_163 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_164 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_165 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_166 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_167 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_168 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_169 = external global [65 x i8]		; <[65 x i8]*> [#uses=0]
- at .str_170 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_171 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_172 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_173 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_174 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_175 = external global [70 x i8]		; <[70 x i8]*> [#uses=0]
- at .str_176 = external global [67 x i8]		; <[67 x i8]*> [#uses=0]
- at .str_177 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_178 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_180 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_181 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_182 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_183 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_184 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_185 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_186 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_187 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_188 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_189 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_190 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_191 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_192 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_193 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_194 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str_195 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_196 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_197 = external global [11 x i8]		; <[11 x i8]*> [#uses=0]
- at .str_198 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_201 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_202 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_203 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_204 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_206 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_207 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_208 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_209 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_210 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_211 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_213 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_214 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_215 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_216 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_218 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_219 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_220 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_221 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at .str_222 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_223 = external global [66 x i8]		; <[66 x i8]*> [#uses=0]
- at .str_224 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_225 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_226 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_227 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_228 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_229 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_230 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_231 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_232 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_233 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_234 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_235 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_236 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_237 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_238 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_239 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_240 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_241 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_242 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_243 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_245 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_246 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_247 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_248 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_249 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_250 = external global [45 x i8]		; <[45 x i8]*> [#uses=0]
- at .str_253 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_254 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_256 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_258 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_259 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_261 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_262 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_263 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_266 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_267 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_268 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_270 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_271 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_272 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_273 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_274 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_275 = external global [44 x i8]		; <[44 x i8]*> [#uses=0]
- at .str_276 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_277 = external global [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str_278 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_279 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_280 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_281 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_282 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_283 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_284 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_285 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_286 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_287 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_288 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_289 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_290 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_291 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_292 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_293 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_294 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_295 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_296 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_297 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_298 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_299 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_300 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_301 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_302 = external global [18 x i8]		; <[18 x i8]*> [#uses=0]
- at .str_304 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_305 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_306 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_308 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_310 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_311 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_312 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_313 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_314 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_315 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_316 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_317 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_319 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_320 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_321 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_322 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_323 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at .str_325 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_327 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_328 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_329 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_330 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_331 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_332 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_333 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_334 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_335 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_336 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_337 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_338 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_339 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_340 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_341 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_342 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_343 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_344 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_345 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_346 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_347 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_348 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_349 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_350 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_351 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_352 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_353 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_354 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_355 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_356 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_357 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_358 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_359 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_360 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_362 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_363 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_364 = external global [56 x i8]		; <[56 x i8]*> [#uses=0]
- at .str_365 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_366 = external global [64 x i8]		; <[64 x i8]*> [#uses=0]
- at .str_367 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_368 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_369 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_370 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_371 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_372 = external global [58 x i8]		; <[58 x i8]*> [#uses=0]
- at .str_373 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_374 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_375 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_376 = external global [63 x i8]		; <[63 x i8]*> [#uses=0]
- at .str_377 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_378 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_379 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_380 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_381 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_382 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_383 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_384 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_385 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_387 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_388 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_389 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_390 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_391 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_392 = external global [71 x i8]		; <[71 x i8]*> [#uses=0]
- at .str_393 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_394 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_395 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_396 = external global [60 x i8]		; <[60 x i8]*> [#uses=0]
- at .str_397 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_398 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_399 = external global [67 x i8]		; <[67 x i8]*> [#uses=0]
- at .str_400 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_401 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_402 = external global [62 x i8]		; <[62 x i8]*> [#uses=0]
- at .str_403 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_404 = external global [59 x i8]		; <[59 x i8]*> [#uses=0]
- at .str_405 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_406 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_407 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_408 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_409 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_410 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_411 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_412 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_413 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_414 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_421 = external global [53 x i8]		; <[53 x i8]*> [#uses=0]
- at .str_422 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_423 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_424 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_426 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_427 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_429 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_430 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_431 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_432 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_433 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_434 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_435 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_436 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_437 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_438 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_440 = external global [44 x i8]		; <[44 x i8]*> [#uses=0]
- at .str_445 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_446 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_447 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_448 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_449 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_450 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_451 = external global [44 x i8]		; <[44 x i8]*> [#uses=0]
- at .str_452 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_453 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_454 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_455 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_456 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_459 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_460 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str_461 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_462 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_463 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_466 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_467 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_468 = external global [45 x i8]		; <[45 x i8]*> [#uses=0]
- at .str_469 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_470 = external global [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str_474 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_477 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_480 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_483 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_485 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_487 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str_490 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_494 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_495 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_497 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_498 = external global [13 x i8]		; <[13 x i8]*> [#uses=0]
- at .str_507 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_508 = external global [11 x i8]		; <[11 x i8]*> [#uses=0]
- at .str_509 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_510 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at .str_511 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_512 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str_513 = external global [18 x i8]		; <[18 x i8]*> [#uses=0]
- at .str_514 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_515 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_516 = external global [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str_517 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_519 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_520 = external global [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str_521 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_522 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_523 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_524 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_525 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_526 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_527 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_528 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_529 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_530 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_531 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_532 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_533 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at .str_534 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_535 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_536 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_537 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_539 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_540 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_541 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_542 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_543 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_544 = external global [49 x i8]		; <[49 x i8]*> [#uses=0]
- at .str_546 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_550 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_551 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_552 = external global [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str_553 = external global [52 x i8]		; <[52 x i8]*> [#uses=0]
- at .str_554 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_555 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_556 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_557 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_559 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_560 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_562 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_564 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_565 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_567 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_568 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_570 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_571 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_572 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str_574 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at .str_576 = external global [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str_577 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_578 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_579 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_580 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_581 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_582 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_583 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_584 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_586 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_587 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_589 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_590 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_591 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_592 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_596 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_597 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_598 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_599 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_605 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_610 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_613 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_616 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_621 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_622 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_623 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_624 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_625 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_626 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_628 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str_629 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_630 = external global [13 x i8]		; <[13 x i8]*> [#uses=0]
- at .str_631 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_632 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_633 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_634 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_635 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_636 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .str_637 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_639 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_643 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at .str_644 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_645 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_646 = external global [1 x i8]		; <[1 x i8]*> [#uses=0]
- at .str_649 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_654 = external global [2 x i8]		; <[2 x i8]*> [#uses=1]
- at .str_656 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_658 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_660 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_662 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_664 = external global [2 x i8]		; <[2 x i8]*> [#uses=0]
- at .str_666 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_667 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_669 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_670 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at .str_671 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_672 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_674 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_675 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_676 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str_680 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_682 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_683 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at .str_684 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_685 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_686 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_687 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_688 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_689 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_690 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_691 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_692 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at .str_694 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_695 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_697 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_698 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_700 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_701 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_702 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_703 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_704 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_707 = external global [4 x i8]		; <[4 x i8]*> [#uses=0]
- at .str_708 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_709 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_710 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at .str_711 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at .str_722 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_723 = external global [34 x i8]		; <[34 x i8]*> [#uses=0]
- at .str_726 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_727 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_728 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_729 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_730 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_732 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_734 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_735 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_736 = external global [61 x i8]		; <[61 x i8]*> [#uses=0]
- at .str_738 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_739 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_740 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_741 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_742 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_743 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_744 = external global [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str_745 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_747 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_748 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_750 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
-@"\01text_move.0__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
-@"\01new_text.1__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_1.upgrd.99 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
-@"\01text_move.2__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_1.upgrd.100 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_2.upgrd.101 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_3.upgrd.102 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_130.upgrd.103 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_231.upgrd.104 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_3.upgrd.105 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_4.upgrd.106 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_7.upgrd.107 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
-@"\01hashing_pawns.0__" = external global i32		; <i32*> [#uses=0]
-@"\01hashing_opening.1__" = external global i32		; <i32*> [#uses=0]
-@"\01hashing_middle_game.2__" = external global i32		; <i32*> [#uses=0]
-@"\01hashing_end_game.3__" = external global i32		; <i32*> [#uses=0]
-@"\01last_wtm.4__" = external global i32		; <i32*> [#uses=0]
- at .str_1.upgrd.108 = external global [37 x i8]		; <[37 x i8]*> [#uses=0]
- at .str_1.upgrd.109 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_1.upgrd.110 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_2.upgrd.111 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_3.upgrd.112 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str_4.upgrd.113 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str_5.upgrd.114 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_6.upgrd.115 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_7.upgrd.116 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_934 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_1.upgrd.117 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_3.upgrd.118 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_1.upgrd.119 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_2.upgrd.120 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_4.upgrd.121 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_5.upgrd.122 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_1.upgrd.123 = external global [11 x i8]		; <[11 x i8]*> [#uses=0]
- at .str_2.upgrd.124 = external global [27 x i8]		; <[27 x i8]*> [#uses=0]
- at .str_7.upgrd.125 = external global [29 x i8]		; <[29 x i8]*> [#uses=0]
- at .str_10.upgrd.126 = external global [34 x i8]		; <[34 x i8]*> [#uses=0]
- at .str_1141 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_12.upgrd.127 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_14.upgrd.128 = external global [20 x i8]		; <[20 x i8]*> [#uses=0]
- at .str_1542 = external global [17 x i8]		; <[17 x i8]*> [#uses=0]
- at .ctor_1.upgrd.129 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_1.upgrd.130 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_3.upgrd.131 = external global [21 x i8]		; <[21 x i8]*> [#uses=0]
- at .str_4.upgrd.132 = external global [25 x i8]		; <[25 x i8]*> [#uses=0]
- at .str_5.upgrd.133 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_6.upgrd.134 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
- at .str_143.upgrd.135 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_2.upgrd.136 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_1.upgrd.137 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_2.upgrd.138 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at bit_move44 = external global i64		; <i64*> [#uses=0]
- at .str_1.upgrd.139 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_248.upgrd.140 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_349.upgrd.141 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .ctor_1.upgrd.142 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_5.upgrd.143 = external global [43 x i8]		; <[43 x i8]*> [#uses=0]
- at .str_6.upgrd.144 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_751 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_852 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at .str_9.upgrd.145 = external global [42 x i8]		; <[42 x i8]*> [#uses=0]
- at .str_10.upgrd.146 = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
-@"\01out.0__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_1153 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_12.upgrd.147 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_13.upgrd.148 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_14.upgrd.149 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_15.upgrd.150 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_16.upgrd.151 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_17.upgrd.152 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
-@"\01out.1__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_18.upgrd.153 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_19.upgrd.154 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_20.upgrd.155 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_21.upgrd.156 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_2254 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_2355 = external global [8 x i8]		; <[8 x i8]*> [#uses=0]
- at .str_24.upgrd.157 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
- at .str_25.upgrd.158 = external global [45 x i8]		; <[45 x i8]*> [#uses=0]
- at .str_26.upgrd.159 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
-@"\01out.2__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_31.upgrd.160 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
-@"\01out.3__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
-@"\01out.4__" = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_3457 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_35.upgrd.161 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_36.upgrd.162 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_37.upgrd.163 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_41.upgrd.164 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_45.upgrd.165 = external global [55 x i8]		; <[55 x i8]*> [#uses=0]
-@"\01save_book_selection_width.5__" = external global i32		; <i32*> [#uses=0]
-@"\01save_book_random.6__" = external global i32		; <i32*> [#uses=0]
-@"\01save_whisper.7__" = external global i32		; <i32*> [#uses=0]
-@"\01save_kibitz.8__" = external global i32		; <i32*> [#uses=0]
-@"\01save_channel.9__" = external global i32		; <i32*> [#uses=0]
-@"\01save_resign.10" = external global i32		; <i32*> [#uses=0]
-@"\01save_resign_count.11" = external global i32		; <i32*> [#uses=0]
-@"\01save_draw_count.12" = external global i32		; <i32*> [#uses=0]
-@"\01save_learning.13" = external global i32		; <i32*> [#uses=0]
- at .str_49.upgrd.166 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_51.upgrd.167 = external global [44 x i8]		; <[44 x i8]*> [#uses=0]
-@"\01x.14" = external global [55 x i32]		; <[55 x i32]*> [#uses=0]
-@"\01init.15.b" = external global i1		; <i1*> [#uses=0]
-@"\01y.16" = external global [55 x i32]		; <[55 x i32]*> [#uses=0]
-@"\01j.17" = external global i32		; <i32*> [#uses=0]
-@"\01k.18" = external global i32		; <i32*> [#uses=0]
- at .str_52.upgrd.168 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
-@"\01text.19" = external global [128 x i8]		; <[128 x i8]*> [#uses=0]
- at .str_5659 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at .str_62.upgrd.169 = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at .str_6662 = external global [5 x i8]		; <[5 x i8]*> [#uses=0]
- at .str_68.upgrd.170 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_69.upgrd.171 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_70 = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
- at .str_72.upgrd.172 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_74.upgrd.173 = external global [23 x i8]		; <[23 x i8]*> [#uses=0]
- at .str_76 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_78 = external global [57 x i8]		; <[57 x i8]*> [#uses=0]
- at .str_80 = external global [45 x i8]		; <[45 x i8]*> [#uses=0]
- at .str_82 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_84.upgrd.174 = external global [10 x i8]		; <[10 x i8]*> [#uses=0]
- at .str_86.upgrd.175 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_88 = external global [7 x i8]		; <[7 x i8]*> [#uses=0]
- at .str_90.upgrd.176 = external global [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str_92.upgrd.177 = external global [19 x i8]		; <[19 x i8]*> [#uses=0]
- at .str_94.upgrd.178 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str_95.upgrd.179 = external global [48 x i8]		; <[48 x i8]*> [#uses=0]
- at .str_97.upgrd.180 = external global [18 x i8]		; <[18 x i8]*> [#uses=0]
- at .str_98.upgrd.181 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_100.upgrd.182 = external global [22 x i8]		; <[22 x i8]*> [#uses=0]
- at .str_163.upgrd.183 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_2.upgrd.184 = external global [38 x i8]		; <[38 x i8]*> [#uses=0]
- at .str_3.upgrd.185 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_4.upgrd.186 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_5.upgrd.187 = external global [51 x i8]		; <[51 x i8]*> [#uses=0]
- at .str_6.upgrd.188 = external global [30 x i8]		; <[30 x i8]*> [#uses=0]
- at .str_7.upgrd.189 = external global [28 x i8]		; <[28 x i8]*> [#uses=0]
- at .str_8.upgrd.190 = external global [33 x i8]		; <[33 x i8]*> [#uses=0]
- at .str_9.upgrd.191 = external global [54 x i8]		; <[54 x i8]*> [#uses=0]
- at .str_10.upgrd.192 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_11.upgrd.193 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_12.upgrd.194 = external global [47 x i8]		; <[47 x i8]*> [#uses=0]
- at .str_13.upgrd.195 = external global [46 x i8]		; <[46 x i8]*> [#uses=0]
- at .str_14.upgrd.196 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_15.upgrd.197 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_16.upgrd.198 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_17.upgrd.199 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_18.upgrd.200 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_19.upgrd.201 = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
- at .str_20.upgrd.202 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_22.upgrd.203 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_23.upgrd.204 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_24.upgrd.205 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_26.upgrd.206 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_27.upgrd.207 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_28.upgrd.208 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_30.upgrd.209 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_31.upgrd.210 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_32.upgrd.211 = external global [36 x i8]		; <[36 x i8]*> [#uses=0]
- at .str_33.upgrd.212 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_34.upgrd.213 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_3565 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_36.upgrd.214 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_37.upgrd.215 = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
- at .str_38.upgrd.216 = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
- at .str_39 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_40 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_41.upgrd.217 = external global [40 x i8]		; <[40 x i8]*> [#uses=0]
- at .str_42.upgrd.218 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_43.upgrd.219 = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
- at .str_44.upgrd.220 = external global [41 x i8]		; <[41 x i8]*> [#uses=0]
- at .str_45.upgrd.221 = external global [39 x i8]		; <[39 x i8]*> [#uses=0]
- at .str_46.upgrd.222 = external global [35 x i8]		; <[35 x i8]*> [#uses=0]
- at .str_47.upgrd.223 = external global [50 x i8]		; <[50 x i8]*> [#uses=0]
- at .str_48.upgrd.224 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
- at .str_49.upgrd.225 = external global [31 x i8]		; <[31 x i8]*> [#uses=0]
- at .str_50.upgrd.226 = external global [15 x i8]		; <[15 x i8]*> [#uses=0]
- at .str_51.upgrd.227 = external global [6 x i8]		; <[6 x i8]*> [#uses=0]
- at .str_52.upgrd.228 = external global [24 x i8]		; <[24 x i8]*> [#uses=0]
- at .str_53.upgrd.229 = external global [9 x i8]		; <[9 x i8]*> [#uses=0]
-
-declare i64 @AttacksFrom(i32, i32)
-
-declare i64 @AttacksTo(i32)
-
-declare i32 @Attacked(i32, i32)
-
-declare i64 @Mask(i32)
-
-declare i32 @PopCnt(i64)
-
-declare i32 @FirstOne(i64)
-
-declare i32 @LastOne(i64)
-
-declare i32 @DrawScore()
-
-declare i32 @Drawn(i32)
-
-declare i8* @strchr(i8*, i32)
-
-declare i32 @strcmp(i8*, i8*)
-
-declare i32 @strlen(i8*)
-
-declare i32 @printf(i8*, ...)
-
-declare void @Edit()
-
-declare void @llvm.memcpy(i8*, i8*, i32, i32)
-
-declare i32 @fflush(%struct.__sFILE*)
-
-declare i32 @Read(i32, i8*)
-
-declare i32 @ReadParse(i8*, i8**, i8*)
-
-declare void @DisplayChessBoard(%struct.__sFILE*, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8)
-
-declare void @SetChessBitBoards(%typedef.SEARCH_POSITION*)
-
-declare i32 @EnPrise(i32, i32)
-
-declare i64 @SwapXray(i64, i32, i32)
-
-declare i32 @Evaluate(i32, i32, i32, i32)
-
-declare i32 @EvaluateMate()
-
-declare i32 @EvaluatePawns()
-
-declare i32 @EvaluatePassedPawns()
-
-declare i32 @EvaluatePassedPawnRaces(i32)
-
-declare i32 @Swap(i32, i32, i32)
-
-declare i32 @EvaluateDevelopment(i32)
-
-declare i32 @EvaluateDraws()
-
-declare i32 @HasOpposition(i32, i32, i32)
-
-declare void @HistoryBest(i32, i32, i32)
-
-declare void @HistoryRefutation(i32, i32, i32)
-
-declare i32 @sprintf(i8*, i8*, ...)
-
-declare void @Initialize(i32)
-
-declare void @InitializeZeroMasks()
-
-declare void @InitializeMasks()
-
-declare void @InitializeRandomHash()
-
-declare void @InitializeAttackBoards()
-
-declare void @InitializePawnMasks()
-
-declare void @InitializePieceMasks()
-
-declare void @InitializeChessBoard(%typedef.SEARCH_POSITION*)
-
-declare %struct.__sFILE* @fopen(i8*, i8*)
-
-define i32 @Option() {
-no_exit.53.outer:
-	%tmp.4747 = shl i32 7, 3		; <i32> [#uses=1]
-	%tmp.4779 = icmp eq %struct.__sFILE* getelementptr ([0 x %struct.__sFILE]* @__sF, i32 0, i32 1), null		; <i1> [#uses=2]
-	br label %no_exit.53
-no_exit.53:		; preds = %else.166, %else.168, %then.360, %no_exit.53.outer
-	%file.2.3.3.ph = phi i32 [ 0, %no_exit.53.outer ], [ %inc.551688, %then.360 ], [ %inc.551701, %else.168 ], [ %file.2.3.3.ph, %else.166 ]		; <i32> [#uses=2]
-	%nempty.5.3.ph = phi i32 [ 0, %no_exit.53.outer ], [ %nempty.5.3, %then.360 ], [ %nempty.5.3, %else.168 ], [ %nempty.5.3.ph, %else.166 ]		; <i32> [#uses=2]
-	%indvar2053.ui = phi i32 [ 0, %no_exit.53.outer ], [ 0, %then.360 ], [ 0, %else.168 ], [ %indvar.next2054, %else.166 ]		; <i32> [#uses=2]
-	%indvar2053 = bitcast i32 %indvar2053.ui to i32		; <i32> [#uses=2]
-	%file.2.3.3 = add i32 %indvar2053, %file.2.3.3.ph		; <i32> [#uses=4]
-	%nempty.5.3 = add i32 %indvar2053, %nempty.5.3.ph		; <i32> [#uses=3]
-	%tmp.4749 = add i32 %file.2.3.3, %tmp.4747		; <i32> [#uses=1]
-	%tmp.4750 = getelementptr %typedef.CHESS_POSITION* @search, i32 0, i32 22, i32 %tmp.4749		; <i8*> [#uses=3]
-	%tmp.4751 = load i8* %tmp.4750		; <i8> [#uses=1]
-	%tmp.4752 = icmp eq i8 %tmp.4751, 0		; <i1> [#uses=1]
-	br i1 %tmp.4752, label %else.166, label %then.357
-then.357:		; preds = %no_exit.53
-	%tmp.4755 = icmp eq i32 %nempty.5.3, 0		; <i1> [#uses=1]
-	br i1 %tmp.4755, label %endif.358, label %then.358
-then.358:		; preds = %then.357
-	ret i32 0
-endif.358:		; preds = %then.357
-	br i1 %tmp.4779, label %else.168, label %then.360
-then.360:		; preds = %endif.358
-	%tmp.4791 = load i8* %tmp.4750		; <i8> [#uses=1]
-	%tmp.4792 = sext i8 %tmp.4791 to i32		; <i32> [#uses=1]
-	%tmp.4793 = add i32 %tmp.4792, 7		; <i32> [#uses=1]
-	%tmp.4794 = getelementptr [15 x i8]* null, i32 0, i32 %tmp.4793		; <i8*> [#uses=1]
-	%tmp.4795 = load i8* %tmp.4794		; <i8> [#uses=1]
-	%tmp.4796 = sext i8 %tmp.4795 to i32		; <i32> [#uses=1]
-	%tmp.4781 = call i32 (%struct.__sFILE*, i8*, ...)* @fprintf( %struct.__sFILE* getelementptr ([0 x %struct.__sFILE]* @__sF, i32 0, i32 1), i8* getelementptr ([3 x i8]* @.str_36, i32 0, i32 0), i32 %tmp.4796 )		; <i32> [#uses=0]
-	%inc.551688 = add i32 %file.2.3.3, 1		; <i32> [#uses=2]
-	%tmp.47421699 = icmp slt i32 %inc.551688, 8		; <i1> [#uses=1]
-	br i1 %tmp.47421699, label %no_exit.53, label %loopexit.56
-else.168:		; preds = %endif.358
-	%tmp.4799 = call i32 @strlen( i8* getelementptr ([80 x i8]* @initial_position, i32 0, i32 0) )		; <i32> [#uses=2]
-	%gep.upgrd.230 = zext i32 %tmp.4799 to i64		; <i64> [#uses=1]
-	%tmp.4802 = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.230		; <i8*> [#uses=1]
-	%tmp.4811 = load i8* %tmp.4750		; <i8> [#uses=1]
-	%tmp.4812 = sext i8 %tmp.4811 to i32		; <i32> [#uses=1]
-	%tmp.4813 = add i32 %tmp.4812, 7		; <i32> [#uses=1]
-	%tmp.4814 = getelementptr [15 x i8]* null, i32 0, i32 %tmp.4813		; <i8*> [#uses=1]
-	%tmp.4815 = load i8* %tmp.4814		; <i8> [#uses=1]
-	store i8 %tmp.4815, i8* %tmp.4802
-	%tmp.4802.sum = add i32 %tmp.4799, 1		; <i32> [#uses=1]
-	%gep.upgrd.231 = zext i32 %tmp.4802.sum to i64		; <i64> [#uses=1]
-	%tmp.4802.end = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.231		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp.4802.end
-	%inc.551701 = add i32 %file.2.3.3, 1		; <i32> [#uses=2]
-	%tmp.47421703 = icmp slt i32 %inc.551701, 8		; <i1> [#uses=1]
-	br i1 %tmp.47421703, label %no_exit.53, label %loopexit.56
-else.166:		; preds = %no_exit.53
-	%inc.55 = add i32 %file.2.3.3, 1		; <i32> [#uses=1]
-	%tmp.47421705 = icmp slt i32 %inc.55, 8		; <i1> [#uses=1]
-	%indvar.next2054 = add i32 %indvar2053.ui, 1		; <i32> [#uses=1]
-	br i1 %tmp.47421705, label %no_exit.53, label %loopexit.56
-loopexit.56:		; preds = %else.166, %else.168, %then.360
-	br i1 %tmp.4779, label %else.169, label %then.361
-then.361:		; preds = %loopexit.56
-	%tmp.4822 = call i32 @fwrite( i8* getelementptr ([2 x i8]* @.str_654, i32 0, i32 0), i32 1, i32 1, %struct.__sFILE* getelementptr ([0 x %struct.__sFILE]* @__sF, i32 0, i32 1) )		; <i32> [#uses=0]
-	%dec.101707 = add i32 7, -1		; <i32> [#uses=1]
-	%tmp.47391709 = icmp sgt i32 %dec.101707, -1		; <i1> [#uses=0]
-	ret i32 0
-else.169:		; preds = %loopexit.56
-	%tmp.4827 = call i32 @strlen( i8* getelementptr ([80 x i8]* @initial_position, i32 0, i32 0) )		; <i32> [#uses=2]
-	%gep.upgrd.232 = zext i32 %tmp.4827 to i64		; <i64> [#uses=1]
-	%tmp.4830 = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.232		; <i8*> [#uses=1]
-	store i8 47, i8* %tmp.4830
-	%tmp.4830.sum = add i32 %tmp.4827, 1		; <i32> [#uses=1]
-	%gep.upgrd.233 = zext i32 %tmp.4830.sum to i64		; <i64> [#uses=1]
-	%tmp.4830.end = getelementptr [80 x i8]* @initial_position, i32 0, i64 %gep.upgrd.233		; <i8*> [#uses=1]
-	store i8 0, i8* %tmp.4830.end
-	%dec.10 = add i32 7, -1		; <i32> [#uses=1]
-	%tmp.47391711 = icmp sgt i32 %dec.10, -1		; <i1> [#uses=0]
-	ret i32 0
-}
-
-declare void @InitializeHashTables()
-
-declare i32 @InitializeFindAttacks(i32, i32, i32)
-
-declare void @SetBoard(i32, i8**, i32)
-
-declare i32 @KingPawnSquare(i32, i32, i32, i32)
-
-declare i64 @Random64()
-
-declare i32 @Random32()
-
-declare i8* @strcpy(i8*, i8*)
-
-declare i32 @InputMove(i8*, i32, i32, i32, i32)
-
-declare i32 @InputMoveICS(i8*, i32, i32, i32, i32)
-
-declare i32* @GenerateCaptures(i32, i32, i32*)
-
-declare i32* @GenerateNonCaptures(i32, i32, i32*)
-
-declare void @MakeMove(i32, i32, i32)
-
-declare void @UnMakeMove(i32, i32, i32)
-
-declare void @Interrupt(i32)
-
-declare i32 @GetTime(i32)
-
-declare i8* @DisplayTime(i32)
-
-declare i8* @OutputMoveICS(i32*)
-
-declare void @Delay(i32)
-
-declare i32 @fprintf(%struct.__sFILE*, i8*, ...)
-
-declare void @SignalInterrupt(i32)
-
-declare void (i32)* @signal(i32, void (i32)*)
-
-declare i32 @Iterate(i32, i32, i32)
-
-declare void @PreEvaluate(i32)
-
-declare void @RootMoveList(i32)
-
-declare i8* @OutputMove(i32*, i32, i32)
-
-declare void @TimeSet(i32)
-
-declare void @StorePV(i32, i32)
-
-declare i32 @SearchRoot(i32, i32, i32, i32)
-
-declare void @Whisper(i32, i32, i32, i32, i32, i32, i8*)
-
-declare i8* @DisplayEvaluation(i32)
-
-declare i32 @LookUp(i32, i32, i32, i32*, i32*)
-
-declare i8* @strstr(i8*, i8*)
-
-declare i32 @main(i32, i8**)
-
-declare void @__main()
-
-declare i32 @atoi(i8*)
-
-declare void @NewGame(i32)
-
-declare i32 @Ponder(i32)
-
-declare i32 @fseek(%struct.__sFILE*, i32, i32)
-
-declare void @MakeMoveRoot(i32, i32)
-
-declare i32 @RepetitionDraw(i32)
-
-declare i8* @Reverse()
-
-declare i8* @Normal()
-
-declare void @TimeAdjust(i32, i32)
-
-declare void @ValidatePosition(i32, i32, i8*)
-
-declare i32 @ValidMove(i32, i32, i32)
-
-declare i32* @GenerateCheckEvasions(i32, i32, i32*)
-
-declare i64 @InterposeSquares(i32, i32, i32)
-
-declare i32 @PinnedOnKing(i32, i32)
-
-declare i32 @NextMove(i32, i32)
-
-declare i32 @NextEvasion(i32, i32)
-
-declare i32 @NextRootMove(i32)
-
-declare i32 @TimeCheck(i32)
-
-declare i32 @strncmp(i8*, i8*, i32)
-
-declare void @exit(i32)
-
-declare i32 @OptionMatch(i8*, i8*)
-
-declare i32 @fclose(%struct.__sFILE*)
-
-declare i32 @ParseTime(i8*)
-
-declare i8* @DisplayHHMM(i32)
-
-declare void @DisplayPieceBoards(i32*, i32*)
-
-declare i32 @fscanf(%struct.__sFILE*, i8*, ...)
-
-declare i32 @feof(%struct.__sFILE*)
-
-declare i8* @fgets(i8*, i32, %struct.__sFILE*)
-
-declare i32 @remove(i8*)
-
-declare i32 @__tolower(i32)
-
-declare i32 @clock()
-
-declare void @OptionPerft(i32, i32, i32)
-
-declare void @Phase()
-
-declare i32 @ReadNextMove(i8*, i32, i32)
-
-declare i32 @time(i32*)
-
-declare %struct.tm* @localtime(i32*)
-
-declare i8* @gets(i8*)
-
-declare i32 @OutputGood(i8*, i32, i32)
-
-declare i32 @CheckInput()
-
-declare void @ClearHashTables()
-
-declare i32 @Quiesce(i32, i32, i32, i32)
-
-declare void @SearchTrace(i32, i32, i32, i32, i32, i8*, i32)
-
-declare i32 @RepetitionCheck(i32, i32)
-
-declare void @ResignOrDraw(i32, i32)
-
-declare i32 @Search(i32, i32, i32, i32, i32, i32)
-
-declare void @StoreRefutation(i32, i32, i32, i32)
-
-declare void @StoreBest(i32, i32, i32, i32, i32)
-
-declare void @SearchOutput(i32, i32)
-
-declare i32 @strspn(i8*, i8*)
-
-declare i32 @isatty(i32)
-
-declare i32 @fileno(%struct.__sFILE*)
-
-declare void @llvm.memset(i8*, i8, i32, i32)
-
-declare i32 @select(i32, %struct.fd_set*, %struct.fd_set*, %struct.fd_set*, %struct.timeval*)
-
-declare void @DisplayBitBoard(i64)
-
-declare i8* @DisplayEvaluationWhisper(i32)
-
-declare i8* @DisplayTimeWhisper(i32)
-
-declare void @Display64bitWord(i64)
-
-declare void @Display2BitBoards(i64, i64)
-
-declare void @DisplayChessMove(i8*, i32)
-
-declare void @llvm.memmove(i8*, i8*, i32, i32)
-
-declare void @ReadClear()
-
-declare i8* @strtok(i8*, i8*)
-
-declare i32 @SpecReadRaw()
-
-declare i32 @read(i32, i8*, i32)
-
-declare i32* @__error()
-
-declare i32 @ReadChessMove(%struct.__sFILE*, i32, i32)
-
-declare i64 @ValidateComputeBishopAttacks(i32)
-
-declare i64 @ValidateComputeRookAttacks(i32)
-
-declare i8* @memchr(i8*, i32, i32)
-
-declare i32 @fwrite(i8*, i32, i32, %struct.__sFILE*)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll
deleted file mode 100644
index 916cba2..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-
-define void @sort_Eq(i32* %S2) {
-entry:
-	br i1 false, label %list_Length.exit, label %cond_true.i
-cond_true.i:		; preds = %entry
-	ret void
-list_Length.exit:		; preds = %entry
-	br i1 false, label %list_Length.exit9, label %cond_true.i5
-cond_true.i5:		; preds = %list_Length.exit
-	ret void
-list_Length.exit9:		; preds = %list_Length.exit
-	br i1 false, label %bb78, label %return
-bb44:		; preds = %bb78, %cond_next68
-	br i1 %tmp49.not, label %bb62, label %bb62.loopexit
-bb62.loopexit:		; preds = %bb44
-	br label %bb62
-bb62:		; preds = %bb62.loopexit, %bb44
-	br i1 false, label %return.loopexit, label %cond_next68
-cond_next68:		; preds = %bb62
-	br i1 false, label %return.loopexit, label %bb44
-bb78:		; preds = %list_Length.exit9
-	%tmp49.not = icmp eq i32* %S2, null		; <i1> [#uses=1]
-	br label %bb44
-return.loopexit:		; preds = %cond_next68, %bb62
-	%retval.0.ph = phi i32 [ 1, %cond_next68 ], [ 0, %bb62 ]		; <i32> [#uses=1]
-	br label %return
-return:		; preds = %return.loopexit, %list_Length.exit9
-	%retval.0 = phi i32 [ 0, %list_Length.exit9 ], [ %retval.0.ph, %return.loopexit ]		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll
deleted file mode 100644
index 60e464f..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-
-	%struct.BLEND_MAP = type { i16, i16, i16, i32, %struct.BLEND_MAP_ENTRY* }
-	%struct.BLEND_MAP_ENTRY = type { float, i8, { [5 x float], [4 x i8] } }
-	%struct.TPATTERN = type { i16, i16, i16, i32, float, float, float, %struct.WARP*, %struct.TPATTERN*, %struct.BLEND_MAP*, { %struct.anon, [4 x i8] } }
-	%struct.TURB = type { i16, %struct.WARP*, [3 x double], i32, float, float }
-	%struct.WARP = type { i16, %struct.WARP* }
-	%struct.anon = type { float, [3 x double] }
-
-define void @Parse_Pattern() {
-entry:
-	br label %bb1096.outer20
-bb671:		; preds = %cond_true1099
-	br label %bb1096.outer23
-bb1096.outer20.loopexit:		; preds = %cond_true1099
-	%Local_Turb.0.ph24.lcssa = phi %struct.TURB* [ %Local_Turb.0.ph24, %cond_true1099 ]		; <%struct.TURB*> [#uses=1]
-	br label %bb1096.outer20
-bb1096.outer20:		; preds = %bb1096.outer20.loopexit, %entry
-	%Local_Turb.0.ph22 = phi %struct.TURB* [ undef, %entry ], [ %Local_Turb.0.ph24.lcssa, %bb1096.outer20.loopexit ]		; <%struct.TURB*> [#uses=1]
-	%tmp1098 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br label %bb1096.outer23
-bb1096.outer23:		; preds = %bb1096.outer20, %bb671
-	%Local_Turb.0.ph24 = phi %struct.TURB* [ %Local_Turb.0.ph22, %bb1096.outer20 ], [ null, %bb671 ]		; <%struct.TURB*> [#uses=2]
-	br label %bb1096
-bb1096:		; preds = %cond_true1099, %bb1096.outer23
-	br i1 %tmp1098, label %cond_true1099, label %bb1102
-cond_true1099:		; preds = %bb1096
-	switch i32 0, label %bb1096.outer20.loopexit [
-		 i32 161, label %bb671
-		 i32 359, label %bb1096
-	]
-bb1102:		; preds = %bb1096
-	%Local_Turb.0.ph24.lcssa1 = phi %struct.TURB* [ %Local_Turb.0.ph24, %bb1096 ]		; <%struct.TURB*> [#uses=0]
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll
deleted file mode 100644
index 67da9ff..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-
-define void @init_caller_save() {
-entry:
-	br label %cond_true78
-cond_next20:		; preds = %cond_true64
-	br label %bb31
-bb31:		; preds = %cond_true64, %cond_true64, %cond_next20
-	%iftmp.29.1 = phi i32 [ 0, %cond_next20 ], [ 0, %cond_true64 ], [ 0, %cond_true64 ]		; <i32> [#uses=0]
-	br label %bb54
-bb54:		; preds = %cond_true78, %bb31
-	br i1 false, label %bb75, label %cond_true64
-cond_true64:		; preds = %bb54
-	switch i32 %i.0.0, label %cond_next20 [
-		 i32 17, label %bb31
-		 i32 18, label %bb31
-	]
-bb75:		; preds = %bb54
-	%tmp74.0 = add i32 %i.0.0, 1		; <i32> [#uses=1]
-	br label %cond_true78
-cond_true78:		; preds = %bb75, %entry
-	%i.0.0 = phi i32 [ 0, %entry ], [ %tmp74.0, %bb75 ]		; <i32> [#uses=2]
-	br label %bb54
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-05-09-Unreachable.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-05-09-Unreachable.ll
deleted file mode 100644
index 08cb9b6..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-05-09-Unreachable.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; PR1333
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-	%struct.ada__streams__root_stream_type = type { %struct.ada__tags__dispatch_table* }
-	%struct.ada__tags__dispatch_table = type { [1 x i8*] }
-	%struct.quotes__T173s = type { i8, %struct.quotes__T173s__T174s, [2 x [1 x double]], [2 x i16], i64, i8 }
-	%struct.quotes__T173s__T174s = type { i8, i8, i8, i16, i16, [2 x [1 x double]] }
-
-define void @quotes__write_quote() {
-entry:
-	%tmp606.i = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br label %bb
-bb:		; preds = %cond_next73, %bb, %entry
-	br i1 false, label %bb51, label %bb
-bb51:		; preds = %cond_next73, %bb
-	br i1 %tmp606.i, label %quotes__bid_ask_depth_offset_matrices__get_price.exit, label %cond_true.i
-cond_true.i:		; preds = %bb51
-	unreachable
-quotes__bid_ask_depth_offset_matrices__get_price.exit:		; preds = %bb51
-	br i1 false, label %cond_next73, label %cond_true72
-cond_true72:		; preds = %quotes__bid_ask_depth_offset_matrices__get_price.exit
-	unreachable
-cond_next73:		; preds = %quotes__bid_ask_depth_offset_matrices__get_price.exit
-	br i1 false, label %bb, label %bb51
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-05-09-tl.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-05-09-tl.ll
deleted file mode 100644
index c987dae..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-05-09-tl.ll
+++ /dev/null
@@ -1,95 +0,0 @@
-; PR1333
-; RUN: llvm-as < %s |  opt -loop-unswitch -disable-output
-
-define void @pp_cxx_expression() {
-entry:
-	%tmp6 = lshr i32 0, 24		; <i32> [#uses=1]
-	br label %tailrecurse
-
-tailrecurse:		; preds = %tailrecurse, %tailrecurse, %entry
-	switch i32 %tmp6, label %bb96 [
-		 i32 24, label %bb10
-		 i32 25, label %bb10
-		 i32 28, label %bb10
-		 i32 29, label %bb48
-		 i32 31, label %bb48
-		 i32 32, label %bb48
-		 i32 33, label %bb48
-		 i32 34, label %bb48
-		 i32 36, label %bb15
-		 i32 51, label %bb89
-		 i32 52, label %bb89
-		 i32 54, label %bb83
-		 i32 57, label %bb59
-		 i32 63, label %bb80
-		 i32 64, label %bb80
-		 i32 68, label %bb80
-		 i32 169, label %bb75
-		 i32 170, label %bb19
-		 i32 171, label %bb63
-		 i32 172, label %bb63
-		 i32 173, label %bb67
-		 i32 174, label %bb67
-		 i32 175, label %bb19
-		 i32 176, label %bb75
-		 i32 178, label %bb59
-		 i32 179, label %bb89
-		 i32 180, label %bb59
-		 i32 182, label %bb48
-		 i32 183, label %bb48
-		 i32 184, label %bb48
-		 i32 185, label %bb48
-		 i32 186, label %bb48
-		 i32 195, label %bb48
-		 i32 196, label %bb59
-		 i32 197, label %bb89
-		 i32 198, label %bb70
-		 i32 199, label %bb59
-		 i32 200, label %bb59
-		 i32 201, label %bb59
-		 i32 202, label %bb59
-		 i32 203, label %bb75
-		 i32 204, label %bb59
-		 i32 205, label %tailrecurse
-		 i32 210, label %tailrecurse
-	]
-
-bb10:		; preds = %tailrecurse, %tailrecurse, %tailrecurse
-	ret void
-
-bb15:		; preds = %tailrecurse
-	ret void
-
-bb19:		; preds = %tailrecurse, %tailrecurse
-	ret void
-
-bb48:		; preds = %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse
-	ret void
-
-bb59:		; preds = %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse
-	ret void
-
-bb63:		; preds = %tailrecurse, %tailrecurse
-	ret void
-
-bb67:		; preds = %tailrecurse, %tailrecurse
-	ret void
-
-bb70:		; preds = %tailrecurse
-	ret void
-
-bb75:		; preds = %tailrecurse, %tailrecurse, %tailrecurse
-	ret void
-
-bb80:		; preds = %tailrecurse, %tailrecurse, %tailrecurse
-	ret void
-
-bb83:		; preds = %tailrecurse
-	ret void
-
-bb89:		; preds = %tailrecurse, %tailrecurse, %tailrecurse, %tailrecurse
-	ret void
-
-bb96:		; preds = %tailrecurse
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-12-ExitDomInfo.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-12-ExitDomInfo.ll
deleted file mode 100644
index c4080c1..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-12-ExitDomInfo.ll
+++ /dev/null
@@ -1,45 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -instcombine -disable-output
-
- at str3 = external constant [3 x i8]		; <[3 x i8]*> [#uses=1]
-
-define i32 @stringSearch_Clib(i32 %count) {
-entry:
-	%ttmp25 = icmp sgt i32 %count, 0		; <i1> [#uses=1]
-	br i1 %ttmp25, label %bb36.preheader, label %bb44
-
-bb36.preheader:		; preds = %entry
-	%ttmp33 = icmp slt i32 0, 250		; <i1> [#uses=1]
-	br label %bb36.outer
-
-bb36.outer:		; preds = %bb41, %bb36.preheader
-	br i1 %ttmp33, label %bb.nph, label %bb41
-
-bb.nph:		; preds = %bb36.outer
-	%ttmp8 = icmp eq i8* null, null		; <i1> [#uses=1]
-	%ttmp6 = icmp eq i8* null, null		; <i1> [#uses=1]
-	%tmp31 = call i32 @strcspn( i8* null, i8* getelementptr ([3 x i8]* @str3, i64 0, i64 0) )		; <i32> [#uses=1]
-	br i1 %ttmp8, label %cond_next, label %cond_true
-
-cond_true:		; preds = %bb.nph
-	ret i32 0
-
-cond_next:		; preds = %bb.nph
-	br i1 %ttmp6, label %cond_next28, label %cond_true20
-
-cond_true20:		; preds = %cond_next
-	ret i32 0
-
-cond_next28:		; preds = %cond_next
-	%tmp33 = add i32 %tmp31, 0		; <i32> [#uses=1]
-	br label %bb41
-
-bb41:		; preds = %cond_next28, %bb36.outer
-	%c.2.lcssa = phi i32 [ 0, %bb36.outer ], [ %tmp33, %cond_next28 ]		; <i32> [#uses=1]
-	br i1 false, label %bb36.outer, label %bb44
-
-bb44:		; preds = %bb41, %entry
-	%c.01.1 = phi i32 [ 0, %entry ], [ %c.2.lcssa, %bb41 ]		; <i32> [#uses=1]
-	ret i32 %c.01.1
-}
-
-declare i32 @strcspn(i8*, i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-13-DomInfo.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-13-DomInfo.ll
deleted file mode 100644
index de3f670..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-13-DomInfo.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	%tmp1785365 = icmp ult i32 0, 100		; <i1> [#uses=1]
-	br label %bb
-
-bb:		; preds = %cond_true, %entry
-	br i1 false, label %cond_true, label %cond_next
-
-cond_true:		; preds = %bb
-	br i1 %tmp1785365, label %bb, label %bb1788
-
-cond_next:		; preds = %bb
-	%iftmp.1.0 = select i1 false, i32 0, i32 0		; <i32> [#uses=1]
-	br i1 false, label %cond_true47, label %cond_next74
-
-cond_true47:		; preds = %cond_next
-	%tmp53 = urem i32 %iftmp.1.0, 0		; <i32> [#uses=0]
-	ret i32 0
-
-cond_next74:		; preds = %cond_next
-	ret i32 0
-
-bb1788:		; preds = %cond_true
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-18-DomInfo.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-18-DomInfo.ll
deleted file mode 100644
index edd7d1f..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-07-18-DomInfo.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-; PR1559
-
-target triple = "i686-pc-linux-gnu"
-	%struct.re_pattern_buffer = type { i8*, i32, i32, i32, i8*, i8*, i32, i8 }
-
-define fastcc i32 @byte_regex_compile(i8* %pattern, i32 %size, i32 %syntax, %struct.re_pattern_buffer* %bufp) {
-entry:
-        br i1 false, label %bb147, label %cond_next123
-
-cond_next123:           ; preds = %entry
-        ret i32 0
-
-bb147:          ; preds = %entry
-        switch i32 0, label %normal_char [
-                 i32 91, label %bb1734
-                 i32 92, label %bb5700
-        ]
-
-bb1734:         ; preds = %bb147
-        br label %bb1855.outer.outer
-
-cond_true1831:          ; preds = %bb1855.outer
-        br i1 %tmp1837, label %cond_next1844, label %cond_true1840
-
-cond_true1840:          ; preds = %cond_true1831
-        ret i32 0
-
-cond_next1844:          ; preds = %cond_true1831
-        br i1 false, label %bb1855.outer, label %cond_true1849
-
-cond_true1849:          ; preds = %cond_next1844
-        br label %bb1855.outer.outer
-
-bb1855.outer.outer:             ; preds = %cond_true1849, %bb1734
-        %b.10.ph.ph = phi i8* [ null, %cond_true1849 ], [ null, %bb1734 ]               ; <i8*> [#uses=1]
-        br label %bb1855.outer
-
-bb1855.outer:           ; preds = %bb1855.outer.outer, %cond_next1844
-        %b.10.ph = phi i8* [ null, %cond_next1844 ], [ %b.10.ph.ph, %bb1855.outer.outer ]               ; <i8*> [#uses=1]
-        %tmp1837 = icmp eq i8* null, null               ; <i1> [#uses=2]
-        br i1 false, label %cond_true1831, label %cond_next1915
-
-cond_next1915:          ; preds = %cond_next1961, %bb1855.outer
-        store i8* null, i8** null
-        br i1 %tmp1837, label %cond_next1929, label %cond_true1923
-
-cond_true1923:          ; preds = %cond_next1915
-        ret i32 0
-
-cond_next1929:          ; preds = %cond_next1915
-        br i1 false, label %cond_next1961, label %cond_next2009
-
-cond_next1961:          ; preds = %cond_next1929
-        %tmp1992 = getelementptr i8* %b.10.ph, i32 0            ; <i8*> [#uses=0]
-        br label %cond_next1915
-
-cond_next2009:          ; preds = %cond_next1929
-        ret i32 0
-
-bb5700:         ; preds = %bb147
-        ret i32 0
-
-normal_char:            ; preds = %bb147
-        ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-08-01-Dom.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-08-01-Dom.ll
deleted file mode 100644
index 9673e2e..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-08-01-Dom.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -loop-unswitch -disable-output 
-; PR 1589
-
-      	%struct.QBasicAtomic = type { i32 }
-
-define void @_ZNK5QDate9addMonthsEi(%struct.QBasicAtomic* sret  %agg.result, %struct.QBasicAtomic* %this, i32 %nmonths) {
-entry:
-	br label %cond_true90
-
-bb16:		; preds = %cond_true90
-	br i1 false, label %bb93, label %cond_true90
-
-bb45:		; preds = %cond_true90
-	br i1 false, label %bb53, label %bb58
-
-bb53:		; preds = %bb45
-	br i1 false, label %bb93, label %cond_true90
-
-bb58:		; preds = %bb45
-	store i32 0, i32* null, align 4
-	br i1 false, label %cond_true90, label %bb93
-
-cond_true90:		; preds = %bb58, %bb53, %bb16, %entry
-	%nmonths_addr.016.1 = phi i32 [ %nmonths, %entry ], [ 0, %bb16 ], [ 0, %bb53 ], [ %nmonths_addr.016.1, %bb58 ]		; <i32> [#uses=2]
-	%tmp14 = icmp slt i32 %nmonths_addr.016.1, -11		; <i1> [#uses=1]
-	br i1 %tmp14, label %bb16, label %bb45
-
-bb93:		; preds = %bb58, %bb53, %bb16
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-08-01-LCSSA.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-08-01-LCSSA.ll
deleted file mode 100644
index 139cdbe..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-08-01-LCSSA.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -instcombine -disable-output
-	%struct.ClassDef = type { %struct.QByteArray, %struct.QByteArray, %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", i8, i8, %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QList<ArgumentDef>", %"struct.QMap<QByteArray,QByteArray>", %"struct.QList<ArgumentDef>", %"struct.QMap<QByteArray,QByteArray>", i32, i32 }
-	%struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
-	%struct.Generator = type { %struct.FILE*, %struct.ClassDef*, %"struct.QList<ArgumentDef>", %struct.QByteArray, %"struct.QList<ArgumentDef>" }
-	%struct.QBasicAtomic = type { i32 }
-	%struct.QByteArray = type { %"struct.QByteArray::Data"* }
-	%"struct.QByteArray::Data" = type { %struct.QBasicAtomic, i32, i32, i8*, [1 x i8] }
-	%"struct.QList<ArgumentDef>" = type { %"struct.QList<ArgumentDef>::._19" }
-	%"struct.QList<ArgumentDef>::._19" = type { %struct.QListData }
-	%struct.QListData = type { %"struct.QListData::Data"* }
-	%"struct.QListData::Data" = type { %struct.QBasicAtomic, i32, i32, i32, i8, [1 x i8*] }
-	%"struct.QMap<QByteArray,QByteArray>" = type { %"struct.QMap<QByteArray,QByteArray>::._56" }
-	%"struct.QMap<QByteArray,QByteArray>::._56" = type { %struct.QMapData* }
-	%struct.QMapData = type { %struct.QMapData*, [12 x %struct.QMapData*], %struct.QBasicAtomic, i32, i32, i32, i8 }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
- at .str9 = external constant [1 x i8]		; <[1 x i8]*> [#uses=1]
-
-declare i32 @strcmp(i8*, i8*)
-
-define i32 @_ZN9Generator6strregEPKc(%struct.Generator* %this, i8* %s) {
-entry:
-	%s_addr.0 = select i1 false, i8* getelementptr ([1 x i8]* @.str9, i32 0, i32 0), i8* %s		; <i8*> [#uses=2]
-	%tmp122 = icmp eq i8* %s_addr.0, null		; <i1> [#uses=1]
-	br label %bb184
-
-bb55:		; preds = %bb184
-	ret i32 0
-
-bb88:		; preds = %bb184
-	br i1 %tmp122, label %bb154, label %bb128
-
-bb128:		; preds = %bb88
-	%tmp138 = call i32 @strcmp( i8* null, i8* %s_addr.0 )		; <i32> [#uses=1]
-	%iftmp.37.0.in4 = icmp eq i32 %tmp138, 0		; <i1> [#uses=1]
-	br i1 %iftmp.37.0.in4, label %bb250, label %bb166
-
-bb154:		; preds = %bb88
-	br i1 false, label %bb250, label %bb166
-
-bb166:		; preds = %bb154, %bb128
-	%tmp175 = add i32 %idx.0, 1		; <i32> [#uses=1]
-	%tmp177 = add i32 %tmp175, 0		; <i32> [#uses=1]
-	%tmp181 = add i32 %tmp177, 0		; <i32> [#uses=1]
-	%tmp183 = add i32 %i33.0, 1		; <i32> [#uses=1]
-	br label %bb184
-
-bb184:		; preds = %bb166, %entry
-	%i33.0 = phi i32 [ 0, %entry ], [ %tmp183, %bb166 ]		; <i32> [#uses=2]
-	%idx.0 = phi i32 [ 0, %entry ], [ %tmp181, %bb166 ]		; <i32> [#uses=2]
-	%tmp49 = icmp slt i32 %i33.0, 0		; <i1> [#uses=1]
-	br i1 %tmp49, label %bb88, label %bb55
-
-bb250:		; preds = %bb154, %bb128
-	ret i32 %idx.0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-10-04-DomFrontier.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-10-04-DomFrontier.ll
deleted file mode 100644
index b236edc..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2007-10-04-DomFrontier.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -loop-unroll -disable-output
-
- at resonant = external global i32		; <i32*> [#uses=2]
-
-define void @weightadj() {
-entry:
-	br label %bb
-
-bb:		; preds = %bb158, %entry
-	store i32 0, i32* @resonant, align 4
-	br i1 false, label %g.exit, label %bb158
-
-g.exit:		; preds = %bb68, %bb
-	br i1 false, label %bb68, label %cond_true
-
-cond_true:		; preds = %g.exit
-	store i32 1, i32* @resonant, align 4
-	br label %bb68
-
-bb68:		; preds = %cond_true, %g.exit
-	%tmp71 = icmp slt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp71, label %g.exit, label %bb158
-
-bb158:		; preds = %bb68, %bb
-	br i1 false, label %bb, label %return
-
-return:		; preds = %bb158
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-06-02-DomInfo.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-06-02-DomInfo.ll
deleted file mode 100644
index dcf41c3..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-06-02-DomInfo.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -instcombine -gvn -disable-output
-; PR2372
-target triple = "i386-pc-linux-gnu"
-
-define i32 @func_3(i16 signext  %p_5, i16 signext  %p_6) nounwind  {
-entry:
-	%tmp3 = icmp eq i16 %p_5, 0		; <i1> [#uses=1]
-	%tmp1314 = sext i16 %p_6 to i32		; <i32> [#uses=1]
-	%tmp28 = icmp ugt i32 %tmp1314, 3		; <i1> [#uses=1]
-	%bothcond = or i1 %tmp28, false		; <i1> [#uses=1]
-	br label %bb
-bb:		; preds = %bb54, %entry
-	br i1 %tmp3, label %bb54, label %bb5
-bb5:		; preds = %bb
-	br i1 %bothcond, label %bb54, label %bb31
-bb31:		; preds = %bb5
-	br label %bb54
-bb54:		; preds = %bb31, %bb5, %bb
-	br i1 false, label %bb64, label %bb
-bb64:		; preds = %bb54
-	%tmp6566 = sext i16 %p_6 to i32		; <i32> [#uses=1]
-	%tmp68 = tail call i32 (...)* @func_18( i32 1, i32 %tmp6566, i32 1 ) nounwind 		; <i32> [#uses=0]
-	ret i32 undef
-}
-
-declare i32 @func_18(...)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-06-17-DomFrontier.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-06-17-DomFrontier.ll
deleted file mode 100644
index 713a0bd..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-06-17-DomFrontier.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -licm -loop-unswitch -disable-output
- at g_56 = external global i16		; <i16*> [#uses=2]
-
-define i32 @func_67(i32 %p_68, i8 signext  %p_69, i8 signext  %p_71) nounwind  {
-entry:
-	br label %bb
-bb:		; preds = %bb44, %entry
-	br label %bb3
-bb3:		; preds = %bb36, %bb
-	%bothcond = or i1 false, false		; <i1> [#uses=1]
-	br i1 %bothcond, label %bb29, label %bb19
-bb19:		; preds = %bb3
-	br i1 false, label %bb36, label %bb29
-bb29:		; preds = %bb19, %bb3
-	ret i32 0
-bb36:		; preds = %bb19
-	store i16 0, i16* @g_56, align 2
-	br i1 false, label %bb44, label %bb3
-bb44:		; preds = %bb44, %bb36
-	%tmp46 = load i16* @g_56, align 2		; <i16> [#uses=0]
-	br i1 false, label %bb, label %bb44
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll
deleted file mode 100644
index 383aa5b..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -stats -disable-output |& grep "1 loop-unswitch - Number of branches unswitched" | count 1
-; PR 3170
-define i32 @a(i32 %x, i32 %y) nounwind {
-entry:
-	%0 = icmp ult i32 0, %y		; <i1> [#uses=1]
-	br i1 %0, label %bb.nph, label %bb4
-
-bb.nph:		; preds = %entry
-	%1 = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br label %bb
-
-bb:		; preds = %bb.nph, %bb3
-	%i.01 = phi i32 [ %3, %bb3 ], [ 0, %bb.nph ]		; <i32> [#uses=1]
-	br i1 %1, label %bb2, label %bb1
-
-bb1:		; preds = %bb
-	%2 = tail call i32 (...)* @b() nounwind		; <i32> [#uses=0]
-	br label %bb2
-
-bb2:		; preds = %bb, %bb1
-	%3 = add i32 %i.01, 1		; <i32> [#uses=2]
-	br label %bb3
-
-bb3:		; preds = %bb2
-	%i.0 = phi i32 [ %3, %bb2 ]		; <i32> [#uses=1]
-	%4 = icmp ult i32 %i.0, %y		; <i1> [#uses=1]
-	br i1 %4, label %bb, label %bb3.bb4_crit_edge
-
-bb3.bb4_crit_edge:		; preds = %bb3
-	br label %bb4
-
-bb4:		; preds = %bb3.bb4_crit_edge, %entry
-	ret i32 0
-}
-
-declare i32 @b(...)
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/basictest.ll b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/basictest.ll
deleted file mode 100644
index eeaf08d..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/basictest.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-
-define i32 @test(i32* %A, i1 %C) {
-entry:
-	br label %no_exit
-no_exit:		; preds = %no_exit.backedge, %entry
-	%i.0.0 = phi i32 [ 0, %entry ], [ %i.0.0.be, %no_exit.backedge ]		; <i32> [#uses=3]
-	%gep.upgrd.1 = zext i32 %i.0.0 to i64		; <i64> [#uses=1]
-	%tmp.7 = getelementptr i32* %A, i64 %gep.upgrd.1		; <i32*> [#uses=4]
-	%tmp.13 = load i32* %tmp.7		; <i32> [#uses=2]
-	%tmp.14 = add i32 %tmp.13, 1		; <i32> [#uses=1]
-	store i32 %tmp.14, i32* %tmp.7
-	br i1 %C, label %then, label %endif
-then:		; preds = %no_exit
-	%tmp.29 = load i32* %tmp.7		; <i32> [#uses=1]
-	%tmp.30 = add i32 %tmp.29, 2		; <i32> [#uses=1]
-	store i32 %tmp.30, i32* %tmp.7
-	%inc9 = add i32 %i.0.0, 1		; <i32> [#uses=2]
-	%tmp.112 = icmp ult i32 %inc9, 100000		; <i1> [#uses=1]
-	br i1 %tmp.112, label %no_exit.backedge, label %return
-no_exit.backedge:		; preds = %endif, %then
-	%i.0.0.be = phi i32 [ %inc9, %then ], [ %inc, %endif ]		; <i32> [#uses=1]
-	br label %no_exit
-endif:		; preds = %no_exit
-	%inc = add i32 %i.0.0, 1		; <i32> [#uses=2]
-	%tmp.1 = icmp ult i32 %inc, 100000		; <i1> [#uses=1]
-	br i1 %tmp.1, label %no_exit.backedge, label %return
-return:		; preds = %endif, %then
-	ret i32 %tmp.13
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/dg.exp b/libclamav/c++/llvm/test/Transforms/LoopUnswitch/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LoopUnswitch/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.ll b/libclamav/c++/llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.ll
deleted file mode 100644
index 1e8b880..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; This testcase was reduced from Shootout-C++/reversefile.cpp by bugpoint
-
-; RUN: llvm-as < %s | opt -lowerinvoke -disable-output
-
-declare void @baz()
-
-declare void @bar()
-
-define void @foo() {
-then:
-	invoke void @baz( )
-			to label %invoke_cont.0 unwind label %try_catch
-invoke_cont.0:		; preds = %then
-	invoke void @bar( )
-			to label %try_exit unwind label %try_catch
-try_catch:		; preds = %invoke_cont.0, %then
-	%__tmp.0 = phi i32* [ null, %invoke_cont.0 ], [ null, %then ]		; <i32*> [#uses=0]
-	ret void
-try_exit:		; preds = %invoke_cont.0
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2004-02-29-PHICrash.ll b/libclamav/c++/llvm/test/Transforms/LowerInvoke/2004-02-29-PHICrash.ll
deleted file mode 100644
index 0777013..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2004-02-29-PHICrash.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerinvoke -enable-correct-eh-support -disable-output
-
-define void @_ZNKSt11__use_cacheISt16__numpunct_cacheIcEEclERKSt6locale() {
-entry:
-	br i1 false, label %then, label %UnifiedReturnBlock
-then:		; preds = %entry
-	invoke void @_Znwj( )
-			to label %UnifiedReturnBlock unwind label %UnifiedReturnBlock
-UnifiedReturnBlock:		; preds = %then, %then, %entry
-	%UnifiedRetVal = phi i32* [ null, %entry ], [ null, %then ], [ null, %then ] ; <i32*> [#uses=0]
-	ret void
-}
-
-declare void @_Znwj()
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll b/libclamav/c++/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll
deleted file mode 100644
index 10c8785..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerinvoke -enable-correct-eh-support -disable-output
-
-declare void @ll_listnext__listiterPtr()
-
-define void @WorkTask.fn() {
-block0:
-	invoke void @ll_listnext__listiterPtr( )
-			to label %block9 unwind label %block8_exception_handling
-block8_exception_handling:		; preds = %block0
-	ret void
-block9:		; preds = %block0
-	%w_2690 = phi { i32, i32 }* [ null, %block0 ]		; <{ i32, i32 }*> [#uses=1]
-	%tmp.129 = getelementptr { i32, i32 }* %w_2690, i32 0, i32 1		; <i32*> [#uses=1]
-	%v2769 = load i32* %tmp.129		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll b/libclamav/c++/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll
deleted file mode 100644
index 0a8ccbe..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerinvoke -enable-correct-eh-support -disable-output
-
-declare fastcc i32 @ll_listnext__listiterPtr()
-
-define fastcc i32 @WorkTask.fn() {
-block0:
-	%v2679 = invoke fastcc i32 @ll_listnext__listiterPtr( )
-			to label %block9 unwind label %block8_exception_handling	; <i32> [#uses=1]
-block8_exception_handling:		; preds = %block0
-	ret i32 0
-block9:		; preds = %block0
-	%i_2689 = phi i32 [ %v2679, %block0 ]		; <i32> [#uses=1]
-	ret i32 %i_2689
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2008-02-14-CritEdgePhiCrash.ll b/libclamav/c++/llvm/test/Transforms/LowerInvoke/2008-02-14-CritEdgePhiCrash.ll
deleted file mode 100644
index fa82539..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerInvoke/2008-02-14-CritEdgePhiCrash.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerinvoke -enable-correct-eh-support -disable-output
-; PR2029
-define i32 @main(i32 %argc, i8** %argv) {
-bb470:
-        invoke i32 @main(i32 0, i8** null) to label %invcont474 unwind label
-%lpad902
-
-invcont474:             ; preds = %bb470
-        ret i32 0
-
-lpad902:                ; preds = %bb470
-        %tmp471.lcssa = phi i8* [ null, %bb470 ]                ; <i8*>
-        ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LowerInvoke/basictest.ll b/libclamav/c++/llvm/test/Transforms/LowerInvoke/basictest.ll
deleted file mode 100644
index a9c19f2..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerInvoke/basictest.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerinvoke -disable-output -enable-correct-eh-support
-
-
-define i32 @foo() {
-	invoke i32 @foo( )
-			to label %Ok unwind label %Crap		; <i32>:1 [#uses=0]
-Ok:		; preds = %0
-	invoke i32 @foo( )
-			to label %Ok2 unwind label %Crap		; <i32>:2 [#uses=0]
-Ok2:		; preds = %Ok
-	ret i32 2
-Crap:		; preds = %Ok, %0
-	ret i32 1
-}
-
-define i32 @bar(i32 %blah) {
-	br label %doit
-doit:		; preds = %0
-        ;; Value live across an unwind edge.
-	%B2 = add i32 %blah, 1		; <i32> [#uses=1]
-	invoke i32 @foo( )
-			to label %Ok unwind label %Crap		; <i32>:1 [#uses=0]
-Ok:		; preds = %doit
-	invoke i32 @foo( )
-			to label %Ok2 unwind label %Crap		; <i32>:2 [#uses=0]
-Ok2:		; preds = %Ok
-	ret i32 2
-Crap:		; preds = %Ok, %doit
-	ret i32 %B2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/LowerInvoke/dg.exp b/libclamav/c++/llvm/test/Transforms/LowerInvoke/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerInvoke/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSetJmp/2003-11-05-DominanceProperties.ll b/libclamav/c++/llvm/test/Transforms/LowerSetJmp/2003-11-05-DominanceProperties.ll
deleted file mode 100644
index 3be2163..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSetJmp/2003-11-05-DominanceProperties.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -lowersetjmp -disable-output
-
-	%struct.jmpenv = type { i32, i8 }
-
-declare void @Perl_sv_setpv()
-
-declare i32 @llvm.setjmp(i32*)
-
-define void @perl_call_sv() {
-	call void @Perl_sv_setpv( )
-	%tmp.335 = getelementptr %struct.jmpenv* null, i64 0, i32 0		; <i32*> [#uses=1]
-	%tmp.336 = call i32 @llvm.setjmp( i32* null )		; <i32> [#uses=1]
-	store i32 %tmp.336, i32* %tmp.335
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSetJmp/dg.exp b/libclamav/c++/llvm/test/Transforms/LowerSetJmp/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSetJmp/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSetJmp/simpletest.ll b/libclamav/c++/llvm/test/Transforms/LowerSetJmp/simpletest.ll
deleted file mode 100644
index 9ff5f29..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSetJmp/simpletest.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -lowersetjmp | llvm-dis | grep invoke
-
-	%JmpBuf = type i32
- at .str_1 = internal constant [13 x i8] c"returned %d\0A\00"		; <[13 x i8]*> [#uses=1]
-
-declare void @llvm.longjmp(i32*, i32)
-
-declare i32 @llvm.setjmp(i32*)
-
-declare void @foo()
-
-define i32 @simpletest() {
-	%B = alloca i32		; <i32*> [#uses=2]
-	%Val = call i32 @llvm.setjmp( i32* %B )		; <i32> [#uses=2]
-	%V = icmp ne i32 %Val, 0		; <i1> [#uses=1]
-	br i1 %V, label %LongJumped, label %Normal
-Normal:		; preds = %0
-	call void @foo( )
-	call void @llvm.longjmp( i32* %B, i32 42 )
-	ret i32 0
-LongJumped:		; preds = %0
-	ret i32 %Val
-}
-
-declare i32 @printf(i8*, ...)
-
-define i32 @main() {
-	%V = call i32 @simpletest( )		; <i32> [#uses=1]
-	call i32 (i8*, ...)* @printf( i8* getelementptr ([13 x i8]* @.str_1, i64 0, i64 0), i32 %V )		; <i32>:1 [#uses=0]
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSwitch/2003-05-01-PHIProblem.ll b/libclamav/c++/llvm/test/Transforms/LowerSwitch/2003-05-01-PHIProblem.ll
deleted file mode 100644
index cb5f090..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSwitch/2003-05-01-PHIProblem.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerswitch
-
-define void @child(i32 %ct.1) {
-entry:
-	switch i32 0, label %return [
-		 i32 3, label %UnifiedExitNode
-		 i32 0, label %return
-	]
-return:		; preds = %entry, %entry
-	%result.0 = phi i32* [ null, %entry ], [ null, %entry ]		; <i32*> [#uses=0]
-	br label %UnifiedExitNode
-UnifiedExitNode:		; preds = %return, %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSwitch/2003-08-23-EmptySwitch.ll b/libclamav/c++/llvm/test/Transforms/LowerSwitch/2003-08-23-EmptySwitch.ll
deleted file mode 100644
index 71e5a4b..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSwitch/2003-08-23-EmptySwitch.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerswitch
-
-define void @test() {
-	switch i32 0, label %Next [
-	]
-Next:		; preds = %0
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll b/libclamav/c++/llvm/test/Transforms/LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll
deleted file mode 100644
index 2fc1c98..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -lowerswitch -disable-output
-
-define void @solve() {
-entry:
-	%targetBlock = call i16 @solve_code( )		; <i16> [#uses=1]
-	br label %codeReplTail
-then.1:		; preds = %codeReplTail
-	ret void
-loopexit.0:		; preds = %codeReplTail
-	ret void
-codeReplTail:		; preds = %codeReplTail, %entry
-	switch i16 %targetBlock, label %codeReplTail [
-		 i16 0, label %loopexit.0
-		 i16 1, label %then.1
-	]
-}
-
-declare i16 @solve_code()
-
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSwitch/dg.exp b/libclamav/c++/llvm/test/Transforms/LowerSwitch/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSwitch/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/LowerSwitch/feature.ll b/libclamav/c++/llvm/test/Transforms/LowerSwitch/feature.ll
deleted file mode 100644
index 7523ad2..0000000
--- a/libclamav/c++/llvm/test/Transforms/LowerSwitch/feature.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as %s -o - | opt -lowerswitch | llvm-dis > %t
-; RUN: grep slt %t | count 10
-; RUN: grep ule %t | count 3
-; RUN: grep eq  %t | count 9
-
-define i32 @main(i32 %tmp158) {
-entry:
-        switch i32 %tmp158, label %bb336 [
-                 i32 -2, label %bb338
-                 i32 -3, label %bb338
-                 i32 -4, label %bb338
-                 i32 -5, label %bb338
-                 i32 -6, label %bb338
-                 i32 0, label %bb338
-                 i32 1, label %bb338
-                 i32 2, label %bb338
-                 i32 3, label %bb338
-                 i32 4, label %bb338
-                 i32 5, label %bb338
-                 i32 6, label %bb338
-                 i32 7, label %bb
-                 i32 8, label %bb338
-                 i32 9, label %bb322
-                 i32 10, label %bb324
-                 i32 11, label %bb326
-                 i32 12, label %bb328
-                 i32 13, label %bb330
-                 i32 14, label %bb332
-                 i32 15, label %bb334
-        ]
-bb:
-  ret i32 2
-bb322:
-  ret i32 3
-bb324:
-  ret i32 4
-bb326:
-  ret i32 5
-bb328:
-  ret i32 6
-bb330:
-  ret i32 7
-bb332:
-  ret i32 8
-bb334:
-  ret i32 9
-bb336:
-  ret i32 10
-bb338:
-  ret i32 11
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2002-03-28-UninitializedVal.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2002-03-28-UninitializedVal.ll
deleted file mode 100644
index b0d2c79..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2002-03-28-UninitializedVal.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; Uninitialized values are not handled correctly.
-;
-; RUN: llvm-as < %s | opt -mem2reg -disable-output
-;
-
-define i32 @test() {
-        ; To be promoted
-	%X = alloca i32		; <i32*> [#uses=1]
-	%Y = load i32* %X		; <i32> [#uses=1]
-	ret i32 %Y
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2002-05-01-ShouldNotPromoteThisAlloca.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2002-05-01-ShouldNotPromoteThisAlloca.ll
deleted file mode 100644
index c649d6a..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2002-05-01-ShouldNotPromoteThisAlloca.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; This input caused the mem2reg pass to die because it was trying to promote
-; the %r alloca, even though it is invalid to do so in this case!
-;
-; RUN: llvm-as < %s | opt -mem2reg
-
-define void @test() {
-	%r = alloca i32		; <i32*> [#uses=2]
-	store i32 4, i32* %r
-	store i32* %r, i32** null
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-10-DFNotFound.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-10-DFNotFound.ll
deleted file mode 100644
index 0dd2761..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-10-DFNotFound.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -mem2reg
-
-define void @_Z3barv() {
-	%result = alloca i32		; <i32*> [#uses=1]
-	ret void
-		; No predecessors!
-	store i32 0, i32* %result
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-18-DeadBlockProblem.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-18-DeadBlockProblem.ll
deleted file mode 100644
index 78bfcb4..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-18-DeadBlockProblem.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This testcases makes sure that mem2reg can handle unreachable blocks.
-; RUN: llvm-as < %s | opt -mem2reg
-
-define i32 @test() {
-	%X = alloca i32		; <i32*> [#uses=2]
-	store i32 6, i32* %X
-	br label %Loop
-Loop:		; preds = %EndOfLoop, %0
-	store i32 5, i32* %X
-	br label %EndOfLoop
-Unreachable:		; No predecessors!
-	br label %EndOfLoop
-EndOfLoop:		; preds = %Unreachable, %Loop
-	br label %Loop
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-24-MultipleIdenticalSuccessors.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-24-MultipleIdenticalSuccessors.ll
deleted file mode 100644
index 04e8db3..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-04-24-MultipleIdenticalSuccessors.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; Mem2reg used to only add one incoming value to a PHI node, even if it had
-; multiple incoming edges from a block.
-;
-; RUN: llvm-as < %s | opt -mem2reg -disable-output
-
-define i32 @test(i1 %c1, i1 %c2) {
-	%X = alloca i32		; <i32*> [#uses=2]
-	br i1 %c1, label %Exit, label %B2
-B2:		; preds = %0
-	store i32 2, i32* %X
-	br i1 %c2, label %Exit, label %Exit
-Exit:		; preds = %B2, %B2, %0
-	%Y = load i32* %X		; <i32> [#uses=1]
-	ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-06-26-IterativePromote.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-06-26-IterativePromote.ll
deleted file mode 100644
index 27d0015..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-06-26-IterativePromote.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; Promoting some values allows promotion of other values.
-; RUN: llvm-as < %s | opt -mem2reg | llvm-dis | not grep alloca
-
-define i32 @test2() {
-	%result = alloca i32		; <i32*> [#uses=2]
-	%a = alloca i32		; <i32*> [#uses=2]
-	%p = alloca i32*		; <i32**> [#uses=2]
-	store i32 0, i32* %a
-	store i32* %a, i32** %p
-	%tmp.0 = load i32** %p		; <i32*> [#uses=1]
-	%tmp.1 = load i32* %tmp.0		; <i32> [#uses=1]
-	store i32 %tmp.1, i32* %result
-	%tmp.2 = load i32* %result		; <i32> [#uses=1]
-	ret i32 %tmp.2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll
deleted file mode 100644
index 5a27b20..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; Mem2reg should not insert dead PHI nodes!  The naive algorithm inserts a PHI
-;  node in L3, even though there is no load of %A in anything dominated by L3.
-
-; RUN: llvm-as < %s | opt -mem2reg | llvm-dis | not grep phi
-
-define void @test(i32 %B, i1 %C) {
-	%A = alloca i32		; <i32*> [#uses=4]
-	store i32 %B, i32* %A
-	br i1 %C, label %L1, label %L2
-L1:		; preds = %0
-	store i32 %B, i32* %A
-	%D = load i32* %A		; <i32> [#uses=1]
-	call void @test( i32 %D, i1 false )
-	br label %L3
-L2:		; preds = %0
-	%E = load i32* %A		; <i32> [#uses=1]
-	call void @test( i32 %E, i1 true )
-	br label %L3
-L3:		; preds = %L2, %L1
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll
deleted file mode 100644
index b053aa1..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -mem2reg -instcombine | llvm-dis | grep store
-; PR590
-
-
-define void @zero(i8* %p, i32 %n) {
-entry:
-	%p_addr = alloca i8*		; <i8**> [#uses=2]
-	%n_addr = alloca i32		; <i32*> [#uses=2]
-	%i = alloca i32		; <i32*> [#uses=6]
-	%out = alloca i32		; <i32*> [#uses=2]
-	%undef = alloca i32		; <i32*> [#uses=2]
-	store i8* %p, i8** %p_addr
-	store i32 %n, i32* %n_addr
-	store i32 0, i32* %i
-	br label %loopentry
-loopentry:		; preds = %endif, %entry
-	%tmp.0 = load i32* %n_addr		; <i32> [#uses=1]
-	%tmp.1 = add i32 %tmp.0, 1		; <i32> [#uses=1]
-	%tmp.2 = load i32* %i		; <i32> [#uses=1]
-	%tmp.3 = icmp sgt i32 %tmp.1, %tmp.2		; <i1> [#uses=2]
-	%tmp.4 = zext i1 %tmp.3 to i32		; <i32> [#uses=0]
-	br i1 %tmp.3, label %no_exit, label %return
-no_exit:		; preds = %loopentry
-	%tmp.5 = load i32* %undef		; <i32> [#uses=1]
-	store i32 %tmp.5, i32* %out
-	store i32 0, i32* %undef
-	%tmp.6 = load i32* %i		; <i32> [#uses=1]
-	%tmp.7 = icmp sgt i32 %tmp.6, 0		; <i1> [#uses=2]
-	%tmp.8 = zext i1 %tmp.7 to i32		; <i32> [#uses=0]
-	br i1 %tmp.7, label %then, label %endif
-then:		; preds = %no_exit
-	%tmp.9 = load i8** %p_addr		; <i8*> [#uses=1]
-	%tmp.10 = load i32* %i		; <i32> [#uses=1]
-	%tmp.11 = sub i32 %tmp.10, 1		; <i32> [#uses=1]
-	%tmp.12 = getelementptr i8* %tmp.9, i32 %tmp.11		; <i8*> [#uses=1]
-	%tmp.13 = load i32* %out		; <i32> [#uses=1]
-	%tmp.14 = trunc i32 %tmp.13 to i8		; <i8> [#uses=1]
-	store i8 %tmp.14, i8* %tmp.12
-	br label %endif
-endif:		; preds = %then, %no_exit
-	%tmp.15 = load i32* %i		; <i32> [#uses=1]
-	%inc = add i32 %tmp.15, 1		; <i32> [#uses=1]
-	store i32 %inc, i32* %i
-	br label %loopentry
-return:		; preds = %loopentry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2005-11-28-Crash.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2005-11-28-Crash.ll
deleted file mode 100644
index a985db3..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2005-11-28-Crash.ll
+++ /dev/null
@@ -1,62 +0,0 @@
-; RUN: llvm-as < %s | opt -mem2reg -disable-output
-; PR670
-
-define void @printk(i32, ...) {
-entry:
-	%flags = alloca i32		; <i32*> [#uses=2]
-	br i1 false, label %then.0, label %endif.0
-then.0:		; preds = %entry
-	br label %endif.0
-endif.0:		; preds = %then.0, %entry
-	store i32 0, i32* %flags
-	br label %loopentry
-loopentry:		; preds = %endif.3, %endif.0
-	br i1 false, label %no_exit, label %loopexit
-no_exit:		; preds = %loopentry
-	br i1 false, label %then.1, label %endif.1
-then.1:		; preds = %no_exit
-	br i1 false, label %shortcirc_done.0, label %shortcirc_next.0
-shortcirc_next.0:		; preds = %then.1
-	br label %shortcirc_done.0
-shortcirc_done.0:		; preds = %shortcirc_next.0, %then.1
-	br i1 false, label %shortcirc_done.1, label %shortcirc_next.1
-shortcirc_next.1:		; preds = %shortcirc_done.0
-	br label %shortcirc_done.1
-shortcirc_done.1:		; preds = %shortcirc_next.1, %shortcirc_done.0
-	br i1 false, label %shortcirc_done.2, label %shortcirc_next.2
-shortcirc_next.2:		; preds = %shortcirc_done.1
-	br label %shortcirc_done.2
-shortcirc_done.2:		; preds = %shortcirc_next.2, %shortcirc_done.1
-	br i1 false, label %then.2, label %endif.2
-then.2:		; preds = %shortcirc_done.2
-	br label %endif.2
-endif.2:		; preds = %then.2, %shortcirc_done.2
-	br label %endif.1
-endif.1:		; preds = %endif.2, %no_exit
-	br i1 false, label %then.3, label %endif.3
-then.3:		; preds = %endif.1
-	br label %endif.3
-endif.3:		; preds = %then.3, %endif.1
-	br label %loopentry
-loopexit:		; preds = %loopentry
-	br label %endif.4
-then.4:		; No predecessors!
-	%tmp.61 = load i32* %flags		; <i32> [#uses=0]
-	br label %out
-dead_block_after_goto:		; No predecessors!
-	br label %endif.4
-endif.4:		; preds = %dead_block_after_goto, %loopexit
-	br i1 false, label %then.5, label %else
-then.5:		; preds = %endif.4
-	br label %endif.5
-else:		; preds = %endif.4
-	br label %endif.5
-endif.5:		; preds = %else, %then.5
-	br label %out
-out:		; preds = %endif.5, %then.4
-	br label %return
-after_ret:		; No predecessors!
-	br label %return
-return:		; preds = %after_ret, %out
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2007-08-27-VolatileLoadsStores.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/2007-08-27-VolatileLoadsStores.ll
deleted file mode 100644
index 579ed41..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/2007-08-27-VolatileLoadsStores.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -std-compile-opts | llvm-dis | grep volatile | count 3
-; PR1520
-; Don't promote volatile loads/stores. This is really needed to handle setjmp/lonjmp properly.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct.__jmp_buf_tag = type { [6 x i32], i32, %struct.__sigset_t }
-	%struct.__sigset_t = type { [32 x i32] }
- at j = external global [1 x %struct.__jmp_buf_tag]		; <[1 x %struct.__jmp_buf_tag]*> [#uses=1]
-
-define i32 @f() {
-entry:
-	%retval = alloca i32, align 4		; <i32*> [#uses=2]
-	%v = alloca i32, align 4		; <i32*> [#uses=3]
-	%tmp = alloca i32, align 4		; <i32*> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	volatile store i32 0, i32* %v, align 4
-	%tmp1 = call i32 @_setjmp( %struct.__jmp_buf_tag* getelementptr ([1 x %struct.__jmp_buf_tag]* @j, i32 0, i32 0) )		; <i32> [#uses=1]
-	%tmp2 = icmp ne i32 %tmp1, 0		; <i1> [#uses=1]
-	%tmp23 = zext i1 %tmp2 to i8		; <i8> [#uses=1]
-	%toBool = icmp ne i8 %tmp23, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %bb, label %bb5
-
-bb:		; preds = %entry
-	%tmp4 = volatile load i32* %v, align 4		; <i32> [#uses=1]
-	store i32 %tmp4, i32* %tmp, align 4
-	br label %bb6
-
-bb5:		; preds = %entry
-	volatile store i32 1, i32* %v, align 4
-	call void @g( )
-	store i32 0, i32* %tmp, align 4
-	br label %bb6
-
-bb6:		; preds = %bb5, %bb
-	%tmp7 = load i32* %tmp, align 4		; <i32> [#uses=1]
-	store i32 %tmp7, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %bb6
-	%retval8 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval8
-}
-
-declare i32 @_setjmp(%struct.__jmp_buf_tag*)
-
-declare void @g()
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/PromoteMemToRegister.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/PromoteMemToRegister.ll
deleted file mode 100644
index 63b8c78..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/PromoteMemToRegister.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; Simple sanity check testcase.  Both alloca's should be eliminated.
-; RUN: llvm-as < %s | opt -mem2reg | llvm-dis | not grep alloca
-
-define double @testfunc(i32 %i, double %j) {
-	%I = alloca i32		; <i32*> [#uses=4]
-	%J = alloca double		; <double*> [#uses=2]
-	store i32 %i, i32* %I
-	store double %j, double* %J
-	%t1 = load i32* %I		; <i32> [#uses=1]
-	%t2 = add i32 %t1, 1		; <i32> [#uses=1]
-	store i32 %t2, i32* %I
-	%t3 = load i32* %I		; <i32> [#uses=1]
-	%t4 = sitofp i32 %t3 to double		; <double> [#uses=1]
-	%t5 = load double* %J		; <double> [#uses=1]
-	%t6 = fmul double %t4, %t5		; <double> [#uses=1]
-	ret double %t6
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/UndefValuesMerge.ll b/libclamav/c++/llvm/test/Transforms/Mem2Reg/UndefValuesMerge.ll
deleted file mode 100644
index 0d20d7d..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/UndefValuesMerge.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -mem2reg | llvm-dis | not grep phi
-
-define i32 @testfunc(i1 %C, i32 %i, i8 %j) {
-	%I = alloca i32		; <i32*> [#uses=2]
-	br i1 %C, label %T, label %Cont
-T:		; preds = %0
-	store i32 %i, i32* %I
-	br label %Cont
-Cont:		; preds = %T, %0
-	%Y = load i32* %I		; <i32> [#uses=1]
-	ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Mem2Reg/dg.exp b/libclamav/c++/llvm/test/Transforms/Mem2Reg/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/Mem2Reg/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
deleted file mode 100644
index 30d0a6d..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt -dse | llvm-dis | grep {call.*initialize} | not grep memtmp
-; PR2077
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define internal fastcc void @initialize({ x86_fp80, x86_fp80 }* noalias sret  %agg.result) nounwind  {
-entry:
-	%agg.result.03 = getelementptr { x86_fp80, x86_fp80 }* %agg.result, i32 0, i32 0		; <x86_fp80*> [#uses=1]
-	store x86_fp80 0xK00000000000000000000, x86_fp80* %agg.result.03
-	%agg.result.15 = getelementptr { x86_fp80, x86_fp80 }* %agg.result, i32 0, i32 1		; <x86_fp80*> [#uses=1]
-	store x86_fp80 0xK00000000000000000000, x86_fp80* %agg.result.15
-	ret void
-}
-
-declare fastcc x86_fp80 @passed_uninitialized({ x86_fp80, x86_fp80 }* %x) nounwind
-
-define fastcc void @badly_optimized() nounwind  {
-entry:
-	%z = alloca { x86_fp80, x86_fp80 }		; <{ x86_fp80, x86_fp80 }*> [#uses=2]
-	%tmp = alloca { x86_fp80, x86_fp80 }		; <{ x86_fp80, x86_fp80 }*> [#uses=2]
-	%memtmp = alloca { x86_fp80, x86_fp80 }, align 8		; <{ x86_fp80, x86_fp80 }*> [#uses=2]
-	call fastcc void @initialize( { x86_fp80, x86_fp80 }* noalias sret  %memtmp )
-	%tmp1 = bitcast { x86_fp80, x86_fp80 }* %tmp to i8*		; <i8*> [#uses=1]
-	%memtmp2 = bitcast { x86_fp80, x86_fp80 }* %memtmp to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp1, i8* %memtmp2, i32 24, i32 8 )
-	%z3 = bitcast { x86_fp80, x86_fp80 }* %z to i8*		; <i8*> [#uses=1]
-	%tmp4 = bitcast { x86_fp80, x86_fp80 }* %tmp to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %z3, i8* %tmp4, i32 24, i32 8 )
-	%tmp5 = call fastcc x86_fp80 @passed_uninitialized( { x86_fp80, x86_fp80 }* %z )		; <x86_fp80> [#uses=0]
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll
deleted file mode 100644
index 12c9a9d..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | not grep {call.*memcpy.}
-	%a = type { i32 }
-	%b = type { float }
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
-declare void @g(%a*)
-
-define float @f() {
-entry:
-	%a_var = alloca %a
-	%b_var = alloca %b
-	call void @g(%a *%a_var)
-	%a_i8 = bitcast %a* %a_var to i8*
-	%b_i8 = bitcast %b* %b_var to i8*
-	call void @llvm.memcpy.i32(i8* %b_i8, i8* %a_i8, i32 4, i32 4)
-	%tmp1 = getelementptr %b* %b_var, i32 0, i32 0
-	%tmp2 = load float* %tmp1
-	ret float %tmp2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-04-29-SRetRemoval.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-04-29-SRetRemoval.ll
deleted file mode 100644
index 1d9a35d..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-04-29-SRetRemoval.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | grep {call.*memcpy.*agg.result}
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
- at x = external global { x86_fp80, x86_fp80 }		; <{ x86_fp80, x86_fp80 }*> [#uses=1]
-
-define void @foo({ x86_fp80, x86_fp80 }* noalias sret %agg.result) nounwind  {
-entry:
-	%x.0 = alloca { x86_fp80, x86_fp80 }		; <{ x86_fp80, x86_fp80 }*> [#uses=1]
-	%x.01 = bitcast { x86_fp80, x86_fp80 }* %x.0 to i8*		; <i8*> [#uses=2]
-	call void @llvm.memcpy.i32( i8* %x.01, i8* bitcast ({ x86_fp80, x86_fp80 }* @x to i8*), i32 32, i32 16 )
-	%agg.result2 = bitcast { x86_fp80, x86_fp80 }* %agg.result to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %agg.result2, i8* %x.01, i32 32, i32 16 )
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-06-01-MemCpy-MemMove.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-06-01-MemCpy-MemMove.ll
deleted file mode 100644
index 16d2df4..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/2008-06-01-MemCpy-MemMove.ll
+++ /dev/null
@@ -1,107 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | grep {call.*memmove.*arg1.*}
-; PR2401
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct.Info = type <{ i32, i32, i8*, i8*, i8*, [32 x i8*], i32, [32 x i32], i32, i32, i32, [32 x i32] }>
-	%struct.S98 = type <{ [31 x double] }>
-	%struct._IO_FILE = type <{ i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }>
-	%struct._IO_marker = type <{ %struct._IO_marker*, %struct._IO_FILE*, i32 }>
-	%struct.anon = type <{  }>
-	%union.anon = type {  }
- at info = common global %struct.Info zeroinitializer, align 4		; <%struct.Info*> [#uses=13]
- at fails = common global i32 0, align 4		; <i32*> [#uses=37]
- at s98 = common global %struct.S98 zeroinitializer, align 4		; <%struct.S98*> [#uses=2]
- at a98 = common global [5 x %struct.S98] zeroinitializer, align 4		; <[5 x %struct.S98]*> [#uses=5]
- at stdout = external global %struct._IO_FILE*		; <%struct._IO_FILE**> [#uses=1]
-
-declare void @llvm.memmove.i32(i8*, i8*, i32, i32) nounwind 
-
-define void @test98() nounwind  {
-entry:
-	%arg = alloca %struct.S98, align 8		; <%struct.S98*> [#uses=2]
-	%tmp13 = alloca %struct.S98		; <%struct.S98*> [#uses=2]
-	%tmp14 = alloca %struct.S98		; <%struct.S98*> [#uses=2]
-	%tmp15 = alloca %struct.S98		; <%struct.S98*> [#uses=2]
-	%tmp17 = alloca %struct.S98		; <%struct.S98*> [#uses=2]
-	%tmp21 = alloca %struct.S98		; <%struct.S98*> [#uses=0]
-	%tmp23 = alloca %struct.S98		; <%struct.S98*> [#uses=0]
-	%tmp25 = alloca %struct.S98		; <%struct.S98*> [#uses=0]
-	%tmp27 = alloca %struct.S98		; <%struct.S98*> [#uses=0]
-	%tmp29 = alloca %struct.S98		; <%struct.S98*> [#uses=0]
-	%tmp31 = alloca %struct.S98		; <%struct.S98*> [#uses=0]
-	%tmp33 = alloca %struct.S98		; <%struct.S98*> [#uses=0]
-	call void @llvm.memset.i32( i8* bitcast (%struct.S98* @s98 to i8*), i8 0, i32 248, i32 4 )
-	call void @llvm.memset.i32( i8* bitcast ([5 x %struct.S98]* @a98 to i8*), i8 0, i32 1240, i32 4 )
-	call void @llvm.memset.i32( i8* bitcast (%struct.Info* @info to i8*), i8 0, i32 420, i32 4 )
-	store i8* bitcast (%struct.S98* @s98 to i8*), i8** getelementptr (%struct.Info* @info, i32 0, i32 2)
-	store i8* bitcast ([5 x %struct.S98]* @a98 to i8*), i8** getelementptr (%struct.Info* @info, i32 0, i32 3)
-	store i8* bitcast (%struct.S98* getelementptr ([5 x %struct.S98]* @a98, i32 0, i32 3) to i8*), i8** getelementptr (%struct.Info* @info, i32 0, i32 4)
-	store i32 248, i32* getelementptr (%struct.Info* @info, i32 0, i32 6)
-	store i32 4, i32* getelementptr (%struct.Info* @info, i32 0, i32 8)
-	store i32 4, i32* getelementptr (%struct.Info* @info, i32 0, i32 9)
-	store i32 4, i32* getelementptr (%struct.Info* @info, i32 0, i32 10)
-	%tmp = load i32* getelementptr (%struct.Info* @info, i32 0, i32 8)		; <i32> [#uses=1]
-	%sub = add i32 %tmp, -1		; <i32> [#uses=1]
-	%and = and i32 %sub, ptrtoint (%struct.S98* getelementptr ([5 x %struct.S98]* @a98, i32 0, i32 3) to i32)		; <i32> [#uses=1]
-	%tobool = icmp eq i32 %and, 0		; <i1> [#uses=1]
-	br i1 %tobool, label %ifend, label %ifthen
-
-ifthen:		; preds = %entry
-	%tmp3 = load i32* @fails		; <i32> [#uses=1]
-	%inc = add i32 %tmp3, 1		; <i32> [#uses=1]
-	store i32 %inc, i32* @fails
-	br label %ifend
-
-ifend:		; preds = %ifthen, %entry
-	store i8* bitcast (double* getelementptr (%struct.S98* @s98, i32 0, i32 0, i32 18) to i8*), i8** getelementptr (%struct.Info* @info, i32 0, i32 5, i32 0)
-	store i32 8, i32* getelementptr (%struct.Info* @info, i32 0, i32 7, i32 0)
-	store i32 4, i32* getelementptr (%struct.Info* @info, i32 0, i32 11, i32 0)
-	store double 0xC1075E4620000000, double* getelementptr (%struct.S98* @s98, i32 0, i32 0, i32 18)
-	store double 0x410CD219E0000000, double* getelementptr ([5 x %struct.S98]* @a98, i32 0, i32 2, i32 0, i32 18)
-	store i32 1, i32* getelementptr (%struct.Info* @info, i32 0, i32 0)
-	store i32 0, i32* getelementptr (%struct.Info* @info, i32 0, i32 1)
-	%tmp16 = bitcast %struct.S98* %tmp15 to i8*		; <i8*> [#uses=1]
-	call void @llvm.memmove.i32( i8* %tmp16, i8* bitcast (%struct.S98* @s98 to i8*), i32 248, i32 4 )
-	%tmp18 = bitcast %struct.S98* %tmp17 to i8*		; <i8*> [#uses=1]
-	call void @llvm.memmove.i32( i8* %tmp18, i8* bitcast (%struct.S98* getelementptr ([5 x %struct.S98]* @a98, i32 0, i32 2) to i8*), i32 248, i32 4 )
-	call void @check98( %struct.S98* sret  %tmp14, %struct.S98* byval  %tmp15, %struct.S98* getelementptr ([5 x %struct.S98]* @a98, i32 0, i32 1), %struct.S98* byval  %tmp17 )
-	%tmp19 = bitcast %struct.S98* %tmp13 to i8*		; <i8*> [#uses=1]
-	%tmp20 = bitcast %struct.S98* %tmp14 to i8*		; <i8*> [#uses=1]
-	call void @llvm.memmove.i32( i8* %tmp19, i8* %tmp20, i32 248, i32 8 )
-	%tmp1 = bitcast %struct.S98* %arg to i8*		; <i8*> [#uses=1]
-	%tmp2 = bitcast %struct.S98* %tmp13 to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i64( i8* %tmp1, i8* %tmp2, i64 248, i32 8 )
-	%arrayidx.i = getelementptr %struct.S98* %arg, i32 0, i32 0, i32 18		; <double*> [#uses=1]
-	%tmp1.i = load double* %arrayidx.i, align 8		; <double> [#uses=1]
-	%tmp2.i = load double* getelementptr (%struct.S98* @s98, i32 0, i32 0, i32 18)		; <double> [#uses=1]
-	%cmp.i = fcmp une double %tmp1.i, %tmp2.i		; <i1> [#uses=1]
-	br i1 %cmp.i, label %ifthen.i, label %checkx98.exit
-
-ifthen.i:		; preds = %ifend
-	%tmp3.i = load i32* @fails		; <i32> [#uses=1]
-	%inc.i = add i32 %tmp3.i, 1		; <i32> [#uses=1]
-	store i32 %inc.i, i32* @fails
-	br label %checkx98.exit
-
-checkx98.exit:		; preds = %ifthen.i, %ifend
-	ret void
-}
-
-declare void @check98(%struct.S98* sret  %agg.result, %struct.S98* byval  %arg0, %struct.S98* %arg1, %struct.S98* byval  %arg2) nounwind
-
-declare void @llvm.va_start(i8*) nounwind 
-
-declare void @llvm.va_end(i8*) nounwind 
-
-declare i32 @main() noreturn
-
-declare i32 @fflush(%struct._IO_FILE*)
-
-declare void @abort() noreturn nounwind 
-
-declare void @exit(i32) noreturn nounwind 
-
-declare void @llvm.memset.i32(i8*, i8, i32, i32) nounwind 
-
-declare void @llvm.memcpy.i64(i8*, i8*, i64, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/dg.exp b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/form-memset.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/form-memset.ll
deleted file mode 100644
index ffacb85..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/form-memset.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | not grep store
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | grep {call.*llvm.memset}
-
-; All the stores in this example should be merged into a single memset.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
-
-define void @foo(i8 signext  %c) nounwind  {
-entry:
-	%x = alloca [19 x i8]		; <[19 x i8]*> [#uses=20]
-	%tmp = getelementptr [19 x i8]* %x, i32 0, i32 0		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp, align 1
-	%tmp5 = getelementptr [19 x i8]* %x, i32 0, i32 1		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp5, align 1
-	%tmp9 = getelementptr [19 x i8]* %x, i32 0, i32 2		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp9, align 1
-	%tmp13 = getelementptr [19 x i8]* %x, i32 0, i32 3		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp13, align 1
-	%tmp17 = getelementptr [19 x i8]* %x, i32 0, i32 4		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp17, align 1
-	%tmp21 = getelementptr [19 x i8]* %x, i32 0, i32 5		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp21, align 1
-	%tmp25 = getelementptr [19 x i8]* %x, i32 0, i32 6		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp25, align 1
-	%tmp29 = getelementptr [19 x i8]* %x, i32 0, i32 7		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp29, align 1
-	%tmp33 = getelementptr [19 x i8]* %x, i32 0, i32 8		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp33, align 1
-	%tmp37 = getelementptr [19 x i8]* %x, i32 0, i32 9		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp37, align 1
-	%tmp41 = getelementptr [19 x i8]* %x, i32 0, i32 10		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp41, align 1
-	%tmp45 = getelementptr [19 x i8]* %x, i32 0, i32 11		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp45, align 1
-	%tmp49 = getelementptr [19 x i8]* %x, i32 0, i32 12		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp49, align 1
-	%tmp53 = getelementptr [19 x i8]* %x, i32 0, i32 13		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp53, align 1
-	%tmp57 = getelementptr [19 x i8]* %x, i32 0, i32 14		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp57, align 1
-	%tmp61 = getelementptr [19 x i8]* %x, i32 0, i32 15		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp61, align 1
-	%tmp65 = getelementptr [19 x i8]* %x, i32 0, i32 16		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp65, align 1
-	%tmp69 = getelementptr [19 x i8]* %x, i32 0, i32 17		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp69, align 1
-	%tmp73 = getelementptr [19 x i8]* %x, i32 0, i32 18		; <i8*> [#uses=1]
-	store i8 %c, i8* %tmp73, align 1
-	%tmp76 = call i32 (...)* @bar( [19 x i8]* %x ) nounwind 		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @bar(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/form-memset2.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/form-memset2.ll
deleted file mode 100644
index 719cd47..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/form-memset2.ll
+++ /dev/null
@@ -1,99 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | not grep store
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | grep {call.*llvm.memset} | count 3
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
-	%struct.MV = type { i16, i16 }
-
-define i32 @t() nounwind  {
-entry:
-	%ref_idx = alloca [8 x i8]		; <[8 x i8]*> [#uses=8]
-	%left_mvd = alloca [8 x %struct.MV]		; <[8 x %struct.MV]*> [#uses=17]
-	%up_mvd = alloca [8 x %struct.MV]		; <[8 x %struct.MV]*> [#uses=17]
-	%tmp20 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 7		; <i8*> [#uses=1]
-	store i8 -1, i8* %tmp20, align 1
-	%tmp23 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 6		; <i8*> [#uses=1]
-	store i8 -1, i8* %tmp23, align 1
-	%tmp26 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 5		; <i8*> [#uses=1]
-	store i8 -1, i8* %tmp26, align 1
-	%tmp29 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 4		; <i8*> [#uses=1]
-	store i8 -1, i8* %tmp29, align 1
-	%tmp32 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 3		; <i8*> [#uses=1]
-	store i8 -1, i8* %tmp32, align 1
-	%tmp35 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 2		; <i8*> [#uses=1]
-	store i8 -1, i8* %tmp35, align 1
-	%tmp38 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 1		; <i8*> [#uses=1]
-	store i8 -1, i8* %tmp38, align 1
-	%tmp41 = getelementptr [8 x i8]* %ref_idx, i32 0, i32 0		; <i8*> [#uses=2]
-	store i8 -1, i8* %tmp41, align 1
-	%tmp43 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 7, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp43, align 2
-	%tmp46 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 7, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp46, align 2
-	%tmp57 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 6, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp57, align 2
-	%tmp60 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 6, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp60, align 2
-	%tmp71 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 5, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp71, align 2
-	%tmp74 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 5, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp74, align 2
-	%tmp85 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 4, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp85, align 2
-	%tmp88 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 4, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp88, align 2
-	%tmp99 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 3, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp99, align 2
-	%tmp102 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 3, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp102, align 2
-	%tmp113 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 2, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp113, align 2
-	%tmp116 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 2, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp116, align 2
-	%tmp127 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 1, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp127, align 2
-	%tmp130 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 1, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp130, align 2
-	%tmp141 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 0, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp141, align 8
-	%tmp144 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 0, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp144, align 2
-	%tmp148 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 7, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp148, align 2
-	%tmp151 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 7, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp151, align 2
-	%tmp162 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 6, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp162, align 2
-	%tmp165 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 6, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp165, align 2
-	%tmp176 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 5, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp176, align 2
-	%tmp179 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 5, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp179, align 2
-	%tmp190 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 4, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp190, align 2
-	%tmp193 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 4, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp193, align 2
-	%tmp204 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 3, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp204, align 2
-	%tmp207 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 3, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp207, align 2
-	%tmp218 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 2, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp218, align 2
-	%tmp221 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 2, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp221, align 2
-	%tmp232 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 1, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp232, align 2
-	%tmp235 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 1, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp235, align 2
-	%tmp246 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 0, i32 0		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp246, align 8
-	%tmp249 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 0, i32 1		; <i16*> [#uses=1]
-	store i16 0, i16* %tmp249, align 2
-	%up_mvd252 = getelementptr [8 x %struct.MV]* %up_mvd, i32 0, i32 0		; <%struct.MV*> [#uses=1]
-	%left_mvd253 = getelementptr [8 x %struct.MV]* %left_mvd, i32 0, i32 0		; <%struct.MV*> [#uses=1]
-	call void @foo( %struct.MV* %up_mvd252, %struct.MV* %left_mvd253, i8* %tmp41 ) nounwind 
-	ret i32 undef
-}
-
-declare void @foo(%struct.MV*, %struct.MV*, i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/memcpy.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/memcpy.ll
deleted file mode 100644
index 94daee0..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/memcpy.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt -dse | llvm-dis | grep {call.*memcpy} | count 1
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin9"
-
-define void @ccosl({ x86_fp80, x86_fp80 }* sret  %agg.result, x86_fp80 %z.0, x86_fp80 %z.1) nounwind  {
-entry:
-	%tmp2 = alloca { x86_fp80, x86_fp80 }		; <{ x86_fp80, x86_fp80 }*> [#uses=1]
-	%memtmp = alloca { x86_fp80, x86_fp80 }, align 16		; <{ x86_fp80, x86_fp80 }*> [#uses=2]
-	%tmp5 = fsub x86_fp80 0xK80000000000000000000, %z.1		; <x86_fp80> [#uses=1]
-	call void @ccoshl( { x86_fp80, x86_fp80 }* sret  %memtmp, x86_fp80 %tmp5, x86_fp80 %z.0 ) nounwind 
-	%tmp219 = bitcast { x86_fp80, x86_fp80 }* %tmp2 to i8*		; <i8*> [#uses=2]
-	%memtmp20 = bitcast { x86_fp80, x86_fp80 }* %memtmp to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp219, i8* %memtmp20, i32 32, i32 16 )
-	%agg.result21 = bitcast { x86_fp80, x86_fp80 }* %agg.result to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %agg.result21, i8* %tmp219, i32 32, i32 16 )
-	ret void
-}
-
-declare void @ccoshl({ x86_fp80, x86_fp80 }* sret , x86_fp80, x86_fp80) nounwind 
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/sret.ll b/libclamav/c++/llvm/test/Transforms/MemCpyOpt/sret.ll
deleted file mode 100644
index ad9fb1b..0000000
--- a/libclamav/c++/llvm/test/Transforms/MemCpyOpt/sret.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -memcpyopt | llvm-dis | not grep {call.*memcpy}
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin9"
-
-define void @ccosl({ x86_fp80, x86_fp80 }* noalias sret  %agg.result, { x86_fp80, x86_fp80 }* byval  %z) nounwind  {
-entry:
-	%iz = alloca { x86_fp80, x86_fp80 }		; <{ x86_fp80, x86_fp80 }*> [#uses=3]
-	%memtmp = alloca { x86_fp80, x86_fp80 }, align 16		; <{ x86_fp80, x86_fp80 }*> [#uses=2]
-	%tmp1 = getelementptr { x86_fp80, x86_fp80 }* %z, i32 0, i32 1		; <x86_fp80*> [#uses=1]
-	%tmp2 = load x86_fp80* %tmp1, align 16		; <x86_fp80> [#uses=1]
-	%tmp3 = fsub x86_fp80 0xK80000000000000000000, %tmp2		; <x86_fp80> [#uses=1]
-	%tmp4 = getelementptr { x86_fp80, x86_fp80 }* %iz, i32 0, i32 1		; <x86_fp80*> [#uses=1]
-	%real = getelementptr { x86_fp80, x86_fp80 }* %iz, i32 0, i32 0		; <x86_fp80*> [#uses=1]
-	%tmp7 = getelementptr { x86_fp80, x86_fp80 }* %z, i32 0, i32 0		; <x86_fp80*> [#uses=1]
-	%tmp8 = load x86_fp80* %tmp7, align 16		; <x86_fp80> [#uses=1]
-	store x86_fp80 %tmp3, x86_fp80* %real, align 16
-	store x86_fp80 %tmp8, x86_fp80* %tmp4, align 16
-	call void @ccoshl( { x86_fp80, x86_fp80 }* noalias sret  %memtmp, { x86_fp80, x86_fp80 }* byval  %iz ) nounwind 
-	%memtmp14 = bitcast { x86_fp80, x86_fp80 }* %memtmp to i8*		; <i8*> [#uses=1]
-	%agg.result15 = bitcast { x86_fp80, x86_fp80 }* %agg.result to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %agg.result15, i8* %memtmp14, i32 32, i32 16 )
-	ret void
-}
-
-declare void @ccoshl({ x86_fp80, x86_fp80 }* noalias sret , { x86_fp80, x86_fp80 }* byval ) nounwind 
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/MergeFunc/dg.exp b/libclamav/c++/llvm/test/Transforms/MergeFunc/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/MergeFunc/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/MergeFunc/fold-weak.ll b/libclamav/c++/llvm/test/Transforms/MergeFunc/fold-weak.ll
deleted file mode 100644
index cea49fb..0000000
--- a/libclamav/c++/llvm/test/Transforms/MergeFunc/fold-weak.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -mergefunc | llvm-dis > %t
-; RUN: grep {define weak} %t | count 2
-; RUN: grep {call} %t | count 2
-
-define weak i32 @sum(i32 %x, i32 %y) {
-  %sum = add i32 %x, %y
-  ret i32 %sum
-}
-
-define weak i32 @add(i32 %x, i32 %y) {
-  %sum = add i32 %x, %y
-  ret i32 %sum
-}
diff --git a/libclamav/c++/llvm/test/Transforms/MergeFunc/phi-speculation1.ll b/libclamav/c++/llvm/test/Transforms/MergeFunc/phi-speculation1.ll
deleted file mode 100644
index 9ba3081..0000000
--- a/libclamav/c++/llvm/test/Transforms/MergeFunc/phi-speculation1.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -mergefunc -stats -disable-output |& not grep {functions merged}
-
-define i32 @foo1(i32 %x) {
-entry:
-  %A = add i32 %x, 1
-  %B = call i32 @foo1(i32 %A)
-  br label %loop
-loop:
-  %C = phi i32 [%B, %entry], [%D, %loop]
-  %D = add i32 %x, 2
-  %E = icmp ugt i32 %D, 10000
-  br i1 %E, label %loopexit, label %loop
-loopexit:
-  ret i32 %D
-}
-
-define i32 @foo2(i32 %x) {
-entry:
-  %0 = add i32 %x, 1
-  %1 = call i32 @foo2(i32 %0)
-  br label %loop
-loop:
-  %2 = phi i32 [%1, %entry], [%3, %loop]
-  %3 = add i32 %2, 2
-  %4 = icmp ugt i32 %3, 10000
-  br i1 %4, label %loopexit, label %loop
-loopexit:
-  ret i32 %3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/MergeFunc/phi-speculation2.ll b/libclamav/c++/llvm/test/Transforms/MergeFunc/phi-speculation2.ll
deleted file mode 100644
index d8c6e30..0000000
--- a/libclamav/c++/llvm/test/Transforms/MergeFunc/phi-speculation2.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -mergefunc -stats -disable-output |& grep {functions merged}
-
-define i32 @foo1(i32 %x) {
-entry:
-  %A = add i32 %x, 1
-  %B = call i32 @foo1(i32 %A)
-  br label %loop
-loop:
-  %C = phi i32 [%B, %entry], [%D, %loop]
-  %D = add i32 %C, 2
-  %E = icmp ugt i32 %D, 10000
-  br i1 %E, label %loopexit, label %loop
-loopexit:
-  ret i32 %D
-}
-
-define i32 @foo2(i32 %x) {
-entry:
-  %0 = add i32 %x, 1
-  %1 = call i32 @foo2(i32 %0)
-  br label %loop
-loop:
-  %2 = phi i32 [%1, %entry], [%3, %loop]
-  %3 = add i32 %2, 2
-  %4 = icmp ugt i32 %3, 10000
-  br i1 %4, label %loopexit, label %loop
-loopexit:
-  ret i32 %3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-08-02-Switch.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-08-02-Switch.ll
deleted file mode 100644
index fadaaa2..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-08-02-Switch.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-define fastcc void @_ov_splice(i32 %n1, i32 %n2, i32 %ch2) {
-entry:
-	%tmp = icmp sgt i32 %n1, %n2		; <i1> [#uses=1]
-	%n.0 = select i1 %tmp, i32 %n2, i32 %n1		; <i32> [#uses=1]
-	%tmp104 = icmp slt i32 0, %ch2		; <i1> [#uses=1]
-	br i1 %tmp104, label %cond_true105, label %return
-cond_true95:		; preds = %cond_true105
-	ret void
-bb98:		; preds = %cond_true105
-	ret void
-cond_true105:		; preds = %entry
-	%tmp94 = icmp sgt i32 %n.0, 0		; <i1> [#uses=1]
-	br i1 %tmp94, label %cond_true95, label %bb98
-return:		; preds = %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-08-07-LeaderOffByOne.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-08-07-LeaderOffByOne.ll
deleted file mode 100644
index c08dbb3..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-08-07-LeaderOffByOne.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-define void @safe_strcpy(i32 %size1) {
-entry:
-	%tmp = icmp eq i32 %size1, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %return, label %strlen.exit
-strlen.exit:		; preds = %entry
-	%tmp.upgrd.1 = trunc i64 0 to i32		; <i32> [#uses=2]
-	%tmp6 = icmp ult i32 %tmp.upgrd.1, %size1		; <i1> [#uses=1]
-	br i1 %tmp6, label %cond_true7, label %cond_false19
-cond_true7:		; preds = %strlen.exit
-	%tmp9 = icmp eq i32 %tmp.upgrd.1, 0		; <i1> [#uses=1]
-	br i1 %tmp9, label %cond_next15, label %cond_true10
-cond_true10:		; preds = %cond_true7
-	ret void
-cond_next15:		; preds = %cond_true7
-	ret void
-cond_false19:		; preds = %strlen.exit
-	ret void
-return:		; preds = %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-09-20-ResolveCycle.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-09-20-ResolveCycle.ll
deleted file mode 100644
index f3d58e9..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-09-20-ResolveCycle.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-define void @gs_image_next() {
-entry:
-	%tmp = load i32* null		; <i32> [#uses=2]
-	br i1 false, label %cond_next21, label %UnifiedReturnBlock
-cond_next21:		; preds = %entry
-	br i1 false, label %cond_next42, label %UnifiedReturnBlock
-cond_next42:		; preds = %cond_next21
-	br label %cond_true158
-cond_next134:		; preds = %cond_true158
-	%tmp1571 = icmp eq i32 0, %min		; <i1> [#uses=0]
-	ret void
-cond_true158:		; preds = %cond_true158, %cond_next42
-	%tmp47 = sub i32 %tmp, 0		; <i32> [#uses=2]
-	%tmp49 = icmp ule i32 %tmp47, 0		; <i1> [#uses=1]
-	%min = select i1 %tmp49, i32 %tmp47, i32 0		; <i32> [#uses=2]
-	%tmp92 = add i32 %min, 0		; <i32> [#uses=1]
-	%tmp101 = icmp eq i32 %tmp92, %tmp		; <i1> [#uses=1]
-	br i1 %tmp101, label %cond_next134, label %cond_true158
-UnifiedReturnBlock:		; preds = %cond_next21, %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-09-20-SetCC.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-09-20-SetCC.ll
deleted file mode 100644
index 9df0f9d..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-09-20-SetCC.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify | llvm-dis | grep br | grep return.i.bb8_crit_edge | grep false
- at str = external global [4 x i8]		; <[4 x i8]*> [#uses=1]
-
-declare i32 @sprintf(i8*, i8*, ...)
-
-define i32 @main() {
-entry:
-	br label %cond_true.outer
-cond_true.outer:		; preds = %cond_true.i, %entry
-	%i.0.0.ph = phi i32 [ 0, %entry ], [ %tmp5, %cond_true.i ]		; <i32> [#uses=1]
-	%j.0.0.ph = phi i32 [ 0, %entry ], [ %tmp312, %cond_true.i ]		; <i32> [#uses=2]
-	br label %cond_true
-cond_true:		; preds = %return.i, %cond_true.outer
-	%indvar.ui = phi i32 [ 0, %cond_true.outer ], [ %indvar.next, %return.i ]		; <i32> [#uses=2]
-	%indvar = bitcast i32 %indvar.ui to i32		; <i32> [#uses=1]
-	%i.0.0 = add i32 %indvar, %i.0.0.ph		; <i32> [#uses=3]
-	%savedstack = call i8* @llvm.stacksave( )		; <i8*> [#uses=2]
-	%tmp.i = icmp eq i32 %i.0.0, 0		; <i1> [#uses=1]
-	%tmp5 = add i32 %i.0.0, 1		; <i32> [#uses=3]
-	br i1 %tmp.i, label %return.i, label %cond_true.i
-cond_true.i:		; preds = %cond_true
-	%tmp.i.upgrd.1 = alloca [1000 x i8]		; <[1000 x i8]*> [#uses=1]
-	%tmp.sub.i = getelementptr [1000 x i8]* %tmp.i.upgrd.1, i32 0, i32 0		; <i8*> [#uses=2]
-	%tmp4.i = call i32 (i8*, i8*, ...)* @sprintf( i8* %tmp.sub.i, i8* getelementptr ([4 x i8]* @str, i32 0, i64 0), i32 %i.0.0 )		; <i32> [#uses=0]
-	%tmp.i.upgrd.2 = load i8* %tmp.sub.i		; <i8> [#uses=1]
-	%tmp7.i = sext i8 %tmp.i.upgrd.2 to i32		; <i32> [#uses=1]
-	call void @llvm.stackrestore( i8* %savedstack )
-	%tmp312 = add i32 %tmp7.i, %j.0.0.ph		; <i32> [#uses=2]
-	%tmp19 = icmp sgt i32 %tmp5, 9999		; <i1> [#uses=1]
-	br i1 %tmp19, label %bb8, label %cond_true.outer
-return.i:		; preds = %cond_true
-	call void @llvm.stackrestore( i8* %savedstack )
-	%tmp21 = icmp sgt i32 %tmp5, 9999		; <i1> [#uses=1]
-	%indvar.next = add i32 %indvar.ui, 1		; <i32> [#uses=1]
-	br i1 %tmp21, label %bb8, label %cond_true
-bb8:		; preds = %return.i, %cond_true.i
-	%j.0.1 = phi i32 [ %j.0.0.ph, %return.i ], [ %tmp312, %cond_true.i ]		; <i32> [#uses=1]
-	%tmp10 = call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @str, i32 0, i64 0), i32 %j.0.1 )		; <i32> [#uses=0]
-	ret i32 undef
-}
-
-declare i32 @printf(i8*, ...)
-
-declare i8* @llvm.stacksave()
-
-declare void @llvm.stackrestore(i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-10-22-IntOr.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-10-22-IntOr.ll
deleted file mode 100644
index 9146576..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-10-22-IntOr.ll
+++ /dev/null
@@ -1,48 +0,0 @@
-; RUN: llvm-as < %s | \
-; RUN:   opt -predsimplify -instcombine -simplifycfg  | llvm-dis > %t
-; RUN: grep -v declare %t | not grep fail
-; RUN: grep -v declare %t | grep pass | count 3
-
-define i32 @test1(i32 %x, i32 %y) {
-entry:
-	%tmp2 = or i32 %x, %y		; <i32> [#uses=1]
-	%tmp = icmp eq i32 %tmp2, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %cond_true, label %return
-cond_true:		; preds = %entry
-	%tmp4 = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %tmp4, label %cond_true5, label %cond_false
-cond_true5:		; preds = %cond_true
-	%tmp6 = call i32 @pass( )		; <i32> [#uses=1]
-	ret i32 %tmp6
-cond_false:		; preds = %cond_true
-	%tmp8 = call i32 @fail( )		; <i32> [#uses=1]
-	ret i32 %tmp8
-return:		; preds = %entry
-	ret i32 0
-}
-
-define i32 @test2(i32 %x, i32 %y) {
-entry:
-	%tmp2 = or i32 %x, %y		; <i32> [#uses=1]
-	%tmp = icmp ne i32 %tmp2, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %cond_true, label %return
-cond_true:		; preds = %entry
-	%tmp4 = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %tmp4, label %cond_true5, label %cond_false
-cond_true5:		; preds = %cond_true
-	%tmp6 = call i32 @pass1( )		; <i32> [#uses=1]
-	ret i32 %tmp6
-cond_false:		; preds = %cond_true
-	%tmp8 = call i32 @pass2( )		; <i32> [#uses=1]
-	ret i32 %tmp8
-return:		; preds = %entry
-	ret i32 0
-}
-
-declare i32 @fail()
-
-declare i32 @pass()
-
-declare i32 @pass1()
-
-declare i32 @pass2()
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-10-25-AddSetCC.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-10-25-AddSetCC.ll
deleted file mode 100644
index cbc54be..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-10-25-AddSetCC.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | \
-; RUN:   opt -predsimplify -instcombine -simplifycfg | llvm-dis | \
-; RUN:   grep -v declare | grep pass | count 2
-
-define i32 @test(i32 %x, i32 %y) {
-entry:
-	%tmp2 = icmp slt i32 %x, %y		; <i1> [#uses=1]
-	%tmp = icmp ne i1 %tmp2, true		; <i1> [#uses=1]
-	br i1 %tmp, label %cond_true, label %return
-cond_true:		; preds = %entry
-	%tmp4 = icmp eq i32 %x, %y		; <i1> [#uses=1]
-	br i1 %tmp4, label %cond_true5, label %cond_false
-cond_true5:		; preds = %cond_true
-	%tmp6 = call i32 @pass1( )		; <i32> [#uses=1]
-	ret i32 %tmp6
-cond_false:		; preds = %cond_true
-	%tmp8 = call i32 @pass2( )		; <i32> [#uses=1]
-	ret i32 %tmp8
-return:		; preds = %entry
-	ret i32 0
-}
-
-declare i32 @pass1()
-
-declare i32 @pass2()
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-04-ImpossibleGT.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-04-ImpossibleGT.ll
deleted file mode 100644
index b0b9859..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-04-ImpossibleGT.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-define void @readMotionInfoFromNAL() {
-entry:
-	br i1 false, label %bb2425, label %cond_next30
-cond_next30:		; preds = %entry
-	ret void
-bb2418:		; preds = %bb2425
-	ret void
-bb2425:		; preds = %entry
-	%tmp2427 = icmp sgt i32 0, 3		; <i1> [#uses=1]
-	br i1 %tmp2427, label %cond_next2429, label %bb2418
-cond_next2429:		; preds = %bb2425
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-04-ReplacingZeros.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-04-ReplacingZeros.ll
deleted file mode 100644
index 906d7c3..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-04-ReplacingZeros.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-define i32 @test_wp_B_slice(i32 %select_method) {
-entry:
-	br label %bb309
-cond_true114:		; preds = %bb309
-	%tmp130 = icmp slt i32 0, 128		; <i1> [#uses=1]
-	%min = select i1 %tmp130, i32 0, i32 127		; <i32> [#uses=2]
-	%tmp143 = load i32* null		; <i32> [#uses=0]
-	br i1 false, label %bb303, label %bb314
-cond_true166:		; preds = %bb303
-	ret i32 0
-cond_false200:		; preds = %bb303
-	%tmp205 = sdiv i32 %min, 2		; <i32> [#uses=1]
-	%iftmp.380.0.p = select i1 false, i32 0, i32 %tmp205		; <i32> [#uses=0]
-	ret i32 0
-bb303:		; preds = %cond_true114
-	%tmp165 = icmp eq i32 %min, 0		; <i1> [#uses=1]
-	br i1 %tmp165, label %cond_true166, label %cond_false200
-bb309:		; preds = %entry
-	br i1 false, label %cond_true114, label %bb314
-bb314:		; preds = %bb309, %cond_true114
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-05-CycleGTLT.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-05-CycleGTLT.ll
deleted file mode 100644
index 87e0e16..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-05-CycleGTLT.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-define void @diff(i32 %N) {
-entry:
-	%tmp = icmp sgt i32 %N, 0		; <i1> [#uses=1]
-	br i1 %tmp, label %bb519, label %bb744
-bb519:		; preds = %entry
-	%tmp720101 = icmp slt i32 %N, 0		; <i1> [#uses=1]
-	br i1 %tmp720101, label %bb744, label %bb744
-bb744:		; preds = %bb519, %bb519, %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-11-Squeeze.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-11-Squeeze.ll
deleted file mode 100644
index 4f8af01..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-11-Squeeze.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-	%struct.cube_struct = type { i32, i32, i32, i32*, i32*, i32*, i32*, i32*, i32*, i32*, i32**, i32**, i32*, i32*, i32, i32, i32*, i32, i32 }
- at cube = external global %struct.cube_struct		; <%struct.cube_struct*> [#uses=2]
-
-define fastcc void @cube_setup() {
-entry:
-	%tmp = load i32* getelementptr (%struct.cube_struct* @cube, i32 0, i32 2)	; <i32> [#uses=2]
-	%tmp.upgrd.1 = icmp slt i32 %tmp, 0		; <i1> [#uses=1]
-	br i1 %tmp.upgrd.1, label %bb, label %cond_next
-cond_next:		; preds = %entry
-	%tmp2 = load i32* getelementptr (%struct.cube_struct* @cube, i32 0, i32 1)	; <i32> [#uses=2]
-	%tmp5 = icmp slt i32 %tmp2, %tmp		; <i1> [#uses=1]
-	br i1 %tmp5, label %bb, label %bb6
-bb:		; preds = %cond_next, %entry
-	unreachable
-bb6:		; preds = %cond_next
-	%tmp98124 = icmp sgt i32 %tmp2, 0		; <i1> [#uses=1]
-	br i1 %tmp98124, label %bb42, label %bb99
-bb42:		; preds = %bb6
-	ret void
-bb99:		; preds = %bb6
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-12-MergeNodes.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-12-MergeNodes.ll
deleted file mode 100644
index 47f912d..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2006-11-12-MergeNodes.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-; END.
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct.VDIR_ST = type { i32, i32, i32, %struct.acl*, %struct.pfile*, %struct.vlink*, %struct.vlink*, %struct.vlink*, %struct.VDIR_ST*, %struct.VDIR_ST* }
-	%struct.acl = type { i32, i8*, i8*, i8*, %struct.restrict*, %struct.acl*, %struct.acl* }
-	%struct.avalue = type { i8* }
-	%struct.pattrib = type { i8, i8*, i8*, %struct.avalue, %struct.pattrib*, %struct.pattrib* }
-	%struct.pfile = type { i32, i32, i32, i32, i32, %struct.vlink*, %struct.vlink*, %struct.pattrib*, %struct.pfile*, %struct.pfile* }
-	%struct.restrict = type { %struct.acl*, %struct.acl* }
-	%struct.vlink = type { i32, i8*, i8, i32, i8*, %struct.vlink*, %struct.vlink*, i8*, i8*, i8*, i8*, i32, i32, %struct.acl*, i32, i32, i8*, %struct.pattrib*, %struct.pfile*, %struct.vlink*, %struct.vlink* }
-
-define void @vl_insert(%struct.vlink* %vl) {
-entry:
-	%tmp91 = call i32 @vl_comp( )		; <i32> [#uses=2]
-	%tmp93 = icmp sgt i32 %tmp91, 0		; <i1> [#uses=1]
-	br i1 %tmp93, label %cond_next84, label %bb94
-cond_next84:		; preds = %entry
-	ret void
-bb94:		; preds = %entry
-	%tmp96 = icmp eq i32 %tmp91, 0		; <i1> [#uses=1]
-	br i1 %tmp96, label %cond_true97, label %cond_next203
-cond_true97:		; preds = %bb94
-	br i1 false, label %cond_next105, label %cond_true102
-cond_true102:		; preds = %cond_true97
-	ret void
-cond_next105:		; preds = %cond_true97
-	%tmp110 = getelementptr %struct.vlink* %vl, i32 0, i32 12		; <i32*> [#uses=1]
-	%tmp111 = load i32* %tmp110		; <i32> [#uses=1]
-	%tmp129 = icmp eq i32 %tmp111, 0		; <i1> [#uses=1]
-	br i1 %tmp129, label %cond_true130, label %cond_next133
-cond_true130:		; preds = %cond_next105
-	ret void
-cond_next133:		; preds = %cond_next105
-	ret void
-cond_next203:		; preds = %bb94
-	ret void
-}
-
-declare i32 @vl_comp()
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-01-04-SelectSwitch.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-01-04-SelectSwitch.ll
deleted file mode 100644
index 8e45a66..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-01-04-SelectSwitch.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-
-define void @ercMarkCurrMBConcealed(i32 %comp) {
-entry:
-	%tmp5 = icmp slt i32 %comp, 0		; <i1> [#uses=2]
-	%comp_addr.0 = select i1 %tmp5, i32 0, i32 %comp		; <i32> [#uses=1]
-	switch i32 %comp_addr.0, label %return [
-		 i32 0, label %bb
-	]
-bb:		; preds = %entry
-	br i1 %tmp5, label %bb87.bb97_crit_edge.critedge, label %return
-bb87.bb97_crit_edge.critedge:		; preds = %bb
-	ret void
-return:		; preds = %bb, %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-03-17-OpsToDefVRP.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-03-17-OpsToDefVRP.ll
deleted file mode 100644
index 0a45e7c..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-03-17-OpsToDefVRP.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify | llvm-dis | grep -v %c
-define void @foo(i8* %X, i8* %Y) {
-entry:
-  %A = load i8* %X
-  %B = load i8* %Y
-  %a = icmp ult i8 %B, 10
-  br i1 %a, label %cond_true, label %URB
-cond_true:
-  %b = icmp eq i8 %A, %B
-  br i1 %b, label %cond_true2, label %URB
-cond_true2:
-  %c = icmp ult i8 %A, 11
-  call i8 @bar(i1 %c)
-  ret void
-URB:
-  ret void
-}
-
-declare i8 @bar(i1)
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-09-19-Subtract.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-09-19-Subtract.ll
deleted file mode 100644
index e12453a..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/2007-09-19-Subtract.ll
+++ /dev/null
@@ -1,102 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify | llvm-dis | grep unreachable | count 2
-; PR1683
-
- at .str = internal constant [13 x i8] c"c36174a.adb\00\00"		; <[13 x i8]*> [#uses=1]
-
-define void @_ada_c36174a() {
-entry:
-	%tmp3 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%tmp4 = invoke i32 @report__ident_int( i32 6 )
-			to label %invcont unwind label %entry.lpad_crit_edge		; <i32> [#uses=7]
-
-entry.lpad_crit_edge:		; preds = %entry
-	br label %lpad
-
-invcont:		; preds = %entry
-	%tmp6 = icmp slt i32 %tmp4, 1		; <i1> [#uses=1]
-	br i1 %tmp6, label %bb, label %bb9
-
-bb:		; preds = %invcont
-	invoke void @__gnat_rcheck_07( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 10 )
-			to label %invcont8 unwind label %bb.lpad_crit_edge
-
-bb.lpad_crit_edge:		; preds = %bb
-	br label %lpad
-
-invcont8:		; preds = %bb
-	unreachable
-
-bb9:		; preds = %invcont
-	%tmp51 = add i32 %tmp4, 6		; <i32> [#uses=2]
-	%tmp56 = icmp sgt i32 %tmp4, %tmp51		; <i1> [#uses=1]
-	br i1 %tmp56, label %bb9.bb76_crit_edge, label %bb9.bb61_crit_edge
-
-bb9.bb61_crit_edge:		; preds = %bb9
-	br label %bb61
-
-bb9.bb76_crit_edge:		; preds = %bb9
-	br label %bb76
-
-bb61:		; preds = %bb73, %bb9.bb61_crit_edge
-	%J4b.0 = phi i32 [ %tmp75, %bb73 ], [ %tmp4, %bb9.bb61_crit_edge ]		; <i32> [#uses=2]
-	%tmp70 = icmp eq i32 %tmp51, %J4b.0		; <i1> [#uses=1]
-	br i1 %tmp70, label %bb61.bb76_crit_edge, label %bb73
-
-bb61.bb76_crit_edge:		; preds = %bb61
-	br label %bb76
-
-bb73:		; preds = %bb61
-	%tmp75 = add i32 %J4b.0, 1		; <i32> [#uses=1]
-	br label %bb61
-
-bb76:		; preds = %bb61.bb76_crit_edge, %bb9.bb76_crit_edge
-	%tmp78 = icmp ne i32 %tmp4, 6		; <i1> [#uses=1]
-	%tmp81 = add i32 %tmp4, 6		; <i32> [#uses=1]
-	%tmp8182 = sext i32 %tmp81 to i64		; <i64> [#uses=1]
-	%tmp8384 = sext i32 %tmp4 to i64		; <i64> [#uses=1]
-	%tmp85 = sub i64 %tmp8182, %tmp8384		; <i64> [#uses=1]
-	%tmp86 = icmp ne i64 %tmp85, 6		; <i1> [#uses=1]
-	%tmp90 = or i1 %tmp78, %tmp86		; <i1> [#uses=1]
-	br i1 %tmp90, label %bb93, label %bb76.bb99_crit_edge
-
-bb76.bb99_crit_edge:		; preds = %bb76
-	br label %bb99
-
-bb93:		; preds = %bb76
-	invoke void @abort( )
-			to label %bb93.bb99_crit_edge unwind label %bb93.lpad_crit_edge
-
-bb93.lpad_crit_edge:		; preds = %bb93
-	br label %lpad
-
-bb93.bb99_crit_edge:		; preds = %bb93
-	br label %bb99
-
-bb99:		; preds = %bb93.bb99_crit_edge, %bb76.bb99_crit_edge
-	ret void
-
-lpad:		; preds = %bb93.lpad_crit_edge, %bb.lpad_crit_edge, %entry.lpad_crit_edge
-	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select102 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32 0 )		; <i32> [#uses=0]
-	call void @llvm.stackrestore( i8* %tmp3 )
-	call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )		; <i32>:0 [#uses=0]
-	unreachable
-}
-
-declare i8* @llvm.stacksave()
-
-declare i32 @report__ident_int(i32)
-
-declare void @__gnat_rcheck_07(i8*, i32)
-
-declare void @abort()
-
-declare i8* @llvm.eh.exception()
-
-declare i32 @llvm.eh.selector.i32(i8*, i8*, ...)
-
-declare i32 @__gnat_eh_personality(...)
-
-declare i32 @_Unwind_Resume(...)
-
-declare void @llvm.stackrestore(i8*)
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/dg.exp b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.ll
deleted file mode 100644
index a6848df..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.ll
+++ /dev/null
@@ -1,279 +0,0 @@
-; RUN: llvm-as < %s | \
-; RUN:   opt -predsimplify -instcombine -simplifycfg | llvm-dis > %t
-; RUN: grep -v declare %t | not grep fail
-; RUN: grep -v declare %t | grep pass | count 4
-
-
-define void @test1(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %A, label %then.1, label %else.1
-then.1:		; preds = %entry
-	%B = icmp eq i32 %x, 1		; <i1> [#uses=1]
-	br i1 %B, label %then.2, label %else.1
-then.2:		; preds = %then.1
-	call void (...)* @fail( )
-	ret void
-else.1:		; preds = %then.1, %entry
-	ret void
-}
-
-define void @test2(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	%B = icmp eq i32 %x, 1		; <i1> [#uses=1]
-	br i1 %A, label %then.1, label %else.1
-then.1:		; preds = %entry
-	br i1 %B, label %then.2, label %else.1
-then.2:		; preds = %then.1
-	call void (...)* @fail( )
-	ret void
-else.1:		; preds = %then.1, %entry
-	ret void
-}
-
-define void @test3(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	%B = icmp eq i32 %x, 1		; <i1> [#uses=1]
-	br i1 %A, label %then.1, label %else.1
-then.1:		; preds = %entry
-	br i1 %B, label %then.2, label %else.1
-then.2:		; preds = %then.1
-	call void (...)* @fail( )
-	ret void
-else.1:		; preds = %then.1, %entry
-	ret void
-}
-
-define void @test4(i32 %x, i32 %y) {
-entry:
-	%A = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	%B = icmp eq i32 %y, 0		; <i1> [#uses=1]
-	%C = and i1 %A, %B		; <i1> [#uses=1]
-	br i1 %C, label %then.1, label %else.1
-then.1:		; preds = %entry
-	%D = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %D, label %then.2, label %else.2
-then.2:		; preds = %then.1
-	%E = icmp eq i32 %y, 0		; <i1> [#uses=1]
-	br i1 %E, label %else.1, label %else.2
-else.1:		; preds = %then.2, %entry
-	ret void
-else.2:		; preds = %then.2, %then.1
-	call void (...)* @fail( )
-	ret void
-}
-
-define void @test5(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %A, label %then.1, label %else.1
-then.1:		; preds = %else.1, %entry
-	ret void
-then.2:		; preds = %else.1
-	call void (...)* @fail( )
-	ret void
-else.1:		; preds = %entry
-	%B = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %B, label %then.2, label %then.1
-}
-
-define void @test6(i32 %x, i32 %y) {
-entry:
-	%A = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	%B = icmp eq i32 %y, 0		; <i1> [#uses=1]
-	%C = or i1 %A, %B		; <i1> [#uses=1]
-	br i1 %C, label %then.1, label %else.1
-then.1:		; preds = %else.2, %entry
-	ret void
-then.2:		; preds = %else.2, %else.1
-	call void (...)* @fail( )
-	ret void
-else.1:		; preds = %entry
-	%D = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %D, label %then.2, label %else.2
-else.2:		; preds = %else.1
-	%E = icmp ne i32 %y, 0		; <i1> [#uses=1]
-	br i1 %E, label %then.1, label %then.2
-}
-
-define void @test7(i32 %x) {
-entry:
-	%A = icmp ne i32 %x, 0		; <i1> [#uses=1]
-	%B = xor i1 %A, true		; <i1> [#uses=1]
-	br i1 %B, label %then.1, label %else.1
-then.1:		; preds = %entry
-	%C = icmp eq i32 %x, 1		; <i1> [#uses=1]
-	br i1 %C, label %then.2, label %else.1
-then.2:		; preds = %then.1
-	call void (...)* @fail( )
-	ret void
-else.1:		; preds = %then.1, %entry
-	ret void
-}
-
-define void @test8(i32 %x) {
-entry:
-	%A = add i32 %x, 1		; <i32> [#uses=1]
-	%B = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %B, label %then.1, label %then.2
-then.1:		; preds = %entry
-	%C = icmp eq i32 %A, 1		; <i1> [#uses=1]
-	br i1 %C, label %then.2, label %else.2
-then.2:		; preds = %then.1, %entry
-	ret void
-else.2:		; preds = %then.1
-	call void (...)* @fail( )
-	ret void
-}
-
-define void @test9(i32 %y, i32 %z) {
-entry:
-	%x = add i32 %y, %z		; <i32> [#uses=1]
-	%A = icmp eq i32 %y, 3		; <i1> [#uses=1]
-	%B = icmp eq i32 %z, 5		; <i1> [#uses=1]
-	%C = and i1 %A, %B		; <i1> [#uses=1]
-	br i1 %C, label %cond_true, label %return
-cond_true:		; preds = %entry
-	%D = icmp eq i32 %x, 8		; <i1> [#uses=1]
-	br i1 %D, label %then, label %oops
-then:		; preds = %cond_true
-	call void (...)* @pass( )
-	ret void
-oops:		; preds = %cond_true
-	call void (...)* @fail( )
-	ret void
-return:		; preds = %entry
-	ret void
-}
-
-define void @test10() {
-entry:
-	%A = alloca i32		; <i32*> [#uses=1]
-	%B = icmp eq i32* %A, null		; <i1> [#uses=1]
-	br i1 %B, label %cond_true, label %cond_false
-cond_true:		; preds = %entry
-	call void (...)* @fail( )
-	ret void
-cond_false:		; preds = %entry
-	call void (...)* @pass( )
-	ret void
-}
-
-define void @switch1(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 10		; <i1> [#uses=1]
-	br i1 %A, label %return, label %cond_false
-cond_false:		; preds = %entry
-	switch i32 %x, label %return [
-		 i32 9, label %then1
-		 i32 10, label %then2
-	]
-then1:		; preds = %cond_false
-	call void (...)* @pass( )
-	ret void
-then2:		; preds = %cond_false
-	call void (...)* @fail( )
-	ret void
-return:		; preds = %cond_false, %entry
-	ret void
-}
-
-define void @switch2(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 10		; <i1> [#uses=1]
-	br i1 %A, label %return, label %cond_false
-cond_false:		; preds = %entry
-	switch i32 %x, label %return [
-		 i32 8, label %then1
-		 i32 9, label %then1
-		 i32 10, label %then1
-	]
-then1:		; preds = %cond_false, %cond_false, %cond_false
-	%B = icmp ne i32 %x, 8		; <i1> [#uses=1]
-	br i1 %B, label %then2, label %return
-then2:		; preds = %then1
-	call void (...)* @pass( )
-	ret void
-return:		; preds = %then1, %cond_false, %entry
-	ret void
-}
-
-define void @switch3(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 10		; <i1> [#uses=1]
-	br i1 %A, label %return, label %cond_false
-cond_false:		; preds = %entry
-	switch i32 %x, label %return [
-		 i32 9, label %then1
-		 i32 10, label %then1
-	]
-then1:		; preds = %cond_false, %cond_false
-	%B = icmp eq i32 %x, 9		; <i1> [#uses=1]
-	br i1 %B, label %return, label %oops
-oops:		; preds = %then1
-	call void (...)* @fail( )
-	ret void
-return:		; preds = %then1, %cond_false, %entry
-	ret void
-}
-
-define void @switch4(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 10		; <i1> [#uses=1]
-	br i1 %A, label %then1, label %cond_false
-cond_false:		; preds = %entry
-	switch i32 %x, label %default [
-		 i32 9, label %then1
-		 i32 10, label %then2
-	]
-then1:		; preds = %default, %cond_false, %entry
-	ret void
-then2:		; preds = %cond_false
-	ret void
-default:		; preds = %cond_false
-	%B = icmp eq i32 %x, 9		; <i1> [#uses=1]
-	br i1 %B, label %oops, label %then1
-oops:		; preds = %default
-	call void (...)* @fail( )
-	ret void
-}
-
-define void @select1(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 10		; <i1> [#uses=3]
-	%B = select i1 %A, i32 1, i32 2		; <i32> [#uses=1]
-	%C = icmp eq i32 %B, 1		; <i1> [#uses=1]
-	br i1 %C, label %then, label %else
-then:		; preds = %entry
-	br i1 %A, label %return, label %oops
-else:		; preds = %entry
-	br i1 %A, label %oops, label %return
-oops:		; preds = %else, %then
-	call void (...)* @fail( )
-	ret void
-return:		; preds = %else, %then
-	ret void
-}
-
-define void @select2(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 10		; <i1> [#uses=2]
-	%B = select i1 %A, i32 1, i32 2		; <i32> [#uses=1]
-	%C = icmp eq i32 %B, 1		; <i1> [#uses=2]
-	br i1 %A, label %then, label %else
-then:		; preds = %entry
-	br i1 %C, label %return, label %oops
-else:		; preds = %entry
-	br i1 %C, label %oops, label %return
-oops:		; preds = %else, %then
-	call void (...)* @fail( )
-	ret void
-return:		; preds = %else, %then
-	ret void
-}
-
-declare void @fail(...)
-
-declare void @pass(...)
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg1.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg1.ll
deleted file mode 100644
index e98362b..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg1.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -verify
-
-define void @dgefa() {
-entry:
-	br label %cond_true96
-cond_true:		; preds = %cond_true96
-	%tmp19 = icmp eq i32 %tmp10, %k.0		; <i1> [#uses=1]
-	br i1 %tmp19, label %cond_next, label %cond_true20
-cond_true20:		; preds = %cond_true
-	br label %cond_next
-cond_next:		; preds = %cond_true20, %cond_true
-	%tmp84 = icmp sgt i32 %tmp3, 1999		; <i1> [#uses=0]
-	ret void
-cond_true96:		; preds = %cond_true96, %entry
-	%k.0 = phi i32 [ 0, %entry ], [ 0, %cond_true96 ]		; <i32> [#uses=3]
-	%tmp3 = add i32 %k.0, 1		; <i32> [#uses=1]
-	%tmp10 = add i32 0, %k.0		; <i32> [#uses=1]
-	br i1 false, label %cond_true96, label %cond_true
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg2.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg2.ll
deleted file mode 100644
index 9c064ee..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg2.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -verify
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-deplibs = [ "c", "crtend" ]
-	%struct.anon = type { %struct.set_family*, %struct.set_family*, %struct.set_family*, i8*, i32, i32*, %struct.pair_struct*, i8**, %struct.symbolic_t*, %struct.symbolic_t* }
-	%struct.pair_struct = type { i32, i32*, i32* }
-	%struct.set_family = type { i32, i32, i32, i32, i32, i32*, %struct.set_family* }
-	%struct.symbolic_label_t = type { i8*, %struct.symbolic_label_t* }
-	%struct.symbolic_list_t = type { i32, i32, %struct.symbolic_list_t* }
-	%struct.symbolic_t = type { %struct.symbolic_list_t*, i32, %struct.symbolic_label_t*, i32, %struct.symbolic_t* }
-
-define void @find_pairing_cost(i32 %strategy) {
-entry:
-	br i1 false, label %cond_true299, label %bb314
-bb94:		; preds = %cond_true299
-	switch i32 %strategy, label %bb246 [
-		 i32 0, label %bb196
-		 i32 1, label %bb159
-	]
-cond_next113:		; preds = %cond_true299
-	switch i32 %strategy, label %bb246 [
-		 i32 0, label %bb196
-		 i32 1, label %bb159
-	]
-bb159:		; preds = %cond_next113, %bb94
-	ret void
-bb196:		; preds = %cond_next113, %bb94
-	%Rsave.0.3 = phi %struct.set_family* [ null, %bb94 ], [ null, %cond_next113 ]		; <%struct.set_family*> [#uses=0]
-	ret void
-bb246:		; preds = %cond_next113, %bb94
-	br label %bb314
-cond_true299:		; preds = %entry
-	%tmp55 = icmp sgt i32 %strategy, 0		; <i1> [#uses=1]
-	br i1 %tmp55, label %bb94, label %cond_next113
-bb314:		; preds = %bb246, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg3.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg3.ll
deleted file mode 100644
index 190cc90..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg3.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -simplifycfg | llvm-dis | grep pass
-
-define void @regtest(i32 %x) {
-entry:
-	%A = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %A, label %middle, label %after
-middle:		; preds = %entry
-	br label %after
-after:		; preds = %middle, %entry
-	%B = icmp eq i32 %x, 0		; <i1> [#uses=1]
-	br i1 %B, label %then, label %else
-then:		; preds = %after
-	br label %end
-else:		; preds = %after
-	call void (...)* @pass( )
-	br label %end
-end:		; preds = %else, %then
-	ret void
-}
-
-declare void @pass(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg4.ll b/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg4.ll
deleted file mode 100644
index 092a49e..0000000
--- a/libclamav/c++/llvm/test/Transforms/PredicateSimplifier/predsimplify.reg4.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -predsimplify -disable-output
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-
-define void @f(i32 %x, i32 %y) {
-entry:
-	%tmp = icmp eq i32 %x, 10		; <i1> [#uses=1]
-	%tmp.not = xor i1 %tmp, true		; <i1> [#uses=1]
-	%tmp3 = icmp eq i32 %x, %y		; <i1> [#uses=1]
-	%bothcond = and i1 %tmp.not, %tmp3		; <i1> [#uses=1]
-	br i1 %bothcond, label %cond_true4, label %return
-cond_true4:		; preds = %entry
-	switch i32 %y, label %return [
-		 i32 9, label %bb
-		 i32 10, label %bb6
-	]
-bb:		; preds = %cond_true4
-	call void @g( i32 9 )
-	ret void
-bb6:		; preds = %cond_true4
-	call void @g( i32 10 )
-	ret void
-return:		; preds = %cond_true4, %entry
-	ret void
-}
-
-declare void @g(i32)
-
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/2003-09-14-ExternalCall.ll b/libclamav/c++/llvm/test/Transforms/PruneEH/2003-09-14-ExternalCall.ll
deleted file mode 100644
index 7fc9125..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/2003-09-14-ExternalCall.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -prune-eh | llvm-dis | grep invoke
-
-declare void @External()
-
-define void @foo() {
-	invoke void @External( )
-			to label %Cont unwind label %Cont
-Cont:		; preds = %0, %0
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/2003-11-21-PHIUpdate.ll b/libclamav/c++/llvm/test/Transforms/PruneEH/2003-11-21-PHIUpdate.ll
deleted file mode 100644
index 8333cd8..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/2003-11-21-PHIUpdate.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -prune-eh -disable-output
-
-define internal void @callee() {
-	ret void
-}
-
-define i32 @caller() {
-; <label>:0
-	invoke void @callee( )
-			to label %E unwind label %E
-E:		; preds = %0, %0
-	%X = phi i32 [ 0, %0 ], [ 0, %0 ]		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/2008-06-02-Weak.ll b/libclamav/c++/llvm/test/Transforms/PruneEH/2008-06-02-Weak.ll
deleted file mode 100644
index 133200f..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/2008-06-02-Weak.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -prune-eh | llvm-dis | not grep nounwind
-
-define weak void @f() {
-entry:
-        ret void
-}
-
-define void @g() {
-entry:
-	call void @f()
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll b/libclamav/c++/llvm/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll
deleted file mode 100644
index 74434f4..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll
+++ /dev/null
@@ -1,1445 +0,0 @@
-; RUN: llvm-as < %s | opt -prune-eh -inline -print-callgraph \
-; RUN:   -disable-output |& \
-; RUN:     grep {Calls.*ce3806g__fxio__put__put_int64__4.1339} | count 2
-	%struct.FRAME.ce3806g = type { %struct.string___XUB, %struct.string___XUB, %struct.string___XUB, %struct.string___XUB }
-	%struct.FRAME.ce3806g__fxio__put__4 = type { i32, i32, i32, %struct.system__file_control_block__pstring*, i32, i32, i8 }
-	%struct.RETURN = type { i8, i32 }
-	%struct.ada__streams__root_stream_type = type { %struct.ada__tags__dispatch_table* }
-	%struct.ada__tags__dispatch_table = type { [1 x i32] }
-	%struct.ada__tags__select_specific_data = type { i32, %struct.ada__tags__select_specific_data_element }
-	%struct.ada__tags__select_specific_data_element = type { i32, i8 }
-	%struct.ada__tags__type_specific_data = type { i32, i32, [2147483647 x i8]*, [2147483647 x i8]*, %struct.ada__tags__dispatch_table*, i8, i32, i32, i32, i32, [2 x %struct.ada__tags__dispatch_table*] }
-	%struct.ada__text_io__text_afcb = type { %struct.system__file_control_block__afcb, i32, i32, i32, i32, i32, %struct.ada__text_io__text_afcb*, i8, i8 }
-	%struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* }
-	%struct.long_long_float___PAD = type { x86_fp80, [1 x i32] }
-	%struct.string___XUB = type { i32, i32 }
-	%struct.system__file_control_block__afcb = type { %struct.ada__streams__root_stream_type, i32, %struct.system__file_control_block__pstring, %struct.system__file_control_block__pstring, i8, i8, i8, i8, i8, i8, i8, %struct.system__file_control_block__afcb*, %struct.system__file_control_block__afcb* }
-	%struct.system__file_control_block__pstring = type { i8*, %struct.string___XUB* }
-	%struct.system__finalization_implementation__limited_record_controller = type { %struct.system__finalization_root__root_controlled, %struct.system__finalization_root__root_controlled* }
-	%struct.system__finalization_implementation__record_controller = type { %struct.system__finalization_implementation__limited_record_controller, i32 }
-	%struct.system__finalization_root__empty_root_controlled = type { %struct.ada__tags__dispatch_table* }
-	%struct.system__finalization_root__root_controlled = type { %struct.ada__streams__root_stream_type, %struct.system__finalization_root__root_controlled*, %struct.system__finalization_root__root_controlled* }
-	%struct.system__secondary_stack__mark_id = type { i32, i32 }
-	%struct.system__standard_library__exception_data = type { i8, i8, i32, i32, %struct.system__standard_library__exception_data*, i32, void ()* }
- at .str = internal constant [12 x i8] c"system.ads\00\00"		; <[12 x i8]*> [#uses=1]
- at .str1 = internal constant [14 x i8] c"a-tifiio.adb\00\00"		; <[14 x i8]*> [#uses=1]
- at system__soft_links__abort_undefer = external global void ()*		; <void ()**> [#uses=6]
- at .str2 = internal constant [47 x i8] c"a-tifiio.adb:327 instantiated at ce3806g.adb:52"		; <[47 x i8]*> [#uses=1]
- at C.354.2200 = internal constant %struct.string___XUB { i32 1, i32 47 }		; <%struct.string___XUB*> [#uses=1]
- at ada__io_exceptions__data_error = external global %struct.exception		; <%struct.exception*> [#uses=1]
- at constraint_error = external global %struct.exception		; <%struct.exception*> [#uses=2]
- at __gnat_all_others_value = external constant i32		; <i32*> [#uses=21]
- at .str3 = internal constant [10 x i8] c"0123456789"		; <[10 x i8]*> [#uses=2]
- at ada__text_io__current_out = external global %struct.ada__text_io__text_afcb*		; <%struct.ada__text_io__text_afcb**> [#uses=1]
- at .str4 = internal constant [126 x i8] c"CHECK THAT FIXED_IO PUT OPERATES ON FILES OF MODE OUT_FILE AND IF NO FILE IS SPECIFIED THE CURRENT DEFAULT OUTPUT FILE IS USED"		; <[126 x i8]*> [#uses=1]
- at C.131.1559 = internal constant %struct.string___XUB { i32 1, i32 126 }		; <%struct.string___XUB*> [#uses=1]
- at .str5 = internal constant [7 x i8] c"CE3806G"		; <[7 x i8]*> [#uses=1]
- at C.132.1562 = internal constant %struct.string___XUB { i32 1, i32 7 }		; <%struct.string___XUB*> [#uses=1]
- at incompleteF.1176.b = internal global i1 false		; <i1*> [#uses=2]
- at incomplete.1177 = internal global %struct.exception { i8 0, i8 65, i32 23, i8* getelementptr ([23 x i8]* @incompleteE.1174, i32 0, i32 0), i8* null, i32 0, i8* null }		; <%struct.exception*> [#uses=15]
- at incompleteE.1174 = internal global [23 x i8] c"CE3806G.B_1.INCOMPLETE\00"		; <[23 x i8]*> [#uses=1]
- at .str6 = internal constant [0 x i8] zeroinitializer		; <[0 x i8]*> [#uses=1]
- at C.136.1568 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at C.137.1571 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at .str7 = internal constant [50 x i8] c"USE_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE"		; <[50 x i8]*> [#uses=1]
- at C.139.1577 = internal constant %struct.string___XUB { i32 1, i32 50 }		; <%struct.string___XUB*> [#uses=1]
- at .str8 = internal constant [14 x i8] c"ce3806g.adb:65"		; <[14 x i8]*> [#uses=1]
- at C.140.1580 = internal constant %struct.string___XUB { i32 1, i32 14 }		; <%struct.string___XUB*> [#uses=1]
- at .str9 = internal constant [51 x i8] c"NAME_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE"		; <[51 x i8]*> [#uses=1]
- at C.143.1585 = internal constant %struct.string___XUB { i32 1, i32 51 }		; <%struct.string___XUB*> [#uses=1]
- at .str10 = internal constant [14 x i8] c"ce3806g.adb:69"		; <[14 x i8]*> [#uses=1]
- at C.144.1588 = internal constant %struct.string___XUB { i32 1, i32 14 }		; <%struct.string___XUB*> [#uses=1]
- at C.146.1592 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at C.147.1595 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at C.153.1609 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at C.154.1612 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at .str12 = internal constant [47 x i8] c"USE_ERROR RAISED ON TEXT OPEN WITH IN_FILE MODE"		; <[47 x i8]*> [#uses=1]
- at C.156.1618 = internal constant %struct.string___XUB { i32 1, i32 47 }		; <%struct.string___XUB*> [#uses=1]
- at .str13 = internal constant [14 x i8] c"ce3806g.adb:88"		; <[14 x i8]*> [#uses=1]
- at C.157.1621 = internal constant %struct.string___XUB { i32 1, i32 14 }		; <%struct.string___XUB*> [#uses=1]
- at C.159.1627 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at C.160.1630 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
- at .str14 = internal constant [33 x i8] c"VALUE INCORRECT - FIXED FROM FILE"		; <[33 x i8]*> [#uses=1]
- at C.162.1637 = internal constant %struct.string___XUB { i32 1, i32 33 }		; <%struct.string___XUB*> [#uses=1]
- at .str15 = internal constant [36 x i8] c"VALUE INCORRECT - FIXED FROM DEFAULT"		; <[36 x i8]*> [#uses=1]
- at C.164.1642 = internal constant %struct.string___XUB { i32 1, i32 36 }		; <%struct.string___XUB*> [#uses=1]
- at ada__io_exceptions__use_error = external global %struct.exception		; <%struct.exception*> [#uses=4]
- at ada__io_exceptions__name_error = external global %struct.exception		; <%struct.exception*> [#uses=2]
-
-define void @_ada_ce3806g() {
-entry:
-	%0 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
-	%1 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
-	%2 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
-	%3 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
-	%FRAME.356 = alloca %struct.FRAME.ce3806g		; <%struct.FRAME.ce3806g*> [#uses=20]
-	call void @report__test( i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0), %struct.string___XUB* @C.132.1562, i8* getelementptr ([126 x i8]* @.str4, i32 0, i32 0), %struct.string___XUB* @C.131.1559 )
-	%4 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3		; <%struct.string___XUB*> [#uses=1]
-	call void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %4 )
-	%.b = load i1* @incompleteF.1176.b		; <i1> [#uses=1]
-	br i1 %.b, label %bb11, label %bb
-
-bb:		; preds = %entry
-	invoke void @system__exception_table__register_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*) )
-			to label %invcont unwind label %lpad
-
-invcont:		; preds = %bb
-	store i1 true, i1* @incompleteF.1176.b
-	br label %bb11
-
-bb11:		; preds = %entry, %invcont
-	%5 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2		; <%struct.string___XUB*> [#uses=1]
-	invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %5 )
-			to label %invcont12 unwind label %lpad228
-
-invcont12:		; preds = %bb11
-	invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %3, i32 1, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.137.1571 )
-			to label %invcont17 unwind label %lpad232
-
-invcont17:		; preds = %invcont12
-	%elt18 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 0		; <i8**> [#uses=1]
-	%val19 = load i8** %elt18, align 8		; <i8*> [#uses=1]
-	%elt20 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
-	%val21 = load %struct.string___XUB** %elt20		; <%struct.string___XUB*> [#uses=1]
-	%6 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__create( %struct.ada__text_io__text_afcb* null, i8 2, i8* %val19, %struct.string___XUB* %val21, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.136.1568 )
-			to label %invcont26 unwind label %lpad232		; <%struct.ada__text_io__text_afcb*> [#uses=2]
-
-invcont26:		; preds = %invcont17
-	%7 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0		; <i32*> [#uses=1]
-	%8 = load i32* %7, align 8		; <i32> [#uses=1]
-	%9 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 4		; <i32> [#uses=1]
-	invoke void @system__secondary_stack__ss_release( i32 %8, i32 %10 )
-			to label %bb73 unwind label %lpad228
-
-bb32:		; preds = %lpad232
-	call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
-	%11 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
-	invoke void %11( )
-			to label %invcont33 unwind label %lpad240
-
-invcont33:		; preds = %bb32
-	invoke void @report__not_applicable( i8* getelementptr ([50 x i8]* @.str7, i32 0, i32 0), %struct.string___XUB* @C.139.1577 )
-			to label %invcont38 unwind label %lpad240
-
-invcont38:		; preds = %invcont33
-	invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str8, i32 0, i32 0), %struct.string___XUB* @C.140.1580 ) noreturn
-			to label %invcont43 unwind label %lpad240
-
-invcont43:		; preds = %invcont38
-	unreachable
-
-bb47:		; preds = %ppad291
-	call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
-	%12 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
-	invoke void %12( )
-			to label %invcont49 unwind label %lpad248
-
-invcont49:		; preds = %bb47
-	invoke void @report__not_applicable( i8* getelementptr ([51 x i8]* @.str9, i32 0, i32 0), %struct.string___XUB* @C.143.1585 )
-			to label %invcont54 unwind label %lpad248
-
-invcont54:		; preds = %invcont49
-	invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str10, i32 0, i32 0), %struct.string___XUB* @C.144.1588 ) noreturn
-			to label %invcont59 unwind label %lpad248
-
-invcont59:		; preds = %invcont54
-	unreachable
-
-bb73:		; preds = %invcont26
-	invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %2, i32 2, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.147.1595 )
-			to label %invcont78 unwind label %lpad228
-
-invcont78:		; preds = %bb73
-	%elt79 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 0		; <i8**> [#uses=1]
-	%val80 = load i8** %elt79, align 8		; <i8*> [#uses=1]
-	%elt81 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
-	%val82 = load %struct.string___XUB** %elt81		; <%struct.string___XUB*> [#uses=1]
-	%13 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__create( %struct.ada__text_io__text_afcb* null, i8 2, i8* %val80, %struct.string___XUB* %val82, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.146.1592 )
-			to label %invcont87 unwind label %lpad228		; <%struct.ada__text_io__text_afcb*> [#uses=2]
-
-invcont87:		; preds = %invcont78
-	invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %13 )
-			to label %invcont88 unwind label %lpad228
-
-invcont88:		; preds = %invcont87
-	%14 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1		; <%struct.string___XUB*> [#uses=1]
-	invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %14 )
-			to label %invcont89 unwind label %lpad228
-
-invcont89:		; preds = %invcont88
-	invoke fastcc void @ce3806g__fxio__put.1149( %struct.ada__text_io__text_afcb* %6 )
-			to label %bb94 unwind label %lpad252
-
-bb94:		; preds = %invcont89
-	invoke fastcc void @ce3806g__fxio__put__2.1155( )
-			to label %invcont95 unwind label %lpad252
-
-invcont95:		; preds = %bb94
-	%15 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %6 )
-			to label %invcont96 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=1]
-
-invcont96:		; preds = %invcont95
-	%16 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0		; <%struct.string___XUB*> [#uses=1]
-	invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %16 )
-			to label %invcont97 unwind label %lpad252
-
-invcont97:		; preds = %invcont96
-	invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %1, i32 1, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.154.1612 )
-			to label %invcont102 unwind label %lpad256
-
-invcont102:		; preds = %invcont97
-	%elt103 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 0		; <i8**> [#uses=1]
-	%val104 = load i8** %elt103, align 8		; <i8*> [#uses=1]
-	%elt105 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
-	%val106 = load %struct.string___XUB** %elt105		; <%struct.string___XUB*> [#uses=1]
-	%17 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__open( %struct.ada__text_io__text_afcb* %15, i8 0, i8* %val104, %struct.string___XUB* %val106, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.153.1609 )
-			to label %invcont111 unwind label %lpad256		; <%struct.ada__text_io__text_afcb*> [#uses=2]
-
-invcont111:		; preds = %invcont102
-	%18 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
-	%19 = load i32* %18, align 8		; <i32> [#uses=1]
-	%20 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
-	%21 = load i32* %20, align 4		; <i32> [#uses=1]
-	invoke void @system__secondary_stack__ss_release( i32 %19, i32 %21 )
-			to label %bb143 unwind label %lpad252
-
-bb117:		; preds = %lpad256
-	call void @__gnat_begin_handler( i8* %eh_ptr257 ) nounwind
-	%22 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
-	invoke void %22( )
-			to label %invcont119 unwind label %lpad264
-
-invcont119:		; preds = %bb117
-	invoke void @report__not_applicable( i8* getelementptr ([47 x i8]* @.str12, i32 0, i32 0), %struct.string___XUB* @C.156.1618 )
-			to label %invcont124 unwind label %lpad264
-
-invcont124:		; preds = %invcont119
-	invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str13, i32 0, i32 0), %struct.string___XUB* @C.157.1621 ) noreturn
-			to label %invcont129 unwind label %lpad264
-
-invcont129:		; preds = %invcont124
-	unreachable
-
-bb143:		; preds = %invcont111
-	%23 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__standard_output( )
-			to label %invcont144 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=1]
-
-invcont144:		; preds = %bb143
-	invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %23 )
-			to label %invcont145 unwind label %lpad252
-
-invcont145:		; preds = %invcont144
-	%24 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %13 )
-			to label %invcont146 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=1]
-
-invcont146:		; preds = %invcont145
-	invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %0, i32 2, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.160.1630 )
-			to label %invcont151 unwind label %lpad252
-
-invcont151:		; preds = %invcont146
-	%elt152 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 0		; <i8**> [#uses=1]
-	%val153 = load i8** %elt152, align 8		; <i8*> [#uses=1]
-	%elt154 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
-	%val155 = load %struct.string___XUB** %elt154		; <%struct.string___XUB*> [#uses=1]
-	%25 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__open( %struct.ada__text_io__text_afcb* %24, i8 0, i8* %val153, %struct.string___XUB* %val155, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.159.1627 )
-			to label %invcont160 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=2]
-
-invcont160:		; preds = %invcont151
-	%26 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %17 ) signext
-			to label %invcont161 unwind label %lpad252		; <i8> [#uses=1]
-
-invcont161:		; preds = %invcont160
-	%27 = icmp eq i8 %26, -3		; <i1> [#uses=1]
-	br i1 %27, label %bb169, label %bb163
-
-bb163:		; preds = %invcont161
-	invoke void @report__failed( i8* getelementptr ([33 x i8]* @.str14, i32 0, i32 0), %struct.string___XUB* @C.162.1637 )
-			to label %bb169 unwind label %lpad252
-
-bb169:		; preds = %invcont161, %bb163
-	%28 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %25 ) signext
-			to label %invcont170 unwind label %lpad252		; <i8> [#uses=1]
-
-invcont170:		; preds = %bb169
-	%29 = icmp eq i8 %28, -1		; <i1> [#uses=1]
-	br i1 %29, label %bb187, label %bb172
-
-bb172:		; preds = %invcont170
-	invoke void @report__failed( i8* getelementptr ([36 x i8]* @.str15, i32 0, i32 0), %struct.string___XUB* @C.164.1642 )
-			to label %bb187 unwind label %lpad252
-
-bb187:		; preds = %invcont170, %bb172
-	%30 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0		; <i32*> [#uses=1]
-	%31 = load i32* %30, align 8		; <i32> [#uses=1]
-	%32 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1		; <i32*> [#uses=1]
-	%33 = load i32* %32, align 4		; <i32> [#uses=1]
-	invoke void @system__secondary_stack__ss_release( i32 %31, i32 %33 )
-			to label %bb193 unwind label %lpad228
-
-bb193:		; preds = %bb187
-	%34 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %17 )
-			to label %invcont194 unwind label %lpad268		; <%struct.ada__text_io__text_afcb*> [#uses=0]
-
-invcont194:		; preds = %bb193
-	%35 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %25 )
-			to label %bb221 unwind label %lpad268		; <%struct.ada__text_io__text_afcb*> [#uses=0]
-
-bb196:		; preds = %lpad268
-	call void @__gnat_begin_handler( i8* %eh_ptr269 ) nounwind
-	%36 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
-	invoke void %36( )
-			to label %bb203 unwind label %lpad276
-
-bb203:		; preds = %bb196
-	invoke void @__gnat_end_handler( i8* %eh_ptr269 )
-			to label %bb221 unwind label %lpad272
-
-bb205:		; preds = %ppad304
-	call void @__gnat_begin_handler( i8* %eh_exception.1 ) nounwind
-	%37 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
-	invoke void %37( )
-			to label %bb212 unwind label %lpad284
-
-bb212:		; preds = %bb205
-	invoke void @__gnat_end_handler( i8* %eh_exception.1 )
-			to label %bb221 unwind label %lpad280
-
-bb221:		; preds = %invcont194, %bb212, %bb203
-	%38 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0		; <i32*> [#uses=1]
-	%39 = load i32* %38, align 8		; <i32> [#uses=1]
-	%40 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1		; <i32*> [#uses=1]
-	%41 = load i32* %40, align 4		; <i32> [#uses=1]
-	call void @system__secondary_stack__ss_release( i32 %39, i32 %41 )
-	call void @report__result( )
-	ret void
-
-lpad:		; preds = %bb
-	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select227 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value )		; <i32> [#uses=0]
-	br label %ppad
-
-lpad228:		; preds = %bb187, %ppad294, %invcont88, %invcont87, %invcont78, %bb73, %ppad288, %invcont26, %bb11
-	%eh_ptr229 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select231 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr229, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	br label %ppad304
-
-lpad232:		; preds = %invcont17, %invcont12
-	%eh_ptr233 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=6]
-	%eh_select235 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr233, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @ada__io_exceptions__name_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=3]
-	%eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) )		; <i32> [#uses=1]
-	%42 = icmp eq i32 %eh_select235, %eh_typeid		; <i1> [#uses=1]
-	br i1 %42, label %bb32, label %ppad291
-
-lpad236:		; preds = %lpad240
-	%eh_ptr237 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select239 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr237, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	br label %ppad288
-
-lpad240:		; preds = %invcont38, %invcont33, %bb32
-	%eh_ptr241 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select243 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr241, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	invoke void @__gnat_end_handler( i8* %eh_ptr233 )
-			to label %ppad288 unwind label %lpad236
-
-lpad244:		; preds = %lpad248
-	%eh_ptr245 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select247 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr245, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	br label %ppad288
-
-lpad248:		; preds = %invcont54, %invcont49, %bb47
-	%eh_ptr249 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select251 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr249, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	invoke void @__gnat_end_handler( i8* %eh_ptr233 )
-			to label %ppad288 unwind label %lpad244
-
-lpad252:		; preds = %bb94, %invcont89, %invcont160, %bb169, %bb172, %bb163, %invcont151, %invcont146, %invcont145, %invcont144, %bb143, %ppad295, %invcont111, %invcont96, %invcont95
-	%eh_ptr253 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select255 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr253, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	br label %ppad294
-
-lpad256:		; preds = %invcont102, %invcont97
-	%eh_ptr257 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=4]
-	%eh_select259 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr257, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=2]
-	%eh_typeid297 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) )		; <i32> [#uses=1]
-	%43 = icmp eq i32 %eh_select259, %eh_typeid297		; <i1> [#uses=1]
-	br i1 %43, label %bb117, label %ppad295
-
-lpad260:		; preds = %lpad264
-	%eh_ptr261 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select263 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr261, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	br label %ppad295
-
-lpad264:		; preds = %invcont124, %invcont119, %bb117
-	%eh_ptr265 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select267 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr265, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	invoke void @__gnat_end_handler( i8* %eh_ptr257 )
-			to label %ppad295 unwind label %lpad260
-
-lpad268:		; preds = %invcont194, %bb193
-	%eh_ptr269 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=5]
-	%eh_select271 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr269, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=2]
-	%eh_typeid301 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) )		; <i32> [#uses=1]
-	%44 = icmp eq i32 %eh_select271, %eh_typeid301		; <i1> [#uses=1]
-	br i1 %44, label %bb196, label %ppad304
-
-lpad272:		; preds = %bb203, %lpad276
-	%eh_ptr273 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select275 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr273, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	br label %ppad304
-
-lpad276:		; preds = %bb196
-	%eh_ptr277 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select279 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr277, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	invoke void @__gnat_end_handler( i8* %eh_ptr269 )
-			to label %ppad304 unwind label %lpad272
-
-lpad280:		; preds = %bb212, %lpad284
-	%eh_ptr281 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select283 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr281, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value )		; <i32> [#uses=0]
-	br label %ppad
-
-lpad284:		; preds = %bb205
-	%eh_ptr285 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select287 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr285, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value )		; <i32> [#uses=0]
-	invoke void @__gnat_end_handler( i8* %eh_exception.1 )
-			to label %ppad unwind label %lpad280
-
-ppad:		; preds = %lpad284, %ppad304, %lpad280, %lpad
-	%eh_exception.2 = phi i8* [ %eh_exception.1, %ppad304 ], [ %eh_ptr281, %lpad280 ], [ %eh_ptr, %lpad ], [ %eh_ptr285, %lpad284 ]		; <i8*> [#uses=1]
-	%45 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0		; <i32*> [#uses=1]
-	%46 = load i32* %45, align 8		; <i32> [#uses=1]
-	%47 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1		; <i32*> [#uses=1]
-	%48 = load i32* %47, align 4		; <i32> [#uses=1]
-	call void @system__secondary_stack__ss_release( i32 %46, i32 %48 )
-	%49 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.2 )		; <i32> [#uses=0]
-	unreachable
-
-ppad288:		; preds = %lpad248, %lpad240, %ppad291, %lpad244, %lpad236
-	%eh_exception.0 = phi i8* [ %eh_ptr233, %ppad291 ], [ %eh_ptr245, %lpad244 ], [ %eh_ptr237, %lpad236 ], [ %eh_ptr241, %lpad240 ], [ %eh_ptr249, %lpad248 ]		; <i8*> [#uses=1]
-	%eh_selector.0 = phi i32 [ %eh_select235, %ppad291 ], [ %eh_select247, %lpad244 ], [ %eh_select239, %lpad236 ], [ %eh_select243, %lpad240 ], [ %eh_select251, %lpad248 ]		; <i32> [#uses=1]
-	%50 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0		; <i32*> [#uses=1]
-	%51 = load i32* %50, align 8		; <i32> [#uses=1]
-	%52 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1		; <i32*> [#uses=1]
-	%53 = load i32* %52, align 4		; <i32> [#uses=1]
-	invoke void @system__secondary_stack__ss_release( i32 %51, i32 %53 )
-			to label %ppad304 unwind label %lpad228
-
-ppad291:		; preds = %lpad232
-	%eh_typeid292 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__name_error, i32 0, i32 0) )		; <i32> [#uses=1]
-	%54 = icmp eq i32 %eh_select235, %eh_typeid292		; <i1> [#uses=1]
-	br i1 %54, label %bb47, label %ppad288
-
-ppad294:		; preds = %ppad295, %lpad252
-	%eh_exception.4 = phi i8* [ %eh_ptr253, %lpad252 ], [ %eh_exception.3, %ppad295 ]		; <i8*> [#uses=1]
-	%eh_selector.4 = phi i32 [ %eh_select255, %lpad252 ], [ %eh_selector.3, %ppad295 ]		; <i32> [#uses=1]
-	%55 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0		; <i32*> [#uses=1]
-	%56 = load i32* %55, align 8		; <i32> [#uses=1]
-	%57 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1		; <i32*> [#uses=1]
-	%58 = load i32* %57, align 4		; <i32> [#uses=1]
-	invoke void @system__secondary_stack__ss_release( i32 %56, i32 %58 )
-			to label %ppad304 unwind label %lpad228
-
-ppad295:		; preds = %lpad264, %lpad256, %lpad260
-	%eh_exception.3 = phi i8* [ %eh_ptr257, %lpad256 ], [ %eh_ptr261, %lpad260 ], [ %eh_ptr265, %lpad264 ]		; <i8*> [#uses=1]
-	%eh_selector.3 = phi i32 [ %eh_select259, %lpad256 ], [ %eh_select263, %lpad260 ], [ %eh_select267, %lpad264 ]		; <i32> [#uses=1]
-	%59 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
-	%60 = load i32* %59, align 8		; <i32> [#uses=1]
-	%61 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
-	%62 = load i32* %61, align 4		; <i32> [#uses=1]
-	invoke void @system__secondary_stack__ss_release( i32 %60, i32 %62 )
-			to label %ppad294 unwind label %lpad252
-
-ppad304:		; preds = %lpad276, %ppad294, %ppad288, %lpad268, %lpad272, %lpad228
-	%eh_exception.1 = phi i8* [ %eh_ptr229, %lpad228 ], [ %eh_ptr269, %lpad268 ], [ %eh_ptr273, %lpad272 ], [ %eh_exception.0, %ppad288 ], [ %eh_exception.4, %ppad294 ], [ %eh_ptr277, %lpad276 ]		; <i8*> [#uses=4]
-	%eh_selector.1 = phi i32 [ %eh_select231, %lpad228 ], [ %eh_select271, %lpad268 ], [ %eh_select275, %lpad272 ], [ %eh_selector.0, %ppad288 ], [ %eh_selector.4, %ppad294 ], [ %eh_select279, %lpad276 ]		; <i32> [#uses=1]
-	%eh_typeid305 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @incomplete.1177, i32 0, i32 0) )		; <i32> [#uses=1]
-	%63 = icmp eq i32 %eh_selector.1, %eh_typeid305		; <i1> [#uses=1]
-	br i1 %63, label %bb205, label %ppad
-}
-
-define internal fastcc i8 @ce3806g__fxio__get.1137(%struct.ada__text_io__text_afcb* %file) signext {
-entry:
-	%0 = invoke x86_fp80 @ada__text_io__float_aux__get( %struct.ada__text_io__text_afcb* %file, i32 0 )
-			to label %invcont unwind label %lpad		; <x86_fp80> [#uses=5]
-
-invcont:		; preds = %entry
-	%1 = fcmp ult x86_fp80 %0, 0xKFFFEFFFFFFFFFFFFFFFF		; <i1> [#uses=1]
-	%2 = fcmp ugt x86_fp80 %0, 0xK7FFEFFFFFFFFFFFFFFFF		; <i1> [#uses=1]
-	%or.cond = or i1 %1, %2		; <i1> [#uses=1]
-	br i1 %or.cond, label %bb2, label %bb4
-
-bb2:		; preds = %invcont
-	invoke void @__gnat_rcheck_12( i8* getelementptr ([12 x i8]* @.str, i32 0, i32 0), i32 1 ) noreturn
-			to label %invcont3 unwind label %lpad
-
-invcont3:		; preds = %bb2
-	unreachable
-
-bb4:		; preds = %invcont
-	%3 = fmul x86_fp80 %0, 0xK40008000000000000000		; <x86_fp80> [#uses=1]
-	%4 = fcmp ult x86_fp80 %3, 0xKC0068000000000000000		; <i1> [#uses=1]
-	br i1 %4, label %bb8, label %bb6
-
-bb6:		; preds = %bb4
-	%5 = fmul x86_fp80 %0, 0xK40008000000000000000		; <x86_fp80> [#uses=1]
-	%6 = fcmp ugt x86_fp80 %5, 0xK4005FE00000000000000		; <i1> [#uses=1]
-	br i1 %6, label %bb8, label %bb10
-
-bb8:		; preds = %bb4, %bb6
-	invoke void @__gnat_rcheck_10( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
-			to label %invcont9 unwind label %lpad
-
-invcont9:		; preds = %bb8
-	unreachable
-
-bb10:		; preds = %bb6
-	%7 = fmul x86_fp80 %0, 0xK40008000000000000000		; <x86_fp80> [#uses=3]
-	%8 = fcmp ult x86_fp80 %7, 0xK00000000000000000000		; <i1> [#uses=1]
-	br i1 %8, label %bb13, label %bb12
-
-bb12:		; preds = %bb10
-	%9 = fadd x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF		; <x86_fp80> [#uses=1]
-	br label %bb14
-
-bb13:		; preds = %bb10
-	%10 = fsub x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF		; <x86_fp80> [#uses=1]
-	br label %bb14
-
-bb14:		; preds = %bb13, %bb12
-	%iftmp.339.0.in = phi x86_fp80 [ %10, %bb13 ], [ %9, %bb12 ]		; <x86_fp80> [#uses=1]
-	%iftmp.339.0 = fptosi x86_fp80 %iftmp.339.0.in to i8		; <i8> [#uses=3]
-	%11 = add i8 %iftmp.339.0, 20		; <i8> [#uses=1]
-	%12 = icmp ugt i8 %11, 40		; <i1> [#uses=1]
-	br i1 %12, label %bb16, label %bb18
-
-bb16:		; preds = %bb14
-	invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
-			to label %invcont17 unwind label %lpad
-
-invcont17:		; preds = %bb16
-	unreachable
-
-bb18:		; preds = %bb14
-	%13 = add i8 %iftmp.339.0, 20		; <i8> [#uses=1]
-	%14 = icmp ugt i8 %13, 40		; <i1> [#uses=1]
-	br i1 %14, label %bb20, label %bb22
-
-bb20:		; preds = %bb18
-	invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
-			to label %invcont21 unwind label %lpad
-
-invcont21:		; preds = %bb20
-	unreachable
-
-bb22:		; preds = %bb18
-	ret i8 %iftmp.339.0
-
-bb23:		; preds = %lpad
-	call void @__gnat_begin_handler( i8* %eh_ptr ) nounwind
-	%15 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
-	invoke void %15( )
-			to label %invcont24 unwind label %lpad33
-
-invcont24:		; preds = %bb23
-	invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @ada__io_exceptions__data_error to %struct.system__standard_library__exception_data*), i8* getelementptr ([47 x i8]* @.str2, i32 0, i32 0), %struct.string___XUB* @C.354.2200 ) noreturn
-			to label %invcont27 unwind label %lpad33
-
-invcont27:		; preds = %invcont24
-	unreachable
-
-lpad:		; preds = %bb20, %bb16, %bb8, %bb2, %entry
-	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=4]
-	%eh_select32 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_all_others_value )		; <i32> [#uses=1]
-	%eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )		; <i32> [#uses=1]
-	%16 = icmp eq i32 %eh_select32, %eh_typeid		; <i1> [#uses=1]
-	br i1 %16, label %bb23, label %Unwind
-
-lpad33:		; preds = %invcont24, %bb23
-	%eh_ptr34 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select36 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr34, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value )		; <i32> [#uses=0]
-	call void @__gnat_end_handler( i8* %eh_ptr )
-	br label %Unwind
-
-Unwind:		; preds = %lpad, %lpad33
-	%eh_exception.0 = phi i8* [ %eh_ptr, %lpad ], [ %eh_ptr34, %lpad33 ]		; <i8*> [#uses=1]
-	%17 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.0 )		; <i32> [#uses=0]
-	unreachable
-}
-
-define internal fastcc void @ce3806g__fxio__put.1149(%struct.ada__text_io__text_afcb* %file) {
-entry:
-	%A.301 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
-	%A.292 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
-	%0 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%1 = alloca [12 x i8]		; <[12 x i8]*> [#uses=1]
-	%.sub = getelementptr [12 x i8]* %1, i32 0, i32 0		; <i8*> [#uses=2]
-	%2 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %2, align 8
-	%3 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 12, i32* %3, align 4
-	%4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.292, i8 signext -3 )
-			to label %invcont unwind label %lpad		; <i32> [#uses=1]
-
-invcont:		; preds = %entry
-	%5 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %5, align 8
-	%6 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %4, i32* %6, align 4
-	invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %file, i8* %.sub, %struct.string___XUB* %A.301 )
-			to label %bb60 unwind label %lpad
-
-bb60:		; preds = %invcont
-	ret void
-
-lpad:		; preds = %entry, %invcont
-	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select62 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value )		; <i32> [#uses=0]
-	call void @llvm.stackrestore( i8* %0 )
-	%7 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )		; <i32> [#uses=0]
-	unreachable
-}
-
-define internal fastcc void @ce3806g__fxio__put__2.1155() {
-entry:
-	%A.266 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
-	%A.257 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
-	%0 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%1 = alloca [12 x i8]		; <[12 x i8]*> [#uses=1]
-	%.sub = getelementptr [12 x i8]* %1, i32 0, i32 0		; <i8*> [#uses=2]
-	%2 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %2, align 8
-	%3 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 12, i32* %3, align 4
-	%4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.257, i8 signext -1 )
-			to label %invcont unwind label %lpad		; <i32> [#uses=1]
-
-invcont:		; preds = %entry
-	%5 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %5, align 8
-	%6 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %4, i32* %6, align 4
-	%7 = load %struct.ada__text_io__text_afcb** @ada__text_io__current_out, align 4		; <%struct.ada__text_io__text_afcb*> [#uses=1]
-	invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %7, i8* %.sub, %struct.string___XUB* %A.266 )
-			to label %bb60 unwind label %lpad
-
-bb60:		; preds = %invcont
-	ret void
-
-lpad:		; preds = %entry, %invcont
-	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select62 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value )		; <i32> [#uses=0]
-	call void @llvm.stackrestore( i8* %0 )
-	%8 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )		; <i32> [#uses=0]
-	unreachable
-}
-
-define internal fastcc i32 @ce3806g__fxio__put__4.1215(i8* %to.0, %struct.string___XUB* %to.1, i8 signext %item) {
-entry:
-        %P0 = load i32 * @__gnat_all_others_value, align 4  ; <i32*> [#uses=1]
-        %P = alloca i32, i32 %P0	; <i32*> [#uses=1]
-        call void @ext( i32* %P )
-	%to_addr = alloca %struct.system__file_control_block__pstring		; <%struct.system__file_control_block__pstring*> [#uses=4]
-	%FRAME.358 = alloca %struct.FRAME.ce3806g__fxio__put__4		; <%struct.FRAME.ce3806g__fxio__put__4*> [#uses=65]
-	%0 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 0		; <i8**> [#uses=1]
-	store i8* %to.0, i8** %0, align 8
-	%1 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
-	store %struct.string___XUB* %to.1, %struct.string___XUB** %1
-	%2 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	store %struct.system__file_control_block__pstring* %to_addr, %struct.system__file_control_block__pstring** %2, align 4
-	%3 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 3, i32* %3, align 8
-	%4 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
-	%5 = load %struct.string___XUB** %4, align 4		; <%struct.string___XUB*> [#uses=1]
-	%6 = getelementptr %struct.string___XUB* %5, i32 0, i32 0		; <i32*> [#uses=1]
-	%7 = load i32* %6, align 4		; <i32> [#uses=1]
-	%8 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %7, i32* %8, align 8
-	%9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 8		; <i32> [#uses=1]
-	%11 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	store i32 %10, i32* %11, align 8
-	%item.lobit = lshr i8 %item, 7		; <i8> [#uses=1]
-	%12 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6		; <i8*> [#uses=1]
-	store i8 %item.lobit, i8* %12, align 8
-	%13 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
-	%14 = load i32* %13, align 8		; <i32> [#uses=1]
-	%15 = add i32 %14, -1		; <i32> [#uses=1]
-	%16 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %15, i32* %16, align 4
-	%17 = sext i8 %item to i64		; <i64> [#uses=1]
-	%18 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 1 ) readnone		; <i64> [#uses=1]
-	%19 = sub i64 0, %18		; <i64> [#uses=1]
-	%20 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 0 ) readnone		; <i64> [#uses=1]
-	%21 = mul i64 %20, -2		; <i64> [#uses=1]
-	call fastcc void @ce3806g__fxio__put__put_scaled__4.1346( %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i64 %17, i64 %19, i64 %21, i32 0, i32 -1 )
-	%22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%23 = load i32* %22, align 4		; <i32> [#uses=1]
-	%24 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
-	%25 = load i32* %24, align 8		; <i32> [#uses=1]
-	%26 = icmp slt i32 %23, %25		; <i1> [#uses=1]
-	br i1 %26, label %bb71, label %bb72
-
-bb71:		; preds = %entry
-	%27 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 0, i32* %27, align 4
-	br label %bb72
-
-bb72:		; preds = %entry, %bb102, %bb71
-	%28 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	%29 = load i32* %28, align 4		; <i32> [#uses=1]
-	%30 = icmp slt i32 %29, -1		; <i1> [#uses=1]
-	%31 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%32 = load i32* %31, align 4		; <i32> [#uses=2]
-	br i1 %30, label %bb103, label %bb74
-
-bb74:		; preds = %bb72
-	%33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
-	%34 = load i32* %33, align 8		; <i32> [#uses=1]
-	%35 = add i32 %34, -1		; <i32> [#uses=1]
-	%36 = icmp eq i32 %32, %35		; <i1> [#uses=1]
-	%37 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	%38 = load i32* %37, align 4		; <i32> [#uses=2]
-	br i1 %36, label %bb76, label %bb98
-
-bb76:		; preds = %bb74
-	%39 = icmp slt i32 %38, 1		; <i1> [#uses=1]
-	br i1 %39, label %bb80, label %bb102
-
-bb80:		; preds = %bb76
-	%40 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	%41 = load i32* %40, align 4		; <i32> [#uses=2]
-	%42 = icmp sgt i32 %41, -1		; <i1> [#uses=1]
-	%.op = add i32 %41, 2		; <i32> [#uses=1]
-	%43 = select i1 %42, i32 %.op, i32 2		; <i32> [#uses=1]
-	%44 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6		; <i8*> [#uses=1]
-	%45 = load i8* %44, align 8		; <i8> [#uses=1]
-	%46 = zext i8 %45 to i32		; <i32> [#uses=1]
-	%47 = add i32 %43, %46		; <i32> [#uses=2]
-	%48 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0		; <i32*> [#uses=1]
-	%49 = load i32* %48, align 8		; <i32> [#uses=1]
-	%50 = icmp sgt i32 %47, %49		; <i1> [#uses=1]
-	br i1 %50, label %bb88, label %bb85
-
-bb85:		; preds = %bb80, %bb87
-	%j.0 = phi i32 [ %68, %bb87 ], [ %47, %bb80 ]		; <i32> [#uses=2]
-	%51 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%52 = load i32* %51, align 4		; <i32> [#uses=1]
-	%53 = add i32 %52, 1		; <i32> [#uses=1]
-	%54 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %53, i32* %54, align 4
-	%55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%56 = load i32* %55, align 8		; <i32> [#uses=1]
-	%57 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%58 = load %struct.system__file_control_block__pstring** %57, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%59 = getelementptr %struct.system__file_control_block__pstring* %58, i32 0, i32 0		; <i8**> [#uses=1]
-	%60 = load i8** %59, align 4		; <i8*> [#uses=1]
-	%61 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%62 = load i32* %61, align 4		; <i32> [#uses=1]
-	%63 = sub i32 %62, %56		; <i32> [#uses=1]
-	%64 = getelementptr i8* %60, i32 %63		; <i8*> [#uses=1]
-	store i8 32, i8* %64, align 1
-	%65 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0		; <i32*> [#uses=1]
-	%66 = load i32* %65, align 8		; <i32> [#uses=1]
-	%67 = icmp eq i32 %66, %j.0		; <i1> [#uses=1]
-	br i1 %67, label %bb88, label %bb87
-
-bb87:		; preds = %bb85
-	%68 = add i32 %j.0, 1		; <i32> [#uses=1]
-	br label %bb85
-
-bb88:		; preds = %bb80, %bb85
-	%69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6		; <i8*> [#uses=1]
-	%70 = load i8* %69, align 8		; <i8> [#uses=1]
-	%toBool89 = icmp eq i8 %70, 0		; <i1> [#uses=1]
-	br i1 %toBool89, label %bb91, label %bb90
-
-bb90:		; preds = %bb88
-	%71 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%72 = load i32* %71, align 4		; <i32> [#uses=1]
-	%73 = add i32 %72, 1		; <i32> [#uses=1]
-	%74 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %73, i32* %74, align 4
-	%75 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%76 = load i32* %75, align 8		; <i32> [#uses=1]
-	%77 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%78 = load %struct.system__file_control_block__pstring** %77, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%79 = getelementptr %struct.system__file_control_block__pstring* %78, i32 0, i32 0		; <i8**> [#uses=1]
-	%80 = load i8** %79, align 4		; <i8*> [#uses=1]
-	%81 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%82 = load i32* %81, align 4		; <i32> [#uses=1]
-	%83 = sub i32 %82, %76		; <i32> [#uses=1]
-	%84 = getelementptr i8* %80, i32 %83		; <i8*> [#uses=1]
-	store i8 45, i8* %84, align 1
-	br label %bb91
-
-bb91:		; preds = %bb88, %bb90
-	%85 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	%86 = load i32* %85, align 4		; <i32> [#uses=1]
-	%87 = icmp slt i32 %86, 0		; <i1> [#uses=1]
-	br i1 %87, label %bb93, label %bb97
-
-bb93:		; preds = %bb91
-	%88 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%89 = load i32* %88, align 4		; <i32> [#uses=1]
-	%90 = add i32 %89, 1		; <i32> [#uses=1]
-	%91 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %90, i32* %91, align 4
-	%92 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%93 = load i32* %92, align 8		; <i32> [#uses=1]
-	%94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%95 = load %struct.system__file_control_block__pstring** %94, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%96 = getelementptr %struct.system__file_control_block__pstring* %95, i32 0, i32 0		; <i8**> [#uses=1]
-	%97 = load i8** %96, align 4		; <i8*> [#uses=1]
-	%98 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%99 = load i32* %98, align 4		; <i32> [#uses=1]
-	%100 = sub i32 %99, %93		; <i32> [#uses=1]
-	%101 = getelementptr i8* %97, i32 %100		; <i8*> [#uses=1]
-	store i8 48, i8* %101, align 1
-	%102 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%103 = load i32* %102, align 4		; <i32> [#uses=1]
-	%104 = add i32 %103, 1		; <i32> [#uses=1]
-	%105 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %104, i32* %105, align 4
-	%106 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%107 = load i32* %106, align 8		; <i32> [#uses=1]
-	%108 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%109 = load %struct.system__file_control_block__pstring** %108, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%110 = getelementptr %struct.system__file_control_block__pstring* %109, i32 0, i32 0		; <i8**> [#uses=1]
-	%111 = load i8** %110, align 4		; <i8*> [#uses=1]
-	%112 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%113 = load i32* %112, align 4		; <i32> [#uses=1]
-	%114 = sub i32 %113, %107		; <i32> [#uses=1]
-	%115 = getelementptr i8* %111, i32 %114		; <i8*> [#uses=1]
-	store i8 46, i8* %115, align 1
-	%116 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	%117 = load i32* %116, align 4		; <i32> [#uses=1]
-	br label %bb94
-
-bb94:		; preds = %bb96, %bb93
-	%j8.0 = phi i32 [ %117, %bb93 ], [ %133, %bb96 ]		; <i32> [#uses=2]
-	%118 = icmp sgt i32 %j8.0, -2		; <i1> [#uses=1]
-	br i1 %118, label %bb97, label %bb96
-
-bb96:		; preds = %bb94
-	%119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%120 = load i32* %119, align 4		; <i32> [#uses=1]
-	%121 = add i32 %120, 1		; <i32> [#uses=1]
-	%122 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %121, i32* %122, align 4
-	%123 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%124 = load i32* %123, align 8		; <i32> [#uses=1]
-	%125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%126 = load %struct.system__file_control_block__pstring** %125, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%127 = getelementptr %struct.system__file_control_block__pstring* %126, i32 0, i32 0		; <i8**> [#uses=1]
-	%128 = load i8** %127, align 4		; <i8*> [#uses=1]
-	%129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%130 = load i32* %129, align 4		; <i32> [#uses=1]
-	%131 = sub i32 %130, %124		; <i32> [#uses=1]
-	%132 = getelementptr i8* %128, i32 %131		; <i8*> [#uses=1]
-	store i8 48, i8* %132, align 1
-	%133 = add i32 %j8.0, 1		; <i32> [#uses=1]
-	br label %bb94
-
-bb97:		; preds = %bb91, %bb94
-	%134 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%135 = load i32* %134, align 4		; <i32> [#uses=1]
-	%136 = add i32 %135, 1		; <i32> [#uses=1]
-	%137 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %136, i32* %137, align 4
-	%138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%139 = load i32* %138, align 8		; <i32> [#uses=1]
-	%140 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%141 = load %struct.system__file_control_block__pstring** %140, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%142 = getelementptr %struct.system__file_control_block__pstring* %141, i32 0, i32 0		; <i8**> [#uses=1]
-	%143 = load i8** %142, align 4		; <i8*> [#uses=1]
-	%144 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%145 = load i32* %144, align 4		; <i32> [#uses=1]
-	%146 = sub i32 %145, %139		; <i32> [#uses=1]
-	%147 = getelementptr i8* %143, i32 %146		; <i8*> [#uses=1]
-	store i8 48, i8* %147, align 1
-	br label %bb102
-
-bb98:		; preds = %bb74
-	%148 = icmp eq i32 %38, -1		; <i1> [#uses=1]
-	br i1 %148, label %bb100, label %bb101
-
-bb100:		; preds = %bb98
-	%149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%150 = load i32* %149, align 4		; <i32> [#uses=1]
-	%151 = add i32 %150, 1		; <i32> [#uses=1]
-	%152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %151, i32* %152, align 4
-	%153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%154 = load i32* %153, align 8		; <i32> [#uses=1]
-	%155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%156 = load %struct.system__file_control_block__pstring** %155, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0		; <i8**> [#uses=1]
-	%158 = load i8** %157, align 4		; <i8*> [#uses=1]
-	%159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%160 = load i32* %159, align 4		; <i32> [#uses=1]
-	%161 = sub i32 %160, %154		; <i32> [#uses=1]
-	%162 = getelementptr i8* %158, i32 %161		; <i8*> [#uses=1]
-	store i8 46, i8* %162, align 1
-	br label %bb101
-
-bb101:		; preds = %bb98, %bb100
-	%163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%164 = load i32* %163, align 4		; <i32> [#uses=1]
-	%165 = add i32 %164, 1		; <i32> [#uses=1]
-	%166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %165, i32* %166, align 4
-	%167 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
-	%168 = load i32* %167, align 8		; <i32> [#uses=1]
-	%169 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%170 = load %struct.system__file_control_block__pstring** %169, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%171 = getelementptr %struct.system__file_control_block__pstring* %170, i32 0, i32 0		; <i8**> [#uses=1]
-	%172 = load i8** %171, align 4		; <i8*> [#uses=1]
-	%173 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
-	%174 = load i32* %173, align 4		; <i32> [#uses=1]
-	%175 = sub i32 %174, %168		; <i32> [#uses=1]
-	%176 = getelementptr i8* %172, i32 %175		; <i8*> [#uses=1]
-	store i8 48, i8* %176, align 1
-	br label %bb102
-
-bb102:		; preds = %bb76, %bb101, %bb97
-	%177 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	%178 = load i32* %177, align 4		; <i32> [#uses=1]
-	%179 = add i32 %178, -1		; <i32> [#uses=1]
-	%180 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %179, i32* %180, align 4
-	br label %bb72
-
-bb103:		; preds = %bb72
-	ret i32 %32
-}
-
-declare x86_fp80 @ada__text_io__float_aux__get(%struct.ada__text_io__text_afcb*, i32)
-
-declare void @__gnat_rcheck_12(i8*, i32) noreturn
-
-declare void @__gnat_rcheck_10(i8*, i32) noreturn
-
-declare i8* @llvm.eh.exception() nounwind
-
-declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind
-
-declare i32 @llvm.eh.typeid.for.i32(i8*) nounwind
-
-declare void @__gnat_begin_handler(i8*) nounwind
-
-declare void @__gnat_raise_exception(%struct.system__standard_library__exception_data*, i8*, %struct.string___XUB*) noreturn
-
-declare void @__gnat_end_handler(i8*)
-
-declare i32 @__gnat_eh_personality(...)
-
-declare i32 @_Unwind_Resume(...)
-
-define internal fastcc void @ce3806g__fxio__put__put_int64__4.1339(%struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %x, i32 %scale) {
-entry:
-	%0 = icmp eq i64 %x, 0		; <i1> [#uses=1]
-	br i1 %0, label %return, label %bb
-
-bb:		; preds = %entry
-	%1 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %scale, i32* %1, align 4
-	%2 = add i64 %x, 9		; <i64> [#uses=1]
-	%3 = icmp ugt i64 %2, 18		; <i1> [#uses=1]
-	br i1 %3, label %bb18, label %bb19
-
-bb18:		; preds = %bb
-	%4 = add i32 %scale, 1		; <i32> [#uses=1]
-	%5 = sdiv i64 %x, 10		; <i64> [#uses=1]
-	call fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %5, i32 %4 )
-	br label %bb19
-
-bb19:		; preds = %bb, %bb18
-	%6 = srem i64 %x, 10		; <i64> [#uses=3]
-	%neg = sub i64 0, %6		; <i64> [#uses=1]
-	%abscond = icmp sgt i64 %6, -1		; <i1> [#uses=1]
-	%abs = select i1 %abscond, i64 %6, i64 %neg		; <i64> [#uses=3]
-	%7 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%8 = load i32* %7, align 4		; <i32> [#uses=1]
-	%9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 2		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 4		; <i32> [#uses=1]
-	%11 = add i32 %10, -1		; <i32> [#uses=1]
-	%12 = icmp eq i32 %8, %11		; <i1> [#uses=1]
-	br i1 %12, label %bb23, label %bb44
-
-bb23:		; preds = %bb19
-	%13 = icmp ne i64 %abs, 0		; <i1> [#uses=1]
-	%14 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	%15 = load i32* %14, align 4		; <i32> [#uses=1]
-	%16 = icmp slt i32 %15, 1		; <i1> [#uses=1]
-	%17 = or i1 %13, %16		; <i1> [#uses=1]
-	br i1 %17, label %bb27, label %bb48
-
-bb27:		; preds = %bb23
-	%18 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	%19 = load i32* %18, align 4		; <i32> [#uses=2]
-	%20 = icmp sgt i32 %19, -1		; <i1> [#uses=1]
-	%.op = add i32 %19, 2		; <i32> [#uses=1]
-	%21 = select i1 %20, i32 %.op, i32 2		; <i32> [#uses=1]
-	%22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6		; <i8*> [#uses=1]
-	%23 = load i8* %22, align 1		; <i8> [#uses=1]
-	%24 = zext i8 %23 to i32		; <i32> [#uses=1]
-	%25 = add i32 %21, %24		; <i32> [#uses=2]
-	%26 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0		; <i32*> [#uses=1]
-	%27 = load i32* %26, align 4		; <i32> [#uses=1]
-	%28 = icmp sgt i32 %25, %27		; <i1> [#uses=1]
-	br i1 %28, label %bb34, label %bb31
-
-bb31:		; preds = %bb27, %bb33
-	%j.0 = phi i32 [ %46, %bb33 ], [ %25, %bb27 ]		; <i32> [#uses=2]
-	%29 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%30 = load i32* %29, align 4		; <i32> [#uses=1]
-	%31 = add i32 %30, 1		; <i32> [#uses=1]
-	%32 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %31, i32* %32, align 4
-	%33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%34 = load i32* %33, align 4		; <i32> [#uses=1]
-	%35 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%36 = load %struct.system__file_control_block__pstring** %35, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%37 = getelementptr %struct.system__file_control_block__pstring* %36, i32 0, i32 0		; <i8**> [#uses=1]
-	%38 = load i8** %37, align 4		; <i8*> [#uses=1]
-	%39 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%40 = load i32* %39, align 4		; <i32> [#uses=1]
-	%41 = sub i32 %40, %34		; <i32> [#uses=1]
-	%42 = getelementptr i8* %38, i32 %41		; <i8*> [#uses=1]
-	store i8 32, i8* %42, align 1
-	%43 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0		; <i32*> [#uses=1]
-	%44 = load i32* %43, align 4		; <i32> [#uses=1]
-	%45 = icmp eq i32 %44, %j.0		; <i1> [#uses=1]
-	br i1 %45, label %bb34, label %bb33
-
-bb33:		; preds = %bb31
-	%46 = add i32 %j.0, 1		; <i32> [#uses=1]
-	br label %bb31
-
-bb34:		; preds = %bb27, %bb31
-	%47 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6		; <i8*> [#uses=1]
-	%48 = load i8* %47, align 1		; <i8> [#uses=1]
-	%toBool35 = icmp eq i8 %48, 0		; <i1> [#uses=1]
-	br i1 %toBool35, label %bb37, label %bb36
-
-bb36:		; preds = %bb34
-	%49 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%50 = load i32* %49, align 4		; <i32> [#uses=1]
-	%51 = add i32 %50, 1		; <i32> [#uses=1]
-	%52 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %51, i32* %52, align 4
-	%53 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%54 = load i32* %53, align 4		; <i32> [#uses=1]
-	%55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%56 = load %struct.system__file_control_block__pstring** %55, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%57 = getelementptr %struct.system__file_control_block__pstring* %56, i32 0, i32 0		; <i8**> [#uses=1]
-	%58 = load i8** %57, align 4		; <i8*> [#uses=1]
-	%59 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%60 = load i32* %59, align 4		; <i32> [#uses=1]
-	%61 = sub i32 %60, %54		; <i32> [#uses=1]
-	%62 = getelementptr i8* %58, i32 %61		; <i8*> [#uses=1]
-	store i8 45, i8* %62, align 1
-	br label %bb37
-
-bb37:		; preds = %bb34, %bb36
-	%63 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	%64 = load i32* %63, align 4		; <i32> [#uses=1]
-	%65 = icmp slt i32 %64, 0		; <i1> [#uses=1]
-	br i1 %65, label %bb39, label %bb43
-
-bb39:		; preds = %bb37
-	%66 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%67 = load i32* %66, align 4		; <i32> [#uses=1]
-	%68 = add i32 %67, 1		; <i32> [#uses=1]
-	%69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %68, i32* %69, align 4
-	%70 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%71 = load i32* %70, align 4		; <i32> [#uses=1]
-	%72 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%73 = load %struct.system__file_control_block__pstring** %72, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%74 = getelementptr %struct.system__file_control_block__pstring* %73, i32 0, i32 0		; <i8**> [#uses=1]
-	%75 = load i8** %74, align 4		; <i8*> [#uses=1]
-	%76 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%77 = load i32* %76, align 4		; <i32> [#uses=1]
-	%78 = sub i32 %77, %71		; <i32> [#uses=1]
-	%79 = getelementptr i8* %75, i32 %78		; <i8*> [#uses=1]
-	store i8 48, i8* %79, align 1
-	%80 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%81 = load i32* %80, align 4		; <i32> [#uses=1]
-	%82 = add i32 %81, 1		; <i32> [#uses=1]
-	%83 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %82, i32* %83, align 4
-	%84 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%85 = load i32* %84, align 4		; <i32> [#uses=1]
-	%86 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%87 = load %struct.system__file_control_block__pstring** %86, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%88 = getelementptr %struct.system__file_control_block__pstring* %87, i32 0, i32 0		; <i8**> [#uses=1]
-	%89 = load i8** %88, align 4		; <i8*> [#uses=1]
-	%90 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%91 = load i32* %90, align 4		; <i32> [#uses=1]
-	%92 = sub i32 %91, %85		; <i32> [#uses=1]
-	%93 = getelementptr i8* %89, i32 %92		; <i8*> [#uses=1]
-	store i8 46, i8* %93, align 1
-	%94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	%95 = load i32* %94, align 4		; <i32> [#uses=1]
-	br label %bb40
-
-bb40:		; preds = %bb42, %bb39
-	%j15.0 = phi i32 [ %95, %bb39 ], [ %111, %bb42 ]		; <i32> [#uses=2]
-	%96 = icmp sgt i32 %j15.0, -2		; <i1> [#uses=1]
-	br i1 %96, label %bb43, label %bb42
-
-bb42:		; preds = %bb40
-	%97 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%98 = load i32* %97, align 4		; <i32> [#uses=1]
-	%99 = add i32 %98, 1		; <i32> [#uses=1]
-	%100 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %99, i32* %100, align 4
-	%101 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%102 = load i32* %101, align 4		; <i32> [#uses=1]
-	%103 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%104 = load %struct.system__file_control_block__pstring** %103, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%105 = getelementptr %struct.system__file_control_block__pstring* %104, i32 0, i32 0		; <i8**> [#uses=1]
-	%106 = load i8** %105, align 4		; <i8*> [#uses=1]
-	%107 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%108 = load i32* %107, align 4		; <i32> [#uses=1]
-	%109 = sub i32 %108, %102		; <i32> [#uses=1]
-	%110 = getelementptr i8* %106, i32 %109		; <i8*> [#uses=1]
-	store i8 48, i8* %110, align 1
-	%111 = add i32 %j15.0, 1		; <i32> [#uses=1]
-	br label %bb40
-
-bb43:		; preds = %bb37, %bb40
-	%112 = trunc i64 %abs to i32		; <i32> [#uses=1]
-	%113 = getelementptr [10 x i8]* @.str3, i32 0, i32 %112		; <i8*> [#uses=1]
-	%114 = load i8* %113, align 1		; <i8> [#uses=1]
-	%115 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%116 = load i32* %115, align 4		; <i32> [#uses=1]
-	%117 = add i32 %116, 1		; <i32> [#uses=1]
-	%118 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %117, i32* %118, align 4
-	%119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%120 = load i32* %119, align 4		; <i32> [#uses=1]
-	%121 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%122 = load %struct.system__file_control_block__pstring** %121, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%123 = getelementptr %struct.system__file_control_block__pstring* %122, i32 0, i32 0		; <i8**> [#uses=1]
-	%124 = load i8** %123, align 4		; <i8*> [#uses=1]
-	%125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%126 = load i32* %125, align 4		; <i32> [#uses=1]
-	%127 = sub i32 %126, %120		; <i32> [#uses=1]
-	%128 = getelementptr i8* %124, i32 %127		; <i8*> [#uses=1]
-	store i8 %114, i8* %128, align 1
-	br label %bb48
-
-bb44:		; preds = %bb19
-	%129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	%130 = load i32* %129, align 4		; <i32> [#uses=1]
-	%131 = icmp eq i32 %130, -1		; <i1> [#uses=1]
-	br i1 %131, label %bb46, label %bb47
-
-bb46:		; preds = %bb44
-	%132 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%133 = load i32* %132, align 4		; <i32> [#uses=1]
-	%134 = add i32 %133, 1		; <i32> [#uses=1]
-	%135 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %134, i32* %135, align 4
-	%136 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%137 = load i32* %136, align 4		; <i32> [#uses=1]
-	%138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%139 = load %struct.system__file_control_block__pstring** %138, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%140 = getelementptr %struct.system__file_control_block__pstring* %139, i32 0, i32 0		; <i8**> [#uses=1]
-	%141 = load i8** %140, align 4		; <i8*> [#uses=1]
-	%142 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%143 = load i32* %142, align 4		; <i32> [#uses=1]
-	%144 = sub i32 %143, %137		; <i32> [#uses=1]
-	%145 = getelementptr i8* %141, i32 %144		; <i8*> [#uses=1]
-	store i8 46, i8* %145, align 1
-	br label %bb47
-
-bb47:		; preds = %bb44, %bb46
-	%146 = trunc i64 %abs to i32		; <i32> [#uses=1]
-	%147 = getelementptr [10 x i8]* @.str3, i32 0, i32 %146		; <i8*> [#uses=1]
-	%148 = load i8* %147, align 1		; <i8> [#uses=1]
-	%149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%150 = load i32* %149, align 4		; <i32> [#uses=1]
-	%151 = add i32 %150, 1		; <i32> [#uses=1]
-	%152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	store i32 %151, i32* %152, align 4
-	%153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
-	%154 = load i32* %153, align 4		; <i32> [#uses=1]
-	%155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
-	%156 = load %struct.system__file_control_block__pstring** %155, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
-	%157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0		; <i8**> [#uses=1]
-	%158 = load i8** %157, align 4		; <i8*> [#uses=1]
-	%159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
-	%160 = load i32* %159, align 4		; <i32> [#uses=1]
-	%161 = sub i32 %160, %154		; <i32> [#uses=1]
-	%162 = getelementptr i8* %158, i32 %161		; <i8*> [#uses=1]
-	store i8 %148, i8* %162, align 1
-	br label %bb48
-
-bb48:		; preds = %bb23, %bb47, %bb43
-	%163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	%164 = load i32* %163, align 4		; <i32> [#uses=1]
-	%165 = add i32 %164, -1		; <i32> [#uses=1]
-	%166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %165, i32* %166, align 4
-	ret void
-
-return:		; preds = %entry
-	ret void
-}
-
-define internal fastcc void @ce3806g__fxio__put__put_scaled__4.1346(%struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %x, i64 %y, i64 %z, i32 %a, i32 %e) {
-entry:
-	%0 = alloca { i64, i64 }		; <{ i64, i64 }*> [#uses=3]
-	%1 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
-	%2 = add i32 %a, 17		; <i32> [#uses=2]
-	%3 = sdiv i32 %2, 18		; <i32> [#uses=3]
-	%4 = add i32 %3, 1		; <i32> [#uses=7]
-	%5 = icmp sgt i32 %4, -1		; <i1> [#uses=1]
-	%max53 = select i1 %5, i32 %4, i32 0		; <i32> [#uses=1]
-	%6 = alloca i64, i32 %max53		; <i64*> [#uses=21]
-	%7 = icmp sgt i32 %4, 0		; <i1> [#uses=1]
-	br i1 %7, label %bb55, label %bb58
-
-bb55:		; preds = %entry, %bb57
-	%J60b.0 = phi i32 [ %11, %bb57 ], [ 1, %entry ]		; <i32> [#uses=3]
-	%8 = add i32 %J60b.0, -1		; <i32> [#uses=1]
-	%9 = getelementptr i64* %6, i32 %8		; <i64*> [#uses=1]
-	store i64 0, i64* %9, align 8
-	%10 = icmp eq i32 %4, %J60b.0		; <i1> [#uses=1]
-	br i1 %10, label %bb58, label %bb57
-
-bb57:		; preds = %bb55
-	%11 = add i32 %J60b.0, 1		; <i32> [#uses=1]
-	br label %bb55
-
-bb58:		; preds = %entry, %bb55
-	%12 = icmp sgt i32 %4, 0		; <i1> [#uses=1]
-	br i1 %12, label %bb61, label %bb91
-
-bb61:		; preds = %bb58, %bb90
-	%j2.0 = phi i32 [ %88, %bb90 ], [ 1, %bb58 ]		; <i32> [#uses=11]
-	%aa.0 = phi i32 [ %86, %bb90 ], [ %a, %bb58 ]		; <i32> [#uses=6]
-	%yy.0 = phi i64 [ %84, %bb90 ], [ %y, %bb58 ]		; <i64> [#uses=3]
-	%xx.0 = phi i64 [ %21, %bb90 ], [ %x, %bb58 ]		; <i64> [#uses=2]
-	%13 = icmp eq i64 %xx.0, 0		; <i1> [#uses=1]
-	br i1 %13, label %bb91, label %bb63
-
-bb63:		; preds = %bb61
-	%14 = icmp eq i32 %aa.0, 0		; <i1> [#uses=1]
-	%15 = zext i1 %14 to i8		; <i8> [#uses=1]
-	invoke void @system__arith_64__scaled_divide( { i64, i64 }* noalias sret %0, i64 %xx.0, i64 %yy.0, i64 %z, i8 %15 )
-			to label %invcont unwind label %lpad
-
-invcont:		; preds = %bb63
-	%16 = getelementptr { i64, i64 }* %0, i32 0, i32 0		; <i64*> [#uses=1]
-	%17 = load i64* %16, align 8		; <i64> [#uses=1]
-	%18 = add i32 %j2.0, -1		; <i32> [#uses=1]
-	%19 = getelementptr i64* %6, i32 %18		; <i64*> [#uses=1]
-	store i64 %17, i64* %19, align 8
-	%20 = getelementptr { i64, i64 }* %0, i32 0, i32 1		; <i64*> [#uses=1]
-	%21 = load i64* %20, align 8		; <i64> [#uses=1]
-	%22 = add i32 %j2.0, -1		; <i32> [#uses=1]
-	%23 = getelementptr i64* %6, i32 %22		; <i64*> [#uses=1]
-	%24 = load i64* %23, align 8		; <i64> [#uses=1]
-	%25 = icmp eq i64 %24, %yy.0		; <i1> [#uses=1]
-	%26 = add i32 %j2.0, -1		; <i32> [#uses=1]
-	%27 = getelementptr i64* %6, i32 %26		; <i64*> [#uses=1]
-	%28 = load i64* %27, align 8		; <i64> [#uses=1]
-	%29 = sub i64 0, %28		; <i64> [#uses=1]
-	%30 = icmp eq i64 %yy.0, %29		; <i1> [#uses=1]
-	%31 = or i1 %25, %30		; <i1> [#uses=1]
-	%32 = icmp sgt i32 %j2.0, 1		; <i1> [#uses=1]
-	%or.cond = and i1 %31, %32		; <i1> [#uses=1]
-	br i1 %or.cond, label %bb69, label %bb83
-
-bb69:		; preds = %invcont
-	%33 = add i32 %j2.0, -1		; <i32> [#uses=1]
-	%34 = getelementptr i64* %6, i32 %33		; <i64*> [#uses=1]
-	%35 = load i64* %34, align 8		; <i64> [#uses=1]
-	%36 = icmp slt i64 %35, 0		; <i1> [#uses=1]
-	%37 = add i32 %j2.0, -2		; <i32> [#uses=1]
-	%38 = getelementptr i64* %6, i32 %37		; <i64*> [#uses=1]
-	%39 = load i64* %38, align 8		; <i64> [#uses=2]
-	br i1 %36, label %bb71, label %bb72
-
-bb71:		; preds = %bb69
-	%40 = add i64 %39, 1		; <i64> [#uses=1]
-	%41 = add i32 %j2.0, -2		; <i32> [#uses=1]
-	%42 = getelementptr i64* %6, i32 %41		; <i64*> [#uses=1]
-	store i64 %40, i64* %42, align 8
-	br label %bb73
-
-bb72:		; preds = %bb69
-	%43 = add i64 %39, -1		; <i64> [#uses=1]
-	%44 = add i32 %j2.0, -2		; <i32> [#uses=1]
-	%45 = getelementptr i64* %6, i32 %44		; <i64*> [#uses=1]
-	store i64 %43, i64* %45, align 8
-	br label %bb73
-
-bb73:		; preds = %bb72, %bb71
-	%46 = add i32 %j2.0, -1		; <i32> [#uses=1]
-	%47 = getelementptr i64* %6, i32 %46		; <i64*> [#uses=1]
-	store i64 0, i64* %47, align 8
-	br label %bb74
-
-bb74:		; preds = %bb82, %bb73
-	%j1.0 = phi i32 [ %4, %bb73 ], [ %81, %bb82 ]		; <i32> [#uses=12]
-	%48 = icmp slt i32 %j1.0, 2		; <i1> [#uses=1]
-	br i1 %48, label %bb83, label %bb76
-
-bb76:		; preds = %bb74
-	%49 = add i32 %j1.0, -1		; <i32> [#uses=1]
-	%50 = getelementptr i64* %6, i32 %49		; <i64*> [#uses=1]
-	%51 = load i64* %50, align 8		; <i64> [#uses=1]
-	%52 = icmp sgt i64 %51, 999999999999999999		; <i1> [#uses=1]
-	br i1 %52, label %bb78, label %bb79
-
-bb78:		; preds = %bb76
-	%53 = add i32 %j1.0, -2		; <i32> [#uses=1]
-	%54 = getelementptr i64* %6, i32 %53		; <i64*> [#uses=1]
-	%55 = load i64* %54, align 8		; <i64> [#uses=1]
-	%56 = add i64 %55, 1		; <i64> [#uses=1]
-	%57 = add i32 %j1.0, -2		; <i32> [#uses=1]
-	%58 = getelementptr i64* %6, i32 %57		; <i64*> [#uses=1]
-	store i64 %56, i64* %58, align 8
-	%59 = add i32 %j1.0, -1		; <i32> [#uses=1]
-	%60 = getelementptr i64* %6, i32 %59		; <i64*> [#uses=1]
-	%61 = load i64* %60, align 8		; <i64> [#uses=1]
-	%62 = add i64 %61, -1000000000000000000		; <i64> [#uses=1]
-	%63 = add i32 %j1.0, -1		; <i32> [#uses=1]
-	%64 = getelementptr i64* %6, i32 %63		; <i64*> [#uses=1]
-	store i64 %62, i64* %64, align 8
-	br label %bb82
-
-bb79:		; preds = %bb76
-	%65 = add i32 %j1.0, -1		; <i32> [#uses=1]
-	%66 = getelementptr i64* %6, i32 %65		; <i64*> [#uses=1]
-	%67 = load i64* %66, align 8		; <i64> [#uses=1]
-	%68 = icmp slt i64 %67, -999999999999999999		; <i1> [#uses=1]
-	br i1 %68, label %bb81, label %bb82
-
-bb81:		; preds = %bb79
-	%69 = add i32 %j1.0, -2		; <i32> [#uses=1]
-	%70 = getelementptr i64* %6, i32 %69		; <i64*> [#uses=1]
-	%71 = load i64* %70, align 8		; <i64> [#uses=1]
-	%72 = add i64 %71, -1		; <i64> [#uses=1]
-	%73 = add i32 %j1.0, -2		; <i32> [#uses=1]
-	%74 = getelementptr i64* %6, i32 %73		; <i64*> [#uses=1]
-	store i64 %72, i64* %74, align 8
-	%75 = add i32 %j1.0, -1		; <i32> [#uses=1]
-	%76 = getelementptr i64* %6, i32 %75		; <i64*> [#uses=1]
-	%77 = load i64* %76, align 8		; <i64> [#uses=1]
-	%78 = add i64 %77, 1000000000000000000		; <i64> [#uses=1]
-	%79 = add i32 %j1.0, -1		; <i32> [#uses=1]
-	%80 = getelementptr i64* %6, i32 %79		; <i64*> [#uses=1]
-	store i64 %78, i64* %80, align 8
-	br label %bb82
-
-bb82:		; preds = %bb79, %bb81, %bb78
-	%81 = add i32 %j1.0, -1		; <i32> [#uses=1]
-	br label %bb74
-
-bb83:		; preds = %invcont, %bb74
-	%82 = icmp slt i32 %aa.0, 19		; <i1> [#uses=1]
-	%min = select i1 %82, i32 %aa.0, i32 18		; <i32> [#uses=1]
-	%83 = invoke i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 %min ) readnone
-			to label %invcont86 unwind label %lpad		; <i64> [#uses=1]
-
-invcont86:		; preds = %bb83
-	%84 = sub i64 0, %83		; <i64> [#uses=1]
-	%85 = icmp slt i32 %aa.0, 19		; <i1> [#uses=1]
-	%min87 = select i1 %85, i32 %aa.0, i32 18		; <i32> [#uses=1]
-	%86 = sub i32 %aa.0, %min87		; <i32> [#uses=1]
-	%87 = icmp eq i32 %4, %j2.0		; <i1> [#uses=1]
-	br i1 %87, label %bb91, label %bb90
-
-bb90:		; preds = %invcont86
-	%88 = add i32 %j2.0, 1		; <i32> [#uses=1]
-	br label %bb61
-
-bb91:		; preds = %bb58, %bb61, %invcont86
-	%89 = icmp slt i32 %2, 18		; <i1> [#uses=1]
-	br i1 %89, label %bb98, label %bb94
-
-bb94:		; preds = %bb91, %bb97
-	%j.0 = phi i32 [ %97, %bb97 ], [ 1, %bb91 ]		; <i32> [#uses=4]
-	%90 = mul i32 %j.0, 18		; <i32> [#uses=1]
-	%91 = add i32 %90, -18		; <i32> [#uses=1]
-	%92 = sub i32 %e, %91		; <i32> [#uses=1]
-	%93 = add i32 %j.0, -1		; <i32> [#uses=1]
-	%94 = getelementptr i64* %6, i32 %93		; <i64*> [#uses=1]
-	%95 = load i64* %94, align 8		; <i64> [#uses=1]
-	invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %95, i32 %92 )
-			to label %invcont95 unwind label %lpad
-
-invcont95:		; preds = %bb94
-	%96 = icmp eq i32 %3, %j.0		; <i1> [#uses=1]
-	br i1 %96, label %bb98, label %bb97
-
-bb97:		; preds = %invcont95
-	%97 = add i32 %j.0, 1		; <i32> [#uses=1]
-	br label %bb94
-
-bb98:		; preds = %bb91, %invcont95
-	%98 = sub i32 %e, %a		; <i32> [#uses=1]
-	%99 = getelementptr i64* %6, i32 %3		; <i64*> [#uses=1]
-	%100 = load i64* %99, align 8		; <i64> [#uses=1]
-	invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %100, i32 %98 )
-			to label %bb101 unwind label %lpad
-
-bb101:		; preds = %bb98
-	ret void
-
-lpad:		; preds = %bb98, %bb94, %bb83, %bb63
-	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
-	%eh_select103 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value )		; <i32> [#uses=0]
-	call void @llvm.stackrestore( i8* %1 )
-	%101 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )		; <i32> [#uses=0]
-	unreachable
-}
-
-declare i8* @llvm.stacksave() nounwind
-
-declare void @system__arith_64__scaled_divide({ i64, i64 }* noalias sret, i64, i64, i64, i8)
-
-declare i64 @system__exn_lli__exn_long_long_integer(i64, i32) readnone
-
-declare void @llvm.stackrestore(i8*) nounwind
-
-declare i32 @system__img_real__set_image_real(x86_fp80, i8*, %struct.string___XUB*, i32, i32, i32, i32)
-
-declare void @ada__text_io__generic_aux__put_item(%struct.ada__text_io__text_afcb*, i8*, %struct.string___XUB*)
-
-declare void @report__test(i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
-
-declare void @system__secondary_stack__ss_mark(%struct.string___XUB* noalias sret)
-
-declare void @system__exception_table__register_exception(%struct.system__standard_library__exception_data*)
-
-declare void @report__legal_file_name(%struct.system__file_control_block__pstring* noalias sret, i32, i8*, %struct.string___XUB*)
-
-declare %struct.ada__text_io__text_afcb* @ada__text_io__create(%struct.ada__text_io__text_afcb*, i8, i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
-
-declare void @system__secondary_stack__ss_release(i32, i32)
-
-declare void @report__not_applicable(i8*, %struct.string___XUB*)
-
-declare void @ada__text_io__set_output(%struct.ada__text_io__text_afcb*)
-
-declare %struct.ada__text_io__text_afcb* @ada__text_io__close(%struct.ada__text_io__text_afcb*)
-
-declare %struct.ada__text_io__text_afcb* @ada__text_io__open(%struct.ada__text_io__text_afcb*, i8, i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
-
-declare %struct.ada__text_io__text_afcb* @ada__text_io__standard_output()
-
-declare void @report__failed(i8*, %struct.string___XUB*)
-
-declare void @ext(i32*)
-
-declare %struct.ada__text_io__text_afcb* @ada__text_io__delete(%struct.ada__text_io__text_afcb*)
-
-declare void @report__result()
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/dg.exp b/libclamav/c++/llvm/test/Transforms/PruneEH/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/recursivetest.ll b/libclamav/c++/llvm/test/Transforms/PruneEH/recursivetest.ll
deleted file mode 100644
index 231c7b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/recursivetest.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -prune-eh | llvm-dis | not grep invoke
-
-define internal i32 @foo() {
-	invoke i32 @foo( )
-			to label %Normal unwind label %Except		; <i32>:1 [#uses=0]
-Normal:		; preds = %0
-	ret i32 12
-Except:		; preds = %0
-	ret i32 123
-}
-
-define i32 @caller() {
-	invoke i32 @foo( )
-			to label %Normal unwind label %Except		; <i32>:1 [#uses=0]
-Normal:		; preds = %0
-	ret i32 0
-Except:		; preds = %0
-	ret i32 1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/simplenoreturntest.ll b/libclamav/c++/llvm/test/Transforms/PruneEH/simplenoreturntest.ll
deleted file mode 100644
index d2bd50c..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/simplenoreturntest.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -prune-eh | llvm-dis | not grep {ret i32}
-
-declare void @noreturn() noreturn;
-
-define i32 @caller() {
-	call void @noreturn( )
-	ret i32 17
-}
-
-define i32 @caller2() {
-	%T = call i32 @caller( )		; <i32> [#uses=1]
-	ret i32 %T
-}
diff --git a/libclamav/c++/llvm/test/Transforms/PruneEH/simpletest.ll b/libclamav/c++/llvm/test/Transforms/PruneEH/simpletest.ll
deleted file mode 100644
index 678e8d7..0000000
--- a/libclamav/c++/llvm/test/Transforms/PruneEH/simpletest.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -prune-eh | llvm-dis | not grep invoke
-
-declare void @nounwind() nounwind
-
-define internal void @foo() {
-	call void @nounwind()
-	ret void
-}
-
-define i32 @caller() {
-	invoke void @foo( )
-			to label %Normal unwind label %Except
-
-Normal:		; preds = %0
-	ret i32 0
-
-Except:		; preds = %0
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/2004-11-08-FreeUseCrash.ll b/libclamav/c++/llvm/test/Transforms/RaiseAllocations/2004-11-08-FreeUseCrash.ll
deleted file mode 100644
index 10daa76..0000000
--- a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/2004-11-08-FreeUseCrash.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -raiseallocs -disable-output
-
-define void @main() {
-	%tmp.13 = call i32 (...)* @free( i32 32 )		; <i32> [#uses=1]
-	%tmp.14 = inttoptr i32 %tmp.13 to i32*		; <i32*> [#uses=0]
-	ret void
-}
-
-declare i32 @free(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/2007-10-17-InvokeFree.ll b/libclamav/c++/llvm/test/Transforms/RaiseAllocations/2007-10-17-InvokeFree.ll
deleted file mode 100644
index 513cf6f..0000000
--- a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/2007-10-17-InvokeFree.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as <%s | opt -raiseallocs -stats -disable-output |&  \
-; RUN:  not grep {Number of allocations raised}
-define void @foo() {
-entry:
-	%buffer = alloca i16*
-	%tmp = load i16** %buffer, align 8
-	invoke i32(...)* @free(i16* %tmp)
-		to label %invcont unwind label %unwind
-invcont:
-	br label %finally
-unwind:
-	br label %finally
-finally:
-	ret void
-}
-declare i32 @free(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/FreeCastConstantExpr.ll b/libclamav/c++/llvm/test/Transforms/RaiseAllocations/FreeCastConstantExpr.ll
deleted file mode 100644
index 4521581..0000000
--- a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/FreeCastConstantExpr.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; This situation can occur due to the funcresolve pass.
-;
-; RUN: llvm-as < %s | opt -raiseallocs | llvm-dis | not grep call
-
-declare void @free(i8*)
-
-define void @test(i32* %P) {
-	call void bitcast (void (i8*)* @free to void (i32*)*)( i32* %P )
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/dg.exp b/libclamav/c++/llvm/test/Transforms/RaiseAllocations/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/RaiseAllocations/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll
deleted file mode 100644
index 5465418..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -instcombine -constprop -dce | llvm-dis | not grep add
-
-define i32 @test(i32 %A) {
-	%X = add i32 %A, 1		; <i32> [#uses=1]
-	%Y = add i32 %A, 1		; <i32> [#uses=1]
-	%r = sub i32 %X, %Y		; <i32> [#uses=1]
-	ret i32 %r
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-MissedTree.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-MissedTree.ll
deleted file mode 100644
index 79afb6e..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-MissedTree.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -instcombine -constprop -die | llvm-dis | not grep 5
-
-define i32 @test(i32 %A, i32 %B) {
-	%W = add i32 %B, -5		; <i32> [#uses=1]
-	%Y = add i32 %A, 5		; <i32> [#uses=1]
-	%Z = add i32 %W, %Y		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll
deleted file mode 100644
index de0666e..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; With sub reassociation, constant folding can eliminate all of the constants.
-;
-; RUN: llvm-as < %s | opt -reassociate -constprop -instcombine -dce | llvm-dis | not grep add
-
-define i32 @test(i32 %A, i32 %B) {
-	%W = add i32 5, %B		; <i32> [#uses=1]
-	%X = add i32 -7, %A		; <i32> [#uses=1]
-	%Y = sub i32 %X, %W		; <i32> [#uses=1]
-	%Z = add i32 %Y, 12		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll
deleted file mode 100644
index 070080a..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-05-15-SubReassociate2.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; With sub reassociation, constant folding can eliminate the two 12 constants.
-;
-; RUN: llvm-as < %s | opt -reassociate -constprop -dce | llvm-dis | not grep 12
-
-define i32 @test(i32 %A, i32 %B, i32 %C, i32 %D) {
-	%M = add i32 %A, 12		; <i32> [#uses=1]
-	%N = add i32 %M, %B		; <i32> [#uses=1]
-	%O = add i32 %N, %C		; <i32> [#uses=1]
-	%P = sub i32 %D, %O		; <i32> [#uses=1]
-	%Q = add i32 %P, 12		; <i32> [#uses=1]
-	ret i32 %Q
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-07-09-DominanceProblem.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2002-07-09-DominanceProblem.ll
deleted file mode 100644
index c19baea..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2002-07-09-DominanceProblem.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; The reassociate pass is not preserving dominance properties correctly
-;
-; RUN: llvm-as < %s | opt -reassociate
-
-define i32 @compute_dist(i32 %i, i32 %j) {
-	%reg119 = sub i32 %j, %i		; <i32> [#uses=1]
-	ret i32 %reg119
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2003-08-12-InfiniteLoop.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2003-08-12-InfiniteLoop.ll
deleted file mode 100644
index 41cba63..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2003-08-12-InfiniteLoop.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -disable-output
-
-define i32 @test(i32 %A.1, i32 %B.1, i32 %C.1, i32 %D.1) {
-	%tmp.16 = and i32 %A.1, %B.1		; <i32> [#uses=1]
-	%tmp.18 = and i32 %tmp.16, %C.1		; <i32> [#uses=1]
-	%tmp.20 = and i32 %tmp.18, %D.1		; <i32> [#uses=1]
-	ret i32 %tmp.20
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2005-08-24-Crash.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2005-08-24-Crash.ll
deleted file mode 100644
index 99c98ef..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2005-08-24-Crash.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -disable-output
-
-define void @test(i32 %a, i32 %b, i32 %c, i32 %d) {
-	%tmp.2 = xor i32 %a, %b		; <i32> [#uses=1]
-	%tmp.5 = xor i32 %c, %d		; <i32> [#uses=1]
-	%tmp.6 = xor i32 %tmp.2, %tmp.5		; <i32> [#uses=1]
-	%tmp.9 = xor i32 %c, %a		; <i32> [#uses=1]
-	%tmp.12 = xor i32 %b, %d		; <i32> [#uses=1]
-	%tmp.13 = xor i32 %tmp.9, %tmp.12		; <i32> [#uses=1]
-	%tmp.16 = xor i32 %tmp.6, %tmp.13		; <i32> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2005-09-01-ArrayOutOfBounds.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2005-09-01-ArrayOutOfBounds.ll
deleted file mode 100644
index d11a2ea..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2005-09-01-ArrayOutOfBounds.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -instcombine | llvm-dis |\
-; RUN:   grep {ret i32 0}
-
-define i32 @f(i32 %a0, i32 %a1, i32 %a2, i32 %a3, i32 %a4) {
-	%tmp.2 = add i32 %a4, %a3		; <i32> [#uses=1]
-	%tmp.4 = add i32 %tmp.2, %a2		; <i32> [#uses=1]
-	%tmp.6 = add i32 %tmp.4, %a1		; <i32> [#uses=1]
-	%tmp.8 = add i32 %tmp.6, %a0		; <i32> [#uses=1]
-	%tmp.11 = add i32 %a3, %a2		; <i32> [#uses=1]
-	%tmp.13 = add i32 %tmp.11, %a1		; <i32> [#uses=1]
-	%tmp.15 = add i32 %tmp.13, %a0		; <i32> [#uses=1]
-	%tmp.18 = add i32 %a2, %a1		; <i32> [#uses=1]
-	%tmp.20 = add i32 %tmp.18, %a0		; <i32> [#uses=1]
-	%tmp.23 = add i32 %a1, %a0		; <i32> [#uses=1]
-	%tmp.26 = sub i32 %tmp.8, %tmp.15		; <i32> [#uses=1]
-	%tmp.28 = add i32 %tmp.26, %tmp.20		; <i32> [#uses=1]
-	%tmp.30 = sub i32 %tmp.28, %tmp.23		; <i32> [#uses=1]
-	%tmp.32 = sub i32 %tmp.30, %a4		; <i32> [#uses=1]
-	%tmp.34 = sub i32 %tmp.32, %a2		; <i32> [#uses=2]
-	%T = mul i32 %tmp.34, %tmp.34		; <i32> [#uses=1]
-	ret i32 %T
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/2006-04-27-ReassociateVector.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/2006-04-27-ReassociateVector.ll
deleted file mode 100644
index 3662e09..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/2006-04-27-ReassociateVector.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -disable-output
-
-define void @foo() {
-	%tmp162 = fsub <4 x float> zeroinitializer, zeroinitializer		; <<4 x float>> [#uses=1]
-	%tmp164 = fmul <4 x float> zeroinitializer, %tmp162		; <<4 x float>> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/basictest.ll
deleted file mode 100644
index 09db47b..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; With reassociation, constant folding can eliminate the 12 and -12 constants.
-;
-; RUN: llvm-as < %s | opt -reassociate -constprop -instcombine -die | llvm-dis | not grep add
-
-define i32 @test(i32 %arg) {
-	%tmp1 = sub i32 -12, %arg		; <i32> [#uses=1]
-	%tmp2 = add i32 %tmp1, 12		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest2.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/basictest2.ll
deleted file mode 100644
index dbde3af..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest2.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; With reassociation, constant folding can eliminate the +/- 30 constants.
-;
-; RUN: llvm-as < %s | opt -reassociate -constprop -instcombine -die | llvm-dis | not grep 30
-
-define i32 @test(i32 %reg109, i32 %reg1111) {
-	%reg115 = add i32 %reg109, -30		; <i32> [#uses=1]
-	%reg116 = add i32 %reg115, %reg1111		; <i32> [#uses=1]
-	%reg117 = add i32 %reg116, 30		; <i32> [#uses=1]
-	ret i32 %reg117
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest3.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/basictest3.ll
deleted file mode 100644
index a88030d..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest3.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -gvn | llvm-dis | grep add | count 6
-; Each of these functions should turn into two adds each.
-
- at e = external global i32		; <i32*> [#uses=3]
- at a = external global i32		; <i32*> [#uses=3]
- at b = external global i32		; <i32*> [#uses=3]
- at c = external global i32		; <i32*> [#uses=3]
- at f = external global i32		; <i32*> [#uses=3]
-
-define void @test1() {
-	%A = load i32* @a		; <i32> [#uses=2]
-	%B = load i32* @b		; <i32> [#uses=2]
-	%C = load i32* @c		; <i32> [#uses=2]
-	%t1 = add i32 %A, %B		; <i32> [#uses=1]
-	%t2 = add i32 %t1, %C		; <i32> [#uses=1]
-	%t3 = add i32 %C, %A		; <i32> [#uses=1]
-	%t4 = add i32 %t3, %B		; <i32> [#uses=1]
-	; e = (a+b)+c;
-        store i32 %t2, i32* @e
-        ; f = (a+c)+b
-	store i32 %t4, i32* @f
-	ret void
-}
-
-define void @test2() {
-	%A = load i32* @a		; <i32> [#uses=2]
-	%B = load i32* @b		; <i32> [#uses=2]
-	%C = load i32* @c		; <i32> [#uses=2]
-	%t1 = add i32 %A, %B		; <i32> [#uses=1]
-	%t2 = add i32 %t1, %C		; <i32> [#uses=1]
-	%t3 = add i32 %C, %A		; <i32> [#uses=1]
-	%t4 = add i32 %t3, %B		; <i32> [#uses=1]
-	; e = c+(a+b)
-        store i32 %t2, i32* @e
-        ; f = (c+a)+b
-	store i32 %t4, i32* @f
-	ret void
-}
-
-define void @test3() {
-	%A = load i32* @a		; <i32> [#uses=2]
-	%B = load i32* @b		; <i32> [#uses=2]
-	%C = load i32* @c		; <i32> [#uses=2]
-	%t1 = add i32 %B, %A		; <i32> [#uses=1]
-	%t2 = add i32 %t1, %C		; <i32> [#uses=1]
-	%t3 = add i32 %C, %A		; <i32> [#uses=1]
-	%t4 = add i32 %t3, %B		; <i32> [#uses=1]
-	; e = c+(b+a)
-        store i32 %t2, i32* @e
-        ; f = (c+a)+b
-	store i32 %t4, i32* @f
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest4.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/basictest4.ll
deleted file mode 100644
index 608becd..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/basictest4.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -gvn -instcombine | llvm-dis | not grep add
-
- at a = weak global i32 0		; <i32*> [#uses=1]
- at b = weak global i32 0		; <i32*> [#uses=1]
- at c = weak global i32 0		; <i32*> [#uses=1]
- at d = weak global i32 0		; <i32*> [#uses=0]
-
-define i32 @foo() {
-	%tmp.0 = load i32* @a		; <i32> [#uses=2]
-	%tmp.1 = load i32* @b		; <i32> [#uses=2]
-        ; (a+b)
-	%tmp.2 = add i32 %tmp.0, %tmp.1		; <i32> [#uses=1]
-	%tmp.4 = load i32* @c		; <i32> [#uses=2]
-	; (a+b)+c
-        %tmp.5 = add i32 %tmp.2, %tmp.4		; <i32> [#uses=1]
-	; (a+c)
-        %tmp.8 = add i32 %tmp.0, %tmp.4		; <i32> [#uses=1]
-	; (a+c)+b
-        %tmp.11 = add i32 %tmp.8, %tmp.1		; <i32> [#uses=1]
-	; X ^ X = 0
-        %RV = xor i32 %tmp.5, %tmp.11		; <i32> [#uses=1]
-	ret i32 %RV
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/dg.exp b/libclamav/c++/llvm/test/Transforms/Reassociate/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/inverses.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/inverses.ll
deleted file mode 100644
index 5b08d0e..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/inverses.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -dce | llvm-dis | \
-; RUN:   not grep {\\(and\\|sub\\)}
-
-define i32 @test1(i32 %a, i32 %b) {
-	%tmp.2 = and i32 %b, %a		; <i32> [#uses=1]
-	%tmp.4 = xor i32 %a, -1		; <i32> [#uses=1]
-        ; (A&B)&~A == 0
-	%tmp.5 = and i32 %tmp.2, %tmp.4		; <i32> [#uses=1]
-	ret i32 %tmp.5
-}
-
-define i32 @test2(i32 %a, i32 %b) {
-	%tmp.1 = and i32 %a, 1234		; <i32> [#uses=1]
-	%tmp.2 = and i32 %b, %tmp.1		; <i32> [#uses=1]
-	%tmp.4 = xor i32 %a, -1		; <i32> [#uses=1]
-	; A&~A == 0
-        %tmp.5 = and i32 %tmp.2, %tmp.4		; <i32> [#uses=1]
-	ret i32 %tmp.5
-}
-
-define i32 @test3(i32 %b, i32 %a) {
-	%tmp.1 = add i32 %a, 1234		; <i32> [#uses=1]
-	%tmp.2 = add i32 %b, %tmp.1		; <i32> [#uses=1]
-	%tmp.4 = sub i32 0, %a		; <i32> [#uses=1]
-        ; (b+(a+1234))+-a -> b+1234
-  	%tmp.5 = add i32 %tmp.2, %tmp.4		; <i32> [#uses=1]
-	ret i32 %tmp.5
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/looptest.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/looptest.ll
deleted file mode 100644
index 3b28c23..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/looptest.ll
+++ /dev/null
@@ -1,50 +0,0 @@
-; This testcase comes from this C fragment:
-;
-; void test(unsigned Num, int *Array) {
-;  unsigned i, j, k;
-;
-;  for (i = 0; i != Num; ++i)
-;    for (j = 0; j != Num; ++j)
-;      for (k = 0; k != Num; ++k)
-;        printf("%d\n", i+k+j);    /* Reassociate to (i+j)+k */
-;}
-;
-; In this case, we want to reassociate the specified expr so that i+j can be
-; hoisted out of the inner most loop.
-;
-; RUN: llvm-as < %s | opt -reassociate | llvm-dis | grep 115 | not grep 117
-; END.
- at .LC0 = internal global [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
-
-declare i32 @printf(i8*, ...)
-
-define void @test(i32 %Num, i32* %Array) {
-bb0:
-	%cond221 = icmp eq i32 0, %Num		; <i1> [#uses=3]
-	br i1 %cond221, label %bb7, label %bb2
-bb2:		; preds = %bb6, %bb0
-	%reg115 = phi i32 [ %reg120, %bb6 ], [ 0, %bb0 ]		; <i32> [#uses=2]
-	br i1 %cond221, label %bb6, label %bb3
-bb3:		; preds = %bb5, %bb2
-	%reg116 = phi i32 [ %reg119, %bb5 ], [ 0, %bb2 ]		; <i32> [#uses=2]
-	br i1 %cond221, label %bb5, label %bb4
-bb4:		; preds = %bb4, %bb3
-	%reg117 = phi i32 [ %reg118, %bb4 ], [ 0, %bb3 ]		; <i32> [#uses=2]
-	%reg113 = add i32 %reg115, %reg117		; <i32> [#uses=1]
-	%reg114 = add i32 %reg113, %reg116		; <i32> [#uses=1]
-	%cast227 = getelementptr [4 x i8]* @.LC0, i64 0, i64 0		; <i8*> [#uses=1]
-	call i32 (i8*, ...)* @printf( i8* %cast227, i32 %reg114 )		; <i32>:0 [#uses=0]
-	%reg118 = add i32 %reg117, 1		; <i32> [#uses=2]
-	%cond224 = icmp ne i32 %reg118, %Num		; <i1> [#uses=1]
-	br i1 %cond224, label %bb4, label %bb5
-bb5:		; preds = %bb4, %bb3
-	%reg119 = add i32 %reg116, 1		; <i32> [#uses=2]
-	%cond225 = icmp ne i32 %reg119, %Num		; <i1> [#uses=1]
-	br i1 %cond225, label %bb3, label %bb6
-bb6:		; preds = %bb5, %bb2
-	%reg120 = add i32 %reg115, 1		; <i32> [#uses=2]
-	%cond226 = icmp ne i32 %reg120, %Num		; <i1> [#uses=1]
-	br i1 %cond226, label %bb2, label %bb7
-bb7:		; preds = %bb6, %bb0
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/mul-factor3.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/mul-factor3.ll
deleted file mode 100644
index e45e431..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/mul-factor3.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This should be one add and two multiplies.
-
-; RUN: llvm-as < %s | \
-; RUN:   opt -reassociate -instcombine | llvm-dis > %t 
-; RUN: grep mul %t | count 2
-; RUN: grep add %t | count 1
-
-define i32 @test(i32 %A, i32 %B, i32 %C) {
-	%aa = mul i32 %A, %A		; <i32> [#uses=1]
-	%aab = mul i32 %aa, %B		; <i32> [#uses=1]
-	%ac = mul i32 %A, %C		; <i32> [#uses=1]
-	%aac = mul i32 %ac, %A		; <i32> [#uses=1]
-	%r = add i32 %aab, %aac		; <i32> [#uses=1]
-	ret i32 %r
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/mul-neg-add.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/mul-neg-add.ll
deleted file mode 100644
index 1899be7..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/mul-neg-add.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -instcombine | llvm-dis |\
-; RUN:   not grep {sub i32 0}
-
-define i32 @test(i32 %X, i32 %Y, i32 %Z) {
-	%A = sub i32 0, %X		; <i32> [#uses=1]
-	%B = mul i32 %A, %Y		; <i32> [#uses=1]
-        ; (-X)*Y + Z -> Z-X*Y
-	%C = add i32 %B, %Z		; <i32> [#uses=1]
-	ret i32 %C
-}
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/mulfactor.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/mulfactor.ll
deleted file mode 100644
index f80019c..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/mulfactor.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -instcombine | llvm-dis | grep mul | count 2
-
-; This should have exactly 2 multiplies when we're done.
-
-define i32 @f(i32 %a, i32 %b) {
-	%tmp.2 = mul i32 %a, %a		; <i32> [#uses=1]
-	%tmp.5 = shl i32 %a, 1		; <i32> [#uses=1]
-	%tmp.6 = mul i32 %tmp.5, %b		; <i32> [#uses=1]
-	%tmp.10 = mul i32 %b, %b		; <i32> [#uses=1]
-	%tmp.7 = add i32 %tmp.6, %tmp.2		; <i32> [#uses=1]
-	%tmp.11 = add i32 %tmp.7, %tmp.10		; <i32> [#uses=1]
-	ret i32 %tmp.11
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/mulfactor2.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/mulfactor2.ll
deleted file mode 100644
index 62a890b..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/mulfactor2.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This should turn into one multiply and one add.
-
-; RUN: llvm-as < %s | \
-; RUN:   opt -instcombine -reassociate -instcombine | llvm-dis > %t 
-; RUN: grep mul %t | count 1
-; RUN: grep add %t | count 1
-
-define i32 @main(i32 %t) {
-	%tmp.3 = mul i32 %t, 12		; <i32> [#uses=1]
-	%tmp.4 = add i32 %tmp.3, 5		; <i32> [#uses=1]
-	%tmp.6 = mul i32 %t, 6		; <i32> [#uses=1]
-	%tmp.8 = mul i32 %tmp.4, 3		; <i32> [#uses=1]
-	%tmp.9 = add i32 %tmp.8, %tmp.6		; <i32> [#uses=1]
-	ret i32 %tmp.9
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/negation.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/negation.ll
deleted file mode 100644
index 6b20418..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/negation.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -reassociate -instcombine | llvm-dis | not grep sub
-
-; Test that we can turn things like X*-(Y*Z) -> X*-1*Y*Z.
-
-define i32 @test1(i32 %a, i32 %b, i32 %z) {
-	%c = sub i32 0, %z		; <i32> [#uses=1]
-	%d = mul i32 %a, %b		; <i32> [#uses=1]
-	%e = mul i32 %c, %d		; <i32> [#uses=1]
-	%f = mul i32 %e, 12345		; <i32> [#uses=1]
-	%g = sub i32 0, %f		; <i32> [#uses=1]
-	ret i32 %g
-}
-
-define i32 @test2(i32 %a, i32 %b, i32 %z) {
-	%d = mul i32 %z, 40		; <i32> [#uses=1]
-	%c = sub i32 0, %d		; <i32> [#uses=1]
-	%e = mul i32 %a, %c		; <i32> [#uses=1]
-	%f = sub i32 0, %e		; <i32> [#uses=1]
-	ret i32 %f
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/otherops.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/otherops.ll
deleted file mode 100644
index 3c9b074..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/otherops.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; Reassociation should apply to Add, Mul, And, Or, & Xor
-;
-; RUN: llvm-as < %s | opt -reassociate -constprop -instcombine -die | llvm-dis | not grep 12
-
-define i32 @test_mul(i32 %arg) {
-	%tmp1 = mul i32 12, %arg		; <i32> [#uses=1]
-	%tmp2 = mul i32 %tmp1, 12		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
-define i32 @test_and(i32 %arg) {
-	%tmp1 = and i32 14, %arg		; <i32> [#uses=1]
-	%tmp2 = and i32 %tmp1, 14		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
-define i32 @test_or(i32 %arg) {
-	%tmp1 = or i32 14, %arg		; <i32> [#uses=1]
-	%tmp2 = or i32 %tmp1, 14		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
-define i32 @test_xor(i32 %arg) {
-	%tmp1 = xor i32 12, %arg		; <i32> [#uses=1]
-	%tmp2 = xor i32 %tmp1, 12		; <i32> [#uses=1]
-	ret i32 %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/shift-factor.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/shift-factor.ll
deleted file mode 100644
index 05437fd..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/shift-factor.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; There should be exactly one shift and one add left.
-; RUN: llvm-as < %s | \
-; RUN:   opt -reassociate -instcombine | llvm-dis > %t  
-; RUN: grep shl %t | count 1
-; RUN: grep add %t | count 1
-
-define i32 @test(i32 %X, i32 %Y) {
-	%tmp.2 = shl i32 %X, 1		; <i32> [#uses=1]
-	%tmp.6 = shl i32 %Y, 1		; <i32> [#uses=1]
-	%tmp.4 = add i32 %tmp.6, %tmp.2		; <i32> [#uses=1]
-	ret i32 %tmp.4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/shifttest.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/shifttest.ll
deleted file mode 100644
index fd49e7d..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/shifttest.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; With shl->mul reassociation, we can see that this is (shl A, 9) * A
-;
-; RUN: llvm-as < %s | opt -reassociate -instcombine | llvm-dis |\
-; RUN:    grep {shl .*, 9}
-
-define i32 @test(i32 %A, i32 %B) {
-	%X = shl i32 %A, 5		; <i32> [#uses=1]
-	%Y = shl i32 %A, 4		; <i32> [#uses=1]
-	%Z = mul i32 %Y, %X		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/subtest.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/subtest.ll
deleted file mode 100644
index 513984e..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/subtest.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; With sub reassociation, constant folding can eliminate the 12 and -12 constants.
-;
-; RUN: llvm-as < %s | opt -reassociate -instcombine | llvm-dis | not grep 12
-
-define i32 @test(i32 %A, i32 %B) {
-	%X = add i32 -12, %A		; <i32> [#uses=1]
-	%Y = sub i32 %X, %B		; <i32> [#uses=1]
-	%Z = add i32 %Y, 12		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/Reassociate/subtest2.ll b/libclamav/c++/llvm/test/Transforms/Reassociate/subtest2.ll
deleted file mode 100644
index c81e9b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/Reassociate/subtest2.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; With sub reassociation, constant folding can eliminate the uses of %a.
-;
-; RUN: llvm-as < %s | opt -reassociate -instcombine | llvm-dis | grep %a | count 1
-; PR2047
-
-define i32 @test(i32 %a, i32 %b, i32 %c) nounwind  {
-entry:
-	%tmp3 = sub i32 %a, %b		; <i32> [#uses=1]
-	%tmp5 = sub i32 %tmp3, %c		; <i32> [#uses=1]
-	%tmp7 = sub i32 %tmp5, %a		; <i32> [#uses=1]
-	ret i32 %tmp7
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-02-EdgeFailure.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-02-EdgeFailure.ll
deleted file mode 100644
index 13b45f5..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-02-EdgeFailure.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; edgefailure - This function illustrates how SCCP is not doing it's job.  This
-; function should be optimized almost completely away: the loop should be
-; analyzed to detect that the body executes exactly once, and thus the branch
-; can be eliminated and code becomes trivially dead.  This is distilled from a
-; real benchmark (mst from Olden benchmark, MakeGraph function).  When SCCP is
-; fixed, this should be eliminated by a single SCCP application.
-;
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep loop
-
-define i32* @test() {
-bb1:
-	%A = malloc i32		; <i32*> [#uses=2]
-	br label %bb2
-bb2:		; preds = %bb2, %bb1
-        ;; Always 0
-	%i = phi i32 [ %i2, %bb2 ], [ 0, %bb1 ]		; <i32> [#uses=2]
-        ;; Always 1
-	%i2 = add i32 %i, 1		; <i32> [#uses=2]
-	store i32 %i, i32* %A
-        ;; Always false
-  	%loop = icmp sle i32 %i2, 0		; <i1> [#uses=1]
-	br i1 %loop, label %bb2, label %bb3
-bb3:		; preds = %bb2
-	ret i32* %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-02-MissSecondInst.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-02-MissSecondInst.ll
deleted file mode 100644
index fd4083d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-02-MissSecondInst.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep sub
-
-define void @test3(i32, i32) {
-	add i32 0, 0		; <i32>:3 [#uses=0]
-	sub i32 0, 4		; <i32>:4 [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-20-MissedIncomingValue.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-20-MissedIncomingValue.ll
deleted file mode 100644
index 61bf5db..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-20-MissedIncomingValue.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; This test shows a case where SCCP is incorrectly eliminating the PHI node
-; because it thinks it has a constant 0 value, when it really doesn't.
-
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep phi
-
-define i32 @test(i32 %A, i1 %c) {
-bb1:
-	br label %BB2
-BB2:		; preds = %BB4, %bb1
-	%V = phi i32 [ 0, %bb1 ], [ %A, %BB4 ]		; <i32> [#uses=1]
-	br label %BB3
-BB3:		; preds = %BB2
-	br i1 %c, label %BB4, label %BB5
-BB4:		; preds = %BB3
-	br label %BB2
-BB5:		; preds = %BB3
-	ret i32 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-21-InvalidSimplify.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-21-InvalidSimplify.ll
deleted file mode 100644
index b46d23a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2002-05-21-InvalidSimplify.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; This test shows SCCP "proving" that the loop (from bb6 to 14) loops infinitely
-; this is in fact NOT the case, so the return should still be alive in the code
-; after sccp and CFG simplification have been performed.
-;
-; RUN: llvm-as < %s | opt -sccp -simplifycfg | llvm-dis | \
-; RUN:   grep ret
-
-define void @old_main() {
-bb3:
-	br label %bb6
-bb6:		; preds = %bb14, %bb3
-	%reg403 = phi i32 [ %reg155, %bb14 ], [ 0, %bb3 ]		; <i32> [#uses=1]
-	%reg155 = add i32 %reg403, 1		; <i32> [#uses=2]
-	br label %bb11
-bb11:		; preds = %bb11, %bb6
-	%reg407 = phi i32 [ %reg408, %bb11 ], [ 0, %bb6 ]		; <i32> [#uses=2]
-	%reg408 = add i32 %reg407, 1		; <i32> [#uses=1]
-	%cond550 = icmp sle i32 %reg407, 1		; <i1> [#uses=1]
-	br i1 %cond550, label %bb11, label %bb12
-bb12:		; preds = %bb11
-	br label %bb13
-bb13:		; preds = %bb13, %bb12
-	%reg409 = phi i32 [ %reg410, %bb13 ], [ 0, %bb12 ]		; <i32> [#uses=1]
-	%reg410 = add i32 %reg409, 1		; <i32> [#uses=2]
-	%cond552 = icmp sle i32 %reg410, 2		; <i1> [#uses=1]
-	br i1 %cond552, label %bb13, label %bb14
-bb14:		; preds = %bb13
-	%cond553 = icmp sle i32 %reg155, 31		; <i1> [#uses=1]
-	br i1 %cond553, label %bb6, label %bb15
-bb15:		; preds = %bb14
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2002-08-30-GetElementPtrTest.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2002-08-30-GetElementPtrTest.ll
deleted file mode 100644
index c5a7c79..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2002-08-30-GetElementPtrTest.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep %X
-
- at G = external global [40 x i32]		; <[40 x i32]*> [#uses=1]
-
-define i32* @test() {
-	%X = getelementptr [40 x i32]* @G, i64 0, i64 0		; <i32*> [#uses=1]
-	ret i32* %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2003-06-24-OverdefinedPHIValue.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2003-06-24-OverdefinedPHIValue.ll
deleted file mode 100644
index 03ff4dd..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2003-06-24-OverdefinedPHIValue.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp -simplifycfg | llvm-dis | \
-; RUN:   not grep then:
-
-define void @cprop_test11(i32* %data.1) {
-entry:
-	%tmp.1 = load i32* %data.1		; <i32> [#uses=3]
-	%tmp.41 = icmp sgt i32 %tmp.1, 1		; <i1> [#uses=1]
-	br i1 %tmp.41, label %no_exit, label %loopexit
-no_exit:		; preds = %endif, %then, %entry
-	%j.0 = phi i32 [ %j.0, %endif ], [ %i.0, %then ], [ 1, %entry ]		; <i32> [#uses=3]
-	%i.0 = phi i32 [ %inc, %endif ], [ %inc1, %then ], [ 1, %entry ]		; <i32> [#uses=4]
-	%tmp.8.not = icmp ne i32 %j.0, 0		; <i1> [#uses=1]
-	br i1 %tmp.8.not, label %endif, label %then
-then:		; preds = %no_exit
-	%inc1 = add i32 %i.0, 1		; <i32> [#uses=3]
-	%tmp.42 = icmp slt i32 %inc1, %tmp.1		; <i1> [#uses=1]
-	br i1 %tmp.42, label %no_exit, label %loopexit
-endif:		; preds = %no_exit
-	%inc = add i32 %i.0, 1		; <i32> [#uses=3]
-	%tmp.4 = icmp slt i32 %inc, %tmp.1		; <i1> [#uses=1]
-	br i1 %tmp.4, label %no_exit, label %loopexit
-loopexit:		; preds = %endif, %then, %entry
-	%j.1 = phi i32 [ 1, %entry ], [ %j.0, %endif ], [ %i.0, %then ]		; <i32> [#uses=1]
-	%i.1 = phi i32 [ 1, %entry ], [ %inc, %endif ], [ %inc1, %then ]		; <i32> [#uses=1]
-	%tmp.17 = getelementptr i32* %data.1, i64 1		; <i32*> [#uses=1]
-	store i32 %j.1, i32* %tmp.17
-	%tmp.23 = getelementptr i32* %data.1, i64 2		; <i32*> [#uses=1]
-	store i32 %i.1, i32* %tmp.23
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2003-08-26-InvokeHandling.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2003-08-26-InvokeHandling.ll
deleted file mode 100644
index 020af7d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2003-08-26-InvokeHandling.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; The PHI cannot be eliminated from this testcase, SCCP is mishandling invoke's!
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep phi
-
-declare void @foo()
-
-define i32 @test(i1 %cond) {
-Entry:
-	br i1 %cond, label %Inv, label %Cont
-Inv:		; preds = %Entry
-	invoke void @foo( )
-			to label %Ok unwind label %Cont
-Ok:		; preds = %Inv
-	br label %Cont
-Cont:		; preds = %Ok, %Inv, %Entry
-	%X = phi i32 [ 0, %Entry ], [ 1, %Ok ], [ 0, %Inv ]		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2004-11-16-DeadInvoke.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2004-11-16-DeadInvoke.ll
deleted file mode 100644
index cf64677..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2004-11-16-DeadInvoke.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp -disable-output
-
-declare i32 @foo()
-
-define void @caller() {
-	br i1 true, label %T, label %F
-F:		; preds = %0
-	%X = invoke i32 @foo( )
-			to label %T unwind label %T		; <i32> [#uses=0]
-T:		; preds = %F, %F, %0
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll
deleted file mode 100644
index 6592e8b..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep {ret i32 1}
-
-; This function definitely returns 1, even if we don't know the direction
-; of the branch.
-
-define i32 @foo() {
-	br i1 undef, label %T, label %T
-T:		; preds = %0, %0
-	%X = add i32 0, 1		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2006-10-23-IPSCCP-Crash.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2006-10-23-IPSCCP-Crash.ll
deleted file mode 100644
index 299b79f..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2006-10-23-IPSCCP-Crash.ll
+++ /dev/null
@@ -1,103 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp -disable-output
-; END.
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin8.7.0"
-	%struct.pat_list = type { i32, %struct.pat_list* }
- at JUMP = external global i32		; <i32*> [#uses=1]
- at old_D_pat = external global [16 x i8]		; <[16 x i8]*> [#uses=0]
-
-define void @asearch1(i32 %D) {
-entry:
-	%tmp80 = icmp ult i32 0, %D		; <i1> [#uses=1]
-	br i1 %tmp80, label %bb647.preheader, label %cond_true81.preheader
-cond_true81.preheader:		; preds = %entry
-	ret void
-bb647.preheader:		; preds = %entry
-	%tmp3.i = call i32 @read( )		; <i32> [#uses=1]
-	%tmp6.i = add i32 %tmp3.i, 0		; <i32> [#uses=1]
-	%tmp653 = icmp sgt i32 %tmp6.i, 0		; <i1> [#uses=1]
-	br i1 %tmp653, label %cond_true654, label %UnifiedReturnBlock
-cond_true612:		; preds = %cond_true654
-	ret void
-cond_next624:		; preds = %cond_true654
-	ret void
-cond_true654:		; preds = %bb647.preheader
-	br i1 undef, label %cond_true612, label %cond_next624
-UnifiedReturnBlock:		; preds = %bb647.preheader
-	ret void
-}
-
-define void @bitap(i32 %D) {
-entry:
-	%tmp29 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp29, label %cond_next50, label %cond_next37
-cond_next37:		; preds = %entry
-	ret void
-cond_next50:		; preds = %entry
-	%tmp52 = icmp sgt i32 %D, 0		; <i1> [#uses=1]
-	br i1 %tmp52, label %cond_true53, label %cond_next71
-cond_true53:		; preds = %cond_next50
-	%tmp54 = load i32* @JUMP		; <i32> [#uses=1]
-	%tmp55 = icmp eq i32 %tmp54, 1		; <i1> [#uses=1]
-	br i1 %tmp55, label %cond_true56, label %cond_next63
-cond_true56:		; preds = %cond_true53
-	%tmp57 = bitcast i32 %D to i32		; <i32> [#uses=1]
-	call void @asearch1( i32 %tmp57 )
-	ret void
-cond_next63:		; preds = %cond_true53
-	ret void
-cond_next71:		; preds = %cond_next50
-	ret void
-}
-
-declare i32 @read()
-
-define void @initial_value() {
-entry:
-	ret void
-}
-
-define void @main() {
-entry:
-	br label %cond_next252
-cond_next208:		; preds = %cond_true260
-	%tmp229 = call i32 @atoi( )		; <i32> [#uses=1]
-	br label %cond_next252
-bb217:		; preds = %cond_true260
-	ret void
-cond_next252:		; preds = %cond_next208, %entry
-	%D.0.0 = phi i32 [ 0, %entry ], [ %tmp229, %cond_next208 ]		; <i32> [#uses=1]
-	%tmp254 = getelementptr i8** null, i32 1		; <i8**> [#uses=1]
-	%tmp256 = load i8** %tmp254		; <i8*> [#uses=1]
-	%tmp258 = load i8* %tmp256		; <i8> [#uses=1]
-	%tmp259 = icmp eq i8 %tmp258, 45		; <i1> [#uses=1]
-	br i1 %tmp259, label %cond_true260, label %bb263
-cond_true260:		; preds = %cond_next252
-	%tmp205818 = icmp sgt i8 0, -1		; <i1> [#uses=1]
-	br i1 %tmp205818, label %cond_next208, label %bb217
-bb263:		; preds = %cond_next252
-	%tmp265 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp265, label %cond_next276, label %cond_true266
-cond_true266:		; preds = %bb263
-	ret void
-cond_next276:		; preds = %bb263
-	%tmp278 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp278, label %cond_next298, label %cond_true279
-cond_true279:		; preds = %cond_next276
-	ret void
-cond_next298:		; preds = %cond_next276
-	call void @bitap( i32 %D.0.0 )
-	ret void
-}
-
-declare i32 @atoi()
-
-define void @subset_pset() {
-entry:
-	ret void
-}
-
-define void @strcmp() {
-entry:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2006-12-04-PackedType.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2006-12-04-PackedType.ll
deleted file mode 100644
index 0e268c2..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2006-12-04-PackedType.ll
+++ /dev/null
@@ -1,140 +0,0 @@
-; Test VectorType handling by SCCP.
-; SCCP ignores VectorTypes until PR 1034 is fixed
-;
-; RUN: llvm-as < %s | opt -sccp
-; END.
-
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin8"
-	%struct.GLDAlphaTest = type { float, i16, i8, i8 }
-	%struct.GLDArrayRange = type { i8, i8, i8, i8 }
-	%struct.GLDBlendMode = type { i16, i16, i16, i16, %struct.GLTColor4, i16, i16, i8, i8, i8, i8 }
-	%struct.GLDBufferRec = type opaque
-	%struct.GLDBufferstate = type { %struct.GLTDimensions, %struct.GLTDimensions, %struct.GLTFixedColor4, %struct.GLTFixedColor4, i8, i8, i8, i8, [2 x %struct.GLSBuffer], [4 x %struct.GLSBuffer], %struct.GLSBuffer, %struct.GLSBuffer, %struct.GLSBuffer, [4 x %struct.GLSBuffer*], %struct.GLSBuffer*, %struct.GLSBuffer*, %struct.GLSBuffer*, i8, i8 }
-	%struct.GLDClearColor = type { double, %struct.GLTColor4, %struct.GLTColor4, float, i32 }
-	%struct.GLDClipPlane = type { i32, [6 x %struct.GLTColor4] }
-	%struct.GLDColorBuffer = type { i16, i16, [4 x i16] }
-	%struct.GLDColorMatrix = type { [16 x float]*, %struct.GLDImagingColorScale }
-	%struct.GLDContextRec = type { float, float, float, float, float, float, float, float, %struct.GLTColor4, %struct.GLTColor4, %struct.GLVMFPContext, %struct.GLDTextureMachine, %struct.GLGProcessor, %struct._GLVMConstants*, void (%struct.GLDContextRec*, i32, i32, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, i32)*, %struct._GLVMFunction*, void (%struct.GLDContextRec*, %struct.GLDVertex*)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, %struct.GLDVertex*)*, void (%struct.GLDContextRec*, %struct.GLDVertex*, %struct.GLDVertex*, %struct.GLDVertex*)*, %struct._GLVMFunction*, %struct._GLVMFunction*, %struct._GLVMFunction*, i32, i32, i32, float, float, float, i32, %struct.GLSDrawable, %struct.GLDFramebufferAttachment, %struct.GLDFormat, %struct.GLDBufferstate, %struct.GLDSharedRec*, %struct.GLDState*, %struct.GLDPluginState*, %struct.GLTDimensions, %struct.GLTColor4*, %struct.GLTColor4*, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, %struct.GLVMFragmentAttribRec*, %struct.GLDPipelineProgramRec*, %struct.GLDStateProgramRec, %struct.GLVMTextures, { [4 x i8*], i8*, i8* }, [64 x float], %struct.GLDStippleData, i16, i8, i8, i32, %struct.GLDFramebufferRec*, i8, %struct.GLDQueryRec*, %struct.GLDQueryRec* }
-	%struct.GLDConvolution = type { %struct.GLTColor4, %struct.GLDImagingColorScale, i16, i16, float*, i32, i32 }
-	%struct.GLDDepthTest = type { i16, i16, i8, i8, i8, i8, double, double }
-	%struct.GLDFogMode = type { %struct.GLTColor4, float, float, float, float, float, i16, i16, i16, i8, i8 }
-	%struct.GLDFormat = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, i32 }
-	%struct.GLDFramebufferAttachment = type { i32, i32, i32, i32, i32, i32 }
-	%struct.GLDFramebufferData = type { [6 x %struct.GLDFramebufferAttachment], [4 x i16], i16, i16, i16, i16, i32 }
-	%struct.GLDFramebufferRec = type { %struct.GLDFramebufferData*, %struct.GLDPluginFramebufferData*, %struct.GLDPixelFormat }
-	%struct.GLDHintMode = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 }
-	%struct.GLDHistogram = type { %struct.GLTFixedColor4*, i32, i16, i8, i8 }
-	%struct.GLDImagingColorScale = type { { float, float }, { float, float }, { float, float }, { float, float } }
-	%struct.GLDImagingSubset = type { %struct.GLDConvolution, %struct.GLDConvolution, %struct.GLDConvolution, %struct.GLDColorMatrix, %struct.GLDMinmax, %struct.GLDHistogram, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, %struct.GLDImagingColorScale, i32 }
-	%struct.GLDLight = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTCoord3, float, float, float, float, float, %struct.GLTCoord3, float, float, float, float, float }
-	%struct.GLDLightModel = type { %struct.GLTColor4, [8 x %struct.GLDLight], [2 x %struct.GLDMaterial], i32, i16, i16, i16, i8, i8, i8, i8, i8, i8 }
-	%struct.GLDLightProduct = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4 }
-	%struct.GLDLineMode = type { float, i32, i16, i16, i8, i8, i8, i8 }
-	%struct.GLDLogicOp = type { i16, i8, i8 }
-	%struct.GLDMaskMode = type { i32, [3 x i32], i8, i8, i8, i8, i8, i8, i8, i8 }
-	%struct.GLDMaterial = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, float, float, float, float, [8 x %struct.GLDLightProduct], %struct.GLTColor4, [6 x i32], [2 x i32] }
-	%struct.GLDMinmax = type { %struct.GLDMinmaxTable*, i16, i8, i8 }
-	%struct.GLDMinmaxTable = type { %struct.GLTColor4, %struct.GLTColor4 }
-	%struct.GLDMipmaplevel = type { [4 x i32], [4 x float], [4 x i32], [4 x i32], [4 x float], [4 x i32], [3 x i32], i32, float*, float*, float*, i32, i32, i8*, i16, i16, i16, i16 }
-	%struct.GLDMultisample = type { float, i8, i8, i8, i8, i8, i8, i8, i8 }
-	%struct.GLDPipelineProgramData = type { i16, i16, i32, %struct._PPStreamToken*, i64, %struct.GLDShaderSourceData*, %struct.GLTColor4*, i32 }
-	%struct.GLDPipelineProgramRec = type { %struct.GLDPipelineProgramData*, %struct._PPStreamToken*, %struct._PPStreamToken*, %struct._GLVMFunction*, i32, i32, i32 }
-	%struct.GLDPipelineProgramState = type { i8, i8, i8, i8, %struct.GLTColor4* }
-	%struct.GLDPixelFormat = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
-	%struct.GLDPixelMap = type { i32*, float*, float*, float*, float*, float*, float*, float*, float*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.GLDPixelMode = type { float, float, %struct.GLDPixelStore, %struct.GLDPixelTransfer, %struct.GLDPixelMap, %struct.GLDImagingSubset, i32, i32 }
-	%struct.GLDPixelPack = type { i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8 }
-	%struct.GLDPixelStore = type { %struct.GLDPixelPack, %struct.GLDPixelPack }
-	%struct.GLDPixelTransfer = type { float, float, float, float, float, float, float, float, float, float, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float }
-	%struct.GLDPluginFramebufferData = type { [6 x %struct.GLDTextureRec*], i32, i32 }
-	%struct.GLDPluginProgramData = type { [3 x %struct.GLDPipelineProgramRec*], %struct.GLDBufferRec**, i32 }
-	%struct.GLDPluginState = type { [16 x [5 x %struct.GLDTextureRec*]], [3 x %struct.GLDTextureRec*], [16 x %struct.GLDTextureRec*], [3 x %struct.GLDPipelineProgramRec*], %struct.GLDProgramRec*, %struct.GLDVertexArrayRec*, [16 x %struct.GLDBufferRec*], %struct.GLDFramebufferRec*, %struct.GLDFramebufferRec* }
-	%struct.GLDPointMode = type { float, float, float, float, %struct.GLTCoord3, float, i8, i8, i8, i8, i16, i16, i32, i16, i16 }
-	%struct.GLDPolygonMode = type { [128 x i8], float, float, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8 }
-	%struct.GLDProgramData = type { i32, [16 x i32], i32, i32, i32, i32 }
-	%struct.GLDProgramRec = type { %struct.GLDProgramData*, %struct.GLDPluginProgramData*, i32 }
-	%struct.GLDQueryRec = type { i32, i32, %struct.GLDQueryRec* }
-	%struct.GLDRect = type { i32, i32, i32, i32, i32, i32 }
-	%struct.GLDRegisterCombiners = type { i8, i8, i8, i8, i32, [2 x %struct.GLTColor4], [8 x %struct.GLDRegisterCombinersPerStageState], %struct.GLDRegisterCombinersFinalStageState }
-	%struct.GLDRegisterCombinersFinalStageState = type { i8, i8, i8, i8, [7 x %struct.GLDRegisterCombinersPerVariableState] }
-	%struct.GLDRegisterCombinersPerPortionState = type { [4 x %struct.GLDRegisterCombinersPerVariableState], i8, i8, i8, i8, i16, i16, i16, i16, i16, i16 }
-	%struct.GLDRegisterCombinersPerStageState = type { [2 x %struct.GLDRegisterCombinersPerPortionState], [2 x %struct.GLTColor4] }
-	%struct.GLDRegisterCombinersPerVariableState = type { i16, i16, i16, i16 }
-	%struct.GLDScissorTest = type { %struct.GLTFixedColor4, i8, i8, i8, i8 }
-	%struct.GLDShaderSourceData = type { i32, i32, i8*, i32*, i32, i32, i8*, i32*, i8* }
-	%struct.GLDSharedRec = type opaque
-	%struct.GLDState = type { i16, i16, i32, i32, i32, [256 x %struct.GLTColor4], [128 x %struct.GLTColor4], %struct.GLDViewport, %struct.GLDTransform, %struct.GLDLightModel, i32*, i32, i32, i32, %struct.GLDAlphaTest, %struct.GLDBlendMode, %struct.GLDClearColor, %struct.GLDColorBuffer, %struct.GLDDepthTest, %struct.GLDArrayRange, %struct.GLDFogMode, %struct.GLDHintMode, %struct.GLDLineMode, %struct.GLDLogicOp, %struct.GLDMaskMode, %struct.GLDPixelMode, %struct.GLDPointMode, %struct.GLDPolygonMode, %struct.GLDScissorTest, i32, %struct.GLDStencilTest, [16 x %struct.GLDTextureMode], %struct.GLDArrayRange, [8 x %struct.GLDTextureCoordGen], %struct.GLDClipPlane, %struct.GLDMultisample, %struct.GLDRegisterCombiners, %struct.GLDArrayRange, %struct.GLDArrayRange, [3 x %struct.GLDPipelineProgramState], %struct.GLDTransformFeedback }
-	%struct.GLDStateProgramRec = type { %struct.GLDPipelineProgramData*, %struct.GLDPipelineProgramRec* }
-	%struct.GLDStencilTest = type { [3 x { i32, i32, i16, i16, i16, i16 }], i32, [4 x i8] }
-	%struct.GLDStippleData = type { i32, i16, i16, [32 x [32 x i8]] }
-	%struct.GLDTextureCoordGen = type { { i16, i16, %struct.GLTColor4, %struct.GLTColor4 }, { i16, i16, %struct.GLTColor4, %struct.GLTColor4 }, { i16, i16, %struct.GLTColor4, %struct.GLTColor4 }, { i16, i16, %struct.GLTColor4, %struct.GLTColor4 }, i8, i8, i8, i8 }
-	%struct.GLDTextureGeomState = type { i16, i16, i16, i16, i16, i8, i8, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i16], [6 x i16] }
-	%struct.GLDTextureLevel = type { i32, i32, i16, i16, i16, i8, i8, i16, i16, i16, i16, i8* }
-	%struct.GLDTextureMachine = type { [8 x %struct.GLDTextureRec*], %struct.GLDTextureRec*, i8, i8, i8, i8 }
-	%struct.GLDTextureMode = type { %struct.GLTColor4, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, float, float, float, i16, i16, i16, i16, i16, i16, [4 x i16], i8, i8, i8, i8, [3 x float], [4 x float], float, float }
-	%struct.GLDTextureParamState = type { i16, i16, i16, i16, i16, i16, %struct.GLTColor4, float, float, float, float, i16, i16, i16, i16, float, i16, i8, i8, i32, i8* }
-	%struct.GLDTextureRec = type { %struct.GLDTextureState*, i32, [2 x float], float, i32, float, float, float, float, float, float, %struct.GLDMipmaplevel*, %struct.GLDMipmaplevel*, i32, i32, i32, i32, i32, i32, %struct.GLDTextureParamState, i32, [2 x %struct._PPStreamToken] }
-	%struct.GLDTextureState = type { i16, i16, i16, float, i32, i16, %struct.GLISWRSurface*, i8, i8, i8, i8, %struct.GLDTextureParamState, %struct.GLDTextureGeomState, %struct.GLDTextureLevel, [6 x [15 x %struct.GLDTextureLevel]] }
-	%struct.GLDTransform = type { [24 x [16 x float]], [24 x [16 x float]], [16 x float], float, float, float, float, i32, float, i16, i16, i8, i8, i8, i8 }
-	%struct.GLDTransformFeedback = type { i8, i8, i8, [16 x i32], [16 x i32] }
-	%struct.GLDVertex = type { %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTColor4, %struct.GLTCoord3, float, %struct.GLTColor4, float, float, float, i8, i8, i8, i8, [4 x float], [2 x %struct.GLDMaterial*], i32, i32, [8 x %struct.GLTColor4] }
-	%struct.GLDVertexArrayRec = type opaque
-	%struct.GLDViewport = type { float, float, float, float, float, float, float, float, double, double, i32, i32, i32, i32, float, float, float, float }
-	%struct.GLGColorTable = type { i32, i32, i32, i8* }
-	%struct.GLGOperation = type { i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, %struct.GLGColorTable, %struct.GLGColorTable, %struct.GLGColorTable }
-	%struct.GLGProcessor = type { void (%struct.GLDPixelMode*, %struct.GLGOperation*, %struct._GLGFunctionKey*)*, %struct._GLVMFunction*, %struct._GLGFunctionKey* }
-	%struct.GLISWRSurface = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i8*, [4 x i8*], i32 }
-	%struct.GLIWindow = type { i32, i32, i32 }
-	%struct.GLSBuffer = type { i8* }
-	%struct.GLSDrawable = type { %struct.GLSWindowRec* }
-	%struct.GLSWindowRec = type { %struct.GLTDimensions, %struct.GLTDimensions, i32, i32, %struct.GLSDrawable, [2 x i8*], i8*, i8*, i8*, [4 x i8*], i32, i32, i32, i32, [4 x i32], i16, i16, i16, %struct.GLIWindow, i32, i32, i8*, i8* }
-	%struct.GLTColor4 = type { float, float, float, float }
-	%struct.GLTCoord3 = type { float, float, float }
-	%struct.GLTDimensions = type { i32, i32 }
-	%struct.GLTFixedColor4 = type { i32, i32, i32, i32 }
-	%struct.GLVMFPContext = type { float, i32, i32, i32 }
-	%struct.GLVMFragmentAttribRec = type { <4 x float>, <4 x float>, <4 x float>, <4 x float>, [8 x <4 x float>] }
-	%struct.GLVMTextures = type { [8 x %struct.GLDTextureRec*] }
-	%struct._GLGFunctionKey = type opaque
-	%struct._GLVMConstants = type opaque
-	%struct._GLVMFunction = type opaque
-	%struct._PPStreamToken = type { { i16, i8, i8, i32 } }
-
-define void @gldLLVMVecPointRender(%struct.GLDContextRec* %ctx) {
-entry:
-	%tmp.uip = getelementptr %struct.GLDContextRec* %ctx, i32 0, i32 22		; <i32*> [#uses=1]
-	%tmp = load i32* %tmp.uip		; <i32> [#uses=3]
-	%tmp91 = lshr i32 %tmp, 5		; <i32> [#uses=1]
-	%tmp92 = trunc i32 %tmp91 to i1		; <i1> [#uses=1]
-	br i1 %tmp92, label %cond_true93, label %cond_next116
-cond_true93:		; preds = %entry
-	%tmp.upgrd.1 = getelementptr %struct.GLDContextRec* %ctx, i32 0, i32 31, i32 14		; <i32*> [#uses=1]
-	%tmp95 = load i32* %tmp.upgrd.1		; <i32> [#uses=1]
-	%tmp95.upgrd.2 = sitofp i32 %tmp95 to float		; <float> [#uses=1]
-	%tmp108 = fmul float undef, %tmp95.upgrd.2		; <float> [#uses=1]
-	br label %cond_next116
-cond_next116:		; preds = %cond_true93, %entry
-	%point_size.2 = phi float [ %tmp108, %cond_true93 ], [ undef, %entry ]		; <float> [#uses=2]
-	%tmp457 = fcmp olt float %point_size.2, 1.000000e+00		; <i1> [#uses=1]
-	%tmp460 = lshr i32 %tmp, 6		; <i32> [#uses=1]
-	%tmp461 = trunc i32 %tmp460 to i1		; <i1> [#uses=1]
-	br i1 %tmp457, label %cond_true458, label %cond_next484
-cond_true458:		; preds = %cond_next116
-	br i1 %tmp461, label %cond_true462, label %cond_next487
-cond_true462:		; preds = %cond_true458
-	%tmp26 = bitcast i32 %tmp to i32		; <i32> [#uses=1]
-	%tmp465 = and i32 %tmp26, 128		; <i32> [#uses=1]
-	%tmp466 = icmp eq i32 %tmp465, 0		; <i1> [#uses=1]
-	br i1 %tmp466, label %cond_true467, label %cond_next487
-cond_true467:		; preds = %cond_true462
-	ret void
-cond_next484:		; preds = %cond_next116
-	%tmp486 = fmul float %point_size.2, 5.000000e-01		; <float> [#uses=1]
-	br label %cond_next487
-cond_next487:		; preds = %cond_next484, %cond_true462, %cond_true458
-	%radius.0 = phi float [ %tmp486, %cond_next484 ], [ 5.000000e-01, %cond_true458 ], [ 5.000000e-01, %cond_true462 ]		; <float> [#uses=2]
-	%tmp494 = insertelement <4 x float> zeroinitializer, float %radius.0, i32 2		; <<4 x float>> [#uses=1]
-	%tmp495 = insertelement <4 x float> %tmp494, float %radius.0, i32 3		; <<4 x float>> [#uses=0]
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2006-12-19-UndefBug.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2006-12-19-UndefBug.ll
deleted file mode 100644
index 4d68669..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2006-12-19-UndefBug.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | \
-; RUN:   grep {ret i1 false}
-
-define i1 @foo() {
-	%X = and i1 false, undef		; <i1> [#uses=1]
-	ret i1 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2007-05-16-InvokeCrash.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2007-05-16-InvokeCrash.ll
deleted file mode 100644
index c099b88..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2007-05-16-InvokeCrash.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s  | opt -sccp -disable-output
-; PR 1431
-
-define void @_ada_bench() {
-entry:
-	br label %cond_next
-cond_next:		; preds = %cond_next, %entry
-	%indvar46 = phi i32 [ 0, %entry ], [ %indvar.next47, %cond_next ]		; <i32> [#uses=1]
-	%indvar.next47 = add i32 %indvar46, 1		; <i32> [#uses=2]
-	%exitcond48 = icmp eq i32 %indvar.next47, 10000		; <i1> [#uses=1]
-	br i1 %exitcond48, label %cond_next40, label %cond_next
-cond_next40:		; preds = %cond_next40, %cond_next
-	%indvar43 = phi i32 [ %indvar.next44, %cond_next40 ], [ 0, %cond_next ]		; <i32> [#uses=1]
-	%indvar.next44 = add i32 %indvar43, 1		; <i32> [#uses=2]
-	%exitcond45 = icmp eq i32 %indvar.next44, 10000		; <i1> [#uses=1]
-	br i1 %exitcond45, label %cond_next53, label %cond_next40
-cond_next53:		; preds = %cond_next53, %cond_next40
-	%indvar41 = phi i32 [ %indvar.next42, %cond_next53 ], [ 0, %cond_next40 ]		; <i32> [#uses=1]
-	%indvar.next42 = add i32 %indvar41, 1		; <i32> [#uses=2]
-	%exitcond = icmp eq i32 %indvar.next42, 10000		; <i1> [#uses=1]
-	br i1 %exitcond, label %bb67, label %cond_next53
-bb67:		; preds = %cond_next53
-	%tmp112 = invoke double @sin( double 5.000000e-01 )
-			to label %bb114 unwind label %cleanup		; <double> [#uses=0]
-bb114:		; preds = %bb67
-	%tmp147 = invoke double @log( double 5.000000e-01 )
-			to label %bb149 unwind label %cleanup		; <double> [#uses=0]
-bb149:		; preds = %bb114
-	%tmp175 = invoke double @sqrt( double 5.000000e-01 )
-			to label %bb177 unwind label %cleanup		; <double> [#uses=0]
-bb177:		; preds = %bb149
-	unreachable
-cleanup:		; preds = %bb149, %bb114, %bb67
-	unwind
-}
-
-declare double @sin(double)
-
-declare double @log(double)
-
-declare double @sqrt(double)
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll
deleted file mode 100644
index 18ab5e8..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep undef | count 1
-; PR1938
-
-define i32 @main() {
-entry:
-	br label %bb
-
-bb:
-	%indvar = phi i32 [ 0, %entry ], [ %k, %bb.backedge ]
-	%k = add i32 %indvar, 1
-	br i1 undef, label %cond_true, label %cond_false
-
-cond_true:
-	%tmp97 = icmp slt i32 %k, 10
-	br i1 %tmp97, label %bb.backedge, label %bb12
-
-bb.backedge:
-	br label %bb
-
-cond_false:
-	%tmp9 = icmp slt i32 %k, 10
-	br i1 %tmp9, label %bb.backedge, label %bb12
-
-bb12:
-	%tmp14 = icmp eq i32 %k, 10
-	br i1 %tmp14, label %cond_next18, label %cond_true17
-
-cond_true17:
-	tail call void @abort( )
-	unreachable
-
-cond_next18:
-	ret i32 0
-}
-
-declare void @abort()
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2008-03-10-sret.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2008-03-10-sret.ll
deleted file mode 100644
index 0f1c380..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2008-03-10-sret.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s  | opt -ipsccp | llvm-dis > %t
-; RUN: grep {ret i32 36} %t
-; RUN: grep {%mrv = insertvalue %T undef, i32 18, 0} %t
-; RUN: grep {%mrv1 = insertvalue %T %mrv, i32 17, 1} %t
-; RUN: grep {ret %T %mrv1} %t
-
-%T = type {i32,i32}
-
-define internal {i32, i32} @bar(i32 %A) {
-	%X = add i32 1, %A
-	ret i32 %X, i32 %A
-}
-
-define i32 @foo() {
-	%X = call {i32, i32} @bar(i32 17)
-        %Y = getresult {i32, i32} %X, 0
-	%Z = add i32 %Y, %Y
-	ret i32 %Z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll
deleted file mode 100644
index 99f9136..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s  | opt -sccp | llvm-dis | grep {ret i32 %Z}
-; rdar://5778210
-
-declare {i32, i32} @bar(i32 %A) 
-
-define i32 @foo() {
-	%X = call {i32, i32} @bar(i32 17)
-        %Y = getresult {i32, i32} %X, 0
-	%Z = add i32 %Y, %Y
-	ret i32 %Z
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll
deleted file mode 100644
index f85a362..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep {ret i32 undef}
-; PR2358
-target datalayout =
-"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-pc-linux-gnu"
-
-define i32 @x(i32 %b) {
-entry:
- %val = call i32 @llvm.cttz.i32(i32 undef)
- ret i32 %val
-}
-
-declare i32 @llvm.cttz.i32(i32)
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll
deleted file mode 100644
index 20f7c21..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | grep {ret i32 42}
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | grep {ret i32 undef}
-; PR3325
-
-define i32 @main() {
-	%tmp1 = invoke i32 @f()
-			to label %UnifiedReturnBlock unwind label %lpad
-
-lpad:
-	unreachable
-
-UnifiedReturnBlock:
-	ret i32 %tmp1
-}
-
-define internal i32 @f() {
-       ret i32 42
-}
-
-declare i8* @__cxa_begin_catch(i8*) nounwind
-
-declare i8* @llvm.eh.exception() nounwind
-
-declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind
-
-declare void @__cxa_end_catch()
-
-declare i32 @__gxx_personality_v0(...)
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/2009-05-27-VectorOperandZero.ll b/libclamav/c++/llvm/test/Transforms/SCCP/2009-05-27-VectorOperandZero.ll
deleted file mode 100644
index 480aca0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/2009-05-27-VectorOperandZero.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp -disable-output
-; PR4277
-
-define i32 @main() nounwind {
-entry:
-	%0 = tail call signext i8 (...)* @sin() nounwind
-	ret i32 0
-}
-
-declare signext i8 @sin(...)
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-array.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-array.ll
deleted file mode 100644
index ead3f6a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-array.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep {ret i101 12}
-
- at Y = constant [6 x i101] [ i101 12, i101 123456789000000, i101 -12,i101 
--123456789000000, i101 0,i101 9123456789000000]
-
-define i101 @array()
-{
-Head:
-   %A = getelementptr [6 x i101]* @Y, i32 0, i32 1
-
-   %B = load i101* %A
-   %C = icmp sge i101 %B, 1
-   br i1 %C, label %True, label %False
-True:
-   %D = and i101 %B, 1
-   %E = trunc i101 %D to i32
-   %F = getelementptr [6 x i101]* @Y, i32 0, i32 %E
-   %G = load i101* %F
-   br label %False
-False:
-   %H = phi i101 [%G, %True], [-1, %Head]
-   ret i101 %H
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest.ll
deleted file mode 100644
index 12f8326..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This is a basic sanity check for constant propogation.  The add instruction 
-; should be eliminated.
-
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep add
-
-define i128 @test(i1 %B) {
-	br i1 %B, label %BB1, label %BB2
-BB1:
-	%Val = add i128 0, 1
-	br label %BB3
-BB2:
-	br label %BB3
-BB3:
-	%Ret = phi i128 [%Val, %BB1], [2, %BB2]
-	ret i128 %Ret
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest2.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest2.ll
deleted file mode 100644
index 7db4e36..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest2.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This is a basic sanity check for constant propogation.  The add instruction 
-; and phi instruction should be eliminated.
-
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep phi
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep add
-
-define i128 @test(i1 %B) {
-	br i1 %B, label %BB1, label %BB2
-BB1:
-	%Val = add i128 0, 1
-	br label %BB3
-BB2:
-	br label %BB3
-BB3:
-	%Ret = phi i128 [%Val, %BB1], [1, %BB2]
-	ret i128 %Ret
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest3.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest3.ll
deleted file mode 100644
index 6e86764..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest3.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; This is a basic sanity check for constant propogation.  It tests the basic 
-; arithmatic operations.
-
-
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep mul
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep umod
-
-define i128 @test(i1 %B) {
-	br i1 %B, label %BB1, label %BB2
-BB1:
-	%t1 = add i128 0, 1
-        %t2 = sub i128 0, %t1
-        %t3 = mul i128 %t2, -1
-	br label %BB3
-BB2:
-        %f1 = udiv i128 -1, 1
-        %f2 = add i128 %f1, 1
-        %f3 = urem i128 %f2, 2121
-	br label %BB3
-BB3:
-	%Ret = phi i128 [%t3, %BB1], [%f3, %BB2]
-	ret i128 %Ret
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest4.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest4.ll
deleted file mode 100644
index a90bd7d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-basictest4.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; This is a basic sanity check for constant propogation.  It tests the basic 
-; logic operations.
-
-
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep and
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep trunc
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep {ret i100 -1}
-
-define i100 @test(i133 %A) {
-        %B = and i133 0, %A
-        %C = icmp sgt i133 %B, 0
-	br i1 %C, label %BB1, label %BB2
-BB1:
-        %t3 = xor i133 %B, -1
-        %t4 = trunc i133 %t3 to i100
-	br label %BB3
-BB2:
-        %f1 = or i133 -1, %A
-        %f2 = lshr i133 %f1, 33
-        %f3 = trunc i133 %f2 to i100
-	br label %BB3
-BB3:
-	%Ret = phi i100 [%t4, %BB1], [%f3, %BB2]
-	ret i100 %Ret
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigarray.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigarray.ll
deleted file mode 100644
index 5cd1107..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigarray.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep %X
-
- at G =  global [1000000 x i10000] zeroinitializer
-
-define internal i10000* @test(i10000 %Arg) {
-	%X = getelementptr [1000000 x i10000]* @G, i32 0, i32 999
-        store i10000 %Arg, i10000* %X
-	ret i10000* %X
-}
-
-define i10000 @caller()
-{
-        %Y = call i10000* @test(i10000 -1)
-        %Z = load i10000* %Y
-        ret i10000 %Z 
-}
-
-define i10000 @caller2()
-{
-        %Y = call i10000* @test(i10000 1)
-        %Z = load i10000* %Y
-        ret i10000 %Z 
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigint.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigint.ll
deleted file mode 100644
index ebb0d07..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigint.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN:  llvm-as < %s | opt -sccp | llvm-dis | not grep xor
-
-define i11129 @test1() {
-        %B = shl i11129 1, 11128 
-        %C = sub i11129 %B, 1
-        %D = xor i11129 %B, %C
-        
-	ret i11129 %D
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigint2.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigint2.ll
deleted file mode 100644
index e95e9d0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-bigint2.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN:  llvm-as < %s | opt -sccp | llvm-dis | not grep load
-
- at Y = constant [6 x i101] [ i101 12, i101 123456789000000, i101 -12,
-                           i101 -123456789000000, i101 0,i101 9123456789000000]
-
-define i101 @array()
-{
-Head:
-   %A = getelementptr [6 x i101]* @Y, i32 0, i32 1
-   %B = load i101* %A
-   %D = and i101 %B, 1
-   %DD = or i101 %D, 1
-   %E = trunc i101 %DD to i32
-   %F = getelementptr [6 x i101]* @Y, i32 0, i32 %E
-   %G = load i101* %F
- 
-   ret i101 %G
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp1.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp1.ll
deleted file mode 100644
index 59cfa3f..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp1.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | grep -v {ret i512 undef} | \
-; RUN:   grep {ret i8 2}
-
-define internal i512 @test(i1 %B) {
-	br i1 %B, label %BB1, label %BB2
-BB1:
-	%Val = add i512 0, 1
-	br label %BB3
-BB2:
-	br label %BB3
-BB3:
-	%Ret = phi i512 [%Val, %BB1], [2, %BB2]
-	ret i512 %Ret
-}
-
-define i8 @caller()
-{
-    %t1 = and i2 2, 1
-    %t11 = trunc i2 %t1 to i1
-    %t2 = call i512 @test(i1 %t11)
-    %t3 = trunc i512 %t2 to i8
-    ret i8 %t3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp2.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp2.ll
deleted file mode 100644
index 65e5ee7..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp2.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | grep -v {ret i101 0} | \
-; RUN:    grep -v {ret i101 undef} | not grep ret
-
-
-define internal i101 @bar(i101 %A) {
-	%x = icmp eq i101 %A, 0
-	br i1 %x, label %T, label %F
-T:
-	%B = call i101 @bar(i101 0)
-	ret i101 0
-F:      ; unreachable
-	%C = call i101 @bar(i101 1)
-	ret i101 %C
-}
-
-define i101 @foo() {
-	%X = call i101 @bar(i101 0)
-	ret i101 %X
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp3.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp3.ll
deleted file mode 100644
index c07a54f..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp3.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN:  llvm-as < %s | opt -ipsccp | llvm-dis | not grep global
-
- at G = internal global i66 undef
-
-
-
-define void @foo() {
-	%X = load i66* @G
-	store i66 %X, i66* @G
-	ret void
-}
-
-define i66 @bar() {
-	%V = load i66* @G
-	%C = icmp eq i66 %V, 17
-	br i1 %C, label %T, label %F
-T:
-	store i66 17, i66* @G
-	ret i66 %V
-F:
-	store i66 123, i66* @G
-	ret i66 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp4.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp4.ll
deleted file mode 100644
index a0656b7..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-ipsccp4.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; This test makes sure that these instructions are properly constant propagated.
-
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | not grep load
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | not grep add
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | not grep phi
-
-
- at Y = constant [2 x { i212, float }] [ { i212, float } { i212 12, float 1.0 }, 
-                                     { i212, float } { i212 37, float 2.0 } ]
-
-define internal float @test2() {
-	%A = getelementptr [2 x { i212, float}]* @Y, i32 0, i32 1, i32 1
-	%B = load float* %A
-	ret float %B
-}
-
-define internal float  @test3() {
-	%A = getelementptr [2 x { i212, float}]* @Y, i32 0, i32 0, i32 1
-	%B = load float* %A
-	ret float %B
-}
-
-define internal float @test()
-{
-   %A = call float @test2()
-   %B = call float @test3()
-
-   %E = fdiv float %B, %A
-   ret float %E
-}
-
-define float @All()
-{
-  %A = call float @test()
-  %B = fcmp oge float %A, 1.0
-  br i1 %B, label %T, label %F
-T:
-  %C = fadd float %A, 1.0
-  br label %exit
-F:
-  %D = fadd float %A, 2.0
-  br label %exit
-exit:
-  %E = phi float [%C, %T], [%D, %F]
-  ret float %E
-}
-
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-load.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-load.ll
deleted file mode 100644
index 9650971..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-load.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; This test makes sure that these instructions are properly constant propagated.
-
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | not grep load
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | not grep fdiv
-
- at X = constant i212 42
- at Y = constant [2 x { i212, float }] [ { i212, float } { i212 12, float 1.0 }, 
-                                     { i212, float } { i212 37, float 0x3FF3B2FEC0000000 } ]
-define i212 @test1() {
-	%B = load i212* @X
-	ret i212 %B
-}
-
-define internal float @test2() {
-	%A = getelementptr [2 x { i212, float}]* @Y, i32 0, i32 1, i32 1
-	%B = load float* %A
-	ret float %B
-}
-
-define internal i212 @test3() {
-	%A = getelementptr [2 x { i212, float}]* @Y, i32 0, i32 0, i32 0
-	%B = load i212* %A
-	ret i212 %B
-}
-
-define float @All()
-{
-   %A = call float @test2()
-   %B = call i212 @test3()
-   %C = mul i212 %B, -1234567
-   %D = sitofp i212 %C to float
-   %E = fdiv float %A, %D
-   ret float %E
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-phi.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-phi.ll
deleted file mode 100644
index 77f6bc8..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-phi.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep phi
-
-define i999 @test(i999%A, i1 %c) {
-bb1:
-	br label %BB2
-BB2:
-	%V = phi i999 [2, %bb1], [%A, %BB4]
-	br label %BB3
-
-BB3:
-        %E = trunc i999 %V to i1
-        %F = and i1 %E, %c
-	br i1 %F, label %BB4, label %BB5
-BB4:
-	br label %BB2
-
-BB5:
-	ret i999 %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/apint-select.ll b/libclamav/c++/llvm/test/Transforms/SCCP/apint-select.ll
deleted file mode 100644
index c856896..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/apint-select.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN:  llvm-as < %s | opt -sccp | llvm-dis | not grep select
-
- at A = constant i32 10
-
-define i712 @test1() {
-        %P = getelementptr i32* @A, i32 0
-        %B = ptrtoint i32* %P to i64
-        %BB = and i64 %B, undef
-        %C = icmp sge i64 %BB, 0
-	%X = select i1 %C, i712 0, i712 1
-	ret i712 %X
-}
-
-
-
-define i712 @test2(i1 %C) {
-	%X = select i1 %C, i712 0, i712 undef
-	ret i712 %X
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/basictest.ll b/libclamav/c++/llvm/test/Transforms/SCCP/basictest.ll
deleted file mode 100644
index 08640a9..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/basictest.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This is a basic sanity check for constant propogation.  The add instruction 
-; should be eliminated.
-
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep add
-
-define i32 @test(i1 %B) {
-	br i1 %B, label %BB1, label %BB2
-BB1:		; preds = %0
-	%Val = add i32 0, 0		; <i32> [#uses=1]
-	br label %BB3
-BB2:		; preds = %0
-	br label %BB3
-BB3:		; preds = %BB2, %BB1
-	%Ret = phi i32 [ %Val, %BB1 ], [ 1, %BB2 ]		; <i32> [#uses=1]
-	ret i32 %Ret
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/calltest.ll b/libclamav/c++/llvm/test/Transforms/SCCP/calltest.ll
deleted file mode 100644
index ee6eb8e..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/calltest.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp -loop-deletion -simplifycfg | llvm-dis | \
-; RUN:   not grep br
-
-; No matter how hard you try, sqrt(1.0) is always 1.0.  This allows the
-; optimizer to delete this loop.
-
-declare double @sqrt(double)
-
-define double @test(i32 %param) {
-entry:
-	br label %Loop
-Loop:		; preds = %Loop, %entry
-	%I2 = phi i32 [ 0, %entry ], [ %I3, %Loop ]		; <i32> [#uses=1]
-	%V = phi double [ 1.000000e+00, %entry ], [ %V2, %Loop ]		; <double> [#uses=2]
-	%V2 = call double @sqrt( double %V )		; <double> [#uses=1]
-	%I3 = add i32 %I2, 1		; <i32> [#uses=2]
-	%tmp.7 = icmp ne i32 %I3, %param		; <i1> [#uses=1]
-	br i1 %tmp.7, label %Loop, label %Exit
-Exit:		; preds = %Loop
-	ret double %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/dg.exp b/libclamav/c++/llvm/test/Transforms/SCCP/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/empty-struct.ll b/libclamav/c++/llvm/test/Transforms/SCCP/empty-struct.ll
deleted file mode 100644
index 4e3dc69..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/empty-struct.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s > %t.bc
-; RUN: llvm-ld %t.bc -o %t.sh
-; PR2612
-
- at current_foo = internal global {  } zeroinitializer
-
-define i32 @main(...) {
-entry:
-        %retval = alloca i32            ; <i32*> [#uses=2]
-        store i32 0, i32* %retval
-        %local_foo = alloca {  }                ; <{  }*> [#uses=1]
-        load {  }* @current_foo         ; <{  }>:0 [#uses=1]
-        store {  } %0, {  }* %local_foo
-        br label %return
-
-return:         ; preds = %entry
-        load i32* %retval               ; <i32>:1 [#uses=1]
-        ret i32 %1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-basic.ll b/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-basic.ll
deleted file mode 100644
index 1449ea7..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-basic.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | \
-; RUN:   grep -v {ret i32 17} | grep -v {ret i32 undef} | not grep ret
-
-define internal i32 @bar(i32 %A) {
-	%X = add i32 1, 2		; <i32> [#uses=0]
-	ret i32 %A
-}
-
-define i32 @foo() {
-	%X = call i32 @bar( i32 17 )		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-conditional.ll b/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-conditional.ll
deleted file mode 100644
index b98bbf4..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-conditional.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | \
-; RUN:   grep -v {ret i32 0} | grep -v {ret i32 undef} | not grep ret
-
-define internal i32 @bar(i32 %A) {
-	%C = icmp eq i32 %A, 0		; <i1> [#uses=1]
-	br i1 %C, label %T, label %F
-T:		; preds = %0
-	%B = call i32 @bar( i32 0 )		; <i32> [#uses=0]
-	ret i32 0
-F:		; preds = %0
-	%C.upgrd.1 = call i32 @bar( i32 1 )		; <i32> [#uses=1]
-	ret i32 %C.upgrd.1
-}
-
-define i32 @foo() {
-	%X = call i32 @bar( i32 0 )		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-gvar.ll b/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-gvar.ll
deleted file mode 100644
index 6f2ee1f..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-gvar.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | not grep global
-
- at G = internal global i32 undef		; <i32*> [#uses=5]
-
-define void @foo() {
-	%X = load i32* @G		; <i32> [#uses=1]
-	store i32 %X, i32* @G
-	ret void
-}
-
-define i32 @bar() {
-	%V = load i32* @G		; <i32> [#uses=2]
-	%C = icmp eq i32 %V, 17		; <i1> [#uses=1]
-	br i1 %C, label %T, label %F
-T:		; preds = %0
-	store i32 17, i32* @G
-	ret i32 %V
-F:		; preds = %0
-	store i32 123, i32* @G
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/loadtest.ll b/libclamav/c++/llvm/test/Transforms/SCCP/loadtest.ll
deleted file mode 100644
index 0cbbdf6..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/loadtest.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; This test makes sure that these instructions are properly constant propagated.
-;
-
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep load
-
-
- at X = constant i32 42		; <i32*> [#uses=1]
- at Y = constant [2 x { i32, float }] [ { i32, float } { i32 12, float 1.000000e+00 }, { i32, float } { i32 37, float 0x3FF3B2FEC0000000 } ]		; <[2 x { i32, float }]*> [#uses=2]
-
-define i32 @test1() {
-	%B = load i32* @X		; <i32> [#uses=1]
-	ret i32 %B
-}
-
-define float @test2() {
-	%A = getelementptr [2 x { i32, float }]* @Y, i64 0, i64 1, i32 1		; <float*> [#uses=1]
-	%B = load float* %A		; <float> [#uses=1]
-	ret float %B
-}
-
-define i32 @test3() {
-	%A = getelementptr [2 x { i32, float }]* @Y, i64 0, i64 0, i32 0		; <i32*> [#uses=1]
-	%B = load i32* %A		; <i32> [#uses=1]
-	ret i32 %B
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/logical-nuke.ll b/libclamav/c++/llvm/test/Transforms/SCCP/logical-nuke.ll
deleted file mode 100644
index 87454e4..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/logical-nuke.ll
+++ /dev/null
@@ -1,9 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep {ret i32 0}
-
-; Test that SCCP has basic knowledge of when and/or nuke overdefined values.
-
-define i32 @test(i32 %X) {
-	%Y = and i32 %X, 0		; <i32> [#uses=1]
-	ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/phitest.ll b/libclamav/c++/llvm/test/Transforms/SCCP/phitest.ll
deleted file mode 100644
index c75de5d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/phitest.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp -dce -simplifycfg | llvm-dis | \
-; RUN:   not grep br
-
-define i32 @test(i32 %param) {
-entry:
-	%tmp.1 = icmp ne i32 %param, 0		; <i1> [#uses=1]
-	br i1 %tmp.1, label %endif.0, label %else
-else:		; preds = %entry
-	br label %endif.0
-endif.0:		; preds = %else, %entry
-	%a.0 = phi i32 [ 2, %else ], [ 3, %entry ]		; <i32> [#uses=1]
-	%b.0 = phi i32 [ 3, %else ], [ 2, %entry ]		; <i32> [#uses=1]
-	%tmp.5 = add i32 %a.0, %b.0		; <i32> [#uses=1]
-	%tmp.7 = icmp ne i32 %tmp.5, 5		; <i1> [#uses=1]
-	br i1 %tmp.7, label %UnifiedReturnBlock, label %endif.1
-endif.1:		; preds = %endif.0
-	ret i32 0
-UnifiedReturnBlock:		; preds = %endif.0
-	ret i32 2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/sccptest.ll b/libclamav/c++/llvm/test/Transforms/SCCP/sccptest.ll
deleted file mode 100644
index 84ba2d4..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/sccptest.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; This is the test case taken from appel's book that illustrates a hard case
-; that SCCP gets right. BB3 should be completely eliminated.
-;
-; RUN: llvm-as < %s | opt -sccp -constprop -dce -simplifycfg | \
-; RUN:   llvm-dis | not grep BB3
-
-define i32 @testfunction(i32 %i0, i32 %j0) {
-BB1:
-	br label %BB2
-BB2:		; preds = %BB7, %BB1
-	%j2 = phi i32 [ %j4, %BB7 ], [ 1, %BB1 ]		; <i32> [#uses=2]
-	%k2 = phi i32 [ %k4, %BB7 ], [ 0, %BB1 ]		; <i32> [#uses=4]
-	%kcond = icmp slt i32 %k2, 100		; <i1> [#uses=1]
-	br i1 %kcond, label %BB3, label %BB4
-BB3:		; preds = %BB2
-	%jcond = icmp slt i32 %j2, 20		; <i1> [#uses=1]
-	br i1 %jcond, label %BB5, label %BB6
-BB4:		; preds = %BB2
-	ret i32 %j2
-BB5:		; preds = %BB3
-	%k3 = add i32 %k2, 1		; <i32> [#uses=1]
-	br label %BB7
-BB6:		; preds = %BB3
-	%k5 = add i32 %k2, 1		; <i32> [#uses=1]
-	br label %BB7
-BB7:		; preds = %BB6, %BB5
-	%j4 = phi i32 [ 1, %BB5 ], [ %k2, %BB6 ]		; <i32> [#uses=1]
-	%k4 = phi i32 [ %k3, %BB5 ], [ %k5, %BB6 ]		; <i32> [#uses=1]
-	br label %BB2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SCCP/select.ll b/libclamav/c++/llvm/test/Transforms/SCCP/select.ll
deleted file mode 100644
index 74b20d0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SCCP/select.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -sccp | llvm-dis | not grep select
-
-define i32 @test1(i1 %C) {
-	%X = select i1 %C, i32 0, i32 0		; <i32> [#uses=1]
-	ret i32 %X
-}
-
-define i32 @test2(i1 %C) {
-	%X = select i1 %C, i32 0, i32 undef		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-03-11-attributes.ll b/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-03-11-attributes.ll
deleted file mode 100644
index 81a1476..0000000
--- a/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-03-11-attributes.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-; RUN: llvm-as < %s | opt -sretpromotion -disable-output
-	%struct.ObjPoint = type { double, double, double, double, double, double }
-
-define void @RotatePoint(%struct.ObjPoint* sret  %agg.result, %struct.ObjPoint* byval  %a, double %rx, double %ry, double %rz) nounwind  {
-entry:
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-06-04-function-pointer-passing.ll b/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-06-04-function-pointer-passing.ll
deleted file mode 100644
index 21701dd..0000000
--- a/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-06-04-function-pointer-passing.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; This test lures sretpromotion into promoting the sret argument of foo, even
-; when the function is used as an argument to bar. It used to not check for
-; this, assuming that all users of foo were direct calls, resulting in an
-; assertion failure later on.
-
-; We're mainly testing for opt not to crash, but we'll check to see if the sret
-; attribute is still there for good measure.
-; RUN: llvm-as < %s | opt -sretpromotion | llvm-dis | grep sret
-
-%struct.S = type <{ i32, i32 }>
-
-define i32 @main() {
-entry:
-	%tmp = alloca %struct.S		; <%struct.S*> [#uses=1]
-	call void @bar( %struct.S* sret  %tmp, void (%struct.S*, ...)* @foo )
-	ret i32 undef
-}
-
-declare void @bar(%struct.S* sret , void (%struct.S*, ...)*)
-
-define internal void @foo(%struct.S* sret  %agg.result, ...) {
-entry:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-06-05-non-call-use.ll b/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-06-05-non-call-use.ll
deleted file mode 100644
index 10f92ef..0000000
--- a/libclamav/c++/llvm/test/Transforms/SRETPromotion/2008-06-05-non-call-use.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; This test shows an sret function that is used as an operand to a bitcast.
-; StructRetPromotion used to assume that a function was only used by call or
-; invoke instructions, making this code cause an assertion failure.
-
-; We're mainly testing for opt not to crash, but we'll check to see if the sret
-; attribute is still there for good measure.
-; RUN: llvm-as < %s | opt -sretpromotion | llvm-dis | grep sret
-
-%struct.S = type <{ i32, i32 }>
-
-define i32 @main() {
-entry:
-        %bar = bitcast void (%struct.S*)* @foo to i32 ()*
-	ret i32 undef
-}
-
-define internal void @foo(%struct.S* sret) {
-entry:
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SRETPromotion/basictest.ll b/libclamav/c++/llvm/test/Transforms/SRETPromotion/basictest.ll
deleted file mode 100644
index 4146cce..0000000
--- a/libclamav/c++/llvm/test/Transforms/SRETPromotion/basictest.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -sretpromotion | llvm-dis > %t
-; RUN: cat %t | grep sret | count 1
-
-; This function is promotable
-define internal void @promotable({i32, i32}* sret %s) {
-  %A = getelementptr {i32, i32}* %s, i32 0, i32 0
-  store i32 0, i32* %A
-  %B = getelementptr {i32, i32}* %s, i32 0, i32 0
-  store i32 1, i32* %B
-  ret void
-}
-
-; This function is not promotable (due to it's use below)
-define internal void @notpromotable({i32, i32}* sret %s) {
-  %A = getelementptr {i32, i32}* %s, i32 0, i32 0
-  store i32 0, i32* %A
-  %B = getelementptr {i32, i32}* %s, i32 0, i32 0
-  store i32 1, i32* %B
-  ret void
-}
-
-define void @caller({i32, i32}* %t) {
-  %s = alloca {i32, i32}
-  call void @promotable({i32, i32}* %s)
-  %A = getelementptr {i32, i32}* %s, i32 0, i32 0
-  %a = load i32* %A
-  %B = getelementptr {i32, i32}* %s, i32 0, i32 0
-  %b = load i32* %B
-  ; This passes in something that's not an alloca, which makes the argument not
-  ; promotable
-  call void @notpromotable({i32, i32}* %t)
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SRETPromotion/dg.exp b/libclamav/c++/llvm/test/Transforms/SRETPromotion/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/SRETPromotion/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/SSI/2009-07-09-Invoke.ll b/libclamav/c++/llvm/test/Transforms/SSI/2009-07-09-Invoke.ll
deleted file mode 100644
index 652dfe0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SSI/2009-07-09-Invoke.ll
+++ /dev/null
@@ -1,71 +0,0 @@
-; RUN: llvm-as < %s | opt -ssi-everything -disable-output
-; PR4511
-
-	%"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >" = type { %"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_impl" }
-	%"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_impl" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 }
-	%"struct.std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >" = type { %"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >" }
-
-declare void @_Unwind_Resume(i8*)
-
-declare fastcc %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* @_ZSt24__uninitialized_copy_auxIPSsS0_ET0_T_S2_S1_St12__false_type(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*)
-
-define fastcc void @_ZNSt6vectorISsSaISsEE9push_backERKSs(%"struct.std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >"* nocapture %this, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* nocapture %__x) {
-entry:
-	br i1 undef, label %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i, label %bb
-
-bb:		; preds = %entry
-	ret void
-
-_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i:		; preds = %entry
-	%0 = invoke fastcc %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* @_ZSt24__uninitialized_copy_auxIPSsS0_ET0_T_S2_S1_St12__false_type(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef)
-			to label %invcont14.i unwind label %ppad81.i		; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=3]
-
-invcont14.i:		; preds = %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i
-	%1 = icmp eq %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* %0, null		; <i1> [#uses=1]
-	br i1 %1, label %bb19.i, label %bb.i17.i
-
-bb.i17.i:		; preds = %invcont14.i
-	%2 = invoke fastcc i8* @_ZNSs4_Rep8_M_cloneERKSaIcEj(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep"* undef, i32 0)
-			to label %bb2.i25.i unwind label %ppad.i.i.i23.i		; <i8*> [#uses=0]
-
-ppad.i.i.i23.i:		; preds = %bb.i17.i
-	invoke void @_Unwind_Resume(i8* undef)
-			to label %.noexc.i24.i unwind label %lpad.i29.i
-
-.noexc.i24.i:		; preds = %ppad.i.i.i23.i
-	unreachable
-
-bb2.i25.i:		; preds = %bb.i17.i
-	unreachable
-
-lpad.i29.i:		; preds = %ppad.i.i.i23.i
-	invoke void @_Unwind_Resume(i8* undef)
-			to label %.noexc.i9 unwind label %ppad81.i
-
-.noexc.i9:		; preds = %lpad.i29.i
-	unreachable
-
-bb19.i:		; preds = %invcont14.i
-	%3 = getelementptr %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* %0, i32 1		; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=2]
-	%4 = invoke fastcc %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* @_ZSt24__uninitialized_copy_auxIPSsS0_ET0_T_S2_S1_St12__false_type(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* %3)
-			to label %invcont20.i unwind label %ppad81.i		; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=0]
-
-invcont20.i:		; preds = %bb19.i
-	unreachable
-
-invcont32.i:		; preds = %ppad81.i
-	unreachable
-
-ppad81.i:		; preds = %bb19.i, %lpad.i29.i, %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i
-	%__new_finish.0.i = phi %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* [ %0, %lpad.i29.i ], [ undef, %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i ], [ %3, %bb19.i ]		; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=0]
-	br i1 undef, label %invcont32.i, label %bb.i.i.i.i
-
-bb.i.i.i.i:		; preds = %bb.i.i.i.i, %ppad81.i
-	br label %bb.i.i.i.i
-}
-
-declare fastcc i8* @_ZNSs4_Rep8_M_cloneERKSaIcEj(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep"* nocapture, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/SSI/2009-08-15-UnreachableBB.ll b/libclamav/c++/llvm/test/Transforms/SSI/2009-08-15-UnreachableBB.ll
deleted file mode 100644
index 11a4f60..0000000
--- a/libclamav/c++/llvm/test/Transforms/SSI/2009-08-15-UnreachableBB.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -ssi-everything -disable-output
-
-declare fastcc i32 @ras_Empty(i8** nocapture) nounwind readonly
-
-define i32 @cc_Tautology() nounwind {
-entry:
-	unreachable
-
-cc_InitData.exit:		; No predecessors!
-	%0 = call fastcc i32 @ras_Empty(i8** undef) nounwind		; <i32> [#uses=1]
-	%1 = icmp eq i32 %0, 0		; <i1> [#uses=1]
-	br i1 %1, label %bb2, label %bb6
-
-bb2:		; preds = %cc_InitData.exit
-	unreachable
-
-bb6:		; preds = %cc_InitData.exit
-	ret i32 undef
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SSI/2009-08-17-CritEdge.ll b/libclamav/c++/llvm/test/Transforms/SSI/2009-08-17-CritEdge.ll
deleted file mode 100644
index 0c60b04..0000000
--- a/libclamav/c++/llvm/test/Transforms/SSI/2009-08-17-CritEdge.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -ssi-everything -disable-output
-
-define void @test(i32 %x) {
-entry:
-  br label %label1
-label1:
-  %A = phi i32 [ 0, %entry ], [ %A.1, %label2 ]
-  %B = icmp slt i32 %A, %x
-  br i1 %B, label %label2, label %label2
-label2:
-  %A.1 = add i32 %A, 1
-  br label %label1
-label3:  ; No predecessors!
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SSI/2009-08-19-UnreachableBB2.ll b/libclamav/c++/llvm/test/Transforms/SSI/2009-08-19-UnreachableBB2.ll
deleted file mode 100644
index 480c703..0000000
--- a/libclamav/c++/llvm/test/Transforms/SSI/2009-08-19-UnreachableBB2.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -ssi-everything -disable-output
-
-define void @foo() {
-entry:
-	%tmp0 = load i64* undef, align 4		; <i64> [#uses=3]
-	br i1 undef, label %end_stmt_playback, label %bb16
-
-readJournalHdr.exit:		; No predecessors!
-	br label %end_stmt_playback
-
-bb16:		; preds = %bb7
-	%tmp1 = icmp slt i64 0, %tmp0		; <i1> [#uses=1]
-	br i1 %tmp1, label %bb16, label %bb17
-
-bb17:		; preds = %bb16
-	store i64 %tmp0, i64* undef, align 4
-	br label %end_stmt_playback
-
-end_stmt_playback:		; preds = %bb17, %readJournalHdr.exit, %bb6, %bb2
-	store i64 %tmp0, i64* undef, align 4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SSI/dg.exp b/libclamav/c++/llvm/test/Transforms/SSI/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/SSI/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/SSI/ssiphi.ll b/libclamav/c++/llvm/test/Transforms/SSI/ssiphi.ll
deleted file mode 100644
index bdee6fe..0000000
--- a/libclamav/c++/llvm/test/Transforms/SSI/ssiphi.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -ssi-everything | llvm-dis | FileCheck %s
-
-declare void @use(i32)
-declare i32 @create()
-
-define i32 @foo() {
-entry:
-  %x = call i32 @create()
-  %y = icmp slt i32 %x, 10
-  br i1 %y, label %T, label %F
-T:
-; CHECK: SSI_sigma 
-  call void @use(i32 %x)
-  br label %join
-F:
-; CHECK: SSI_sigma
-  call void @use(i32 %x)
-  br label %join
-join:
-; CHECK: SSI_phi
-  ret i32 %x
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll
deleted file mode 100644
index 5a9f3a5..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -instcombine | llvm-dis | not grep alloca
-
-; Test that an array is not incorrectly deconstructed.
-
-define i32 @test() nounwind {
-	%X = alloca [4 x i32]		; <[4 x i32]*> [#uses=1]
-	%Y = getelementptr [4 x i32]* %X, i64 0, i64 0		; <i32*> [#uses=1]
-        ; Must preserve arrayness!
-	%Z = getelementptr i32* %Y, i64 1		; <i32*> [#uses=1]
-	%A = load i32* %Z		; <i32> [#uses=1]
-	ret i32 %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-30-InvalidIndices.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-30-InvalidIndices.ll
deleted file mode 100644
index 83a18c1..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-30-InvalidIndices.ll
+++ /dev/null
@@ -1,8 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl
-
-define void @main() {
-	%E = alloca { { i32, float, double, i64 }, { i32, float, double, i64 } }	; <{ { i32, float, double, i64 }, { i32, float, double, i64 } }*> [#uses=1]
-	%tmp.151 = getelementptr { { i32, float, double, i64 }, { i32, float, double, i64 } }* %E, i64 0, i32 1, i32 3		; <i64*> [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-30-MultiLevel.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-30-MultiLevel.ll
deleted file mode 100644
index 4220649..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-05-30-MultiLevel.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl
-
-define i32 @test() {
-	%X = alloca { [4 x i32] }		; <{ [4 x i32] }*> [#uses=1]
-	%Y = getelementptr { [4 x i32] }* %X, i64 0, i32 0, i64 2		; <i32*> [#uses=2]
-	store i32 4, i32* %Y
-	%Z = load i32* %Y		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll
deleted file mode 100644
index dbac15c..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; Scalar replacement was incorrectly promoting this alloca!!
-;
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   sed {s/;.*//g} | grep {\\\[}
-
-define i8* @test() {
-	%A = alloca [30 x i8]		; <[30 x i8]*> [#uses=1]
-	%B = getelementptr [30 x i8]* %A, i64 0, i64 0		; <i8*> [#uses=2]
-	%C = getelementptr i8* %B, i64 1		; <i8*> [#uses=1]
-	store i8 0, i8* %B
-	ret i8* %C
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll
deleted file mode 100644
index c5c059b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {alloca %T}
-
-%T = type { [80 x i8], i32, i32 }
-declare i32 @.callback_1(i8*)
-
-declare void @.iter_2(i32 (i8*)*, i8*)
-
-define i32 @main() {
-	%d = alloca { [80 x i8], i32, i32 }		; <{ [80 x i8], i32, i32 }*> [#uses=2]
-	%tmp.0 = getelementptr { [80 x i8], i32, i32 }* %d, i64 0, i32 2		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp.0
-	%tmp.1 = getelementptr { [80 x i8], i32, i32 }* %d, i64 0, i32 0, i64 0		; <i8*> [#uses=1]
-	call void @.iter_2( i32 (i8*)* @.callback_1, i8* %tmp.1 )
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll
deleted file mode 100644
index de6e297..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output
-
-target datalayout = "E-p:32:32"
-	%struct.rtx_def = type { [2 x i8], i32, [1 x %union.rtunion_def] }
-	%union.rtunion_def = type { i32 }
-
-define void @find_reloads() {
-entry:
-	%c_addr.i = alloca i8		; <i8*> [#uses=1]
-	switch i32 0, label %return [
-		 i32 36, label %label.7
-		 i32 34, label %label.7
-		 i32 41, label %label.5
-	]
-label.5:		; preds = %entry
-	ret void
-label.7:		; preds = %entry, %entry
-	br i1 false, label %then.4, label %switchexit.0
-then.4:		; preds = %label.7
-	%tmp.0.i = bitcast i8* %c_addr.i to i32*		; <i32*> [#uses=1]
-	store i32 44, i32* %tmp.0.i
-	ret void
-switchexit.0:		; preds = %label.7
-	ret void
-return:		; preds = %entry
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll
deleted file mode 100644
index bcb8457..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output
-
-target datalayout = "E-p:32:32"
-
-define i32 @test(i64 %L) {
-	%X = alloca i32		; <i32*> [#uses=2]
-	%Y = bitcast i32* %X to i64*		; <i64*> [#uses=1]
-	store i64 0, i64* %Y
-	%Z = load i32* %X		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll
deleted file mode 100644
index 18493f5..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output
-
-define void @output_toc() {
-entry:
-	%buf = alloca [256 x i8], align 16		; <[256 x i8]*> [#uses=1]
-	%name = alloca i8*, align 4		; <i8**> [#uses=1]
-	%real_name = alloca i8*, align 4		; <i8**> [#uses=0]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%buf.upgrd.1 = bitcast [256 x i8]* %buf to i8*		; <i8*> [#uses=1]
-	store i8* %buf.upgrd.1, i8** %name
-	call void @abort( )
-	unreachable
-return:		; No predecessors!
-	ret void
-}
-
-declare void @abort()
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll
deleted file mode 100644
index 0007665..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-10-23-PointerUnionCrash.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output
-; END.
-target datalayout = "e-p:32:32"
-target triple = "i686-apple-darwin8.7.2"
-
-define void @glgProcessColor() {
-entry:
-	%source_ptr = alloca i8*, align 4		; <i8**> [#uses=2]
-	br i1 false, label %bb1357, label %cond_next583
-cond_next583:		; preds = %entry
-	ret void
-bb1357:		; preds = %entry
-	br i1 false, label %bb1365, label %bb27055
-bb1365:		; preds = %bb1357
-	switch i32 0, label %cond_next10377 [
-		 i32 0, label %bb4679
-		 i32 1, label %bb4679
-		 i32 2, label %bb4679
-		 i32 3, label %bb4679
-		 i32 4, label %bb5115
-		 i32 5, label %bb6651
-		 i32 6, label %bb7147
-		 i32 7, label %bb8683
-		 i32 8, label %bb9131
-		 i32 9, label %bb9875
-		 i32 10, label %bb4679
-		 i32 11, label %bb4859
-		 i32 12, label %bb4679
-		 i32 16, label %bb10249
-	]
-bb4679:		; preds = %bb1365, %bb1365, %bb1365, %bb1365, %bb1365, %bb1365
-	ret void
-bb4859:		; preds = %bb1365
-	ret void
-bb5115:		; preds = %bb1365
-	ret void
-bb6651:		; preds = %bb1365
-	ret void
-bb7147:		; preds = %bb1365
-	ret void
-bb8683:		; preds = %bb1365
-	ret void
-bb9131:		; preds = %bb1365
-	ret void
-bb9875:		; preds = %bb1365
-	%source_ptr9884 = bitcast i8** %source_ptr to i8**		; <i8**> [#uses=1]
-	%tmp9885 = load i8** %source_ptr9884		; <i8*> [#uses=0]
-	ret void
-bb10249:		; preds = %bb1365
-	%source_ptr10257 = bitcast i8** %source_ptr to i16**		; <i16**> [#uses=1]
-	%tmp10258 = load i16** %source_ptr10257		; <i16*> [#uses=0]
-	ret void
-cond_next10377:		; preds = %bb1365
-	ret void
-bb27055:		; preds = %bb1357
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
deleted file mode 100644
index f0253b7..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-
-define i32 @func(<4 x float> %v0, <4 x float> %v1) nounwind {
-	%vsiidx = alloca [2 x <4 x i32>], align 16		; <[2 x <4 x i32>]*> [#uses=3]
-	%tmp = call <4 x i32> @llvm.x86.sse2.cvttps2dq( <4 x float> %v0 )		; <<4 x i32>> [#uses=2]
-	%tmp.upgrd.1 = bitcast <4 x i32> %tmp to <2 x i64>		; <<2 x i64>> [#uses=0]
-	%tmp.upgrd.2 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 0		; <<4 x i32>*> [#uses=1]
-	store <4 x i32> %tmp, <4 x i32>* %tmp.upgrd.2
-	%tmp10 = call <4 x i32> @llvm.x86.sse2.cvttps2dq( <4 x float> %v1 )		; <<4 x i32>> [#uses=2]
-	%tmp10.upgrd.3 = bitcast <4 x i32> %tmp10 to <2 x i64>		; <<2 x i64>> [#uses=0]
-	%tmp14 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 1		; <<4 x i32>*> [#uses=1]
-	store <4 x i32> %tmp10, <4 x i32>* %tmp14
-	%tmp15 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 0, i32 4		; <i32*> [#uses=1]
-	%tmp.upgrd.4 = load i32* %tmp15		; <i32> [#uses=1]
-	ret i32 %tmp.upgrd.4
-}
-
-declare <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float>)
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll
deleted file mode 100644
index ae870d3..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output
-; PR1045
-
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-	%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>" = type { %"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"* }
-	%"struct.__gnu_cxx::bitmap_allocator<char>" = type { i8 }
-	%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block" = type { [8 x i8] }
-
-define void @_ZN9__gnu_cxx16bitmap_allocatorIwE27_M_deallocate_single_objectEPw() {
-entry:
-	%this_addr.i = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*		; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"**> [#uses=3]
-	%tmp = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", align 4		; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
-	store %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i
-	%tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i		; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
-	%tmp.i.upgrd.1 = bitcast %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp.i to %"struct.__gnu_cxx::bitmap_allocator<char>"*		; <%"struct.__gnu_cxx::bitmap_allocator<char>"*> [#uses=0]
-	%tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i		; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1]
-	%tmp.i.upgrd.2 = getelementptr %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, i32 0, i32 0		; <%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0]
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-03-19-CanonicalizeMemcpy.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-03-19-CanonicalizeMemcpy.ll
deleted file mode 100644
index 769ec19..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-03-19-CanonicalizeMemcpy.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64"
-target triple = "arm-apple-darwin8"
-	%struct.CGPoint = type { float, float }
-	%struct.aal_big_range_t = type { i32, i32 }
-	%struct.aal_callback_t = type { i8* (i8*, i32)*, void (i8*, i8*)* }
-	%struct.aal_edge_pool_t = type { %struct.aal_edge_pool_t*, i32, i32, [0 x %struct.aal_edge_t] }
-	%struct.aal_edge_t = type { %struct.CGPoint, %struct.CGPoint, i32 }
-	%struct.aal_range_t = type { i16, i16 }
-	%struct.aal_span_pool_t = type { %struct.aal_span_pool_t*, [341 x %struct.aal_span_t] }
-	%struct.aal_span_t = type { %struct.aal_span_t*, %struct.aal_big_range_t }
-	%struct.aal_spanarray_t = type { [2 x %struct.aal_range_t] }
-	%struct.aal_spanbucket_t = type { i16, [2 x i8], %struct.anon }
-	%struct.aal_state_t = type { %struct.CGPoint, %struct.CGPoint, %struct.CGPoint, i32, float, float, float, float, %struct.CGPoint, %struct.CGPoint, float, float, float, float, i32, i32, i32, i32, float, float, i8*, i32, i32, %struct.aal_edge_pool_t*, %struct.aal_edge_pool_t*, i8*, %struct.aal_callback_t*, i32, %struct.aal_span_t*, %struct.aal_span_t*, %struct.aal_span_t*, %struct.aal_span_pool_t*, i8, float, i8, i32 }
-	%struct.anon = type { %struct.aal_spanarray_t }
-
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-define fastcc void @aal_insert_span() {
-entry:
-	%SB = alloca %struct.aal_spanbucket_t, align 4		; <%struct.aal_spanbucket_t*> [#uses=2]
-	br i1 false, label %cond_true, label %cond_next79
-
-cond_true:		; preds = %entry
-	br i1 false, label %cond_next, label %cond_next114.i
-
-cond_next114.i:		; preds = %cond_true
-	ret void
-
-cond_next:		; preds = %cond_true
-	%SB19 = bitcast %struct.aal_spanbucket_t* %SB to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %SB19, i8* null, i32 12, i32 0 )
-	br i1 false, label %cond_next34, label %cond_next79
-
-cond_next34:		; preds = %cond_next
-	%i.2.reload22 = load i32* null		; <i32> [#uses=1]
-	%tmp51 = getelementptr %struct.aal_spanbucket_t* %SB, i32 0, i32 2, i32 0, i32 0, i32 %i.2.reload22, i32 1		; <i16*> [#uses=0]
-	ret void
-
-cond_next79:		; preds = %cond_next, %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-05-24-LargeAggregate.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-05-24-LargeAggregate.ll
deleted file mode 100644
index 43b721b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-05-24-LargeAggregate.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {alloca.*client_t}
-; PR1446
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-pc-linux-gnu"
-
-	%struct.clientSnapshot_t = type { i32, [32 x i8], %struct.playerState_t, i32, i32, i32, i32, i32 }
-	%struct.client_t = type { i32, [1024 x i8], [64 x [1024 x i8]], i32, i32, i32, i32, i32, i32, %struct.usercmd_t, i32, i32, [1024 x i8], %struct.sharedEntity_t*, [32 x i8], [64 x i8], i32, i32, i32, i32, i32, i32, [8 x i8*], [8 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, [32 x %struct.clientSnapshot_t], i32, i32, i32, i32, i32, %struct.netchan_t, %struct.netchan_buffer_t*, %struct.netchan_buffer_t**, i32, [1025 x i32] }
-	%struct.entityShared_t = type { %struct.entityState_t, i32, i32, i32, i32, i32, [3 x float], [3 x float], i32, [3 x float], [3 x float], [3 x float], [3 x float], i32 }
-	%struct.entityState_t = type { i32, i32, i32, %struct.trajectory_t, %struct.trajectory_t, i32, i32, [3 x float], [3 x float], [3 x float], [3 x float], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.msg_t = type { i32, i32, i32, i8*, i32, i32, i32, i32 }
-	%struct.netadr_t = type { i32, [4 x i8], [10 x i8], i16 }
-	%struct.netchan_buffer_t = type { %struct.msg_t, [16384 x i8], %struct.netchan_buffer_t* }
-	%struct.netchan_t = type { i32, i32, %struct.netadr_t, i32, i32, i32, i32, i32, [16384 x i8], i32, i32, i32, [16384 x i8] }
-	%struct.playerState_t = type { i32, i32, i32, i32, i32, [3 x float], [3 x float], i32, i32, i32, [3 x i32], i32, i32, i32, i32, i32, i32, [3 x float], i32, i32, [2 x i32], [2 x i32], i32, i32, i32, i32, i32, i32, [3 x float], i32, i32, i32, i32, i32, [16 x i32], [16 x i32], [16 x i32], [16 x i32], i32, i32, i32, i32, i32, i32, i32 }
-	%struct.sharedEntity_t = type { %struct.entityState_t, %struct.entityShared_t }
-	%struct.trajectory_t = type { i32, i32, i32, [3 x float], [3 x float] }
-	%struct.usercmd_t = type { i32, [3 x i32], i32, i8, i8, i8, i8 }
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-define void @SV_DirectConnect(i64 %from.0.0, i64 %from.0.1, i32 %from.1) {
-entry:
-	%temp = alloca %struct.client_t, align 16		; <%struct.client_t*> [#uses=1]
-	%temp586 = bitcast %struct.client_t* %temp to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* null, i8* %temp586, i32 121596, i32 0 )
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll
deleted file mode 100644
index dc1198e..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep memcpy
-; PR1421
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-apple-darwin8"
-	%struct.LongestMember = type { i8, i32 }
-	%struct.MyString = type { i32 }
-	%struct.UnionType = type { %struct.LongestMember }
-
-define void @_Z4testP9UnionTypePS0_(%struct.UnionType* %p, %struct.UnionType** %pointerToUnion) {
-entry:
-	%tmp = alloca %struct.UnionType, align 8		; <%struct.UnionType*> [#uses=2]
-	%tmp2 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp13 = getelementptr %struct.UnionType* %p, i32 0, i32 0, i32 0		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp2, i8* %tmp13, i32 8, i32 0 )
-	%tmp5 = load %struct.UnionType** %pointerToUnion		; <%struct.UnionType*> [#uses=1]
-	%tmp56 = getelementptr %struct.UnionType* %tmp5, i32 0, i32 0, i32 0		; <i8*> [#uses=1]
-	%tmp7 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %tmp56, i8* %tmp7, i32 8, i32 0 )
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll
deleted file mode 100644
index d2d2b24..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep shr
-
-%struct.S = type { i16 }
-
-define i1 @f(i16 signext  %b) zeroext  {
-entry:
-	%b_addr = alloca i16		; <i16*> [#uses=2]
-	%retval = alloca i32		; <i32*> [#uses=2]
-	%s = alloca %struct.S		; <%struct.S*> [#uses=2]
-	%tmp = alloca i32		; <i32*> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i16 %b, i16* %b_addr
-	%tmp1 = getelementptr %struct.S* %s, i32 0, i32 0		; <i16*> [#uses=1]
-	%tmp2 = load i16* %b_addr, align 2		; <i16> [#uses=1]
-	store i16 %tmp2, i16* %tmp1, align 2
-	%tmp3 = getelementptr %struct.S* %s, i32 0, i32 0		; <i16*> [#uses=1]
-	%tmp34 = bitcast i16* %tmp3 to [2 x i1]*		; <[2 x i1]*> [#uses=1]
-	%tmp5 = getelementptr [2 x i1]* %tmp34, i32 0, i32 1		; <i1*> [#uses=1]
-	%tmp6 = load i1* %tmp5, align 1		; <i1> [#uses=1]
-	%tmp67 = zext i1 %tmp6 to i32		; <i32> [#uses=1]
-	store i32 %tmp67, i32* %tmp, align 4
-	%tmp8 = load i32* %tmp, align 4		; <i32> [#uses=1]
-	store i32 %tmp8, i32* %retval, align 4
-	br label %return
-
-return:		; preds = %entry
-	%retval9 = load i32* %retval		; <i32> [#uses=1]
-	%retval910 = trunc i32 %retval9 to i1		; <i1> [#uses=1]
-	ret i1 %retval910
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll
deleted file mode 100644
index 0675a96..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -instcombine | llvm-dis | grep {ret i8 17}
-; rdar://5707076
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.1.0"
-	%struct.T = type <{ i8, [3 x i8] }>
-
-define i8 @f() {
-entry:
-	%s = alloca [1 x %struct.T], align 4		; <[1 x %struct.T]*> [#uses=2]
-	%T3 = bitcast [1 x %struct.T]* %s to i32*
-	store i32 -61184, i32* %T3
-
-	%tmp16 = getelementptr [1 x %struct.T]* %s, i32 0, i32 0		; <%struct.T*> [#uses=1]
-	%tmp17 = getelementptr %struct.T* %tmp16, i32 0, i32 1		; <[3 x i8]*> [#uses=1]
-	%tmp1718 = bitcast [3 x i8]* %tmp17 to i32*		; <i32*> [#uses=1]
-	%tmp19 = load i32* %tmp1718, align 4		; <i32> [#uses=1]
-	%mask = and i32 %tmp19, 16777215		; <i32> [#uses=2]
-	%mask2324 = trunc i32 %mask to i8		; <i8> [#uses=1]
-	ret i8 %mask2324
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll
deleted file mode 100644
index 9ec5fa3..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
-	%struct..0anon = type { <1 x i64> }
-
-define i32 @main(i32 %argc, i8** %argv) {
-entry:
-	%c = alloca %struct..0anon		; <%struct..0anon*> [#uses=2]
-	%tmp2 = getelementptr %struct..0anon* %c, i32 0, i32 0		; <<1 x i64>*> [#uses=1]
-	store <1 x i64> zeroinitializer, <1 x i64>* %tmp2, align 8
-	%tmp7 = getelementptr %struct..0anon* %c, i32 0, i32 0		; <<1 x i64>*> [#uses=1]
-	%tmp78 = bitcast <1 x i64>* %tmp7 to [2 x i32]*		; <[2 x i32]*> [#uses=1]
-	%tmp9 = getelementptr [2 x i32]* %tmp78, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp10 = load i32* %tmp9, align 4		; <i32> [#uses=0]
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll
deleted file mode 100644
index 73d92be..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; This test shows an alloca of a struct and an array that can be reduced to
-; multiple variables easily. However, the alloca is used by a store
-; instruction, which was not possible before aggregrates were first class
-; values. This checks of scalarrepl splits up the struct and array properly.
-
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-
-define i32 @foo() {
-	%target = alloca { i32, i32 }		; <{ i32, i32 }*> [#uses=1]
-        ; Build a first class struct to store
-	%res1 = insertvalue { i32, i32 } undef, i32 1, 0		; <{ i32, i32 }> [#uses=1]
-	%res2 = insertvalue { i32, i32 } %res1, i32 2, 1		; <{ i32, i32 }> [#uses=1]
-        ; And store it
-	store { i32, i32 } %res2, { i32, i32 }* %target
-        ; Actually use %target, so it doesn't get removed alltogether
-        %ptr = getelementptr { i32, i32 }* %target, i32 0, i32 0
-        %val = load i32* %ptr
-	ret i32 %val
-}
-
-define i32 @bar() {
-	%target = alloca [ 2 x i32 ]		; <{ i32, i32 }*> [#uses=1]
-        ; Build a first class array to store
-	%res1 = insertvalue [ 2 x i32 ] undef, i32 1, 0		; <{ i32, i32 }> [#uses=1]
-	%res2 = insertvalue [ 2 x i32 ] %res1, i32 2, 1		; <{ i32, i32 }> [#uses=1]
-        ; And store it
-	store [ 2 x i32 ] %res2, [ 2 x i32 ]* %target
-        ; Actually use %target, so it doesn't get removed alltogether
-        %ptr = getelementptr [ 2 x i32 ]* %target, i32 0, i32 0
-        %val = load i32* %ptr
-	ret i32 %val
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll
deleted file mode 100644
index 8fbbb67..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {call.*mem} 
-; PR2369
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
-
-define void @memtest1(i8* %dst, i8* %src) nounwind  {
-entry:
-	%temp = alloca [200 x i8]		; <[100 x i8]*> [#uses=2]
-	%temp1 = bitcast [200 x i8]* %temp to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %temp1, i8* %src, i32 200, i32 1 )
-	%temp3 = bitcast [200 x i8]* %temp to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %dst, i8* %temp3, i32 200, i32 1 )
-	ret void
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll
deleted file mode 100644
index a2386fd..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {s = alloca .struct.x}
-; PR2423
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
-	%struct.x = type { [1 x i32], i32, i32 }
-
-define i32 @b() nounwind {
-entry:
-	%s = alloca %struct.x		; <%struct.x*> [#uses=2]
-	%r = alloca %struct.x		; <%struct.x*> [#uses=2]
-	call i32 @a( %struct.x* %s ) nounwind		; <i32>:0 [#uses=0]
-	%r1 = bitcast %struct.x* %r to i8*		; <i8*> [#uses=1]
-	%s2 = bitcast %struct.x* %s to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %r1, i8* %s2, i32 12, i32 8 )
-	getelementptr %struct.x* %r, i32 0, i32 0, i32 1		; <i32*>:1 [#uses=1]
-	load i32* %1, align 4		; <i32>:2 [#uses=1]
-	ret i32 %2
-}
-
-declare i32 @a(%struct.x*)
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll
deleted file mode 100644
index 6640383..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; This test checks to see if scalarrepl also works when a gep with all zeroes is
-; used instead of a bitcast to prepare a memmove pointer argument. Previously,
-; this would not work when there was a vector involved in the struct, preventing
-; scalarrepl from removing the alloca below.
-
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis > %t
-; RUN: cat %t | not grep alloca
-
-%struct.two = type <{ < 2 x i8 >, i16 }>
-
-define void @main(%struct.two* %D, i16 %V) {
-entry:
-	%S = alloca %struct.two
-        %S.2 = getelementptr %struct.two* %S, i32 0, i32 1
-        store i16 %V, i16* %S.2
-        ; This gep is effectively a bitcast to i8*, but is sometimes generated
-        ; because the type of the first element in %struct.two is i8.
-	%tmpS = getelementptr %struct.two* %S, i32 0, i32 0, i32 0 
-	%tmpD = bitcast %struct.two* %D to i8*
-        call void @llvm.memmove.i32(i8* %tmpD, i8* %tmpS, i32 4, i32 1)
-        ret void
-}
-
-declare void @llvm.memmove.i32(i8*, i8*, i32, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-01-09-scalarrepl-empty.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-01-09-scalarrepl-empty.ll
deleted file mode 100644
index 9cdf4a0..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-01-09-scalarrepl-empty.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis
-; PR3304
-
-       %struct.c37304a__vrec = type { i8, %struct.c37304a__vrec___disc___XVN }
-        %struct.c37304a__vrec___disc___XVN = type {
-%struct.c37304a__vrec___disc___XVN___O }
-        %struct.c37304a__vrec___disc___XVN___O = type {  }
-
-define void @_ada_c37304a() {
-entry:
-        %v = alloca %struct.c37304a__vrec               ;
-        %0 = getelementptr %struct.c37304a__vrec* %v, i32 0, i32 0             
-        store i8 8, i8* %0, align 1
-        unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll
deleted file mode 100644
index af34baa..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -instcombine | llvm-dis | grep {ret i32 %x}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-
-%pair = type { [1 x i32], i32 }
-
-define i32 @f(i32 %x, i32 %y) {
-       %instance = alloca %pair
-       %first = getelementptr %pair* %instance, i32 0, i32 0
-       %cast = bitcast [1 x i32]* %first to i32*
-       store i32 %x, i32* %cast
-       %second = getelementptr %pair* %instance, i32 0, i32 1
-       store i32 %y, i32* %second
-       %v = load i32* %cast
-       ret i32 %v
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll
deleted file mode 100644
index 3bea573..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -instcombine -inline -instcombine | llvm-dis | grep {ret i32 42}
-; PR3489
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "x86_64-apple-darwin10.0"
-	%struct.anon = type <{ i32, i32, i32 }>
-
-define i32 @f({ i64, i64 }) nounwind {
-entry:
-	%tmp = alloca { i64, i64 }, align 8		; <{ i64, i64 }*> [#uses=2]
-	store { i64, i64 } %0, { i64, i64 }* %tmp
-	%1 = bitcast { i64, i64 }* %tmp to %struct.anon*		; <%struct.anon*> [#uses=1]
-	%2 = load %struct.anon* %1, align 8		; <%struct.anon> [#uses=1]
-        %tmp3 = extractvalue %struct.anon %2, 0
-	ret i32 %tmp3
-}
-
-define i32 @g() {
-  %a = call i32 @f({i64,i64} { i64 42, i64 1123123123123123 })
-  ret i32 %a
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll
deleted file mode 100644
index 4fc491b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; The store into %p should end up with a known alignment of 1, since the memcpy
-; is only known to access it with 1-byte alignment.
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {store i16 1, .*, align 1}
-; PR3720
-
-        %struct.st = type { i16 }
-
-define void @f(i8* %p) nounwind {
-entry:
-        %s = alloca %struct.st, align 4  ; <%struct.st*> [#uses=2]
-        %0 = getelementptr %struct.st* %s, i32 0, i32 0  ; <i16*> [#uses=1]
-        store i16 1, i16* %0, align 4
-        %s1 = bitcast %struct.st* %s to i8*  ; <i8*> [#uses=1]
-        call void @llvm.memcpy.i32(i8* %p, i8* %s1, i32 2, i32 1)
-        ret void
-}
-
-declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-05-Aggre2Scalar-dbg.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-05-Aggre2Scalar-dbg.ll
deleted file mode 100644
index 437e732..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-05-Aggre2Scalar-dbg.ll
+++ /dev/null
@@ -1,184 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-output -stats |& grep "Number of aggregates converted to scalar"
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
-	type { }		; type %0
-	type { i8*, i32, i32, i16, i16, %2, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %2, %3*, i32, [3 x i8], [1 x i8], %2, i32, i64 }		; type %1
-	type { i8*, i32 }		; type %2
-	type opaque		; type %3
-	type { i32 }		; type %4
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0* }
-	%llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
-	%llvm.dbg.subrange.type = type { i32, i64, i64 }
-	%llvm.dbg.variable.type = type { i32, %0*, i8*, %0*, i32, %0* }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
-internal constant [8 x i8] c"PR491.c\00", section "llvm.metadata"		; <[8 x i8]*>:0 [#uses=1]
-internal constant [77 x i8] c"/Volumes/Nanpura/mainline/llvm/projects/llvm-test/SingleSource/Regression/C/\00", section "llvm.metadata"		; <[77 x i8]*>:1 [#uses=1]
-internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5641) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*>:2 [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 1, i8* getelementptr ([8 x i8]* @0, i32 0, i32 0), i8* getelementptr ([77 x i8]* @1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*>:3 [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @3, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
-internal constant [5 x i8] c"char\00", section "llvm.metadata"		; <[5 x i8]*>:4 [#uses=1]
- at llvm.dbg.basictype5 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @4, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, i32 6 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype5 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype6 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
-internal constant [13 x i8] c"unsigned int\00", section "llvm.metadata"		; <[13 x i8]*>:5 [#uses=1]
- at llvm.dbg.basictype8 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @5, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 7 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype6 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype8 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
-internal constant [12 x i8] c"assert_fail\00", section "llvm.metadata"		; <[12 x i8]*>:6 [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @6, i32 0, i32 0), i8* getelementptr ([12 x i8]* @6, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 4, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to %0*), i1 true, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=0]
-internal constant [2 x i8] c"l\00", section "llvm.metadata"		; <[2 x i8]*>:7 [#uses=1]
- at __stderrp = external global %1*		; <%1**> [#uses=4]
-internal constant [35 x i8] c"assertion failed in line %u: '%s'\0A\00", section "__TEXT,__cstring,cstring_literals"		; <[35 x i8]*>:8 [#uses=1]
- at llvm.dbg.array13 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite14 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array13 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [5 x i8] c"test\00", section "llvm.metadata"		; <[5 x i8]*>:9 [#uses=1]
- at llvm.dbg.subprogram16 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @9, i32 0, i32 0), i8* getelementptr ([5 x i8]* @9, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 10, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite14 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-internal constant [9 x i8] c"long int\00", section "llvm.metadata"		; <[9 x i8]*>:10 [#uses=1]
- at llvm.dbg.basictype21 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @10, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.derivedtype22 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to %0*), i8* getelementptr ([2 x i8]* @7, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 20, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype21 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.subrange = internal constant %llvm.dbg.subrange.type { i32 458785, i64 0, i64 3 }, section "llvm.metadata"		; <%llvm.dbg.subrange.type*> [#uses=1]
- at llvm.dbg.array23 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
-internal constant [14 x i8] c"unsigned char\00", section "llvm.metadata"		; <[14 x i8]*>:11 [#uses=1]
- at llvm.dbg.basictype25 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @11, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, i32 8 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.composite26 = internal constant %llvm.dbg.composite.type { i32 458753, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype25 to %0*), %0* bitcast ([1 x %0*]* @llvm.dbg.array23 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [2 x i8] c"c\00", section "llvm.metadata"		; <[2 x i8]*>:12 [#uses=1]
- at llvm.dbg.derivedtype28 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to %0*), i8* getelementptr ([2 x i8]* @12, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 20, i64 32, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite26 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array29 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype22 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype28 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite30 = internal constant %llvm.dbg.composite.type { i32 458775, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 20, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array29 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [2 x i8] c"u\00", section "llvm.metadata"		; <[2 x i8]*>:13 [#uses=1]
- at llvm.dbg.variable32 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to %0*), i8* getelementptr ([2 x i8]* @13, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 20, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite30 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
-internal constant [11 x i8] c"u.l == 128\00", section "__TEXT,__cstring,cstring_literals"		; <[11 x i8]*>:14 [#uses=1]
-internal constant [8 x i8] c"u.l < 0\00", section "__TEXT,__cstring,cstring_literals"		; <[8 x i8]*>:15 [#uses=1]
- at llvm.dbg.array35 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite36 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array35 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
-internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*>:16 [#uses=1]
- at llvm.dbg.subprogram38 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @16, i32 0, i32 0), i8* getelementptr ([5 x i8]* @16, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 28, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite36 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
-
-declare void @llvm.dbg.func.start(%0*) nounwind readnone
-
-declare void @llvm.dbg.declare(%0*, %0*) nounwind readnone
-
-declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind readnone
-
-declare i32 @fprintf(%1* nocapture, i8* nocapture, ...) nounwind
-
-declare void @llvm.dbg.region.end(%0*) nounwind readnone
-
-define i32 @test(i32) nounwind {
-; <label>:1
-	%2 = alloca %4, align 8		; <%4*> [#uses=7]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to %0*))
-	%3 = bitcast %4* %2 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %3, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable32 to %0*))
-	call void @llvm.dbg.stoppoint(i32 21, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%4 = getelementptr %4* %2, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %4, align 8
-	%5 = bitcast %4* %2 to i8*		; <i8*> [#uses=1]
-	store i8 -128, i8* %5, align 8
-	call void @llvm.dbg.stoppoint(i32 22, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%6 = getelementptr %4* %2, i32 0, i32 0		; <i32*> [#uses=1]
-	%7 = load i32* %6, align 8		; <i32> [#uses=1]
-	%8 = icmp eq i32 %7, 128		; <i1> [#uses=1]
-	br i1 %8, label %12, label %9
-
-; <label>:9		; preds = %1
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%10 = load %1** @__stderrp, align 4		; <%1*> [#uses=1]
-	%11 = call i32 (%1*, i8*, ...)* @fprintf(%1* %10, i8* getelementptr ([35 x i8]* @8, i32 0, i32 0), i32 22, i8* getelementptr ([11 x i8]* @14, i32 0, i32 0)) nounwind		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	br label %12
-
-; <label>:12		; preds = %9, %1
-	%.0 = phi i32 [ 0, %9 ], [ 1, %1 ]		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 22, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%13 = and i32 %.0, %0		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 23, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%14 = getelementptr %4* %2, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %14, align 8
-	%15 = bitcast %4* %2 to [4 x i8]*		; <[4 x i8]*> [#uses=1]
-	%16 = getelementptr [4 x i8]* %15, i32 0, i32 3		; <i8*> [#uses=1]
-	store i8 -128, i8* %16, align 1
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%17 = getelementptr %4* %2, i32 0, i32 0		; <i32*> [#uses=1]
-	%18 = load i32* %17, align 8		; <i32> [#uses=1]
-	%19 = icmp slt i32 %18, 0		; <i1> [#uses=1]
-	br i1 %19, label %23, label %20
-
-; <label>:20		; preds = %12
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%21 = load %1** @__stderrp, align 4		; <%1*> [#uses=1]
-	%22 = call i32 (%1*, i8*, ...)* @fprintf(%1* %21, i8* getelementptr ([35 x i8]* @8, i32 0, i32 0), i32 24, i8* getelementptr ([8 x i8]* @15, i32 0, i32 0)) nounwind		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	br label %23
-
-; <label>:23		; preds = %20, %12
-	%.01 = phi i32 [ 0, %20 ], [ 1, %12 ]		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%24 = and i32 %.01, %13		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 25, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to %0*))
-	ret i32 %24
-}
-
-define i32 @main() nounwind {
-; <label>:0
-	%1 = alloca %4, align 8		; <%4*> [#uses=7]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram38 to %0*))
-	call void @llvm.dbg.stoppoint(i32 29, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%2 = bitcast %4* %1 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %2, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable32 to %0*)) nounwind
-	call void @llvm.dbg.stoppoint(i32 21, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%3 = getelementptr %4* %1, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %3, align 8
-	%4 = bitcast %4* %1 to i8*		; <i8*> [#uses=1]
-	store i8 -128, i8* %4, align 8
-	call void @llvm.dbg.stoppoint(i32 22, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%5 = getelementptr %4* %1, i32 0, i32 0		; <i32*> [#uses=1]
-	%6 = load i32* %5, align 8		; <i32> [#uses=1]
-	%7 = icmp eq i32 %6, 128		; <i1> [#uses=1]
-	br i1 %7, label %11, label %8
-
-; <label>:8		; preds = %0
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%9 = load %1** @__stderrp, align 4		; <%1*> [#uses=1]
-	%10 = call i32 (%1*, i8*, ...)* @fprintf(%1* %9, i8* getelementptr ([35 x i8]* @8, i32 0, i32 0), i32 22, i8* getelementptr ([11 x i8]* @14, i32 0, i32 0)) nounwind		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	br label %11
-
-; <label>:11		; preds = %8, %0
-	%.0.i = phi i32 [ 0, %8 ], [ 1, %0 ]		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 23, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%12 = getelementptr %4* %1, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 0, i32* %12, align 8
-	%13 = bitcast %4* %1 to [4 x i8]*		; <[4 x i8]*> [#uses=1]
-	%14 = getelementptr [4 x i8]* %13, i32 0, i32 3		; <i8*> [#uses=1]
-	store i8 -128, i8* %14, align 1
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%15 = getelementptr %4* %1, i32 0, i32 0		; <i32*> [#uses=1]
-	%16 = load i32* %15, align 8		; <i32> [#uses=1]
-	%17 = icmp slt i32 %16, 0		; <i1> [#uses=1]
-	br i1 %17, label %test.exit, label %18
-
-; <label>:18		; preds = %11
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%19 = load %1** @__stderrp, align 4		; <%1*> [#uses=1]
-	%20 = call i32 (%1*, i8*, ...)* @fprintf(%1* %19, i8* getelementptr ([35 x i8]* @8, i32 0, i32 0), i32 24, i8* getelementptr ([8 x i8]* @15, i32 0, i32 0)) nounwind		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	br label %test.exit
-
-test.exit:		; preds = %18, %11
-	%.01.i = phi i32 [ 0, %18 ], [ 1, %11 ]		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 24, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%21 = and i32 %.01.i, %.0.i		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 25, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*)) nounwind
-	%tmp = xor i32 %21, 1		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 29, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram38 to %0*))
-	ret i32 %tmp
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-17-CleanUp.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-17-CleanUp.ll
deleted file mode 100644
index facb7c1..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-03-17-CleanUp.ll
+++ /dev/null
@@ -1,3961 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep store | not grep undef
-
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	type { }		; type %0
-	type { double, double }		; type %1
-	type { i32, void ()* }		; type %2
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
-	%llvm.dbg.derivedtype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0* }
-	%llvm.dbg.global_variable.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1, %0* }
-	%llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
-	%llvm.dbg.subrange.type = type { i32, i64, i64 }
-	%llvm.dbg.variable.type = type { i32, %0*, i8*, %0*, i32, %0* }
-	%struct..0._50 = type { i32 }
-	%struct..1__pthread_mutex_s = type { i32, i32, i32, i32, i32, %struct..0._50 }
-	%struct.__class_type_info_pseudo = type { %struct.__type_info_pseudo }
-	%struct.__locale_struct = type { [13 x %struct.locale_data*], i16*, i32*, i32*, [13 x i8*] }
-	%struct.__pthread_slist_t = type { %struct.__pthread_slist_t* }
-	%struct.__si_class_type_info_pseudo = type { %struct.__type_info_pseudo, %"struct.std::type_info"* }
-	%struct.__type_info_pseudo = type { i8*, i8* }
-	%struct.locale_data = type opaque
-	%"struct.polynomial<double>" = type { i32 (...)**, double*, i32 }
-	%"struct.polynomial<std::complex<double> >" = type { i32 (...)**, %"struct.std::complex<double>"*, i32 }
-	%struct.pthread_attr_t = type { i32, [32 x i8] }
-	%struct.pthread_mutex_t = type { %struct..1__pthread_mutex_s }
-	%struct.pthread_mutexattr_t = type { i32 }
-	%"struct.std::allocator<char>" = type <{ i8 }>
-	%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i8, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"* }
-	%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
-	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
-	%"struct.std::complex<double>" = type { %1 }
-	%"struct.std::ctype<char>" = type { %"struct.std::locale::facet", %struct.__locale_struct*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
-	%"struct.std::exception" = type { i32 (...)** }
-	%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" }
-	%"struct.std::ios_base::Init" = type <{ i8 }>
-	%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
-	%"struct.std::ios_base::_Words" = type { i8*, i32 }
-	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
-	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
-	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
-	%"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
-	%"struct.std::num_put<char,std::ostreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
-	%"struct.std::overflow_error" = type { %"struct.std::runtime_error" }
-	%"struct.std::runtime_error" = type { %"struct.std::exception", %"struct.std::string" }
-	%"struct.std::string" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
-	%"struct.std::type_info" = type { i32 (...)**, i8* }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [13 x i8] c"fftbench.cpp\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str1 = internal constant [42 x i8] c"/developer/home2/zsth/test/debug/tmp3/X3/\00", section "llvm.metadata"		; <[42 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5641) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([42 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [8 x i8] c"complex\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str4 = internal constant [110 x i8] c"/developer/home2/zsth/projects/llvm.org/install/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../include/c++/4.2.1\00", section "llvm.metadata"		; <[110 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit5 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([110 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str6 = internal constant [16 x i8] c"complex<double>\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str7 = internal constant [15 x i8] c"complex double\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str7, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 128, i64 64, i64 0, i32 0, i32 3 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str8 = internal constant [9 x i8] c"_M_value\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str8, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1195, i64 128, i64 64, i64 0, i32 1, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype9 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite10 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1161, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite10 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str11 = internal constant [7 x i8] c"double\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.basictype12 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str11, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 64, i64 0, i32 0, i32 4 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array13 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite14 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array13 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram15 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1215, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite14 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str16 = internal constant [15 x i8] c"complex<float>\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at .str18 = internal constant [14 x i8] c"complex float\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.basictype19 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str18, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 32, i64 0, i32 0, i32 3 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.derivedtype20 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str8, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1042, i64 64, i64 32, i64 0, i32 1, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype19 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype21 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite171 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array22 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype21 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype19 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite23 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array22 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram24 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1007, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite23 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str25 = internal constant [6 x i8] c"float\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.basictype26 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str25, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 4 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array27 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype21 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype26 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype26 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite28 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array27 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram29 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1062, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite28 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype30 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 128, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype31 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype30 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array32 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype21 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite33 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array32 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram34 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1464, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite33 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str35 = internal constant [21 x i8] c"complex<long double>\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at .str37 = internal constant [20 x i8] c"complex long double\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.basictype38 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([20 x i8]* @.str37, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 192, i64 32, i64 0, i32 0, i32 3 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.derivedtype39 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str8, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1348, i64 192, i64 32, i64 0, i32 1, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype38 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype40 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite122 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array41 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype40 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype38 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite42 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array41 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram43 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1314, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite42 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str44 = internal constant [12 x i8] c"long double\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.basictype45 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str44, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 96, i64 32, i64 0, i32 0, i32 4 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array46 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype40 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype45 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype45 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite47 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array46 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram48 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1352, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite47 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype49 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite171 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype50 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype49 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array51 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype40 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype50 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite52 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array51 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram53 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1480, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite52 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array54 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype40 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite55 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array54 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram56 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1484, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite55 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype57 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype45 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array58 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype57 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype40 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite59 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array58 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str60 = internal constant [5 x i8] c"real\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str61 = internal constant [24 x i8] c"_ZNSt7complexIeE4realEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram62 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str61, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1359, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite59 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str63 = internal constant [9 x i8] c"stddef.h\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str64 = internal constant [88 x i8] c"/developer/home2/zsth/projects/llvm.org/install/lib/gcc/i686-pc-linux-gnu/4.2.1/include\00", section "llvm.metadata"		; <[88 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit65 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @.str63, i32 0, i32 0), i8* getelementptr ([88 x i8]* @.str64, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str66 = internal constant [8 x i8] c"float_t\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype67 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str66, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit65 to %0*), i32 214, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype45 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str68 = internal constant [10 x i8] c"mathdef.h\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str69 = internal constant [18 x i8] c"/usr/include/bits\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit70 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([10 x i8]* @.str68, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str69, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str71 = internal constant [9 x i8] c"double_t\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype72 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str71, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit70 to %0*), i32 36, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype67 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype73 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 96, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype72 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype74 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype73 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype75 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 192, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite122 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype76 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype75 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array77 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype74 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype76 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite78 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array77 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str79 = internal constant [25 x i8] c"_ZNKSt7complexIeE4realEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram80 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str79, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1363, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite78 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str81 = internal constant [5 x i8] c"imag\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str82 = internal constant [24 x i8] c"_ZNSt7complexIeE4imagEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram83 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str82, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1367, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite59 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str84 = internal constant [25 x i8] c"_ZNKSt7complexIeE4imagEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram85 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str84, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1371, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite78 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype86 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite122 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array87 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype86 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype40 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype45 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite88 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array87 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str89 = internal constant [10 x i8] c"operator=\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str90 = internal constant [21 x i8] c"_ZNSt7complexIeEaSEe\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram91 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str90, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1375, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite88 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str92 = internal constant [11 x i8] c"operator+=\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str93 = internal constant [21 x i8] c"_ZNSt7complexIeEpLEe\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram94 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str93, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1383, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite88 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str95 = internal constant [11 x i8] c"operator-=\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str96 = internal constant [21 x i8] c"_ZNSt7complexIeEmIEe\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram97 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str96, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1390, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite88 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str98 = internal constant [11 x i8] c"operator*=\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str99 = internal constant [21 x i8] c"_ZNSt7complexIeEmLEe\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram100 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str99, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1397, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite88 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str101 = internal constant [11 x i8] c"operator/=\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str102 = internal constant [21 x i8] c"_ZNSt7complexIeEdVEe\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram103 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str102, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1404, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite88 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite104 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 55, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype105 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite104 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype106 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype105 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array107 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype86 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype40 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype106 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite108 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array107 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram109 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1335, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite108 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram110 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1337, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite108 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram111 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1339, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite108 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram112 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1341, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite108 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram113 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1343, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite108 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype114 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 192, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype38 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype115 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype114 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array116 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype115 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype76 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite117 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array116 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str118 = internal constant [6 x i8] c"__rep\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str119 = internal constant [26 x i8] c"_ZNKSt7complexIeE5__repEv\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram120 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str119, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1345, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite117 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array121 = internal constant [20 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype39 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram43 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram48 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram53 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram56 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram62 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram80 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram83 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram85 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram91 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram94 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram97 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram100 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram103 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram109 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram110 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram111 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram112 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram113 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram120 to %0*)], section "llvm.metadata"		; <[20 x %0*]*> [#uses=1]
- at llvm.dbg.composite122 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([21 x i8]* @.str35, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1310, i64 192, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([20 x %0*]* @llvm.dbg.array121 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype123 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 192, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite122 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype124 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype123 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array125 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype21 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype124 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite126 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array125 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram127 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1468, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite126 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype128 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype26 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array129 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype128 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype21 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite130 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array129 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str131 = internal constant [24 x i8] c"_ZNSt7complexIfE4realEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram132 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str131, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1046, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite130 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype133 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype26 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype134 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype133 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype135 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype49 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array136 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype134 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype135 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite137 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array136 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str138 = internal constant [25 x i8] c"_ZNKSt7complexIfE4realEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram139 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str138, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1050, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite137 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str140 = internal constant [24 x i8] c"_ZNSt7complexIfE4imagEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram141 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str140, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1054, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite130 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str142 = internal constant [25 x i8] c"_ZNKSt7complexIfE4imagEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram143 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str142, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1058, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite137 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype144 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite171 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array145 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype144 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype21 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype26 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite146 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array145 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str147 = internal constant [21 x i8] c"_ZNSt7complexIfEaSEf\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram148 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str147, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1069, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite146 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str149 = internal constant [21 x i8] c"_ZNSt7complexIfEpLEf\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram150 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str149, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1077, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite146 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str151 = internal constant [21 x i8] c"_ZNSt7complexIfEmIEf\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram152 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str151, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1084, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite146 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str153 = internal constant [21 x i8] c"_ZNSt7complexIfEmLEf\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram154 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str153, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1091, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite146 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str155 = internal constant [21 x i8] c"_ZNSt7complexIfEdVEf\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram156 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str155, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1098, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite146 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array157 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype144 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype21 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype106 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite158 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array157 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram159 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1029, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite158 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram160 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1031, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite158 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram161 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1033, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite158 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram162 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1035, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite158 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram163 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1037, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite158 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype164 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype19 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype165 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype164 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array166 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype165 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype135 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite167 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array166 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str168 = internal constant [26 x i8] c"_ZNKSt7complexIfE5__repEv\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram169 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str168, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1039, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite167 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array170 = internal constant [20 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype20 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram24 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram29 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram34 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram127 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram132 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram139 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram141 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram143 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram148 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram150 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram152 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram154 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram156 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram159 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram160 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram161 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram162 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram163 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram169 to %0*)], section "llvm.metadata"		; <[20 x %0*]*> [#uses=1]
- at llvm.dbg.composite171 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str16, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1003, i64 64, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([20 x %0*]* @llvm.dbg.array170 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype172 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite171 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype173 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype172 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array174 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype173 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite175 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array174 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram176 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1472, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite175 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array177 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype124 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite178 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array177 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram179 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1476, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite178 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype180 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array181 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype180 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite182 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array181 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str183 = internal constant [24 x i8] c"_ZNSt7complexIdE4realEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram184 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str183, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1199, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite182 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype185 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 64, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype186 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype185 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype187 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype30 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array188 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype186 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype187 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite189 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array188 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str190 = internal constant [25 x i8] c"_ZNKSt7complexIdE4realEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram191 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str190, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1203, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite189 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str192 = internal constant [24 x i8] c"_ZNSt7complexIdE4imagEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram193 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str192, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1207, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite182 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str194 = internal constant [25 x i8] c"_ZNKSt7complexIdE4imagEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram195 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str194, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1211, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite189 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype196 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array197 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype196 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite198 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array197 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str199 = internal constant [21 x i8] c"_ZNSt7complexIdEaSEd\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram200 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str199, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1222, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite198 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str201 = internal constant [21 x i8] c"_ZNSt7complexIdEpLEd\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram202 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str201, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1230, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite198 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str203 = internal constant [21 x i8] c"_ZNSt7complexIdEmIEd\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram204 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str203, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1237, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite198 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str205 = internal constant [21 x i8] c"_ZNSt7complexIdEmLEd\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram206 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str205, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1244, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite198 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str207 = internal constant [21 x i8] c"_ZNSt7complexIdEdVEd\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram208 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str207, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1251, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite198 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array209 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype196 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype106 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite210 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array209 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram211 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1182, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite210 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram212 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1184, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite210 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram213 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1186, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite210 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram214 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1188, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite210 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram215 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1190, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite210 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype216 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 128, i64 64, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype217 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype216 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array218 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype217 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype187 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite219 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array218 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str220 = internal constant [26 x i8] c"_ZNKSt7complexIdE5__repEv\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram221 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str220, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1192, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite219 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array222 = internal constant [20 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram15 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram176 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram179 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram184 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram191 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram193 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram195 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram200 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram202 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram204 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram206 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram208 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram211 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram212 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram213 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram214 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram215 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram221 to %0*)], section "llvm.metadata"		; <[20 x %0*]*> [#uses=1]
- at llvm.dbg.composite223 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str6, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1157, i64 128, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([20 x %0*]* @llvm.dbg.array222 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype224 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array225 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype224 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array225 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str226 = internal constant [22 x i8] c"_ZNSt7complexIdEC1ECd\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram227 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str226, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1161, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str230 = internal constant [4 x i8] c"__z\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.variable231 = internal constant %llvm.dbg.variable.type { i32 459009, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram227 to %0*), i8* getelementptr ([4 x i8]* @.str230, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1161, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram232 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str118, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str220, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1192, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite219 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram235 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str183, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1199, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite182 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram237 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str60, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str190, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1203, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite189 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram239 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str81, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str194, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1211, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite189 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str241 = internal constant [22 x i8] c"_ZNSt7complexIdEC1Edd\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram242 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str241, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1215, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite14 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str244 = internal constant [4 x i8] c"__r\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram248 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str199, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1222, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite198 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram252 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str101, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str207, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1251, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite198 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array255 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite256 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array255 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str257 = internal constant [14 x i8] c"random_double\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram258 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str257, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str257, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 55, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite256 to %0*), i1 true, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=0]
- at .str259 = internal constant [7 x i8] c"result\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at _ZZL13random_doublevE4seed = internal global i32 1325		; <i32*> [#uses=14]
- at .str266 = internal constant [19 x i8] c"polynomial<double>\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at .str268 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype269 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str268, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array270 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite271 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array270 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype272 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite271 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype273 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype272 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str274 = internal constant [17 x i8] c"_vptr.polynomial\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype275 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str274, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 84, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype273 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype276 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str277 = internal constant [8 x i8] c"m_coeff\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype278 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str277, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 164, i64 32, i64 32, i64 32, i32 2, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype276 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str279 = internal constant [13 x i8] c"unsigned int\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.basictype280 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str279, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 7 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str281 = internal constant [7 x i8] c"size_t\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype282 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str281, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit65 to %0*), i32 152, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str283 = internal constant [9 x i8] c"m_degree\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype284 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str283, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 167, i64 32, i64 32, i64 64, i32 2, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype285 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array286 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite287 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array286 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str288 = internal constant [11 x i8] c"polynomial\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.subprogram289 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 211, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite287 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype290 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype185 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array291 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype290 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite292 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array291 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram293 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 220, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite292 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array294 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype186 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite295 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array294 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram296 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 232, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite295 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype297 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 96, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype298 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype297 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array299 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype298 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite300 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array299 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram301 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 242, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite300 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array302 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite303 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array302 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str304 = internal constant [12 x i8] c"~polynomial\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.subprogram305 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 252, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite303 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype306 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array307 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype306 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype298 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite308 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array307 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str309 = internal constant [27 x i8] c"_ZN10polynomialIdEaSERKS0_\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram310 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str309, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 259, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite308 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array311 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype186 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite312 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array311 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str313 = internal constant [11 x i8] c"initialize\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str314 = internal constant [35 x i8] c"_ZN10polynomialIdE10initializeERKd\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram315 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str313, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str313, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str314, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 203, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite312 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array316 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype306 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite317 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array316 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str318 = internal constant [8 x i8] c"stretch\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str319 = internal constant [29 x i8] c"_ZN10polynomialIdE7stretchEj\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram320 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str318, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str318, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str319, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 276, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite317 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype321 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype297 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array322 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype321 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite323 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array322 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str324 = internal constant [7 x i8] c"degree\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str325 = internal constant [29 x i8] c"_ZNK10polynomialIdE6degreeEv\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram326 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str325, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 111, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite323 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array327 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype321 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite328 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array327 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str329 = internal constant [4 x i8] c"get\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str330 = internal constant [26 x i8] c"_ZNK10polynomialIdE3getEj\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram331 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str330, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 300, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite328 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array332 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype180 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite333 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array332 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str334 = internal constant [11 x i8] c"operator[]\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str335 = internal constant [23 x i8] c"_ZN10polynomialIdEixEj\00", section "llvm.metadata"		; <[23 x i8]*> [#uses=1]
- at llvm.dbg.subprogram336 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([23 x i8]* @.str335, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 306, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite333 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array337 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype12 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype321 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype186 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite338 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array337 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str339 = internal constant [11 x i8] c"operator()\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str340 = internal constant [26 x i8] c"_ZNK10polynomialIdEclERKd\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram341 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str339, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str339, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str340, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 313, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite338 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array342 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype321 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite343 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array342 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str344 = internal constant [10 x i8] c"operator-\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str345 = internal constant [24 x i8] c"_ZNK10polynomialIdEngEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram346 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str345, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 335, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite343 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str347 = internal constant [10 x i8] c"operator+\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str348 = internal constant [24 x i8] c"_ZNK10polynomialIdEpsEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram349 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str348, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 346, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite343 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array350 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype321 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype298 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite351 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array350 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str352 = internal constant [28 x i8] c"_ZNK10polynomialIdEplERKS0_\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram353 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str352, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 353, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite351 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str354 = internal constant [28 x i8] c"_ZNK10polynomialIdEmiERKS0_\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram355 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str354, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 376, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite351 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array356 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite357 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array356 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str358 = internal constant [5 x i8] c"log2\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str359 = internal constant [26 x i8] c"_ZN10polynomialIdE4log2Ej\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram360 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str358, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str358, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str359, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 404, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite357 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array361 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite362 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array361 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str363 = internal constant [10 x i8] c"flip_bits\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str364 = internal constant [32 x i8] c"_ZN10polynomialIdE9flip_bitsEjj\00", section "llvm.metadata"		; <[32 x i8]*> [#uses=1]
- at llvm.dbg.subprogram365 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str363, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str363, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str364, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 423, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite362 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array366 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite367 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array366 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str368 = internal constant [12 x i8] c"stretch_fft\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str369 = internal constant [34 x i8] c"_ZN10polynomialIdE11stretch_fftEv\00", section "llvm.metadata"		; <[34 x i8]*> [#uses=1]
- at llvm.dbg.subprogram370 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str368, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str368, i32 0, i32 0), i8* getelementptr ([34 x i8]* @.str369, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 443, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite367 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str371 = internal constant [34 x i8] c"polynomial<std::complex<double> >\00", section "llvm.metadata"		; <[34 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype373 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str274, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 84, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype273 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype374 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str277, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 164, i64 32, i64 32, i64 32, i32 2, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype224 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype375 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str283, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 167, i64 32, i64 32, i64 64, i32 2, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype376 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array377 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite378 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array377 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram379 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 211, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite378 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array380 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype187 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite381 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array380 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram382 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 220, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite381 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array383 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite384 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array383 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram385 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 232, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite384 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype386 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 96, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype387 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype386 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array388 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype387 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite389 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array388 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram390 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 242, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite389 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array391 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite392 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array391 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram393 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 252, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite392 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype394 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array395 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype394 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype387 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite396 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array395 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str397 = internal constant [39 x i8] c"_ZN10polynomialISt7complexIdEEaSERKS2_\00", section "llvm.metadata"		; <[39 x i8]*> [#uses=1]
- at llvm.dbg.subprogram398 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([39 x i8]* @.str397, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 259, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite396 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array399 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite400 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array399 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str401 = internal constant [49 x i8] c"_ZN10polynomialISt7complexIdEE10initializeERKS1_\00", section "llvm.metadata"		; <[49 x i8]*> [#uses=1]
- at llvm.dbg.subprogram402 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str313, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str313, i32 0, i32 0), i8* getelementptr ([49 x i8]* @.str401, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 203, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite400 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array403 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype394 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite404 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array403 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str405 = internal constant [41 x i8] c"_ZN10polynomialISt7complexIdEE7stretchEj\00", section "llvm.metadata"		; <[41 x i8]*> [#uses=1]
- at llvm.dbg.subprogram406 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str318, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str318, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str405, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 276, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite404 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype407 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype386 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array408 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype407 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite409 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array408 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str410 = internal constant [41 x i8] c"_ZNK10polynomialISt7complexIdEE6degreeEv\00", section "llvm.metadata"		; <[41 x i8]*> [#uses=1]
- at llvm.dbg.subprogram411 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str410, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 111, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite409 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array412 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype407 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite413 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array412 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str414 = internal constant [38 x i8] c"_ZNK10polynomialISt7complexIdEE3getEj\00", section "llvm.metadata"		; <[38 x i8]*> [#uses=1]
- at llvm.dbg.subprogram415 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([38 x i8]* @.str414, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 300, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite413 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array416 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype196 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite417 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array416 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str418 = internal constant [35 x i8] c"_ZN10polynomialISt7complexIdEEixEj\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram419 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str418, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 306, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite417 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array420 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype407 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite421 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array420 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str422 = internal constant [40 x i8] c"_ZNK10polynomialISt7complexIdEEclERKS1_\00", section "llvm.metadata"		; <[40 x i8]*> [#uses=1]
- at llvm.dbg.subprogram423 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str339, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str339, i32 0, i32 0), i8* getelementptr ([40 x i8]* @.str422, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 313, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite421 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array424 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype407 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite425 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array424 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str426 = internal constant [36 x i8] c"_ZNK10polynomialISt7complexIdEEngEv\00", section "llvm.metadata"		; <[36 x i8]*> [#uses=1]
- at llvm.dbg.subprogram427 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([36 x i8]* @.str426, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 335, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite425 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str428 = internal constant [36 x i8] c"_ZNK10polynomialISt7complexIdEEpsEv\00", section "llvm.metadata"		; <[36 x i8]*> [#uses=1]
- at llvm.dbg.subprogram429 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([36 x i8]* @.str428, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 346, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite425 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array430 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype407 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype387 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite431 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array430 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str432 = internal constant [40 x i8] c"_ZNK10polynomialISt7complexIdEEplERKS2_\00", section "llvm.metadata"		; <[40 x i8]*> [#uses=1]
- at llvm.dbg.subprogram433 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([40 x i8]* @.str432, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 353, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite431 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str434 = internal constant [40 x i8] c"_ZNK10polynomialISt7complexIdEEmiERKS2_\00", section "llvm.metadata"		; <[40 x i8]*> [#uses=1]
- at llvm.dbg.subprogram435 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([40 x i8]* @.str434, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 376, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite431 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str436 = internal constant [38 x i8] c"_ZN10polynomialISt7complexIdEE4log2Ej\00", section "llvm.metadata"		; <[38 x i8]*> [#uses=1]
- at llvm.dbg.subprogram437 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str358, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str358, i32 0, i32 0), i8* getelementptr ([38 x i8]* @.str436, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 404, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite357 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str438 = internal constant [44 x i8] c"_ZN10polynomialISt7complexIdEE9flip_bitsEjj\00", section "llvm.metadata"		; <[44 x i8]*> [#uses=1]
- at llvm.dbg.subprogram439 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str363, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str363, i32 0, i32 0), i8* getelementptr ([44 x i8]* @.str438, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 423, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite362 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array440 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite441 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array440 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str442 = internal constant [46 x i8] c"_ZN10polynomialISt7complexIdEE11stretch_fftEv\00", section "llvm.metadata"		; <[46 x i8]*> [#uses=1]
- at llvm.dbg.subprogram443 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str368, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str368, i32 0, i32 0), i8* getelementptr ([46 x i8]* @.str442, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 443, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite441 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str444 = internal constant [49 x i8] c"polynomial<std::complex<std::complex<double> > >\00", section "llvm.metadata"		; <[49 x i8]*> [#uses=1]
- at llvm.dbg.composite445 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([49 x i8]* @.str444, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 84, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array446 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite445 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype387 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite447 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array446 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str448 = internal constant [12 x i8] c"bit_reverse\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str449 = internal constant [50 x i8] c"_ZN10polynomialISt7complexIdEE11bit_reverseERKS2_\00", section "llvm.metadata"		; <[50 x i8]*> [#uses=1]
- at llvm.dbg.subprogram450 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([50 x i8]* @.str449, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 469, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite447 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype451 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite445 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype452 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype451 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array453 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite445 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype452 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite454 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array453 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str455 = internal constant [59 x i8] c"_ZN10polynomialISt7complexIdEE11bit_reverseERKS_IS0_IS1_EE\00", section "llvm.metadata"		; <[59 x i8]*> [#uses=1]
- at llvm.dbg.subprogram456 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([59 x i8]* @.str455, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 483, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite454 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str457 = internal constant [4 x i8] c"fft\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str458 = internal constant [41 x i8] c"_ZN10polynomialISt7complexIdEE3fftERKS2_\00", section "llvm.metadata"		; <[41 x i8]*> [#uses=1]
- at llvm.dbg.subprogram459 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str457, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str457, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str458, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 497, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite447 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str460 = internal constant [12 x i8] c"inverse_fft\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str461 = internal constant [59 x i8] c"_ZN10polynomialISt7complexIdEE11inverse_fftERKS_IS0_IS1_EE\00", section "llvm.metadata"		; <[59 x i8]*> [#uses=1]
- at llvm.dbg.subprogram462 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str460, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str460, i32 0, i32 0), i8* getelementptr ([59 x i8]* @.str461, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 535, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite454 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str463 = internal constant [10 x i8] c"operator*\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str464 = internal constant [40 x i8] c"_ZNK10polynomialISt7complexIdEEmlERKS2_\00", section "llvm.metadata"		; <[40 x i8]*> [#uses=1]
- at llvm.dbg.subprogram465 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([40 x i8]* @.str464, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 576, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite431 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str466 = internal constant [39 x i8] c"_ZN10polynomialISt7complexIdEEpLERKS2_\00", section "llvm.metadata"		; <[39 x i8]*> [#uses=1]
- at llvm.dbg.subprogram467 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([39 x i8]* @.str466, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 625, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite396 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str468 = internal constant [39 x i8] c"_ZN10polynomialISt7complexIdEEmIERKS2_\00", section "llvm.metadata"		; <[39 x i8]*> [#uses=1]
- at llvm.dbg.subprogram469 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([39 x i8]* @.str468, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 636, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite396 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str470 = internal constant [39 x i8] c"_ZN10polynomialISt7complexIdEEmLERKS2_\00", section "llvm.metadata"		; <[39 x i8]*> [#uses=1]
- at llvm.dbg.subprogram471 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([39 x i8]* @.str470, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 647, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite396 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array472 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite473 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array472 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str474 = internal constant [8 x i8] c"acquire\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str475 = internal constant [41 x i8] c"_ZN10polynomialISt7complexIdEE7acquireEv\00", section "llvm.metadata"		; <[41 x i8]*> [#uses=1]
- at llvm.dbg.subprogram476 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str475, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 181, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite473 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str477 = internal constant [8 x i8] c"release\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str478 = internal constant [41 x i8] c"_ZN10polynomialISt7complexIdEE7releaseEv\00", section "llvm.metadata"		; <[41 x i8]*> [#uses=1]
- at llvm.dbg.subprogram479 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str478, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 188, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite473 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array480 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype376 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype187 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite481 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array480 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str482 = internal constant [10 x i8] c"deep_copy\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str483 = internal constant [47 x i8] c"_ZN10polynomialISt7complexIdEE9deep_copyEPKS1_\00", section "llvm.metadata"		; <[47 x i8]*> [#uses=1]
- at llvm.dbg.subprogram484 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([47 x i8]* @.str483, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 195, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite481 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array485 = internal constant [33 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype373 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype374 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype375 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram379 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram382 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram385 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram390 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram393 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram398 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram402 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram406 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram411 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram415 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram419 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram423 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram427 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram429 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram433 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram435 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram437 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram439 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram443 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram450 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram456 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram459 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram462 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram465 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram467 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram469 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram471 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram476 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram479 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram484 to %0*)], section "llvm.metadata"		; <[33 x %0*]*> [#uses=1]
- at llvm.dbg.composite486 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([34 x i8]* @.str371, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 84, i64 96, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([33 x %0*]* @llvm.dbg.array485 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array487 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype298 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite488 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array487 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str489 = internal constant [38 x i8] c"_ZN10polynomialIdE11bit_reverseERKS0_\00", section "llvm.metadata"		; <[38 x i8]*> [#uses=1]
- at llvm.dbg.subprogram490 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([38 x i8]* @.str489, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 469, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite488 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array491 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype387 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite492 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array491 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str493 = internal constant [52 x i8] c"_ZN10polynomialIdE11bit_reverseERKS_ISt7complexIdEE\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.subprogram494 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str493, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 483, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite492 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str495 = internal constant [29 x i8] c"_ZN10polynomialIdE3fftERKS0_\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram496 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str457, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str457, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str495, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 497, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite488 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str497 = internal constant [52 x i8] c"_ZN10polynomialIdE11inverse_fftERKS_ISt7complexIdEE\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.subprogram498 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str460, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str460, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str497, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 535, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite492 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str499 = internal constant [28 x i8] c"_ZNK10polynomialIdEmlERKS0_\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram500 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str499, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 576, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite351 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str501 = internal constant [27 x i8] c"_ZN10polynomialIdEpLERKS0_\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram502 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str501, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 625, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite308 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str503 = internal constant [27 x i8] c"_ZN10polynomialIdEmIERKS0_\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram504 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str503, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 636, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite308 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str505 = internal constant [27 x i8] c"_ZN10polynomialIdEmLERKS0_\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram506 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str98, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str505, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 647, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite308 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array507 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite508 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array507 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str509 = internal constant [29 x i8] c"_ZN10polynomialIdE7acquireEv\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram510 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str509, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 181, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite508 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str511 = internal constant [29 x i8] c"_ZN10polynomialIdE7releaseEv\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram512 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str511, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 188, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite508 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array513 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype290 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite514 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array513 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str515 = internal constant [33 x i8] c"_ZN10polynomialIdE9deep_copyEPKd\00", section "llvm.metadata"		; <[33 x i8]*> [#uses=1]
- at llvm.dbg.subprogram516 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([33 x i8]* @.str515, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 195, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite514 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array517 = internal constant [33 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype275 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype278 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype284 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram289 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram293 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram296 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram301 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram305 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram310 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram315 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram320 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram326 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram331 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram336 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram341 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram346 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram349 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram353 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram355 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram360 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram365 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram370 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram490 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram494 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram496 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram498 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram500 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram502 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram504 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram506 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram510 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram512 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram516 to %0*)], section "llvm.metadata"		; <[33 x %0*]*> [#uses=1]
- at llvm.dbg.composite518 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @.str266, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 84, i64 96, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([33 x %0*]* @llvm.dbg.array517 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype519 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array520 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype180 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype519 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite521 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array520 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram522 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([23 x i8]* @.str335, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 306, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite521 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram527 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str325, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 111, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite323 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram530 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str418, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 306, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite417 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array534 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype196 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype224 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite535 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array534 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str536 = internal constant [19 x i8] c"operator*=<double>\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at .str537 = internal constant [35 x i8] c"_ZNSt7complexIdEmLIdEERS0_RKS_IT_E\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram538 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @.str536, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str536, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str537, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1286, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite535 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str541 = internal constant [4 x i8] c"__t\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.variable542 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram538 to %0*), i8* getelementptr ([4 x i8]* @.str541, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1288, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram543 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([33 x i8]* @.str515, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 195, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite514 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram549 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str358, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str358, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str359, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 404, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite357 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array555 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite556 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array555 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str557 = internal constant [18 x i8] c"operator*<double>\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at .str558 = internal constant [32 x i8] c"_ZStmlIdESt7complexIT_ERKS2_S4_\00", section "llvm.metadata"		; <[32 x i8]*> [#uses=1]
- at llvm.dbg.subprogram559 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str557, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str557, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str558, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 378, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite556 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable564 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram559 to %0*), i8* getelementptr ([4 x i8]* @.str244, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 380, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram565 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str482, i32 0, i32 0), i8* getelementptr ([47 x i8]* @.str483, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 195, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite481 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram569 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str324, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str410, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 111, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite409 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array572 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype31 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite573 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array572 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str574 = internal constant [18 x i8] c"operator-<double>\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at .str575 = internal constant [29 x i8] c"_ZStngIdESt7complexIT_ERKS2_\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram576 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str574, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str574, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str575, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 443, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite573 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram578 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str330, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 300, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite328 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram581 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str363, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str363, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str364, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 423, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite362 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str591 = internal constant [19 x i8] c"operator/=<double>\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at .str592 = internal constant [35 x i8] c"_ZNSt7complexIdEdVIdEERS0_RKS_IT_E\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram593 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @.str591, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str591, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str592, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1297, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite535 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable596 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram593 to %0*), i8* getelementptr ([4 x i8]* @.str541, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1299, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str597 = internal constant [18 x i8] c"operator/<double>\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at .str598 = internal constant [32 x i8] c"_ZStdvIdESt7complexIT_ERKS2_S4_\00", section "llvm.metadata"		; <[32 x i8]*> [#uses=1]
- at llvm.dbg.subprogram599 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str597, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str597, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str598, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 408, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite556 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable602 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram599 to %0*), i8* getelementptr ([4 x i8]* @.str244, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 410, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str603 = internal constant [19 x i8] c"operator+=<double>\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at .str604 = internal constant [35 x i8] c"_ZNSt7complexIdEpLIdEERS0_RKS_IT_E\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram605 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @.str603, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str603, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str604, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1268, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite535 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str608 = internal constant [18 x i8] c"operator+<double>\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at .str609 = internal constant [32 x i8] c"_ZStplIdESt7complexIT_ERKS2_S4_\00", section "llvm.metadata"		; <[32 x i8]*> [#uses=1]
- at llvm.dbg.subprogram610 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str608, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str608, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str609, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 318, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite556 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable613 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram610 to %0*), i8* getelementptr ([4 x i8]* @.str244, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 320, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str614 = internal constant [19 x i8] c"operator-=<double>\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at .str615 = internal constant [35 x i8] c"_ZNSt7complexIdEmIIdEERS0_RKS_IT_E\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram616 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @.str614, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str614, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str615, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 1277, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite535 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str619 = internal constant [32 x i8] c"_ZStmiIdESt7complexIT_ERKS2_S4_\00", section "llvm.metadata"		; <[32 x i8]*> [#uses=1]
- at llvm.dbg.subprogram620 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str574, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str574, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str619, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 348, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite556 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable623 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram620 to %0*), i8* getelementptr ([4 x i8]* @.str244, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 350, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram624 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str329, i32 0, i32 0), i8* getelementptr ([38 x i8]* @.str414, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 300, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite413 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array627 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite628 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array627 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str629 = internal constant [42 x i8] c"__static_initialization_and_destruction_0\00", section "llvm.metadata"		; <[42 x i8]*> [#uses=1]
- at llvm.dbg.subprogram630 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([42 x i8]* @.str629, i32 0, i32 0), i8* getelementptr ([42 x i8]* @.str629, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 703, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite628 to %0*), i1 true, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=0]
- at .str635 = internal constant [9 x i8] c"iostream\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit636 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @.str635, i32 0, i32 0), i8* getelementptr ([110 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at _ZStL8__ioinit = internal global %"struct.std::allocator<char>" zeroinitializer		; <%"struct.std::allocator<char>"*> [#uses=2]
- at .str638 = internal constant [115 x i8] c"/developer/home2/zsth/projects/llvm.org/install/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../include/c++/4.2.1/bits\00", section "llvm.metadata"		; <[115 x i8]*> [#uses=1]
- at __dso_handle = external global i8*		; <i8**> [#uses=1]
- at _ZGVN10polynomialIdE4PI2IE = weak global i64 0, align 8		; <i64*> [#uses=1]
- at _ZN10polynomialIdE4PI2IE = weak global %"struct.std::complex<double>" zeroinitializer		; <%"struct.std::complex<double>"*> [#uses=3]
- at llvm.dbg.array654 = internal constant [1 x %0*] zeroinitializer, section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite655 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array654 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str656 = internal constant [16 x i8] c"_GLOBAL__I_main\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram657 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str656, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str656, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 704, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite655 to %0*), i1 true, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype658 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* null }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array659 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype658 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite660 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array659 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str661 = internal constant [8 x i8] c"__tcf_0\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.subprogram662 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str661, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str661, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit636 to %0*), i32 77, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite660 to %0*), i1 true, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram665 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str511, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 188, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite508 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str667 = internal constant [23 x i8] c"_ZN10polynomialIdED0Ev\00", section "llvm.metadata"		; <[23 x i8]*> [#uses=1]
- at llvm.dbg.subprogram668 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([23 x i8]* @.str667, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 252, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite508 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at _ZTV10polynomialIdE = weak constant [4 x i32 (...)*] [i32 (...)* null, i32 (...)* bitcast (%struct.__class_type_info_pseudo* @_ZTI10polynomialIdE to i32 (...)*), i32 (...)* bitcast (void (%"struct.polynomial<double>"*)* @_ZN10polynomialIdED1Ev to i32 (...)*), i32 (...)* bitcast (void (%"struct.polynomial<double>"*)* @_ZN10polynomialIdED0Ev to i32 (...)*)], align 8		; <[4 x i32 (...)*]*> [#uses=1]
- at _ZTI10polynomialIdE = weak constant %struct.__class_type_info_pseudo { %struct.__type_info_pseudo { i8* inttoptr (i32 add (i32 ptrtoint ([0 x i32 (...)*]* @_ZTVN10__cxxabiv117__class_type_infoE to i32), i32 8) to i8*), i8* getelementptr ([16 x i8]* @_ZTS10polynomialIdE, i32 0, i32 0) } }		; <%struct.__class_type_info_pseudo*> [#uses=1]
- at _ZTVN10__cxxabiv117__class_type_infoE = external constant [0 x i32 (...)*]		; <[0 x i32 (...)*]*> [#uses=1]
- at _ZTS10polynomialIdE = weak constant [16 x i8] c"10polynomialIdE\00"		; <[16 x i8]*> [#uses=1]
- at .str671 = internal constant [5 x i8] c"char\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.basictype672 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str671, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, i32 6 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str676 = internal constant [11 x i8] c"<built-in>\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit677 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @.str676, i32 0, i32 0), i8* getelementptr ([42 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.array680 = internal constant [0 x %0*] zeroinitializer, section "llvm.metadata"		; <[0 x %0*]*> [#uses=1]
- at .str690 = internal constant [23 x i8] c"_ZN10polynomialIdED1Ev\00", section "llvm.metadata"		; <[23 x i8]*> [#uses=1]
- at llvm.dbg.subprogram691 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([23 x i8]* @.str690, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 252, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite508 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram693 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str477, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str478, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 188, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite473 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str695 = internal constant [35 x i8] c"_ZN10polynomialISt7complexIdEED0Ev\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram696 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str695, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 252, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite473 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at _ZTV10polynomialISt7complexIdEE = weak constant [4 x i32 (...)*] [i32 (...)* null, i32 (...)* bitcast (%struct.__class_type_info_pseudo* @_ZTI10polynomialISt7complexIdEE to i32 (...)*), i32 (...)* bitcast (void (%"struct.polynomial<std::complex<double> >"*)* @_ZN10polynomialISt7complexIdEED1Ev to i32 (...)*), i32 (...)* bitcast (void (%"struct.polynomial<std::complex<double> >"*)* @_ZN10polynomialISt7complexIdEED0Ev to i32 (...)*)], align 8		; <[4 x i32 (...)*]*> [#uses=1]
- at _ZTI10polynomialISt7complexIdEE = weak constant %struct.__class_type_info_pseudo { %struct.__type_info_pseudo { i8* inttoptr (i32 add (i32 ptrtoint ([0 x i32 (...)*]* @_ZTVN10__cxxabiv117__class_type_infoE to i32), i32 8) to i8*), i8* getelementptr ([28 x i8]* @_ZTS10polynomialISt7complexIdEE, i32 0, i32 0) } }		; <%struct.__class_type_info_pseudo*> [#uses=1]
- at _ZTS10polynomialISt7complexIdEE = weak constant [28 x i8] c"10polynomialISt7complexIdEE\00"		; <[28 x i8]*> [#uses=1]
- at .str707 = internal constant [35 x i8] c"_ZN10polynomialISt7complexIdEED1Ev\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram708 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str304, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str707, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 252, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite473 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram710 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str509, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 181, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite508 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str712 = internal constant [23 x i8] c"_ZN10polynomialIdEC1Ej\00", section "llvm.metadata"		; <[23 x i8]*> [#uses=1]
- at llvm.dbg.subprogram713 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([23 x i8]* @.str712, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 211, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite287 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str716 = internal constant [27 x i8] c"_ZN10polynomialIdEC1ERKS0_\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram717 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str716, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 242, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite300 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram720 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str318, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str318, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str319, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 276, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite317 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram729 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str309, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 259, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite308 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram732 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str474, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str475, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 181, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite473 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str734 = internal constant [35 x i8] c"_ZN10polynomialISt7complexIdEEC1Ej\00", section "llvm.metadata"		; <[35 x i8]*> [#uses=1]
- at llvm.dbg.subprogram735 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str288, i32 0, i32 0), i8* getelementptr ([35 x i8]* @.str734, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 211, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite378 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram738 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([38 x i8]* @.str489, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 469, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite488 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable744 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram738 to %0*), i8* getelementptr ([7 x i8]* @.str259, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 473, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram747 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str448, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str493, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 483, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite492 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable751 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram747 to %0*), i8* getelementptr ([7 x i8]* @.str259, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 487, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram753 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([39 x i8]* @.str397, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 259, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite396 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram756 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str368, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str368, i32 0, i32 0), i8* getelementptr ([34 x i8]* @.str369, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 443, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite367 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str759 = internal constant [35 x i8] c"overflow in fft polynomial stretch\00"		; <[35 x i8]*> [#uses=1]
- at _ZTISt14overflow_error = weak constant %struct.__si_class_type_info_pseudo { %struct.__type_info_pseudo { i8* inttoptr (i32 add (i32 ptrtoint ([0 x i32 (...)*]* @_ZTVN10__cxxabiv120__si_class_type_infoE to i32), i32 8) to i8*), i8* getelementptr ([19 x i8]* @_ZTSSt14overflow_error, i32 0, i32 0) }, %"struct.std::type_info"* bitcast (%struct.__si_class_type_info_pseudo* @_ZTISt13runtime_error to %"struct.std::type_info"*) }		; <%struct.__si_class_type_info_pseudo*> [#uses=2]
- at _ZTVN10__cxxabiv120__si_class_type_infoE = external constant [0 x i32 (...)*]		; <[0 x i32 (...)*]*> [#uses=1]
- at _ZTSSt14overflow_error = weak constant [19 x i8] c"St14overflow_error\00"		; <[19 x i8]*> [#uses=1]
- at _ZTISt13runtime_error = external constant %struct.__si_class_type_info_pseudo		; <%struct.__si_class_type_info_pseudo*> [#uses=1]
- at .str769 = internal constant [10 x i8] c"stdexcept\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit770 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([10 x i8]* @.str769, i32 0, i32 0), i8* getelementptr ([110 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str773 = internal constant [15 x i8] c"overflow_error\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at .str775 = internal constant [14 x i8] c"runtime_error\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str777 = internal constant [10 x i8] c"exception\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit778 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([10 x i8]* @.str777, i32 0, i32 0), i8* getelementptr ([110 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str780 = internal constant [16 x i8] c"_vptr.exception\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype781 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str780, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit778 to %0*), i32 57, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype273 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype782 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite800 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array783 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype782 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite784 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array783 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram785 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str777, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str777, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit778 to %0*), i32 59, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite784 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array786 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype782 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite787 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array786 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str788 = internal constant [11 x i8] c"~exception\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.subprogram789 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str788, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str788, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit778 to %0*), i32 60, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite787 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype790 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype791 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype790 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype792 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite800 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype793 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype792 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array794 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype793 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite795 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array794 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str796 = internal constant [5 x i8] c"what\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str797 = internal constant [24 x i8] c"_ZNKSt9exception4whatEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram798 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str796, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str796, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str797, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit778 to %0*), i32 63, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite795 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array799 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype781 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram785 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram789 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram798 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite800 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str777, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit778 to %0*), i32 57, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array799 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype801 = internal constant %llvm.dbg.derivedtype.type { i32 458780, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite800 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str802 = internal constant [12 x i8] c"stringfwd.h\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit803 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([12 x i8]* @.str802, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str804 = internal constant [64 x i8] c"basic_string<char,std::char_traits<char>,std::allocator<char> >\00", section "llvm.metadata"		; <[64 x i8]*> [#uses=1]
- at .str806 = internal constant [15 x i8] c"basic_string.h\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit807 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([15 x i8]* @.str806, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str808 = internal constant [13 x i8] c"_Alloc_hider\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str810 = internal constant [16 x i8] c"allocator<char>\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str812 = internal constant [16 x i8] c"new_allocator.h\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str813 = internal constant [114 x i8] c"/developer/home2/zsth/projects/llvm.org/install/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext\00", section "llvm.metadata"		; <[114 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit814 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([16 x i8]* @.str812, i32 0, i32 0), i8* getelementptr ([114 x i8]* @.str813, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str815 = internal constant [20 x i8] c"new_allocator<char>\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype817 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite877 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array818 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite819 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array818 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str820 = internal constant [14 x i8] c"new_allocator\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram821 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str820, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str820, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 68, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite819 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype822 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite877 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype823 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype822 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array824 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype823 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite825 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array824 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram826 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str820, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str820, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 70, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite825 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite827 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 54, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype828 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite827 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype829 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype828 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array830 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype829 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite831 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array830 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram832 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str820, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str820, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 73, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite831 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array833 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite834 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array833 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str835 = internal constant [15 x i8] c"~new_allocator\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram836 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str835, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str835, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 75, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite834 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype837 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype838 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype822 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype839 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array840 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype838 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype839 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite841 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array840 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str842 = internal constant [8 x i8] c"address\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str843 = internal constant [44 x i8] c"_ZNK9__gnu_cxx13new_allocatorIcE7addressERc\00", section "llvm.metadata"		; <[44 x i8]*> [#uses=1]
- at llvm.dbg.subprogram844 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str842, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str842, i32 0, i32 0), i8* getelementptr ([44 x i8]* @.str843, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 78, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite841 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype845 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype790 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array846 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype838 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype845 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite847 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array846 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str848 = internal constant [45 x i8] c"_ZNK9__gnu_cxx13new_allocatorIcE7addressERKc\00", section "llvm.metadata"		; <[45 x i8]*> [#uses=1]
- at llvm.dbg.subprogram849 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str842, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str842, i32 0, i32 0), i8* getelementptr ([45 x i8]* @.str848, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 81, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite847 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype850 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* null }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array851 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype850 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite852 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array851 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str853 = internal constant [9 x i8] c"allocate\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str854 = internal constant [46 x i8] c"_ZN9__gnu_cxx13new_allocatorIcE8allocateEjPKv\00", section "llvm.metadata"		; <[46 x i8]*> [#uses=1]
- at llvm.dbg.subprogram855 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str853, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str853, i32 0, i32 0), i8* getelementptr ([46 x i8]* @.str854, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 86, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite852 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array856 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite857 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array856 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str858 = internal constant [11 x i8] c"deallocate\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str859 = internal constant [48 x i8] c"_ZN9__gnu_cxx13new_allocatorIcE10deallocateEPcj\00", section "llvm.metadata"		; <[48 x i8]*> [#uses=1]
- at llvm.dbg.subprogram860 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str858, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str858, i32 0, i32 0), i8* getelementptr ([48 x i8]* @.str859, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 96, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite857 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array861 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype838 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite862 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array861 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str863 = internal constant [9 x i8] c"max_size\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str864 = internal constant [44 x i8] c"_ZNK9__gnu_cxx13new_allocatorIcE8max_sizeEv\00", section "llvm.metadata"		; <[44 x i8]*> [#uses=1]
- at llvm.dbg.subprogram865 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str863, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str863, i32 0, i32 0), i8* getelementptr ([44 x i8]* @.str864, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 100, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite862 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array866 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype845 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite867 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array866 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str868 = internal constant [10 x i8] c"construct\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str869 = internal constant [48 x i8] c"_ZN9__gnu_cxx13new_allocatorIcE9constructEPcRKc\00", section "llvm.metadata"		; <[48 x i8]*> [#uses=1]
- at llvm.dbg.subprogram870 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str868, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str868, i32 0, i32 0), i8* getelementptr ([48 x i8]* @.str869, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 106, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite867 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array871 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype817 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite872 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array871 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str873 = internal constant [8 x i8] c"destroy\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str874 = internal constant [43 x i8] c"_ZN9__gnu_cxx13new_allocatorIcE7destroyEPc\00", section "llvm.metadata"		; <[43 x i8]*> [#uses=1]
- at llvm.dbg.subprogram875 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str873, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str873, i32 0, i32 0), i8* getelementptr ([43 x i8]* @.str874, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 110, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite872 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array876 = internal constant [11 x %0*] [%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram821 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram826 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram832 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram836 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram844 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram849 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram855 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram860 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram865 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram870 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram875 to %0*)], section "llvm.metadata"		; <[11 x %0*]*> [#uses=1]
- at llvm.dbg.composite877 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([20 x i8]* @.str815, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit814 to %0*), i32 54, i64 8, i64 8, i64 0, i32 0, %0* null, %0* bitcast ([11 x %0*]* @llvm.dbg.array876 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype878 = internal constant %llvm.dbg.derivedtype.type { i32 458780, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit803 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite877 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype879 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite902 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array880 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype879 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite881 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array880 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str882 = internal constant [12 x i8] c"allocator.h\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit883 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([12 x i8]* @.str882, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str884 = internal constant [10 x i8] c"allocator\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.subprogram885 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str884, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str884, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit883 to %0*), i32 100, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite881 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype886 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite902 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype887 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype886 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array888 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype879 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite889 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array888 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram890 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str884, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str884, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit883 to %0*), i32 102, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite889 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite891 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit803 to %0*), i32 49, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype892 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite891 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype893 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype892 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array894 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype879 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype893 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite895 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array894 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram896 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str884, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str884, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit883 to %0*), i32 106, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite895 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array897 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype879 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite898 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array897 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str899 = internal constant [11 x i8] c"~allocator\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.subprogram900 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str899, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str899, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit883 to %0*), i32 108, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite898 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array901 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype878 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram885 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram890 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram896 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram900 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite902 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str810, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit803 to %0*), i32 49, i64 8, i64 8, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array901 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype903 = internal constant %llvm.dbg.derivedtype.type { i32 458780, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite902 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str904 = internal constant [5 x i8] c"_M_p\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype905 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str904, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 264, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype906 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite911 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array907 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype906 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite908 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array907 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram909 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str808, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str808, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 261, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite908 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array910 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype903 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype905 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram909 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite911 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str808, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 260, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array910 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str912 = internal constant [12 x i8] c"_M_dataplus\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype913 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str912, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 276, i64 32, i64 32, i64 0, i32 1, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite911 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str914 = internal constant [7 x i8] c"string\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype915 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str914, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit803 to %0*), i32 56, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1693 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype916 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype915 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype917 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype916 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array918 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite919 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array918 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str920 = internal constant [8 x i8] c"_M_data\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str921 = internal constant [17 x i8] c"_ZNKSs7_M_dataEv\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram922 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str920, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str920, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str921, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 279, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite919 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype923 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1693 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array924 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite925 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array924 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str926 = internal constant [17 x i8] c"_ZNSs7_M_dataEPc\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram927 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str920, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str920, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str926, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 283, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite925 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str928 = internal constant [5 x i8] c"_Rep\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str930 = internal constant [10 x i8] c"_Rep_base\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str932 = internal constant [10 x i8] c"_M_length\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype933 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str932, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 149, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str934 = internal constant [12 x i8] c"_M_capacity\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype935 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str934, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 150, i64 32, i64 32, i64 32, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str936 = internal constant [10 x i8] c"ptrdiff_t\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype937 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str936, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit677 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype938 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype937 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str939 = internal constant [8 x i8] c"types.h\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit940 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([8 x i8]* @.str939, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str69, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str941 = internal constant [10 x i8] c"__int32_t\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype942 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str941, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 43, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype938 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str943 = internal constant [8 x i8] c"__pid_t\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype944 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str943, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 145, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype942 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str945 = internal constant [10 x i8] c"__daddr_t\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype946 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str945, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 154, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype944 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str947 = internal constant [8 x i8] c"__key_t\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype948 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str947, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 157, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype946 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str949 = internal constant [12 x i8] c"__clockid_t\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype950 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str949, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 158, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype948 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str951 = internal constant [10 x i8] c"__ssize_t\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype952 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str951, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 181, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype950 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str953 = internal constant [11 x i8] c"__intptr_t\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype954 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str953, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 189, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype952 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str955 = internal constant [12 x i8] c"_G_config.h\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str956 = internal constant [13 x i8] c"/usr/include\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit957 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([12 x i8]* @.str955, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str958 = internal constant [11 x i8] c"_G_int32_t\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype959 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str958, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit957 to %0*), i32 55, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype954 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str960 = internal constant [11 x i8] c"nl_types.h\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit961 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @.str960, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str962 = internal constant [8 x i8] c"nl_item\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype963 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str962, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit961 to %0*), i32 34, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype959 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str964 = internal constant [7 x i8] c"time.h\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit965 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([7 x i8]* @.str964, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str966 = internal constant [10 x i8] c"clockid_t\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype967 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str966, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit965 to %0*), i32 77, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype963 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str968 = internal constant [6 x i8] c"pid_t\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype969 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str968, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit965 to %0*), i32 105, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype967 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str970 = internal constant [15 x i8] c"__sig_atomic_t\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype971 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str970, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit965 to %0*), i32 413, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype969 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str972 = internal constant [15 x i8] c"pthreadtypes.h\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit973 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([15 x i8]* @.str972, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str69, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str974 = internal constant [15 x i8] c"pthread_once_t\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype975 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str974, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit973 to %0*), i32 109, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype971 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype976 = internal constant %llvm.dbg.derivedtype.type { i32 458805, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype975 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str977 = internal constant [19 x i8] c"pthread_spinlock_t\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype978 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @.str977, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit973 to %0*), i32 142, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype976 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str979 = internal constant [10 x i8] c"pthread.h\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit980 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([10 x i8]* @.str979, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str981 = internal constant [8 x i8] c"ssize_t\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype982 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str981, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit980 to %0*), i32 1101, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype978 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str983 = internal constant [9 x i8] c"unistd.h\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit984 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @.str983, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str985 = internal constant [9 x i8] c"intptr_t\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype986 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str985, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit984 to %0*), i32 226, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype982 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str987 = internal constant [15 x i8] c"gthr-default.h\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at .str988 = internal constant [133 x i8] c"/developer/home2/zsth/projects/llvm.org/install/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../include/c++/4.2.1/i686-pc-linux-gnu/bits\00", section "llvm.metadata"		; <[133 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit989 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([15 x i8]* @.str987, i32 0, i32 0), i8* getelementptr ([133 x i8]* @.str988, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str990 = internal constant [17 x i8] c"__gthread_once_t\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype991 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str990, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit989 to %0*), i32 46, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype986 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype992 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str941, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 43, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype991 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str993 = internal constant [9 x i8] c"stdint.h\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit994 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @.str993, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str995 = internal constant [8 x i8] c"int32_t\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype996 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str995, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit994 to %0*), i32 38, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype992 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str997 = internal constant [14 x i8] c"int_least32_t\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype998 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str997, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit994 to %0*), i32 67, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype996 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str999 = internal constant [13 x i8] c"int_fast16_t\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1000 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str999, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit994 to %0*), i32 91, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype998 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1001 = internal constant [13 x i8] c"int_fast32_t\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1002 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1001, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit994 to %0*), i32 97, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1000 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1003 = internal constant [11 x i8] c"postypes.h\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1004 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @.str1003, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1005 = internal constant [11 x i8] c"streamsize\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1006 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1005, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1004 to %0*), i32 72, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1002 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1007 = internal constant [17 x i8] c"/usr/include/sys\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1008 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([8 x i8]* @.str939, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1007, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1009 = internal constant [8 x i8] c"daddr_t\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1010 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1009, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1008 to %0*), i32 105, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1006 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1011 = internal constant [6 x i8] c"key_t\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1012 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1011, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1008 to %0*), i32 117, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1010 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1013 = internal constant [11 x i8] c"register_t\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1014 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1013, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1008 to %0*), i32 204, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1012 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1015 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str936, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit677 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1014 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1016 = internal constant [9 x i8] c"stdlib.h\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1017 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([9 x i8]* @.str1016, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1018 = internal constant [13 x i8] c"_Atomic_word\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1019 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1018, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1017 to %0*), i32 962, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1015 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1020 = internal constant [12 x i8] c"_M_refcount\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1021 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str1020, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 151, i64 32, i64 32, i64 64, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1019 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1022 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype933 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype935 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1021 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1023 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str930, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 148, i64 96, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1022 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1024 = internal constant %llvm.dbg.derivedtype.type { i32 458780, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1023 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1025 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1091 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1026 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1025 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite1027 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array1026 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1028 = internal constant [13 x i8] c"_S_empty_rep\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str1029 = internal constant [27 x i8] c"_ZNSs4_Rep12_S_empty_repEv\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1030 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1028, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1028, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str1029, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 180, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1027 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1031 = internal constant [5 x i8] c"bool\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.basictype1032 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1031, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 8, i64 8, i64 0, i32 0, i32 2 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.derivedtype1033 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 96, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1091 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1034 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1033 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1035 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype1032 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1034 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1036 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1035 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1037 = internal constant [13 x i8] c"_M_is_leaked\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str1038 = internal constant [28 x i8] c"_ZNKSs4_Rep12_M_is_leakedEv\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1039 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1037, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1037, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str1038, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 190, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1036 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1040 = internal constant [13 x i8] c"_M_is_shared\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str1041 = internal constant [28 x i8] c"_ZNKSs4_Rep12_M_is_sharedEv\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1042 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1040, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1040, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str1041, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 194, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1036 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1043 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1091 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1044 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1043 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1045 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1044 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1046 = internal constant [14 x i8] c"_M_set_leaked\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str1047 = internal constant [28 x i8] c"_ZNSs4_Rep13_M_set_leakedEv\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1048 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1046, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1046, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str1047, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 198, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1045 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1049 = internal constant [16 x i8] c"_M_set_sharable\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str1050 = internal constant [30 x i8] c"_ZNSs4_Rep15_M_set_sharableEv\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1051 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str1049, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1049, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str1050, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 202, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1045 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1052 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1043 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1053 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1052 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1054 = internal constant [27 x i8] c"_M_set_length_and_sharable\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at .str1055 = internal constant [41 x i8] c"_ZNSs4_Rep26_M_set_length_and_sharableEj\00", section "llvm.metadata"		; <[41 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1056 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([27 x i8]* @.str1054, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str1054, i32 0, i32 0), i8* getelementptr ([41 x i8]* @.str1055, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 206, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1053 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1057 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1043 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1058 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1057 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1059 = internal constant [11 x i8] c"_M_refdata\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str1060 = internal constant [25 x i8] c"_ZNSs4_Rep10_M_refdataEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1061 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1059, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1059, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str1060, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 216, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1058 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1062 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1043 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1063 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1062 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1064 = internal constant [8 x i8] c"_M_grab\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1065 = internal constant [30 x i8] c"_ZNSs4_Rep7_M_grabERKSaIcES2_\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1066 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1064, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1064, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str1065, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 220, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1063 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1067 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1043 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1068 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1067 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1069 = internal constant [17 x i8] c"basic_string.tcc\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1070 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([17 x i8]* @.str1069, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1071 = internal constant [10 x i8] c"_S_create\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str1072 = internal constant [31 x i8] c"_ZNSs4_Rep9_S_createEjjRKSaIcE\00", section "llvm.metadata"		; <[31 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1073 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str1071, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str1071, i32 0, i32 0), i8* getelementptr ([31 x i8]* @.str1072, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 529, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1068 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1074 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1043 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1075 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1074 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1076 = internal constant [11 x i8] c"_M_dispose\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str1077 = internal constant [31 x i8] c"_ZNSs4_Rep10_M_disposeERKSaIcE\00", section "llvm.metadata"		; <[31 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1078 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1076, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1076, i32 0, i32 0), i8* getelementptr ([31 x i8]* @.str1077, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 231, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1075 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1079 = internal constant [11 x i8] c"_M_destroy\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str1080 = internal constant [31 x i8] c"_ZNSs4_Rep10_M_destroyERKSaIcE\00", section "llvm.metadata"		; <[31 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1081 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1079, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1079, i32 0, i32 0), i8* getelementptr ([31 x i8]* @.str1080, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 427, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1075 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1082 = internal constant [11 x i8] c"_M_refcopy\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str1083 = internal constant [25 x i8] c"_ZNSs4_Rep10_M_refcopyEv\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1084 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1082, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1082, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str1083, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 245, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1058 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1085 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1043 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1086 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1085 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1087 = internal constant [9 x i8] c"_M_clone\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str1088 = internal constant [29 x i8] c"_ZNSs4_Rep8_M_cloneERKSaIcEj\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1089 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str1087, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str1087, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str1088, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 606, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1086 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1090 = internal constant [14 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1024 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1030 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1039 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1042 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1048 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1051 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1056 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1061 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1066 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1073 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1078 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1081 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1084 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1089 to %0*)], section "llvm.metadata"		; <[14 x %0*]*> [#uses=1]
- at llvm.dbg.composite1091 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str928, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 155, i64 96, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([14 x %0*]* @llvm.dbg.array1090 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1092 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1091 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1093 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1092 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1094 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1093 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1095 = internal constant [16 x i8] c"_ZNKSs6_M_repEv\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1096 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str1087, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str1087, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1095, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 287, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1094 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1097 = internal constant [15 x i8] c"stl_iterator.h\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1098 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([15 x i8]* @.str1097, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1099 = internal constant [97 x i8] c"__normal_iterator<char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >\00", section "llvm.metadata"		; <[97 x i8]*> [#uses=1]
- at .str1101 = internal constant [11 x i8] c"_M_current\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1102 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1101, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 639, i64 32, i64 32, i64 0, i32 2, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1103 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1104 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1103 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1105 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1104 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1106 = internal constant [18 x i8] c"__normal_iterator\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1107 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str1106, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1106, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 650, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1105 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1108 = internal constant [10 x i8] c"__caddr_t\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1109 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str1108, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit940 to %0*), i32 188, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1110 = internal constant [15 x i8] c"__gnuc_va_list\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1111 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str1110, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit957 to %0*), i32 58, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1109 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1112 = internal constant [8 x i8] c"libio.h\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1113 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([8 x i8]* @.str1112, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str956, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1114 = internal constant [8 x i8] c"va_list\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1115 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1114, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1113 to %0*), i32 491, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1111 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1116 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1115 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1117 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1116 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1118 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1103 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1117 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1119 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1118 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1120 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str1106, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1106, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 653, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1119 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite1121 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 637, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1122 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 8, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1121 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1123 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1122 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1124 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1103 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1123 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1125 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1124 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1126 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str1106, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1106, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 660, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1125 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1127 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1128 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1127 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1129 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype839 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1128 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1130 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1129 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1131 = internal constant [44 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPcSsEdeEv\00", section "llvm.metadata"		; <[44 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1132 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([44 x i8]* @.str1131, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 665, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1130 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1133 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1128 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1134 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1133 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1135 = internal constant [11 x i8] c"operator->\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str1136 = internal constant [44 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPcSsEptEv\00", section "llvm.metadata"		; <[44 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1137 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1135, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1135, i32 0, i32 0), i8* getelementptr ([44 x i8]* @.str1136, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 669, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1134 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1138 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1139 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1138 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1103 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1140 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1139 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1141 = internal constant [11 x i8] c"operator++\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str1142 = internal constant [43 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEv\00", section "llvm.metadata"		; <[43 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1143 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1141, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1141, i32 0, i32 0), i8* getelementptr ([43 x i8]* @.str1142, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 673, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1140 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1144 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1103 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1145 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1144 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1146 = internal constant [43 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPcSsEppEi\00", section "llvm.metadata"		; <[43 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1147 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1141, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1141, i32 0, i32 0), i8* getelementptr ([43 x i8]* @.str1146, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 680, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1145 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1148 = internal constant [11 x i8] c"operator--\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str1149 = internal constant [43 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEv\00", section "llvm.metadata"		; <[43 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1150 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1148, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1148, i32 0, i32 0), i8* getelementptr ([43 x i8]* @.str1149, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 685, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1140 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1151 = internal constant [43 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPcSsEmmEi\00", section "llvm.metadata"		; <[43 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1152 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str1148, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1148, i32 0, i32 0), i8* getelementptr ([43 x i8]* @.str1151, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 692, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1145 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1153 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1015 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1154 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype839 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1128 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1153 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1155 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1154 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1156 = internal constant [46 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPcSsEixERKi\00", section "llvm.metadata"		; <[46 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1157 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([46 x i8]* @.str1156, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 697, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1155 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1158 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1138 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1103 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1153 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1159 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1158 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1160 = internal constant [45 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPcSsEpLERKi\00", section "llvm.metadata"		; <[45 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1161 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([45 x i8]* @.str1160, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 701, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1159 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1162 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1128 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1153 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1163 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1162 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1164 = internal constant [46 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPcSsEplERKi\00", section "llvm.metadata"		; <[46 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1165 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str347, i32 0, i32 0), i8* getelementptr ([46 x i8]* @.str1164, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 705, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1163 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1166 = internal constant [45 x i8] c"_ZN9__gnu_cxx17__normal_iteratorIPcSsEmIERKi\00", section "llvm.metadata"		; <[45 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1167 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str95, i32 0, i32 0), i8* getelementptr ([45 x i8]* @.str1166, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 709, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1159 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1168 = internal constant [46 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPcSsEmiERKi\00", section "llvm.metadata"		; <[46 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1169 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str344, i32 0, i32 0), i8* getelementptr ([46 x i8]* @.str1168, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 713, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1163 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1170 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1117 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1128 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1171 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1170 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1172 = internal constant [5 x i8] c"base\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1173 = internal constant [47 x i8] c"_ZNK9__gnu_cxx17__normal_iteratorIPcSsE4baseEv\00", section "llvm.metadata"		; <[47 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1174 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1172, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1172, i32 0, i32 0), i8* getelementptr ([47 x i8]* @.str1173, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 717, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1171 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1175 = internal constant [16 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1102 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1107 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1120 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1126 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1132 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1137 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1143 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1147 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1150 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1152 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1157 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1161 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1165 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1167 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1169 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1174 to %0*)], section "llvm.metadata"		; <[16 x %0*]*> [#uses=1]
- at llvm.dbg.composite1176 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([97 x i8]* @.str1099, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 637, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([16 x %0*]* @llvm.dbg.array1175 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1177 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1178 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1177 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1179 = internal constant [19 x i8] c"_ZNKSs9_M_ibeginEv\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1180 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1172, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1172, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1179, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 293, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1178 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1181 = internal constant [8 x i8] c"_M_iend\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1182 = internal constant [17 x i8] c"_ZNKSs7_M_iendEv\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1183 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1181, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1181, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1182, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 297, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1178 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1184 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1185 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1184 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1186 = internal constant [8 x i8] c"_M_leak\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1187 = internal constant [16 x i8] c"_ZNSs7_M_leakEv\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1188 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1186, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1186, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1187, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 301, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1185 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1189 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1190 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1189 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1191 = internal constant [9 x i8] c"_M_check\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str1192 = internal constant [21 x i8] c"_ZNKSs8_M_checkEjPKc\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1193 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str1191, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str1191, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1192, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 308, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1190 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1194 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1195 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1194 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1196 = internal constant [16 x i8] c"_M_check_length\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str1197 = internal constant [30 x i8] c"_ZNKSs15_M_check_lengthEjjPKc\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1198 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str1196, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1196, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str1197, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 316, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1195 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1199 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1200 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1199 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1201 = internal constant [9 x i8] c"_M_limit\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str1202 = internal constant [19 x i8] c"_ZNKSs8_M_limitEjj\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1203 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str1201, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str1201, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1202, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 324, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1200 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1204 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype1032 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1205 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1204 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1206 = internal constant [12 x i8] c"_M_disjunct\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str1207 = internal constant [24 x i8] c"_ZNKSs11_M_disjunctEPKc\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1208 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str1206, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str1206, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str1207, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 332, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1205 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1209 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1210 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1209 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1211 = internal constant [8 x i8] c"_M_copy\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1212 = internal constant [21 x i8] c"_ZNSs7_M_copyEPcPKcj\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1213 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1211, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1211, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1212, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 341, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1210 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1214 = internal constant [8 x i8] c"_M_move\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1215 = internal constant [21 x i8] c"_ZNSs7_M_moveEPcPKcj\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1216 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1214, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1214, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1215, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 350, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1210 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1217 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1218 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1217 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1219 = internal constant [10 x i8] c"_M_assign\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str1220 = internal constant [21 x i8] c"_ZNSs9_M_assignEPcjc\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1221 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str1219, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str1219, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1220, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 359, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1218 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1222 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* null, %0* null], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1223 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1222 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1224 = internal constant [14 x i8] c"_S_copy_chars\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1225 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 371, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1223 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1226 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1227 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1226 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1228 = internal constant [64 x i8] c"_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_\00", section "llvm.metadata"		; <[64 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1229 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([64 x i8]* @.str1228, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 378, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1227 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1230 = internal constant [103 x i8] c"__normal_iterator<const char*,std::basic_string<char, std::char_traits<char>, std::allocator<char> > >\00", section "llvm.metadata"		; <[103 x i8]*> [#uses=1]
- at llvm.dbg.composite1231 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([103 x i8]* @.str1230, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 637, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1232 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1231 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1231 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1233 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1232 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1234 = internal constant [65 x i8] c"_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_\00", section "llvm.metadata"		; <[65 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1235 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([65 x i8]* @.str1234, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 382, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1233 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1236 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1237 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1236 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1238 = internal constant [28 x i8] c"_ZNSs13_S_copy_charsEPcS_S_\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1239 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str1238, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 386, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1237 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1240 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1241 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1240 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1242 = internal constant [30 x i8] c"_ZNSs13_S_copy_charsEPcPKcS1_\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1243 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1224, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str1242, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 390, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1241 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1244 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1245 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1244 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1246 = internal constant [10 x i8] c"_M_mutate\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str1247 = internal constant [20 x i8] c"_ZNSs9_M_mutateEjjj\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1248 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str1246, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str1246, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1247, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 451, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1245 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1249 = internal constant [13 x i8] c"_M_leak_hard\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str1250 = internal constant [22 x i8] c"_ZNSs12_M_leak_hardEv\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1251 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1249, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1249, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str1250, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 437, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1185 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1252 = internal constant [22 x i8] c"_ZNSs12_S_empty_repEv\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1253 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1028, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1028, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str1252, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 400, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1027 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1254 = internal constant [13 x i8] c"basic_string\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1255 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 2055, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1185 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1256 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1257 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1256 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1258 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 191, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1257 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1259 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype916 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1260 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1261 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1260 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1262 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 183, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1261 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1263 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1264 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1263 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1265 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 197, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1264 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1266 = internal constant [6 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1267 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1266 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1268 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 208, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1267 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1269 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1270 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1269 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1271 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 219, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1270 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1272 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1273 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1272 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1274 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 226, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1273 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1275 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1276 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1275 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1277 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 233, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1276 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1278 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1279 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1278 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1280 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1254, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 477, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1279 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1281 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1282 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1281 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1283 = internal constant [14 x i8] c"~basic_string\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1284 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1283, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1283, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 482, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1282 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1285 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1693 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1286 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1287 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1286 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1288 = internal constant [13 x i8] c"_ZNSsaSERKSs\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1289 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1288, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 490, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1287 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1290 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1291 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1290 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1292 = internal constant [12 x i8] c"_ZNSsaSEPKc\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1293 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str1292, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 498, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1291 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1294 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1295 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1294 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1296 = internal constant [10 x i8] c"_ZNSsaSEc\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1297 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str89, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str1296, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 509, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1295 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1298 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1299 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1298 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1300 = internal constant [6 x i8] c"begin\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1301 = internal constant [14 x i8] c"_ZNSs5beginEv\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1302 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1300, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1300, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1301, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 521, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1299 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1303 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1231 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1304 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1303 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1305 = internal constant [15 x i8] c"_ZNKSs5beginEv\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1306 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1300, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1300, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1305, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 532, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1304 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1307 = internal constant [4 x i8] c"end\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1308 = internal constant [12 x i8] c"_ZNSs3endEv\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1309 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str1307, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str1307, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str1308, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 540, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1299 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1310 = internal constant [13 x i8] c"_ZNKSs3endEv\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1311 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str1307, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str1307, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1310, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 551, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1304 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1312 = internal constant [128 x i8] c"reverse_iterator<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >\00", section "llvm.metadata"		; <[128 x i8]*> [#uses=1]
- at llvm.dbg.composite1313 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([128 x i8]* @.str1312, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 100, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1314 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1313 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1315 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1314 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1316 = internal constant [7 x i8] c"rbegin\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1317 = internal constant [15 x i8] c"_ZNSs6rbeginEv\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1318 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1316, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1316, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1317, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 560, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1315 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1319 = internal constant [134 x i8] c"reverse_iterator<__gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >\00", section "llvm.metadata"		; <[134 x i8]*> [#uses=1]
- at llvm.dbg.composite1320 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([134 x i8]* @.str1319, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1098 to %0*), i32 100, i64 0, i64 0, i64 0, i32 4, %0* null, %0* null, i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1321 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1320 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1322 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1321 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1323 = internal constant [16 x i8] c"_ZNKSs6rbeginEv\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1324 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1316, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1316, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1323, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 569, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1322 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1325 = internal constant [5 x i8] c"rend\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1326 = internal constant [13 x i8] c"_ZNSs4rendEv\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1327 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1325, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1325, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1326, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 578, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1315 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1328 = internal constant [14 x i8] c"_ZNKSs4rendEv\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1329 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1325, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1325, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1328, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 587, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1322 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1330 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1331 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1330 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1332 = internal constant [5 x i8] c"size\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1333 = internal constant [14 x i8] c"_ZNKSs4sizeEv\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1334 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1332, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1332, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1333, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 595, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1331 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1335 = internal constant [7 x i8] c"length\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1336 = internal constant [16 x i8] c"_ZNKSs6lengthEv\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1337 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1335, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1335, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1336, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 601, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1331 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1338 = internal constant [18 x i8] c"_ZNKSs8max_sizeEv\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1339 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str863, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str863, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1338, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 606, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1331 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1340 = internal constant [4 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1341 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1340 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1342 = internal constant [7 x i8] c"resize\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1343 = internal constant [16 x i8] c"_ZNSs6resizeEjc\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1344 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1342, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1342, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1343, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 622, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1341 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1345 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1346 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1345 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1347 = internal constant [15 x i8] c"_ZNSs6resizeEj\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1348 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1342, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1342, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1347, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 633, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1346 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1349 = internal constant [9 x i8] c"capacity\00", section "llvm.metadata"		; <[9 x i8]*> [#uses=1]
- at .str1350 = internal constant [18 x i8] c"_ZNKSs8capacityEv\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1351 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([9 x i8]* @.str1349, i32 0, i32 0), i8* getelementptr ([9 x i8]* @.str1349, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1350, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 641, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1331 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite1352 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1345 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1353 = internal constant [8 x i8] c"reserve\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1354 = internal constant [16 x i8] c"_ZNSs7reserveEj\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1355 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1353, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1353, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1354, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 484, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1352 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1356 = internal constant [6 x i8] c"clear\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1357 = internal constant [14 x i8] c"_ZNSs5clearEv\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1358 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1356, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1356, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1357, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 668, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1185 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1359 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype1032 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1360 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1359 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1361 = internal constant [6 x i8] c"empty\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1362 = internal constant [15 x i8] c"_ZNKSs5emptyEv\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1363 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1361, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1361, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1362, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 675, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1360 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1364 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype845 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1365 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1364 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1366 = internal constant [11 x i8] c"_ZNKSsixEj\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1367 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1366, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 690, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1365 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1368 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype839 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1369 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1368 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1370 = internal constant [10 x i8] c"_ZNSsixEj\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1371 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str334, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str1370, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 707, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1369 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1372 = internal constant [3 x i8] c"at\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at .str1373 = internal constant [12 x i8] c"_ZNKSs2atEj\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1374 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([3 x i8]* @.str1372, i32 0, i32 0), i8* getelementptr ([3 x i8]* @.str1372, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str1373, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 728, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1365 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1375 = internal constant [11 x i8] c"_ZNSs2atEj\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1376 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([3 x i8]* @.str1372, i32 0, i32 0), i8* getelementptr ([3 x i8]* @.str1372, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str1375, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 747, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1369 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1377 = internal constant [13 x i8] c"_ZNSspLERKSs\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1378 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1377, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 762, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1287 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1379 = internal constant [12 x i8] c"_ZNSspLEPKc\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1380 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str1379, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 771, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1291 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1381 = internal constant [10 x i8] c"_ZNSspLEc\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1382 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str92, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str1381, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 780, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1295 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1383 = internal constant [7 x i8] c"append\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1384 = internal constant [18 x i8] c"_ZNSs6appendERKSs\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1385 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1384, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 330, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1287 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1386 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1387 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1386 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1388 = internal constant [20 x i8] c"_ZNSs6appendERKSsjj\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1389 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1388, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 347, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1387 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1390 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1391 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1390 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1392 = internal constant [18 x i8] c"_ZNSs6appendEPKcj\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1393 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1392, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 303, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1391 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1394 = internal constant [17 x i8] c"_ZNSs6appendEPKc\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1395 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1394, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 824, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1291 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1396 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1397 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1396 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1398 = internal constant [16 x i8] c"_ZNSs6appendEjc\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1399 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1398, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 286, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1397 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1400 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* null, %0* null], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1401 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1400 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1402 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1383, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 851, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1401 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1403 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1404 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1403 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1405 = internal constant [10 x i8] c"push_back\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str1406 = internal constant [18 x i8] c"_ZNSs9push_backEc\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1407 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str1405, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str1405, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1406, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 859, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1404 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1408 = internal constant [7 x i8] c"assign\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1409 = internal constant [18 x i8] c"_ZNSs6assignERKSs\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1410 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1409, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 248, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1287 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1411 = internal constant [20 x i8] c"_ZNSs6assignERKSsjj\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1412 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1411, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 889, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1387 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1413 = internal constant [18 x i8] c"_ZNSs6assignEPKcj\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1414 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1413, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 264, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1391 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1415 = internal constant [17 x i8] c"_ZNSs6assignEPKc\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1416 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1415, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 917, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1291 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1417 = internal constant [16 x i8] c"_ZNSs6assignEjc\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1418 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1417, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 933, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1397 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite1419 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1400 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1420 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1408, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 946, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1419 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1421 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1422 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1421 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1423 = internal constant [7 x i8] c"insert\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1424 = internal constant [53 x i8] c"_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc\00", section "llvm.metadata"		; <[53 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1425 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([53 x i8]* @.str1424, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 962, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1422 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1426 = internal constant [5 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* null, %0* null], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1427 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1426 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1428 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 978, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1427 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1429 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1430 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1429 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1431 = internal constant [19 x i8] c"_ZNSs6insertEjRKSs\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1432 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1431, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 993, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1430 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1433 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1434 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1433 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1435 = internal constant [21 x i8] c"_ZNSs6insertEjRKSsjj\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1436 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1435, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1016, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1434 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1437 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1438 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1437 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1439 = internal constant [19 x i8] c"_ZNSs6insertEjPKcj\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1440 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1439, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 365, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1438 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1441 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1442 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1441 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1443 = internal constant [18 x i8] c"_ZNSs6insertEjPKc\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1444 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1443, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1056, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1442 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1445 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1446 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1445 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1447 = internal constant [17 x i8] c"_ZNSs6insertEjjc\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1448 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1447, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1079, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1446 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1449 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1450 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1449 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1451 = internal constant [52 x i8] c"_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1452 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1423, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str1451, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1096, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1450 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1453 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1454 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1453 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1455 = internal constant [6 x i8] c"erase\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1456 = internal constant [15 x i8] c"_ZNSs5eraseEjj\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1457 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1455, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1455, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1456, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1120, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1454 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1458 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1459 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1458 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1460 = internal constant [50 x i8] c"_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE\00", section "llvm.metadata"		; <[50 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1461 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1455, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1455, i32 0, i32 0), i8* getelementptr ([50 x i8]* @.str1460, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1136, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1459 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1462 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1463 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1462 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1464 = internal constant [53 x i8] c"_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_\00", section "llvm.metadata"		; <[53 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1465 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1455, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1455, i32 0, i32 0), i8* getelementptr ([53 x i8]* @.str1464, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1156, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1463 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1466 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1467 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1466 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1468 = internal constant [8 x i8] c"replace\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1469 = internal constant [21 x i8] c"_ZNSs7replaceEjjRKSs\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1470 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1469, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1183, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1467 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1471 = internal constant [7 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[7 x %0*]*> [#uses=1]
- at llvm.dbg.composite1472 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([7 x %0*]* @llvm.dbg.array1471 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1473 = internal constant [23 x i8] c"_ZNSs7replaceEjjRKSsjj\00", section "llvm.metadata"		; <[23 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1474 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([23 x i8]* @.str1473, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1206, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1472 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1475 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1476 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1475 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1477 = internal constant [21 x i8] c"_ZNSs7replaceEjjPKcj\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1478 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1477, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 397, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1476 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1479 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1480 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1479 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1481 = internal constant [20 x i8] c"_ZNSs7replaceEjjPKc\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1482 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1481, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1248, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1480 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1483 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1484 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1483 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1485 = internal constant [19 x i8] c"_ZNSs7replaceEjjjc\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1486 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1485, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1271, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1484 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1487 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1488 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1487 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1489 = internal constant [59 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_RKSs\00", section "llvm.metadata"		; <[59 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1490 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([59 x i8]* @.str1489, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1289, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1488 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1491 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1492 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1491 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1493 = internal constant [59 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj\00", section "llvm.metadata"		; <[59 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1494 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([59 x i8]* @.str1493, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1307, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1492 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1495 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1496 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1495 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1497 = internal constant [58 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKc\00", section "llvm.metadata"		; <[58 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1498 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([58 x i8]* @.str1497, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1328, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1496 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1499 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1500 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1499 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1501 = internal constant [57 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc\00", section "llvm.metadata"		; <[57 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1502 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([57 x i8]* @.str1501, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1349, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1500 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1503 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* null, %0* null], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1504 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1503 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1505 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1373, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1504 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1506 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1507 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1506 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1508 = internal constant [61 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S1_S1_\00", section "llvm.metadata"		; <[61 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1509 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([61 x i8]* @.str1508, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1385, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1507 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1510 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1511 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1510 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1512 = internal constant [61 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcS4_\00", section "llvm.metadata"		; <[61 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1513 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([61 x i8]* @.str1512, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1396, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1511 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1514 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1515 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1514 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1516 = internal constant [61 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_S2_S2_\00", section "llvm.metadata"		; <[61 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1517 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([61 x i8]* @.str1516, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1406, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1515 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1518 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1231 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1231 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1519 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1518 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1520 = internal constant [70 x i8] c"_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_NS0_IPKcSsEES5_\00", section "llvm.metadata"		; <[70 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1521 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1468, i32 0, i32 0), i8* getelementptr ([70 x i8]* @.str1520, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1417, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1519 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1522 = internal constant [18 x i8] c"cpp_type_traits.h\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1523 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([18 x i8]* @.str1522, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1524 = internal constant [12 x i8] c"__true_type\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at llvm.dbg.composite1526 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str1524, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1523 to %0*), i32 97, i64 8, i64 8, i64 0, i32 0, %0* null, %0* bitcast ([0 x %0*]* @llvm.dbg.array680 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1527 = internal constant [7 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1526 to %0*)], section "llvm.metadata"		; <[7 x %0*]*> [#uses=1]
- at llvm.dbg.composite1528 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([7 x %0*]* @llvm.dbg.array1527 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1529 = internal constant [20 x i8] c"_M_replace_dispatch\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1530 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([20 x i8]* @.str1529, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1529, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1430, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1528 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1531 = internal constant [13 x i8] c"__false_type\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.composite1533 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1531, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1523 to %0*), i32 98, i64 8, i64 8, i64 0, i32 0, %0* null, %0* bitcast ([0 x %0*]* @llvm.dbg.array680 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1534 = internal constant [7 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1176 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1533 to %0*)], section "llvm.metadata"		; <[7 x %0*]*> [#uses=1]
- at llvm.dbg.composite1535 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([7 x %0*]* @llvm.dbg.array1534 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1536 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([20 x i8]* @.str1529, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1529, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1436, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1535 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1537 = internal constant [15 x i8] c"_M_replace_aux\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at .str1538 = internal constant [27 x i8] c"_ZNSs14_M_replace_auxEjjjc\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1539 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str1537, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1537, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str1538, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 651, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1484 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1540 = internal constant [16 x i8] c"_M_replace_safe\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str1541 = internal constant [30 x i8] c"_ZNSs15_M_replace_safeEjjPKcj\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1542 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str1540, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1540, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str1541, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 664, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1476 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1543 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1533 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1544 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1543 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1545 = internal constant [17 x i8] c"_S_construct_aux\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1546 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str1545, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1545, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1451, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1544 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1547 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1526 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1548 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1547 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1549 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str1545, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1545, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1460, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1548 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1550 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1551 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1550 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1552 = internal constant [13 x i8] c"_S_construct\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1553 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1466, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1551 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1554 = internal constant [26 x i8] c"stl_iterator_base_types.h\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit1555 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([26 x i8]* @.str1554, i32 0, i32 0), i8* getelementptr ([115 x i8]* @.str638, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str1556 = internal constant [19 x i8] c"input_iterator_tag\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.composite1558 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([19 x i8]* @.str1556, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1555 to %0*), i32 80, i64 8, i64 8, i64 0, i32 0, %0* null, %0* bitcast ([0 x %0*]* @llvm.dbg.array680 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1559 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1558 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1560 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1559 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1561 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1476, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1560 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1562 = internal constant [21 x i8] c"forward_iterator_tag\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1564 = internal constant %llvm.dbg.derivedtype.type { i32 458780, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1555 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1558 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1565 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1564 to %0*)], section "llvm.metadata"		; <[1 x %0*]*> [#uses=1]
- at llvm.dbg.composite1566 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([21 x i8]* @.str1562, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1555 to %0*), i32 84, i64 8, i64 8, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array1565 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.array1567 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* null, %0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*), %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1566 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1568 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1567 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1569 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1483, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1568 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1570 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype887 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1571 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1570 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1572 = internal constant [30 x i8] c"_ZNSs12_S_constructEjcRKSaIcE\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1573 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1552, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str1572, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 166, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1571 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1574 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1575 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1574 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1576 = internal constant [5 x i8] c"copy\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1577 = internal constant [17 x i8] c"_ZNKSs4copyEPcjj\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1578 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1576, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1576, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1577, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 705, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1575 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1579 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype923 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1285 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1580 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1579 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1581 = internal constant [5 x i8] c"swap\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1582 = internal constant [15 x i8] c"_ZNSs4swapERSs\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1583 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1581, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1581, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1582, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 501, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1580 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1584 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1585 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1584 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1586 = internal constant [6 x i8] c"c_str\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1587 = internal constant [15 x i8] c"_ZNKSs5c_strEv\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1588 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1586, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1586, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1587, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1522, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1585 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1589 = internal constant [5 x i8] c"data\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1590 = internal constant [14 x i8] c"_ZNKSs4dataEv\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1591 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1589, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1589, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1590, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1532, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1585 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1592 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite902 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1593 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1592 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1594 = internal constant [14 x i8] c"get_allocator\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str1595 = internal constant [24 x i8] c"_ZNKSs13get_allocatorEv\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1596 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1594, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1594, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str1595, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1539, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1593 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1597 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1598 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1597 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1599 = internal constant [5 x i8] c"find\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str1600 = internal constant [18 x i8] c"_ZNKSs4findEPKcjj\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1601 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1600, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 719, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1598 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1602 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1603 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1602 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1604 = internal constant [18 x i8] c"_ZNKSs4findERKSsj\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1605 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1604, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1567, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1603 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1606 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1607 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1606 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1608 = internal constant [17 x i8] c"_ZNKSs4findEPKcj\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1609 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1608, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1581, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1607 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1610 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype282 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype672 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1611 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1610 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1612 = internal constant [15 x i8] c"_ZNKSs4findEcj\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1613 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1599, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1612, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 742, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1611 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite1614 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1602 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1615 = internal constant [6 x i8] c"rfind\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1616 = internal constant [19 x i8] c"_ZNKSs5rfindERKSsj\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1617 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1616, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1611, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1614 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1618 = internal constant [19 x i8] c"_ZNKSs5rfindEPKcjj\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1619 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1618, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 760, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1598 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite1620 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1606 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1621 = internal constant [18 x i8] c"_ZNKSs5rfindEPKcj\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1622 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1621, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1639, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1620 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.composite1623 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1610 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1624 = internal constant [16 x i8] c"_ZNKSs5rfindEcj\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1625 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1615, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1624, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 781, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1623 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1626 = internal constant [14 x i8] c"find_first_of\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str1627 = internal constant [28 x i8] c"_ZNKSs13find_first_ofERKSsj\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1628 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str1627, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1669, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1603 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1629 = internal constant [28 x i8] c"_ZNKSs13find_first_ofEPKcjj\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1630 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str1629, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 798, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1598 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1631 = internal constant [27 x i8] c"_ZNKSs13find_first_ofEPKcj\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1632 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str1631, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1697, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1607 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1633 = internal constant [25 x i8] c"_ZNKSs13find_first_ofEcj\00", section "llvm.metadata"		; <[25 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1634 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1626, i32 0, i32 0), i8* getelementptr ([25 x i8]* @.str1633, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1716, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1611 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1635 = internal constant [13 x i8] c"find_last_of\00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str1636 = internal constant [27 x i8] c"_ZNKSs12find_last_ofERKSsj\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1637 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str1636, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1730, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1614 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1638 = internal constant [27 x i8] c"_ZNKSs12find_last_ofEPKcjj\00", section "llvm.metadata"		; <[27 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1639 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([27 x i8]* @.str1638, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 813, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1598 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1640 = internal constant [26 x i8] c"_ZNKSs12find_last_ofEPKcj\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1641 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str1640, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1758, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1620 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1642 = internal constant [24 x i8] c"_ZNKSs12find_last_ofEcj\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1643 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([13 x i8]* @.str1635, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str1642, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1777, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1623 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1644 = internal constant [18 x i8] c"find_first_not_of\00", section "llvm.metadata"		; <[18 x i8]*> [#uses=1]
- at .str1645 = internal constant [32 x i8] c"_ZNKSs17find_first_not_ofERKSsj\00", section "llvm.metadata"		; <[32 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1646 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str1645, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1791, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1603 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1647 = internal constant [32 x i8] c"_ZNKSs17find_first_not_ofEPKcjj\00", section "llvm.metadata"		; <[32 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1648 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([32 x i8]* @.str1647, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 834, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1598 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1649 = internal constant [31 x i8] c"_ZNKSs17find_first_not_ofEPKcj\00", section "llvm.metadata"		; <[31 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1650 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([31 x i8]* @.str1649, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1820, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1607 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1651 = internal constant [29 x i8] c"_ZNKSs17find_first_not_ofEcj\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1652 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([18 x i8]* @.str1644, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str1651, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 846, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1611 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1653 = internal constant [17 x i8] c"find_last_not_of\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at .str1654 = internal constant [31 x i8] c"_ZNKSs16find_last_not_ofERKSsj\00", section "llvm.metadata"		; <[31 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1655 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([31 x i8]* @.str1654, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1850, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1614 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1656 = internal constant [31 x i8] c"_ZNKSs16find_last_not_ofEPKcjj\00", section "llvm.metadata"		; <[31 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1657 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([31 x i8]* @.str1656, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 857, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1598 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1658 = internal constant [30 x i8] c"_ZNKSs16find_last_not_ofEPKcj\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1659 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str1658, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1879, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1620 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1660 = internal constant [28 x i8] c"_ZNKSs16find_last_not_ofEcj\00", section "llvm.metadata"		; <[28 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1661 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1653, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str1660, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 878, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1623 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1662 = internal constant [4 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1693 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[4 x %0*]*> [#uses=1]
- at llvm.dbg.composite1663 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([4 x %0*]* @llvm.dbg.array1662 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1664 = internal constant [7 x i8] c"substr\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1665 = internal constant [17 x i8] c"_ZNKSs6substrEjj\00", section "llvm.metadata"		; <[17 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1666 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1664, i32 0, i32 0), i8* getelementptr ([7 x i8]* @.str1664, i32 0, i32 0), i8* getelementptr ([17 x i8]* @.str1665, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1911, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1663 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1667 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1668 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1667 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1669 = internal constant [8 x i8] c"compare\00", section "llvm.metadata"		; <[8 x i8]*> [#uses=1]
- at .str1670 = internal constant [20 x i8] c"_ZNKSs7compareERKSs\00", section "llvm.metadata"		; <[20 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1671 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([20 x i8]* @.str1670, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit807 to %0*), i32 1929, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1668 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1672 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1673 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1672 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1674 = internal constant [22 x i8] c"_ZNKSs7compareEjjRKSs\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1675 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str1674, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 898, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1673 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1676 = internal constant [7 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1259 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[7 x %0*]*> [#uses=1]
- at llvm.dbg.composite1677 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([7 x %0*]* @llvm.dbg.array1676 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1678 = internal constant [24 x i8] c"_ZNKSs7compareEjjRKSsjj\00", section "llvm.metadata"		; <[24 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1679 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([24 x i8]* @.str1678, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 914, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1677 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1680 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1681 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1680 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1682 = internal constant [19 x i8] c"_ZNKSs7compareEPKc\00", section "llvm.metadata"		; <[19 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1683 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([19 x i8]* @.str1682, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 931, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1681 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1684 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1685 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1684 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1686 = internal constant [21 x i8] c"_ZNKSs7compareEjjPKc\00", section "llvm.metadata"		; <[21 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1687 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([21 x i8]* @.str1686, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 946, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1685 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1688 = internal constant [6 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype917 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype280 to %0*)], section "llvm.metadata"		; <[6 x %0*]*> [#uses=1]
- at llvm.dbg.composite1689 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([6 x %0*]* @llvm.dbg.array1688 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1690 = internal constant [22 x i8] c"_ZNKSs7compareEjjPKcj\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1691 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([8 x i8]* @.str1669, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str1690, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1070 to %0*), i32 963, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1689 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1692 = internal constant [143 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype913 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram922 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram927 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1096 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1180 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1183 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1188 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1193 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1198 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1203 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1208 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1213 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1216 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1221 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1225 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1229 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1235 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1239 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1243 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1248 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1251 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1253 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1255 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1258 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1262 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1265 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1268 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1271 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1274 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1277 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1280 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1284 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1289 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1293 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1297 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1302 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1306 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1309 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1311 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1318 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1324 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1327 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1329 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1334 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1337 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1339 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1344 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1348 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1351 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1355 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1358 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1363 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1367 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1371 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1374 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1376 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1378 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1380 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1382 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1385 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1389 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1393 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1395 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1399 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1402 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1407 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1410 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1412 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1414 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1416 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1418 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1420 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1425 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1428 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1432 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1436 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1440 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1444 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1448 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1452 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1457 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1461 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1465 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1470 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1474 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1478 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1482 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1486 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1490 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1494 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1498 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1502 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1505 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1509 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1513 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1517 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1521 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1530 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1536 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1539 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1542 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1546 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1549 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1553 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1561 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1569 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1573 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1578 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1583 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1588 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1591 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1596 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1601 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1605 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1609 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1613 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1617 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1619 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1622 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1625 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1628 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1630 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1632 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1634 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1637 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1639 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1641 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1643 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1646 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1648 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1650 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1652 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1655 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1657 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1659 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1661 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1666 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1671 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1675 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1679 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1683 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1687 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1691 to %0*)], section "llvm.metadata"		; <[143 x %0*]*> [#uses=1]
- at llvm.dbg.composite1693 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([64 x i8]* @.str804, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit803 to %0*), i32 56, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([143 x %0*]* @llvm.dbg.array1692 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1694 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str914, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit803 to %0*), i32 56, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1693 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str1695 = internal constant [7 x i8] c"_M_msg\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype1696 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str1695, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 109, i64 32, i64 32, i64 32, i32 1, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1694 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1697 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1714 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1698 = internal constant %llvm.dbg.derivedtype.type { i32 458774, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([7 x i8]* @.str914, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit803 to %0*), i32 56, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype916 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1699 = internal constant %llvm.dbg.derivedtype.type { i32 458768, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1698 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1700 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1697 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1699 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1701 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1700 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1702 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str775, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str775, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 114, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1701 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1703 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1697 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1704 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1703 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1705 = internal constant [15 x i8] c"~runtime_error\00", section "llvm.metadata"		; <[15 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1706 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str1705, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str1705, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 117, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1704 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.derivedtype1707 = internal constant %llvm.dbg.derivedtype.type { i32 458790, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 64, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1714 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1708 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1707 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1709 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype791 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1708 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1710 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1709 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1711 = internal constant [29 x i8] c"_ZNKSt13runtime_error4whatEv\00", section "llvm.metadata"		; <[29 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1712 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str796, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str796, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str1711, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 122, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1710 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1713 = internal constant [5 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype801 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1696 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1702 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1706 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1712 to %0*)], section "llvm.metadata"		; <[5 x %0*]*> [#uses=1]
- at llvm.dbg.composite1714 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str775, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 108, i64 64, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([5 x %0*]* @llvm.dbg.array1713 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1715 = internal constant %llvm.dbg.derivedtype.type { i32 458780, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1714 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype1716 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1721 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1717 = internal constant [3 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1716 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1699 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1718 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1717 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram1719 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str773, i32 0, i32 0), i8* getelementptr ([15 x i8]* @.str773, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 136, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1718 to %0*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1720 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1715 to %0*), %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1719 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1721 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([15 x i8]* @.str773, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 134, i64 64, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1720 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype1722 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1721 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1723 = internal constant [2 x %0*] [%0* null, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1722 to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1724 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1723 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1725 = internal constant [16 x i8] c"~overflow_error\00", section "llvm.metadata"		; <[16 x i8]*> [#uses=1]
- at .str1726 = internal constant [26 x i8] c"_ZNSt14overflow_errorD1Ev\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1727 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str1725, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1725, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str1726, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*), i32 134, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1724 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at _ZTVSt14overflow_error = weak constant [5 x i32 (...)*] [i32 (...)* null, i32 (...)* bitcast (%struct.__si_class_type_info_pseudo* @_ZTISt14overflow_error to i32 (...)*), i32 (...)* bitcast (void (%"struct.std::overflow_error"*)* @_ZNSt14overflow_errorD1Ev to i32 (...)*), i32 (...)* bitcast (void (%"struct.std::overflow_error"*)* @_ZNSt14overflow_errorD0Ev to i32 (...)*), i32 (...)* bitcast (i8* (%"struct.std::runtime_error"*)* @_ZNKSt13runtime_error4whatEv to i32 (...)*)], align 8		; <[5 x i32 (...)*]*> [#uses=1]
- at .str1735 = internal constant [26 x i8] c"_ZNSt14overflow_errorD0Ev\00", section "llvm.metadata"		; <[26 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1736 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([16 x i8]* @.str1725, i32 0, i32 0), i8* getelementptr ([16 x i8]* @.str1725, i32 0, i32 0), i8* getelementptr ([26 x i8]* @.str1735, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 702, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1724 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array1738 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %0*)], section "llvm.metadata"		; <[2 x %0*]*> [#uses=1]
- at llvm.dbg.composite1739 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1738 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1740 = internal constant [14 x i8] c"__complex_exp\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str1741 = internal constant [22 x i8] c"_ZSt13__complex_expCd\00", section "llvm.metadata"		; <[22 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1742 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([14 x i8]* @.str1740, i32 0, i32 0), i8* getelementptr ([14 x i8]* @.str1740, i32 0, i32 0), i8* getelementptr ([22 x i8]* @.str1741, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 730, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1739 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1744 = internal constant [12 x i8] c"exp<double>\00", section "llvm.metadata"		; <[12 x i8]*> [#uses=1]
- at .str1745 = internal constant [31 x i8] c"_ZSt3expIdESt7complexIT_ERKS2_\00", section "llvm.metadata"		; <[31 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1746 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str1744, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str1744, i32 0, i32 0), i8* getelementptr ([31 x i8]* @.str1745, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*), i32 738, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite573 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprogram1748 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @.str457, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str457, i32 0, i32 0), i8* getelementptr ([29 x i8]* @.str495, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 497, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite488 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable1751 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1748 to %0*), i8* getelementptr ([7 x i8]* @.str259, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 503, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1752 = internal constant [2 x i8] c"u\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable1753 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1748 to %0*), i8* getelementptr ([2 x i8]* @.str1752, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 501, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1754 = internal constant [2 x i8] c"t\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable1755 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1748 to %0*), i8* getelementptr ([2 x i8]* @.str1754, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 501, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1756 = internal constant [2 x i8] c"w\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable1757 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1748 to %0*), i8* getelementptr ([2 x i8]* @.str1756, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 501, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1758 = internal constant [3 x i8] c"wm\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.variable1759 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1748 to %0*), i8* getelementptr ([3 x i8]* @.str1758, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 501, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram1771 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([12 x i8]* @.str460, i32 0, i32 0), i8* getelementptr ([12 x i8]* @.str460, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str497, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 535, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite492 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable1774 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1771 to %0*), i8* getelementptr ([7 x i8]* @.str259, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 541, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.variable1775 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1771 to %0*), i8* getelementptr ([2 x i8]* @.str1752, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 539, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.variable1776 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1771 to %0*), i8* getelementptr ([2 x i8]* @.str1754, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 539, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.variable1777 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1771 to %0*), i8* getelementptr ([2 x i8]* @.str1756, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 539, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.variable1778 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1771 to %0*), i8* getelementptr ([3 x i8]* @.str1758, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 539, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite223 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.subprogram1785 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([10 x i8]* @.str463, i32 0, i32 0), i8* getelementptr ([28 x i8]* @.str499, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 576, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite351 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.variable1791 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1785 to %0*), i8* getelementptr ([7 x i8]* @.str259, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 614, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1794 = internal constant [5 x i8] c"dft2\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.variable1795 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1785 to %0*), i8* getelementptr ([5 x i8]* @.str1794, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 601, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1796 = internal constant [5 x i8] c"dft1\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.variable1797 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1785 to %0*), i8* getelementptr ([5 x i8]* @.str1796, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 600, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite486 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1798 = internal constant [3 x i8] c"a2\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.variable1799 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1785 to %0*), i8* getelementptr ([3 x i8]* @.str1798, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 591, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1800 = internal constant [3 x i8] c"a1\00", section "llvm.metadata"		; <[3 x i8]*> [#uses=1]
- at llvm.dbg.variable1801 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1785 to %0*), i8* getelementptr ([3 x i8]* @.str1800, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 590, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at llvm.dbg.derivedtype1802 = internal constant %llvm.dbg.derivedtype.type { i32 458767, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype837 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array1803 = internal constant [3 x %0*] [%0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype269 to %0*), %0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1802 to %0*)], section "llvm.metadata"		; <[3 x %0*]*> [#uses=1]
- at llvm.dbg.composite1804 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([3 x %0*]* @llvm.dbg.array1803 to %0*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str1805 = internal constant [5 x i8] c"main\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at llvm.dbg.subprogram1806 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @.str1805, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1805, i32 0, i32 0), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 654, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1804 to %0*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str1816 = internal constant [6 x i8] c"poly3\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.variable1817 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1806 to %0*), i8* getelementptr ([6 x i8]* @.str1816, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 674, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1818 = internal constant [6 x i8] c"poly2\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.variable1819 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1806 to %0*), i8* getelementptr ([6 x i8]* @.str1818, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 673, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1820 = internal constant [6 x i8] c"poly1\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.variable1821 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1806 to %0*), i8* getelementptr ([6 x i8]* @.str1820, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 672, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite518 to %0*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
- at .str1824 = internal constant [4 x i8] c"-ga\00", align 4		; <[4 x i8]*> [#uses=0]
- at _ZSt4cout = external global %"struct.std::basic_ostream<char,std::char_traits<char> >"		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=3]
- at .str1825 = internal constant [32 x i8] c"\0Afftbench (Std. C++) run time: \00"		; <[32 x i8]*> [#uses=1]
- at .str1826 = internal constant [3 x i8] c"\0A\0A\00"		; <[3 x i8]*> [#uses=1]
- at llvm.global_ctors = appending global [1 x %2] [%2 { i32 65535, void ()* @_GLOBAL__I_main }]		; <[1 x %2]*> [#uses=0]
-
- at _ZL20__gthrw_pthread_oncePiPFvvE = alias weak i32 (i32*, void ()*)* @pthread_once		; <i32 (i32*, void ()*)*> [#uses=0]
- at _ZL27__gthrw_pthread_getspecificj = alias weak i8* (i32)* @pthread_getspecific		; <i8* (i32)*> [#uses=0]
- at _ZL27__gthrw_pthread_setspecificjPKv = alias weak i32 (i32, i8*)* @pthread_setspecific		; <i32 (i32, i8*)*> [#uses=0]
- at _ZL22__gthrw_pthread_createPmPK14pthread_attr_tPFPvS3_ES3_ = alias weak i32 (i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)* @pthread_create		; <i32 (i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)*> [#uses=0]
- at _ZL22__gthrw_pthread_cancelm = alias weak i32 (i32)* @pthread_cancel		; <i32 (i32)*> [#uses=0]
- at _ZL26__gthrw_pthread_mutex_lockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_lock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL29__gthrw_pthread_mutex_trylockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_trylock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL28__gthrw_pthread_mutex_unlockP15pthread_mutex_t = alias weak i32 (%struct.pthread_mutex_t*)* @pthread_mutex_unlock		; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
- at _ZL26__gthrw_pthread_mutex_initP15pthread_mutex_tPK19pthread_mutexattr_t = alias weak i32 (%struct.pthread_mutex_t*, %struct..0._50*)* @pthread_mutex_init		; <i32 (%struct.pthread_mutex_t*, %struct..0._50*)*> [#uses=0]
- at _ZL26__gthrw_pthread_key_createPjPFvPvE = alias weak i32 (i32*, void (i8*)*)* @pthread_key_create		; <i32 (i32*, void (i8*)*)*> [#uses=0]
- at _ZL26__gthrw_pthread_key_deletej = alias weak i32 (i32)* @pthread_key_delete		; <i32 (i32)*> [#uses=0]
- at _ZL30__gthrw_pthread_mutexattr_initP19pthread_mutexattr_t = alias weak i32 (%struct..0._50*)* @pthread_mutexattr_init		; <i32 (%struct..0._50*)*> [#uses=0]
- at _ZL33__gthrw_pthread_mutexattr_settypeP19pthread_mutexattr_ti = alias weak i32 (%struct..0._50*, i32)* @pthread_mutexattr_settype		; <i32 (%struct..0._50*, i32)*> [#uses=0]
- at _ZL33__gthrw_pthread_mutexattr_destroyP19pthread_mutexattr_t = alias weak i32 (%struct..0._50*)* @pthread_mutexattr_destroy		; <i32 (%struct..0._50*)*> [#uses=0]
-
-define i32 @main(i32 %argc, i8** nocapture %argv) {
-entry:
-	%n.0.reg2mem = alloca i32		; <i32*> [#uses=5]
-	%poly3 = alloca %"struct.polynomial<double>", align 8		; <%"struct.polynomial<double>"*> [#uses=5]
-	%poly2 = alloca %"struct.polynomial<double>", align 8		; <%"struct.polynomial<double>"*> [#uses=6]
-	%poly1 = alloca %"struct.polynomial<double>", align 8		; <%"struct.polynomial<double>"*> [#uses=6]
-	%0 = alloca %"struct.polynomial<double>", align 8		; <%"struct.polynomial<double>"*> [#uses=4]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1806 to %0*))
-	%1 = bitcast %"struct.polynomial<double>"* %poly3 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %1, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1817 to %0*))
-	%2 = bitcast %"struct.polynomial<double>"* %poly2 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %2, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1819 to %0*))
-	%3 = bitcast %"struct.polynomial<double>"* %poly1 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %3, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1821 to %0*))
-	call void @llvm.dbg.stoppoint(i32 659, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%4 = icmp sgt i32 %argc, 1		; <i1> [#uses=1]
-	br i1 %4, label %bb4, label %bb5
-
-bb1:		; preds = %bb4
-	call void @llvm.dbg.stoppoint(i32 663, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%5 = getelementptr i8** %argv, i32 1		; <i8**> [#uses=1]
-	%6 = load i8** %5, align 1		; <i8*> [#uses=1]
-	%tmp = bitcast i8* %6 to i32*		; <i32*> [#uses=1]
-	%lhsv = load i32* %tmp, align 1		; <i32> [#uses=1]
-	%7 = icmp eq i32 %lhsv, 6383405		; <i1> [#uses=1]
-	br i1 %7, label %bb5, label %bb3
-
-bb3:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 661, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%8 = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %bb4
-
-bb4:		; preds = %bb3, %entry
-	%i.0 = phi i32 [ %8, %bb3 ], [ 1, %entry ]		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 661, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%9 = icmp slt i32 %i.0, %argc		; <i1> [#uses=1]
-	br i1 %9, label %bb1, label %bb5
-
-bb5:		; preds = %bb4, %bb1, %entry
-	%ga_testing.0 = phi i8 [ 0, %entry ], [ 0, %bb4 ], [ 1, %bb1 ]		; <i8> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 672, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdEC1Ej(%"struct.polynomial<double>"* %poly1, i32 524288)
-	call void @llvm.dbg.stoppoint(i32 673, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdEC1Ej(%"struct.polynomial<double>"* %poly2, i32 524288)
-			to label %invcont unwind label %lpad
-
-invcont:		; preds = %bb5
-	call void @llvm.dbg.stoppoint(i32 674, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdEC1Ej(%"struct.polynomial<double>"* %poly3, i32 1048575)
-			to label %bb8.thread unwind label %lpad47
-
-bb8.thread:		; preds = %invcont
-	store i32 0, i32* %n.0.reg2mem
-	call void @llvm.dbg.stoppoint(i32 676, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb7
-
-bb7:		; preds = %bb8, %bb8.thread
-	call void @llvm.dbg.stoppoint(i32 678, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%n.0.reload3 = load i32* %n.0.reg2mem		; <i32> [#uses=1]
-	%10 = call double* @_ZN10polynomialIdEixEj(%"struct.polynomial<double>"* %poly1, i32 %n.0.reload3) nounwind		; <double*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 68, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%11 = load i32* @_ZZL13random_doublevE4seed, align 4		; <i32> [#uses=1]
-	%12 = xor i32 %11, 123459876		; <i32> [#uses=3]
-	store i32 %12, i32* @_ZZL13random_doublevE4seed, align 4
-	call void @llvm.dbg.stoppoint(i32 69, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%13 = sdiv i32 %12, 127773		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 70, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%14 = mul i32 %13, 127773		; <i32> [#uses=1]
-	%15 = sub i32 %12, %14		; <i32> [#uses=1]
-	%16 = mul i32 %15, 16807		; <i32> [#uses=1]
-	%17 = mul i32 %13, 2836		; <i32> [#uses=1]
-	%18 = sub i32 %16, %17		; <i32> [#uses=2]
-	store i32 %18, i32* @_ZZL13random_doublevE4seed, align 4
-	call void @llvm.dbg.stoppoint(i32 72, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%19 = icmp slt i32 %18, 0		; <i1> [#uses=1]
-	br i1 %19, label %bb.i, label %_ZL13random_doublev.exit
-
-bb.i:		; preds = %bb7
-	call void @llvm.dbg.stoppoint(i32 73, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%20 = load i32* @_ZZL13random_doublevE4seed, align 4		; <i32> [#uses=1]
-	%21 = add i32 %20, 2147483647		; <i32> [#uses=1]
-	store i32 %21, i32* @_ZZL13random_doublevE4seed, align 4
-	br label %_ZL13random_doublev.exit
-
-_ZL13random_doublev.exit:		; preds = %bb.i, %bb7
-	call void @llvm.dbg.stoppoint(i32 75, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%22 = load i32* @_ZZL13random_doublevE4seed, align 4		; <i32> [#uses=2]
-	%23 = sitofp i32 %22 to double		; <double> [#uses=1]
-	%24 = fmul double %23, 0x3E340000002813D9		; <double> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 76, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%25 = xor i32 %22, 123459876		; <i32> [#uses=1]
-	store i32 %25, i32* @_ZZL13random_doublevE4seed, align 4
-	call void @llvm.dbg.stoppoint(i32 78, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	store double %24, double* %10, align 8
-	call void @llvm.dbg.stoppoint(i32 679, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%n.0.reload4 = load i32* %n.0.reg2mem		; <i32> [#uses=1]
-	%26 = call double* @_ZN10polynomialIdEixEj(%"struct.polynomial<double>"* %poly2, i32 %n.0.reload4) nounwind		; <double*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 68, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%27 = load i32* @_ZZL13random_doublevE4seed, align 4		; <i32> [#uses=1]
-	%28 = xor i32 %27, 123459876		; <i32> [#uses=3]
-	store i32 %28, i32* @_ZZL13random_doublevE4seed, align 4
-	call void @llvm.dbg.stoppoint(i32 69, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%29 = sdiv i32 %28, 127773		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 70, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%30 = mul i32 %29, 127773		; <i32> [#uses=1]
-	%31 = sub i32 %28, %30		; <i32> [#uses=1]
-	%32 = mul i32 %31, 16807		; <i32> [#uses=1]
-	%33 = mul i32 %29, 2836		; <i32> [#uses=1]
-	%34 = sub i32 %32, %33		; <i32> [#uses=2]
-	store i32 %34, i32* @_ZZL13random_doublevE4seed, align 4
-	call void @llvm.dbg.stoppoint(i32 72, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%35 = icmp slt i32 %34, 0		; <i1> [#uses=1]
-	br i1 %35, label %bb.i1, label %bb8
-
-bb.i1:		; preds = %_ZL13random_doublev.exit
-	call void @llvm.dbg.stoppoint(i32 73, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%36 = load i32* @_ZZL13random_doublevE4seed, align 4		; <i32> [#uses=1]
-	%37 = add i32 %36, 2147483647		; <i32> [#uses=1]
-	store i32 %37, i32* @_ZZL13random_doublevE4seed, align 4
-	br label %bb8
-
-bb8:		; preds = %bb.i1, %_ZL13random_doublev.exit
-	call void @llvm.dbg.stoppoint(i32 75, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%38 = load i32* @_ZZL13random_doublevE4seed, align 4		; <i32> [#uses=2]
-	%39 = sitofp i32 %38 to double		; <double> [#uses=1]
-	%40 = fmul double %39, 0x3E340000002813D9		; <double> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 76, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%41 = xor i32 %38, 123459876		; <i32> [#uses=1]
-	store i32 %41, i32* @_ZZL13random_doublevE4seed, align 4
-	call void @llvm.dbg.stoppoint(i32 78, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	store double %40, double* %26, align 8
-	call void @llvm.dbg.stoppoint(i32 676, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%n.0.reload5 = load i32* %n.0.reg2mem		; <i32> [#uses=1]
-	%42 = add i32 %n.0.reload5, 1		; <i32> [#uses=2]
-	store i32 %42, i32* %n.0.reg2mem
-	call void @llvm.dbg.stoppoint(i32 676, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%43 = icmp sgt i32 %42, 524287		; <i1> [#uses=1]
-	br i1 %43, label %bb9, label %bb7
-
-bb9:		; preds = %bb8
-	call void @llvm.dbg.stoppoint(i32 687, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZNK10polynomialIdEmlERKS0_(%"struct.polynomial<double>"* noalias sret %0, %"struct.polynomial<double>"* %poly1, %"struct.polynomial<double>"* %poly2)
-			to label %invcont10 unwind label %lpad51
-
-invcont10:		; preds = %bb9
-	call void @llvm.dbg.stoppoint(i32 687, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%44 = invoke %"struct.polynomial<double>"* @_ZN10polynomialIdEaSERKS0_(%"struct.polynomial<double>"* %poly3, %"struct.polynomial<double>"* %0)
-			to label %invcont11 unwind label %lpad55		; <%"struct.polynomial<double>"*> [#uses=0]
-
-invcont11:		; preds = %invcont10
-	call void @llvm.dbg.stoppoint(i32 687, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %0)
-			to label %bb16 unwind label %lpad51
-
-bb16:		; preds = %invcont11
-	call void @llvm.dbg.stoppoint(i32 695, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%toBool = icmp eq i8 %ga_testing.0, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %bb19, label %bb17
-
-bb17:		; preds = %bb16
-	call void @llvm.dbg.stoppoint(i32 696, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%45 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEd(%"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZSt4cout, double 0.000000e+00)
-			to label %bb23 unwind label %lpad51		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
-
-bb19:		; preds = %bb16
-	call void @llvm.dbg.stoppoint(i32 698, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%46 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZSt4cout, i8* getelementptr ([32 x i8]* @.str1825, i32 0, i32 0))
-			to label %invcont20 unwind label %lpad51		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
-
-invcont20:		; preds = %bb19
-	call void @llvm.dbg.stoppoint(i32 698, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%47 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEd(%"struct.std::basic_ostream<char,std::char_traits<char> >"* %46, double 0.000000e+00)
-			to label %invcont21 unwind label %lpad51		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=1]
-
-invcont21:		; preds = %invcont20
-	call void @llvm.dbg.stoppoint(i32 698, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%48 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"struct.std::basic_ostream<char,std::char_traits<char> >"* %47, i8* getelementptr ([3 x i8]* @.str1826, i32 0, i32 0))
-			to label %bb23 unwind label %lpad51		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
-
-bb23:		; preds = %invcont21, %bb17
-	call void @llvm.dbg.stoppoint(i32 700, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%49 = invoke %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSo5flushEv(%"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZSt4cout)
-			to label %invcont24 unwind label %lpad51		; <%"struct.std::basic_ostream<char,std::char_traits<char> >"*> [#uses=0]
-
-invcont24:		; preds = %bb23
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %poly3)
-			to label %bb31 unwind label %lpad47
-
-bb31:		; preds = %invcont24
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %poly2)
-			to label %bb38 unwind label %lpad
-
-bb38:		; preds = %bb31
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %poly1)
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1806 to %0*))
-	ret i32 0
-
-lpad:		; preds = %bb31, %bb5
-	%eh_ptr = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select46 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad
-
-lpad47:		; preds = %invcont24, %invcont
-	%eh_ptr48 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select50 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr48, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad75
-
-lpad51:		; preds = %bb23, %invcont21, %invcont20, %bb19, %bb17, %invcont11, %bb9
-	%eh_ptr52 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select54 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr52, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad76
-
-lpad55:		; preds = %invcont10
-	%eh_ptr56 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select58 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr56, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 687, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %0)
-			to label %ppad76 unwind label %lpad59
-
-lpad59:		; preds = %lpad55
-	%eh_ptr60 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select62 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr60, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 687, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad63:		; preds = %ppad76
-	%eh_ptr64 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select66 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr64, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad67:		; preds = %ppad75
-	%eh_ptr68 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select70 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr68, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad71:		; preds = %ppad
-	%eh_ptr72 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select74 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr72, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-ppad:		; preds = %ppad75, %lpad
-	%eh_exception.2 = phi i8* [ %eh_ptr, %lpad ], [ %eh_exception.1, %ppad75 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %poly1)
-			to label %Unwind unwind label %lpad71
-
-ppad75:		; preds = %ppad76, %lpad47
-	%eh_exception.1 = phi i8* [ %eh_ptr48, %lpad47 ], [ %eh_exception.0, %ppad76 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %poly2)
-			to label %ppad unwind label %lpad67
-
-ppad76:		; preds = %lpad55, %lpad51
-	%eh_exception.0 = phi i8* [ %eh_ptr52, %lpad51 ], [ %eh_ptr56, %lpad55 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 702, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %poly3)
-			to label %ppad75 unwind label %lpad63
-
-Unwind:		; preds = %ppad
-	call void @_Unwind_Resume(i8* %eh_exception.2)
-	unreachable
-}
-
-define internal void @_GLOBAL__I_main() {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram657 to %0*))
-	call void @llvm.dbg.stoppoint(i32 77, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit636 to %0*))
-	call void @_ZNSt8ios_base4InitC1Ev(%"struct.std::allocator<char>"* @_ZStL8__ioinit)
-	%0 = call i32 @__cxa_atexit(void (i8*)* @__tcf_0, i8* null, i8* bitcast (i8** @__dso_handle to i8*)) nounwind		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 400, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = load i8* bitcast (i64* @_ZGVN10polynomialIdE4PI2IE to i8*), align 8		; <i8> [#uses=1]
-	%2 = icmp eq i8 %1, 0		; <i1> [#uses=1]
-	br i1 %2, label %bb2.i, label %_Z41__static_initialization_and_destruction_0ii.exit
-
-bb2.i:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 400, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	store i8 1, i8* bitcast (i64* @_ZGVN10polynomialIdE4PI2IE to i8*), align 8
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* @_ZN10polynomialIdE4PI2IE, double 0.000000e+00, double 0x401921FB54442D18) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram657 to %0*))
-	ret void
-
-_Z41__static_initialization_and_destruction_0ii.exit:		; preds = %entry
-	ret void
-}
-
-define linkonce void @_ZNSt7complexIdEC1ECd(%"struct.std::complex<double>"* %this, %1 %__z) nounwind {
-entry:
-	%__z_addr = alloca %1, align 8		; <%1*> [#uses=4]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram227 to %0*))
-	%0 = bitcast %1* %__z_addr to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %0, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable231 to %0*))
-	store %1 %__z, %1* %__z_addr, align 8
-	call void @llvm.dbg.stoppoint(i32 1161, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%1 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%2 = getelementptr %1* %__z_addr, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = load double* %2, align 8		; <double> [#uses=1]
-	store double %3, double* %1, align 4
-	%4 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%5 = getelementptr %1* %__z_addr, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 8		; <double> [#uses=1]
-	store double %6, double* %4, align 4
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram227 to %0*))
-	ret void
-}
-
-declare void @llvm.dbg.func.start(%0*) nounwind readnone
-
-declare void @llvm.dbg.declare(%0*, %0*) nounwind readnone
-
-declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind readnone
-
-declare void @llvm.dbg.region.end(%0*) nounwind readnone
-
-define linkonce %1* @_ZNKSt7complexIdE5__repEv(%"struct.std::complex<double>"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram232 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1192, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0		; <%1*> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram232 to %0*))
-	ret %1* %0
-}
-
-define linkonce double* @_ZNSt7complexIdE4realEv(%"struct.std::complex<double>"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram235 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1200, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram235 to %0*))
-	ret double* %0
-}
-
-define linkonce double* @_ZNKSt7complexIdE4realEv(%"struct.std::complex<double>"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram237 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1204, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram237 to %0*))
-	ret double* %0
-}
-
-define linkonce double* @_ZNKSt7complexIdE4imagEv(%"struct.std::complex<double>"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram239 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1212, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram239 to %0*))
-	ret double* %0
-}
-
-define linkonce void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %this, double %__r, double %__i) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram242 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1217, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	store double %__r, double* %0, align 4
-	call void @llvm.dbg.stoppoint(i32 1218, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%1 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	store double %__i, double* %1, align 4
-	call void @llvm.dbg.stoppoint(i32 1219, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram242 to %0*))
-	ret void
-}
-
-define linkonce %"struct.std::complex<double>"* @_ZNSt7complexIdEaSEd(%"struct.std::complex<double>"* %this, double %__d) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram248 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1224, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	store double %__d, double* %0, align 4
-	call void @llvm.dbg.stoppoint(i32 1225, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%1 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	store double 0.000000e+00, double* %1, align 4
-	call void @llvm.dbg.stoppoint(i32 1226, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram248 to %0*))
-	ret %"struct.std::complex<double>"* %this
-}
-
-define linkonce %"struct.std::complex<double>"* @_ZNSt7complexIdEdVEd(%"struct.std::complex<double>"* %this, double %__d) nounwind {
-entry:
-	%0 = alloca %1, align 8		; <%1*> [#uses=4]
-	%1 = alloca %1, align 8		; <%1*> [#uses=4]
-	%2 = alloca %1, align 8		; <%1*> [#uses=4]
-	%memtmp = alloca %1, align 8		; <%1*> [#uses=4]
-	%memtmp1 = alloca %1, align 8		; <%1*> [#uses=4]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram252 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1253, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%3 = getelementptr %1* %2, i32 0, i32 0		; <double*> [#uses=1]
-	%4 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%5 = load double* %4, align 4		; <double> [#uses=1]
-	store double %5, double* %3, align 8
-	%6 = getelementptr %1* %2, i32 0, i32 1		; <double*> [#uses=1]
-	%7 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%8 = load double* %7, align 4		; <double> [#uses=1]
-	store double %8, double* %6, align 8
-	%real = getelementptr %1* %1, i32 0, i32 0		; <double*> [#uses=1]
-	store double %__d, double* %real, align 8
-	%imag = getelementptr %1* %1, i32 0, i32 1		; <double*> [#uses=1]
-	store double 0.000000e+00, double* %imag, align 8
-	%9 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%10 = getelementptr %1* %2, i32 0, i32 0		; <double*> [#uses=1]
-	%11 = load double* %10, align 8		; <double> [#uses=1]
-	store double %11, double* %9, align 8
-	%12 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%13 = getelementptr %1* %2, i32 0, i32 1		; <double*> [#uses=1]
-	%14 = load double* %13, align 8		; <double> [#uses=1]
-	store double %14, double* %12, align 8
-	%15 = getelementptr %1* %memtmp1, i32 0, i32 0		; <double*> [#uses=1]
-	%16 = getelementptr %1* %1, i32 0, i32 0		; <double*> [#uses=1]
-	%17 = load double* %16, align 8		; <double> [#uses=1]
-	store double %17, double* %15, align 8
-	%18 = getelementptr %1* %memtmp1, i32 0, i32 1		; <double*> [#uses=1]
-	%19 = getelementptr %1* %1, i32 0, i32 1		; <double*> [#uses=1]
-	%20 = load double* %19, align 8		; <double> [#uses=1]
-	store double %20, double* %18, align 8
-	%real2 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%real3 = load double* %real2, align 8		; <double> [#uses=2]
-	%imag4 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%imag5 = load double* %imag4, align 8		; <double> [#uses=2]
-	%real6 = getelementptr %1* %memtmp1, i32 0, i32 0		; <double*> [#uses=1]
-	%real7 = load double* %real6, align 8		; <double> [#uses=4]
-	%imag8 = getelementptr %1* %memtmp1, i32 0, i32 1		; <double*> [#uses=1]
-	%imag9 = load double* %imag8, align 8		; <double> [#uses=4]
-	%21 = fmul double %real3, %real7		; <double> [#uses=1]
-	%22 = fmul double %imag5, %imag9		; <double> [#uses=1]
-	%23 = fadd double %21, %22		; <double> [#uses=1]
-	%24 = fmul double %real7, %real7		; <double> [#uses=1]
-	%25 = fmul double %imag9, %imag9		; <double> [#uses=1]
-	%26 = fadd double %24, %25		; <double> [#uses=2]
-	%27 = fdiv double %23, %26		; <double> [#uses=1]
-	%28 = fmul double %imag5, %real7		; <double> [#uses=1]
-	%29 = fmul double %real3, %imag9		; <double> [#uses=1]
-	%30 = fsub double %28, %29		; <double> [#uses=1]
-	%31 = fdiv double %30, %26		; <double> [#uses=1]
-	%real10 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	store double %27, double* %real10, align 8
-	%imag11 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	store double %31, double* %imag11, align 8
-	%32 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%33 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	%34 = load double* %33, align 8		; <double> [#uses=1]
-	store double %34, double* %32, align 4
-	%35 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%36 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	%37 = load double* %36, align 8		; <double> [#uses=1]
-	store double %37, double* %35, align 4
-	call void @llvm.dbg.stoppoint(i32 1254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram252 to %0*))
-	ret %"struct.std::complex<double>"* %this
-}
-
-define linkonce double* @_ZN10polynomialIdEixEj(%"struct.polynomial<double>"* %this, i32 %term) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram522 to %0*))
-	call void @llvm.dbg.stoppoint(i32 308, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%1 = load double** %0, align 4		; <double*> [#uses=1]
-	%2 = getelementptr double* %1, i32 %term		; <double*> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram522 to %0*))
-	ret double* %2
-}
-
-define linkonce i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram527 to %0*))
-	call void @llvm.dbg.stoppoint(i32 113, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram527 to %0*))
-	ret i32 %1
-}
-
-define linkonce %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %this, i32 %term) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram530 to %0*))
-	call void @llvm.dbg.stoppoint(i32 308, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	%1 = load %"struct.std::complex<double>"** %0, align 4		; <%"struct.std::complex<double>"*> [#uses=1]
-	%2 = getelementptr %"struct.std::complex<double>"* %1, i32 %term		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram530 to %0*))
-	ret %"struct.std::complex<double>"* %2
-}
-
-define linkonce %"struct.std::complex<double>"* @_ZNSt7complexIdEmLIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %this, %"struct.std::complex<double>"* %__z) nounwind {
-entry:
-	%__t = alloca %1, align 8		; <%1*> [#uses=7]
-	%0 = alloca %1, align 8		; <%1*> [#uses=4]
-	%1 = alloca %1, align 8		; <%1*> [#uses=4]
-	%memtmp = alloca %1, align 8		; <%1*> [#uses=4]
-	%memtmp3 = alloca %1, align 8		; <%1*> [#uses=4]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram538 to %0*))
-	%2 = bitcast %1* %__t to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %2, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable542 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1289, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%3 = call double* @_ZNKSt7complexIdE4realEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%4 = load double* %3, align 8		; <double> [#uses=1]
-	%5 = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 8		; <double> [#uses=1]
-	%real = getelementptr %1* %__t, i32 0, i32 0		; <double*> [#uses=1]
-	store double %4, double* %real, align 8
-	%imag = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	store double %6, double* %imag, align 8
-	call void @llvm.dbg.stoppoint(i32 1290, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%7 = call double* @_ZNKSt7complexIdE4imagEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%8 = load double* %7, align 8		; <double> [#uses=1]
-	%imag2 = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	store double %8, double* %imag2, align 8
-	call void @llvm.dbg.stoppoint(i32 1291, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%9 = getelementptr %1* %1, i32 0, i32 0		; <double*> [#uses=1]
-	%10 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%11 = load double* %10, align 4		; <double> [#uses=1]
-	store double %11, double* %9, align 8
-	%12 = getelementptr %1* %1, i32 0, i32 1		; <double*> [#uses=1]
-	%13 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%14 = load double* %13, align 4		; <double> [#uses=1]
-	store double %14, double* %12, align 8
-	%15 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%16 = getelementptr %1* %1, i32 0, i32 0		; <double*> [#uses=1]
-	%17 = load double* %16, align 8		; <double> [#uses=1]
-	store double %17, double* %15, align 8
-	%18 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%19 = getelementptr %1* %1, i32 0, i32 1		; <double*> [#uses=1]
-	%20 = load double* %19, align 8		; <double> [#uses=1]
-	store double %20, double* %18, align 8
-	%21 = getelementptr %1* %memtmp3, i32 0, i32 0		; <double*> [#uses=1]
-	%22 = getelementptr %1* %__t, i32 0, i32 0		; <double*> [#uses=1]
-	%23 = load double* %22, align 8		; <double> [#uses=1]
-	store double %23, double* %21, align 8
-	%24 = getelementptr %1* %memtmp3, i32 0, i32 1		; <double*> [#uses=1]
-	%25 = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	%26 = load double* %25, align 8		; <double> [#uses=1]
-	store double %26, double* %24, align 8
-	%real4 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%real5 = load double* %real4, align 8		; <double> [#uses=2]
-	%imag6 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%imag7 = load double* %imag6, align 8		; <double> [#uses=2]
-	%real8 = getelementptr %1* %memtmp3, i32 0, i32 0		; <double*> [#uses=1]
-	%real9 = load double* %real8, align 8		; <double> [#uses=2]
-	%imag10 = getelementptr %1* %memtmp3, i32 0, i32 1		; <double*> [#uses=1]
-	%imag11 = load double* %imag10, align 8		; <double> [#uses=2]
-	%27 = fmul double %real5, %real9		; <double> [#uses=1]
-	%28 = fmul double %imag7, %imag11		; <double> [#uses=1]
-	%29 = fsub double %27, %28		; <double> [#uses=1]
-	%30 = fmul double %real5, %imag11		; <double> [#uses=1]
-	%31 = fmul double %real9, %imag7		; <double> [#uses=1]
-	%32 = fadd double %30, %31		; <double> [#uses=1]
-	%real12 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	store double %29, double* %real12, align 8
-	%imag13 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	store double %32, double* %imag13, align 8
-	%33 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%34 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	%35 = load double* %34, align 8		; <double> [#uses=1]
-	store double %35, double* %33, align 4
-	%36 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%37 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	%38 = load double* %37, align 8		; <double> [#uses=1]
-	store double %38, double* %36, align 4
-	call void @llvm.dbg.stoppoint(i32 1292, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram538 to %0*))
-	ret %"struct.std::complex<double>"* %this
-}
-
-define linkonce void @_ZN10polynomialIdE9deep_copyEPKd(%"struct.polynomial<double>"* %this, double* %source) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram543 to %0*))
-	call void @llvm.dbg.stoppoint(i32 197, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb1
-
-bb:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 198, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%1 = load double** %0, align 4		; <double*> [#uses=1]
-	%2 = getelementptr double* %source, i32 %n.0		; <double*> [#uses=1]
-	%3 = load double* %2, align 1		; <double> [#uses=1]
-	%4 = getelementptr double* %1, i32 %n.0		; <double*> [#uses=1]
-	store double %3, double* %4, align 1
-	call void @llvm.dbg.stoppoint(i32 197, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%5 = add i32 %n.0, 1		; <i32> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%n.0 = phi i32 [ 0, %entry ], [ %5, %bb ]		; <i32> [#uses=4]
-	call void @llvm.dbg.stoppoint(i32 197, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%6 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%7 = load i32* %6, align 4		; <i32> [#uses=1]
-	%8 = icmp ugt i32 %7, %n.0		; <i1> [#uses=1]
-	br i1 %8, label %bb, label %return
-
-return:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 198, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram543 to %0*))
-	ret void
-}
-
-define linkonce i32 @_ZN10polynomialIdE4log2Ej(i32 %n) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram549 to %0*))
-	call void @llvm.dbg.stoppoint(i32 407, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb1
-
-bb:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 411, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = add i32 %c.0, 1		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 412, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = shl i32 %x.0, 1		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 414, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%2 = icmp eq i32 %1, 0		; <i1> [#uses=1]
-	br i1 %2, label %return, label %bb1
-
-bb1:		; preds = %bb, %entry
-	%c.0 = phi i32 [ 0, %entry ], [ %0, %bb ]		; <i32> [#uses=2]
-	%x.0 = phi i32 [ 1, %entry ], [ %1, %bb ]		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 409, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%3 = icmp ult i32 %x.0, %n		; <i1> [#uses=1]
-	br i1 %3, label %bb, label %return
-
-return:		; preds = %bb1, %bb
-	%c.1 = phi i32 [ %c.0, %bb1 ], [ %0, %bb ]		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 418, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram549 to %0*))
-	ret i32 %c.1
-}
-
-define linkonce void @_ZStmlIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %agg.result, %"struct.std::complex<double>"* %__x, %"struct.std::complex<double>"* %__y) nounwind {
-entry:
-	%__r = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram559 to %0*))
-	%0 = bitcast %"struct.std::complex<double>"* %__r to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %0, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable564 to %0*))
-	call void @llvm.dbg.stoppoint(i32 380, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%1 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%2 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = load double* %2, align 4		; <double> [#uses=1]
-	store double %3, double* %1, align 4
-	%4 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%5 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 4		; <double> [#uses=1]
-	store double %6, double* %4, align 4
-	call void @llvm.dbg.stoppoint(i32 381, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%7 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEmLIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %agg.result, %"struct.std::complex<double>"* %__y) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram559 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialISt7complexIdEE9deep_copyEPKS1_(%"struct.polynomial<std::complex<double> >"* %this, %"struct.std::complex<double>"* %source) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram565 to %0*))
-	call void @llvm.dbg.stoppoint(i32 197, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb1
-
-bb:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 198, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	%1 = load %"struct.std::complex<double>"** %0, align 4		; <%"struct.std::complex<double>"*> [#uses=2]
-	%2 = getelementptr %"struct.std::complex<double>"* %1, i32 %n.0, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = getelementptr %"struct.std::complex<double>"* %source, i32 %n.0, i32 0, i32 0		; <double*> [#uses=1]
-	%4 = load double* %3, align 1		; <double> [#uses=1]
-	store double %4, double* %2, align 1
-	%5 = getelementptr %"struct.std::complex<double>"* %1, i32 %n.0, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = getelementptr %"struct.std::complex<double>"* %source, i32 %n.0, i32 0, i32 1		; <double*> [#uses=1]
-	%7 = load double* %6, align 1		; <double> [#uses=1]
-	store double %7, double* %5, align 1
-	call void @llvm.dbg.stoppoint(i32 197, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%8 = add i32 %n.0, 1		; <i32> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%n.0 = phi i32 [ 0, %entry ], [ %8, %bb ]		; <i32> [#uses=6]
-	call void @llvm.dbg.stoppoint(i32 197, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%9 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 4		; <i32> [#uses=1]
-	%11 = icmp ugt i32 %10, %n.0		; <i1> [#uses=1]
-	br i1 %11, label %bb, label %return
-
-return:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 198, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram565 to %0*))
-	ret void
-}
-
-define linkonce i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram569 to %0*))
-	call void @llvm.dbg.stoppoint(i32 113, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram569 to %0*))
-	ret i32 %1
-}
-
-define linkonce void @_ZStngIdESt7complexIT_ERKS2_(%"struct.std::complex<double>"* noalias sret %agg.result, %"struct.std::complex<double>"* %__x) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram576 to %0*))
-	call void @llvm.dbg.stoppoint(i32 444, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = call double* @_ZNKSt7complexIdE4imagEv(%"struct.std::complex<double>"* %__x) nounwind		; <double*> [#uses=1]
-	%1 = load double* %0, align 8		; <double> [#uses=1]
-	%2 = fsub double -0.000000e+00, %1		; <double> [#uses=1]
-	%3 = call double* @_ZNKSt7complexIdE4realEv(%"struct.std::complex<double>"* %__x) nounwind		; <double*> [#uses=1]
-	%4 = load double* %3, align 8		; <double> [#uses=1]
-	%5 = fsub double -0.000000e+00, %4		; <double> [#uses=1]
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %agg.result, double %5, double %2) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram576 to %0*))
-	ret void
-}
-
-define linkonce double @_ZNK10polynomialIdE3getEj(%"struct.polynomial<double>"* %this, i32 %term) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram578 to %0*))
-	call void @llvm.dbg.stoppoint(i32 302, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%1 = load double** %0, align 4		; <double*> [#uses=1]
-	%2 = getelementptr double* %1, i32 %term		; <double*> [#uses=1]
-	%3 = load double* %2, align 1		; <double> [#uses=1]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram578 to %0*))
-	ret double %3
-}
-
-define linkonce i32 @_ZN10polynomialIdE9flip_bitsEjj(i32 %k, i32 %bits) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram581 to %0*))
-	call void @llvm.dbg.stoppoint(i32 425, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = add i32 %bits, -1		; <i32> [#uses=1]
-	%1 = shl i32 1, %0		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 427, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb3
-
-bb:		; preds = %bb3
-	call void @llvm.dbg.stoppoint(i32 431, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%2 = and i32 %rm.0, %k		; <i32> [#uses=1]
-	%3 = icmp ne i32 %2, 0		; <i1> [#uses=1]
-	%4 = select i1 %3, i32 %lm.0, i32 0		; <i32> [#uses=1]
-	%.r.1 = or i32 %r.1, %4		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 434, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%5 = lshr i32 %lm.0, 1		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 435, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%6 = shl i32 %rm.0, 1		; <i32> [#uses=1]
-	br label %bb3
-
-bb3:		; preds = %bb, %entry
-	%r.1 = phi i32 [ 0, %entry ], [ %.r.1, %bb ]		; <i32> [#uses=2]
-	%rm.0 = phi i32 [ 1, %entry ], [ %6, %bb ]		; <i32> [#uses=2]
-	%lm.0 = phi i32 [ %1, %entry ], [ %5, %bb ]		; <i32> [#uses=3]
-	call void @llvm.dbg.stoppoint(i32 429, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%7 = icmp eq i32 %lm.0, 0		; <i1> [#uses=1]
-	br i1 %7, label %return, label %bb
-
-return:		; preds = %bb3
-	call void @llvm.dbg.stoppoint(i32 438, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram581 to %0*))
-	ret i32 %r.1
-}
-
-define linkonce %"struct.std::complex<double>"* @_ZNSt7complexIdEdVIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %this, %"struct.std::complex<double>"* %__z) nounwind {
-entry:
-	%__t = alloca %1, align 8		; <%1*> [#uses=7]
-	%0 = alloca %1, align 8		; <%1*> [#uses=4]
-	%1 = alloca %1, align 8		; <%1*> [#uses=4]
-	%memtmp = alloca %1, align 8		; <%1*> [#uses=4]
-	%memtmp3 = alloca %1, align 8		; <%1*> [#uses=4]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram593 to %0*))
-	%2 = bitcast %1* %__t to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %2, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable596 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1300, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%3 = call double* @_ZNKSt7complexIdE4realEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%4 = load double* %3, align 8		; <double> [#uses=1]
-	%5 = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 8		; <double> [#uses=1]
-	%real = getelementptr %1* %__t, i32 0, i32 0		; <double*> [#uses=1]
-	store double %4, double* %real, align 8
-	%imag = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	store double %6, double* %imag, align 8
-	call void @llvm.dbg.stoppoint(i32 1301, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%7 = call double* @_ZNKSt7complexIdE4imagEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%8 = load double* %7, align 8		; <double> [#uses=1]
-	%imag2 = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	store double %8, double* %imag2, align 8
-	call void @llvm.dbg.stoppoint(i32 1302, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%9 = getelementptr %1* %1, i32 0, i32 0		; <double*> [#uses=1]
-	%10 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%11 = load double* %10, align 4		; <double> [#uses=1]
-	store double %11, double* %9, align 8
-	%12 = getelementptr %1* %1, i32 0, i32 1		; <double*> [#uses=1]
-	%13 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%14 = load double* %13, align 4		; <double> [#uses=1]
-	store double %14, double* %12, align 8
-	%15 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%16 = getelementptr %1* %1, i32 0, i32 0		; <double*> [#uses=1]
-	%17 = load double* %16, align 8		; <double> [#uses=1]
-	store double %17, double* %15, align 8
-	%18 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%19 = getelementptr %1* %1, i32 0, i32 1		; <double*> [#uses=1]
-	%20 = load double* %19, align 8		; <double> [#uses=1]
-	store double %20, double* %18, align 8
-	%21 = getelementptr %1* %memtmp3, i32 0, i32 0		; <double*> [#uses=1]
-	%22 = getelementptr %1* %__t, i32 0, i32 0		; <double*> [#uses=1]
-	%23 = load double* %22, align 8		; <double> [#uses=1]
-	store double %23, double* %21, align 8
-	%24 = getelementptr %1* %memtmp3, i32 0, i32 1		; <double*> [#uses=1]
-	%25 = getelementptr %1* %__t, i32 0, i32 1		; <double*> [#uses=1]
-	%26 = load double* %25, align 8		; <double> [#uses=1]
-	store double %26, double* %24, align 8
-	%real4 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%real5 = load double* %real4, align 8		; <double> [#uses=2]
-	%imag6 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%imag7 = load double* %imag6, align 8		; <double> [#uses=2]
-	%real8 = getelementptr %1* %memtmp3, i32 0, i32 0		; <double*> [#uses=1]
-	%real9 = load double* %real8, align 8		; <double> [#uses=4]
-	%imag10 = getelementptr %1* %memtmp3, i32 0, i32 1		; <double*> [#uses=1]
-	%imag11 = load double* %imag10, align 8		; <double> [#uses=4]
-	%27 = fmul double %real5, %real9		; <double> [#uses=1]
-	%28 = fmul double %imag7, %imag11		; <double> [#uses=1]
-	%29 = fadd double %27, %28		; <double> [#uses=1]
-	%30 = fmul double %real9, %real9		; <double> [#uses=1]
-	%31 = fmul double %imag11, %imag11		; <double> [#uses=1]
-	%32 = fadd double %30, %31		; <double> [#uses=2]
-	%33 = fdiv double %29, %32		; <double> [#uses=1]
-	%34 = fmul double %imag7, %real9		; <double> [#uses=1]
-	%35 = fmul double %real5, %imag11		; <double> [#uses=1]
-	%36 = fsub double %34, %35		; <double> [#uses=1]
-	%37 = fdiv double %36, %32		; <double> [#uses=1]
-	%real12 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	store double %33, double* %real12, align 8
-	%imag13 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	store double %37, double* %imag13, align 8
-	%38 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%39 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	%40 = load double* %39, align 8		; <double> [#uses=1]
-	store double %40, double* %38, align 4
-	%41 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%42 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	%43 = load double* %42, align 8		; <double> [#uses=1]
-	store double %43, double* %41, align 4
-	call void @llvm.dbg.stoppoint(i32 1303, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram593 to %0*))
-	ret %"struct.std::complex<double>"* %this
-}
-
-define linkonce void @_ZStdvIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %agg.result, %"struct.std::complex<double>"* %__x, %"struct.std::complex<double>"* %__y) {
-entry:
-	%__r = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram599 to %0*))
-	%0 = bitcast %"struct.std::complex<double>"* %__r to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %0, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable602 to %0*))
-	call void @llvm.dbg.stoppoint(i32 410, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%1 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%2 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = load double* %2, align 4		; <double> [#uses=1]
-	store double %3, double* %1, align 4
-	%4 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%5 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 4		; <double> [#uses=1]
-	store double %6, double* %4, align 4
-	call void @llvm.dbg.stoppoint(i32 411, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%7 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEdVIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %agg.result, %"struct.std::complex<double>"* %__y) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram599 to %0*))
-	ret void
-}
-
-define linkonce %"struct.std::complex<double>"* @_ZNSt7complexIdEpLIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %this, %"struct.std::complex<double>"* %__z) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram605 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1270, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%1 = load double* %0, align 4		; <double> [#uses=1]
-	%2 = call double* @_ZNKSt7complexIdE4realEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%3 = load double* %2, align 8		; <double> [#uses=1]
-	%4 = fadd double %1, %3		; <double> [#uses=1]
-	%5 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	store double %4, double* %5, align 4
-	call void @llvm.dbg.stoppoint(i32 1271, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%6 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%7 = load double* %6, align 4		; <double> [#uses=1]
-	%8 = call double* @_ZNKSt7complexIdE4imagEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%9 = load double* %8, align 8		; <double> [#uses=1]
-	%10 = fadd double %7, %9		; <double> [#uses=1]
-	%11 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	store double %10, double* %11, align 4
-	call void @llvm.dbg.stoppoint(i32 1272, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram605 to %0*))
-	ret %"struct.std::complex<double>"* %this
-}
-
-define linkonce void @_ZStplIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %agg.result, %"struct.std::complex<double>"* %__x, %"struct.std::complex<double>"* %__y) {
-entry:
-	%__r = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram610 to %0*))
-	%0 = bitcast %"struct.std::complex<double>"* %__r to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %0, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable613 to %0*))
-	call void @llvm.dbg.stoppoint(i32 320, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%1 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%2 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = load double* %2, align 4		; <double> [#uses=1]
-	store double %3, double* %1, align 4
-	%4 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%5 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 4		; <double> [#uses=1]
-	store double %6, double* %4, align 4
-	call void @llvm.dbg.stoppoint(i32 321, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%7 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEpLIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %agg.result, %"struct.std::complex<double>"* %__y) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram610 to %0*))
-	ret void
-}
-
-define linkonce %"struct.std::complex<double>"* @_ZNSt7complexIdEmIIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %this, %"struct.std::complex<double>"* %__z) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram616 to %0*))
-	call void @llvm.dbg.stoppoint(i32 1279, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%0 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%1 = load double* %0, align 4		; <double> [#uses=1]
-	%2 = call double* @_ZNKSt7complexIdE4realEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%3 = load double* %2, align 8		; <double> [#uses=1]
-	%4 = fsub double %1, %3		; <double> [#uses=1]
-	%5 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	store double %4, double* %5, align 4
-	call void @llvm.dbg.stoppoint(i32 1280, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%6 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%7 = load double* %6, align 4		; <double> [#uses=1]
-	%8 = call double* @_ZNKSt7complexIdE4imagEv(%"struct.std::complex<double>"* %__z) nounwind		; <double*> [#uses=1]
-	%9 = load double* %8, align 8		; <double> [#uses=1]
-	%10 = fsub double %7, %9		; <double> [#uses=1]
-	%11 = getelementptr %"struct.std::complex<double>"* %this, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	store double %10, double* %11, align 4
-	call void @llvm.dbg.stoppoint(i32 1281, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram616 to %0*))
-	ret %"struct.std::complex<double>"* %this
-}
-
-define linkonce void @_ZStmiIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %agg.result, %"struct.std::complex<double>"* %__x, %"struct.std::complex<double>"* %__y) {
-entry:
-	%__r = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram620 to %0*))
-	%0 = bitcast %"struct.std::complex<double>"* %__r to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %0, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable623 to %0*))
-	call void @llvm.dbg.stoppoint(i32 350, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%1 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%2 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = load double* %2, align 4		; <double> [#uses=1]
-	store double %3, double* %1, align 4
-	%4 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%5 = getelementptr %"struct.std::complex<double>"* %__x, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 4		; <double> [#uses=1]
-	store double %6, double* %4, align 4
-	call void @llvm.dbg.stoppoint(i32 351, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%7 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEmIIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %agg.result, %"struct.std::complex<double>"* %__y) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram620 to %0*))
-	ret void
-}
-
-define linkonce void @_ZNK10polynomialISt7complexIdEE3getEj(%"struct.std::complex<double>"* noalias sret %agg.result, %"struct.polynomial<std::complex<double> >"* %this, i32 %term) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram624 to %0*))
-	call void @llvm.dbg.stoppoint(i32 302, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	%1 = load %"struct.std::complex<double>"** %0, align 4		; <%"struct.std::complex<double>"*> [#uses=2]
-	%2 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = getelementptr %"struct.std::complex<double>"* %1, i32 %term, i32 0, i32 0		; <double*> [#uses=1]
-	%4 = load double* %3, align 1		; <double> [#uses=1]
-	store double %4, double* %2, align 1
-	%5 = getelementptr %"struct.std::complex<double>"* %agg.result, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = getelementptr %"struct.std::complex<double>"* %1, i32 %term, i32 0, i32 1		; <double*> [#uses=1]
-	%7 = load double* %6, align 1		; <double> [#uses=1]
-	store double %7, double* %5, align 1
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram624 to %0*))
-	ret void
-}
-
-declare void @_ZNSt8ios_base4InitC1Ev(%"struct.std::allocator<char>"*)
-
-declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) nounwind
-
-define internal void @__tcf_0(i8* nocapture %unnamed_arg) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram662 to %0*))
-	call void @llvm.dbg.stoppoint(i32 77, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit636 to %0*))
-	call void @_ZNSt8ios_base4InitD1Ev(%"struct.std::allocator<char>"* @_ZStL8__ioinit)
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram662 to %0*))
-	ret void
-}
-
-declare void @_ZNSt8ios_base4InitD1Ev(%"struct.std::allocator<char>"*)
-
-define linkonce void @_ZN10polynomialIdE7releaseEv(%"struct.polynomial<double>"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram665 to %0*))
-	call void @llvm.dbg.stoppoint(i32 190, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%1 = load double** %0, align 4		; <double*> [#uses=1]
-	%2 = icmp eq double* %1, null		; <i1> [#uses=1]
-	br i1 %2, label %return, label %bb
-
-bb:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 190, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%3 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%4 = load double** %3, align 4		; <double*> [#uses=1]
-	%5 = bitcast double* %4 to i8*		; <i8*> [#uses=1]
-	call void @_ZdaPv(i8* %5) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram665 to %0*))
-	ret void
-
-return:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 190, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	ret void
-}
-
-declare void @_ZdaPv(i8*) nounwind
-
-define linkonce void @_ZN10polynomialIdED0Ev(%"struct.polynomial<double>"* %this) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram668 to %0*))
-	call void @llvm.dbg.stoppoint(i32 255, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([4 x i32 (...)*]* @_ZTV10polynomialIdE, i32 0, i32 2), i32 (...)*** %0, align 4
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE7releaseEv(%"struct.polynomial<double>"* %this) nounwind
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = bitcast %"struct.polynomial<double>"* %this to i8*		; <i8*> [#uses=1]
-	call void @_ZdlPv(i8* %1) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram668 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %this) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram691 to %0*))
-	call void @llvm.dbg.stoppoint(i32 255, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([4 x i32 (...)*]* @_ZTV10polynomialIdE, i32 0, i32 2), i32 (...)*** %0, align 4
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE7releaseEv(%"struct.polynomial<double>"* %this) nounwind
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	ret void
-}
-
-declare void @_ZdlPv(i8*) nounwind
-
-define linkonce void @_ZN10polynomialISt7complexIdEE7releaseEv(%"struct.polynomial<std::complex<double> >"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram693 to %0*))
-	call void @llvm.dbg.stoppoint(i32 190, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	%1 = load %"struct.std::complex<double>"** %0, align 4		; <%"struct.std::complex<double>"*> [#uses=1]
-	%2 = icmp eq %"struct.std::complex<double>"* %1, null		; <i1> [#uses=1]
-	br i1 %2, label %return, label %bb
-
-bb:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 190, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%3 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	%4 = load %"struct.std::complex<double>"** %3, align 4		; <%"struct.std::complex<double>"*> [#uses=1]
-	%5 = bitcast %"struct.std::complex<double>"* %4 to i8*		; <i8*> [#uses=1]
-	call void @_ZdaPv(i8* %5) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram693 to %0*))
-	ret void
-
-return:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 190, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialISt7complexIdEED0Ev(%"struct.polynomial<std::complex<double> >"* %this) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram696 to %0*))
-	call void @llvm.dbg.stoppoint(i32 255, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([4 x i32 (...)*]* @_ZTV10polynomialISt7complexIdEE, i32 0, i32 2), i32 (...)*** %0, align 4
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialISt7complexIdEE7releaseEv(%"struct.polynomial<std::complex<double> >"* %this) nounwind
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = bitcast %"struct.polynomial<std::complex<double> >"* %this to i8*		; <i8*> [#uses=1]
-	call void @_ZdlPv(i8* %1) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram696 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %this) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram708 to %0*))
-	call void @llvm.dbg.stoppoint(i32 255, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([4 x i32 (...)*]* @_ZTV10polynomialISt7complexIdEE, i32 0, i32 2), i32 (...)*** %0, align 4
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialISt7complexIdEE7releaseEv(%"struct.polynomial<std::complex<double> >"* %this) nounwind
-	call void @llvm.dbg.stoppoint(i32 254, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialIdE7acquireEv(%"struct.polynomial<double>"* %this) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram710 to %0*))
-	call void @llvm.dbg.stoppoint(i32 183, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	%2 = shl i32 %1, 3		; <i32> [#uses=1]
-	%3 = call i8* @_Znaj(i32 %2)		; <i8*> [#uses=1]
-	%4 = bitcast i8* %3 to double*		; <double*> [#uses=1]
-	%5 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	store double* %4, double** %5, align 4
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram710 to %0*))
-	ret void
-}
-
-declare i8* @_Znaj(i32)
-
-define linkonce void @_ZN10polynomialIdEC1Ej(%"struct.polynomial<double>"* %this, i32 %degree) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram713 to %0*))
-	call void @llvm.dbg.stoppoint(i32 213, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([4 x i32 (...)*]* @_ZTV10polynomialIdE, i32 0, i32 2), i32 (...)*** %0, align 4
-	%1 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	store double* null, double** %1, align 4
-	%2 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %degree, i32* %2, align 4
-	call void @llvm.dbg.stoppoint(i32 215, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE7acquireEv(%"struct.polynomial<double>"* %this)
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram713 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialIdEC1ERKS0_(%"struct.polynomial<double>"* %this, %"struct.polynomial<double>"* %source) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram717 to %0*))
-	call void @llvm.dbg.stoppoint(i32 244, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([4 x i32 (...)*]* @_ZTV10polynomialIdE, i32 0, i32 2), i32 (...)*** %0, align 4
-	%1 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	store double* null, double** %1, align 4
-	%2 = getelementptr %"struct.polynomial<double>"* %source, i32 0, i32 2		; <i32*> [#uses=1]
-	%3 = load i32* %2, align 4		; <i32> [#uses=1]
-	%4 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %3, i32* %4, align 4
-	call void @llvm.dbg.stoppoint(i32 246, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE7acquireEv(%"struct.polynomial<double>"* %this)
-	call void @llvm.dbg.stoppoint(i32 247, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%5 = getelementptr %"struct.polynomial<double>"* %source, i32 0, i32 1		; <double**> [#uses=1]
-	%6 = load double** %5, align 4		; <double*> [#uses=1]
-	call void @_ZN10polynomialIdE9deep_copyEPKd(%"struct.polynomial<double>"* %this, double* %6) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram717 to %0*))
-	ret void
-}
-
-define linkonce %"struct.polynomial<double>"* @_ZN10polynomialIdE7stretchEj(%"struct.polynomial<double>"* %this, i32 %degrees) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram720 to %0*))
-	call void @llvm.dbg.stoppoint(i32 278, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = icmp eq i32 %degrees, 0		; <i1> [#uses=1]
-	br i1 %0, label %return, label %bb
-
-bb:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 280, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%2 = load double** %1, align 4		; <double*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 281, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%3 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%4 = load i32* %3, align 4		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 283, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%5 = add i32 %4, %degrees		; <i32> [#uses=1]
-	%6 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %5, i32* %6, align 4
-	call void @llvm.dbg.stoppoint(i32 284, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE7acquireEv(%"struct.polynomial<double>"* %this)
-	call void @llvm.dbg.stoppoint(i32 286, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb2
-
-bb1:		; preds = %bb2
-	call void @llvm.dbg.stoppoint(i32 289, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%7 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%8 = load double** %7, align 4		; <double*> [#uses=1]
-	%9 = getelementptr double* %2, i32 %n.0		; <double*> [#uses=1]
-	%10 = load double* %9, align 1		; <double> [#uses=1]
-	%11 = getelementptr double* %8, i32 %n.0		; <double*> [#uses=1]
-	store double %10, double* %11, align 1
-	call void @llvm.dbg.stoppoint(i32 288, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%12 = add i32 %n.0, 1		; <i32> [#uses=1]
-	br label %bb2
-
-bb2:		; preds = %bb1, %bb
-	%n.0 = phi i32 [ 0, %bb ], [ %12, %bb1 ]		; <i32> [#uses=5]
-	call void @llvm.dbg.stoppoint(i32 288, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%13 = icmp ult i32 %n.0, %4		; <i1> [#uses=1]
-	br i1 %13, label %bb1, label %bb5
-
-bb4:		; preds = %bb5
-	call void @llvm.dbg.stoppoint(i32 292, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%14 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 1		; <double**> [#uses=1]
-	%15 = load double** %14, align 4		; <double*> [#uses=1]
-	%16 = getelementptr double* %15, i32 %n.1		; <double*> [#uses=1]
-	store double 0.000000e+00, double* %16, align 1
-	call void @llvm.dbg.stoppoint(i32 291, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%17 = add i32 %n.1, 1		; <i32> [#uses=1]
-	br label %bb5
-
-bb5:		; preds = %bb4, %bb2
-	%n.1 = phi i32 [ %17, %bb4 ], [ %n.0, %bb2 ]		; <i32> [#uses=3]
-	call void @llvm.dbg.stoppoint(i32 291, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%18 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%19 = load i32* %18, align 4		; <i32> [#uses=1]
-	%20 = icmp ugt i32 %19, %n.1		; <i1> [#uses=1]
-	br i1 %20, label %bb4, label %return
-
-return:		; preds = %bb5, %entry
-	call void @llvm.dbg.stoppoint(i32 295, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram720 to %0*))
-	ret %"struct.polynomial<double>"* %this
-}
-
-define linkonce %"struct.polynomial<double>"* @_ZN10polynomialIdEaSERKS0_(%"struct.polynomial<double>"* %this, %"struct.polynomial<double>"* %source) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram729 to %0*))
-	call void @llvm.dbg.stoppoint(i32 261, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	%2 = getelementptr %"struct.polynomial<double>"* %source, i32 0, i32 2		; <i32*> [#uses=1]
-	%3 = load i32* %2, align 4		; <i32> [#uses=1]
-	%4 = icmp eq i32 %1, %3		; <i1> [#uses=1]
-	br i1 %4, label %bb1, label %bb
-
-bb:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 263, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE7releaseEv(%"struct.polynomial<double>"* %this) nounwind
-	call void @llvm.dbg.stoppoint(i32 265, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%5 = getelementptr %"struct.polynomial<double>"* %source, i32 0, i32 2		; <i32*> [#uses=1]
-	%6 = load i32* %5, align 4		; <i32> [#uses=1]
-	%7 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %6, i32* %7, align 4
-	call void @llvm.dbg.stoppoint(i32 266, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE7acquireEv(%"struct.polynomial<double>"* %this)
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	call void @llvm.dbg.stoppoint(i32 269, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%8 = getelementptr %"struct.polynomial<double>"* %source, i32 0, i32 1		; <double**> [#uses=1]
-	%9 = load double** %8, align 4		; <double*> [#uses=1]
-	call void @_ZN10polynomialIdE9deep_copyEPKd(%"struct.polynomial<double>"* %this, double* %9) nounwind
-	call void @llvm.dbg.stoppoint(i32 271, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram729 to %0*))
-	ret %"struct.polynomial<double>"* %this
-}
-
-define linkonce void @_ZN10polynomialISt7complexIdEE7acquireEv(%"struct.polynomial<std::complex<double> >"* %this) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram732 to %0*))
-	call void @llvm.dbg.stoppoint(i32 183, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=2]
-	%2 = shl i32 %1, 4		; <i32> [#uses=1]
-	%3 = call i8* @_Znaj(i32 %2)		; <i8*> [#uses=1]
-	%4 = bitcast i8* %3 to %"struct.std::complex<double>"*		; <%"struct.std::complex<double>"*> [#uses=2]
-	br label %bb1
-
-bb:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 183, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %.0, double 0.000000e+00, double 0.000000e+00) nounwind
-	%5 = getelementptr %"struct.std::complex<double>"* %.0, i32 1		; <%"struct.std::complex<double>"*> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%.01.in = phi i32 [ %1, %entry ], [ %.01, %bb ]		; <i32> [#uses=1]
-	%.0 = phi %"struct.std::complex<double>"* [ %4, %entry ], [ %5, %bb ]		; <%"struct.std::complex<double>"*> [#uses=2]
-	%.01 = add i32 %.01.in, -1		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 183, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%6 = icmp eq i32 %.01, -1		; <i1> [#uses=1]
-	br i1 %6, label %bb2, label %bb
-
-bb2:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 183, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%7 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	store %"struct.std::complex<double>"* %4, %"struct.std::complex<double>"** %7, align 4
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram732 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialISt7complexIdEEC1Ej(%"struct.polynomial<std::complex<double> >"* %this, i32 %degree) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram735 to %0*))
-	call void @llvm.dbg.stoppoint(i32 213, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([4 x i32 (...)*]* @_ZTV10polynomialISt7complexIdEE, i32 0, i32 2), i32 (...)*** %0, align 4
-	%1 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	store %"struct.std::complex<double>"* null, %"struct.std::complex<double>"** %1, align 4
-	%2 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %degree, i32* %2, align 4
-	call void @llvm.dbg.stoppoint(i32 215, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialISt7complexIdEE7acquireEv(%"struct.polynomial<std::complex<double> >"* %this)
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram735 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialIdE11bit_reverseERKS0_(%"struct.polynomial<std::complex<double> >"* noalias sret %agg.result, %"struct.polynomial<double>"* %poly) {
-entry:
-	%result = alloca %"struct.polynomial<std::complex<double> >", align 8		; <%"struct.polynomial<std::complex<double> >"*> [#uses=1]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram738 to %0*))
-	%0 = bitcast %"struct.polynomial<std::complex<double> >"* %result to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %0, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable744 to %0*))
-	call void @llvm.dbg.stoppoint(i32 471, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %poly) nounwind		; <i32> [#uses=1]
-	%2 = call i32 @_ZN10polynomialIdE4log2Ej(i32 %1) nounwind		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 473, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%3 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %poly) nounwind		; <i32> [#uses=1]
-	call void @_ZN10polynomialISt7complexIdEEC1Ej(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %3)
-	call void @llvm.dbg.stoppoint(i32 475, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb6
-
-bb:		; preds = %bb6
-	call void @llvm.dbg.stoppoint(i32 476, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%4 = call double @_ZNK10polynomialIdE3getEj(%"struct.polynomial<double>"* %poly, i32 %n.0) nounwind		; <double> [#uses=1]
-	%5 = call i32 @_ZN10polynomialIdE9flip_bitsEjj(i32 %n.0, i32 %2) nounwind		; <i32> [#uses=1]
-	%6 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %5) nounwind		; <%"struct.std::complex<double>"*> [#uses=1]
-	%7 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEaSEd(%"struct.std::complex<double>"* %6, double %4) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 475, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%8 = add i32 %n.0, 1		; <i32> [#uses=1]
-	br label %bb6
-
-bb6:		; preds = %bb, %entry
-	%n.0 = phi i32 [ 0, %entry ], [ %8, %bb ]		; <i32> [#uses=4]
-	call void @llvm.dbg.stoppoint(i32 475, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%9 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %poly) nounwind		; <i32> [#uses=1]
-	%10 = icmp ugt i32 %9, %n.0		; <i1> [#uses=1]
-	br i1 %10, label %bb, label %return
-
-return:		; preds = %bb6
-	call void @llvm.dbg.stoppoint(i32 475, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram738 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialIdE11bit_reverseERKS_ISt7complexIdEE(%"struct.polynomial<std::complex<double> >"* noalias sret %agg.result, %"struct.polynomial<std::complex<double> >"* %poly) {
-entry:
-	%result = alloca %"struct.polynomial<std::complex<double> >", align 8		; <%"struct.polynomial<std::complex<double> >"*> [#uses=1]
-	%memtmp7 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram747 to %0*))
-	%0 = bitcast %"struct.polynomial<std::complex<double> >"* %result to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %0, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable751 to %0*))
-	call void @llvm.dbg.stoppoint(i32 485, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%1 = call i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %poly) nounwind		; <i32> [#uses=1]
-	%2 = call i32 @_ZN10polynomialIdE4log2Ej(i32 %1) nounwind		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 487, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%3 = call i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %poly) nounwind		; <i32> [#uses=1]
-	call void @_ZN10polynomialISt7complexIdEEC1Ej(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %3)
-	call void @llvm.dbg.stoppoint(i32 489, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb8
-
-bb:		; preds = %bb8
-	call void @llvm.dbg.stoppoint(i32 490, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%4 = call i32 @_ZN10polynomialIdE9flip_bitsEjj(i32 %n.0, i32 %2) nounwind		; <i32> [#uses=1]
-	%5 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %4) nounwind		; <%"struct.std::complex<double>"*> [#uses=2]
-	call void @_ZNK10polynomialISt7complexIdEE3getEj(%"struct.std::complex<double>"* noalias sret %memtmp7, %"struct.polynomial<std::complex<double> >"* %poly, i32 %n.0) nounwind
-	%6 = getelementptr %"struct.std::complex<double>"* %5, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%7 = getelementptr %"struct.std::complex<double>"* %memtmp7, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%8 = load double* %7, align 8		; <double> [#uses=1]
-	store double %8, double* %6, align 4
-	%9 = getelementptr %"struct.std::complex<double>"* %5, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%10 = getelementptr %"struct.std::complex<double>"* %memtmp7, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%11 = load double* %10, align 8		; <double> [#uses=1]
-	store double %11, double* %9, align 4
-	call void @llvm.dbg.stoppoint(i32 489, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%12 = add i32 %n.0, 1		; <i32> [#uses=1]
-	br label %bb8
-
-bb8:		; preds = %bb, %entry
-	%n.0 = phi i32 [ 0, %entry ], [ %12, %bb ]		; <i32> [#uses=4]
-	call void @llvm.dbg.stoppoint(i32 489, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%13 = call i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %poly) nounwind		; <i32> [#uses=1]
-	%14 = icmp ugt i32 %13, %n.0		; <i1> [#uses=1]
-	br i1 %14, label %bb, label %return
-
-return:		; preds = %bb8
-	call void @llvm.dbg.stoppoint(i32 489, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram747 to %0*))
-	ret void
-}
-
-define linkonce %"struct.polynomial<std::complex<double> >"* @_ZN10polynomialISt7complexIdEEaSERKS2_(%"struct.polynomial<std::complex<double> >"* %this, %"struct.polynomial<std::complex<double> >"* %source) {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram753 to %0*))
-	call void @llvm.dbg.stoppoint(i32 261, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%0 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%1 = load i32* %0, align 4		; <i32> [#uses=1]
-	%2 = getelementptr %"struct.polynomial<std::complex<double> >"* %source, i32 0, i32 2		; <i32*> [#uses=1]
-	%3 = load i32* %2, align 4		; <i32> [#uses=1]
-	%4 = icmp eq i32 %1, %3		; <i1> [#uses=1]
-	br i1 %4, label %bb1, label %bb
-
-bb:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 263, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialISt7complexIdEE7releaseEv(%"struct.polynomial<std::complex<double> >"* %this) nounwind
-	call void @llvm.dbg.stoppoint(i32 265, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%5 = getelementptr %"struct.polynomial<std::complex<double> >"* %source, i32 0, i32 2		; <i32*> [#uses=1]
-	%6 = load i32* %5, align 4		; <i32> [#uses=1]
-	%7 = getelementptr %"struct.polynomial<std::complex<double> >"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %6, i32* %7, align 4
-	call void @llvm.dbg.stoppoint(i32 266, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialISt7complexIdEE7acquireEv(%"struct.polynomial<std::complex<double> >"* %this)
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	call void @llvm.dbg.stoppoint(i32 269, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%8 = getelementptr %"struct.polynomial<std::complex<double> >"* %source, i32 0, i32 1		; <%"struct.std::complex<double>"**> [#uses=1]
-	%9 = load %"struct.std::complex<double>"** %8, align 4		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @_ZN10polynomialISt7complexIdEE9deep_copyEPKS1_(%"struct.polynomial<std::complex<double> >"* %this, %"struct.std::complex<double>"* %9) nounwind
-	call void @llvm.dbg.stoppoint(i32 271, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram753 to %0*))
-	ret %"struct.polynomial<std::complex<double> >"* %this
-}
-
-define linkonce i32 @_ZN10polynomialIdE11stretch_fftEv(%"struct.polynomial<double>"* %this) {
-entry:
-	%0 = alloca %"struct.std::allocator<char>", align 8		; <%"struct.std::allocator<char>"*> [#uses=4]
-	%1 = alloca %"struct.std::string", align 8		; <%"struct.std::string"*> [#uses=4]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram756 to %0*))
-	call void @llvm.dbg.stoppoint(i32 445, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb
-
-bb:		; preds = %bb1, %entry
-	%n.0 = phi i32 [ 1, %entry ], [ %5, %bb1 ]		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 449, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%2 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%3 = load i32* %2, align 4		; <i32> [#uses=1]
-	%4 = icmp ugt i32 %3, %n.0		; <i1> [#uses=1]
-	%5 = shl i32 %n.0, 1		; <i32> [#uses=4]
-	br i1 %4, label %bb1, label %bb17
-
-bb1:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 454, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%6 = icmp eq i32 %5, 0		; <i1> [#uses=1]
-	br i1 %6, label %bb2, label %bb
-
-bb2:		; preds = %bb1
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZNSaIcEC1Ev(%"struct.std::allocator<char>"* %0) nounwind
-	invoke void @_ZNSsC1EPKcRKSaIcE(%"struct.std::string"* %1, i8* getelementptr ([35 x i8]* @.str759, i32 0, i32 0), %"struct.std::allocator<char>"* %0)
-			to label %invcont unwind label %lpad
-
-invcont:		; preds = %bb2
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%7 = call i8* @__cxa_allocate_exception(i32 8) nounwind		; <i8*> [#uses=3]
-	%8 = bitcast i8* %7 to %"struct.std::overflow_error"*		; <%"struct.std::overflow_error"*> [#uses=1]
-	invoke void @_ZNSt14overflow_errorC1ERKSs(%"struct.std::overflow_error"* %8, %"struct.std::string"* %1)
-			to label %invcont3 unwind label %lpad23
-
-invcont3:		; preds = %invcont
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZNSsD1Ev(%"struct.std::string"* %1)
-			to label %bb11 unwind label %lpad31
-
-bb11:		; preds = %invcont3
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZNSaIcED1Ev(%"struct.std::allocator<char>"* %0) nounwind
-	call void @__cxa_throw(i8* %7, i8* bitcast (%struct.__si_class_type_info_pseudo* @_ZTISt14overflow_error to i8*), void (i8*)* bitcast (void (%"struct.std::overflow_error"*)* @_ZNSt14overflow_errorD1Ev to void (i8*)*)) noreturn
-	unreachable
-
-bb17:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 459, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%9 = getelementptr %"struct.polynomial<double>"* %this, i32 0, i32 2		; <i32*> [#uses=1]
-	%10 = load i32* %9, align 4		; <i32> [#uses=2]
-	%11 = sub i32 %5, %10		; <i32> [#uses=3]
-	call void @llvm.dbg.stoppoint(i32 461, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%12 = icmp eq i32 %5, %10		; <i1> [#uses=1]
-	br i1 %12, label %return, label %bb18
-
-bb18:		; preds = %bb17
-	call void @llvm.dbg.stoppoint(i32 462, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%13 = call %"struct.polynomial<double>"* @_ZN10polynomialIdE7stretchEj(%"struct.polynomial<double>"* %this, i32 %11)		; <%"struct.polynomial<double>"*> [#uses=0]
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram756 to %0*))
-	ret i32 %11
-
-return:		; preds = %bb17
-	call void @llvm.dbg.stoppoint(i32 464, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	ret i32 %11
-
-lpad:		; preds = %bb2
-	%eh_ptr = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select22 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad
-
-lpad23:		; preds = %invcont
-	%eh_ptr24 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select26 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr24, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @__cxa_free_exception(i8* %7) nounwind
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZNSsD1Ev(%"struct.std::string"* %1)
-			to label %ppad unwind label %lpad27
-
-lpad27:		; preds = %lpad23
-	%eh_ptr28 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select30 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr28, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad31:		; preds = %invcont3
-	%eh_ptr32 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select34 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr32, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-ppad:		; preds = %lpad23, %lpad
-	%eh_exception.0 = phi i8* [ %eh_ptr, %lpad ], [ %eh_ptr24, %lpad23 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 455, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZNSaIcED1Ev(%"struct.std::allocator<char>"* %0) nounwind
-	call void @_Unwind_Resume(i8* %eh_exception.0)
-	unreachable
-}
-
-declare void @_ZNSaIcEC1Ev(%"struct.std::allocator<char>"*) nounwind
-
-declare void @_ZNSsC1EPKcRKSaIcE(%"struct.std::string"*, i8*, %"struct.std::allocator<char>"*)
-
-declare i8* @__cxa_allocate_exception(i32) nounwind
-
-declare void @_ZNSt14overflow_errorC1ERKSs(%"struct.std::overflow_error"*, %"struct.std::string"*)
-
-declare void @_ZNSsD1Ev(%"struct.std::string"*)
-
-declare i8* @llvm.eh.exception() nounwind
-
-declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind
-
-declare void @__cxa_free_exception(i8*) nounwind
-
-declare void @_ZSt9terminatev() noreturn nounwind
-
-declare void @_ZNSaIcED1Ev(%"struct.std::allocator<char>"*) nounwind
-
-declare void @__cxa_throw(i8*, i8*, void (i8*)*) noreturn
-
-define linkonce void @_ZNSt14overflow_errorD1Ev(%"struct.std::overflow_error"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1727 to %0*))
-	call void @llvm.dbg.stoppoint(i32 134, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*))
-	%0 = getelementptr %"struct.std::overflow_error"* %this, i32 0, i32 0, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([5 x i32 (...)*]* @_ZTVSt14overflow_error, i32 0, i32 2), i32 (...)*** %0, align 4
-	%1 = getelementptr %"struct.std::overflow_error"* %this, i32 0, i32 0		; <%"struct.std::runtime_error"*> [#uses=1]
-	call void @_ZNSt13runtime_errorD2Ev(%"struct.std::runtime_error"* %1) nounwind
-	call void @llvm.dbg.stoppoint(i32 134, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*))
-	ret void
-}
-
-declare i32 @__gxx_personality_v0(...)
-
-declare void @_Unwind_Resume(i8*)
-
-define linkonce void @_ZNSt14overflow_errorD0Ev(%"struct.std::overflow_error"* %this) nounwind {
-entry:
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1736 to %0*))
-	call void @llvm.dbg.stoppoint(i32 134, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*))
-	%0 = getelementptr %"struct.std::overflow_error"* %this, i32 0, i32 0, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	store i32 (...)** getelementptr ([5 x i32 (...)*]* @_ZTVSt14overflow_error, i32 0, i32 2), i32 (...)*** %0, align 4
-	%1 = getelementptr %"struct.std::overflow_error"* %this, i32 0, i32 0		; <%"struct.std::runtime_error"*> [#uses=1]
-	call void @_ZNSt13runtime_errorD2Ev(%"struct.std::runtime_error"* %1) nounwind
-	call void @llvm.dbg.stoppoint(i32 134, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit770 to %0*))
-	%2 = bitcast %"struct.std::overflow_error"* %this to i8*		; <i8*> [#uses=1]
-	call void @_ZdlPv(i8* %2) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1736 to %0*))
-	ret void
-}
-
-declare i8* @_ZNKSt13runtime_error4whatEv(%"struct.std::runtime_error"*) nounwind
-
-declare void @_ZNSt13runtime_errorD2Ev(%"struct.std::runtime_error"*) nounwind
-
-define linkonce void @_ZSt13__complex_expCd(%1* noalias sret %agg.result, %1 %__z) nounwind {
-entry:
-	%0 = alloca %1, align 8		; <%1*> [#uses=4]
-	%memtmp = alloca %1, align 8		; <%1*> [#uses=3]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1742 to %0*))
-	call void @llvm.dbg.stoppoint(i32 730, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	call void @cexp(%1* noalias sret %memtmp, %1 %__z) nounwind
-	%1 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	%2 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%3 = load double* %2, align 8		; <double> [#uses=1]
-	store double %3, double* %1, align 8
-	%4 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	%5 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%6 = load double* %5, align 8		; <double> [#uses=1]
-	store double %6, double* %4, align 8
-	%7 = getelementptr %1* %agg.result, i32 0, i32 0		; <double*> [#uses=1]
-	%8 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	%9 = load double* %8, align 8		; <double> [#uses=1]
-	store double %9, double* %7, align 8
-	%10 = getelementptr %1* %agg.result, i32 0, i32 1		; <double*> [#uses=1]
-	%11 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	%12 = load double* %11, align 8		; <double> [#uses=1]
-	store double %12, double* %10, align 8
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1742 to %0*))
-	ret void
-}
-
-declare void @cexp(%1* noalias sret, %1) nounwind
-
-define linkonce void @_ZSt3expIdESt7complexIT_ERKS2_(%"struct.std::complex<double>"* noalias sret %agg.result, %"struct.std::complex<double>"* %__z) nounwind {
-entry:
-	%0 = alloca %1, align 8		; <%1*> [#uses=3]
-	%1 = alloca %1, align 8		; <%1*> [#uses=3]
-	%memtmp = alloca %1, align 8		; <%1*> [#uses=3]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1746 to %0*))
-	call void @llvm.dbg.stoppoint(i32 738, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit5 to %0*))
-	%2 = call %1* @_ZNKSt7complexIdE5__repEv(%"struct.std::complex<double>"* %__z) nounwind		; <%1*> [#uses=2]
-	%3 = getelementptr %1* %1, i32 0, i32 0		; <double*> [#uses=1]
-	%4 = getelementptr %1* %2, i32 0, i32 0		; <double*> [#uses=1]
-	%5 = load double* %4, align 8		; <double> [#uses=1]
-	store double %5, double* %3, align 8
-	%6 = getelementptr %1* %1, i32 0, i32 1		; <double*> [#uses=1]
-	%7 = getelementptr %1* %2, i32 0, i32 1		; <double*> [#uses=1]
-	%8 = load double* %7, align 8		; <double> [#uses=1]
-	store double %8, double* %6, align 8
-	%9 = load %1* %1, align 8		; <%1> [#uses=1]
-	call void @_ZSt13__complex_expCd(%1* noalias sret %memtmp, %1 %9) nounwind
-	%10 = getelementptr %1* %0, i32 0, i32 0		; <double*> [#uses=1]
-	%11 = getelementptr %1* %memtmp, i32 0, i32 0		; <double*> [#uses=1]
-	%12 = load double* %11, align 8		; <double> [#uses=1]
-	store double %12, double* %10, align 8
-	%13 = getelementptr %1* %0, i32 0, i32 1		; <double*> [#uses=1]
-	%14 = getelementptr %1* %memtmp, i32 0, i32 1		; <double*> [#uses=1]
-	%15 = load double* %14, align 8		; <double> [#uses=1]
-	store double %15, double* %13, align 8
-	%16 = load %1* %0, align 8		; <%1> [#uses=1]
-	call void @_ZNSt7complexIdEC1ECd(%"struct.std::complex<double>"* %agg.result, %1 %16) nounwind
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1746 to %0*))
-	ret void
-}
-
-define linkonce void @_ZN10polynomialIdE3fftERKS0_(%"struct.polynomial<std::complex<double> >"* noalias sret %agg.result, %"struct.polynomial<double>"* %poly) {
-entry:
-	%result = alloca %"struct.polynomial<std::complex<double> >", align 8		; <%"struct.polynomial<std::complex<double> >"*> [#uses=1]
-	%u = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=6]
-	%t = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=6]
-	%w = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=5]
-	%wm = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=5]
-	%0 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=2]
-	%1 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=2]
-	%memtmp20 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	%memtmp23 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	%memtmp24 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	%memtmp26 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1748 to %0*))
-	%2 = bitcast %"struct.polynomial<std::complex<double> >"* %result to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %2, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1751 to %0*))
-	%3 = bitcast %"struct.std::complex<double>"* %u to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %3, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1753 to %0*))
-	%4 = bitcast %"struct.std::complex<double>"* %t to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %4, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1755 to %0*))
-	%5 = bitcast %"struct.std::complex<double>"* %w to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %5, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1757 to %0*))
-	%6 = bitcast %"struct.std::complex<double>"* %wm to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %6, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1759 to %0*))
-	call void @llvm.dbg.stoppoint(i32 499, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%7 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %poly) nounwind		; <i32> [#uses=1]
-	%8 = call i32 @_ZN10polynomialIdE4log2Ej(i32 %7) nounwind		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 501, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %wm, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %w, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %t, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %u, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @llvm.dbg.stoppoint(i32 503, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE11bit_reverseERKS0_(%"struct.polynomial<std::complex<double> >"* noalias sret %agg.result, %"struct.polynomial<double>"* %poly)
-	call void @llvm.dbg.stoppoint(i32 508, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb32
-
-bb:		; preds = %bb32
-	call void @llvm.dbg.stoppoint(i32 510, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%9 = uitofp i32 %m.0 to double		; <double> [#uses=1]
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %0, double %9, double 0.000000e+00) nounwind
-	invoke void @_ZStdvIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %1, %"struct.std::complex<double>"* @_ZN10polynomialIdE4PI2IE, %"struct.std::complex<double>"* %0)
-			to label %invcont unwind label %lpad
-
-invcont:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 510, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt3expIdESt7complexIT_ERKS2_(%"struct.std::complex<double>"* noalias sret %memtmp20, %"struct.std::complex<double>"* %1) nounwind
-	%10 = getelementptr %"struct.std::complex<double>"* %wm, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%11 = getelementptr %"struct.std::complex<double>"* %memtmp20, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%12 = load double* %11, align 8		; <double> [#uses=1]
-	store double %12, double* %10, align 8
-	%13 = getelementptr %"struct.std::complex<double>"* %wm, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%14 = getelementptr %"struct.std::complex<double>"* %memtmp20, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%15 = load double* %14, align 8		; <double> [#uses=1]
-	store double %15, double* %13, align 8
-	call void @llvm.dbg.stoppoint(i32 511, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%16 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEaSEd(%"struct.std::complex<double>"* %w, double 1.000000e+00) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 513, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb30
-
-bb22:		; preds = %bb28
-	call void @llvm.dbg.stoppoint(i32 517, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%17 = add i32 %k.0, %m2.0		; <i32> [#uses=1]
-	%18 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %17) nounwind		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @_ZStmlIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %memtmp23, %"struct.std::complex<double>"* %w, %"struct.std::complex<double>"* %18) nounwind
-	%19 = getelementptr %"struct.std::complex<double>"* %t, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%20 = getelementptr %"struct.std::complex<double>"* %memtmp23, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%21 = load double* %20, align 8		; <double> [#uses=1]
-	store double %21, double* %19, align 8
-	%22 = getelementptr %"struct.std::complex<double>"* %t, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%23 = getelementptr %"struct.std::complex<double>"* %memtmp23, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%24 = load double* %23, align 8		; <double> [#uses=1]
-	store double %24, double* %22, align 8
-	call void @llvm.dbg.stoppoint(i32 518, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%25 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %k.0) nounwind		; <%"struct.std::complex<double>"*> [#uses=2]
-	%26 = getelementptr %"struct.std::complex<double>"* %u, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%27 = getelementptr %"struct.std::complex<double>"* %25, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%28 = load double* %27, align 4		; <double> [#uses=1]
-	store double %28, double* %26, align 8
-	%29 = getelementptr %"struct.std::complex<double>"* %u, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%30 = getelementptr %"struct.std::complex<double>"* %25, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%31 = load double* %30, align 4		; <double> [#uses=1]
-	store double %31, double* %29, align 8
-	call void @llvm.dbg.stoppoint(i32 519, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%32 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %k.0) nounwind		; <%"struct.std::complex<double>"*> [#uses=2]
-	invoke void @_ZStplIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %memtmp24, %"struct.std::complex<double>"* %u, %"struct.std::complex<double>"* %t)
-			to label %invcont25 unwind label %lpad
-
-invcont25:		; preds = %bb22
-	%33 = getelementptr %"struct.std::complex<double>"* %32, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%34 = getelementptr %"struct.std::complex<double>"* %memtmp24, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%35 = load double* %34, align 8		; <double> [#uses=1]
-	store double %35, double* %33, align 4
-	%36 = getelementptr %"struct.std::complex<double>"* %32, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%37 = getelementptr %"struct.std::complex<double>"* %memtmp24, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%38 = load double* %37, align 8		; <double> [#uses=1]
-	store double %38, double* %36, align 4
-	call void @llvm.dbg.stoppoint(i32 520, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%39 = add i32 %k.0, %m2.0		; <i32> [#uses=1]
-	%40 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %39) nounwind		; <%"struct.std::complex<double>"*> [#uses=2]
-	invoke void @_ZStmiIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %memtmp26, %"struct.std::complex<double>"* %u, %"struct.std::complex<double>"* %t)
-			to label %invcont27 unwind label %lpad
-
-invcont27:		; preds = %invcont25
-	%41 = getelementptr %"struct.std::complex<double>"* %40, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%42 = getelementptr %"struct.std::complex<double>"* %memtmp26, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%43 = load double* %42, align 8		; <double> [#uses=1]
-	store double %43, double* %41, align 4
-	%44 = getelementptr %"struct.std::complex<double>"* %40, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%45 = getelementptr %"struct.std::complex<double>"* %memtmp26, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%46 = load double* %45, align 8		; <double> [#uses=1]
-	store double %46, double* %44, align 4
-	call void @llvm.dbg.stoppoint(i32 515, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%47 = add i32 %k.0, %m.0		; <i32> [#uses=1]
-	br label %bb28
-
-bb28:		; preds = %bb30, %invcont27
-	%k.0 = phi i32 [ %47, %invcont27 ], [ %j.0, %bb30 ]		; <i32> [#uses=6]
-	call void @llvm.dbg.stoppoint(i32 515, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%48 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %poly) nounwind		; <i32> [#uses=1]
-	%49 = add i32 %48, -1		; <i32> [#uses=1]
-	%50 = icmp ult i32 %49, %k.0		; <i1> [#uses=1]
-	br i1 %50, label %bb29, label %bb22
-
-bb29:		; preds = %bb28
-	call void @llvm.dbg.stoppoint(i32 523, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%51 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEmLIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %w, %"struct.std::complex<double>"* %wm) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 513, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%52 = add i32 %j.0, 1		; <i32> [#uses=1]
-	br label %bb30
-
-bb30:		; preds = %bb29, %invcont
-	%j.0 = phi i32 [ 0, %invcont ], [ %52, %bb29 ]		; <i32> [#uses=3]
-	call void @llvm.dbg.stoppoint(i32 513, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%53 = add i32 %m2.0, -1		; <i32> [#uses=1]
-	%54 = icmp ult i32 %53, %j.0		; <i1> [#uses=1]
-	br i1 %54, label %bb31, label %bb28
-
-bb31:		; preds = %bb30
-	call void @llvm.dbg.stoppoint(i32 526, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%55 = shl i32 %m.0, 1		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 527, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%56 = shl i32 %m2.0, 1		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 508, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%57 = add i32 %s.0, 1		; <i32> [#uses=1]
-	br label %bb32
-
-bb32:		; preds = %bb31, %entry
-	%m.0 = phi i32 [ 2, %entry ], [ %55, %bb31 ]		; <i32> [#uses=3]
-	%m2.0 = phi i32 [ 1, %entry ], [ %56, %bb31 ]		; <i32> [#uses=4]
-	%s.0 = phi i32 [ 0, %entry ], [ %57, %bb31 ]		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 508, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%58 = icmp ult i32 %s.0, %8		; <i1> [#uses=1]
-	br i1 %58, label %bb, label %return
-
-return:		; preds = %bb32
-	call void @llvm.dbg.stoppoint(i32 530, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1748 to %0*))
-	ret void
-
-lpad:		; preds = %invcont25, %bb22, %bb
-	%eh_ptr = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select40 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 530, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %agg.result)
-			to label %Unwind unwind label %lpad41
-
-lpad41:		; preds = %lpad
-	%eh_ptr42 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select44 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr42, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 530, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-Unwind:		; preds = %lpad
-	call void @_Unwind_Resume(i8* %eh_ptr)
-	unreachable
-}
-
-define linkonce void @_ZN10polynomialIdE11inverse_fftERKS_ISt7complexIdEE(%"struct.polynomial<std::complex<double> >"* noalias sret %agg.result, %"struct.polynomial<std::complex<double> >"* %poly) {
-entry:
-	%result = alloca %"struct.polynomial<std::complex<double> >", align 8		; <%"struct.polynomial<std::complex<double> >"*> [#uses=1]
-	%u = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=6]
-	%t = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=6]
-	%w = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=5]
-	%wm = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=5]
-	%0 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=2]
-	%1 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=2]
-	%2 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=2]
-	%memtmp22 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	%memtmp25 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	%memtmp26 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	%memtmp28 = alloca %"struct.std::complex<double>", align 8		; <%"struct.std::complex<double>"*> [#uses=3]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1771 to %0*))
-	%3 = bitcast %"struct.polynomial<std::complex<double> >"* %result to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %3, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1774 to %0*))
-	%4 = bitcast %"struct.std::complex<double>"* %u to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %4, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1775 to %0*))
-	%5 = bitcast %"struct.std::complex<double>"* %t to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %5, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1776 to %0*))
-	%6 = bitcast %"struct.std::complex<double>"* %w to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %6, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1777 to %0*))
-	%7 = bitcast %"struct.std::complex<double>"* %wm to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %7, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1778 to %0*))
-	call void @llvm.dbg.stoppoint(i32 537, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%8 = call i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %poly) nounwind		; <i32> [#uses=1]
-	%9 = call i32 @_ZN10polynomialIdE4log2Ej(i32 %8) nounwind		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 539, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %wm, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %w, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %t, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %u, double 0.000000e+00, double 0.000000e+00) nounwind
-	call void @llvm.dbg.stoppoint(i32 541, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdE11bit_reverseERKS_ISt7complexIdEE(%"struct.polynomial<std::complex<double> >"* noalias sret %agg.result, %"struct.polynomial<std::complex<double> >"* %poly)
-	call void @llvm.dbg.stoppoint(i32 546, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb34
-
-bb:		; preds = %bb34
-	call void @llvm.dbg.stoppoint(i32 548, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%10 = uitofp i32 %m.0 to double		; <double> [#uses=1]
-	call void @_ZNSt7complexIdEC1Edd(%"struct.std::complex<double>"* %1, double %10, double 0.000000e+00) nounwind
-	call void @_ZStngIdESt7complexIT_ERKS2_(%"struct.std::complex<double>"* noalias sret %0, %"struct.std::complex<double>"* @_ZN10polynomialIdE4PI2IE) nounwind
-	invoke void @_ZStdvIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %2, %"struct.std::complex<double>"* %0, %"struct.std::complex<double>"* %1)
-			to label %invcont unwind label %lpad
-
-invcont:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 548, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt3expIdESt7complexIT_ERKS2_(%"struct.std::complex<double>"* noalias sret %memtmp22, %"struct.std::complex<double>"* %2) nounwind
-	%11 = getelementptr %"struct.std::complex<double>"* %wm, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%12 = getelementptr %"struct.std::complex<double>"* %memtmp22, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%13 = load double* %12, align 8		; <double> [#uses=1]
-	store double %13, double* %11, align 8
-	%14 = getelementptr %"struct.std::complex<double>"* %wm, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%15 = getelementptr %"struct.std::complex<double>"* %memtmp22, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%16 = load double* %15, align 8		; <double> [#uses=1]
-	store double %16, double* %14, align 8
-	call void @llvm.dbg.stoppoint(i32 549, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%17 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEaSEd(%"struct.std::complex<double>"* %w, double 1.000000e+00) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 551, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb32
-
-bb24:		; preds = %bb30
-	call void @llvm.dbg.stoppoint(i32 555, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%18 = add i32 %k.0, %m2.0		; <i32> [#uses=1]
-	%19 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %18) nounwind		; <%"struct.std::complex<double>"*> [#uses=1]
-	call void @_ZStmlIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %memtmp25, %"struct.std::complex<double>"* %w, %"struct.std::complex<double>"* %19) nounwind
-	%20 = getelementptr %"struct.std::complex<double>"* %t, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%21 = getelementptr %"struct.std::complex<double>"* %memtmp25, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%22 = load double* %21, align 8		; <double> [#uses=1]
-	store double %22, double* %20, align 8
-	%23 = getelementptr %"struct.std::complex<double>"* %t, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%24 = getelementptr %"struct.std::complex<double>"* %memtmp25, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%25 = load double* %24, align 8		; <double> [#uses=1]
-	store double %25, double* %23, align 8
-	call void @llvm.dbg.stoppoint(i32 556, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%26 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %k.0) nounwind		; <%"struct.std::complex<double>"*> [#uses=2]
-	%27 = getelementptr %"struct.std::complex<double>"* %u, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%28 = getelementptr %"struct.std::complex<double>"* %26, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%29 = load double* %28, align 4		; <double> [#uses=1]
-	store double %29, double* %27, align 8
-	%30 = getelementptr %"struct.std::complex<double>"* %u, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%31 = getelementptr %"struct.std::complex<double>"* %26, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%32 = load double* %31, align 4		; <double> [#uses=1]
-	store double %32, double* %30, align 8
-	call void @llvm.dbg.stoppoint(i32 557, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%33 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %k.0) nounwind		; <%"struct.std::complex<double>"*> [#uses=2]
-	invoke void @_ZStplIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %memtmp26, %"struct.std::complex<double>"* %u, %"struct.std::complex<double>"* %t)
-			to label %invcont27 unwind label %lpad
-
-invcont27:		; preds = %bb24
-	%34 = getelementptr %"struct.std::complex<double>"* %33, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%35 = getelementptr %"struct.std::complex<double>"* %memtmp26, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%36 = load double* %35, align 8		; <double> [#uses=1]
-	store double %36, double* %34, align 4
-	%37 = getelementptr %"struct.std::complex<double>"* %33, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%38 = getelementptr %"struct.std::complex<double>"* %memtmp26, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%39 = load double* %38, align 8		; <double> [#uses=1]
-	store double %39, double* %37, align 4
-	call void @llvm.dbg.stoppoint(i32 558, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%40 = add i32 %k.0, %m2.0		; <i32> [#uses=1]
-	%41 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %40) nounwind		; <%"struct.std::complex<double>"*> [#uses=2]
-	invoke void @_ZStmiIdESt7complexIT_ERKS2_S4_(%"struct.std::complex<double>"* noalias sret %memtmp28, %"struct.std::complex<double>"* %u, %"struct.std::complex<double>"* %t)
-			to label %invcont29 unwind label %lpad
-
-invcont29:		; preds = %invcont27
-	%42 = getelementptr %"struct.std::complex<double>"* %41, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%43 = getelementptr %"struct.std::complex<double>"* %memtmp28, i32 0, i32 0, i32 0		; <double*> [#uses=1]
-	%44 = load double* %43, align 8		; <double> [#uses=1]
-	store double %44, double* %42, align 4
-	%45 = getelementptr %"struct.std::complex<double>"* %41, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%46 = getelementptr %"struct.std::complex<double>"* %memtmp28, i32 0, i32 0, i32 1		; <double*> [#uses=1]
-	%47 = load double* %46, align 8		; <double> [#uses=1]
-	store double %47, double* %45, align 4
-	call void @llvm.dbg.stoppoint(i32 553, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%48 = add i32 %k.0, %m.0		; <i32> [#uses=1]
-	br label %bb30
-
-bb30:		; preds = %bb32, %invcont29
-	%k.0 = phi i32 [ %48, %invcont29 ], [ %j.0, %bb32 ]		; <i32> [#uses=6]
-	call void @llvm.dbg.stoppoint(i32 553, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%49 = call i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %poly) nounwind		; <i32> [#uses=1]
-	%50 = add i32 %49, -1		; <i32> [#uses=1]
-	%51 = icmp ult i32 %50, %k.0		; <i1> [#uses=1]
-	br i1 %51, label %bb31, label %bb24
-
-bb31:		; preds = %bb30
-	call void @llvm.dbg.stoppoint(i32 561, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%52 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEmLIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %w, %"struct.std::complex<double>"* %wm) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 551, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%53 = add i32 %j.0, 1		; <i32> [#uses=1]
-	br label %bb32
-
-bb32:		; preds = %bb31, %invcont
-	%j.0 = phi i32 [ 0, %invcont ], [ %53, %bb31 ]		; <i32> [#uses=3]
-	call void @llvm.dbg.stoppoint(i32 551, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%54 = add i32 %m2.0, -1		; <i32> [#uses=1]
-	%55 = icmp ult i32 %54, %j.0		; <i1> [#uses=1]
-	br i1 %55, label %bb33, label %bb30
-
-bb33:		; preds = %bb32
-	call void @llvm.dbg.stoppoint(i32 564, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%56 = shl i32 %m.0, 1		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 565, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%57 = shl i32 %m2.0, 1		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 546, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%58 = add i32 %s.0, 1		; <i32> [#uses=1]
-	br label %bb34
-
-bb34:		; preds = %bb33, %entry
-	%m.0 = phi i32 [ 2, %entry ], [ %56, %bb33 ]		; <i32> [#uses=3]
-	%m2.0 = phi i32 [ 1, %entry ], [ %57, %bb33 ]		; <i32> [#uses=4]
-	%s.0 = phi i32 [ 0, %entry ], [ %58, %bb33 ]		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 546, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%59 = icmp ult i32 %s.0, %9		; <i1> [#uses=1]
-	br i1 %59, label %bb, label %bb37
-
-bb36:		; preds = %bb37
-	call void @llvm.dbg.stoppoint(i32 569, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%60 = call i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %poly) nounwind		; <i32> [#uses=1]
-	%61 = uitofp i32 %60 to double		; <double> [#uses=1]
-	%62 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %agg.result, i32 %j.1) nounwind		; <%"struct.std::complex<double>"*> [#uses=1]
-	%63 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEdVEd(%"struct.std::complex<double>"* %62, double %61) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 568, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%64 = add i32 %j.1, 1		; <i32> [#uses=1]
-	br label %bb37
-
-bb37:		; preds = %bb36, %bb34
-	%j.1 = phi i32 [ %64, %bb36 ], [ 0, %bb34 ]		; <i32> [#uses=3]
-	call void @llvm.dbg.stoppoint(i32 568, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%65 = call i32 @_ZNK10polynomialISt7complexIdEE6degreeEv(%"struct.polynomial<std::complex<double> >"* %poly) nounwind		; <i32> [#uses=1]
-	%66 = icmp ugt i32 %65, %j.1		; <i1> [#uses=1]
-	br i1 %66, label %bb36, label %return
-
-return:		; preds = %bb37
-	call void @llvm.dbg.stoppoint(i32 571, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1771 to %0*))
-	ret void
-
-lpad:		; preds = %invcont27, %bb24, %bb
-	%eh_ptr = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select46 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 571, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %agg.result)
-			to label %Unwind unwind label %lpad47
-
-lpad47:		; preds = %lpad
-	%eh_ptr48 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select50 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr48, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 571, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-Unwind:		; preds = %lpad
-	call void @_Unwind_Resume(i8* %eh_ptr)
-	unreachable
-}
-
-define linkonce void @_ZNK10polynomialIdEmlERKS0_(%"struct.polynomial<double>"* noalias sret %agg.result, %"struct.polynomial<double>"* %this, %"struct.polynomial<double>"* %poly) {
-entry:
-	%result = alloca %"struct.polynomial<double>", align 8		; <%"struct.polynomial<double>"*> [#uses=1]
-	%dft2 = alloca %"struct.polynomial<std::complex<double> >", align 8		; <%"struct.polynomial<std::complex<double> >"*> [#uses=7]
-	%dft1 = alloca %"struct.polynomial<std::complex<double> >", align 8		; <%"struct.polynomial<std::complex<double> >"*> [#uses=6]
-	%a2 = alloca %"struct.polynomial<double>", align 8		; <%"struct.polynomial<double>"*> [#uses=8]
-	%a1 = alloca %"struct.polynomial<double>", align 8		; <%"struct.polynomial<double>"*> [#uses=9]
-	%0 = alloca %"struct.polynomial<std::complex<double> >", align 8		; <%"struct.polynomial<std::complex<double> >"*> [#uses=4]
-	call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1785 to %0*))
-	%1 = bitcast %"struct.polynomial<double>"* %result to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %1, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1791 to %0*))
-	%2 = bitcast %"struct.polynomial<std::complex<double> >"* %dft2 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %2, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1795 to %0*))
-	%3 = bitcast %"struct.polynomial<std::complex<double> >"* %dft1 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %3, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1797 to %0*))
-	%4 = bitcast %"struct.polynomial<double>"* %a2 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %4, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1799 to %0*))
-	%5 = bitcast %"struct.polynomial<double>"* %a1 to %0*		; <%0*> [#uses=1]
-	call void @llvm.dbg.declare(%0* %5, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1801 to %0*))
-	call void @llvm.dbg.stoppoint(i32 590, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdEC1ERKS0_(%"struct.polynomial<double>"* %a1, %"struct.polynomial<double>"* %this)
-	call void @llvm.dbg.stoppoint(i32 591, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdEC1ERKS0_(%"struct.polynomial<double>"* %a2, %"struct.polynomial<double>"* %poly)
-			to label %invcont unwind label %lpad
-
-invcont:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 594, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%6 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %a1) nounwind		; <i32> [#uses=1]
-	%7 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %a2) nounwind		; <i32> [#uses=1]
-	%8 = icmp ugt i32 %6, %7		; <i1> [#uses=1]
-	br i1 %8, label %bb, label %bb26
-
-bb:		; preds = %invcont
-	call void @llvm.dbg.stoppoint(i32 595, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%9 = invoke i32 @_ZN10polynomialIdE11stretch_fftEv(%"struct.polynomial<double>"* %a1)
-			to label %invcont24 unwind label %lpad76		; <i32> [#uses=1]
-
-invcont24:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 595, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%10 = invoke %"struct.polynomial<double>"* @_ZN10polynomialIdE7stretchEj(%"struct.polynomial<double>"* %a2, i32 %9)
-			to label %bb29 unwind label %lpad76		; <%"struct.polynomial<double>"*> [#uses=0]
-
-bb26:		; preds = %invcont
-	call void @llvm.dbg.stoppoint(i32 597, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%11 = invoke i32 @_ZN10polynomialIdE11stretch_fftEv(%"struct.polynomial<double>"* %a2)
-			to label %invcont27 unwind label %lpad76		; <i32> [#uses=1]
-
-invcont27:		; preds = %bb26
-	call void @llvm.dbg.stoppoint(i32 597, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%12 = invoke %"struct.polynomial<double>"* @_ZN10polynomialIdE7stretchEj(%"struct.polynomial<double>"* %a1, i32 %11)
-			to label %bb29 unwind label %lpad76		; <%"struct.polynomial<double>"*> [#uses=0]
-
-bb29:		; preds = %invcont27, %invcont24
-	call void @llvm.dbg.stoppoint(i32 600, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdE3fftERKS0_(%"struct.polynomial<std::complex<double> >"* noalias sret %dft1, %"struct.polynomial<double>"* %a1)
-			to label %invcont30 unwind label %lpad76
-
-invcont30:		; preds = %bb29
-	call void @llvm.dbg.stoppoint(i32 601, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdE3fftERKS0_(%"struct.polynomial<std::complex<double> >"* noalias sret %dft2, %"struct.polynomial<double>"* %a2)
-			to label %invcont31 unwind label %lpad80
-
-invcont31:		; preds = %invcont30
-	call void @llvm.dbg.stoppoint(i32 604, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%13 = call i32 @_ZNK10polynomialIdE6degreeEv(%"struct.polynomial<double>"* %a1) nounwind		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 606, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	br label %bb33
-
-bb32:		; preds = %bb33
-	call void @llvm.dbg.stoppoint(i32 607, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%14 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %dft2, i32 %k15.0) nounwind		; <%"struct.std::complex<double>"*> [#uses=1]
-	%15 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %dft1, i32 %k15.0) nounwind		; <%"struct.std::complex<double>"*> [#uses=1]
-	%16 = call %"struct.std::complex<double>"* @_ZNSt7complexIdEmLIdEERS0_RKS_IT_E(%"struct.std::complex<double>"* %15, %"struct.std::complex<double>"* %14) nounwind		; <%"struct.std::complex<double>"*> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 606, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%17 = add i32 %k15.0, 1		; <i32> [#uses=1]
-	br label %bb33
-
-bb33:		; preds = %bb32, %invcont31
-	%k15.0 = phi i32 [ 0, %invcont31 ], [ %17, %bb32 ]		; <i32> [#uses=4]
-	call void @llvm.dbg.stoppoint(i32 606, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%18 = icmp ult i32 %k15.0, %13		; <i1> [#uses=1]
-	br i1 %18, label %bb32, label %bb34
-
-bb34:		; preds = %bb33
-	call void @llvm.dbg.stoppoint(i32 610, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdE11inverse_fftERKS_ISt7complexIdEE(%"struct.polynomial<std::complex<double> >"* noalias sret %0, %"struct.polynomial<std::complex<double> >"* %dft1)
-			to label %invcont35 unwind label %lpad84
-
-invcont35:		; preds = %bb34
-	call void @llvm.dbg.stoppoint(i32 610, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%19 = invoke %"struct.polynomial<std::complex<double> >"* @_ZN10polynomialISt7complexIdEEaSERKS2_(%"struct.polynomial<std::complex<double> >"* %dft2, %"struct.polynomial<std::complex<double> >"* %0)
-			to label %invcont36 unwind label %lpad88		; <%"struct.polynomial<std::complex<double> >"*> [#uses=0]
-
-invcont36:		; preds = %invcont35
-	call void @llvm.dbg.stoppoint(i32 610, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %0)
-			to label %bb43 unwind label %lpad84
-
-bb43:		; preds = %invcont36
-	call void @llvm.dbg.stoppoint(i32 613, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%20 = add i32 %13, -1		; <i32> [#uses=2]
-	call void @llvm.dbg.stoppoint(i32 614, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdEC1Ej(%"struct.polynomial<double>"* %agg.result, i32 %20)
-			to label %bb46 unwind label %lpad84
-
-bb45:		; preds = %bb46
-	call void @llvm.dbg.stoppoint(i32 617, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%21 = call double* @_ZN10polynomialIdEixEj(%"struct.polynomial<double>"* %agg.result, i32 %k.0) nounwind		; <double*> [#uses=1]
-	%22 = call %"struct.std::complex<double>"* @_ZN10polynomialISt7complexIdEEixEj(%"struct.polynomial<std::complex<double> >"* %dft2, i32 %k.0) nounwind		; <%"struct.std::complex<double>"*> [#uses=1]
-	%23 = call double* @_ZNSt7complexIdE4realEv(%"struct.std::complex<double>"* %22) nounwind		; <double*> [#uses=1]
-	%24 = load double* %23, align 8		; <double> [#uses=1]
-	store double %24, double* %21, align 8
-	call void @llvm.dbg.stoppoint(i32 616, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%25 = add i32 %k.0, 1		; <i32> [#uses=1]
-	br label %bb46
-
-bb46:		; preds = %bb45, %bb43
-	%k.0 = phi i32 [ %25, %bb45 ], [ 0, %bb43 ]		; <i32> [#uses=4]
-	call void @llvm.dbg.stoppoint(i32 616, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	%26 = icmp ult i32 %k.0, %20		; <i1> [#uses=1]
-	br i1 %26, label %bb45, label %bb47
-
-bb47:		; preds = %bb46
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %dft2)
-			to label %bb54 unwind label %lpad80
-
-bb54:		; preds = %bb47
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %dft1)
-			to label %bb61 unwind label %lpad76
-
-bb61:		; preds = %bb54
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %a2)
-			to label %bb68 unwind label %lpad
-
-bb68:		; preds = %bb61
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %a1)
-	call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1785 to %0*))
-	ret void
-
-lpad:		; preds = %bb61, %entry
-	%eh_ptr = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select75 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad
-
-lpad76:		; preds = %bb54, %bb29, %invcont27, %bb26, %invcont24, %bb
-	%eh_ptr77 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select79 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr77, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad112
-
-lpad80:		; preds = %bb47, %invcont30
-	%eh_ptr81 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select83 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr81, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad113
-
-lpad84:		; preds = %bb43, %invcont36, %bb34
-	%eh_ptr85 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select87 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr85, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	br label %ppad114
-
-lpad88:		; preds = %invcont35
-	%eh_ptr89 = call i8* @llvm.eh.exception()		; <i8*> [#uses=2]
-	%eh_select91 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr89, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 610, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %0)
-			to label %ppad114 unwind label %lpad92
-
-lpad92:		; preds = %lpad88
-	%eh_ptr93 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select95 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr93, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 610, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad96:		; preds = %ppad114
-	%eh_ptr97 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select99 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr97, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad100:		; preds = %ppad113
-	%eh_ptr101 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select103 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr101, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad104:		; preds = %ppad112
-	%eh_ptr105 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select107 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr105, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-lpad108:		; preds = %ppad
-	%eh_ptr109 = call i8* @llvm.eh.exception()		; <i8*> [#uses=1]
-	%eh_select111 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %eh_ptr109, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i32 1)		; <i32> [#uses=0]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	call void @_ZSt9terminatev() noreturn nounwind
-	unreachable
-
-ppad:		; preds = %ppad112, %lpad
-	%eh_exception.3 = phi i8* [ %eh_ptr, %lpad ], [ %eh_exception.2, %ppad112 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %a1)
-			to label %Unwind unwind label %lpad108
-
-ppad112:		; preds = %ppad113, %lpad76
-	%eh_exception.2 = phi i8* [ %eh_ptr77, %lpad76 ], [ %eh_exception.1, %ppad113 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialIdED1Ev(%"struct.polynomial<double>"* %a2)
-			to label %ppad unwind label %lpad104
-
-ppad113:		; preds = %ppad114, %lpad80
-	%eh_exception.1 = phi i8* [ %eh_ptr81, %lpad80 ], [ %eh_exception.0, %ppad114 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %dft1)
-			to label %ppad112 unwind label %lpad100
-
-ppad114:		; preds = %lpad88, %lpad84
-	%eh_exception.0 = phi i8* [ %eh_ptr85, %lpad84 ], [ %eh_ptr89, %lpad88 ]		; <i8*> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 620, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*))
-	invoke void @_ZN10polynomialISt7complexIdEED1Ev(%"struct.polynomial<std::complex<double> >"* %dft2)
-			to label %ppad113 unwind label %lpad96
-
-Unwind:		; preds = %ppad
-	call void @_Unwind_Resume(i8* %eh_exception.3)
-	unreachable
-}
-
-declare i32 @strcmp(i8* nocapture, i8* nocapture) nounwind readonly
-
-declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSolsEd(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, double)
-
-declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8*)
-
-declare %"struct.std::basic_ostream<char,std::char_traits<char> >"* @_ZNSo5flushEv(%"struct.std::basic_ostream<char,std::char_traits<char> >"*)
-
-declare extern_weak i32 @pthread_once(i32*, void ()*)
-
-declare extern_weak i8* @pthread_getspecific(i32)
-
-declare extern_weak i32 @pthread_setspecific(i32, i8*)
-
-declare extern_weak i32 @pthread_create(i32*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)
-
-declare extern_weak i32 @pthread_cancel(i32)
-
-declare extern_weak i32 @pthread_mutex_lock(%struct.pthread_mutex_t*)
-
-declare extern_weak i32 @pthread_mutex_trylock(%struct.pthread_mutex_t*)
-
-declare extern_weak i32 @pthread_mutex_unlock(%struct.pthread_mutex_t*)
-
-declare extern_weak i32 @pthread_mutex_init(%struct.pthread_mutex_t*, %struct..0._50*)
-
-declare extern_weak i32 @pthread_key_create(i32*, void (i8*)*)
-
-declare extern_weak i32 @pthread_key_delete(i32)
-
-declare extern_weak i32 @pthread_mutexattr_init(%struct..0._50*)
-
-declare extern_weak i32 @pthread_mutexattr_settype(%struct..0._50*, i32)
-
-declare extern_weak i32 @pthread_mutexattr_destroy(%struct..0._50*)
-
-declare i32 @memcmp(i8* nocapture, i8* nocapture, i32) nounwind readonly
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-04-21-ZeroLengthMemSet.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-04-21-ZeroLengthMemSet.ll
deleted file mode 100644
index 2342f05..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-04-21-ZeroLengthMemSet.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis
-; rdar://6808691
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "x86_64-apple-darwin9.0"
-	type <{ i32, i16, i8, i8, i64, i64, i16, [0 x i16] }>		
-
-define i32 @foo() {
-entry:
-	%.compoundliteral = alloca %0		
-	%tmp228 = getelementptr %0* %.compoundliteral, i32 0, i32 7
-	%tmp229 = bitcast [0 x i16]* %tmp228 to i8*		
-	call void @llvm.memset.i64(i8* %tmp229, i8 0, i64 0, i32 2)
-	unreachable
-}
-
-declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-05-08-I1Crash.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-05-08-I1Crash.ll
deleted file mode 100644
index 0a604e9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-05-08-I1Crash.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis
-; PR4146
-
- %wrapper = type { i1 }
-
-define void @f() {
-entry:
-        %w = alloca %wrapper, align 8           ; <%wrapper*> [#uses=1]
-        %0 = getelementptr %wrapper* %w, i64 0, i32 0           ; <i1*>
-        store i1 true, i1* %0
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-06-01-BitcastIntPadding.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-06-01-BitcastIntPadding.ll
deleted file mode 100644
index ffdd679..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-06-01-BitcastIntPadding.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl
-; PR4286
-
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "x86_64-undermydesk-freebsd8.0"
-	%struct.singlebool = type <{ i8 }>
-
-define zeroext i8 @doit() nounwind {
-entry:
-	%a = alloca %struct.singlebool, align 1		; <%struct.singlebool*> [#uses=2]
-	%storetmp.i = bitcast %struct.singlebool* %a to i1*		; <i1*> [#uses=1]
-	store i1 true, i1* %storetmp.i
-	%tmp = getelementptr %struct.singlebool* %a, i64 0, i32 0		; <i8*> [#uses=1]
-	%tmp1 = load i8* %tmp		; <i8> [#uses=1]
-	ret i8 %tmp1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-08-16-VLA.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-08-16-VLA.ll
deleted file mode 100644
index 61e67ad..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-08-16-VLA.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -disable-opt
-
-	%struct.Item = type { [4 x i16], %struct.rule* }
-	%struct.rule = type { [4 x i16], i32, i32, i32, %struct.nonterminal*, %struct.pattern*, i8 }
-	%struct.nonterminal = type { i8*, i32, i32, i32, %struct.plankMap*, %struct.rule* }
-	%struct.plankMap = type { %struct.list*, i32, %struct.stateMap* }
-	%struct.list = type { i8*, %struct.list* }
-	%struct.stateMap = type { i8*, %struct.plank*, i32, i16* }
-	%struct.plank = type { i8*, %struct.list*, i32 }
-	%struct.pattern = type { %struct.nonterminal*, %struct.operator*, [2 x %struct.nonterminal*] }
-	%struct.operator = type { i8*, i8, i32, i32, i32, i32, %struct.table* }
-	%struct.table = type { %struct.operator*, %struct.list*, i16*, [2 x %struct.dimension*], %struct.item_set** }
-	%struct.dimension = type { i16*, %struct.Index_Map, %struct.mapping*, i32, %struct.plankMap* }
-	%struct.Index_Map = type { i32, %struct.item_set** }
-	%struct.item_set = type { i32, i32, %struct.operator*, [2 x %struct.item_set*], %struct.item_set*, i16*, %struct.Item*, %struct.Item* }
-	%struct.mapping = type { %struct.list**, i32, i32, i32, %struct.item_set** }
-
-define void @addHP_2_0() {
-bb4.i:
-	%0 = malloc [0 x %struct.Item]		; <[0 x %struct.Item]*> [#uses=1]
-	%.sub.i.c.i = getelementptr [0 x %struct.Item]* %0, i32 0, i32 0		; <%struct.Item*> [#uses=0]
-	unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll
deleted file mode 100644
index 104a0f9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll
+++ /dev/null
@@ -1,51 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   not grep alloca
-
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin8.0.0"
-
-define i64 @test1(i64 %X) {
-	%A = alloca i64		; <i64*> [#uses=3]
-	store i64 %X, i64* %A
-	%B = bitcast i64* %A to i32*		; <i32*> [#uses=1]
-	%C = bitcast i32* %B to i8*		; <i8*> [#uses=1]
-	store i8 0, i8* %C
-	%Y = load i64* %A		; <i64> [#uses=1]
-	ret i64 %Y
-}
-
-define i8 @test2(i64 %X) {
-	%X_addr = alloca i64		; <i64*> [#uses=2]
-	store i64 %X, i64* %X_addr
-	%tmp.0 = bitcast i64* %X_addr to i32*		; <i32*> [#uses=1]
-	%tmp.1 = getelementptr i32* %tmp.0, i32 1		; <i32*> [#uses=1]
-	%tmp.2 = bitcast i32* %tmp.1 to i8*		; <i8*> [#uses=1]
-	%tmp.3 = getelementptr i8* %tmp.2, i32 3		; <i8*> [#uses=1]
-	%tmp.2.upgrd.1 = load i8* %tmp.3		; <i8> [#uses=1]
-	ret i8 %tmp.2.upgrd.1
-}
-
-define i16 @crafty(i64 %X) {
-	%a = alloca { i64 }		; <{ i64 }*> [#uses=2]
-	%tmp.0 = getelementptr { i64 }* %a, i32 0, i32 0		; <i64*> [#uses=1]
-	store i64 %X, i64* %tmp.0
-	%tmp.3 = bitcast { i64 }* %a to [4 x i16]*		; <[4 x i16]*> [#uses=2]
-	%tmp.4 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 3		; <i16*> [#uses=1]
-	%tmp.5 = load i16* %tmp.4		; <i16> [#uses=1]
-	%tmp.8 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 2		; <i16*> [#uses=1]
-	%tmp.9 = load i16* %tmp.8		; <i16> [#uses=1]
-	%tmp.10 = or i16 %tmp.9, %tmp.5		; <i16> [#uses=1]
-	ret i16 %tmp.10
-}
-
-define i16 @crafty2(i64 %X) {
-	%a = alloca i64		; <i64*> [#uses=2]
-	store i64 %X, i64* %a
-	%tmp.3 = bitcast i64* %a to [4 x i16]*		; <[4 x i16]*> [#uses=2]
-	%tmp.4 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 3		; <i16*> [#uses=1]
-	%tmp.5 = load i16* %tmp.4		; <i16> [#uses=1]
-	%tmp.8 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 2		; <i16*> [#uses=1]
-	%tmp.9 = load i16* %tmp.8		; <i16> [#uses=1]
-	%tmp.10 = or i16 %tmp.9, %tmp.5		; <i16> [#uses=1]
-	ret i16 %tmp.10
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll
deleted file mode 100644
index c060414..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; This is a feature test.  Hopefully one day this will be implemented.  The 
-; generated code should perform the appropriate masking operations required 
-; depending on the endianness of the target...
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   not grep alloca
-
-define i32 @testfunc(i32 %i, i8 %j) {
-	%I = alloca i32		; <i32*> [#uses=3]
-	store i32 %i, i32* %I
-	%P = bitcast i32* %I to i8*		; <i8*> [#uses=1]
-	store i8 %j, i8* %P
-	%t = load i32* %I		; <i32> [#uses=1]
-	ret i32 %t
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/arraytest.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/arraytest.ll
deleted file mode 100644
index 911a8e3..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/arraytest.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -mem2reg | llvm-dis | not grep alloca
-
-define i32 @test() {
-	%X = alloca [4 x i32]		; <[4 x i32]*> [#uses=1]
-	%Y = getelementptr [4 x i32]* %X, i64 0, i64 0		; <i32*> [#uses=2]
-	store i32 0, i32* %Y
-	%Z = load i32* %Y		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/badarray.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/badarray.ll
deleted file mode 100644
index c488486..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/badarray.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -instcombine | llvm-dis | not grep alloca
-; PR3466
-
-define i32 @test() {
-	%X = alloca [4 x i32]		; <[4 x i32]*> [#uses=1]
-        ; Off end of array!
-	%Y = getelementptr [4 x i32]* %X, i64 0, i64 6		; <i32*> [#uses=2]
-	store i32 0, i32* %Y
-	%Z = load i32* %Y		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
-
-define i32 @test2() nounwind {
-entry:
-        %yx2.i = alloca float, align 4          ; <float*> [#uses=1]            
-        %yx26.i = bitcast float* %yx2.i to i64*         ; <i64*> [#uses=1]      
-        %0 = load i64* %yx26.i, align 8         ; <i64> [#uses=0]               
-        unreachable
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/basictest.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/basictest.ll
deleted file mode 100644
index 11a1d51..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/basictest.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl -mem2reg | llvm-dis | not grep alloca
-
-define i32 @test() {
-	%X = alloca { i32, float }		; <{ i32, float }*> [#uses=1]
-	%Y = getelementptr { i32, float }* %X, i64 0, i32 0		; <i32*> [#uses=2]
-	store i32 0, i32* %Y
-	%Z = load i32* %Y		; <i32> [#uses=1]
-	ret i32 %Z
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll
deleted file mode 100644
index 34dd120..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca        
-; rdar://6532315
-%t = type { { i32, i16, i8, i8 } }
-
-define i8 @foo(i64 %A) {
-        %ALL = alloca %t, align 8 
-        %tmp59172 = bitcast %t* %ALL to i64*
-        store i64 %A, i64* %tmp59172, align 8
-        %C = getelementptr %t* %ALL, i32 0, i32 0, i32 1             
-        %D = bitcast i16* %C to i32*    
-        %E = load i32* %D, align 4     
-        %F = bitcast %t* %ALL to i8* 
-        %G = load i8* %F, align 8 
-	ret i8 %G
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll
deleted file mode 100644
index a1ad3f9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-; PR3290
-
-;; Store of integer to whole alloca struct.
-define i32 @test1(i64 %V) nounwind {
-	%X = alloca {{i32, i32}}
-	%Y = bitcast {{i32,i32}}* %X to i64*
-	store i64 %V, i64* %Y
-
-	%A = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 0
-	%B = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 1
-	%a = load i32* %A
-	%b = load i32* %B
-	%c = add i32 %a, %b
-	ret i32 %c
-}
-
-;; Store of integer to whole struct/array alloca.
-define float @test2(i128 %V) nounwind {
-	%X = alloca {[4 x float]}
-	%Y = bitcast {[4 x float]}* %X to i128*
-	store i128 %V, i128* %Y
-
-	%A = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 0
-	%B = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 3
-	%a = load float* %A
-	%b = load float* %B
-	%c = fadd float %a, %b
-	ret float %c
-}
-
-;; Load of whole alloca struct as integer
-define i64 @test3(i32 %a, i32 %b) nounwind {
-	%X = alloca {{i32, i32}}
-
-	%A = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 0
-	%B = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 1
-        store i32 %a, i32* %A
-        store i32 %b, i32* %B
-
-	%Y = bitcast {{i32,i32}}* %X to i64*
-        %Z = load i64* %Y
-	ret i64 %Z
-}
-
-;; load of integer from whole struct/array alloca.
-define i128 @test4(float %a, float %b) nounwind {
-	%X = alloca {[4 x float]}
-	%A = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 0
-	%B = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 3
-	store float %a, float* %A
-	store float %b, float* %B
-        
-      	%Y = bitcast {[4 x float]}* %X to i128*
-	%V = load i128* %Y
-	ret i128 %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/debuginfo.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/debuginfo.ll
deleted file mode 100644
index 63ecd68..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/debuginfo.ll
+++ /dev/null
@@ -1,105 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }* }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }* }
-	%struct.Sphere = type { %struct.Vec }
-	%struct.Vec = type { i32, i32, i32 }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [6 x i8] c"r.cpp\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 4, i8* getelementptr ([6 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"Vec\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str5 = internal constant [2 x i8] c"x\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([2 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str6 = internal constant [2 x i8] c"y\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype7 = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([2 x i8]* @.str6, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, i64 32, i64 32, i64 32, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str8 = internal constant [2 x i8] c"z\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype9 = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([2 x i8]* @.str8, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, i64 32, i64 32, i64 64, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype10 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype11 = internal constant %llvm.dbg.derivedtype.type { i32 458790, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 96, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype12 = internal constant %llvm.dbg.derivedtype.type { i32 458768, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype11 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [3 x { }*] [ { }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype10 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype12 to { }*) ], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite13 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite13 to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array14 = internal constant [5 x { }*] [ { }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype10 to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) ], section "llvm.metadata"		; <[5 x { }*]*> [#uses=1]
- at llvm.dbg.composite15 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([5 x { }*]* @llvm.dbg.array14 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram16 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 5, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite15 to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array17 = internal constant [5 x { }*] [ { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype7 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype9 to { }*), { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram16 to { }*) ], section "llvm.metadata"		; <[5 x { }*]*> [#uses=1]
- at llvm.dbg.composite18 = internal constant %llvm.dbg.composite.type { i32 458771, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 2, i64 96, i64 32, i64 0, i32 0, { }* null, { }* bitcast ([5 x { }*]* @llvm.dbg.array17 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype19 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array20 = internal constant [5 x { }*] [ { }* null, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) ], section "llvm.metadata"		; <[5 x { }*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([5 x { }*]* @llvm.dbg.array20 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str21 = internal constant [13 x i8] c"__comp_ctor \00", section "llvm.metadata"		; <[13 x i8]*> [#uses=1]
- at .str22 = internal constant [14 x i8] c"_ZN3VecC1Eiii\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at llvm.dbg.array32 = internal constant [3 x { }*] [ { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype12 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype12 to { }*) ], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite33 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array32 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str34 = internal constant [10 x i8] c"operator-\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str35 = internal constant [14 x i8] c"_ZmiRK3VecS1_\00", section "llvm.metadata"		; <[14 x i8]*> [#uses=1]
- at .str41 = internal constant [7 x i8] c"Sphere\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str43 = internal constant [7 x i8] c"center\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype44 = internal constant %llvm.dbg.derivedtype.type { i32 458765, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([7 x i8]* @.str43, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 14, i64 96, i64 32, i64 0, i32 1, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.derivedtype45 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite52 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array46 = internal constant [3 x { }*] [ { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype45 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype12 to { }*) ], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite47 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array46 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at .str48 = internal constant [11 x i8] c"ray_sphere\00", section "llvm.metadata"		; <[11 x i8]*> [#uses=1]
- at .str49 = internal constant [30 x i8] c"_ZN6Sphere10ray_sphereERK3Vec\00", section "llvm.metadata"		; <[30 x i8]*> [#uses=1]
- at llvm.dbg.subprogram50 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([11 x i8]* @.str48, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str48, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str49, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 16, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite47 to { }*), i1 false, i1 false }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.array51 = internal constant [2 x { }*] [ { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype44 to { }*), { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram50 to { }*) ], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite52 = internal constant %llvm.dbg.composite.type { i32 458771, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([7 x i8]* @.str41, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 12, i64 96, i64 32, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array51 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.derivedtype53 = internal constant %llvm.dbg.derivedtype.type { i32 458767, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite52 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at llvm.dbg.array54 = internal constant [3 x { }*] [ { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype53 to { }*), { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype12 to { }*) ], section "llvm.metadata"		; <[3 x { }*]*> [#uses=1]
- at llvm.dbg.composite55 = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([3 x { }*]* @llvm.dbg.array54 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprogram56 = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([11 x i8]* @.str48, i32 0, i32 0), i8* getelementptr ([11 x i8]* @.str48, i32 0, i32 0), i8* getelementptr ([30 x i8]* @.str49, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 16, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite55 to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str61 = internal constant [2 x i8] c"v\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable62 = internal constant %llvm.dbg.variable.type { i32 459008, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram56 to { }*), i8* getelementptr ([2 x i8]* @.str61, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 17, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite18 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=1]
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
-
-define i32 @_ZN6Sphere10ray_sphereERK3Vec(%struct.Sphere* %this, %struct.Vec* %Orig) nounwind {
-entry:
-	%v = alloca %struct.Vec, align 8		; <%struct.Vec*> [#uses=4]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram56 to { }*))
-	%0 = bitcast %struct.Vec* %v to { }*		; <{ }*> [#uses=1]
-	call void @llvm.dbg.declare({ }* %0, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable62 to { }*))
-	%1 = getelementptr %struct.Sphere* %this, i32 0, i32 0, i32 2		; <i32*> [#uses=1]
-	%2 = load i32* %1, align 4		; <i32> [#uses=1]
-	%3 = getelementptr %struct.Vec* %Orig, i32 0, i32 2		; <i32*> [#uses=1]
-	%4 = load i32* %3, align 4		; <i32> [#uses=1]
-	%5 = sub i32 %2, %4		; <i32> [#uses=1]
-	%6 = getelementptr %struct.Sphere* %this, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
-	%7 = load i32* %6, align 4		; <i32> [#uses=1]
-	%8 = getelementptr %struct.Vec* %Orig, i32 0, i32 1		; <i32*> [#uses=1]
-	%9 = load i32* %8, align 4		; <i32> [#uses=1]
-	%10 = sub i32 %7, %9		; <i32> [#uses=1]
-	%11 = getelementptr %struct.Sphere* %this, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
-	%12 = load i32* %11, align 4		; <i32> [#uses=1]
-	%13 = getelementptr %struct.Vec* %Orig, i32 0, i32 0		; <i32*> [#uses=1]
-	%14 = load i32* %13, align 4		; <i32> [#uses=1]
-	%15 = sub i32 %12, %14		; <i32> [#uses=1]
-	%16 = getelementptr %struct.Vec* %v, i32 0, i32 0		; <i32*> [#uses=2]
-	store i32 %15, i32* %16, align 8
-	%17 = getelementptr %struct.Vec* %v, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 %10, i32* %17, align 4
-	%18 = getelementptr %struct.Vec* %v, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 %5, i32* %18, align 8
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	call void @llvm.dbg.stoppoint(i32 9, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*)) nounwind
-	%19 = load i32* %16, align 8		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 18, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram56 to { }*))
-	ret i32 %19
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/dg.exp b/libclamav/c++/llvm/test/Transforms/ScalarRepl/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll
deleted file mode 100644
index df13db7..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; This testcase shows that scalarrepl is able to replace struct alloca's which
-; are directly loaded from or stored to (using the first class aggregates
-; feature).
-
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis > %t
-; RUN: cat %t | not grep alloca
-
-%struct.foo = type { i32, i32 }
-
-define i32 @test(%struct.foo* %P) {
-entry:
-	%L = alloca %struct.foo, align 8		; <%struct.foo*> [#uses=2]
-        %V = load %struct.foo* %P
-        store %struct.foo %V, %struct.foo* %L
-
-	%tmp4 = getelementptr %struct.foo* %L, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp5 = load i32* %tmp4		; <i32> [#uses=1]
-	ret i32 %tmp5
-}
-
-define %struct.foo @test2(i32 %A, i32 %B) {
-entry:
-	%L = alloca %struct.foo, align 8		; <%struct.foo*> [#uses=2]
-        %L.0 = getelementptr %struct.foo* %L, i32 0, i32 0
-        store i32 %A, i32* %L.0
-        %L.1 = getelementptr %struct.foo* %L, i32 0, i32 1
-        store i32 %B, i32* %L.1
-        %V = load %struct.foo* %L
-        ret %struct.foo %V
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/memcpy-from-global.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/memcpy-from-global.ll
deleted file mode 100644
index e62ccc2..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/memcpy-from-global.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep {call.*memcpy}
- at C.0.1248 = internal constant [128 x float] [ float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float -1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float -1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 0.000000e+00, float -1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float -1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float 1.000000e+00, float -1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float -1.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00, float -1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00 ], align 32		; <[128 x float]*> [#uses=1]
-
-define float @grad4(i32 %hash, float %x, float %y, float %z, float %w) {
-entry:
-	%lookupTable = alloca [128 x float], align 16		; <[128 x float]*> [#uses=5]
-	%lookupTable1 = bitcast [128 x float]* %lookupTable to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %lookupTable1, i8* bitcast ([128 x float]* @C.0.1248 to i8*), i32 512, i32 16 )
-	%tmp3 = shl i32 %hash, 2		; <i32> [#uses=1]
-	%tmp5 = and i32 %tmp3, 124		; <i32> [#uses=4]
-	%tmp753 = getelementptr [128 x float]* %lookupTable, i32 0, i32 %tmp5		; <float*> [#uses=1]
-	%tmp9 = load float* %tmp753		; <float> [#uses=1]
-	%tmp11 = fmul float %tmp9, %x		; <float> [#uses=1]
-	%tmp13 = fadd float %tmp11, 0.000000e+00		; <float> [#uses=1]
-	%tmp17.sum52 = or i32 %tmp5, 1		; <i32> [#uses=1]
-	%tmp1851 = getelementptr [128 x float]* %lookupTable, i32 0, i32 %tmp17.sum52		; <float*> [#uses=1]
-	%tmp19 = load float* %tmp1851		; <float> [#uses=1]
-	%tmp21 = fmul float %tmp19, %y		; <float> [#uses=1]
-	%tmp23 = fadd float %tmp21, %tmp13		; <float> [#uses=1]
-	%tmp27.sum50 = or i32 %tmp5, 2		; <i32> [#uses=1]
-	%tmp2849 = getelementptr [128 x float]* %lookupTable, i32 0, i32 %tmp27.sum50		; <float*> [#uses=1]
-	%tmp29 = load float* %tmp2849		; <float> [#uses=1]
-	%tmp31 = fmul float %tmp29, %z		; <float> [#uses=1]
-	%tmp33 = fadd float %tmp31, %tmp23		; <float> [#uses=1]
-	%tmp37.sum48 = or i32 %tmp5, 3		; <i32> [#uses=1]
-	%tmp3847 = getelementptr [128 x float]* %lookupTable, i32 0, i32 %tmp37.sum48		; <float*> [#uses=1]
-	%tmp39 = load float* %tmp3847		; <float> [#uses=1]
-	%tmp41 = fmul float %tmp39, %w		; <float> [#uses=1]
-	%tmp43 = fadd float %tmp41, %tmp33		; <float> [#uses=1]
-	ret float %tmp43
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
deleted file mode 100644
index 91d8ea9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; PR1226
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   not grep {call void @llvm.memcpy.i32}
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep getelementptr
-; END.
-
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin8.8.0"
-	%struct.foo = type { i8, i8 }
-
-
-define i32 @test1(%struct.foo* %P) {
-entry:
-	%L = alloca %struct.foo, align 2		; <%struct.foo*> [#uses=1]
-	%L2 = getelementptr %struct.foo* %L, i32 0, i32 0		; <i8*> [#uses=2]
-	%tmp13 = getelementptr %struct.foo* %P, i32 0, i32 0		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %L2, i8* %tmp13, i32 2, i32 1 )
-	%tmp5 = load i8* %L2		; <i8> [#uses=1]
-	%tmp56 = sext i8 %tmp5 to i32		; <i32> [#uses=1]
-	ret i32 %tmp56
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll
deleted file mode 100644
index b7b3352..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; PR1226
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {ret i32 16843009}
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-; RUN: llvm-as < %s | opt -scalarrepl -instcombine | llvm-dis | grep {ret i16 514}
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
-target triple = "i686-apple-darwin8"
-	%struct.bar = type { %struct.foo, i64, double }
-	%struct.foo = type { i32, i32 }
-
-
-define i32 @test1(%struct.foo* %P) {
-entry:
-	%L = alloca %struct.foo, align 8		; <%struct.foo*> [#uses=2]
-	%L2 = bitcast %struct.foo* %L to i8*		; <i8*> [#uses=1]
-	%tmp13 = bitcast %struct.foo* %P to i8*		; <i8*> [#uses=1]
-	call void @llvm.memcpy.i32( i8* %L2, i8* %tmp13, i32 8, i32 4 )
-	%tmp4 = getelementptr %struct.foo* %L, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp5 = load i32* %tmp4		; <i32> [#uses=1]
-	ret i32 %tmp5
-}
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-define i32 @test2() {
-entry:
-	%L = alloca [4 x %struct.foo], align 16		; <[4 x %struct.foo]*> [#uses=2]
-	%L12 = bitcast [4 x %struct.foo]* %L to i8*		; <i8*> [#uses=1]
-	call void @llvm.memset.i32( i8* %L12, i8 0, i32 32, i32 16 )
-	%tmp4 = getelementptr [4 x %struct.foo]* %L, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
-	%tmp5 = load i32* %tmp4		; <i32> [#uses=1]
-	ret i32 %tmp5
-}
-
-declare void @llvm.memset.i32(i8*, i8, i32, i32)
-
-define i32 @test3() {
-entry:
-	%B = alloca %struct.bar, align 16		; <%struct.bar*> [#uses=4]
-	%B1 = bitcast %struct.bar* %B to i8*		; <i8*> [#uses=1]
-	call void @llvm.memset.i32( i8* %B1, i8 1, i32 24, i32 16 )
-	%tmp3 = getelementptr %struct.bar* %B, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp3
-	%tmp4 = getelementptr %struct.bar* %B, i32 0, i32 2		; <double*> [#uses=1]
-	store double 1.000000e+01, double* %tmp4
-	%tmp6 = getelementptr %struct.bar* %B, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp7 = load i32* %tmp6		; <i32> [#uses=1]
-	ret i32 %tmp7
-}
-
-
-	%struct.f = type { i32, i32, i32, i32, i32, i32 }
-
-define i16 @test4() nounwind {
-entry:
-	%A = alloca %struct.f, align 8		; <%struct.f*> [#uses=3]
-	%0 = getelementptr %struct.f* %A, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %0, align 8
-	%1 = getelementptr %struct.f* %A, i32 0, i32 1		; <i32*> [#uses=1]
-	%2 = bitcast i32* %1 to i8*		; <i8*> [#uses=1]
-	call void @llvm.memset.i32(i8* %2, i8 2, i32 12, i32 4)
-	%3 = getelementptr %struct.f* %A, i32 0, i32 2		; <i32*> [#uses=1]
-	%4 = load i32* %3, align 8		; <i32> [#uses=1]
-	%retval12 = trunc i32 %4 to i16		; <i16> [#uses=1]
-	ret i16 %retval12
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/not-a-vector.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/not-a-vector.ll
deleted file mode 100644
index e2111e7..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/not-a-vector.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep {7 x double}
-; RUN: llvm-as < %s | opt -scalarrepl -instcombine | llvm-dis | grep {ret double %B}
-
-define double @test(double %A, double %B) {
-	%ARR = alloca [7 x i64]
-	%C = bitcast [7 x i64]* %ARR to double*
-	store double %A, double* %C
-
-	%D = getelementptr [7 x i64]* %ARR, i32 0, i32 4
-	%E = bitcast i64* %D to double*
-	store double %B, double* %E
-
-	%F = getelementptr double* %C, i32 4
-	%G = load double* %F
-	ret double %G
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/phinodepromote.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/phinodepromote.ll
deleted file mode 100644
index 4eb8743..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/phinodepromote.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine -mem2reg | llvm-dis | not grep alloca
-;
-; This tests to see if mem2reg can promote alloca instructions whose addresses
-; are used by PHI nodes that are immediately loaded.  The LLVM C++ front-end
-; often generates code that looks like this (when it codegen's ?: exprs as
-; lvalues), so handling this simple extension is quite useful.
-;
-; This testcase is what the following program looks like when it reaches
-; instcombine:
-;
-; template<typename T>
-; const T& max(const T& a1, const T& a2) { return a1 < a2 ? a1 : a2; }
-; int main() { return max(0, 1); }
-;
-; This test checks to make sure the combination of instcombine and mem2reg
-; perform the transformation.
-
-define i32 @main() {
-entry:
-	%mem_tmp.0 = alloca i32		; <i32*> [#uses=3]
-	%mem_tmp.1 = alloca i32		; <i32*> [#uses=3]
-	store i32 0, i32* %mem_tmp.0
-	store i32 1, i32* %mem_tmp.1
-	%tmp.1.i = load i32* %mem_tmp.1		; <i32> [#uses=1]
-	%tmp.3.i = load i32* %mem_tmp.0		; <i32> [#uses=1]
-	%tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i		; <i1> [#uses=1]
-	br i1 %tmp.4.i, label %cond_true.i, label %cond_continue.i
-cond_true.i:		; preds = %entry
-	br label %cond_continue.i
-cond_continue.i:		; preds = %cond_true.i, %entry
-	%mem_tmp.i.0 = phi i32* [ %mem_tmp.1, %cond_true.i ], [ %mem_tmp.0, %entry ]		; <i32*> [#uses=1]
-	%tmp.3 = load i32* %mem_tmp.i.0		; <i32> [#uses=1]
-	ret i32 %tmp.3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/select_promote.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/select_promote.ll
deleted file mode 100644
index 901fa90..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/select_promote.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; Test promotion of loads that use the result of a select instruction.  This
-; should be simplified by the instcombine pass.
-
-; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | not grep alloca
-
-define i32 @main() {
-	%mem_tmp.0 = alloca i32		; <i32*> [#uses=3]
-	%mem_tmp.1 = alloca i32		; <i32*> [#uses=3]
-	store i32 0, i32* %mem_tmp.0
-	store i32 1, i32* %mem_tmp.1
-	%tmp.1.i = load i32* %mem_tmp.1		; <i32> [#uses=1]
-	%tmp.3.i = load i32* %mem_tmp.0		; <i32> [#uses=1]
-	%tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i		; <i1> [#uses=1]
-	%mem_tmp.i.0 = select i1 %tmp.4.i, i32* %mem_tmp.1, i32* %mem_tmp.0		; <i32*> [#uses=1]
-	%tmp.3 = load i32* %mem_tmp.i.0		; <i32> [#uses=1]
-	ret i32 %tmp.3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/sroa-fca.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/sroa-fca.ll
deleted file mode 100644
index 1bfdacc..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/sroa-fca.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis
-; Make sure that SROA "scalar conversion" can handle first class aggregates.
-
-define i64 @test({i32, i32} %A) {
-	%X = alloca i64
-	%Y = bitcast i64* %X to {i32,i32}*
-	store {i32,i32} %A, {i32,i32}* %Y
-	
-	%Q = load i64* %X
-	ret i64 %Q
-}
-
-define {i32,i32} @test2(i64 %A) {
-	%X = alloca i64
-	%Y = bitcast i64* %X to {i32,i32}*
-	store i64 %A, i64* %X
-	
-	%Q = load {i32,i32}* %Y
-	ret {i32,i32} %Q
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/sroa_two.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/sroa_two.ll
deleted file mode 100644
index e0ea2bc..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/sroa_two.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis
-
-define i32 @test(i32 %X) {
-	%Arr = alloca [2 x i32]		; <[2 x i32]*> [#uses=3]
-	%tmp.0 = getelementptr [2 x i32]* %Arr, i32 0, i32 0		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp.0
-	%tmp.1 = getelementptr [2 x i32]* %Arr, i32 0, i32 1		; <i32*> [#uses=1]
-	store i32 2, i32* %tmp.1
-	%tmp.3 = getelementptr [2 x i32]* %Arr, i32 0, i32 %X		; <i32*> [#uses=1]
-	%tmp.4 = load i32* %tmp.3		; <i32> [#uses=1]
-	ret i32 %tmp.4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-fp-int.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-fp-int.ll
deleted file mode 100644
index 1c3b18b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-fp-int.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   not grep alloca
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   grep {bitcast.*float.*i32}
-
-define i32 @test(float %X) {
-	%X_addr = alloca float		; <float*> [#uses=2]
-	store float %X, float* %X_addr
-	%X_addr.upgrd.1 = bitcast float* %X_addr to i32*		; <i32*> [#uses=1]
-	%tmp = load i32* %X_addr.upgrd.1		; <i32> [#uses=1]
-	ret i32 %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-packed.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-packed.ll
deleted file mode 100644
index 10d8a5d..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-packed.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   not grep alloca
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   grep bitcast
-
-define <4 x i32> @test(<4 x float> %X) {
-	%X_addr = alloca <4 x float>		; <<4 x float>*> [#uses=2]
-	store <4 x float> %X, <4 x float>* %X_addr
-	%X_addr.upgrd.1 = bitcast <4 x float>* %X_addr to <4 x i32>*		; <<4 x i32>*> [#uses=1]
-	%tmp = load <4 x i32>* %X_addr.upgrd.1		; <<4 x i32>> [#uses=1]
-	ret <4 x i32> %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-pointer.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-pointer.ll
deleted file mode 100644
index 269b4b9..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/union-pointer.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; PR892
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | \
-; RUN:   not grep alloca
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {ret i8}
-
-target datalayout = "e-p:32:32"
-target triple = "i686-apple-darwin8.7.2"
-	%struct.Val = type { i32*, i32 }
-
-define i8* @test(i16* %X) {
-	%X_addr = alloca i16*		; <i16**> [#uses=2]
-	store i16* %X, i16** %X_addr
-	%X_addr.upgrd.1 = bitcast i16** %X_addr to i8**		; <i8**> [#uses=1]
-	%tmp = load i8** %X_addr.upgrd.1		; <i8*> [#uses=1]
-	ret i8* %tmp
-}
-
-define void @test2(i64 %Op.0) {
-	%tmp = alloca %struct.Val, align 8		; <%struct.Val*> [#uses=3]
-	%tmp1 = alloca %struct.Val, align 8		; <%struct.Val*> [#uses=3]
-	%tmp.upgrd.2 = call i64 @_Z3foov( )		; <i64> [#uses=1]
-	%tmp1.upgrd.3 = bitcast %struct.Val* %tmp1 to i64*		; <i64*> [#uses=1]
-	store i64 %tmp.upgrd.2, i64* %tmp1.upgrd.3
-	%tmp.upgrd.4 = getelementptr %struct.Val* %tmp, i32 0, i32 0		; <i32**> [#uses=1]
-	%tmp2 = getelementptr %struct.Val* %tmp1, i32 0, i32 0		; <i32**> [#uses=1]
-	%tmp.upgrd.5 = load i32** %tmp2		; <i32*> [#uses=1]
-	store i32* %tmp.upgrd.5, i32** %tmp.upgrd.4
-	%tmp3 = getelementptr %struct.Val* %tmp, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp4 = getelementptr %struct.Val* %tmp1, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp.upgrd.6 = load i32* %tmp4		; <i32> [#uses=1]
-	store i32 %tmp.upgrd.6, i32* %tmp3
-	%tmp7 = bitcast %struct.Val* %tmp to { i64 }*		; <{ i64 }*> [#uses=1]
-	%tmp8 = getelementptr { i64 }* %tmp7, i32 0, i32 0		; <i64*> [#uses=1]
-	%tmp9 = load i64* %tmp8		; <i64> [#uses=1]
-	call void @_Z3bar3ValS_( i64 %Op.0, i64 %tmp9 )
-	ret void
-}
-
-declare i64 @_Z3foov()
-
-declare void @_Z3bar3ValS_(i64, i64)
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll
deleted file mode 100644
index 5678578..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis > %t
-; RUN: grep {ret <16 x float> %A} %t
-; RUN: grep {ret <16 x float> zeroinitializer} %t
-
-define <16 x float> @foo(<16 x float> %A) nounwind {
-	%tmp = alloca <16 x float>, align 16
-	%tmp2 = alloca <16 x float>, align 16
-	store <16 x float> %A, <16 x float>* %tmp
-	%s = bitcast <16 x float>* %tmp to i8*
-	%s2 = bitcast <16 x float>* %tmp2 to i8*
-	call void @llvm.memcpy.i64(i8* %s2, i8* %s, i64 64, i32 16)
-	
-	%R = load <16 x float>* %tmp2
-	ret <16 x float> %R
-}
-
-define <16 x float> @foo2(<16 x float> %A) nounwind {
-	%tmp2 = alloca <16 x float>, align 16
-
-	%s2 = bitcast <16 x float>* %tmp2 to i8*
-	call void @llvm.memset.i64(i8* %s2, i8 0, i64 64, i32 16)
-	
-	%R = load <16 x float>* %tmp2
-	ret <16 x float> %R
-}
-
-
-declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
-declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/vector_promote.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/vector_promote.ll
deleted file mode 100644
index 4b6555b..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/vector_promote.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | not grep alloca
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {load <4 x float>}
-
-define void @test(<4 x float>* %F, float %f) {
-entry:
-	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=3]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
-	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
-	store <4 x float> %tmp3, <4 x float>* %G
-	%G.upgrd.1 = getelementptr <4 x float>* %G, i32 0, i32 0		; <float*> [#uses=1]
-	store float %f, float* %G.upgrd.1
-	%tmp4 = load <4 x float>* %G		; <<4 x float>> [#uses=2]
-	%tmp6 = fadd <4 x float> %tmp4, %tmp4		; <<4 x float>> [#uses=1]
-	store <4 x float> %tmp6, <4 x float>* %F
-	ret void
-}
-
-define void @test2(<4 x float>* %F, float %f) {
-entry:
-	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=3]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
-	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
-	store <4 x float> %tmp3, <4 x float>* %G
-	%tmp.upgrd.2 = getelementptr <4 x float>* %G, i32 0, i32 2		; <float*> [#uses=1]
-	store float %f, float* %tmp.upgrd.2
-	%tmp4 = load <4 x float>* %G		; <<4 x float>> [#uses=2]
-	%tmp6 = fadd <4 x float> %tmp4, %tmp4		; <<4 x float>> [#uses=1]
-	store <4 x float> %tmp6, <4 x float>* %F
-	ret void
-}
-
-define void @test3(<4 x float>* %F, float* %f) {
-entry:
-	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=2]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
-	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
-	store <4 x float> %tmp3, <4 x float>* %G
-	%tmp.upgrd.3 = getelementptr <4 x float>* %G, i32 0, i32 2		; <float*> [#uses=1]
-	%tmp.upgrd.4 = load float* %tmp.upgrd.3		; <float> [#uses=1]
-	store float %tmp.upgrd.4, float* %f
-	ret void
-}
-
-define void @test4(<4 x float>* %F, float* %f) {
-entry:
-	%G = alloca <4 x float>, align 16		; <<4 x float>*> [#uses=2]
-	%tmp = load <4 x float>* %F		; <<4 x float>> [#uses=2]
-	%tmp3 = fadd <4 x float> %tmp, %tmp		; <<4 x float>> [#uses=1]
-	store <4 x float> %tmp3, <4 x float>* %G
-	%G.upgrd.5 = getelementptr <4 x float>* %G, i32 0, i32 0		; <float*> [#uses=1]
-	%tmp.upgrd.6 = load float* %G.upgrd.5		; <float> [#uses=1]
-	store float %tmp.upgrd.6, float* %f
-	ret void
-}
-
-define i32 @test5(float %X) {  ;; should turn into bitcast.
-	%X_addr = alloca [4 x float]
-        %X1 = getelementptr [4 x float]* %X_addr, i32 0, i32 2
-	store float %X, float* %X1
-	%a = bitcast float* %X1 to i32*
-	%tmp = load i32* %a
-	ret i32 %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/ScalarRepl/volatile.ll b/libclamav/c++/llvm/test/Transforms/ScalarRepl/volatile.ll
deleted file mode 100644
index 5f9fe0d..0000000
--- a/libclamav/c++/llvm/test/Transforms/ScalarRepl/volatile.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {volatile load}
-; RUN: llvm-as < %s | opt -scalarrepl | llvm-dis | grep {volatile store}
-
-define i32 @voltest(i32 %T) {
-	%A = alloca {i32, i32}
-	%B = getelementptr {i32,i32}* %A, i32 0, i32 0
-	volatile store i32 %T, i32* %B
-
-	%C = getelementptr {i32,i32}* %A, i32 0, i32 1
-	%X = volatile load i32* %C
-	ret i32 %X
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-05-05-EmptyBlockMerge.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-05-05-EmptyBlockMerge.ll
deleted file mode 100644
index 5682ff4..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-05-05-EmptyBlockMerge.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; Basic block #2 should not be merged into BB #3!
-;
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   grep {br label}
-;
-
-declare void @foo()
-
-define void @cprop_test12(i32* %data) {
-bb0:
-	%reg108 = load i32* %data		; <i32> [#uses=2]
-	%cond218 = icmp ne i32 %reg108, 5		; <i1> [#uses=1]
-	br i1 %cond218, label %bb3, label %bb2
-bb2:		; preds = %bb0
-	call void @foo( )
-	br label %bb3
-bb3:		; preds = %bb2, %bb0
-	%reg117 = phi i32 [ 110, %bb2 ], [ %reg108, %bb0 ]		; <i32> [#uses=1]
-	store i32 %reg117, i32* %data
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-05-21-PHIElimination.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-05-21-PHIElimination.ll
deleted file mode 100644
index c955d66..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-05-21-PHIElimination.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; CFG Simplification is making a loop dead, then changing the add into:
-;
-;   %V1 = add int %V1, 1
-;
-; Which is not valid SSA
-;
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis
-
-define void @test() {
-; <label>:0
-	br i1 true, label %end, label %Loop
-Loop:		; preds = %Loop, %0
-	%V = phi i32 [ 0, %0 ], [ %V1, %Loop ]		; <i32> [#uses=1]
-	%V1 = add i32 %V, 1		; <i32> [#uses=1]
-	br label %Loop
-end:		; preds = %0
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-06-24-PHINode.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-06-24-PHINode.ll
deleted file mode 100644
index 87b4286..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-06-24-PHINode.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; -simplifycfg is not folding blocks if there is a PHI node involved.  This 
-; should be fixed eventually
-
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-define i32 @main(i32 %argc) {
-; <label>:0
-	br label %InlinedFunctionReturnNode
-InlinedFunctionReturnNode:		; preds = %0
-	%X = phi i32 [ 7, %0 ]		; <i32> [#uses=1]
-	%Y = add i32 %X, %argc		; <i32> [#uses=1]
-	ret i32 %Y
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-09-24-PHIAssertion.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-09-24-PHIAssertion.ll
deleted file mode 100644
index 75beb34..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2002-09-24-PHIAssertion.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg
-
-define i32 @test(i32 %A, i32 %B, i1 %cond) {
-J:
-	%C = add i32 %A, 12		; <i32> [#uses=3]
-	br i1 %cond, label %L, label %L
-L:		; preds = %J, %J
-	%Q = phi i32 [ %C, %J ], [ %C, %J ]		; <i32> [#uses=1]
-	%D = add i32 %C, %B		; <i32> [#uses=1]
-	%E = add i32 %Q, %D		; <i32> [#uses=1]
-	ret i32 %E
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll
deleted file mode 100644
index c45a5c9..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-
-define void @test(i32* %ldo, i1 %c, i1 %d) {
-bb9:
-	br i1 %c, label %bb11, label %bb10
-bb10:		; preds = %bb9
-	br label %bb11
-bb11:		; preds = %bb10, %bb9
-	%reg330 = phi i32* [ null, %bb10 ], [ %ldo, %bb9 ]		; <i32*> [#uses=1]
-	br label %bb20
-bb20:		; preds = %bb20, %bb11
-	store i32* %reg330, i32** null
-	br i1 %d, label %bb20, label %done
-done:		; preds = %bb20
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll
deleted file mode 100644
index 74e7428..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; Do not remove the invoke!
-;
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-
-define i32 @test() {
-	%A = invoke i32 @test( )
-			to label %Ret unwind label %Ret2		; <i32> [#uses=1]
-Ret:		; preds = %0
-	ret i32 %A
-Ret2:		; preds = %0
-	ret i32 undef
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-05-MishandleInvoke.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-05-MishandleInvoke.ll
deleted file mode 100644
index 9f56e07..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-05-MishandleInvoke.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; Do not remove the invoke!
-;
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep invoke
-
-define i32 @test() {
-	invoke i32 @test( )
-			to label %Ret unwind label %Ret		; <i32>:1 [#uses=0]
-Ret:		; preds = %0, %0
-	%A = add i32 0, 1		; <i32> [#uses=1]
-	ret i32 %A
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll
deleted file mode 100644
index ea74692..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; This test checks to make sure that 'br X, Dest, Dest' is folded into 
-; 'br Dest'
-
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep {br i1 %c2}
-
-declare void @noop()
-
-define i32 @test(i1 %c1, i1 %c2) {
-	call void @noop( )
-	br i1 %c1, label %A, label %Y
-A:		; preds = %0
-	call void @noop( )
-	br i1 %c2, label %X, label %X
-X:		; preds = %Y, %A, %A
-	call void @noop( )
-	ret i32 0
-Y:		; preds = %0
-	call void @noop( )
-	br label %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFoldOrdering.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFoldOrdering.ll
deleted file mode 100644
index a307573..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFoldOrdering.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; This test checks to make sure that 'br X, Dest, Dest' is folded into 
-; 'br Dest'.  This can only happen after the 'Z' block is eliminated.  This is
-; due to the fact that the SimplifyCFG function does not use 
-; the ConstantFoldTerminator function.
-
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep {br i1 %c2}
-
-declare void @noop()
-
-define i32 @test(i1 %c1, i1 %c2) {
-	call void @noop( )
-	br i1 %c1, label %A, label %Y
-A:		; preds = %0
-	call void @noop( )
-	br i1 %c2, label %Z, label %X
-Z:		; preds = %A
-	br label %X
-X:		; preds = %Y, %Z, %A
-	call void @noop( )
-	ret i32 0
-Y:		; preds = %0
-	call void @noop( )
-	br label %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll
deleted file mode 100644
index c9f5090..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep switch
-
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-; Test folding all to same dest
-define i32 @test3(i1 %C) {
-        br i1 %C, label %Start, label %TheDest
-Start:          ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        switch i32 3, label %TheDest [
-                 i32 0, label %TheDest
-                 i32 1, label %TheDest
-                 i32 2, label %TheDest
-                 i32 5, label %TheDest
-        ]
-TheDest:                ; preds = %Start, %Start, %Start, %Start, %Start, %0
-        ret i32 1234
-}
-
-; Test folding switch -> branch
-define i32 @test4(i32 %C) {
-        switch i32 %C, label %L1 [
-                 i32 0, label %L2
-        ]
-L1:             ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        ret i32 0
-L2:             ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        ret i32 1
-}
-
-; Can fold into a cond branch!
-define i32 @test5(i32 %C) {
-        switch i32 %C, label %L1 [
-                 i32 0, label %L2
-                 i32 123, label %L1
-        ]
-L1:             ; preds = %0, %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        ret i32 0
-L2:             ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        ret i32 1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll
deleted file mode 100644
index cd22e1e..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll
+++ /dev/null
@@ -1,80 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep switch
-
-; Test normal folding
-define i32 @test1() {
-        switch i32 5, label %Default [
-                 i32 0, label %Foo
-                 i32 1, label %Bar
-                 i32 2, label %Baz
-                 i32 5, label %TheDest
-        ]
-Default:                ; preds = %0
-        ret i32 -1
-Foo:            ; preds = %0
-        ret i32 -2
-Bar:            ; preds = %0
-        ret i32 -3
-Baz:            ; preds = %0
-        ret i32 -4
-TheDest:                ; preds = %0
-        ret i32 1234
-}
-
-; Test folding to default dest
-define i32 @test2() {
-        switch i32 3, label %Default [
-                 i32 0, label %Foo
-                 i32 1, label %Bar
-                 i32 2, label %Baz
-                 i32 5, label %TheDest
-        ]
-Default:                ; preds = %0
-        ret i32 1234
-Foo:            ; preds = %0
-        ret i32 -2
-Bar:            ; preds = %0
-        ret i32 -5
-Baz:            ; preds = %0
-        ret i32 -6
-TheDest:                ; preds = %0
-        ret i32 -8
-}
-
-; Test folding all to same dest
-define i32 @test3(i1 %C) {
-        br i1 %C, label %Start, label %TheDest
-Start:          ; preds = %0
-        switch i32 3, label %TheDest [
-                 i32 0, label %TheDest
-                 i32 1, label %TheDest
-                 i32 2, label %TheDest
-                 i32 5, label %TheDest
-        ]
-TheDest:                ; preds = %Start, %Start, %Start, %Start, %Start, %0
-        ret i32 1234
-}
-
-; Test folding switch -> branch
-define i32 @test4(i32 %C) {
-        switch i32 %C, label %L1 [
-                 i32 0, label %L2
-        ]
-L1:             ; preds = %0
-        ret i32 0
-L2:             ; preds = %0
-        ret i32 1
-}
-
-; Can fold into a cond branch!
-define i32 @test5(i32 %C) {
-        switch i32 %C, label %L1 [
-                 i32 0, label %L2
-                 i32 123, label %L1
-        ]
-L1:             ; preds = %0, %0
-        ret i32 0
-L2:             ; preds = %0
-        ret i32 1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2004-12-10-SimplifyCFGCrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2004-12-10-SimplifyCFGCrash.ll
deleted file mode 100644
index de0d262..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2004-12-10-SimplifyCFGCrash.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-
-define void @symhash_add() {
-entry:
-	br i1 undef, label %then.0, label %UnifiedReturnBlock
-then.0:		; preds = %entry
-	br i1 undef, label %loopentry.2, label %loopentry.1.preheader
-loopentry.1.preheader:		; preds = %then.0
-	br label %loopentry.1.outer
-loopentry.1.outer:		; preds = %loopexit.1, %loopentry.1.preheader
-	br label %loopentry.1
-loopentry.1:		; preds = %endif.1, %then.4, %then.3, %then.1, %loopentry.1.outer
-	br i1 undef, label %loopexit.1, label %no_exit.1
-no_exit.1:		; preds = %loopentry.1
-	br i1 undef, label %then.1, label %else.0
-then.1:		; preds = %no_exit.1
-	br label %loopentry.1
-else.0:		; preds = %no_exit.1
-	br i1 undef, label %then.2, label %else.1
-then.2:		; preds = %else.0
-	br i1 undef, label %then.3, label %endif.1
-then.3:		; preds = %then.2
-	br label %loopentry.1
-else.1:		; preds = %else.0
-	br i1 undef, label %endif.1, label %then.4
-then.4:		; preds = %else.1
-	br label %loopentry.1
-endif.1:		; preds = %else.1, %then.2
-	br label %loopentry.1
-loopexit.1:		; preds = %loopentry.1
-	br i1 undef, label %loopentry.1.outer, label %loopentry.2
-loopentry.2:		; preds = %no_exit.2, %loopexit.1, %then.0
-	br i1 undef, label %loopexit.2, label %no_exit.2
-no_exit.2:		; preds = %loopentry.2
-	br label %loopentry.2
-loopexit.2:		; preds = %loopentry.2
-	ret void
-UnifiedReturnBlock:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
deleted file mode 100644
index 7fea292..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
+++ /dev/null
@@ -1,95 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; PR584
- at g_38098584 = external global i32		; <i32*> [#uses=1]
- at g_60187400 = external global i32		; <i32*> [#uses=1]
- at g_59182229 = external global i32		; <i32*> [#uses=2]
-
-define i32 @_Z13func_26556482h(i8 %l_88173906) {
-entry:
-	%tmp.1 = bitcast i8 %l_88173906 to i8		; <i8> [#uses=2]
-	%tmp.3 = icmp eq i8 %l_88173906, 0		; <i1> [#uses=1]
-	br i1 %tmp.3, label %else.0, label %then.0
-then.0:		; preds = %entry
-	%tmp.5 = icmp eq i8 %l_88173906, 0		; <i1> [#uses=1]
-	br i1 %tmp.5, label %else.1, label %then.1
-then.1:		; preds = %then.0
-	br label %return
-else.1:		; preds = %then.0
-	br label %loopentry.0
-loopentry.0:		; preds = %no_exit.0, %else.1
-	%i.0.1 = phi i32 [ 0, %else.1 ], [ %inc.0, %no_exit.0 ]		; <i32> [#uses=2]
-	%tmp.9 = icmp sgt i32 %i.0.1, 99		; <i1> [#uses=1]
-	br i1 %tmp.9, label %endif.0, label %no_exit.0
-no_exit.0:		; preds = %loopentry.0
-	%inc.0 = add i32 %i.0.1, 1		; <i32> [#uses=1]
-	br label %loopentry.0
-else.0:		; preds = %entry
-	%tmp.12 = sext i8 %tmp.1 to i32		; <i32> [#uses=1]
-	br label %return
-endif.0:		; preds = %loopentry.0
-	%tmp.14 = sext i8 %tmp.1 to i32		; <i32> [#uses=1]
-	%tmp.16 = zext i8 %l_88173906 to i32		; <i32> [#uses=1]
-	%tmp.17 = icmp sgt i32 %tmp.14, %tmp.16		; <i1> [#uses=1]
-	%tmp.19 = load i32* @g_59182229		; <i32> [#uses=2]
-	br i1 %tmp.17, label %cond_true, label %cond_false
-cond_true:		; preds = %endif.0
-	%tmp.20 = icmp ne i32 %tmp.19, 1		; <i1> [#uses=1]
-	br label %cond_continue
-cond_false:		; preds = %endif.0
-	%tmp.22 = icmp ne i32 %tmp.19, 0		; <i1> [#uses=1]
-	br label %cond_continue
-cond_continue:		; preds = %cond_false, %cond_true
-	%mem_tmp.0 = phi i1 [ %tmp.20, %cond_true ], [ %tmp.22, %cond_false ]		; <i1> [#uses=1]
-	br i1 %mem_tmp.0, label %then.2, label %else.2
-then.2:		; preds = %cond_continue
-	%tmp.25 = zext i8 %l_88173906 to i32		; <i32> [#uses=1]
-	br label %return
-else.2:		; preds = %cond_continue
-	br label %loopentry.1
-loopentry.1:		; preds = %endif.3, %else.2
-	%i.1.1 = phi i32 [ 0, %else.2 ], [ %inc.3, %endif.3 ]		; <i32> [#uses=2]
-	%i.3.2 = phi i32 [ undef, %else.2 ], [ %i.3.0, %endif.3 ]		; <i32> [#uses=2]
-	%l_88173906_addr.1 = phi i8 [ %l_88173906, %else.2 ], [ %l_88173906_addr.0, %endif.3 ]		; <i8> [#uses=3]
-	%tmp.29 = icmp sgt i32 %i.1.1, 99		; <i1> [#uses=1]
-	br i1 %tmp.29, label %endif.2, label %no_exit.1
-no_exit.1:		; preds = %loopentry.1
-	%tmp.30 = load i32* @g_38098584		; <i32> [#uses=1]
-	%tmp.31 = icmp eq i32 %tmp.30, 0		; <i1> [#uses=1]
-	br i1 %tmp.31, label %else.3, label %then.3
-then.3:		; preds = %no_exit.1
-	br label %endif.3
-else.3:		; preds = %no_exit.1
-	br i1 false, label %else.4, label %then.4
-then.4:		; preds = %else.3
-	br label %endif.3
-else.4:		; preds = %else.3
-	br i1 false, label %else.5, label %then.5
-then.5:		; preds = %else.4
-	store i32 -1004318825, i32* @g_59182229
-	br label %return
-else.5:		; preds = %else.4
-	br label %loopentry.3
-loopentry.3:		; preds = %then.7, %else.5
-	%i.3.3 = phi i32 [ 0, %else.5 ], [ %inc.2, %then.7 ]		; <i32> [#uses=3]
-	%tmp.55 = icmp sgt i32 %i.3.3, 99		; <i1> [#uses=1]
-	br i1 %tmp.55, label %endif.3, label %no_exit.3
-no_exit.3:		; preds = %loopentry.3
-	%tmp.57 = icmp eq i8 %l_88173906_addr.1, 0		; <i1> [#uses=1]
-	br i1 %tmp.57, label %else.7, label %then.7
-then.7:		; preds = %no_exit.3
-	store i32 16239, i32* @g_60187400
-	%inc.2 = add i32 %i.3.3, 1		; <i32> [#uses=1]
-	br label %loopentry.3
-else.7:		; preds = %no_exit.3
-	br label %return
-endif.3:		; preds = %loopentry.3, %then.4, %then.3
-	%i.3.0 = phi i32 [ %i.3.2, %then.3 ], [ %i.3.2, %then.4 ], [ %i.3.3, %loopentry.3 ]		; <i32> [#uses=1]
-	%l_88173906_addr.0 = phi i8 [ 100, %then.3 ], [ %l_88173906_addr.1, %then.4 ], [ %l_88173906_addr.1, %loopentry.3 ]		; <i8> [#uses=1]
-	%inc.3 = add i32 %i.1.1, 1		; <i32> [#uses=1]
-	br label %loopentry.1
-endif.2:		; preds = %loopentry.1
-	br label %return
-return:		; preds = %endif.2, %else.7, %then.5, %then.2, %else.0, %then.1
-	%result.0 = phi i32 [ 1624650671, %then.1 ], [ %tmp.25, %then.2 ], [ 3379, %then.5 ], [ 52410, %else.7 ], [ -1526438411, %endif.2 ], [ %tmp.12, %else.0 ]		; <i32> [#uses=1]
-	ret i32 %result.0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
deleted file mode 100644
index 8314321..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
+++ /dev/null
@@ -1,71 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; END.
-
-define void @main() {
-entry:
-	%tmp.14.i19 = icmp eq i32 0, 2		; <i1> [#uses=1]
-	br i1 %tmp.14.i19, label %endif.1.i20, label %read_min.exit
-endif.1.i20:		; preds = %entry
-	%tmp.9.i.i = icmp eq i8* null, null		; <i1> [#uses=1]
-	br i1 %tmp.9.i.i, label %then.i12.i, label %then.i.i
-then.i.i:		; preds = %endif.1.i20
-	ret void
-then.i12.i:		; preds = %endif.1.i20
-	%tmp.9.i4.i = icmp eq i8* null, null		; <i1> [#uses=1]
-	br i1 %tmp.9.i4.i, label %endif.2.i33, label %then.i5.i
-then.i5.i:		; preds = %then.i12.i
-	ret void
-endif.2.i33:		; preds = %then.i12.i
-	br i1 false, label %loopexit.0.i40, label %no_exit.0.i35
-no_exit.0.i35:		; preds = %no_exit.0.i35, %endif.2.i33
-	%tmp.130.i = icmp slt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp.130.i, label %loopexit.0.i40.loopexit, label %no_exit.0.i35
-loopexit.0.i40.loopexit:		; preds = %no_exit.0.i35
-	br label %loopexit.0.i40
-loopexit.0.i40:		; preds = %loopexit.0.i40.loopexit, %endif.2.i33
-	%tmp.341.i = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp.341.i, label %loopentry.1.i, label %read_min.exit
-loopentry.1.i:		; preds = %loopexit.0.i40
-	%tmp.347.i = icmp sgt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp.347.i, label %no_exit.1.i41, label %loopexit.2.i44
-no_exit.1.i41:		; preds = %endif.5.i, %loopentry.1.i
-	%indvar.i42 = phi i32 [ %indvar.next.i, %endif.5.i ], [ 0, %loopentry.1.i ]		; <i32> [#uses=1]
-	%tmp.355.i = icmp eq i32 0, 3		; <i1> [#uses=1]
-	br i1 %tmp.355.i, label %endif.5.i, label %read_min.exit
-endif.5.i:		; preds = %no_exit.1.i41
-	%tmp.34773.i = icmp sgt i32 0, 0		; <i1> [#uses=1]
-	%indvar.next.i = add i32 %indvar.i42, 1		; <i32> [#uses=1]
-	br i1 %tmp.34773.i, label %no_exit.1.i41, label %loopexit.1.i.loopexit
-loopexit.1.i.loopexit:		; preds = %endif.5.i
-	ret void
-loopexit.2.i44:		; preds = %loopentry.1.i
-	ret void
-read_min.exit:		; preds = %no_exit.1.i41, %loopexit.0.i40, %entry
-	%tmp.23 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp.23, label %endif.1, label %then.1
-then.1:		; preds = %read_min.exit
-	br i1 false, label %endif.0.i, label %then.0.i
-then.0.i:		; preds = %then.1
-	br i1 false, label %endif.1.i, label %then.1.i
-endif.0.i:		; preds = %then.1
-	br i1 false, label %endif.1.i, label %then.1.i
-then.1.i:		; preds = %endif.0.i, %then.0.i
-	br i1 false, label %getfree.exit, label %then.2.i
-endif.1.i:		; preds = %endif.0.i, %then.0.i
-	br i1 false, label %getfree.exit, label %then.2.i
-then.2.i:		; preds = %endif.1.i, %then.1.i
-	ret void
-getfree.exit:		; preds = %endif.1.i, %then.1.i
-	ret void
-endif.1:		; preds = %read_min.exit
-	%tmp.27.i = getelementptr i32* null, i32 0		; <i32*> [#uses=0]
-	br i1 false, label %loopexit.0.i15, label %no_exit.0.i14
-no_exit.0.i14:		; preds = %endif.1
-	ret void
-loopexit.0.i15:		; preds = %endif.1
-	br i1 false, label %primal_start_artificial.exit, label %no_exit.1.i16
-no_exit.1.i16:		; preds = %no_exit.1.i16, %loopexit.0.i15
-	br i1 false, label %primal_start_artificial.exit, label %no_exit.1.i16
-primal_start_artificial.exit:		; preds = %no_exit.1.i16, %loopexit.0.i15
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-08-03-PHIFactorCrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-08-03-PHIFactorCrash.ll
deleted file mode 100644
index 51490a0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-08-03-PHIFactorCrash.ll
+++ /dev/null
@@ -1,75 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; END.
-
-	%arraytype.1.Char = type { i32, [0 x i8] }
-	%arraytype.4.Signed = type { i32, [0 x i32] }
-	%functiontype.23 = type %structtype.Task* (%structtype.Task*, %structtype.Packet*, %structtype.FailedRun*)
-	%functiontype.27 = type %structtype.object* ()
-	%functiontype.28 = type i1 (%structtype.object*, %structtype.object_vtable*)
-	%functiontype.39 = type i32 (%structtype.listiter*)
-	%opaquetype.RuntimeTypeInfo = type i8* (i8*)
-	%structtype.AssertionError_vtable = type { %structtype.FailedRun_vtable }
-	%structtype.DeviceTask = type { %structtype.Task }
-	%structtype.FailedRun = type { %structtype.object }
-	%structtype.FailedRun_vtable = type { %structtype.object_vtable }
-	%structtype.Packet = type { %structtype.object, %structtype.list.1*, i32, i32, i32, %structtype.Packet* }
-	%structtype.Task = type { %structtype.TaskState, %structtype.FailedRun*, i32, %structtype.Packet*, %structtype.Task*, i32 }
-	%structtype.TaskState = type { %structtype.object, i1, i1, i1 }
-	%structtype.list.1 = type { %arraytype.4.Signed* }
-	%structtype.listiter = type { %structtype.list.1*, i32 }
-	%structtype.object = type { %structtype.object_vtable* }
-	%structtype.object_vtable = type { %structtype.object_vtable*, %opaquetype.RuntimeTypeInfo*, %arraytype.1.Char*, %functiontype.27* }
- at structinstance.59 = external global %structtype.AssertionError_vtable		; <%structtype.AssertionError_vtable*> [#uses=0]
-
-declare fastcc i1 @ll_isinstance__objectPtr_object_vtablePtr()
-
-declare fastcc void @ll_listnext__listiterPtr()
-
-define fastcc void @WorkTask.fn() {
-block0:
-	br label %block1
-block1:		; preds = %block0
-	%v2542 = call fastcc i1 @ll_isinstance__objectPtr_object_vtablePtr( )		; <i1> [#uses=1]
-	br i1 %v2542, label %block4, label %block2
-block2:		; preds = %block1
-	br label %block3
-block3:		; preds = %block2
-	unwind
-block4:		; preds = %block1
-	br label %block5
-block5:		; preds = %block4
-	%v2565 = icmp eq %structtype.Packet* null, null		; <i1> [#uses=1]
-	br i1 %v2565, label %block15, label %block6
-block6:		; preds = %block5
-	%self_2575 = phi %structtype.DeviceTask* [ null, %block5 ]		; <%structtype.DeviceTask*> [#uses=1]
-	br i1 false, label %block14, label %block7
-block7:		; preds = %block14, %block6
-	%self_2635 = phi %structtype.DeviceTask* [ %self_2575, %block6 ], [ null, %block14 ]		; <%structtype.DeviceTask*> [#uses=1]
-	%tmp.124 = getelementptr %structtype.Packet* null, i32 0, i32 2		; <i32*> [#uses=0]
-	br label %block8
-block8:		; preds = %block10, %block7
-	%self_2672 = phi %structtype.DeviceTask* [ %self_2635, %block7 ], [ null, %block10 ]		; <%structtype.DeviceTask*> [#uses=0]
-	invoke fastcc void @ll_listnext__listiterPtr( )
-			to label %block9 unwind label %block8_exception_handling
-block8_exception_handling:		; preds = %block8
-	br i1 false, label %block8_exception_found_branchto_block12, label %block8_not_exception_structinstance.10
-block8_not_exception_structinstance.10:		; preds = %block8_exception_handling
-	unwind
-block8_exception_found_branchto_block12:		; preds = %block8_exception_handling
-	br label %block12
-block9:		; preds = %block8
-	br i1 false, label %block11, label %block10
-block10:		; preds = %block11, %block9
-	br label %block8
-block11:		; preds = %block9
-	br label %block10
-block12:		; preds = %block8_exception_found_branchto_block12
-	br label %block13
-block13:		; preds = %block15, %block12
-	ret void
-block14:		; preds = %block6
-	br label %block7
-block15:		; preds = %block5
-	%v2586 = phi %structtype.DeviceTask* [ null, %block5 ]		; <%structtype.DeviceTask*> [#uses=0]
-	br label %block13
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll
deleted file mode 100644
index a0fe781..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-
-define i1 @foo() {
-	%X = invoke i1 @foo( )
-			to label %N unwind label %F		; <i1> [#uses=1]
-F:		; preds = %0
-	ret i1 false
-N:		; preds = %0
-	br i1 %X, label %A, label %B
-A:		; preds = %N
-	ret i1 true
-B:		; preds = %N
-	ret i1 true
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll
deleted file mode 100644
index 27413fc..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll
+++ /dev/null
@@ -1,124 +0,0 @@
-; Make sure this doesn't turn into an infinite loop
-
-; RUN: llvm-as < %s | opt -simplifycfg -constprop -simplifycfg |\
-; RUN:   llvm-dis | grep bb86
-; END.
-	
-%struct.anon = type { i32, i32, i32, i32, [1024 x i8] }
- at _zero_ = external global %struct.anon*		; <%struct.anon**> [#uses=2]
- at _one_ = external global %struct.anon*		; <%struct.anon**> [#uses=4]
- at str = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=0]
-
-declare i32 @bc_compare(%struct.anon*, %struct.anon*)
-
-declare void @free_num(%struct.anon**)
-
-declare %struct.anon* @copy_num(%struct.anon*)
-
-declare void @init_num(%struct.anon**)
-
-declare %struct.anon* @new_num(i32, i32)
-
-declare void @int2num(%struct.anon**, i32)
-
-declare void @bc_multiply(%struct.anon*, %struct.anon*, %struct.anon**, i32)
-
-declare void @bc_raise(%struct.anon*, %struct.anon*, %struct.anon**, i32)
-
-declare i32 @bc_divide(%struct.anon*, %struct.anon*, %struct.anon**, i32)
-
-declare void @bc_add(%struct.anon*, %struct.anon*, %struct.anon**)
-
-declare i32 @_do_compare(%struct.anon*, %struct.anon*, i32, i32)
-
-declare i32 @printf(i8*, ...)
-
-define i32 @bc_sqrt(%struct.anon** %num, i32 %scale) {
-entry:
-	%guess = alloca %struct.anon*		; <%struct.anon**> [#uses=7]
-	%guess1 = alloca %struct.anon*		; <%struct.anon**> [#uses=7]
-	%point5 = alloca %struct.anon*		; <%struct.anon**> [#uses=3]
-	%tmp = load %struct.anon** %num		; <%struct.anon*> [#uses=1]
-	%tmp1 = load %struct.anon** @_zero_		; <%struct.anon*> [#uses=1]
-	%tmp.upgrd.1 = call i32 @bc_compare( %struct.anon* %tmp, %struct.anon* %tmp1 )		; <i32> [#uses=2]
-	%tmp.upgrd.2 = icmp slt i32 %tmp.upgrd.1, 0		; <i1> [#uses=1]
-	br i1 %tmp.upgrd.2, label %cond_true, label %cond_false
-cond_true:		; preds = %entry
-	ret i32 0
-cond_false:		; preds = %entry
-	%tmp5 = icmp eq i32 %tmp.upgrd.1, 0		; <i1> [#uses=1]
-	br i1 %tmp5, label %cond_true6, label %cond_next13
-cond_true6:		; preds = %cond_false
-	call void @free_num( %struct.anon** %num )
-	%tmp8 = load %struct.anon** @_zero_		; <%struct.anon*> [#uses=1]
-	%tmp9 = call %struct.anon* @copy_num( %struct.anon* %tmp8 )		; <%struct.anon*> [#uses=1]
-	store %struct.anon* %tmp9, %struct.anon** %num
-	ret i32 1
-cond_next13:		; preds = %cond_false
-	%tmp15 = load %struct.anon** %num		; <%struct.anon*> [#uses=1]
-	%tmp16 = load %struct.anon** @_one_		; <%struct.anon*> [#uses=1]
-	%tmp17 = call i32 @bc_compare( %struct.anon* %tmp15, %struct.anon* %tmp16 )		; <i32> [#uses=2]
-	%tmp19 = icmp eq i32 %tmp17, 0		; <i1> [#uses=1]
-	br i1 %tmp19, label %cond_true20, label %cond_next27
-cond_true20:		; preds = %cond_next13
-	call void @free_num( %struct.anon** %num )
-	%tmp22 = load %struct.anon** @_one_		; <%struct.anon*> [#uses=1]
-	%tmp23 = call %struct.anon* @copy_num( %struct.anon* %tmp22 )		; <%struct.anon*> [#uses=1]
-	store %struct.anon* %tmp23, %struct.anon** %num
-	ret i32 1
-cond_next27:		; preds = %cond_next13
-	%tmp29 = load %struct.anon** %num		; <%struct.anon*> [#uses=1]
-	%tmp30 = getelementptr %struct.anon* %tmp29, i32 0, i32 2		; <i32*> [#uses=1]
-	%tmp31 = load i32* %tmp30		; <i32> [#uses=2]
-	%tmp33 = icmp sge i32 %tmp31, %scale		; <i1> [#uses=1]
-	%max = select i1 %tmp33, i32 %tmp31, i32 %scale		; <i32> [#uses=4]
-	%tmp35 = add i32 %max, 2		; <i32> [#uses=0]
-	call void @init_num( %struct.anon** %guess )
-	call void @init_num( %struct.anon** %guess1 )
-	%tmp36 = call %struct.anon* @new_num( i32 1, i32 1 )		; <%struct.anon*> [#uses=2]
-	store %struct.anon* %tmp36, %struct.anon** %point5
-	%tmp.upgrd.3 = getelementptr %struct.anon* %tmp36, i32 0, i32 4, i32 1		; <i8*> [#uses=1]
-	store i8 5, i8* %tmp.upgrd.3
-	%tmp39 = icmp slt i32 %tmp17, 0		; <i1> [#uses=1]
-	br i1 %tmp39, label %cond_true40, label %cond_false43
-cond_true40:		; preds = %cond_next27
-	%tmp41 = load %struct.anon** @_one_		; <%struct.anon*> [#uses=1]
-	%tmp42 = call %struct.anon* @copy_num( %struct.anon* %tmp41 )		; <%struct.anon*> [#uses=1]
-	store %struct.anon* %tmp42, %struct.anon** %guess
-	br label %bb80.outer
-cond_false43:		; preds = %cond_next27
-	call void @int2num( %struct.anon** %guess, i32 10 )
-	%tmp45 = load %struct.anon** %num		; <%struct.anon*> [#uses=1]
-	%tmp46 = getelementptr %struct.anon* %tmp45, i32 0, i32 1		; <i32*> [#uses=1]
-	%tmp47 = load i32* %tmp46		; <i32> [#uses=1]
-	call void @int2num( %struct.anon** %guess1, i32 %tmp47 )
-	%tmp48 = load %struct.anon** %guess1		; <%struct.anon*> [#uses=1]
-	%tmp49 = load %struct.anon** %point5		; <%struct.anon*> [#uses=1]
-	call void @bc_multiply( %struct.anon* %tmp48, %struct.anon* %tmp49, %struct.anon** %guess1, i32 %max )
-	%tmp51 = load %struct.anon** %guess1		; <%struct.anon*> [#uses=1]
-	%tmp52 = getelementptr %struct.anon* %tmp51, i32 0, i32 2		; <i32*> [#uses=1]
-	store i32 0, i32* %tmp52
-	%tmp53 = load %struct.anon** %guess		; <%struct.anon*> [#uses=1]
-	%tmp54 = load %struct.anon** %guess1		; <%struct.anon*> [#uses=1]
-	call void @bc_raise( %struct.anon* %tmp53, %struct.anon* %tmp54, %struct.anon** %guess, i32 %max )
-	br label %bb80.outer
-bb80.outer:		; preds = %cond_true83, %cond_false43, %cond_true40
-	%done.1.ph = phi i32 [ 1, %cond_true83 ], [ 0, %cond_true40 ], [ 0, %cond_false43 ]		; <i32> [#uses=1]
-	br label %bb80
-bb80:		; preds = %cond_true83, %bb80.outer
-	%tmp82 = icmp eq i32 %done.1.ph, 0		; <i1> [#uses=1]
-	br i1 %tmp82, label %cond_true83, label %bb86
-cond_true83:		; preds = %bb80
-	%tmp71 = call i32 @_do_compare( %struct.anon* null, %struct.anon* null, i32 0, i32 1 )		; <i32> [#uses=1]
-	%tmp76 = icmp eq i32 %tmp71, 0		; <i1> [#uses=1]
-	br i1 %tmp76, label %bb80.outer, label %bb80
-bb86:		; preds = %bb80
-	call void @free_num( %struct.anon** %num )
-	%tmp88 = load %struct.anon** %guess		; <%struct.anon*> [#uses=1]
-	%tmp89 = load %struct.anon** @_one_		; <%struct.anon*> [#uses=1]
-	%tmp92 = call i32 @bc_divide( %struct.anon* %tmp88, %struct.anon* %tmp89, %struct.anon** %num, i32 %max )		; <i32> [#uses=0]
-	call void @free_num( %struct.anon** %guess )
-	call void @free_num( %struct.anon** %guess1 )
-	call void @free_num( %struct.anon** %point5 )
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-02-17-InfiniteUnroll.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-02-17-InfiniteUnroll.ll
deleted file mode 100644
index 4400624..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-02-17-InfiniteUnroll.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-
-define void @polnel_() {
-entry:
-	%tmp595 = icmp slt i32 0, 0		; <i1> [#uses=4]
-	br i1 %tmp595, label %bb148.critedge, label %cond_true40
-bb36:		; preds = %bb43
-	br i1 %tmp595, label %bb43, label %cond_true40
-cond_true40:		; preds = %bb46, %cond_true40, %bb36, %entry
-	%tmp397 = icmp sgt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp397, label %bb43, label %cond_true40
-bb43:		; preds = %cond_true40, %bb36
-	br i1 false, label %bb53, label %bb36
-bb46:		; preds = %bb53
-	br i1 %tmp595, label %bb53, label %cond_true40
-bb53:		; preds = %bb46, %bb43
-	br i1 false, label %bb102, label %bb46
-bb92.preheader:		; preds = %bb102
-	ret void
-bb102:		; preds = %bb53
-	br i1 %tmp595, label %bb148, label %bb92.preheader
-bb148.critedge:		; preds = %entry
-	ret void
-bb148:		; preds = %bb102
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-06-12-InfLoop.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-06-12-InfLoop.ll
deleted file mode 100644
index 4981cf3..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-06-12-InfLoop.ll
+++ /dev/null
@@ -1,413 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; END.
-
-define void @main(i32 %c) {
-entry:
-	%tmp.9 = icmp eq i32 %c, 2		; <i1> [#uses=1]
-	br i1 %tmp.9, label %endif.0, label %then.0
-then.0:		; preds = %entry
-	ret void
-endif.0:		; preds = %entry
-	br i1 false, label %then.1, label %endif.1
-then.1:		; preds = %endif.0
-	ret void
-endif.1:		; preds = %endif.0
-	br i1 false, label %then.2, label %endif.2
-then.2:		; preds = %endif.1
-	ret void
-endif.2:		; preds = %endif.1
-	br i1 false, label %then.3, label %loopentry.0
-then.3:		; preds = %endif.2
-	ret void
-loopentry.0:		; preds = %endif.2
-	br i1 false, label %no_exit.0.preheader, label %loopexit.0
-no_exit.0.preheader:		; preds = %loopentry.0
-	br label %no_exit.0
-no_exit.0:		; preds = %endif.4, %no_exit.0.preheader
-	br i1 false, label %then.4, label %endif.4
-then.4:		; preds = %no_exit.0
-	ret void
-endif.4:		; preds = %no_exit.0
-	br i1 false, label %no_exit.0, label %loopexit.0.loopexit
-loopexit.0.loopexit:		; preds = %endif.4
-	br label %loopexit.0
-loopexit.0:		; preds = %loopexit.0.loopexit, %loopentry.0
-	br i1 false, label %then.5, label %loopentry.1
-then.5:		; preds = %loopexit.0
-	ret void
-loopentry.1:		; preds = %loopexit.0
-	%tmp.143 = icmp sgt i32 0, 0		; <i1> [#uses=4]
-	br i1 %tmp.143, label %no_exit.1.preheader, label %loopexit.1
-no_exit.1.preheader:		; preds = %loopentry.1
-	br label %no_exit.1
-no_exit.1:		; preds = %endif.6, %no_exit.1.preheader
-	br i1 false, label %then.6, label %shortcirc_next.3
-shortcirc_next.3:		; preds = %no_exit.1
-	br i1 false, label %then.6, label %shortcirc_next.4
-shortcirc_next.4:		; preds = %shortcirc_next.3
-	br i1 false, label %then.6, label %endif.6
-then.6:		; preds = %shortcirc_next.4, %shortcirc_next.3, %no_exit.1
-	ret void
-endif.6:		; preds = %shortcirc_next.4
-	br i1 false, label %no_exit.1, label %loopexit.1.loopexit
-loopexit.1.loopexit:		; preds = %endif.6
-	br label %loopexit.1
-loopexit.1:		; preds = %loopexit.1.loopexit, %loopentry.1
-	br i1 false, label %then.i, label %loopentry.0.i
-then.i:		; preds = %loopexit.1
-	ret void
-loopentry.0.i:		; preds = %loopexit.1
-	br i1 %tmp.143, label %no_exit.0.i.preheader, label %readvector.exit
-no_exit.0.i.preheader:		; preds = %loopentry.0.i
-	br label %no_exit.0.i
-no_exit.0.i:		; preds = %loopexit.1.i, %no_exit.0.i.preheader
-	br i1 false, label %no_exit.1.i.preheader, label %loopexit.1.i
-no_exit.1.i.preheader:		; preds = %no_exit.0.i
-	br label %no_exit.1.i
-no_exit.1.i:		; preds = %loopexit.2.i, %no_exit.1.i.preheader
-	br i1 false, label %no_exit.2.i.preheader, label %loopexit.2.i
-no_exit.2.i.preheader:		; preds = %no_exit.1.i
-	br label %no_exit.2.i
-no_exit.2.i:		; preds = %no_exit.2.i, %no_exit.2.i.preheader
-	br i1 false, label %no_exit.2.i, label %loopexit.2.i.loopexit
-loopexit.2.i.loopexit:		; preds = %no_exit.2.i
-	br label %loopexit.2.i
-loopexit.2.i:		; preds = %loopexit.2.i.loopexit, %no_exit.1.i
-	br i1 false, label %no_exit.1.i, label %loopexit.1.i.loopexit
-loopexit.1.i.loopexit:		; preds = %loopexit.2.i
-	br label %loopexit.1.i
-loopexit.1.i:		; preds = %loopexit.1.i.loopexit, %no_exit.0.i
-	br i1 false, label %no_exit.0.i, label %readvector.exit.loopexit
-readvector.exit.loopexit:		; preds = %loopexit.1.i
-	br label %readvector.exit
-readvector.exit:		; preds = %readvector.exit.loopexit, %loopentry.0.i
-	br i1 %tmp.143, label %loopentry.1.preheader.i, label %loopexit.0.i
-loopentry.1.preheader.i:		; preds = %readvector.exit
-	br label %loopentry.1.outer.i
-loopentry.1.outer.i:		; preds = %loopexit.1.i110, %loopentry.1.preheader.i
-	br label %loopentry.1.i85
-loopentry.1.i85.loopexit:		; preds = %hamming.exit16.i
-	br label %loopentry.1.i85
-loopentry.1.i85:		; preds = %loopentry.1.i85.loopexit, %loopentry.1.outer.i
-	br i1 false, label %no_exit.1.preheader.i, label %loopexit.1.i110.loopexit1
-no_exit.1.preheader.i:		; preds = %loopentry.1.i85
-	br label %no_exit.1.i87
-no_exit.1.i87:		; preds = %then.1.i107, %no_exit.1.preheader.i
-	br i1 false, label %no_exit.i.i101.preheader, label %hamming.exit.i104
-no_exit.i.i101.preheader:		; preds = %no_exit.1.i87
-	br label %no_exit.i.i101
-no_exit.i.i101:		; preds = %no_exit.i.i101, %no_exit.i.i101.preheader
-	br i1 false, label %no_exit.i.i101, label %hamming.exit.i104.loopexit
-hamming.exit.i104.loopexit:		; preds = %no_exit.i.i101
-	br label %hamming.exit.i104
-hamming.exit.i104:		; preds = %hamming.exit.i104.loopexit, %no_exit.1.i87
-	br i1 false, label %no_exit.i15.i.preheader, label %hamming.exit16.i
-no_exit.i15.i.preheader:		; preds = %hamming.exit.i104
-	br label %no_exit.i15.i
-no_exit.i15.i:		; preds = %no_exit.i15.i, %no_exit.i15.i.preheader
-	br i1 false, label %no_exit.i15.i, label %hamming.exit16.i.loopexit
-hamming.exit16.i.loopexit:		; preds = %no_exit.i15.i
-	br label %hamming.exit16.i
-hamming.exit16.i:		; preds = %hamming.exit16.i.loopexit, %hamming.exit.i104
-	br i1 false, label %loopentry.1.i85.loopexit, label %then.1.i107
-then.1.i107:		; preds = %hamming.exit16.i
-	br i1 false, label %no_exit.1.i87, label %loopexit.1.i110.loopexit
-loopexit.1.i110.loopexit:		; preds = %then.1.i107
-	br label %loopexit.1.i110
-loopexit.1.i110.loopexit1:		; preds = %loopentry.1.i85
-	br label %loopexit.1.i110
-loopexit.1.i110:		; preds = %loopexit.1.i110.loopexit1, %loopexit.1.i110.loopexit
-	br i1 false, label %loopentry.1.outer.i, label %loopexit.0.i.loopexit
-loopexit.0.i.loopexit:		; preds = %loopexit.1.i110
-	br label %loopexit.0.i
-loopexit.0.i:		; preds = %loopexit.0.i.loopexit, %readvector.exit
-	br i1 false, label %UnifiedReturnBlock.i113, label %then.2.i112
-then.2.i112:		; preds = %loopexit.0.i
-	br label %checkham.exit
-UnifiedReturnBlock.i113:		; preds = %loopexit.0.i
-	br label %checkham.exit
-checkham.exit:		; preds = %UnifiedReturnBlock.i113, %then.2.i112
-	br i1 false, label %loopentry.1.i14.preheader, label %loopentry.3.i.preheader
-loopentry.1.i14.preheader:		; preds = %checkham.exit
-	br label %loopentry.1.i14
-loopentry.1.i14:		; preds = %loopexit.1.i18, %loopentry.1.i14.preheader
-	br i1 false, label %no_exit.1.i16.preheader, label %loopexit.1.i18
-no_exit.1.i16.preheader:		; preds = %loopentry.1.i14
-	br label %no_exit.1.i16
-no_exit.1.i16:		; preds = %no_exit.1.i16, %no_exit.1.i16.preheader
-	br i1 false, label %no_exit.1.i16, label %loopexit.1.i18.loopexit
-loopexit.1.i18.loopexit:		; preds = %no_exit.1.i16
-	br label %loopexit.1.i18
-loopexit.1.i18:		; preds = %loopexit.1.i18.loopexit, %loopentry.1.i14
-	br i1 false, label %loopentry.1.i14, label %loopentry.3.i.loopexit
-loopentry.3.i.loopexit:		; preds = %loopexit.1.i18
-	br label %loopentry.3.i.preheader
-loopentry.3.i.preheader:		; preds = %loopentry.3.i.loopexit, %checkham.exit
-	br label %loopentry.3.i
-loopentry.3.i:		; preds = %endif.1.i, %loopentry.3.i.preheader
-	br i1 false, label %loopentry.4.i.preheader, label %endif.1.i
-loopentry.4.i.preheader:		; preds = %loopentry.3.i
-	br label %loopentry.4.i
-loopentry.4.i:		; preds = %loopexit.4.i, %loopentry.4.i.preheader
-	br i1 false, label %no_exit.4.i.preheader, label %loopexit.4.i
-no_exit.4.i.preheader:		; preds = %loopentry.4.i
-	br label %no_exit.4.i
-no_exit.4.i:		; preds = %no_exit.4.i.backedge, %no_exit.4.i.preheader
-	br i1 false, label %endif.0.i, label %else.i
-else.i:		; preds = %no_exit.4.i
-	br i1 false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
-no_exit.4.i.backedge:		; preds = %endif.0.i, %else.i
-	br label %no_exit.4.i
-endif.0.i:		; preds = %no_exit.4.i
-	br i1 false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
-loopexit.4.i.loopexit:		; preds = %endif.0.i, %else.i
-	br label %loopexit.4.i
-loopexit.4.i:		; preds = %loopexit.4.i.loopexit, %loopentry.4.i
-	br i1 false, label %loopentry.4.i, label %endif.1.i.loopexit
-endif.1.i.loopexit:		; preds = %loopexit.4.i
-	br label %endif.1.i
-endif.1.i:		; preds = %endif.1.i.loopexit, %loopentry.3.i
-	%exitcond = icmp eq i32 0, 10		; <i1> [#uses=1]
-	br i1 %exitcond, label %generateT.exit, label %loopentry.3.i
-generateT.exit:		; preds = %endif.1.i
-	br i1 false, label %then.0.i, label %loopentry.1.i30.preheader
-then.0.i:		; preds = %generateT.exit
-	ret void
-loopentry.1.i30.loopexit:		; preds = %loopexit.3.i
-	br label %loopentry.1.i30.backedge
-loopentry.1.i30.preheader:		; preds = %generateT.exit
-	br label %loopentry.1.i30
-loopentry.1.i30:		; preds = %loopentry.1.i30.backedge, %loopentry.1.i30.preheader
-	br i1 %tmp.143, label %no_exit.0.i31.preheader, label %loopentry.1.i30.backedge
-loopentry.1.i30.backedge:		; preds = %loopentry.1.i30, %loopentry.1.i30.loopexit
-	br label %loopentry.1.i30
-no_exit.0.i31.preheader:		; preds = %loopentry.1.i30
-	br label %no_exit.0.i31
-no_exit.0.i31:		; preds = %loopexit.3.i, %no_exit.0.i31.preheader
-	br i1 false, label %then.1.i, label %else.0.i
-then.1.i:		; preds = %no_exit.0.i31
-	br i1 undef, label %then.0.i29, label %loopentry.0.i31
-then.0.i29:		; preds = %then.1.i
-	unreachable
-loopentry.0.i31:		; preds = %then.1.i
-	br i1 false, label %no_exit.0.i38.preheader, label %loopentry.1.i.preheader
-no_exit.0.i38.preheader:		; preds = %loopentry.0.i31
-	br label %no_exit.0.i38
-no_exit.0.i38:		; preds = %no_exit.0.i38, %no_exit.0.i38.preheader
-	br i1 undef, label %no_exit.0.i38, label %loopentry.1.i.preheader.loopexit
-loopentry.1.i.preheader.loopexit:		; preds = %no_exit.0.i38
-	br label %loopentry.1.i.preheader
-loopentry.1.i.preheader:		; preds = %loopentry.1.i.preheader.loopexit, %loopentry.0.i31
-	br label %loopentry.1.i
-loopentry.1.i:		; preds = %endif.2.i, %loopentry.1.i.preheader
-	br i1 undef, label %loopentry.2.i39.preheader, label %loopexit.1.i79.loopexit2
-loopentry.2.i39.preheader:		; preds = %loopentry.1.i
-	br label %loopentry.2.i39
-loopentry.2.i39:		; preds = %loopexit.5.i77, %loopentry.2.i39.preheader
-	br i1 false, label %loopentry.3.i40.preheader, label %hamming.exit.i71
-loopentry.3.i40.preheader:		; preds = %loopentry.2.i39
-	br label %loopentry.3.i40
-loopentry.3.i40:		; preds = %loopexit.3.i51, %loopentry.3.i40.preheader
-	br i1 false, label %no_exit.3.preheader.i42, label %loopexit.3.i51
-no_exit.3.preheader.i42:		; preds = %loopentry.3.i40
-	br label %no_exit.3.i49
-no_exit.3.i49:		; preds = %no_exit.3.i49, %no_exit.3.preheader.i42
-	br i1 undef, label %no_exit.3.i49, label %loopexit.3.i51.loopexit
-loopexit.3.i51.loopexit:		; preds = %no_exit.3.i49
-	br label %loopexit.3.i51
-loopexit.3.i51:		; preds = %loopexit.3.i51.loopexit, %loopentry.3.i40
-	br i1 undef, label %loopentry.3.i40, label %loopentry.4.i52
-loopentry.4.i52:		; preds = %loopexit.3.i51
-	br i1 false, label %no_exit.4.i54.preheader, label %hamming.exit.i71
-no_exit.4.i54.preheader:		; preds = %loopentry.4.i52
-	br label %no_exit.4.i54
-no_exit.4.i54:		; preds = %no_exit.4.backedge.i, %no_exit.4.i54.preheader
-	br i1 undef, label %then.1.i55, label %endif.1.i56
-then.1.i55:		; preds = %no_exit.4.i54
-	br i1 undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
-no_exit.4.backedge.i:		; preds = %endif.1.i56, %then.1.i55
-	br label %no_exit.4.i54
-endif.1.i56:		; preds = %no_exit.4.i54
-	br i1 undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
-loopexit.4.i57:		; preds = %endif.1.i56, %then.1.i55
-	br i1 false, label %no_exit.i.i69.preheader, label %hamming.exit.i71
-no_exit.i.i69.preheader:		; preds = %loopexit.4.i57
-	br label %no_exit.i.i69
-no_exit.i.i69:		; preds = %no_exit.i.i69, %no_exit.i.i69.preheader
-	br i1 undef, label %no_exit.i.i69, label %hamming.exit.i71.loopexit
-hamming.exit.i71.loopexit:		; preds = %no_exit.i.i69
-	br label %hamming.exit.i71
-hamming.exit.i71:		; preds = %hamming.exit.i71.loopexit, %loopexit.4.i57, %loopentry.4.i52, %loopentry.2.i39
-	br i1 undef, label %endif.2.i, label %loopentry.5.i72
-loopentry.5.i72:		; preds = %hamming.exit.i71
-	br i1 false, label %shortcirc_next.i74.preheader, label %loopexit.5.i77
-shortcirc_next.i74.preheader:		; preds = %loopentry.5.i72
-	br label %shortcirc_next.i74
-shortcirc_next.i74:		; preds = %no_exit.5.i76, %shortcirc_next.i74.preheader
-	br i1 undef, label %no_exit.5.i76, label %loopexit.5.i77.loopexit
-no_exit.5.i76:		; preds = %shortcirc_next.i74
-	br i1 undef, label %shortcirc_next.i74, label %loopexit.5.i77.loopexit
-loopexit.5.i77.loopexit:		; preds = %no_exit.5.i76, %shortcirc_next.i74
-	br label %loopexit.5.i77
-loopexit.5.i77:		; preds = %loopexit.5.i77.loopexit, %loopentry.5.i72
-	br i1 undef, label %loopentry.2.i39, label %loopexit.1.i79.loopexit
-endif.2.i:		; preds = %hamming.exit.i71
-	br label %loopentry.1.i
-loopexit.1.i79.loopexit:		; preds = %loopexit.5.i77
-	br label %loopexit.1.i79
-loopexit.1.i79.loopexit2:		; preds = %loopentry.1.i
-	br label %loopexit.1.i79
-loopexit.1.i79:		; preds = %loopexit.1.i79.loopexit2, %loopexit.1.i79.loopexit
-	br i1 undef, label %then.3.i, label %loopentry.6.i80
-then.3.i:		; preds = %loopexit.1.i79
-	br i1 false, label %no_exit.6.i82.preheader, label %run.exit
-loopentry.6.i80:		; preds = %loopexit.1.i79
-	br i1 false, label %no_exit.6.i82.preheader, label %run.exit
-no_exit.6.i82.preheader:		; preds = %loopentry.6.i80, %then.3.i
-	br label %no_exit.6.i82
-no_exit.6.i82:		; preds = %no_exit.6.i82, %no_exit.6.i82.preheader
-	br i1 undef, label %no_exit.6.i82, label %run.exit.loopexit
-run.exit.loopexit:		; preds = %no_exit.6.i82
-	br label %run.exit
-run.exit:		; preds = %run.exit.loopexit, %loopentry.6.i80, %then.3.i
-	br i1 false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
-else.0.i:		; preds = %no_exit.0.i31
-	br i1 false, label %then.0.i4, label %loopentry.0.i6
-then.0.i4:		; preds = %else.0.i
-	unreachable
-loopentry.0.i6:		; preds = %else.0.i
-	br i1 false, label %no_exit.0.i8.preheader, label %loopentry.2.i.preheader
-no_exit.0.i8.preheader:		; preds = %loopentry.0.i6
-	br label %no_exit.0.i8
-no_exit.0.i8:		; preds = %no_exit.0.i8, %no_exit.0.i8.preheader
-	br i1 false, label %no_exit.0.i8, label %loopentry.2.i.preheader.loopexit
-loopentry.2.i.preheader.loopexit:		; preds = %no_exit.0.i8
-	br label %loopentry.2.i.preheader
-loopentry.2.i.preheader:		; preds = %loopentry.2.i.preheader.loopexit, %loopentry.0.i6
-	br label %loopentry.2.i
-loopentry.2.i:		; preds = %endif.3.i19, %loopentry.2.i.preheader
-	br i1 false, label %loopentry.3.i10.preheader, label %loopentry.4.i15
-loopentry.3.i10.preheader:		; preds = %loopentry.2.i
-	br label %loopentry.3.i10
-loopentry.3.i10:		; preds = %loopexit.3.i14, %loopentry.3.i10.preheader
-	br i1 false, label %no_exit.3.preheader.i, label %loopexit.3.i14
-no_exit.3.preheader.i:		; preds = %loopentry.3.i10
-	br label %no_exit.3.i12
-no_exit.3.i12:		; preds = %no_exit.3.i12, %no_exit.3.preheader.i
-	br i1 false, label %no_exit.3.i12, label %loopexit.3.i14.loopexit
-loopexit.3.i14.loopexit:		; preds = %no_exit.3.i12
-	br label %loopexit.3.i14
-loopexit.3.i14:		; preds = %loopexit.3.i14.loopexit, %loopentry.3.i10
-	br i1 false, label %loopentry.3.i10, label %loopentry.4.i15.loopexit
-loopentry.4.i15.loopexit:		; preds = %loopexit.3.i14
-	br label %loopentry.4.i15
-loopentry.4.i15:		; preds = %loopentry.4.i15.loopexit, %loopentry.2.i
-	br i1 false, label %loopentry.5.outer.i.preheader, label %loopentry.7.i
-loopentry.5.outer.i.preheader:		; preds = %loopentry.4.i15
-	br label %loopentry.5.outer.i
-loopentry.5.outer.i:		; preds = %loopexit.5.i, %loopentry.5.outer.i.preheader
-	br label %loopentry.5.i
-loopentry.5.i:		; preds = %endif.1.i18, %loopentry.5.outer.i
-	br i1 false, label %no_exit.5.i.preheader, label %loopexit.5.i.loopexit3
-no_exit.5.i.preheader:		; preds = %loopentry.5.i
-	br label %no_exit.5.i
-no_exit.5.i:		; preds = %then.2.i, %no_exit.5.i.preheader
-	br i1 false, label %loopentry.6.i, label %endif.1.i18
-loopentry.6.i:		; preds = %no_exit.5.i
-	br i1 false, label %no_exit.6.preheader.i, label %loopexit.6.i
-no_exit.6.preheader.i:		; preds = %loopentry.6.i
-	br label %no_exit.6.i
-no_exit.6.i:		; preds = %no_exit.6.i, %no_exit.6.preheader.i
-	br i1 false, label %no_exit.6.i, label %loopexit.6.i.loopexit
-loopexit.6.i.loopexit:		; preds = %no_exit.6.i
-	br label %loopexit.6.i
-loopexit.6.i:		; preds = %loopexit.6.i.loopexit, %loopentry.6.i
-	br i1 false, label %then.2.i, label %endif.1.i18
-then.2.i:		; preds = %loopexit.6.i
-	br i1 false, label %no_exit.5.i, label %loopexit.5.i.loopexit
-endif.1.i18:		; preds = %loopexit.6.i, %no_exit.5.i
-	br label %loopentry.5.i
-loopexit.5.i.loopexit:		; preds = %then.2.i
-	br label %loopexit.5.i
-loopexit.5.i.loopexit3:		; preds = %loopentry.5.i
-	br label %loopexit.5.i
-loopexit.5.i:		; preds = %loopexit.5.i.loopexit3, %loopexit.5.i.loopexit
-	br i1 false, label %loopentry.5.outer.i, label %loopentry.7.i.loopexit
-loopentry.7.i.loopexit:		; preds = %loopexit.5.i
-	br label %loopentry.7.i
-loopentry.7.i:		; preds = %loopentry.7.i.loopexit, %loopentry.4.i15
-	br i1 false, label %no_exit.7.i.preheader, label %hamming.exit.i
-no_exit.7.i.preheader:		; preds = %loopentry.7.i
-	br label %no_exit.7.i
-no_exit.7.i:		; preds = %no_exit.7.i, %no_exit.7.i.preheader
-	br i1 false, label %no_exit.7.i, label %loopexit.7.i
-loopexit.7.i:		; preds = %no_exit.7.i
-	br i1 false, label %no_exit.i.i.preheader, label %hamming.exit.i
-no_exit.i.i.preheader:		; preds = %loopexit.7.i
-	br label %no_exit.i.i
-no_exit.i.i:		; preds = %no_exit.i.i, %no_exit.i.i.preheader
-	br i1 false, label %no_exit.i.i, label %hamming.exit.i.loopexit
-hamming.exit.i.loopexit:		; preds = %no_exit.i.i
-	br label %hamming.exit.i
-hamming.exit.i:		; preds = %hamming.exit.i.loopexit, %loopexit.7.i, %loopentry.7.i
-	br i1 false, label %endif.3.i19, label %loopentry.8.i
-loopentry.8.i:		; preds = %hamming.exit.i
-	br i1 false, label %shortcirc_next.i.preheader, label %loopexit.8.i
-shortcirc_next.i.preheader:		; preds = %loopentry.8.i
-	br label %shortcirc_next.i
-shortcirc_next.i:		; preds = %no_exit.8.i, %shortcirc_next.i.preheader
-	br i1 false, label %no_exit.8.i, label %loopexit.8.i.loopexit
-no_exit.8.i:		; preds = %shortcirc_next.i
-	br i1 false, label %shortcirc_next.i, label %loopexit.8.i.loopexit
-loopexit.8.i.loopexit:		; preds = %no_exit.8.i, %shortcirc_next.i
-	br label %loopexit.8.i
-loopexit.8.i:		; preds = %loopexit.8.i.loopexit, %loopentry.8.i
-	br i1 false, label %no_exit.9.i.preheader, label %endif.3.i19
-no_exit.9.i.preheader:		; preds = %loopexit.8.i
-	br label %no_exit.9.i
-no_exit.9.i:		; preds = %no_exit.9.i, %no_exit.9.i.preheader
-	br i1 false, label %no_exit.9.i, label %endif.3.i19.loopexit
-endif.3.i19.loopexit:		; preds = %no_exit.9.i
-	br label %endif.3.i19
-endif.3.i19:		; preds = %endif.3.i19.loopexit, %loopexit.8.i, %hamming.exit.i
-	br i1 false, label %loopentry.2.i, label %loopexit.1.i20
-loopexit.1.i20:		; preds = %endif.3.i19
-	br i1 false, label %then.4.i, label %UnifiedReturnBlock.i
-then.4.i:		; preds = %loopexit.1.i20
-	br label %runcont.exit
-UnifiedReturnBlock.i:		; preds = %loopexit.1.i20
-	br label %runcont.exit
-runcont.exit:		; preds = %UnifiedReturnBlock.i, %then.4.i
-	br i1 false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
-no_exit.1.i36.preheader:		; preds = %runcont.exit, %run.exit
-	br label %no_exit.1.i36
-no_exit.1.i36:		; preds = %no_exit.1.i36, %no_exit.1.i36.preheader
-	br i1 false, label %no_exit.1.i36, label %loopentry.3.i37.loopexit
-loopentry.3.i37.loopexit:		; preds = %no_exit.1.i36
-	br label %loopentry.3.i37
-loopentry.3.i37:		; preds = %loopentry.3.i37.loopexit, %runcont.exit, %run.exit
-	br i1 false, label %loopentry.4.i38.preheader, label %loopexit.3.i
-loopentry.4.i38.preheader:		; preds = %loopentry.3.i37
-	br label %loopentry.4.i38
-loopentry.4.i38:		; preds = %loopexit.4.i42, %loopentry.4.i38.preheader
-	br i1 false, label %no_exit.3.i.preheader, label %loopexit.4.i42
-no_exit.3.i.preheader:		; preds = %loopentry.4.i38
-	br label %no_exit.3.i
-no_exit.3.i:		; preds = %no_exit.3.i.backedge, %no_exit.3.i.preheader
-	br i1 false, label %endif.3.i, label %else.1.i
-else.1.i:		; preds = %no_exit.3.i
-	br i1 false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
-no_exit.3.i.backedge:		; preds = %endif.3.i, %else.1.i
-	br label %no_exit.3.i
-endif.3.i:		; preds = %no_exit.3.i
-	br i1 false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
-loopexit.4.i42.loopexit:		; preds = %endif.3.i, %else.1.i
-	br label %loopexit.4.i42
-loopexit.4.i42:		; preds = %loopexit.4.i42.loopexit, %loopentry.4.i38
-	br i1 false, label %loopentry.4.i38, label %loopexit.3.i.loopexit
-loopexit.3.i.loopexit:		; preds = %loopexit.4.i42
-	br label %loopexit.3.i
-loopexit.3.i:		; preds = %loopexit.3.i.loopexit, %loopentry.3.i37
-	%tmp.13.i155 = icmp slt i32 0, 0		; <i1> [#uses=1]
-	br i1 %tmp.13.i155, label %no_exit.0.i31, label %loopentry.1.i30.loopexit
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
deleted file mode 100644
index e410c35..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
+++ /dev/null
@@ -1,98 +0,0 @@
-; RUN: llvm-as < %s | opt -gvn -simplifycfg \
-; RUN:   -disable-output
-; PR867
-; END.
-
-target datalayout = "E-p:32:32"
-target triple = "powerpc-apple-darwin8"
-	%struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
-	%struct.eh_status = type opaque
-	%struct.emit_status = type { i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack*, i32, %struct.location_t, i32, i8*, %struct.rtx_def** }
-	%struct.expr_status = type { i32, i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def* }
-	%struct.function = type { %struct.eh_status*, %struct.expr_status*, %struct.emit_status*, %struct.varasm_status*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.function*, i32, i32, i32, i32, %struct.rtx_def*, %struct.CUMULATIVE_ARGS, %struct.rtx_def*, %struct.rtx_def*, %struct.initial_value_struct*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i8, i32, i64, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.varray_head_tag*, %struct.temp_slot*, i32, %struct.var_refs_queue*, i32, i32, %struct.rtvec_def*, %struct.tree_node*, i32, i32, i32, %struct.machine_function*, i32, i32, i8, i8, %struct.language_function*, %struct.rtx_def*, i32, i32, i32, i32, %struct.location_t, %struct.varray_head_tag*, %struct.tree_node*, i8, i8, i8 }
-	%struct.initial_value_struct = type opaque
-	%struct.lang_decl = type opaque
-	%struct.lang_type = type opaque
-	%struct.language_function = type opaque
-	%struct.location_t = type { i8*, i32 }
-	%struct.machine_function = type { i32, i32, i8*, i32, i32 }
-	%struct.rtunion = type { i32 }
-	%struct.rtvec_def = type { i32, [1 x %struct.rtx_def*] }
-	%struct.rtx_def = type { i16, i8, i8, %struct.u }
-	%struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack* }
-	%struct.temp_slot = type opaque
-	%struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %union.tree_ann_d*, i8, i8, i8, i8, i8 }
-	%struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, %struct.tree_node*, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_decl* }
-	%struct.tree_decl_u1 = type { i64 }
-	%struct.tree_decl_u2 = type { %struct.function* }
-	%struct.tree_node = type { %struct.tree_decl }
-	%struct.tree_type = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32, i16, i8, i8, i32, %struct.tree_node*, %struct.tree_node*, %struct.rtunion, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_type* }
-	%struct.u = type { [1 x i64] }
-	%struct.var_refs_queue = type { %struct.rtx_def*, i32, i32, %struct.var_refs_queue* }
-	%struct.varasm_status = type opaque
-	%struct.varray_head_tag = type { i32, i32, i32, i8*, %struct.u }
-	%union.tree_ann_d = type opaque
- at mode_class = external global [35 x i8]		; <[35 x i8]*> [#uses=3]
-
-define void @fold_builtin_classify() {
-entry:
-	%tmp63 = load i32* null		; <i32> [#uses=1]
-	switch i32 %tmp63, label %bb276 [
-		 i32 414, label %bb145
-		 i32 417, label %bb
-	]
-bb:		; preds = %entry
-	ret void
-bb145:		; preds = %entry
-	%tmp146 = load %struct.tree_node** null		; <%struct.tree_node*> [#uses=1]
-	%tmp148 = getelementptr %struct.tree_node* %tmp146, i32 0, i32 0, i32 0, i32 1		; <%struct.tree_node**> [#uses=1]
-	%tmp149 = load %struct.tree_node** %tmp148		; <%struct.tree_node*> [#uses=1]
-	%tmp150 = bitcast %struct.tree_node* %tmp149 to %struct.tree_type*		; <%struct.tree_type*> [#uses=1]
-	%tmp151 = getelementptr %struct.tree_type* %tmp150, i32 0, i32 6		; <i16*> [#uses=1]
-	%tmp151.upgrd.1 = bitcast i16* %tmp151 to i32*		; <i32*> [#uses=1]
-	%tmp152 = load i32* %tmp151.upgrd.1		; <i32> [#uses=1]
-	%tmp154 = lshr i32 %tmp152, 16		; <i32> [#uses=1]
-	%tmp154.mask = and i32 %tmp154, 127		; <i32> [#uses=1]
-	%gep.upgrd.2 = zext i32 %tmp154.mask to i64		; <i64> [#uses=1]
-	%tmp155 = getelementptr [35 x i8]* @mode_class, i32 0, i64 %gep.upgrd.2		; <i8*> [#uses=1]
-	%tmp156 = load i8* %tmp155		; <i8> [#uses=1]
-	%tmp157 = icmp eq i8 %tmp156, 4		; <i1> [#uses=1]
-	br i1 %tmp157, label %cond_next241, label %cond_true158
-cond_true158:		; preds = %bb145
-	%tmp172 = load %struct.tree_node** null		; <%struct.tree_node*> [#uses=1]
-	%tmp174 = getelementptr %struct.tree_node* %tmp172, i32 0, i32 0, i32 0, i32 1		; <%struct.tree_node**> [#uses=1]
-	%tmp175 = load %struct.tree_node** %tmp174		; <%struct.tree_node*> [#uses=1]
-	%tmp176 = bitcast %struct.tree_node* %tmp175 to %struct.tree_type*		; <%struct.tree_type*> [#uses=1]
-	%tmp177 = getelementptr %struct.tree_type* %tmp176, i32 0, i32 6		; <i16*> [#uses=1]
-	%tmp177.upgrd.3 = bitcast i16* %tmp177 to i32*		; <i32*> [#uses=1]
-	%tmp178 = load i32* %tmp177.upgrd.3		; <i32> [#uses=1]
-	%tmp180 = lshr i32 %tmp178, 16		; <i32> [#uses=1]
-	%tmp180.mask = and i32 %tmp180, 127		; <i32> [#uses=1]
-	%gep.upgrd.4 = zext i32 %tmp180.mask to i64		; <i64> [#uses=1]
-	%tmp181 = getelementptr [35 x i8]* @mode_class, i32 0, i64 %gep.upgrd.4		; <i8*> [#uses=1]
-	%tmp182 = load i8* %tmp181		; <i8> [#uses=1]
-	%tmp183 = icmp eq i8 %tmp182, 8		; <i1> [#uses=1]
-	br i1 %tmp183, label %cond_next241, label %cond_true184
-cond_true184:		; preds = %cond_true158
-	%tmp185 = load %struct.tree_node** null		; <%struct.tree_node*> [#uses=1]
-	%tmp187 = getelementptr %struct.tree_node* %tmp185, i32 0, i32 0, i32 0, i32 1		; <%struct.tree_node**> [#uses=1]
-	%tmp188 = load %struct.tree_node** %tmp187		; <%struct.tree_node*> [#uses=1]
-	%tmp189 = bitcast %struct.tree_node* %tmp188 to %struct.tree_type*		; <%struct.tree_type*> [#uses=1]
-	%tmp190 = getelementptr %struct.tree_type* %tmp189, i32 0, i32 6		; <i16*> [#uses=1]
-	%tmp190.upgrd.5 = bitcast i16* %tmp190 to i32*		; <i32*> [#uses=1]
-	%tmp191 = load i32* %tmp190.upgrd.5		; <i32> [#uses=1]
-	%tmp193 = lshr i32 %tmp191, 16		; <i32> [#uses=1]
-	%tmp193.mask = and i32 %tmp193, 127		; <i32> [#uses=1]
-	%gep.upgrd.6 = zext i32 %tmp193.mask to i64		; <i64> [#uses=1]
-	%tmp194 = getelementptr [35 x i8]* @mode_class, i32 0, i64 %gep.upgrd.6		; <i8*> [#uses=1]
-	%tmp195 = load i8* %tmp194		; <i8> [#uses=1]
-	%tmp196 = icmp eq i8 %tmp195, 4		; <i1> [#uses=1]
-	br i1 %tmp196, label %cond_next241, label %cond_true197
-cond_true197:		; preds = %cond_true184
-	ret void
-cond_next241:		; preds = %cond_true184, %cond_true158, %bb145
-	%tmp245 = load i32* null		; <i32> [#uses=0]
-	ret void
-bb276:		; preds = %entry
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-10-19-UncondDiv.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-10-19-UncondDiv.ll
deleted file mode 100644
index 0d056ee..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-10-19-UncondDiv.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; PR957
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep select
-
- at G = extern_weak global i32
-
-define i32 @test(i32 %tmp) {
-cond_false179:
-	%tmp181 = icmp eq i32 %tmp, 0		; <i1> [#uses=1]
-	br i1 %tmp181, label %cond_true182, label %cond_next185
-cond_true182:		; preds = %cond_false179
-	br label %cond_next185
-cond_next185:		; preds = %cond_true182, %cond_false179
-	%d0.3 = phi i32 [ udiv (i32 1, i32 ptrtoint (i32* @G to i32)), %cond_true182 ], [ %tmp, %cond_false179 ]		; <i32> [#uses=1]
-	ret i32 %d0.3
-}
-
-define i32 @test2(i32 %tmp) {
-cond_false179:
-	%tmp181 = icmp eq i32 %tmp, 0		; <i1> [#uses=1]
-	br i1 %tmp181, label %cond_true182, label %cond_next185
-cond_true182:		; preds = %cond_false179
-	br label %cond_next185
-cond_next185:		; preds = %cond_true182, %cond_false179
-	%d0.3 = phi i32 [ udiv (i32 1, i32 ptrtoint (i32* @G to i32)), %cond_true182 ], [ %tmp, %cond_false179 ]		; <i32> [#uses=1]
-	call i32 @test( i32 4 )		; <i32>:0 [#uses=0]
-	ret i32 %d0.3
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-10-29-InvokeCrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-10-29-InvokeCrash.ll
deleted file mode 100644
index 6bfef02..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-10-29-InvokeCrash.ll
+++ /dev/null
@@ -1,555 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; END.
-	%struct..4._102 = type { %struct.QVectorData* }
-	%struct..5._125 = type { %struct.QMapData* }
-	%struct.QAbstractTextDocumentLayout = type { %struct.QObject }
-	%struct.QBasicAtomic = type { i32 }
-	%struct.QFont = type { %struct.QFontPrivate*, i32 }
-	%struct.QFontMetrics = type { %struct.QFontPrivate* }
-	%struct.QFontPrivate = type opaque
-	%"struct.QFragmentMap<QTextBlockData>" = type { %struct.QFragmentMapData }
-	%struct.QFragmentMapData = type { %"struct.QFragmentMapData::._154", i32 }
-	%"struct.QFragmentMapData::._154" = type { %"struct.QFragmentMapData::Header"* }
-	%"struct.QFragmentMapData::Header" = type { i32, i32, i32, i32, i32, i32, i32, i32 }
-	%"struct.QHash<uint,QHashDummyValue>" = type { %"struct.QHash<uint,QHashDummyValue>::._152" }
-	%"struct.QHash<uint,QHashDummyValue>::._152" = type { %struct.QHashData* }
-	%struct.QHashData = type { %"struct.QHashData::Node"*, %"struct.QHashData::Node"**, %struct.QBasicAtomic, i32, i32, i16, i16, i32, i8 }
-	%"struct.QHashData::Node" = type { %"struct.QHashData::Node"*, i32 }
-	%"struct.QList<QObject*>::._92" = type { %struct.QListData }
-	%"struct.QList<QPointer<QObject> >" = type { %"struct.QList<QObject*>::._92" }
-	%struct.QListData = type { %"struct.QListData::Data"* }
-	%"struct.QListData::Data" = type { %struct.QBasicAtomic, i32, i32, i32, i8, [1 x i8*] }
-	%"struct.QMap<QUrl,QVariant>" = type { %struct..5._125 }
-	%struct.QMapData = type { %"struct.QMapData::Node"*, [12 x %"struct.QMapData::Node"*], %struct.QBasicAtomic, i32, i32, i32, i8 }
-	%"struct.QMapData::Node" = type { %"struct.QMapData::Node"*, [1 x %"struct.QMapData::Node"*] }
-	%struct.QObject = type { i32 (...)**, %struct.QObjectData* }
-	%struct.QObjectData = type { i32 (...)**, %struct.QObject*, %struct.QObject*, %"struct.QList<QPointer<QObject> >", i8, [3 x i8], i32, i32 }
-	%struct.QObjectPrivate = type { %struct.QObjectData, i32, %struct.QObject*, %"struct.QList<QPointer<QObject> >", %"struct.QVector<QAbstractTextDocumentLayout::Selection>", %struct.QString }
-	%struct.QPaintDevice = type { i32 (...)**, i16 }
-	%struct.QPainter = type { %struct.QPainterPrivate* }
-	%struct.QPainterPrivate = type opaque
-	%struct.QPointF = type { double, double }
-	%struct.QPrinter = type { %struct.QPaintDevice, %struct.QPrinterPrivate* }
-	%struct.QPrinterPrivate = type opaque
-	%struct.QRectF = type { double, double, double, double }
-	%"struct.QSet<uint>" = type { %"struct.QHash<uint,QHashDummyValue>" }
-	%"struct.QSharedDataPointer<QTextFormatPrivate>" = type { %struct.QTextFormatPrivate* }
-	%struct.QString = type { %"struct.QString::Data"* }
-	%"struct.QString::Data" = type { %struct.QBasicAtomic, i32, i32, i16*, i8, i8, [1 x i16] }
-	%struct.QTextBlockFormat = type { %struct.QTextFormat }
-	%struct.QTextBlockGroup = type { %struct.QAbstractTextDocumentLayout }
-	%struct.QTextDocumentConfig = type { %struct.QString }
-	%struct.QTextDocumentPrivate = type { %struct.QObjectPrivate, %struct.QString, %"struct.QVector<QAbstractTextDocumentLayout::Selection>", i1, i32, i32, i1, i32, i32, i32, i32, i1, %struct.QTextFormatCollection, %struct.QTextBlockGroup*, %struct.QAbstractTextDocumentLayout*, %"struct.QFragmentMap<QTextBlockData>", %"struct.QFragmentMap<QTextBlockData>", i32, %"struct.QList<QPointer<QObject> >", %"struct.QList<QPointer<QObject> >", %"struct.QMap<QUrl,QVariant>", %"struct.QMap<QUrl,QVariant>", %"struct.QMap<QUrl,QVariant>", %struct.QTextDocumentConfig, i1, i1, %struct.QPointF }
-	%struct.QTextFormat = type { %"struct.QSharedDataPointer<QTextFormatPrivate>", i32 }
-	%struct.QTextFormatCollection = type { %"struct.QVector<QAbstractTextDocumentLayout::Selection>", %"struct.QVector<QAbstractTextDocumentLayout::Selection>", %"struct.QSet<uint>", %struct.QFont }
-	%struct.QTextFormatPrivate = type opaque
-	%"struct.QVector<QAbstractTextDocumentLayout::Selection>" = type { %struct..4._102 }
-	%struct.QVectorData = type { %struct.QBasicAtomic, i32, i32, i8 }
-
-define void @_ZNK13QTextDocument5printEP8QPrinter(%struct.QAbstractTextDocumentLayout* %this, %struct.QPrinter* %printer) {
-entry:
-	%tmp = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=2]
-	%tmp.upgrd.1 = alloca %struct.QRectF, align 16		; <%struct.QRectF*> [#uses=5]
-	%tmp2 = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=3]
-	%tmp.upgrd.2 = alloca %struct.QFontMetrics, align 16		; <%struct.QFontMetrics*> [#uses=4]
-	%tmp.upgrd.3 = alloca %struct.QFont, align 16		; <%struct.QFont*> [#uses=4]
-	%tmp3 = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=2]
-	%p = alloca %struct.QPainter, align 16		; <%struct.QPainter*> [#uses=14]
-	%body = alloca %struct.QRectF, align 16		; <%struct.QRectF*> [#uses=9]
-	%pageNumberPos = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=4]
-	%scaledPageSize = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=6]
-	%printerPageSize = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=3]
-	%fmt = alloca %struct.QTextBlockFormat, align 16		; <%struct.QTextBlockFormat*> [#uses=5]
-	%font = alloca %struct.QFont, align 16		; <%struct.QFont*> [#uses=5]
-	%tmp.upgrd.4 = call %struct.QTextDocumentPrivate* @_ZNK13QTextDocument6d_funcEv( %struct.QAbstractTextDocumentLayout* %this )		; <%struct.QTextDocumentPrivate*> [#uses=5]
-	%tmp.upgrd.5 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	call void @_ZN8QPainterC1EP12QPaintDevice( %struct.QPainter* %p, %struct.QPaintDevice* %tmp.upgrd.5 )
-	%tmp.upgrd.6 = invoke i1 @_ZNK8QPainter8isActiveEv( %struct.QPainter* %p )
-			to label %invcont unwind label %cleanup329		; <i1> [#uses=1]
-invcont:		; preds = %entry
-	br i1 %tmp.upgrd.6, label %cond_next, label %cleanup328
-cond_next:		; preds = %invcont
-	%tmp8 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv( %struct.QAbstractTextDocumentLayout* %this )
-			to label %invcont7 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=0]
-invcont7:		; preds = %cond_next
-	%tmp10 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26		; <%struct.QPointF*> [#uses=1]
-	call void @_ZN7QPointFC1Edd( %struct.QPointF* %tmp, double 0.000000e+00, double 0.000000e+00 )
-	call void @_ZN6QRectFC1ERK7QPointFRK6QSizeF( %struct.QRectF* %body, %struct.QPointF* %tmp, %struct.QPointF* %tmp10 )
-	call void @_ZN7QPointFC1Ev( %struct.QPointF* %pageNumberPos )
-	%tmp12 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26		; <%struct.QPointF*> [#uses=1]
-	%tmp13 = call i1 @_ZNK6QSizeF7isValidEv( %struct.QPointF* %tmp12 )		; <i1> [#uses=1]
-	br i1 %tmp13, label %cond_next15, label %bb
-cond_next15:		; preds = %invcont7
-	%tmp17 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26		; <%struct.QPointF*> [#uses=1]
-	%tmp.upgrd.7 = call double @_ZNK6QSizeF6heightEv( %struct.QPointF* %tmp17 )		; <double> [#uses=1]
-	%tmp18 = fcmp oeq double %tmp.upgrd.7, 0x41DFFFFFFFC00000		; <i1> [#uses=1]
-	br i1 %tmp18, label %bb, label %cond_next20
-cond_next20:		; preds = %cond_next15
-	br label %bb21
-bb:		; preds = %cond_next15, %invcont7
-	br label %bb21
-bb21:		; preds = %bb, %cond_next20
-	%iftmp.406.0 = phi i1 [ false, %bb ], [ true, %cond_next20 ]		; <i1> [#uses=1]
-	br i1 %iftmp.406.0, label %cond_true24, label %cond_false
-cond_true24:		; preds = %bb21
-	%tmp.upgrd.8 = invoke i32 @_Z13qt_defaultDpiv( )
-			to label %invcont25 unwind label %cleanup329		; <i32> [#uses=1]
-invcont25:		; preds = %cond_true24
-	%tmp26 = sitofp i32 %tmp.upgrd.8 to double		; <double> [#uses=2]
-	%tmp30 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv( %struct.QAbstractTextDocumentLayout* %this )
-			to label %invcont29 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=1]
-invcont29:		; preds = %invcont25
-	%tmp32 = invoke %struct.QPaintDevice* @_ZNK27QAbstractTextDocumentLayout11paintDeviceEv( %struct.QAbstractTextDocumentLayout* %tmp30 )
-			to label %invcont31 unwind label %cleanup329		; <%struct.QPaintDevice*> [#uses=3]
-invcont31:		; preds = %invcont29
-	%tmp34 = icmp eq %struct.QPaintDevice* %tmp32, null		; <i1> [#uses=1]
-	br i1 %tmp34, label %cond_next42, label %cond_true35
-cond_true35:		; preds = %invcont31
-	%tmp38 = invoke i32 @_ZNK12QPaintDevice11logicalDpiXEv( %struct.QPaintDevice* %tmp32 )
-			to label %invcont37 unwind label %cleanup329		; <i32> [#uses=1]
-invcont37:		; preds = %cond_true35
-	%tmp38.upgrd.9 = sitofp i32 %tmp38 to double		; <double> [#uses=1]
-	%tmp41 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp32 )
-			to label %invcont40 unwind label %cleanup329		; <i32> [#uses=1]
-invcont40:		; preds = %invcont37
-	%tmp41.upgrd.10 = sitofp i32 %tmp41 to double		; <double> [#uses=1]
-	br label %cond_next42
-cond_next42:		; preds = %invcont40, %invcont31
-	%sourceDpiY.2 = phi double [ %tmp41.upgrd.10, %invcont40 ], [ %tmp26, %invcont31 ]		; <double> [#uses=1]
-	%sourceDpiX.2 = phi double [ %tmp38.upgrd.9, %invcont40 ], [ %tmp26, %invcont31 ]		; <double> [#uses=1]
-	%tmp44 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp46 = invoke i32 @_ZNK12QPaintDevice11logicalDpiXEv( %struct.QPaintDevice* %tmp44 )
-			to label %invcont45 unwind label %cleanup329		; <i32> [#uses=1]
-invcont45:		; preds = %cond_next42
-	%tmp46.upgrd.11 = sitofp i32 %tmp46 to double		; <double> [#uses=1]
-	%tmp48 = fdiv double %tmp46.upgrd.11, %sourceDpiX.2		; <double> [#uses=2]
-	%tmp50 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp52 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp50 )
-			to label %invcont51 unwind label %cleanup329		; <i32> [#uses=1]
-invcont51:		; preds = %invcont45
-	%tmp52.upgrd.12 = sitofp i32 %tmp52 to double		; <double> [#uses=1]
-	%tmp54 = fdiv double %tmp52.upgrd.12, %sourceDpiY.2		; <double> [#uses=2]
-	invoke void @_ZN8QPainter5scaleEdd( %struct.QPainter* %p, double %tmp48, double %tmp54 )
-			to label %invcont57 unwind label %cleanup329
-invcont57:		; preds = %invcont51
-	%tmp.upgrd.13 = getelementptr %struct.QPointF* %scaledPageSize, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp60 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26, i32 0		; <double*> [#uses=1]
-	%tmp61 = load double* %tmp60		; <double> [#uses=1]
-	store double %tmp61, double* %tmp.upgrd.13
-	%tmp62 = getelementptr %struct.QPointF* %scaledPageSize, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp63 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26, i32 1		; <double*> [#uses=1]
-	%tmp64 = load double* %tmp63		; <double> [#uses=1]
-	store double %tmp64, double* %tmp62
-	%tmp65 = call double* @_ZN6QSizeF6rwidthEv( %struct.QPointF* %scaledPageSize )		; <double*> [#uses=2]
-	%tmp67 = load double* %tmp65		; <double> [#uses=1]
-	%tmp69 = fmul double %tmp67, %tmp48		; <double> [#uses=1]
-	store double %tmp69, double* %tmp65
-	%tmp71 = call double* @_ZN6QSizeF7rheightEv( %struct.QPointF* %scaledPageSize )		; <double*> [#uses=2]
-	%tmp73 = load double* %tmp71		; <double> [#uses=1]
-	%tmp75 = fmul double %tmp73, %tmp54		; <double> [#uses=1]
-	store double %tmp75, double* %tmp71
-	%tmp78 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp80 = invoke i32 @_ZNK12QPaintDevice6heightEv( %struct.QPaintDevice* %tmp78 )
-			to label %invcont79 unwind label %cleanup329		; <i32> [#uses=1]
-invcont79:		; preds = %invcont57
-	%tmp82 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp84 = invoke i32 @_ZNK12QPaintDevice5widthEv( %struct.QPaintDevice* %tmp82 )
-			to label %invcont83 unwind label %cleanup329		; <i32> [#uses=1]
-invcont83:		; preds = %invcont79
-	%tmp80.upgrd.14 = sitofp i32 %tmp80 to double		; <double> [#uses=1]
-	%tmp84.upgrd.15 = sitofp i32 %tmp84 to double		; <double> [#uses=1]
-	call void @_ZN6QSizeFC1Edd( %struct.QPointF* %printerPageSize, double %tmp84.upgrd.15, double %tmp80.upgrd.14 )
-	%tmp85 = call double @_ZNK6QSizeF6heightEv( %struct.QPointF* %printerPageSize )		; <double> [#uses=1]
-	%tmp86 = call double @_ZNK6QSizeF6heightEv( %struct.QPointF* %scaledPageSize )		; <double> [#uses=1]
-	%tmp87 = fdiv double %tmp85, %tmp86		; <double> [#uses=1]
-	%tmp88 = call double @_ZNK6QSizeF5widthEv( %struct.QPointF* %printerPageSize )		; <double> [#uses=1]
-	%tmp89 = call double @_ZNK6QSizeF5widthEv( %struct.QPointF* %scaledPageSize )		; <double> [#uses=1]
-	%tmp90 = fdiv double %tmp88, %tmp89		; <double> [#uses=1]
-	invoke void @_ZN8QPainter5scaleEdd( %struct.QPainter* %p, double %tmp90, double %tmp87 )
-			to label %cond_next194 unwind label %cleanup329
-cond_false:		; preds = %bb21
-	%tmp.upgrd.16 = getelementptr %struct.QAbstractTextDocumentLayout* %this, i32 0, i32 0		; <%struct.QObject*> [#uses=1]
-	%tmp95 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument5cloneEP7QObject( %struct.QAbstractTextDocumentLayout* %this, %struct.QObject* %tmp.upgrd.16 )
-			to label %invcont94 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=9]
-invcont94:		; preds = %cond_false
-	%tmp99 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv( %struct.QAbstractTextDocumentLayout* %tmp95 )
-			to label %invcont98 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=1]
-invcont98:		; preds = %invcont94
-	%tmp101 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont100 unwind label %cleanup329		; <%struct.QPaintDevice*> [#uses=1]
-invcont100:		; preds = %invcont98
-	invoke void @_ZN27QAbstractTextDocumentLayout14setPaintDeviceEP12QPaintDevice( %struct.QAbstractTextDocumentLayout* %tmp99, %struct.QPaintDevice* %tmp101 )
-			to label %invcont103 unwind label %cleanup329
-invcont103:		; preds = %invcont100
-	%tmp105 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont104 unwind label %cleanup329		; <%struct.QPaintDevice*> [#uses=1]
-invcont104:		; preds = %invcont103
-	%tmp107 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp105 )
-			to label %invcont106 unwind label %cleanup329		; <i32> [#uses=1]
-invcont106:		; preds = %invcont104
-	%tmp108 = sitofp i32 %tmp107 to double		; <double> [#uses=1]
-	%tmp109 = fmul double %tmp108, 0x3FE93264C993264C		; <double> [#uses=1]
-	%tmp109.upgrd.17 = fptosi double %tmp109 to i32		; <i32> [#uses=3]
-	%tmp.upgrd.18 = call %struct.QTextBlockGroup* @_ZNK13QTextDocument9rootFrameEv( %struct.QAbstractTextDocumentLayout* %tmp95 )		; <%struct.QTextBlockGroup*> [#uses=1]
-	invoke void @_ZNK10QTextFrame11frameFormatEv( %struct.QTextBlockFormat* sret  %fmt, %struct.QTextBlockGroup* %tmp.upgrd.18 )
-			to label %invcont111 unwind label %cleanup329
-invcont111:		; preds = %invcont106
-	%tmp112 = sitofp i32 %tmp109.upgrd.17 to double		; <double> [#uses=1]
-	invoke void @_ZN16QTextFrameFormat9setMarginEd( %struct.QTextBlockFormat* %fmt, double %tmp112 )
-			to label %invcont114 unwind label %cleanup192
-invcont114:		; preds = %invcont111
-	%tmp116 = call %struct.QTextBlockGroup* @_ZNK13QTextDocument9rootFrameEv( %struct.QAbstractTextDocumentLayout* %tmp95 )		; <%struct.QTextBlockGroup*> [#uses=1]
-	invoke void @_ZN10QTextFrame14setFrameFormatERK16QTextFrameFormat( %struct.QTextBlockGroup* %tmp116, %struct.QTextBlockFormat* %fmt )
-			to label %invcont117 unwind label %cleanup192
-invcont117:		; preds = %invcont114
-	%tmp119 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont118 unwind label %cleanup192		; <%struct.QPaintDevice*> [#uses=1]
-invcont118:		; preds = %invcont117
-	%tmp121 = invoke i32 @_ZNK12QPaintDevice6heightEv( %struct.QPaintDevice* %tmp119 )
-			to label %invcont120 unwind label %cleanup192		; <i32> [#uses=1]
-invcont120:		; preds = %invcont118
-	%tmp121.upgrd.19 = sitofp i32 %tmp121 to double		; <double> [#uses=1]
-	%tmp123 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont122 unwind label %cleanup192		; <%struct.QPaintDevice*> [#uses=1]
-invcont122:		; preds = %invcont120
-	%tmp125 = invoke i32 @_ZNK12QPaintDevice5widthEv( %struct.QPaintDevice* %tmp123 )
-			to label %invcont124 unwind label %cleanup192		; <i32> [#uses=1]
-invcont124:		; preds = %invcont122
-	%tmp125.upgrd.20 = sitofp i32 %tmp125 to double		; <double> [#uses=1]
-	call void @_ZN6QRectFC1Edddd( %struct.QRectF* %tmp.upgrd.1, double 0.000000e+00, double 0.000000e+00, double %tmp125.upgrd.20, double %tmp121.upgrd.19 )
-	%tmp126 = getelementptr %struct.QRectF* %body, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp127 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp128 = load double* %tmp127		; <double> [#uses=1]
-	store double %tmp128, double* %tmp126
-	%tmp129 = getelementptr %struct.QRectF* %body, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp130 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp131 = load double* %tmp130		; <double> [#uses=1]
-	store double %tmp131, double* %tmp129
-	%tmp132 = getelementptr %struct.QRectF* %body, i32 0, i32 2		; <double*> [#uses=1]
-	%tmp133 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 2		; <double*> [#uses=1]
-	%tmp134 = load double* %tmp133		; <double> [#uses=1]
-	store double %tmp134, double* %tmp132
-	%tmp135 = getelementptr %struct.QRectF* %body, i32 0, i32 3		; <double*> [#uses=1]
-	%tmp136 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 3		; <double*> [#uses=1]
-	%tmp137 = load double* %tmp136		; <double> [#uses=1]
-	store double %tmp137, double* %tmp135
-	%tmp138 = call double @_ZNK6QRectF6heightEv( %struct.QRectF* %body )		; <double> [#uses=1]
-	%tmp139 = sitofp i32 %tmp109.upgrd.17 to double		; <double> [#uses=1]
-	%tmp140 = fsub double %tmp138, %tmp139		; <double> [#uses=1]
-	%tmp142 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont141 unwind label %cleanup192		; <%struct.QPaintDevice*> [#uses=1]
-invcont141:		; preds = %invcont124
-	invoke void @_ZNK13QTextDocument11defaultFontEv( %struct.QFont* sret  %tmp.upgrd.3, %struct.QAbstractTextDocumentLayout* %tmp95 )
-			to label %invcont144 unwind label %cleanup192
-invcont144:		; preds = %invcont141
-	invoke void @_ZN12QFontMetricsC1ERK5QFontP12QPaintDevice( %struct.QFontMetrics* %tmp.upgrd.2, %struct.QFont* %tmp.upgrd.3, %struct.QPaintDevice* %tmp142 )
-			to label %invcont146 unwind label %cleanup173
-invcont146:		; preds = %invcont144
-	%tmp149 = invoke i32 @_ZNK12QFontMetrics6ascentEv( %struct.QFontMetrics* %tmp.upgrd.2 )
-			to label %invcont148 unwind label %cleanup168		; <i32> [#uses=1]
-invcont148:		; preds = %invcont146
-	%tmp149.upgrd.21 = sitofp i32 %tmp149 to double		; <double> [#uses=1]
-	%tmp150 = fadd double %tmp140, %tmp149.upgrd.21		; <double> [#uses=1]
-	%tmp152 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont151 unwind label %cleanup168		; <%struct.QPaintDevice*> [#uses=1]
-invcont151:		; preds = %invcont148
-	%tmp154 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp152 )
-			to label %invcont153 unwind label %cleanup168		; <i32> [#uses=1]
-invcont153:		; preds = %invcont151
-	%tmp155 = mul i32 %tmp154, 5		; <i32> [#uses=1]
-	%tmp156 = sdiv i32 %tmp155, 72		; <i32> [#uses=1]
-	%tmp156.upgrd.22 = sitofp i32 %tmp156 to double		; <double> [#uses=1]
-	%tmp157 = fadd double %tmp150, %tmp156.upgrd.22		; <double> [#uses=1]
-	%tmp158 = call double @_ZNK6QRectF5widthEv( %struct.QRectF* %body )		; <double> [#uses=1]
-	%tmp159 = sitofp i32 %tmp109.upgrd.17 to double		; <double> [#uses=1]
-	%tmp160 = fsub double %tmp158, %tmp159		; <double> [#uses=1]
-	call void @_ZN7QPointFC1Edd( %struct.QPointF* %tmp2, double %tmp160, double %tmp157 )
-	%tmp161 = getelementptr %struct.QPointF* %pageNumberPos, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp162 = getelementptr %struct.QPointF* %tmp2, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp163 = load double* %tmp162		; <double> [#uses=1]
-	store double %tmp163, double* %tmp161
-	%tmp164 = getelementptr %struct.QPointF* %pageNumberPos, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp165 = getelementptr %struct.QPointF* %tmp2, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp166 = load double* %tmp165		; <double> [#uses=1]
-	store double %tmp166, double* %tmp164
-	invoke void @_ZN12QFontMetricsD1Ev( %struct.QFontMetrics* %tmp.upgrd.2 )
-			to label %cleanup171 unwind label %cleanup173
-cleanup168:		; preds = %invcont151, %invcont148, %invcont146
-	invoke void @_ZN12QFontMetricsD1Ev( %struct.QFontMetrics* %tmp.upgrd.2 )
-			to label %cleanup173 unwind label %cleanup173
-cleanup171:		; preds = %invcont153
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %tmp.upgrd.3 )
-			to label %finally170 unwind label %cleanup192
-cleanup173:		; preds = %cleanup168, %cleanup168, %invcont153, %invcont144
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %tmp.upgrd.3 )
-			to label %cleanup192 unwind label %cleanup192
-finally170:		; preds = %cleanup171
-	invoke void @_ZNK13QTextDocument11defaultFontEv( %struct.QFont* sret  %font, %struct.QAbstractTextDocumentLayout* %tmp95 )
-			to label %invcont177 unwind label %cleanup192
-invcont177:		; preds = %finally170
-	invoke void @_ZN5QFont12setPointSizeEi( %struct.QFont* %font, i32 10 )
-			to label %invcont179 unwind label %cleanup187
-invcont179:		; preds = %invcont177
-	invoke void @_ZN13QTextDocument14setDefaultFontERK5QFont( %struct.QAbstractTextDocumentLayout* %tmp95, %struct.QFont* %font )
-			to label %invcont181 unwind label %cleanup187
-invcont181:		; preds = %invcont179
-	call void @_ZNK6QRectF4sizeEv( %struct.QPointF* sret  %tmp3, %struct.QRectF* %body )
-	invoke void @_ZN13QTextDocument11setPageSizeERK6QSizeF( %struct.QAbstractTextDocumentLayout* %tmp95, %struct.QPointF* %tmp3 )
-			to label %cleanup185 unwind label %cleanup187
-cleanup185:		; preds = %invcont181
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %font )
-			to label %cleanup190 unwind label %cleanup192
-cleanup187:		; preds = %invcont181, %invcont179, %invcont177
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %font )
-			to label %cleanup192 unwind label %cleanup192
-cleanup190:		; preds = %cleanup185
-	invoke void @_ZN16QTextFrameFormatD1Ev( %struct.QTextBlockFormat* %fmt )
-			to label %cond_next194 unwind label %cleanup329
-cleanup192:		; preds = %cleanup187, %cleanup187, %cleanup185, %finally170, %cleanup173, %cleanup173, %cleanup171, %invcont141, %invcont124, %invcont122, %invcont120, %invcont118, %invcont117, %invcont114, %invcont111
-	invoke void @_ZN16QTextFrameFormatD1Ev( %struct.QTextBlockFormat* %fmt )
-			to label %cleanup329 unwind label %cleanup329
-cond_next194:		; preds = %cleanup190, %invcont83
-	%clonedDoc.1 = phi %struct.QAbstractTextDocumentLayout* [ null, %invcont83 ], [ %tmp95, %cleanup190 ]		; <%struct.QAbstractTextDocumentLayout*> [#uses=3]
-	%doc.1 = phi %struct.QAbstractTextDocumentLayout* [ %this, %invcont83 ], [ %tmp95, %cleanup190 ]		; <%struct.QAbstractTextDocumentLayout*> [#uses=2]
-	%tmp197 = invoke i1 @_ZNK8QPrinter13collateCopiesEv( %struct.QPrinter* %printer )
-			to label %invcont196 unwind label %cleanup329		; <i1> [#uses=1]
-invcont196:		; preds = %cond_next194
-	br i1 %tmp197, label %cond_true200, label %cond_false204
-cond_true200:		; preds = %invcont196
-	%tmp203 = invoke i32 @_ZNK8QPrinter9numCopiesEv( %struct.QPrinter* %printer )
-			to label %invcont202 unwind label %cleanup329		; <i32> [#uses=1]
-invcont202:		; preds = %cond_true200
-	br label %cond_next208
-cond_false204:		; preds = %invcont196
-	%tmp207 = invoke i32 @_ZNK8QPrinter9numCopiesEv( %struct.QPrinter* %printer )
-			to label %invcont206 unwind label %cleanup329		; <i32> [#uses=1]
-invcont206:		; preds = %cond_false204
-	br label %cond_next208
-cond_next208:		; preds = %invcont206, %invcont202
-	%pageCopies.0 = phi i32 [ %tmp203, %invcont202 ], [ 1, %invcont206 ]		; <i32> [#uses=2]
-	%docCopies.0 = phi i32 [ 1, %invcont202 ], [ %tmp207, %invcont206 ]		; <i32> [#uses=2]
-	%tmp211 = invoke i32 @_ZNK8QPrinter8fromPageEv( %struct.QPrinter* %printer )
-			to label %invcont210 unwind label %cleanup329		; <i32> [#uses=3]
-invcont210:		; preds = %cond_next208
-	%tmp214 = invoke i32 @_ZNK8QPrinter6toPageEv( %struct.QPrinter* %printer )
-			to label %invcont213 unwind label %cleanup329		; <i32> [#uses=3]
-invcont213:		; preds = %invcont210
-	%tmp216 = icmp eq i32 %tmp211, 0		; <i1> [#uses=1]
-	br i1 %tmp216, label %cond_true217, label %cond_next225
-cond_true217:		; preds = %invcont213
-	%tmp219 = icmp eq i32 %tmp214, 0		; <i1> [#uses=1]
-	br i1 %tmp219, label %cond_true220, label %cond_next225
-cond_true220:		; preds = %cond_true217
-	%tmp223 = invoke i32 @_ZNK13QTextDocument9pageCountEv( %struct.QAbstractTextDocumentLayout* %doc.1 )
-			to label %invcont222 unwind label %cleanup329		; <i32> [#uses=1]
-invcont222:		; preds = %cond_true220
-	br label %cond_next225
-cond_next225:		; preds = %invcont222, %cond_true217, %invcont213
-	%toPage.1 = phi i32 [ %tmp223, %invcont222 ], [ %tmp214, %cond_true217 ], [ %tmp214, %invcont213 ]		; <i32> [#uses=2]
-	%fromPage.1 = phi i32 [ 1, %invcont222 ], [ %tmp211, %cond_true217 ], [ %tmp211, %invcont213 ]		; <i32> [#uses=2]
-	%tmp.page = invoke i32 @_ZNK8QPrinter9pageOrderEv( %struct.QPrinter* %printer )
-			to label %invcont227 unwind label %cleanup329		; <i32> [#uses=1]
-invcont227:		; preds = %cond_next225
-	%tmp228 = icmp eq i32 %tmp.page, 1		; <i1> [#uses=1]
-	br i1 %tmp228, label %cond_true230, label %cond_next234
-cond_true230:		; preds = %invcont227
-	br label %cond_next234
-cond_next234:		; preds = %cond_true230, %invcont227
-	%ascending.1 = phi i1 [ false, %cond_true230 ], [ true, %invcont227 ]		; <i1> [#uses=1]
-	%toPage.2 = phi i32 [ %fromPage.1, %cond_true230 ], [ %toPage.1, %invcont227 ]		; <i32> [#uses=1]
-	%fromPage.2 = phi i32 [ %toPage.1, %cond_true230 ], [ %fromPage.1, %invcont227 ]		; <i32> [#uses=1]
-	br label %bb309
-bb237:		; preds = %cond_true313, %cond_next293
-	%iftmp.410.4 = phi i1 [ %iftmp.410.5, %cond_true313 ], [ %iftmp.410.1, %cond_next293 ]		; <i1> [#uses=1]
-	%page.4 = phi i32 [ %fromPage.2, %cond_true313 ], [ %page.3, %cond_next293 ]		; <i32> [#uses=4]
-	br label %bb273
-invcont240:		; preds = %cond_true277
-	%tmp242 = icmp eq i32 %tmp241, 2		; <i1> [#uses=1]
-	br i1 %tmp242, label %bb252, label %cond_next244
-cond_next244:		; preds = %invcont240
-	%tmp247 = invoke i32 @_ZNK8QPrinter12printerStateEv( %struct.QPrinter* %printer )
-			to label %invcont246 unwind label %cleanup329		; <i32> [#uses=1]
-invcont246:		; preds = %cond_next244
-	%tmp248 = icmp eq i32 %tmp247, 3		; <i1> [#uses=1]
-	br i1 %tmp248, label %bb252, label %bb253
-bb252:		; preds = %invcont246, %invcont240
-	br label %bb254
-bb253:		; preds = %invcont246
-	br label %bb254
-bb254:		; preds = %bb253, %bb252
-	%iftmp.410.0 = phi i1 [ true, %bb252 ], [ false, %bb253 ]		; <i1> [#uses=2]
-	br i1 %iftmp.410.0, label %UserCanceled, label %cond_next258
-cond_next258:		; preds = %bb254
-	invoke fastcc void @_Z9printPageiP8QPainterPK13QTextDocumentRK6QRectFRK7QPointF( i32 %page.4, %struct.QPainter* %p, %struct.QAbstractTextDocumentLayout* %doc.1, %struct.QRectF* %body, %struct.QPointF* %pageNumberPos )
-			to label %invcont261 unwind label %cleanup329
-invcont261:		; preds = %cond_next258
-	%tmp263 = add i32 %pageCopies.0, -1		; <i32> [#uses=1]
-	%tmp265 = icmp sgt i32 %tmp263, %j.4		; <i1> [#uses=1]
-	br i1 %tmp265, label %cond_true266, label %cond_next270
-cond_true266:		; preds = %invcont261
-	%tmp269 = invoke i1 @_ZN8QPrinter7newPageEv( %struct.QPrinter* %printer )
-			to label %cond_next270 unwind label %cleanup329		; <i1> [#uses=0]
-cond_next270:		; preds = %cond_true266, %invcont261
-	%tmp272 = add i32 %j.4, 1		; <i32> [#uses=1]
-	br label %bb273
-bb273:		; preds = %cond_next270, %bb237
-	%iftmp.410.1 = phi i1 [ %iftmp.410.4, %bb237 ], [ %iftmp.410.0, %cond_next270 ]		; <i1> [#uses=2]
-	%j.4 = phi i32 [ 0, %bb237 ], [ %tmp272, %cond_next270 ]		; <i32> [#uses=3]
-	%tmp276 = icmp slt i32 %j.4, %pageCopies.0		; <i1> [#uses=1]
-	br i1 %tmp276, label %cond_true277, label %bb280
-cond_true277:		; preds = %bb273
-	%tmp241 = invoke i32 @_ZNK8QPrinter12printerStateEv( %struct.QPrinter* %printer )
-			to label %invcont240 unwind label %cleanup329		; <i32> [#uses=1]
-bb280:		; preds = %bb273
-	%tmp283 = icmp eq i32 %page.4, %toPage.2		; <i1> [#uses=1]
-	br i1 %tmp283, label %bb297, label %cond_next285
-cond_next285:		; preds = %bb280
-	br i1 %ascending.1, label %cond_true287, label %cond_false290
-cond_true287:		; preds = %cond_next285
-	%tmp289 = add i32 %page.4, 1		; <i32> [#uses=1]
-	br label %cond_next293
-cond_false290:		; preds = %cond_next285
-	%tmp292 = add i32 %page.4, -1		; <i32> [#uses=1]
-	br label %cond_next293
-cond_next293:		; preds = %cond_false290, %cond_true287
-	%page.3 = phi i32 [ %tmp289, %cond_true287 ], [ %tmp292, %cond_false290 ]		; <i32> [#uses=1]
-	%tmp296 = invoke i1 @_ZN8QPrinter7newPageEv( %struct.QPrinter* %printer )
-			to label %bb237 unwind label %cleanup329		; <i1> [#uses=0]
-bb297:		; preds = %bb280
-	%tmp299 = add i32 %docCopies.0, -1		; <i32> [#uses=1]
-	%tmp301 = icmp sgt i32 %tmp299, %i.1		; <i1> [#uses=1]
-	br i1 %tmp301, label %cond_true302, label %cond_next306
-cond_true302:		; preds = %bb297
-	%tmp305 = invoke i1 @_ZN8QPrinter7newPageEv( %struct.QPrinter* %printer )
-			to label %cond_next306 unwind label %cleanup329		; <i1> [#uses=0]
-cond_next306:		; preds = %cond_true302, %bb297
-	%tmp308 = add i32 %i.1, 1		; <i32> [#uses=1]
-	br label %bb309
-bb309:		; preds = %cond_next306, %cond_next234
-	%iftmp.410.5 = phi i1 [ undef, %cond_next234 ], [ %iftmp.410.1, %cond_next306 ]		; <i1> [#uses=1]
-	%i.1 = phi i32 [ 0, %cond_next234 ], [ %tmp308, %cond_next306 ]		; <i32> [#uses=3]
-	%tmp312 = icmp slt i32 %i.1, %docCopies.0		; <i1> [#uses=1]
-	br i1 %tmp312, label %cond_true313, label %UserCanceled
-cond_true313:		; preds = %bb309
-	br label %bb237
-UserCanceled:		; preds = %bb309, %bb254
-	%tmp318 = icmp eq %struct.QAbstractTextDocumentLayout* %clonedDoc.1, null		; <i1> [#uses=1]
-	br i1 %tmp318, label %cleanup327, label %cond_true319
-cond_true319:		; preds = %UserCanceled
-	%tmp.upgrd.23 = getelementptr %struct.QAbstractTextDocumentLayout* %clonedDoc.1, i32 0, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	%tmp.upgrd.24 = load i32 (...)*** %tmp.upgrd.23		; <i32 (...)**> [#uses=1]
-	%tmp322 = getelementptr i32 (...)** %tmp.upgrd.24, i32 4		; <i32 (...)**> [#uses=1]
-	%tmp.upgrd.25 = load i32 (...)** %tmp322		; <i32 (...)*> [#uses=1]
-	%tmp.upgrd.26 = bitcast i32 (...)* %tmp.upgrd.25 to void (%struct.QAbstractTextDocumentLayout*)*		; <void (%struct.QAbstractTextDocumentLayout*)*> [#uses=1]
-	invoke void %tmp.upgrd.26( %struct.QAbstractTextDocumentLayout* %clonedDoc.1 )
-			to label %cleanup327 unwind label %cleanup329
-cleanup327:		; preds = %cond_true319, %UserCanceled
-	call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
-	ret void
-cleanup328:		; preds = %invcont
-	call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
-	ret void
-cleanup329:		; preds = %cond_true319, %cond_true302, %cond_next293, %cond_true277, %cond_true266, %cond_next258, %cond_next244, %cond_next225, %cond_true220, %invcont210, %cond_next208, %cond_false204, %cond_true200, %cond_next194, %cleanup192, %cleanup192, %cleanup190, %invcont106, %invcont104, %invcont103, %invcont100, %invcont98, %invcont94, %cond_false, %invcont83, %invcont79, %invcont57, %invcont51, %invcont45, %cond_next42, %invcont37, %cond_true35, %invcont29, %invcont25, %cond_true24, %cond_next, %entry
-	call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
-	unwind
-}
-
-declare void @_ZN6QSizeFC1Edd(%struct.QPointF*, double, double)
-
-declare i1 @_ZNK6QSizeF7isValidEv(%struct.QPointF*)
-
-declare double @_ZNK6QSizeF5widthEv(%struct.QPointF*)
-
-declare double @_ZNK6QSizeF6heightEv(%struct.QPointF*)
-
-declare double* @_ZN6QSizeF6rwidthEv(%struct.QPointF*)
-
-declare double* @_ZN6QSizeF7rheightEv(%struct.QPointF*)
-
-declare %struct.QTextDocumentPrivate* @_ZNK13QTextDocument6d_funcEv(%struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZN7QPointFC1Ev(%struct.QPointF*)
-
-declare void @_ZN7QPointFC1Edd(%struct.QPointF*, double, double)
-
-declare void @_ZN16QTextFrameFormat9setMarginEd(%struct.QTextBlockFormat*, double)
-
-declare void @_ZN6QRectFC1Edddd(%struct.QRectF*, double, double, double, double)
-
-declare void @_ZN6QRectFC1ERK7QPointFRK6QSizeF(%struct.QRectF*, %struct.QPointF*, %struct.QPointF*)
-
-declare double @_ZNK6QRectF5widthEv(%struct.QRectF*)
-
-declare double @_ZNK6QRectF6heightEv(%struct.QRectF*)
-
-declare void @_ZNK6QRectF4sizeEv(%struct.QPointF*, %struct.QRectF*)
-
-declare void @_ZN16QTextFrameFormatD1Ev(%struct.QTextBlockFormat*)
-
-declare void @_ZNK10QTextFrame11frameFormatEv(%struct.QTextBlockFormat*, %struct.QTextBlockGroup*)
-
-declare void @_ZN10QTextFrame14setFrameFormatERK16QTextFrameFormat(%struct.QTextBlockGroup*, %struct.QTextBlockFormat*)
-
-declare i32 @_ZNK12QPaintDevice5widthEv(%struct.QPaintDevice*)
-
-declare i32 @_ZNK12QPaintDevice6heightEv(%struct.QPaintDevice*)
-
-declare i32 @_ZNK12QPaintDevice11logicalDpiXEv(%struct.QPaintDevice*)
-
-declare i32 @_ZNK12QPaintDevice11logicalDpiYEv(%struct.QPaintDevice*)
-
-declare %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument5cloneEP7QObject(%struct.QAbstractTextDocumentLayout*, %struct.QObject*)
-
-declare void @_ZN5QFontD1Ev(%struct.QFont*)
-
-declare %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv(%struct.QAbstractTextDocumentLayout*)
-
-declare %struct.QTextBlockGroup* @_ZNK13QTextDocument9rootFrameEv(%struct.QAbstractTextDocumentLayout*)
-
-declare i32 @_ZNK13QTextDocument9pageCountEv(%struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZNK13QTextDocument11defaultFontEv(%struct.QFont*, %struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZN13QTextDocument14setDefaultFontERK5QFont(%struct.QAbstractTextDocumentLayout*, %struct.QFont*)
-
-declare void @_ZN13QTextDocument11setPageSizeERK6QSizeF(%struct.QAbstractTextDocumentLayout*, %struct.QPointF*)
-
-declare void @_Z9printPageiP8QPainterPK13QTextDocumentRK6QRectFRK7QPointF(i32, %struct.QPainter*, %struct.QAbstractTextDocumentLayout*, %struct.QRectF*, %struct.QPointF*)
-
-declare void @_ZN12QFontMetricsD1Ev(%struct.QFontMetrics*)
-
-declare void @_ZN8QPainterC1EP12QPaintDevice(%struct.QPainter*, %struct.QPaintDevice*)
-
-declare i1 @_ZNK8QPainter8isActiveEv(%struct.QPainter*)
-
-declare i32 @_Z13qt_defaultDpiv()
-
-declare %struct.QPaintDevice* @_ZNK27QAbstractTextDocumentLayout11paintDeviceEv(%struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZN8QPainter5scaleEdd(%struct.QPainter*, double, double)
-
-declare %struct.QPaintDevice* @_ZNK8QPainter6deviceEv(%struct.QPainter*)
-
-declare void @_ZN27QAbstractTextDocumentLayout14setPaintDeviceEP12QPaintDevice(%struct.QAbstractTextDocumentLayout*, %struct.QPaintDevice*)
-
-declare void @_ZN12QFontMetricsC1ERK5QFontP12QPaintDevice(%struct.QFontMetrics*, %struct.QFont*, %struct.QPaintDevice*)
-
-declare i32 @_ZNK12QFontMetrics6ascentEv(%struct.QFontMetrics*)
-
-declare void @_ZN5QFont12setPointSizeEi(%struct.QFont*, i32)
-
-declare i1 @_ZNK8QPrinter13collateCopiesEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter9numCopiesEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter8fromPageEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter6toPageEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter9pageOrderEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter12printerStateEv(%struct.QPrinter*)
-
-declare i1 @_ZN8QPrinter7newPageEv(%struct.QPrinter*)
-
-declare void @_ZN8QPainterD1Ev(%struct.QPainter*)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
deleted file mode 100644
index d433f04..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
+++ /dev/null
@@ -1,131 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis
-; END.
-
-; ModuleID = '2006-12-08-Ptr-ICmp-Branch.ll'
-target datalayout = "e-p:32:32"
-target triple = "i686-pc-linux-gnu"
-	%struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
-	%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
-	%struct.charsequence = type { i8*, i32, i32 }
-	%struct.trie_s = type { [26 x %struct.trie_s*], i32 }
- at str = external global [14 x i8]		; <[14 x i8]*> [#uses=0]
- at str.upgrd.1 = external global [32 x i8]		; <[32 x i8]*> [#uses=0]
- at str.upgrd.2 = external global [12 x i8]		; <[12 x i8]*> [#uses=0]
- at C.0.2294 = external global %struct.charsequence		; <%struct.charsequence*> [#uses=3]
- at t = external global %struct.trie_s*		; <%struct.trie_s**> [#uses=0]
- at str.upgrd.3 = external global [3 x i8]		; <[3 x i8]*> [#uses=0]
- at str.upgrd.4 = external global [26 x i8]		; <[26 x i8]*> [#uses=0]
-
-declare void @charsequence_reset(%struct.charsequence*)
-
-declare void @free(i8*)
-
-declare void @charsequence_push(%struct.charsequence*, i8)
-
-declare i8* @charsequence_val(%struct.charsequence*)
-
-declare i32 @_IO_getc(%struct.FILE*)
-
-declare i32 @tolower(i32)
-
-declare %struct.trie_s* @trie_insert(%struct.trie_s*, i8*)
-
-declare i32 @feof(%struct.FILE*)
-
-define void @addfile(%struct.trie_s* %t, %struct.FILE* %f) {
-entry:
-	%t_addr = alloca %struct.trie_s*		; <%struct.trie_s**> [#uses=2]
-	%f_addr = alloca %struct.FILE*		; <%struct.FILE**> [#uses=3]
-	%c = alloca i8, align 1		; <i8*> [#uses=7]
-	%wstate = alloca i32, align 4		; <i32*> [#uses=4]
-	%cs = alloca %struct.charsequence, align 16		; <%struct.charsequence*> [#uses=7]
-	%str = alloca i8*, align 4		; <i8**> [#uses=3]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store %struct.trie_s* %t, %struct.trie_s** %t_addr
-	store %struct.FILE* %f, %struct.FILE** %f_addr
-	store i32 0, i32* %wstate
-	%tmp = getelementptr %struct.charsequence* %cs, i64 0, i32 0		; <i8**> [#uses=1]
-	%tmp1 = getelementptr %struct.charsequence* @C.0.2294, i64 0, i32 0		; <i8**> [#uses=1]
-	%tmp.upgrd.5 = load i8** %tmp1		; <i8*> [#uses=1]
-	store i8* %tmp.upgrd.5, i8** %tmp
-	%tmp.upgrd.6 = getelementptr %struct.charsequence* %cs, i64 0, i32 1		; <i32*> [#uses=1]
-	%tmp2 = getelementptr %struct.charsequence* @C.0.2294, i64 0, i32 1		; <i32*> [#uses=1]
-	%tmp.upgrd.7 = load i32* %tmp2		; <i32> [#uses=1]
-	store i32 %tmp.upgrd.7, i32* %tmp.upgrd.6
-	%tmp3 = getelementptr %struct.charsequence* %cs, i64 0, i32 2		; <i32*> [#uses=1]
-	%tmp4 = getelementptr %struct.charsequence* @C.0.2294, i64 0, i32 2		; <i32*> [#uses=1]
-	%tmp5 = load i32* %tmp4		; <i32> [#uses=1]
-	store i32 %tmp5, i32* %tmp3
-	br label %bb33
-bb:		; preds = %bb33
-	%tmp.upgrd.8 = load %struct.FILE** %f_addr		; <%struct.FILE*> [#uses=1]
-	%tmp.upgrd.9 = call i32 @_IO_getc( %struct.FILE* %tmp.upgrd.8 )		; <i32> [#uses=1]
-	%tmp6 = call i32 @tolower( i32 %tmp.upgrd.9 )		; <i32> [#uses=1]
-	%tmp6.upgrd.10 = trunc i32 %tmp6 to i8		; <i8> [#uses=1]
-	store i8 %tmp6.upgrd.10, i8* %c
-	%tmp7 = load i32* %wstate		; <i32> [#uses=1]
-	%tmp.upgrd.11 = icmp ne i32 %tmp7, 0		; <i1> [#uses=1]
-	br i1 %tmp.upgrd.11, label %cond_true, label %cond_false
-cond_true:		; preds = %bb
-	%tmp.upgrd.12 = load i8* %c		; <i8> [#uses=1]
-	%tmp8 = icmp sle i8 %tmp.upgrd.12, 96		; <i1> [#uses=1]
-	br i1 %tmp8, label %cond_true9, label %cond_next
-cond_true9:		; preds = %cond_true
-	br label %bb16
-cond_next:		; preds = %cond_true
-	%tmp10 = load i8* %c		; <i8> [#uses=1]
-	%tmp11 = icmp sgt i8 %tmp10, 122		; <i1> [#uses=1]
-	br i1 %tmp11, label %cond_true12, label %cond_next13
-cond_true12:		; preds = %cond_next
-	br label %bb16
-cond_next13:		; preds = %cond_next
-	%tmp14 = load i8* %c		; <i8> [#uses=1]
-	%tmp14.upgrd.13 = sext i8 %tmp14 to i32		; <i32> [#uses=1]
-	%tmp1415 = trunc i32 %tmp14.upgrd.13 to i8		; <i8> [#uses=1]
-	call void @charsequence_push( %struct.charsequence* %cs, i8 %tmp1415 )
-	br label %bb21
-bb16:		; preds = %cond_true12, %cond_true9
-	%tmp17 = call i8* @charsequence_val( %struct.charsequence* %cs )		; <i8*> [#uses=1]
-	store i8* %tmp17, i8** %str
-	%tmp.upgrd.14 = load %struct.trie_s** %t_addr		; <%struct.trie_s*> [#uses=1]
-	%tmp18 = load i8** %str		; <i8*> [#uses=1]
-	%tmp19 = call %struct.trie_s* @trie_insert( %struct.trie_s* %tmp.upgrd.14, i8* %tmp18 )		; <%struct.trie_s*> [#uses=0]
-	%tmp20 = load i8** %str		; <i8*> [#uses=1]
-	call void @free( i8* %tmp20 )
-	store i32 0, i32* %wstate
-	br label %bb21
-bb21:		; preds = %bb16, %cond_next13
-	br label %cond_next32
-cond_false:		; preds = %bb
-	%tmp22 = load i8* %c		; <i8> [#uses=1]
-	%tmp23 = icmp sgt i8 %tmp22, 96		; <i1> [#uses=1]
-	br i1 %tmp23, label %cond_true24, label %cond_next31
-cond_true24:		; preds = %cond_false
-	%tmp25 = load i8* %c		; <i8> [#uses=1]
-	%tmp26 = icmp sle i8 %tmp25, 122		; <i1> [#uses=1]
-	br i1 %tmp26, label %cond_true27, label %cond_next30
-cond_true27:		; preds = %cond_true24
-	call void @charsequence_reset( %struct.charsequence* %cs )
-	%tmp28 = load i8* %c		; <i8> [#uses=1]
-	%tmp28.upgrd.15 = sext i8 %tmp28 to i32		; <i32> [#uses=1]
-	%tmp2829 = trunc i32 %tmp28.upgrd.15 to i8		; <i8> [#uses=1]
-	call void @charsequence_push( %struct.charsequence* %cs, i8 %tmp2829 )
-	store i32 1, i32* %wstate
-	br label %cond_next30
-cond_next30:		; preds = %cond_true27, %cond_true24
-	br label %cond_next31
-cond_next31:		; preds = %cond_next30, %cond_false
-	br label %cond_next32
-cond_next32:		; preds = %cond_next31, %bb21
-	br label %bb33
-bb33:		; preds = %cond_next32, %entry
-	%tmp34 = load %struct.FILE** %f_addr		; <%struct.FILE*> [#uses=1]
-	%tmp35 = call i32 @feof( %struct.FILE* %tmp34 )		; <i32> [#uses=1]
-	%tmp36 = icmp eq i32 %tmp35, 0		; <i1> [#uses=1]
-	br i1 %tmp36, label %bb, label %bb37
-bb37:		; preds = %bb33
-	br label %return
-return:		; preds = %bb37
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
deleted file mode 100644
index 449047b..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep invoke
-
-declare i32 @func(i8*) nounwind
-
-define i32 @test() {
-	invoke i32 @func( i8* null )
-			to label %Cont unwind label %Other		; <i32>:1 [#uses=0]
-
-Cont:		; preds = %0
-	ret i32 0
-
-Other:		; preds = %0
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll
deleted file mode 100644
index fe1ca80..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-;RUN: llvm-as < %s | opt -simplifycfg -disable-output
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-
-define i32 @bork() nounwind  {
-entry:
-	br label %bb5.outer
-
-bb5.outer.loopexit:		; preds = %bb5
-	br label %bb5.outer
-
-bb5.outer:		; preds = %bb5.outer.loopexit, %entry
-	%undo.0.ph = phi i32 [ 0, %entry ], [ 1, %bb5.outer.loopexit ]		; <i32> [#uses=1]
-	br label %bb5
-
-bb5:		; preds = %bb5, %bb5.outer
-	%tmp6 = tail call i32 (...)* @foo( ) nounwind 		; <i32> [#uses=1]
-	switch i32 %tmp6, label %bb13 [
-		 i32 -1, label %bb10
-		 i32 102, label %bb5
-		 i32 110, label %bb5.outer.loopexit
-	]
-
-bb10:		; preds = %bb5
-	%tmp12 = tail call i32 (...)* @bar( i32 %undo.0.ph ) nounwind 		; <i32> [#uses=0]
-	br label %UnifiedReturnBlock
-
-bb13:		; preds = %bb5
-	br label %UnifiedReturnBlock
-
-UnifiedReturnBlock:		; preds = %bb13, %bb10
-	%UnifiedRetVal = phi i32 [ 1, %bb10 ], [ 258, %bb13 ]		; <i32> [#uses=1]
-	ret i32 %UnifiedRetVal
-}
-
-declare i32 @foo(...)
-
-declare i32 @bar(...)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
deleted file mode 100644
index 4c9c9e8..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; The phi should not be eliminated in this case, because the fp op could trap.
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep {= phi double}
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-apple-darwin8"
- at G = weak global double 0.000000e+00, align 8		; <double*> [#uses=2]
-
-define void @test(i32 %X, i32 %Y, double %Z) {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	%tmp = load double* @G, align 8		; <double> [#uses=2]
-	%tmp3 = icmp eq i32 %X, %Y		; <i1> [#uses=1]
-	%tmp34 = zext i1 %tmp3 to i8		; <i8> [#uses=1]
-	%toBool = icmp ne i8 %tmp34, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %cond_true, label %cond_next
-
-cond_true:		; preds = %entry
-	%tmp7 = fadd double %tmp, %Z		; <double> [#uses=1]
-	br label %cond_next
-
-cond_next:		; preds = %cond_true, %entry
-	%F.0 = phi double [ %tmp, %entry ], [ %tmp7, %cond_true ]		; <double> [#uses=1]
-	store double %F.0, double* @G, align 8
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll
deleted file mode 100644
index 5ee1352..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-04-23-MergeMultipleResultRet.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; rdar://5882392
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin9"
-	%struct.Py_complex = type { double, double }
-
-define %struct.Py_complex @_Py_c_pow(double %a.0, double %a.1, double %b.0, double %b.1) nounwind  {
-entry:
-	%tmp7 = fcmp une double %b.0, 0.000000e+00		; <i1> [#uses=1]
-	%tmp11 = fcmp une double %b.1, 0.000000e+00		; <i1> [#uses=1]
-	%bothcond = or i1 %tmp7, %tmp11		; <i1> [#uses=1]
-	br i1 %bothcond, label %bb15, label %bb53
-
-bb15:		; preds = %entry
-	%tmp18 = fcmp une double %a.0, 0.000000e+00		; <i1> [#uses=1]
-	%tmp24 = fcmp une double %a.1, 0.000000e+00		; <i1> [#uses=1]
-	%bothcond1 = or i1 %tmp18, %tmp24		; <i1> [#uses=1]
-	br i1 %bothcond1, label %bb29, label %bb27
-
-bb27:		; preds = %bb15
-	%tmp28 = call i32* @__error( ) nounwind 		; <i32*> [#uses=1]
-	store i32 33, i32* %tmp28, align 4
-	ret double undef, double undef
-
-bb29:		; preds = %bb15
-	%tmp36 = fcmp une double %b.1, 0.000000e+00		; <i1> [#uses=1]
-	br i1 %tmp36, label %bb39, label %bb47
-
-bb39:		; preds = %bb29
-	br label %bb47
-
-bb47:		; preds = %bb39, %bb29
-	ret double undef, double undef
-
-bb53:		; preds = %entry
-	ret double undef, double undef
-}
-
-declare i32* @__error()
-
-declare double @pow(double, double) nounwind readonly 
-
-declare double @cos(double) nounwind readonly 
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-04-27-MultipleReturnCrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-04-27-MultipleReturnCrash.ll
deleted file mode 100644
index be3410c..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-04-27-MultipleReturnCrash.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; PR2256
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-mingw32"
-
-define { x86_fp80, x86_fp80 } @catanl({ x86_fp80, x86_fp80 }* byval  %Z, i1 %cond) nounwind  {
-bb:		; preds = %entry
-	br i1  %cond, label %bb48, label %bb40
-
-bb40:		; preds = %bb
-	store i32 34, i32* null, align 4
-	br label %bb196
-
-bb48:		; preds = %bb.bb48_crit_edge, %entry.bb48_crit_edge
-	%tmp53 = icmp eq i32 0, 1280		; <i1> [#uses=1]
-	br i1 %tmp53, label %bb56, label %bb174
-
-bb56:		; preds = %bb48
-	%iftmp.0.0 = select i1 false, x86_fp80 0xK3FFFC90FDAA22168C235, x86_fp80 0xKBFFFC90FDAA22168C235		; <x86_fp80> [#uses=0]
-	br label %bb196
-
-
-bb174:		; preds = %bb144, %bb114
-	%tmp191 = fmul x86_fp80 0xK00000000000000000000, 0xK3FFE8000000000000000		; <x86_fp80> [#uses=1]
-	br label %bb196
-
-bb196:		; preds = %bb174, %bb56, %bb40
-	%Res.1.0 = phi x86_fp80 [ 0xK7FFF8000000000000000, %bb40 ], [ %tmp191, %bb174 ], [ 0xK00000000000000000000, %bb56 ]		; <x86_fp80> [#uses=1]
-	ret x86_fp80 0xK00000000000000000000, x86_fp80 %Res.1.0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
deleted file mode 100644
index 8af2640..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
+++ /dev/null
@@ -1,131 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis > %t
-; RUN: not grep {^BB.tomerge} %t
-; RUN  grep {^BB.nomerge} %t | count 2
-
-; ModuleID = '<stdin>' 
-declare i1 @foo()
-
-declare i1 @bar(i32)
-
-; This function can't be merged
-define void @a() {
-entry:
-	br label %BB.nomerge
-
-BB.nomerge:		; preds = %Common, %entry
-        ; This phi has a conflicting value (0) with below phi (2), so blocks
-        ; can't be merged.
-	%a = phi i32 [ 1, %entry ], [ 0, %Common ]		; <i32> [#uses=1]
-	br label %Succ
-
-Succ:		; preds = %Common, %BB.nomerge
-	%b = phi i32 [ %a, %BB.nomerge ], [ 2, %Common ]		; <i32> [#uses=0]
-	%conde = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %conde, label %Common, label %Exit
-
-Common:		; preds = %Succ
-	%cond = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %cond, label %BB.nomerge, label %Succ
-
-Exit:		; preds = %Succ
-	ret void
-}
-
-; This function can't be merged
-define void @b() {
-entry:
-	br label %BB.nomerge
-
-BB.nomerge:		; preds = %Common, %entry
-	br label %Succ
-
-Succ:		; preds = %Common, %BB.nomerge
-        ; This phi has confliction values for Common and (through BB) Common,
-        ; blocks can't be merged
-	%b = phi i32 [ 1, %BB.nomerge ], [ 2, %Common ]		; <i32> [#uses=0]
-	%conde = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %conde, label %Common, label %Exit
-
-Common:		; preds = %Succ
-	%cond = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %cond, label %BB.nomerge, label %Succ
-
-Exit:		; preds = %Succ
-	ret void
-}
-
-; This function can be merged
-define void @c() {
-entry:
-	br label %BB.tomerge
-
-BB.tomerge:		; preds = %Common, %entry
-	br label %Succ
-
-Succ:		; preds = %Common, %BB.tomerge, %Pre-Exit
-        ; This phi has identical values for Common and (through BB) Common,
-        ; blocks can't be merged
-	%b = phi i32 [ 1, %BB.tomerge ], [ 1, %Common ], [ 2, %Pre-Exit ]
-	%conde = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %conde, label %Common, label %Pre-Exit
-
-Common:		; preds = %Succ
-	%cond = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %cond, label %BB.tomerge, label %Succ
-
-Pre-Exit:       ; preds = %Succ
-        ; This adds a backedge, so the %b phi node gets a third branch and is
-        ; not completely trivial
-	%cond2 = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %cond2, label %Succ, label %Exit
-        
-Exit:		; preds = %Pre-Exit
-	ret void
-}
-
-; This function can be merged
-define void @d() {
-entry:
-	br label %BB.tomerge
-
-BB.tomerge:		; preds = %Common, %entry
-        ; This phi has a matching value (0) with below phi (0), so blocks
-        ; can be merged.
-	%a = phi i32 [ 1, %entry ], [ 0, %Common ]		; <i32> [#uses=1]
-	br label %Succ
-
-Succ:		; preds = %Common, %BB.tomerge
-	%b = phi i32 [ %a, %BB.tomerge ], [ 0, %Common ]		; <i32> [#uses=0]
-	%conde = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %conde, label %Common, label %Exit
-
-Common:		; preds = %Succ
-	%cond = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %cond, label %BB.tomerge, label %Succ
-
-Exit:		; preds = %Succ
-	ret void
-}
-
-; This function can be merged
-define void @e() {
-entry:
-	br label %BB.tomerge
-
-BB.tomerge:		; preds = %Use, %entry
-        ; This phi is used somewhere else than Succ, but this should not prevent
-        ; merging this block
-	%a = phi i32 [ 1, %entry ], [ 0, %Use ]		; <i32> [#uses=1]
-	br label %Succ
-
-Succ:		; preds = %BB.tomerge
-	%conde = call i1 @foo( )		; <i1> [#uses=1]
-	br i1 %conde, label %Use, label %Exit
-
-Use:		; preds = %Succ
-	%cond = call i1 @bar( i32 %a )		; <i1> [#uses=1]
-	br i1 %cond, label %BB.tomerge, label %Exit
-
-Exit:		; preds = %Use, %Succ
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll
deleted file mode 100644
index 0678e20..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep {%outval = phi i32 .*mux}
-; PR2540
-; Outval should end up with a select from 0/2, not all constants.
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
- at g_37 = common global i32 0		; <i32*> [#uses=1]
- at .str = internal constant [4 x i8] c"%d\0A\00"		; <[4 x i8]*> [#uses=1]
-
-define i32 @main() nounwind  {
-entry:
-	%l = load i32* @g_37, align 4		; <i32> [#uses=1]
-	%cmpa = icmp ne i32 %l, 0		; <i1> [#uses=3]
-	br i1 %cmpa, label %func_1.exit, label %mooseblock
-
-mooseblock:		; preds = %entry
-	%cmpb = icmp eq i1 %cmpa, false		; <i1> [#uses=2]
-	br i1 %cmpb, label %monkeyblock, label %beeblock
-
-monkeyblock:		; preds = %monkeyblock, %mooseblock
-	br i1 %cmpb, label %cowblock, label %monkeyblock
-
-beeblock:		; preds = %beeblock, %mooseblock
-	br i1 %cmpa, label %cowblock, label %beeblock
-
-cowblock:		; preds = %beeblock, %monkeyblock
-	%cowval = phi i32 [ 2, %beeblock ], [ 0, %monkeyblock ]		; <i32> [#uses=1]
-	br label %func_1.exit
-
-func_1.exit:		; preds = %cowblock, %entry
-	%outval = phi i32 [ %cowval, %cowblock ], [ 1, %entry ]		; <i32> [#uses=1]
-	%pout = tail call i32 (i8*, ...)* @printf( i8* noalias  getelementptr ([4 x i8]* @.str, i32 0, i32 0), i32 %outval ) nounwind 		; <i32> [#uses=0]
-	ret i32 0
-}
-
-declare i32 @printf(i8*, ...) nounwind 
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
deleted file mode 100644
index 82a2cc0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
+++ /dev/null
@@ -1,60 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; PR 2777
- at g_103 = common global i32 0		; <i32*> [#uses=1]
-
-define i32 @func_127(i32 %p_129) nounwind {
-entry:
-	load i32* @g_103, align 4		; <i32>:0 [#uses=1]
-	icmp eq i32 %0, 0		; <i1>:1 [#uses=2]
-	br i1 %1, label %bb6.preheader, label %entry.return_crit_edge
-
-entry.return_crit_edge:		; preds = %entry
-	br label %return
-
-bb6.preheader:		; preds = %entry
-	br i1 %1, label %bb6.preheader.split.us, label %bb6.preheader.split
-
-bb6.preheader.split.us:		; preds = %bb6.preheader
-	br label %return.loopexit.split
-
-bb6.preheader.split:		; preds = %bb6.preheader
-	br label %bb6
-
-bb6:		; preds = %bb17.bb6_crit_edge, %bb6.preheader.split
-	%indvar35 = phi i32 [ 0, %bb6.preheader.split ], [ %indvar.next36, %bb17.bb6_crit_edge ]		; <i32> [#uses=1]
-	%p_129_addr.3.reg2mem.0 = phi i32 [ %p_129_addr.2, %bb17.bb6_crit_edge ], [ %p_129, %bb6.preheader.split ]		; <i32> [#uses=3]
-	icmp eq i32 %p_129_addr.3.reg2mem.0, 0		; <i1>:2 [#uses=1]
-	br i1 %2, label %bb6.bb17_crit_edge, label %bb8
-
-bb6.bb17_crit_edge:		; preds = %bb6
-	br label %bb17
-
-bb8:		; preds = %bb6
-	br label %bb13
-
-bb13:		; preds = %bb8
-	br label %bb17
-
-bb17:		; preds = %bb13, %bb6.bb17_crit_edge
-	%p_129_addr.2 = phi i32 [ %p_129_addr.3.reg2mem.0, %bb13 ], [ %p_129_addr.3.reg2mem.0, %bb6.bb17_crit_edge ]		; <i32> [#uses=1]
-	%indvar.next36 = add i32 %indvar35, 1		; <i32> [#uses=2]
-	%exitcond37 = icmp eq i32 %indvar.next36, -1		; <i1> [#uses=1]
-	br i1 %exitcond37, label %return.loopexit, label %bb17.bb6_crit_edge
-
-bb17.bb6_crit_edge:		; preds = %bb17
-	br label %bb6
-
-return.loopexit:		; preds = %bb17
-	br label %return.loopexit.split
-
-return.loopexit.split:		; preds = %return.loopexit, %bb6.preheader.split.us
-	br label %return
-
-return:		; preds = %return.loopexit.split, %entry.return_crit_edge
-	ret i32 1
-}
-
-define i32 @func_135(i8 zeroext %p_137, i32 %p_138, i32 %p_140) nounwind {
-entry:
-	ret i32 undef
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-09-17-SpeculativeHoist.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-09-17-SpeculativeHoist.ll
deleted file mode 100644
index b2d671d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-09-17-SpeculativeHoist.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; PR 2800
-
-define void @foo() {
-start:
-	%tmp = call i1 @bar( )		; <i1> [#uses=4]
-	br i1 %tmp, label %brtrue, label %brfalse
-
-brtrue:		; preds = %start
-	%tmpnew = and i1 %tmp, %tmp		; <i1> [#uses=1]
-	br label %brfalse
-
-brfalse:		; preds = %brtrue, %start
-	%andandtmp.0 = phi i1 [ %tmp, %start ], [ %tmpnew, %brtrue ]		; <i1> [#uses=0]
-	ret void
-}
-
-declare i1 @bar()
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll
deleted file mode 100644
index a061a82..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg
-; PR2855
-
-define i32 @_Z1fPii(i32* %b, i32 %f) nounwind {
-entry:
-	br label %bb
-
-bb:		; preds = %bb9, %bb7, %bb, %entry
-	%__c2.2 = phi i32 [ undef, %entry ], [ %__c2.1, %bb7 ], [ %__c2.1, %bb9 ]		; <i32> [#uses=2]
-	%s.0 = phi i32 [ 0, %entry ], [ 0, %bb7 ], [ %2, %bb9 ]		; <i32> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb
-	%0 = icmp slt i32 0, %f		; <i1> [#uses=1]
-	br i1 %0, label %bb3, label %bb6
-
-bb3:		; preds = %bb1
-	%1 = icmp eq i32 0, 0		; <i1> [#uses=1]
-	br i1 %1, label %bb6, label %bb5
-
-bb5:		; preds = %bb3
-	br label %bb7
-
-bb6:		; preds = %bb3, %bb1
-	%__c2.0 = phi i32 [ 0, %bb3 ], [ %__c2.2, %bb1 ]		; <i32> [#uses=1]
-	br label %bb7
-
-bb7:		; preds = %bb6, %bb5
-	%__c2.1 = phi i32 [ 0, %bb5 ], [ %__c2.0, %bb6 ]		; <i32> [#uses=2]
-	%iftmp.1.0 = phi i1 [ false, %bb5 ], [ true, %bb6 ]		; <i1> [#uses=1]
-	br i1 %iftmp.1.0, label %bb, label %bb9
-
-bb9:		; preds = %bb7
-	%2 = add i32 %s.0, 2		; <i32> [#uses=1]
-	br label %bb
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll
deleted file mode 100644
index 7b4aee4..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis
-define i32 @test() {
-entry:
-	br label %T
-T:
-	%C = phi i1 [false, %entry] 
-	br i1 %C, label %X, label %Y
-X:
-	ret i32 2
-Y:
-	add i32 1, 2
-	ret i32 1
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll
deleted file mode 100644
index b52d10d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll
+++ /dev/null
@@ -1,46 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep icmp
-; ModuleID = '/tmp/x.bc'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i686-pc-linux-gnu"
-
-define i32 @x(i32 %x) {
-entry:
-	%cmp = icmp eq i32 %x, 8		; <i1> [#uses=1]
-	br i1 %cmp, label %ifthen, label %ifend
-
-ifthen:		; preds = %entry
-	%call = call i32 (...)* @foo()		; <i32> [#uses=0]
-	br label %ifend
-
-ifend:		; preds = %ifthen, %entry
-	%cmp2 = icmp ne i32 %x, 8		; <i1> [#uses=1]
-	br i1 %cmp2, label %ifthen3, label %ifend5
-
-ifthen3:		; preds = %ifend
-	%call4 = call i32 (...)* @foo()		; <i32> [#uses=0]
-	br label %ifend5
-
-ifend5:		; preds = %ifthen3, %ifend
-	%cmp7 = icmp eq i32 %x, 9		; <i1> [#uses=1]
-	br i1 %cmp7, label %ifthen8, label %ifend10
-
-ifthen8:		; preds = %ifend5
-	%call9 = call i32 (...)* @bar()		; <i32> [#uses=0]
-	br label %ifend10
-
-ifend10:		; preds = %ifthen8, %ifend5
-	%cmp12 = icmp ne i32 %x, 9		; <i1> [#uses=1]
-	br i1 %cmp12, label %ifthen13, label %ifend15
-
-ifthen13:		; preds = %ifend10
-	%call14 = call i32 (...)* @bar()		; <i32> [#uses=0]
-	br label %ifend15
-
-ifend15:		; preds = %ifthen13, %ifend10
-	ret i32 0
-}
-
-declare i32 @foo(...)
-
-declare i32 @bar(...)
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll
deleted file mode 100644
index 692ef74..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis
-; PR3016
-; Dead use caused invariant violation.
-
-define i32 @func_105(i1 %tmp5, i1 %tmp7) nounwind {
-BB:
-	br i1 true, label %BB2, label %BB1
-
-BB1:		; preds = %BB
-	br label %BB2
-
-BB2:		; preds = %BB1, %BB
-	%tmp3 = phi i1 [ true, %BB ], [ false, %BB1 ]		; <i1> [#uses=1]
-	br label %BB9
-
-BB9:		; preds = %BB11, %BB2
-	%tmp10 = phi i32 [ 0, %BB2 ], [ %tmp12, %BB11 ]		; <i32> [#uses=1]
-	br i1 %tmp5, label %BB11, label %BB13
-
-BB11:		; preds = %BB13, %BB9
-	%tmp12 = phi i32 [ 0, %BB13 ], [ %tmp10, %BB9 ]		; <i32> [#uses=2]
-	br i1 %tmp3, label %BB9, label %BB20
-
-BB13:		; preds = %BB13, %BB9
-	%tmp14 = phi i32 [ 0, %BB9 ], [ %tmp14, %BB13 ]		; <i32> [#uses=1]
-	br i1 %tmp7, label %BB13, label %BB11
-
-BB20:		; preds = %BB11
-	ret i32 %tmp12
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-01-19-UnconditionalTrappingConstantExpr.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-01-19-UnconditionalTrappingConstantExpr.ll
deleted file mode 100644
index e65bafa..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-01-19-UnconditionalTrappingConstantExpr.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep {br i1 } | count 4
-; PR3354
-; Do not merge bb1 into the entry block, it might trap.
-
- at G = extern_weak global i32
-
-define i32 @test(i32 %tmp21, i32 %tmp24) {
-	%tmp25 = icmp sle i32 %tmp21, %tmp24		
-	br i1 %tmp25, label %bb2, label %bb1	
-					
-bb1:		; preds = %bb	
-	%tmp26 = icmp sgt i32 sdiv (i32 -32768, i32 ptrtoint (i32* @G to i32)), 0
-	br i1 %tmp26, label %bb6, label %bb2		
-bb2:
-	ret i32 42
-
-bb6:
-	unwind
-}
-
-define i32 @test2(i32 %tmp21, i32 %tmp24, i1 %tmp34) {
-	br i1 %tmp34, label %bb5, label %bb6
-
-bb5:		; preds = %bb4
-	br i1 icmp sgt (i32 sdiv (i32 32767, i32 ptrtoint (i32* @G to i32)), i32 0), label %bb6, label %bb7
-bb6:
-	ret i32 42
-bb7:
-	unwind
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-03-05-Speculative-Hoist-Dbg.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-03-05-Speculative-Hoist-Dbg.ll
deleted file mode 100644
index 9033976..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-03-05-Speculative-Hoist-Dbg.ll
+++ /dev/null
@@ -1,108 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep select
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-external global <{ i8 }>		; <<{ i8 }>*>:0 [#uses=0]
- at __dso_handle = external global i8*		; <i8**> [#uses=0]
- at _ZSt3cin = external global { i32 (...)**, i32, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, { i32 (...)**, \3 }*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }		; <{ i32 (...)**, i32, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, { i32 (...)**, \3 }*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=1]
- at _ZSt4cout = external global { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }		; <{ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=1]
-external constant [2 x i8]		; <[2 x i8]*>:1 [#uses=1]
- at llvm.global_ctors = external global [1 x { i32, void ()* }]		; <[1 x { i32, void ()* }]*> [#uses=0]
-
-define i32 @main(i32, i8**) {
-; <label>:2
-	%3 = alloca [4096 x i8], align 1		; <[4096 x i8]*> [#uses=1]
-	%4 = call { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }* @_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv({ { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* }* getelementptr ({ i32 (...)**, i32, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, { i32 (...)**, \3 }*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZSt3cin, i32 0, i32 2))		; <{ i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*> [#uses=1]
-	%5 = getelementptr [4096 x i8]* %3, i32 0, i32 0		; <i8*> [#uses=1]
-	%6 = call { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }* @_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci({ i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }* %4, i8* %5, i32 4096)		; <{ i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*> [#uses=0]
-	%7 = call { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }* @_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv({ { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* }* getelementptr ({ i32 (...)**, i32, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, { i32 (...)**, \3 }*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZSt3cin, i32 0, i32 2))		; <{ i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*> [#uses=1]
-	br label %25
-
-; <label>:8		; preds = %25
-	%9 = trunc i32 %26 to i8		; <i8> [#uses=4]
-	%10 = add i32 %.02, 1		; <i32> [#uses=3]
-	%11 = icmp eq i8 %9, 10		; <i1> [#uses=1]
-	br i1 %11, label %12, label %14
-
-; <label>:12		; preds = %8
-	%13 = add i32 %.1, 1		; <i32> [#uses=1]
-	br label %14
-
-; <label>:14		; preds = %12, %8
-	%.0 = phi i32 [ %.1, %8 ], [ %13, %12 ]		; <i32> [#uses=3]
-	%15 = icmp eq i8 %9, 32		; <i1> [#uses=1]
-	br i1 %15, label %20, label %16
-
-; <label>:16		; preds = %14
-	%17 = icmp eq i8 %9, 10		; <i1> [#uses=1]
-	br i1 %17, label %20, label %18
-
-; <label>:18		; preds = %16
-	%19 = icmp eq i8 %9, 9		; <i1> [#uses=1]
-	br i1 %19, label %20, label %21
-
-; <label>:20		; preds = %18, %16, %14
-	br label %25
-
-; <label>:21		; preds = %18
-	%22 = icmp eq i32 %.03, 0		; <i1> [#uses=1]
-	br i1 %22, label %23, label %25
-
-; <label>:23		; preds = %21
-        call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%24 = add i32 %.01, 1		; <i32> [#uses=1]
-	br label %25
-
-; <label>:25		; preds = %23, %21, %20, %2
-	%.03 = phi i32 [ 0, %2 ], [ %.03, %21 ], [ 1, %23 ], [ 0, %20 ]		; <i32> [#uses=2]
-	%.02 = phi i32 [ 0, %2 ], [ %10, %21 ], [ %10, %23 ], [ %10, %20 ]		; <i32> [#uses=2]
-	%.01 = phi i32 [ 0, %2 ], [ %.01, %21 ], [ %24, %23 ], [ %.01, %20 ]		; <i32> [#uses=4]
-	%.1 = phi i32 [ 0, %2 ], [ %.0, %21 ], [ %.0, %23 ], [ %.0, %20 ]		; <i32> [#uses=3]
-	%26 = call i32 @_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv({ i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }* %7)		; <i32> [#uses=2]
-	%27 = icmp eq i32 %26, -1		; <i1> [#uses=1]
-	br i1 %27, label %28, label %8
-
-; <label>:28		; preds = %25
-	%29 = call { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZNSolsEi({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZSt4cout, i32 %.1)		; <{ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=1]
-	%30 = call { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* %29, i8* getelementptr ([2 x i8]* @1, i32 0, i32 0))		; <{ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=1]
-	%31 = call { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZNSolsEi({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* %30, i32 %.01)		; <{ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=1]
-	%32 = call { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* %31, i8* getelementptr ([2 x i8]* @1, i32 0, i32 0))		; <{ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=1]
-	%33 = call { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZNSolsEi({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* %32, i32 %.02)		; <{ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=1]
-	%34 = call { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZNSolsEPFRSoS_E({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* %33, { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* ({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)		; <{ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*> [#uses=0]
-	ret i32 0
-}
-
-declare void @""() section "__TEXT,__StaticInit,regular,pure_instructions"
-
-declare fastcc void @""() section "__TEXT,__StaticInit,regular,pure_instructions"
-
-declare void @_ZNSt8ios_base4InitC1Ev(<{ i8 }>*)
-
-declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) nounwind
-
-declare void @""(i8*)
-
-declare void @_ZNSt8ios_base4InitD1Ev(<{ i8 }>*)
-
-declare { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }* @_ZNKSt9basic_iosIcSt11char_traitsIcEE5rdbufEv({ { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* }*)
-
-declare { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }* @_ZNSt15basic_streambufIcSt11char_traitsIcEE9pubsetbufEPci({ i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, i8*, i32)
-
-declare i32 @_ZNSt15basic_streambufIcSt11char_traitsIcEE6sbumpcEv({ i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*)
-
-declare { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZNSolsEi({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*, i32)
-
-declare { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*, i8*)
-
-declare { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZNSolsEPFRSoS_E({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*, { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* ({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*)*)
-
-declare { i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_({ i32 (...)**, { { i32 (...)**, i32, i32, i32, i32, i32, { \2, void (i32, \6*, i32)*, i32, i32 }*, { i8*, i32 }, [8 x { i8*, i32 }], i32, { i8*, i32 }*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }, \3*, i8, i8, { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, { { i32, { i32 (...)**, i32 }**, i32, { i32 (...)**, i32 }**, i8** }* } }*, { { i32 (...)**, i32 }, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }*, { { i32 (...)**, i32 } }*, { { i32 (...)**, i32 } }* } }*)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
deleted file mode 100644
index dc0cbbe..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep select
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin10.0"
-module asm ".globl _foo"
-module asm "_foo: ret"
-module asm ".globl _i"
-module asm ".set _i, 0"
- at i = extern_weak global i32		; <i32*> [#uses=2]
- at j = common global i32 0		; <i32*> [#uses=1]
- at ed = common global double 0.000000e+00, align 8		; <double*> [#uses=1]
-
-define i32 @main() nounwind ssp {
-entry:
-	br label %bb4
-
-bb:		; preds = %bb4
-	br i1 icmp ne (i32* @i, i32* null), label %bb1, label %bb2
-
-bb1:		; preds = %bb
-	%0 = load i32* @i, align 4		; <i32> [#uses=1]
-	br label %bb3
-
-bb2:		; preds = %bb
-	br label %bb3
-
-bb3:		; preds = %bb2, %bb1
-	%storemerge = phi i32 [ %0, %bb1 ], [ 0, %bb2 ]		; <i32> [#uses=2]
-	store i32 %storemerge, i32* @j
-	%1 = sitofp i32 %storemerge to double		; <double> [#uses=1]
-	%2 = call double @sin(double %1) nounwind readonly		; <double> [#uses=1]
-	%3 = fadd double %2, %d.0		; <double> [#uses=1]
-	%4 = add i32 %l.0, 1		; <i32> [#uses=1]
-	br label %bb4
-
-bb4:		; preds = %bb3, %entry
-	%d.0 = phi double [ undef, %entry ], [ %3, %bb3 ]		; <double> [#uses=2]
-	%l.0 = phi i32 [ 0, %entry ], [ %4, %bb3 ]		; <i32> [#uses=2]
-	%5 = icmp sgt i32 %l.0, 99		; <i1> [#uses=1]
-	br i1 %5, label %bb5, label %bb
-
-bb5:		; preds = %bb4
-	store double %d.0, double* @ed, align 8
-	ret i32 0
-}
-
-declare double @sin(double) nounwind readonly
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-06-15-InvokeCrash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-06-15-InvokeCrash.ll
deleted file mode 100644
index d0e7ed7..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/2009-06-15-InvokeCrash.ll
+++ /dev/null
@@ -1,557 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-; END.
-	%struct..4._102 = type { %struct.QVectorData* }
-	%struct..5._125 = type { %struct.QMapData* }
-	%struct.QAbstractTextDocumentLayout = type { %struct.QObject }
-	%struct.QBasicAtomic = type { i32 }
-	%struct.QFont = type { %struct.QFontPrivate*, i32 }
-	%struct.QFontMetrics = type { %struct.QFontPrivate* }
-	%struct.QFontPrivate = type opaque
-	%"struct.QFragmentMap<QTextBlockData>" = type { %struct.QFragmentMapData }
-	%struct.QFragmentMapData = type { %"struct.QFragmentMapData::._154", i32 }
-	%"struct.QFragmentMapData::._154" = type { %"struct.QFragmentMapData::Header"* }
-	%"struct.QFragmentMapData::Header" = type { i32, i32, i32, i32, i32, i32, i32, i32 }
-	%"struct.QHash<uint,QHashDummyValue>" = type { %"struct.QHash<uint,QHashDummyValue>::._152" }
-	%"struct.QHash<uint,QHashDummyValue>::._152" = type { %struct.QHashData* }
-	%struct.QHashData = type { %"struct.QHashData::Node"*, %"struct.QHashData::Node"**, %struct.QBasicAtomic, i32, i32, i16, i16, i32, i8 }
-	%"struct.QHashData::Node" = type { %"struct.QHashData::Node"*, i32 }
-	%"struct.QList<QObject*>::._92" = type { %struct.QListData }
-	%"struct.QList<QPointer<QObject> >" = type { %"struct.QList<QObject*>::._92" }
-	%struct.QListData = type { %"struct.QListData::Data"* }
-	%"struct.QListData::Data" = type { %struct.QBasicAtomic, i32, i32, i32, i8, [1 x i8*] }
-	%"struct.QMap<QUrl,QVariant>" = type { %struct..5._125 }
-	%struct.QMapData = type { %"struct.QMapData::Node"*, [12 x %"struct.QMapData::Node"*], %struct.QBasicAtomic, i32, i32, i32, i8 }
-	%"struct.QMapData::Node" = type { %"struct.QMapData::Node"*, [1 x %"struct.QMapData::Node"*] }
-	%struct.QObject = type { i32 (...)**, %struct.QObjectData* }
-	%struct.QObjectData = type { i32 (...)**, %struct.QObject*, %struct.QObject*, %"struct.QList<QPointer<QObject> >", i8, [3 x i8], i32, i32 }
-	%struct.QObjectPrivate = type { %struct.QObjectData, i32, %struct.QObject*, %"struct.QList<QPointer<QObject> >", %"struct.QVector<QAbstractTextDocumentLayout::Selection>", %struct.QString }
-	%struct.QPaintDevice = type { i32 (...)**, i16 }
-	%struct.QPainter = type { %struct.QPainterPrivate* }
-	%struct.QPainterPrivate = type opaque
-	%struct.QPointF = type { double, double }
-	%struct.QPrinter = type { %struct.QPaintDevice, %struct.QPrinterPrivate* }
-	%struct.QPrinterPrivate = type opaque
-	%struct.QRectF = type { double, double, double, double }
-	%"struct.QSet<uint>" = type { %"struct.QHash<uint,QHashDummyValue>" }
-	%"struct.QSharedDataPointer<QTextFormatPrivate>" = type { %struct.QTextFormatPrivate* }
-	%struct.QString = type { %"struct.QString::Data"* }
-	%"struct.QString::Data" = type { %struct.QBasicAtomic, i32, i32, i16*, i8, i8, [1 x i16] }
-	%struct.QTextBlockFormat = type { %struct.QTextFormat }
-	%struct.QTextBlockGroup = type { %struct.QAbstractTextDocumentLayout }
-	%struct.QTextDocumentConfig = type { %struct.QString }
-	%struct.QTextDocumentPrivate = type { %struct.QObjectPrivate, %struct.QString, %"struct.QVector<QAbstractTextDocumentLayout::Selection>", i1, i32, i32, i1, i32, i32, i32, i32, i1, %struct.QTextFormatCollection, %struct.QTextBlockGroup*, %struct.QAbstractTextDocumentLayout*, %"struct.QFragmentMap<QTextBlockData>", %"struct.QFragmentMap<QTextBlockData>", i32, %"struct.QList<QPointer<QObject> >", %"struct.QList<QPointer<QObject> >", %"struct.QMap<QUrl,QVariant>", %"struct.QMap<QUrl,QVariant>", %"struct.QMap<QUrl,QVariant>", %struct.QTextDocumentConfig, i1, i1, %struct.QPointF }
-	%struct.QTextFormat = type { %"struct.QSharedDataPointer<QTextFormatPrivate>", i32 }
-	%struct.QTextFormatCollection = type { %"struct.QVector<QAbstractTextDocumentLayout::Selection>", %"struct.QVector<QAbstractTextDocumentLayout::Selection>", %"struct.QSet<uint>", %struct.QFont }
-	%struct.QTextFormatPrivate = type opaque
-	%"struct.QVector<QAbstractTextDocumentLayout::Selection>" = type { %struct..4._102 }
-	%struct.QVectorData = type { %struct.QBasicAtomic, i32, i32, i8 }
-
-define void @_ZNK13QTextDocument5printEP8QPrinter(%struct.QAbstractTextDocumentLayout* %this, %struct.QPrinter* %printer) {
-entry:
-	%tmp = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=2]
-	%tmp.upgrd.1 = alloca %struct.QRectF, align 16		; <%struct.QRectF*> [#uses=5]
-	%tmp2 = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=3]
-	%tmp.upgrd.2 = alloca %struct.QFontMetrics, align 16		; <%struct.QFontMetrics*> [#uses=4]
-	%tmp.upgrd.3 = alloca %struct.QFont, align 16		; <%struct.QFont*> [#uses=4]
-	%tmp3 = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=2]
-	%p = alloca %struct.QPainter, align 16		; <%struct.QPainter*> [#uses=14]
-	%body = alloca %struct.QRectF, align 16		; <%struct.QRectF*> [#uses=9]
-        %foo = alloca double, align 8
-        %bar = alloca double, align 8
-	%pageNumberPos = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=4]
-	%scaledPageSize = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=6]
-	%printerPageSize = alloca %struct.QPointF, align 16		; <%struct.QPointF*> [#uses=3]
-	%fmt = alloca %struct.QTextBlockFormat, align 16		; <%struct.QTextBlockFormat*> [#uses=5]
-	%font = alloca %struct.QFont, align 16		; <%struct.QFont*> [#uses=5]
-	%tmp.upgrd.4 = call %struct.QTextDocumentPrivate* @_ZNK13QTextDocument6d_funcEv( %struct.QAbstractTextDocumentLayout* %this )		; <%struct.QTextDocumentPrivate*> [#uses=5]
-	%tmp.upgrd.5 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	call void @_ZN8QPainterC1EP12QPaintDevice( %struct.QPainter* %p, %struct.QPaintDevice* %tmp.upgrd.5 )
-	%tmp.upgrd.6 = invoke i1 @_ZNK8QPainter8isActiveEv( %struct.QPainter* %p )
-			to label %invcont unwind label %cleanup329		; <i1> [#uses=1]
-invcont:		; preds = %entry
-	br i1 %tmp.upgrd.6, label %cond_next, label %cleanup328
-cond_next:		; preds = %invcont
-	%tmp8 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv( %struct.QAbstractTextDocumentLayout* %this )
-			to label %invcont7 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=0]
-invcont7:		; preds = %cond_next
-	%tmp10 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26		; <%struct.QPointF*> [#uses=1]
-	call void @_ZN7QPointFC1Edd( %struct.QPointF* %tmp, double 0.000000e+00, double 0.000000e+00 )
-	call void @_ZN6QRectFC1ERK7QPointFRK6QSizeF( %struct.QRectF* %body, %struct.QPointF* %tmp, %struct.QPointF* %tmp10 )
-	call void @_ZN7QPointFC1Ev( %struct.QPointF* %pageNumberPos )
-	%tmp12 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26		; <%struct.QPointF*> [#uses=1]
-	%tmp13 = call i1 @_ZNK6QSizeF7isValidEv( %struct.QPointF* %tmp12 )		; <i1> [#uses=1]
-	br i1 %tmp13, label %cond_next15, label %bb
-cond_next15:		; preds = %invcont7
-	%tmp17 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26		; <%struct.QPointF*> [#uses=1]
-	%tmp.upgrd.7 = call double @_ZNK6QSizeF6heightEv( %struct.QPointF* %tmp17 )		; <double> [#uses=1]
-	%tmp18 = fcmp oeq double %tmp.upgrd.7, 0x41DFFFFFFFC00000		; <i1> [#uses=1]
-	br i1 %tmp18, label %bb, label %cond_next20
-cond_next20:		; preds = %cond_next15
-	br label %bb21
-bb:		; preds = %cond_next15, %invcont7
-	br label %bb21
-bb21:		; preds = %bb, %cond_next20
-	%iftmp.406.0 = phi i1 [ false, %bb ], [ true, %cond_next20 ]		; <i1> [#uses=1]
-	br i1 %iftmp.406.0, label %cond_true24, label %cond_false
-cond_true24:		; preds = %bb21
-	%tmp.upgrd.8 = invoke i32 @_Z13qt_defaultDpiv( )
-			to label %invcont25 unwind label %cleanup329		; <i32> [#uses=1]
-invcont25:		; preds = %cond_true24
-	%tmp26 = sitofp i32 %tmp.upgrd.8 to double		; <double> [#uses=2]
-	%tmp30 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv( %struct.QAbstractTextDocumentLayout* %this )
-			to label %invcont29 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=1]
-invcont29:		; preds = %invcont25
-	%tmp32 = invoke %struct.QPaintDevice* @_ZNK27QAbstractTextDocumentLayout11paintDeviceEv( %struct.QAbstractTextDocumentLayout* %tmp30 )
-			to label %invcont31 unwind label %cleanup329		; <%struct.QPaintDevice*> [#uses=3]
-invcont31:		; preds = %invcont29
-	%tmp34 = icmp eq %struct.QPaintDevice* %tmp32, null		; <i1> [#uses=1]
-	br i1 %tmp34, label %cond_next42, label %cond_true35
-cond_true35:		; preds = %invcont31
-	%tmp38 = invoke i32 @_ZNK12QPaintDevice11logicalDpiXEv( %struct.QPaintDevice* %tmp32 )
-			to label %invcont37 unwind label %cleanup329		; <i32> [#uses=1]
-invcont37:		; preds = %cond_true35
-	%tmp38.upgrd.9 = sitofp i32 %tmp38 to double		; <double> [#uses=1]
-	%tmp41 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp32 )
-			to label %invcont40 unwind label %cleanup329		; <i32> [#uses=1]
-invcont40:		; preds = %invcont37
-	%tmp41.upgrd.10 = sitofp i32 %tmp41 to double		; <double> [#uses=1]
-	br label %cond_next42
-cond_next42:		; preds = %invcont40, %invcont31
-	%sourceDpiY.2 = phi double [ %tmp41.upgrd.10, %invcont40 ], [ %tmp26, %invcont31 ]		; <double> [#uses=1]
-	%sourceDpiX.2 = phi double [ %tmp38.upgrd.9, %invcont40 ], [ %tmp26, %invcont31 ]		; <double> [#uses=1]
-	%tmp44 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp46 = invoke i32 @_ZNK12QPaintDevice11logicalDpiXEv( %struct.QPaintDevice* %tmp44 )
-			to label %invcont45 unwind label %cleanup329		; <i32> [#uses=1]
-invcont45:		; preds = %cond_next42
-	%tmp46.upgrd.11 = sitofp i32 %tmp46 to double		; <double> [#uses=1]
-	%tmp48 = fdiv double %tmp46.upgrd.11, %sourceDpiX.2		; <double> [#uses=2]
-	%tmp50 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp52 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp50 )
-			to label %invcont51 unwind label %cleanup329		; <i32> [#uses=1]
-invcont51:		; preds = %invcont45
-	%tmp52.upgrd.12 = sitofp i32 %tmp52 to double		; <double> [#uses=1]
-	%tmp54 = fdiv double %tmp52.upgrd.12, %sourceDpiY.2		; <double> [#uses=2]
-	invoke void @_ZN8QPainter5scaleEdd( %struct.QPainter* %p, double %tmp48, double %tmp54 )
-			to label %invcont57 unwind label %cleanup329
-invcont57:		; preds = %invcont51
-	%tmp.upgrd.13 = getelementptr %struct.QPointF* %scaledPageSize, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp60 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26, i32 0		; <double*> [#uses=1]
-	%tmp61 = load double* %tmp60		; <double> [#uses=1]
-	store double %tmp61, double* %tmp.upgrd.13
-	%tmp62 = getelementptr %struct.QPointF* %scaledPageSize, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp63 = getelementptr %struct.QTextDocumentPrivate* %tmp.upgrd.4, i32 0, i32 26, i32 1		; <double*> [#uses=1]
-	%tmp64 = load double* %tmp63		; <double> [#uses=1]
-	store double %tmp64, double* %tmp62
-	%tmp65 = call double* @_ZN6QSizeF6rwidthEv( %struct.QPointF* %scaledPageSize )		; <double*> [#uses=2]
-	%tmp67 = load double* %tmp65		; <double> [#uses=1]
-	%tmp69 = mul double %tmp67, %tmp48		; <double> [#uses=1]
-	store double %tmp69, double* %tmp65
-	%tmp71 = call double* @_ZN6QSizeF7rheightEv( %struct.QPointF* %scaledPageSize )		; <double*> [#uses=2]
-	%tmp73 = load double* %tmp71		; <double> [#uses=1]
-	%tmp75 = mul double %tmp73, %tmp54		; <double> [#uses=1]
-	store double %tmp75, double* %tmp71
-	%tmp78 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp80 = invoke i32 @_ZNK12QPaintDevice6heightEv( %struct.QPaintDevice* %tmp78 )
-			to label %invcont79 unwind label %cleanup329		; <i32> [#uses=1]
-invcont79:		; preds = %invcont57
-	%tmp82 = getelementptr %struct.QPrinter* %printer, i32 0, i32 0		; <%struct.QPaintDevice*> [#uses=1]
-	%tmp84 = invoke i32 @_ZNK12QPaintDevice5widthEv( %struct.QPaintDevice* %tmp82 )
-			to label %invcont83 unwind label %cleanup329		; <i32> [#uses=1]
-invcont83:		; preds = %invcont79
-	%tmp80.upgrd.14 = sitofp i32 %tmp80 to double		; <double> [#uses=1]
-	%tmp84.upgrd.15 = sitofp i32 %tmp84 to double		; <double> [#uses=1]
-	call void @_ZN6QSizeFC1Edd( %struct.QPointF* %printerPageSize, double %tmp84.upgrd.15, double %tmp80.upgrd.14 )
-	%tmp85 = call double @_ZNK6QSizeF6heightEv( %struct.QPointF* %printerPageSize )		; <double> [#uses=1]
-	%tmp86 = call double @_ZNK6QSizeF6heightEv( %struct.QPointF* %scaledPageSize )		; <double> [#uses=1]
-	%tmp87 = fdiv double %tmp85, %tmp86		; <double> [#uses=1]
-	%tmp88 = call double @_ZNK6QSizeF5widthEv( %struct.QPointF* %printerPageSize )		; <double> [#uses=1]
-	%tmp89 = call double @_ZNK6QSizeF5widthEv( %struct.QPointF* %scaledPageSize )		; <double> [#uses=1]
-	%tmp90 = fdiv double %tmp88, %tmp89		; <double> [#uses=1]
-	invoke void @_ZN8QPainter5scaleEdd( %struct.QPainter* %p, double %tmp90, double %tmp87 )
-			to label %cond_next194 unwind label %cleanup329
-cond_false:		; preds = %bb21
-	%tmp.upgrd.16 = getelementptr %struct.QAbstractTextDocumentLayout* %this, i32 0, i32 0		; <%struct.QObject*> [#uses=1]
-	%tmp95 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument5cloneEP7QObject( %struct.QAbstractTextDocumentLayout* %this, %struct.QObject* %tmp.upgrd.16 )
-			to label %invcont94 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=9]
-invcont94:		; preds = %cond_false
-	%tmp99 = invoke %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv( %struct.QAbstractTextDocumentLayout* %tmp95 )
-			to label %invcont98 unwind label %cleanup329		; <%struct.QAbstractTextDocumentLayout*> [#uses=1]
-invcont98:		; preds = %invcont94
-	%tmp101 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont100 unwind label %cleanup329		; <%struct.QPaintDevice*> [#uses=1]
-invcont100:		; preds = %invcont98
-	invoke void @_ZN27QAbstractTextDocumentLayout14setPaintDeviceEP12QPaintDevice( %struct.QAbstractTextDocumentLayout* %tmp99, %struct.QPaintDevice* %tmp101 )
-			to label %invcont103 unwind label %cleanup329
-invcont103:		; preds = %invcont100
-	%tmp105 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont104 unwind label %cleanup329		; <%struct.QPaintDevice*> [#uses=1]
-invcont104:		; preds = %invcont103
-	%tmp107 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp105 )
-			to label %invcont106 unwind label %cleanup329		; <i32> [#uses=1]
-invcont106:		; preds = %invcont104
-	%tmp108 = sitofp i32 %tmp107 to double		; <double> [#uses=1]
-	%tmp109 = mul double %tmp108, 0x3FE93264C993264C		; <double> [#uses=1]
-	%tmp109.upgrd.17 = fptosi double %tmp109 to i32		; <i32> [#uses=3]
-	%tmp.upgrd.18 = call %struct.QTextBlockGroup* @_ZNK13QTextDocument9rootFrameEv( %struct.QAbstractTextDocumentLayout* %tmp95 )		; <%struct.QTextBlockGroup*> [#uses=1]
-	invoke void @_ZNK10QTextFrame11frameFormatEv( %struct.QTextBlockFormat* sret  %fmt, %struct.QTextBlockGroup* %tmp.upgrd.18 )
-			to label %invcont111 unwind label %cleanup329
-invcont111:		; preds = %invcont106
-	%tmp112 = sitofp i32 %tmp109.upgrd.17 to double		; <double> [#uses=1]
-	invoke void @_ZN16QTextFrameFormat9setMarginEd( %struct.QTextBlockFormat* %fmt, double %tmp112 )
-			to label %invcont114 unwind label %cleanup192
-invcont114:		; preds = %invcont111
-	%tmp116 = call %struct.QTextBlockGroup* @_ZNK13QTextDocument9rootFrameEv( %struct.QAbstractTextDocumentLayout* %tmp95 )		; <%struct.QTextBlockGroup*> [#uses=1]
-	invoke void @_ZN10QTextFrame14setFrameFormatERK16QTextFrameFormat( %struct.QTextBlockGroup* %tmp116, %struct.QTextBlockFormat* %fmt )
-			to label %invcont117 unwind label %cleanup192
-invcont117:		; preds = %invcont114
-	%tmp119 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont118 unwind label %cleanup192		; <%struct.QPaintDevice*> [#uses=1]
-invcont118:		; preds = %invcont117
-	%tmp121 = invoke i32 @_ZNK12QPaintDevice6heightEv( %struct.QPaintDevice* %tmp119 )
-			to label %invcont120 unwind label %cleanup192		; <i32> [#uses=1]
-invcont120:		; preds = %invcont118
-	%tmp121.upgrd.19 = sitofp i32 %tmp121 to double		; <double> [#uses=1]
-	%tmp123 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont122 unwind label %cleanup192		; <%struct.QPaintDevice*> [#uses=1]
-invcont122:		; preds = %invcont120
-	%tmp125 = invoke i32 @_ZNK12QPaintDevice5widthEv( %struct.QPaintDevice* %tmp123 )
-			to label %invcont124 unwind label %cleanup192		; <i32> [#uses=1]
-invcont124:		; preds = %invcont122
-	%tmp125.upgrd.20 = sitofp i32 %tmp125 to double		; <double> [#uses=1]
-	call void @_ZN6QRectFC1Edddd( %struct.QRectF* %tmp.upgrd.1, double 0.000000e+00, double 0.000000e+00, double %tmp125.upgrd.20, double %tmp121.upgrd.19 )
-	%tmp126 = getelementptr %struct.QRectF* %body, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp127 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp128 = load double* %tmp127		; <double> [#uses=1]
-	store double %tmp128, double* %tmp126
-	%tmp129 = getelementptr %struct.QRectF* %body, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp130 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp131 = load double* %tmp130		; <double> [#uses=1]
-	store double %tmp131, double* %tmp129
-	%tmp132 = getelementptr %struct.QRectF* %body, i32 0, i32 2		; <double*> [#uses=1]
-	%tmp133 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 2		; <double*> [#uses=1]
-	%tmp134 = load double* %tmp133		; <double> [#uses=1]
-	store double %tmp134, double* %tmp132
-	%tmp135 = getelementptr %struct.QRectF* %body, i32 0, i32 3		; <double*> [#uses=1]
-	%tmp136 = getelementptr %struct.QRectF* %tmp.upgrd.1, i32 0, i32 3		; <double*> [#uses=1]
-	%tmp137 = load double* %tmp136		; <double> [#uses=1]
-	store double %tmp137, double* %tmp135
-	%tmp138 = call double @_ZNK6QRectF6heightEv( %struct.QRectF* %body )		; <double> [#uses=1]
-	%tmp139 = sitofp i32 %tmp109.upgrd.17 to double		; <double> [#uses=1]
-	%tmp140 = sub double %tmp138, %tmp139		; <double> [#uses=1]
-	%tmp142 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont141 unwind label %cleanup192		; <%struct.QPaintDevice*> [#uses=1]
-invcont141:		; preds = %invcont124
-	invoke void @_ZNK13QTextDocument11defaultFontEv( %struct.QFont* sret  %tmp.upgrd.3, %struct.QAbstractTextDocumentLayout* %tmp95 )
-			to label %invcont144 unwind label %cleanup192
-invcont144:		; preds = %invcont141
-	invoke void @_ZN12QFontMetricsC1ERK5QFontP12QPaintDevice( %struct.QFontMetrics* %tmp.upgrd.2, %struct.QFont* %tmp.upgrd.3, %struct.QPaintDevice* %tmp142 )
-			to label %invcont146 unwind label %cleanup173
-invcont146:		; preds = %invcont144
-	%tmp149 = invoke i32 @_ZNK12QFontMetrics6ascentEv( %struct.QFontMetrics* %tmp.upgrd.2 )
-			to label %invcont148 unwind label %cleanup168		; <i32> [#uses=1]
-invcont148:		; preds = %invcont146
-	%tmp149.upgrd.21 = sitofp i32 %tmp149 to double		; <double> [#uses=1]
-	%tmp150 = add double %tmp140, %tmp149.upgrd.21		; <double> [#uses=1]
-	%tmp152 = invoke %struct.QPaintDevice* @_ZNK8QPainter6deviceEv( %struct.QPainter* %p )
-			to label %invcont151 unwind label %cleanup168		; <%struct.QPaintDevice*> [#uses=1]
-invcont151:		; preds = %invcont148
-	%tmp154 = invoke i32 @_ZNK12QPaintDevice11logicalDpiYEv( %struct.QPaintDevice* %tmp152 )
-			to label %invcont153 unwind label %cleanup168		; <i32> [#uses=1]
-invcont153:		; preds = %invcont151
-	%tmp155 = mul i32 %tmp154, 5		; <i32> [#uses=1]
-	%tmp156 = sdiv i32 %tmp155, 72		; <i32> [#uses=1]
-	%tmp156.upgrd.22 = sitofp i32 %tmp156 to double		; <double> [#uses=1]
-	%tmp157 = add double %tmp150, %tmp156.upgrd.22		; <double> [#uses=1]
-	%tmp158 = call double @_ZNK6QRectF5widthEv( %struct.QRectF* %body )		; <double> [#uses=1]
-	%tmp159 = sitofp i32 %tmp109.upgrd.17 to double		; <double> [#uses=1]
-	%tmp160 = sub double %tmp158, %tmp159		; <double> [#uses=1]
-	call void @_ZN7QPointFC1Edd( %struct.QPointF* %tmp2, double %tmp160, double %tmp157 )
-	%tmp161 = getelementptr %struct.QPointF* %pageNumberPos, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp162 = getelementptr %struct.QPointF* %tmp2, i32 0, i32 0		; <double*> [#uses=1]
-	%tmp163 = load double* %tmp162		; <double> [#uses=1]
-	store double %tmp163, double* %tmp161
-	%tmp164 = getelementptr %struct.QPointF* %pageNumberPos, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp165 = getelementptr %struct.QPointF* %tmp2, i32 0, i32 1		; <double*> [#uses=1]
-	%tmp166 = load double* %tmp165		; <double> [#uses=1]
-	store double %tmp166, double* %tmp164
-	invoke void @_ZN12QFontMetricsD1Ev( %struct.QFontMetrics* %tmp.upgrd.2 )
-			to label %cleanup171 unwind label %cleanup173
-cleanup168:		; preds = %invcont151, %invcont148, %invcont146
-	invoke void @_ZN12QFontMetricsD1Ev( %struct.QFontMetrics* %tmp.upgrd.2 )
-			to label %cleanup173 unwind label %cleanup173
-cleanup171:		; preds = %invcont153
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %tmp.upgrd.3 )
-			to label %finally170 unwind label %cleanup192
-cleanup173:		; preds = %cleanup168, %cleanup168, %invcont153, %invcont144
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %tmp.upgrd.3 )
-			to label %cleanup192 unwind label %cleanup192
-finally170:		; preds = %cleanup171
-	invoke void @_ZNK13QTextDocument11defaultFontEv( %struct.QFont* sret  %font, %struct.QAbstractTextDocumentLayout* %tmp95 )
-			to label %invcont177 unwind label %cleanup192
-invcont177:		; preds = %finally170
-	invoke void @_ZN5QFont12setPointSizeEi( %struct.QFont* %font, i32 10 )
-			to label %invcont179 unwind label %cleanup187
-invcont179:		; preds = %invcont177
-	invoke void @_ZN13QTextDocument14setDefaultFontERK5QFont( %struct.QAbstractTextDocumentLayout* %tmp95, %struct.QFont* %font )
-			to label %invcont181 unwind label %cleanup187
-invcont181:		; preds = %invcont179
-	call void @_ZNK6QRectF4sizeEv( %struct.QPointF* sret  %tmp3, %struct.QRectF* %body )
-	invoke void @_ZN13QTextDocument11setPageSizeERK6QSizeF( %struct.QAbstractTextDocumentLayout* %tmp95, %struct.QPointF* %tmp3 )
-			to label %cleanup185 unwind label %cleanup187
-cleanup185:		; preds = %invcont181
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %font )
-			to label %cleanup190 unwind label %cleanup192
-cleanup187:		; preds = %invcont181, %invcont179, %invcont177
-	invoke void @_ZN5QFontD1Ev( %struct.QFont* %font )
-			to label %cleanup192 unwind label %cleanup192
-cleanup190:		; preds = %cleanup185
-	invoke void @_ZN16QTextFrameFormatD1Ev( %struct.QTextBlockFormat* %fmt )
-			to label %cond_next194 unwind label %cleanup329
-cleanup192:		; preds = %cleanup187, %cleanup187, %cleanup185, %finally170, %cleanup173, %cleanup173, %cleanup171, %invcont141, %invcont124, %invcont122, %invcont120, %invcont118, %invcont117, %invcont114, %invcont111
-	invoke void @_ZN16QTextFrameFormatD1Ev( %struct.QTextBlockFormat* %fmt )
-			to label %cleanup329 unwind label %cleanup329
-cond_next194:		; preds = %cleanup190, %invcont83
-	%clonedDoc.1 = phi %struct.QAbstractTextDocumentLayout* [ null, %invcont83 ], [ %tmp95, %cleanup190 ]		; <%struct.QAbstractTextDocumentLayout*> [#uses=3]
-	%doc.1 = phi %struct.QAbstractTextDocumentLayout* [ %this, %invcont83 ], [ %tmp95, %cleanup190 ]		; <%struct.QAbstractTextDocumentLayout*> [#uses=2]
-	%tmp197 = invoke i1 @_ZNK8QPrinter13collateCopiesEv( %struct.QPrinter* %printer )
-			to label %invcont196 unwind label %cleanup329		; <i1> [#uses=1]
-invcont196:		; preds = %cond_next194
-	br i1 %tmp197, label %cond_true200, label %cond_false204
-cond_true200:		; preds = %invcont196
-	%tmp2000 = load double* %foo
-	store double %tmp2000, double* %bar
-	%tmp203 = invoke i32 @_ZNK8QPrinter9numCopiesEv( %struct.QPrinter* %printer )
-			to label %cond_next208 unwind label %cleanup329		; <i32> [#uses=1]
-cond_false204:		; preds = %invcont196
-	%tmp2001 = load double* %foo
-	store double %tmp2001, double* %bar
-	%tmp207 = invoke i32 @_ZNK8QPrinter9numCopiesEv( %struct.QPrinter* %printer )
-			to label %cond_next208 unwind label %cleanup329		; <i32> [#uses=1]
-cond_next208:		; preds = %invcont206, %invcont202
-	%pageCopies.0 = phi i32 [ %tmp203, %cond_true200 ], [ 1, %cond_false204 ]		; <i32> [#uses=2]
-	%docCopies.0 = phi i32 [ 1, %cond_true200 ], [ %tmp207, %cond_false204 ]		; <i32> [#uses=2]
-	%tmp211 = invoke i32 @_ZNK8QPrinter8fromPageEv( %struct.QPrinter* %printer )
-			to label %invcont210 unwind label %cleanup329		; <i32> [#uses=3]
-invcont210:		; preds = %cond_next208
-	%tmp214 = invoke i32 @_ZNK8QPrinter6toPageEv( %struct.QPrinter* %printer )
-			to label %invcont213 unwind label %cleanup329		; <i32> [#uses=3]
-invcont213:		; preds = %invcont210
-	%tmp216 = icmp eq i32 %tmp211, 0		; <i1> [#uses=1]
-	br i1 %tmp216, label %cond_true217, label %cond_next225
-cond_true217:		; preds = %invcont213
-	%tmp219 = icmp eq i32 %tmp214, 0		; <i1> [#uses=1]
-	br i1 %tmp219, label %cond_true220, label %cond_next225
-cond_true220:		; preds = %cond_true217
-	%tmp223 = invoke i32 @_ZNK13QTextDocument9pageCountEv( %struct.QAbstractTextDocumentLayout* %doc.1 )
-			to label %invcont222 unwind label %cleanup329		; <i32> [#uses=1]
-invcont222:		; preds = %cond_true220
-	br label %cond_next225
-cond_next225:		; preds = %invcont222, %cond_true217, %invcont213
-	%toPage.1 = phi i32 [ %tmp223, %invcont222 ], [ %tmp214, %cond_true217 ], [ %tmp214, %invcont213 ]		; <i32> [#uses=2]
-	%fromPage.1 = phi i32 [ 1, %invcont222 ], [ %tmp211, %cond_true217 ], [ %tmp211, %invcont213 ]		; <i32> [#uses=2]
-	%tmp.page = invoke i32 @_ZNK8QPrinter9pageOrderEv( %struct.QPrinter* %printer )
-			to label %invcont227 unwind label %cleanup329		; <i32> [#uses=1]
-invcont227:		; preds = %cond_next225
-	%tmp228 = icmp eq i32 %tmp.page, 1		; <i1> [#uses=1]
-	br i1 %tmp228, label %cond_true230, label %cond_next234
-cond_true230:		; preds = %invcont227
-	br label %cond_next234
-cond_next234:		; preds = %cond_true230, %invcont227
-	%ascending.1 = phi i1 [ false, %cond_true230 ], [ true, %invcont227 ]		; <i1> [#uses=1]
-	%toPage.2 = phi i32 [ %fromPage.1, %cond_true230 ], [ %toPage.1, %invcont227 ]		; <i32> [#uses=1]
-	%fromPage.2 = phi i32 [ %toPage.1, %cond_true230 ], [ %fromPage.1, %invcont227 ]		; <i32> [#uses=1]
-	br label %bb309
-bb237:		; preds = %cond_true313, %cond_next293
-	%iftmp.410.4 = phi i1 [ %iftmp.410.5, %cond_true313 ], [ %iftmp.410.1, %cond_next293 ]		; <i1> [#uses=1]
-	%page.4 = phi i32 [ %fromPage.2, %cond_true313 ], [ %page.3, %cond_next293 ]		; <i32> [#uses=4]
-	br label %bb273
-invcont240:		; preds = %cond_true277
-	%tmp242 = icmp eq i32 %tmp241, 2		; <i1> [#uses=1]
-	br i1 %tmp242, label %bb252, label %cond_next244
-cond_next244:		; preds = %invcont240
-	%tmp247 = invoke i32 @_ZNK8QPrinter12printerStateEv( %struct.QPrinter* %printer )
-			to label %invcont246 unwind label %cleanup329		; <i32> [#uses=1]
-invcont246:		; preds = %cond_next244
-	%tmp248 = icmp eq i32 %tmp247, 3		; <i1> [#uses=1]
-	br i1 %tmp248, label %bb252, label %bb253
-bb252:		; preds = %invcont246, %invcont240
-	br label %bb254
-bb253:		; preds = %invcont246
-	br label %bb254
-bb254:		; preds = %bb253, %bb252
-	%iftmp.410.0 = phi i1 [ true, %bb252 ], [ false, %bb253 ]		; <i1> [#uses=2]
-	br i1 %iftmp.410.0, label %UserCanceled, label %cond_next258
-cond_next258:		; preds = %bb254
-	invoke fastcc void @_Z9printPageiP8QPainterPK13QTextDocumentRK6QRectFRK7QPointF( i32 %page.4, %struct.QPainter* %p, %struct.QAbstractTextDocumentLayout* %doc.1, %struct.QRectF* %body, %struct.QPointF* %pageNumberPos )
-			to label %invcont261 unwind label %cleanup329
-invcont261:		; preds = %cond_next258
-	%tmp263 = add i32 %pageCopies.0, -1		; <i32> [#uses=1]
-	%tmp265 = icmp sgt i32 %tmp263, %j.4		; <i1> [#uses=1]
-	br i1 %tmp265, label %cond_true266, label %cond_next270
-cond_true266:		; preds = %invcont261
-	%tmp269 = invoke i1 @_ZN8QPrinter7newPageEv( %struct.QPrinter* %printer )
-			to label %cond_next270 unwind label %cleanup329		; <i1> [#uses=0]
-cond_next270:		; preds = %cond_true266, %invcont261
-	%tmp272 = add i32 %j.4, 1		; <i32> [#uses=1]
-	br label %bb273
-bb273:		; preds = %cond_next270, %bb237
-	%iftmp.410.1 = phi i1 [ %iftmp.410.4, %bb237 ], [ %iftmp.410.0, %cond_next270 ]		; <i1> [#uses=2]
-	%j.4 = phi i32 [ 0, %bb237 ], [ %tmp272, %cond_next270 ]		; <i32> [#uses=3]
-	%tmp276 = icmp slt i32 %j.4, %pageCopies.0		; <i1> [#uses=1]
-	br i1 %tmp276, label %cond_true277, label %bb280
-cond_true277:		; preds = %bb273
-	%tmp241 = invoke i32 @_ZNK8QPrinter12printerStateEv( %struct.QPrinter* %printer )
-			to label %invcont240 unwind label %cleanup329		; <i32> [#uses=1]
-bb280:		; preds = %bb273
-	%tmp283 = icmp eq i32 %page.4, %toPage.2		; <i1> [#uses=1]
-	br i1 %tmp283, label %bb297, label %cond_next285
-cond_next285:		; preds = %bb280
-	br i1 %ascending.1, label %cond_true287, label %cond_false290
-cond_true287:		; preds = %cond_next285
-	%tmp289 = add i32 %page.4, 1		; <i32> [#uses=1]
-	br label %cond_next293
-cond_false290:		; preds = %cond_next285
-	%tmp292 = add i32 %page.4, -1		; <i32> [#uses=1]
-	br label %cond_next293
-cond_next293:		; preds = %cond_false290, %cond_true287
-	%page.3 = phi i32 [ %tmp289, %cond_true287 ], [ %tmp292, %cond_false290 ]		; <i32> [#uses=1]
-	%tmp296 = invoke i1 @_ZN8QPrinter7newPageEv( %struct.QPrinter* %printer )
-			to label %bb237 unwind label %cleanup329		; <i1> [#uses=0]
-bb297:		; preds = %bb280
-	%tmp299 = add i32 %docCopies.0, -1		; <i32> [#uses=1]
-	%tmp301 = icmp sgt i32 %tmp299, %i.1		; <i1> [#uses=1]
-	br i1 %tmp301, label %cond_true302, label %cond_next306
-cond_true302:		; preds = %bb297
-	%tmp305 = invoke i1 @_ZN8QPrinter7newPageEv( %struct.QPrinter* %printer )
-			to label %cond_next306 unwind label %cleanup329		; <i1> [#uses=0]
-cond_next306:		; preds = %cond_true302, %bb297
-	%tmp308 = add i32 %i.1, 1		; <i32> [#uses=1]
-	br label %bb309
-bb309:		; preds = %cond_next306, %cond_next234
-	%iftmp.410.5 = phi i1 [ undef, %cond_next234 ], [ %iftmp.410.1, %cond_next306 ]		; <i1> [#uses=1]
-	%i.1 = phi i32 [ 0, %cond_next234 ], [ %tmp308, %cond_next306 ]		; <i32> [#uses=3]
-	%tmp312 = icmp slt i32 %i.1, %docCopies.0		; <i1> [#uses=1]
-	br i1 %tmp312, label %cond_true313, label %UserCanceled
-cond_true313:		; preds = %bb309
-	br label %bb237
-UserCanceled:		; preds = %bb309, %bb254
-	%tmp318 = icmp eq %struct.QAbstractTextDocumentLayout* %clonedDoc.1, null		; <i1> [#uses=1]
-	br i1 %tmp318, label %cleanup327, label %cond_true319
-cond_true319:		; preds = %UserCanceled
-	%tmp.upgrd.23 = getelementptr %struct.QAbstractTextDocumentLayout* %clonedDoc.1, i32 0, i32 0, i32 0		; <i32 (...)***> [#uses=1]
-	%tmp.upgrd.24 = load i32 (...)*** %tmp.upgrd.23		; <i32 (...)**> [#uses=1]
-	%tmp322 = getelementptr i32 (...)** %tmp.upgrd.24, i32 4		; <i32 (...)**> [#uses=1]
-	%tmp.upgrd.25 = load i32 (...)** %tmp322		; <i32 (...)*> [#uses=1]
-	%tmp.upgrd.26 = bitcast i32 (...)* %tmp.upgrd.25 to void (%struct.QAbstractTextDocumentLayout*)*		; <void (%struct.QAbstractTextDocumentLayout*)*> [#uses=1]
-	invoke void %tmp.upgrd.26( %struct.QAbstractTextDocumentLayout* %clonedDoc.1 )
-			to label %cleanup327 unwind label %cleanup329
-cleanup327:		; preds = %cond_true319, %UserCanceled
-	call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
-	ret void
-cleanup328:		; preds = %invcont
-	call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
-	ret void
-cleanup329:		; preds = %cond_true319, %cond_true302, %cond_next293, %cond_true277, %cond_true266, %cond_next258, %cond_next244, %cond_next225, %cond_true220, %invcont210, %cond_next208, %cond_false204, %cond_true200, %cond_next194, %cleanup192, %cleanup192, %cleanup190, %invcont106, %invcont104, %invcont103, %invcont100, %invcont98, %invcont94, %cond_false, %invcont83, %invcont79, %invcont57, %invcont51, %invcont45, %cond_next42, %invcont37, %cond_true35, %invcont29, %invcont25, %cond_true24, %cond_next, %entry
-	call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
-	unwind
-}
-
-declare void @_ZN6QSizeFC1Edd(%struct.QPointF*, double, double)
-
-declare i1 @_ZNK6QSizeF7isValidEv(%struct.QPointF*)
-
-declare double @_ZNK6QSizeF5widthEv(%struct.QPointF*)
-
-declare double @_ZNK6QSizeF6heightEv(%struct.QPointF*)
-
-declare double* @_ZN6QSizeF6rwidthEv(%struct.QPointF*)
-
-declare double* @_ZN6QSizeF7rheightEv(%struct.QPointF*)
-
-declare %struct.QTextDocumentPrivate* @_ZNK13QTextDocument6d_funcEv(%struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZN7QPointFC1Ev(%struct.QPointF*)
-
-declare void @_ZN7QPointFC1Edd(%struct.QPointF*, double, double)
-
-declare void @_ZN16QTextFrameFormat9setMarginEd(%struct.QTextBlockFormat*, double)
-
-declare void @_ZN6QRectFC1Edddd(%struct.QRectF*, double, double, double, double)
-
-declare void @_ZN6QRectFC1ERK7QPointFRK6QSizeF(%struct.QRectF*, %struct.QPointF*, %struct.QPointF*)
-
-declare double @_ZNK6QRectF5widthEv(%struct.QRectF*)
-
-declare double @_ZNK6QRectF6heightEv(%struct.QRectF*)
-
-declare void @_ZNK6QRectF4sizeEv(%struct.QPointF*, %struct.QRectF*)
-
-declare void @_ZN16QTextFrameFormatD1Ev(%struct.QTextBlockFormat*)
-
-declare void @_ZNK10QTextFrame11frameFormatEv(%struct.QTextBlockFormat*, %struct.QTextBlockGroup*)
-
-declare void @_ZN10QTextFrame14setFrameFormatERK16QTextFrameFormat(%struct.QTextBlockGroup*, %struct.QTextBlockFormat*)
-
-declare i32 @_ZNK12QPaintDevice5widthEv(%struct.QPaintDevice*)
-
-declare i32 @_ZNK12QPaintDevice6heightEv(%struct.QPaintDevice*)
-
-declare i32 @_ZNK12QPaintDevice11logicalDpiXEv(%struct.QPaintDevice*)
-
-declare i32 @_ZNK12QPaintDevice11logicalDpiYEv(%struct.QPaintDevice*)
-
-declare %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument5cloneEP7QObject(%struct.QAbstractTextDocumentLayout*, %struct.QObject*)
-
-declare void @_ZN5QFontD1Ev(%struct.QFont*)
-
-declare %struct.QAbstractTextDocumentLayout* @_ZNK13QTextDocument14documentLayoutEv(%struct.QAbstractTextDocumentLayout*)
-
-declare %struct.QTextBlockGroup* @_ZNK13QTextDocument9rootFrameEv(%struct.QAbstractTextDocumentLayout*)
-
-declare i32 @_ZNK13QTextDocument9pageCountEv(%struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZNK13QTextDocument11defaultFontEv(%struct.QFont*, %struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZN13QTextDocument14setDefaultFontERK5QFont(%struct.QAbstractTextDocumentLayout*, %struct.QFont*)
-
-declare void @_ZN13QTextDocument11setPageSizeERK6QSizeF(%struct.QAbstractTextDocumentLayout*, %struct.QPointF*)
-
-declare void @_Z9printPageiP8QPainterPK13QTextDocumentRK6QRectFRK7QPointF(i32, %struct.QPainter*, %struct.QAbstractTextDocumentLayout*, %struct.QRectF*, %struct.QPointF*)
-
-declare void @_ZN12QFontMetricsD1Ev(%struct.QFontMetrics*)
-
-declare void @_ZN8QPainterC1EP12QPaintDevice(%struct.QPainter*, %struct.QPaintDevice*)
-
-declare i1 @_ZNK8QPainter8isActiveEv(%struct.QPainter*)
-
-declare i32 @_Z13qt_defaultDpiv()
-
-declare %struct.QPaintDevice* @_ZNK27QAbstractTextDocumentLayout11paintDeviceEv(%struct.QAbstractTextDocumentLayout*)
-
-declare void @_ZN8QPainter5scaleEdd(%struct.QPainter*, double, double)
-
-declare %struct.QPaintDevice* @_ZNK8QPainter6deviceEv(%struct.QPainter*)
-
-declare void @_ZN27QAbstractTextDocumentLayout14setPaintDeviceEP12QPaintDevice(%struct.QAbstractTextDocumentLayout*, %struct.QPaintDevice*)
-
-declare void @_ZN12QFontMetricsC1ERK5QFontP12QPaintDevice(%struct.QFontMetrics*, %struct.QFont*, %struct.QPaintDevice*)
-
-declare i32 @_ZNK12QFontMetrics6ascentEv(%struct.QFontMetrics*)
-
-declare void @_ZN5QFont12setPointSizeEi(%struct.QFont*, i32)
-
-declare i1 @_ZNK8QPrinter13collateCopiesEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter9numCopiesEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter8fromPageEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter6toPageEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter9pageOrderEv(%struct.QPrinter*)
-
-declare i32 @_ZNK8QPrinter12printerStateEv(%struct.QPrinter*)
-
-declare i1 @_ZN8QPrinter7newPageEv(%struct.QPrinter*)
-
-declare void @_ZN8QPainterD1Ev(%struct.QPainter*)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll
deleted file mode 100644
index 1acdecd..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN: not grep {br label}
-
-define void @test(i1 %C) {
-        br i1 %C, label %A, label %B
-A:              ; preds = %0
-        call void @test( i1 %C )
-        br label %X
-B:              ; preds = %0
-        call void @test( i1 %C )
-        br label %X
-X:              ; preds = %B, %A
-        unwind
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll
deleted file mode 100644
index a4c8366..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep {icmp eq}
-
-; Check that simplifycfg deletes a dead 'seteq' instruction when it
-; folds a conditional branch into a switch instruction.
-
-declare void @foo()
-
-declare void @bar()
-
-define void @testcfg(i32 %V) {
-        %C = icmp eq i32 %V, 18         ; <i1> [#uses=1]
-        %D = icmp eq i32 %V, 180                ; <i1> [#uses=1]
-        %E = or i1 %C, %D               ; <i1> [#uses=1]
-        br i1 %E, label %L1, label %Sw
-Sw:             ; preds = %0
-        switch i32 %V, label %L1 [
-                 i32 15, label %L2
-                 i32 16, label %L2
-        ]
-L1:             ; preds = %Sw, %0
-        call void @foo( )
-        ret void
-L2:             ; preds = %Sw, %Sw
-        call void @bar( )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
deleted file mode 100644
index 55db788..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; Test merging of blocks with phi nodes.
-;
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep N:
-;
-
-define i32 @test(i1 %a) {
-Q:
-        br i1 %a, label %N, label %M
-N:              ; preds = %Q
-        br label %M
-M:              ; preds = %N, %Q
-        ; It's ok to merge N and M because the incoming values for W are the
-        ; same for both cases...
-        %W = phi i32 [ 2, %N ], [ 2, %Q ]               ; <i32> [#uses=1]
-        %R = add i32 %W, 1              ; <i32> [#uses=1]
-        ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/HoistCode.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/HoistCode.ll
deleted file mode 100644
index d8894a6..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/HoistCode.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-define void @foo(i1 %C, i32* %P) {
-        br i1 %C, label %T, label %F
-T:              ; preds = %0
-        store i32 7, i32* %P
-        ret void
-F:              ; preds = %0
-        store i32 7, i32* %P
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/InvokeEliminate.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/InvokeEliminate.ll
deleted file mode 100644
index 4f52f6b..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/InvokeEliminate.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; This testcase checks to see if the simplifycfg pass is converting invoke
-; instructions to call instructions if the handler just rethrows the exception.
-
-; If this test is successful, the function should be reduced to 'call; ret'
-
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not egrep {\\(invoke\\)|\\(br\\)}
-
-declare void @bar()
-
-define i32 @test() {
-        invoke void @bar( )
-                        to label %Ok unwind label %Rethrow
-Ok:             ; preds = %0
-        ret i32 0
-Rethrow:                ; preds = %0
-        unwind
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll
deleted file mode 100644
index f3844f7..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; Test merging of blocks that only have PHI nodes in them
-;
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep N:
-;
-
-define i32 @test(i1 %a, i1 %b) {
-; <label>:0
-        br i1 %a, label %M, label %O
-O:              ; preds = %0
-        br i1 %b, label %N, label %Q
-Q:              ; preds = %O
-        br label %N
-N:              ; preds = %Q, %O
-        ; This block should be foldable into M
-        %Wp = phi i32 [ 0, %O ], [ 1, %Q ]              ; <i32> [#uses=1]
-        br label %M
-M:              ; preds = %N, %0
-        %W = phi i32 [ %Wp, %N ], [ 2, %0 ]             ; <i32> [#uses=1]
-        %R = add i32 %W, 1              ; <i32> [#uses=1]
-        ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge2.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge2.ll
deleted file mode 100644
index 24b3d11..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge2.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; Test merging of blocks that only have PHI nodes in them.  This tests the case
-; where the mergedinto block doesn't have any PHI nodes, and is in fact 
-; dominated by the block-to-be-eliminated
-;
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep N:
-;
-
-declare i1 @foo()
-
-define i32 @test(i1 %a, i1 %b) {
-        %c = call i1 @foo()
-	br i1 %c, label %N, label %P
-P:
-        %d = call i1 @foo()
-	br i1 %d, label %N, label %Q
-Q:
-	br label %N
-N:
-	%W = phi i32 [0, %0], [1, %Q], [2, %P]
-	; This block should be foldable into M
-	br label %M
-
-M:
-	%R = add i32 %W, 1
-	ret i32 %R
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiEliminate.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiEliminate.ll
deleted file mode 100644
index 94697c9..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiEliminate.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; Test a bunch of cases where the cfg simplification code should
-; be able to fold PHI nodes into computation in common cases.  Folding the PHI
-; nodes away allows the branches to be eliminated, performing a simple form of
-; 'if conversion'.
-
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis > %t.xform
-; RUN:   not grep phi %t.xform 
-; RUN:   grep ret %t.xform
-
-declare void @use(i1)
-
-declare void @use.upgrd.1(i32)
-
-define void @test2(i1 %c, i1 %d, i32 %V, i32 %V2) {
-; <label>:0
-        br i1 %d, label %X, label %F
-X:              ; preds = %0
-        br i1 %c, label %T, label %F
-T:              ; preds = %X
-        br label %F
-F:              ; preds = %T, %X, %0
-        %B1 = phi i1 [ true, %0 ], [ false, %T ], [ false, %X ]         ; <i1> [#uses=1]
-        %I7 = phi i32 [ %V, %0 ], [ %V2, %T ], [ %V2, %X ]              ; <i32> [#uses=1]
-        call void @use( i1 %B1 )
-        call void @use.upgrd.1( i32 %I7 )
-        ret void
-}
-
-define void @test(i1 %c, i32 %V, i32 %V2) {
-; <label>:0
-        br i1 %c, label %T, label %F
-T:              ; preds = %0
-        br label %F
-F:              ; preds = %T, %0
-        %B1 = phi i1 [ true, %0 ], [ false, %T ]                ; <i1> [#uses=1]
-        %I6 = phi i32 [ %V, %0 ], [ 0, %T ]             ; <i32> [#uses=1]
-        call void @use( i1 %B1 )
-        call void @use.upgrd.1( i32 %I6 )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll
deleted file mode 100644
index ec1b91a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-define i32 @test(i1 %C, i32 %V1, i32 %V2) {
-entry:
-        br i1 %C, label %then, label %Cont
-then:           ; preds = %entry
-        %V3 = or i32 %V2, %V1           ; <i32> [#uses=1]
-        br label %Cont
-Cont:           ; preds = %then, %entry
-        %V4 = phi i32 [ %V1, %entry ], [ %V3, %then ]           ; <i32> [#uses=0]
-        call i32 @test( i1 false, i32 0, i32 0 )                ; <i32>:0 [#uses=0]
-        ret i32 %V1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiNoEliminate.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiNoEliminate.ll
deleted file mode 100644
index dfe122a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/PhiNoEliminate.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep select
-
-;; The PHI node in this example should not be turned into a select, as we are
-;; not able to ifcvt the entire block.  As such, converting to a select just 
-;; introduces inefficiency without saving copies.
-
-define i32 @bar(i1 %C) {
-entry:
-        br i1 %C, label %then, label %endif
-then:           ; preds = %entry
-        %tmp.3 = call i32 @qux( )               ; <i32> [#uses=0]
-        br label %endif
-endif:          ; preds = %then, %entry
-        %R = phi i32 [ 123, %entry ], [ 12312, %then ]          ; <i32> [#uses=1]
-        ;; stuff to disable tail duplication
-        call i32 @qux( )                ; <i32>:0 [#uses=0]
-        call i32 @qux( )                ; <i32>:1 [#uses=0]
-        call i32 @qux( )                ; <i32>:2 [#uses=0]
-        call i32 @qux( )                ; <i32>:3 [#uses=0]
-        call i32 @qux( )                ; <i32>:4 [#uses=0]
-        call i32 @qux( )                ; <i32>:5 [#uses=0]
-        call i32 @qux( )                ; <i32>:6 [#uses=0]
-        ret i32 %R
-}
-
-declare i32 @qux()
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll
deleted file mode 100644
index 2be9124..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg  | llvm-dis | grep select
-; RUN: llvm-as < %s | opt -simplifycfg  | llvm-dis | grep br | count 2
-
-define i32 @t2(i32 %a, i32 %b, i32 %c) nounwind  {
-entry:
-        %tmp1 = icmp eq i32 %b, 0
-        br i1 %tmp1, label %bb1, label %bb3
-
-bb1:            ; preds = %entry
-	%tmp2 = icmp sgt i32 %c, 1
-	br i1 %tmp2, label %bb2, label %bb3
-
-bb2:		; preds = bb1
-	%tmp3 = add i32 %a, 1
-	br label %bb3
-
-bb3:		; preds = %bb2, %entry
-	%tmp4 = phi i32 [ %b, %entry ], [ %a, %bb1 ], [ %tmp3, %bb2 ]
-        %tmp5 = sub i32 %tmp4, 1
-	ret i32 %tmp5
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll
deleted file mode 100644
index e6c05f3..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; The unify-function-exit-nodes pass often makes basic blocks that just contain
-; a PHI node and a return.  Make sure the simplify cfg can straighten out this
-; important case.  This is basically the most trivial form of tail-duplication.
-
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:    not grep {br label}
-
-define i32 @test(i1 %B, i32 %A, i32 %B.upgrd.1) {
-        br i1 %B, label %T, label %F
-T:              ; preds = %0
-        br label %ret
-F:              ; preds = %0
-        br label %ret
-ret:            ; preds = %F, %T
-        %X = phi i32 [ %A, %F ], [ %B.upgrd.1, %T ]             ; <i32> [#uses=1]
-        ret i32 %X
-}
-
-
-; Make sure it's willing to move unconditional branches to return instructions
-; as well, even if the return block is shared and the source blocks are
-; non-empty.
-define i32 @test2(i1 %B, i32 %A, i32 %B.upgrd.2) {
-        br i1 %B, label %T, label %F
-T:              ; preds = %0
-        call i32 @test( i1 true, i32 5, i32 8 )         ; <i32>:1 [#uses=0]
-        br label %ret
-F:              ; preds = %0
-        call i32 @test( i1 true, i32 5, i32 8 )         ; <i32>:2 [#uses=0]
-        br label %ret
-ret:            ; preds = %F, %T
-        ret i32 %A
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
deleted file mode 100644
index 3c44919..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep unreachable
-
-define void @test1(i1 %C, i1* %BP) {
-        br i1 %C, label %T, label %F
-T:              ; preds = %0
-        store i1 %C, i1* %BP
-        unreachable
-F:              ; preds = %0
-        ret void
-}
-
-define void @test2() {
-        invoke void @test2( )
-                        to label %N unwind label %U
-U:              ; preds = %0
-        unreachable
-N:              ; preds = %0
-        ret void
-}
-
-define i32 @test3(i32 %v) {
-        switch i32 %v, label %default [
-                 i32 1, label %U
-                 i32 2, label %T
-        ]
-default:                ; preds = %0
-        ret i32 1
-U:              ; preds = %0
-        unreachable
-T:              ; preds = %0
-        ret i32 2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/basictest.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/basictest.ll
deleted file mode 100644
index 1fd629a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/basictest.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; Test CFG simplify removal of branch instructions...
-;
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-define void @test1() {
-        br label %BB1
-BB1:            ; preds = %0
-        ret void
-}
-
-define void @test2() {
-        ret void
-BB1:            ; No predecessors!
-        ret void
-}
-
-define void @test3(i1 %T) {
-        br i1 %T, label %BB1, label %BB1
-BB1:            ; preds = %0, %0
-        ret void
-}
-
-
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-branch-dbginfo.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-branch-dbginfo.ll
deleted file mode 100644
index b2f53a3..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-branch-dbginfo.ll
+++ /dev/null
@@ -1,70 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep {br i1} | count 1
-
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }* }
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 393262, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 393233, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([7 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([5 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [7 x i8] c"cond.c\00", section "llvm.metadata"		; <[7 x i8]*> [#uses=1]
- at .str1 = internal constant [5 x i8] c"/tmp\00", section "llvm.metadata"		; <[5 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5555) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), { }* null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 393473, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), i8* getelementptr ([2 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=0]
- at .str5 = internal constant [2 x i8] c"x\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable6 = internal constant %llvm.dbg.variable.type { i32 393473, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), i8* getelementptr ([2 x i8]* @.str7, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 4, { }* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=0]
- at .str7 = internal constant [2 x i8] c"y\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type { i32 393238, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([6 x i8]* @.str8, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 1, i64 0, i64 0, i64 0, i32 0, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype9 to { }*) }, section "llvm.metadata"		; <%llvm.dbg.derivedtype.type*> [#uses=1]
- at .str8 = internal constant [6 x i8] c"uint1\00", section "llvm.metadata"		; <[6 x i8]*> [#uses=1]
- at llvm.dbg.basictype9 = internal constant %llvm.dbg.basictype.type { i32 393252, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 7 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
-
-define i32 @foo(i32 %x1, i1 zeroext %y2) nounwind {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp4 = icmp eq i32 %x1, 0		; <i1> [#uses=1]
-	br i1 %tmp4, label %bb, label %bb14
-
-bb:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %y2, label %bb14, label %bb10
-
-bb7:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 7, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp9 = call i32 @g1(i32 %x1) nounwind		; <i32> [#uses=1]
-	ret i32 %tmp9
-
-bb10:		; preds = %bb
-	call void @llvm.dbg.stoppoint(i32 8, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp12 = add i32 %x1, 1		; <i32> [#uses=1]
-	%tmp13 = call i32 @g2(i32 %tmp12) nounwind		; <i32> [#uses=1]
-	ret i32 %tmp13
-
-bb14:		; preds = %entry
-	call void @llvm.dbg.stoppoint(i32 10, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp16 = call i32 @g1(i32 %x1) nounwind		; <i32> [#uses=1]
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret i32 %tmp16
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare i32 @g1(i32)
-
-declare i32 @g2(i32)
-
-declare void @llvm.dbg.region.end({ }*) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-cond-merge.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-cond-merge.ll
deleted file mode 100644
index ae46503..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-cond-merge.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -instcombine \
-; RUN:   -simplifycfg | llvm-dis | not grep call
-
-declare void @bar()
-
-define void @test(i32 %X, i32 %Y) {
-entry:
-        %tmp.2 = icmp ne i32 %X, %Y             ; <i1> [#uses=1]
-        br i1 %tmp.2, label %shortcirc_next, label %UnifiedReturnBlock
-shortcirc_next:         ; preds = %entry
-        %tmp.3 = icmp ne i32 %X, %Y             ; <i1> [#uses=1]
-        br i1 %tmp.3, label %UnifiedReturnBlock, label %then
-then:           ; preds = %shortcirc_next
-        call void @bar( )
-        ret void
-UnifiedReturnBlock:             ; preds = %shortcirc_next, %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-cond-prop.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-cond-prop.ll
deleted file mode 100644
index a7cd359..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-cond-prop.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep call
-
-declare void @bar()
-
-define void @test(i32 %X, i32 %Y) {
-entry:
-        %tmp.2 = icmp slt i32 %X, %Y            ; <i1> [#uses=2]
-        br i1 %tmp.2, label %shortcirc_next, label %UnifiedReturnBlock
-shortcirc_next:         ; preds = %entry
-        br i1 %tmp.2, label %UnifiedReturnBlock, label %then
-then:           ; preds = %shortcirc_next
-        call void @bar( )
-        ret void
-UnifiedReturnBlock:             ; preds = %shortcirc_next, %entry
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-fold-test.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-fold-test.ll
deleted file mode 100644
index 444741f..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-fold-test.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This test ensures that the simplifycfg pass continues to constant fold
-; terminator instructions.
-
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-define i32 @test(i32 %A, i32 %B) {
-J:
-        %C = add i32 %A, 12             ; <i32> [#uses=2]
-        br i1 true, label %L, label %K
-L:              ; preds = %J
-        %D = add i32 %C, %B             ; <i32> [#uses=1]
-        ret i32 %D
-K:              ; preds = %J
-        %E = add i32 %C, %B             ; <i32> [#uses=1]
-        ret i32 %E
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-fold.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-fold.ll
deleted file mode 100644
index d671b6e..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-fold.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep {br i1} | count 1
-
-define void @test(i32* %P, i32* %Q, i1 %A, i1 %B) {
-        br i1 %A, label %a, label %b
-a:              ; preds = %0
-        br i1 %B, label %b, label %c
-b:              ; preds = %a, %0
-        store i32 123, i32* %P
-        ret void
-c:              ; preds = %a
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll
deleted file mode 100644
index c536b6c..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -adce | llvm-dis | \
-; RUN:   not grep {call void @f1}
-; END.
-
-declare void @f1()
-
-declare void @f2()
-
-declare void @f3()
-
-declare void @f4()
-
-define i32 @test1(i32 %X, i1 %D) {
-E:
-	%C = icmp eq i32 %X, 0		; <i1> [#uses=2]
-	br i1 %C, label %T, label %F
-T:		; preds = %A, %E
-	br i1 %C, label %B, label %A
-A:		; preds = %T
-	call void @f1( )
-	br i1 %D, label %T, label %F
-B:		; preds = %T
-	call void @f2( )
-	ret i32 345
-F:		; preds = %A, %E
-	call void @f3( )
-	ret i32 123
-}
-
-define i32 @test2(i32 %X, i1 %D) {
-E:
-	%C = icmp eq i32 %X, 0		; <i1> [#uses=2]
-	br i1 %C, label %T, label %F
-T:		; preds = %A, %E
-	%P = phi i1 [ true, %E ], [ %C, %A ]		; <i1> [#uses=1]
-	br i1 %P, label %B, label %A
-A:		; preds = %T
-	call void @f1( )
-	br i1 %D, label %T, label %F
-B:		; preds = %T
-	call void @f2( )
-	ret i32 345
-F:		; preds = %A, %E
-	call void @f3( )
-	ret i32 123
-}
-
-define i32 @test3(i32 %X, i1 %D, i32* %AP, i32* %BP) {
-E:
-	%C = icmp eq i32 %X, 0		; <i1> [#uses=2]
-	br i1 %C, label %T, label %F
-T:		; preds = %A, %E
-	call void @f3( )
-	%XX = load i32* %AP		; <i32> [#uses=1]
-	store i32 %XX, i32* %BP
-	br i1 %C, label %B, label %A
-A:		; preds = %T
-	call void @f1( )
-	br i1 %D, label %T, label %F
-B:		; preds = %T
-	call void @f2( )
-	ret i32 345
-F:		; preds = %A, %E
-	call void @f3( )
-	ret i32 123
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch_fold_dbg.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch_fold_dbg.ll
deleted file mode 100644
index d1d00b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/branch_fold_dbg.ll
+++ /dev/null
@@ -1,122 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-; END.
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-
-define void @main() {
-entry:
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.14.i19 = icmp eq i32 0, 2		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.14.i19, label %endif.1.i20, label %read_min.exit
-endif.1.i20:		; preds = %entry
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.9.i.i = icmp eq i8* null, null		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.9.i.i, label %then.i12.i, label %then.i.i
-then.i.i:		; preds = %endif.1.i20
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-then.i12.i:		; preds = %endif.1.i20
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.9.i4.i = icmp eq i8* null, null		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.9.i4.i, label %endif.2.i33, label %then.i5.i
-then.i5.i:		; preds = %then.i12.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-endif.2.i33:		; preds = %then.i12.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %loopexit.0.i40, label %no_exit.0.i35
-no_exit.0.i35:		; preds = %no_exit.0.i35, %endif.2.i33
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.130.i = icmp slt i32 0, 0		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.130.i, label %loopexit.0.i40.loopexit, label %no_exit.0.i35
-loopexit.0.i40.loopexit:		; preds = %no_exit.0.i35
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %loopexit.0.i40
-loopexit.0.i40:		; preds = %loopexit.0.i40.loopexit, %endif.2.i33
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.341.i = icmp eq i32 0, 0		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.341.i, label %loopentry.1.i, label %read_min.exit
-loopentry.1.i:		; preds = %loopexit.0.i40
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.347.i = icmp sgt i32 0, 0		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.347.i, label %no_exit.1.i41, label %loopexit.2.i44
-no_exit.1.i41:		; preds = %endif.5.i, %loopentry.1.i
-	%indvar.i42 = phi i32 [ %indvar.next.i, %endif.5.i ], [ 0, %loopentry.1.i ]		; <i32> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.355.i = icmp eq i32 0, 3		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.355.i, label %endif.5.i, label %read_min.exit
-endif.5.i:		; preds = %no_exit.1.i41
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.34773.i = icmp sgt i32 0, 0		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%indvar.next.i = add i32 %indvar.i42, 1		; <i32> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.34773.i, label %no_exit.1.i41, label %loopexit.1.i.loopexit
-loopexit.1.i.loopexit:		; preds = %endif.5.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-loopexit.2.i44:		; preds = %loopentry.1.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-read_min.exit:		; preds = %no_exit.1.i41, %loopexit.0.i40, %entry
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.23 = icmp eq i32 0, 0		; <i1> [#uses=1]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 %tmp.23, label %endif.1, label %then.1
-then.1:		; preds = %read_min.exit
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %endif.0.i, label %then.0.i
-then.0.i:		; preds = %then.1
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %endif.1.i, label %then.1.i
-endif.0.i:		; preds = %then.1
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %endif.1.i, label %then.1.i
-then.1.i:		; preds = %endif.0.i, %then.0.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %getfree.exit, label %then.2.i
-endif.1.i:		; preds = %endif.0.i, %then.0.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %getfree.exit, label %then.2.i
-then.2.i:		; preds = %endif.1.i, %then.1.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-getfree.exit:		; preds = %endif.1.i, %then.1.i
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-endif.1:		; preds = %read_min.exit
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	%tmp.27.i = getelementptr i32* null, i32 0		; <i32*> [#uses=0]
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %loopexit.0.i15, label %no_exit.0.i14
-no_exit.0.i14:		; preds = %endif.1
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-loopexit.0.i15:		; preds = %endif.1
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %primal_start_artificial.exit, label %no_exit.1.i16
-no_exit.1.i16:		; preds = %no_exit.1.i16, %loopexit.0.i15
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br i1 false, label %primal_start_artificial.exit, label %no_exit.1.i16
-primal_start_artificial.exit:		; preds = %no_exit.1.i16, %loopexit.0.i15
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/dbginfo.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/dbginfo.ll
deleted file mode 100644
index 67e44aa..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/dbginfo.ll
+++ /dev/null
@@ -1,71 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep "br label"
-
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }* }
-	%llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }* }
-	%llvm.dbg.global_variable.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1, { }* }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.subrange.type = type { i32, i64, i64 }
-	%struct.Group = type { %struct.Scene, %struct.Sphere, %"struct.std::list<Scene*,std::allocator<Scene*> >" }
-	%struct.Ray = type { %struct.Vec, %struct.Vec }
-	%struct.Scene = type { i32 (...)** }
-	%struct.Sphere = type { %struct.Scene, %struct.Vec, double }
-	%struct.Vec = type { double, double, double }
-	%struct.__class_type_info_pseudo = type { %struct.__type_info_pseudo }
-	%struct.__false_type = type <{ i8 }>
-	%"struct.__gnu_cxx::new_allocator<Scene*>" = type <{ i8 }>
-	%"struct.__gnu_cxx::new_allocator<std::_List_node<Scene*> >" = type <{ i8 }>
-	%struct.__si_class_type_info_pseudo = type { %struct.__type_info_pseudo, %"struct.std::type_info"* }
-	%struct.__type_info_pseudo = type { i8*, i8* }
-	%"struct.std::Hit" = type { double, %struct.Vec }
-	%"struct.std::_List_base<Scene*,std::allocator<Scene*> >" = type { %"struct.std::_List_base<Scene*,std::allocator<Scene*> >::_List_impl" }
-	%"struct.std::_List_base<Scene*,std::allocator<Scene*> >::_List_impl" = type { %"struct.std::_List_node_base" }
-	%"struct.std::_List_const_iterator<Scene*>" = type { %"struct.std::_List_node_base"* }
-	%"struct.std::_List_iterator<Scene*>" = type { %"struct.std::_List_node_base"* }
-	%"struct.std::_List_node<Scene*>" = type { %"struct.std::_List_node_base", %struct.Scene* }
-	%"struct.std::_List_node_base" = type { %"struct.std::_List_node_base"*, %"struct.std::_List_node_base"* }
-	%"struct.std::allocator<Scene*>" = type <{ i8 }>
-	%"struct.std::allocator<std::_List_node<Scene*> >" = type <{ i8 }>
-	%"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i8, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"* }
-	%"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
-	%"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
-	%"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }
-	%"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" }
-	%"struct.std::ios_base::Init" = type <{ i8 }>
-	%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
-	%"struct.std::ios_base::_Words" = type { i8*, i32 }
-	%"struct.std::list<Scene*,std::allocator<Scene*> >" = type { %"struct.std::_List_base<Scene*,std::allocator<Scene*> >" }
-	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
-	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
-	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
-	%"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
-	%"struct.std::num_put<char,std::ostreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
-	%"struct.std::numeric_limits<double>" = type <{ i8 }>
-	%"struct.std::type_info" = type { i32 (...)**, i8* }
- at llvm.dbg.subprogram947 = external constant %llvm.dbg.subprogram.type		; <%llvm.dbg.subprogram.type*> [#uses=1]
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
-
-declare void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(%struct.__false_type*) nounwind
-
-define void @_ZNSaIP5SceneED1Ev(%struct.__false_type* %this) nounwind {
-entry:
-	%this_addr = alloca %struct.__false_type*		; <%struct.__false_type**> [#uses=2]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram947 to { }*))
-	store %struct.__false_type* %this, %struct.__false_type** %this_addr
-	%0 = load %struct.__false_type** %this_addr, align 4		; <%struct.__false_type*> [#uses=1]
-	call void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(%struct.__false_type* %0) nounwind
-	br label %bb
-
-bb:		; preds = %entry
-	br label %return
-
-return:		; preds = %bb
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram947 to { }*))
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/dg.exp b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/hoist-common-code.dbg.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/hoist-common-code.dbg.ll
deleted file mode 100644
index ad5cd93..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/hoist-common-code.dbg.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @bar(i32)
-
-define void @test(i1 %P, i32* %Q) {
-        br i1 %P, label %T, label %F
-T:              ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        store i32 1, i32* %Q
-        %A = load i32* %Q               ; <i32> [#uses=1]
-        call void @bar( i32 %A )
-        ret void
-F:              ; preds = %0
-        store i32 1, i32* %Q
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        %B = load i32* %Q               ; <i32> [#uses=1]
-        call void @bar( i32 %B )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
deleted file mode 100644
index 7512da2..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-declare void @bar(i32)
-
-define void @test(i1 %P, i32* %Q) {
-        br i1 %P, label %T, label %F
-T:              ; preds = %0
-        store i32 1, i32* %Q
-        %A = load i32* %Q               ; <i32> [#uses=1]
-        call void @bar( i32 %A )
-        ret void
-F:              ; preds = %0
-        store i32 1, i32* %Q
-        %B = load i32* %Q               ; <i32> [#uses=1]
-        call void @bar( i32 %B )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll
deleted file mode 100644
index 9081b01..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll
+++ /dev/null
@@ -1,100 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep bb17
-; PR1786
-
-define i32 @main() {
-entry:
-	%retval = alloca i32, align 4		; <i32*> [#uses=1]
-	%i = alloca i32, align 4		; <i32*> [#uses=7]
-	%z = alloca i32, align 4		; <i32*> [#uses=4]
-	%z16 = alloca i32, align 4		; <i32*> [#uses=4]
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	store i32 0, i32* %i
-	%toBool = icmp ne i8 1, 0		; <i1> [#uses=1]
-	br i1 %toBool, label %cond_true, label %cond_false
-
-cond_true:		; preds = %entry
-	store i32 0, i32* %z
-	br label %bb
-
-bb:		; preds = %cond_next, %cond_true
-	%tmp = load i32* %z		; <i32> [#uses=1]
-	%tmp1 = sub i32 %tmp, 16384		; <i32> [#uses=1]
-	store i32 %tmp1, i32* %z
-	%tmp2 = load i32* %i		; <i32> [#uses=1]
-	%tmp3 = add i32 %tmp2, 1		; <i32> [#uses=1]
-	store i32 %tmp3, i32* %i
-	%tmp4 = load i32* %i		; <i32> [#uses=1]
-	%tmp5 = icmp sgt i32 %tmp4, 262144		; <i1> [#uses=1]
-	%tmp56 = zext i1 %tmp5 to i8		; <i8> [#uses=1]
-	%toBool7 = icmp ne i8 %tmp56, 0		; <i1> [#uses=1]
-	br i1 %toBool7, label %cond_true8, label %cond_next
-
-cond_true8:		; preds = %bb
-	call void @abort( )
-	unreachable
-
-cond_next:		; preds = %bb
-	%tmp9 = load i32* %z		; <i32> [#uses=1]
-	%tmp10 = icmp ne i32 %tmp9, 0		; <i1> [#uses=1]
-	%tmp1011 = zext i1 %tmp10 to i8		; <i8> [#uses=1]
-	%toBool12 = icmp ne i8 %tmp1011, 0		; <i1> [#uses=1]
-	br i1 %toBool12, label %bb, label %bb13
-
-bb13:		; preds = %cond_next
-	call void @exit( i32 0 )
-	unreachable
-
-cond_false:		; preds = %entry
-	%toBool14 = icmp ne i8 1, 0		; <i1> [#uses=1]
-	br i1 %toBool14, label %cond_true15, label %cond_false33
-
-cond_true15:		; preds = %cond_false
-	store i32 0, i32* %z16
-	br label %bb17
-
-bb17:		; preds = %cond_next27, %cond_true15
-	%tmp18 = load i32* %z16		; <i32> [#uses=1]
-	%tmp19 = sub i32 %tmp18, 16384		; <i32> [#uses=1]
-	store i32 %tmp19, i32* %z16
-	%tmp20 = load i32* %i		; <i32> [#uses=1]
-	%tmp21 = add i32 %tmp20, 1		; <i32> [#uses=1]
-	store i32 %tmp21, i32* %i
-	%tmp22 = load i32* %i		; <i32> [#uses=1]
-	%tmp23 = icmp sgt i32 %tmp22, 262144		; <i1> [#uses=1]
-	%tmp2324 = zext i1 %tmp23 to i8		; <i8> [#uses=1]
-	%toBool25 = icmp ne i8 %tmp2324, 0		; <i1> [#uses=1]
-	br i1 %toBool25, label %cond_true26, label %cond_next27
-
-cond_true26:		; preds = %bb17
-	call void @abort( )
-	unreachable
-
-cond_next27:		; preds = %bb17
-	%tmp28 = load i32* %z16		; <i32> [#uses=1]
-	%tmp29 = icmp ne i32 %tmp28, 0		; <i1> [#uses=1]
-	%tmp2930 = zext i1 %tmp29 to i8		; <i8> [#uses=1]
-	%toBool31 = icmp ne i8 %tmp2930, 0		; <i1> [#uses=1]
-	br i1 %toBool31, label %bb17, label %bb32
-
-bb32:		; preds = %cond_next27
-	call void @exit( i32 0 )
-	unreachable
-
-cond_false33:		; preds = %cond_false
-	call void @exit( i32 0 )
-	unreachable
-
-cond_next34:		; No predecessors!
-	br label %cond_next35
-
-cond_next35:		; preds = %cond_next34
-	br label %return
-
-return:		; preds = %cond_next35
-	%retval36 = load i32* %retval		; <i32> [#uses=1]
-	ret i32 %retval36
-}
-
-declare void @abort()
-
-declare void @exit(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/noreturn-call.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/noreturn-call.ll
deleted file mode 100644
index 0e1c632..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/noreturn-call.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep unreachable
-; PR1796
-
-declare void @Finisher(i32) noreturn
-
-define void @YYY(i32) {
-  tail call void @Finisher(i32 %0) noreturn
-  tail call void @Finisher(i32 %0) noreturn
-  ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/return-merge.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/return-merge.ll
deleted file mode 100644
index 60267e9..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/return-merge.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-define i32 @test1(i1 %C) {
-entry:
-        br i1 %C, label %T, label %F
-T:              ; preds = %entry
-        ret i32 1
-F:              ; preds = %entry
-        ret i32 0
-}
-
-define void @test2(i1 %C) {
-        br i1 %C, label %T, label %F
-T:              ; preds = %0
-        ret void
-F:              ; preds = %0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
deleted file mode 100644
index 74559a0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
+++ /dev/null
@@ -1,108 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg -disable-output
-
-define void @NewExtractNames() {
-entry:
-	br i1 false, label %endif.0, label %then.0
-then.0:		; preds = %entry
-	br i1 false, label %shortcirc_next.i, label %shortcirc_done.i
-shortcirc_next.i:		; preds = %then.0
-	br label %shortcirc_done.i
-shortcirc_done.i:		; preds = %shortcirc_next.i, %then.0
-	br i1 false, label %then.0.i, label %else.0.i
-then.0.i:		; preds = %shortcirc_done.i
-	br label %NewBase.exit
-else.0.i:		; preds = %shortcirc_done.i
-	br i1 false, label %endif.0.i, label %else.1.i
-else.1.i:		; preds = %else.0.i
-	br i1 false, label %endif.0.i, label %else.2.i
-else.2.i:		; preds = %else.1.i
-	br label %NewBase.exit
-endif.0.i:		; preds = %else.1.i, %else.0.i
-	br label %NewBase.exit
-NewBase.exit:		; preds = %endif.0.i, %else.2.i, %then.0.i
-	br label %endif.0
-endif.0:		; preds = %NewBase.exit, %entry
-	%tmp.32.mask = and i32 0, 31		; <i32> [#uses=1]
-	switch i32 %tmp.32.mask, label %label.9 [
-		 i32 16, label %loopentry.2
-		 i32 15, label %loopentry.2
-		 i32 14, label %loopentry.2
-		 i32 13, label %loopentry.2
-		 i32 10, label %loopentry.2
-		 i32 20, label %loopentry.1
-		 i32 19, label %loopentry.1
-		 i32 2, label %loopentry.0
-		 i32 0, label %switchexit
-	]
-loopentry.0:		; preds = %endif.1, %endif.0
-	br i1 false, label %no_exit.0, label %switchexit
-no_exit.0:		; preds = %loopentry.0
-	br i1 false, label %then.1, label %else.1
-then.1:		; preds = %no_exit.0
-	br label %endif.1
-else.1:		; preds = %no_exit.0
-	br i1 false, label %shortcirc_next.0, label %shortcirc_done.0
-shortcirc_next.0:		; preds = %else.1
-	br label %shortcirc_done.0
-shortcirc_done.0:		; preds = %shortcirc_next.0, %else.1
-	br i1 false, label %then.2, label %endif.2
-then.2:		; preds = %shortcirc_done.0
-	br label %endif.2
-endif.2:		; preds = %then.2, %shortcirc_done.0
-	br label %endif.1
-endif.1:		; preds = %endif.2, %then.1
-	br label %loopentry.0
-loopentry.1:		; preds = %endif.3, %endif.0, %endif.0
-	br i1 false, label %no_exit.1, label %switchexit
-no_exit.1:		; preds = %loopentry.1
-	br i1 false, label %then.3, label %else.2
-then.3:		; preds = %no_exit.1
-	br label %endif.3
-else.2:		; preds = %no_exit.1
-	br i1 false, label %shortcirc_next.1, label %shortcirc_done.1
-shortcirc_next.1:		; preds = %else.2
-	br label %shortcirc_done.1
-shortcirc_done.1:		; preds = %shortcirc_next.1, %else.2
-	br i1 false, label %then.4, label %endif.4
-then.4:		; preds = %shortcirc_done.1
-	br label %endif.4
-endif.4:		; preds = %then.4, %shortcirc_done.1
-	br label %endif.3
-endif.3:		; preds = %endif.4, %then.3
-	br label %loopentry.1
-loopentry.2:		; preds = %endif.5, %endif.0, %endif.0, %endif.0, %endif.0, %endif.0
-	%i.3 = phi i32 [ 0, %endif.5 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ]		; <i32> [#uses=1]
-	%tmp.158 = icmp slt i32 %i.3, 0		; <i1> [#uses=1]
-	br i1 %tmp.158, label %no_exit.2, label %switchexit
-no_exit.2:		; preds = %loopentry.2
-	br i1 false, label %shortcirc_next.2, label %shortcirc_done.2
-shortcirc_next.2:		; preds = %no_exit.2
-	br label %shortcirc_done.2
-shortcirc_done.2:		; preds = %shortcirc_next.2, %no_exit.2
-	br i1 false, label %then.5, label %endif.5
-then.5:		; preds = %shortcirc_done.2
-	br label %endif.5
-endif.5:		; preds = %then.5, %shortcirc_done.2
-	br label %loopentry.2
-label.9:		; preds = %endif.0
-	br i1 false, label %then.6, label %endif.6
-then.6:		; preds = %label.9
-	br label %endif.6
-endif.6:		; preds = %then.6, %label.9
-	store i32 0, i32* null
-	br label %switchexit
-switchexit:		; preds = %endif.6, %loopentry.2, %loopentry.1, %loopentry.0, %endif.0
-	br i1 false, label %endif.7, label %then.7
-then.7:		; preds = %switchexit
-	br i1 false, label %shortcirc_next.3, label %shortcirc_done.3
-shortcirc_next.3:		; preds = %then.7
-	br label %shortcirc_done.3
-shortcirc_done.3:		; preds = %shortcirc_next.3, %then.7
-	br i1 false, label %then.8, label %endif.8
-then.8:		; preds = %shortcirc_done.3
-	br label %endif.8
-endif.8:		; preds = %then.8, %shortcirc_done.3
-	br label %endif.7
-endif.7:		; preds = %endif.8, %switchexit
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_create.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_create.ll
deleted file mode 100644
index 4994cd3..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_create.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-declare void @foo1()
-
-declare void @foo2()
-
-define void @test1(i32 %V) {
-        %C1 = icmp eq i32 %V, 4         ; <i1> [#uses=1]
-        %C2 = icmp eq i32 %V, 17                ; <i1> [#uses=1]
-        %CN = or i1 %C1, %C2            ; <i1> [#uses=1]
-        br i1 %CN, label %T, label %F
-T:              ; preds = %0
-        call void @foo1( )
-        ret void
-F:              ; preds = %0
-        call void @foo2( )
-        ret void
-}
-
-define void @test2(i32 %V) {
-        %C1 = icmp ne i32 %V, 4         ; <i1> [#uses=1]
-        %C2 = icmp ne i32 %V, 17                ; <i1> [#uses=1]
-        %CN = and i1 %C1, %C2           ; <i1> [#uses=1]
-        br i1 %CN, label %T, label %F
-T:              ; preds = %0
-        call void @foo1( )
-        ret void
-F:              ; preds = %0
-        call void @foo2( )
-        ret void
-}
-
-define void @test3(i32 %V) {
-        %C1 = icmp eq i32 %V, 4         ; <i1> [#uses=1]
-        br i1 %C1, label %T, label %N
-N:              ; preds = %0
-        %C2 = icmp eq i32 %V, 17                ; <i1> [#uses=1]
-        br i1 %C2, label %T, label %F
-T:              ; preds = %N, %0
-        call void @foo1( )
-        ret void
-F:              ; preds = %N
-        call void @foo2( )
-        ret void
-}
-
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_formation.dbg.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_formation.dbg.ll
deleted file mode 100644
index 0ce01f1..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_formation.dbg.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-; END.
-
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-define i1 @_ZN4llvm11SetCondInst7classofEPKNS_11InstructionE({ i32, i32 }* %I) {
-entry:
-        %tmp.1.i = getelementptr { i32, i32 }* %I, i64 0, i32 1         ; <i32*> [#uses=1]
-        %tmp.2.i = load i32* %tmp.1.i           ; <i32> [#uses=6]
-        %tmp.2 = icmp eq i32 %tmp.2.i, 14               ; <i1> [#uses=1]
-        br i1 %tmp.2, label %shortcirc_done.4, label %shortcirc_next.0
-shortcirc_next.0:               ; preds = %entry
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        %tmp.6 = icmp eq i32 %tmp.2.i, 15               ; <i1> [#uses=1]
-        br i1 %tmp.6, label %shortcirc_done.4, label %shortcirc_next.1
-shortcirc_next.1:               ; preds = %shortcirc_next.0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        %tmp.11 = icmp eq i32 %tmp.2.i, 16              ; <i1> [#uses=1]
-        br i1 %tmp.11, label %shortcirc_done.4, label %shortcirc_next.2
-shortcirc_next.2:               ; preds = %shortcirc_next.1
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        %tmp.16 = icmp eq i32 %tmp.2.i, 17              ; <i1> [#uses=1]
-        br i1 %tmp.16, label %shortcirc_done.4, label %shortcirc_next.3
-shortcirc_next.3:               ; preds = %shortcirc_next.2
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        %tmp.21 = icmp eq i32 %tmp.2.i, 18              ; <i1> [#uses=1]
-        br i1 %tmp.21, label %shortcirc_done.4, label %shortcirc_next.4
-shortcirc_next.4:               ; preds = %shortcirc_next.3
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        %tmp.26 = icmp eq i32 %tmp.2.i, 19              ; <i1> [#uses=1]
-        br label %UnifiedReturnBlock
-shortcirc_done.4:               ; preds = %shortcirc_next.3, %shortcirc_next.2, %shortcirc_next.1, %shortcirc_next.0, %entry
-        br label %UnifiedReturnBlock
-UnifiedReturnBlock:             ; preds = %shortcirc_done.4, %shortcirc_next.4
-        %UnifiedRetVal = phi i1 [ %tmp.26, %shortcirc_next.4 ], [ true, %shortcirc_done.4 ]             ; <i1> [#uses=1]
-        ret i1 %UnifiedRetVal
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_formation.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_formation.ll
deleted file mode 100644
index 534c471..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_formation.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-; END.
-
-define i1 @_ZN4llvm11SetCondInst7classofEPKNS_11InstructionE({ i32, i32 }* %I) {
-entry:
-        %tmp.1.i = getelementptr { i32, i32 }* %I, i64 0, i32 1         ; <i32*> [#uses=1]
-        %tmp.2.i = load i32* %tmp.1.i           ; <i32> [#uses=6]
-        %tmp.2 = icmp eq i32 %tmp.2.i, 14               ; <i1> [#uses=1]
-        br i1 %tmp.2, label %shortcirc_done.4, label %shortcirc_next.0
-shortcirc_next.0:               ; preds = %entry
-        %tmp.6 = icmp eq i32 %tmp.2.i, 15               ; <i1> [#uses=1]
-        br i1 %tmp.6, label %shortcirc_done.4, label %shortcirc_next.1
-shortcirc_next.1:               ; preds = %shortcirc_next.0
-        %tmp.11 = icmp eq i32 %tmp.2.i, 16              ; <i1> [#uses=1]
-        br i1 %tmp.11, label %shortcirc_done.4, label %shortcirc_next.2
-shortcirc_next.2:               ; preds = %shortcirc_next.1
-        %tmp.16 = icmp eq i32 %tmp.2.i, 17              ; <i1> [#uses=1]
-        br i1 %tmp.16, label %shortcirc_done.4, label %shortcirc_next.3
-shortcirc_next.3:               ; preds = %shortcirc_next.2
-        %tmp.21 = icmp eq i32 %tmp.2.i, 18              ; <i1> [#uses=1]
-        br i1 %tmp.21, label %shortcirc_done.4, label %shortcirc_next.4
-shortcirc_next.4:               ; preds = %shortcirc_next.3
-        %tmp.26 = icmp eq i32 %tmp.2.i, 19              ; <i1> [#uses=1]
-        br label %UnifiedReturnBlock
-shortcirc_done.4:               ; preds = %shortcirc_next.3, %shortcirc_next.2, %shortcirc_next.1, %shortcirc_next.0, %entry
-        br label %UnifiedReturnBlock
-UnifiedReturnBlock:             ; preds = %shortcirc_done.4, %shortcirc_next.4
-        %UnifiedRetVal = phi i1 [ %tmp.26, %shortcirc_next.4 ], [ true, %shortcirc_done.4 ]             ; <i1> [#uses=1]
-        ret i1 %UnifiedRetVal
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll
deleted file mode 100644
index 1590f34..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll
+++ /dev/null
@@ -1,47 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   grep switch | count 1
-
-; Test that a switch going to a switch on the same value can be merged.   All 
-; three switches in this example can be merged into one big one.
-
-declare void @foo1()
-
-declare void @foo2()
-
-declare void @foo3()
-
-declare void @foo4()
-
-define void @test1(i32 %V) {
-        switch i32 %V, label %F [
-                 i32 4, label %T
-                 i32 17, label %T
-                 i32 5, label %T
-                 i32 1234, label %F
-        ]
-T:              ; preds = %0, %0, %0
-        switch i32 %V, label %F [
-                 i32 4, label %A
-                 i32 17, label %B
-                 i32 42, label %C
-        ]
-A:              ; preds = %T
-        call void @foo1( )
-        ret void
-B:              ; preds = %F, %F, %T
-        call void @foo2( )
-        ret void
-C:              ; preds = %T
-        call void @foo3( )
-        ret void
-F:              ; preds = %F, %T, %0, %0
-        switch i32 %V, label %F [
-                 i32 4, label %B
-                 i32 18, label %B
-                 i32 42, label %D
-        ]
-D:              ; preds = %F
-        call void @foo4( )
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_switch_fold_dbginfo.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_switch_fold_dbginfo.ll
deleted file mode 100644
index 3654b28..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_switch_fold_dbginfo.ll
+++ /dev/null
@@ -1,116 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   grep switch | count 1
-
-; ModuleID = '<stdin>'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i386-pc-linux-gnu"
-	%llvm.dbg.anchor.type = type { i32, i32 }
-	%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
-	%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
-	%llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }*, i32 }
-	%llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
-	%llvm.dbg.variable.type = type { i32, { }*, i8*, { }*, i32, { }* }
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str = internal constant [10 x i8] c"swithh2.c\00", section "llvm.metadata"		; <[10 x i8]*> [#uses=1]
- at .str1 = internal constant [38 x i8] c"/developer/home2/zsth/test/debug/tmp/\00", section "llvm.metadata"		; <[38 x i8]*> [#uses=1]
- at .str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5641) (LLVM build)\00", section "llvm.metadata"		; <[52 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([10 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([38 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 -1 }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
- at .str3 = internal constant [4 x i8] c"int\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type { i32 458788, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"		; <%llvm.dbg.basictype.type*> [#uses=1]
- at llvm.dbg.array = internal constant [2 x { }*] [{ }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*), { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*)], section "llvm.metadata"		; <[2 x { }*]*> [#uses=1]
- at llvm.dbg.composite = internal constant %llvm.dbg.composite.type { i32 458773, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 0, i64 0, i64 0, i64 0, i32 0, { }* null, { }* bitcast ([2 x { }*]* @llvm.dbg.array to { }*), i32 0 }, section "llvm.metadata"		; <%llvm.dbg.composite.type*> [#uses=1]
- at llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"		; <%llvm.dbg.anchor.type*> [#uses=1]
- at .str4 = internal constant [4 x i8] c"foo\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type { i32 458798, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to { }*), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), i8* getelementptr ([4 x i8]* @.str4, i32 0, i32 0), i8* null, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 1, { }* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite to { }*), i1 false, i1 true }, section "llvm.metadata"		; <%llvm.dbg.subprogram.type*> [#uses=1]
- at .str5 = internal constant [2 x i8] c"x\00", section "llvm.metadata"		; <[2 x i8]*> [#uses=1]
- at llvm.dbg.variable = internal constant %llvm.dbg.variable.type { i32 459009, { }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*), i8* getelementptr ([2 x i8]* @.str5, i32 0, i32 0), { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*), i32 1, { }* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to { }*) }, section "llvm.metadata"		; <%llvm.dbg.variable.type*> [#uses=0]
-
-define i32 @foo(i32 %x) nounwind {
-entry:
-	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
-	call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	call void @llvm.dbg.stoppoint(i32 2, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	switch i32 %x, label %bb4 [
-		i32 1, label %bb
-		i32 2, label %bb1
-		i32 3, label %bb2
-		i32 4, label %bb3
-	]
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 2, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb
-
-bb:		; preds = %0, %entry
-	call void @llvm.dbg.stoppoint(i32 3, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 3, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb1
-
-bb1:		; preds = %1, %entry
-	call void @llvm.dbg.stoppoint(i32 4, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 4, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb2
-
-bb2:		; preds = %2, %entry
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb3
-
-bb3:		; preds = %3, %entry
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 6, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb4
-
-bb4:		; preds = %4, %entry
-	call void @llvm.dbg.stoppoint(i32 10, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	switch i32 %x, label %bb7 [
-		i32 5, label %bb5
-		i32 6, label %bb6
-	]
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 10, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb5
-
-bb5:		; preds = %5, %bb4
-	call void @llvm.dbg.stoppoint(i32 11, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 11, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb6
-
-bb6:		; preds = %6, %bb4
-	call void @llvm.dbg.stoppoint(i32 12, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-		; No predecessors!
-	call void @llvm.dbg.stoppoint(i32 12, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb7
-
-bb7:		; preds = %7, %bb4
-	call void @llvm.dbg.stoppoint(i32 13, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %bb8
-
-bb8:		; preds = %bb7, %bb6, %bb5, %bb3, %bb2, %bb1, %bb
-	%.0 = phi i32 [ 4, %bb3 ], [ 3, %bb2 ], [ 2, %bb1 ], [ 1, %bb ], [ 6, %bb6 ], [ 5, %bb5 ], [ 0, %bb7 ]		; <i32> [#uses=1]
-	call void @llvm.dbg.stoppoint(i32 13, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	br label %return
-
-return:		; preds = %bb8
-	call void @llvm.dbg.stoppoint(i32 13, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-	call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to { }*))
-	ret i32 %.0
-}
-
-declare void @llvm.dbg.func.start({ }*) nounwind
-
-declare void @llvm.dbg.declare({ }*, { }*) nounwind
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-declare void @llvm.dbg.region.end({ }*) nounwind
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_thread.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_thread.ll
deleted file mode 100644
index a92528a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/switch_thread.ll
+++ /dev/null
@@ -1,79 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | \
-; RUN:   not grep {call void @DEAD}
-
-; Test that we can thread a simple known condition through switch statements.
-
-declare void @foo1()
-
-declare void @foo2()
-
-declare void @DEAD()
-
-define void @test1(i32 %V) {
-        switch i32 %V, label %A [
-                 i32 4, label %T
-                 i32 17, label %Done
-                 i32 1234, label %A
-        ]
-;; V == 4 if we get here.
-T:              ; preds = %0
-        call void @foo1( )
-        ;; This switch is always statically determined.
-        switch i32 %V, label %A2 [
-                 i32 4, label %B
-                 i32 17, label %C
-                 i32 42, label %C
-        ]
-A2:             ; preds = %T
-        call void @DEAD( )
-        call void @DEAD( )
-        ;; always true
-        %cond2 = icmp eq i32 %V, 4              ; <i1> [#uses=1]
-        br i1 %cond2, label %Done, label %C
-A:              ; preds = %0, %0
-        call void @foo1( )
-        ;; always true
-        %cond = icmp ne i32 %V, 4               ; <i1> [#uses=1]
-        br i1 %cond, label %Done, label %C
-Done:           ; preds = %B, %A, %A2, %0
-        ret void
-B:              ; preds = %T
-        call void @foo2( )
-        ;; always true
-        %cond3 = icmp eq i32 %V, 4              ; <i1> [#uses=1]
-        br i1 %cond3, label %Done, label %C
-C:              ; preds = %B, %A, %A2, %T, %T
-        call void @DEAD( )
-        ret void
-}
-
-define void @test2(i32 %V) {
-        switch i32 %V, label %A [
-                 i32 4, label %T
-                 i32 17, label %D
-                 i32 1234, label %E
-        ]
-;; V != 4, 17, 1234 here.
-A:              ; preds = %0
-        call void @foo1( )
-        ;; This switch is always statically determined.
-        switch i32 %V, label %E [
-                 i32 4, label %C
-                 i32 17, label %C
-                 i32 42, label %D
-        ]
-;; unreacahble.
-C:              ; preds = %A, %A
-        call void @DEAD( )
-        ret void
-T:              ; preds = %0
-        call void @foo1( )
-        call void @foo1( )
-        ret void
-D:              ; preds = %A, %0
-        call void @foo1( )
-        ret void
-E:              ; preds = %A, %0
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
deleted file mode 100644
index a73a82b..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | grep {volatile load}
-; PR2967
-
-target datalayout =
-"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32"
-target triple = "i386-pc-linux-gnu"
-
-define void @foo(i32 %x) nounwind {
-entry:
-        %0 = icmp eq i32 %x, 0          ; <i1> [#uses=1]
-        br i1 %0, label %bb, label %return
-
-bb:             ; preds = %entry
-        %1 = volatile load i32* null            ; <i32> [#uses=0]
-        unreachable
-        br label %return
-return:         ; preds = %entry
-        ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.dbg.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.dbg.ll
deleted file mode 100644
index 62d4a43..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.dbg.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-        %llvm.dbg.anchor.type = type { i32, i32 }
-        %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
-
- at llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"		; 
-
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata"		; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata"	; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata"		; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata"		; <%llvm.dbg.compile_unit.type*> [#uses=1]
-
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
-
-define i1 @qux(i8* %m, i8* %n, i8* %o, i8* %p) nounwind  {
-entry:
-        %tmp7 = icmp eq i8* %m, %n
-        br i1 %tmp7, label %bb, label %UnifiedReturnBlock
-
-bb:
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
-        %tmp15 = icmp eq i8* %o, %p
-        br label %UnifiedReturnBlock
-
-UnifiedReturnBlock:
-        %result = phi i1 [ 0, %entry ], [ %tmp15, %bb ]
-        ret i1 %result
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll b/libclamav/c++/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
deleted file mode 100644
index 19814ad..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -simplifycfg | llvm-dis | not grep br
-
-define i1 @qux(i8* %m, i8* %n, i8* %o, i8* %p) nounwind  {
-entry:
-        %tmp7 = icmp eq i8* %m, %n
-        br i1 %tmp7, label %bb, label %UnifiedReturnBlock
-
-bb:
-        %tmp15 = icmp eq i8* %o, %p
-        br label %UnifiedReturnBlock
-
-UnifiedReturnBlock:
-        %result = phi i1 [ 0, %entry ], [ %tmp15, %bb ]
-        ret i1 %result
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2005-05-20-sprintf-crash.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2005-05-20-sprintf-crash.ll
deleted file mode 100644
index 860a6eb..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2005-05-20-sprintf-crash.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls -disable-output
-
- at G = constant [3 x i8] c"%s\00"		; <[3 x i8]*> [#uses=1]
-
-declare i32 @sprintf(i8*, i8*, ...)
-
-define void @foo(i8* %P, i32* %X) {
-	call i32 (i8*, i8*, ...)* @sprintf( i8* %P, i8* getelementptr ([3 x i8]* @G, i32 0, i32 0), i32* %X )		; <i32>:1 [#uses=0]
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll
deleted file mode 100644
index 5a56d24..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; PR1307
-; RUN: llvm-as < %s | opt -simplify-libcalls -instcombine | llvm-dis > %t
-; RUN: grep {@str,.*i64 3} %t
-; RUN: grep {@str1,.*i64 7} %t
-; RUN: grep {ret i8.*null} %t
-; END.
-
- at str = internal constant [5 x i8] c"foog\00"
- at str1 = internal constant [8 x i8] c"blahhh!\00"
- at str2 = internal constant [5 x i8] c"Ponk\00"
-
-define i8* @test1() {
-        %tmp3 = tail call i8* @strchr( i8* getelementptr ([5 x i8]* @str, i32 0, i32 2), i32 103 )              ; <i8*> [#uses=1]
-        ret i8* %tmp3
-}
-
-declare i8* @strchr(i8*, i32)
-
-define i8* @test2() {
-        %tmp3 = tail call i8* @strchr( i8* getelementptr ([8 x i8]* @str1, i32 0, i32 2), i32 0 )               ; <i8*> [#uses=1]
-        ret i8* %tmp3
-}
-
-define i8* @test3() {
-entry:
-        %tmp3 = tail call i8* @strchr( i8* getelementptr ([5 x i8]* @str2, i32 0, i32 1), i32 80 )              ; <i8*> [#uses=1]
-        ret i8* %tmp3
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2008-05-19-memcmp.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2008-05-19-memcmp.ll
deleted file mode 100644
index b6c0ffd..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2008-05-19-memcmp.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep i32
-; PR2341
-
- at _2E_str = external constant [5 x i8]		; <[5 x i8]*> [#uses=1]
-
-declare i32 @memcmp(i8*, i8*, i32) nounwind readonly 
-
-define i1 @f(i8** %start_addr) {
-entry:
-	%tmp4 = load i8** %start_addr, align 4		; <i8*> [#uses=1]
-	%tmp5 = call i32 @memcmp( i8* %tmp4, i8* getelementptr ([5 x i8]* @_2E_str, i32 0, i32 0), i32 4 ) nounwind readonly 		; <i32> [#uses=1]
-	%tmp6 = icmp eq i32 %tmp5, 0		; <i1> [#uses=1]
-	ret i1 %tmp6
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-01-04-Annotate.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-01-04-Annotate.ll
deleted file mode 100644
index fcaf12e..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-01-04-Annotate.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis > %t
-; RUN: grep noalias %t | count 2
-; RUN: grep nocapture %t | count 3
-; RUN: grep nounwind %t | count 3
-; RUN: grep readonly %t | count 1
-
-declare i8* @fopen(i8*, i8*)
-declare i8 @strlen(i8*)
-declare i32* @realloc(i32*, i32)
-
-; Test deliberately wrong declaration
-declare i32 @strcpy(...)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-02-11-NotInitialized.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-02-11-NotInitialized.ll
deleted file mode 100644
index 551a2bb..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-02-11-NotInitialized.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -simplify-libcalls -functionattrs | \
-; RUN:   llvm-dis | grep nocapture | count 2
-; Check that nocapture attributes are added when run after an SCC pass.
-; PR3520
-
-define i32 @use(i8* %x) nounwind readonly {
-entry:
-	%0 = tail call i64 @strlen(i8* %x) nounwind readonly		; <i64> [#uses=1]
-	%1 = trunc i64 %0 to i32		; <i32> [#uses=1]
-	ret i32 %1
-}
-
-declare i64 @strlen(i8*) nounwind readonly
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-02-12-StrTo.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-02-12-StrTo.ll
deleted file mode 100644
index 4aeff1c..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-02-12-StrTo.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis > %t
-; RUN: grep nocapture %t | count 2
-; RUN: grep null %t | grep nocapture | count 1
-; RUN: grep null %t | grep call | grep readonly | count 1
-
-; Test that we add nocapture to the declaration, and to the second call only.
-
-declare float @strtol(i8* %s, i8** %endptr, i32 %base)
-
-define void @foo(i8* %x, i8** %endptr) {
-  call float @strtol(i8* %x, i8** %endptr, i32 10)
-  call float @strtol(i8* %x, i8** null, i32 10)
-  ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-05-30-memcmp-byte.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-05-30-memcmp-byte.ll
deleted file mode 100644
index f720993..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-05-30-memcmp-byte.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls -instcombine | llvm-dis | grep {ret i32 -65}
-; PR4284
-
-define i32 @test() nounwind {
-entry:
-	%c0 = alloca i8, align 1		; <i8*> [#uses=2]
-	%c2 = alloca i8, align 1		; <i8*> [#uses=2]
-	store i8 64, i8* %c0
-	store i8 -127, i8* %c2
-	%call = call i32 @memcmp(i8* %c0, i8* %c2, i32 1)		; <i32> [#uses=1]
-	ret i32 %call
-}
-
-declare i32 @memcmp(i8*, i8*, i32)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-07-28-Exit.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-07-28-Exit.ll
deleted file mode 100644
index e4d9f89..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-07-28-Exit.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls -disable-output
-; PR4641
-
-	%struct.__sFILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, i8*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64, %struct.pthread_mutex*, %struct.pthread*, i32, i32, %union.anon }
-	%struct.__sbuf = type { i8*, i32, [4 x i8] }
-	%struct.pthread = type opaque
-	%struct.pthread_mutex = type opaque
-	%union.anon = type { i64, [120 x i8] }
- at .str13 = external constant [2 x i8]		; <[2 x i8]*> [#uses=1]
- at .str14 = external constant [2 x i8]		; <[2 x i8]*> [#uses=1]
-
-define i32 @main(i32 %argc, i8** %argv) nounwind {
-entry:
-	call void @exit(i32 0) nounwind
-	%cond392 = select i1 undef, i8* getelementptr ([2 x i8]* @.str13, i32 0, i32 0), i8* getelementptr ([2 x i8]* @.str14, i32 0, i32 0)		; <i8*> [#uses=1]
-	%call393 = call %struct.__sFILE* @fopen(i8* undef, i8* %cond392) nounwind		; <%struct.__sFILE*> [#uses=0]
-	unreachable
-}
-
-declare %struct.__sFILE* @fopen(i8*, i8*)
-
-declare void @exit(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-07-29-Exit2.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-07-29-Exit2.ll
deleted file mode 100644
index 6fad326..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/2009-07-29-Exit2.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls -disable-output
-; PR4645
-
-define i32 @main() {
-entry:
-	br label %if.then
-
-lor.lhs.false:		; preds = %while.body
-	br i1 undef, label %if.then, label %for.cond
-
-if.then:		; preds = %lor.lhs.false, %while.body
-	call void @exit(i32 1)
-	br label %for.cond
-
-for.cond:		; preds = %for.end, %if.then, %lor.lhs.false
-	%j.0 = phi i32 [ %inc47, %for.end ], [ 0, %if.then ], [ 0, %lor.lhs.false ]		; <i32> [#uses=1]
-	unreachable
-
-for.end:		; preds = %for.cond20
-	%inc47 = add i32 %j.0, 1		; <i32> [#uses=1]
-	br label %for.cond
-}
-
-declare void @exit(i32)
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/ExitInMain.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/ExitInMain.ll
deleted file mode 100644
index 8abf3b1..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/ExitInMain.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; Test that the ExitInMainOptimization pass works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:    grep {ret i32 3} | count 1
-; END.
-
-declare void @exit(i32)
-
-declare void @exitonly(i32)
-
-define i32 @main() {
-	call void @exitonly( i32 3 )
-	call void @exit( i32 3 )
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/FFS.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/FFS.ll
deleted file mode 100644
index d6a504a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/FFS.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; Test that the ToAsciiOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*@ffs}
-
- at non_const = external global i32		; <i32*> [#uses=1]
-
-declare i32 @ffs(i32)
-
-declare i32 @ffsl(i32)
-
-declare i32 @ffsll(i64)
-
-define i32 @main() {
-	%arg = load i32* @non_const		; <i32> [#uses=1]
-	%val0 = call i32 @ffs( i32 %arg )		; <i32> [#uses=1]
-	%val1 = call i32 @ffs( i32 1 )		; <i32> [#uses=1]
-	%val2 = call i32 @ffs( i32 2048 )		; <i32> [#uses=1]
-	%val3 = call i32 @ffsl( i32 65536 )		; <i32> [#uses=1]
-	%val4 = call i32 @ffsll( i64 1024 )		; <i32> [#uses=1]
-	%val5 = call i32 @ffsll( i64 17179869184 )		; <i32> [#uses=1]
-	%val6 = call i32 @ffsll( i64 1152921504606846976 )		; <i32> [#uses=1]
-	%rslt1 = add i32 %val1, %val2		; <i32> [#uses=1]
-	%rslt2 = add i32 %val3, %val4		; <i32> [#uses=1]
-	%rslt3 = add i32 %val5, %val6		; <i32> [#uses=1]
-	%rslt4 = add i32 %rslt1, %rslt2		; <i32> [#uses=1]
-	%rslt5 = add i32 %rslt4, %rslt3		; <i32> [#uses=2]
-	%rslt6 = add i32 %rslt5, %val0		; <i32> [#uses=0]
-	ret i32 %rslt5
-}
-
-
-; PR4206
-define i32 @a(i64) nounwind {
-        %2 = call i32 @ffsll(i64 %0)            ; <i32> [#uses=1]
-        ret i32 %2
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/FPrintF.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/FPrintF.ll
deleted file mode 100644
index 2ac9f14..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/FPrintF.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; Test that the FPrintFOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*fprintf}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
-	%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [52 x i8] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
- at str = constant [3 x i8] c"%s\00"		; <[3 x i8]*> [#uses=1]
- at chr = constant [3 x i8] c"%c\00"		; <[3 x i8]*> [#uses=1]
- at hello = constant [13 x i8] c"hello world\0A\00"		; <[13 x i8]*> [#uses=1]
- at stdout = external global %struct._IO_FILE*		; <%struct._IO_FILE**> [#uses=3]
-
-declare i32 @fprintf(%struct._IO_FILE*, i8*, ...)
-
-define i32 @foo() {
-entry:
-	%tmp.1 = load %struct._IO_FILE** @stdout		; <%struct._IO_FILE*> [#uses=1]
-	%tmp.0 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf( %struct._IO_FILE* %tmp.1, i8* getelementptr ([13 x i8]* @hello, i32 0, i32 0) )		; <i32> [#uses=0]
-	%tmp.4 = load %struct._IO_FILE** @stdout		; <%struct._IO_FILE*> [#uses=1]
-	%tmp.3 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf( %struct._IO_FILE* %tmp.4, i8* getelementptr ([3 x i8]* @str, i32 0, i32 0), i8* getelementptr ([13 x i8]* @hello, i32 0, i32 0) )		; <i32> [#uses=0]
-	%tmp.8 = load %struct._IO_FILE** @stdout		; <%struct._IO_FILE*> [#uses=1]
-	%tmp.7 = call i32 (%struct._IO_FILE*, i8*, ...)* @fprintf( %struct._IO_FILE* %tmp.8, i8* getelementptr ([3 x i8]* @chr, i32 0, i32 0), i32 33 )		; <i32> [#uses=0]
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/IsDigit.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/IsDigit.ll
deleted file mode 100644
index a290e01..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/IsDigit.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; Test that the IsDigitOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep call
-
-declare i32 @isdigit(i32)
-
-declare i32 @isascii(i32)
-
-define i32 @main() {
-	%val1 = call i32 @isdigit( i32 47 )		; <i32> [#uses=1]
-	%val2 = call i32 @isdigit( i32 48 )		; <i32> [#uses=1]
-	%val3 = call i32 @isdigit( i32 57 )		; <i32> [#uses=1]
-	%val4 = call i32 @isdigit( i32 58 )		; <i32> [#uses=1]
-	%rslt1 = add i32 %val1, %val2		; <i32> [#uses=1]
-	%rslt2 = add i32 %val3, %val4		; <i32> [#uses=1]
-	%sum = add i32 %rslt1, %rslt2		; <i32> [#uses=1]
-	%rslt = call i32 @isdigit( i32 %sum )		; <i32> [#uses=1]
-	%tmp = call i32 @isascii( i32 %rslt )		; <i32> [#uses=1]
-	ret i32 %tmp
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/MemCpy.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/MemCpy.ll
deleted file mode 100644
index 4e33b07..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/MemCpy.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -constprop -instcombine | llvm-dis | not grep {call.*llvm.memcpy.i32}
-
- at h = constant [2 x i8] c"h\00"		; <[2 x i8]*> [#uses=1]
- at hel = constant [4 x i8] c"hel\00"		; <[4 x i8]*> [#uses=1]
- at hello_u = constant [8 x i8] c"hello_u\00"		; <[8 x i8]*> [#uses=1]
-
-declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
-
-define i32 @main() {
-	%h_p = getelementptr [2 x i8]* @h, i32 0, i32 0		; <i8*> [#uses=1]
-	%hel_p = getelementptr [4 x i8]* @hel, i32 0, i32 0		; <i8*> [#uses=1]
-	%hello_u_p = getelementptr [8 x i8]* @hello_u, i32 0, i32 0		; <i8*> [#uses=1]
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%target_p = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=3]
-	call void @llvm.memcpy.i32( i8* %target_p, i8* %h_p, i32 2, i32 2 )
-	call void @llvm.memcpy.i32( i8* %target_p, i8* %hel_p, i32 4, i32 4 )
-	call void @llvm.memcpy.i32( i8* %target_p, i8* %hello_u_p, i32 8, i32 8 )
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/Printf.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/Printf.ll
deleted file mode 100644
index c892f03..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/Printf.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep putchar
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*printf}
-
- at str = internal constant [13 x i8] c"hello world\0A\00"         ; <[13 x i8]*> [#uses=1]
- at str1 = internal constant [2 x i8] c"h\00"              ; <[2 x i8]*> [#uses=1]
-
-define void @foo() {
-entry:
-        %tmp1 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([13 x i8]* @str, i32 0, i32 0) )         ; <i32> [#uses=0]
-        ret void
-}
-
-declare i32 @printf(i8*, ...)
-
-define void @bar() {
-entry:
-        %tmp1 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([2 x i8]* @str1, i32 0, i32 0) )         ; <i32> [#uses=0]
-        ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/Puts.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/Puts.ll
deleted file mode 100644
index 6753db8..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/Puts.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; Test that the PutsCatOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*fputs}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
-	%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i32, [52 x i8] }
-	%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
- at stdout = external global %struct._IO_FILE*		; <%struct._IO_FILE**> [#uses=1]
- at empty = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
- at len1 = constant [2 x i8] c"A\00"		; <[2 x i8]*> [#uses=1]
- at long = constant [7 x i8] c"hello\0A\00"		; <[7 x i8]*> [#uses=1]
-
-declare i32 @fputs(i8*, %struct._IO_FILE*)
-
-define i32 @main() {
-entry:
-	%out = load %struct._IO_FILE** @stdout		; <%struct._IO_FILE*> [#uses=3]
-	%s1 = getelementptr [1 x i8]* @empty, i32 0, i32 0		; <i8*> [#uses=1]
-	%s2 = getelementptr [2 x i8]* @len1, i32 0, i32 0		; <i8*> [#uses=1]
-	%s3 = getelementptr [7 x i8]* @long, i32 0, i32 0		; <i8*> [#uses=1]
-	%a = call i32 @fputs( i8* %s1, %struct._IO_FILE* %out )		; <i32> [#uses=0]
-	%b = call i32 @fputs( i8* %s2, %struct._IO_FILE* %out )		; <i32> [#uses=0]
-	%c = call i32 @fputs( i8* %s3, %struct._IO_FILE* %out )		; <i32> [#uses=0]
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/SPrintF.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/SPrintF.ll
deleted file mode 100644
index 6b15256..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/SPrintF.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; Test that the SPrintFOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*sprintf}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
- at null_hello = constant [7 x i8] c"\00hello\00"		; <[7 x i8]*> [#uses=1]
- at fmt1 = constant [3 x i8] c"%s\00"		; <[3 x i8]*> [#uses=1]
- at fmt2 = constant [3 x i8] c"%c\00"		; <[3 x i8]*> [#uses=1]
-
-declare i32 @sprintf(i8*, i8*, ...)
-
-declare i32 @puts(i8*)
-
-define i32 @foo(i8* %p) {
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%target_p = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=7]
-	%hello_p = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=2]
-	%null_p = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%nh_p = getelementptr [7 x i8]* @null_hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%fmt1_p = getelementptr [3 x i8]* @fmt1, i32 0, i32 0		; <i8*> [#uses=2]
-	%fmt2_p = getelementptr [3 x i8]* @fmt2, i32 0, i32 0		; <i8*> [#uses=1]
-	store i8 0, i8* %target_p
-	%r1 = call i32 (i8*, i8*, ...)* @sprintf( i8* %target_p, i8* %hello_p )		; <i32> [#uses=1]
-	%r2 = call i32 (i8*, i8*, ...)* @sprintf( i8* %target_p, i8* %null_p )		; <i32> [#uses=1]
-	%r3 = call i32 (i8*, i8*, ...)* @sprintf( i8* %target_p, i8* %nh_p )		; <i32> [#uses=1]
-	%r4 = call i32 (i8*, i8*, ...)* @sprintf( i8* %target_p, i8* %fmt1_p, i8* %hello_p )		; <i32> [#uses=1]
-	%r4.1 = call i32 (i8*, i8*, ...)* @sprintf( i8* %target_p, i8* %fmt1_p, i8* %p )		; <i32> [#uses=1]
-	%r5 = call i32 (i8*, i8*, ...)* @sprintf( i8* %target_p, i8* %fmt2_p, i32 82 )		; <i32> [#uses=1]
-	%r6 = add i32 %r1, %r2		; <i32> [#uses=1]
-	%r7 = add i32 %r3, %r6		; <i32> [#uses=1]
-	%r8 = add i32 %r5, %r7		; <i32> [#uses=1]
-	%r9 = add i32 %r8, %r4		; <i32> [#uses=1]
-	%r10 = add i32 %r9, %r4.1		; <i32> [#uses=1]
-	ret i32 %r10
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCat.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCat.ll
deleted file mode 100644
index a2e1f3a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCat.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-; Test that the StrCatOptimizer works correctly
-; PR3661
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*strcat}
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   grep {puts.*%arg1}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
- at null_hello = constant [7 x i8] c"\00hello\00"		; <[7 x i8]*> [#uses=1]
-
-declare i8* @strcat(i8*, i8*)
-
-declare i32 @puts(i8*)
-
-define i32 @main() {
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%arg1 = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=2]
-	store i8 0, i8* %arg1
-	%arg2 = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt1 = call i8* @strcat( i8* %arg1, i8* %arg2 )		; <i8*> [#uses=1]
-	%arg3 = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt2 = call i8* @strcat( i8* %rslt1, i8* %arg3 )		; <i8*> [#uses=1]
-	%arg4 = getelementptr [7 x i8]* @null_hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt3 = call i8* @strcat( i8* %rslt2, i8* %arg4 )		; <i8*> [#uses=1]
-	call i32 @puts( i8* %rslt3 )		; <i32>:1 [#uses=0]
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrChr.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrChr.ll
deleted file mode 100644
index 89e846f..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrChr.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; Test that the StrChrOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*@strchr}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
- at hello = constant [14 x i8] c"hello world\5Cn\00"		; <[14 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
-
-declare i8* @strchr(i8*, i32)
-
-declare i32 @puts(i8*)
-
-define i32 @main() {
-	%hello_p = getelementptr [14 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=2]
-	%null_p = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%world = call i8* @strchr( i8* %hello_p, i32 119 )		; <i8*> [#uses=1]
-	%ignore = call i8* @strchr( i8* %null_p, i32 119 )		; <i8*> [#uses=0]
-	%len = call i32 @puts( i8* %world )		; <i32> [#uses=1]
-	%index = add i32 %len, 112		; <i32> [#uses=2]
-	%result = call i8* @strchr( i8* %hello_p, i32 %index )		; <i8*> [#uses=0]
-	ret i32 %index
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCmp.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCmp.ll
deleted file mode 100644
index ae28e4a..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCmp.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; Test that the StrCmpOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*strcmp}
-
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=1]
- at hell = constant [5 x i8] c"hell\00"		; <[5 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
-
-declare i32 @strcmp(i8*, i8*)
-
-declare i32 @puts(i8*)
-
-define i32 @main() {
-	%hello_p = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=5]
-	%hell_p = getelementptr [5 x i8]* @hell, i32 0, i32 0		; <i8*> [#uses=1]
-	%null_p = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=4]
-	%temp1 = call i32 @strcmp( i8* %hello_p, i8* %hello_p )		; <i32> [#uses=1]
-	%temp2 = call i32 @strcmp( i8* %null_p, i8* %null_p )		; <i32> [#uses=1]
-	%temp3 = call i32 @strcmp( i8* %hello_p, i8* %null_p )		; <i32> [#uses=1]
-	%temp4 = call i32 @strcmp( i8* %null_p, i8* %hello_p )		; <i32> [#uses=1]
-	%temp5 = call i32 @strcmp( i8* %hell_p, i8* %hello_p )		; <i32> [#uses=1]
-	%rslt1 = add i32 %temp1, %temp2		; <i32> [#uses=1]
-	%rslt2 = add i32 %rslt1, %temp3		; <i32> [#uses=1]
-	%rslt3 = add i32 %rslt2, %temp4		; <i32> [#uses=1]
-	%rslt4 = add i32 %rslt3, %temp5		; <i32> [#uses=1]
-	ret i32 %rslt4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCpy.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCpy.ll
deleted file mode 100644
index 9dc01b3..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCpy.ll
+++ /dev/null
@@ -1,30 +0,0 @@
-; Test that the StrCpyOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*strcpy}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
- at null_hello = constant [7 x i8] c"\00hello\00"		; <[7 x i8]*> [#uses=1]
-
-declare i8* @strcpy(i8*, i8*)
-
-declare i32 @puts(i8*)
-
-define i32 @main() {
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%arg1 = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=2]
-	store i8 0, i8* %arg1
-	%arg2 = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt1 = call i8* @strcpy( i8* %arg1, i8* %arg2 )		; <i8*> [#uses=1]
-	%arg3 = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt2 = call i8* @strcpy( i8* %rslt1, i8* %arg3 )		; <i8*> [#uses=1]
-	%arg4 = getelementptr [7 x i8]* @null_hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt3 = call i8* @strcpy( i8* %rslt2, i8* %arg4 )		; <i8*> [#uses=1]
-	call i32 @puts( i8* %rslt3 )		; <i32>:1 [#uses=0]
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrLen.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrLen.ll
deleted file mode 100644
index 521a224..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrLen.ll
+++ /dev/null
@@ -1,56 +0,0 @@
-; Test that the StrCatOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:    not grep {call.*strlen}
-
-target datalayout = "e-p:32:32"
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=3]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=3]
- at null_hello = constant [7 x i8] c"\00hello\00"		; <[7 x i8]*> [#uses=1]
-
-declare i32 @strlen(i8*)
-
-define i32 @test1() {
-	%hello_p = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%hello_l = call i32 @strlen( i8* %hello_p )		; <i32> [#uses=1]
-	ret i32 %hello_l
-}
-
-define i32 @test2() {
-	%null_p = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%null_l = call i32 @strlen( i8* %null_p )		; <i32> [#uses=1]
-	ret i32 %null_l
-}
-
-define i32 @test3() {
-	%null_hello_p = getelementptr [7 x i8]* @null_hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%null_hello_l = call i32 @strlen( i8* %null_hello_p )		; <i32> [#uses=1]
-	ret i32 %null_hello_l
-}
-
-define i1 @test4() {
-	%hello_p = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%hello_l = call i32 @strlen( i8* %hello_p )		; <i32> [#uses=1]
-	%eq_hello = icmp eq i32 %hello_l, 0		; <i1> [#uses=1]
-	ret i1 %eq_hello
-}
-
-define i1 @test5() {
-	%null_p = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%null_l = call i32 @strlen( i8* %null_p )		; <i32> [#uses=1]
-	%eq_null = icmp eq i32 %null_l, 0		; <i1> [#uses=1]
-	ret i1 %eq_null
-}
-
-define i1 @test6() {
-	%hello_p = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%hello_l = call i32 @strlen( i8* %hello_p )		; <i32> [#uses=1]
-	%ne_hello = icmp ne i32 %hello_l, 0		; <i1> [#uses=1]
-	ret i1 %ne_hello
-}
-
-define i1 @test7() {
-	%null_p = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%null_l = call i32 @strlen( i8* %null_p )		; <i32> [#uses=1]
-	%ne_null = icmp ne i32 %null_l, 0		; <i1> [#uses=1]
-	ret i1 %ne_null
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCat.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCat.ll
deleted file mode 100644
index 7ae7097..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCat.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; Test that the StrNCatOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*strncat}
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   grep {puts.*%arg1}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
- at null_hello = constant [7 x i8] c"\00hello\00"		; <[7 x i8]*> [#uses=1]
-
-declare i8* @strncat(i8*, i8*, i32)
-
-declare i32 @puts(i8*)
-
-define i32 @main() {
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%arg1 = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=2]
-	store i8 0, i8* %arg1
-	%arg2 = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt1 = call i8* @strncat( i8* %arg1, i8* %arg2, i32 6 )		; <i8*> [#uses=1]
-	%arg3 = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt2 = call i8* @strncat( i8* %rslt1, i8* %arg3, i32 42 )		; <i8*> [#uses=1]
-	%arg4 = getelementptr [7 x i8]* @null_hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt3 = call i8* @strncat( i8* %rslt2, i8* %arg4, i32 42 )		; <i8*> [#uses=1]
-	call i32 @puts( i8* %rslt3 )		; <i32>:1 [#uses=0]
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCmp.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCmp.ll
deleted file mode 100644
index f85394d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCmp.ll
+++ /dev/null
@@ -1,28 +0,0 @@
-; Test that the StrNCmpOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*strncmp}
-
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=1]
- at hell = constant [5 x i8] c"hell\00"		; <[5 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
-
-declare i32 @strncmp(i8*, i8*, i32)
-
-declare i32 @puts(i8*)
-
-define i32 @main() {
-	%hello_p = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=5]
-	%hell_p = getelementptr [5 x i8]* @hell, i32 0, i32 0		; <i8*> [#uses=1]
-	%null_p = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=4]
-	%temp1 = call i32 @strncmp( i8* %hello_p, i8* %hello_p, i32 5 )		; <i32> [#uses=1]
-	%temp2 = call i32 @strncmp( i8* %null_p, i8* %null_p, i32 0 )		; <i32> [#uses=1]
-	%temp3 = call i32 @strncmp( i8* %hello_p, i8* %null_p, i32 0 )		; <i32> [#uses=1]
-	%temp4 = call i32 @strncmp( i8* %null_p, i8* %hello_p, i32 0 )		; <i32> [#uses=1]
-	%temp5 = call i32 @strncmp( i8* %hell_p, i8* %hello_p, i32 4 )		; <i32> [#uses=1]
-	%rslt1 = add i32 %temp1, %temp2		; <i32> [#uses=1]
-	%rslt2 = add i32 %rslt1, %temp3		; <i32> [#uses=1]
-	%rslt3 = add i32 %rslt2, %temp4		; <i32> [#uses=1]
-	%rslt4 = add i32 %rslt3, %temp5		; <i32> [#uses=1]
-	ret i32 %rslt4
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCpy.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCpy.ll
deleted file mode 100644
index b3b66b0..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCpy.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; Test that the StrNCpyOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*strncpy}
-
-; This transformation requires the pointer size, as it assumes that size_t is
-; the size of a pointer.
-target datalayout = "-p:64:64:64"
-
- at hello = constant [6 x i8] c"hello\00"		; <[6 x i8]*> [#uses=1]
- at null = constant [1 x i8] zeroinitializer		; <[1 x i8]*> [#uses=1]
- at null_hello = constant [7 x i8] c"\00hello\00"		; <[7 x i8]*> [#uses=1]
-
-declare i8* @strncpy(i8*, i8*, i32)
-
-declare i32 @puts(i8*)
-
-define i32 @main() {
-	%target = alloca [1024 x i8]		; <[1024 x i8]*> [#uses=1]
-	%arg1 = getelementptr [1024 x i8]* %target, i32 0, i32 0		; <i8*> [#uses=2]
-	store i8 0, i8* %arg1
-	%arg2 = getelementptr [6 x i8]* @hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt1 = call i8* @strncpy( i8* %arg1, i8* %arg2, i32 6 )		; <i8*> [#uses=1]
-	%arg3 = getelementptr [1 x i8]* @null, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt2 = call i8* @strncpy( i8* %rslt1, i8* %arg3, i32 42 )		; <i8*> [#uses=1]
-	%arg4 = getelementptr [7 x i8]* @null_hello, i32 0, i32 0		; <i8*> [#uses=1]
-	%rslt3 = call i8* @strncpy( i8* %rslt2, i8* %arg4, i32 42 )		; <i8*> [#uses=1]
-	call i32 @puts( i8* %rslt3 )		; <i32>:1 [#uses=0]
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/ToAscii.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/ToAscii.ll
deleted file mode 100644
index 9200d2f..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/ToAscii.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; Test that the ToAsciiOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | \
-; RUN:   not grep {call.*toascii}
-
-declare i32 @toascii(i32)
-
-define i32 @main() {
-	%val1 = call i32 @toascii( i32 1 )		; <i32> [#uses=1]
-	%val2 = call i32 @toascii( i32 0 )		; <i32> [#uses=1]
-	%val3 = call i32 @toascii( i32 127 )		; <i32> [#uses=1]
-	%val4 = call i32 @toascii( i32 128 )		; <i32> [#uses=1]
-	%val5 = call i32 @toascii( i32 255 )		; <i32> [#uses=1]
-	%val6 = call i32 @toascii( i32 256 )		; <i32> [#uses=1]
-	%rslt1 = add i32 %val1, %val2		; <i32> [#uses=1]
-	%rslt2 = add i32 %val3, %val4		; <i32> [#uses=1]
-	%rslt3 = add i32 %val5, %val6		; <i32> [#uses=1]
-	%rslt4 = add i32 %rslt1, %rslt2		; <i32> [#uses=1]
-	%rslt5 = add i32 %rslt4, %rslt3		; <i32> [#uses=1]
-	ret i32 %rslt5
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/abs.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/abs.ll
deleted file mode 100644
index 520189b..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/abs.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep {select i1 %ispos}
-; PR2337
-
-define i32 @test(i32 %x) {
-entry:
-	%call = call i32 @abs( i32 %x )		; <i32> [#uses=1]
-	ret i32 %call
-}
-
-declare i32 @abs(i32)
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/dg.exp b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/exp2.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/exp2.ll
deleted file mode 100644
index dea3df4..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/exp2.ll
+++ /dev/null
@@ -1,38 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep {call.*ldexp} | count 4
-; rdar://5852514
-
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin8"
-
-define double @t1(i32 %x) nounwind  {
-entry:
-	%tmp12 = sitofp i32 %x to double		; <double> [#uses=1]
-	%exp2 = tail call double @exp2( double %tmp12 )		; <double> [#uses=1]
-	ret double %exp2
-}
-
-define float @t4(i8 zeroext  %x) nounwind  {
-entry:
-	%tmp12 = uitofp i8 %x to float		; <float> [#uses=1]
-	%tmp3 = tail call float @exp2f( float %tmp12 ) nounwind readonly 		; <float> [#uses=1]
-	ret float %tmp3
-}
-
-declare float @exp2f(float) nounwind readonly 
-
-define double @t3(i16 zeroext  %x) nounwind  {
-entry:
-	%tmp12 = uitofp i16 %x to double		; <double> [#uses=1]
-	%exp2 = tail call double @exp2( double %tmp12 )		; <double> [#uses=1]
-	ret double %exp2
-}
-
-define double @t2(i16 signext  %x) nounwind  {
-entry:
-	%tmp12 = sitofp i16 %x to double		; <double> [#uses=1]
-	%exp2 = tail call double @exp2( double %tmp12 )		; <double> [#uses=1]
-	ret double %exp2
-}
-
-declare double @exp2(double)
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/floor.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/floor.ll
deleted file mode 100644
index 31eb3f6..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/floor.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis > %t
-; RUN: not grep {call.*floor(} %t
-; RUN: grep {call.*floorf(} %t
-; RUN: not grep {call.*ceil(} %t
-; RUN: grep {call.*ceilf(} %t
-; RUN: not grep {call.*nearbyint(} %t
-; RUN: grep {call.*nearbyintf(} %t
-; XFAIL: sparc
-
-declare double @floor(double)
-
-declare double @ceil(double)
-
-declare double @nearbyint(double)
-
-define float @test_floor(float %C) {
-	%D = fpext float %C to double		; <double> [#uses=1]
-        ; --> floorf
-	%E = call double @floor( double %D )		; <double> [#uses=1]
-	%F = fptrunc double %E to float		; <float> [#uses=1]
-	ret float %F
-}
-
-define float @test_ceil(float %C) {
-	%D = fpext float %C to double		; <double> [#uses=1]
-	; --> ceilf
-        %E = call double @ceil( double %D )		; <double> [#uses=1]
-	%F = fptrunc double %E to float		; <float> [#uses=1]
-	ret float %F
-}
-
-define float @test_nearbyint(float %C) {
-	%D = fpext float %C to double		; <double> [#uses=1]
-	; --> nearbyintf
-        %E = call double @nearbyint( double %D )		; <double> [#uses=1]
-	%F = fptrunc double %E to float		; <float> [#uses=1]
-	ret float %F
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/half-powr.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/half-powr.ll
deleted file mode 100644
index 890e788..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/half-powr.ll
+++ /dev/null
@@ -1,41 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls-halfpowr | llvm-dis | %prcontext {mul float} 1 | grep {mul float} | count 8
-
-define float @__half_powrf4(float %f, float %g) nounwind readnone {
-entry:
-	%0 = fcmp olt float %f, 2.000000e+00		; <i1> [#uses=1]
-	br i1 %0, label %bb, label %bb1
-
-bb:		; preds = %entry
-	%1 = fdiv float %f, 3.000000e+00		; <float> [#uses=1]
-	br label %bb1
-
-bb1:		; preds = %bb, %entry
-	%f_addr.0 = phi float [ %1, %bb ], [ %f, %entry ]		; <float> [#uses=1]
-	%2 = fmul float %f_addr.0, %g		; <float> [#uses=1]
-	ret float %2
-}
-
-define void @foo(float* %p) nounwind {
-entry:
-	%0 = load float* %p, align 4		; <float> [#uses=1]
-	%1 = getelementptr float* %p, i32 1		; <float*> [#uses=1]
-	%2 = load float* %1, align 4		; <float> [#uses=1]
-	%3 = getelementptr float* %p, i32 2		; <float*> [#uses=1]
-	%4 = load float* %3, align 4		; <float> [#uses=1]
-	%5 = getelementptr float* %p, i32 3		; <float*> [#uses=1]
-	%6 = load float* %5, align 4		; <float> [#uses=1]
-	%7 = getelementptr float* %p, i32 4		; <float*> [#uses=1]
-	%8 = load float* %7, align 4		; <float> [#uses=1]
-	%9 = getelementptr float* %p, i32 5		; <float*> [#uses=1]
-	%10 = load float* %9, align 4		; <float> [#uses=1]
-	%11 = tail call float @__half_powrf4(float %0, float %6) nounwind		; <float> [#uses=1]
-	%12 = tail call float @__half_powrf4(float %2, float %8) nounwind		; <float> [#uses=1]
-	%13 = tail call float @__half_powrf4(float %4, float %10) nounwind		; <float> [#uses=1]
-	%14 = getelementptr float* %p, i32 6		; <float*> [#uses=1]
-	store float %11, float* %14, align 4
-	%15 = getelementptr float* %p, i32 7		; <float*> [#uses=1]
-	store float %12, float* %15, align 4
-	%16 = getelementptr float* %p, i32 8		; <float*> [#uses=1]
-	store float %13, float* %16, align 4
-	ret void
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memcmp.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memcmp.ll
deleted file mode 100644
index 7bdbc8d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memcmp.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-; Test that the memcmpOptimizer works correctly
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep {call.*memcmp}
-
- at h = constant [2 x i8] c"h\00"		; <[2 x i8]*> [#uses=0]
- at hel = constant [4 x i8] c"hel\00"		; <[4 x i8]*> [#uses=0]
- at hello_u = constant [8 x i8] c"hello_u\00"		; <[8 x i8]*> [#uses=0]
-
-declare i32 @memcmp(i8*, i8*, i32)
-
-define void @test(i8* %P, i8* %Q, i32 %N, i32* %IP, i1* %BP) {
-	%A = call i32 @memcmp( i8* %P, i8* %P, i32 %N )		; <i32> [#uses=1]
-	volatile store i32 %A, i32* %IP
-	%B = call i32 @memcmp( i8* %P, i8* %Q, i32 0 )		; <i32> [#uses=1]
-	volatile store i32 %B, i32* %IP
-	%C = call i32 @memcmp( i8* %P, i8* %Q, i32 1 )		; <i32> [#uses=1]
-	volatile store i32 %C, i32* %IP
-	%D = call i32 @memcmp( i8* %P, i8* %Q, i32 2 )		; <i32> [#uses=1]
-	%E = icmp eq i32 %D, 0		; <i1> [#uses=1]
-	volatile store i1 %E, i1* %BP
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memmove.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memmove.ll
deleted file mode 100644
index d960960..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memmove.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep {llvm.memmove}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-
-define i8* @test(i8* %a, i8* %b, i32 %x) {
-entry:
-	%call = call i8* @memmove(i8* %a, i8* %b, i32 %x )
-	ret i8* %call
-}
-
-declare i8* @memmove(i8*,i8*,i32)
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memset-64.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memset-64.ll
deleted file mode 100644
index a6a277e..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memset-64.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep {llvm.memset}
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-pc-linux-gnu"
-
-define void @a(i8* %x) nounwind {
-entry:
-	%call = call i8* @memset(i8* %x, i32 1, i64 100)		; <i8*> [#uses=0]
-	ret void
-}
-
-declare i8* @memset(i8*, i32, i64)
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memset.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memset.ll
deleted file mode 100644
index 0c10915..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memset.ll
+++ /dev/null
@@ -1,12 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep {llvm.memset}
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
-target triple = "i686-pc-linux-gnu"
-
-define i8* @test(i8* %a, i32 %b, i32 %x) {
-entry:
-	%call = call i8* @memset(i8* %a, i32 %b, i32 %x )
-	ret i8* %call
-}
-
-declare i8* @memset(i8*,i32,i32)
-
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/pow2.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/pow2.ll
deleted file mode 100644
index a48abba..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/pow2.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; Testcase for calls to the standard C "pow" function
-;
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep {call .pow}
-
-
-declare double @pow(double, double)
-declare float @powf(float, float)
-
-define double @test1(double %X) {
-	%Y = call double @pow( double %X, double 0.000000e+00 )		; <double> [#uses=1]
-	ret double %Y
-}
-
-define double @test2(double %X) {
-	%Y = call double @pow( double %X, double -0.000000e+00 )		; <double> [#uses=1]
-	ret double %Y
-}
-
-define double @test3(double %X) {
-	%Y = call double @pow( double 1.000000e+00, double %X )		; <double> [#uses=1]
-	ret double %Y
-}
-
-define double @test4(double %X) {
-	%Y = call double @pow( double %X, double 2.0)
-	ret double %Y
-}
-
-define float @test4f(float %X) {
-	%Y = call float @powf( float %X, float 2.0)
-	ret float %Y
-}
-
-define float @test5f(float %X) {
-	%Y = call float @powf(float 2.0, float %X)  ;; exp2
-	ret float %Y
-}
diff --git a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/weak-symbols.ll b/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/weak-symbols.ll
deleted file mode 100644
index 970ee0d..0000000
--- a/libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/weak-symbols.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | FileCheck %s
-; PR4738
-
-; SimplifyLibcalls shouldn't assume anything about weak symbols.
-
- at real_init = weak_odr constant [2 x i8] c"y\00"
- at fake_init = weak constant [2 x i8] c"y\00"
- at .str = private constant [2 x i8] c"y\00"
-
-; CHECK: define i32 @foo
-; CHECK: call i32 @strcmp
-define i32 @foo() nounwind {
-entry:
-  %t0 = call i32 @strcmp(i8* getelementptr inbounds ([2 x i8]* @fake_init, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8]* @.str, i64 0, i64 0)) nounwind readonly
-  ret i32 %t0
-}
-
-; CHECK: define i32 @bar
-; CHECK: ret i32 0
-define i32 @bar() nounwind {
-entry:
-  %t0 = call i32 @strcmp(i8* getelementptr inbounds ([2 x i8]* @real_init, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8]* @.str, i64 0, i64 0)) nounwind readonly
-  ret i32 %t0
-}
-
-declare i32 @strcmp(i8*, i8*) nounwind readonly
diff --git a/libclamav/c++/llvm/test/Transforms/StripSymbols/2007-01-15-llvm.used.ll b/libclamav/c++/llvm/test/Transforms/StripSymbols/2007-01-15-llvm.used.ll
deleted file mode 100644
index 16cee15..0000000
--- a/libclamav/c++/llvm/test/Transforms/StripSymbols/2007-01-15-llvm.used.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -strip | llvm-dis | grep foo | count 2
-; RUN: llvm-as < %s | opt -strip | llvm-dis | grep bar | count 2
- at llvm.used = appending global [2 x i8*] [ i8* bitcast (i32* @foo to i8*), i8* bitcast (i32 ()* @bar to i8*) ], section "llvm.metadata"		; <[2 x i8*]*> [#uses=0]
- at foo = internal constant i32 41		; <i32*> [#uses=1]
-
-define internal i32 @bar() nounwind  {
-entry:
-	ret i32 42
-}
-
-define i32 @main() nounwind  {
-entry:
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/StripSymbols/dg.exp b/libclamav/c++/llvm/test/Transforms/StripSymbols/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/StripSymbols/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/accum_recursion.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/accum_recursion.ll
deleted file mode 100644
index e8c28ec..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/accum_recursion.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call
-
-define i32 @factorial(i32 %x) {
-entry:
-	%tmp.1 = icmp sgt i32 %x, 0		; <i1> [#uses=1]
-	br i1 %tmp.1, label %then, label %else
-then:		; preds = %entry
-	%tmp.6 = add i32 %x, -1		; <i32> [#uses=1]
-	%tmp.4 = call i32 @factorial( i32 %tmp.6 )		; <i32> [#uses=1]
-	%tmp.7 = mul i32 %tmp.4, %x		; <i32> [#uses=1]
-	ret i32 %tmp.7
-else:		; preds = %entry
-	ret i32 1
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/accum_recursion_constant_arg.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/accum_recursion_constant_arg.ll
deleted file mode 100644
index 4d63b59..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/accum_recursion_constant_arg.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; This is a more aggressive form of accumulator recursion insertion, which 
-; requires noticing that X doesn't change as we perform the tailcall.  Thanks
-; go out to the anonymous users of the demo script for "suggesting" 
-; optimizations that should be done.  :)
-
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call
-
-define i32 @mul(i32 %x, i32 %y) {
-entry:
-	%tmp.1 = icmp eq i32 %y, 0		; <i1> [#uses=1]
-	br i1 %tmp.1, label %return, label %endif
-endif:		; preds = %entry
-	%tmp.8 = add i32 %y, -1		; <i32> [#uses=1]
-	%tmp.5 = call i32 @mul( i32 %x, i32 %tmp.8 )		; <i32> [#uses=1]
-	%tmp.9 = add i32 %tmp.5, %x		; <i32> [#uses=1]
-	ret i32 %tmp.9
-return:		; preds = %entry
-	ret i32 %x
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/ackermann.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/ackermann.ll
deleted file mode 100644
index f65c666..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/ackermann.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; This function contains two tail calls, which should be eliminated
-; RUN: llvm-as < %s | \
-; RUN:   opt -tailcallelim -stats -disable-output |& grep {2 tailcallelim}
-
-define i32 @Ack(i32 %M.1, i32 %N.1) {
-entry:
-	%tmp.1 = icmp eq i32 %M.1, 0		; <i1> [#uses=1]
-	br i1 %tmp.1, label %then.0, label %endif.0
-then.0:		; preds = %entry
-	%tmp.4 = add i32 %N.1, 1		; <i32> [#uses=1]
-	ret i32 %tmp.4
-endif.0:		; preds = %entry
-	%tmp.6 = icmp eq i32 %N.1, 0		; <i1> [#uses=1]
-	br i1 %tmp.6, label %then.1, label %endif.1
-then.1:		; preds = %endif.0
-	%tmp.10 = add i32 %M.1, -1		; <i32> [#uses=1]
-	%tmp.8 = call i32 @Ack( i32 %tmp.10, i32 1 )		; <i32> [#uses=1]
-	ret i32 %tmp.8
-endif.1:		; preds = %endif.0
-	%tmp.13 = add i32 %M.1, -1		; <i32> [#uses=1]
-	%tmp.17 = add i32 %N.1, -1		; <i32> [#uses=1]
-	%tmp.14 = call i32 @Ack( i32 %M.1, i32 %tmp.17 )		; <i32> [#uses=1]
-	%tmp.11 = call i32 @Ack( i32 %tmp.13, i32 %tmp.14 )		; <i32> [#uses=1]
-	ret i32 %tmp.11
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/dg.exp b/libclamav/c++/llvm/test/Transforms/TailCallElim/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll
deleted file mode 100644
index e20fe18..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | \
-; RUN:    grep {call i32 @foo}
-
-declare void @bar(i32*)
-
-define i32 @foo(i32 %N) {
-	%A = alloca i32, i32 %N		; <i32*> [#uses=2]
-	store i32 17, i32* %A
-	call void @bar( i32* %A )
-	%X = tail call i32 @foo( i32 %N )		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/dont_reorder_load.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/dont_reorder_load.ll
deleted file mode 100644
index 8fbe008..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/dont_reorder_load.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: llvm-as <%s | opt -tailcallelim | llvm-dis | grep call | count 3
-; PR4323
-
-; Several cases where tail call elimination should not move the load above the
-; call, and thus can't eliminate the tail recursion.
-
-
- at extern_weak_global = extern_weak global i32		; <i32*> [#uses=1]
-
-
-; This load can't be safely moved above the call because the load is from an
-; extern_weak global and may trap, but the call may unwind before that happens.
-define fastcc i32 @no_tailrecelim_1(i32* %a_arg, i32 %a_len_arg, i32 %start_arg) readonly {
-entry:
-	%tmp2 = icmp sge i32 %start_arg, %a_len_arg		; <i1> [#uses=1]
-	br i1 %tmp2, label %if, label %else
-
-if:		; preds = %entry
-	unwind
-
-else:		; preds = %entry
-	%tmp7 = add i32 %start_arg, 1		; <i32> [#uses=1]
-	%tmp8 = call fastcc i32 @no_tailrecelim_1(i32* %a_arg, i32 %a_len_arg, i32 %tmp7)		; <i32> [#uses=1]
-	%tmp9 = load i32* @extern_weak_global		; <i32> [#uses=1]
-	%tmp10 = add i32 %tmp9, %tmp8		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
-
-
-; This load can't be safely moved above the call because function may write to the pointer.
-define fastcc i32 @no_tailrecelim_2(i32* %a_arg, i32 %a_len_arg, i32 %start_arg) nounwind {
-entry:
-	%tmp2 = icmp sge i32 %start_arg, %a_len_arg		; <i1> [#uses=1]
-	br i1 %tmp2, label %if, label %else
-
-if:		; preds = %entry
-	store i32 1, i32* %a_arg;
-        ret i32 0;
-
-else:		; preds = %entry
-	%tmp7 = add i32 %start_arg, 1		; <i32> [#uses=1]
-	%tmp8 = call fastcc i32 @no_tailrecelim_2(i32* %a_arg, i32 %a_len_arg, i32 %tmp7)		; <i32> [#uses=1]
-	%tmp9 = load i32* %a_arg		; <i32> [#uses=1]
-	%tmp10 = add i32 %tmp9, %tmp8		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
-
-; This load can't be safely moved above the call because that would change the
-; order in which the volatile loads are performed.
-define fastcc i32 @no_tailrecelim_3(i32* %a_arg, i32 %a_len_arg, i32 %start_arg) nounwind {
-entry:
-	%tmp2 = icmp sge i32 %start_arg, %a_len_arg		; <i1> [#uses=1]
-	br i1 %tmp2, label %if, label %else
-
-if:		; preds = %entry
-        ret i32 0;
-
-else:		; preds = %entry
-	%tmp7 = add i32 %start_arg, 1		; <i32> [#uses=1]
-	%tmp8 = call fastcc i32 @no_tailrecelim_3(i32* %a_arg, i32 %a_len_arg, i32 %tmp7)		; <i32> [#uses=1]
-	%tmp9 = volatile load i32* %a_arg		; <i32> [#uses=1]
-	%tmp10 = add i32 %tmp9, %tmp8		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/inf-recursion.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/inf-recursion.ll
deleted file mode 100644
index fe00f4a..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/inf-recursion.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | grep call
-; Don't turn this into an infinite loop, this is probably the implementation
-; of fabs and we expect the codegen to lower fabs.
-
-define double @fabs(double %f) {
-entry:
-        %tmp2 = call double @fabs( double %f )          ; <double> [#uses=1]
-        ret double %tmp2
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/intervening-inst.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/intervening-inst.ll
deleted file mode 100644
index ae4f509..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/intervening-inst.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; This function contains intervening instructions which should be moved out of the way
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call
-
-define i32 @Test(i32 %X) {
-entry:
-	%tmp.1 = icmp eq i32 %X, 0		; <i1> [#uses=1]
-	br i1 %tmp.1, label %then.0, label %endif.0
-then.0:		; preds = %entry
-	%tmp.4 = add i32 %X, 1		; <i32> [#uses=1]
-	ret i32 %tmp.4
-endif.0:		; preds = %entry
-	%tmp.10 = add i32 %X, -1		; <i32> [#uses=1]
-	%tmp.8 = call i32 @Test( i32 %tmp.10 )		; <i32> [#uses=1]
-	%DUMMY = add i32 %X, 1		; <i32> [#uses=0]
-	ret i32 %tmp.8
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/move_alloca_for_tail_call.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/move_alloca_for_tail_call.ll
deleted file mode 100644
index bd2b93f..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/move_alloca_for_tail_call.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | \
-; RUN:    %prcontext alloca 1 | grep {i32 @foo}
-
-declare void @bar(i32*)
-
-define i32 @foo() {
-	%A = alloca i32		; <i32*> [#uses=2]
-	store i32 17, i32* %A
-	call void @bar( i32* %A )
-	%X = tail call i32 @foo( )		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/reorder_load.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/reorder_load.ll
deleted file mode 100644
index aeb9042..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/reorder_load.ll
+++ /dev/null
@@ -1,101 +0,0 @@
-; RUN: llvm-as <%s | opt -tailcallelim | llvm-dis | not grep call
-; PR4323
-
-; Several cases where tail call elimination should move the load above the call,
-; then eliminate the tail recursion.
-
-
- at global = external global i32		; <i32*> [#uses=1]
- at extern_weak_global = extern_weak global i32		; <i32*> [#uses=1]
-
-
-; This load can be moved above the call because the function won't write to it
-; and the call has no side effects.
-define fastcc i32 @raise_load_1(i32* %a_arg, i32 %a_len_arg, i32 %start_arg) nounwind readonly {
-entry:
-	%tmp2 = icmp sge i32 %start_arg, %a_len_arg		; <i1> [#uses=1]
-	br i1 %tmp2, label %if, label %else
-
-if:		; preds = %entry
-	ret i32 0
-
-else:		; preds = %entry
-	%tmp7 = add i32 %start_arg, 1		; <i32> [#uses=1]
-	%tmp8 = call fastcc i32 @raise_load_1(i32* %a_arg, i32 %a_len_arg, i32 %tmp7)		; <i32> [#uses=1]
-	%tmp9 = load i32* %a_arg		; <i32> [#uses=1]
-	%tmp10 = add i32 %tmp9, %tmp8		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
-
-
-; This load can be moved above the call because the function won't write to it
-; and the load provably can't trap.
-define fastcc i32 @raise_load_2(i32* %a_arg, i32 %a_len_arg, i32 %start_arg) readonly {
-entry:
-	%tmp2 = icmp sge i32 %start_arg, %a_len_arg		; <i1> [#uses=1]
-	br i1 %tmp2, label %if, label %else
-
-if:		; preds = %entry
-	ret i32 0
-
-else:		; preds = %entry
-	%nullcheck = icmp eq i32* %a_arg, null		; <i1> [#uses=1]
-	br i1 %nullcheck, label %unwind, label %recurse
-
-unwind:		; preds = %else
-	unwind
-
-recurse:		; preds = %else
-	%tmp7 = add i32 %start_arg, 1		; <i32> [#uses=1]
-	%tmp8 = call fastcc i32 @raise_load_2(i32* %a_arg, i32 %a_len_arg, i32 %tmp7)		; <i32> [#uses=1]
-	%tmp9 = load i32* @global		; <i32> [#uses=1]
-	%tmp10 = add i32 %tmp9, %tmp8		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
-
-
-; This load can be safely moved above the call (even though it's from an
-; extern_weak global) because the call has no side effects.
-define fastcc i32 @raise_load_3(i32* %a_arg, i32 %a_len_arg, i32 %start_arg) nounwind readonly {
-entry:
-	%tmp2 = icmp sge i32 %start_arg, %a_len_arg		; <i1> [#uses=1]
-	br i1 %tmp2, label %if, label %else
-
-if:		; preds = %entry
-	ret i32 0
-
-else:		; preds = %entry
-	%tmp7 = add i32 %start_arg, 1		; <i32> [#uses=1]
-	%tmp8 = call fastcc i32 @raise_load_3(i32* %a_arg, i32 %a_len_arg, i32 %tmp7)		; <i32> [#uses=1]
-	%tmp9 = load i32* @extern_weak_global		; <i32> [#uses=1]
-	%tmp10 = add i32 %tmp9, %tmp8		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
-
-
-; The second load can be safely moved above the call even though it's from an
-; unknown pointer (which normally means it might trap) because the first load
-; proves it doesn't trap.
-define fastcc i32 @raise_load_4(i32* %a_arg, i32 %a_len_arg, i32 %start_arg) readonly {
-entry:
-	%tmp2 = icmp sge i32 %start_arg, %a_len_arg		; <i1> [#uses=1]
-	br i1 %tmp2, label %if, label %else
-
-if:		; preds = %entry
-	ret i32 0
-
-else:		; preds = %entry
-	%nullcheck = icmp eq i32* %a_arg, null		; <i1> [#uses=1]
-	br i1 %nullcheck, label %unwind, label %recurse
-
-unwind:		; preds = %else
-	unwind
-
-recurse:		; preds = %else
-	%tmp7 = add i32 %start_arg, 1		; <i32> [#uses=1]
-	%first = load i32* %a_arg		; <i32> [#uses=1]
-	%tmp8 = call fastcc i32 @raise_load_4(i32* %a_arg, i32 %first, i32 %tmp7)		; <i32> [#uses=1]
-	%second = load i32* %a_arg		; <i32> [#uses=1]
-	%tmp10 = add i32 %second, %tmp8		; <i32> [#uses=1]
-	ret i32 %tmp10
-}
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/return_constant.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/return_constant.ll
deleted file mode 100644
index ab69a42..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/return_constant.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; Though this case seems to be fairly unlikely to occur in the wild, someone
-; plunked it into the demo script, so maybe they care about it.
-;
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call
-
-define i32 @aaa(i32 %c) {
-entry:
-	%tmp.1 = icmp eq i32 %c, 0		; <i1> [#uses=1]
-	br i1 %tmp.1, label %return, label %else
-else:		; preds = %entry
-	%tmp.5 = add i32 %c, -1		; <i32> [#uses=1]
-	%tmp.3 = call i32 @aaa( i32 %tmp.5 )		; <i32> [#uses=0]
-	ret i32 0
-return:		; preds = %entry
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailCallElim/trivial_codegen_tailcall.ll b/libclamav/c++/llvm/test/Transforms/TailCallElim/trivial_codegen_tailcall.ll
deleted file mode 100644
index 90a8163..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailCallElim/trivial_codegen_tailcall.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | \
-; RUN:    grep {tail call void @foo}
-
-
-declare void @foo()
-
-define void @bar() {
-	call void @foo( )
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2003-06-24-Simpleloop.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2003-06-24-Simpleloop.ll
deleted file mode 100644
index 5c3b539..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2003-06-24-Simpleloop.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-define void @motion_result7() {
-entry:
-	br label %endif
-endif:		; preds = %no_exit, %entry
-	%i.1 = phi i32 [ %inc, %no_exit ], [ 0, %entry ]		; <i32> [#uses=1]
-	%inc = add i32 %i.1, 1		; <i32> [#uses=1]
-	br i1 false, label %no_exit, label %UnifiedExitNode
-no_exit:		; preds = %endif
-	br i1 false, label %UnifiedExitNode, label %endif
-UnifiedExitNode:		; preds = %no_exit, %endif
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2003-07-22-InfiniteLoop.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2003-07-22-InfiniteLoop.ll
deleted file mode 100644
index 705f8bc..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2003-07-22-InfiniteLoop.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-define i32 @sum() {
-entry:
-	br label %loopentry
-loopentry:		; preds = %loopentry, %entry
-	%i.0 = phi i32 [ 1, %entry ], [ %tmp.3, %loopentry ]		; <i32> [#uses=1]
-	%tmp.3 = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %loopentry
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2003-08-23-InvalidatedPointers.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2003-08-23-InvalidatedPointers.ll
deleted file mode 100644
index 1fae77b..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2003-08-23-InvalidatedPointers.ll
+++ /dev/null
@@ -1,29 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-define i32 @sell_haggle() {
-entry:
-	br i1 false, label %then.5, label %UnifiedExitNode
-then.5:		; preds = %entry
-	br i1 false, label %loopentry.1.preheader, label %else.1
-else.1:		; preds = %then.5
-	br label %loopentry.1.preheader
-loopentry.1.preheader:		; preds = %else.1, %then.5
-	%final_ask.0 = phi i32 [ 0, %else.1 ], [ 0, %then.5 ]		; <i32> [#uses=2]
-	br label %loopentry.1
-loopentry.1:		; preds = %endif.17, %loopentry.1.preheader
-	switch i32 0, label %UnifiedExitNode [
-		 i32 2, label %UnifiedExitNode
-		 i32 1, label %endif.16
-	]
-endif.16:		; preds = %loopentry.1
-	br i1 false, label %then.17, label %UnifiedExitNode
-then.17:		; preds = %endif.16
-	br i1 false, label %then.18, label %endif.17
-then.18:		; preds = %then.17
-	br i1 false, label %endif.17, label %UnifiedExitNode
-endif.17:		; preds = %then.18, %then.17
-	%cur_ask.3 = phi i32 [ %final_ask.0, %then.17 ], [ %final_ask.0, %then.18 ]		; <i32> [#uses=0]
-	br i1 false, label %loopentry.1, label %UnifiedExitNode
-UnifiedExitNode:		; preds = %endif.17, %then.18, %endif.16, %loopentry.1, %loopentry.1, %entry
-	ret i32 0
-}
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2003-08-31-UnreachableBlocks.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2003-08-31-UnreachableBlocks.ll
deleted file mode 100644
index e464713..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2003-08-31-UnreachableBlocks.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-define i32 @foo() {
-entry:
-	br label %return.i
-after_ret.i:		; No predecessors!
-	br label %return.i
-return.i:		; preds = %after_ret.i, %entry
-	%tmp.3 = ptrtoint i32* null to i32		; <i32> [#uses=1]
-	br label %return.i1
-after_ret.i1:		; No predecessors!
-	br label %return.i1
-return.i1:		; preds = %after_ret.i1, %return.i
-	%tmp.8 = sub i32 %tmp.3, 0		; <i32> [#uses=0]
-	ret i32 0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2004-04-01-DemoteRegToStack.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2004-04-01-DemoteRegToStack.ll
deleted file mode 100644
index 81624ff..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2004-04-01-DemoteRegToStack.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-define void @interpret() {
-entry:
-	br label %retry
-retry:		; preds = %endif.4, %entry
-	%tmp.8 = call i32 @interp( )		; <i32> [#uses=3]
-	switch i32 0, label %endif.4 [
-		 i32 -25, label %return
-		 i32 -16, label %return
-	]
-endif.4:		; preds = %retry
-	br i1 false, label %return, label %retry
-return:		; preds = %endif.4, %retry, %retry
-	%result.0 = phi i32 [ %tmp.8, %retry ], [ %tmp.8, %retry ], [ %tmp.8, %endif.4 ]		; <i32> [#uses=0]
-	ret void
-}
-
-declare i32 @interp()
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2008-05-13-InfiniteLoop.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2008-05-13-InfiniteLoop.ll
deleted file mode 100644
index a67e8cd..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2008-05-13-InfiniteLoop.ll
+++ /dev/null
@@ -1,26 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate | llc
-; PR2323
-
-define i32 @func_27(i32 %p_28) nounwind  {
-entry:
-  %tmp125 = trunc i32 %p_28 to i8   ; <i8> [#uses=1]
-  %tmp5.i = icmp eq i8 %tmp125, 0   ; <i1> [#uses=1]
-  br i1 %tmp5.i, label %bb8.i, label %bb.i
-
-bb.i:   ; preds = %entry
-  br label %bb39.i
-
-bb8.i:    ; preds = %entry
-  br label %bb11.i
-
-bb11.i:   ; preds = %bb39.i, %bb8.i
-  %tmp126 = trunc i32 %p_28 to i8   ; <i8> [#uses=1]
-  br label %bb39.i
-
-bb39.i:   ; preds = %bb11.i, %bb.i
-  %tmp127 = trunc i32 %p_28 to i8   ; <i8> [#uses=1]
-  br label %bb11.i
-
-func_29.exit:   ; No predecessors!
-  ret i32 undef
-}
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll
deleted file mode 100644
index c29e7d4..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -taildup-threshold=3 -stats -disable-output | not grep tailduplicate
-; XFAIL: *
-
-define i32 @foo(i32 %l) nounwind  {
-entry:
-	%cond = icmp eq i32 %l, 1		; <i1> [#uses=1]
-	br i1 %cond, label %bb, label %bb9
-
-bb:		; preds = %entry
-	br label %bb9
-
-bb5:		; preds = %bb9
-	%tmp7 = call i32 (...)* @bar( i32 %x.0 ) nounwind 		; <i32> [#uses=1]
-	br label %bb9
-
-bb9:		; preds = %bb5, %bb, %entry
-	%x.0 = phi i32 [ 0, %entry ], [ %tmp7, %bb5 ], [ 1525, %bb ]		; <i32> [#uses=2]
-	%l_addr.0 = phi i32 [ %l, %entry ], [ %tmp11, %bb5 ], [ %l, %bb ]		; <i32> [#uses=1]
-	%tmp11 = add i32 %l_addr.0, -1		; <i32> [#uses=2]
-	%tmp13 = icmp eq i32 %tmp11, -1		; <i1> [#uses=1]
-	br i1 %tmp13, label %bb15, label %bb5
-
-bb15:		; preds = %bb9
-	ret i32 %x.0
-}
-
-declare i32 @bar(...)
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/2009-07-31-phicrash.ll b/libclamav/c++/llvm/test/Transforms/TailDup/2009-07-31-phicrash.ll
deleted file mode 100644
index 6abd2a5..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/2009-07-31-phicrash.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-; PR4662
-
-define void @a() {
-BB:
-	br label %BB6
-
-BB6:
-	%tmp9 = phi i64 [ 0, %BB ], [ 5, %BB34 ]
-	br label %BB34
-
-BB34:
-	br label %BB6
-}
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/MergeTest.ll b/libclamav/c++/llvm/test/Transforms/TailDup/MergeTest.ll
deleted file mode 100644
index 0a3ab6d..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/MergeTest.ll
+++ /dev/null
@@ -1,27 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -taildup-threshold=2 | llvm-dis | grep add | not grep uses=1
-
-define i32 @test1(i1 %C, i32 %A, i32* %P) {
-entry:
-	br i1 %C, label %L1, label %L2
-L1:		; preds = %entry
-	store i32 1, i32* %P
-	br label %L2
-L2:		; preds = %L1, %entry
-	%X = add i32 %A, 17		; <i32> [#uses=1]
-	ret i32 %X
-}
-
-define i32 @test2(i1 %C, i32 %A, i32* %P) {
-entry:
-	br i1 %C, label %L1, label %L2
-L1:		; preds = %entry
-	store i32 1, i32* %P
-	br label %L3
-L2:		; preds = %entry
-	store i32 7, i32* %P
-	br label %L3
-L3:		; preds = %L2, %L1
-	%X = add i32 %A, 17		; <i32> [#uses=1]
-	ret i32 %X
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/PHIUpdateTest.ll b/libclamav/c++/llvm/test/Transforms/TailDup/PHIUpdateTest.ll
deleted file mode 100644
index 6f86587..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/PHIUpdateTest.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; This test checks to make sure phi nodes are updated properly
-;
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-define i32 @test(i1 %c, i32 %X, i32 %Y) {
-	br label %L
-L:		; preds = %F, %0
-	%A = add i32 %X, %Y		; <i32> [#uses=1]
-	br i1 %c, label %T, label %F
-F:		; preds = %L
-	br i1 %c, label %L, label %T
-T:		; preds = %F, %L
-	%V = phi i32 [ %A, %L ], [ 0, %F ]		; <i32> [#uses=1]
-	ret i32 %V
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/basictest.ll b/libclamav/c++/llvm/test/Transforms/TailDup/basictest.ll
deleted file mode 100644
index ef36890..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/basictest.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-declare void @__main()
-
-define i32 @main() {
-entry:
-	call void @__main( )
-	br label %loopentry
-loopentry:		; preds = %no_exit, %entry
-	%i.0 = phi i32 [ %inc, %no_exit ], [ 0, %entry ]		; <i32> [#uses=3]
-	%tmp.1 = icmp sle i32 %i.0, 99		; <i1> [#uses=1]
-	br i1 %tmp.1, label %no_exit, label %return
-no_exit:		; preds = %loopentry
-	%tmp.51 = call i32 @main( )		; <i32> [#uses=0]
-	%inc = add i32 %i.0, 1		; <i32> [#uses=1]
-	br label %loopentry
-return:		; preds = %loopentry
-	ret i32 %i.0
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/basictest2.ll b/libclamav/c++/llvm/test/Transforms/TailDup/basictest2.ll
deleted file mode 100644
index f79d718..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/basictest2.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate -disable-output
-
-define void @ab() {
-entry:
-	br label %loopentry.5
-loopentry.5:		; preds = %no_exit.5, %entry
-	%poscnt.1 = phi i64 [ 0, %entry ], [ %tmp.289, %no_exit.5 ]		; <i64> [#uses=1]
-	%tmp.289 = ashr i64 %poscnt.1, 1		; <i64> [#uses=1]
-	br i1 false, label %no_exit.5, label %loopexit.5
-no_exit.5:		; preds = %loopentry.5
-	br label %loopentry.5
-loopexit.5:		; preds = %loopentry.5
-	ret void
-}
-
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/dg.exp b/libclamav/c++/llvm/test/Transforms/TailDup/dg.exp
deleted file mode 100644
index f200589..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/dg.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
diff --git a/libclamav/c++/llvm/test/Transforms/TailDup/if-tail-dup.ll b/libclamav/c++/llvm/test/Transforms/TailDup/if-tail-dup.ll
deleted file mode 100644
index 05d406f..0000000
--- a/libclamav/c++/llvm/test/Transforms/TailDup/if-tail-dup.ll
+++ /dev/null
@@ -1,49 +0,0 @@
-; RUN: llvm-as < %s | opt -tailduplicate | \
-; RUN:   llc -march=x86 -o %t
-; RUN: grep {\\\<je\\\>} %t
-; RUN: not grep jmp %t
-; END.
-; This should have no unconditional jumps in it.  The C source is:
-
-;void foo(int c, int* P) {
-;  if (c & 1)  P[0] = 1;
-;  if (c & 2)  P[1] = 1;
-;  if (c & 4)  P[2] = 1;
-;  if (c & 8)  P[3] = 1;
-;}
-
-define void @foo(i32 %c, i32* %P) {
-entry:
-	%tmp1 = and i32 %c, 1		; <i32> [#uses=1]
-	%tmp1.upgrd.1 = icmp eq i32 %tmp1, 0		; <i1> [#uses=1]
-	br i1 %tmp1.upgrd.1, label %cond_next, label %cond_true
-cond_true:		; preds = %entry
-	store i32 1, i32* %P
-	br label %cond_next
-cond_next:		; preds = %cond_true, %entry
-	%tmp5 = and i32 %c, 2		; <i32> [#uses=1]
-	%tmp5.upgrd.2 = icmp eq i32 %tmp5, 0		; <i1> [#uses=1]
-	br i1 %tmp5.upgrd.2, label %cond_next10, label %cond_true6
-cond_true6:		; preds = %cond_next
-	%tmp8 = getelementptr i32* %P, i32 1		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp8
-	br label %cond_next10
-cond_next10:		; preds = %cond_true6, %cond_next
-	%tmp13 = and i32 %c, 4		; <i32> [#uses=1]
-	%tmp13.upgrd.3 = icmp eq i32 %tmp13, 0		; <i1> [#uses=1]
-	br i1 %tmp13.upgrd.3, label %cond_next18, label %cond_true14
-cond_true14:		; preds = %cond_next10
-	%tmp16 = getelementptr i32* %P, i32 2		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp16
-	br label %cond_next18
-cond_next18:		; preds = %cond_true14, %cond_next10
-	%tmp21 = and i32 %c, 8		; <i32> [#uses=1]
-	%tmp21.upgrd.4 = icmp eq i32 %tmp21, 0		; <i1> [#uses=1]
-	br i1 %tmp21.upgrd.4, label %return, label %cond_true22
-cond_true22:		; preds = %cond_next18
-	%tmp24 = getelementptr i32* %P, i32 3		; <i32*> [#uses=1]
-	store i32 1, i32* %tmp24
-	ret void
-return:		; preds = %cond_next18
-	ret void
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/BugDriver.cpp b/libclamav/c++/llvm/tools/bugpoint/BugDriver.cpp
deleted file mode 100644
index bfc7058..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/BugDriver.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-//===- BugDriver.cpp - Top-Level BugPoint class implementation ------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class contains all of the shared state and information that is used by
-// the BugPoint tool to track down errors in optimizations.  This class is the
-// main driver class that invokes all sub-functionality.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BugDriver.h"
-#include "ToolRunner.h"
-#include "llvm/Linker.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Assembly/Parser.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/SourceMgr.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Host.h"
-#include <memory>
-using namespace llvm;
-
-namespace llvm {
-  Triple TargetTriple;
-}
-
-// Anonymous namespace to define command line options for debugging.
-//
-namespace {
-  // Output - The user can specify a file containing the expected output of the
-  // program.  If this filename is set, it is used as the reference diff source,
-  // otherwise the raw input run through an interpreter is used as the reference
-  // source.
-  //
-  cl::opt<std::string>
-  OutputFile("output", cl::desc("Specify a reference program output "
-                                "(for miscompilation detection)"));
-}
-
-/// setNewProgram - If we reduce or update the program somehow, call this method
-/// to update bugdriver with it.  This deletes the old module and sets the
-/// specified one as the current program.
-void BugDriver::setNewProgram(Module *M) {
-  delete Program;
-  Program = M;
-}
-
-
-/// getPassesString - Turn a list of passes into a string which indicates the
-/// command line options that must be passed to add the passes.
-///
-std::string llvm::getPassesString(const std::vector<const PassInfo*> &Passes) {
-  std::string Result;
-  for (unsigned i = 0, e = Passes.size(); i != e; ++i) {
-    if (i) Result += " ";
-    Result += "-";
-    Result += Passes[i]->getPassArgument();
-  }
-  return Result;
-}
-
-BugDriver::BugDriver(const char *toolname, bool as_child, bool find_bugs,
-                     unsigned timeout, unsigned memlimit,
-                     LLVMContext& ctxt)
-  : Context(ctxt), ToolName(toolname), ReferenceOutputFile(OutputFile),
-    Program(0), Interpreter(0), SafeInterpreter(0), gcc(0),
-    run_as_child(as_child), run_find_bugs(find_bugs), Timeout(timeout), 
-    MemoryLimit(memlimit)  {}
-
-
-/// ParseInputFile - Given a bitcode or assembly input filename, parse and
-/// return it, or return null if not possible.
-///
-Module *llvm::ParseInputFile(const std::string &Filename,
-                             LLVMContext& Ctxt) {
-  std::auto_ptr<MemoryBuffer> Buffer(MemoryBuffer::getFileOrSTDIN(Filename));
-  Module *Result = 0;
-  if (Buffer.get())
-    Result = ParseBitcodeFile(Buffer.get(), Ctxt);
-  
-  SMDiagnostic Err;
-  if (!Result && !(Result = ParseAssemblyFile(Filename, Err, Ctxt))) {
-    Err.Print("bugpoint", errs()); 
-    Result = 0;
-  }
-  
-  // If we don't have an override triple, use the first one to configure
-  // bugpoint, or use the host triple if none provided.
-  if (Result) {
-    if (TargetTriple.getTriple().empty()) {
-      Triple TheTriple(Result->getTargetTriple());
-
-      if (TheTriple.getTriple().empty())
-        TheTriple.setTriple(sys::getHostTriple());
-        
-      TargetTriple.setTriple(TheTriple.getTriple());
-    }
-
-    Result->setTargetTriple(TargetTriple.getTriple());  // override the triple
-  }
-  return Result;
-}
-
-// This method takes the specified list of LLVM input files, attempts to load
-// them, either as assembly or bitcode, then link them together. It returns
-// true on failure (if, for example, an input bitcode file could not be
-// parsed), and false on success.
-//
-bool BugDriver::addSources(const std::vector<std::string> &Filenames) {
-  assert(Program == 0 && "Cannot call addSources multiple times!");
-  assert(!Filenames.empty() && "Must specify at least on input filename!");
-
-  try {
-    // Load the first input file.
-    Program = ParseInputFile(Filenames[0], Context);
-    if (Program == 0) return true;
-    
-    if (!run_as_child)
-      outs() << "Read input file      : '" << Filenames[0] << "'\n";
-
-    for (unsigned i = 1, e = Filenames.size(); i != e; ++i) {
-      std::auto_ptr<Module> M(ParseInputFile(Filenames[i], Context));
-      if (M.get() == 0) return true;
-
-      if (!run_as_child)
-        outs() << "Linking in input file: '" << Filenames[i] << "'\n";
-      std::string ErrorMessage;
-      if (Linker::LinkModules(Program, M.get(), &ErrorMessage)) {
-        errs() << ToolName << ": error linking in '" << Filenames[i] << "': "
-               << ErrorMessage << '\n';
-        return true;
-      }
-    }
-  } catch (const std::string &Error) {
-    errs() << ToolName << ": error reading input '" << Error << "'\n";
-    return true;
-  }
-
-  if (!run_as_child)
-    outs() << "*** All input ok\n";
-
-  // All input files read successfully!
-  return false;
-}
-
-
-
-/// run - The top level method that is invoked after all of the instance
-/// variables are set up from command line arguments.
-///
-bool BugDriver::run() {
-  // The first thing to do is determine if we're running as a child. If we are,
-  // then what to do is very narrow. This form of invocation is only called
-  // from the runPasses method to actually run those passes in a child process.
-  if (run_as_child) {
-    // Execute the passes
-    return runPassesAsChild(PassesToRun);
-  }
-  
-  if (run_find_bugs) {
-    // Rearrange the passes and apply them to the program. Repeat this process
-    // until the user kills the program or we find a bug.
-    return runManyPasses(PassesToRun);
-  }
-
-  // If we're not running as a child, the first thing that we must do is 
-  // determine what the problem is. Does the optimization series crash the 
-  // compiler, or does it produce illegal code?  We make the top-level 
-  // decision by trying to run all of the passes on the the input program, 
-  // which should generate a bitcode file.  If it does generate a bitcode 
-  // file, then we know the compiler didn't crash, so try to diagnose a 
-  // miscompilation.
-  if (!PassesToRun.empty()) {
-    outs() << "Running selected passes on program to test for crash: ";
-    if (runPasses(PassesToRun))
-      return debugOptimizerCrash();
-  }
-
-  // Set up the execution environment, selecting a method to run LLVM bitcode.
-  if (initializeExecutionEnvironment()) return true;
-
-  // Test to see if we have a code generator crash.
-  outs() << "Running the code generator to test for a crash: ";
-  try {
-    compileProgram(Program);
-    outs() << '\n';
-  } catch (ToolExecutionError &TEE) {
-    outs() << TEE.what();
-    return debugCodeGeneratorCrash();
-  }
-
-
-  // Run the raw input to see where we are coming from.  If a reference output
-  // was specified, make sure that the raw output matches it.  If not, it's a
-  // problem in the front-end or the code generator.
-  //
-  bool CreatedOutput = false;
-  if (ReferenceOutputFile.empty()) {
-    outs() << "Generating reference output from raw program: ";
-    if(!createReferenceFile(Program)){
-      return debugCodeGeneratorCrash();
-    }
-    CreatedOutput = true;
-  }
-
-  // Make sure the reference output file gets deleted on exit from this
-  // function, if appropriate.
-  sys::Path ROF(ReferenceOutputFile);
-  FileRemover RemoverInstance(ROF, CreatedOutput && !SaveTemps);
-
-  // Diff the output of the raw program against the reference output.  If it
-  // matches, then we assume there is a miscompilation bug and try to 
-  // diagnose it.
-  outs() << "*** Checking the code generator...\n";
-  try {
-    if (!diffProgram()) {
-      outs() << "\n*** Output matches: Debugging miscompilation!\n";
-      return debugMiscompilation();
-    }
-  } catch (ToolExecutionError &TEE) {
-    errs() << TEE.what();
-    return debugCodeGeneratorCrash();
-  }
-
-  outs() << "\n*** Input program does not match reference diff!\n";
-  outs() << "Debugging code generator problem!\n";
-  try {
-    return debugCodeGenerator();
-  } catch (ToolExecutionError &TEE) {
-    errs() << TEE.what();
-    return debugCodeGeneratorCrash();
-  }
-}
-
-void llvm::PrintFunctionList(const std::vector<Function*> &Funcs) {
-  unsigned NumPrint = Funcs.size();
-  if (NumPrint > 10) NumPrint = 10;
-  for (unsigned i = 0; i != NumPrint; ++i)
-    outs() << " " << Funcs[i]->getName();
-  if (NumPrint < Funcs.size())
-    outs() << "... <" << Funcs.size() << " total>";
-  outs().flush();
-}
-
-void llvm::PrintGlobalVariableList(const std::vector<GlobalVariable*> &GVs) {
-  unsigned NumPrint = GVs.size();
-  if (NumPrint > 10) NumPrint = 10;
-  for (unsigned i = 0; i != NumPrint; ++i)
-    outs() << " " << GVs[i]->getName();
-  if (NumPrint < GVs.size())
-    outs() << "... <" << GVs.size() << " total>";
-  outs().flush();
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/BugDriver.h b/libclamav/c++/llvm/tools/bugpoint/BugDriver.h
deleted file mode 100644
index db35c85..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/BugDriver.h
+++ /dev/null
@@ -1,327 +0,0 @@
-//===- BugDriver.h - Top-Level BugPoint class -------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class contains all of the shared state and information that is used by
-// the BugPoint tool to track down errors in optimizations.  This class is the
-// main driver class that invokes all sub-functionality.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BUGDRIVER_H
-#define BUGDRIVER_H
-
-#include "llvm/ADT/DenseMap.h"
-#include <vector>
-#include <string>
-
-namespace llvm {
-
-class Value;
-class PassInfo;
-class Module;
-class GlobalVariable;
-class Function;
-class BasicBlock;
-class AbstractInterpreter;
-class Instruction;
-class LLVMContext;
-
-class DebugCrashes;
-
-class GCC;
-
-extern bool DisableSimplifyCFG;
-
-/// BugpointIsInterrupted - Set to true when the user presses ctrl-c.
-///
-extern bool BugpointIsInterrupted;
-
-class BugDriver {
-  LLVMContext& Context;
-  const char *ToolName;            // argv[0] of bugpoint
-  std::string ReferenceOutputFile; // Name of `good' output file
-  Module *Program;             // The raw program, linked together
-  std::vector<const PassInfo*> PassesToRun;
-  AbstractInterpreter *Interpreter;   // How to run the program
-  AbstractInterpreter *SafeInterpreter;  // To generate reference output, etc.
-  GCC *gcc;
-  bool run_as_child;
-  bool run_find_bugs;
-  unsigned Timeout;
-  unsigned MemoryLimit;
-
-  // FIXME: sort out public/private distinctions...
-  friend class ReducePassList;
-  friend class ReduceMisCodegenFunctions;
-
-public:
-  BugDriver(const char *toolname, bool as_child, bool find_bugs,
-            unsigned timeout, unsigned memlimit, LLVMContext& ctxt);
-
-  const char *getToolName() const { return ToolName; }
-
-  LLVMContext& getContext() { return Context; }
-
-  // Set up methods... these methods are used to copy information about the
-  // command line arguments into instance variables of BugDriver.
-  //
-  bool addSources(const std::vector<std::string> &FileNames);
-  template<class It>
-  void addPasses(It I, It E) { PassesToRun.insert(PassesToRun.end(), I, E); }
-  void setPassesToRun(const std::vector<const PassInfo*> &PTR) {
-    PassesToRun = PTR;
-  }
-  const std::vector<const PassInfo*> &getPassesToRun() const {
-    return PassesToRun;
-  }
-
-  /// run - The top level method that is invoked after all of the instance
-  /// variables are set up from command line arguments. The \p as_child argument
-  /// indicates whether the driver is to run in parent mode or child mode.
-  ///
-  bool run();
-
-  /// debugOptimizerCrash - This method is called when some optimizer pass
-  /// crashes on input.  It attempts to prune down the testcase to something
-  /// reasonable, and figure out exactly which pass is crashing.
-  ///
-  bool debugOptimizerCrash(const std::string &ID = "passes");
-
-  /// debugCodeGeneratorCrash - This method is called when the code generator
-  /// crashes on an input.  It attempts to reduce the input as much as possible
-  /// while still causing the code generator to crash.
-  bool debugCodeGeneratorCrash();
-
-  /// debugMiscompilation - This method is used when the passes selected are not
-  /// crashing, but the generated output is semantically different from the
-  /// input.
-  bool debugMiscompilation();
-
-  /// debugPassMiscompilation - This method is called when the specified pass
-  /// miscompiles Program as input.  It tries to reduce the testcase to
-  /// something that smaller that still miscompiles the program.
-  /// ReferenceOutput contains the filename of the file containing the output we
-  /// are to match.
-  ///
-  bool debugPassMiscompilation(const PassInfo *ThePass,
-                               const std::string &ReferenceOutput);
-
-  /// compileSharedObject - This method creates a SharedObject from a given
-  /// BitcodeFile for debugging a code generator.
-  ///
-  std::string compileSharedObject(const std::string &BitcodeFile);
-
-  /// debugCodeGenerator - This method narrows down a module to a function or
-  /// set of functions, using the CBE as a ``safe'' code generator for other
-  /// functions that are not under consideration.
-  bool debugCodeGenerator();
-
-  /// isExecutingJIT - Returns true if bugpoint is currently testing the JIT
-  ///
-  bool isExecutingJIT();
-
-  /// runPasses - Run all of the passes in the "PassesToRun" list, discard the
-  /// output, and return true if any of the passes crashed.
-  bool runPasses(Module *M = 0) {
-    if (M == 0) M = Program;
-    std::swap(M, Program);
-    bool Result = runPasses(PassesToRun);
-    std::swap(M, Program);
-    return Result;
-  }
-
-  Module *getProgram() const { return Program; }
-
-  /// swapProgramIn - Set the current module to the specified module, returning
-  /// the old one.
-  Module *swapProgramIn(Module *M) {
-    Module *OldProgram = Program;
-    Program = M;
-    return OldProgram;
-  }
-
-  AbstractInterpreter *switchToSafeInterpreter() {
-    AbstractInterpreter *Old = Interpreter;
-    Interpreter = (AbstractInterpreter*)SafeInterpreter;
-    return Old;
-  }
-
-  void switchToInterpreter(AbstractInterpreter *AI) {
-    Interpreter = AI;
-  }
-
-  /// setNewProgram - If we reduce or update the program somehow, call this
-  /// method to update bugdriver with it.  This deletes the old module and sets
-  /// the specified one as the current program.
-  void setNewProgram(Module *M);
-
-  /// compileProgram - Try to compile the specified module, throwing an
-  /// exception if an error occurs, or returning normally if not.  This is used
-  /// for code generation crash testing.
-  ///
-  void compileProgram(Module *M);
-
-  /// executeProgram - This method runs "Program", capturing the output of the
-  /// program to a file, returning the filename of the file.  A recommended
-  /// filename may be optionally specified.  If there is a problem with the code
-  /// generator (e.g., llc crashes), this will throw an exception.
-  ///
-  std::string executeProgram(std::string RequestedOutputFilename = "",
-                             std::string Bitcode = "",
-                             const std::string &SharedObjects = "",
-                             AbstractInterpreter *AI = 0,
-                             bool *ProgramExitedNonzero = 0);
-
-  /// executeProgramSafely - Used to create reference output with the "safe"
-  /// backend, if reference output is not provided.  If there is a problem with
-  /// the code generator (e.g., llc crashes), this will throw an exception.
-  ///
-  std::string executeProgramSafely(std::string OutputFile = "");
-
-  /// createReferenceFile - calls compileProgram and then records the output
-  /// into ReferenceOutputFile. Returns true if reference file created, false 
-  /// otherwise. Note: initializeExecutionEnvironment should be called BEFORE
-  /// this function.
-  ///
-  bool createReferenceFile(Module *M, const std::string &Filename
-                                            = "bugpoint.reference.out");
-
-  /// diffProgram - This method executes the specified module and diffs the
-  /// output against the file specified by ReferenceOutputFile.  If the output
-  /// is different, true is returned.  If there is a problem with the code
-  /// generator (e.g., llc crashes), this will throw an exception.
-  ///
-  bool diffProgram(const std::string &BitcodeFile = "",
-                   const std::string &SharedObj = "",
-                   bool RemoveBitcode = false);
-                   
-  /// EmitProgressBitcode - This function is used to output the current Program
-  /// to a file named "bugpoint-ID.bc".
-  ///
-  void EmitProgressBitcode(const std::string &ID, bool NoFlyer = false);
-
-  /// deleteInstructionFromProgram - This method clones the current Program and
-  /// deletes the specified instruction from the cloned module.  It then runs a
-  /// series of cleanup passes (ADCE and SimplifyCFG) to eliminate any code
-  /// which depends on the value.  The modified module is then returned.
-  ///
-  Module *deleteInstructionFromProgram(const Instruction *I, unsigned Simp)
-    const;
-
-  /// performFinalCleanups - This method clones the current Program and performs
-  /// a series of cleanups intended to get rid of extra cruft on the module.  If
-  /// the MayModifySemantics argument is true, then the cleanups is allowed to
-  /// modify how the code behaves.
-  ///
-  Module *performFinalCleanups(Module *M, bool MayModifySemantics = false);
-
-  /// ExtractLoop - Given a module, extract up to one loop from it into a new
-  /// function.  This returns null if there are no extractable loops in the
-  /// program or if the loop extractor crashes.
-  Module *ExtractLoop(Module *M);
-
-  /// ExtractMappedBlocksFromModule - Extract all but the specified basic blocks
-  /// into their own functions.  The only detail is that M is actually a module
-  /// cloned from the one the BBs are in, so some mapping needs to be performed.
-  /// If this operation fails for some reason (ie the implementation is buggy),
-  /// this function should return null, otherwise it returns a new Module.
-  Module *ExtractMappedBlocksFromModule(const std::vector<BasicBlock*> &BBs,
-                                        Module *M);
-
-  /// runPassesOn - Carefully run the specified set of pass on the specified
-  /// module, returning the transformed module on success, or a null pointer on
-  /// failure.  If AutoDebugCrashes is set to true, then bugpoint will
-  /// automatically attempt to track down a crashing pass if one exists, and
-  /// this method will never return null.
-  Module *runPassesOn(Module *M, const std::vector<const PassInfo*> &Passes,
-                      bool AutoDebugCrashes = false, unsigned NumExtraArgs = 0,
-                      const char * const *ExtraArgs = NULL);
-
-  /// runPasses - Run the specified passes on Program, outputting a bitcode
-  /// file and writting the filename into OutputFile if successful.  If the
-  /// optimizations fail for some reason (optimizer crashes), return true,
-  /// otherwise return false.  If DeleteOutput is set to true, the bitcode is
-  /// deleted on success, and the filename string is undefined.  This prints to
-  /// outs() a single line message indicating whether compilation was successful
-  /// or failed, unless Quiet is set.  ExtraArgs specifies additional arguments
-  /// to pass to the child bugpoint instance.
-  ///
-  bool runPasses(const std::vector<const PassInfo*> &PassesToRun,
-                 std::string &OutputFilename, bool DeleteOutput = false,
-                 bool Quiet = false, unsigned NumExtraArgs = 0,
-                 const char * const *ExtraArgs = NULL) const;
-                 
-  /// runManyPasses - Take the specified pass list and create different 
-  /// combinations of passes to compile the program with. Compile the program with
-  /// each set and mark test to see if it compiled correctly. If the passes 
-  /// compiled correctly output nothing and rearrange the passes into a new order.
-  /// If the passes did not compile correctly, output the command required to 
-  /// recreate the failure. This returns true if a compiler error is found.
-  ///
-  bool runManyPasses(const std::vector<const PassInfo*> &AllPasses);
-
-  /// writeProgramToFile - This writes the current "Program" to the named
-  /// bitcode file.  If an error occurs, true is returned.
-  ///
-  bool writeProgramToFile(const std::string &Filename, Module *M = 0) const;
-
-private:
-  /// runPasses - Just like the method above, but this just returns true or
-  /// false indicating whether or not the optimizer crashed on the specified
-  /// input (true = crashed).
-  ///
-  bool runPasses(const std::vector<const PassInfo*> &PassesToRun,
-                 bool DeleteOutput = true) const {
-    std::string Filename;
-    return runPasses(PassesToRun, Filename, DeleteOutput);
-  }
-
-  /// runAsChild - The actual "runPasses" guts that runs in a child process.
-  int runPassesAsChild(const std::vector<const PassInfo*> &PassesToRun);
-
-  /// initializeExecutionEnvironment - This method is used to set up the
-  /// environment for executing LLVM programs.
-  ///
-  bool initializeExecutionEnvironment();
-};
-
-/// ParseInputFile - Given a bitcode or assembly input filename, parse and
-/// return it, or return null if not possible.
-///
-Module *ParseInputFile(const std::string &InputFilename,
-                       LLVMContext& ctxt);
-
-
-/// getPassesString - Turn a list of passes into a string which indicates the
-/// command line options that must be passed to add the passes.
-///
-std::string getPassesString(const std::vector<const PassInfo*> &Passes);
-
-/// PrintFunctionList - prints out list of problematic functions
-///
-void PrintFunctionList(const std::vector<Function*> &Funcs);
-
-/// PrintGlobalVariableList - prints out list of problematic global variables
-///
-void PrintGlobalVariableList(const std::vector<GlobalVariable*> &GVs);
-
-// DeleteFunctionBody - "Remove" the function by deleting all of it's basic
-// blocks, making it external.
-//
-void DeleteFunctionBody(Function *F);
-
-/// SplitFunctionsOutOfModule - Given a module and a list of functions in the
-/// module, split the functions OUT of the specified module, and place them in
-/// the new module.
-Module *SplitFunctionsOutOfModule(Module *M, const std::vector<Function*> &F,
-                                  DenseMap<const Value*, Value*> &ValueMap);
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/tools/bugpoint/CMakeLists.txt b/libclamav/c++/llvm/tools/bugpoint/CMakeLists.txt
deleted file mode 100644
index 90f24ba..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-set(LLVM_LINK_COMPONENTS asmparser instrumentation scalaropts ipo
-  linker bitreader bitwriter)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(bugpoint
-  BugDriver.cpp
-  CrashDebugger.cpp
-  ExecutionDriver.cpp
-  ExtractFunction.cpp
-  FindBugs.cpp
-  Miscompilation.cpp
-  OptimizerDriver.cpp
-  TestPasses.cpp
-  ToolRunner.cpp
-  bugpoint.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/bugpoint/CrashDebugger.cpp b/libclamav/c++/llvm/tools/bugpoint/CrashDebugger.cpp
deleted file mode 100644
index b348a08..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/CrashDebugger.cpp
+++ /dev/null
@@ -1,648 +0,0 @@
-//===- CrashDebugger.cpp - Debug compilation crashes ----------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the bugpoint internals that narrow down compilation crashes
-//
-//===----------------------------------------------------------------------===//
-
-#include "BugDriver.h"
-#include "ToolRunner.h"
-#include "ListReducer.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/PassManager.h"
-#include "llvm/ValueSymbolTable.h"
-#include "llvm/ADT/SmallPtrSet.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Support/CFG.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/Transforms/Utils/Cloning.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/CommandLine.h"
-#include <set>
-using namespace llvm;
-
-namespace {
-  cl::opt<bool>
-  KeepMain("keep-main",
-           cl::desc("Force function reduction to keep main"),
-           cl::init(false));
-  cl::opt<bool>
-  NoGlobalRM ("disable-global-remove",
-         cl::desc("Do not remove global variables"),
-         cl::init(false));
-}
-
-namespace llvm {
-  class ReducePassList : public ListReducer<const PassInfo*> {
-    BugDriver &BD;
-  public:
-    ReducePassList(BugDriver &bd) : BD(bd) {}
-
-    // doTest - Return true iff running the "removed" passes succeeds, and
-    // running the "Kept" passes fail when run on the output of the "removed"
-    // passes.  If we return true, we update the current module of bugpoint.
-    //
-    virtual TestResult doTest(std::vector<const PassInfo*> &Removed,
-                              std::vector<const PassInfo*> &Kept);
-  };
-}
-
-ReducePassList::TestResult
-ReducePassList::doTest(std::vector<const PassInfo*> &Prefix,
-                       std::vector<const PassInfo*> &Suffix) {
-  sys::Path PrefixOutput;
-  Module *OrigProgram = 0;
-  if (!Prefix.empty()) {
-    outs() << "Checking to see if these passes crash: "
-           << getPassesString(Prefix) << ": ";
-    std::string PfxOutput;
-    if (BD.runPasses(Prefix, PfxOutput))
-      return KeepPrefix;
-
-    PrefixOutput.set(PfxOutput);
-    OrigProgram = BD.Program;
-
-    BD.Program = ParseInputFile(PrefixOutput.str(), BD.getContext());
-    if (BD.Program == 0) {
-      errs() << BD.getToolName() << ": Error reading bitcode file '"
-             << PrefixOutput.str() << "'!\n";
-      exit(1);
-    }
-    PrefixOutput.eraseFromDisk();
-  }
-
-  outs() << "Checking to see if these passes crash: "
-         << getPassesString(Suffix) << ": ";
-
-  if (BD.runPasses(Suffix)) {
-    delete OrigProgram;            // The suffix crashes alone...
-    return KeepSuffix;
-  }
-
-  // Nothing failed, restore state...
-  if (OrigProgram) {
-    delete BD.Program;
-    BD.Program = OrigProgram;
-  }
-  return NoFailure;
-}
-
-namespace {
-  /// ReduceCrashingGlobalVariables - This works by removing the global
-  /// variable's initializer and seeing if the program still crashes. If it
-  /// does, then we keep that program and try again.
-  ///
-  class ReduceCrashingGlobalVariables : public ListReducer<GlobalVariable*> {
-    BugDriver &BD;
-    bool (*TestFn)(BugDriver &, Module *);
-  public:
-    ReduceCrashingGlobalVariables(BugDriver &bd,
-                                  bool (*testFn)(BugDriver&, Module*))
-      : BD(bd), TestFn(testFn) {}
-
-    virtual TestResult doTest(std::vector<GlobalVariable*>& Prefix,
-                              std::vector<GlobalVariable*>& Kept) {
-      if (!Kept.empty() && TestGlobalVariables(Kept))
-        return KeepSuffix;
-
-      if (!Prefix.empty() && TestGlobalVariables(Prefix))
-        return KeepPrefix;
-
-      return NoFailure;
-    }
-
-    bool TestGlobalVariables(std::vector<GlobalVariable*>& GVs);
-  };
-}
-
-bool
-ReduceCrashingGlobalVariables::TestGlobalVariables(
-                              std::vector<GlobalVariable*>& GVs) {
-  // Clone the program to try hacking it apart...
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *M = CloneModule(BD.getProgram(), ValueMap);
-
-  // Convert list to set for fast lookup...
-  std::set<GlobalVariable*> GVSet;
-
-  for (unsigned i = 0, e = GVs.size(); i != e; ++i) {
-    GlobalVariable* CMGV = cast<GlobalVariable>(ValueMap[GVs[i]]);
-    assert(CMGV && "Global Variable not in module?!");
-    GVSet.insert(CMGV);
-  }
-
-  outs() << "Checking for crash with only these global variables: ";
-  PrintGlobalVariableList(GVs);
-  outs() << ": ";
-
-  // Loop over and delete any global variables which we aren't supposed to be
-  // playing with...
-  for (Module::global_iterator I = M->global_begin(), E = M->global_end();
-       I != E; ++I)
-    if (I->hasInitializer() && !GVSet.count(I)) {
-      I->setInitializer(0);
-      I->setLinkage(GlobalValue::ExternalLinkage);
-    }
-
-  // Try running the hacked up program...
-  if (TestFn(BD, M)) {
-    BD.setNewProgram(M);        // It crashed, keep the trimmed version...
-
-    // Make sure to use global variable pointers that point into the now-current
-    // module.
-    GVs.assign(GVSet.begin(), GVSet.end());
-    return true;
-  }
-
-  delete M;
-  return false;
-}
-
-namespace llvm {
-  /// ReduceCrashingFunctions reducer - This works by removing functions and
-  /// seeing if the program still crashes. If it does, then keep the newer,
-  /// smaller program.
-  ///
-  class ReduceCrashingFunctions : public ListReducer<Function*> {
-    BugDriver &BD;
-    bool (*TestFn)(BugDriver &, Module *);
-  public:
-    ReduceCrashingFunctions(BugDriver &bd,
-                            bool (*testFn)(BugDriver &, Module *))
-      : BD(bd), TestFn(testFn) {}
-
-    virtual TestResult doTest(std::vector<Function*> &Prefix,
-                              std::vector<Function*> &Kept) {
-      if (!Kept.empty() && TestFuncs(Kept))
-        return KeepSuffix;
-      if (!Prefix.empty() && TestFuncs(Prefix))
-        return KeepPrefix;
-      return NoFailure;
-    }
-
-    bool TestFuncs(std::vector<Function*> &Prefix);
-  };
-}
-
-bool ReduceCrashingFunctions::TestFuncs(std::vector<Function*> &Funcs) {
-
-  //if main isn't present, claim there is no problem
-  if (KeepMain && find(Funcs.begin(), Funcs.end(),
-                       BD.getProgram()->getFunction("main")) == Funcs.end())
-    return false;
-
-  // Clone the program to try hacking it apart...
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *M = CloneModule(BD.getProgram(), ValueMap);
-
-  // Convert list to set for fast lookup...
-  std::set<Function*> Functions;
-  for (unsigned i = 0, e = Funcs.size(); i != e; ++i) {
-    Function *CMF = cast<Function>(ValueMap[Funcs[i]]);
-    assert(CMF && "Function not in module?!");
-    assert(CMF->getFunctionType() == Funcs[i]->getFunctionType() && "wrong ty");
-    assert(CMF->getName() == Funcs[i]->getName() && "wrong name");
-    Functions.insert(CMF);
-  }
-
-  outs() << "Checking for crash with only these functions: ";
-  PrintFunctionList(Funcs);
-  outs() << ": ";
-
-  // Loop over and delete any functions which we aren't supposed to be playing
-  // with...
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
-    if (!I->isDeclaration() && !Functions.count(I))
-      DeleteFunctionBody(I);
-
-  // Try running the hacked up program...
-  if (TestFn(BD, M)) {
-    BD.setNewProgram(M);        // It crashed, keep the trimmed version...
-
-    // Make sure to use function pointers that point into the now-current
-    // module.
-    Funcs.assign(Functions.begin(), Functions.end());
-    return true;
-  }
-  delete M;
-  return false;
-}
-
-
-namespace {
-  /// ReduceCrashingBlocks reducer - This works by setting the terminators of
-  /// all terminators except the specified basic blocks to a 'ret' instruction,
-  /// then running the simplify-cfg pass.  This has the effect of chopping up
-  /// the CFG really fast which can reduce large functions quickly.
-  ///
-  class ReduceCrashingBlocks : public ListReducer<const BasicBlock*> {
-    BugDriver &BD;
-    bool (*TestFn)(BugDriver &, Module *);
-  public:
-    ReduceCrashingBlocks(BugDriver &bd, bool (*testFn)(BugDriver &, Module *))
-      : BD(bd), TestFn(testFn) {}
-
-    virtual TestResult doTest(std::vector<const BasicBlock*> &Prefix,
-                              std::vector<const BasicBlock*> &Kept) {
-      if (!Kept.empty() && TestBlocks(Kept))
-        return KeepSuffix;
-      if (!Prefix.empty() && TestBlocks(Prefix))
-        return KeepPrefix;
-      return NoFailure;
-    }
-
-    bool TestBlocks(std::vector<const BasicBlock*> &Prefix);
-  };
-}
-
-bool ReduceCrashingBlocks::TestBlocks(std::vector<const BasicBlock*> &BBs) {
-  // Clone the program to try hacking it apart...
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *M = CloneModule(BD.getProgram(), ValueMap);
-
-  // Convert list to set for fast lookup...
-  SmallPtrSet<BasicBlock*, 8> Blocks;
-  for (unsigned i = 0, e = BBs.size(); i != e; ++i)
-    Blocks.insert(cast<BasicBlock>(ValueMap[BBs[i]]));
-
-  outs() << "Checking for crash with only these blocks:";
-  unsigned NumPrint = Blocks.size();
-  if (NumPrint > 10) NumPrint = 10;
-  for (unsigned i = 0, e = NumPrint; i != e; ++i)
-    outs() << " " << BBs[i]->getName();
-  if (NumPrint < Blocks.size())
-    outs() << "... <" << Blocks.size() << " total>";
-  outs() << ": ";
-
-  // Loop over and delete any hack up any blocks that are not listed...
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
-    for (Function::iterator BB = I->begin(), E = I->end(); BB != E; ++BB)
-      if (!Blocks.count(BB) && BB->getTerminator()->getNumSuccessors()) {
-        // Loop over all of the successors of this block, deleting any PHI nodes
-        // that might include it.
-        for (succ_iterator SI = succ_begin(BB), E = succ_end(BB); SI != E; ++SI)
-          (*SI)->removePredecessor(BB);
-
-        TerminatorInst *BBTerm = BB->getTerminator();
-        
-        if (isa<StructType>(BBTerm->getType()))
-           BBTerm->replaceAllUsesWith(UndefValue::get(BBTerm->getType()));
-        else if (BB->getTerminator()->getType() != 
-                    Type::getVoidTy(BB->getContext()))
-          BBTerm->replaceAllUsesWith(Constant::getNullValue(BBTerm->getType()));
-
-        // Replace the old terminator instruction.
-        BB->getInstList().pop_back();
-        new UnreachableInst(BB->getContext(), BB);
-      }
-
-  // The CFG Simplifier pass may delete one of the basic blocks we are
-  // interested in.  If it does we need to take the block out of the list.  Make
-  // a "persistent mapping" by turning basic blocks into <function, name> pairs.
-  // This won't work well if blocks are unnamed, but that is just the risk we
-  // have to take.
-  std::vector<std::pair<Function*, std::string> > BlockInfo;
-
-  for (SmallPtrSet<BasicBlock*, 8>::iterator I = Blocks.begin(),
-         E = Blocks.end(); I != E; ++I)
-    BlockInfo.push_back(std::make_pair((*I)->getParent(), (*I)->getName()));
-
-  // Now run the CFG simplify pass on the function...
-  PassManager Passes;
-  Passes.add(createCFGSimplificationPass());
-  Passes.add(createVerifierPass());
-  Passes.run(*M);
-
-  // Try running on the hacked up program...
-  if (TestFn(BD, M)) {
-    BD.setNewProgram(M);      // It crashed, keep the trimmed version...
-
-    // Make sure to use basic block pointers that point into the now-current
-    // module, and that they don't include any deleted blocks.
-    BBs.clear();
-    for (unsigned i = 0, e = BlockInfo.size(); i != e; ++i) {
-      ValueSymbolTable &ST = BlockInfo[i].first->getValueSymbolTable();
-      Value* V = ST.lookup(BlockInfo[i].second);
-      if (V && V->getType() == Type::getLabelTy(V->getContext()))
-        BBs.push_back(cast<BasicBlock>(V));
-    }
-    return true;
-  }
-  delete M;  // It didn't crash, try something else.
-  return false;
-}
-
-namespace {
-  /// ReduceCrashingInstructions reducer - This works by removing the specified
-  /// non-terminator instructions and replacing them with undef.
-  ///
-  class ReduceCrashingInstructions : public ListReducer<const Instruction*> {
-    BugDriver &BD;
-    bool (*TestFn)(BugDriver &, Module *);
-  public:
-    ReduceCrashingInstructions(BugDriver &bd, bool (*testFn)(BugDriver &,
-                                                             Module *))
-      : BD(bd), TestFn(testFn) {}
-
-    virtual TestResult doTest(std::vector<const Instruction*> &Prefix,
-                              std::vector<const Instruction*> &Kept) {
-      if (!Kept.empty() && TestInsts(Kept))
-        return KeepSuffix;
-      if (!Prefix.empty() && TestInsts(Prefix))
-        return KeepPrefix;
-      return NoFailure;
-    }
-
-    bool TestInsts(std::vector<const Instruction*> &Prefix);
-  };
-}
-
-bool ReduceCrashingInstructions::TestInsts(std::vector<const Instruction*>
-                                           &Insts) {
-  // Clone the program to try hacking it apart...
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *M = CloneModule(BD.getProgram(), ValueMap);
-
-  // Convert list to set for fast lookup...
-  SmallPtrSet<Instruction*, 64> Instructions;
-  for (unsigned i = 0, e = Insts.size(); i != e; ++i) {
-    assert(!isa<TerminatorInst>(Insts[i]));
-    Instructions.insert(cast<Instruction>(ValueMap[Insts[i]]));
-  }
-
-  outs() << "Checking for crash with only " << Instructions.size();
-  if (Instructions.size() == 1)
-    outs() << " instruction: ";
-  else
-    outs() << " instructions: ";
-
-  for (Module::iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI)
-    for (Function::iterator FI = MI->begin(), FE = MI->end(); FI != FE; ++FI)
-      for (BasicBlock::iterator I = FI->begin(), E = FI->end(); I != E;) {
-        Instruction *Inst = I++;
-        if (!Instructions.count(Inst) && !isa<TerminatorInst>(Inst)) {
-          if (Inst->getType() != Type::getVoidTy(Inst->getContext()))
-            Inst->replaceAllUsesWith(UndefValue::get(Inst->getType()));
-          Inst->eraseFromParent();
-        }
-      }
-
-  // Verify that this is still valid.
-  PassManager Passes;
-  Passes.add(createVerifierPass());
-  Passes.run(*M);
-
-  // Try running on the hacked up program...
-  if (TestFn(BD, M)) {
-    BD.setNewProgram(M);      // It crashed, keep the trimmed version...
-
-    // Make sure to use instruction pointers that point into the now-current
-    // module, and that they don't include any deleted blocks.
-    Insts.clear();
-    for (SmallPtrSet<Instruction*, 64>::const_iterator I = Instructions.begin(),
-             E = Instructions.end(); I != E; ++I)
-      Insts.push_back(*I);
-    return true;
-  }
-  delete M;  // It didn't crash, try something else.
-  return false;
-}
-
-/// DebugACrash - Given a predicate that determines whether a component crashes
-/// on a program, try to destructively reduce the program while still keeping
-/// the predicate true.
-static bool DebugACrash(BugDriver &BD,  bool (*TestFn)(BugDriver &, Module *)) {
-  // See if we can get away with nuking some of the global variable initializers
-  // in the program...
-  if (!NoGlobalRM &&
-      BD.getProgram()->global_begin() != BD.getProgram()->global_end()) {
-    // Now try to reduce the number of global variable initializers in the
-    // module to something small.
-    Module *M = CloneModule(BD.getProgram());
-    bool DeletedInit = false;
-
-    for (Module::global_iterator I = M->global_begin(), E = M->global_end();
-         I != E; ++I)
-      if (I->hasInitializer()) {
-        I->setInitializer(0);
-        I->setLinkage(GlobalValue::ExternalLinkage);
-        DeletedInit = true;
-      }
-
-    if (!DeletedInit) {
-      delete M;  // No change made...
-    } else {
-      // See if the program still causes a crash...
-      outs() << "\nChecking to see if we can delete global inits: ";
-
-      if (TestFn(BD, M)) {      // Still crashes?
-        BD.setNewProgram(M);
-        outs() << "\n*** Able to remove all global initializers!\n";
-      } else {                  // No longer crashes?
-        outs() << "  - Removing all global inits hides problem!\n";
-        delete M;
-
-        std::vector<GlobalVariable*> GVs;
-
-        for (Module::global_iterator I = BD.getProgram()->global_begin(),
-               E = BD.getProgram()->global_end(); I != E; ++I)
-          if (I->hasInitializer())
-            GVs.push_back(I);
-
-        if (GVs.size() > 1 && !BugpointIsInterrupted) {
-          outs() << "\n*** Attempting to reduce the number of global "
-                    << "variables in the testcase\n";
-
-          unsigned OldSize = GVs.size();
-          ReduceCrashingGlobalVariables(BD, TestFn).reduceList(GVs);
-
-          if (GVs.size() < OldSize)
-            BD.EmitProgressBitcode("reduced-global-variables");
-        }
-      }
-    }
-  }
-
-  // Now try to reduce the number of functions in the module to something small.
-  std::vector<Function*> Functions;
-  for (Module::iterator I = BD.getProgram()->begin(),
-         E = BD.getProgram()->end(); I != E; ++I)
-    if (!I->isDeclaration())
-      Functions.push_back(I);
-
-  if (Functions.size() > 1 && !BugpointIsInterrupted) {
-    outs() << "\n*** Attempting to reduce the number of functions "
-      "in the testcase\n";
-
-    unsigned OldSize = Functions.size();
-    ReduceCrashingFunctions(BD, TestFn).reduceList(Functions);
-
-    if (Functions.size() < OldSize)
-      BD.EmitProgressBitcode("reduced-function");
-  }
-
-  // Attempt to delete entire basic blocks at a time to speed up
-  // convergence... this actually works by setting the terminator of the blocks
-  // to a return instruction then running simplifycfg, which can potentially
-  // shrinks the code dramatically quickly
-  //
-  if (!DisableSimplifyCFG && !BugpointIsInterrupted) {
-    std::vector<const BasicBlock*> Blocks;
-    for (Module::const_iterator I = BD.getProgram()->begin(),
-           E = BD.getProgram()->end(); I != E; ++I)
-      for (Function::const_iterator FI = I->begin(), E = I->end(); FI !=E; ++FI)
-        Blocks.push_back(FI);
-    unsigned OldSize = Blocks.size();
-    ReduceCrashingBlocks(BD, TestFn).reduceList(Blocks);
-    if (Blocks.size() < OldSize)
-      BD.EmitProgressBitcode("reduced-blocks");
-  }
-
-  // Attempt to delete instructions using bisection. This should help out nasty
-  // cases with large basic blocks where the problem is at one end.
-  if (!BugpointIsInterrupted) {
-    std::vector<const Instruction*> Insts;
-    for (Module::const_iterator MI = BD.getProgram()->begin(),
-           ME = BD.getProgram()->end(); MI != ME; ++MI)
-      for (Function::const_iterator FI = MI->begin(), FE = MI->end(); FI != FE;
-           ++FI)
-        for (BasicBlock::const_iterator I = FI->begin(), E = FI->end();
-             I != E; ++I)
-          if (!isa<TerminatorInst>(I))
-            Insts.push_back(I);
-
-    ReduceCrashingInstructions(BD, TestFn).reduceList(Insts);
-  }
-
-  // FIXME: This should use the list reducer to converge faster by deleting
-  // larger chunks of instructions at a time!
-  unsigned Simplification = 2;
-  do {
-    if (BugpointIsInterrupted) break;
-    --Simplification;
-    outs() << "\n*** Attempting to reduce testcase by deleting instruc"
-           << "tions: Simplification Level #" << Simplification << '\n';
-
-    // Now that we have deleted the functions that are unnecessary for the
-    // program, try to remove instructions that are not necessary to cause the
-    // crash.  To do this, we loop through all of the instructions in the
-    // remaining functions, deleting them (replacing any values produced with
-    // nulls), and then running ADCE and SimplifyCFG.  If the transformed input
-    // still triggers failure, keep deleting until we cannot trigger failure
-    // anymore.
-    //
-    unsigned InstructionsToSkipBeforeDeleting = 0;
-  TryAgain:
-
-    // Loop over all of the (non-terminator) instructions remaining in the
-    // function, attempting to delete them.
-    unsigned CurInstructionNum = 0;
-    for (Module::const_iterator FI = BD.getProgram()->begin(),
-           E = BD.getProgram()->end(); FI != E; ++FI)
-      if (!FI->isDeclaration())
-        for (Function::const_iterator BI = FI->begin(), E = FI->end(); BI != E;
-             ++BI)
-          for (BasicBlock::const_iterator I = BI->begin(), E = --BI->end();
-               I != E; ++I, ++CurInstructionNum)
-            if (InstructionsToSkipBeforeDeleting) {
-              --InstructionsToSkipBeforeDeleting;
-            } else {
-              if (BugpointIsInterrupted) goto ExitLoops;
-
-              outs() << "Checking instruction: " << *I;
-              Module *M = BD.deleteInstructionFromProgram(I, Simplification);
-
-              // Find out if the pass still crashes on this pass...
-              if (TestFn(BD, M)) {
-                // Yup, it does, we delete the old module, and continue trying
-                // to reduce the testcase...
-                BD.setNewProgram(M);
-                InstructionsToSkipBeforeDeleting = CurInstructionNum;
-                goto TryAgain;  // I wish I had a multi-level break here!
-              }
-
-              // This pass didn't crash without this instruction, try the next
-              // one.
-              delete M;
-            }
-
-    if (InstructionsToSkipBeforeDeleting) {
-      InstructionsToSkipBeforeDeleting = 0;
-      goto TryAgain;
-    }
-
-  } while (Simplification);
-ExitLoops:
-
-  // Try to clean up the testcase by running funcresolve and globaldce...
-  if (!BugpointIsInterrupted) {
-    outs() << "\n*** Attempting to perform final cleanups: ";
-    Module *M = CloneModule(BD.getProgram());
-    M = BD.performFinalCleanups(M, true);
-
-    // Find out if the pass still crashes on the cleaned up program...
-    if (TestFn(BD, M)) {
-      BD.setNewProgram(M);     // Yup, it does, keep the reduced version...
-    } else {
-      delete M;
-    }
-  }
-
-  BD.EmitProgressBitcode("reduced-simplified");
-
-  return false;
-}
-
-static bool TestForOptimizerCrash(BugDriver &BD, Module *M) {
-  return BD.runPasses(M);
-}
-
-/// debugOptimizerCrash - This method is called when some pass crashes on input.
-/// It attempts to prune down the testcase to something reasonable, and figure
-/// out exactly which pass is crashing.
-///
-bool BugDriver::debugOptimizerCrash(const std::string &ID) {
-  outs() << "\n*** Debugging optimizer crash!\n";
-
-  // Reduce the list of passes which causes the optimizer to crash...
-  if (!BugpointIsInterrupted)
-    ReducePassList(*this).reduceList(PassesToRun);
-
-  outs() << "\n*** Found crashing pass"
-         << (PassesToRun.size() == 1 ? ": " : "es: ")
-         << getPassesString(PassesToRun) << '\n';
-
-  EmitProgressBitcode(ID);
-
-  return DebugACrash(*this, TestForOptimizerCrash);
-}
-
-static bool TestForCodeGenCrash(BugDriver &BD, Module *M) {
-  try {
-    BD.compileProgram(M);
-    errs() << '\n';
-    return false;
-  } catch (ToolExecutionError &) {
-    errs() << "<crash>\n";
-    return true;  // Tool is still crashing.
-  }
-}
-
-/// debugCodeGeneratorCrash - This method is called when the code generator
-/// crashes on an input.  It attempts to reduce the input as much as possible
-/// while still causing the code generator to crash.
-bool BugDriver::debugCodeGeneratorCrash() {
-  errs() << "*** Debugging code generator crash!\n";
-
-  return DebugACrash(*this, TestForCodeGenCrash);
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/ExecutionDriver.cpp b/libclamav/c++/llvm/tools/bugpoint/ExecutionDriver.cpp
deleted file mode 100644
index 72b9717..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/ExecutionDriver.cpp
+++ /dev/null
@@ -1,473 +0,0 @@
-//===- ExecutionDriver.cpp - Allow execution of LLVM program --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains code used to execute the program utilizing one of the
-// various ways of running LLVM bitcode.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BugDriver.h"
-#include "ToolRunner.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/Support/raw_ostream.h"
-#include <fstream>
-
-using namespace llvm;
-
-namespace {
-  // OutputType - Allow the user to specify the way code should be run, to test
-  // for miscompilation.
-  //
-  enum OutputType {
-    AutoPick, RunLLI, RunJIT, RunLLC, RunCBE, CBE_bug, LLC_Safe, Custom
-  };
-
-  cl::opt<double>
-  AbsTolerance("abs-tolerance", cl::desc("Absolute error tolerated"),
-               cl::init(0.0));
-  cl::opt<double>
-  RelTolerance("rel-tolerance", cl::desc("Relative error tolerated"),
-               cl::init(0.0));
-
-  cl::opt<OutputType>
-  InterpreterSel(cl::desc("Specify the \"test\" i.e. suspect back-end:"),
-                 cl::values(clEnumValN(AutoPick, "auto", "Use best guess"),
-                            clEnumValN(RunLLI, "run-int",
-                                       "Execute with the interpreter"),
-                            clEnumValN(RunJIT, "run-jit", "Execute with JIT"),
-                            clEnumValN(RunLLC, "run-llc", "Compile with LLC"),
-                            clEnumValN(RunCBE, "run-cbe", "Compile with CBE"),
-                            clEnumValN(CBE_bug,"cbe-bug", "Find CBE bugs"),
-                            clEnumValN(LLC_Safe, "llc-safe", "Use LLC for all"),
-                            clEnumValN(Custom, "run-custom",
-                            "Use -exec-command to define a command to execute "
-                            "the bitcode. Useful for cross-compilation."),
-                            clEnumValEnd),
-                 cl::init(AutoPick));
-
-  cl::opt<OutputType>
-  SafeInterpreterSel(cl::desc("Specify \"safe\" i.e. known-good backend:"),
-              cl::values(clEnumValN(AutoPick, "safe-auto", "Use best guess"),
-                         clEnumValN(RunLLC, "safe-run-llc", "Compile with LLC"),
-                         clEnumValN(RunCBE, "safe-run-cbe", "Compile with CBE"),
-                         clEnumValN(Custom, "safe-run-custom",
-                         "Use -exec-command to define a command to execute "
-                         "the bitcode. Useful for cross-compilation."),
-                         clEnumValEnd),
-                     cl::init(AutoPick));
-
-  cl::opt<std::string>
-  SafeInterpreterPath("safe-path",
-                   cl::desc("Specify the path to the \"safe\" backend program"),
-                   cl::init(""));
-
-  cl::opt<bool>
-  AppendProgramExitCode("append-exit-code",
-      cl::desc("Append the exit code to the output so it gets diff'd too"),
-      cl::init(false));
-
-  cl::opt<std::string>
-  InputFile("input", cl::init("/dev/null"),
-            cl::desc("Filename to pipe in as stdin (default: /dev/null)"));
-
-  cl::list<std::string>
-  AdditionalSOs("additional-so",
-                cl::desc("Additional shared objects to load "
-                         "into executing programs"));
-
-  cl::list<std::string>
-  AdditionalLinkerArgs("Xlinker", 
-      cl::desc("Additional arguments to pass to the linker"));
-
-  cl::opt<std::string>
-  CustomExecCommand("exec-command", cl::init("simulate"),
-      cl::desc("Command to execute the bitcode (use with -run-custom) "
-               "(default: simulate)"));
-}
-
-namespace llvm {
-  // Anything specified after the --args option are taken as arguments to the
-  // program being debugged.
-  cl::list<std::string>
-  InputArgv("args", cl::Positional, cl::desc("<program arguments>..."),
-            cl::ZeroOrMore, cl::PositionalEatsArgs);
-}
-
-namespace {
-  cl::list<std::string>
-  ToolArgv("tool-args", cl::Positional, cl::desc("<tool arguments>..."),
-           cl::ZeroOrMore, cl::PositionalEatsArgs);
-
-  cl::list<std::string>
-  SafeToolArgv("safe-tool-args", cl::Positional,
-               cl::desc("<safe-tool arguments>..."),
-               cl::ZeroOrMore, cl::PositionalEatsArgs);
-
-  cl::list<std::string>
-  GCCToolArgv("gcc-tool-args", cl::Positional,
-              cl::desc("<gcc-tool arguments>..."),
-              cl::ZeroOrMore, cl::PositionalEatsArgs);
-}
-
-//===----------------------------------------------------------------------===//
-// BugDriver method implementation
-//
-
-/// initializeExecutionEnvironment - This method is used to set up the
-/// environment for executing LLVM programs.
-///
-bool BugDriver::initializeExecutionEnvironment() {
-  outs() << "Initializing execution environment: ";
-
-  // Create an instance of the AbstractInterpreter interface as specified on
-  // the command line
-  SafeInterpreter = 0;
-  std::string Message;
-
-  switch (InterpreterSel) {
-  case AutoPick:
-    InterpreterSel = RunCBE;
-    Interpreter =
-      AbstractInterpreter::createCBE(getToolName(), Message, &ToolArgv,
-                                     &GCCToolArgv);
-    if (!Interpreter) {
-      InterpreterSel = RunJIT;
-      Interpreter = AbstractInterpreter::createJIT(getToolName(), Message,
-                                                   &ToolArgv);
-    }
-    if (!Interpreter) {
-      InterpreterSel = RunLLC;
-      Interpreter = AbstractInterpreter::createLLC(getToolName(), Message,
-                                                   &ToolArgv, &GCCToolArgv);
-    }
-    if (!Interpreter) {
-      InterpreterSel = RunLLI;
-      Interpreter = AbstractInterpreter::createLLI(getToolName(), Message,
-                                                   &ToolArgv);
-    }
-    if (!Interpreter) {
-      InterpreterSel = AutoPick;
-      Message = "Sorry, I can't automatically select an interpreter!\n";
-    }
-    break;
-  case RunLLI:
-    Interpreter = AbstractInterpreter::createLLI(getToolName(), Message,
-                                                 &ToolArgv);
-    break;
-  case RunLLC:
-  case LLC_Safe:
-    Interpreter = AbstractInterpreter::createLLC(getToolName(), Message,
-                                                 &ToolArgv, &GCCToolArgv);
-    break;
-  case RunJIT:
-    Interpreter = AbstractInterpreter::createJIT(getToolName(), Message,
-                                                 &ToolArgv);
-    break;
-  case RunCBE:
-  case CBE_bug:
-    Interpreter = AbstractInterpreter::createCBE(getToolName(), Message,
-                                                 &ToolArgv, &GCCToolArgv);
-    break;
-  case Custom:
-    Interpreter = AbstractInterpreter::createCustom(Message, CustomExecCommand);
-    break;
-  default:
-    Message = "Sorry, this back-end is not supported by bugpoint right now!\n";
-    break;
-  }
-  if (!Interpreter)
-    errs() << Message;
-  else // Display informational messages on stdout instead of stderr
-    outs() << Message;
-
-  std::string Path = SafeInterpreterPath;
-  if (Path.empty())
-    Path = getToolName();
-  std::vector<std::string> SafeToolArgs = SafeToolArgv;
-  switch (SafeInterpreterSel) {
-  case AutoPick:
-    // In "cbe-bug" mode, default to using LLC as the "safe" backend.
-    if (!SafeInterpreter &&
-        InterpreterSel == CBE_bug) {
-      SafeInterpreterSel = RunLLC;
-      SafeToolArgs.push_back("--relocation-model=pic");
-      SafeInterpreter = AbstractInterpreter::createLLC(Path.c_str(), Message,
-                                                       &SafeToolArgs,
-                                                       &GCCToolArgv);
-    }
-
-    // In "llc-safe" mode, default to using LLC as the "safe" backend.
-    if (!SafeInterpreter &&
-        InterpreterSel == LLC_Safe) {
-      SafeInterpreterSel = RunLLC;
-      SafeToolArgs.push_back("--relocation-model=pic");
-      SafeInterpreter = AbstractInterpreter::createLLC(Path.c_str(), Message,
-                                                       &SafeToolArgs,
-                                                       &GCCToolArgv);
-    }
-
-    // Pick a backend that's different from the test backend. The JIT and
-    // LLC backends share a lot of code, so prefer to use the CBE as the
-    // safe back-end when testing them.
-    if (!SafeInterpreter &&
-        InterpreterSel != RunCBE) {
-      SafeInterpreterSel = RunCBE;
-      SafeInterpreter = AbstractInterpreter::createCBE(Path.c_str(), Message,
-                                                       &SafeToolArgs,
-                                                       &GCCToolArgv);
-    }
-    if (!SafeInterpreter &&
-        InterpreterSel != RunLLC &&
-        InterpreterSel != RunJIT) {
-      SafeInterpreterSel = RunLLC;
-      SafeToolArgs.push_back("--relocation-model=pic");
-      SafeInterpreter = AbstractInterpreter::createLLC(Path.c_str(), Message,
-                                                       &SafeToolArgs,
-                                                       &GCCToolArgv);
-    }
-    if (!SafeInterpreter) {
-      SafeInterpreterSel = AutoPick;
-      Message = "Sorry, I can't automatically select an interpreter!\n";
-    }
-    break;
-  case RunLLC:
-    SafeToolArgs.push_back("--relocation-model=pic");
-    SafeInterpreter = AbstractInterpreter::createLLC(Path.c_str(), Message,
-                                                     &SafeToolArgs,
-                                                     &GCCToolArgv);
-    break;
-  case RunCBE:
-    SafeInterpreter = AbstractInterpreter::createCBE(Path.c_str(), Message,
-                                                     &SafeToolArgs,
-                                                     &GCCToolArgv);
-    break;
-  case Custom:
-    SafeInterpreter = AbstractInterpreter::createCustom(Message,
-                                                        CustomExecCommand);
-    break;
-  default:
-    Message = "Sorry, this back-end is not supported by bugpoint as the "
-              "\"safe\" backend right now!\n";
-    break;
-  }
-  if (!SafeInterpreter) { outs() << Message << "\nExiting.\n"; exit(1); }
-  
-  gcc = GCC::create(Message, &GCCToolArgv);
-  if (!gcc) { outs() << Message << "\nExiting.\n"; exit(1); }
-
-  // If there was an error creating the selected interpreter, quit with error.
-  return Interpreter == 0;
-}
-
-/// compileProgram - Try to compile the specified module, throwing an exception
-/// if an error occurs, or returning normally if not.  This is used for code
-/// generation crash testing.
-///
-void BugDriver::compileProgram(Module *M) {
-  // Emit the program to a bitcode file...
-  sys::Path BitcodeFile ("bugpoint-test-program.bc");
-  std::string ErrMsg;
-  if (BitcodeFile.makeUnique(true,&ErrMsg)) {
-    errs() << ToolName << ": Error making unique filename: " << ErrMsg 
-           << "\n";
-    exit(1);
-  }
-  if (writeProgramToFile(BitcodeFile.str(), M)) {
-    errs() << ToolName << ": Error emitting bitcode to file '"
-           << BitcodeFile.str() << "'!\n";
-    exit(1);
-  }
-
-    // Remove the temporary bitcode file when we are done.
-  FileRemover BitcodeFileRemover(BitcodeFile, !SaveTemps);
-
-  // Actually compile the program!
-  Interpreter->compileProgram(BitcodeFile.str());
-}
-
-
-/// executeProgram - This method runs "Program", capturing the output of the
-/// program to a file, returning the filename of the file.  A recommended
-/// filename may be optionally specified.
-///
-std::string BugDriver::executeProgram(std::string OutputFile,
-                                      std::string BitcodeFile,
-                                      const std::string &SharedObj,
-                                      AbstractInterpreter *AI,
-                                      bool *ProgramExitedNonzero) {
-  if (AI == 0) AI = Interpreter;
-  assert(AI && "Interpreter should have been created already!");
-  bool CreatedBitcode = false;
-  std::string ErrMsg;
-  if (BitcodeFile.empty()) {
-    // Emit the program to a bitcode file...
-    sys::Path uniqueFilename("bugpoint-test-program.bc");
-    if (uniqueFilename.makeUnique(true, &ErrMsg)) {
-      errs() << ToolName << ": Error making unique filename: "
-             << ErrMsg << "!\n";
-      exit(1);
-    }
-    BitcodeFile = uniqueFilename.str();
-
-    if (writeProgramToFile(BitcodeFile, Program)) {
-      errs() << ToolName << ": Error emitting bitcode to file '"
-             << BitcodeFile << "'!\n";
-      exit(1);
-    }
-    CreatedBitcode = true;
-  }
-
-  // Remove the temporary bitcode file when we are done.
-  sys::Path BitcodePath (BitcodeFile);
-  FileRemover BitcodeFileRemover(BitcodePath, CreatedBitcode && !SaveTemps);
-
-  if (OutputFile.empty()) OutputFile = "bugpoint-execution-output";
-
-  // Check to see if this is a valid output filename...
-  sys::Path uniqueFile(OutputFile);
-  if (uniqueFile.makeUnique(true, &ErrMsg)) {
-    errs() << ToolName << ": Error making unique filename: "
-           << ErrMsg << "\n";
-    exit(1);
-  }
-  OutputFile = uniqueFile.str();
-
-  // Figure out which shared objects to run, if any.
-  std::vector<std::string> SharedObjs(AdditionalSOs);
-  if (!SharedObj.empty())
-    SharedObjs.push_back(SharedObj);
-
-  int RetVal = AI->ExecuteProgram(BitcodeFile, InputArgv, InputFile,
-                                  OutputFile, AdditionalLinkerArgs, SharedObjs, 
-                                  Timeout, MemoryLimit);
-
-  if (RetVal == -1) {
-    errs() << "<timeout>";
-    static bool FirstTimeout = true;
-    if (FirstTimeout) {
-      outs() << "\n"
- "*** Program execution timed out!  This mechanism is designed to handle\n"
- "    programs stuck in infinite loops gracefully.  The -timeout option\n"
- "    can be used to change the timeout threshold or disable it completely\n"
- "    (with -timeout=0).  This message is only displayed once.\n";
-      FirstTimeout = false;
-    }
-  }
-
-  if (AppendProgramExitCode) {
-    std::ofstream outFile(OutputFile.c_str(), std::ios_base::app);
-    outFile << "exit " << RetVal << '\n';
-    outFile.close();
-  }
-
-  if (ProgramExitedNonzero != 0)
-    *ProgramExitedNonzero = (RetVal != 0);
-
-  // Return the filename we captured the output to.
-  return OutputFile;
-}
-
-/// executeProgramSafely - Used to create reference output with the "safe"
-/// backend, if reference output is not provided.
-///
-std::string BugDriver::executeProgramSafely(std::string OutputFile) {
-  bool ProgramExitedNonzero;
-  std::string outFN = executeProgram(OutputFile, "", "", SafeInterpreter,
-                                     &ProgramExitedNonzero);
-  return outFN;
-}
-
-std::string BugDriver::compileSharedObject(const std::string &BitcodeFile) {
-  assert(Interpreter && "Interpreter should have been created already!");
-  sys::Path OutputFile;
-
-  // Using the known-good backend.
-  GCC::FileType FT = SafeInterpreter->OutputCode(BitcodeFile, OutputFile);
-
-  std::string SharedObjectFile;
-  if (gcc->MakeSharedObject(OutputFile.str(), FT,
-                            SharedObjectFile, AdditionalLinkerArgs))
-    exit(1);
-
-  // Remove the intermediate C file
-  OutputFile.eraseFromDisk();
-
-  return "./" + SharedObjectFile;
-}
-
-/// createReferenceFile - calls compileProgram and then records the output
-/// into ReferenceOutputFile. Returns true if reference file created, false 
-/// otherwise. Note: initializeExecutionEnvironment should be called BEFORE
-/// this function.
-///
-bool BugDriver::createReferenceFile(Module *M, const std::string &Filename) {
-  try {
-    compileProgram(Program);
-  } catch (ToolExecutionError &) {
-    return false;
-  }
-  try {
-    ReferenceOutputFile = executeProgramSafely(Filename);
-    outs() << "\nReference output is: " << ReferenceOutputFile << "\n\n";
-  } catch (ToolExecutionError &TEE) {
-    errs() << TEE.what();
-    if (Interpreter != SafeInterpreter) {
-      errs() << "*** There is a bug running the \"safe\" backend.  Either"
-             << " debug it (for example with the -run-cbe bugpoint option,"
-             << " if CBE is being used as the \"safe\" backend), or fix the"
-             << " error some other way.\n";
-    }
-    return false;
-  }
-  return true;
-}
-
-/// diffProgram - This method executes the specified module and diffs the
-/// output against the file specified by ReferenceOutputFile.  If the output
-/// is different, true is returned.  If there is a problem with the code
-/// generator (e.g., llc crashes), this will throw an exception.
-///
-bool BugDriver::diffProgram(const std::string &BitcodeFile,
-                            const std::string &SharedObject,
-                            bool RemoveBitcode) {
-  bool ProgramExitedNonzero;
-
-  // Execute the program, generating an output file...
-  sys::Path Output(executeProgram("", BitcodeFile, SharedObject, 0,
-                                      &ProgramExitedNonzero));
-
-  std::string Error;
-  bool FilesDifferent = false;
-  if (int Diff = DiffFilesWithTolerance(sys::Path(ReferenceOutputFile),
-                                        sys::Path(Output.str()),
-                                        AbsTolerance, RelTolerance, &Error)) {
-    if (Diff == 2) {
-      errs() << "While diffing output: " << Error << '\n';
-      exit(1);
-    }
-    FilesDifferent = true;
-  }
-  else {
-    // Remove the generated output if there are no differences.
-    Output.eraseFromDisk();
-  }
-
-  // Remove the bitcode file if we are supposed to.
-  if (RemoveBitcode)
-    sys::Path(BitcodeFile).eraseFromDisk();
-  return FilesDifferent;
-}
-
-bool BugDriver::isExecutingJIT() {
-  return InterpreterSel == RunJIT;
-}
-
diff --git a/libclamav/c++/llvm/tools/bugpoint/ExtractFunction.cpp b/libclamav/c++/llvm/tools/bugpoint/ExtractFunction.cpp
deleted file mode 100644
index a54f51b..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/ExtractFunction.cpp
+++ /dev/null
@@ -1,381 +0,0 @@
-//===- ExtractFunction.cpp - Extract a function from Program --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements several methods that are used to extract functions,
-// loops, or portions of a module from the rest of the module.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BugDriver.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Pass.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Assembly/Writer.h"
-#include "llvm/Transforms/IPO.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/Transforms/Utils/Cloning.h"
-#include "llvm/Transforms/Utils/FunctionUtils.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Path.h"
-#include "llvm/System/Signals.h"
-#include <set>
-using namespace llvm;
-
-namespace llvm {
-  bool DisableSimplifyCFG = false;
-} // End llvm namespace
-
-namespace {
-  cl::opt<bool>
-  NoDCE ("disable-dce",
-         cl::desc("Do not use the -dce pass to reduce testcases"));
-  cl::opt<bool, true>
-  NoSCFG("disable-simplifycfg", cl::location(DisableSimplifyCFG),
-         cl::desc("Do not use the -simplifycfg pass to reduce testcases"));
-}
-
-/// deleteInstructionFromProgram - This method clones the current Program and
-/// deletes the specified instruction from the cloned module.  It then runs a
-/// series of cleanup passes (ADCE and SimplifyCFG) to eliminate any code which
-/// depends on the value.  The modified module is then returned.
-///
-Module *BugDriver::deleteInstructionFromProgram(const Instruction *I,
-                                                unsigned Simplification) const {
-  Module *Result = CloneModule(Program);
-
-  const BasicBlock *PBB = I->getParent();
-  const Function *PF = PBB->getParent();
-
-  Module::iterator RFI = Result->begin(); // Get iterator to corresponding fn
-  std::advance(RFI, std::distance(PF->getParent()->begin(),
-                                  Module::const_iterator(PF)));
-
-  Function::iterator RBI = RFI->begin();  // Get iterator to corresponding BB
-  std::advance(RBI, std::distance(PF->begin(), Function::const_iterator(PBB)));
-
-  BasicBlock::iterator RI = RBI->begin(); // Get iterator to corresponding inst
-  std::advance(RI, std::distance(PBB->begin(), BasicBlock::const_iterator(I)));
-  Instruction *TheInst = RI;              // Got the corresponding instruction!
-
-  // If this instruction produces a value, replace any users with null values
-  if (isa<StructType>(TheInst->getType()))
-    TheInst->replaceAllUsesWith(UndefValue::get(TheInst->getType()));
-  else if (TheInst->getType() != Type::getVoidTy(I->getContext()))
-    TheInst->replaceAllUsesWith(Constant::getNullValue(TheInst->getType()));
-
-  // Remove the instruction from the program.
-  TheInst->getParent()->getInstList().erase(TheInst);
-
-  
-  //writeProgramToFile("current.bc", Result);
-    
-  // Spiff up the output a little bit.
-  PassManager Passes;
-  // Make sure that the appropriate target data is always used...
-  Passes.add(new TargetData(Result));
-
-  /// FIXME: If this used runPasses() like the methods below, we could get rid
-  /// of the -disable-* options!
-  if (Simplification > 1 && !NoDCE)
-    Passes.add(createDeadCodeEliminationPass());
-  if (Simplification && !DisableSimplifyCFG)
-    Passes.add(createCFGSimplificationPass());      // Delete dead control flow
-
-  Passes.add(createVerifierPass());
-  Passes.run(*Result);
-  return Result;
-}
-
-static const PassInfo *getPI(Pass *P) {
-  const PassInfo *PI = P->getPassInfo();
-  delete P;
-  return PI;
-}
-
-/// performFinalCleanups - This method clones the current Program and performs
-/// a series of cleanups intended to get rid of extra cruft on the module
-/// before handing it to the user.
-///
-Module *BugDriver::performFinalCleanups(Module *M, bool MayModifySemantics) {
-  // Make all functions external, so GlobalDCE doesn't delete them...
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
-    I->setLinkage(GlobalValue::ExternalLinkage);
-
-  std::vector<const PassInfo*> CleanupPasses;
-  CleanupPasses.push_back(getPI(createGlobalDCEPass()));
-  CleanupPasses.push_back(getPI(createDeadTypeEliminationPass()));
-
-  if (MayModifySemantics)
-    CleanupPasses.push_back(getPI(createDeadArgHackingPass()));
-  else
-    CleanupPasses.push_back(getPI(createDeadArgEliminationPass()));
-
-  Module *New = runPassesOn(M, CleanupPasses);
-  if (New == 0) {
-    errs() << "Final cleanups failed.  Sorry. :(  Please report a bug!\n";
-    return M;
-  }
-  delete M;
-  return New;
-}
-
-
-/// ExtractLoop - Given a module, extract up to one loop from it into a new
-/// function.  This returns null if there are no extractable loops in the
-/// program or if the loop extractor crashes.
-Module *BugDriver::ExtractLoop(Module *M) {
-  std::vector<const PassInfo*> LoopExtractPasses;
-  LoopExtractPasses.push_back(getPI(createSingleLoopExtractorPass()));
-
-  Module *NewM = runPassesOn(M, LoopExtractPasses);
-  if (NewM == 0) {
-    Module *Old = swapProgramIn(M);
-    outs() << "*** Loop extraction failed: ";
-    EmitProgressBitcode("loopextraction", true);
-    outs() << "*** Sorry. :(  Please report a bug!\n";
-    swapProgramIn(Old);
-    return 0;
-  }
-
-  // Check to see if we created any new functions.  If not, no loops were
-  // extracted and we should return null.  Limit the number of loops we extract
-  // to avoid taking forever.
-  static unsigned NumExtracted = 32;
-  if (M->size() == NewM->size() || --NumExtracted == 0) {
-    delete NewM;
-    return 0;
-  } else {
-    assert(M->size() < NewM->size() && "Loop extract removed functions?");
-    Module::iterator MI = NewM->begin();
-    for (unsigned i = 0, e = M->size(); i != e; ++i)
-      ++MI;
-  }
-
-  return NewM;
-}
-
-
-// DeleteFunctionBody - "Remove" the function by deleting all of its basic
-// blocks, making it external.
-//
-void llvm::DeleteFunctionBody(Function *F) {
-  // delete the body of the function...
-  F->deleteBody();
-  assert(F->isDeclaration() && "This didn't make the function external!");
-}
-
-/// GetTorInit - Given a list of entries for static ctors/dtors, return them
-/// as a constant array.
-static Constant *GetTorInit(std::vector<std::pair<Function*, int> > &TorList) {
-  assert(!TorList.empty() && "Don't create empty tor list!");
-  std::vector<Constant*> ArrayElts;
-  for (unsigned i = 0, e = TorList.size(); i != e; ++i) {
-    std::vector<Constant*> Elts;
-    Elts.push_back(ConstantInt::get(
-          Type::getInt32Ty(TorList[i].first->getContext()), TorList[i].second));
-    Elts.push_back(TorList[i].first);
-    ArrayElts.push_back(ConstantStruct::get(
-                                        TorList[i].first->getContext(), Elts));
-  }
-  return ConstantArray::get(ArrayType::get(ArrayElts[0]->getType(), 
-                                           ArrayElts.size()),
-                            ArrayElts);
-}
-
-/// SplitStaticCtorDtor - A module was recently split into two parts, M1/M2, and
-/// M1 has all of the global variables.  If M2 contains any functions that are
-/// static ctors/dtors, we need to add an llvm.global_[cd]tors global to M2, and
-/// prune appropriate entries out of M1s list.
-static void SplitStaticCtorDtor(const char *GlobalName, Module *M1, Module *M2,
-                                DenseMap<const Value*, Value*> ValueMap) {
-  GlobalVariable *GV = M1->getNamedGlobal(GlobalName);
-  if (!GV || GV->isDeclaration() || GV->hasLocalLinkage() ||
-      !GV->use_empty()) return;
-  
-  std::vector<std::pair<Function*, int> > M1Tors, M2Tors;
-  ConstantArray *InitList = dyn_cast<ConstantArray>(GV->getInitializer());
-  if (!InitList) return;
-  
-  for (unsigned i = 0, e = InitList->getNumOperands(); i != e; ++i) {
-    if (ConstantStruct *CS = dyn_cast<ConstantStruct>(InitList->getOperand(i))){
-      if (CS->getNumOperands() != 2) return;  // Not array of 2-element structs.
-      
-      if (CS->getOperand(1)->isNullValue())
-        break;  // Found a null terminator, stop here.
-      
-      ConstantInt *CI = dyn_cast<ConstantInt>(CS->getOperand(0));
-      int Priority = CI ? CI->getSExtValue() : 0;
-      
-      Constant *FP = CS->getOperand(1);
-      if (ConstantExpr *CE = dyn_cast<ConstantExpr>(FP))
-        if (CE->isCast())
-          FP = CE->getOperand(0);
-      if (Function *F = dyn_cast<Function>(FP)) {
-        if (!F->isDeclaration())
-          M1Tors.push_back(std::make_pair(F, Priority));
-        else {
-          // Map to M2's version of the function.
-          F = cast<Function>(ValueMap[F]);
-          M2Tors.push_back(std::make_pair(F, Priority));
-        }
-      }
-    }
-  }
-  
-  GV->eraseFromParent();
-  if (!M1Tors.empty()) {
-    Constant *M1Init = GetTorInit(M1Tors);
-    new GlobalVariable(*M1, M1Init->getType(), false,
-                       GlobalValue::AppendingLinkage,
-                       M1Init, GlobalName);
-  }
-
-  GV = M2->getNamedGlobal(GlobalName);
-  assert(GV && "Not a clone of M1?");
-  assert(GV->use_empty() && "llvm.ctors shouldn't have uses!");
-
-  GV->eraseFromParent();
-  if (!M2Tors.empty()) {
-    Constant *M2Init = GetTorInit(M2Tors);
-    new GlobalVariable(*M2, M2Init->getType(), false,
-                       GlobalValue::AppendingLinkage,
-                       M2Init, GlobalName);
-  }
-}
-
-
-/// SplitFunctionsOutOfModule - Given a module and a list of functions in the
-/// module, split the functions OUT of the specified module, and place them in
-/// the new module.
-Module *
-llvm::SplitFunctionsOutOfModule(Module *M,
-                                const std::vector<Function*> &F,
-                                DenseMap<const Value*, Value*> &ValueMap) {
-  // Make sure functions & globals are all external so that linkage
-  // between the two modules will work.
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
-    I->setLinkage(GlobalValue::ExternalLinkage);
-  for (Module::global_iterator I = M->global_begin(), E = M->global_end();
-       I != E; ++I) {
-    if (I->hasName() && I->getName()[0] == '\01')
-      I->setName(I->getName().substr(1));
-    I->setLinkage(GlobalValue::ExternalLinkage);
-  }
-
-  DenseMap<const Value*, Value*> NewValueMap;
-  Module *New = CloneModule(M, NewValueMap);
-
-  // Make sure global initializers exist only in the safe module (CBE->.so)
-  for (Module::global_iterator I = New->global_begin(), E = New->global_end();
-       I != E; ++I)
-    I->setInitializer(0);  // Delete the initializer to make it external
-
-  // Remove the Test functions from the Safe module
-  std::set<Function *> TestFunctions;
-  for (unsigned i = 0, e = F.size(); i != e; ++i) {
-    Function *TNOF = cast<Function>(ValueMap[F[i]]);
-    DEBUG(errs() << "Removing function ");
-    DEBUG(WriteAsOperand(errs(), TNOF, false));
-    DEBUG(errs() << "\n");
-    TestFunctions.insert(cast<Function>(NewValueMap[TNOF]));
-    DeleteFunctionBody(TNOF);       // Function is now external in this module!
-  }
-
-  
-  // Remove the Safe functions from the Test module
-  for (Module::iterator I = New->begin(), E = New->end(); I != E; ++I)
-    if (!TestFunctions.count(I))
-      DeleteFunctionBody(I);
-  
-
-  // Make sure that there is a global ctor/dtor array in both halves of the
-  // module if they both have static ctor/dtor functions.
-  SplitStaticCtorDtor("llvm.global_ctors", M, New, NewValueMap);
-  SplitStaticCtorDtor("llvm.global_dtors", M, New, NewValueMap);
-  
-  return New;
-}
-
-//===----------------------------------------------------------------------===//
-// Basic Block Extraction Code
-//===----------------------------------------------------------------------===//
-
-/// ExtractMappedBlocksFromModule - Extract all but the specified basic blocks
-/// into their own functions.  The only detail is that M is actually a module
-/// cloned from the one the BBs are in, so some mapping needs to be performed.
-/// If this operation fails for some reason (ie the implementation is buggy),
-/// this function should return null, otherwise it returns a new Module.
-Module *BugDriver::ExtractMappedBlocksFromModule(const
-                                                 std::vector<BasicBlock*> &BBs,
-                                                 Module *M) {
-  char *ExtraArg = NULL;
-
-  sys::Path uniqueFilename("bugpoint-extractblocks");
-  std::string ErrMsg;
-  if (uniqueFilename.createTemporaryFileOnDisk(true, &ErrMsg)) {
-    outs() << "*** Basic Block extraction failed!\n";
-    errs() << "Error creating temporary file: " << ErrMsg << "\n";
-    M = swapProgramIn(M);
-    EmitProgressBitcode("basicblockextractfail", true);
-    swapProgramIn(M);
-    return 0;
-  }
-  sys::RemoveFileOnSignal(uniqueFilename);
-
-  std::string ErrorInfo;
-  raw_fd_ostream BlocksToNotExtractFile(uniqueFilename.c_str(), ErrorInfo);
-  if (!ErrorInfo.empty()) {
-    outs() << "*** Basic Block extraction failed!\n";
-    errs() << "Error writing list of blocks to not extract: " << ErrorInfo
-           << "\n";
-    M = swapProgramIn(M);
-    EmitProgressBitcode("basicblockextractfail", true);
-    swapProgramIn(M);
-    return 0;
-  }
-  for (std::vector<BasicBlock*>::const_iterator I = BBs.begin(), E = BBs.end();
-       I != E; ++I) {
-    BasicBlock *BB = *I;
-    // If the BB doesn't have a name, give it one so we have something to key
-    // off of.
-    if (!BB->hasName()) BB->setName("tmpbb");
-    BlocksToNotExtractFile << BB->getParent()->getNameStr() << " "
-                           << BB->getName() << "\n";
-  }
-  BlocksToNotExtractFile.close();
-
-  const char *uniqueFN = uniqueFilename.c_str();
-  ExtraArg = (char*)malloc(23 + strlen(uniqueFN));
-  strcat(strcpy(ExtraArg, "--extract-blocks-file="), uniqueFN);
-
-  std::vector<const PassInfo*> PI;
-  std::vector<BasicBlock *> EmptyBBs; // This parameter is ignored.
-  PI.push_back(getPI(createBlockExtractorPass(EmptyBBs)));
-  Module *Ret = runPassesOn(M, PI, false, 1, &ExtraArg);
-
-  if (uniqueFilename.exists())
-    uniqueFilename.eraseFromDisk(); // Free disk space
-  free(ExtraArg);
-
-  if (Ret == 0) {
-    outs() << "*** Basic Block extraction failed, please report a bug!\n";
-    M = swapProgramIn(M);
-    EmitProgressBitcode("basicblockextractfail", true);
-    swapProgramIn(M);
-  }
-  return Ret;
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/FindBugs.cpp b/libclamav/c++/llvm/tools/bugpoint/FindBugs.cpp
deleted file mode 100644
index 2c11d29..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/FindBugs.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//===-- FindBugs.cpp - Run Many Different Optimizations -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an interface that allows bugpoint to choose different 
-// combinations of optimizations to run on the selected input. Bugpoint will 
-// run these optimizations and record the success/failure of each. This way
-// we can hopefully spot bugs in the optimizations.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BugDriver.h"
-#include "ToolRunner.h"
-#include "llvm/Pass.h"
-#include "llvm/Support/raw_ostream.h"
-#include <algorithm>
-#include <ctime>
-using namespace llvm;
-
-/// runManyPasses - Take the specified pass list and create different 
-/// combinations of passes to compile the program with. Compile the program with
-/// each set and mark test to see if it compiled correctly. If the passes 
-/// compiled correctly output nothing and rearrange the passes into a new order.
-/// If the passes did not compile correctly, output the command required to 
-/// recreate the failure. This returns true if a compiler error is found.
-///
-bool BugDriver::runManyPasses(const std::vector<const PassInfo*> &AllPasses) {
-  setPassesToRun(AllPasses);
-  outs() << "Starting bug finding procedure...\n\n";
-  
-  // Creating a reference output if necessary
-  if (initializeExecutionEnvironment()) return false;
-  
-  outs() << "\n";
-  if (ReferenceOutputFile.empty()) {
-    outs() << "Generating reference output from raw program: \n";
-    if (!createReferenceFile(Program))
-      return false;
-  }
-  
-  srand(time(NULL));  
-  
-  unsigned num = 1;
-  while(1) {  
-    //
-    // Step 1: Randomize the order of the optimizer passes.
-    //
-    std::random_shuffle(PassesToRun.begin(), PassesToRun.end());
-    
-    //
-    // Step 2: Run optimizer passes on the program and check for success.
-    //
-    outs() << "Running selected passes on program to test for crash: ";
-    for(int i = 0, e = PassesToRun.size(); i != e; i++) {
-      outs() << "-" << PassesToRun[i]->getPassArgument( )<< " ";
-    }
-    
-    std::string Filename;
-    if(runPasses(PassesToRun, Filename, false)) {
-      outs() << "\n";
-      outs() << "Optimizer passes caused failure!\n\n";
-      debugOptimizerCrash();
-      return true;
-    } else {
-      outs() << "Combination " << num << " optimized successfully!\n";
-    }
-    
-    //
-    // Step 3: Compile the optimized code.
-    //
-    outs() << "Running the code generator to test for a crash: ";
-    try {
-      compileProgram(Program);
-      outs() << '\n';
-    } catch (ToolExecutionError &TEE) {
-      outs() << "\n*** compileProgram threw an exception: ";
-      outs() << TEE.what();
-      return debugCodeGeneratorCrash();
-    }
-    
-    //
-    // Step 4: Run the program and compare its output to the reference 
-    // output (created above).
-    //
-    outs() << "*** Checking if passes caused miscompliation:\n";
-    try {
-      if (diffProgram(Filename, "", false)) {
-        outs() << "\n*** diffProgram returned true!\n";
-        debugMiscompilation();
-        return true;
-      } else {
-        outs() << "\n*** diff'd output matches!\n";
-      }
-    } catch (ToolExecutionError &TEE) {
-      errs() << TEE.what();
-      debugCodeGeneratorCrash();
-      return true;
-    }
-    
-    sys::Path(Filename).eraseFromDisk();
-    
-    outs() << "\n\n";
-    num++;
-  } //end while
-  
-  // Unreachable.
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/ListReducer.h b/libclamav/c++/llvm/tools/bugpoint/ListReducer.h
deleted file mode 100644
index 8036d1f..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/ListReducer.h
+++ /dev/null
@@ -1,189 +0,0 @@
-//===- ListReducer.h - Trim down list while retaining property --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class is to be used as a base class for operations that want to zero in
-// on a subset of the input which still causes the bug we are tracking.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BUGPOINT_LIST_REDUCER_H
-#define BUGPOINT_LIST_REDUCER_H
-
-#include "llvm/Support/raw_ostream.h"
-#include <vector>
-#include <cstdlib>
-#include <algorithm>
-
-namespace llvm {
-  
-  extern bool BugpointIsInterrupted;
-
-template<typename ElTy>
-struct ListReducer {
-  enum TestResult {
-    NoFailure,         // No failure of the predicate was detected
-    KeepSuffix,        // The suffix alone satisfies the predicate
-    KeepPrefix         // The prefix alone satisfies the predicate
-  };
-
-  virtual ~ListReducer() {}
-
-  // doTest - This virtual function should be overriden by subclasses to
-  // implement the test desired.  The testcase is only required to test to see
-  // if the Kept list still satisfies the property, but if it is going to check
-  // the prefix anyway, it can.
-  //
-  virtual TestResult doTest(std::vector<ElTy> &Prefix,
-                            std::vector<ElTy> &Kept) = 0;
-
-  // reduceList - This function attempts to reduce the length of the specified
-  // list while still maintaining the "test" property.  This is the core of the
-  // "work" that bugpoint does.
-  //
-  bool reduceList(std::vector<ElTy> &TheList) {
-    std::vector<ElTy> empty;
-    std::srand(0x6e5ea738); // Seed the random number generator
-    switch (doTest(TheList, empty)) {
-    case KeepPrefix:
-      if (TheList.size() == 1) // we are done, it's the base case and it fails
-        return true;
-      else
-        break; // there's definitely an error, but we need to narrow it down
-
-    case KeepSuffix:
-      // cannot be reached!
-      errs() << "bugpoint ListReducer internal error: selected empty set.\n";
-      abort();
-
-    case NoFailure:
-      return false; // there is no failure with the full set of passes/funcs!
-    }
-
-    // Maximal number of allowed splitting iterations,
-    // before the elements are randomly shuffled.
-    const unsigned MaxIterationsWithoutProgress = 3;
-    bool ShufflingEnabled = true;
-
-Backjump:
-    unsigned MidTop = TheList.size();
-    unsigned MaxIterations = MaxIterationsWithoutProgress;
-    unsigned NumOfIterationsWithoutProgress = 0;
-    while (MidTop > 1) { // Binary split reduction loop
-      // Halt if the user presses ctrl-c.
-      if (BugpointIsInterrupted) {
-        errs() << "\n\n*** Reduction Interrupted, cleaning up...\n\n";
-        return true;
-      }
-
-      // If the loop doesn't make satisfying progress, try shuffling.
-      // The purpose of shuffling is to avoid the heavy tails of the
-      // distribution (improving the speed of convergence).
-      if (ShufflingEnabled && 
-          NumOfIterationsWithoutProgress > MaxIterations) {
-        std::vector<ElTy> ShuffledList(TheList);
-        std::random_shuffle(ShuffledList.begin(), ShuffledList.end());
-        errs() << "\n\n*** Testing shuffled set...\n\n";
-        // Check that random shuffle doesn't loose the bug
-        if (doTest(ShuffledList, empty) == KeepPrefix) {
-          // If the bug is still here, use the shuffled list.
-          TheList.swap(ShuffledList);
-          MidTop = TheList.size();
-          // Must increase the shuffling treshold to avoid the small 
-          // probability of inifinite looping without making progress.
-          MaxIterations += 2;
-          errs() << "\n\n*** Shuffling does not hide the bug...\n\n";
-        } else {
-          ShufflingEnabled = false; // Disable shuffling further on
-          errs() << "\n\n*** Shuffling hides the bug...\n\n";
-        }
-        NumOfIterationsWithoutProgress = 0;
-      }
-      
-      unsigned Mid = MidTop / 2;
-      std::vector<ElTy> Prefix(TheList.begin(), TheList.begin()+Mid);
-      std::vector<ElTy> Suffix(TheList.begin()+Mid, TheList.end());
-
-      switch (doTest(Prefix, Suffix)) {
-      case KeepSuffix:
-        // The property still holds.  We can just drop the prefix elements, and
-        // shorten the list to the "kept" elements.
-        TheList.swap(Suffix);
-        MidTop = TheList.size();
-        // Reset progress treshold and progress counter
-        MaxIterations = MaxIterationsWithoutProgress;
-        NumOfIterationsWithoutProgress = 0;
-        break;
-      case KeepPrefix:
-        // The predicate still holds, shorten the list to the prefix elements.
-        TheList.swap(Prefix);
-        MidTop = TheList.size();
-        // Reset progress treshold and progress counter
-        MaxIterations = MaxIterationsWithoutProgress;
-        NumOfIterationsWithoutProgress = 0;
-        break;
-      case NoFailure:
-        // Otherwise the property doesn't hold.  Some of the elements we removed
-        // must be necessary to maintain the property.
-        MidTop = Mid;
-        NumOfIterationsWithoutProgress++;
-        break;
-      }
-    }
-
-    // Probability of backjumping from the trimming loop back to the binary
-    // split reduction loop.
-    const int BackjumpProbability = 10;
-
-    // Okay, we trimmed as much off the top and the bottom of the list as we
-    // could.  If there is more than two elements in the list, try deleting 
-    // interior elements and testing that.
-    //
-    if (TheList.size() > 2) {
-      bool Changed = true;
-      std::vector<ElTy> EmptyList;
-      while (Changed) {  // Trimming loop.
-        Changed = false;
-        
-        // If the binary split reduction loop made an unfortunate sequence of
-        // splits, the trimming loop might be left off with a huge number of
-        // remaining elements (large search space). Backjumping out of that
-        // search space and attempting a different split can significantly 
-        // improve the convergence speed.
-        if (std::rand() % 100 < BackjumpProbability)
-          goto Backjump;
-        
-        for (unsigned i = 1; i < TheList.size()-1; ++i) { // Check interior elts
-          if (BugpointIsInterrupted) {
-            errs() << "\n\n*** Reduction Interrupted, cleaning up...\n\n";
-            return true;
-          }
-          
-          std::vector<ElTy> TestList(TheList);
-          TestList.erase(TestList.begin()+i);
-
-          if (doTest(EmptyList, TestList) == KeepSuffix) {
-            // We can trim down the list!
-            TheList.swap(TestList);
-            --i;  // Don't skip an element of the list
-            Changed = true;
-          }
-        }
-        // This can take a long time if left uncontrolled.  For now, don't
-        // iterate.
-        break;
-      }
-    }
-
-    return true; // there are some failure and we've narrowed them down
-  }
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/tools/bugpoint/Makefile b/libclamav/c++/llvm/tools/bugpoint/Makefile
deleted file mode 100644
index b821b6c..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- tools/bugpoint/Makefile -----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-
-TOOLNAME = bugpoint
-
-LINK_COMPONENTS := asmparser instrumentation scalaropts ipo \
-                   linker bitreader bitwriter
-REQUIRES_EH := 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/bugpoint/Miscompilation.cpp b/libclamav/c++/llvm/tools/bugpoint/Miscompilation.cpp
deleted file mode 100644
index 57a4fc7..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/Miscompilation.cpp
+++ /dev/null
@@ -1,955 +0,0 @@
-//===- Miscompilation.cpp - Debug program miscompilations -----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements optimizer and code generation miscompilation debugging
-// support.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BugDriver.h"
-#include "ListReducer.h"
-#include "ToolRunner.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Instructions.h"
-#include "llvm/Linker.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Transforms/Utils/Cloning.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Config/config.h"   // for HAVE_LINK_R
-using namespace llvm;
-
-namespace llvm {
-  extern cl::list<std::string> InputArgv;
-}
-
-namespace {
-  static llvm::cl::opt<bool> 
-    DisableLoopExtraction("disable-loop-extraction", 
-        cl::desc("Don't extract loops when searching for miscompilations"),
-        cl::init(false));
-  static llvm::cl::opt<bool> 
-    DisableBlockExtraction("disable-block-extraction", 
-        cl::desc("Don't extract blocks when searching for miscompilations"),
-        cl::init(false));
-
-  class ReduceMiscompilingPasses : public ListReducer<const PassInfo*> {
-    BugDriver &BD;
-  public:
-    ReduceMiscompilingPasses(BugDriver &bd) : BD(bd) {}
-
-    virtual TestResult doTest(std::vector<const PassInfo*> &Prefix,
-                              std::vector<const PassInfo*> &Suffix);
-  };
-}
-
-/// TestResult - After passes have been split into a test group and a control
-/// group, see if they still break the program.
-///
-ReduceMiscompilingPasses::TestResult
-ReduceMiscompilingPasses::doTest(std::vector<const PassInfo*> &Prefix,
-                                 std::vector<const PassInfo*> &Suffix) {
-  // First, run the program with just the Suffix passes.  If it is still broken
-  // with JUST the kept passes, discard the prefix passes.
-  outs() << "Checking to see if '" << getPassesString(Suffix)
-         << "' compiles correctly: ";
-
-  std::string BitcodeResult;
-  if (BD.runPasses(Suffix, BitcodeResult, false/*delete*/, true/*quiet*/)) {
-    errs() << " Error running this sequence of passes"
-           << " on the input program!\n";
-    BD.setPassesToRun(Suffix);
-    BD.EmitProgressBitcode("pass-error",  false);
-    exit(BD.debugOptimizerCrash());
-  }
-  
-  // Check to see if the finished program matches the reference output...
-  if (BD.diffProgram(BitcodeResult, "", true /*delete bitcode*/)) {
-    outs() << " nope.\n";
-    if (Suffix.empty()) {
-      errs() << BD.getToolName() << ": I'm confused: the test fails when "
-             << "no passes are run, nondeterministic program?\n";
-      exit(1);
-    }
-    return KeepSuffix;         // Miscompilation detected!
-  }
-  outs() << " yup.\n";      // No miscompilation!
-
-  if (Prefix.empty()) return NoFailure;
-
-  // Next, see if the program is broken if we run the "prefix" passes first,
-  // then separately run the "kept" passes.
-  outs() << "Checking to see if '" << getPassesString(Prefix)
-         << "' compiles correctly: ";
-
-  // If it is not broken with the kept passes, it's possible that the prefix
-  // passes must be run before the kept passes to break it.  If the program
-  // WORKS after the prefix passes, but then fails if running the prefix AND
-  // kept passes, we can update our bitcode file to include the result of the
-  // prefix passes, then discard the prefix passes.
-  //
-  if (BD.runPasses(Prefix, BitcodeResult, false/*delete*/, true/*quiet*/)) {
-    errs() << " Error running this sequence of passes"
-           << " on the input program!\n";
-    BD.setPassesToRun(Prefix);
-    BD.EmitProgressBitcode("pass-error",  false);
-    exit(BD.debugOptimizerCrash());
-  }
-
-  // If the prefix maintains the predicate by itself, only keep the prefix!
-  if (BD.diffProgram(BitcodeResult)) {
-    outs() << " nope.\n";
-    sys::Path(BitcodeResult).eraseFromDisk();
-    return KeepPrefix;
-  }
-  outs() << " yup.\n";      // No miscompilation!
-
-  // Ok, so now we know that the prefix passes work, try running the suffix
-  // passes on the result of the prefix passes.
-  //
-  Module *PrefixOutput = ParseInputFile(BitcodeResult, BD.getContext());
-  if (PrefixOutput == 0) {
-    errs() << BD.getToolName() << ": Error reading bitcode file '"
-           << BitcodeResult << "'!\n";
-    exit(1);
-  }
-  sys::Path(BitcodeResult).eraseFromDisk();  // No longer need the file on disk
-
-  // Don't check if there are no passes in the suffix.
-  if (Suffix.empty())
-    return NoFailure;
-
-  outs() << "Checking to see if '" << getPassesString(Suffix)
-            << "' passes compile correctly after the '"
-            << getPassesString(Prefix) << "' passes: ";
-
-  Module *OriginalInput = BD.swapProgramIn(PrefixOutput);
-  if (BD.runPasses(Suffix, BitcodeResult, false/*delete*/, true/*quiet*/)) {
-    errs() << " Error running this sequence of passes"
-           << " on the input program!\n";
-    BD.setPassesToRun(Suffix);
-    BD.EmitProgressBitcode("pass-error",  false);
-    exit(BD.debugOptimizerCrash());
-  }
-
-  // Run the result...
-  if (BD.diffProgram(BitcodeResult, "", true/*delete bitcode*/)) {
-    outs() << " nope.\n";
-    delete OriginalInput;     // We pruned down the original input...
-    return KeepSuffix;
-  }
-
-  // Otherwise, we must not be running the bad pass anymore.
-  outs() << " yup.\n";      // No miscompilation!
-  delete BD.swapProgramIn(OriginalInput); // Restore orig program & free test
-  return NoFailure;
-}
-
-namespace {
-  class ReduceMiscompilingFunctions : public ListReducer<Function*> {
-    BugDriver &BD;
-    bool (*TestFn)(BugDriver &, Module *, Module *);
-  public:
-    ReduceMiscompilingFunctions(BugDriver &bd,
-                                bool (*F)(BugDriver &, Module *, Module *))
-      : BD(bd), TestFn(F) {}
-
-    virtual TestResult doTest(std::vector<Function*> &Prefix,
-                              std::vector<Function*> &Suffix) {
-      if (!Suffix.empty() && TestFuncs(Suffix))
-        return KeepSuffix;
-      if (!Prefix.empty() && TestFuncs(Prefix))
-        return KeepPrefix;
-      return NoFailure;
-    }
-
-    bool TestFuncs(const std::vector<Function*> &Prefix);
-  };
-}
-
-/// TestMergedProgram - Given two modules, link them together and run the
-/// program, checking to see if the program matches the diff.  If the diff
-/// matches, return false, otherwise return true.  If the DeleteInputs argument
-/// is set to true then this function deletes both input modules before it
-/// returns.
-///
-static bool TestMergedProgram(BugDriver &BD, Module *M1, Module *M2,
-                              bool DeleteInputs) {
-  // Link the two portions of the program back to together.
-  std::string ErrorMsg;
-  if (!DeleteInputs) {
-    M1 = CloneModule(M1);
-    M2 = CloneModule(M2);
-  }
-  if (Linker::LinkModules(M1, M2, &ErrorMsg)) {
-    errs() << BD.getToolName() << ": Error linking modules together:"
-           << ErrorMsg << '\n';
-    exit(1);
-  }
-  delete M2;   // We are done with this module.
-
-  Module *OldProgram = BD.swapProgramIn(M1);
-
-  // Execute the program.  If it does not match the expected output, we must
-  // return true.
-  bool Broken = BD.diffProgram();
-
-  // Delete the linked module & restore the original
-  BD.swapProgramIn(OldProgram);
-  delete M1;
-  return Broken;
-}
-
-/// TestFuncs - split functions in a Module into two groups: those that are
-/// under consideration for miscompilation vs. those that are not, and test
-/// accordingly. Each group of functions becomes a separate Module.
-///
-bool ReduceMiscompilingFunctions::TestFuncs(const std::vector<Function*>&Funcs){
-  // Test to see if the function is misoptimized if we ONLY run it on the
-  // functions listed in Funcs.
-  outs() << "Checking to see if the program is misoptimized when "
-         << (Funcs.size()==1 ? "this function is" : "these functions are")
-         << " run through the pass"
-         << (BD.getPassesToRun().size() == 1 ? "" : "es") << ":";
-  PrintFunctionList(Funcs);
-  outs() << '\n';
-
-  // Split the module into the two halves of the program we want.
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *ToNotOptimize = CloneModule(BD.getProgram(), ValueMap);
-  Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize, Funcs,
-                                                 ValueMap);
-
-  // Run the predicate, note that the predicate will delete both input modules.
-  return TestFn(BD, ToOptimize, ToNotOptimize);
-}
-
-/// DisambiguateGlobalSymbols - Mangle symbols to guarantee uniqueness by
-/// modifying predominantly internal symbols rather than external ones.
-///
-static void DisambiguateGlobalSymbols(Module *M) {
-  // Try not to cause collisions by minimizing chances of renaming an
-  // already-external symbol, so take in external globals and functions as-is.
-  // The code should work correctly without disambiguation (assuming the same
-  // mangler is used by the two code generators), but having symbols with the
-  // same name causes warnings to be emitted by the code generator.
-  Mangler Mang(*M);
-  // Agree with the CBE on symbol naming
-  Mang.markCharUnacceptable('.');
-  for (Module::global_iterator I = M->global_begin(), E = M->global_end();
-       I != E; ++I) {
-    // Don't mangle asm names.
-    if (!I->hasName() || I->getName()[0] != 1)
-      I->setName(Mang.getMangledName(I));
-  }
-  for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) {
-    // Don't mangle asm names or intrinsics.
-    if ((!I->hasName() || I->getName()[0] != 1) &&
-        I->getIntrinsicID() == 0)
-      I->setName(Mang.getMangledName(I));
-  }
-}
-
-/// ExtractLoops - Given a reduced list of functions that still exposed the bug,
-/// check to see if we can extract the loops in the region without obscuring the
-/// bug.  If so, it reduces the amount of code identified.
-///
-static bool ExtractLoops(BugDriver &BD,
-                         bool (*TestFn)(BugDriver &, Module *, Module *),
-                         std::vector<Function*> &MiscompiledFunctions) {
-  bool MadeChange = false;
-  while (1) {
-    if (BugpointIsInterrupted) return MadeChange;
-    
-    DenseMap<const Value*, Value*> ValueMap;
-    Module *ToNotOptimize = CloneModule(BD.getProgram(), ValueMap);
-    Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize,
-                                                   MiscompiledFunctions,
-                                                   ValueMap);
-    Module *ToOptimizeLoopExtracted = BD.ExtractLoop(ToOptimize);
-    if (!ToOptimizeLoopExtracted) {
-      // If the loop extractor crashed or if there were no extractible loops,
-      // then this chapter of our odyssey is over with.
-      delete ToNotOptimize;
-      delete ToOptimize;
-      return MadeChange;
-    }
-
-    errs() << "Extracted a loop from the breaking portion of the program.\n";
-
-    // Bugpoint is intentionally not very trusting of LLVM transformations.  In
-    // particular, we're not going to assume that the loop extractor works, so
-    // we're going to test the newly loop extracted program to make sure nothing
-    // has broken.  If something broke, then we'll inform the user and stop
-    // extraction.
-    AbstractInterpreter *AI = BD.switchToSafeInterpreter();
-    if (TestMergedProgram(BD, ToOptimizeLoopExtracted, ToNotOptimize, false)) {
-      BD.switchToInterpreter(AI);
-
-      // Merged program doesn't work anymore!
-      errs() << "  *** ERROR: Loop extraction broke the program. :("
-             << " Please report a bug!\n";
-      errs() << "      Continuing on with un-loop-extracted version.\n";
-
-      BD.writeProgramToFile("bugpoint-loop-extract-fail-tno.bc", ToNotOptimize);
-      BD.writeProgramToFile("bugpoint-loop-extract-fail-to.bc", ToOptimize);
-      BD.writeProgramToFile("bugpoint-loop-extract-fail-to-le.bc",
-                            ToOptimizeLoopExtracted);
-
-      errs() << "Please submit the bugpoint-loop-extract-fail-*.bc files.\n";
-      delete ToOptimize;
-      delete ToNotOptimize;
-      delete ToOptimizeLoopExtracted;
-      return MadeChange;
-    }
-    delete ToOptimize;
-    BD.switchToInterpreter(AI);
-
-    outs() << "  Testing after loop extraction:\n";
-    // Clone modules, the tester function will free them.
-    Module *TOLEBackup = CloneModule(ToOptimizeLoopExtracted);
-    Module *TNOBackup  = CloneModule(ToNotOptimize);
-    if (!TestFn(BD, ToOptimizeLoopExtracted, ToNotOptimize)) {
-      outs() << "*** Loop extraction masked the problem.  Undoing.\n";
-      // If the program is not still broken, then loop extraction did something
-      // that masked the error.  Stop loop extraction now.
-      delete TOLEBackup;
-      delete TNOBackup;
-      return MadeChange;
-    }
-    ToOptimizeLoopExtracted = TOLEBackup;
-    ToNotOptimize = TNOBackup;
-
-    outs() << "*** Loop extraction successful!\n";
-
-    std::vector<std::pair<std::string, const FunctionType*> > MisCompFunctions;
-    for (Module::iterator I = ToOptimizeLoopExtracted->begin(),
-           E = ToOptimizeLoopExtracted->end(); I != E; ++I)
-      if (!I->isDeclaration())
-        MisCompFunctions.push_back(std::make_pair(I->getName(),
-                                                  I->getFunctionType()));
-
-    // Okay, great!  Now we know that we extracted a loop and that loop
-    // extraction both didn't break the program, and didn't mask the problem.
-    // Replace the current program with the loop extracted version, and try to
-    // extract another loop.
-    std::string ErrorMsg;
-    if (Linker::LinkModules(ToNotOptimize, ToOptimizeLoopExtracted, &ErrorMsg)){
-      errs() << BD.getToolName() << ": Error linking modules together:"
-             << ErrorMsg << '\n';
-      exit(1);
-    }
-    delete ToOptimizeLoopExtracted;
-
-    // All of the Function*'s in the MiscompiledFunctions list are in the old
-    // module.  Update this list to include all of the functions in the
-    // optimized and loop extracted module.
-    MiscompiledFunctions.clear();
-    for (unsigned i = 0, e = MisCompFunctions.size(); i != e; ++i) {
-      Function *NewF = ToNotOptimize->getFunction(MisCompFunctions[i].first);
-                                                  
-      assert(NewF && "Function not found??");
-      assert(NewF->getFunctionType() == MisCompFunctions[i].second && 
-             "found wrong function type?");
-      MiscompiledFunctions.push_back(NewF);
-    }
-
-    BD.setNewProgram(ToNotOptimize);
-    MadeChange = true;
-  }
-}
-
-namespace {
-  class ReduceMiscompiledBlocks : public ListReducer<BasicBlock*> {
-    BugDriver &BD;
-    bool (*TestFn)(BugDriver &, Module *, Module *);
-    std::vector<Function*> FunctionsBeingTested;
-  public:
-    ReduceMiscompiledBlocks(BugDriver &bd,
-                            bool (*F)(BugDriver &, Module *, Module *),
-                            const std::vector<Function*> &Fns)
-      : BD(bd), TestFn(F), FunctionsBeingTested(Fns) {}
-
-    virtual TestResult doTest(std::vector<BasicBlock*> &Prefix,
-                              std::vector<BasicBlock*> &Suffix) {
-      if (!Suffix.empty() && TestFuncs(Suffix))
-        return KeepSuffix;
-      if (TestFuncs(Prefix))
-        return KeepPrefix;
-      return NoFailure;
-    }
-
-    bool TestFuncs(const std::vector<BasicBlock*> &Prefix);
-  };
-}
-
-/// TestFuncs - Extract all blocks for the miscompiled functions except for the
-/// specified blocks.  If the problem still exists, return true.
-///
-bool ReduceMiscompiledBlocks::TestFuncs(const std::vector<BasicBlock*> &BBs) {
-  // Test to see if the function is misoptimized if we ONLY run it on the
-  // functions listed in Funcs.
-  outs() << "Checking to see if the program is misoptimized when all ";
-  if (!BBs.empty()) {
-    outs() << "but these " << BBs.size() << " blocks are extracted: ";
-    for (unsigned i = 0, e = BBs.size() < 10 ? BBs.size() : 10; i != e; ++i)
-      outs() << BBs[i]->getName() << " ";
-    if (BBs.size() > 10) outs() << "...";
-  } else {
-    outs() << "blocks are extracted.";
-  }
-  outs() << '\n';
-
-  // Split the module into the two halves of the program we want.
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *ToNotOptimize = CloneModule(BD.getProgram(), ValueMap);
-  Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize,
-                                                 FunctionsBeingTested,
-                                                 ValueMap);
-
-  // Try the extraction.  If it doesn't work, then the block extractor crashed
-  // or something, in which case bugpoint can't chase down this possibility.
-  if (Module *New = BD.ExtractMappedBlocksFromModule(BBs, ToOptimize)) {
-    delete ToOptimize;
-    // Run the predicate, not that the predicate will delete both input modules.
-    return TestFn(BD, New, ToNotOptimize);
-  }
-  delete ToOptimize;
-  delete ToNotOptimize;
-  return false;
-}
-
-
-/// ExtractBlocks - Given a reduced list of functions that still expose the bug,
-/// extract as many basic blocks from the region as possible without obscuring
-/// the bug.
-///
-static bool ExtractBlocks(BugDriver &BD,
-                          bool (*TestFn)(BugDriver &, Module *, Module *),
-                          std::vector<Function*> &MiscompiledFunctions) {
-  if (BugpointIsInterrupted) return false;
-  
-  std::vector<BasicBlock*> Blocks;
-  for (unsigned i = 0, e = MiscompiledFunctions.size(); i != e; ++i)
-    for (Function::iterator I = MiscompiledFunctions[i]->begin(),
-           E = MiscompiledFunctions[i]->end(); I != E; ++I)
-      Blocks.push_back(I);
-
-  // Use the list reducer to identify blocks that can be extracted without
-  // obscuring the bug.  The Blocks list will end up containing blocks that must
-  // be retained from the original program.
-  unsigned OldSize = Blocks.size();
-
-  // Check to see if all blocks are extractible first.
-  if (ReduceMiscompiledBlocks(BD, TestFn,
-                  MiscompiledFunctions).TestFuncs(std::vector<BasicBlock*>())) {
-    Blocks.clear();
-  } else {
-    ReduceMiscompiledBlocks(BD, TestFn,MiscompiledFunctions).reduceList(Blocks);
-    if (Blocks.size() == OldSize)
-      return false;
-  }
-
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *ProgClone = CloneModule(BD.getProgram(), ValueMap);
-  Module *ToExtract = SplitFunctionsOutOfModule(ProgClone,
-                                                MiscompiledFunctions,
-                                                ValueMap);
-  Module *Extracted = BD.ExtractMappedBlocksFromModule(Blocks, ToExtract);
-  if (Extracted == 0) {
-    // Weird, extraction should have worked.
-    errs() << "Nondeterministic problem extracting blocks??\n";
-    delete ProgClone;
-    delete ToExtract;
-    return false;
-  }
-
-  // Otherwise, block extraction succeeded.  Link the two program fragments back
-  // together.
-  delete ToExtract;
-
-  std::vector<std::pair<std::string, const FunctionType*> > MisCompFunctions;
-  for (Module::iterator I = Extracted->begin(), E = Extracted->end();
-       I != E; ++I)
-    if (!I->isDeclaration())
-      MisCompFunctions.push_back(std::make_pair(I->getName(),
-                                                I->getFunctionType()));
-
-  std::string ErrorMsg;
-  if (Linker::LinkModules(ProgClone, Extracted, &ErrorMsg)) {
-    errs() << BD.getToolName() << ": Error linking modules together:"
-           << ErrorMsg << '\n';
-    exit(1);
-  }
-  delete Extracted;
-
-  // Set the new program and delete the old one.
-  BD.setNewProgram(ProgClone);
-
-  // Update the list of miscompiled functions.
-  MiscompiledFunctions.clear();
-
-  for (unsigned i = 0, e = MisCompFunctions.size(); i != e; ++i) {
-    Function *NewF = ProgClone->getFunction(MisCompFunctions[i].first);
-    assert(NewF && "Function not found??");
-    assert(NewF->getFunctionType() == MisCompFunctions[i].second && 
-           "Function has wrong type??");
-    MiscompiledFunctions.push_back(NewF);
-  }
-
-  return true;
-}
-
-
-/// DebugAMiscompilation - This is a generic driver to narrow down
-/// miscompilations, either in an optimization or a code generator.
-///
-static std::vector<Function*>
-DebugAMiscompilation(BugDriver &BD,
-                     bool (*TestFn)(BugDriver &, Module *, Module *)) {
-  // Okay, now that we have reduced the list of passes which are causing the
-  // failure, see if we can pin down which functions are being
-  // miscompiled... first build a list of all of the non-external functions in
-  // the program.
-  std::vector<Function*> MiscompiledFunctions;
-  Module *Prog = BD.getProgram();
-  for (Module::iterator I = Prog->begin(), E = Prog->end(); I != E; ++I)
-    if (!I->isDeclaration())
-      MiscompiledFunctions.push_back(I);
-
-  // Do the reduction...
-  if (!BugpointIsInterrupted)
-    ReduceMiscompilingFunctions(BD, TestFn).reduceList(MiscompiledFunctions);
-
-  outs() << "\n*** The following function"
-         << (MiscompiledFunctions.size() == 1 ? " is" : "s are")
-         << " being miscompiled: ";
-  PrintFunctionList(MiscompiledFunctions);
-  outs() << '\n';
-
-  // See if we can rip any loops out of the miscompiled functions and still
-  // trigger the problem.
-
-  if (!BugpointIsInterrupted && !DisableLoopExtraction &&
-      ExtractLoops(BD, TestFn, MiscompiledFunctions)) {
-    // Okay, we extracted some loops and the problem still appears.  See if we
-    // can eliminate some of the created functions from being candidates.
-
-    // Loop extraction can introduce functions with the same name (foo_code).
-    // Make sure to disambiguate the symbols so that when the program is split
-    // apart that we can link it back together again.
-    DisambiguateGlobalSymbols(BD.getProgram());
-
-    // Do the reduction...
-    if (!BugpointIsInterrupted)
-      ReduceMiscompilingFunctions(BD, TestFn).reduceList(MiscompiledFunctions);
-
-    outs() << "\n*** The following function"
-           << (MiscompiledFunctions.size() == 1 ? " is" : "s are")
-           << " being miscompiled: ";
-    PrintFunctionList(MiscompiledFunctions);
-    outs() << '\n';
-  }
-
-  if (!BugpointIsInterrupted && !DisableBlockExtraction && 
-      ExtractBlocks(BD, TestFn, MiscompiledFunctions)) {
-    // Okay, we extracted some blocks and the problem still appears.  See if we
-    // can eliminate some of the created functions from being candidates.
-
-    // Block extraction can introduce functions with the same name (foo_code).
-    // Make sure to disambiguate the symbols so that when the program is split
-    // apart that we can link it back together again.
-    DisambiguateGlobalSymbols(BD.getProgram());
-
-    // Do the reduction...
-    ReduceMiscompilingFunctions(BD, TestFn).reduceList(MiscompiledFunctions);
-
-    outs() << "\n*** The following function"
-           << (MiscompiledFunctions.size() == 1 ? " is" : "s are")
-           << " being miscompiled: ";
-    PrintFunctionList(MiscompiledFunctions);
-    outs() << '\n';
-  }
-
-  return MiscompiledFunctions;
-}
-
-/// TestOptimizer - This is the predicate function used to check to see if the
-/// "Test" portion of the program is misoptimized.  If so, return true.  In any
-/// case, both module arguments are deleted.
-///
-static bool TestOptimizer(BugDriver &BD, Module *Test, Module *Safe) {
-  // Run the optimization passes on ToOptimize, producing a transformed version
-  // of the functions being tested.
-  outs() << "  Optimizing functions being tested: ";
-  Module *Optimized = BD.runPassesOn(Test, BD.getPassesToRun(),
-                                     /*AutoDebugCrashes*/true);
-  outs() << "done.\n";
-  delete Test;
-
-  outs() << "  Checking to see if the merged program executes correctly: ";
-  bool Broken = TestMergedProgram(BD, Optimized, Safe, true);
-  outs() << (Broken ? " nope.\n" : " yup.\n");
-  return Broken;
-}
-
-
-/// debugMiscompilation - This method is used when the passes selected are not
-/// crashing, but the generated output is semantically different from the
-/// input.
-///
-bool BugDriver::debugMiscompilation() {
-  // Make sure something was miscompiled...
-  if (!BugpointIsInterrupted)
-    if (!ReduceMiscompilingPasses(*this).reduceList(PassesToRun)) {
-      errs() << "*** Optimized program matches reference output!  No problem"
-             << " detected...\nbugpoint can't help you with your problem!\n";
-      return false;
-    }
-
-  outs() << "\n*** Found miscompiling pass"
-         << (getPassesToRun().size() == 1 ? "" : "es") << ": "
-         << getPassesString(getPassesToRun()) << '\n';
-  EmitProgressBitcode("passinput");
-
-  std::vector<Function*> MiscompiledFunctions =
-    DebugAMiscompilation(*this, TestOptimizer);
-
-  // Output a bunch of bitcode files for the user...
-  outs() << "Outputting reduced bitcode files which expose the problem:\n";
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *ToNotOptimize = CloneModule(getProgram(), ValueMap);
-  Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize,
-                                                 MiscompiledFunctions,
-                                                 ValueMap);
-
-  outs() << "  Non-optimized portion: ";
-  ToNotOptimize = swapProgramIn(ToNotOptimize);
-  EmitProgressBitcode("tonotoptimize", true);
-  setNewProgram(ToNotOptimize);   // Delete hacked module.
-
-  outs() << "  Portion that is input to optimizer: ";
-  ToOptimize = swapProgramIn(ToOptimize);
-  EmitProgressBitcode("tooptimize");
-  setNewProgram(ToOptimize);      // Delete hacked module.
-
-  return false;
-}
-
-/// CleanupAndPrepareModules - Get the specified modules ready for code
-/// generator testing.
-///
-static void CleanupAndPrepareModules(BugDriver &BD, Module *&Test,
-                                     Module *Safe) {
-  // Clean up the modules, removing extra cruft that we don't need anymore...
-  Test = BD.performFinalCleanups(Test);
-
-  // If we are executing the JIT, we have several nasty issues to take care of.
-  if (!BD.isExecutingJIT()) return;
-
-  // First, if the main function is in the Safe module, we must add a stub to
-  // the Test module to call into it.  Thus, we create a new function `main'
-  // which just calls the old one.
-  if (Function *oldMain = Safe->getFunction("main"))
-    if (!oldMain->isDeclaration()) {
-      // Rename it
-      oldMain->setName("llvm_bugpoint_old_main");
-      // Create a NEW `main' function with same type in the test module.
-      Function *newMain = Function::Create(oldMain->getFunctionType(),
-                                           GlobalValue::ExternalLinkage,
-                                           "main", Test);
-      // Create an `oldmain' prototype in the test module, which will
-      // corresponds to the real main function in the same module.
-      Function *oldMainProto = Function::Create(oldMain->getFunctionType(),
-                                                GlobalValue::ExternalLinkage,
-                                                oldMain->getName(), Test);
-      // Set up and remember the argument list for the main function.
-      std::vector<Value*> args;
-      for (Function::arg_iterator
-             I = newMain->arg_begin(), E = newMain->arg_end(),
-             OI = oldMain->arg_begin(); I != E; ++I, ++OI) {
-        I->setName(OI->getName());    // Copy argument names from oldMain
-        args.push_back(I);
-      }
-
-      // Call the old main function and return its result
-      BasicBlock *BB = BasicBlock::Create(Safe->getContext(), "entry", newMain);
-      CallInst *call = CallInst::Create(oldMainProto, args.begin(), args.end(),
-                                        "", BB);
-
-      // If the type of old function wasn't void, return value of call
-      ReturnInst::Create(Safe->getContext(), call, BB);
-    }
-
-  // The second nasty issue we must deal with in the JIT is that the Safe
-  // module cannot directly reference any functions defined in the test
-  // module.  Instead, we use a JIT API call to dynamically resolve the
-  // symbol.
-
-  // Add the resolver to the Safe module.
-  // Prototype: void *getPointerToNamedFunction(const char* Name)
-  Constant *resolverFunc =
-    Safe->getOrInsertFunction("getPointerToNamedFunction",
-                    PointerType::getUnqual(Type::getInt8Ty(Safe->getContext())),
-                    PointerType::getUnqual(Type::getInt8Ty(Safe->getContext())),
-                       (Type *)0);
-
-  // Use the function we just added to get addresses of functions we need.
-  for (Module::iterator F = Safe->begin(), E = Safe->end(); F != E; ++F) {
-    if (F->isDeclaration() && !F->use_empty() && &*F != resolverFunc &&
-        !F->isIntrinsic() /* ignore intrinsics */) {
-      Function *TestFn = Test->getFunction(F->getName());
-
-      // Don't forward functions which are external in the test module too.
-      if (TestFn && !TestFn->isDeclaration()) {
-        // 1. Add a string constant with its name to the global file
-        Constant *InitArray = ConstantArray::get(F->getContext(), F->getName());
-        GlobalVariable *funcName =
-          new GlobalVariable(*Safe, InitArray->getType(), true /*isConstant*/,
-                             GlobalValue::InternalLinkage, InitArray,
-                             F->getName() + "_name");
-
-        // 2. Use `GetElementPtr *funcName, 0, 0' to convert the string to an
-        // sbyte* so it matches the signature of the resolver function.
-
-        // GetElementPtr *funcName, ulong 0, ulong 0
-        std::vector<Constant*> GEPargs(2,
-                     Constant::getNullValue(Type::getInt32Ty(F->getContext())));
-        Value *GEP =
-                ConstantExpr::getGetElementPtr(funcName, &GEPargs[0], 2);
-        std::vector<Value*> ResolverArgs;
-        ResolverArgs.push_back(GEP);
-
-        // Rewrite uses of F in global initializers, etc. to uses of a wrapper
-        // function that dynamically resolves the calls to F via our JIT API
-        if (!F->use_empty()) {
-          // Create a new global to hold the cached function pointer.
-          Constant *NullPtr = ConstantPointerNull::get(F->getType());
-          GlobalVariable *Cache =
-            new GlobalVariable(*F->getParent(), F->getType(), 
-                               false, GlobalValue::InternalLinkage,
-                               NullPtr,F->getName()+".fpcache");
-
-          // Construct a new stub function that will re-route calls to F
-          const FunctionType *FuncTy = F->getFunctionType();
-          Function *FuncWrapper = Function::Create(FuncTy,
-                                                   GlobalValue::InternalLinkage,
-                                                   F->getName() + "_wrapper",
-                                                   F->getParent());
-          BasicBlock *EntryBB  = BasicBlock::Create(F->getContext(),
-                                                    "entry", FuncWrapper);
-          BasicBlock *DoCallBB = BasicBlock::Create(F->getContext(),
-                                                    "usecache", FuncWrapper);
-          BasicBlock *LookupBB = BasicBlock::Create(F->getContext(),
-                                                    "lookupfp", FuncWrapper);
-
-          // Check to see if we already looked up the value.
-          Value *CachedVal = new LoadInst(Cache, "fpcache", EntryBB);
-          Value *IsNull = new ICmpInst(*EntryBB, ICmpInst::ICMP_EQ, CachedVal,
-                                       NullPtr, "isNull");
-          BranchInst::Create(LookupBB, DoCallBB, IsNull, EntryBB);
-
-          // Resolve the call to function F via the JIT API:
-          //
-          // call resolver(GetElementPtr...)
-          CallInst *Resolver =
-            CallInst::Create(resolverFunc, ResolverArgs.begin(),
-                             ResolverArgs.end(), "resolver", LookupBB);
-
-          // Cast the result from the resolver to correctly-typed function.
-          CastInst *CastedResolver =
-            new BitCastInst(Resolver,
-                            PointerType::getUnqual(F->getFunctionType()),
-                            "resolverCast", LookupBB);
-
-          // Save the value in our cache.
-          new StoreInst(CastedResolver, Cache, LookupBB);
-          BranchInst::Create(DoCallBB, LookupBB);
-
-          PHINode *FuncPtr = PHINode::Create(NullPtr->getType(),
-                                             "fp", DoCallBB);
-          FuncPtr->addIncoming(CastedResolver, LookupBB);
-          FuncPtr->addIncoming(CachedVal, EntryBB);
-
-          // Save the argument list.
-          std::vector<Value*> Args;
-          for (Function::arg_iterator i = FuncWrapper->arg_begin(),
-                 e = FuncWrapper->arg_end(); i != e; ++i)
-            Args.push_back(i);
-
-          // Pass on the arguments to the real function, return its result
-          if (F->getReturnType() == Type::getVoidTy(F->getContext())) {
-            CallInst::Create(FuncPtr, Args.begin(), Args.end(), "", DoCallBB);
-            ReturnInst::Create(F->getContext(), DoCallBB);
-          } else {
-            CallInst *Call = CallInst::Create(FuncPtr, Args.begin(), Args.end(),
-                                              "retval", DoCallBB);
-            ReturnInst::Create(F->getContext(),Call, DoCallBB);
-          }
-
-          // Use the wrapper function instead of the old function
-          F->replaceAllUsesWith(FuncWrapper);
-        }
-      }
-    }
-  }
-
-  if (verifyModule(*Test) || verifyModule(*Safe)) {
-    errs() << "Bugpoint has a bug, which corrupted a module!!\n";
-    abort();
-  }
-}
-
-
-
-/// TestCodeGenerator - This is the predicate function used to check to see if
-/// the "Test" portion of the program is miscompiled by the code generator under
-/// test.  If so, return true.  In any case, both module arguments are deleted.
-///
-static bool TestCodeGenerator(BugDriver &BD, Module *Test, Module *Safe) {
-  CleanupAndPrepareModules(BD, Test, Safe);
-
-  sys::Path TestModuleBC("bugpoint.test.bc");
-  std::string ErrMsg;
-  if (TestModuleBC.makeUnique(true, &ErrMsg)) {
-    errs() << BD.getToolName() << "Error making unique filename: "
-           << ErrMsg << "\n";
-    exit(1);
-  }
-  if (BD.writeProgramToFile(TestModuleBC.str(), Test)) {
-    errs() << "Error writing bitcode to `" << TestModuleBC.str()
-           << "'\nExiting.";
-    exit(1);
-  }
-  delete Test;
-
-  // Make the shared library
-  sys::Path SafeModuleBC("bugpoint.safe.bc");
-  if (SafeModuleBC.makeUnique(true, &ErrMsg)) {
-    errs() << BD.getToolName() << "Error making unique filename: "
-           << ErrMsg << "\n";
-    exit(1);
-  }
-
-  if (BD.writeProgramToFile(SafeModuleBC.str(), Safe)) {
-    errs() << "Error writing bitcode to `" << SafeModuleBC.str()
-           << "'\nExiting.";
-    exit(1);
-  }
-  std::string SharedObject = BD.compileSharedObject(SafeModuleBC.str());
-  delete Safe;
-
-  // Run the code generator on the `Test' code, loading the shared library.
-  // The function returns whether or not the new output differs from reference.
-  int Result = BD.diffProgram(TestModuleBC.str(), SharedObject, false);
-
-  if (Result)
-    errs() << ": still failing!\n";
-  else
-    errs() << ": didn't fail.\n";
-  TestModuleBC.eraseFromDisk();
-  SafeModuleBC.eraseFromDisk();
-  sys::Path(SharedObject).eraseFromDisk();
-
-  return Result;
-}
-
-
-/// debugCodeGenerator - debug errors in LLC, LLI, or CBE.
-///
-bool BugDriver::debugCodeGenerator() {
-  if ((void*)SafeInterpreter == (void*)Interpreter) {
-    std::string Result = executeProgramSafely("bugpoint.safe.out");
-    outs() << "\n*** The \"safe\" i.e. 'known good' backend cannot match "
-           << "the reference diff.  This may be due to a\n    front-end "
-           << "bug or a bug in the original program, but this can also "
-           << "happen if bugpoint isn't running the program with the "
-           << "right flags or input.\n    I left the result of executing "
-           << "the program with the \"safe\" backend in this file for "
-           << "you: '"
-           << Result << "'.\n";
-    return true;
-  }
-
-  DisambiguateGlobalSymbols(Program);
-
-  std::vector<Function*> Funcs = DebugAMiscompilation(*this, TestCodeGenerator);
-
-  // Split the module into the two halves of the program we want.
-  DenseMap<const Value*, Value*> ValueMap;
-  Module *ToNotCodeGen = CloneModule(getProgram(), ValueMap);
-  Module *ToCodeGen = SplitFunctionsOutOfModule(ToNotCodeGen, Funcs, ValueMap);
-
-  // Condition the modules
-  CleanupAndPrepareModules(*this, ToCodeGen, ToNotCodeGen);
-
-  sys::Path TestModuleBC("bugpoint.test.bc");
-  std::string ErrMsg;
-  if (TestModuleBC.makeUnique(true, &ErrMsg)) {
-    errs() << getToolName() << "Error making unique filename: "
-           << ErrMsg << "\n";
-    exit(1);
-  }
-
-  if (writeProgramToFile(TestModuleBC.str(), ToCodeGen)) {
-    errs() << "Error writing bitcode to `" << TestModuleBC.str()
-           << "'\nExiting.";
-    exit(1);
-  }
-  delete ToCodeGen;
-
-  // Make the shared library
-  sys::Path SafeModuleBC("bugpoint.safe.bc");
-  if (SafeModuleBC.makeUnique(true, &ErrMsg)) {
-    errs() << getToolName() << "Error making unique filename: "
-           << ErrMsg << "\n";
-    exit(1);
-  }
-
-  if (writeProgramToFile(SafeModuleBC.str(), ToNotCodeGen)) {
-    errs() << "Error writing bitcode to `" << SafeModuleBC.str()
-           << "'\nExiting.";
-    exit(1);
-  }
-  std::string SharedObject = compileSharedObject(SafeModuleBC.str());
-  delete ToNotCodeGen;
-
-  outs() << "You can reproduce the problem with the command line: \n";
-  if (isExecutingJIT()) {
-    outs() << "  lli -load " << SharedObject << " " << TestModuleBC.str();
-  } else {
-    outs() << "  llc -f " << TestModuleBC.str() << " -o " << TestModuleBC.str()
-           << ".s\n";
-    outs() << "  gcc " << SharedObject << " " << TestModuleBC.str()
-              << ".s -o " << TestModuleBC.str() << ".exe";
-#if defined (HAVE_LINK_R)
-    outs() << " -Wl,-R.";
-#endif
-    outs() << "\n";
-    outs() << "  " << TestModuleBC.str() << ".exe";
-  }
-  for (unsigned i=0, e = InputArgv.size(); i != e; ++i)
-    outs() << " " << InputArgv[i];
-  outs() << '\n';
-  outs() << "The shared object was created with:\n  llc -march=c "
-         << SafeModuleBC.str() << " -o temporary.c\n"
-         << "  gcc -xc temporary.c -O2 -o " << SharedObject;
-  if (TargetTriple.getArch() == Triple::sparc)
-    outs() << " -G";              // Compile a shared library, `-G' for Sparc
-  else
-    outs() << " -fPIC -shared";   // `-shared' for Linux/X86, maybe others
-
-  outs() << " -fno-strict-aliasing\n";
-
-  return false;
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/OptimizerDriver.cpp b/libclamav/c++/llvm/tools/bugpoint/OptimizerDriver.cpp
deleted file mode 100644
index 5afb220..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/OptimizerDriver.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-//===- OptimizerDriver.cpp - Allow BugPoint to run passes safely ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines an interface that allows bugpoint to run various passes
-// without the threat of a buggy pass corrupting bugpoint (of course, bugpoint
-// may have its own bugs, but that's another story...).  It achieves this by
-// forking a copy of itself and having the child process do the optimizations.
-// If this client dies, we can always fork a new one.  :)
-//
-//===----------------------------------------------------------------------===//
-
-// Note: as a short term hack, the old Unix-specific code and platform-
-// independent code co-exist via conditional compilation until it is verified
-// that the new code works correctly on Unix.
-
-#include "BugDriver.h"
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Path.h"
-#include "llvm/System/Program.h"
-
-#define DONT_GET_PLUGIN_LOADER_OPTION
-#include "llvm/Support/PluginLoader.h"
-
-#include <fstream>
-using namespace llvm;
-
-
-namespace {
-  // ChildOutput - This option captures the name of the child output file that
-  // is set up by the parent bugpoint process
-  cl::opt<std::string> ChildOutput("child-output", cl::ReallyHidden);
-  cl::opt<bool> UseValgrind("enable-valgrind",
-                            cl::desc("Run optimizations through valgrind"));
-}
-
-/// writeProgramToFile - This writes the current "Program" to the named bitcode
-/// file.  If an error occurs, true is returned.
-///
-bool BugDriver::writeProgramToFile(const std::string &Filename,
-                                   Module *M) const {
-  std::string ErrInfo;
-  raw_fd_ostream Out(Filename.c_str(), ErrInfo,
-                     raw_fd_ostream::F_Binary);
-  if (!ErrInfo.empty()) return true;
-  
-  WriteBitcodeToFile(M ? M : Program, Out);
-  return false;
-}
-
-
-/// EmitProgressBitcode - This function is used to output the current Program
-/// to a file named "bugpoint-ID.bc".
-///
-void BugDriver::EmitProgressBitcode(const std::string &ID, bool NoFlyer) {
-  // Output the input to the current pass to a bitcode file, emit a message
-  // telling the user how to reproduce it: opt -foo blah.bc
-  //
-  std::string Filename = "bugpoint-" + ID + ".bc";
-  if (writeProgramToFile(Filename)) {
-    errs() <<  "Error opening file '" << Filename << "' for writing!\n";
-    return;
-  }
-
-  outs() << "Emitted bitcode to '" << Filename << "'\n";
-  if (NoFlyer || PassesToRun.empty()) return;
-  outs() << "\n*** You can reproduce the problem with: ";
-  if (UseValgrind) outs() << "valgrind ";
-  outs() << "opt " << Filename << " ";
-  outs() << getPassesString(PassesToRun) << "\n";
-}
-
-int BugDriver::runPassesAsChild(const std::vector<const PassInfo*> &Passes) {
-  std::string ErrInfo;
-  raw_fd_ostream OutFile(ChildOutput.c_str(), ErrInfo,
-                         raw_fd_ostream::F_Binary);
-  if (!ErrInfo.empty()) {
-    errs() << "Error opening bitcode file: " << ChildOutput << "\n";
-    return 1;
-  }
-
-  PassManager PM;
-  // Make sure that the appropriate target data is always used...
-  PM.add(new TargetData(Program));
-
-  for (unsigned i = 0, e = Passes.size(); i != e; ++i) {
-    if (Passes[i]->getNormalCtor())
-      PM.add(Passes[i]->getNormalCtor()());
-    else
-      errs() << "Cannot create pass yet: " << Passes[i]->getPassName() << "\n";
-  }
-  // Check that the module is well formed on completion of optimization
-  PM.add(createVerifierPass());
-
-  // Write bitcode out to disk as the last step...
-  PM.add(createBitcodeWriterPass(OutFile));
-
-  // Run all queued passes.
-  PM.run(*Program);
-
-  return 0;
-}
-
-cl::opt<bool> SilencePasses("silence-passes", cl::desc("Suppress output of running passes (both stdout and stderr)"));
-
-/// runPasses - Run the specified passes on Program, outputting a bitcode file
-/// and writing the filename into OutputFile if successful.  If the
-/// optimizations fail for some reason (optimizer crashes), return true,
-/// otherwise return false.  If DeleteOutput is set to true, the bitcode is
-/// deleted on success, and the filename string is undefined.  This prints to
-/// outs() a single line message indicating whether compilation was successful
-/// or failed.
-///
-bool BugDriver::runPasses(const std::vector<const PassInfo*> &Passes,
-                          std::string &OutputFilename, bool DeleteOutput,
-                          bool Quiet, unsigned NumExtraArgs,
-                          const char * const *ExtraArgs) const {
-  // setup the output file name
-  outs().flush();
-  sys::Path uniqueFilename("bugpoint-output.bc");
-  std::string ErrMsg;
-  if (uniqueFilename.makeUnique(true, &ErrMsg)) {
-    errs() << getToolName() << ": Error making unique filename: "
-           << ErrMsg << "\n";
-    return(1);
-  }
-  OutputFilename = uniqueFilename.str();
-
-  // set up the input file name
-  sys::Path inputFilename("bugpoint-input.bc");
-  if (inputFilename.makeUnique(true, &ErrMsg)) {
-    errs() << getToolName() << ": Error making unique filename: "
-           << ErrMsg << "\n";
-    return(1);
-  }
-  
-  std::string ErrInfo;
-  raw_fd_ostream InFile(inputFilename.c_str(), ErrInfo,
-                        raw_fd_ostream::F_Binary);
-  
-  
-  if (!ErrInfo.empty()) {
-    errs() << "Error opening bitcode file: " << inputFilename.str() << "\n";
-    return 1;
-  }
-  WriteBitcodeToFile(Program, InFile);
-  InFile.close();
-
-  // setup the child process' arguments
-  SmallVector<const char*, 8> Args;
-  sys::Path tool = sys::Program::FindProgramByName(ToolName);
-  if (UseValgrind) {
-    Args.push_back("valgrind");
-    Args.push_back("--error-exitcode=1");
-    Args.push_back("-q");
-    Args.push_back(tool.c_str());
-  } else
-    Args.push_back(ToolName);
-
-  Args.push_back("-as-child");
-  Args.push_back("-child-output");
-  Args.push_back(OutputFilename.c_str());
-  std::vector<std::string> pass_args;
-  for (unsigned i = 0, e = PluginLoader::getNumPlugins(); i != e; ++i) {
-    pass_args.push_back( std::string("-load"));
-    pass_args.push_back( PluginLoader::getPlugin(i));
-  }
-  for (std::vector<const PassInfo*>::const_iterator I = Passes.begin(),
-       E = Passes.end(); I != E; ++I )
-    pass_args.push_back( std::string("-") + (*I)->getPassArgument() );
-  for (std::vector<std::string>::const_iterator I = pass_args.begin(),
-       E = pass_args.end(); I != E; ++I )
-    Args.push_back(I->c_str());
-  Args.push_back(inputFilename.c_str());
-  for (unsigned i = 0; i < NumExtraArgs; ++i)
-    Args.push_back(*ExtraArgs);
-  Args.push_back(0);
-
-  sys::Path prog;
-  if (UseValgrind)
-    prog = sys::Program::FindProgramByName("valgrind");
-  else
-    prog = tool;
-  
-  // Redirect stdout and stderr to nowhere if SilencePasses is given
-  sys::Path Nowhere;
-  const sys::Path *Redirects[3] = {0, &Nowhere, &Nowhere};
-
-  int result = sys::Program::ExecuteAndWait(prog, Args.data(), 0,
-                                            (SilencePasses ? Redirects : 0),
-                                            Timeout, MemoryLimit, &ErrMsg);
-
-  // If we are supposed to delete the bitcode file or if the passes crashed,
-  // remove it now.  This may fail if the file was never created, but that's ok.
-  if (DeleteOutput || result != 0)
-    sys::Path(OutputFilename).eraseFromDisk();
-
-  // Remove the temporary input file as well
-  inputFilename.eraseFromDisk();
-
-  if (!Quiet) {
-    if (result == 0)
-      outs() << "Success!\n";
-    else if (result > 0)
-      outs() << "Exited with error code '" << result << "'\n";
-    else if (result < 0) {
-      if (result == -1)
-        outs() << "Execute failed: " << ErrMsg << "\n";
-      else
-        outs() << "Crashed with signal #" << abs(result) << "\n";
-    }
-    if (result & 0x01000000)
-      outs() << "Dumped core\n";
-  }
-
-  // Was the child successful?
-  return result != 0;
-}
-
-
-/// runPassesOn - Carefully run the specified set of pass on the specified
-/// module, returning the transformed module on success, or a null pointer on
-/// failure.
-Module *BugDriver::runPassesOn(Module *M,
-                               const std::vector<const PassInfo*> &Passes,
-                               bool AutoDebugCrashes, unsigned NumExtraArgs,
-                               const char * const *ExtraArgs) {
-  Module *OldProgram = swapProgramIn(M);
-  std::string BitcodeResult;
-  if (runPasses(Passes, BitcodeResult, false/*delete*/, true/*quiet*/,
-                NumExtraArgs, ExtraArgs)) {
-    if (AutoDebugCrashes) {
-      errs() << " Error running this sequence of passes"
-             << " on the input program!\n";
-      delete OldProgram;
-      EmitProgressBitcode("pass-error",  false);
-      exit(debugOptimizerCrash());
-    }
-    swapProgramIn(OldProgram);
-    return 0;
-  }
-
-  // Restore the current program.
-  swapProgramIn(OldProgram);
-
-  Module *Ret = ParseInputFile(BitcodeResult, Context);
-  if (Ret == 0) {
-    errs() << getToolName() << ": Error reading bitcode file '"
-           << BitcodeResult << "'!\n";
-    exit(1);
-  }
-  sys::Path(BitcodeResult).eraseFromDisk();  // No longer need the file on disk
-  return Ret;
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/TestPasses.cpp b/libclamav/c++/llvm/tools/bugpoint/TestPasses.cpp
deleted file mode 100644
index 900bf63..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/TestPasses.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//===- TestPasses.cpp - "buggy" passes used to test bugpoint --------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains "buggy" passes that are used to test bugpoint, to check
-// that it is narrowing down testcases correctly.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/BasicBlock.h"
-#include "llvm/Constant.h"
-#include "llvm/Instructions.h"
-#include "llvm/Pass.h"
-#include "llvm/Type.h"
-#include "llvm/Support/InstVisitor.h"
-
-using namespace llvm;
-
-namespace {
-  /// CrashOnCalls - This pass is used to test bugpoint.  It intentionally
-  /// crashes on any call instructions.
-  class CrashOnCalls : public BasicBlockPass {
-  public:
-    static char ID; // Pass ID, replacement for typeid
-    CrashOnCalls() : BasicBlockPass(&ID) {}
-  private:
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-    }
-
-    bool runOnBasicBlock(BasicBlock &BB) {
-      for (BasicBlock::iterator I = BB.begin(), E = BB.end(); I != E; ++I)
-        if (isa<CallInst>(*I))
-          abort();
-
-      return false;
-    }
-  };
-
-  char CrashOnCalls::ID = 0;
-  RegisterPass<CrashOnCalls>
-  X("bugpoint-crashcalls",
-    "BugPoint Test Pass - Intentionally crash on CallInsts");
-}
-
-namespace {
-  /// DeleteCalls - This pass is used to test bugpoint.  It intentionally
-  /// deletes some call instructions, "misoptimizing" the program.
-  class DeleteCalls : public BasicBlockPass {
-  public:
-    static char ID; // Pass ID, replacement for typeid
-    DeleteCalls() : BasicBlockPass(&ID) {}
-  private:
-    bool runOnBasicBlock(BasicBlock &BB) {
-      for (BasicBlock::iterator I = BB.begin(), E = BB.end(); I != E; ++I)
-        if (CallInst *CI = dyn_cast<CallInst>(I)) {
-          if (!CI->use_empty())
-            CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
-          CI->getParent()->getInstList().erase(CI);
-          break;
-        }
-      return false;
-    }
-  };
- 
-  char DeleteCalls::ID = 0;
-  RegisterPass<DeleteCalls>
-  Y("bugpoint-deletecalls",
-    "BugPoint Test Pass - Intentionally 'misoptimize' CallInsts");
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/ToolRunner.cpp b/libclamav/c++/llvm/tools/bugpoint/ToolRunner.cpp
deleted file mode 100644
index 4551d41..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/ToolRunner.cpp
+++ /dev/null
@@ -1,845 +0,0 @@
-//===-- ToolRunner.cpp ----------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the interfaces described in the ToolRunner.h file.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "toolrunner"
-#include "ToolRunner.h"
-#include "llvm/System/Program.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Config/config.h"   // for HAVE_LINK_R
-#include <fstream>
-#include <sstream>
-using namespace llvm;
-
-namespace llvm {
-  cl::opt<bool>
-  SaveTemps("save-temps", cl::init(false), cl::desc("Save temporary files"));
-}
-
-namespace {
-  cl::opt<std::string>
-  RemoteClient("remote-client",
-               cl::desc("Remote execution client (rsh/ssh)"));
-
-  cl::opt<std::string>
-  RemoteHost("remote-host",
-             cl::desc("Remote execution (rsh/ssh) host"));
-
-  cl::opt<std::string>
-  RemotePort("remote-port",
-             cl::desc("Remote execution (rsh/ssh) port"));
-
-  cl::opt<std::string>
-  RemoteUser("remote-user",
-             cl::desc("Remote execution (rsh/ssh) user id"));
-
-  cl::opt<std::string>
-  RemoteExtra("remote-extra-options",
-          cl::desc("Remote execution (rsh/ssh) extra options"));
-}
-
-ToolExecutionError::~ToolExecutionError() throw() { }
-
-/// RunProgramWithTimeout - This function provides an alternate interface
-/// to the sys::Program::ExecuteAndWait interface.
-/// @see sys:Program::ExecuteAndWait
-static int RunProgramWithTimeout(const sys::Path &ProgramPath,
-                                 const char **Args,
-                                 const sys::Path &StdInFile,
-                                 const sys::Path &StdOutFile,
-                                 const sys::Path &StdErrFile,
-                                 unsigned NumSeconds = 0,
-                                 unsigned MemoryLimit = 0) {
-  const sys::Path* redirects[3];
-  redirects[0] = &StdInFile;
-  redirects[1] = &StdOutFile;
-  redirects[2] = &StdErrFile;
-
-#if 0 // For debug purposes
-  {
-    errs() << "RUN:";
-    for (unsigned i = 0; Args[i]; ++i)
-      errs() << " " << Args[i];
-    errs() << "\n";
-  }
-#endif
-
-  return
-    sys::Program::ExecuteAndWait(ProgramPath, Args, 0, redirects,
-                                 NumSeconds, MemoryLimit);
-}
-
-/// RunProgramRemotelyWithTimeout - This function runs the given program
-/// remotely using the given remote client and the sys::Program::ExecuteAndWait.
-/// Returns the remote program exit code or reports a remote client error if it
-/// fails. Remote client is required to return 255 if it failed or program exit
-/// code otherwise.
-/// @see sys:Program::ExecuteAndWait
-static int RunProgramRemotelyWithTimeout(const sys::Path &RemoteClientPath,
-                                         const char **Args,
-                                         const sys::Path &StdInFile,
-                                         const sys::Path &StdOutFile,
-                                         const sys::Path &StdErrFile,
-                                         unsigned NumSeconds = 0,
-                                         unsigned MemoryLimit = 0) {
-  const sys::Path* redirects[3];
-  redirects[0] = &StdInFile;
-  redirects[1] = &StdOutFile;
-  redirects[2] = &StdErrFile;
-
-#if 0 // For debug purposes
-  {
-    errs() << "RUN:";
-    for (unsigned i = 0; Args[i]; ++i)
-      errs() << " " << Args[i];
-    errs() << "\n";
-  }
-#endif
-
-  // Run the program remotely with the remote client
-  int ReturnCode = sys::Program::ExecuteAndWait(RemoteClientPath, Args,
-                                 0, redirects, NumSeconds, MemoryLimit);
-
-  // Has the remote client fail?
-  if (255 == ReturnCode) {
-    std::ostringstream OS;
-    OS << "\nError running remote client:\n ";
-    for (const char **Arg = Args; *Arg; ++Arg)
-      OS << " " << *Arg;
-    OS << "\n";
-
-    // The error message is in the output file, let's print it out from there.
-    std::ifstream ErrorFile(StdOutFile.c_str());
-    if (ErrorFile) {
-      std::copy(std::istreambuf_iterator<char>(ErrorFile),
-                std::istreambuf_iterator<char>(),
-                std::ostreambuf_iterator<char>(OS));
-      ErrorFile.close();
-    }
-
-    throw ToolExecutionError(OS.str());
-  }
-
-  return ReturnCode;
-}
-
-static void ProcessFailure(sys::Path ProgPath, const char** Args) {
-  std::ostringstream OS;
-  OS << "\nError running tool:\n ";
-  for (const char **Arg = Args; *Arg; ++Arg)
-    OS << " " << *Arg;
-  OS << "\n";
-
-  // Rerun the compiler, capturing any error messages to print them.
-  sys::Path ErrorFilename("bugpoint.program_error_messages");
-  std::string ErrMsg;
-  if (ErrorFilename.makeUnique(true, &ErrMsg)) {
-    errs() << "Error making unique filename: " << ErrMsg << "\n";
-    exit(1);
-  }
-  RunProgramWithTimeout(ProgPath, Args, sys::Path(""), ErrorFilename,
-                        ErrorFilename); // FIXME: check return code ?
-
-  // Print out the error messages generated by GCC if possible...
-  std::ifstream ErrorFile(ErrorFilename.c_str());
-  if (ErrorFile) {
-    std::copy(std::istreambuf_iterator<char>(ErrorFile),
-              std::istreambuf_iterator<char>(),
-              std::ostreambuf_iterator<char>(OS));
-    ErrorFile.close();
-  }
-
-  ErrorFilename.eraseFromDisk();
-  throw ToolExecutionError(OS.str());
-}
-
-//===---------------------------------------------------------------------===//
-// LLI Implementation of AbstractIntepreter interface
-//
-namespace {
-  class LLI : public AbstractInterpreter {
-    std::string LLIPath;          // The path to the LLI executable
-    std::vector<std::string> ToolArgs; // Args to pass to LLI
-  public:
-    LLI(const std::string &Path, const std::vector<std::string> *Args)
-      : LLIPath(Path) {
-      ToolArgs.clear ();
-      if (Args) { ToolArgs = *Args; }
-    }
-
-    virtual int ExecuteProgram(const std::string &Bitcode,
-                               const std::vector<std::string> &Args,
-                               const std::string &InputFile,
-                               const std::string &OutputFile,
-                               const std::vector<std::string> &GCCArgs,
-                               const std::vector<std::string> &SharedLibs =
-                               std::vector<std::string>(),
-                               unsigned Timeout = 0,
-                               unsigned MemoryLimit = 0);
-  };
-}
-
-int LLI::ExecuteProgram(const std::string &Bitcode,
-                        const std::vector<std::string> &Args,
-                        const std::string &InputFile,
-                        const std::string &OutputFile,
-                        const std::vector<std::string> &GCCArgs,
-                        const std::vector<std::string> &SharedLibs,
-                        unsigned Timeout,
-                        unsigned MemoryLimit) {
-  if (!SharedLibs.empty())
-    throw ToolExecutionError("LLI currently does not support "
-                             "loading shared libraries.");
-
-  std::vector<const char*> LLIArgs;
-  LLIArgs.push_back(LLIPath.c_str());
-  LLIArgs.push_back("-force-interpreter=true");
-
-  // Add any extra LLI args.
-  for (unsigned i = 0, e = ToolArgs.size(); i != e; ++i)
-    LLIArgs.push_back(ToolArgs[i].c_str());
-
-  LLIArgs.push_back(Bitcode.c_str());
-  // Add optional parameters to the running program from Argv
-  for (unsigned i=0, e = Args.size(); i != e; ++i)
-    LLIArgs.push_back(Args[i].c_str());
-  LLIArgs.push_back(0);
-
-  outs() << "<lli>"; outs().flush();
-  DEBUG(errs() << "\nAbout to run:\t";
-        for (unsigned i=0, e = LLIArgs.size()-1; i != e; ++i)
-          errs() << " " << LLIArgs[i];
-        errs() << "\n";
-        );
-  return RunProgramWithTimeout(sys::Path(LLIPath), &LLIArgs[0],
-      sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile),
-      Timeout, MemoryLimit);
-}
-
-// LLI create method - Try to find the LLI executable
-AbstractInterpreter *AbstractInterpreter::createLLI(const char *Argv0,
-                                                    std::string &Message,
-                                     const std::vector<std::string> *ToolArgs) {
-  std::string LLIPath =
-    FindExecutable("lli", Argv0, (void *)(intptr_t)&createLLI).str();
-  if (!LLIPath.empty()) {
-    Message = "Found lli: " + LLIPath + "\n";
-    return new LLI(LLIPath, ToolArgs);
-  }
-
-  Message = "Cannot find `lli' in executable directory or PATH!\n";
-  return 0;
-}
-
-//===---------------------------------------------------------------------===//
-// Custom execution command implementation of AbstractIntepreter interface
-//
-// Allows using a custom command for executing the bitcode, thus allows,
-// for example, to invoke a cross compiler for code generation followed by 
-// a simulator that executes the generated binary.
-namespace {
-  class CustomExecutor : public AbstractInterpreter {
-    std::string ExecutionCommand;
-    std::vector<std::string> ExecutorArgs;
-  public:
-    CustomExecutor(
-      const std::string &ExecutionCmd, std::vector<std::string> ExecArgs) :
-      ExecutionCommand(ExecutionCmd), ExecutorArgs(ExecArgs) {}
-
-    virtual int ExecuteProgram(const std::string &Bitcode,
-                               const std::vector<std::string> &Args,
-                               const std::string &InputFile,
-                               const std::string &OutputFile,
-                               const std::vector<std::string> &GCCArgs,
-                               const std::vector<std::string> &SharedLibs =
-                               std::vector<std::string>(),
-                               unsigned Timeout = 0,
-                               unsigned MemoryLimit = 0);
-  };
-}
-
-int CustomExecutor::ExecuteProgram(const std::string &Bitcode,
-                        const std::vector<std::string> &Args,
-                        const std::string &InputFile,
-                        const std::string &OutputFile,
-                        const std::vector<std::string> &GCCArgs,
-                        const std::vector<std::string> &SharedLibs,
-                        unsigned Timeout,
-                        unsigned MemoryLimit) {
-
-  std::vector<const char*> ProgramArgs;
-  ProgramArgs.push_back(ExecutionCommand.c_str());
-
-  for (std::size_t i = 0; i < ExecutorArgs.size(); ++i)
-    ProgramArgs.push_back(ExecutorArgs.at(i).c_str());
-  ProgramArgs.push_back(Bitcode.c_str());
-  ProgramArgs.push_back(0);
-
-  // Add optional parameters to the running program from Argv
-  for (unsigned i=0, e = Args.size(); i != e; ++i)
-    ProgramArgs.push_back(Args[i].c_str());
-
-  return RunProgramWithTimeout(
-    sys::Path(ExecutionCommand),
-    &ProgramArgs[0], sys::Path(InputFile), sys::Path(OutputFile), 
-    sys::Path(OutputFile), Timeout, MemoryLimit);
-}
-
-// Custom execution environment create method, takes the execution command
-// as arguments
-AbstractInterpreter *AbstractInterpreter::createCustom(
-                    std::string &Message,
-                    const std::string &ExecCommandLine) {
-
-  std::string Command = "";
-  std::vector<std::string> Args;
-  std::string delimiters = " ";
-
-  // Tokenize the ExecCommandLine to the command and the args to allow
-  // defining a full command line as the command instead of just the
-  // executed program. We cannot just pass the whole string after the command
-  // as a single argument because then program sees only a single
-  // command line argument (with spaces in it: "foo bar" instead 
-  // of "foo" and "bar").
-
-  // code borrowed from: 
-  // http://oopweb.com/CPP/Documents/CPPHOWTO/Volume/C++Programming-HOWTO-7.html
-  std::string::size_type lastPos = 
-    ExecCommandLine.find_first_not_of(delimiters, 0);
-  std::string::size_type pos = 
-    ExecCommandLine.find_first_of(delimiters, lastPos);
-
-  while (std::string::npos != pos || std::string::npos != lastPos) {
-    std::string token = ExecCommandLine.substr(lastPos, pos - lastPos);
-    if (Command == "")
-       Command = token;
-    else
-       Args.push_back(token);
-    // Skip delimiters.  Note the "not_of"
-    lastPos = ExecCommandLine.find_first_not_of(delimiters, pos);
-    // Find next "non-delimiter"
-    pos = ExecCommandLine.find_first_of(delimiters, lastPos);
-  }
-
-  std::string CmdPath = sys::Program::FindProgramByName(Command).str();
-  if (CmdPath.empty()) {
-    Message = 
-      std::string("Cannot find '") + Command + 
-      "' in executable directory or PATH!\n";
-    return 0;
-  }
-
-  Message = "Found command in: " + CmdPath + "\n";
-
-  return new CustomExecutor(CmdPath, Args);
-}
-
-//===----------------------------------------------------------------------===//
-// LLC Implementation of AbstractIntepreter interface
-//
-GCC::FileType LLC::OutputCode(const std::string &Bitcode, 
-                              sys::Path &OutputAsmFile) {
-  sys::Path uniqueFile(Bitcode+".llc.s");
-  std::string ErrMsg;
-  if (uniqueFile.makeUnique(true, &ErrMsg)) {
-    errs() << "Error making unique filename: " << ErrMsg << "\n";
-    exit(1);
-  }
-  OutputAsmFile = uniqueFile;
-  std::vector<const char *> LLCArgs;
-  LLCArgs.push_back (LLCPath.c_str());
-
-  // Add any extra LLC args.
-  for (unsigned i = 0, e = ToolArgs.size(); i != e; ++i)
-    LLCArgs.push_back(ToolArgs[i].c_str());
-
-  LLCArgs.push_back ("-o");
-  LLCArgs.push_back (OutputAsmFile.c_str()); // Output to the Asm file
-  LLCArgs.push_back (Bitcode.c_str());      // This is the input bitcode
-  LLCArgs.push_back (0);
-
-  outs() << "<llc>"; outs().flush();
-  DEBUG(errs() << "\nAbout to run:\t";
-        for (unsigned i=0, e = LLCArgs.size()-1; i != e; ++i)
-          errs() << " " << LLCArgs[i];
-        errs() << "\n";
-        );
-  if (RunProgramWithTimeout(sys::Path(LLCPath), &LLCArgs[0],
-                            sys::Path(), sys::Path(), sys::Path()))
-    ProcessFailure(sys::Path(LLCPath), &LLCArgs[0]);
-
-  return GCC::AsmFile;                              
-}
-
-void LLC::compileProgram(const std::string &Bitcode) {
-  sys::Path OutputAsmFile;
-  OutputCode(Bitcode, OutputAsmFile);
-  OutputAsmFile.eraseFromDisk();
-}
-
-int LLC::ExecuteProgram(const std::string &Bitcode,
-                        const std::vector<std::string> &Args,
-                        const std::string &InputFile,
-                        const std::string &OutputFile,
-                        const std::vector<std::string> &ArgsForGCC,
-                        const std::vector<std::string> &SharedLibs,
-                        unsigned Timeout,
-                        unsigned MemoryLimit) {
-
-  sys::Path OutputAsmFile;
-  OutputCode(Bitcode, OutputAsmFile);
-  FileRemover OutFileRemover(OutputAsmFile, !SaveTemps);
-
-  std::vector<std::string> GCCArgs(ArgsForGCC);
-  GCCArgs.insert(GCCArgs.end(), SharedLibs.begin(), SharedLibs.end());
-  GCCArgs.insert(GCCArgs.end(), gccArgs.begin(), gccArgs.end());
-
-  // Assuming LLC worked, compile the result with GCC and run it.
-  return gcc->ExecuteProgram(OutputAsmFile.str(), Args, GCC::AsmFile,
-                             InputFile, OutputFile, GCCArgs,
-                             Timeout, MemoryLimit);
-}
-
-/// createLLC - Try to find the LLC executable
-///
-LLC *AbstractInterpreter::createLLC(const char *Argv0,
-                                    std::string &Message,
-                                    const std::vector<std::string> *Args,
-                                    const std::vector<std::string> *GCCArgs) {
-  std::string LLCPath =
-    FindExecutable("llc", Argv0, (void *)(intptr_t)&createLLC).str();
-  if (LLCPath.empty()) {
-    Message = "Cannot find `llc' in executable directory or PATH!\n";
-    return 0;
-  }
-
-  Message = "Found llc: " + LLCPath + "\n";
-  GCC *gcc = GCC::create(Message, GCCArgs);
-  if (!gcc) {
-    errs() << Message << "\n";
-    exit(1);
-  }
-  return new LLC(LLCPath, gcc, Args, GCCArgs);
-}
-
-//===---------------------------------------------------------------------===//
-// JIT Implementation of AbstractIntepreter interface
-//
-namespace {
-  class JIT : public AbstractInterpreter {
-    std::string LLIPath;          // The path to the LLI executable
-    std::vector<std::string> ToolArgs; // Args to pass to LLI
-  public:
-    JIT(const std::string &Path, const std::vector<std::string> *Args)
-      : LLIPath(Path) {
-      ToolArgs.clear ();
-      if (Args) { ToolArgs = *Args; }
-    }
-
-    virtual int ExecuteProgram(const std::string &Bitcode,
-                               const std::vector<std::string> &Args,
-                               const std::string &InputFile,
-                               const std::string &OutputFile,
-                               const std::vector<std::string> &GCCArgs =
-                                 std::vector<std::string>(),
-                               const std::vector<std::string> &SharedLibs =
-                                 std::vector<std::string>(), 
-                               unsigned Timeout =0,
-                               unsigned MemoryLimit =0);
-  };
-}
-
-int JIT::ExecuteProgram(const std::string &Bitcode,
-                        const std::vector<std::string> &Args,
-                        const std::string &InputFile,
-                        const std::string &OutputFile,
-                        const std::vector<std::string> &GCCArgs,
-                        const std::vector<std::string> &SharedLibs,
-                        unsigned Timeout,
-                        unsigned MemoryLimit) {
-  // Construct a vector of parameters, incorporating those from the command-line
-  std::vector<const char*> JITArgs;
-  JITArgs.push_back(LLIPath.c_str());
-  JITArgs.push_back("-force-interpreter=false");
-
-  // Add any extra LLI args.
-  for (unsigned i = 0, e = ToolArgs.size(); i != e; ++i)
-    JITArgs.push_back(ToolArgs[i].c_str());
-
-  for (unsigned i = 0, e = SharedLibs.size(); i != e; ++i) {
-    JITArgs.push_back("-load");
-    JITArgs.push_back(SharedLibs[i].c_str());
-  }
-  JITArgs.push_back(Bitcode.c_str());
-  // Add optional parameters to the running program from Argv
-  for (unsigned i=0, e = Args.size(); i != e; ++i)
-    JITArgs.push_back(Args[i].c_str());
-  JITArgs.push_back(0);
-
-  outs() << "<jit>"; outs().flush();
-  DEBUG(errs() << "\nAbout to run:\t";
-        for (unsigned i=0, e = JITArgs.size()-1; i != e; ++i)
-          errs() << " " << JITArgs[i];
-        errs() << "\n";
-        );
-  DEBUG(errs() << "\nSending output to " << OutputFile << "\n");
-  return RunProgramWithTimeout(sys::Path(LLIPath), &JITArgs[0],
-      sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile),
-      Timeout, MemoryLimit);
-}
-
-/// createJIT - Try to find the LLI executable
-///
-AbstractInterpreter *AbstractInterpreter::createJIT(const char *Argv0,
-                   std::string &Message, const std::vector<std::string> *Args) {
-  std::string LLIPath =
-    FindExecutable("lli", Argv0, (void *)(intptr_t)&createJIT).str();
-  if (!LLIPath.empty()) {
-    Message = "Found lli: " + LLIPath + "\n";
-    return new JIT(LLIPath, Args);
-  }
-
-  Message = "Cannot find `lli' in executable directory or PATH!\n";
-  return 0;
-}
-
-GCC::FileType CBE::OutputCode(const std::string &Bitcode,
-                              sys::Path &OutputCFile) {
-  sys::Path uniqueFile(Bitcode+".cbe.c");
-  std::string ErrMsg;
-  if (uniqueFile.makeUnique(true, &ErrMsg)) {
-    errs() << "Error making unique filename: " << ErrMsg << "\n";
-    exit(1);
-  }
-  OutputCFile = uniqueFile;
-  std::vector<const char *> LLCArgs;
-  LLCArgs.push_back (LLCPath.c_str());
-
-  // Add any extra LLC args.
-  for (unsigned i = 0, e = ToolArgs.size(); i != e; ++i)
-    LLCArgs.push_back(ToolArgs[i].c_str());
-
-  LLCArgs.push_back ("-o");
-  LLCArgs.push_back (OutputCFile.c_str());   // Output to the C file
-  LLCArgs.push_back ("-march=c");            // Output C language
-  LLCArgs.push_back ("-f");                  // Overwrite as necessary...
-  LLCArgs.push_back (Bitcode.c_str());      // This is the input bitcode
-  LLCArgs.push_back (0);
-
-  outs() << "<cbe>"; outs().flush();
-  DEBUG(errs() << "\nAbout to run:\t";
-        for (unsigned i=0, e = LLCArgs.size()-1; i != e; ++i)
-          errs() << " " << LLCArgs[i];
-        errs() << "\n";
-        );
-  if (RunProgramWithTimeout(LLCPath, &LLCArgs[0], sys::Path(), sys::Path(),
-                            sys::Path()))
-    ProcessFailure(LLCPath, &LLCArgs[0]);
-  return GCC::CFile;
-}
-
-void CBE::compileProgram(const std::string &Bitcode) {
-  sys::Path OutputCFile;
-  OutputCode(Bitcode, OutputCFile);
-  OutputCFile.eraseFromDisk();
-}
-
-int CBE::ExecuteProgram(const std::string &Bitcode,
-                        const std::vector<std::string> &Args,
-                        const std::string &InputFile,
-                        const std::string &OutputFile,
-                        const std::vector<std::string> &ArgsForGCC,
-                        const std::vector<std::string> &SharedLibs,
-                        unsigned Timeout,
-                        unsigned MemoryLimit) {
-  sys::Path OutputCFile;
-  OutputCode(Bitcode, OutputCFile);
-
-  FileRemover CFileRemove(OutputCFile, !SaveTemps);
-
-  std::vector<std::string> GCCArgs(ArgsForGCC);
-  GCCArgs.insert(GCCArgs.end(), SharedLibs.begin(), SharedLibs.end());
-
-  return gcc->ExecuteProgram(OutputCFile.str(), Args, GCC::CFile,
-                             InputFile, OutputFile, GCCArgs,
-                             Timeout, MemoryLimit);
-}
-
-/// createCBE - Try to find the 'llc' executable
-///
-CBE *AbstractInterpreter::createCBE(const char *Argv0,
-                                    std::string &Message,
-                                    const std::vector<std::string> *Args,
-                                    const std::vector<std::string> *GCCArgs) {
-  sys::Path LLCPath =
-    FindExecutable("llc", Argv0, (void *)(intptr_t)&createCBE);
-  if (LLCPath.isEmpty()) {
-    Message =
-      "Cannot find `llc' in executable directory or PATH!\n";
-    return 0;
-  }
-
-  Message = "Found llc: " + LLCPath.str() + "\n";
-  GCC *gcc = GCC::create(Message, GCCArgs);
-  if (!gcc) {
-    errs() << Message << "\n";
-    exit(1);
-  }
-  return new CBE(LLCPath, gcc, Args);
-}
-
-//===---------------------------------------------------------------------===//
-// GCC abstraction
-//
-
-static bool
-IsARMArchitecture(std::vector<std::string> Args)
-{
-  for (std::vector<std::string>::const_iterator
-         I = Args.begin(), E = Args.end(); I != E; ++I) {
-    if (!StringsEqualNoCase(*I, "-arch")) {
-      ++I;
-      if ((I != E) && !StringsEqualNoCase(I->c_str(), "arm", strlen("arm"))) {
-        return true;
-      }
-    }
-  }
-
-  return false;
-}
-
-int GCC::ExecuteProgram(const std::string &ProgramFile,
-                        const std::vector<std::string> &Args,
-                        FileType fileType,
-                        const std::string &InputFile,
-                        const std::string &OutputFile,
-                        const std::vector<std::string> &ArgsForGCC,
-                        unsigned Timeout,
-                        unsigned MemoryLimit) {
-  std::vector<const char*> GCCArgs;
-
-  GCCArgs.push_back(GCCPath.c_str());
-
-  for (std::vector<std::string>::const_iterator
-         I = gccArgs.begin(), E = gccArgs.end(); I != E; ++I)
-    GCCArgs.push_back(I->c_str());
-
-  // Specify -x explicitly in case the extension is wonky
-  GCCArgs.push_back("-x");
-  if (fileType == CFile) {
-    GCCArgs.push_back("c");
-    GCCArgs.push_back("-fno-strict-aliasing");
-  } else {
-    GCCArgs.push_back("assembler");
-
-    // For ARM architectures we don't want this flag. bugpoint isn't
-    // explicitly told what architecture it is working on, so we get
-    // it from gcc flags
-    if ((TargetTriple.getOS() == Triple::Darwin) &&
-        !IsARMArchitecture(ArgsForGCC))
-      GCCArgs.push_back("-force_cpusubtype_ALL");
-  }
-  GCCArgs.push_back(ProgramFile.c_str());  // Specify the input filename...
-  GCCArgs.push_back("-x");
-  GCCArgs.push_back("none");
-  GCCArgs.push_back("-o");
-  sys::Path OutputBinary (ProgramFile+".gcc.exe");
-  std::string ErrMsg;
-  if (OutputBinary.makeUnique(true, &ErrMsg)) {
-    errs() << "Error making unique filename: " << ErrMsg << "\n";
-    exit(1);
-  }
-  GCCArgs.push_back(OutputBinary.c_str()); // Output to the right file...
-
-  // Add any arguments intended for GCC. We locate them here because this is
-  // most likely -L and -l options that need to come before other libraries but
-  // after the source. Other options won't be sensitive to placement on the
-  // command line, so this should be safe.
-  for (unsigned i = 0, e = ArgsForGCC.size(); i != e; ++i)
-    GCCArgs.push_back(ArgsForGCC[i].c_str());
-
-  GCCArgs.push_back("-lm");                // Hard-code the math library...
-  GCCArgs.push_back("-O2");                // Optimize the program a bit...
-#if defined (HAVE_LINK_R)
-  GCCArgs.push_back("-Wl,-R.");            // Search this dir for .so files
-#endif
-  if (TargetTriple.getArch() == Triple::sparc)
-    GCCArgs.push_back("-mcpu=v9");
-  GCCArgs.push_back(0);                    // NULL terminator
-
-  outs() << "<gcc>"; outs().flush();
-  DEBUG(errs() << "\nAbout to run:\t";
-        for (unsigned i=0, e = GCCArgs.size()-1; i != e; ++i)
-          errs() << " " << GCCArgs[i];
-        errs() << "\n";
-        );
-  if (RunProgramWithTimeout(GCCPath, &GCCArgs[0], sys::Path(), sys::Path(),
-        sys::Path())) {
-    ProcessFailure(GCCPath, &GCCArgs[0]);
-    exit(1);
-  }
-
-  std::vector<const char*> ProgramArgs;
-
-  if (RemoteClientPath.isEmpty())
-    ProgramArgs.push_back(OutputBinary.c_str());
-  else {
-    ProgramArgs.push_back(RemoteClientPath.c_str());
-    ProgramArgs.push_back(RemoteHost.c_str());
-    if (!RemoteUser.empty()) {
-      ProgramArgs.push_back("-l");
-      ProgramArgs.push_back(RemoteUser.c_str());
-    }
-    if (!RemotePort.empty()) {
-      ProgramArgs.push_back("-p");
-      ProgramArgs.push_back(RemotePort.c_str());
-    }
-    if (!RemoteExtra.empty()) {
-      ProgramArgs.push_back(RemoteExtra.c_str());
-    }
-
-    // Full path to the binary. We need to cd to the exec directory because
-    // there is a dylib there that the exec expects to find in the CWD
-    char* env_pwd = getenv("PWD");
-    std::string Exec = "cd ";
-    Exec += env_pwd;
-    Exec += "; ./";
-    Exec += OutputBinary.c_str();
-    ProgramArgs.push_back(Exec.c_str());
-  }
-
-  // Add optional parameters to the running program from Argv
-  for (unsigned i=0, e = Args.size(); i != e; ++i)
-    ProgramArgs.push_back(Args[i].c_str());
-  ProgramArgs.push_back(0);                // NULL terminator
-
-  // Now that we have a binary, run it!
-  outs() << "<program>"; outs().flush();
-  DEBUG(errs() << "\nAbout to run:\t";
-        for (unsigned i=0, e = ProgramArgs.size()-1; i != e; ++i)
-          errs() << " " << ProgramArgs[i];
-        errs() << "\n";
-        );
-
-  FileRemover OutputBinaryRemover(OutputBinary, !SaveTemps);
-
-  if (RemoteClientPath.isEmpty()) {
-    DEBUG(errs() << "<run locally>";);
-    return RunProgramWithTimeout(OutputBinary, &ProgramArgs[0],
-        sys::Path(InputFile), sys::Path(OutputFile), sys::Path(OutputFile),
-        Timeout, MemoryLimit);
-  } else {
-    outs() << "<run remotely>"; outs().flush();
-    return RunProgramRemotelyWithTimeout(sys::Path(RemoteClientPath),
-        &ProgramArgs[0], sys::Path(InputFile), sys::Path(OutputFile),
-        sys::Path(OutputFile), Timeout, MemoryLimit);
-  }
-}
-
-int GCC::MakeSharedObject(const std::string &InputFile, FileType fileType,
-                          std::string &OutputFile,
-                          const std::vector<std::string> &ArgsForGCC) {
-  sys::Path uniqueFilename(InputFile+LTDL_SHLIB_EXT);
-  std::string ErrMsg;
-  if (uniqueFilename.makeUnique(true, &ErrMsg)) {
-    errs() << "Error making unique filename: " << ErrMsg << "\n";
-    exit(1);
-  }
-  OutputFile = uniqueFilename.str();
-
-  std::vector<const char*> GCCArgs;
-  
-  GCCArgs.push_back(GCCPath.c_str());
-
-  for (std::vector<std::string>::const_iterator
-         I = gccArgs.begin(), E = gccArgs.end(); I != E; ++I)
-    GCCArgs.push_back(I->c_str());
-
-  // Compile the C/asm file into a shared object
-  GCCArgs.push_back("-x");
-  GCCArgs.push_back(fileType == AsmFile ? "assembler" : "c");
-  GCCArgs.push_back("-fno-strict-aliasing");
-  GCCArgs.push_back(InputFile.c_str());   // Specify the input filename.
-  GCCArgs.push_back("-x");
-  GCCArgs.push_back("none");
-  if (TargetTriple.getArch() == Triple::sparc)
-    GCCArgs.push_back("-G");       // Compile a shared library, `-G' for Sparc
-  else if (TargetTriple.getOS() == Triple::Darwin) {
-    // link all source files into a single module in data segment, rather than
-    // generating blocks. dynamic_lookup requires that you set 
-    // MACOSX_DEPLOYMENT_TARGET=10.3 in your env.  FIXME: it would be better for
-    // bugpoint to just pass that in the environment of GCC.
-    GCCArgs.push_back("-single_module");
-    GCCArgs.push_back("-dynamiclib");   // `-dynamiclib' for MacOS X/PowerPC
-    GCCArgs.push_back("-undefined");
-    GCCArgs.push_back("dynamic_lookup");
-  } else
-    GCCArgs.push_back("-shared");  // `-shared' for Linux/X86, maybe others
-
-  if ((TargetTriple.getArch() == Triple::alpha) ||
-      (TargetTriple.getArch() == Triple::x86_64))
-    GCCArgs.push_back("-fPIC");   // Requires shared objs to contain PIC
-
-  if (TargetTriple.getArch() == Triple::sparc)
-    GCCArgs.push_back("-mcpu=v9");
-
-  GCCArgs.push_back("-o");
-  GCCArgs.push_back(OutputFile.c_str()); // Output to the right filename.
-  GCCArgs.push_back("-O2");              // Optimize the program a bit.
-
-  
-  
-  // Add any arguments intended for GCC. We locate them here because this is
-  // most likely -L and -l options that need to come before other libraries but
-  // after the source. Other options won't be sensitive to placement on the
-  // command line, so this should be safe.
-  for (unsigned i = 0, e = ArgsForGCC.size(); i != e; ++i)
-    GCCArgs.push_back(ArgsForGCC[i].c_str());
-  GCCArgs.push_back(0);                    // NULL terminator
-
-  
-
-  outs() << "<gcc>"; outs().flush();
-  DEBUG(errs() << "\nAbout to run:\t";
-        for (unsigned i=0, e = GCCArgs.size()-1; i != e; ++i)
-          errs() << " " << GCCArgs[i];
-        errs() << "\n";
-        );
-  if (RunProgramWithTimeout(GCCPath, &GCCArgs[0], sys::Path(), sys::Path(),
-                            sys::Path())) {
-    ProcessFailure(GCCPath, &GCCArgs[0]);
-    return 1;
-  }
-  return 0;
-}
-
-/// create - Try to find the `gcc' executable
-///
-GCC *GCC::create(std::string &Message,
-                 const std::vector<std::string> *Args) {
-  sys::Path GCCPath = sys::Program::FindProgramByName("gcc");
-  if (GCCPath.isEmpty()) {
-    Message = "Cannot find `gcc' in executable directory or PATH!\n";
-    return 0;
-  }
-
-  sys::Path RemoteClientPath;
-  if (!RemoteClient.empty())
-    RemoteClientPath = sys::Program::FindProgramByName(RemoteClient);
-
-  Message = "Found gcc: " + GCCPath.str() + "\n";
-  return new GCC(GCCPath, RemoteClientPath, Args);
-}
diff --git a/libclamav/c++/llvm/tools/bugpoint/ToolRunner.h b/libclamav/c++/llvm/tools/bugpoint/ToolRunner.h
deleted file mode 100644
index 39b0bbf..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/ToolRunner.h
+++ /dev/null
@@ -1,233 +0,0 @@
-//===-- tools/bugpoint/ToolRunner.h -----------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file exposes an abstraction around a platform C compiler, used to
-// compile C and assembly code.  It also exposes an "AbstractIntepreter"
-// interface, which is used to execute code using one of the LLVM execution
-// engines.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef BUGPOINT_TOOLRUNNER_H
-#define BUGPOINT_TOOLRUNNER_H
-
-#include "llvm/ADT/Triple.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/System/Path.h"
-#include <exception>
-#include <vector>
-
-namespace llvm {
-
-extern cl::opt<bool> SaveTemps;
-extern Triple TargetTriple;
-
-class CBE;
-class LLC;
-
-/// ToolExecutionError - An instance of this class is thrown by the
-/// AbstractInterpreter instances if there is an error running a tool (e.g., LLC
-/// crashes) which prevents execution of the program.
-///
-class ToolExecutionError : std::exception {
-  std::string Message;
-public:
-  explicit ToolExecutionError(const std::string &M) : Message(M) {}
-  virtual ~ToolExecutionError() throw();
-  virtual const char* what() const throw() { return Message.c_str(); }
-};
-
-
-//===---------------------------------------------------------------------===//
-// GCC abstraction
-//
-class GCC {
-  sys::Path GCCPath;                // The path to the gcc executable.
-  sys::Path RemoteClientPath;       // The path to the rsh / ssh executable.
-  std::vector<std::string> gccArgs; // GCC-specific arguments.
-  GCC(const sys::Path &gccPath, const sys::Path &RemotePath,
-      const std::vector<std::string> *GCCArgs)
-    : GCCPath(gccPath), RemoteClientPath(RemotePath) {
-    if (GCCArgs) gccArgs = *GCCArgs;
-  }
-public:
-  enum FileType { AsmFile, CFile };
-
-  static GCC *create(std::string &Message,
-                     const std::vector<std::string> *Args);
-
-  /// ExecuteProgram - Execute the program specified by "ProgramFile" (which is
-  /// either a .s file, or a .c file, specified by FileType), with the specified
-  /// arguments.  Standard input is specified with InputFile, and standard
-  /// Output is captured to the specified OutputFile location.  The SharedLibs
-  /// option specifies optional native shared objects that can be loaded into
-  /// the program for execution.
-  ///
-  int ExecuteProgram(const std::string &ProgramFile,
-                     const std::vector<std::string> &Args,
-                     FileType fileType,
-                     const std::string &InputFile,
-                     const std::string &OutputFile,
-                     const std::vector<std::string> &GCCArgs =
-                         std::vector<std::string>(), 
-                     unsigned Timeout = 0,
-                     unsigned MemoryLimit = 0);
-
-  /// MakeSharedObject - This compiles the specified file (which is either a .c
-  /// file or a .s file) into a shared object.
-  ///
-  int MakeSharedObject(const std::string &InputFile, FileType fileType,
-                       std::string &OutputFile,
-                       const std::vector<std::string> &ArgsForGCC);
-};
-
-
-//===---------------------------------------------------------------------===//
-/// AbstractInterpreter Class - Subclasses of this class are used to execute
-/// LLVM bitcode in a variety of ways.  This abstract interface hides this
-/// complexity behind a simple interface.
-///
-class AbstractInterpreter {
-public:
-  static CBE *createCBE(const char *Argv0, std::string &Message,
-                        const std::vector<std::string> *Args = 0,
-                        const std::vector<std::string> *GCCArgs = 0);
-  static LLC *createLLC(const char *Argv0, std::string &Message,
-                        const std::vector<std::string> *Args = 0,
-                        const std::vector<std::string> *GCCArgs = 0);
-
-  static AbstractInterpreter* createLLI(const char *Argv0, std::string &Message,
-                                        const std::vector<std::string> *Args=0);
-
-  static AbstractInterpreter* createJIT(const char *Argv0, std::string &Message,
-                                        const std::vector<std::string> *Args=0);
-
-  static AbstractInterpreter* createCustom(std::string &Message,
-                                           const std::string &ExecCommandLine);
-
-
-  virtual ~AbstractInterpreter() {}
-
-  /// compileProgram - Compile the specified program from bitcode to executable
-  /// code.  This does not produce any output, it is only used when debugging
-  /// the code generator.  If the code generator fails, an exception should be
-  /// thrown, otherwise, this function will just return.
-  virtual void compileProgram(const std::string &Bitcode) {}
-
-  /// OutputCode - Compile the specified program from bitcode to code
-  /// understood by the GCC driver (either C or asm).  If the code generator
-  /// fails, an exception should be thrown, otherwise, this function returns the
-  /// type of code emitted.
-  virtual GCC::FileType OutputCode(const std::string &Bitcode,
-                                   sys::Path &OutFile) {
-    throw std::string("OutputCode not supported by this AbstractInterpreter!");
-  }
-  
-  /// ExecuteProgram - Run the specified bitcode file, emitting output to the
-  /// specified filename.  This returns the exit code of the program.
-  ///
-  virtual int ExecuteProgram(const std::string &Bitcode,
-                             const std::vector<std::string> &Args,
-                             const std::string &InputFile,
-                             const std::string &OutputFile,
-                             const std::vector<std::string> &GCCArgs =
-                               std::vector<std::string>(),
-                             const std::vector<std::string> &SharedLibs =
-                               std::vector<std::string>(),
-                             unsigned Timeout = 0,
-                             unsigned MemoryLimit = 0) = 0;
-};
-
-//===---------------------------------------------------------------------===//
-// CBE Implementation of AbstractIntepreter interface
-//
-class CBE : public AbstractInterpreter {
-  sys::Path LLCPath;                 // The path to the `llc' executable.
-  std::vector<std::string> ToolArgs; // Extra args to pass to LLC.
-  GCC *gcc;
-public:
-  CBE(const sys::Path &llcPath, GCC *Gcc,
-      const std::vector<std::string> *Args)
-    : LLCPath(llcPath), gcc(Gcc) {
-    ToolArgs.clear ();
-    if (Args) ToolArgs = *Args;
-  }
-  ~CBE() { delete gcc; }
-
-  /// compileProgram - Compile the specified program from bitcode to executable
-  /// code.  This does not produce any output, it is only used when debugging
-  /// the code generator.  If the code generator fails, an exception should be
-  /// thrown, otherwise, this function will just return.
-  virtual void compileProgram(const std::string &Bitcode);
-
-  virtual int ExecuteProgram(const std::string &Bitcode,
-                             const std::vector<std::string> &Args,
-                             const std::string &InputFile,
-                             const std::string &OutputFile,
-                             const std::vector<std::string> &GCCArgs =
-                               std::vector<std::string>(),
-                             const std::vector<std::string> &SharedLibs =
-                               std::vector<std::string>(),
-                             unsigned Timeout = 0,
-                             unsigned MemoryLimit = 0);
-
-  /// OutputCode - Compile the specified program from bitcode to code
-  /// understood by the GCC driver (either C or asm).  If the code generator
-  /// fails, an exception should be thrown, otherwise, this function returns the
-  /// type of code emitted.
-  virtual GCC::FileType OutputCode(const std::string &Bitcode,
-                                   sys::Path &OutFile);
-};
-
-
-//===---------------------------------------------------------------------===//
-// LLC Implementation of AbstractIntepreter interface
-//
-class LLC : public AbstractInterpreter {
-  std::string LLCPath;               // The path to the LLC executable.
-  std::vector<std::string> ToolArgs; // Extra args to pass to LLC.
-  std::vector<std::string> gccArgs;  // Extra args to pass to GCC.
-  GCC *gcc;
-public:
-  LLC(const std::string &llcPath, GCC *Gcc,
-      const std::vector<std::string> *Args,
-      const std::vector<std::string> *GCCArgs)
-    : LLCPath(llcPath), gcc(Gcc) {
-    ToolArgs.clear();
-    if (Args) ToolArgs = *Args;
-    if (GCCArgs) gccArgs = *GCCArgs;
-  }
-  ~LLC() { delete gcc; }
-
-  /// compileProgram - Compile the specified program from bitcode to executable
-  /// code.  This does not produce any output, it is only used when debugging
-  /// the code generator.  If the code generator fails, an exception should be
-  /// thrown, otherwise, this function will just return.
-  virtual void compileProgram(const std::string &Bitcode);
-
-  virtual int ExecuteProgram(const std::string &Bitcode,
-                             const std::vector<std::string> &Args,
-                             const std::string &InputFile,
-                             const std::string &OutputFile,
-                             const std::vector<std::string> &GCCArgs =
-                               std::vector<std::string>(),
-                             const std::vector<std::string> &SharedLibs =
-                                std::vector<std::string>(),
-                             unsigned Timeout = 0,
-                             unsigned MemoryLimit = 0);
-
-  virtual GCC::FileType OutputCode(const std::string &Bitcode,
-                                   sys::Path &OutFile);
-  
-};
-
-} // End llvm namespace
-
-#endif
diff --git a/libclamav/c++/llvm/tools/bugpoint/bugpoint.cpp b/libclamav/c++/llvm/tools/bugpoint/bugpoint.cpp
deleted file mode 100644
index 565f3f9..0000000
--- a/libclamav/c++/llvm/tools/bugpoint/bugpoint.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//===- bugpoint.cpp - The LLVM Bugpoint utility ---------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This program is an automated compiler debugger tool.  It is used to narrow
-// down miscompilations and crash problems to a specific pass in the compiler,
-// and the specific Module or Function input that is causing the problem.
-//
-//===----------------------------------------------------------------------===//
-
-#include "BugDriver.h"
-#include "ToolRunner.h"
-#include "llvm/LinkAllPasses.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Support/PassNameParser.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/PluginLoader.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/StandardPasses.h"
-#include "llvm/System/Process.h"
-#include "llvm/System/Signals.h"
-#include "llvm/LinkAllVMCore.h"
-using namespace llvm;
-
-// AsChild - Specifies that this invocation of bugpoint is being generated
-// from a parent process. It is not intended to be used by users so the 
-// option is hidden.
-static cl::opt<bool> 
-AsChild("as-child", cl::desc("Run bugpoint as child process"), 
-        cl::ReallyHidden);
-          
-static cl::opt<bool> 
-FindBugs("find-bugs", cl::desc("Run many different optimization sequences "
-                               "on program to find bugs"), cl::init(false));
-
-static cl::list<std::string>
-InputFilenames(cl::Positional, cl::OneOrMore,
-               cl::desc("<input llvm ll/bc files>"));
-
-static cl::opt<unsigned>
-TimeoutValue("timeout", cl::init(300), cl::value_desc("seconds"),
-             cl::desc("Number of seconds program is allowed to run before it "
-                      "is killed (default is 300s), 0 disables timeout"));
-
-static cl::opt<unsigned>
-MemoryLimit("mlimit", cl::init(100), cl::value_desc("MBytes"),
-             cl::desc("Maximum amount of memory to use. 0 disables check."));
-
-// The AnalysesList is automatically populated with registered Passes by the
-// PassNameParser.
-//
-static cl::list<const PassInfo*, bool, PassNameParser>
-PassList(cl::desc("Passes available:"), cl::ZeroOrMore);
-
-static cl::opt<bool>
-StandardCompileOpts("std-compile-opts", 
-                   cl::desc("Include the standard compile time optimizations"));
-
-static cl::opt<bool>
-StandardLinkOpts("std-link-opts", 
-                 cl::desc("Include the standard link time optimizations"));
-
-static cl::opt<std::string>
-OverrideTriple("mtriple", cl::desc("Override target triple for module"));
-
-/// BugpointIsInterrupted - Set to true when the user presses ctrl-c.
-bool llvm::BugpointIsInterrupted = false;
-
-static void BugpointInterruptFunction() {
-  BugpointIsInterrupted = true;
-}
-
-// Hack to capture a pass list.
-namespace {
-  class AddToDriver : public PassManager {
-    BugDriver &D;
-  public:
-    AddToDriver(BugDriver &_D) : D(_D) {}
-    
-    virtual void add(Pass *P) {
-      const PassInfo *PI = P->getPassInfo();
-      D.addPasses(&PI, &PI + 1);
-    }
-  };
-}
-
-int main(int argc, char **argv) {
-  llvm::sys::PrintStackTraceOnErrorSignal();
-  llvm::PrettyStackTraceProgram X(argc, argv);
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv,
-                              "LLVM automatic testcase reducer. See\nhttp://"
-                              "llvm.org/cmds/bugpoint.html"
-                              " for more information.\n");
-  sys::SetInterruptFunction(BugpointInterruptFunction);
-
-  LLVMContext& Context = getGlobalContext();
-  // If we have an override, set it and then track the triple we want Modules
-  // to use.
-  if (!OverrideTriple.empty()) {
-    TargetTriple.setTriple(OverrideTriple);
-    outs() << "Override triple set to '" << OverrideTriple << "'\n";
-  }
-
-  BugDriver D(argv[0], AsChild, FindBugs, TimeoutValue, MemoryLimit, Context);
-  if (D.addSources(InputFilenames)) return 1;
-  
-  AddToDriver PM(D);
-  if (StandardCompileOpts) {
-    createStandardModulePasses(&PM, 3,
-                               /*OptimizeSize=*/ false,
-                               /*UnitAtATime=*/ true,
-                               /*UnrollLoops=*/ true,
-                               /*SimplifyLibCalls=*/ true,
-                               /*HaveExceptions=*/ true,
-                               createFunctionInliningPass());
-  }
-      
-  if (StandardLinkOpts)
-    createStandardLTOPasses(&PM, /*Internalize=*/true,
-                            /*RunInliner=*/true,
-                            /*VerifyEach=*/false);
-
-  D.addPasses(PassList.begin(), PassList.end());
-
-  // Bugpoint has the ability of generating a plethora of core files, so to
-  // avoid filling up the disk, we prevent it
-  sys::Process::PreventCoreFiles();
-
-  try {
-    return D.run();
-  } catch (ToolExecutionError &TEE) {
-    errs() << "Tool execution error: " << TEE.what() << '\n';
-  } catch (const std::string& msg) {
-    errs() << argv[0] << ": " << msg << "\n";
-  } catch (const std::bad_alloc&) {
-    errs() << "Oh no, a bugpoint process ran out of memory!\n"
-              "To increase the allocation limits for bugpoint child\n"
-              "processes, use the -mlimit option.\n";
-  } catch (const std::exception &e) {
-    errs() << "Whoops, a std::exception leaked out of bugpoint: "
-           << e.what() << "\n"
-           << "This is a bug in bugpoint!\n";
-  } catch (...) {
-    errs() << "Whoops, an exception leaked out of bugpoint.  "
-           << "This is a bug in bugpoint!\n";
-  }
-  return 1;
-}
diff --git a/libclamav/c++/llvm/tools/gold/Makefile b/libclamav/c++/llvm/tools/gold/Makefile
deleted file mode 100644
index 65e99bf..0000000
--- a/libclamav/c++/llvm/tools/gold/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#===- tools/gold/Makefile ----------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-LIBRARYNAME = LLVMgold
-
-# Include this here so we can get the configuration of the targets
-# that have been configured for construction. We have to do this 
-# early so we can set up LINK_COMPONENTS before including Makefile.rules
-include $(LEVEL)/Makefile.config
-
-LINK_LIBS_IN_SHARED=1
-SHARED_LIBRARY = 1
-BUILD_ARCHIVE = 0
-
-LINK_COMPONENTS :=
-LIBS += -llto
-
-# Because off_t is used in the public API, the largefile parts are required for
-# ABI compatibility.
-CXXFLAGS+=-I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -lLTO
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/gold/README.txt b/libclamav/c++/llvm/tools/gold/README.txt
deleted file mode 100644
index 92ee3d1..0000000
--- a/libclamav/c++/llvm/tools/gold/README.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-This directory contains a plugin that is designed to work with binutils
-gold linker. At present time, this is not the default linker in
-binutils, and the default build of gold does not support plugins.
-
-Obtaining binutils:
-
-  cvs -z 9 -d :pserver:anoncvs at sourceware.org:/cvs/src login
-  {enter "anoncvs" as the password}
-  cvs -z 9 -d :pserver:anoncvs at sourceware.org:/cvs/src co binutils
-
-This will create a src/ directory. Make a build/ directory and from
-there configure binutils with "../src/configure --enable-gold --enable-plugins".
-Then build binutils with "make all-gold".
-
-To build the LLVMgold plugin, configure LLVM with the option
---with-binutils-include=/path/to/binutils/src/include/ --enable-pic. To use the
-plugin, run "ld-new --plugin /path/to/libLLVMgold.so".
-Without PIC libLTO and libLLVMgold are not being built (because they would fail
-link on x86-64 with a relocation error: PIC and non-PIC can't be combined).
-As an alternative to passing --enable-pic, you can use 'make ENABLE_PIC=1' in
-your entire LLVM build.
diff --git a/libclamav/c++/llvm/tools/gold/gold-plugin.cpp b/libclamav/c++/llvm/tools/gold/gold-plugin.cpp
deleted file mode 100644
index 6520617..0000000
--- a/libclamav/c++/llvm/tools/gold/gold-plugin.cpp
+++ /dev/null
@@ -1,399 +0,0 @@
-//===-- gold-plugin.cpp - Plugin to gold for Link Time Optimization  ------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a gold plugin for LLVM. It provides an LLVM implementation of the
-// interface described in http://gcc.gnu.org/wiki/whopr/driver .
-//
-//===----------------------------------------------------------------------===//
-
-#include "plugin-api.h"
-
-#include "llvm-c/lto.h"
-
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Errno.h"
-#include "llvm/System/Path.h"
-#include "llvm/System/Program.h"
-
-#include <cerrno>
-#include <cstdlib>
-#include <cstring>
-#include <fstream>
-#include <list>
-#include <vector>
-
-using namespace llvm;
-
-namespace {
-  ld_plugin_status discard_message(int level, const char *format, ...) {
-    // Die loudly. Recent versions of Gold pass ld_plugin_message as the first
-    // callback in the transfer vector. This should never be called.
-    abort();
-  }
-
-  ld_plugin_add_symbols add_symbols = NULL;
-  ld_plugin_get_symbols get_symbols = NULL;
-  ld_plugin_add_input_file add_input_file = NULL;
-  ld_plugin_message message = discard_message;
-
-  int api_version = 0;
-  int gold_version = 0;
-
-  bool generate_api_file = false;
-  const char *as_path = NULL;
-
-  struct claimed_file {
-    lto_module_t M;
-    void *handle;
-    std::vector<ld_plugin_symbol> syms;
-  };
-
-  lto_codegen_model output_type = LTO_CODEGEN_PIC_MODEL_STATIC;
-  std::list<claimed_file> Modules;
-  std::vector<sys::Path> Cleanup;
-}
-
-ld_plugin_status claim_file_hook(const ld_plugin_input_file *file,
-                                 int *claimed);
-ld_plugin_status all_symbols_read_hook(void);
-ld_plugin_status cleanup_hook(void);
-
-extern "C" ld_plugin_status onload(ld_plugin_tv *tv);
-ld_plugin_status onload(ld_plugin_tv *tv) {
-  // We're given a pointer to the first transfer vector. We read through them
-  // until we find one where tv_tag == LDPT_NULL. The REGISTER_* tagged values
-  // contain pointers to functions that we need to call to register our own
-  // hooks. The others are addresses of functions we can use to call into gold
-  // for services.
-
-  bool registeredClaimFile = false;
-  bool registeredAllSymbolsRead = false;
-  bool registeredCleanup = false;
-
-  for (; tv->tv_tag != LDPT_NULL; ++tv) {
-    switch (tv->tv_tag) {
-      case LDPT_API_VERSION:
-        api_version = tv->tv_u.tv_val;
-        break;
-      case LDPT_GOLD_VERSION:  // major * 100 + minor
-        gold_version = tv->tv_u.tv_val;
-        break;
-      case LDPT_LINKER_OUTPUT:
-        switch (tv->tv_u.tv_val) {
-          case LDPO_REL:  // .o
-          case LDPO_DYN:  // .so
-            output_type = LTO_CODEGEN_PIC_MODEL_DYNAMIC;
-            break;
-          case LDPO_EXEC:  // .exe
-            output_type = LTO_CODEGEN_PIC_MODEL_STATIC;
-            break;
-          default:
-            (*message)(LDPL_ERROR, "Unknown output file type %d",
-                       tv->tv_u.tv_val);
-            return LDPS_ERR;
-        }
-        // TODO: add an option to disable PIC.
-        //output_type = LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC;
-        break;
-      case LDPT_OPTION:
-        if (strcmp("generate-api-file", tv->tv_u.tv_string) == 0) {
-          generate_api_file = true;
-        } else if (strncmp("as=", tv->tv_u.tv_string, 3) == 0) {
-          if (as_path) {
-            (*message)(LDPL_WARNING, "Path to as specified twice. "
-                       "Discarding %s", tv->tv_u.tv_string);
-          } else {
-            as_path = strdup(tv->tv_u.tv_string + 3);
-          }
-        } else {
-          (*message)(LDPL_WARNING, "Ignoring flag %s", tv->tv_u.tv_string);
-        }
-        break;
-      case LDPT_REGISTER_CLAIM_FILE_HOOK: {
-        ld_plugin_register_claim_file callback;
-        callback = tv->tv_u.tv_register_claim_file;
-
-        if ((*callback)(claim_file_hook) != LDPS_OK)
-          return LDPS_ERR;
-
-        registeredClaimFile = true;
-      } break;
-      case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK: {
-        ld_plugin_register_all_symbols_read callback;
-        callback = tv->tv_u.tv_register_all_symbols_read;
-
-        if ((*callback)(all_symbols_read_hook) != LDPS_OK)
-          return LDPS_ERR;
-
-        registeredAllSymbolsRead = true;
-      } break;
-      case LDPT_REGISTER_CLEANUP_HOOK: {
-        ld_plugin_register_cleanup callback;
-        callback = tv->tv_u.tv_register_cleanup;
-
-        if ((*callback)(cleanup_hook) != LDPS_OK)
-          return LDPS_ERR;
-
-        registeredCleanup = true;
-      } break;
-      case LDPT_ADD_SYMBOLS:
-        add_symbols = tv->tv_u.tv_add_symbols;
-        break;
-      case LDPT_GET_SYMBOLS:
-        get_symbols = tv->tv_u.tv_get_symbols;
-        break;
-      case LDPT_ADD_INPUT_FILE:
-        add_input_file = tv->tv_u.tv_add_input_file;
-        break;
-      case LDPT_MESSAGE:
-        message = tv->tv_u.tv_message;
-        break;
-      default:
-        break;
-    }
-  }
-
-  if (!registeredClaimFile) {
-    (*message)(LDPL_ERROR, "register_claim_file not passed to LLVMgold.");
-    return LDPS_ERR;
-  }
-  if (!add_symbols) {
-    (*message)(LDPL_ERROR, "add_symbols not passed to LLVMgold.");
-    return LDPS_ERR;
-  }
-
-  return LDPS_OK;
-}
-
-/// claim_file_hook - called by gold to see whether this file is one that
-/// our plugin can handle. We'll try to open it and register all the symbols
-/// with add_symbol if possible.
-ld_plugin_status claim_file_hook(const ld_plugin_input_file *file,
-                                 int *claimed) {
-  void *buf = NULL;
-  if (file->offset) {
-    // Gold has found what might be IR part-way inside of a file, such as
-    // an .a archive.
-    if (lseek(file->fd, file->offset, SEEK_SET) == -1) {
-      (*message)(LDPL_ERROR,
-                 "Failed to seek to archive member of %s at offset %d: %s\n", 
-                 file->name,
-                 file->offset, sys::StrError(errno).c_str());
-      return LDPS_ERR;
-    }
-    buf = malloc(file->filesize);
-    if (!buf) {
-      (*message)(LDPL_ERROR,
-                 "Failed to allocate buffer for archive member of size: %d\n", 
-                 file->filesize);
-      return LDPS_ERR;
-    }
-    if (read(file->fd, buf, file->filesize) != file->filesize) {
-      (*message)(LDPL_ERROR,
-                 "Failed to read archive member of %s at offset %d: %s\n",
-                 file->name,
-                 file->offset,
-                 sys::StrError(errno).c_str());
-      free(buf);
-      return LDPS_ERR;
-    }
-    if (!lto_module_is_object_file_in_memory(buf, file->filesize)) {
-      free(buf);
-      return LDPS_OK;
-    }
-  } else if (!lto_module_is_object_file(file->name))
-    return LDPS_OK;
-
-  *claimed = 1;
-  Modules.resize(Modules.size() + 1);
-  claimed_file &cf = Modules.back();
-
-  cf.M = buf ? lto_module_create_from_memory(buf, file->filesize) :
-               lto_module_create(file->name);
-  free(buf);
-  if (!cf.M) {
-    (*message)(LDPL_ERROR, "Failed to create LLVM module: %s",
-               lto_get_error_message());
-    return LDPS_ERR;
-  }
-  cf.handle = file->handle;
-  unsigned sym_count = lto_module_get_num_symbols(cf.M);
-  cf.syms.reserve(sym_count);
-
-  for (unsigned i = 0; i != sym_count; ++i) {
-    lto_symbol_attributes attrs = lto_module_get_symbol_attribute(cf.M, i);
-    if ((attrs & LTO_SYMBOL_SCOPE_MASK) == LTO_SYMBOL_SCOPE_INTERNAL)
-      continue;
-
-    cf.syms.push_back(ld_plugin_symbol());
-    ld_plugin_symbol &sym = cf.syms.back();
-    sym.name = const_cast<char *>(lto_module_get_symbol_name(cf.M, i));
-    sym.version = NULL;
-
-    int scope = attrs & LTO_SYMBOL_SCOPE_MASK;
-    switch (scope) {
-      case LTO_SYMBOL_SCOPE_HIDDEN:
-        sym.visibility = LDPV_HIDDEN;
-        break;
-      case LTO_SYMBOL_SCOPE_PROTECTED:
-        sym.visibility = LDPV_PROTECTED;
-        break;
-      case 0: // extern
-      case LTO_SYMBOL_SCOPE_DEFAULT:
-        sym.visibility = LDPV_DEFAULT;
-        break;
-      default:
-        (*message)(LDPL_ERROR, "Unknown scope attribute: %d", scope);
-        return LDPS_ERR;
-    }
-
-    int definition = attrs & LTO_SYMBOL_DEFINITION_MASK;
-    switch (definition) {
-      case LTO_SYMBOL_DEFINITION_REGULAR:
-        sym.def = LDPK_DEF;
-        break;
-      case LTO_SYMBOL_DEFINITION_UNDEFINED:
-        sym.def = LDPK_UNDEF;
-        break;
-      case LTO_SYMBOL_DEFINITION_TENTATIVE:
-        sym.def = LDPK_COMMON;
-        break;
-      case LTO_SYMBOL_DEFINITION_WEAK:
-        sym.def = LDPK_WEAKDEF;
-        break;
-      case LTO_SYMBOL_DEFINITION_WEAKUNDEF:
-        sym.def = LDPK_WEAKUNDEF;
-        break;
-      default:
-        (*message)(LDPL_ERROR, "Unknown definition attribute: %d", definition);
-        return LDPS_ERR;
-    }
-
-    // LLVM never emits COMDAT.
-    sym.size = 0;
-    sym.comdat_key = NULL;
-
-    sym.resolution = LDPR_UNKNOWN;
-  }
-
-  cf.syms.reserve(cf.syms.size());
-
-  if (!cf.syms.empty()) {
-    if ((*add_symbols)(cf.handle, cf.syms.size(), &cf.syms[0]) != LDPS_OK) {
-      (*message)(LDPL_ERROR, "Unable to add symbols!");
-      return LDPS_ERR;
-    }
-  }
-
-  return LDPS_OK;
-}
-
-/// all_symbols_read_hook - gold informs us that all symbols have been read.
-/// At this point, we use get_symbols to see if any of our definitions have
-/// been overridden by a native object file. Then, perform optimization and
-/// codegen.
-ld_plugin_status all_symbols_read_hook(void) {
-  lto_code_gen_t cg = lto_codegen_create();
-
-  for (std::list<claimed_file>::iterator I = Modules.begin(),
-       E = Modules.end(); I != E; ++I)
-    lto_codegen_add_module(cg, I->M);
-
-  std::ofstream api_file;
-  if (generate_api_file) {
-    api_file.open("apifile.txt", std::ofstream::out | std::ofstream::trunc);
-    if (!api_file.is_open()) {
-      (*message)(LDPL_FATAL, "Unable to open apifile.txt for writing.");
-      abort();
-    }
-  }
-
-  // If we don't preserve any symbols, libLTO will assume that all symbols are
-  // needed. Keep all symbols unless we're producing a final executable.
-  if (output_type == LTO_CODEGEN_PIC_MODEL_STATIC) {
-    bool anySymbolsPreserved = false;
-    for (std::list<claimed_file>::iterator I = Modules.begin(),
-         E = Modules.end(); I != E; ++I) {
-      (*get_symbols)(I->handle, I->syms.size(), &I->syms[0]);
-      for (unsigned i = 0, e = I->syms.size(); i != e; i++) {
-        if (I->syms[i].resolution == LDPR_PREVAILING_DEF ||
-            (I->syms[i].def == LDPK_COMMON &&
-             I->syms[i].resolution == LDPR_RESOLVED_IR)) {
-          lto_codegen_add_must_preserve_symbol(cg, I->syms[i].name);
-          anySymbolsPreserved = true;
-
-          if (generate_api_file)
-            api_file << I->syms[i].name << "\n";
-        }
-      }
-    }
-
-    if (generate_api_file)
-      api_file.close();
-
-    if (!anySymbolsPreserved) {
-      // This entire file is unnecessary!
-      lto_codegen_dispose(cg);
-      return LDPS_OK;
-    }
-  }
-
-  lto_codegen_set_pic_model(cg, output_type);
-  lto_codegen_set_debug_model(cg, LTO_DEBUG_MODEL_DWARF);
-  if (as_path) {
-    sys::Path p = sys::Program::FindProgramByName(as_path);
-    lto_codegen_set_assembler_path(cg, p.c_str());
-  }
-
-  size_t bufsize = 0;
-  const char *buffer = static_cast<const char *>(lto_codegen_compile(cg,
-                                                                     &bufsize));
-
-  std::string ErrMsg;
-
-  sys::Path uniqueObjPath("/tmp/llvmgold.o");
-  if (uniqueObjPath.createTemporaryFileOnDisk(true, &ErrMsg)) {
-    (*message)(LDPL_ERROR, "%s", ErrMsg.c_str());
-    return LDPS_ERR;
-  }
-  raw_fd_ostream *objFile = 
-    new raw_fd_ostream(uniqueObjPath.c_str(), ErrMsg,
-                       raw_fd_ostream::F_Binary);
-  if (!ErrMsg.empty()) {
-    delete objFile;
-    (*message)(LDPL_ERROR, "%s", ErrMsg.c_str());
-    return LDPS_ERR;
-  }
-
-  objFile->write(buffer, bufsize);
-  objFile->close();
-
-  lto_codegen_dispose(cg);
-
-  if ((*add_input_file)(const_cast<char*>(uniqueObjPath.c_str())) != LDPS_OK) {
-    (*message)(LDPL_ERROR, "Unable to add .o file to the link.");
-    (*message)(LDPL_ERROR, "File left behind in: %s", uniqueObjPath.c_str());
-    return LDPS_ERR;
-  }
-
-  Cleanup.push_back(uniqueObjPath);
-
-  return LDPS_OK;
-}
-
-ld_plugin_status cleanup_hook(void) {
-  std::string ErrMsg;
-
-  for (int i = 0, e = Cleanup.size(); i != e; ++i)
-    if (Cleanup[i].eraseFromDisk(false, &ErrMsg))
-      (*message)(LDPL_ERROR, "Failed to delete '%s': %s", Cleanup[i].c_str(),
-                 ErrMsg.c_str());
-
-  return LDPS_OK;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-ar/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-ar/CMakeLists.txt
deleted file mode 100644
index c8b0b72..0000000
--- a/libclamav/c++/llvm/tools/llvm-ar/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-set(LLVM_LINK_COMPONENTS archive)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvm-ar
-  llvm-ar.cpp
-  )
-
-# TODO: Support check-local.
diff --git a/libclamav/c++/llvm/tools/llvm-ar/Makefile b/libclamav/c++/llvm/tools/llvm-ar/Makefile
deleted file mode 100644
index e4fe4e8..0000000
--- a/libclamav/c++/llvm/tools/llvm-ar/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-##===- tools/llvm-ar/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-
-TOOLNAME = llvm-ar
-LINK_COMPONENTS = archive
-REQUIRES_EH := 1
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
-
-check-local::
-	$(Echo) Checking llvm-ar
-	$(Verb) $(ToolDir)/llvm-ar zRrS nada.a .
-	$(Verb) $(ToolDir)/llvm-ar tv nada.a | \
-	  grep Debug/llvm-ar.d >/dev/null 2>&1
-	$(Verb) $(RM) -f nada.a
diff --git a/libclamav/c++/llvm/tools/llvm-ar/llvm-ar.cpp b/libclamav/c++/llvm/tools/llvm-ar/llvm-ar.cpp
deleted file mode 100644
index 021a369..0000000
--- a/libclamav/c++/llvm/tools/llvm-ar/llvm-ar.cpp
+++ /dev/null
@@ -1,779 +0,0 @@
-//===-- llvm-ar.cpp - LLVM archive librarian utility ----------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Builds up (relatively) standard unix archive files (.a) containing LLVM
-// bitcode or other files.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/Bitcode/Archive.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-#include <iostream>
-#include <algorithm>
-#include <iomanip>
-#include <memory>
-#include <fstream>
-using namespace llvm;
-
-// Option for compatibility with AIX, not used but must allow it to be present.
-static cl::opt<bool>
-X32Option ("X32_64", cl::Hidden,
-            cl::desc("Ignored option for compatibility with AIX"));
-
-// llvm-ar operation code and modifier flags. This must come first.
-static cl::opt<std::string>
-Options(cl::Positional, cl::Required, cl::desc("{operation}[modifiers]..."));
-
-// llvm-ar remaining positional arguments.
-static cl::list<std::string>
-RestOfArgs(cl::Positional, cl::OneOrMore,
-    cl::desc("[relpos] [count] <archive-file> [members]..."));
-
-// MoreHelp - Provide additional help output explaining the operations and
-// modifiers of llvm-ar. This object instructs the CommandLine library
-// to print the text of the constructor when the --help option is given.
-static cl::extrahelp MoreHelp(
-  "\nOPERATIONS:\n"
-  "  d[NsS]       - delete file(s) from the archive\n"
-  "  m[abiSs]     - move file(s) in the archive\n"
-  "  p[kN]        - print file(s) found in the archive\n"
-  "  q[ufsS]      - quick append file(s) to the archive\n"
-  "  r[abfiuzRsS] - replace or insert file(s) into the archive\n"
-  "  t            - display contents of archive\n"
-  "  x[No]        - extract file(s) from the archive\n"
-  "\nMODIFIERS (operation specific):\n"
-  "  [a] - put file(s) after [relpos]\n"
-  "  [b] - put file(s) before [relpos] (same as [i])\n"
-  "  [f] - truncate inserted file names\n"
-  "  [i] - put file(s) before [relpos] (same as [b])\n"
-  "  [k] - always print bitcode files (default is to skip them)\n"
-  "  [N] - use instance [count] of name\n"
-  "  [o] - preserve original dates\n"
-  "  [P] - use full path names when matching\n"
-  "  [R] - recurse through directories when inserting\n"
-  "  [s] - create an archive index (cf. ranlib)\n"
-  "  [S] - do not build a symbol table\n"
-  "  [u] - update only files newer than archive contents\n"
-  "  [z] - compress files before inserting/extracting\n"
-  "\nMODIFIERS (generic):\n"
-  "  [c] - do not warn if the library had to be created\n"
-  "  [v] - be verbose about actions taken\n"
-  "  [V] - be *really* verbose about actions taken\n"
-);
-
-// This enumeration delineates the kinds of operations on an archive
-// that are permitted.
-enum ArchiveOperation {
-  NoOperation,      ///< An operation hasn't been specified
-  Print,            ///< Print the contents of the archive
-  Delete,           ///< Delete the specified members
-  Move,             ///< Move members to end or as given by {a,b,i} modifiers
-  QuickAppend,      ///< Quickly append to end of archive
-  ReplaceOrInsert,  ///< Replace or Insert members
-  DisplayTable,     ///< Display the table of contents
-  Extract           ///< Extract files back to file system
-};
-
-// Modifiers to follow operation to vary behavior
-bool AddAfter = false;           ///< 'a' modifier
-bool AddBefore = false;          ///< 'b' modifier
-bool Create = false;             ///< 'c' modifier
-bool TruncateNames = false;      ///< 'f' modifier
-bool InsertBefore = false;       ///< 'i' modifier
-bool DontSkipBitcode = false;    ///< 'k' modifier
-bool UseCount = false;           ///< 'N' modifier
-bool OriginalDates = false;      ///< 'o' modifier
-bool FullPath = false;           ///< 'P' modifier
-bool RecurseDirectories = false; ///< 'R' modifier
-bool SymTable = true;            ///< 's' & 'S' modifiers
-bool OnlyUpdate = false;         ///< 'u' modifier
-bool Verbose = false;            ///< 'v' modifier
-bool ReallyVerbose = false;      ///< 'V' modifier
-bool Compression = false;        ///< 'z' modifier
-
-// Relative Positional Argument (for insert/move). This variable holds
-// the name of the archive member to which the 'a', 'b' or 'i' modifier
-// refers. Only one of 'a', 'b' or 'i' can be specified so we only need
-// one variable.
-std::string RelPos;
-
-// Select which of multiple entries in the archive with the same name should be
-// used (specified with -N) for the delete and extract operations.
-int Count = 1;
-
-// This variable holds the name of the archive file as given on the
-// command line.
-std::string ArchiveName;
-
-// This variable holds the list of member files to proecess, as given
-// on the command line.
-std::vector<std::string> Members;
-
-// This variable holds the (possibly expanded) list of path objects that
-// correspond to files we will
-std::set<sys::Path> Paths;
-
-// The Archive object to which all the editing operations will be sent.
-Archive* TheArchive = 0;
-
-// getRelPos - Extract the member filename from the command line for
-// the [relpos] argument associated with a, b, and i modifiers
-void getRelPos() {
-  if(RestOfArgs.size() > 0) {
-    RelPos = RestOfArgs[0];
-    RestOfArgs.erase(RestOfArgs.begin());
-  }
-  else
-    throw "Expected [relpos] for a, b, or i modifier";
-}
-
-// getCount - Extract the [count] argument associated with the N modifier
-// from the command line and check its value.
-void getCount() {
-  if(RestOfArgs.size() > 0) {
-    Count = atoi(RestOfArgs[0].c_str());
-    RestOfArgs.erase(RestOfArgs.begin());
-  }
-  else
-    throw "Expected [count] value with N modifier";
-
-  // Non-positive counts are not allowed
-  if (Count < 1)
-    throw "Invalid [count] value (not a positive integer)";
-}
-
-// getArchive - Get the archive file name from the command line
-void getArchive() {
-  if(RestOfArgs.size() > 0) {
-    ArchiveName = RestOfArgs[0];
-    RestOfArgs.erase(RestOfArgs.begin());
-  }
-  else
-    throw "An archive name must be specified.";
-}
-
-// getMembers - Copy over remaining items in RestOfArgs to our Members vector
-// This is just for clarity.
-void getMembers() {
-  if(RestOfArgs.size() > 0)
-    Members = std::vector<std::string>(RestOfArgs);
-}
-
-// parseCommandLine - Parse the command line options as presented and return the
-// operation specified. Process all modifiers and check to make sure that
-// constraints on modifier/operation pairs have not been violated.
-ArchiveOperation parseCommandLine() {
-
-  // Keep track of number of operations. We can only specify one
-  // per execution.
-  unsigned NumOperations = 0;
-
-  // Keep track of the number of positional modifiers (a,b,i). Only
-  // one can be specified.
-  unsigned NumPositional = 0;
-
-  // Keep track of which operation was requested
-  ArchiveOperation Operation = NoOperation;
-
-  for(unsigned i=0; i<Options.size(); ++i) {
-    switch(Options[i]) {
-    case 'd': ++NumOperations; Operation = Delete; break;
-    case 'm': ++NumOperations; Operation = Move ; break;
-    case 'p': ++NumOperations; Operation = Print; break;
-    case 'q': ++NumOperations; Operation = QuickAppend; break;
-    case 'r': ++NumOperations; Operation = ReplaceOrInsert; break;
-    case 't': ++NumOperations; Operation = DisplayTable; break;
-    case 'x': ++NumOperations; Operation = Extract; break;
-    case 'c': Create = true; break;
-    case 'f': TruncateNames = true; break;
-    case 'k': DontSkipBitcode = true; break;
-    case 'l': /* accepted but unused */ break;
-    case 'o': OriginalDates = true; break;
-    case 'P': FullPath = true; break;
-    case 'R': RecurseDirectories = true; break;
-    case 's': SymTable = true; break;
-    case 'S': SymTable = false; break;
-    case 'u': OnlyUpdate = true; break;
-    case 'v': Verbose = true; break;
-    case 'V': Verbose = ReallyVerbose = true; break;
-    case 'z': Compression = true; break;
-    case 'a':
-      getRelPos();
-      AddAfter = true;
-      NumPositional++;
-      break;
-    case 'b':
-      getRelPos();
-      AddBefore = true;
-      NumPositional++;
-      break;
-    case 'i':
-      getRelPos();
-      InsertBefore = true;
-      NumPositional++;
-      break;
-    case 'N':
-      getCount();
-      UseCount = true;
-      break;
-    default:
-      cl::PrintHelpMessage();
-    }
-  }
-
-  // At this point, the next thing on the command line must be
-  // the archive name.
-  getArchive();
-
-  // Everything on the command line at this point is a member.
-  getMembers();
-
-  // Perform various checks on the operation/modifier specification
-  // to make sure we are dealing with a legal request.
-  if (NumOperations == 0)
-    throw "You must specify at least one of the operations";
-  if (NumOperations > 1)
-    throw "Only one operation may be specified";
-  if (NumPositional > 1)
-    throw "You may only specify one of a, b, and i modifiers";
-  if (AddAfter || AddBefore || InsertBefore)
-    if (Operation != Move && Operation != ReplaceOrInsert)
-      throw "The 'a', 'b' and 'i' modifiers can only be specified with "
-            "the 'm' or 'r' operations";
-  if (RecurseDirectories && Operation != ReplaceOrInsert)
-    throw "The 'R' modifiers is only applicabe to the 'r' operation";
-  if (OriginalDates && Operation != Extract)
-    throw "The 'o' modifier is only applicable to the 'x' operation";
-  if (TruncateNames && Operation!=QuickAppend && Operation!=ReplaceOrInsert)
-    throw "The 'f' modifier is only applicable to the 'q' and 'r' operations";
-  if (OnlyUpdate && Operation != ReplaceOrInsert)
-    throw "The 'u' modifier is only applicable to the 'r' operation";
-  if (Compression && Operation!=ReplaceOrInsert && Operation!=Extract)
-    throw "The 'z' modifier is only applicable to the 'r' and 'x' operations";
-  if (Count > 1 && Members.size() > 1)
-    throw "Only one member name may be specified with the 'N' modifier";
-
-  // Return the parsed operation to the caller
-  return Operation;
-}
-
-// recurseDirectories - Implements the "R" modifier. This function scans through
-// the Paths vector (built by buildPaths, below) and replaces any directories it
-// finds with all the files in that directory (recursively). It uses the
-// sys::Path::getDirectoryContent method to perform the actual directory scans.
-bool
-recurseDirectories(const sys::Path& path, 
-                   std::set<sys::Path>& result, std::string* ErrMsg) {
-  result.clear();
-  if (RecurseDirectories) {
-    std::set<sys::Path> content;
-    if (path.getDirectoryContents(content, ErrMsg))
-      return true;
-
-    for (std::set<sys::Path>::iterator I = content.begin(), E = content.end();
-         I != E; ++I) {
-      // Make sure it exists and is a directory
-      sys::PathWithStatus PwS(*I);
-      const sys::FileStatus *Status = PwS.getFileStatus(false, ErrMsg);
-      if (!Status)
-        return true;
-      if (Status->isDir) {
-        std::set<sys::Path> moreResults;
-        if (recurseDirectories(*I, moreResults, ErrMsg))
-          return true;
-        result.insert(moreResults.begin(), moreResults.end());
-      } else {
-          result.insert(*I);
-      }
-    }
-  }
-  return false;
-}
-
-// buildPaths - Convert the strings in the Members vector to sys::Path objects
-// and make sure they are valid and exist exist. This check is only needed for
-// the operations that add/replace files to the archive ('q' and 'r')
-bool buildPaths(bool checkExistence, std::string* ErrMsg) {
-  for (unsigned i = 0; i < Members.size(); i++) {
-    sys::Path aPath;
-    if (!aPath.set(Members[i]))
-      throw std::string("File member name invalid: ") + Members[i];
-    if (checkExistence) {
-      if (!aPath.exists())
-        throw std::string("File does not exist: ") + Members[i];
-      std::string Err;
-      sys::PathWithStatus PwS(aPath);
-      const sys::FileStatus *si = PwS.getFileStatus(false, &Err);
-      if (!si)
-        throw Err;
-      if (si->isDir) {
-        std::set<sys::Path> dirpaths;
-        if (recurseDirectories(aPath, dirpaths, ErrMsg))
-          return true;
-        Paths.insert(dirpaths.begin(),dirpaths.end());
-      } else {
-        Paths.insert(aPath);
-      }
-    } else {
-      Paths.insert(aPath);
-    }
-  }
-  return false;
-}
-
-// printSymbolTable - print out the archive's symbol table.
-void printSymbolTable() {
-  std::cout << "\nArchive Symbol Table:\n";
-  const Archive::SymTabType& symtab = TheArchive->getSymbolTable();
-  for (Archive::SymTabType::const_iterator I=symtab.begin(), E=symtab.end();
-       I != E; ++I ) {
-    unsigned offset = TheArchive->getFirstFileOffset() + I->second;
-    std::cout << " " << std::setw(9) << offset << "\t" << I->first <<"\n";
-  }
-}
-
-// doPrint - Implements the 'p' operation. This function traverses the archive
-// looking for members that match the path list. It is careful to uncompress
-// things that should be and to skip bitcode files unless the 'k' modifier was
-// given.
-bool doPrint(std::string* ErrMsg) {
-  if (buildPaths(false, ErrMsg))
-    return true;
-  unsigned countDown = Count;
-  for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
-       I != E; ++I ) {
-    if (Paths.empty() ||
-        (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) {
-      if (countDown == 1) {
-        const char* data = reinterpret_cast<const char*>(I->getData());
-
-        // Skip things that don't make sense to print
-        if (I->isLLVMSymbolTable() || I->isSVR4SymbolTable() ||
-            I->isBSD4SymbolTable() || (!DontSkipBitcode && I->isBitcode()))
-          continue;
-
-        if (Verbose)
-          std::cout << "Printing " << I->getPath().str() << "\n";
-
-        unsigned len = I->getSize();
-        std::cout.write(data, len);
-      } else {
-        countDown--;
-      }
-    }
-  }
-  return false;
-}
-
-// putMode - utility function for printing out the file mode when the 't'
-// operation is in verbose mode.
-void 
-printMode(unsigned mode) {
-  if (mode & 004)
-    std::cout << "r";
-  else
-    std::cout << "-";
-  if (mode & 002)
-    std::cout << "w";
-  else
-    std::cout << "-";
-  if (mode & 001)
-    std::cout << "x";
-  else
-    std::cout << "-";
-}
-
-// doDisplayTable - Implement the 't' operation. This function prints out just
-// the file names of each of the members. However, if verbose mode is requested
-// ('v' modifier) then the file type, permission mode, user, group, size, and
-// modification time are also printed.
-bool 
-doDisplayTable(std::string* ErrMsg) {
-  if (buildPaths(false, ErrMsg))
-    return true;
-  for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
-       I != E; ++I ) {
-    if (Paths.empty() ||
-        (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) {
-      if (Verbose) {
-        // FIXME: Output should be this format:
-        // Zrw-r--r--  500/ 500    525 Nov  8 17:42 2004 Makefile
-        if (I->isBitcode())
-          std::cout << "b";
-        else if (I->isCompressed())
-          std::cout << "Z";
-        else
-          std::cout << " ";
-        unsigned mode = I->getMode();
-        printMode((mode >> 6) & 007);
-        printMode((mode >> 3) & 007);
-        printMode(mode & 007);
-        std::cout << " " << std::setw(4) << I->getUser();
-        std::cout << "/" << std::setw(4) << I->getGroup();
-        std::cout << " " << std::setw(8) << I->getSize();
-        std::cout << " " << std::setw(20) << I->getModTime().str().substr(4);
-        std::cout << " " << I->getPath().str() << "\n";
-      } else {
-        std::cout << I->getPath().str() << "\n";
-      }
-    }
-  }
-  if (ReallyVerbose)
-    printSymbolTable();
-  return false;
-}
-
-// doExtract - Implement the 'x' operation. This function extracts files back to
-// the file system, making sure to uncompress any that were compressed
-bool 
-doExtract(std::string* ErrMsg) {
-  if (buildPaths(false, ErrMsg))
-    return true;
-  for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
-       I != E; ++I ) {
-    if (Paths.empty() ||
-        (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) {
-
-      // Make sure the intervening directories are created
-      if (I->hasPath()) {
-        sys::Path dirs(I->getPath());
-        dirs.eraseComponent();
-        if (dirs.createDirectoryOnDisk(/*create_parents=*/true, ErrMsg)) 
-          return true;
-      }
-
-      // Open up a file stream for writing
-      std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
-                                   std::ios::binary;
-      std::ofstream file(I->getPath().c_str(), io_mode);
-
-      // Get the data and its length
-      const char* data = reinterpret_cast<const char*>(I->getData());
-      unsigned len = I->getSize();
-
-      // Write the data.
-      file.write(data,len);
-      file.close();
-
-      // If we're supposed to retain the original modification times, etc. do so
-      // now.
-      if (OriginalDates)
-        I->getPath().setStatusInfoOnDisk(I->getFileStatus());
-    }
-  }
-  return false;
-}
-
-// doDelete - Implement the delete operation. This function deletes zero or more
-// members from the archive. Note that if the count is specified, there should
-// be no more than one path in the Paths list or else this algorithm breaks.
-// That check is enforced in parseCommandLine (above).
-bool 
-doDelete(std::string* ErrMsg) {
-  if (buildPaths(false, ErrMsg))
-    return true;
-  if (Paths.empty()) 
-    return false;
-  unsigned countDown = Count;
-  for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
-       I != E; ) {
-    if (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end()) {
-      if (countDown == 1) {
-        Archive::iterator J = I;
-        ++I;
-        TheArchive->erase(J);
-      } else
-        countDown--;
-    } else {
-      ++I;
-    }
-  }
-
-  // We're done editting, reconstruct the archive.
-  if (TheArchive->writeToDisk(SymTable,TruncateNames,Compression,ErrMsg))
-    return true;
-  if (ReallyVerbose)
-    printSymbolTable();
-  return false;
-}
-
-// doMore - Implement the move operation. This function re-arranges just the
-// order of the archive members so that when the archive is written the move
-// of the members is accomplished. Note the use of the RelPos variable to
-// determine where the items should be moved to.
-bool 
-doMove(std::string* ErrMsg) {
-  if (buildPaths(false, ErrMsg)) 
-    return true;
-
-  // By default and convention the place to move members to is the end of the
-  // archive.
-  Archive::iterator moveto_spot = TheArchive->end();
-
-  // However, if the relative positioning modifiers were used, we need to scan
-  // the archive to find the member in question. If we don't find it, its no
-  // crime, we just move to the end.
-  if (AddBefore || InsertBefore || AddAfter) {
-    for (Archive::iterator I = TheArchive->begin(), E= TheArchive->end();
-         I != E; ++I ) {
-      if (RelPos == I->getPath().str()) {
-        if (AddAfter) {
-          moveto_spot = I;
-          moveto_spot++;
-        } else {
-          moveto_spot = I;
-        }
-        break;
-      }
-    }
-  }
-
-  // Keep a list of the paths remaining to be moved
-  std::set<sys::Path> remaining(Paths);
-
-  // Scan the archive again, this time looking for the members to move to the
-  // moveto_spot.
-  for (Archive::iterator I = TheArchive->begin(), E= TheArchive->end();
-       I != E && !remaining.empty(); ++I ) {
-    std::set<sys::Path>::iterator found =
-      std::find(remaining.begin(),remaining.end(),I->getPath());
-    if (found != remaining.end()) {
-      if (I != moveto_spot)
-        TheArchive->splice(moveto_spot,*TheArchive,I);
-      remaining.erase(found);
-    }
-  }
-
-  // We're done editting, reconstruct the archive.
-  if (TheArchive->writeToDisk(SymTable,TruncateNames,Compression,ErrMsg))
-    return true;
-  if (ReallyVerbose)
-    printSymbolTable();
-  return false;
-}
-
-// doQuickAppend - Implements the 'q' operation. This function just
-// indiscriminantly adds the members to the archive and rebuilds it.
-bool 
-doQuickAppend(std::string* ErrMsg) {
-  // Get the list of paths to append.
-  if (buildPaths(true, ErrMsg))
-    return true;
-  if (Paths.empty()) 
-    return false;
-
-  // Append them quickly.
-  for (std::set<sys::Path>::iterator PI = Paths.begin(), PE = Paths.end();
-       PI != PE; ++PI) {
-    if (TheArchive->addFileBefore(*PI,TheArchive->end(),ErrMsg))
-      return true;
-  }
-
-  // We're done editting, reconstruct the archive.
-  if (TheArchive->writeToDisk(SymTable,TruncateNames,Compression,ErrMsg))
-    return true;
-  if (ReallyVerbose)
-    printSymbolTable();
-  return false;
-}
-
-// doReplaceOrInsert - Implements the 'r' operation. This function will replace
-// any existing files or insert new ones into the archive.
-bool 
-doReplaceOrInsert(std::string* ErrMsg) {
-
-  // Build the list of files to be added/replaced.
-  if (buildPaths(true, ErrMsg))
-    return true;
-  if (Paths.empty()) 
-    return false;
-
-  // Keep track of the paths that remain to be inserted.
-  std::set<sys::Path> remaining(Paths);
-
-  // Default the insertion spot to the end of the archive
-  Archive::iterator insert_spot = TheArchive->end();
-
-  // Iterate over the archive contents
-  for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
-       I != E && !remaining.empty(); ++I ) {
-
-    // Determine if this archive member matches one of the paths we're trying
-    // to replace.
-
-    std::set<sys::Path>::iterator found = remaining.end();
-    for (std::set<sys::Path>::iterator RI = remaining.begin(),
-         RE = remaining.end(); RI != RE; ++RI ) {
-      std::string compare(RI->str());
-      if (TruncateNames && compare.length() > 15) {
-        const char* nm = compare.c_str();
-        unsigned len = compare.length();
-        size_t slashpos = compare.rfind('/');
-        if (slashpos != std::string::npos) {
-          nm += slashpos + 1;
-          len -= slashpos +1;
-        }
-        if (len > 15)
-          len = 15;
-        compare.assign(nm,len);
-      }
-      if (compare == I->getPath().str()) {
-        found = RI;
-        break;
-      }
-    }
-
-    if (found != remaining.end()) {
-      std::string Err;
-      sys::PathWithStatus PwS(*found); 
-      const sys::FileStatus *si = PwS.getFileStatus(false, &Err);
-      if (!si)
-        return true;
-      if (!si->isDir) {
-        if (OnlyUpdate) {
-          // Replace the item only if it is newer.
-          if (si->modTime > I->getModTime())
-            if (I->replaceWith(*found, ErrMsg))
-              return true;
-        } else {
-          // Replace the item regardless of time stamp
-          if (I->replaceWith(*found, ErrMsg))
-            return true;
-        }
-      } else {
-        // We purposefully ignore directories.
-      }
-
-      // Remove it from our "to do" list
-      remaining.erase(found);
-    }
-
-    // Determine if this is the place where we should insert
-    if ((AddBefore || InsertBefore) && RelPos == I->getPath().str())
-      insert_spot = I;
-    else if (AddAfter && RelPos == I->getPath().str()) {
-      insert_spot = I;
-      insert_spot++;
-    }
-  }
-
-  // If we didn't replace all the members, some will remain and need to be
-  // inserted at the previously computed insert-spot.
-  if (!remaining.empty()) {
-    for (std::set<sys::Path>::iterator PI = remaining.begin(),
-         PE = remaining.end(); PI != PE; ++PI) {
-      if (TheArchive->addFileBefore(*PI,insert_spot, ErrMsg))
-        return true;
-    }
-  }
-
-  // We're done editting, reconstruct the archive.
-  if (TheArchive->writeToDisk(SymTable,TruncateNames,Compression,ErrMsg))
-    return true;
-  if (ReallyVerbose)
-    printSymbolTable();
-  return false;
-}
-
-// main - main program for llvm-ar .. see comments in the code
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-
-  // Have the command line options parsed and handle things
-  // like --help and --version.
-  cl::ParseCommandLineOptions(argc, argv,
-    "LLVM Archiver (llvm-ar)\n\n"
-    "  This program archives bitcode files into single libraries\n"
-  );
-
-  int exitCode = 0;
-
-  // Make sure we don't exit with "unhandled exception".
-  try {
-    // Do our own parsing of the command line because the CommandLine utility
-    // can't handle the grouped positional parameters without a dash.
-    ArchiveOperation Operation = parseCommandLine();
-
-    // Check the path name of the archive
-    sys::Path ArchivePath;
-    if (!ArchivePath.set(ArchiveName))
-      throw std::string("Archive name invalid: ") + ArchiveName;
-
-    // Create or open the archive object.
-    if (!ArchivePath.exists()) {
-      // Produce a warning if we should and we're creating the archive
-      if (!Create)
-        errs() << argv[0] << ": creating " << ArchivePath.str() << "\n";
-      TheArchive = Archive::CreateEmpty(ArchivePath, Context);
-      TheArchive->writeToDisk();
-    } else {
-      std::string Error;
-      TheArchive = Archive::OpenAndLoad(ArchivePath, Context, &Error);
-      if (TheArchive == 0) {
-        errs() << argv[0] << ": error loading '" << ArchivePath.str() << "': "
-               << Error << "!\n";
-        return 1;
-      }
-    }
-
-    // Make sure we're not fooling ourselves.
-    assert(TheArchive && "Unable to instantiate the archive");
-
-    // Make sure we clean up the archive even on failure.
-    std::auto_ptr<Archive> AutoArchive(TheArchive);
-
-    // Perform the operation
-    std::string ErrMsg;
-    bool haveError = false;
-    switch (Operation) {
-      case Print:           haveError = doPrint(&ErrMsg); break;
-      case Delete:          haveError = doDelete(&ErrMsg); break;
-      case Move:            haveError = doMove(&ErrMsg); break;
-      case QuickAppend:     haveError = doQuickAppend(&ErrMsg); break;
-      case ReplaceOrInsert: haveError = doReplaceOrInsert(&ErrMsg); break;
-      case DisplayTable:    haveError = doDisplayTable(&ErrMsg); break;
-      case Extract:         haveError = doExtract(&ErrMsg); break;
-      case NoOperation:
-        errs() << argv[0] << ": No operation was selected.\n";
-        break;
-    }
-    if (haveError) {
-      errs() << argv[0] << ": " << ErrMsg << "\n";
-      return 1;
-    }
-  } catch (const char*msg) {
-    // These errors are usage errors, thrown only by the various checks in the
-    // code above.
-    errs() << argv[0] << ": " << msg << "\n\n";
-    cl::PrintHelpMessage();
-    exitCode = 1;
-  } catch (const std::string& msg) {
-    // These errors are thrown by LLVM libraries (e.g. lib System) and represent
-    // a more serious error so we bump the exitCode and don't print the usage.
-    errs() << argv[0] << ": " << msg << "\n";
-    exitCode = 2;
-  } catch (...) {
-    // This really shouldn't happen, but just in case ....
-    errs() << argv[0] << ": An unexpected unknown exception occurred.\n";
-    exitCode = 3;
-  }
-
-  // Return result code back to operating system.
-  return exitCode;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-bcanalyzer/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-bcanalyzer/CMakeLists.txt
deleted file mode 100644
index 732bc32..0000000
--- a/libclamav/c++/llvm/tools/llvm-bcanalyzer/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-set(LLVM_LINK_COMPONENTS bitreader)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvm-bcanalyzer
-  llvm-bcanalyzer.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-bcanalyzer/Makefile b/libclamav/c++/llvm/tools/llvm-bcanalyzer/Makefile
deleted file mode 100644
index 251f758..0000000
--- a/libclamav/c++/llvm/tools/llvm-bcanalyzer/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- tools/llvm-bcanalyzer/Makefile ----------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-
-TOOLNAME = llvm-bcanalyzer
-LINK_COMPONENTS := bitreader
-REQUIRES_EH := 1
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/libclamav/c++/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
deleted file mode 100644
index ce9c29f..0000000
--- a/libclamav/c++/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
+++ /dev/null
@@ -1,607 +0,0 @@
-//===-- llvm-bcanalyzer.cpp - Bitcode Analyzer --------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This tool may be invoked in the following manner:
-//  llvm-bcanalyzer [options]      - Read LLVM bitcode from stdin
-//  llvm-bcanalyzer [options] x.bc - Read LLVM bitcode from the x.bc file
-//
-//  Options:
-//      --help      - Output information about command line switches
-//      --dump      - Dump low-level bitcode structure in readable format
-//
-// This tool provides analytical information about a bitcode file. It is
-// intended as an aid to developers of bitcode reading and writing software. It
-// produces on std::out a summary of the bitcode file that shows various
-// statistics about the contents of the file. By default this information is
-// detailed and contains information about individual bitcode blocks and the
-// functions in the module. 
-// The tool is also able to print a bitcode file in a straight forward text
-// format that shows the containment and relationships of the information in
-// the bitcode file (-dump option).
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Bitcode/BitstreamReader.h"
-#include "llvm/Bitcode/LLVMBitCodes.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-#include <cstdio>
-#include <map>
-#include <algorithm>
-using namespace llvm;
-
-static cl::opt<std::string>
-  InputFilename(cl::Positional, cl::desc("<input bitcode>"), cl::init("-"));
-
-static cl::opt<std::string>
-  OutputFilename("-o", cl::init("-"), cl::desc("<output file>"));
-
-static cl::opt<bool> Dump("dump", cl::desc("Dump low level bitcode trace"));
-
-//===----------------------------------------------------------------------===//
-// Bitcode specific analysis.
-//===----------------------------------------------------------------------===//
-
-static cl::opt<bool> NoHistogram("disable-histogram",
-                                 cl::desc("Do not print per-code histogram"));
-
-static cl::opt<bool>
-NonSymbolic("non-symbolic",
-            cl::desc("Emit numberic info in dump even if"
-                     " symbolic info is available"));
-
-/// CurStreamType - If we can sniff the flavor of this stream, we can produce 
-/// better dump info.
-static enum {
-  UnknownBitstream,
-  LLVMIRBitstream
-} CurStreamType;
-
-
-/// GetBlockName - Return a symbolic block name if known, otherwise return
-/// null.
-static const char *GetBlockName(unsigned BlockID,
-                                const BitstreamReader &StreamFile) {
-  // Standard blocks for all bitcode files.
-  if (BlockID < bitc::FIRST_APPLICATION_BLOCKID) {
-    if (BlockID == bitc::BLOCKINFO_BLOCK_ID)
-      return "BLOCKINFO_BLOCK";
-    return 0;
-  }
-  
-  // Check to see if we have a blockinfo record for this block, with a name.
-  if (const BitstreamReader::BlockInfo *Info =
-        StreamFile.getBlockInfo(BlockID)) {
-    if (!Info->Name.empty())
-      return Info->Name.c_str();
-  }
-  
-  
-  if (CurStreamType != LLVMIRBitstream) return 0;
-  
-  switch (BlockID) {
-  default:                          return 0;
-  case bitc::MODULE_BLOCK_ID:       return "MODULE_BLOCK";
-  case bitc::PARAMATTR_BLOCK_ID:    return "PARAMATTR_BLOCK";
-  case bitc::TYPE_BLOCK_ID:         return "TYPE_BLOCK";
-  case bitc::CONSTANTS_BLOCK_ID:    return "CONSTANTS_BLOCK";
-  case bitc::FUNCTION_BLOCK_ID:     return "FUNCTION_BLOCK";
-  case bitc::TYPE_SYMTAB_BLOCK_ID:  return "TYPE_SYMTAB";
-  case bitc::VALUE_SYMTAB_BLOCK_ID: return "VALUE_SYMTAB";
-  case bitc::METADATA_BLOCK_ID:     return "METADATA_BLOCK";
-  }
-}
-
-/// GetCodeName - Return a symbolic code name if known, otherwise return
-/// null.
-static const char *GetCodeName(unsigned CodeID, unsigned BlockID,
-                               const BitstreamReader &StreamFile) {
-  // Standard blocks for all bitcode files.
-  if (BlockID < bitc::FIRST_APPLICATION_BLOCKID) {
-    if (BlockID == bitc::BLOCKINFO_BLOCK_ID) {
-      switch (CodeID) {
-      default: return 0;
-      case bitc::BLOCKINFO_CODE_SETBID:        return "SETBID";
-      case bitc::BLOCKINFO_CODE_BLOCKNAME:     return "BLOCKNAME";
-      case bitc::BLOCKINFO_CODE_SETRECORDNAME: return "SETRECORDNAME";
-      }
-    }
-    return 0;
-  }
-  
-  // Check to see if we have a blockinfo record for this record, with a name.
-  if (const BitstreamReader::BlockInfo *Info =
-        StreamFile.getBlockInfo(BlockID)) {
-    for (unsigned i = 0, e = Info->RecordNames.size(); i != e; ++i)
-      if (Info->RecordNames[i].first == CodeID)
-        return Info->RecordNames[i].second.c_str();
-  }
-  
-  
-  if (CurStreamType != LLVMIRBitstream) return 0;
-  
-  switch (BlockID) {
-  default: return 0;
-  case bitc::MODULE_BLOCK_ID:
-    switch (CodeID) {
-    default: return 0;
-    case bitc::MODULE_CODE_VERSION:     return "VERSION";
-    case bitc::MODULE_CODE_TRIPLE:      return "TRIPLE";
-    case bitc::MODULE_CODE_DATALAYOUT:  return "DATALAYOUT";
-    case bitc::MODULE_CODE_ASM:         return "ASM";
-    case bitc::MODULE_CODE_SECTIONNAME: return "SECTIONNAME";
-    case bitc::MODULE_CODE_DEPLIB:      return "DEPLIB";
-    case bitc::MODULE_CODE_GLOBALVAR:   return "GLOBALVAR";
-    case bitc::MODULE_CODE_FUNCTION:    return "FUNCTION";
-    case bitc::MODULE_CODE_ALIAS:       return "ALIAS";
-    case bitc::MODULE_CODE_PURGEVALS:   return "PURGEVALS";
-    case bitc::MODULE_CODE_GCNAME:      return "GCNAME";
-    }
-  case bitc::PARAMATTR_BLOCK_ID:
-    switch (CodeID) {
-    default: return 0;
-    case bitc::PARAMATTR_CODE_ENTRY: return "ENTRY";
-    }
-  case bitc::TYPE_BLOCK_ID:
-    switch (CodeID) {
-    default: return 0;
-    case bitc::TYPE_CODE_NUMENTRY:  return "NUMENTRY";
-    case bitc::TYPE_CODE_VOID:      return "VOID";
-    case bitc::TYPE_CODE_FLOAT:     return "FLOAT";
-    case bitc::TYPE_CODE_DOUBLE:    return "DOUBLE";
-    case bitc::TYPE_CODE_LABEL:     return "LABEL";
-    case bitc::TYPE_CODE_OPAQUE:    return "OPAQUE";
-    case bitc::TYPE_CODE_INTEGER:   return "INTEGER";
-    case bitc::TYPE_CODE_POINTER:   return "POINTER";
-    case bitc::TYPE_CODE_FUNCTION:  return "FUNCTION";
-    case bitc::TYPE_CODE_STRUCT:    return "STRUCT";
-    case bitc::TYPE_CODE_ARRAY:     return "ARRAY";
-    case bitc::TYPE_CODE_VECTOR:    return "VECTOR";
-    case bitc::TYPE_CODE_X86_FP80:  return "X86_FP80";
-    case bitc::TYPE_CODE_FP128:     return "FP128";
-    case bitc::TYPE_CODE_PPC_FP128: return "PPC_FP128";
-    case bitc::TYPE_CODE_METADATA:  return "METADATA";
-    }
-    
-  case bitc::CONSTANTS_BLOCK_ID:
-    switch (CodeID) {
-    default: return 0;
-    case bitc::CST_CODE_SETTYPE:       return "SETTYPE";
-    case bitc::CST_CODE_NULL:          return "NULL";
-    case bitc::CST_CODE_UNDEF:         return "UNDEF";
-    case bitc::CST_CODE_INTEGER:       return "INTEGER";
-    case bitc::CST_CODE_WIDE_INTEGER:  return "WIDE_INTEGER";
-    case bitc::CST_CODE_FLOAT:         return "FLOAT";
-    case bitc::CST_CODE_AGGREGATE:     return "AGGREGATE";
-    case bitc::CST_CODE_STRING:        return "STRING";
-    case bitc::CST_CODE_CSTRING:       return "CSTRING";
-    case bitc::CST_CODE_CE_BINOP:      return "CE_BINOP";
-    case bitc::CST_CODE_CE_CAST:       return "CE_CAST";
-    case bitc::CST_CODE_CE_GEP:        return "CE_GEP";
-    case bitc::CST_CODE_CE_SELECT:     return "CE_SELECT";
-    case bitc::CST_CODE_CE_EXTRACTELT: return "CE_EXTRACTELT";
-    case bitc::CST_CODE_CE_INSERTELT:  return "CE_INSERTELT";
-    case bitc::CST_CODE_CE_SHUFFLEVEC: return "CE_SHUFFLEVEC";
-    case bitc::CST_CODE_CE_CMP:        return "CE_CMP";
-    case bitc::CST_CODE_INLINEASM:     return "INLINEASM";
-    case bitc::CST_CODE_CE_SHUFVEC_EX: return "CE_SHUFVEC_EX";
-    }        
-  case bitc::FUNCTION_BLOCK_ID:
-    switch (CodeID) {
-    default: return 0;
-    case bitc::FUNC_CODE_DECLAREBLOCKS: return "DECLAREBLOCKS";
-    
-    case bitc::FUNC_CODE_INST_BINOP:       return "INST_BINOP";
-    case bitc::FUNC_CODE_INST_CAST:        return "INST_CAST";
-    case bitc::FUNC_CODE_INST_GEP:         return "INST_GEP";
-    case bitc::FUNC_CODE_INST_SELECT:      return "INST_SELECT";
-    case bitc::FUNC_CODE_INST_EXTRACTELT:  return "INST_EXTRACTELT";
-    case bitc::FUNC_CODE_INST_INSERTELT:   return "INST_INSERTELT";
-    case bitc::FUNC_CODE_INST_SHUFFLEVEC:  return "INST_SHUFFLEVEC";
-    case bitc::FUNC_CODE_INST_CMP:         return "INST_CMP";
-    
-    case bitc::FUNC_CODE_INST_RET:         return "INST_RET";
-    case bitc::FUNC_CODE_INST_BR:          return "INST_BR";
-    case bitc::FUNC_CODE_INST_SWITCH:      return "INST_SWITCH";
-    case bitc::FUNC_CODE_INST_INVOKE:      return "INST_INVOKE";
-    case bitc::FUNC_CODE_INST_UNWIND:      return "INST_UNWIND";
-    case bitc::FUNC_CODE_INST_UNREACHABLE: return "INST_UNREACHABLE";
-    
-    case bitc::FUNC_CODE_INST_PHI:         return "INST_PHI";
-    case bitc::FUNC_CODE_INST_MALLOC:      return "INST_MALLOC";
-    case bitc::FUNC_CODE_INST_FREE:        return "INST_FREE";
-    case bitc::FUNC_CODE_INST_ALLOCA:      return "INST_ALLOCA";
-    case bitc::FUNC_CODE_INST_LOAD:        return "INST_LOAD";
-    case bitc::FUNC_CODE_INST_STORE:       return "INST_STORE";
-    case bitc::FUNC_CODE_INST_CALL:        return "INST_CALL";
-    case bitc::FUNC_CODE_INST_VAARG:       return "INST_VAARG";
-    case bitc::FUNC_CODE_INST_STORE2:      return "INST_STORE2";
-    case bitc::FUNC_CODE_INST_GETRESULT:   return "INST_GETRESULT";
-    case bitc::FUNC_CODE_INST_EXTRACTVAL:  return "INST_EXTRACTVAL";
-    case bitc::FUNC_CODE_INST_INSERTVAL:   return "INST_INSERTVAL";
-    case bitc::FUNC_CODE_INST_CMP2:        return "INST_CMP2";
-    case bitc::FUNC_CODE_INST_VSELECT:     return "INST_VSELECT";
-    }
-  case bitc::TYPE_SYMTAB_BLOCK_ID:
-    switch (CodeID) {
-    default: return 0;
-    case bitc::TST_CODE_ENTRY: return "ENTRY";
-    }
-  case bitc::VALUE_SYMTAB_BLOCK_ID:
-    switch (CodeID) {
-    default: return 0;
-    case bitc::VST_CODE_ENTRY: return "ENTRY";
-    case bitc::VST_CODE_BBENTRY: return "BBENTRY";
-    }
-  case bitc::METADATA_BLOCK_ID:
-    switch(CodeID) {
-    default:return 0;
-    case bitc::METADATA_STRING:      return "MDSTRING";
-    case bitc::METADATA_NODE:        return "MDNODE";
-    case bitc::METADATA_NAME:        return "METADATA_NAME";
-    case bitc::METADATA_NAMED_NODE:  return "NAMEDMDNODE";
-    }
-  }
-}
-
-struct PerRecordStats {
-  unsigned NumInstances;
-  unsigned NumAbbrev;
-  uint64_t TotalBits;
-  
-  PerRecordStats() : NumInstances(0), NumAbbrev(0), TotalBits(0) {}
-};
-
-struct PerBlockIDStats {
-  /// NumInstances - This the number of times this block ID has been seen.
-  unsigned NumInstances;
-  
-  /// NumBits - The total size in bits of all of these blocks.
-  uint64_t NumBits;
-  
-  /// NumSubBlocks - The total number of blocks these blocks contain.
-  unsigned NumSubBlocks;
-  
-  /// NumAbbrevs - The total number of abbreviations.
-  unsigned NumAbbrevs;
-  
-  /// NumRecords - The total number of records these blocks contain, and the 
-  /// number that are abbreviated.
-  unsigned NumRecords, NumAbbreviatedRecords;
-  
-  /// CodeFreq - Keep track of the number of times we see each code.
-  std::vector<PerRecordStats> CodeFreq;
-  
-  PerBlockIDStats()
-    : NumInstances(0), NumBits(0),
-      NumSubBlocks(0), NumAbbrevs(0), NumRecords(0), NumAbbreviatedRecords(0) {}
-};
-
-static std::map<unsigned, PerBlockIDStats> BlockIDStats;
-
-
-
-/// Error - All bitcode analysis errors go through this function, making this a
-/// good place to breakpoint if debugging.
-static bool Error(const std::string &Err) {
-  errs() << Err << "\n";
-  return true;
-}
-
-/// ParseBlock - Read a block, updating statistics, etc.
-static bool ParseBlock(BitstreamCursor &Stream, unsigned IndentLevel) {
-  std::string Indent(IndentLevel*2, ' ');
-  uint64_t BlockBitStart = Stream.GetCurrentBitNo();
-  unsigned BlockID = Stream.ReadSubBlockID();
-
-  // Get the statistics for this BlockID.
-  PerBlockIDStats &BlockStats = BlockIDStats[BlockID];
-  
-  BlockStats.NumInstances++;
-  
-  // BLOCKINFO is a special part of the stream.
-  if (BlockID == bitc::BLOCKINFO_BLOCK_ID) {
-    if (Dump) errs() << Indent << "<BLOCKINFO_BLOCK/>\n";
-    if (Stream.ReadBlockInfoBlock())
-      return Error("Malformed BlockInfoBlock");
-    uint64_t BlockBitEnd = Stream.GetCurrentBitNo();
-    BlockStats.NumBits += BlockBitEnd-BlockBitStart;
-    return false;
-  }
-  
-  unsigned NumWords = 0;
-  if (Stream.EnterSubBlock(BlockID, &NumWords))
-    return Error("Malformed block record");
-
-  const char *BlockName = 0;
-  if (Dump) {
-    errs() << Indent << "<";
-    if ((BlockName = GetBlockName(BlockID, *Stream.getBitStreamReader())))
-      errs() << BlockName;
-    else
-      errs() << "UnknownBlock" << BlockID;
-    
-    if (NonSymbolic && BlockName)
-      errs() << " BlockID=" << BlockID;
-    
-    errs() << " NumWords=" << NumWords
-           << " BlockCodeSize=" << Stream.GetAbbrevIDWidth() << ">\n";
-  }
-  
-  SmallVector<uint64_t, 64> Record;
-
-  // Read all the records for this block.
-  while (1) {
-    if (Stream.AtEndOfStream())
-      return Error("Premature end of bitstream");
-
-    uint64_t RecordStartBit = Stream.GetCurrentBitNo();
-    
-    // Read the code for this record.
-    unsigned AbbrevID = Stream.ReadCode();
-    switch (AbbrevID) {
-    case bitc::END_BLOCK: {
-      if (Stream.ReadBlockEnd())
-        return Error("Error at end of block");
-      uint64_t BlockBitEnd = Stream.GetCurrentBitNo();
-      BlockStats.NumBits += BlockBitEnd-BlockBitStart;
-      if (Dump) {
-        errs() << Indent << "</";
-        if (BlockName)
-          errs() << BlockName << ">\n";
-        else
-          errs() << "UnknownBlock" << BlockID << ">\n";
-      }
-      return false;
-    } 
-    case bitc::ENTER_SUBBLOCK: {
-      uint64_t SubBlockBitStart = Stream.GetCurrentBitNo();
-      if (ParseBlock(Stream, IndentLevel+1))
-        return true;
-      ++BlockStats.NumSubBlocks;
-      uint64_t SubBlockBitEnd = Stream.GetCurrentBitNo();
-      
-      // Don't include subblock sizes in the size of this block.
-      BlockBitStart += SubBlockBitEnd-SubBlockBitStart;
-      break;
-    }
-    case bitc::DEFINE_ABBREV:
-      Stream.ReadAbbrevRecord();
-      ++BlockStats.NumAbbrevs;
-      break;
-    default:
-      Record.clear();
-
-      ++BlockStats.NumRecords;
-      if (AbbrevID != bitc::UNABBREV_RECORD)
-        ++BlockStats.NumAbbreviatedRecords;
-        
-      const char *BlobStart = 0;
-      unsigned BlobLen = 0;
-      unsigned Code = Stream.ReadRecord(AbbrevID, Record, BlobStart, BlobLen);
-
-        
-        
-      // Increment the # occurrences of this code.
-      if (BlockStats.CodeFreq.size() <= Code)
-        BlockStats.CodeFreq.resize(Code+1);
-      BlockStats.CodeFreq[Code].NumInstances++;
-      BlockStats.CodeFreq[Code].TotalBits +=
-        Stream.GetCurrentBitNo()-RecordStartBit;
-      if (AbbrevID != bitc::UNABBREV_RECORD)
-        BlockStats.CodeFreq[Code].NumAbbrev++;
-        
-      if (Dump) {
-        errs() << Indent << "  <";
-        if (const char *CodeName =
-              GetCodeName(Code, BlockID, *Stream.getBitStreamReader()))
-          errs() << CodeName;
-        else
-          errs() << "UnknownCode" << Code;
-        if (NonSymbolic &&
-            GetCodeName(Code, BlockID, *Stream.getBitStreamReader()))
-          errs() << " codeid=" << Code;
-        if (AbbrevID != bitc::UNABBREV_RECORD)
-          errs() << " abbrevid=" << AbbrevID;
-
-        for (unsigned i = 0, e = Record.size(); i != e; ++i)
-          errs() << " op" << i << "=" << (int64_t)Record[i];
-        
-        errs() << "/>";
-        
-        if (BlobStart) {
-          errs() << " blob data = ";
-          bool BlobIsPrintable = true;
-          for (unsigned i = 0; i != BlobLen; ++i)
-            if (!isprint(BlobStart[i])) {
-              BlobIsPrintable = false;
-              break;
-            }
-          
-          if (BlobIsPrintable)
-            errs() << "'" << std::string(BlobStart, BlobStart+BlobLen) <<"'";
-          else
-            errs() << "unprintable, " << BlobLen << " bytes.";
-        }
-        
-        errs() << "\n";
-      }
-      
-      break;
-    }
-  }
-}
-
-static void PrintSize(double Bits) {
-  fprintf(stderr, "%.2f/%.2fB/%lluW", Bits, Bits/8,(unsigned long long)Bits/32);
-}
-static void PrintSize(uint64_t Bits) {
-  fprintf(stderr, "%llub/%.2fB/%lluW", (unsigned long long)Bits,
-          (double)Bits/8, (unsigned long long)Bits/32);
-}
-
-
-/// AnalyzeBitcode - Analyze the bitcode file specified by InputFilename.
-static int AnalyzeBitcode() {
-  // Read the input file.
-  MemoryBuffer *MemBuf = MemoryBuffer::getFileOrSTDIN(InputFilename.c_str());
-
-  if (MemBuf == 0)
-    return Error("Error reading '" + InputFilename + "'.");
-  
-  if (MemBuf->getBufferSize() & 3)
-    return Error("Bitcode stream should be a multiple of 4 bytes in length");
-  
-  unsigned char *BufPtr = (unsigned char *)MemBuf->getBufferStart();
-  unsigned char *EndBufPtr = BufPtr+MemBuf->getBufferSize();
-  
-  // If we have a wrapper header, parse it and ignore the non-bc file contents.
-  // The magic number is 0x0B17C0DE stored in little endian.
-  if (isBitcodeWrapper(BufPtr, EndBufPtr))
-    if (SkipBitcodeWrapperHeader(BufPtr, EndBufPtr))
-      return Error("Invalid bitcode wrapper header");
-  
-  BitstreamReader StreamFile(BufPtr, EndBufPtr);
-  BitstreamCursor Stream(StreamFile);
-  StreamFile.CollectBlockInfoNames();
-  
-  // Read the stream signature.
-  char Signature[6];
-  Signature[0] = Stream.Read(8);
-  Signature[1] = Stream.Read(8);
-  Signature[2] = Stream.Read(4);
-  Signature[3] = Stream.Read(4);
-  Signature[4] = Stream.Read(4);
-  Signature[5] = Stream.Read(4);
-  
-  // Autodetect the file contents, if it is one we know.
-  CurStreamType = UnknownBitstream;
-  if (Signature[0] == 'B' && Signature[1] == 'C' &&
-      Signature[2] == 0x0 && Signature[3] == 0xC &&
-      Signature[4] == 0xE && Signature[5] == 0xD)
-    CurStreamType = LLVMIRBitstream;
-
-  unsigned NumTopBlocks = 0;
-  
-  // Parse the top-level structure.  We only allow blocks at the top-level.
-  while (!Stream.AtEndOfStream()) {
-    unsigned Code = Stream.ReadCode();
-    if (Code != bitc::ENTER_SUBBLOCK)
-      return Error("Invalid record at top-level");
-    
-    if (ParseBlock(Stream, 0))
-      return true;
-    ++NumTopBlocks;
-  }
-  
-  if (Dump) errs() << "\n\n";
-  
-  uint64_t BufferSizeBits = (EndBufPtr-BufPtr)*CHAR_BIT;
-  // Print a summary of the read file.
-  errs() << "Summary of " << InputFilename << ":\n";
-  errs() << "         Total size: ";
-  PrintSize(BufferSizeBits);
-  errs() << "\n";
-  errs() << "        Stream type: ";
-  switch (CurStreamType) {
-  default: assert(0 && "Unknown bitstream type");
-  case UnknownBitstream: errs() << "unknown\n"; break;
-  case LLVMIRBitstream:  errs() << "LLVM IR\n"; break;
-  }
-  errs() << "  # Toplevel Blocks: " << NumTopBlocks << "\n";
-  errs() << "\n";
-
-  // Emit per-block stats.
-  errs() << "Per-block Summary:\n";
-  for (std::map<unsigned, PerBlockIDStats>::iterator I = BlockIDStats.begin(),
-       E = BlockIDStats.end(); I != E; ++I) {
-    errs() << "  Block ID #" << I->first;
-    if (const char *BlockName = GetBlockName(I->first, StreamFile))
-      errs() << " (" << BlockName << ")";
-    errs() << ":\n";
-    
-    const PerBlockIDStats &Stats = I->second;
-    errs() << "      Num Instances: " << Stats.NumInstances << "\n";
-    errs() << "         Total Size: ";
-    PrintSize(Stats.NumBits);
-    errs() << "\n";
-    errs() << "          % of file: "
-           << Stats.NumBits/(double)BufferSizeBits*100 << "\n";
-    if (Stats.NumInstances > 1) {
-      errs() << "       Average Size: ";
-      PrintSize(Stats.NumBits/(double)Stats.NumInstances);
-      errs() << "\n";
-      errs() << "  Tot/Avg SubBlocks: " << Stats.NumSubBlocks << "/"
-             << Stats.NumSubBlocks/(double)Stats.NumInstances << "\n";
-      errs() << "    Tot/Avg Abbrevs: " << Stats.NumAbbrevs << "/"
-             << Stats.NumAbbrevs/(double)Stats.NumInstances << "\n";
-      errs() << "    Tot/Avg Records: " << Stats.NumRecords << "/"
-             << Stats.NumRecords/(double)Stats.NumInstances << "\n";
-    } else {
-      errs() << "      Num SubBlocks: " << Stats.NumSubBlocks << "\n";
-      errs() << "        Num Abbrevs: " << Stats.NumAbbrevs << "\n";
-      errs() << "        Num Records: " << Stats.NumRecords << "\n";
-    }
-    if (Stats.NumRecords)
-      errs() << "      % Abbrev Recs: " << (Stats.NumAbbreviatedRecords/
-                (double)Stats.NumRecords)*100 << "\n";
-    errs() << "\n";
-    
-    // Print a histogram of the codes we see.
-    if (!NoHistogram && !Stats.CodeFreq.empty()) {
-      std::vector<std::pair<unsigned, unsigned> > FreqPairs;  // <freq,code>
-      for (unsigned i = 0, e = Stats.CodeFreq.size(); i != e; ++i)
-        if (unsigned Freq = Stats.CodeFreq[i].NumInstances)
-          FreqPairs.push_back(std::make_pair(Freq, i));
-      std::stable_sort(FreqPairs.begin(), FreqPairs.end());
-      std::reverse(FreqPairs.begin(), FreqPairs.end());
-      
-      errs() << "\tRecord Histogram:\n";
-      fprintf(stderr, "\t\t  Count    # Bits   %% Abv  Record Kind\n");
-      for (unsigned i = 0, e = FreqPairs.size(); i != e; ++i) {
-        const PerRecordStats &RecStats = Stats.CodeFreq[FreqPairs[i].second];
-        
-        fprintf(stderr, "\t\t%7d %9llu ", RecStats.NumInstances,
-                (unsigned long long)RecStats.TotalBits);
-        
-        if (RecStats.NumAbbrev)
-          fprintf(stderr, "%7.2f  ",
-                  (double)RecStats.NumAbbrev/RecStats.NumInstances*100);
-        else
-          fprintf(stderr, "         ");
-        
-        if (const char *CodeName = 
-              GetCodeName(FreqPairs[i].second, I->first, StreamFile))
-          fprintf(stderr, "%s\n", CodeName);
-        else
-          fprintf(stderr, "UnknownCode%d\n", FreqPairs[i].second);
-      }
-      errs() << "\n";
-      
-    }
-  }
-  return 0;
-}
-
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, "llvm-bcanalyzer file analyzer\n");
-  
-  return AnalyzeBitcode();
-}
diff --git a/libclamav/c++/llvm/tools/llvm-db/CLICommand.h b/libclamav/c++/llvm/tools/llvm-db/CLICommand.h
deleted file mode 100644
index 0beec91..0000000
--- a/libclamav/c++/llvm/tools/llvm-db/CLICommand.h
+++ /dev/null
@@ -1,111 +0,0 @@
-//===- CLICommand.h - Classes used to represent commands --------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines a small class hierarchy used to represent the various types
-// of commands in the CLI debugger front-end.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CLICOMMAND_H
-#define CLICOMMAND_H
-
-#include <string>
-#include <vector>
-#include <cassert>
-
-namespace llvm {
-  class CLIDebugger;
-
-  /// CLICommand - Base class of the hierarchy, used to provide the abstract
-  /// interface common to all commands.
-  ///
-  class CLICommand {
-    /// ShortHelp, LongHelp - The short and long helps strings printed for the
-    /// command.  The ShortHelp string should be a single line of text without a
-    /// newline.  The LongHelp string should be a full description with
-    /// terminating newline.
-    std::string ShortHelp, LongHelp;
-
-    /// RefCount - This contains the number of entries in the CLIDebugger
-    /// CommandTable that points to this command.
-    unsigned RefCount;
-
-    /// OptionNames - This contains a list of names for the option.  Keeping
-    /// track of this is done just to make the help output more helpful.
-    ///
-    std::vector<std::string> OptionNames;
-  public:
-    CLICommand(const std::string &SH, const std::string &LH)
-      : ShortHelp(SH), LongHelp(LH), RefCount(0) {}
-
-    virtual ~CLICommand() {}
-
-    /// addRef/dropRef - Implement a simple reference counting scheme to make
-    /// sure we delete commands that are no longer used.
-    void addRef() { ++RefCount; }
-    void dropRef() {
-      if (--RefCount == 0) delete this;
-    }
-
-    /// getPrimaryOptionName - Return the first name the option was added under.
-    /// This is the name we report for the option in the help output.
-    std::string getPrimaryOptionName() const {
-      return OptionNames.empty() ? "" : OptionNames[0];
-    }
-
-    /// getOptionName - Return all of the names the option is registered as.
-    ///
-    const std::vector<std::string> &getOptionNames() const {
-      return OptionNames;
-    }
-
-    /// addOptionName - Add a name that this option is known as.
-    ///
-    void addOptionName(const std::string &Name) {
-      OptionNames.push_back(Name);
-    }
-
-    /// removeOptionName - Eliminate one of the names for this option.
-    ///
-    void removeOptionName(const std::string &Name) {
-      unsigned i = 0;
-      for (; OptionNames[i] != Name; ++i)
-        assert(i+1 < OptionNames.size() && "Didn't find option name!");
-      OptionNames.erase(OptionNames.begin()+i);
-    }
-
-
-    /// getShortHelp - Return the short help string for this command.
-    ///
-    const std::string &getShortHelp() { return ShortHelp; }
-
-    /// getLongHelp - Return the long help string for this command, if it
-    /// exists.
-    const std::string &getLongHelp() { return LongHelp; }
-
-    virtual void runCommand(CLIDebugger &D, std::string &Arguments) = 0;
-  };
-
-  /// BuiltinCLICommand - This class represents commands that are built directly
-  /// into the debugger.
-  class BuiltinCLICommand : public CLICommand {
-    // Impl - Pointer to the method that implements the command
-    void (CLIDebugger::*Impl)(std::string&);
-  public:
-    BuiltinCLICommand(const std::string &ShortHelp, const std::string &LongHelp,
-                      void (CLIDebugger::*impl)(std::string&))
-      : CLICommand(ShortHelp, LongHelp), Impl(impl) {}
-
-    void runCommand(CLIDebugger &D, std::string &Arguments) {
-      (D.*Impl)(Arguments);
-    }
-  };
-}
-
-#endif
diff --git a/libclamav/c++/llvm/tools/llvm-db/CLIDebugger.cpp b/libclamav/c++/llvm/tools/llvm-db/CLIDebugger.cpp
deleted file mode 100644
index 31476f7..0000000
--- a/libclamav/c++/llvm/tools/llvm-db/CLIDebugger.cpp
+++ /dev/null
@@ -1,309 +0,0 @@
-//===-- CLIDebugger.cpp - Command Line Interface to the Debugger ----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the main implementation of the Command Line Interface to
-// the debugger.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CLIDebugger.h"
-#include "CLICommand.h"
-#include "llvm/Debugger/SourceFile.h"
-#include "llvm/ADT/StringExtras.h"
-#include <iostream>
-using namespace llvm;
-
-/// CLIDebugger constructor - This initializes the debugger to its default
-/// state, and initializes the command table.
-///
-CLIDebugger::CLIDebugger(LLVMContext& ctxt)
-  : Context(ctxt), TheProgramInfo(0), TheRuntimeInfo(0),
-    Prompt("(llvm-db) "), ListSize(10) {
-  // Initialize instance variables
-  CurrentFile = 0;
-  LineListedStart = 1;
-  LineListedEnd = 1;
-  LastCurrentFrame = 0;
-  CurrentLanguage = 0;
-
-  CLICommand *C;
-  //===--------------------------------------------------------------------===//
-  // Program startup and shutdown options
-  //
-  addCommand("file", new BuiltinCLICommand(
-    "Use specified file as the program to be debugged",
-    "The debugger looks in the current directory and the program $PATH for the"
-    " specified LLVM program.  It then unloads the currently loaded program and"
-    " loads the specified program.\n",
-    &CLIDebugger::fileCommand));
-
-  addCommand("create", new BuiltinCLICommand(
-    "Start the program, halting its execution in main",
-    "This command creates an instance of the current program, but stops"
-    "\nexecution immediately.\n",
-    &CLIDebugger::createCommand));
-
-  addCommand("kill", new BuiltinCLICommand(
-    "Kills the execution of the current program being debugged", "",
-    &CLIDebugger::killCommand));
-
-  addCommand("quit", new BuiltinCLICommand(
-    "Exit the debugger", "",
-    &CLIDebugger::quitCommand));
-
-  //===--------------------------------------------------------------------===//
-  // Program execution commands
-  //
-  addCommand("run", C = new BuiltinCLICommand(
-    "Start the program running from the beginning", "",
-    &CLIDebugger::runCommand));
-  addCommand("r", C);
-
-  addCommand("cont", C = new BuiltinCLICommand(
-    "Continue program being debugged until the next stop point", "",
-    &CLIDebugger::contCommand));
-  addCommand("c", C); addCommand("fg", C);
-
-  addCommand("step", C = new BuiltinCLICommand(
-    "Step program until it reaches a new source line", "",
-    &CLIDebugger::stepCommand));
-  addCommand("s", C);
-
-  addCommand("next", C = new BuiltinCLICommand(
-    "Step program until it reaches a new source line, stepping over calls", "",
-    &CLIDebugger::nextCommand));
-  addCommand("n", C);
-
-  addCommand("finish", new BuiltinCLICommand(
-    "Execute until the selected stack frame returns",
-   "Upon return, the value returned is printed and put in the value history.\n",
-    &CLIDebugger::finishCommand));
-
-  //===--------------------------------------------------------------------===//
-  // Stack frame commands
-  //
-  addCommand("backtrace", C = new BuiltinCLICommand(
-   "Print backtrace of all stack frames, or innermost COUNT frames",
-   "FIXME: describe.  Takes 'n', '-n' or 'full'\n",
-    &CLIDebugger::backtraceCommand));
-  addCommand("bt", C);
-
-  addCommand("up", new BuiltinCLICommand(
-    "Select and print stack frame that called this one",
-    "An argument says how many frames up to go.\n",
-    &CLIDebugger::upCommand));
-
-  addCommand("down", new BuiltinCLICommand(
-    "Select and print stack frame called by this one",
-    "An argument says how many frames down go.\n",
-    &CLIDebugger::downCommand));
-
-  addCommand("frame", C = new BuiltinCLICommand(
-    "Select and print a stack frame",
- "With no argument, print the selected stack frame.  (See also 'info frame').\n"
- "An argument specifies the frame to select.\n",
-    &CLIDebugger::frameCommand));
-  addCommand("f", C);
-
-  //===--------------------------------------------------------------------===//
-  // Breakpoint related commands
-  //
-  addCommand("break", C = new BuiltinCLICommand(
-   "Set breakpoint at specified line or function",
-   "FIXME: describe.\n",
-    &CLIDebugger::breakCommand));
-  addCommand("b", C);
-
-
-  //===--------------------------------------------------------------------===//
-  // Miscellaneous commands
-  //
-  addCommand("info", new BuiltinCLICommand(
-    "Generic command for showing things about the program being debugged",
-    "info functions: display information about functions in the program.\ninfo"
-    " source : display information about the current source file.\ninfo source"
-    "s : Display source file names for the program\ninfo target : print status"
-    " of inferior process\n",
-    &CLIDebugger::infoCommand));
-
-  addCommand("list", C = new BuiltinCLICommand(
-    "List specified function or line",
-    "FIXME: document\n",
-    &CLIDebugger::listCommand));
-  addCommand("l", C);
-
-  addCommand("set", new BuiltinCLICommand(
-    "Change program or debugger variable",
-    "FIXME: document\n",
-    &CLIDebugger::setCommand));
-
-  addCommand("show", new BuiltinCLICommand(
-    "Generic command for showing things about the debugger",
-    "FIXME: document\n",
-    &CLIDebugger::showCommand));
-
-  addCommand("help", C = new BuiltinCLICommand(
-    "Prints information about available commands", "",
-    &CLIDebugger::helpCommand));
-  addCommand("h", C);
-}
-
-
-/// addCommand - Add a command to the CommandTable, potentially displacing a
-/// preexisting command.
-void CLIDebugger::addCommand(const std::string &Option, CLICommand *Cmd) {
-  assert(Cmd && "Cannot set a null command!");
-  CLICommand *&CS = CommandTable[Option];
-  if (CS == Cmd) return; // noop
-
-  // If we already have a command, decrement the command's reference count.
-  if (CS) {
-    CS->removeOptionName(Option);
-    CS->dropRef();
-  }
-  CS = Cmd;
-
-  // Remember that we are using this command.
-  Cmd->addRef();
-  Cmd->addOptionName(Option);
-}
-
-static bool isValidPrefix(const std::string &Prefix, const std::string &Option){
-  return Prefix.size() <= Option.size() &&
-         Prefix == std::string(Option.begin(), Option.begin()+Prefix.size());
-}
-
-/// getCommand - This looks up the specified command using a fuzzy match.
-/// If the string exactly matches a command or is an unambiguous prefix of a
-/// command, it returns the command.  Otherwise it throws an exception
-/// indicating the possible ambiguous choices.
-CLICommand *CLIDebugger::getCommand(const std::string &Command) {
-
-  // Look up the command in the table.
-  std::map<std::string, CLICommand*>::iterator CI =
-    CommandTable.lower_bound(Command);
-
-  if (Command == "") {
-    throw "Null command should not get here!";
-  } else if (CI == CommandTable.end() ||
-             !isValidPrefix(Command, CI->first)) {
-    // If this command has no relation to anything in the command table,
-    // print the error message.
-    throw "Unknown command: '" + Command +
-          "'.  Use 'help' for list of commands.";
-  } else if (CI->first == Command) {
-    // We have an exact match on the command
-    return CI->second;
-  } else {
-    // Otherwise, we have a prefix match.  Check to see if this is
-    // unambiguous, and if so, run it.
-    std::map<std::string, CLICommand*>::iterator CI2 = CI;
-
-    // If the next command is a valid completion of this one, we are
-    // ambiguous.
-    if (++CI2 != CommandTable.end() && isValidPrefix(Command, CI2->first)) {
-      std::string ErrorMsg =
-        "Ambiguous command '" + Command + "'.  Options: " + CI->first;
-      for (++CI; CI != CommandTable.end() &&
-             isValidPrefix(Command, CI->first); ++CI)
-        ErrorMsg += ", " + CI->first;
-      throw ErrorMsg;
-    } else {
-      // It's an unambiguous prefix of a command, use it.
-      return CI->second;
-    }
-  }
-}
-
-
-/// run - Start the debugger, returning when the user exits the debugger.  This
-/// starts the main event loop of the CLI debugger.
-///
-int CLIDebugger::run() {
-  std::string Command;
-  std::cout << Prompt;
-
-  // Keep track of the last command issued, so that we can reissue it if the
-  // user hits enter as the command.
-  CLICommand *LastCommand = 0;
-  std::string LastArgs;
-
-  // Continue reading commands until the end of file.
-  while (getline(std::cin, Command)) {
-    std::string Arguments = Command;
-
-    // Split off the command from the arguments to the command.
-    Command = getToken(Arguments, " \t\n\v\f\r\\/;.*&");
-
-    try {
-      CLICommand *CurCommand;
-
-      if (Command == "") {
-        CurCommand = LastCommand;
-        Arguments = LastArgs;
-      } else {
-        CurCommand = getCommand(Command);
-      }
-
-      // Save the command we are running in case the user wants us to repeat it
-      // next time.
-      LastCommand = CurCommand;
-      LastArgs = Arguments;
-
-      // Finally, execute the command.
-      if (CurCommand)
-        CurCommand->runCommand(*this, Arguments);
-
-    } catch (int RetVal) {
-      // The quit command exits the command loop by throwing an integer return
-      // code.
-      return RetVal;
-    } catch (const std::string &Error) {
-      std::cout << "Error: " << Error << "\n";
-    } catch (const char *Error) {
-      std::cout << "Error: " << Error << "\n";
-    } catch (const NonErrorException &E) {
-      std::cout << E.getMessage() << "\n";
-    } catch (...) {
-      std::cout << "ERROR: Debugger caught unexpected exception!\n";
-      // Attempt to continue.
-    }
-
-    // Write the prompt to get the next bit of user input
-    std::cout << Prompt;
-  }
-
-  return 0;
-}
-
-
-/// askYesNo - Ask the user a question, and demand a yes/no response.  If
-/// the user says yes, return true.
-///
-bool CLIDebugger::askYesNo(const std::string &Message) const {
-  std::string Answer;
-  std::cout << Message << " (y or n) " << std::flush;
-  while (getline(std::cin, Answer)) {
-    std::string Val = getToken(Answer);
-    if (getToken(Answer).empty()) {
-      if (Val == "yes" || Val == "y" || Val == "YES" || Val == "Y" ||
-          Val == "Yes")
-        return true;
-      if (Val == "no" || Val == "n" || Val == "NO" || Val == "N" ||
-          Val == "No")
-        return false;
-    }
-
-    std::cout << "Please answer y or n.\n" << Message << " (y or n) "
-              << std::flush;
-  }
-
-  // Ran out of input?
-  return false;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-db/CLIDebugger.h b/libclamav/c++/llvm/tools/llvm-db/CLIDebugger.h
deleted file mode 100644
index 0595b3d..0000000
--- a/libclamav/c++/llvm/tools/llvm-db/CLIDebugger.h
+++ /dev/null
@@ -1,208 +0,0 @@
-//===- CLIDebugger.h - LLVM Command Line Interface Debugger -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the CLIDebugger class, which implements a command line
-// interface to the LLVM Debugger library.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CLIDEBUGGER_H
-#define CLIDEBUGGER_H
-
-#include "llvm/Debugger/Debugger.h"
-#include <map>
-
-namespace llvm {
-  class CLICommand;
-  class SourceFile;
-  struct SourceLanguage;
-  class ProgramInfo;
-  class RuntimeInfo;
-  class LLVMContext;
-
-  /// CLIDebugger - This class implements the command line interface for the
-  /// LLVM debugger.
-  class CLIDebugger {
-    LLVMContext& Context;
-    
-    /// Dbg - The low-level LLVM debugger object that we use to do our dirty
-    /// work.
-    Debugger Dbg;
-
-    /// CommandTable - This table contains a mapping from command names to the
-    /// CLICommand object that implements the command.
-    std::map<std::string, CLICommand*> CommandTable;
-
-    //===------------------------------------------------------------------===//
-    // Data related to the program that is currently loaded.  Note that the Dbg
-    // variable also captures some information about the loaded program.  This
-    // pointer is non-null iff Dbg.isProgramLoaded() is true.
-    //
-    ProgramInfo *TheProgramInfo;
-
-    //===------------------------------------------------------------------===//
-    // Data related to the program that is currently executing, but has stopped.
-    // Note that the Dbg variable also captures some information about the
-    // loaded program.  This pointer is non-null iff Dbg.isProgramRunning() is
-    // true.
-    //
-    RuntimeInfo *TheRuntimeInfo;
-
-    /// LastCurrentFrame - This variable holds the Frame ID of the top-level
-    /// stack frame from the last time that the program was executed.  We keep
-    /// this because we only want to print the source location when the current
-    /// function changes.
-    void *LastCurrentFrame;
-
-    //===------------------------------------------------------------------===//
-    // Data directly exposed through the debugger prompt
-    //
-    std::string Prompt;   // set prompt, show prompt
-    unsigned ListSize;    // set listsize, show listsize
-
-    //===------------------------------------------------------------------===//
-    // Data to support user interaction
-    //
-
-    /// CurrentFile - The current source file we are inspecting, or null if
-    /// none.
-    const SourceFile *CurrentFile;
-    unsigned LineListedStart, LineListedEnd;
-
-    /// CurrentLanguage - This contains the source language in use, if one is
-    /// explicitly set by the user.  If this is null (the default), the language
-    /// is automatically determined from the current stack frame.
-    ///
-    const SourceLanguage *CurrentLanguage;
-
-  public:
-    CLIDebugger(LLVMContext& ctxt);
-
-    /// getDebugger - Return the current LLVM debugger implementation being
-    /// used.
-    Debugger &getDebugger() { return Dbg; }
-
-    /// run - Start the debugger, returning when the user exits the debugger.
-    /// This starts the main event loop of the CLI debugger.
-    ///
-    int run();
-
-    /// addCommand - Add a command to the CommandTable, potentially displacing a
-    /// preexisting command.
-    void addCommand(const std::string &Option, CLICommand *Cmd);
-
-    /// addSourceDirectory - Add a directory to search when looking for the
-    /// source code of the program.
-    void addSourceDirectory(const std::string &Dir) {
-      // FIXME: implement
-    }
-
-    /// getCurrentLanguage - Return the current source language that the user is
-    /// playing around with.  This is aquired from the current stack frame of a
-    /// running program if one exists, but this value can be explicitly set by
-    /// the user as well.
-    const SourceLanguage &getCurrentLanguage() const;
-
-    /// getProgramInfo - Return a reference to the ProgramInfo object for the
-    /// currently loaded program.  If there is no program loaded, throw an
-    /// exception.
-    ProgramInfo &getProgramInfo() const {
-      if (TheProgramInfo == 0)
-        throw "No program is loaded.";
-      return *TheProgramInfo;
-    }
-
-    /// getRuntimeInfo - Return a reference to the current RuntimeInfo object.
-    /// If there is no program running, throw an exception.
-    RuntimeInfo &getRuntimeInfo() const {
-      if (TheRuntimeInfo == 0)
-        throw "No program is running.";
-      return *TheRuntimeInfo;
-    }
-
-  private:   // Internal implementation methods
-
-    /// getCommand - This looks up the specified command using a fuzzy match.
-    /// If the string exactly matches a command or is an unambiguous prefix of a
-    /// command, it returns the command.  Otherwise it throws an exception
-    /// indicating the possible ambiguous choices.
-    CLICommand *getCommand(const std::string &Command);
-
-    /// askYesNo - Ask the user a question, and demand a yes/no response.  If
-    /// the user says yes, return true.
-    bool askYesNo(const std::string &Message) const;
-
-    /// printProgramLocation - Given a loaded and created child process that has
-    /// stopped, print its current source location.
-    void printProgramLocation(bool PrintLocation = true);
-
-    /// eliminateRunInfo - We are about to run the program.  Forget any state
-    /// about how the program used to be stopped.
-    void eliminateRunInfo();
-
-    /// programStoppedSuccessfully - This method updates internal data
-    /// structures to reflect the fact that the program just executed a while,
-    /// and has successfully stopped.
-    void programStoppedSuccessfully();
-
-  public:   /// Builtin debugger commands, invokable by the user
-    // Program startup and shutdown options
-    void fileCommand(std::string &Options);   // file
-    void createCommand(std::string &Options); // create
-    void killCommand(std::string &Options);   // kill
-    void quitCommand(std::string &Options);   // quit
-
-    // Program execution commands
-    void runCommand(std::string &Options);    // run|r
-    void contCommand(std::string &Options);   // cont|c|fg
-    void stepCommand(std::string &Options);   // step|s [count]
-    void nextCommand(std::string &Options);   // next|n [count]
-    void finishCommand(std::string &Options); // finish
-
-    // Stack frame commands
-    void backtraceCommand(std::string &Options); // backtrace|bt [count]
-    void upCommand(std::string &Options);        // up
-    void downCommand(std::string &Options);      // down
-    void frameCommand(std::string &Options);     // frame
-
-
-    // Breakpoint related commands
-    void breakCommand(std::string &Options);  // break|b <id>
-
-    // Miscellaneous commands
-    void infoCommand(std::string &Options);   // info
-    void listCommand(std::string &Options);   // list
-    void setCommand(std::string &Options);    // set
-    void showCommand(std::string &Options);   // show
-    void helpCommand(std::string &Options);   // help
-
-  private:
-    /// startProgramRunning - If the program has been updated, reload it, then
-    /// start executing the program.
-    void startProgramRunning();
-
-    /// printSourceLine - Print the specified line of the current source file.
-    /// If the specified line is invalid (the source file could not be loaded or
-    /// the line number is out of range), don't print anything, but return true.
-    bool printSourceLine(unsigned LineNo);
-
-    /// parseLineSpec - Parses a line specifier, for use by the 'list' command.
-    /// If SourceFile is returned as a void pointer, then it was not specified.
-    /// If the line specifier is invalid, an exception is thrown.
-    void parseLineSpec(std::string &LineSpec, const SourceFile *&SourceFile,
-                       unsigned &LineNo);
-
-    /// parseProgramOptions - This method parses the Options string and loads it
-    /// as options to be passed to the program.  This is used by the run command
-    /// and by 'set args'.
-    void parseProgramOptions(std::string &Options);
-  };
-}
-
-#endif
diff --git a/libclamav/c++/llvm/tools/llvm-db/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-db/CMakeLists.txt
deleted file mode 100644
index af64908..0000000
--- a/libclamav/c++/llvm/tools/llvm-db/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-set(LLVM_LINK_COMPONENTS debugger)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvm-db
-  CLIDebugger.cpp
-  Commands.cpp
-  llvm-db.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-db/Commands.cpp b/libclamav/c++/llvm/tools/llvm-db/Commands.cpp
deleted file mode 100644
index d759ddd..0000000
--- a/libclamav/c++/llvm/tools/llvm-db/Commands.cpp
+++ /dev/null
@@ -1,866 +0,0 @@
-//===-- Commands.cpp - Implement various commands for the CLI -------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements many builtin user commands.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CLIDebugger.h"
-#include "CLICommand.h"
-#include "llvm/Debugger/ProgramInfo.h"
-#include "llvm/Debugger/RuntimeInfo.h"
-#include "llvm/Debugger/SourceLanguage.h"
-#include "llvm/Debugger/SourceFile.h"
-#include "llvm/Debugger/InferiorProcess.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/StringExtras.h"
-#include <cstdlib>
-using namespace llvm;
-
-/// getCurrentLanguage - Return the current source language that the user is
-/// playing around with.  This is aquired from the current stack frame of a
-/// running program if one exists, but this value can be explicitly set by the
-/// user as well.
-const SourceLanguage &CLIDebugger::getCurrentLanguage() const {
-  // If the user explicitly switched languages with 'set language', use what
-  // they asked for.
-  if (CurrentLanguage) {
-    return *CurrentLanguage;
-  } else if (Dbg.isProgramRunning()) {
-    // Otherwise, if the program is running, infer the current language from it.
-    const GlobalVariable *FuncDesc =
-      getRuntimeInfo().getCurrentFrame().getFunctionDesc();
-    return getProgramInfo().getFunction(FuncDesc).getSourceFile().getLanguage();
-  } else {
-    // Otherwise, default to C like GDB apparently does.
-    return SourceLanguage::getCFamilyInstance();
-  }
-}
-
-/// startProgramRunning - If the program has been updated, reload it, then
-/// start executing the program.
-void CLIDebugger::startProgramRunning() {
-  eliminateRunInfo();
-
-  // If the program has been modified, reload it!
-  sys::PathWithStatus Program(Dbg.getProgramPath());
-  std::string Err;
-  const sys::FileStatus *Status = Program.getFileStatus(false, &Err);
-  if (!Status)
-    throw Err;
-  if (TheProgramInfo->getProgramTimeStamp() != Status->getTimestamp()) {
-    outs() << "'" << Program.str() << "' has changed; re-reading program.\n";
-
-    // Unload an existing program.  This kills the program if necessary.
-    Dbg.unloadProgram();
-    delete TheProgramInfo;
-    TheProgramInfo = 0;
-    CurrentFile = 0;
-
-    Dbg.loadProgram(Program.str(), Context);
-    TheProgramInfo = new ProgramInfo(Dbg.getProgram());
-  }
-
-  outs() << "Starting program: " << Dbg.getProgramPath() << "\n";
-  Dbg.createProgram();
-
-  // There was no current frame.
-  LastCurrentFrame = 0;
-}
-
-/// printSourceLine - Print the specified line of the current source file.
-/// If the specified line is invalid (the source file could not be loaded or
-/// the line number is out of range), don't print anything, but return true.
-bool CLIDebugger::printSourceLine(unsigned LineNo) {
-  assert(CurrentFile && "There is no current source file to print!");
-  const char *LineStart, *LineEnd;
-  CurrentFile->getSourceLine(LineNo-1, LineStart, LineEnd);
-  if (LineStart == 0) return true;
-  outs() << LineNo;
-
-  // If this is the line the program is currently stopped at, print a marker.
-  if (Dbg.isProgramRunning()) {
-    unsigned CurLineNo, CurColNo;
-    const SourceFileInfo *CurSFI;
-    getRuntimeInfo().getCurrentFrame().getSourceLocation(CurLineNo, CurColNo,
-                                                         CurSFI);
-
-    if (CurLineNo == LineNo && CurrentFile == &CurSFI->getSourceText())
-      outs() << " ->";
-  }
-
-  outs() << "\t" << std::string(LineStart, LineEnd) << "\n";
-  return false;
-}
-
-/// printProgramLocation - Print a line of the place where the current stack
-/// frame has stopped and the source line it is on.
-///
-void CLIDebugger::printProgramLocation(bool PrintLocation) {
-  assert(Dbg.isProgramLoaded() && Dbg.isProgramRunning() &&
-         "Error program is not loaded and running!");
-
-  // Figure out where the program stopped...
-  StackFrame &SF = getRuntimeInfo().getCurrentFrame();
-  unsigned LineNo, ColNo;
-  const SourceFileInfo *FileDesc;
-  SF.getSourceLocation(LineNo, ColNo, FileDesc);
-
-  // If requested, print out some program information about WHERE we are.
-  if (PrintLocation) {
-    // FIXME: print the current function arguments
-    if (const GlobalVariable *FuncDesc = SF.getFunctionDesc())
-      outs() << getProgramInfo().getFunction(FuncDesc).getSymbolicName();
-    else
-      outs() << "<unknown function>";
-
-    CurrentFile = &FileDesc->getSourceText();
-
-    outs() << " at " << CurrentFile->getFilename() << ":" << LineNo;
-    if (ColNo) outs() << ":" << ColNo;
-    outs() << "\n";
-  }
-
-  if (printSourceLine(LineNo))
-    outs() << "<could not load source file>\n";
-  else {
-    LineListedStart = LineNo-ListSize/2+1;
-    if ((int)LineListedStart < 1) LineListedStart = 1;
-    LineListedEnd = LineListedStart+1;
-  }
-}
-
-/// eliminateRunInfo - We are about to run the program.  Forget any state
-/// about how the program used to be stopped.
-void CLIDebugger::eliminateRunInfo() {
-  delete TheRuntimeInfo;
-  TheRuntimeInfo = 0;
-}
-
-/// programStoppedSuccessfully - This method updates internal data
-/// structures to reflect the fact that the program just executed a while,
-/// and has successfully stopped.
-void CLIDebugger::programStoppedSuccessfully() {
-  assert(TheRuntimeInfo==0 && "Someone forgot to release the old RuntimeInfo!");
-
-  TheRuntimeInfo = new RuntimeInfo(TheProgramInfo, Dbg.getRunningProcess());
-
-  // FIXME: if there are any breakpoints at the current location, print them as
-  // well.
-
-  // Since the program as successfully stopped, print its location.
-  void *CurrentFrame = getRuntimeInfo().getCurrentFrame().getFrameID();
-  printProgramLocation(CurrentFrame != LastCurrentFrame);
-  LastCurrentFrame = CurrentFrame;
-}
-
-
-
-/// getUnsignedIntegerOption - Get an unsigned integer number from the Val
-/// string.  Check to make sure that the string contains an unsigned integer
-/// token, and if not, throw an exception.  If isOnlyOption is set, also throw
-/// an exception if there is extra junk at the end of the string.
-static unsigned getUnsignedIntegerOption(const char *Msg, std::string &Val,
-                                         bool isOnlyOption = true) {
-  std::string Tok = getToken(Val);
-  if (Tok.empty() || (isOnlyOption && !getToken(Val).empty()))
-    throw std::string(Msg) + " expects an unsigned integer argument.";
-
-  char *EndPtr;
-  unsigned Result = strtoul(Tok.c_str(), &EndPtr, 0);
-  if (EndPtr != Tok.c_str()+Tok.size())
-    throw std::string(Msg) + " expects an unsigned integer argument.";
-
-  return Result;
-}
-
-/// getOptionalUnsignedIntegerOption - This method is just like
-/// getUnsignedIntegerOption, but if the argument value is not specified, a
-/// default is returned instead of causing an error.
-static unsigned
-getOptionalUnsignedIntegerOption(const char *Msg, unsigned Default,
-                                 std::string &Val, bool isOnlyOption = true) {
-  // Check to see if the value was specified...
-  std::string TokVal = getToken(Val);
-  if (TokVal.empty()) return Default;
-
-  // If it was specified, add it back to the value we are parsing...
-  Val = TokVal+Val;
-
-  // And parse normally.
-  return getUnsignedIntegerOption(Msg, Val, isOnlyOption);
-}
-
-
-/// parseProgramOptions - This method parses the Options string and loads it
-/// as options to be passed to the program.  This is used by the run command
-/// and by 'set args'.
-void CLIDebugger::parseProgramOptions(std::string &Options) {
-  // FIXME: tokenizing by whitespace is clearly incorrect.  Instead we should
-  // honor quotes and other things that a shell would.  Also in the future we
-  // should support redirection of standard IO.
-
-  std::vector<std::string> Arguments;
-  for (std::string A = getToken(Options); !A.empty(); A = getToken(Options))
-    Arguments.push_back(A);
-  Dbg.setProgramArguments(Arguments.begin(), Arguments.end());
-}
-
-
-//===----------------------------------------------------------------------===//
-//                   Program startup and shutdown options
-//===----------------------------------------------------------------------===//
-
-
-/// file command - If the user specifies an option, search the PATH for the
-/// specified program/bitcode file and load it.  If the user does not specify
-/// an option, unload the current program.
-void CLIDebugger::fileCommand(std::string &Options) {
-  std::string Prog = getToken(Options);
-  if (!getToken(Options).empty())
-    throw "file command takes at most one argument.";
-
-  // Check to make sure the user knows what they are doing
-  if (Dbg.isProgramRunning() &&
-      !askYesNo("A program is already loaded.  Kill it?"))
-    return;
-
-  // Unload an existing program.  This kills the program if necessary.
-  eliminateRunInfo();
-  delete TheProgramInfo;
-  TheProgramInfo = 0;
-  Dbg.unloadProgram();
-  CurrentFile = 0;
-
-  // If requested, start the new program.
-  if (Prog.empty()) {
-    outs() << "Unloaded program.\n";
-  } else {
-    outs() << "Loading program... ";
-    outs().flush();
-    Dbg.loadProgram(Prog, Context);
-    assert(Dbg.isProgramLoaded() &&
-           "loadProgram succeeded, but not program loaded!");
-    TheProgramInfo = new ProgramInfo(Dbg.getProgram());
-    outs() << "successfully loaded '" << Dbg.getProgramPath() << "'!\n";
-  }
-}
-
-
-void CLIDebugger::createCommand(std::string &Options) {
-  if (!getToken(Options).empty())
-    throw "create command does not take any arguments.";
-  if (!Dbg.isProgramLoaded()) throw "No program loaded.";
-  if (Dbg.isProgramRunning() &&
-      !askYesNo("The program is already running.  Restart from the beginning?"))
-    return;
-
-  // Start the program running.
-  startProgramRunning();
-
-  // The program stopped!
-  programStoppedSuccessfully();
-}
-
-void CLIDebugger::killCommand(std::string &Options) {
-  if (!getToken(Options).empty())
-    throw "kill command does not take any arguments.";
-  if (!Dbg.isProgramRunning())
-    throw "No program is currently being run.";
-
-  if (askYesNo("Kill the program being debugged?"))
-    Dbg.killProgram();
-  eliminateRunInfo();
-}
-
-void CLIDebugger::quitCommand(std::string &Options) {
-  if (!getToken(Options).empty())
-    throw "quit command does not take any arguments.";
-
-  if (Dbg.isProgramRunning() &&
-      !askYesNo("The program is running.  Exit anyway?"))
-    return;
-
-  // Throw exception to get out of the user-input loop.
-  throw 0;
-}
-
-
-//===----------------------------------------------------------------------===//
-//                        Program execution commands
-//===----------------------------------------------------------------------===//
-
-void CLIDebugger::runCommand(std::string &Options) {
-  if (!Dbg.isProgramLoaded()) throw "No program loaded.";
-  if (Dbg.isProgramRunning() &&
-      !askYesNo("The program is already running.  Restart from the beginning?"))
-    return;
-
-  // Parse all of the options to the run command, which specify program
-  // arguments to run with.
-  parseProgramOptions(Options);
-
-  eliminateRunInfo();
-
-  // Start the program running.
-  startProgramRunning();
-
-  // Start the program running...
-  Options = "";
-  contCommand(Options);
-}
-
-void CLIDebugger::contCommand(std::string &Options) {
-  if (!getToken(Options).empty()) throw "cont argument not supported yet.";
-  if (!Dbg.isProgramRunning()) throw "Program is not running.";
-
-  eliminateRunInfo();
-
-  Dbg.contProgram();
-
-  // The program stopped!
-  programStoppedSuccessfully();
-}
-
-void CLIDebugger::stepCommand(std::string &Options) {
-  if (!Dbg.isProgramRunning()) throw "Program is not running.";
-
-  // Figure out how many times to step.
-  unsigned Amount =
-    getOptionalUnsignedIntegerOption("'step' command", 1, Options);
-
-  eliminateRunInfo();
-
-  // Step the specified number of times.
-  for (; Amount; --Amount)
-    Dbg.stepProgram();
-
-  // The program stopped!
-  programStoppedSuccessfully();
-}
-
-void CLIDebugger::nextCommand(std::string &Options) {
-  if (!Dbg.isProgramRunning()) throw "Program is not running.";
-  unsigned Amount =
-    getOptionalUnsignedIntegerOption("'next' command", 1, Options);
-
-  eliminateRunInfo();
-
-  for (; Amount; --Amount)
-    Dbg.nextProgram();
-
-  // The program stopped!
-  programStoppedSuccessfully();
-}
-
-void CLIDebugger::finishCommand(std::string &Options) {
-  if (!getToken(Options).empty())
-    throw "finish command does not take any arguments.";
-  if (!Dbg.isProgramRunning()) throw "Program is not running.";
-
-  // Figure out where we are exactly.  If the user requests that we return from
-  // a frame that is not the top frame, make sure we get it.
-  void *CurrentFrame = getRuntimeInfo().getCurrentFrame().getFrameID();
-
-  eliminateRunInfo();
-
-  Dbg.finishProgram(CurrentFrame);
-
-  // The program stopped!
-  programStoppedSuccessfully();
-}
-
-//===----------------------------------------------------------------------===//
-//                           Stack frame commands
-//===----------------------------------------------------------------------===//
-
-void CLIDebugger::backtraceCommand(std::string &Options) {
-  // Accepts "full", n, -n
-  if (!getToken(Options).empty())
-    throw "FIXME: bt command argument not implemented yet!";
-
-  RuntimeInfo &RI = getRuntimeInfo();
-  ProgramInfo &PI = getProgramInfo();
-
-  try {
-    for (unsigned i = 0; ; ++i) {
-      StackFrame &SF = RI.getStackFrame(i);
-      outs() << "#" << i;
-      if (i == RI.getCurrentFrameIdx())
-        outs() << " ->";
-      outs() << "\t" << SF.getFrameID() << " in ";
-      if (const GlobalVariable *G = SF.getFunctionDesc())
-        outs() << PI.getFunction(G).getSymbolicName();
-
-      unsigned LineNo, ColNo;
-      const SourceFileInfo *SFI;
-      SF.getSourceLocation(LineNo, ColNo, SFI);
-      if (!SFI->getBaseName().empty()) {
-        outs() << " at " << SFI->getBaseName();
-        if (LineNo) {
-          outs() << ":" << LineNo;
-          if (ColNo)
-            outs() << ":" << ColNo;
-        }
-      }
-
-      // FIXME: when we support shared libraries, we should print ' from foo.so'
-      // if the stack frame is from a different object than the current one.
-
-      outs() << "\n";
-    }
-  } catch (...) {
-    // Stop automatically when we run off the bottom of the stack.
-  }
-}
-
-void CLIDebugger::upCommand(std::string &Options) {
-  unsigned Num =
-    getOptionalUnsignedIntegerOption("'up' command", 1, Options);
-
-  RuntimeInfo &RI = getRuntimeInfo();
-  unsigned CurFrame = RI.getCurrentFrameIdx();
-
-  // Check to see if we go can up the specified number of frames.
-  try {
-    RI.getStackFrame(CurFrame+Num);
-  } catch (...) {
-    if (Num == 1)
-      throw "Initial frame selected; you cannot go up.";
-    else
-      throw "Cannot go up " + utostr(Num) + " frames!";
-  }
-
-  RI.setCurrentFrameIdx(CurFrame+Num);
-  printProgramLocation();
-}
-
-void CLIDebugger::downCommand(std::string &Options) {
-  unsigned Num =
-    getOptionalUnsignedIntegerOption("'down' command", 1, Options);
-
-  RuntimeInfo &RI = getRuntimeInfo();
-  unsigned CurFrame = RI.getCurrentFrameIdx();
-
-  // Check to see if we can go up the specified number of frames.
-  if (CurFrame < Num) {
-    if (Num == 1)
-      throw "Bottom (i.e., innermost) frame selected; you cannot go down.";
-    else
-      throw "Cannot go down " + utostr(Num) + " frames!";
-  }
-
-  RI.setCurrentFrameIdx(CurFrame-Num);
-  printProgramLocation();
-}
-
-void CLIDebugger::frameCommand(std::string &Options) {
-  RuntimeInfo &RI = getRuntimeInfo();
-  unsigned CurFrame = RI.getCurrentFrameIdx();
-
-  unsigned Num =
-    getOptionalUnsignedIntegerOption("'frame' command", CurFrame, Options);
-
-  // Check to see if we go to the specified frame.
-  RI.getStackFrame(Num);
-
-  RI.setCurrentFrameIdx(Num);
-  printProgramLocation();
-}
-
-
-//===----------------------------------------------------------------------===//
-//                        Breakpoint related commands
-//===----------------------------------------------------------------------===//
-
-void CLIDebugger::breakCommand(std::string &Options) {
-  // Figure out where the user wants a breakpoint.
-  const SourceFile *File;
-  unsigned LineNo;
-
-  // Check to see if the user specified a line specifier.
-  std::string Option = getToken(Options);  // strip whitespace
-  if (!Option.empty()) {
-    Options = Option + Options;  // reconstruct string
-
-    // Parse the line specifier.
-    parseLineSpec(Options, File, LineNo);
-  } else {
-    // Build a line specifier for the current stack frame.
-    throw "FIXME: breaking at the current location is not implemented yet!";
-  }
-
-  if (!File) File = CurrentFile;
-  if (File == 0)
-    throw "Unknown file to place breakpoint!";
-
-  errs() << "Break: " << File->getFilename() << ":" << LineNo << "\n";
-
-  throw "breakpoints not implemented yet!";
-}
-
-//===----------------------------------------------------------------------===//
-//                          Miscellaneous commands
-//===----------------------------------------------------------------------===//
-
-void CLIDebugger::infoCommand(std::string &Options) {
-  std::string What = getToken(Options);
-
-  if (What.empty() || !getToken(Options).empty()){
-    std::string infoStr("info");
-    helpCommand(infoStr);
-    return;
-  }
-
-  if (What == "frame") {
-  } else if (What == "functions") {
-    const std::map<const GlobalVariable*, SourceFunctionInfo*> &Functions
-      = getProgramInfo().getSourceFunctions();
-    outs() << "All defined functions:\n";
-    // FIXME: GDB groups these by source file.  We could do that I guess.
-    for (std::map<const GlobalVariable*, SourceFunctionInfo*>::const_iterator
-           I = Functions.begin(), E = Functions.end(); I != E; ++I) {
-      outs() << I->second->getSymbolicName() << "\n";
-    }
-
-  } else if (What == "source") {
-    if (CurrentFile == 0)
-      throw "No current source file.";
-
-    // Get the SourceFile information for the current file.
-    const SourceFileInfo &SF =
-      getProgramInfo().getSourceFile(CurrentFile->getDescriptor());
-
-    outs() << "Current source file is: " << SF.getBaseName() << "\n"
-            << "Compilation directory is: " << SF.getDirectory() << "\n";
-    if (unsigned NL = CurrentFile->getNumLines())
-      outs() << "Located in: " << CurrentFile->getFilename() << "\n"
-              << "Contains " << NL << " lines\n";
-    else
-      outs() << "Could not find source file.\n";
-    outs() << "Source language is "
-           << SF.getLanguage().getSourceLanguageName() << "\n";
-
-  } else if (What == "sources") {
-    const std::map<const GlobalVariable*, SourceFileInfo*> &SourceFiles =
-      getProgramInfo().getSourceFiles();
-    outs() << "Source files for the program:\n";
-    for (std::map<const GlobalVariable*, SourceFileInfo*>::const_iterator I =
-           SourceFiles.begin(), E = SourceFiles.end(); I != E;) {
-      outs() << I->second->getDirectory() << "/"
-             << I->second->getBaseName();
-      ++I;
-      if (I != E) outs() << ", ";
-    }
-    outs() << "\n";
-  } else if (What == "target") {
-    outs() << Dbg.getRunningProcess().getStatus();
-  } else {
-    // See if this is something handled by the current language.
-    if (getCurrentLanguage().printInfo(What))
-      return;
-
-    throw "Unknown info command '" + What + "'.  Try 'help info'.";
-  }
-}
-
-/// parseLineSpec - Parses a line specifier, for use by the 'list' command.
-/// If SourceFile is returned as a void pointer, then it was not specified.
-/// If the line specifier is invalid, an exception is thrown.
-void CLIDebugger::parseLineSpec(std::string &LineSpec,
-                                const SourceFile *&SourceFile,
-                                unsigned &LineNo) {
-  SourceFile = 0;
-  LineNo = 0;
-
-  // First, check to see if we have a : separator.
-  std::string FirstPart = getToken(LineSpec, ":");
-  std::string SecondPart = getToken(LineSpec, ":");
-  if (!getToken(LineSpec).empty()) throw "Malformed line specification!";
-
-  // If there is no second part, we must have either "function", "number",
-  // "+offset", or "-offset".
-  if (SecondPart.empty()) {
-    if (FirstPart.empty()) throw "Malformed line specification!";
-    if (FirstPart[0] == '+') {
-      FirstPart.erase(FirstPart.begin(), FirstPart.begin()+1);
-      // For +n, return LineListedEnd+n
-      LineNo = LineListedEnd +
-               getUnsignedIntegerOption("Line specifier '+'", FirstPart);
-
-    } else if (FirstPart[0] == '-') {
-      FirstPart.erase(FirstPart.begin(), FirstPart.begin()+1);
-      // For -n, return LineListedEnd-n
-      LineNo = LineListedEnd -
-               getUnsignedIntegerOption("Line specifier '-'", FirstPart);
-      if ((int)LineNo < 1) LineNo = 1;
-    } else if (FirstPart[0] == '*') {
-      throw "Address expressions not supported as source locations!";
-    } else {
-      // Ok, check to see if this is just a line number.
-      std::string Saved = FirstPart;
-      try {
-        LineNo = getUnsignedIntegerOption("", Saved);
-      } catch (...) {
-        // Ok, it's not a valid line number.  It must be a source-language
-        // entity name.
-        std::string Name = getToken(FirstPart);
-        if (!getToken(FirstPart).empty())
-          throw "Extra junk in line specifier after '" + Name + "'.";
-        SourceFunctionInfo *SFI =
-          getCurrentLanguage().lookupFunction(Name, getProgramInfo(),
-                                              TheRuntimeInfo);
-        if (SFI == 0)
-          throw "Unknown identifier '" + Name + "'.";
-
-        unsigned L, C;
-        SFI->getSourceLocation(L, C);
-        if (L == 0) throw "Could not locate '" + Name + "'!";
-        LineNo = L;
-        SourceFile = &SFI->getSourceFile().getSourceText();
-        return;
-      }
-    }
-
-  } else {
-    // Ok, this must be a filename qualified line number or function name.
-    // First, figure out the source filename.
-    std::string SourceFilename = getToken(FirstPart);
-    if (!getToken(FirstPart).empty())
-      throw "Invalid filename qualified source location!";
-
-    // Next, check to see if this is just a line number.
-    std::string Saved = SecondPart;
-    try {
-      LineNo = getUnsignedIntegerOption("", Saved);
-    } catch (...) {
-      // Ok, it's not a valid line number.  It must be a function name.
-      throw "FIXME: Filename qualified function names are not support "
-            "as line specifiers yet!";
-    }
-
-    // Ok, we got the line number.  Now check out the source file name to make
-    // sure it's all good.  If it is, return it.  If not, throw exception.
-    SourceFile =&getProgramInfo().getSourceFile(SourceFilename).getSourceText();
-  }
-}
-
-void CLIDebugger::listCommand(std::string &Options) {
-  if (!Dbg.isProgramLoaded())
-    throw "No program is loaded.  Use the 'file' command.";
-
-  // Handle "list foo," correctly, by returning " " as the second token
-  Options += " ";
-
-  std::string FirstLineSpec = getToken(Options, ",");
-  std::string SecondLineSpec = getToken(Options, ",");
-  if (!getToken(Options, ",").empty())
-    throw "list command only expects two source location specifiers!";
-
-  // StartLine, EndLine - The starting and ending line numbers to print.
-  unsigned StartLine = 0, EndLine = 0;
-
-  if (SecondLineSpec.empty()) {    // No second line specifier provided?
-    // Handle special forms like "", "+", "-", etc.
-    std::string TmpSpec = FirstLineSpec;
-    std::string Tok = getToken(TmpSpec);
-    if (getToken(TmpSpec).empty() && (Tok == "" || Tok == "+" || Tok == "-")) {
-      if (Tok == "+" || Tok == "") {
-        StartLine = LineListedEnd;
-        EndLine = StartLine + ListSize;
-      } else {
-        assert(Tok == "-");
-        StartLine = LineListedStart-ListSize;
-        EndLine = LineListedStart;
-        if ((int)StartLine <= 0) StartLine = 1;
-      }
-    } else {
-      // Must be a normal line specifier.
-      const SourceFile *File;
-      unsigned LineNo;
-      parseLineSpec(FirstLineSpec, File, LineNo);
-
-      // If the user only specified one file specifier, we should display
-      // ListSize lines centered at the specified line.
-      if (File != 0) CurrentFile = File;
-      StartLine = LineNo - (ListSize+1)/2;
-      if ((int)StartLine <= 0) StartLine = 1;
-      EndLine = StartLine + ListSize;
-    }
-
-  } else {
-    // Parse two line specifiers...
-    const SourceFile *StartFile, *EndFile;
-    unsigned StartLineNo, EndLineNo;
-    parseLineSpec(FirstLineSpec, StartFile, StartLineNo);
-    unsigned SavedLLE = LineListedEnd;
-    LineListedEnd = StartLineNo;
-    try {
-      parseLineSpec(SecondLineSpec, EndFile, EndLineNo);
-    } catch (...) {
-      LineListedEnd = SavedLLE;
-      throw;
-    }
-
-    // Inherit file specified by the first line spec if there was one.
-    if (EndFile == 0) EndFile = StartFile;
-
-    if (StartFile != EndFile)
-      throw "Start and end line specifiers are in different files!";
-    CurrentFile = StartFile;
-    StartLine = StartLineNo;
-    EndLine = EndLineNo+1;
-  }
-
-  assert((int)StartLine > 0 && (int)EndLine > 0 && StartLine <= EndLine &&
-         "Error reading line specifiers!");
-
-  // If there was no current file, and the user didn't specify one to list, we
-  // have an error.
-  if (CurrentFile == 0)
-    throw "There is no current file to list.";
-
-  // Remember for next time.
-  LineListedStart = StartLine;
-  LineListedEnd = StartLine;
-
-  for (unsigned LineNo = StartLine; LineNo != EndLine; ++LineNo) {
-    // Print the source line, unless it is invalid.
-    if (printSourceLine(LineNo))
-      break;
-    LineListedEnd = LineNo+1;
-  }
-
-  // If we didn't print any lines, find out why.
-  if (LineListedEnd == StartLine) {
-    // See if we can read line #0 from the file, if not, we couldn't load the
-    // file.
-    const char *LineStart, *LineEnd;
-    CurrentFile->getSourceLine(0, LineStart, LineEnd);
-    if (LineStart == 0)
-      throw "Could not load source file '" + CurrentFile->getFilename() + "'!";
-    else
-      outs() << "<end of file>\n";
-  }
-}
-
-void CLIDebugger::setCommand(std::string &Options) {
-  std::string What = getToken(Options);
-
-  if (What.empty())
-    throw "set command expects at least two arguments.";
-  if (What == "args") {
-    parseProgramOptions(Options);
-  } else if (What == "language") {
-    std::string Lang = getToken(Options);
-    if (!getToken(Options).empty())
-      throw "set language expects one argument at most.";
-    if (Lang == "") {
-      outs() << "The currently understood settings are:\n\n"
-             << "local or auto  Automatic setting based on source file\n"
-             << "c              Use the C language\n"
-             << "c++            Use the C++ language\n"
-             << "unknown        Use when source language is not supported\n";
-    } else if (Lang == "local" || Lang == "auto") {
-      CurrentLanguage = 0;
-    } else if (Lang == "c") {
-      CurrentLanguage = &SourceLanguage::getCFamilyInstance();
-    } else if (Lang == "c++") {
-      CurrentLanguage = &SourceLanguage::getCPlusPlusInstance();
-    } else if (Lang == "unknown") {
-      CurrentLanguage = &SourceLanguage::getUnknownLanguageInstance();
-    } else {
-      throw "Unknown language '" + Lang + "'.";
-    }
-
-  } else if (What == "listsize") {
-    ListSize = getUnsignedIntegerOption("'set prompt' command", Options);
-  } else if (What == "prompt") {
-    // Include any trailing whitespace or other tokens, but not leading
-    // whitespace.
-    Prompt = getToken(Options);  // Strip leading whitespace
-    Prompt += Options;           // Keep trailing whitespace or other stuff
-  } else {
-    // FIXME: Try to parse this as a source-language program expression.
-    throw "Don't know how to set '" + What + "'!";
-  }
-}
-
-void CLIDebugger::showCommand(std::string &Options) {
-  std::string What = getToken(Options);
-
-  if (What.empty() || !getToken(Options).empty())
-    throw "show command expects one argument.";
-
-  if (What == "args") {
-    outs() << "Argument list to give program when started is \"";
-    // FIXME: This doesn't print stuff correctly if the arguments have spaces in
-    // them, but currently the only way to get that is to use the --args command
-    // line argument.  This should really handle escaping all hard characters as
-    // needed.
-    for (unsigned i = 0, e = Dbg.getNumProgramArguments(); i != e; ++i)
-      outs() << (i ? " " : "") << Dbg.getProgramArgument(i);
-    outs() << "\"\n";
-
-  } else if (What == "language") {
-    outs() << "The current source language is '";
-    if (CurrentLanguage)
-      outs() << CurrentLanguage->getSourceLanguageName();
-    else
-      outs() << "auto; currently "
-             << getCurrentLanguage().getSourceLanguageName();
-    outs() << "'.\n";
-  } else if (What == "listsize") {
-    outs() << "Number of source lines llvm-db will list by default is "
-           << ListSize << ".\n";
-  } else if (What == "prompt") {
-    outs() << "llvm-db's prompt is \"" << Prompt << "\".\n";
-  } else {
-    throw "Unknown show command '" + What + "'.  Try 'help show'.";
-  }
-}
-
-void CLIDebugger::helpCommand(std::string &Options) {
-  // Print out all of the commands in the CommandTable
-  std::string Command = getToken(Options);
-  if (!getToken(Options).empty())
-    throw "help command takes at most one argument.";
-
-  // Getting detailed help on a particular command?
-  if (!Command.empty()) {
-    CLICommand *C = getCommand(Command);
-    outs() << C->getShortHelp() << ".\n" << C->getLongHelp();
-
-    // If there are aliases for this option, print them out.
-    const std::vector<std::string> &Names = C->getOptionNames();
-    if (Names.size() > 1) {
-      outs() << "The '" << Command << "' command is known as: '"
-             << Names[0] << "'";
-      for (unsigned i = 1, e = Names.size(); i != e; ++i)
-        outs() << ", '" << Names[i] << "'";
-      outs() << "\n";
-    }
-
-  } else {
-    unsigned MaxSize = 0;
-    for (std::map<std::string, CLICommand*>::iterator I = CommandTable.begin(),
-           E = CommandTable.end(); I != E; ++I)
-      if (I->first.size() > MaxSize &&
-          I->first == I->second->getPrimaryOptionName())
-        MaxSize = I->first.size();
-
-    // Loop over all of the commands, printing the short help version
-    for (std::map<std::string, CLICommand*>::iterator I = CommandTable.begin(),
-           E = CommandTable.end(); I != E; ++I)
-      if (I->first == I->second->getPrimaryOptionName())
-        outs() << I->first << std::string(MaxSize - I->first.size(), ' ')
-               << " - " << I->second->getShortHelp() << "\n";
-  }
-}
diff --git a/libclamav/c++/llvm/tools/llvm-db/Makefile b/libclamav/c++/llvm/tools/llvm-db/Makefile
deleted file mode 100644
index df81649..0000000
--- a/libclamav/c++/llvm/tools/llvm-db/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- tools/llvm-db/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-TOOLNAME = llvm-db
-LINK_COMPONENTS := debugger
-REQUIRES_EH := 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-db/llvm-db.cpp b/libclamav/c++/llvm/tools/llvm-db/llvm-db.cpp
deleted file mode 100644
index 463a1bd..0000000
--- a/libclamav/c++/llvm/tools/llvm-db/llvm-db.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//===- llvm-db.cpp - LLVM Debugger ----------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This utility implements a simple text-mode front-end to the LLVM debugger
-// library.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CLIDebugger.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-using namespace llvm;
-
-namespace {
-  // Command line options for specifying the program to debug and options to use
-  cl::opt<std::string>
-  InputFile(cl::desc("<program>"), cl::Positional, cl::init(""));
-
-  cl::list<std::string>
-  InputArgs("args", cl::Positional, cl::desc("<program and arguments>"),
-            cl::ZeroOrMore);
-
-  // Command line options to control various directory related stuff
-  cl::list<std::string>
-  SourceDirectories("directory", cl::value_desc("directory"),
-                    cl::desc("Add directory to the search for source files"));
-  cl::alias SDA("d", cl::desc("Alias for --directory"),
-                cl::aliasopt(SourceDirectories));
-
-  cl::opt<std::string>
-  WorkingDirectory("cd", cl::desc("Use directory as current working directory"),
-                   cl::value_desc("directory"));
-
-  // Command line options specific to the llvm-db debugger driver
-  cl::opt<bool> Quiet("quiet", cl::desc("Do not print introductory messages"));
-  cl::alias QA1("silent", cl::desc("Alias for -quiet"), cl::aliasopt(Quiet));
-  cl::alias QA2("q", cl::desc("Alias for -quiet"), cl::aliasopt(Quiet));
-}
-
-//===----------------------------------------------------------------------===//
-// main Driver function
-//
-int main(int argc, char **argv, char * const *envp) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-  
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  outs() << "NOTE: llvm-db is known useless right now.\n";
-  try {
-    cl::ParseCommandLineOptions(argc, argv,
-                                "llvm source-level debugger\n");
-
-    if (!Quiet)
-      outs() << "llvm-db: The LLVM source-level debugger\n";
-
-    // Merge Inputfile and InputArgs into the InputArgs list...
-    if (!InputFile.empty() && InputArgs.empty())
-      InputArgs.push_back(InputFile);
-
-    // Create the CLI debugger...
-    CLIDebugger D(Context);
-
-    // Initialize the debugger with the command line options we read...
-    Debugger &Dbg = D.getDebugger();
-
-    // Initialize the debugger environment.
-    Dbg.initializeEnvironment(envp);
-    Dbg.setWorkingDirectory(WorkingDirectory);
-    for (unsigned i = 0, e = SourceDirectories.size(); i != e; ++i)
-      D.addSourceDirectory(SourceDirectories[i]);
-
-    if (!InputArgs.empty()) {
-      try {
-        D.fileCommand(InputArgs[0]);
-      } catch (const std::string &Error) {
-        outs() << "Error: " << Error << "\n";
-      }
-
-      Dbg.setProgramArguments(InputArgs.begin()+1, InputArgs.end());
-    }
-
-    // Now that we have initialized the debugger, run it.
-    return D.run();
-  } catch (const std::string& msg) {
-    errs() << argv[0] << ": " << msg << "\n";
-  } catch (...) {
-    errs() << argv[0] << ": Unexpected unknown exception occurred.\n";
-  }
-  return 1;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-dis/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-dis/CMakeLists.txt
deleted file mode 100644
index d62a6b5..0000000
--- a/libclamav/c++/llvm/tools/llvm-dis/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-set(LLVM_LINK_COMPONENTS bitreader)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvm-dis
-  llvm-dis.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-dis/Makefile b/libclamav/c++/llvm/tools/llvm-dis/Makefile
deleted file mode 100644
index dfd5e34..0000000
--- a/libclamav/c++/llvm/tools/llvm-dis/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- tools/llvm-dis/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-
-TOOLNAME = llvm-dis
-LINK_COMPONENTS := bitreader
-REQUIRES_EH := 1
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-dis/llvm-dis.cpp b/libclamav/c++/llvm/tools/llvm-dis/llvm-dis.cpp
deleted file mode 100644
index 89073c0..0000000
--- a/libclamav/c++/llvm/tools/llvm-dis/llvm-dis.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//===-- llvm-dis.cpp - The low-level LLVM disassembler --------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This utility may be invoked in the following manner:
-//  llvm-dis [options]      - Read LLVM bitcode from stdin, write asm to stdout
-//  llvm-dis [options] x.bc - Read LLVM bitcode from the x.bc file, write asm
-//                            to the x.ll file.
-//  Options:
-//      --help   - Output information about command line switches
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Assembly/PrintModulePass.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-#include <memory>
-using namespace llvm;
-
-static cl::opt<std::string>
-InputFilename(cl::Positional, cl::desc("<input bitcode>"), cl::init("-"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Override output filename"),
-               cl::value_desc("filename"));
-
-static cl::opt<bool>
-Force("f", cl::desc("Enable binary output on terminals"));
-
-static cl::opt<bool>
-DontPrint("disable-output", cl::desc("Don't output the .ll file"), cl::Hidden);
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-  
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  
-  
-  cl::ParseCommandLineOptions(argc, argv, "llvm .bc -> .ll disassembler\n");
-
-  std::string ErrorMessage;
-  std::auto_ptr<Module> M;
- 
-  if (MemoryBuffer *Buffer
-         = MemoryBuffer::getFileOrSTDIN(InputFilename, &ErrorMessage)) {
-    M.reset(ParseBitcodeFile(Buffer, Context, &ErrorMessage));
-    delete Buffer;
-  }
-
-  if (M.get() == 0) {
-    errs() << argv[0] << ": ";
-    if (ErrorMessage.size())
-      errs() << ErrorMessage << "\n";
-    else
-      errs() << "bitcode didn't read correctly.\n";
-    return 1;
-  }
-  
-  // Just use stdout.  We won't actually print anything on it.
-  if (DontPrint)
-    OutputFilename = "-";
-  
-  if (OutputFilename.empty()) { // Unspecified output, infer it.
-    if (InputFilename == "-") {
-      OutputFilename = "-";
-    } else {
-      const std::string &IFN = InputFilename;
-      int Len = IFN.length();
-      // If the source ends in .bc, strip it off.
-      if (IFN[Len-3] == '.' && IFN[Len-2] == 'b' && IFN[Len-1] == 'c')
-        OutputFilename = std::string(IFN.begin(), IFN.end()-3)+".ll";
-      else
-        OutputFilename = IFN+".ll";
-    }
-  }
-  
-  std::string ErrorInfo;
-  std::auto_ptr<raw_fd_ostream> 
-  Out(new raw_fd_ostream(OutputFilename.c_str(), ErrorInfo,
-                         raw_fd_ostream::F_Binary));
-  if (!ErrorInfo.empty()) {
-    errs() << ErrorInfo << '\n';
-    return 1;
-  }
-
-  // Make sure that the Out file gets unlinked from the disk if we get a
-  // SIGINT.
-  if (OutputFilename != "-")
-    sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
-  // All that llvm-dis does is write the assembly to a file.
-  if (!DontPrint) {
-    PassManager Passes;
-    Passes.add(createPrintModulePass(Out.get()));
-    Passes.run(*M.get());
-  }
-
-  return 0;
-}
-
diff --git a/libclamav/c++/llvm/tools/llvm-extract/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-extract/CMakeLists.txt
deleted file mode 100644
index 88e9343..0000000
--- a/libclamav/c++/llvm/tools/llvm-extract/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(LLVM_LINK_COMPONENTS ipo bitreader bitwriter)
-
-add_llvm_tool(llvm-extract
-  llvm-extract.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-extract/Makefile b/libclamav/c++/llvm/tools/llvm-extract/Makefile
deleted file mode 100644
index 2ef8841..0000000
--- a/libclamav/c++/llvm/tools/llvm-extract/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- tools/llvm-extract/Makefile -------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-
-TOOLNAME = llvm-extract
-LINK_COMPONENTS := ipo bitreader bitwriter
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-extract/llvm-extract.cpp b/libclamav/c++/llvm/tools/llvm-extract/llvm-extract.cpp
deleted file mode 100644
index 543d01f..0000000
--- a/libclamav/c++/llvm/tools/llvm-extract/llvm-extract.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//===- llvm-extract.cpp - LLVM function extraction utility ----------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This utility changes the input module to only contain a single function,
-// which is primarily used for debugging transformations.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Transforms/IPO.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/System/Signals.h"
-#include <memory>
-using namespace llvm;
-
-// InputFilename - The filename to read from.
-static cl::opt<std::string>
-InputFilename(cl::Positional, cl::desc("<input bitcode file>"),
-              cl::init("-"), cl::value_desc("filename"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Specify output filename"),
-               cl::value_desc("filename"), cl::init("-"));
-
-static cl::opt<bool>
-Force("f", cl::desc("Enable binary output on terminals"));
-
-static cl::opt<bool>
-DeleteFn("delete", cl::desc("Delete specified Globals from Module"));
-
-static cl::opt<bool>
-Relink("relink",
-       cl::desc("Turn external linkage for callees of function to delete"));
-
-// ExtractFunc - The function to extract from the module... 
-static cl::opt<std::string>
-ExtractFunc("func", cl::desc("Specify function to extract"), cl::init(""),
-            cl::value_desc("function"));
-
-// ExtractGlobal - The global to extract from the module...
-static cl::opt<std::string>
-ExtractGlobal("glob", cl::desc("Specify global to extract"), cl::init(""),
-              cl::value_desc("global"));
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, "llvm extractor\n");
-
-  std::auto_ptr<Module> M;
-  
-  MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename);
-  if (Buffer == 0) {
-    errs() << argv[0] << ": Error reading file '" + InputFilename + "'\n";
-    return 1;
-  } else {
-    M.reset(ParseBitcodeFile(Buffer, Context));
-  }
-  delete Buffer;
-  
-  if (M.get() == 0) {
-    errs() << argv[0] << ": bitcode didn't read correctly.\n";
-    return 1;
-  }
-
-  // Figure out which function we should extract
-  GlobalVariable *G = !ExtractGlobal.empty() ?
-    M.get()->getNamedGlobal(ExtractGlobal) : 0;
-
-  // Figure out which function we should extract
-  if (ExtractFunc.empty() && ExtractGlobal.empty()) ExtractFunc = "main";
-  Function *F = M.get()->getFunction(ExtractFunc);
-
-  if (F == 0 && G == 0) {
-    errs() << argv[0] << ": program doesn't contain function named '"
-           << ExtractFunc << "' or a global named '" << ExtractGlobal << "'!\n";
-    return 1;
-  }
-
-  // In addition to deleting all other functions, we also want to spiff it
-  // up a little bit.  Do this now.
-  PassManager Passes;
-  Passes.add(new TargetData(M.get())); // Use correct TargetData
-  // Either isolate the function or delete it from the Module
-  std::vector<GlobalValue*> GVs;
-  if (F) GVs.push_back(F);
-  if (G) GVs.push_back(G);
-
-  Passes.add(createGVExtractionPass(GVs, DeleteFn, Relink));
-  if (!DeleteFn)
-    Passes.add(createGlobalDCEPass());           // Delete unreachable globals
-  Passes.add(createDeadTypeEliminationPass());   // Remove dead types...
-  Passes.add(createStripDeadPrototypesPass());   // Remove dead func decls
-
-  std::string ErrorInfo;
-  std::auto_ptr<raw_fd_ostream>
-  Out(new raw_fd_ostream(OutputFilename.c_str(), ErrorInfo,
-                         raw_fd_ostream::F_Binary));
-  if (!ErrorInfo.empty()) {
-    errs() << ErrorInfo << '\n';
-    return 1;
-  }
-
-  if (Force || !CheckBitcodeOutputToConsole(*Out, true))
-    Passes.add(createBitcodeWriterPass(*Out));
-
-  Passes.run(*M.get());
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-ld/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-ld/CMakeLists.txt
deleted file mode 100644
index 51f0dc1..0000000
--- a/libclamav/c++/llvm/tools/llvm-ld/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-set(LLVM_LINK_COMPONENTS ipo scalaropts linker archive bitwriter)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvm-ld
-  Optimize.cpp
-  llvm-ld.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-ld/Makefile b/libclamav/c++/llvm/tools/llvm-ld/Makefile
deleted file mode 100644
index 92cac2a..0000000
--- a/libclamav/c++/llvm/tools/llvm-ld/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-##===- tools/llvm-ld/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-
-TOOLNAME = llvm-ld
-LINK_COMPONENTS = ipo scalaropts linker archive bitwriter
-REQUIRES_EH := 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-ld/Optimize.cpp b/libclamav/c++/llvm/tools/llvm-ld/Optimize.cpp
deleted file mode 100644
index 6143dc8..0000000
--- a/libclamav/c++/llvm/tools/llvm-ld/Optimize.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//===- Optimize.cpp - Optimize a complete program -------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements all optimization of the linked module for llvm-ld.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Analysis/Passes.h"
-#include "llvm/Analysis/LoopPass.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/StandardPasses.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/DynamicLibrary.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Transforms/IPO.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/Support/PassNameParser.h"
-#include "llvm/Support/PluginLoader.h"
-using namespace llvm;
-
-// Pass Name Options as generated by the PassNameParser
-static cl::list<const PassInfo*, bool, PassNameParser>
-  OptimizationList(cl::desc("Optimizations available:"));
-
-//Don't verify at the end
-static cl::opt<bool> DontVerify("disable-verify", cl::ReallyHidden);
-
-static cl::opt<bool> DisableInline("disable-inlining",
-  cl::desc("Do not run the inliner pass"));
-
-static cl::opt<bool>
-DisableOptimizations("disable-opt",
-  cl::desc("Do not run any optimization passes"));
-
-static cl::opt<bool> DisableInternalize("disable-internalize",
-  cl::desc("Do not mark all symbols as internal"));
-
-static cl::opt<bool> VerifyEach("verify-each",
- cl::desc("Verify intermediate results of all passes"));
-
-static cl::alias ExportDynamic("export-dynamic",
-  cl::aliasopt(DisableInternalize),
-  cl::desc("Alias for -disable-internalize"));
-
-static cl::opt<bool> Strip("strip-all", 
-  cl::desc("Strip all symbol info from executable"));
-
-static cl::alias A0("s", cl::desc("Alias for --strip-all"), 
-  cl::aliasopt(Strip));
-
-static cl::opt<bool> StripDebug("strip-debug",
-  cl::desc("Strip debugger symbol info from executable"));
-
-static cl::alias A1("S", cl::desc("Alias for --strip-debug"),
-  cl::aliasopt(StripDebug));
-
-// A utility function that adds a pass to the pass manager but will also add
-// a verifier pass after if we're supposed to verify.
-static inline void addPass(PassManager &PM, Pass *P) {
-  // Add the pass to the pass manager...
-  PM.add(P);
-
-  // If we are verifying all of the intermediate steps, add the verifier...
-  if (VerifyEach)
-    PM.add(createVerifierPass());
-}
-
-namespace llvm {
-
-/// Optimize - Perform link time optimizations. This will run the scalar
-/// optimizations, any loaded plugin-optimization modules, and then the
-/// inter-procedural optimizations if applicable.
-void Optimize(Module* M) {
-
-  // Instantiate the pass manager to organize the passes.
-  PassManager Passes;
-
-  // If we're verifying, start off with a verification pass.
-  if (VerifyEach)
-    Passes.add(createVerifierPass());
-
-  // Add an appropriate TargetData instance for this module...
-  addPass(Passes, new TargetData(M));
-
-  if (!DisableOptimizations)
-    createStandardLTOPasses(&Passes, !DisableInternalize, !DisableInline,
-                            VerifyEach);
-
-  // If the -s or -S command line options were specified, strip the symbols out
-  // of the resulting program to make it smaller.  -s and -S are GNU ld options
-  // that we are supporting; they alias -strip-all and -strip-debug.
-  if (Strip || StripDebug)
-    addPass(Passes, createStripSymbolsPass(StripDebug && !Strip));
-
-  // Create a new optimization pass for each one specified on the command line
-  std::auto_ptr<TargetMachine> target;
-  for (unsigned i = 0; i < OptimizationList.size(); ++i) {
-    const PassInfo *Opt = OptimizationList[i];
-    if (Opt->getNormalCtor())
-      addPass(Passes, Opt->getNormalCtor()());
-    else
-      errs() << "llvm-ld: cannot create pass: " << Opt->getPassName() 
-             << "\n";
-  }
-
-  // The user's passes may leave cruft around. Clean up after them them but
-  // only if we haven't got DisableOptimizations set
-  if (!DisableOptimizations) {
-    addPass(Passes, createInstructionCombiningPass());
-    addPass(Passes, createCFGSimplificationPass());
-    addPass(Passes, createAggressiveDCEPass());
-    addPass(Passes, createGlobalDCEPass());
-  }
-
-  // Make sure everything is still good.
-  if (!DontVerify)
-    Passes.add(createVerifierPass());
-
-  // Run our queue of passes all at once now, efficiently.
-  Passes.run(*M);
-}
-
-}
diff --git a/libclamav/c++/llvm/tools/llvm-ld/llvm-ld.cpp b/libclamav/c++/llvm/tools/llvm-ld/llvm-ld.cpp
deleted file mode 100644
index ef3c250..0000000
--- a/libclamav/c++/llvm/tools/llvm-ld/llvm-ld.cpp
+++ /dev/null
@@ -1,719 +0,0 @@
-//===- llvm-ld.cpp - LLVM 'ld' compatible linker --------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This utility is intended to be compatible with GCC, and follows standard
-// system 'ld' conventions.  As such, the default output file is ./a.out.
-// Additionally, this program outputs a shell script that is used to invoke LLI
-// to execute the program.  In this manner, the generated executable (a.out for
-// example), is directly executable, whereas the bitcode file actually lives in
-// the a.out.bc file generated by this program.
-//
-// Note that if someone (or a script) deletes the executable program generated,
-// the .bc file will be left around.  Considering that this is a temporary hack,
-// I'm not too worried about this.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LinkAllVMCore.h"
-#include "llvm/Linker.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/System/Program.h"
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-#include "llvm/Config/config.h"
-#include <memory>
-#include <cstring>
-using namespace llvm;
-
-// Rightly this should go in a header file but it just seems such a waste.
-namespace llvm {
-extern void Optimize(Module*);
-}
-
-// Input/Output Options
-static cl::list<std::string> InputFilenames(cl::Positional, cl::OneOrMore,
-  cl::desc("<input bitcode files>"));
-
-static cl::opt<std::string> OutputFilename("o", cl::init("a.out"),
-  cl::desc("Override output filename"),
-  cl::value_desc("filename"));
-
-static cl::opt<std::string> BitcodeOutputFilename("b", cl::init(""),
-  cl::desc("Override bitcode output filename"),
-  cl::value_desc("filename"));
-
-static cl::opt<bool> Verbose("v",
-  cl::desc("Print information about actions taken"));
-
-static cl::list<std::string> LibPaths("L", cl::Prefix,
-  cl::desc("Specify a library search path"),
-  cl::value_desc("directory"));
-
-static cl::list<std::string> FrameworkPaths("F", cl::Prefix,
-  cl::desc("Specify a framework search path"),
-  cl::value_desc("directory"));
-
-static cl::list<std::string> Libraries("l", cl::Prefix,
-  cl::desc("Specify libraries to link to"),
-  cl::value_desc("library prefix"));
-
-static cl::list<std::string> Frameworks("framework",
-  cl::desc("Specify frameworks to link to"),
-  cl::value_desc("framework"));
-
-// Options to control the linking, optimization, and code gen processes
-static cl::opt<bool> LinkAsLibrary("link-as-library",
-  cl::desc("Link the .bc files together as a library, not an executable"));
-
-static cl::alias Relink("r", cl::aliasopt(LinkAsLibrary),
-  cl::desc("Alias for -link-as-library"));
-
-static cl::opt<bool> Native("native",
-  cl::desc("Generate a native binary instead of a shell script"));
-
-static cl::opt<bool>NativeCBE("native-cbe",
-  cl::desc("Generate a native binary with the C backend and GCC"));
-
-static cl::list<std::string> PostLinkOpts("post-link-opts",
-  cl::value_desc("path"),
-  cl::desc("Run one or more optimization programs after linking"));
-
-static cl::list<std::string> XLinker("Xlinker", cl::value_desc("option"),
-  cl::desc("Pass options to the system linker"));
-
-// Compatibility options that llvm-ld ignores but are supported for 
-// compatibility with LD
-static cl::opt<std::string> CO3("soname", cl::Hidden,
-  cl::desc("Compatibility option: ignored"));
-
-static cl::opt<std::string> CO4("version-script", cl::Hidden,
-  cl::desc("Compatibility option: ignored"));
-
-static cl::opt<bool> CO5("eh-frame-hdr", cl::Hidden,
-  cl::desc("Compatibility option: ignored"));
-
-static  cl::opt<std::string> CO6("h", cl::Hidden,
-  cl::desc("Compatibility option: ignored"));
-
-static cl::opt<bool> CO7("start-group", cl::Hidden, 
-  cl::desc("Compatibility option: ignored"));
-
-static cl::opt<bool> CO8("end-group", cl::Hidden, 
-  cl::desc("Compatibility option: ignored"));
-
-static cl::opt<std::string> CO9("m", cl::Hidden, 
-  cl::desc("Compatibility option: ignored"));
-
-/// This is just for convenience so it doesn't have to be passed around
-/// everywhere.
-static std::string progname;
-
-/// PrintAndExit - Prints a message to standard error and exits with error code
-///
-/// Inputs:
-///  Message  - The message to print to standard error.
-///
-static void PrintAndExit(const std::string &Message, int errcode = 1) {
-  errs() << progname << ": " << Message << "\n";
-  llvm_shutdown();
-  exit(errcode);
-}
-
-static void PrintCommand(const std::vector<const char*> &args) {
-  std::vector<const char*>::const_iterator I = args.begin(), E = args.end(); 
-  for (; I != E; ++I)
-    if (*I)
-      outs() << "'" << *I << "'" << " ";
-  outs() << "\n"; outs().flush();
-}
-
-/// CopyEnv - This function takes an array of environment variables and makes a
-/// copy of it.  This copy can then be manipulated any way the caller likes
-/// without affecting the process's real environment.
-///
-/// Inputs:
-///  envp - An array of C strings containing an environment.
-///
-/// Return value:
-///  NULL - An error occurred.
-///
-///  Otherwise, a pointer to a new array of C strings is returned.  Every string
-///  in the array is a duplicate of the one in the original array (i.e. we do
-///  not copy the char *'s from one array to another).
-///
-static char ** CopyEnv(char ** const envp) {
-  // Count the number of entries in the old list;
-  unsigned entries;   // The number of entries in the old environment list
-  for (entries = 0; envp[entries] != NULL; entries++)
-    /*empty*/;
-
-  // Add one more entry for the NULL pointer that ends the list.
-  ++entries;
-
-  // If there are no entries at all, just return NULL.
-  if (entries == 0)
-    return NULL;
-
-  // Allocate a new environment list.
-  char **newenv = new char* [entries];
-  if ((newenv = new char* [entries]) == NULL)
-    return NULL;
-
-  // Make a copy of the list.  Don't forget the NULL that ends the list.
-  entries = 0;
-  while (envp[entries] != NULL) {
-    newenv[entries] = new char[strlen (envp[entries]) + 1];
-    strcpy (newenv[entries], envp[entries]);
-    ++entries;
-  }
-  newenv[entries] = NULL;
-
-  return newenv;
-}
-
-
-/// RemoveEnv - Remove the specified environment variable from the environment
-/// array.
-///
-/// Inputs:
-///  name - The name of the variable to remove.  It cannot be NULL.
-///  envp - The array of environment variables.  It cannot be NULL.
-///
-/// Notes:
-///  This is mainly done because functions to remove items from the environment
-///  are not available across all platforms.  In particular, Solaris does not
-///  seem to have an unsetenv() function or a setenv() function (or they are
-///  undocumented if they do exist).
-///
-static void RemoveEnv(const char * name, char ** const envp) {
-  for (unsigned index=0; envp[index] != NULL; index++) {
-    // Find the first equals sign in the array and make it an EOS character.
-    char *p = strchr (envp[index], '=');
-    if (p == NULL)
-      continue;
-    else
-      *p = '\0';
-
-    // Compare the two strings.  If they are equal, zap this string.
-    // Otherwise, restore it.
-    if (!strcmp(name, envp[index]))
-      *envp[index] = '\0';
-    else
-      *p = '=';
-  }
-
-  return;
-}
-
-/// GenerateBitcode - generates a bitcode file from the module provided
-void GenerateBitcode(Module* M, const std::string& FileName) {
-
-  if (Verbose)
-    outs() << "Generating Bitcode To " << FileName << '\n';
-
-  // Create the output file.
-  std::string ErrorInfo;
-  raw_fd_ostream Out(FileName.c_str(), ErrorInfo,
-                     raw_fd_ostream::F_Binary);
-  if (!ErrorInfo.empty())
-    PrintAndExit(ErrorInfo);
-
-  // Ensure that the bitcode file gets removed from the disk if we get a
-  // terminating signal.
-  sys::RemoveFileOnSignal(sys::Path(FileName));
-
-  // Write it out
-  WriteBitcodeToFile(M, Out);
-
-  // Close the bitcode file.
-  Out.close();
-}
-
-/// GenerateAssembly - generates a native assembly language source file from the
-/// specified bitcode file.
-///
-/// Inputs:
-///  InputFilename  - The name of the input bitcode file.
-///  OutputFilename - The name of the file to generate.
-///  llc            - The pathname to use for LLC.
-///  envp           - The environment to use when running LLC.
-///
-/// Return non-zero value on error.
-///
-static int GenerateAssembly(const std::string &OutputFilename,
-                            const std::string &InputFilename,
-                            const sys::Path &llc,
-                            std::string &ErrMsg ) {
-  // Run LLC to convert the bitcode file into assembly code.
-  std::vector<const char*> args;
-  args.push_back(llc.c_str());
-  // We will use GCC to assemble the program so set the assembly syntax to AT&T,
-  // regardless of what the target in the bitcode file is.
-  args.push_back("-x86-asm-syntax=att");
-  args.push_back("-f");
-  args.push_back("-o");
-  args.push_back(OutputFilename.c_str());
-  args.push_back(InputFilename.c_str());
-  args.push_back(0);
-
-  if (Verbose) {
-    outs() << "Generating Assembly With: \n";
-    PrintCommand(args);
-  }
-
-  return sys::Program::ExecuteAndWait(llc, &args[0], 0, 0, 0, 0, &ErrMsg);
-}
-
-/// GenerateCFile - generates a C source file from the specified bitcode file.
-static int GenerateCFile(const std::string &OutputFile,
-                         const std::string &InputFile,
-                         const sys::Path &llc,
-                         std::string& ErrMsg) {
-  // Run LLC to convert the bitcode file into C.
-  std::vector<const char*> args;
-  args.push_back(llc.c_str());
-  args.push_back("-march=c");
-  args.push_back("-f");
-  args.push_back("-o");
-  args.push_back(OutputFile.c_str());
-  args.push_back(InputFile.c_str());
-  args.push_back(0);
-
-  if (Verbose) {
-    outs() << "Generating C Source With: \n";
-    PrintCommand(args);
-  }
-
-  return sys::Program::ExecuteAndWait(llc, &args[0], 0, 0, 0, 0, &ErrMsg);
-}
-
-/// GenerateNative - generates a native object file from the
-/// specified bitcode file.
-///
-/// Inputs:
-///  InputFilename   - The name of the input bitcode file.
-///  OutputFilename  - The name of the file to generate.
-///  NativeLinkItems - The native libraries, files, code with which to link
-///  LibPaths        - The list of directories in which to find libraries.
-///  FrameworksPaths - The list of directories in which to find frameworks.
-///  Frameworks      - The list of frameworks (dynamic libraries)
-///  gcc             - The pathname to use for GGC.
-///  envp            - A copy of the process's current environment.
-///
-/// Outputs:
-///  None.
-///
-/// Returns non-zero value on error.
-///
-static int GenerateNative(const std::string &OutputFilename,
-                          const std::string &InputFilename,
-                          const Linker::ItemList &LinkItems,
-                          const sys::Path &gcc, char ** const envp,
-                          std::string& ErrMsg) {
-  // Remove these environment variables from the environment of the
-  // programs that we will execute.  It appears that GCC sets these
-  // environment variables so that the programs it uses can configure
-  // themselves identically.
-  //
-  // However, when we invoke GCC below, we want it to use its normal
-  // configuration.  Hence, we must sanitize its environment.
-  char ** clean_env = CopyEnv(envp);
-  if (clean_env == NULL)
-    return 1;
-  RemoveEnv("LIBRARY_PATH", clean_env);
-  RemoveEnv("COLLECT_GCC_OPTIONS", clean_env);
-  RemoveEnv("GCC_EXEC_PREFIX", clean_env);
-  RemoveEnv("COMPILER_PATH", clean_env);
-  RemoveEnv("COLLECT_GCC", clean_env);
-
-
-  // Run GCC to assemble and link the program into native code.
-  //
-  // Note:
-  //  We can't just assemble and link the file with the system assembler
-  //  and linker because we don't know where to put the _start symbol.
-  //  GCC mysteriously knows how to do it.
-  std::vector<std::string> args;
-  args.push_back(gcc.c_str());
-  args.push_back("-fno-strict-aliasing");
-  args.push_back("-O3");
-  args.push_back("-o");
-  args.push_back(OutputFilename);
-  args.push_back(InputFilename);
-
-  // Add in the library and framework paths
-  for (unsigned index = 0; index < LibPaths.size(); index++) {
-    args.push_back("-L" + LibPaths[index]);
-  }
-  for (unsigned index = 0; index < FrameworkPaths.size(); index++) {
-    args.push_back("-F" + FrameworkPaths[index]);
-  }
-
-  // Add the requested options
-  for (unsigned index = 0; index < XLinker.size(); index++)
-    args.push_back(XLinker[index]);
-
-  // Add in the libraries to link.
-  for (unsigned index = 0; index < LinkItems.size(); index++)
-    if (LinkItems[index].first != "crtend") {
-      if (LinkItems[index].second)
-        args.push_back("-l" + LinkItems[index].first);
-      else
-        args.push_back(LinkItems[index].first);
-    }
-
-  // Add in frameworks to link.
-  for (unsigned index = 0; index < Frameworks.size(); index++) {
-    args.push_back("-framework");
-    args.push_back(Frameworks[index]);
-  }
-      
-  // Now that "args" owns all the std::strings for the arguments, call the c_str
-  // method to get the underlying string array.  We do this game so that the
-  // std::string array is guaranteed to outlive the const char* array.
-  std::vector<const char *> Args;
-  for (unsigned i = 0, e = args.size(); i != e; ++i)
-    Args.push_back(args[i].c_str());
-  Args.push_back(0);
-
-  if (Verbose) {
-    outs() << "Generating Native Executable With:\n";
-    PrintCommand(Args);
-  }
-
-  // Run the compiler to assembly and link together the program.
-  int R = sys::Program::ExecuteAndWait(
-    gcc, &Args[0], (const char**)clean_env, 0, 0, 0, &ErrMsg);
-  delete [] clean_env;
-  return R;
-}
-
-/// EmitShellScript - Output the wrapper file that invokes the JIT on the LLVM
-/// bitcode file for the program.
-static void EmitShellScript(char **argv) {
-  if (Verbose)
-    outs() << "Emitting Shell Script\n";
-#if defined(_WIN32) || defined(__CYGWIN__)
-  // Windows doesn't support #!/bin/sh style shell scripts in .exe files.  To
-  // support windows systems, we copy the llvm-stub.exe executable from the
-  // build tree to the destination file.
-  std::string ErrMsg;  
-  sys::Path llvmstub = FindExecutable("llvm-stub.exe", argv[0],
-                                      (void *)(intptr_t)&Optimize);
-  if (llvmstub.isEmpty())
-    PrintAndExit("Could not find llvm-stub.exe executable!");
-
-  if (0 != sys::CopyFile(sys::Path(OutputFilename), llvmstub, &ErrMsg))
-    PrintAndExit(ErrMsg);
-
-  return;
-#endif
-
-  // Output the script to start the program...
-  std::string ErrorInfo;
-  raw_fd_ostream Out2(OutputFilename.c_str(), ErrorInfo);
-  if (!ErrorInfo.empty())
-    PrintAndExit(ErrorInfo);
-
-  Out2 << "#!/bin/sh\n";
-  // Allow user to setenv LLVMINTERP if lli is not in their PATH.
-  Out2 << "lli=${LLVMINTERP-lli}\n";
-  Out2 << "exec $lli \\\n";
-  // gcc accepts -l<lib> and implicitly searches /lib and /usr/lib.
-  LibPaths.push_back("/lib");
-  LibPaths.push_back("/usr/lib");
-  LibPaths.push_back("/usr/X11R6/lib");
-  // We don't need to link in libc! In fact, /usr/lib/libc.so may not be a
-  // shared object at all! See RH 8: plain text.
-  std::vector<std::string>::iterator libc =
-    std::find(Libraries.begin(), Libraries.end(), "c");
-  if (libc != Libraries.end()) Libraries.erase(libc);
-  // List all the shared object (native) libraries this executable will need
-  // on the command line, so that we don't have to do this manually!
-  for (std::vector<std::string>::iterator i = Libraries.begin(),
-         e = Libraries.end(); i != e; ++i) {
-    // try explicit -L arguments first:
-    sys::Path FullLibraryPath;
-    for (cl::list<std::string>::const_iterator P = LibPaths.begin(),
-           E = LibPaths.end(); P != E; ++P) {
-      FullLibraryPath = *P;
-      FullLibraryPath.appendComponent("lib" + *i);
-      FullLibraryPath.appendSuffix(&(LTDL_SHLIB_EXT[1]));
-      if (!FullLibraryPath.isEmpty()) {
-        if (!FullLibraryPath.isDynamicLibrary()) {
-          // Not a native shared library; mark as invalid
-          FullLibraryPath = sys::Path();
-        } else break;
-      }
-    }
-    if (FullLibraryPath.isEmpty())
-      FullLibraryPath = sys::Path::FindLibrary(*i);
-    if (!FullLibraryPath.isEmpty())
-      Out2 << "    -load=" << FullLibraryPath.str() << " \\\n";
-  }
-  Out2 << "    "  << BitcodeOutputFilename << " ${1+\"$@\"}\n";
-  Out2.close();
-}
-
-// BuildLinkItems -- This function generates a LinkItemList for the LinkItems
-// linker function by combining the Files and Libraries in the order they were
-// declared on the command line.
-static void BuildLinkItems(
-  Linker::ItemList& Items,
-  const cl::list<std::string>& Files,
-  const cl::list<std::string>& Libraries) {
-
-  // Build the list of linkage items for LinkItems.
-
-  cl::list<std::string>::const_iterator fileIt = Files.begin();
-  cl::list<std::string>::const_iterator libIt  = Libraries.begin();
-
-  int libPos = -1, filePos = -1;
-  while ( libIt != Libraries.end() || fileIt != Files.end() ) {
-    if (libIt != Libraries.end())
-      libPos = Libraries.getPosition(libIt - Libraries.begin());
-    else
-      libPos = -1;
-    if (fileIt != Files.end())
-      filePos = Files.getPosition(fileIt - Files.begin());
-    else
-      filePos = -1;
-
-    if (filePos != -1 && (libPos == -1 || filePos < libPos)) {
-      // Add a source file
-      Items.push_back(std::make_pair(*fileIt++, false));
-    } else if (libPos != -1 && (filePos == -1 || libPos < filePos)) {
-      // Add a library
-      Items.push_back(std::make_pair(*libIt++, true));
-    }
-  }
-}
-
-int main(int argc, char **argv, char **envp) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  try {
-    // Initial global variable above for convenience printing of program name.
-    progname = sys::Path(argv[0]).getBasename();
-
-    // Parse the command line options
-    cl::ParseCommandLineOptions(argc, argv, "llvm linker\n");
-
-    // Construct a Linker (now that Verbose is set)
-    Linker TheLinker(progname, OutputFilename, Context, Verbose);
-
-    // Keep track of the native link items (versus the bitcode items)
-    Linker::ItemList NativeLinkItems;
-
-    // Add library paths to the linker
-    TheLinker.addPaths(LibPaths);
-    TheLinker.addSystemPaths();
-
-    // Remove any consecutive duplicates of the same library...
-    Libraries.erase(std::unique(Libraries.begin(), Libraries.end()),
-                    Libraries.end());
-
-    if (LinkAsLibrary) {
-      std::vector<sys::Path> Files;
-      for (unsigned i = 0; i < InputFilenames.size(); ++i )
-        Files.push_back(sys::Path(InputFilenames[i]));
-      if (TheLinker.LinkInFiles(Files))
-        return 1; // Error already printed
-
-      // The libraries aren't linked in but are noted as "dependent" in the
-      // module.
-      for (cl::list<std::string>::const_iterator I = Libraries.begin(),
-           E = Libraries.end(); I != E ; ++I) {
-        TheLinker.getModule()->addLibrary(*I);
-      }
-    } else {
-      // Build a list of the items from our command line
-      Linker::ItemList Items;
-      BuildLinkItems(Items, InputFilenames, Libraries);
-
-      // Link all the items together
-      if (TheLinker.LinkInItems(Items, NativeLinkItems) )
-        return 1; // Error already printed
-    }
-
-    std::auto_ptr<Module> Composite(TheLinker.releaseModule());
-
-    // Optimize the module
-    Optimize(Composite.get());
-
-#if defined(_WIN32) || defined(__CYGWIN__)
-    if (!LinkAsLibrary) {
-      // Default to "a.exe" instead of "a.out".
-      if (OutputFilename.getNumOccurrences() == 0)
-        OutputFilename = "a.exe";
-
-      // If there is no suffix add an "exe" one.
-      sys::Path ExeFile( OutputFilename );
-      if (ExeFile.getSuffix() == "") {
-        ExeFile.appendSuffix("exe");
-        OutputFilename = ExeFile.str();
-      }
-    }
-#endif
-
-    // Generate the bitcode for the optimized module.
-    // If -b wasn't specified, use the name specified
-    // with -o to construct BitcodeOutputFilename.
-    if (BitcodeOutputFilename.empty()) {
-      BitcodeOutputFilename = OutputFilename;
-      if (!LinkAsLibrary) BitcodeOutputFilename += ".bc";
-    }
-
-    GenerateBitcode(Composite.get(), BitcodeOutputFilename);
-
-    // If we are not linking a library, generate either a native executable
-    // or a JIT shell script, depending upon what the user wants.
-    if (!LinkAsLibrary) {
-      // If the user wants to run a post-link optimization, run it now.
-      if (!PostLinkOpts.empty()) {
-        std::vector<std::string> opts = PostLinkOpts;
-        for (std::vector<std::string>::iterator I = opts.begin(),
-             E = opts.end(); I != E; ++I) {
-          sys::Path prog(*I);
-          if (!prog.canExecute()) {
-            prog = sys::Program::FindProgramByName(*I);
-            if (prog.isEmpty())
-              PrintAndExit(std::string("Optimization program '") + *I +
-                "' is not found or not executable.");
-          }
-          // Get the program arguments
-          sys::Path tmp_output("opt_result");
-          std::string ErrMsg;
-          if (tmp_output.createTemporaryFileOnDisk(true, &ErrMsg))
-            PrintAndExit(ErrMsg);
-
-          const char* args[4];
-          args[0] = I->c_str();
-          args[1] = BitcodeOutputFilename.c_str();
-          args[2] = tmp_output.c_str();
-          args[3] = 0;
-          if (0 == sys::Program::ExecuteAndWait(prog, args, 0,0,0,0, &ErrMsg)) {
-            if (tmp_output.isBitcodeFile() || tmp_output.isBitcodeFile()) {
-              sys::Path target(BitcodeOutputFilename);
-              target.eraseFromDisk();
-              if (tmp_output.renamePathOnDisk(target, &ErrMsg))
-                PrintAndExit(ErrMsg, 2);
-            } else
-              PrintAndExit("Post-link optimization output is not bitcode");
-          } else {
-            PrintAndExit(ErrMsg);
-          }
-        }
-      }
-
-      // If the user wants to generate a native executable, compile it from the
-      // bitcode file.
-      //
-      // Otherwise, create a script that will run the bitcode through the JIT.
-      if (Native) {
-        // Name of the Assembly Language output file
-        sys::Path AssemblyFile ( OutputFilename);
-        AssemblyFile.appendSuffix("s");
-
-        // Mark the output files for removal if we get an interrupt.
-        sys::RemoveFileOnSignal(AssemblyFile);
-        sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
-        // Determine the locations of the llc and gcc programs.
-        sys::Path llc = FindExecutable("llc", argv[0],
-                                       (void *)(intptr_t)&Optimize);
-        if (llc.isEmpty())
-          PrintAndExit("Failed to find llc");
-
-        sys::Path gcc = sys::Program::FindProgramByName("gcc");
-        if (gcc.isEmpty())
-          PrintAndExit("Failed to find gcc");
-
-        // Generate an assembly language file for the bitcode.
-        std::string ErrMsg;
-        if (0 != GenerateAssembly(AssemblyFile.str(), BitcodeOutputFilename,
-            llc, ErrMsg))
-          PrintAndExit(ErrMsg);
-
-        if (0 != GenerateNative(OutputFilename, AssemblyFile.str(),
-                                NativeLinkItems, gcc, envp, ErrMsg))
-          PrintAndExit(ErrMsg);
-
-        // Remove the assembly language file.
-        AssemblyFile.eraseFromDisk();
-      } else if (NativeCBE) {
-        sys::Path CFile (OutputFilename);
-        CFile.appendSuffix("cbe.c");
-
-        // Mark the output files for removal if we get an interrupt.
-        sys::RemoveFileOnSignal(CFile);
-        sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
-        // Determine the locations of the llc and gcc programs.
-        sys::Path llc = FindExecutable("llc", argv[0],
-                                       (void *)(intptr_t)&Optimize);
-        if (llc.isEmpty())
-          PrintAndExit("Failed to find llc");
-
-        sys::Path gcc = sys::Program::FindProgramByName("gcc");
-        if (gcc.isEmpty())
-          PrintAndExit("Failed to find gcc");
-
-        // Generate an assembly language file for the bitcode.
-        std::string ErrMsg;
-        if (GenerateCFile(CFile.str(), BitcodeOutputFilename, llc, ErrMsg))
-          PrintAndExit(ErrMsg);
-
-        if (GenerateNative(OutputFilename, CFile.str(), 
-                           NativeLinkItems, gcc, envp, ErrMsg))
-          PrintAndExit(ErrMsg);
-
-        // Remove the assembly language file.
-        CFile.eraseFromDisk();
-
-      } else {
-        EmitShellScript(argv);
-      }
-
-      // Make the script executable...
-      std::string ErrMsg;
-      if (sys::Path(OutputFilename).makeExecutableOnDisk(&ErrMsg))
-        PrintAndExit(ErrMsg);
-
-      // Make the bitcode file readable and directly executable in LLEE as well
-      if (sys::Path(BitcodeOutputFilename).makeExecutableOnDisk(&ErrMsg))
-        PrintAndExit(ErrMsg);
-
-      if (sys::Path(BitcodeOutputFilename).makeReadableOnDisk(&ErrMsg))
-        PrintAndExit(ErrMsg);
-    }
-  } catch (const std::string& msg) {
-    PrintAndExit(msg,2);
-  } catch (...) {
-    PrintAndExit("Unexpected unknown exception occurred.", 2);
-  }
-
-  // Graceful exit
-  return 0;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-link/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-link/CMakeLists.txt
deleted file mode 100644
index 69a435e..0000000
--- a/libclamav/c++/llvm/tools/llvm-link/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(LLVM_LINK_COMPONENTS linker bitreader bitwriter)
-
-add_llvm_tool(llvm-link
-  llvm-link.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-link/Makefile b/libclamav/c++/llvm/tools/llvm-link/Makefile
deleted file mode 100644
index ddc7a59..0000000
--- a/libclamav/c++/llvm/tools/llvm-link/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- tools/llvm-link/Makefile ----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-
-TOOLNAME = llvm-link
-LINK_COMPONENTS = linker bitreader bitwriter
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-link/llvm-link.cpp b/libclamav/c++/llvm/tools/llvm-link/llvm-link.cpp
deleted file mode 100644
index 14327af..0000000
--- a/libclamav/c++/llvm/tools/llvm-link/llvm-link.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//===- llvm-link.cpp - Low-level LLVM linker ------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This utility may be invoked in the following manner:
-//  llvm-link a.bc b.bc c.bc -o x.bc
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Linker.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/System/Signals.h"
-#include "llvm/System/Path.h"
-#include <memory>
-using namespace llvm;
-
-static cl::list<std::string>
-InputFilenames(cl::Positional, cl::OneOrMore,
-               cl::desc("<input bitcode files>"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Override output filename"), cl::init("-"),
-               cl::value_desc("filename"));
-
-static cl::opt<bool>
-Force("f", cl::desc("Enable binary output on terminals"));
-
-static cl::opt<bool>
-Verbose("v", cl::desc("Print information about actions taken"));
-
-static cl::opt<bool>
-DumpAsm("d", cl::desc("Print assembly as linked"), cl::Hidden);
-
-// LoadFile - Read the specified bitcode file in and return it.  This routine
-// searches the link path for the specified file to try to find it...
-//
-static inline std::auto_ptr<Module> LoadFile(const std::string &FN, 
-                                             LLVMContext& Context) {
-  sys::Path Filename;
-  if (!Filename.set(FN)) {
-    errs() << "Invalid file name: '" << FN << "'\n";
-    return std::auto_ptr<Module>();
-  }
-
-  std::string ErrorMessage;
-  if (Filename.exists()) {
-    if (Verbose) errs() << "Loading '" << Filename.c_str() << "'\n";
-    Module* Result = 0;
-    
-    const std::string &FNStr = Filename.str();
-    if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(FNStr,
-                                                            &ErrorMessage)) {
-      Result = ParseBitcodeFile(Buffer, Context, &ErrorMessage);
-      delete Buffer;
-    }
-    if (Result) return std::auto_ptr<Module>(Result);   // Load successful!
-
-    if (Verbose) {
-      errs() << "Error opening bitcode file: '" << Filename.c_str() << "'";
-      if (ErrorMessage.size()) errs() << ": " << ErrorMessage;
-      errs() << "\n";
-    }
-  } else {
-    errs() << "Bitcode file: '" << Filename.c_str() << "' does not exist.\n";
-  }
-
-  return std::auto_ptr<Module>();
-}
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-  
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, "llvm linker\n");
-
-  unsigned BaseArg = 0;
-  std::string ErrorMessage;
-
-  std::auto_ptr<Module> Composite(LoadFile(InputFilenames[BaseArg], Context));
-  if (Composite.get() == 0) {
-    errs() << argv[0] << ": error loading file '"
-           << InputFilenames[BaseArg] << "'\n";
-    return 1;
-  }
-
-  for (unsigned i = BaseArg+1; i < InputFilenames.size(); ++i) {
-    std::auto_ptr<Module> M(LoadFile(InputFilenames[i], Context));
-    if (M.get() == 0) {
-      errs() << argv[0] << ": error loading file '" <<InputFilenames[i]<< "'\n";
-      return 1;
-    }
-
-    if (Verbose) errs() << "Linking in '" << InputFilenames[i] << "'\n";
-
-    if (Linker::LinkModules(Composite.get(), M.get(), &ErrorMessage)) {
-      errs() << argv[0] << ": link error in '" << InputFilenames[i]
-             << "': " << ErrorMessage << "\n";
-      return 1;
-    }
-  }
-
-  // TODO: Iterate over the -l list and link in any modules containing
-  // global symbols that have not been resolved so far.
-
-  if (DumpAsm) errs() << "Here's the assembly:\n" << *Composite.get();
-
-  std::string ErrorInfo;
-  std::auto_ptr<raw_ostream> 
-  Out(new raw_fd_ostream(OutputFilename.c_str(), ErrorInfo,
-                         raw_fd_ostream::F_Binary));
-  if (!ErrorInfo.empty()) {
-    errs() << ErrorInfo << '\n';
-    return 1;
-  }
-
-    // Make sure that the Out file gets unlinked from the disk if we get a
-    // SIGINT
-  if (OutputFilename != "-")
-    sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
-  if (verifyModule(*Composite.get())) {
-    errs() << argv[0] << ": linked module is broken!\n";
-    return 1;
-  }
-
-  if (Verbose) errs() << "Writing bitcode...\n";
-  if (Force || !CheckBitcodeOutputToConsole(*Out, true))
-    WriteBitcodeToFile(Composite.get(), *Out);
-
-  return 0;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-mc/AsmCond.h b/libclamav/c++/llvm/tools/llvm-mc/AsmCond.h
deleted file mode 100644
index 92a115e..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/AsmCond.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===- AsmCond.h - Assembly file conditional assembly  ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ASMCOND_H
-#define ASMCOND_H
-
-namespace llvm {
-
-/// AsmCond - Class to support conditional assembly
-///
-/// The conditional assembly feature (.if, .else, .elseif and .endif) is
-/// implemented with AsmCond that tells us what we are in the middle of 
-/// processing.  Ignore can be either true or false.  When true we are ignoring
-/// the block of code in the middle of a conditional.
-
-class AsmCond {
-public:
-  enum ConditionalAssemblyType {
-    NoCond,     // no conditional is being processed
-    IfCond,     // inside if conditional
-    ElseIfCond, // inside elseif conditional
-    ElseCond    // inside else conditional
-  };
-
-  ConditionalAssemblyType TheCond;
-  bool CondMet;
-  bool Ignore;
-
-  AsmCond() : TheCond(NoCond), CondMet(false), Ignore(false) {}
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/tools/llvm-mc/AsmLexer.cpp b/libclamav/c++/llvm/tools/llvm-mc/AsmLexer.cpp
deleted file mode 100644
index 27454ee..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/AsmLexer.cpp
+++ /dev/null
@@ -1,332 +0,0 @@
-//===- AsmLexer.cpp - Lexer for Assembly Files ----------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class implements the lexer for assembly files.
-//
-//===----------------------------------------------------------------------===//
-
-#include "AsmLexer.h"
-#include "llvm/Support/SourceMgr.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Config/config.h"  // for strtoull.
-#include <cerrno>
-#include <cstdio>
-#include <cstdlib>
-using namespace llvm;
-
-AsmLexer::AsmLexer(SourceMgr &SM) : SrcMgr(SM)  {
-  CurBuffer = 0;
-  CurBuf = SrcMgr.getMemoryBuffer(CurBuffer);
-  CurPtr = CurBuf->getBufferStart();
-  TokStart = 0;
-}
-
-AsmLexer::~AsmLexer() {
-}
-
-SMLoc AsmLexer::getLoc() const {
-  return SMLoc::getFromPointer(TokStart);
-}
-
-void AsmLexer::PrintMessage(SMLoc Loc, const std::string &Msg, 
-                            const char *Type) const {
-  SrcMgr.PrintMessage(Loc, Msg, Type);
-}
-
-/// ReturnError - Set the error to the specified string at the specified
-/// location.  This is defined to always return AsmToken::Error.
-AsmToken AsmLexer::ReturnError(const char *Loc, const std::string &Msg) {
-  SrcMgr.PrintMessage(SMLoc::getFromPointer(Loc), Msg, "error");
-  return AsmToken(AsmToken::Error, StringRef(Loc, 0));
-}
-
-/// EnterIncludeFile - Enter the specified file.  This prints an error and
-/// returns true on failure.
-bool AsmLexer::EnterIncludeFile(const std::string &Filename) {
-  int NewBuf = SrcMgr.AddIncludeFile(Filename, SMLoc::getFromPointer(CurPtr));
-  if (NewBuf == -1)
-    return true;
-  
-  // Save the line number and lex buffer of the includer.
-  CurBuffer = NewBuf;
-  CurBuf = SrcMgr.getMemoryBuffer(CurBuffer);
-  CurPtr = CurBuf->getBufferStart();
-  return false;
-}
-
-
-int AsmLexer::getNextChar() {
-  char CurChar = *CurPtr++;
-  switch (CurChar) {
-  default:
-    return (unsigned char)CurChar;
-  case 0: {
-    // A nul character in the stream is either the end of the current buffer or
-    // a random nul in the file.  Disambiguate that here.
-    if (CurPtr-1 != CurBuf->getBufferEnd())
-      return 0;  // Just whitespace.
-    
-    // If this is the end of an included file, pop the parent file off the
-    // include stack.
-    SMLoc ParentIncludeLoc = SrcMgr.getParentIncludeLoc(CurBuffer);
-    if (ParentIncludeLoc != SMLoc()) {
-      CurBuffer = SrcMgr.FindBufferContainingLoc(ParentIncludeLoc);
-      CurBuf = SrcMgr.getMemoryBuffer(CurBuffer);
-      CurPtr = ParentIncludeLoc.getPointer();
-      
-      // Reset the token start pointer to the start of the new file.
-      TokStart = CurPtr;
-      
-      return getNextChar();
-    }
-    
-    // Otherwise, return end of file.
-    --CurPtr;  // Another call to lex will return EOF again.  
-    return EOF;
-  }
-  }
-}
-
-/// LexIdentifier: [a-zA-Z_.][a-zA-Z0-9_$.@]*
-AsmToken AsmLexer::LexIdentifier() {
-  while (isalnum(*CurPtr) || *CurPtr == '_' || *CurPtr == '$' ||
-         *CurPtr == '.' || *CurPtr == '@')
-    ++CurPtr;
-  return AsmToken(AsmToken::Identifier, StringRef(TokStart, CurPtr - TokStart));
-}
-
-/// LexPercent: Register: %[a-zA-Z0-9]+
-AsmToken AsmLexer::LexPercent() {
-  if (!isalnum(*CurPtr))
-    return AsmToken(AsmToken::Percent, StringRef(CurPtr, 1));  // Single %.
-  
-  while (isalnum(*CurPtr))
-    ++CurPtr;
-  
-  return AsmToken(AsmToken::Register, StringRef(TokStart, CurPtr - TokStart));
-}
-
-/// LexSlash: Slash: /
-///           C-Style Comment: /* ... */
-AsmToken AsmLexer::LexSlash() {
-  switch (*CurPtr) {
-  case '*': break; // C style comment.
-  case '/': return ++CurPtr, LexLineComment();
-  default:  return AsmToken(AsmToken::Slash, StringRef(CurPtr, 1));
-  }
-
-  // C Style comment.
-  ++CurPtr;  // skip the star.
-  while (1) {
-    int CurChar = getNextChar();
-    switch (CurChar) {
-    case EOF:
-      return ReturnError(TokStart, "unterminated comment");
-    case '*':
-      // End of the comment?
-      if (CurPtr[0] != '/') break;
-      
-      ++CurPtr;   // End the */.
-      return LexToken();
-    }
-  }
-}
-
-/// LexLineComment: Comment: #[^\n]*
-///                        : //[^\n]*
-AsmToken AsmLexer::LexLineComment() {
-  // FIXME: This is broken if we happen to a comment at the end of a file, which
-  // was .included, and which doesn't end with a newline.
-  int CurChar = getNextChar();
-  while (CurChar != '\n' && CurChar != '\n' && CurChar != EOF)
-    CurChar = getNextChar();
-  
-  if (CurChar == EOF)
-    return AsmToken(AsmToken::Eof, StringRef(CurPtr, 0));
-  return AsmToken(AsmToken::EndOfStatement, StringRef(CurPtr, 0));
-}
-
-
-/// LexDigit: First character is [0-9].
-///   Local Label: [0-9][:]
-///   Forward/Backward Label: [0-9][fb]
-///   Binary integer: 0b[01]+
-///   Octal integer: 0[0-7]+
-///   Hex integer: 0x[0-9a-fA-F]+
-///   Decimal integer: [1-9][0-9]*
-/// TODO: FP literal.
-AsmToken AsmLexer::LexDigit() {
-  if (*CurPtr == ':')
-    return ReturnError(TokStart, "FIXME: local label not implemented");
-  if (*CurPtr == 'f' || *CurPtr == 'b')
-    return ReturnError(TokStart, "FIXME: directional label not implemented");
-  
-  // Decimal integer: [1-9][0-9]*
-  if (CurPtr[-1] != '0') {
-    while (isdigit(*CurPtr))
-      ++CurPtr;
-    return AsmToken(AsmToken::Integer, StringRef(TokStart, CurPtr - TokStart), 
-                    strtoll(TokStart, 0, 10));
-  }
-  
-  if (*CurPtr == 'b') {
-    ++CurPtr;
-    const char *NumStart = CurPtr;
-    while (CurPtr[0] == '0' || CurPtr[0] == '1')
-      ++CurPtr;
-    
-    // Requires at least one binary digit.
-    if (CurPtr == NumStart)
-      return ReturnError(CurPtr-2, "Invalid binary number");
-    return AsmToken(AsmToken::Integer, StringRef(TokStart, CurPtr - TokStart),
-                    strtoll(NumStart, 0, 2));
-  }
- 
-  if (*CurPtr == 'x') {
-    ++CurPtr;
-    const char *NumStart = CurPtr;
-    while (isxdigit(CurPtr[0]))
-      ++CurPtr;
-    
-    // Requires at least one hex digit.
-    if (CurPtr == NumStart)
-      return ReturnError(CurPtr-2, "Invalid hexadecimal number");
-    
-    errno = 0;
-    if (errno == EINVAL)
-      return ReturnError(CurPtr-2, "Invalid hexadecimal number");
-    if (errno == ERANGE) {
-      errno = 0;
-      if (errno == EINVAL)
-        return ReturnError(CurPtr-2, "Invalid hexadecimal number");
-      if (errno == ERANGE)
-        return ReturnError(CurPtr-2, "Hexadecimal number out of range");
-    }
-    return AsmToken(AsmToken::Integer, StringRef(TokStart, CurPtr - TokStart),
-                    (int64_t) strtoull(NumStart, 0, 16));
-  }
-  
-  // Must be an octal number, it starts with 0.
-  while (*CurPtr >= '0' && *CurPtr <= '7')
-    ++CurPtr;
-  return AsmToken(AsmToken::Integer, StringRef(TokStart, CurPtr - TokStart),
-                  strtoll(TokStart, 0, 8));
-}
-
-/// LexQuote: String: "..."
-AsmToken AsmLexer::LexQuote() {
-  int CurChar = getNextChar();
-  // TODO: does gas allow multiline string constants?
-  while (CurChar != '"') {
-    if (CurChar == '\\') {
-      // Allow \", etc.
-      CurChar = getNextChar();
-    }
-    
-    if (CurChar == EOF)
-      return ReturnError(TokStart, "unterminated string constant");
-
-    CurChar = getNextChar();
-  }
-  
-  return AsmToken(AsmToken::String, StringRef(TokStart, CurPtr - TokStart));
-}
-
-StringRef AsmLexer::LexUntilEndOfStatement() {
-  TokStart = CurPtr;
-
-  while (*CurPtr != '#' &&  // Start of line comment.
-         *CurPtr != ';' &&  // End of statement marker.
-         *CurPtr != '\n' &&
-         *CurPtr != '\r' &&
-         (*CurPtr != 0 || CurPtr != CurBuf->getBufferEnd()))
-    ++CurPtr;
-  return StringRef(TokStart, CurPtr-TokStart);
-}
-
-AsmToken AsmLexer::LexToken() {
-  TokStart = CurPtr;
-  // This always consumes at least one character.
-  int CurChar = getNextChar();
-  
-  switch (CurChar) {
-  default:
-    // Handle identifier: [a-zA-Z_.][a-zA-Z0-9_$.@]*
-    if (isalpha(CurChar) || CurChar == '_' || CurChar == '.')
-      return LexIdentifier();
-    
-    // Unknown character, emit an error.
-    return ReturnError(TokStart, "invalid character in input");
-  case EOF: return AsmToken(AsmToken::Eof, StringRef(TokStart, 0));
-  case 0:
-  case ' ':
-  case '\t':
-    // Ignore whitespace.
-    return LexToken();
-  case '\n': // FALL THROUGH.
-  case '\r': // FALL THROUGH.
-  case ';': return AsmToken(AsmToken::EndOfStatement, StringRef(TokStart, 1));
-  case ':': return AsmToken(AsmToken::Colon, StringRef(TokStart, 1));
-  case '+': return AsmToken(AsmToken::Plus, StringRef(TokStart, 1));
-  case '-': return AsmToken(AsmToken::Minus, StringRef(TokStart, 1));
-  case '~': return AsmToken(AsmToken::Tilde, StringRef(TokStart, 1));
-  case '(': return AsmToken(AsmToken::LParen, StringRef(TokStart, 1));
-  case ')': return AsmToken(AsmToken::RParen, StringRef(TokStart, 1));
-  case '*': return AsmToken(AsmToken::Star, StringRef(TokStart, 1));
-  case ',': return AsmToken(AsmToken::Comma, StringRef(TokStart, 1));
-  case '$': return AsmToken(AsmToken::Dollar, StringRef(TokStart, 1));
-  case '=': 
-    if (*CurPtr == '=')
-      return ++CurPtr, AsmToken(AsmToken::EqualEqual, StringRef(TokStart, 2));
-    return AsmToken(AsmToken::Equal, StringRef(TokStart, 1));
-  case '|': 
-    if (*CurPtr == '|')
-      return ++CurPtr, AsmToken(AsmToken::PipePipe, StringRef(TokStart, 2));
-    return AsmToken(AsmToken::Pipe, StringRef(TokStart, 1));
-  case '^': return AsmToken(AsmToken::Caret, StringRef(TokStart, 1));
-  case '&': 
-    if (*CurPtr == '&')
-      return ++CurPtr, AsmToken(AsmToken::AmpAmp, StringRef(TokStart, 2));
-    return AsmToken(AsmToken::Amp, StringRef(TokStart, 1));
-  case '!': 
-    if (*CurPtr == '=')
-      return ++CurPtr, AsmToken(AsmToken::ExclaimEqual, StringRef(TokStart, 2));
-    return AsmToken(AsmToken::Exclaim, StringRef(TokStart, 1));
-  case '%': return LexPercent();
-  case '/': return LexSlash();
-  case '#': return LexLineComment();
-  case '"': return LexQuote();
-  case '0': case '1': case '2': case '3': case '4':
-  case '5': case '6': case '7': case '8': case '9':
-    return LexDigit();
-  case '<':
-    switch (*CurPtr) {
-    case '<': return ++CurPtr, AsmToken(AsmToken::LessLess, 
-                                        StringRef(TokStart, 2));
-    case '=': return ++CurPtr, AsmToken(AsmToken::LessEqual, 
-                                        StringRef(TokStart, 2));
-    case '>': return ++CurPtr, AsmToken(AsmToken::LessGreater, 
-                                        StringRef(TokStart, 2));
-    default: return AsmToken(AsmToken::Less, StringRef(TokStart, 1));
-    }
-  case '>':
-    switch (*CurPtr) {
-    case '>': return ++CurPtr, AsmToken(AsmToken::GreaterGreater, 
-                                        StringRef(TokStart, 2));
-    case '=': return ++CurPtr, AsmToken(AsmToken::GreaterEqual, 
-                                        StringRef(TokStart, 2));
-    default: return AsmToken(AsmToken::Greater, StringRef(TokStart, 1));
-    }
-      
-  // TODO: Quoted identifiers (objc methods etc)
-  // local labels: [0-9][:]
-  // Forward/backward labels: [0-9][fb]
-  // Integers, fp constants, character constants.
-  }
-}
diff --git a/libclamav/c++/llvm/tools/llvm-mc/AsmLexer.h b/libclamav/c++/llvm/tools/llvm-mc/AsmLexer.h
deleted file mode 100644
index 905ff75..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/AsmLexer.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//===- AsmLexer.h - Lexer for Assembly Files --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class declares the lexer for assembly files.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ASMLEXER_H
-#define ASMLEXER_H
-
-#include "llvm/ADT/StringRef.h"
-#include "llvm/MC/MCAsmLexer.h"
-#include "llvm/Support/DataTypes.h"
-#include <string>
-#include <cassert>
-
-namespace llvm {
-class MemoryBuffer;
-class SourceMgr;
-class SMLoc;
-
-/// AsmLexer - Lexer class for assembly files.
-class AsmLexer : public MCAsmLexer {
-  SourceMgr &SrcMgr;
-  
-  const char *CurPtr;
-  const MemoryBuffer *CurBuf;
-  
-  const char *TokStart;
-
-  /// This is the current buffer index we're lexing from as managed by the
-  /// SourceMgr object.
-  int CurBuffer;
-  
-  void operator=(const AsmLexer&); // DO NOT IMPLEMENT
-  AsmLexer(const AsmLexer&);       // DO NOT IMPLEMENT
-
-protected:
-  /// LexToken - Read the next token and return its code.
-  virtual AsmToken LexToken();
-
-public:
-  AsmLexer(SourceMgr &SrcMgr);
-  ~AsmLexer();
-  
-  SMLoc getLoc() const;
-  
-  StringRef LexUntilEndOfStatement();
-  
-
-  /// EnterIncludeFile - Enter the specified file. This returns true on failure.
-  bool EnterIncludeFile(const std::string &Filename);
-  
-  void PrintMessage(SMLoc Loc, const std::string &Msg, const char *Type) const;
-  
-private:
-  int getNextChar();
-  AsmToken ReturnError(const char *Loc, const std::string &Msg);
-
-  AsmToken LexIdentifier();
-  AsmToken LexPercent();
-  AsmToken LexSlash();
-  AsmToken LexLineComment();
-  AsmToken LexDigit();
-  AsmToken LexQuote();
-};
-  
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/tools/llvm-mc/AsmParser.cpp b/libclamav/c++/llvm/tools/llvm-mc/AsmParser.cpp
deleted file mode 100644
index a782561..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/AsmParser.cpp
+++ /dev/null
@@ -1,1673 +0,0 @@
-//===- AsmParser.cpp - Parser for Assembly Files --------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class implements the parser for assembly files.
-//
-//===----------------------------------------------------------------------===//
-
-#include "AsmParser.h"
-
-#include "llvm/ADT/SmallString.h"
-#include "llvm/ADT/Twine.h"
-#include "llvm/MC/MCContext.h"
-#include "llvm/MC/MCExpr.h"
-#include "llvm/MC/MCInst.h"
-#include "llvm/MC/MCSectionMachO.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/MC/MCSymbol.h"
-#include "llvm/Support/SourceMgr.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/Target/TargetAsmParser.h"
-using namespace llvm;
-
-// Mach-O section uniquing.
-//
-// FIXME: Figure out where this should live, it should be shared by
-// TargetLoweringObjectFile.
-typedef StringMap<const MCSectionMachO*> MachOUniqueMapTy;
-
-AsmParser::~AsmParser() {
-  // If we have the MachO uniquing map, free it.
-  delete (MachOUniqueMapTy*)SectionUniquingMap;
-}
-
-const MCSection *AsmParser::getMachOSection(const StringRef &Segment,
-                                            const StringRef &Section,
-                                            unsigned TypeAndAttributes,
-                                            unsigned Reserved2,
-                                            SectionKind Kind) const {
-  // We unique sections by their segment/section pair.  The returned section
-  // may not have the same flags as the requested section, if so this should be
-  // diagnosed by the client as an error.
-  
-  // Create the map if it doesn't already exist.
-  if (SectionUniquingMap == 0)
-    SectionUniquingMap = new MachOUniqueMapTy();
-  MachOUniqueMapTy &Map = *(MachOUniqueMapTy*)SectionUniquingMap;
-  
-  // Form the name to look up.
-  SmallString<64> Name;
-  Name += Segment;
-  Name.push_back(',');
-  Name += Section;
-
-  // Do the lookup, if we have a hit, return it.
-  const MCSectionMachO *&Entry = Map[Name.str()];
-
-  // FIXME: This should validate the type and attributes.
-  if (Entry) return Entry;
-
-  // Otherwise, return a new section.
-  return Entry = MCSectionMachO::Create(Segment, Section, TypeAndAttributes,
-                                        Reserved2, Kind, Ctx);
-}
-
-void AsmParser::Warning(SMLoc L, const Twine &Msg) {
-  Lexer.PrintMessage(L, Msg.str(), "warning");
-}
-
-bool AsmParser::Error(SMLoc L, const Twine &Msg) {
-  Lexer.PrintMessage(L, Msg.str(), "error");
-  return true;
-}
-
-bool AsmParser::TokError(const char *Msg) {
-  Lexer.PrintMessage(Lexer.getLoc(), Msg, "error");
-  return true;
-}
-
-bool AsmParser::Run() {
-  // Create the initial section.
-  //
-  // FIXME: Support -n.
-  // FIXME: Target hook & command line option for initial section.
-  Out.SwitchSection(getMachOSection("__TEXT", "__text",
-                                    MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS,
-                                    0, SectionKind()));
-
-
-  // Prime the lexer.
-  Lexer.Lex();
-  
-  bool HadError = false;
-  
-  AsmCond StartingCondState = TheCondState;
-
-  // While we have input, parse each statement.
-  while (Lexer.isNot(AsmToken::Eof)) {
-    // Handle conditional assembly here before calling ParseStatement()
-    if (Lexer.getKind() == AsmToken::Identifier) {
-      // If we have an identifier, handle it as the key symbol.
-      AsmToken ID = Lexer.getTok();
-      SMLoc IDLoc = ID.getLoc();
-      StringRef IDVal = ID.getString();
-
-      if (IDVal == ".if" ||
-          IDVal == ".elseif" ||
-          IDVal == ".else" ||
-          IDVal == ".endif") {
-        if (!ParseConditionalAssemblyDirectives(IDVal, IDLoc))
-          continue;
-	HadError = true;
-	EatToEndOfStatement();
-	continue;
-      }
-    }
-    if (TheCondState.Ignore) {
-      EatToEndOfStatement();
-      continue;
-    }
-
-    if (!ParseStatement()) continue;
-  
-    // We had an error, remember it and recover by skipping to the next line.
-    HadError = true;
-    EatToEndOfStatement();
-  }
-
-  if (TheCondState.TheCond != StartingCondState.TheCond ||
-      TheCondState.Ignore != StartingCondState.Ignore)
-    return TokError("unmatched .ifs or .elses");
-  
-  if (!HadError)  
-    Out.Finish();
-
-  return HadError;
-}
-
-/// ParseConditionalAssemblyDirectives - parse the conditional assembly
-/// directives
-bool AsmParser::ParseConditionalAssemblyDirectives(StringRef Directive,
-                                                   SMLoc DirectiveLoc) {
-  if (Directive == ".if")
-    return ParseDirectiveIf(DirectiveLoc);
-  if (Directive == ".elseif")
-    return ParseDirectiveElseIf(DirectiveLoc);
-  if (Directive == ".else")
-    return ParseDirectiveElse(DirectiveLoc);
-  if (Directive == ".endif")
-    return ParseDirectiveEndIf(DirectiveLoc);
-  return true;
-}
-
-/// EatToEndOfStatement - Throw away the rest of the line for testing purposes.
-void AsmParser::EatToEndOfStatement() {
-  while (Lexer.isNot(AsmToken::EndOfStatement) &&
-         Lexer.isNot(AsmToken::Eof))
-    Lexer.Lex();
-  
-  // Eat EOL.
-  if (Lexer.is(AsmToken::EndOfStatement))
-    Lexer.Lex();
-}
-
-
-/// ParseParenExpr - Parse a paren expression and return it.
-/// NOTE: This assumes the leading '(' has already been consumed.
-///
-/// parenexpr ::= expr)
-///
-bool AsmParser::ParseParenExpr(const MCExpr *&Res) {
-  if (ParseExpression(Res)) return true;
-  if (Lexer.isNot(AsmToken::RParen))
-    return TokError("expected ')' in parentheses expression");
-  Lexer.Lex();
-  return false;
-}
-
-MCSymbol *AsmParser::CreateSymbol(StringRef Name) {
-  if (MCSymbol *S = Ctx.LookupSymbol(Name))
-    return S;
-
-  // If the label starts with L it is an assembler temporary label.
-  if (Name.startswith("L"))
-    return Ctx.CreateTemporarySymbol(Name);
-
-  return Ctx.CreateSymbol(Name);
-}
-
-/// ParsePrimaryExpr - Parse a primary expression and return it.
-///  primaryexpr ::= (parenexpr
-///  primaryexpr ::= symbol
-///  primaryexpr ::= number
-///  primaryexpr ::= ~,+,- primaryexpr
-bool AsmParser::ParsePrimaryExpr(const MCExpr *&Res) {
-  switch (Lexer.getKind()) {
-  default:
-    return TokError("unknown token in expression");
-  case AsmToken::Exclaim:
-    Lexer.Lex(); // Eat the operator.
-    if (ParsePrimaryExpr(Res))
-      return true;
-    Res = MCUnaryExpr::CreateLNot(Res, getContext());
-    return false;
-  case AsmToken::String:
-  case AsmToken::Identifier: {
-    // This is a label, this should be parsed as part of an expression, to
-    // handle things like LFOO+4.
-    MCSymbol *Sym = CreateSymbol(Lexer.getTok().getIdentifier());
-    
-    Res = MCSymbolRefExpr::Create(Sym, getContext());
-    Lexer.Lex(); // Eat identifier.
-    return false;
-  }
-  case AsmToken::Integer:
-    Res = MCConstantExpr::Create(Lexer.getTok().getIntVal(), getContext());
-    Lexer.Lex(); // Eat token.
-    return false;
-  case AsmToken::LParen:
-    Lexer.Lex(); // Eat the '('.
-    return ParseParenExpr(Res);
-  case AsmToken::Minus:
-    Lexer.Lex(); // Eat the operator.
-    if (ParsePrimaryExpr(Res))
-      return true;
-    Res = MCUnaryExpr::CreateMinus(Res, getContext());
-    return false;
-  case AsmToken::Plus:
-    Lexer.Lex(); // Eat the operator.
-    if (ParsePrimaryExpr(Res))
-      return true;
-    Res = MCUnaryExpr::CreatePlus(Res, getContext());
-    return false;
-  case AsmToken::Tilde:
-    Lexer.Lex(); // Eat the operator.
-    if (ParsePrimaryExpr(Res))
-      return true;
-    Res = MCUnaryExpr::CreateNot(Res, getContext());
-    return false;
-  }
-}
-
-/// ParseExpression - Parse an expression and return it.
-/// 
-///  expr ::= expr +,- expr          -> lowest.
-///  expr ::= expr |,^,&,! expr      -> middle.
-///  expr ::= expr *,/,%,<<,>> expr  -> highest.
-///  expr ::= primaryexpr
-///
-bool AsmParser::ParseExpression(const MCExpr *&Res) {
-  Res = 0;
-  return ParsePrimaryExpr(Res) ||
-         ParseBinOpRHS(1, Res);
-}
-
-bool AsmParser::ParseParenExpression(const MCExpr *&Res) {
-  if (ParseParenExpr(Res))
-    return true;
-
-  return false;
-}
-
-bool AsmParser::ParseAbsoluteExpression(int64_t &Res) {
-  const MCExpr *Expr;
-  
-  SMLoc StartLoc = Lexer.getLoc();
-  if (ParseExpression(Expr))
-    return true;
-
-  if (!Expr->EvaluateAsAbsolute(Ctx, Res))
-    return Error(StartLoc, "expected absolute expression");
-
-  return false;
-}
-
-static unsigned getBinOpPrecedence(AsmToken::TokenKind K, 
-                                   MCBinaryExpr::Opcode &Kind) {
-  switch (K) {
-  default:
-    return 0;    // not a binop.
-
-    // Lowest Precedence: &&, ||
-  case AsmToken::AmpAmp:
-    Kind = MCBinaryExpr::LAnd;
-    return 1;
-  case AsmToken::PipePipe:
-    Kind = MCBinaryExpr::LOr;
-    return 1;
-
-    // Low Precedence: +, -, ==, !=, <>, <, <=, >, >=
-  case AsmToken::Plus:
-    Kind = MCBinaryExpr::Add;
-    return 2;
-  case AsmToken::Minus:
-    Kind = MCBinaryExpr::Sub;
-    return 2;
-  case AsmToken::EqualEqual:
-    Kind = MCBinaryExpr::EQ;
-    return 2;
-  case AsmToken::ExclaimEqual:
-  case AsmToken::LessGreater:
-    Kind = MCBinaryExpr::NE;
-    return 2;
-  case AsmToken::Less:
-    Kind = MCBinaryExpr::LT;
-    return 2;
-  case AsmToken::LessEqual:
-    Kind = MCBinaryExpr::LTE;
-    return 2;
-  case AsmToken::Greater:
-    Kind = MCBinaryExpr::GT;
-    return 2;
-  case AsmToken::GreaterEqual:
-    Kind = MCBinaryExpr::GTE;
-    return 2;
-
-    // Intermediate Precedence: |, &, ^
-    //
-    // FIXME: gas seems to support '!' as an infix operator?
-  case AsmToken::Pipe:
-    Kind = MCBinaryExpr::Or;
-    return 3;
-  case AsmToken::Caret:
-    Kind = MCBinaryExpr::Xor;
-    return 3;
-  case AsmToken::Amp:
-    Kind = MCBinaryExpr::And;
-    return 3;
-
-    // Highest Precedence: *, /, %, <<, >>
-  case AsmToken::Star:
-    Kind = MCBinaryExpr::Mul;
-    return 4;
-  case AsmToken::Slash:
-    Kind = MCBinaryExpr::Div;
-    return 4;
-  case AsmToken::Percent:
-    Kind = MCBinaryExpr::Mod;
-    return 4;
-  case AsmToken::LessLess:
-    Kind = MCBinaryExpr::Shl;
-    return 4;
-  case AsmToken::GreaterGreater:
-    Kind = MCBinaryExpr::Shr;
-    return 4;
-  }
-}
-
-
-/// ParseBinOpRHS - Parse all binary operators with precedence >= 'Precedence'.
-/// Res contains the LHS of the expression on input.
-bool AsmParser::ParseBinOpRHS(unsigned Precedence, const MCExpr *&Res) {
-  while (1) {
-    MCBinaryExpr::Opcode Kind = MCBinaryExpr::Add;
-    unsigned TokPrec = getBinOpPrecedence(Lexer.getKind(), Kind);
-    
-    // If the next token is lower precedence than we are allowed to eat, return
-    // successfully with what we ate already.
-    if (TokPrec < Precedence)
-      return false;
-    
-    Lexer.Lex();
-    
-    // Eat the next primary expression.
-    const MCExpr *RHS;
-    if (ParsePrimaryExpr(RHS)) return true;
-    
-    // If BinOp binds less tightly with RHS than the operator after RHS, let
-    // the pending operator take RHS as its LHS.
-    MCBinaryExpr::Opcode Dummy;
-    unsigned NextTokPrec = getBinOpPrecedence(Lexer.getKind(), Dummy);
-    if (TokPrec < NextTokPrec) {
-      if (ParseBinOpRHS(Precedence+1, RHS)) return true;
-    }
-
-    // Merge LHS and RHS according to operator.
-    Res = MCBinaryExpr::Create(Kind, Res, RHS, getContext());
-  }
-}
-
-  
-  
-  
-/// ParseStatement:
-///   ::= EndOfStatement
-///   ::= Label* Directive ...Operands... EndOfStatement
-///   ::= Label* Identifier OperandList* EndOfStatement
-bool AsmParser::ParseStatement() {
-  if (Lexer.is(AsmToken::EndOfStatement)) {
-    Lexer.Lex();
-    return false;
-  }
-
-  // Statements always start with an identifier.
-  AsmToken ID = Lexer.getTok();
-  SMLoc IDLoc = ID.getLoc();
-  StringRef IDVal;
-  if (ParseIdentifier(IDVal))
-    return TokError("unexpected token at start of statement");
-
-  // FIXME: Recurse on local labels?
-
-  // See what kind of statement we have.
-  switch (Lexer.getKind()) {
-  case AsmToken::Colon: {
-    // identifier ':'   -> Label.
-    Lexer.Lex();
-
-    // Diagnose attempt to use a variable as a label.
-    //
-    // FIXME: Diagnostics. Note the location of the definition as a label.
-    // FIXME: This doesn't diagnose assignment to a symbol which has been
-    // implicitly marked as external.
-    MCSymbol *Sym = CreateSymbol(IDVal);
-    if (!Sym->isUndefined())
-      return Error(IDLoc, "invalid symbol redefinition");
-    
-    // Emit the label.
-    Out.EmitLabel(Sym);
-   
-    return ParseStatement();
-  }
-
-  case AsmToken::Equal:
-    // identifier '=' ... -> assignment statement
-    Lexer.Lex();
-
-    return ParseAssignment(IDVal);
-
-  default: // Normal instruction or directive.
-    break;
-  }
-  
-  // Otherwise, we have a normal instruction or directive.  
-  if (IDVal[0] == '.') {
-    // FIXME: This should be driven based on a hash lookup and callback.
-    if (IDVal == ".section")
-      return ParseDirectiveDarwinSection();
-    if (IDVal == ".text")
-      // FIXME: This changes behavior based on the -static flag to the
-      // assembler.
-      return ParseDirectiveSectionSwitch("__TEXT", "__text",
-                                     MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS);
-    if (IDVal == ".const")
-      return ParseDirectiveSectionSwitch("__TEXT", "__const");
-    if (IDVal == ".static_const")
-      return ParseDirectiveSectionSwitch("__TEXT", "__static_const");
-    if (IDVal == ".cstring")
-      return ParseDirectiveSectionSwitch("__TEXT","__cstring", 
-                                         MCSectionMachO::S_CSTRING_LITERALS);
-    if (IDVal == ".literal4")
-      return ParseDirectiveSectionSwitch("__TEXT", "__literal4",
-                                         MCSectionMachO::S_4BYTE_LITERALS,
-                                         4);
-    if (IDVal == ".literal8")
-      return ParseDirectiveSectionSwitch("__TEXT", "__literal8",
-                                         MCSectionMachO::S_8BYTE_LITERALS,
-                                         8);
-    if (IDVal == ".literal16")
-      return ParseDirectiveSectionSwitch("__TEXT","__literal16",
-                                         MCSectionMachO::S_16BYTE_LITERALS,
-                                         16);
-    if (IDVal == ".constructor")
-      return ParseDirectiveSectionSwitch("__TEXT","__constructor");
-    if (IDVal == ".destructor")
-      return ParseDirectiveSectionSwitch("__TEXT","__destructor");
-    if (IDVal == ".fvmlib_init0")
-      return ParseDirectiveSectionSwitch("__TEXT","__fvmlib_init0");
-    if (IDVal == ".fvmlib_init1")
-      return ParseDirectiveSectionSwitch("__TEXT","__fvmlib_init1");
-
-    // FIXME: The assembler manual claims that this has the self modify code
-    // flag, at least on x86-32, but that does not appear to be correct.
-    if (IDVal == ".symbol_stub")
-      return ParseDirectiveSectionSwitch("__TEXT","__symbol_stub",
-                                         MCSectionMachO::S_SYMBOL_STUBS |
-                                       MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS,
-                                          // FIXME: Different on PPC and ARM.
-                                         0, 16);
-    // FIXME: PowerPC only?
-    if (IDVal == ".picsymbol_stub")
-      return ParseDirectiveSectionSwitch("__TEXT","__picsymbol_stub",
-                                         MCSectionMachO::S_SYMBOL_STUBS |
-                                       MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS,
-                                         0, 26);
-    if (IDVal == ".data")
-      return ParseDirectiveSectionSwitch("__DATA", "__data");
-    if (IDVal == ".static_data")
-      return ParseDirectiveSectionSwitch("__DATA", "__static_data");
-
-    // FIXME: The section names of these two are misspelled in the assembler
-    // manual.
-    if (IDVal == ".non_lazy_symbol_pointer")
-      return ParseDirectiveSectionSwitch("__DATA", "__nl_symbol_ptr",
-                                     MCSectionMachO::S_NON_LAZY_SYMBOL_POINTERS,
-                                         4);
-    if (IDVal == ".lazy_symbol_pointer")
-      return ParseDirectiveSectionSwitch("__DATA", "__la_symbol_ptr",
-                                         MCSectionMachO::S_LAZY_SYMBOL_POINTERS,
-                                         4);
-
-    if (IDVal == ".dyld")
-      return ParseDirectiveSectionSwitch("__DATA", "__dyld");
-    if (IDVal == ".mod_init_func")
-      return ParseDirectiveSectionSwitch("__DATA", "__mod_init_func",
-                                       MCSectionMachO::S_MOD_INIT_FUNC_POINTERS,
-                                         4);
-    if (IDVal == ".mod_term_func")
-      return ParseDirectiveSectionSwitch("__DATA", "__mod_term_func",
-                                       MCSectionMachO::S_MOD_TERM_FUNC_POINTERS,
-                                         4);
-    if (IDVal == ".const_data")
-      return ParseDirectiveSectionSwitch("__DATA", "__const");
-    
-    
-    if (IDVal == ".objc_class")
-      return ParseDirectiveSectionSwitch("__OBJC", "__class", 
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_meta_class")
-      return ParseDirectiveSectionSwitch("__OBJC", "__meta_class",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_cat_cls_meth")
-      return ParseDirectiveSectionSwitch("__OBJC", "__cat_cls_meth",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_cat_inst_meth")
-      return ParseDirectiveSectionSwitch("__OBJC", "__cat_inst_meth",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_protocol")
-      return ParseDirectiveSectionSwitch("__OBJC", "__protocol",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_string_object")
-      return ParseDirectiveSectionSwitch("__OBJC", "__string_object",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_cls_meth")
-      return ParseDirectiveSectionSwitch("__OBJC", "__cls_meth",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_inst_meth")
-      return ParseDirectiveSectionSwitch("__OBJC", "__inst_meth",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_cls_refs")
-      return ParseDirectiveSectionSwitch("__OBJC", "__cls_refs",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP |
-                                         MCSectionMachO::S_LITERAL_POINTERS,
-                                         4);
-    if (IDVal == ".objc_message_refs")
-      return ParseDirectiveSectionSwitch("__OBJC", "__message_refs",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP |
-                                         MCSectionMachO::S_LITERAL_POINTERS,
-                                         4);
-    if (IDVal == ".objc_symbols")
-      return ParseDirectiveSectionSwitch("__OBJC", "__symbols",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_category")
-      return ParseDirectiveSectionSwitch("__OBJC", "__category",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_class_vars")
-      return ParseDirectiveSectionSwitch("__OBJC", "__class_vars",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_instance_vars")
-      return ParseDirectiveSectionSwitch("__OBJC", "__instance_vars",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_module_info")
-      return ParseDirectiveSectionSwitch("__OBJC", "__module_info",
-                                         MCSectionMachO::S_ATTR_NO_DEAD_STRIP);
-    if (IDVal == ".objc_class_names")
-      return ParseDirectiveSectionSwitch("__TEXT", "__cstring",
-                                         MCSectionMachO::S_CSTRING_LITERALS);
-    if (IDVal == ".objc_meth_var_types")
-      return ParseDirectiveSectionSwitch("__TEXT", "__cstring",
-                                         MCSectionMachO::S_CSTRING_LITERALS);
-    if (IDVal == ".objc_meth_var_names")
-      return ParseDirectiveSectionSwitch("__TEXT", "__cstring",
-                                         MCSectionMachO::S_CSTRING_LITERALS);
-    if (IDVal == ".objc_selector_strs")
-      return ParseDirectiveSectionSwitch("__OBJC", "__selector_strs",
-                                         MCSectionMachO::S_CSTRING_LITERALS);
-    
-    // Assembler features
-    if (IDVal == ".set")
-      return ParseDirectiveSet();
-
-    // Data directives
-
-    if (IDVal == ".ascii")
-      return ParseDirectiveAscii(false);
-    if (IDVal == ".asciz")
-      return ParseDirectiveAscii(true);
-
-    // FIXME: Target hooks for size? Also for "word", "hword".
-    if (IDVal == ".byte")
-      return ParseDirectiveValue(1);
-    if (IDVal == ".short" || IDVal == ".word")
-      return ParseDirectiveValue(2);
-    if (IDVal == ".long")
-      return ParseDirectiveValue(4);
-    if (IDVal == ".quad")
-      return ParseDirectiveValue(8);
-
-    // FIXME: Target hooks for IsPow2.
-    if (IDVal == ".align")
-      return ParseDirectiveAlign(/*IsPow2=*/true, /*ExprSize=*/1);
-    if (IDVal == ".align32")
-      return ParseDirectiveAlign(/*IsPow2=*/true, /*ExprSize=*/4);
-    if (IDVal == ".balign")
-      return ParseDirectiveAlign(/*IsPow2=*/false, /*ExprSize=*/1);
-    if (IDVal == ".balignw")
-      return ParseDirectiveAlign(/*IsPow2=*/false, /*ExprSize=*/2);
-    if (IDVal == ".balignl")
-      return ParseDirectiveAlign(/*IsPow2=*/false, /*ExprSize=*/4);
-    if (IDVal == ".p2align")
-      return ParseDirectiveAlign(/*IsPow2=*/true, /*ExprSize=*/1);
-    if (IDVal == ".p2alignw")
-      return ParseDirectiveAlign(/*IsPow2=*/true, /*ExprSize=*/2);
-    if (IDVal == ".p2alignl")
-      return ParseDirectiveAlign(/*IsPow2=*/true, /*ExprSize=*/4);
-
-    if (IDVal == ".org")
-      return ParseDirectiveOrg();
-
-    if (IDVal == ".fill")
-      return ParseDirectiveFill();
-    if (IDVal == ".space")
-      return ParseDirectiveSpace();
-
-    // Symbol attribute directives
-
-    if (IDVal == ".globl" || IDVal == ".global")
-      return ParseDirectiveSymbolAttribute(MCStreamer::Global);
-    if (IDVal == ".hidden")
-      return ParseDirectiveSymbolAttribute(MCStreamer::Hidden);
-    if (IDVal == ".indirect_symbol")
-      return ParseDirectiveSymbolAttribute(MCStreamer::IndirectSymbol);
-    if (IDVal == ".internal")
-      return ParseDirectiveSymbolAttribute(MCStreamer::Internal);
-    if (IDVal == ".lazy_reference")
-      return ParseDirectiveSymbolAttribute(MCStreamer::LazyReference);
-    if (IDVal == ".no_dead_strip")
-      return ParseDirectiveSymbolAttribute(MCStreamer::NoDeadStrip);
-    if (IDVal == ".private_extern")
-      return ParseDirectiveSymbolAttribute(MCStreamer::PrivateExtern);
-    if (IDVal == ".protected")
-      return ParseDirectiveSymbolAttribute(MCStreamer::Protected);
-    if (IDVal == ".reference")
-      return ParseDirectiveSymbolAttribute(MCStreamer::Reference);
-    if (IDVal == ".weak")
-      return ParseDirectiveSymbolAttribute(MCStreamer::Weak);
-    if (IDVal == ".weak_definition")
-      return ParseDirectiveSymbolAttribute(MCStreamer::WeakDefinition);
-    if (IDVal == ".weak_reference")
-      return ParseDirectiveSymbolAttribute(MCStreamer::WeakReference);
-
-    if (IDVal == ".comm")
-      return ParseDirectiveComm(/*IsLocal=*/false);
-    if (IDVal == ".lcomm")
-      return ParseDirectiveComm(/*IsLocal=*/true);
-    if (IDVal == ".zerofill")
-      return ParseDirectiveDarwinZerofill();
-    if (IDVal == ".desc")
-      return ParseDirectiveDarwinSymbolDesc();
-    if (IDVal == ".lsym")
-      return ParseDirectiveDarwinLsym();
-
-    if (IDVal == ".subsections_via_symbols")
-      return ParseDirectiveDarwinSubsectionsViaSymbols();
-    if (IDVal == ".abort")
-      return ParseDirectiveAbort();
-    if (IDVal == ".include")
-      return ParseDirectiveInclude();
-    if (IDVal == ".dump")
-      return ParseDirectiveDarwinDumpOrLoad(IDLoc, /*IsDump=*/true);
-    if (IDVal == ".load")
-      return ParseDirectiveDarwinDumpOrLoad(IDLoc, /*IsLoad=*/false);
-
-    // Debugging directives
-
-    if (IDVal == ".file")
-      return ParseDirectiveFile(IDLoc);
-    if (IDVal == ".line")
-      return ParseDirectiveLine(IDLoc);
-    if (IDVal == ".loc")
-      return ParseDirectiveLoc(IDLoc);
-
-    Warning(IDLoc, "ignoring directive for now");
-    EatToEndOfStatement();
-    return false;
-  }
-
-  MCInst Inst;
-  if (getTargetParser().ParseInstruction(IDVal, Inst))
-    return true;
-  
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in argument list");
-
-  // Eat the end of statement marker.
-  Lexer.Lex();
-  
-  // Instruction is good, process it.
-  Out.EmitInstruction(Inst);
-  
-  // Skip to end of line for now.
-  return false;
-}
-
-bool AsmParser::ParseAssignment(const StringRef &Name) {
-  // FIXME: Use better location, we should use proper tokens.
-  SMLoc EqualLoc = Lexer.getLoc();
-
-  const MCExpr *Value;
-  SMLoc StartLoc = Lexer.getLoc();
-  if (ParseExpression(Value))
-    return true;
-  
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in assignment");
-
-  // Eat the end of statement marker.
-  Lexer.Lex();
-
-  // Diagnose assignment to a label.
-  //
-  // FIXME: Diagnostics. Note the location of the definition as a label.
-  // FIXME: Handle '.'.
-  // FIXME: Diagnose assignment to protected identifier (e.g., register name).
-  MCSymbol *Sym = CreateSymbol(Name);
-  if (!Sym->isUndefined() && !Sym->isAbsolute())
-    return Error(EqualLoc, "symbol has already been defined");
-
-  // Do the assignment.
-  Out.EmitAssignment(Sym, Value);
-
-  return false;
-}
-
-/// ParseIdentifier:
-///   ::= identifier
-///   ::= string
-bool AsmParser::ParseIdentifier(StringRef &Res) {
-  if (Lexer.isNot(AsmToken::Identifier) &&
-      Lexer.isNot(AsmToken::String))
-    return true;
-
-  Res = Lexer.getTok().getIdentifier();
-
-  Lexer.Lex(); // Consume the identifier token.
-
-  return false;
-}
-
-/// ParseDirectiveSet:
-///   ::= .set identifier ',' expression
-bool AsmParser::ParseDirectiveSet() {
-  StringRef Name;
-
-  if (ParseIdentifier(Name))
-    return TokError("expected identifier after '.set' directive");
-  
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in '.set'");
-  Lexer.Lex();
-
-  return ParseAssignment(Name);
-}
-
-/// ParseDirectiveSection:
-///   ::= .section identifier (',' identifier)*
-/// FIXME: This should actually parse out the segment, section, attributes and
-/// sizeof_stub fields.
-bool AsmParser::ParseDirectiveDarwinSection() {
-  SMLoc Loc = Lexer.getLoc();
-
-  StringRef SectionName;
-  if (ParseIdentifier(SectionName))
-    return Error(Loc, "expected identifier after '.section' directive");
-
-  // Verify there is a following comma.
-  if (!Lexer.is(AsmToken::Comma))
-    return TokError("unexpected token in '.section' directive");
-
-  std::string SectionSpec = SectionName;
-  SectionSpec += ",";
-
-  // Add all the tokens until the end of the line, ParseSectionSpecifier will
-  // handle this.
-  StringRef EOL = Lexer.LexUntilEndOfStatement();
-  SectionSpec.append(EOL.begin(), EOL.end());
-
-  Lexer.Lex();
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.section' directive");
-  Lexer.Lex();
-
-
-  StringRef Segment, Section;
-  unsigned TAA, StubSize;
-  std::string ErrorStr = 
-    MCSectionMachO::ParseSectionSpecifier(SectionSpec, Segment, Section,
-                                          TAA, StubSize);
-  
-  if (!ErrorStr.empty())
-    return Error(Loc, ErrorStr.c_str());
-  
-  // FIXME: Arch specific.
-  Out.SwitchSection(getMachOSection(Segment, Section, TAA, StubSize,
-                                    SectionKind()));
-  return false;
-}
-
-/// ParseDirectiveSectionSwitch - 
-bool AsmParser::ParseDirectiveSectionSwitch(const char *Segment,
-                                            const char *Section,
-                                            unsigned TAA, unsigned Align,
-                                            unsigned StubSize) {
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in section switching directive");
-  Lexer.Lex();
-  
-  // FIXME: Arch specific.
-  Out.SwitchSection(getMachOSection(Segment, Section, TAA, StubSize,
-                                    SectionKind()));
-
-  // Set the implicit alignment, if any.
-  //
-  // FIXME: This isn't really what 'as' does; I think it just uses the implicit
-  // alignment on the section (e.g., if one manually inserts bytes into the
-  // section, then just issueing the section switch directive will not realign
-  // the section. However, this is arguably more reasonable behavior, and there
-  // is no good reason for someone to intentionally emit incorrectly sized
-  // values into the implicitly aligned sections.
-  if (Align)
-    Out.EmitValueToAlignment(Align, 0, 1, 0);
-
-  return false;
-}
-
-bool AsmParser::ParseEscapedString(std::string &Data) {
-  assert(Lexer.is(AsmToken::String) && "Unexpected current token!");
-
-  Data = "";
-  StringRef Str = Lexer.getTok().getStringContents();
-  for (unsigned i = 0, e = Str.size(); i != e; ++i) {
-    if (Str[i] != '\\') {
-      Data += Str[i];
-      continue;
-    }
-
-    // Recognize escaped characters. Note that this escape semantics currently
-    // loosely follows Darwin 'as'. Notably, it doesn't support hex escapes.
-    ++i;
-    if (i == e)
-      return TokError("unexpected backslash at end of string");
-
-    // Recognize octal sequences.
-    if ((unsigned) (Str[i] - '0') <= 7) {
-      // Consume up to three octal characters.
-      unsigned Value = Str[i] - '0';
-
-      if (i + 1 != e && ((unsigned) (Str[i + 1] - '0')) <= 7) {
-        ++i;
-        Value = Value * 8 + (Str[i] - '0');
-
-        if (i + 1 != e && ((unsigned) (Str[i + 1] - '0')) <= 7) {
-          ++i;
-          Value = Value * 8 + (Str[i] - '0');
-        }
-      }
-
-      if (Value > 255)
-        return TokError("invalid octal escape sequence (out of range)");
-
-      Data += (unsigned char) Value;
-      continue;
-    }
-
-    // Otherwise recognize individual escapes.
-    switch (Str[i]) {
-    default:
-      // Just reject invalid escape sequences for now.
-      return TokError("invalid escape sequence (unrecognized character)");
-
-    case 'b': Data += '\b'; break;
-    case 'f': Data += '\f'; break;
-    case 'n': Data += '\n'; break;
-    case 'r': Data += '\r'; break;
-    case 't': Data += '\t'; break;
-    case '"': Data += '"'; break;
-    case '\\': Data += '\\'; break;
-    }
-  }
-
-  return false;
-}
-
-/// ParseDirectiveAscii:
-///   ::= ( .ascii | .asciz ) [ "string" ( , "string" )* ]
-bool AsmParser::ParseDirectiveAscii(bool ZeroTerminated) {
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    for (;;) {
-      if (Lexer.isNot(AsmToken::String))
-        return TokError("expected string in '.ascii' or '.asciz' directive");
-      
-      std::string Data;
-      if (ParseEscapedString(Data))
-        return true;
-      
-      Out.EmitBytes(Data);
-      if (ZeroTerminated)
-        Out.EmitBytes(StringRef("\0", 1));
-      
-      Lexer.Lex();
-      
-      if (Lexer.is(AsmToken::EndOfStatement))
-        break;
-
-      if (Lexer.isNot(AsmToken::Comma))
-        return TokError("unexpected token in '.ascii' or '.asciz' directive");
-      Lexer.Lex();
-    }
-  }
-
-  Lexer.Lex();
-  return false;
-}
-
-/// ParseDirectiveValue
-///  ::= (.byte | .short | ... ) [ expression (, expression)* ]
-bool AsmParser::ParseDirectiveValue(unsigned Size) {
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    for (;;) {
-      const MCExpr *Value;
-      SMLoc StartLoc = Lexer.getLoc();
-      if (ParseExpression(Value))
-        return true;
-
-      Out.EmitValue(Value, Size);
-
-      if (Lexer.is(AsmToken::EndOfStatement))
-        break;
-      
-      // FIXME: Improve diagnostic.
-      if (Lexer.isNot(AsmToken::Comma))
-        return TokError("unexpected token in directive");
-      Lexer.Lex();
-    }
-  }
-
-  Lexer.Lex();
-  return false;
-}
-
-/// ParseDirectiveSpace
-///  ::= .space expression [ , expression ]
-bool AsmParser::ParseDirectiveSpace() {
-  int64_t NumBytes;
-  if (ParseAbsoluteExpression(NumBytes))
-    return true;
-
-  int64_t FillExpr = 0;
-  bool HasFillExpr = false;
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    if (Lexer.isNot(AsmToken::Comma))
-      return TokError("unexpected token in '.space' directive");
-    Lexer.Lex();
-    
-    if (ParseAbsoluteExpression(FillExpr))
-      return true;
-
-    HasFillExpr = true;
-
-    if (Lexer.isNot(AsmToken::EndOfStatement))
-      return TokError("unexpected token in '.space' directive");
-  }
-
-  Lexer.Lex();
-
-  if (NumBytes <= 0)
-    return TokError("invalid number of bytes in '.space' directive");
-
-  // FIXME: Sometimes the fill expr is 'nop' if it isn't supplied, instead of 0.
-  for (uint64_t i = 0, e = NumBytes; i != e; ++i)
-    Out.EmitValue(MCConstantExpr::Create(FillExpr, getContext()), 1);
-
-  return false;
-}
-
-/// ParseDirectiveFill
-///  ::= .fill expression , expression , expression
-bool AsmParser::ParseDirectiveFill() {
-  int64_t NumValues;
-  if (ParseAbsoluteExpression(NumValues))
-    return true;
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in '.fill' directive");
-  Lexer.Lex();
-  
-  int64_t FillSize;
-  if (ParseAbsoluteExpression(FillSize))
-    return true;
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in '.fill' directive");
-  Lexer.Lex();
-  
-  int64_t FillExpr;
-  if (ParseAbsoluteExpression(FillExpr))
-    return true;
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.fill' directive");
-  
-  Lexer.Lex();
-
-  if (FillSize != 1 && FillSize != 2 && FillSize != 4 && FillSize != 8)
-    return TokError("invalid '.fill' size, expected 1, 2, 4, or 8");
-
-  for (uint64_t i = 0, e = NumValues; i != e; ++i)
-    Out.EmitValue(MCConstantExpr::Create(FillExpr, getContext()), FillSize);
-
-  return false;
-}
-
-/// ParseDirectiveOrg
-///  ::= .org expression [ , expression ]
-bool AsmParser::ParseDirectiveOrg() {
-  const MCExpr *Offset;
-  SMLoc StartLoc = Lexer.getLoc();
-  if (ParseExpression(Offset))
-    return true;
-
-  // Parse optional fill expression.
-  int64_t FillExpr = 0;
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    if (Lexer.isNot(AsmToken::Comma))
-      return TokError("unexpected token in '.org' directive");
-    Lexer.Lex();
-    
-    if (ParseAbsoluteExpression(FillExpr))
-      return true;
-
-    if (Lexer.isNot(AsmToken::EndOfStatement))
-      return TokError("unexpected token in '.org' directive");
-  }
-
-  Lexer.Lex();
-
-  // FIXME: Only limited forms of relocatable expressions are accepted here, it
-  // has to be relative to the current section.
-  Out.EmitValueToOffset(Offset, FillExpr);
-
-  return false;
-}
-
-/// ParseDirectiveAlign
-///  ::= {.align, ...} expression [ , expression [ , expression ]]
-bool AsmParser::ParseDirectiveAlign(bool IsPow2, unsigned ValueSize) {
-  SMLoc AlignmentLoc = Lexer.getLoc();
-  int64_t Alignment;
-  if (ParseAbsoluteExpression(Alignment))
-    return true;
-
-  SMLoc MaxBytesLoc;
-  bool HasFillExpr = false;
-  int64_t FillExpr = 0;
-  int64_t MaxBytesToFill = 0;
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    if (Lexer.isNot(AsmToken::Comma))
-      return TokError("unexpected token in directive");
-    Lexer.Lex();
-
-    // The fill expression can be omitted while specifying a maximum number of
-    // alignment bytes, e.g:
-    //  .align 3,,4
-    if (Lexer.isNot(AsmToken::Comma)) {
-      HasFillExpr = true;
-      if (ParseAbsoluteExpression(FillExpr))
-        return true;
-    }
-
-    if (Lexer.isNot(AsmToken::EndOfStatement)) {
-      if (Lexer.isNot(AsmToken::Comma))
-        return TokError("unexpected token in directive");
-      Lexer.Lex();
-
-      MaxBytesLoc = Lexer.getLoc();
-      if (ParseAbsoluteExpression(MaxBytesToFill))
-        return true;
-      
-      if (Lexer.isNot(AsmToken::EndOfStatement))
-        return TokError("unexpected token in directive");
-    }
-  }
-
-  Lexer.Lex();
-
-  if (!HasFillExpr) {
-    // FIXME: Sometimes fill with nop.
-    FillExpr = 0;
-  }
-
-  // Compute alignment in bytes.
-  if (IsPow2) {
-    // FIXME: Diagnose overflow.
-    if (Alignment >= 32) {
-      Error(AlignmentLoc, "invalid alignment value");
-      Alignment = 31;
-    }
-
-    Alignment = 1 << Alignment;
-  }
-
-  // Diagnose non-sensical max bytes to align.
-  if (MaxBytesLoc.isValid()) {
-    if (MaxBytesToFill < 1) {
-      Error(MaxBytesLoc, "alignment directive can never be satisfied in this "
-            "many bytes, ignoring maximum bytes expression");
-      MaxBytesToFill = 0;
-    }
-
-    if (MaxBytesToFill >= Alignment) {
-      Warning(MaxBytesLoc, "maximum bytes expression exceeds alignment and "
-              "has no effect");
-      MaxBytesToFill = 0;
-    }
-  }
-
-  // FIXME: Target specific behavior about how the "extra" bytes are filled.
-  Out.EmitValueToAlignment(Alignment, FillExpr, ValueSize, MaxBytesToFill);
-
-  return false;
-}
-
-/// ParseDirectiveSymbolAttribute
-///  ::= { ".globl", ".weak", ... } [ identifier ( , identifier )* ]
-bool AsmParser::ParseDirectiveSymbolAttribute(MCStreamer::SymbolAttr Attr) {
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    for (;;) {
-      StringRef Name;
-
-      if (ParseIdentifier(Name))
-        return TokError("expected identifier in directive");
-      
-      MCSymbol *Sym = CreateSymbol(Name);
-
-      Out.EmitSymbolAttribute(Sym, Attr);
-
-      if (Lexer.is(AsmToken::EndOfStatement))
-        break;
-
-      if (Lexer.isNot(AsmToken::Comma))
-        return TokError("unexpected token in directive");
-      Lexer.Lex();
-    }
-  }
-
-  Lexer.Lex();
-  return false;  
-}
-
-/// ParseDirectiveDarwinSymbolDesc
-///  ::= .desc identifier , expression
-bool AsmParser::ParseDirectiveDarwinSymbolDesc() {
-  StringRef Name;
-  if (ParseIdentifier(Name))
-    return TokError("expected identifier in directive");
-  
-  // Handle the identifier as the key symbol.
-  MCSymbol *Sym = CreateSymbol(Name);
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in '.desc' directive");
-  Lexer.Lex();
-
-  SMLoc DescLoc = Lexer.getLoc();
-  int64_t DescValue;
-  if (ParseAbsoluteExpression(DescValue))
-    return true;
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.desc' directive");
-  
-  Lexer.Lex();
-
-  // Set the n_desc field of this Symbol to this DescValue
-  Out.EmitSymbolDesc(Sym, DescValue);
-
-  return false;
-}
-
-/// ParseDirectiveComm
-///  ::= ( .comm | .lcomm ) identifier , size_expression [ , align_expression ]
-bool AsmParser::ParseDirectiveComm(bool IsLocal) {
-  SMLoc IDLoc = Lexer.getLoc();
-  StringRef Name;
-  if (ParseIdentifier(Name))
-    return TokError("expected identifier in directive");
-  
-  // Handle the identifier as the key symbol.
-  MCSymbol *Sym = CreateSymbol(Name);
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in directive");
-  Lexer.Lex();
-
-  int64_t Size;
-  SMLoc SizeLoc = Lexer.getLoc();
-  if (ParseAbsoluteExpression(Size))
-    return true;
-
-  int64_t Pow2Alignment = 0;
-  SMLoc Pow2AlignmentLoc;
-  if (Lexer.is(AsmToken::Comma)) {
-    Lexer.Lex();
-    Pow2AlignmentLoc = Lexer.getLoc();
-    if (ParseAbsoluteExpression(Pow2Alignment))
-      return true;
-  }
-  
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.comm' or '.lcomm' directive");
-  
-  Lexer.Lex();
-
-  // NOTE: a size of zero for a .comm should create a undefined symbol
-  // but a size of .lcomm creates a bss symbol of size zero.
-  if (Size < 0)
-    return Error(SizeLoc, "invalid '.comm' or '.lcomm' directive size, can't "
-                 "be less than zero");
-
-  // NOTE: The alignment in the directive is a power of 2 value, the assember
-  // may internally end up wanting an alignment in bytes.
-  // FIXME: Diagnose overflow.
-  if (Pow2Alignment < 0)
-    return Error(Pow2AlignmentLoc, "invalid '.comm' or '.lcomm' directive "
-                 "alignment, can't be less than zero");
-
-  if (!Sym->isUndefined())
-    return Error(IDLoc, "invalid symbol redefinition");
-
-  // '.lcomm' is equivalent to '.zerofill'.
-  // Create the Symbol as a common or local common with Size and Pow2Alignment
-  if (IsLocal) {
-    Out.EmitZerofill(getMachOSection("__DATA", "__bss",
-                                     MCSectionMachO::S_ZEROFILL, 0,
-                                     SectionKind()),
-                     Sym, Size, 1 << Pow2Alignment);
-    return false;
-  }
-
-  Out.EmitCommonSymbol(Sym, Size, 1 << Pow2Alignment);
-  return false;
-}
-
-/// ParseDirectiveDarwinZerofill
-///  ::= .zerofill segname , sectname [, identifier , size_expression [
-///      , align_expression ]]
-bool AsmParser::ParseDirectiveDarwinZerofill() {
-  // FIXME: Handle quoted names here.
-
-  if (Lexer.isNot(AsmToken::Identifier))
-    return TokError("expected segment name after '.zerofill' directive");
-  StringRef Segment = Lexer.getTok().getString();
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in directive");
-  Lexer.Lex();
- 
-  if (Lexer.isNot(AsmToken::Identifier))
-    return TokError("expected section name after comma in '.zerofill' "
-                    "directive");
-  StringRef Section = Lexer.getTok().getString();
-  Lexer.Lex();
-
-  // If this is the end of the line all that was wanted was to create the
-  // the section but with no symbol.
-  if (Lexer.is(AsmToken::EndOfStatement)) {
-    // Create the zerofill section but no symbol
-    Out.EmitZerofill(getMachOSection(Segment, Section,
-                                     MCSectionMachO::S_ZEROFILL, 0,
-                                     SectionKind()));
-    return false;
-  }
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in directive");
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::Identifier))
-    return TokError("expected identifier in directive");
-  
-  // handle the identifier as the key symbol.
-  SMLoc IDLoc = Lexer.getLoc();
-  MCSymbol *Sym = CreateSymbol(Lexer.getTok().getString());
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in directive");
-  Lexer.Lex();
-
-  int64_t Size;
-  SMLoc SizeLoc = Lexer.getLoc();
-  if (ParseAbsoluteExpression(Size))
-    return true;
-
-  int64_t Pow2Alignment = 0;
-  SMLoc Pow2AlignmentLoc;
-  if (Lexer.is(AsmToken::Comma)) {
-    Lexer.Lex();
-    Pow2AlignmentLoc = Lexer.getLoc();
-    if (ParseAbsoluteExpression(Pow2Alignment))
-      return true;
-  }
-  
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.zerofill' directive");
-  
-  Lexer.Lex();
-
-  if (Size < 0)
-    return Error(SizeLoc, "invalid '.zerofill' directive size, can't be less "
-                 "than zero");
-
-  // NOTE: The alignment in the directive is a power of 2 value, the assember
-  // may internally end up wanting an alignment in bytes.
-  // FIXME: Diagnose overflow.
-  if (Pow2Alignment < 0)
-    return Error(Pow2AlignmentLoc, "invalid '.zerofill' directive alignment, "
-                 "can't be less than zero");
-
-  if (!Sym->isUndefined())
-    return Error(IDLoc, "invalid symbol redefinition");
-
-  // Create the zerofill Symbol with Size and Pow2Alignment
-  //
-  // FIXME: Arch specific.
-  Out.EmitZerofill(getMachOSection(Segment, Section,
-                                 MCSectionMachO::S_ZEROFILL, 0,
-                                 SectionKind()),
-                   Sym, Size, 1 << Pow2Alignment);
-
-  return false;
-}
-
-/// ParseDirectiveDarwinSubsectionsViaSymbols
-///  ::= .subsections_via_symbols
-bool AsmParser::ParseDirectiveDarwinSubsectionsViaSymbols() {
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.subsections_via_symbols' directive");
-  
-  Lexer.Lex();
-
-  Out.EmitAssemblerFlag(MCStreamer::SubsectionsViaSymbols);
-
-  return false;
-}
-
-/// ParseDirectiveAbort
-///  ::= .abort [ "abort_string" ]
-bool AsmParser::ParseDirectiveAbort() {
-  // FIXME: Use loc from directive.
-  SMLoc Loc = Lexer.getLoc();
-
-  StringRef Str = "";
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    if (Lexer.isNot(AsmToken::String))
-      return TokError("expected string in '.abort' directive");
-    
-    Str = Lexer.getTok().getString();
-
-    Lexer.Lex();
-  }
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.abort' directive");
-  
-  Lexer.Lex();
-
-  // FIXME: Handle here.
-  if (Str.empty())
-    Error(Loc, ".abort detected. Assembly stopping.");
-  else
-    Error(Loc, ".abort '" + Str + "' detected. Assembly stopping.");
-
-  return false;
-}
-
-/// ParseDirectiveLsym
-///  ::= .lsym identifier , expression
-bool AsmParser::ParseDirectiveDarwinLsym() {
-  StringRef Name;
-  if (ParseIdentifier(Name))
-    return TokError("expected identifier in directive");
-  
-  // Handle the identifier as the key symbol.
-  MCSymbol *Sym = CreateSymbol(Name);
-
-  if (Lexer.isNot(AsmToken::Comma))
-    return TokError("unexpected token in '.lsym' directive");
-  Lexer.Lex();
-
-  const MCExpr *Value;
-  SMLoc StartLoc = Lexer.getLoc();
-  if (ParseExpression(Value))
-    return true;
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.lsym' directive");
-  
-  Lexer.Lex();
-
-  // We don't currently support this directive.
-  //
-  // FIXME: Diagnostic location!
-  (void) Sym;
-  return TokError("directive '.lsym' is unsupported");
-}
-
-/// ParseDirectiveInclude
-///  ::= .include "filename"
-bool AsmParser::ParseDirectiveInclude() {
-  if (Lexer.isNot(AsmToken::String))
-    return TokError("expected string in '.include' directive");
-  
-  std::string Filename = Lexer.getTok().getString();
-  SMLoc IncludeLoc = Lexer.getLoc();
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.include' directive");
-  
-  // Strip the quotes.
-  Filename = Filename.substr(1, Filename.size()-2);
-  
-  // Attempt to switch the lexer to the included file before consuming the end
-  // of statement to avoid losing it when we switch.
-  if (Lexer.EnterIncludeFile(Filename)) {
-    Lexer.PrintMessage(IncludeLoc,
-                       "Could not find include file '" + Filename + "'",
-                       "error");
-    return true;
-  }
-
-  return false;
-}
-
-/// ParseDirectiveDarwinDumpOrLoad
-///  ::= ( .dump | .load ) "filename"
-bool AsmParser::ParseDirectiveDarwinDumpOrLoad(SMLoc IDLoc, bool IsDump) {
-  if (Lexer.isNot(AsmToken::String))
-    return TokError("expected string in '.dump' or '.load' directive");
-  
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.dump' or '.load' directive");
-  
-  Lexer.Lex();
-
-  // FIXME: If/when .dump and .load are implemented they will be done in the
-  // the assembly parser and not have any need for an MCStreamer API.
-  if (IsDump)
-    Warning(IDLoc, "ignoring directive .dump for now");
-  else
-    Warning(IDLoc, "ignoring directive .load for now");
-
-  return false;
-}
-
-/// ParseDirectiveIf
-/// ::= .if expression
-bool AsmParser::ParseDirectiveIf(SMLoc DirectiveLoc) {
-  // Consume the identifier that was the .if directive
-  Lexer.Lex();
-
-  TheCondStack.push_back(TheCondState);
-  TheCondState.TheCond = AsmCond::IfCond;
-  if(TheCondState.Ignore) {
-    EatToEndOfStatement();
-  }
-  else {
-    int64_t ExprValue;
-    if (ParseAbsoluteExpression(ExprValue))
-      return true;
-
-    if (Lexer.isNot(AsmToken::EndOfStatement))
-      return TokError("unexpected token in '.if' directive");
-    
-    Lexer.Lex();
-
-    TheCondState.CondMet = ExprValue;
-    TheCondState.Ignore = !TheCondState.CondMet;
-  }
-
-  return false;
-}
-
-/// ParseDirectiveElseIf
-/// ::= .elseif expression
-bool AsmParser::ParseDirectiveElseIf(SMLoc DirectiveLoc) {
-  if (TheCondState.TheCond != AsmCond::IfCond &&
-      TheCondState.TheCond != AsmCond::ElseIfCond)
-      Error(DirectiveLoc, "Encountered a .elseif that doesn't follow a .if or "
-                          " an .elseif");
-  TheCondState.TheCond = AsmCond::ElseIfCond;
-
-  // Consume the identifier that was the .elseif directive
-  Lexer.Lex();
-
-  bool LastIgnoreState = false;
-  if (!TheCondStack.empty())
-      LastIgnoreState = TheCondStack.back().Ignore;
-  if (LastIgnoreState || TheCondState.CondMet) {
-    TheCondState.Ignore = true;
-    EatToEndOfStatement();
-  }
-  else {
-    int64_t ExprValue;
-    if (ParseAbsoluteExpression(ExprValue))
-      return true;
-
-    if (Lexer.isNot(AsmToken::EndOfStatement))
-      return TokError("unexpected token in '.elseif' directive");
-    
-    Lexer.Lex();
-    TheCondState.CondMet = ExprValue;
-    TheCondState.Ignore = !TheCondState.CondMet;
-  }
-
-  return false;
-}
-
-/// ParseDirectiveElse
-/// ::= .else
-bool AsmParser::ParseDirectiveElse(SMLoc DirectiveLoc) {
-  // Consume the identifier that was the .else directive
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.else' directive");
-  
-  Lexer.Lex();
-
-  if (TheCondState.TheCond != AsmCond::IfCond &&
-      TheCondState.TheCond != AsmCond::ElseIfCond)
-      Error(DirectiveLoc, "Encountered a .else that doesn't follow a .if or an "
-                          ".elseif");
-  TheCondState.TheCond = AsmCond::ElseCond;
-  bool LastIgnoreState = false;
-  if (!TheCondStack.empty())
-    LastIgnoreState = TheCondStack.back().Ignore;
-  if (LastIgnoreState || TheCondState.CondMet)
-    TheCondState.Ignore = true;
-  else
-    TheCondState.Ignore = false;
-
-  return false;
-}
-
-/// ParseDirectiveEndIf
-/// ::= .endif
-bool AsmParser::ParseDirectiveEndIf(SMLoc DirectiveLoc) {
-  // Consume the identifier that was the .endif directive
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.endif' directive");
-  
-  Lexer.Lex();
-
-  if ((TheCondState.TheCond == AsmCond::NoCond) ||
-      TheCondStack.empty())
-    Error(DirectiveLoc, "Encountered a .endif that doesn't follow a .if or "
-                        ".else");
-  if (!TheCondStack.empty()) {
-    TheCondState = TheCondStack.back();
-    TheCondStack.pop_back();
-  }
-
-  return false;
-}
-
-/// ParseDirectiveFile
-/// ::= .file [number] string
-bool AsmParser::ParseDirectiveFile(SMLoc DirectiveLoc) {
-  // FIXME: I'm not sure what this is.
-  int64_t FileNumber = -1;
-  if (Lexer.is(AsmToken::Integer)) {
-    FileNumber = Lexer.getTok().getIntVal();
-    Lexer.Lex();
-    
-    if (FileNumber < 1)
-      return TokError("file number less than one");
-  }
-
-  if (Lexer.isNot(AsmToken::String))
-    return TokError("unexpected token in '.file' directive");
-  
-  StringRef FileName = Lexer.getTok().getString();
-  Lexer.Lex();
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.file' directive");
-
-  // FIXME: Do something with the .file.
-
-  return false;
-}
-
-/// ParseDirectiveLine
-/// ::= .line [number]
-bool AsmParser::ParseDirectiveLine(SMLoc DirectiveLoc) {
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    if (Lexer.isNot(AsmToken::Integer))
-      return TokError("unexpected token in '.line' directive");
-
-    int64_t LineNumber = Lexer.getTok().getIntVal();
-    (void) LineNumber;
-    Lexer.Lex();
-
-    // FIXME: Do something with the .line.
-  }
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.file' directive");
-
-  return false;
-}
-
-
-/// ParseDirectiveLoc
-/// ::= .loc number [number [number]]
-bool AsmParser::ParseDirectiveLoc(SMLoc DirectiveLoc) {
-  if (Lexer.isNot(AsmToken::Integer))
-    return TokError("unexpected token in '.loc' directive");
-
-  // FIXME: What are these fields?
-  int64_t FileNumber = Lexer.getTok().getIntVal();
-  (void) FileNumber;
-  // FIXME: Validate file.
-
-  Lexer.Lex();
-  if (Lexer.isNot(AsmToken::EndOfStatement)) {
-    if (Lexer.isNot(AsmToken::Integer))
-      return TokError("unexpected token in '.loc' directive");
-
-    int64_t Param2 = Lexer.getTok().getIntVal();
-    (void) Param2;
-    Lexer.Lex();
-
-    if (Lexer.isNot(AsmToken::EndOfStatement)) {
-      if (Lexer.isNot(AsmToken::Integer))
-        return TokError("unexpected token in '.loc' directive");
-
-      int64_t Param3 = Lexer.getTok().getIntVal();
-      (void) Param3;
-      Lexer.Lex();
-
-      // FIXME: Do something with the .loc.
-    }
-  }
-
-  if (Lexer.isNot(AsmToken::EndOfStatement))
-    return TokError("unexpected token in '.file' directive");
-
-  return false;
-}
-
diff --git a/libclamav/c++/llvm/tools/llvm-mc/AsmParser.h b/libclamav/c++/llvm/tools/llvm-mc/AsmParser.h
deleted file mode 100644
index 7471a90..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/AsmParser.h
+++ /dev/null
@@ -1,154 +0,0 @@
-//===- AsmParser.h - Parser for Assembly Files ------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This class declares the parser for assembly files.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ASMPARSER_H
-#define ASMPARSER_H
-
-#include <vector>
-#include "AsmLexer.h"
-#include "AsmCond.h"
-#include "llvm/MC/MCAsmParser.h"
-#include "llvm/MC/MCSectionMachO.h"
-#include "llvm/MC/MCStreamer.h"
-
-namespace llvm {
-class AsmCond;
-class MCContext;
-class MCExpr;
-class MCInst;
-class MCStreamer;
-class MCValue;
-class TargetAsmParser;
-class Twine;
-
-class AsmParser : public MCAsmParser {
-private:  
-  AsmLexer Lexer;
-  MCContext &Ctx;
-  MCStreamer &Out;
-  TargetAsmParser *TargetParser;
-
-  AsmCond TheCondState;
-  std::vector<AsmCond> TheCondStack;
-
-  // FIXME: Figure out where this should leave, the code is a copy of that which
-  // is also used by TargetLoweringObjectFile.
-  mutable void *SectionUniquingMap;
-
-public:
-  AsmParser(SourceMgr &_SM, MCContext &_Ctx, MCStreamer &_Out)
-    : Lexer(_SM), Ctx(_Ctx), Out(_Out), TargetParser(0),
-      SectionUniquingMap(0) {}
-  ~AsmParser();
-
-  bool Run();
-  
-public:
-  TargetAsmParser &getTargetParser() const { return *TargetParser; }
-  void setTargetParser(TargetAsmParser &P) { TargetParser = &P; }
-
-  /// @name MCAsmParser Interface
-  /// {
-
-  virtual MCAsmLexer &getLexer() { return Lexer; }
-
-  virtual MCContext &getContext() { return Ctx; }
-
-  virtual void Warning(SMLoc L, const Twine &Meg);
-
-  virtual bool Error(SMLoc L, const Twine &Msg);
-
-  virtual bool ParseExpression(const MCExpr *&Res);
-
-  virtual bool ParseParenExpression(const MCExpr *&Res);
-
-  virtual bool ParseAbsoluteExpression(int64_t &Res);
-
-  /// }
-
-private:
-  MCSymbol *CreateSymbol(StringRef Name);
-
-  // FIXME: See comment on SectionUniquingMap.
-  const MCSection *getMachOSection(const StringRef &Segment,
-                                   const StringRef &Section,
-                                   unsigned TypeAndAttributes,
-                                   unsigned Reserved2,
-                                   SectionKind Kind) const;
-
-  bool ParseStatement();
-
-  bool TokError(const char *Msg);
-  
-  bool ParseConditionalAssemblyDirectives(StringRef Directive,
-                                          SMLoc DirectiveLoc);
-  void EatToEndOfStatement();
-  
-  bool ParseAssignment(const StringRef &Name);
-
-  bool ParsePrimaryExpr(const MCExpr *&Res);
-  bool ParseBinOpRHS(unsigned Precedence, const MCExpr *&Res);
-  bool ParseParenExpr(const MCExpr *&Res);
-
-  /// ParseIdentifier - Parse an identifier or string (as a quoted identifier)
-  /// and set \arg Res to the identifier contents.
-  bool ParseIdentifier(StringRef &Res);
-  
-  // Directive Parsing.
-  bool ParseDirectiveDarwinSection(); // Darwin specific ".section".
-  bool ParseDirectiveSectionSwitch(const char *Segment, const char *Section,
-                                   unsigned TAA = 0, unsigned ImplicitAlign = 0,
-                                   unsigned StubSize = 0);
-  bool ParseDirectiveAscii(bool ZeroTerminated); // ".ascii", ".asciiz"
-  bool ParseDirectiveValue(unsigned Size); // ".byte", ".long", ...
-  bool ParseDirectiveFill(); // ".fill"
-  bool ParseDirectiveSpace(); // ".space"
-  bool ParseDirectiveSet(); // ".set"
-  bool ParseDirectiveOrg(); // ".org"
-  // ".align{,32}", ".p2align{,w,l}"
-  bool ParseDirectiveAlign(bool IsPow2, unsigned ValueSize);
-
-  /// ParseDirectiveSymbolAttribute - Parse a directive like ".globl" which
-  /// accepts a single symbol (which should be a label or an external).
-  bool ParseDirectiveSymbolAttribute(MCStreamer::SymbolAttr Attr);
-  bool ParseDirectiveDarwinSymbolDesc(); // Darwin specific ".desc"
-  bool ParseDirectiveDarwinLsym(); // Darwin specific ".lsym"
-
-  bool ParseDirectiveComm(bool IsLocal); // ".comm" and ".lcomm"
-  bool ParseDirectiveDarwinZerofill(); // Darwin specific ".zerofill"
-
-  // Darwin specific ".subsections_via_symbols"
-  bool ParseDirectiveDarwinSubsectionsViaSymbols();
-  // Darwin specific .dump and .load
-  bool ParseDirectiveDarwinDumpOrLoad(SMLoc IDLoc, bool IsDump);
-
-  bool ParseDirectiveAbort(); // ".abort"
-  bool ParseDirectiveInclude(); // ".include"
-
-  bool ParseDirectiveIf(SMLoc DirectiveLoc); // ".if"
-  bool ParseDirectiveElseIf(SMLoc DirectiveLoc); // ".elseif"
-  bool ParseDirectiveElse(SMLoc DirectiveLoc); // ".else"
-  bool ParseDirectiveEndIf(SMLoc DirectiveLoc); // .endif
-
-  bool ParseDirectiveFile(SMLoc DirectiveLoc); // ".file"
-  bool ParseDirectiveLine(SMLoc DirectiveLoc); // ".line"
-  bool ParseDirectiveLoc(SMLoc DirectiveLoc); // ".loc"
-
-  /// ParseEscapedString - Parse the current token as a string which may include
-  /// escaped characters and return the string contents.
-  bool ParseEscapedString(std::string &Data);
-};
-
-} // end namespace llvm
-
-#endif
diff --git a/libclamav/c++/llvm/tools/llvm-mc/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-mc/CMakeLists.txt
deleted file mode 100644
index ce9d63b..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} support MC)
-
-add_llvm_tool(llvm-mc
-  llvm-mc.cpp
-  AsmLexer.cpp
-  AsmParser.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-mc/Makefile b/libclamav/c++/llvm/tools/llvm-mc/Makefile
deleted file mode 100644
index 9bfb773..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-##===- tools/llvm-mc/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-TOOLNAME = llvm-mc
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-NO_INSTALL = 1
-
-# Include this here so we can get the configuration of the targets
-# that have been configured for construction. We have to do this 
-# early so we can set up LINK_COMPONENTS before including Makefile.rules
-include $(LEVEL)/Makefile.config
-
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) MC support
-
-include $(LLVM_SRC_ROOT)/Makefile.rules
diff --git a/libclamav/c++/llvm/tools/llvm-mc/llvm-mc.cpp b/libclamav/c++/llvm/tools/llvm-mc/llvm-mc.cpp
deleted file mode 100644
index b9cf0de..0000000
--- a/libclamav/c++/llvm/tools/llvm-mc/llvm-mc.cpp
+++ /dev/null
@@ -1,302 +0,0 @@
-//===-- llvm-mc.cpp - Machine Code Hacking Driver -------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This utility is a simple driver that allows command line hacking on machine
-// code.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/MC/MCContext.h"
-#include "llvm/MC/MCCodeEmitter.h"
-#include "llvm/MC/MCSectionMachO.h"
-#include "llvm/MC/MCStreamer.h"
-#include "llvm/ADT/OwningPtr.h"
-#include "llvm/CodeGen/AsmPrinter.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/SourceMgr.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-#include "llvm/Target/TargetAsmParser.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Target/TargetSelect.h"
-#include "AsmParser.h"
-using namespace llvm;
-
-static cl::opt<std::string>
-InputFilename(cl::Positional, cl::desc("<input file>"), cl::init("-"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Output filename"),
-               cl::value_desc("filename"));
-
-static cl::opt<bool>
-ShowEncoding("show-encoding", cl::desc("Show instruction encodings"));
-
-enum OutputFileType {
-  OFT_AssemblyFile,
-  OFT_ObjectFile
-};
-static cl::opt<OutputFileType>
-FileType("filetype", cl::init(OFT_AssemblyFile),
-  cl::desc("Choose an output file type:"),
-  cl::values(
-       clEnumValN(OFT_AssemblyFile, "asm",
-                  "Emit an assembly ('.s') file"),
-       clEnumValN(OFT_ObjectFile, "obj",
-                  "Emit a native object ('.o') file"),
-       clEnumValEnd));
-
-static cl::opt<bool>
-Force("f", cl::desc("Enable binary output on terminals"));
-
-static cl::list<std::string>
-IncludeDirs("I", cl::desc("Directory of include files"),
-            cl::value_desc("directory"), cl::Prefix);
-
-static cl::opt<std::string>
-TripleName("triple", cl::desc("Target triple to assemble for,"
-                          "see -version for available targets"),
-       cl::init(LLVM_HOSTTRIPLE));
-
-enum ActionType {
-  AC_AsLex,
-  AC_Assemble
-};
-
-static cl::opt<ActionType>
-Action(cl::desc("Action to perform:"),
-       cl::init(AC_Assemble),
-       cl::values(clEnumValN(AC_AsLex, "as-lex",
-                             "Lex tokens from a .s file"),
-                  clEnumValN(AC_Assemble, "assemble",
-                             "Assemble a .s file (default)"),
-                  clEnumValEnd));
-
-static int AsLexInput(const char *ProgName) {
-  std::string ErrorMessage;
-  MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename,
-                                                      &ErrorMessage);
-  if (Buffer == 0) {
-    errs() << ProgName << ": ";
-    if (ErrorMessage.size())
-      errs() << ErrorMessage << "\n";
-    else
-      errs() << "input file didn't read correctly.\n";
-    return 1;
-  }
-
-  SourceMgr SrcMgr;
-  
-  // Tell SrcMgr about this buffer, which is what TGParser will pick up.
-  SrcMgr.AddNewSourceBuffer(Buffer, SMLoc());
-  
-  // Record the location of the include directories so that the lexer can find
-  // it later.
-  SrcMgr.setIncludeDirs(IncludeDirs);
-
-  AsmLexer Lexer(SrcMgr);
-  
-  bool Error = false;
-  
-  while (Lexer.Lex().isNot(AsmToken::Eof)) {
-    switch (Lexer.getKind()) {
-    default:
-      Lexer.PrintMessage(Lexer.getLoc(), "unknown token", "warning");
-      Error = true;
-      break;
-    case AsmToken::Error:
-      Error = true; // error already printed.
-      break;
-    case AsmToken::Identifier:
-      outs() << "identifier: " << Lexer.getTok().getString() << '\n';
-      break;
-    case AsmToken::Register:
-      outs() << "register: " << Lexer.getTok().getString() << '\n';
-      break;
-    case AsmToken::String:
-      outs() << "string: " << Lexer.getTok().getString() << '\n';
-      break;
-    case AsmToken::Integer:
-      outs() << "int: " << Lexer.getTok().getString() << '\n';
-      break;
-
-    case AsmToken::Amp:            outs() << "Amp\n"; break;
-    case AsmToken::AmpAmp:         outs() << "AmpAmp\n"; break;
-    case AsmToken::Caret:          outs() << "Caret\n"; break;
-    case AsmToken::Colon:          outs() << "Colon\n"; break;
-    case AsmToken::Comma:          outs() << "Comma\n"; break;
-    case AsmToken::Dollar:         outs() << "Dollar\n"; break;
-    case AsmToken::EndOfStatement: outs() << "EndOfStatement\n"; break;
-    case AsmToken::Eof:            outs() << "Eof\n"; break;
-    case AsmToken::Equal:          outs() << "Equal\n"; break;
-    case AsmToken::EqualEqual:     outs() << "EqualEqual\n"; break;
-    case AsmToken::Exclaim:        outs() << "Exclaim\n"; break;
-    case AsmToken::ExclaimEqual:   outs() << "ExclaimEqual\n"; break;
-    case AsmToken::Greater:        outs() << "Greater\n"; break;
-    case AsmToken::GreaterEqual:   outs() << "GreaterEqual\n"; break;
-    case AsmToken::GreaterGreater: outs() << "GreaterGreater\n"; break;
-    case AsmToken::LParen:         outs() << "LParen\n"; break;
-    case AsmToken::Less:           outs() << "Less\n"; break;
-    case AsmToken::LessEqual:      outs() << "LessEqual\n"; break;
-    case AsmToken::LessGreater:    outs() << "LessGreater\n"; break;
-    case AsmToken::LessLess:       outs() << "LessLess\n"; break;
-    case AsmToken::Minus:          outs() << "Minus\n"; break;
-    case AsmToken::Percent:        outs() << "Percent\n"; break;
-    case AsmToken::Pipe:           outs() << "Pipe\n"; break;
-    case AsmToken::PipePipe:       outs() << "PipePipe\n"; break;
-    case AsmToken::Plus:           outs() << "Plus\n"; break;
-    case AsmToken::RParen:         outs() << "RParen\n"; break;
-    case AsmToken::Slash:          outs() << "Slash\n"; break;
-    case AsmToken::Star:           outs() << "Star\n"; break;
-    case AsmToken::Tilde:          outs() << "Tilde\n"; break;
-    }
-  }
-  
-  return Error;
-}
-
-static const Target *GetTarget(const char *ProgName) {
-  // Get the target specific parser.
-  std::string Error;
-  const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error);
-  if (TheTarget)
-    return TheTarget;
-
-  errs() << ProgName << ": error: unable to get target for '" << TripleName
-         << "', see --version and --triple.\n";
-  return 0;
-}
-
-static formatted_raw_ostream *GetOutputStream() {
-  if (OutputFilename == "")
-    OutputFilename = "-";
-
-  // Make sure that the Out file gets unlinked from the disk if we get a
-  // SIGINT.
-  if (OutputFilename != "-")
-    sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-
-  std::string Err;
-  raw_fd_ostream *Out = new raw_fd_ostream(OutputFilename.c_str(), Err,
-                                           raw_fd_ostream::F_Binary);
-  if (!Err.empty()) {
-    errs() << Err << '\n';
-    delete Out;
-    return 0;
-  }
-  
-  return new formatted_raw_ostream(*Out, formatted_raw_ostream::DELETE_STREAM);
-}
-
-static int AssembleInput(const char *ProgName) {
-  const Target *TheTarget = GetTarget(ProgName);
-  if (!TheTarget)
-    return 1;
-
-  std::string Error;
-  MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename, &Error);
-  if (Buffer == 0) {
-    errs() << ProgName << ": ";
-    if (Error.size())
-      errs() << Error << "\n";
-    else
-      errs() << "input file didn't read correctly.\n";
-    return 1;
-  }
-  
-  SourceMgr SrcMgr;
-  
-  // Tell SrcMgr about this buffer, which is what the parser will pick up.
-  SrcMgr.AddNewSourceBuffer(Buffer, SMLoc());
-  
-  // Record the location of the include directories so that the lexer can find
-  // it later.
-  SrcMgr.setIncludeDirs(IncludeDirs);
-  
-  MCContext Ctx;
-  formatted_raw_ostream *Out = GetOutputStream();
-  if (!Out)
-    return 1;
-
-
-  // FIXME: We shouldn't need to do this (and link in codegen).
-  OwningPtr<TargetMachine> TM(TheTarget->createTargetMachine(TripleName, ""));
-
-  if (!TM) {
-    errs() << ProgName << ": error: could not create target for triple '"
-           << TripleName << "'.\n";
-    return 1;
-  }
-
-  OwningPtr<AsmPrinter> AP;
-  OwningPtr<MCCodeEmitter> CE;
-  OwningPtr<MCStreamer> Str;
-
-  if (FileType == OFT_AssemblyFile) {
-    const MCAsmInfo *TAI = TheTarget->createAsmInfo(TripleName);
-    assert(TAI && "Unable to create target asm info!");
-
-    AP.reset(TheTarget->createAsmPrinter(*Out, *TM, TAI, true));
-    if (ShowEncoding)
-      CE.reset(TheTarget->createCodeEmitter(*TM));
-    Str.reset(createAsmStreamer(Ctx, *Out, *TAI, AP.get(), CE.get()));
-  } else {
-    assert(FileType == OFT_ObjectFile && "Invalid file type!");
-    CE.reset(TheTarget->createCodeEmitter(*TM));
-    Str.reset(createMachOStreamer(Ctx, *Out, CE.get()));
-  }
-
-  AsmParser Parser(SrcMgr, Ctx, *Str.get());
-  OwningPtr<TargetAsmParser> TAP(TheTarget->createAsmParser(Parser));
-  if (!TAP) {
-    errs() << ProgName 
-           << ": error: this target does not support assembly parsing.\n";
-    return 1;
-  }
-
-  Parser.setTargetParser(*TAP.get());
-
-  int Res = Parser.Run();
-  if (Out != &fouts())
-    delete Out;
-
-  return Res;
-}  
-
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-
-  // Initialize targets and assembly printers/parsers.
-  llvm::InitializeAllTargetInfos();
-  // FIXME: We shouldn't need to initialize the Target(Machine)s.
-  llvm::InitializeAllTargets();
-  llvm::InitializeAllAsmPrinters();
-  llvm::InitializeAllAsmParsers();
-  
-  cl::ParseCommandLineOptions(argc, argv, "llvm machine code playground\n");
-
-  switch (Action) {
-  default:
-  case AC_AsLex:
-    return AsLexInput(argv[0]);
-  case AC_Assemble:
-    return AssembleInput(argv[0]);
-  }
-  
-  return 0;
-}
-
diff --git a/libclamav/c++/llvm/tools/llvm-nm/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-nm/CMakeLists.txt
deleted file mode 100644
index 45cf1b6..0000000
--- a/libclamav/c++/llvm/tools/llvm-nm/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set(LLVM_LINK_COMPONENTS archive bitreader)
-
-add_llvm_tool(llvm-nm
-  llvm-nm.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-nm/Makefile b/libclamav/c++/llvm/tools/llvm-nm/Makefile
deleted file mode 100644
index ecf5f8c..0000000
--- a/libclamav/c++/llvm/tools/llvm-nm/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-##===- tools/llvm-nm/Makefile ------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-
-TOOLNAME = llvm-nm
-LINK_COMPONENTS = archive bitreader
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-nm/llvm-nm.cpp b/libclamav/c++/llvm/tools/llvm-nm/llvm-nm.cpp
deleted file mode 100644
index 325b0ac..0000000
--- a/libclamav/c++/llvm/tools/llvm-nm/llvm-nm.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-//===-- llvm-nm.cpp - Symbol table dumping utility for llvm ---------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This program is a utility that works like traditional Unix "nm",
-// that is, it prints out the names of symbols in a bitcode file,
-// along with some information about each symbol.
-//
-// This "nm" does not print symbols' addresses. It supports many of
-// the features of GNU "nm", including its different output formats.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Bitcode/Archive.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-#include <algorithm>
-#include <cctype>
-#include <cerrno>
-#include <cstring>
-using namespace llvm;
-
-namespace {
-  enum OutputFormatTy { bsd, sysv, posix };
-  cl::opt<OutputFormatTy>
-  OutputFormat("format",
-       cl::desc("Specify output format"),
-         cl::values(clEnumVal(bsd,   "BSD format"),
-                    clEnumVal(sysv,  "System V format"),
-                    clEnumVal(posix, "POSIX.2 format"),
-                    clEnumValEnd), cl::init(bsd));
-  cl::alias OutputFormat2("f", cl::desc("Alias for --format"),
-                          cl::aliasopt(OutputFormat));
-
-  cl::list<std::string>
-  InputFilenames(cl::Positional, cl::desc("<input bitcode files>"),
-                 cl::ZeroOrMore);
-
-  cl::opt<bool> UndefinedOnly("undefined-only",
-                              cl::desc("Show only undefined symbols"));
-  cl::alias UndefinedOnly2("u", cl::desc("Alias for --undefined-only"),
-                           cl::aliasopt(UndefinedOnly));
-
-  cl::opt<bool> DefinedOnly("defined-only",
-                            cl::desc("Show only defined symbols"));
-
-  cl::opt<bool> ExternalOnly("extern-only",
-                             cl::desc("Show only external symbols"));
-  cl::alias ExternalOnly2("g", cl::desc("Alias for --extern-only"),
-                          cl::aliasopt(ExternalOnly));
-
-  cl::opt<bool> BSDFormat("B", cl::desc("Alias for --format=bsd"));
-  cl::opt<bool> POSIXFormat("P", cl::desc("Alias for --format=posix"));
-
-  bool MultipleFiles = false;
-
-  std::string ToolName;
-}
-
-static char TypeCharForSymbol(GlobalValue &GV) {
-  if (GV.isDeclaration())                                  return 'U';
-  if (GV.hasLinkOnceLinkage())                             return 'C';
-  if (GV.hasCommonLinkage())                               return 'C';
-  if (GV.hasWeakLinkage())                                 return 'W';
-  if (isa<Function>(GV) && GV.hasInternalLinkage())        return 't';
-  if (isa<Function>(GV))                                   return 'T';
-  if (isa<GlobalVariable>(GV) && GV.hasInternalLinkage())  return 'd';
-  if (isa<GlobalVariable>(GV))                             return 'D';
-  if (const GlobalAlias *GA = dyn_cast<GlobalAlias>(&GV)) {
-    const GlobalValue *AliasedGV = GA->getAliasedGlobal();
-    if (isa<Function>(AliasedGV))                          return 'T';
-    if (isa<GlobalVariable>(AliasedGV))                    return 'D';
-  }
-                                                           return '?';
-}
-
-static void DumpSymbolNameForGlobalValue(GlobalValue &GV) {
-  // Private linkage and available_externally linkage don't exist in symtab.
-  if (GV.hasPrivateLinkage() || GV.hasLinkerPrivateLinkage() ||
-      GV.hasAvailableExternallyLinkage()) return;
-  
-  const std::string SymbolAddrStr = "        "; // Not used yet...
-  char TypeChar = TypeCharForSymbol(GV);
-  if ((TypeChar != 'U') && UndefinedOnly)
-    return;
-  if ((TypeChar == 'U') && DefinedOnly)
-    return;
-  if (GV.hasLocalLinkage () && ExternalOnly)
-    return;
-  if (OutputFormat == posix) {
-    outs() << GV.getName () << " " << TypeCharForSymbol(GV) << " "
-           << SymbolAddrStr << "\n";
-  } else if (OutputFormat == bsd) {
-    outs() << SymbolAddrStr << " " << TypeCharForSymbol(GV) << " "
-           << GV.getName () << "\n";
-  } else if (OutputFormat == sysv) {
-    std::string PaddedName (GV.getName ());
-    while (PaddedName.length () < 20)
-      PaddedName += " ";
-    outs() << PaddedName << "|" << SymbolAddrStr << "|   "
-           << TypeCharForSymbol(GV)
-           << "  |                  |      |     |\n";
-  }
-}
-
-static void DumpSymbolNamesFromModule(Module *M) {
-  const std::string &Filename = M->getModuleIdentifier ();
-  if (OutputFormat == posix && MultipleFiles) {
-    outs() << Filename << ":\n";
-  } else if (OutputFormat == bsd && MultipleFiles) {
-    outs() << "\n" << Filename << ":\n";
-  } else if (OutputFormat == sysv) {
-    outs() << "\n\nSymbols from " << Filename << ":\n\n"
-           << "Name                  Value   Class        Type"
-           << "         Size   Line  Section\n";
-  }
-  std::for_each (M->begin(), M->end(), DumpSymbolNameForGlobalValue);
-  std::for_each (M->global_begin(), M->global_end(),
-                 DumpSymbolNameForGlobalValue);
-  std::for_each (M->alias_begin(), M->alias_end(),
-                 DumpSymbolNameForGlobalValue);
-}
-
-static void DumpSymbolNamesFromFile(std::string &Filename) {
-  LLVMContext &Context = getGlobalContext();
-  std::string ErrorMessage;
-  sys::Path aPath(Filename);
-  // Note: Currently we do not support reading an archive from stdin.
-  if (Filename == "-" || aPath.isBitcodeFile()) {
-    std::auto_ptr<MemoryBuffer> Buffer(
-                   MemoryBuffer::getFileOrSTDIN(Filename, &ErrorMessage));
-    Module *Result = 0;
-    if (Buffer.get())
-      Result = ParseBitcodeFile(Buffer.get(), Context, &ErrorMessage);
-    
-    if (Result)
-      DumpSymbolNamesFromModule(Result);
-    else {
-      errs() << ToolName << ": " << Filename << ": " << ErrorMessage << "\n";
-      return;
-    }
-    
-  } else if (aPath.isArchive()) {
-    std::string ErrMsg;
-    Archive* archive = Archive::OpenAndLoad(sys::Path(Filename), Context,
-                                            &ErrorMessage);
-    if (!archive)
-      errs() << ToolName << ": " << Filename << ": " << ErrorMessage << "\n";
-    std::vector<Module *> Modules;
-    if (archive->getAllModules(Modules, &ErrorMessage)) {
-      errs() << ToolName << ": " << Filename << ": " << ErrorMessage << "\n";
-      return;
-    }
-    MultipleFiles = true;
-    std::for_each (Modules.begin(), Modules.end(), DumpSymbolNamesFromModule);
-  } else {
-    errs() << ToolName << ": " << Filename << ": "
-           << "unrecognizable file type\n";
-    return;
-  }
-}
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-  
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, "llvm symbol table dumper\n");
-
-  ToolName = argv[0];
-  if (BSDFormat) OutputFormat = bsd;
-  if (POSIXFormat) OutputFormat = posix;
-
-  switch (InputFilenames.size()) {
-  case 0: InputFilenames.push_back("-");
-  case 1: break;
-  default: MultipleFiles = true;
-  }
-
-  std::for_each(InputFilenames.begin(), InputFilenames.end(),
-                DumpSymbolNamesFromFile);
-  return 0;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-prof/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-prof/CMakeLists.txt
deleted file mode 100644
index 9a51150..0000000
--- a/libclamav/c++/llvm/tools/llvm-prof/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-set(LLVM_LINK_COMPONENTS bitreader analysis)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvm-prof
-  llvm-prof.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-prof/Makefile b/libclamav/c++/llvm/tools/llvm-prof/Makefile
deleted file mode 100644
index 3c4948e..0000000
--- a/libclamav/c++/llvm/tools/llvm-prof/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- tools/llvm-prof/Makefile ----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-
-TOOLNAME = llvm-prof
-LINK_COMPONENTS = bitreader analysis
-REQUIRES_EH := 1
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-prof/llvm-prof.cpp b/libclamav/c++/llvm/tools/llvm-prof/llvm-prof.cpp
deleted file mode 100644
index cff139e..0000000
--- a/libclamav/c++/llvm/tools/llvm-prof/llvm-prof.cpp
+++ /dev/null
@@ -1,295 +0,0 @@
-//===- llvm-prof.cpp - Read in and process llvmprof.out data files --------===//
-//
-//                      The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This tools is meant for use with the various LLVM profiling instrumentation
-// passes.  It reads in the data file produced by executing an instrumented
-// program, and outputs a nice report.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/InstrTypes.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/PassManager.h"
-#include "llvm/Assembly/AsmAnnotationWriter.h"
-#include "llvm/Analysis/ProfileInfo.h"
-#include "llvm/Analysis/ProfileInfoLoader.h"
-#include "llvm/Analysis/Passes.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/Support/Format.h"
-#include "llvm/System/Signals.h"
-#include <algorithm>
-#include <iomanip>
-#include <map>
-#include <set>
-
-using namespace llvm;
-
-namespace {
-  cl::opt<std::string>
-  BitcodeFile(cl::Positional, cl::desc("<program bitcode file>"),
-              cl::Required);
-
-  cl::opt<std::string>
-  ProfileDataFile(cl::Positional, cl::desc("<llvmprof.out file>"),
-                  cl::Optional, cl::init("llvmprof.out"));
-
-  cl::opt<bool>
-  PrintAnnotatedLLVM("annotated-llvm",
-                     cl::desc("Print LLVM code with frequency annotations"));
-  cl::alias PrintAnnotated2("A", cl::desc("Alias for --annotated-llvm"),
-                            cl::aliasopt(PrintAnnotatedLLVM));
-  cl::opt<bool>
-  PrintAllCode("print-all-code",
-               cl::desc("Print annotated code for the entire program"));
-}
-
-// PairSecondSort - A sorting predicate to sort by the second element of a pair.
-template<class T>
-struct PairSecondSortReverse
-  : public std::binary_function<std::pair<T, double>,
-                                std::pair<T, double>, bool> {
-  bool operator()(const std::pair<T, double> &LHS,
-                  const std::pair<T, double> &RHS) const {
-    return LHS.second > RHS.second;
-  }
-};
-
-static double ignoreMissing(double w) {
-  if (w == ProfileInfo::MissingValue) return 0;
-  return w;
-}
-
-namespace {
-  class ProfileAnnotator : public AssemblyAnnotationWriter {
-    ProfileInfo &PI;
-  public:
-    ProfileAnnotator(ProfileInfo& pi) : PI(pi) {}
-
-    virtual void emitFunctionAnnot(const Function *F, raw_ostream &OS) {
-      double w = PI.getExecutionCount(F);
-      if (w != ProfileInfo::MissingValue) {
-        OS << ";;; %" << F->getName() << " called "<<(unsigned)w
-           <<" times.\n;;;\n";
-      }
-    }
-    virtual void emitBasicBlockStartAnnot(const BasicBlock *BB,
-                                          raw_ostream &OS) {
-      double w = PI.getExecutionCount(BB);
-      if (w != ProfileInfo::MissingValue) {
-        if (w != 0) {
-          OS << "\t;;; Basic block executed " << (unsigned)w << " times.\n";
-        } else {
-          OS << "\t;;; Never executed!\n";
-        }
-      }
-    }
-
-    virtual void emitBasicBlockEndAnnot(const BasicBlock *BB, raw_ostream &OS) {
-      // Figure out how many times each successor executed.
-      std::vector<std::pair<ProfileInfo::Edge, double> > SuccCounts;
-
-      const TerminatorInst *TI = BB->getTerminator();
-      for (unsigned s = 0, e = TI->getNumSuccessors(); s != e; ++s) {
-        BasicBlock* Succ = TI->getSuccessor(s);
-        double w = ignoreMissing(PI.getEdgeWeight(std::make_pair(BB, Succ)));
-        if (w != 0)
-          SuccCounts.push_back(std::make_pair(std::make_pair(BB, Succ), w));
-      }
-      if (!SuccCounts.empty()) {
-        OS << "\t;;; Out-edge counts:";
-        for (unsigned i = 0, e = SuccCounts.size(); i != e; ++i)
-          OS << " [" << (SuccCounts[i]).second << " -> "
-             << (SuccCounts[i]).first.second->getName() << "]";
-        OS << "\n";
-      }
-    }
-  };
-}
-
-namespace {
-  /// ProfileInfoPrinterPass - Helper pass to dump the profile information for
-  /// a module.
-  //
-  // FIXME: This should move elsewhere.
-  class ProfileInfoPrinterPass : public ModulePass {
-    ProfileInfoLoader &PIL;
-  public:
-    static char ID; // Class identification, replacement for typeinfo.
-    explicit ProfileInfoPrinterPass(ProfileInfoLoader &_PIL) 
-      : ModulePass(&ID), PIL(_PIL) {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-      AU.addRequired<ProfileInfo>();
-    }
-
-    bool runOnModule(Module &M);
-  };
-}
-
-char ProfileInfoPrinterPass::ID = 0;
-
-bool ProfileInfoPrinterPass::runOnModule(Module &M) {
-  ProfileInfo &PI = getAnalysis<ProfileInfo>();
-  std::map<const Function  *, unsigned> FuncFreqs;
-  std::map<const BasicBlock*, unsigned> BlockFreqs;
-  std::map<ProfileInfo::Edge, unsigned> EdgeFreqs;
-
-  // Output a report. Eventually, there will be multiple reports selectable on
-  // the command line, for now, just keep things simple.
-
-  // Emit the most frequent function table...
-  std::vector<std::pair<Function*, double> > FunctionCounts;
-  std::vector<std::pair<BasicBlock*, double> > Counts;
-  for (Module::iterator FI = M.begin(), FE = M.end(); FI != FE; ++FI) {
-    if (FI->isDeclaration()) continue;
-    double w = ignoreMissing(PI.getExecutionCount(FI));
-    FunctionCounts.push_back(std::make_pair(FI, w));
-    for (Function::iterator BB = FI->begin(), BBE = FI->end(); 
-         BB != BBE; ++BB) {
-      double w = ignoreMissing(PI.getExecutionCount(BB));
-      Counts.push_back(std::make_pair(BB, w));
-    }
-  }
-
-  // Sort by the frequency, backwards.
-  sort(FunctionCounts.begin(), FunctionCounts.end(),
-            PairSecondSortReverse<Function*>());
-
-  double TotalExecutions = 0;
-  for (unsigned i = 0, e = FunctionCounts.size(); i != e; ++i)
-    TotalExecutions += FunctionCounts[i].second;
-
-  outs() << "===" << std::string(73, '-') << "===\n"
-         << "LLVM profiling output for execution";
-  if (PIL.getNumExecutions() != 1) outs() << "s";
-  outs() << ":\n";
-
-  for (unsigned i = 0, e = PIL.getNumExecutions(); i != e; ++i) {
-    outs() << "  ";
-    if (e != 1) outs() << i+1 << ". ";
-    outs() << PIL.getExecution(i) << "\n";
-  }
-
-  outs() << "\n===" << std::string(73, '-') << "===\n";
-  outs() << "Function execution frequencies:\n\n";
-
-  // Print out the function frequencies...
-  outs() << " ##   Frequency\n";
-  for (unsigned i = 0, e = FunctionCounts.size(); i != e; ++i) {
-    if (FunctionCounts[i].second == 0) {
-      outs() << "\n  NOTE: " << e-i << " function" 
-        << (e-i-1 ? "s were" : " was") << " never executed!\n";
-      break;
-    }
-
-    outs() << format("%3d", i+1) << ". "
-      << format("%5.2g", FunctionCounts[i].second) << "/"
-      << format("%g", TotalExecutions) << " "
-      << FunctionCounts[i].first->getNameStr() << "\n";
-  }
-
-  std::set<Function*> FunctionsToPrint;
-
-  TotalExecutions = 0;
-  for (unsigned i = 0, e = Counts.size(); i != e; ++i)
-    TotalExecutions += Counts[i].second;
-  
-  // Sort by the frequency, backwards.
-  sort(Counts.begin(), Counts.end(),
-       PairSecondSortReverse<BasicBlock*>());
-  
-  outs() << "\n===" << std::string(73, '-') << "===\n";
-  outs() << "Top 20 most frequently executed basic blocks:\n\n";
-  
-  // Print out the function frequencies...
-  outs() <<" ##      %% \tFrequency\n";
-  unsigned BlocksToPrint = Counts.size();
-  if (BlocksToPrint > 20) BlocksToPrint = 20;
-  for (unsigned i = 0; i != BlocksToPrint; ++i) {
-    if (Counts[i].second == 0) break;
-    Function *F = Counts[i].first->getParent();
-    outs() << format("%3d", i+1) << ". " 
-      << format("%5g", Counts[i].second/(double)TotalExecutions*100) << "% "
-      << format("%5.0f", Counts[i].second) << "/"
-      << format("%g", TotalExecutions) << "\t"
-      << F->getNameStr() << "() - "
-       << Counts[i].first->getNameStr() << "\n";
-    FunctionsToPrint.insert(F);
-  }
-
-  if (PrintAnnotatedLLVM || PrintAllCode) {
-    outs() << "\n===" << std::string(73, '-') << "===\n";
-    outs() << "Annotated LLVM code for the module:\n\n";
-  
-    ProfileAnnotator PA(PI);
-
-    if (FunctionsToPrint.empty() || PrintAllCode)
-      M.print(outs(), &PA);
-    else
-      // Print just a subset of the functions.
-      for (std::set<Function*>::iterator I = FunctionsToPrint.begin(),
-             E = FunctionsToPrint.end(); I != E; ++I)
-        (*I)->print(outs(), &PA);
-  }
-
-  return false;
-}
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  sys::PrintStackTraceOnErrorSignal();
-  PrettyStackTraceProgram X(argc, argv);
-
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-  try {
-    cl::ParseCommandLineOptions(argc, argv, "llvm profile dump decoder\n");
-
-    // Read in the bitcode file...
-    std::string ErrorMessage;
-    Module *M = 0;
-    if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(BitcodeFile,
-                                                            &ErrorMessage)) {
-      M = ParseBitcodeFile(Buffer, Context, &ErrorMessage);
-      delete Buffer;
-    }
-    if (M == 0) {
-      errs() << argv[0] << ": " << BitcodeFile << ": "
-        << ErrorMessage << "\n";
-      return 1;
-    }
-
-    // Read the profiling information. This is redundant since we load it again
-    // using the standard profile info provider pass, but for now this gives us
-    // access to additional information not exposed via the ProfileInfo
-    // interface.
-    ProfileInfoLoader PIL(argv[0], ProfileDataFile, *M);
-
-    // Run the printer pass.
-    PassManager PassMgr;
-    PassMgr.add(createProfileLoaderPass(ProfileDataFile));
-    PassMgr.add(new ProfileInfoPrinterPass(PIL));
-    PassMgr.run(*M);
-
-    return 0;
-  } catch (const std::string& msg) {
-    errs() << argv[0] << ": " << msg << "\n";
-  } catch (...) {
-    errs() << argv[0] << ": Unexpected unknown exception occurred.\n";
-  }
-  
-  return 1;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-ranlib/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-ranlib/CMakeLists.txt
deleted file mode 100644
index 3116d2e..0000000
--- a/libclamav/c++/llvm/tools/llvm-ranlib/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-set(LLVM_LINK_COMPONENTS archive)
-set(LLVM_REQUIRES_EH 1)
-
-add_llvm_tool(llvm-ranlib
-  llvm-ranlib.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-ranlib/Makefile b/libclamav/c++/llvm/tools/llvm-ranlib/Makefile
deleted file mode 100644
index 46a10e6..0000000
--- a/libclamav/c++/llvm/tools/llvm-ranlib/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-##===- tools/llvm-ranlib/Makefile --------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-TOOLNAME = llvm-ranlib
-LINK_COMPONENTS = archive
-REQUIRES_EH := 1
-
-# This tool has no plugins, optimize startup time.
-TOOL_NO_EXPORTS = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/llvm-ranlib/llvm-ranlib.cpp b/libclamav/c++/llvm/tools/llvm-ranlib/llvm-ranlib.cpp
deleted file mode 100644
index dffe3ad..0000000
--- a/libclamav/c++/llvm/tools/llvm-ranlib/llvm-ranlib.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//===-- llvm-ranlib.cpp - LLVM archive index generator --------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Adds or updates an index (symbol table) for an LLVM archive file.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/Bitcode/Archive.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/PrettyStackTrace.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/System/Signals.h"
-#include <iostream>
-#include <iomanip>
-#include <memory>
-
-using namespace llvm;
-
-// llvm-ar operation code and modifier flags
-static cl::opt<std::string>
-ArchiveName(cl::Positional, cl::Optional, cl::desc("<archive-file>"));
-
-static cl::opt<bool>
-Verbose("verbose",cl::Optional,cl::init(false),
-        cl::desc("Print the symbol table"));
-
-// printSymbolTable - print out the archive's symbol table.
-void printSymbolTable(Archive* TheArchive) {
-  std::cout << "\nArchive Symbol Table:\n";
-  const Archive::SymTabType& symtab = TheArchive->getSymbolTable();
-  for (Archive::SymTabType::const_iterator I=symtab.begin(), E=symtab.end();
-       I != E; ++I ) {
-    unsigned offset = TheArchive->getFirstFileOffset() + I->second;
-    std::cout << " " << std::setw(9) << offset << "\t" << I->first <<"\n";
-  }
-}
-
-int main(int argc, char **argv) {
-  // Print a stack trace if we signal out.
-  llvm::sys::PrintStackTraceOnErrorSignal();
-  llvm::PrettyStackTraceProgram X(argc, argv);
-
-  LLVMContext &Context = getGlobalContext();
-  llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
-
-  // Have the command line options parsed and handle things
-  // like --help and --version.
-  cl::ParseCommandLineOptions(argc, argv,
-    "LLVM Archive Index Generator (llvm-ranlib)\n\n"
-    "  This program adds or updates an index of bitcode symbols\n"
-    "  to an LLVM archive file."
-  );
-
-  int exitCode = 0;
-
-  // Make sure we don't exit with "unhandled exception".
-  try {
-
-    // Check the path name of the archive
-    sys::Path ArchivePath;
-    if (!ArchivePath.set(ArchiveName))
-      throw std::string("Archive name invalid: ") + ArchiveName;
-
-    // Make sure it exists, we don't create empty archives
-    if (!ArchivePath.exists())
-      throw std::string("Archive file does not exist");
-
-    std::string err_msg;
-    std::auto_ptr<Archive>
-      AutoArchive(Archive::OpenAndLoad(ArchivePath, Context, &err_msg));
-    Archive* TheArchive = AutoArchive.get();
-    if (!TheArchive)
-      throw err_msg;
-
-    if (TheArchive->writeToDisk(true, false, false, &err_msg ))
-      throw err_msg;
-
-    if (Verbose)
-      printSymbolTable(TheArchive);
-
-  } catch (const char* msg) {
-    errs() << argv[0] << ": " << msg << "\n\n";
-    exitCode = 1;
-  } catch (const std::string& msg) {
-    errs() << argv[0] << ": " << msg << "\n";
-    exitCode = 2;
-  } catch (...) {
-    errs() << argv[0] << ": An unexpected unknown exception occurred.\n";
-    exitCode = 3;
-  }
-  return exitCode;
-}
diff --git a/libclamav/c++/llvm/tools/llvm-stub/CMakeLists.txt b/libclamav/c++/llvm/tools/llvm-stub/CMakeLists.txt
deleted file mode 100644
index a98dc9e..0000000
--- a/libclamav/c++/llvm/tools/llvm-stub/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-add_llvm_tool(llvm-stub
-  llvm-stub.c
-  )
diff --git a/libclamav/c++/llvm/tools/llvm-stub/Makefile b/libclamav/c++/llvm/tools/llvm-stub/Makefile
deleted file mode 100644
index 7ffe149..0000000
--- a/libclamav/c++/llvm/tools/llvm-stub/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- tools/llvm-stub/Makefile ----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-TOOLNAME = llvm-stub
-include $(LEVEL)/Makefile.common
-
diff --git a/libclamav/c++/llvm/tools/llvm-stub/llvm-stub.c b/libclamav/c++/llvm/tools/llvm-stub/llvm-stub.c
deleted file mode 100644
index f2e478e..0000000
--- a/libclamav/c++/llvm/tools/llvm-stub/llvm-stub.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/*===- llvm-stub.c - Stub executable to run llvm bitcode files ------------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This tool is used by the gccld program to enable transparent execution of
-// bitcode files by the user.  Specifically, gccld outputs two files when asked
-// to compile a <program> file:
-//    1. It outputs the LLVM bitcode file to <program>.bc
-//    2. It outputs a stub executable that runs lli on <program>.bc
-//
-// This allows the end user to just say ./<program> and have the JIT executed
-// automatically.  On unix, the stub executable emitted is actually a bourne
-// shell script that does the forwarding.  Windows does not like #!/bin/sh
-// programs in .exe files, so we make it an actual program, defined here.
-//
-//===----------------------------------------------------------------------===*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "llvm/Config/config.h"
-
-#if defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
-#include <unistd.h>
-#endif
-
-#ifdef _WIN32
-#include <process.h>
-#include <io.h>
-#endif
-
-int main(int argc, char** argv) {
-  const char *Interp = getenv("LLVMINTERP");
-  const char **Args;
-  if (Interp == 0) Interp = "lli";
-
-  /* Set up the command line options to pass to the JIT. */
-  Args = (const char**)malloc(sizeof(char*) * (argc+2));
-  /* argv[0] is the JIT */
-  Args[0] = Interp;
-
-#ifdef LLVM_ON_WIN32
-  {
-    int len = strlen(argv[0]);
-    if (len < 4 || strcmp(argv[0] + len - 4, ".exe") != 0) {
-      /* .exe suffix is stripped off of argv[0] if the executable was run on the
-       * command line without one. Put it back on.
-       */
-      argv[0] = strcat(strcpy((char*)malloc(len + 5), argv[0]), ".exe");
-    }
-  }
-#endif
-
-  /* argv[1] is argv[0] + ".bc". */
-  Args[1] = strcat(strcpy((char*)malloc(strlen(argv[0])+4), argv[0]), ".bc");
-
-  /* The rest of the args are as before. */
-  memcpy((char **)Args+2, argv+1, sizeof(char*)*argc);
-
-  /* Run the JIT. */
-  execvp(Interp, (char **)Args);
-  /* if _execv returns, the JIT could not be started. */
-  fprintf(stderr, "Could not execute the LLVM JIT.  Either add 'lli' to your"
-          " path, or set the\ninterpreter you want to use in the LLVMINTERP "
-          "environment variable.\n");
-  return 1;
-}
diff --git a/libclamav/c++/llvm/tools/lto/LTOCodeGenerator.cpp b/libclamav/c++/llvm/tools/lto/LTOCodeGenerator.cpp
deleted file mode 100644
index c621721..0000000
--- a/libclamav/c++/llvm/tools/lto/LTOCodeGenerator.cpp
+++ /dev/null
@@ -1,487 +0,0 @@
-//===-LTOCodeGenerator.cpp - LLVM Link Time Optimizer ---------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Link Time Optimization library. This library is 
-// intended to be used by linker to optimize code at link time.
-//
-//===----------------------------------------------------------------------===//
-
-#include "LTOModule.h"
-#include "LTOCodeGenerator.h"
-
-
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Linker.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/PassManager.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Analysis/Passes.h"
-#include "llvm/Analysis/LoopPass.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/CodeGen/FileWriters.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/StandardPasses.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/System/Host.h"
-#include "llvm/System/Program.h"
-#include "llvm/System/Signals.h"
-#include "llvm/Target/SubtargetFeature.h"
-#include "llvm/Target/TargetOptions.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Target/TargetSelect.h"
-#include "llvm/Transforms/IPO.h"
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/Config/config.h"
-#include <cstdlib>
-#include <unistd.h>
-#include <fcntl.h>
-
-
-using namespace llvm;
-
-static cl::opt<bool> DisableInline("disable-inlining",
-  cl::desc("Do not run the inliner pass"));
-
-
-const char* LTOCodeGenerator::getVersionString()
-{
-#ifdef LLVM_VERSION_INFO
-    return PACKAGE_NAME " version " PACKAGE_VERSION ", " LLVM_VERSION_INFO;
-#else
-    return PACKAGE_NAME " version " PACKAGE_VERSION;
-#endif
-}
-
-
-LTOCodeGenerator::LTOCodeGenerator() 
-    : _context(getGlobalContext()),
-      _linker("LinkTimeOptimizer", "ld-temp.o", _context), _target(NULL),
-      _emitDwarfDebugInfo(false), _scopeRestrictionsDone(false),
-      _codeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC),
-      _nativeObjectFile(NULL), _assemblerPath(NULL)
-{
-    InitializeAllTargets();
-    InitializeAllAsmPrinters();
-}
-
-LTOCodeGenerator::~LTOCodeGenerator()
-{
-    delete _target;
-    delete _nativeObjectFile;
-}
-
-
-
-bool LTOCodeGenerator::addModule(LTOModule* mod, std::string& errMsg)
-{
-    return _linker.LinkInModule(mod->getLLVVMModule(), &errMsg);
-}
-    
-
-bool LTOCodeGenerator::setDebugInfo(lto_debug_model debug, std::string& errMsg)
-{
-    switch (debug) {
-        case LTO_DEBUG_MODEL_NONE:
-            _emitDwarfDebugInfo = false;
-            return false;
-            
-        case LTO_DEBUG_MODEL_DWARF:
-            _emitDwarfDebugInfo = true;
-            return false;
-    }
-    errMsg = "unknown debug format";
-    return true;
-}
-
-
-bool LTOCodeGenerator::setCodePICModel(lto_codegen_model model, 
-                                       std::string& errMsg)
-{
-    switch (model) {
-        case LTO_CODEGEN_PIC_MODEL_STATIC:
-        case LTO_CODEGEN_PIC_MODEL_DYNAMIC:
-        case LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC:
-            _codeModel = model;
-            return false;
-    }
-    errMsg = "unknown pic model";
-    return true;
-}
-
-void LTOCodeGenerator::setAssemblerPath(const char* path)
-{
-    if ( _assemblerPath )
-        delete _assemblerPath;
-    _assemblerPath = new sys::Path(path);
-}
-
-void LTOCodeGenerator::addMustPreserveSymbol(const char* sym)
-{
-    _mustPreserveSymbols[sym] = 1;
-}
-
-
-bool LTOCodeGenerator::writeMergedModules(const char *path,
-                                          std::string &errMsg) {
-  if (determineTarget(errMsg))
-    return true;
-
-  // mark which symbols can not be internalized 
-  applyScopeRestrictions();
-
-  // create output file
-  std::string ErrInfo;
-  raw_fd_ostream Out(path, ErrInfo,
-                     raw_fd_ostream::F_Binary);
-  if (!ErrInfo.empty()) {
-    errMsg = "could not open bitcode file for writing: ";
-    errMsg += path;
-    return true;
-  }
-    
-  // write bitcode to it
-  WriteBitcodeToFile(_linker.getModule(), Out);
-  
-  if (Out.has_error()) {
-    errMsg = "could not write bitcode file: ";
-    errMsg += path;
-    return true;
-  }
-  
-  return false;
-}
-
-
-const void* LTOCodeGenerator::compile(size_t* length, std::string& errMsg)
-{
-    // make unique temp .s file to put generated assembly code
-    sys::Path uniqueAsmPath("lto-llvm.s");
-    if ( uniqueAsmPath.createTemporaryFileOnDisk(true, &errMsg) )
-        return NULL;
-    sys::RemoveFileOnSignal(uniqueAsmPath);
-       
-    // generate assembly code
-    bool genResult = false;
-    {
-      raw_fd_ostream asmFD(uniqueAsmPath.c_str(), errMsg);
-      formatted_raw_ostream asmFile(asmFD);
-      if (!errMsg.empty())
-        return NULL;
-      genResult = this->generateAssemblyCode(asmFile, errMsg);
-    }
-    if ( genResult ) {
-        if ( uniqueAsmPath.exists() )
-            uniqueAsmPath.eraseFromDisk();
-        return NULL;
-    }
-    
-    // make unique temp .o file to put generated object file
-    sys::PathWithStatus uniqueObjPath("lto-llvm.o");
-    if ( uniqueObjPath.createTemporaryFileOnDisk(true, &errMsg) ) {
-        if ( uniqueAsmPath.exists() )
-            uniqueAsmPath.eraseFromDisk();
-        return NULL;
-    }
-    sys::RemoveFileOnSignal(uniqueObjPath);
-
-    // assemble the assembly code
-    const std::string& uniqueObjStr = uniqueObjPath.str();
-    bool asmResult = this->assemble(uniqueAsmPath.str(), uniqueObjStr, errMsg);
-    if ( !asmResult ) {
-        // remove old buffer if compile() called twice
-        delete _nativeObjectFile;
-        
-        // read .o file into memory buffer
-        _nativeObjectFile = MemoryBuffer::getFile(uniqueObjStr.c_str(),&errMsg);
-    }
-
-    // remove temp files
-    uniqueAsmPath.eraseFromDisk();
-    uniqueObjPath.eraseFromDisk();
-
-    // return buffer, unless error
-    if ( _nativeObjectFile == NULL )
-        return NULL;
-    *length = _nativeObjectFile->getBufferSize();
-    return _nativeObjectFile->getBufferStart();
-}
-
-
-bool LTOCodeGenerator::assemble(const std::string& asmPath, 
-                                const std::string& objPath, std::string& errMsg)
-{
-    sys::Path tool;
-    bool needsCompilerOptions = true;
-    if ( _assemblerPath ) {
-        tool = *_assemblerPath;
-        needsCompilerOptions = false;
-    } else {
-        // find compiler driver
-        tool = sys::Program::FindProgramByName("gcc");
-        if ( tool.isEmpty() ) {
-            errMsg = "can't locate gcc";
-            return true;
-        }
-    }
-
-    // build argument list
-    std::vector<const char*> args;
-    std::string targetTriple = _linker.getModule()->getTargetTriple();
-    args.push_back(tool.c_str());
-    if ( targetTriple.find("darwin") != std::string::npos ) {
-        // darwin specific command line options
-        if (strncmp(targetTriple.c_str(), "i386-apple-", 11) == 0) {
-            args.push_back("-arch");
-            args.push_back("i386");
-        }
-        else if (strncmp(targetTriple.c_str(), "x86_64-apple-", 13) == 0) {
-            args.push_back("-arch");
-            args.push_back("x86_64");
-        }
-        else if (strncmp(targetTriple.c_str(), "powerpc-apple-", 14) == 0) {
-            args.push_back("-arch");
-            args.push_back("ppc");
-        }
-        else if (strncmp(targetTriple.c_str(), "powerpc64-apple-", 16) == 0) {
-            args.push_back("-arch");
-            args.push_back("ppc64");
-        }
-        else if (strncmp(targetTriple.c_str(), "arm-apple-", 10) == 0) {
-            args.push_back("-arch");
-            args.push_back("arm");
-        }
-        else if ((strncmp(targetTriple.c_str(), "armv4t-apple-", 13) == 0) ||
-                 (strncmp(targetTriple.c_str(), "thumbv4t-apple-", 15) == 0)) {
-            args.push_back("-arch");
-            args.push_back("armv4t");
-        }
-        else if ((strncmp(targetTriple.c_str(), "armv5-apple-", 12) == 0) ||
-                 (strncmp(targetTriple.c_str(), "armv5e-apple-", 13) == 0) ||
-                 (strncmp(targetTriple.c_str(), "thumbv5-apple-", 14) == 0) ||
-                 (strncmp(targetTriple.c_str(), "thumbv5e-apple-", 15) == 0)) {
-            args.push_back("-arch");
-            args.push_back("armv5");
-        }
-        else if ((strncmp(targetTriple.c_str(), "armv6-apple-", 12) == 0) ||
-                 (strncmp(targetTriple.c_str(), "thumbv6-apple-", 14) == 0)) {
-            args.push_back("-arch");
-            args.push_back("armv6");
-        }
-        else if ((strncmp(targetTriple.c_str(), "armv7-apple-", 12) == 0) ||
-                 (strncmp(targetTriple.c_str(), "thumbv7-apple-", 14) == 0)) {
-            args.push_back("-arch");
-            args.push_back("armv7");
-        }
-        // add -static to assembler command line when code model requires
-        if ( (_assemblerPath != NULL) && (_codeModel == LTO_CODEGEN_PIC_MODEL_STATIC) )
-            args.push_back("-static");
-    }
-    if ( needsCompilerOptions ) {
-        args.push_back("-c");
-        args.push_back("-x");
-        args.push_back("assembler");
-    }
-    args.push_back("-o");
-    args.push_back(objPath.c_str());
-    args.push_back(asmPath.c_str());
-    args.push_back(0);
-
-    // invoke assembler
-    if ( sys::Program::ExecuteAndWait(tool, &args[0], 0, 0, 0, 0, &errMsg) ) {
-        errMsg = "error in assembly";    
-        return true;
-    }
-    return false; // success
-}
-
-
-
-bool LTOCodeGenerator::determineTarget(std::string& errMsg)
-{
-    if ( _target == NULL ) {
-        std::string Triple = _linker.getModule()->getTargetTriple();
-        if (Triple.empty())
-          Triple = sys::getHostTriple();
-
-        // create target machine from info for merged modules
-        const Target *march = TargetRegistry::lookupTarget(Triple, errMsg);
-        if ( march == NULL )
-            return true;
-
-        // The relocation model is actually a static member of TargetMachine
-        // and needs to be set before the TargetMachine is instantiated.
-        switch( _codeModel ) {
-        case LTO_CODEGEN_PIC_MODEL_STATIC:
-            TargetMachine::setRelocationModel(Reloc::Static);
-            break;
-        case LTO_CODEGEN_PIC_MODEL_DYNAMIC:
-            TargetMachine::setRelocationModel(Reloc::PIC_);
-            break;
-        case LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC:
-            TargetMachine::setRelocationModel(Reloc::DynamicNoPIC);
-            break;
-        }
-
-        // construct LTModule, hand over ownership of module and target
-        std::string FeatureStr = getFeatureString(Triple.c_str());
-        _target = march->createTargetMachine(Triple, FeatureStr);
-    }
-    return false;
-}
-
-void LTOCodeGenerator::applyScopeRestrictions()
-{
-    if ( !_scopeRestrictionsDone ) {
-        Module* mergedModule = _linker.getModule();
-
-        // Start off with a verification pass.
-        PassManager passes;
-        passes.add(createVerifierPass());
-
-        // mark which symbols can not be internalized 
-        if ( !_mustPreserveSymbols.empty() ) {
-            Mangler mangler(*mergedModule, 
-                                _target->getMCAsmInfo()->getGlobalPrefix());
-            std::vector<const char*> mustPreserveList;
-            for (Module::iterator f = mergedModule->begin(), 
-                                        e = mergedModule->end(); f != e; ++f) {
-                if ( !f->isDeclaration() 
-                  && _mustPreserveSymbols.count(mangler.getMangledName(f)) )
-                  mustPreserveList.push_back(::strdup(f->getNameStr().c_str()));
-            }
-            for (Module::global_iterator v = mergedModule->global_begin(), 
-                                 e = mergedModule->global_end(); v !=  e; ++v) {
-                if ( !v->isDeclaration()
-                  && _mustPreserveSymbols.count(mangler.getMangledName(v)) )
-                  mustPreserveList.push_back(::strdup(v->getNameStr().c_str()));
-            }
-            passes.add(createInternalizePass(mustPreserveList));
-        }
-        // apply scope restrictions
-        passes.run(*mergedModule);
-        
-        _scopeRestrictionsDone = true;
-    }
-}
-
-/// Optimize merged modules using various IPO passes
-bool LTOCodeGenerator::generateAssemblyCode(formatted_raw_ostream& out,
-                                            std::string& errMsg)
-{
-    if ( this->determineTarget(errMsg) ) 
-        return true;
-
-    // mark which symbols can not be internalized 
-    this->applyScopeRestrictions();
-
-    Module* mergedModule = _linker.getModule();
-
-    // If target supports exception handling then enable it now.
-    switch (_target->getMCAsmInfo()->getExceptionHandlingType()) {
-    case ExceptionHandling::Dwarf:
-      llvm::DwarfExceptionHandling = true;
-      break;
-    case ExceptionHandling::SjLj:
-      llvm::SjLjExceptionHandling = true;
-      break;
-    case ExceptionHandling::None:
-      break;
-    default:
-      assert (0 && "Unknown exception handling model!");
-    }
-
-    // if options were requested, set them
-    if ( !_codegenOptions.empty() )
-        cl::ParseCommandLineOptions(_codegenOptions.size(), 
-                                                (char**)&_codegenOptions[0]);
-
-    // Instantiate the pass manager to organize the passes.
-    PassManager passes;
-
-    // Start off with a verification pass.
-    passes.add(createVerifierPass());
-
-    // Add an appropriate TargetData instance for this module...
-    passes.add(new TargetData(*_target->getTargetData()));
-    
-    createStandardLTOPasses(&passes, /*Internalize=*/ false, !DisableInline,
-                            /*VerifyEach=*/ false);
-
-    // Make sure everything is still good.
-    passes.add(createVerifierPass());
-
-    FunctionPassManager* codeGenPasses =
-            new FunctionPassManager(new ExistingModuleProvider(mergedModule));
-
-    codeGenPasses->add(new TargetData(*_target->getTargetData()));
-
-    ObjectCodeEmitter* oce = NULL;
-
-    switch (_target->addPassesToEmitFile(*codeGenPasses, out,
-                                         TargetMachine::AssemblyFile,
-                                         CodeGenOpt::Aggressive)) {
-        case FileModel::MachOFile:
-            oce = AddMachOWriter(*codeGenPasses, out, *_target);
-            break;
-        case FileModel::ElfFile:
-            oce = AddELFWriter(*codeGenPasses, out, *_target);
-            break;
-        case FileModel::AsmFile:
-            break;
-        case FileModel::Error:
-        case FileModel::None:
-            errMsg = "target file type not supported";
-            return true;
-    }
-
-    if (_target->addPassesToEmitFileFinish(*codeGenPasses, oce,
-                                           CodeGenOpt::Aggressive)) {
-        errMsg = "target does not support generation of this file type";
-        return true;
-    }
-
-    // Run our queue of passes all at once now, efficiently.
-    passes.run(*mergedModule);
-
-    // Run the code generator, and write assembly file
-    codeGenPasses->doInitialization();
-
-    for (Module::iterator
-           it = mergedModule->begin(), e = mergedModule->end(); it != e; ++it)
-      if (!it->isDeclaration())
-        codeGenPasses->run(*it);
-
-    codeGenPasses->doFinalization();
-
-    return false; // success
-}
-
-
-/// Optimize merged modules using various IPO passes
-void LTOCodeGenerator::setCodeGenDebugOptions(const char* options)
-{
-    std::string ops(options);
-    for (std::string o = getToken(ops); !o.empty(); o = getToken(ops)) {
-        // ParseCommandLineOptions() expects argv[0] to be program name.
-        // Lazily add that.
-        if ( _codegenOptions.empty() ) 
-            _codegenOptions.push_back("libLTO");
-        _codegenOptions.push_back(strdup(o.c_str()));
-    }
-}
diff --git a/libclamav/c++/llvm/tools/lto/LTOCodeGenerator.h b/libclamav/c++/llvm/tools/lto/LTOCodeGenerator.h
deleted file mode 100644
index 0ebec2c..0000000
--- a/libclamav/c++/llvm/tools/lto/LTOCodeGenerator.h
+++ /dev/null
@@ -1,69 +0,0 @@
-//===-LTOCodeGenerator.h - LLVM Link Time Optimizer -----------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file declares the LTOCodeGenerator class. 
-//
-//===----------------------------------------------------------------------===//
-
-
-#ifndef LTO_CODE_GENERATOR_H
-#define LTO_CODE_GENERATOR_H
-
-#include "llvm/Linker.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/ADT/StringMap.h"
-#include "llvm/ADT/SmallVector.h"
-
-#include <string>
-
-
-//
-// C++ class which implements the opaque lto_code_gen_t
-//
-
-class LTOCodeGenerator {
-public:
-    static const char*        getVersionString();
-    
-                            LTOCodeGenerator();
-                            ~LTOCodeGenerator();
-                            
-    bool                addModule(class LTOModule*, std::string& errMsg);
-    bool                setDebugInfo(lto_debug_model, std::string& errMsg);
-    bool                setCodePICModel(lto_codegen_model, std::string& errMsg);
-    void                setAssemblerPath(const char* path);
-    void                addMustPreserveSymbol(const char* sym);
-    bool                writeMergedModules(const char* path, 
-                                                           std::string& errMsg);
-    const void*         compile(size_t* length, std::string& errMsg);
-    void                setCodeGenDebugOptions(const char *opts); 
-private:
-    bool                generateAssemblyCode(llvm::formatted_raw_ostream& out, 
-                                             std::string& errMsg);
-    bool                assemble(const std::string& asmPath, 
-                            const std::string& objPath, std::string& errMsg);
-    void                applyScopeRestrictions();
-    bool                determineTarget(std::string& errMsg);
-    
-    typedef llvm::StringMap<uint8_t> StringSet;
-
-    llvm::LLVMContext&          _context;
-    llvm::Linker                _linker;
-    llvm::TargetMachine*        _target;
-    bool                        _emitDwarfDebugInfo;
-    bool                        _scopeRestrictionsDone;
-    lto_codegen_model           _codeModel;
-    StringSet                   _mustPreserveSymbols;
-    llvm::MemoryBuffer*         _nativeObjectFile;
-    std::vector<const char*>    _codegenOptions;
-    llvm::sys::Path*            _assemblerPath;
-};
-
-#endif // LTO_CODE_GENERATOR_H
-
diff --git a/libclamav/c++/llvm/tools/lto/LTOModule.cpp b/libclamav/c++/llvm/tools/lto/LTOModule.cpp
deleted file mode 100644
index e3a3cf6..0000000
--- a/libclamav/c++/llvm/tools/lto/LTOModule.cpp
+++ /dev/null
@@ -1,551 +0,0 @@
-//===-LTOModule.cpp - LLVM Link Time Optimizer ----------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Link Time Optimization library. This library is 
-// intended to be used by linker to optimize code at link time.
-//
-//===----------------------------------------------------------------------===//
-
-#include "LTOModule.h"
-
-#include "llvm/Constants.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/ADT/OwningPtr.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/Support/Mangler.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/MathExtras.h"
-#include "llvm/System/Host.h"
-#include "llvm/System/Path.h"
-#include "llvm/System/Process.h"
-#include "llvm/Target/SubtargetFeature.h"
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetRegistry.h"
-#include "llvm/Target/TargetSelect.h"
-
-using namespace llvm;
-
-bool LTOModule::isBitcodeFile(const void* mem, size_t length)
-{
-    return ( llvm::sys::IdentifyFileType((char*)mem, length) 
-                                            == llvm::sys::Bitcode_FileType );
-}
-
-bool LTOModule::isBitcodeFile(const char* path)
-{
-    return llvm::sys::Path(path).isBitcodeFile();
-}
-
-bool LTOModule::isBitcodeFileForTarget(const void* mem, size_t length,
-                                       const char* triplePrefix) 
-{
-    MemoryBuffer* buffer = makeBuffer(mem, length);
-    if ( buffer == NULL )
-        return false;
-    return isTargetMatch(buffer, triplePrefix);
-}
-
-
-bool LTOModule::isBitcodeFileForTarget(const char* path,
-                                       const char* triplePrefix) 
-{
-    MemoryBuffer *buffer = MemoryBuffer::getFile(path);
-    if (buffer == NULL)
-        return false;
-    return isTargetMatch(buffer, triplePrefix);
-}
-
-// takes ownership of buffer
-bool LTOModule::isTargetMatch(MemoryBuffer* buffer, const char* triplePrefix)
-{
-    OwningPtr<ModuleProvider> mp(getBitcodeModuleProvider(buffer,
-                                                          getGlobalContext()));
-    // on success, mp owns buffer and both are deleted at end of this method
-    if ( !mp ) {
-        delete buffer;
-        return false;
-    }
-    std::string actualTarget = mp->getModule()->getTargetTriple();
-    return ( strncmp(actualTarget.c_str(), triplePrefix, 
-                    strlen(triplePrefix)) == 0);
-}
-
-
-LTOModule::LTOModule(Module* m, TargetMachine* t) 
- : _module(m), _target(t), _symbolsParsed(false)
-{
-}
-
-LTOModule* LTOModule::makeLTOModule(const char* path,
-                                    std::string& errMsg)
-{
-    OwningPtr<MemoryBuffer> buffer(MemoryBuffer::getFile(path, &errMsg));
-    if ( !buffer )
-        return NULL;
-    return makeLTOModule(buffer.get(), errMsg);
-}
-
-/// makeBuffer - create a MemoryBuffer from a memory range.
-/// MemoryBuffer requires the byte past end of the buffer to be a zero.
-/// We might get lucky and already be that way, otherwise make a copy.
-/// Also if next byte is on a different page, don't assume it is readable.
-MemoryBuffer* LTOModule::makeBuffer(const void* mem, size_t length)
-{
-    const char* startPtr = (char*)mem;
-    const char* endPtr = startPtr+length;
-    if ( (((uintptr_t)endPtr & (sys::Process::GetPageSize()-1)) == 0) 
-        || (*endPtr != 0) ) 
-        return MemoryBuffer::getMemBufferCopy(startPtr, endPtr);
-    else
-        return MemoryBuffer::getMemBuffer(startPtr, endPtr);
-}
-
-
-LTOModule* LTOModule::makeLTOModule(const void* mem, size_t length, 
-                                    std::string& errMsg)
-{
-    OwningPtr<MemoryBuffer> buffer(makeBuffer(mem, length));
-    if ( !buffer )
-        return NULL;
-    return makeLTOModule(buffer.get(), errMsg);
-}
-
-/// getFeatureString - Return a string listing the features associated with the
-/// target triple.
-///
-/// FIXME: This is an inelegant way of specifying the features of a
-/// subtarget. It would be better if we could encode this information into the
-/// IR. See <rdar://5972456>.
-std::string getFeatureString(const char *TargetTriple) {
-  InitializeAllTargets();
-
-  SubtargetFeatures Features;
-
-  if (strncmp(TargetTriple, "powerpc-apple-", 14) == 0) {
-    Features.AddFeature("altivec", true);
-  } else if (strncmp(TargetTriple, "powerpc64-apple-", 16) == 0) {
-    Features.AddFeature("64bit", true);
-    Features.AddFeature("altivec", true);
-  }
-
-  return Features.getString();
-}
-
-LTOModule* LTOModule::makeLTOModule(MemoryBuffer* buffer,
-                                    std::string& errMsg)
-{
-    InitializeAllTargets();
-
-    // parse bitcode buffer
-    OwningPtr<Module> m(ParseBitcodeFile(buffer, getGlobalContext(), &errMsg));
-    if ( !m )
-        return NULL;
-
-    std::string Triple = m->getTargetTriple();
-    if (Triple.empty())
-      Triple = sys::getHostTriple();
-
-    // find machine architecture for this module
-    const Target* march = TargetRegistry::lookupTarget(Triple, errMsg);
-    if ( march == NULL ) 
-        return NULL;
-
-    // construct LTModule, hand over ownership of module and target
-    std::string FeatureStr = getFeatureString(Triple.c_str());
-    TargetMachine* target = march->createTargetMachine(Triple, FeatureStr);
-    return new LTOModule(m.take(), target);
-}
-
-
-const char* LTOModule::getTargetTriple()
-{
-    return _module->getTargetTriple().c_str();
-}
-
-void LTOModule::addDefinedFunctionSymbol(Function* f, Mangler &mangler)
-{
-    // add to list of defined symbols
-    addDefinedSymbol(f, mangler, true); 
-
-    // add external symbols referenced by this function.
-    for (Function::iterator b = f->begin(); b != f->end(); ++b) {
-        for (BasicBlock::iterator i = b->begin(); i != b->end(); ++i) {
-            for (unsigned count = 0, total = i->getNumOperands(); 
-                                        count != total; ++count) {
-                findExternalRefs(i->getOperand(count), mangler);
-            }
-        }
-    }
-}
-
-// get string that data pointer points to 
-bool LTOModule::objcClassNameFromExpression(Constant* c, std::string& name)
-{
-    if (ConstantExpr* ce = dyn_cast<ConstantExpr>(c)) {
-        Constant* op = ce->getOperand(0);
-        if (GlobalVariable* gvn = dyn_cast<GlobalVariable>(op)) {
-            Constant* cn = gvn->getInitializer(); 
-            if (ConstantArray* ca = dyn_cast<ConstantArray>(cn)) {
-                if ( ca->isCString() ) {
-                    name = ".objc_class_name_" + ca->getAsString();
-                    return true;
-                }
-            }
-        }
-    }
-    return false;
-}
-
-// parse i386/ppc ObjC class data structure 
-void LTOModule::addObjCClass(GlobalVariable* clgv)
-{
-    if (ConstantStruct* c = dyn_cast<ConstantStruct>(clgv->getInitializer())) {
-        // second slot in __OBJC,__class is pointer to superclass name
-        std::string superclassName;
-        if ( objcClassNameFromExpression(c->getOperand(1), superclassName) ) {
-            NameAndAttributes info;
-            if ( _undefines.find(superclassName.c_str()) == _undefines.end() ) {
-                const char* symbolName = ::strdup(superclassName.c_str());
-                info.name = ::strdup(symbolName);
-                info.attributes = LTO_SYMBOL_DEFINITION_UNDEFINED;
-                // string is owned by _undefines
-                _undefines[info.name] = info;
-            }
-        }
-        // third slot in __OBJC,__class is pointer to class name
-        std::string className;
-         if ( objcClassNameFromExpression(c->getOperand(2), className) ) {
-            const char* symbolName = ::strdup(className.c_str());
-            NameAndAttributes info;
-            info.name = symbolName;
-            info.attributes = (lto_symbol_attributes)
-                (LTO_SYMBOL_PERMISSIONS_DATA |
-                 LTO_SYMBOL_DEFINITION_REGULAR | 
-                 LTO_SYMBOL_SCOPE_DEFAULT);
-            _symbols.push_back(info);
-            _defines[info.name] = 1;
-         }
-    }
-}
-
-
-// parse i386/ppc ObjC category data structure 
-void LTOModule::addObjCCategory(GlobalVariable* clgv)
-{
-    if (ConstantStruct* c = dyn_cast<ConstantStruct>(clgv->getInitializer())) {
-        // second slot in __OBJC,__category is pointer to target class name
-        std::string targetclassName;
-        if ( objcClassNameFromExpression(c->getOperand(1), targetclassName) ) {
-            NameAndAttributes info;
-            if ( _undefines.find(targetclassName.c_str()) == _undefines.end() ){
-                const char* symbolName = ::strdup(targetclassName.c_str());
-                info.name = ::strdup(symbolName);
-                info.attributes = LTO_SYMBOL_DEFINITION_UNDEFINED;
-                // string is owned by _undefines
-               _undefines[info.name] = info;
-            }
-        }
-    }
-}
-
-
-// parse i386/ppc ObjC class list data structure 
-void LTOModule::addObjCClassRef(GlobalVariable* clgv)
-{
-    std::string targetclassName;
-    if ( objcClassNameFromExpression(clgv->getInitializer(), targetclassName) ){
-        NameAndAttributes info;
-        if ( _undefines.find(targetclassName.c_str()) == _undefines.end() ) {
-            const char* symbolName = ::strdup(targetclassName.c_str());
-            info.name = ::strdup(symbolName);
-            info.attributes = LTO_SYMBOL_DEFINITION_UNDEFINED;
-            // string is owned by _undefines
-            _undefines[info.name] = info;
-        }
-    }
-}
-
-
-void LTOModule::addDefinedDataSymbol(GlobalValue* v, Mangler& mangler)
-{    
-    // add to list of defined symbols
-    addDefinedSymbol(v, mangler, false); 
-
-    // Special case i386/ppc ObjC data structures in magic sections:
-    // The issue is that the old ObjC object format did some strange 
-    // contortions to avoid real linker symbols.  For instance, the 
-    // ObjC class data structure is allocated statically in the executable 
-    // that defines that class.  That data structures contains a pointer to
-    // its superclass.  But instead of just initializing that part of the 
-    // struct to the address of its superclass, and letting the static and 
-    // dynamic linkers do the rest, the runtime works by having that field
-    // instead point to a C-string that is the name of the superclass. 
-    // At runtime the objc initialization updates that pointer and sets 
-    // it to point to the actual super class.  As far as the linker
-    // knows it is just a pointer to a string.  But then someone wanted the 
-    // linker to issue errors at build time if the superclass was not found.  
-    // So they figured out a way in mach-o object format to use an absolute 
-    // symbols (.objc_class_name_Foo = 0) and a floating reference 
-    // (.reference .objc_class_name_Bar) to cause the linker into erroring when
-    // a class was missing.   
-    // The following synthesizes the implicit .objc_* symbols for the linker
-    // from the ObjC data structures generated by the front end.
-    if ( v->hasSection() /* && isTargetDarwin */ ) {
-        // special case if this data blob is an ObjC class definition
-        if ( v->getSection().compare(0, 15, "__OBJC,__class,") == 0 ) {
-            if (GlobalVariable* gv = dyn_cast<GlobalVariable>(v)) {
-                addObjCClass(gv);
-            }
-        }                        
-    
-        // special case if this data blob is an ObjC category definition
-        else if ( v->getSection().compare(0, 18, "__OBJC,__category,") == 0 ) {
-            if (GlobalVariable* gv = dyn_cast<GlobalVariable>(v)) {
-                addObjCCategory(gv);
-            }
-        }                        
-        
-        // special case if this data blob is the list of referenced classes
-        else if ( v->getSection().compare(0, 18, "__OBJC,__cls_refs,") == 0 ) {
-            if (GlobalVariable* gv = dyn_cast<GlobalVariable>(v)) {
-                addObjCClassRef(gv);
-            }
-        }                        
-    }
-
-    // add external symbols referenced by this data.
-    for (unsigned count = 0, total = v->getNumOperands();
-                                                count != total; ++count) {
-        findExternalRefs(v->getOperand(count), mangler);
-    }
-}
-
-
-void LTOModule::addDefinedSymbol(GlobalValue* def, Mangler &mangler, 
-                                 bool isFunction)
-{    
-    // ignore all llvm.* symbols
-    if (def->getName().startswith("llvm."))
-        return;
-
-    // string is owned by _defines
-    const char* symbolName = ::strdup(mangler.getMangledName(def).c_str());
-
-    // set alignment part log2() can have rounding errors
-    uint32_t align = def->getAlignment();
-    uint32_t attr = align ? CountTrailingZeros_32(def->getAlignment()) : 0;
-    
-    // set permissions part
-    if ( isFunction )
-        attr |= LTO_SYMBOL_PERMISSIONS_CODE;
-    else {
-        GlobalVariable* gv = dyn_cast<GlobalVariable>(def);
-        if ( (gv != NULL) && gv->isConstant() )
-            attr |= LTO_SYMBOL_PERMISSIONS_RODATA;
-        else
-            attr |= LTO_SYMBOL_PERMISSIONS_DATA;
-    }
-    
-    // set definition part 
-    if ( def->hasWeakLinkage() || def->hasLinkOnceLinkage() ) {
-        attr |= LTO_SYMBOL_DEFINITION_WEAK;
-    }
-    else if ( def->hasCommonLinkage()) {
-        attr |= LTO_SYMBOL_DEFINITION_TENTATIVE;
-    }
-    else { 
-        attr |= LTO_SYMBOL_DEFINITION_REGULAR;
-    }
-    
-    // set scope part
-    if ( def->hasHiddenVisibility() )
-        attr |= LTO_SYMBOL_SCOPE_HIDDEN;
-    else if ( def->hasProtectedVisibility() )
-        attr |= LTO_SYMBOL_SCOPE_PROTECTED;
-    else if ( def->hasExternalLinkage() || def->hasWeakLinkage() 
-              || def->hasLinkOnceLinkage() || def->hasCommonLinkage() )
-        attr |= LTO_SYMBOL_SCOPE_DEFAULT;
-    else
-        attr |= LTO_SYMBOL_SCOPE_INTERNAL;
-
-    // add to table of symbols
-    NameAndAttributes info;
-    info.name = symbolName;
-    info.attributes = (lto_symbol_attributes)attr;
-    _symbols.push_back(info);
-    _defines[info.name] = 1;
-}
-
-void LTOModule::addAsmGlobalSymbol(const char *name) {
-    // only add new define if not already defined
-    if ( _defines.count(name) == 0 ) 
-        return;
-        
-    // string is owned by _defines
-    const char *symbolName = ::strdup(name);
-    uint32_t attr = LTO_SYMBOL_DEFINITION_REGULAR;
-    attr |= LTO_SYMBOL_SCOPE_DEFAULT;
-    NameAndAttributes info;
-    info.name = symbolName;
-    info.attributes = (lto_symbol_attributes)attr;
-    _symbols.push_back(info);
-    _defines[info.name] = 1;
-}
-
-void LTOModule::addPotentialUndefinedSymbol(GlobalValue* decl, Mangler &mangler)
-{   
-    // ignore all llvm.* symbols
-    if (decl->getName().startswith("llvm."))
-        return;
-
-    // ignore all aliases
-    if (isa<GlobalAlias>(decl))
-        return;
-
-    std::string name = mangler.getMangledName(decl);
-
-    // we already have the symbol
-    if (_undefines.find(name) != _undefines.end())
-      return;
-
-    NameAndAttributes info;
-    // string is owned by _undefines
-    info.name = ::strdup(name.c_str());
-    if (decl->hasExternalWeakLinkage())
-      info.attributes = LTO_SYMBOL_DEFINITION_WEAKUNDEF;
-    else
-      info.attributes = LTO_SYMBOL_DEFINITION_UNDEFINED;
-    _undefines[name] = info;
-}
-
-
-
-// Find external symbols referenced by VALUE. This is a recursive function.
-void LTOModule::findExternalRefs(Value* value, Mangler &mangler) {
-
-    if (GlobalValue* gv = dyn_cast<GlobalValue>(value)) {
-        if ( !gv->hasExternalLinkage() )
-            addPotentialUndefinedSymbol(gv, mangler);
-        // If this is a variable definition, do not recursively process
-        // initializer.  It might contain a reference to this variable
-        // and cause an infinite loop.  The initializer will be
-        // processed in addDefinedDataSymbol(). 
-        return;
-    }
-    
-    // GlobalValue, even with InternalLinkage type, may have operands with 
-    // ExternalLinkage type. Do not ignore these operands.
-    if (Constant* c = dyn_cast<Constant>(value)) {
-        // Handle ConstantExpr, ConstantStruct, ConstantArry etc..
-        for (unsigned i = 0, e = c->getNumOperands(); i != e; ++i)
-            findExternalRefs(c->getOperand(i), mangler);
-    }
-}
-
-void LTOModule::lazyParseSymbols()
-{
-    if ( !_symbolsParsed ) {
-        _symbolsParsed = true;
-        
-        // Use mangler to add GlobalPrefix to names to match linker names.
-        Mangler mangler(*_module, _target->getMCAsmInfo()->getGlobalPrefix());
-        // add chars used in ObjC method names so method names aren't mangled
-        mangler.markCharAcceptable('[');
-        mangler.markCharAcceptable(']');
-        mangler.markCharAcceptable('(');
-        mangler.markCharAcceptable(')');
-        mangler.markCharAcceptable('-');
-        mangler.markCharAcceptable('+');
-        mangler.markCharAcceptable(' ');
-
-        // add functions
-        for (Module::iterator f = _module->begin(); f != _module->end(); ++f) {
-            if ( f->isDeclaration() ) 
-                addPotentialUndefinedSymbol(f, mangler);
-            else 
-                addDefinedFunctionSymbol(f, mangler);
-        }
-        
-        // add data 
-        for (Module::global_iterator v = _module->global_begin(), 
-                                    e = _module->global_end(); v !=  e; ++v) {
-            if ( v->isDeclaration() ) 
-                addPotentialUndefinedSymbol(v, mangler);
-            else 
-                addDefinedDataSymbol(v, mangler);
-        }
-
-        // add asm globals
-        const std::string &inlineAsm = _module->getModuleInlineAsm();
-        const std::string glbl = ".globl";
-        std::string asmSymbolName;
-        std::string::size_type pos = inlineAsm.find(glbl, 0);
-        while (pos != std::string::npos) {
-          // eat .globl
-          pos = pos + 6;
-
-          // skip white space between .globl and symbol name
-          std::string::size_type pbegin = inlineAsm.find_first_not_of(' ', pos);
-          if (pbegin == std::string::npos)
-            break;
-
-          // find end-of-line
-          std::string::size_type pend = inlineAsm.find_first_of('\n', pbegin);
-          if (pend == std::string::npos)
-            break;
-
-          asmSymbolName.assign(inlineAsm, pbegin, pend - pbegin);
-          addAsmGlobalSymbol(asmSymbolName.c_str());
-
-          // search next .globl
-          pos = inlineAsm.find(glbl, pend);
-        }
-
-        // make symbols for all undefines
-        for (StringMap<NameAndAttributes>::iterator it=_undefines.begin(); 
-                                                it != _undefines.end(); ++it) {
-            // if this symbol also has a definition, then don't make an undefine
-            // because it is a tentative definition
-            if ( _defines.count(it->getKey()) == 0 ) {
-              NameAndAttributes info = it->getValue();
-              _symbols.push_back(info);
-            }
-        }
-    }    
-}
-
-
-uint32_t LTOModule::getSymbolCount()
-{
-    lazyParseSymbols();
-    return _symbols.size();
-}
-
-
-lto_symbol_attributes LTOModule::getSymbolAttributes(uint32_t index)
-{
-    lazyParseSymbols();
-    if ( index < _symbols.size() )
-        return _symbols[index].attributes;
-    else
-        return lto_symbol_attributes(0);
-}
-
-const char* LTOModule::getSymbolName(uint32_t index)
-{
-    lazyParseSymbols();
-    if ( index < _symbols.size() )
-        return _symbols[index].name;
-    else
-        return NULL;
-}
diff --git a/libclamav/c++/llvm/tools/lto/LTOModule.h b/libclamav/c++/llvm/tools/lto/LTOModule.h
deleted file mode 100644
index 8fd3915..0000000
--- a/libclamav/c++/llvm/tools/lto/LTOModule.h
+++ /dev/null
@@ -1,113 +0,0 @@
-//===-LTOModule.h - LLVM Link Time Optimizer ------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file declares the LTOModule class. 
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LTO_MODULE_H
-#define LTO_MODULE_H
-
-#include "llvm/Module.h"
-#include "llvm/ADT/OwningPtr.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/ADT/StringMap.h"
-
-#include "llvm-c/lto.h"
-
-#include <vector>
-#include <string>
-
-
-// forward references to llvm classes
-namespace llvm {
-    class Mangler;
-    class MemoryBuffer;
-    class GlobalValue;
-    class Value;
-    class Function;
-}
-
-
-//
-// C++ class which implements the opaque lto_module_t
-//
-class LTOModule {
-public:
-
-    static bool              isBitcodeFile(const void* mem, size_t length);
-    static bool              isBitcodeFile(const char* path);
-
-    static bool              isBitcodeFileForTarget(const void* mem, 
-                                    size_t length, const char* triplePrefix);
-
-    static bool              isBitcodeFileForTarget(const char* path, 
-                                                    const char* triplePrefix);
-
-    static LTOModule*        makeLTOModule(const char* path,
-                                          std::string& errMsg);
-    static LTOModule*        makeLTOModule(const void* mem, size_t length,
-                                           std::string& errMsg);
-
-    const char*              getTargetTriple();
-    uint32_t                 getSymbolCount();
-    lto_symbol_attributes    getSymbolAttributes(uint32_t index);
-    const char*              getSymbolName(uint32_t index);
-    
-    llvm::Module *           getLLVVMModule() { return _module.get(); }
-
-private:
-                            LTOModule(llvm::Module* m, llvm::TargetMachine* t);
-
-    void                    lazyParseSymbols();
-    void                    addDefinedSymbol(llvm::GlobalValue* def, 
-                                                    llvm::Mangler& mangler, 
-                                                    bool isFunction);
-    void                    addPotentialUndefinedSymbol(llvm::GlobalValue* decl, 
-                                                        llvm::Mangler &mangler);
-    void                    findExternalRefs(llvm::Value* value, 
-                                                llvm::Mangler& mangler);
-    void                    addDefinedFunctionSymbol(llvm::Function* f, 
-                                                        llvm::Mangler &mangler);
-    void                    addDefinedDataSymbol(llvm::GlobalValue* v, 
-                                                        llvm::Mangler &mangler);
-    void                    addAsmGlobalSymbol(const char *);
-    void                    addObjCClass(llvm::GlobalVariable* clgv);
-    void                    addObjCCategory(llvm::GlobalVariable* clgv);
-    void                    addObjCClassRef(llvm::GlobalVariable* clgv);
-    bool                    objcClassNameFromExpression(llvm::Constant* c, 
-                                                    std::string& name);
-
-    static bool             isTargetMatch(llvm::MemoryBuffer* memBuffer,
-                                                    const char* triplePrefix);
-
-    static LTOModule*       makeLTOModule(llvm::MemoryBuffer* buffer,
-                                                        std::string& errMsg);
-    static llvm::MemoryBuffer* makeBuffer(const void* mem, size_t length);
-
-    typedef llvm::StringMap<uint8_t> StringSet;
-    
-    struct NameAndAttributes { 
-        const char*            name; 
-        lto_symbol_attributes  attributes; 
-    };
-
-    llvm::OwningPtr<llvm::Module>           _module;
-    llvm::OwningPtr<llvm::TargetMachine>    _target;
-    bool                                    _symbolsParsed;
-    std::vector<NameAndAttributes>          _symbols;
-    // _defines and _undefines only needed to disambiguate tentative definitions
-    StringSet                               _defines;    
-    llvm::StringMap<NameAndAttributes>      _undefines;
-};
-
-extern std::string getFeatureString(const char *TargetTriple);
-
-#endif // LTO_MODULE_H
-
diff --git a/libclamav/c++/llvm/tools/lto/Makefile b/libclamav/c++/llvm/tools/lto/Makefile
deleted file mode 100644
index 3120aa5..0000000
--- a/libclamav/c++/llvm/tools/lto/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-##===- tools/lto/Makefile ----------------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../..
-LIBRARYNAME = LTO
-
-# Include this here so we can get the configuration of the targets
-# that have been configured for construction. We have to do this 
-# early so we can set up LINK_COMPONENTS before including Makefile.rules
-include $(LEVEL)/Makefile.config
-
-LINK_LIBS_IN_SHARED = 1
-SHARED_LIBRARY = 1
-
-LINK_COMPONENTS := $(TARGETS_TO_BUILD) ipo scalaropts linker bitreader bitwriter
-
-include $(LEVEL)/Makefile.common
-
-ifeq ($(HOST_OS),Darwin)
-    # set dylib internal version number to llvmCore submission number
-    ifdef LLVM_SUBMIT_VERSION
-        LLVMLibsOptions := $(LLVMLibsOptions) -Wl,-current_version \
-                        -Wl,$(LLVM_SUBMIT_VERSION).$(LLVM_SUBMIT_SUBVERSION) \
-                        -Wl,-compatibility_version -Wl,1
-    endif
-    # extra options to override libtool defaults 
-    LLVMLibsOptions    := $(LLVMLibsOptions)  \
-                         -avoid-version \
-                         -Wl,-exported_symbols_list -Wl,$(PROJ_SRC_DIR)/lto.exports \
-                         -Wl,-dead_strip \
-                         -Wl,-seg1addr -Wl,0xE0000000 
-
-    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
-    DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
-    ifneq ($(DARWIN_VERS),8)
-       LLVMLibsOptions    := $(LLVMLibsOptions)  \
-                            -no-undefined -Wl,-install_name \
-                            -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
-    endif
-endif
diff --git a/libclamav/c++/llvm/tools/lto/lto.cpp b/libclamav/c++/llvm/tools/lto/lto.cpp
deleted file mode 100644
index cc841bd..0000000
--- a/libclamav/c++/llvm/tools/lto/lto.cpp
+++ /dev/null
@@ -1,257 +0,0 @@
-//===-lto.cpp - LLVM Link Time Optimizer ----------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file implements the Link Time Optimization library. This library is 
-// intended to be used by linker to optimize code at link time.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm-c/lto.h"
-#include "llvm-c/Core.h"
-
-#include "LTOModule.h"
-#include "LTOCodeGenerator.h"
-
-
-// holds most recent error string
-// *** not thread safe ***
-static std::string sLastErrorString;
-
-
-
-//
-// returns a printable string
-//
-extern const char* lto_get_version()
-{
-    return LTOCodeGenerator::getVersionString();
-}
-
-//
-// returns the last error string or NULL if last operation was successful
-//
-const char* lto_get_error_message()
-{
-    return sLastErrorString.c_str();
-}
-
-
-
-//
-// validates if a file is a loadable object file
-//
-bool lto_module_is_object_file(const char* path)
-{
-    return LTOModule::isBitcodeFile(path);
-}
-
-
-//
-// validates if a file is a loadable object file compilable for requested target
-//
-bool lto_module_is_object_file_for_target(const char* path, 
-                                            const char* target_triplet_prefix)
-{
-    return LTOModule::isBitcodeFileForTarget(path, target_triplet_prefix);
-}
-
-
-//
-// validates if a buffer is a loadable object file
-//
-bool lto_module_is_object_file_in_memory(const void* mem, size_t length)
-{
-    return LTOModule::isBitcodeFile(mem, length);
-}
-
-
-//
-// validates if a buffer is a loadable object file compilable for the target
-//
-bool lto_module_is_object_file_in_memory_for_target(const void* mem, 
-                            size_t length, const char* target_triplet_prefix)
-{
-    return LTOModule::isBitcodeFileForTarget(mem, length, target_triplet_prefix);
-}
-
-
-
-//
-// loads an object file from disk  
-// returns NULL on error (check lto_get_error_message() for details)
-//
-lto_module_t lto_module_create(const char* path)
-{
-     return LTOModule::makeLTOModule(path, sLastErrorString);
-}
-
-
-//
-// loads an object file from memory 
-// returns NULL on error (check lto_get_error_message() for details)
-//
-lto_module_t lto_module_create_from_memory(const void* mem, size_t length)
-{
-     return LTOModule::makeLTOModule(mem, length, sLastErrorString);
-}
-
-
-//
-// frees all memory for a module
-// upon return the lto_module_t is no longer valid
-//
-void lto_module_dispose(lto_module_t mod)
-{
-    delete mod;
-}
-
-
-//
-// returns triplet string which the object module was compiled under
-//
-const char* lto_module_get_target_triple(lto_module_t mod)
-{
-    return mod->getTargetTriple();
-}
-
-
-//
-// returns the number of symbols in the object module
-//
-uint32_t lto_module_get_num_symbols(lto_module_t mod)
-{
-    return mod->getSymbolCount();
-}
-
-//
-// returns the name of the ith symbol in the object module
-//
-const char* lto_module_get_symbol_name(lto_module_t mod, uint32_t index)
-{
-    return mod->getSymbolName(index);
-}
-
-
-//
-// returns the attributes of the ith symbol in the object module
-//
-lto_symbol_attributes lto_module_get_symbol_attribute(lto_module_t mod, 
-                                                            uint32_t index)
-{
-    return mod->getSymbolAttributes(index);
-}
-
-
-
-
-
-//
-// instantiates a code generator
-// returns NULL if there is an error
-//
-lto_code_gen_t lto_codegen_create(void)
-{
-     return new LTOCodeGenerator();
-}
-
-
-
-//
-// frees all memory for a code generator
-// upon return the lto_code_gen_t is no longer valid
-//
-void lto_codegen_dispose(lto_code_gen_t cg)
-{
-    delete cg;
-}
-
-
-
-//
-// add an object module to the set of modules for which code will be generated
-// returns true on error (check lto_get_error_message() for details)
-//
-bool lto_codegen_add_module(lto_code_gen_t cg, lto_module_t mod)
-{
-    return cg->addModule(mod, sLastErrorString);
-}
-
-
-//
-// sets what if any format of debug info should be generated
-// returns true on error (check lto_get_error_message() for details)
-//
-bool lto_codegen_set_debug_model(lto_code_gen_t cg, lto_debug_model debug)
-{
-    return cg->setDebugInfo(debug, sLastErrorString);
-}
-
-
-//
-// sets what code model to generated
-// returns true on error (check lto_get_error_message() for details)
-//
-bool lto_codegen_set_pic_model(lto_code_gen_t cg, lto_codegen_model model)
-{
-  return cg->setCodePICModel(model, sLastErrorString);
-}
-
-//
-// sets the path to the assembler tool
-//
-void lto_codegen_set_assembler_path(lto_code_gen_t cg, const char* path)
-{
-    cg->setAssemblerPath(path);
-}
-
-//
-// adds to a list of all global symbols that must exist in the final
-// generated code.  If a function is not listed there, it might be
-// inlined into every usage and optimized away.
-//
-void lto_codegen_add_must_preserve_symbol(lto_code_gen_t cg, const char* symbol)
-{
-  cg->addMustPreserveSymbol(symbol);
-}
-
-
-//
-// writes a new file at the specified path that contains the
-// merged contents of all modules added so far.
-// returns true on error (check lto_get_error_message() for details)
-//
-bool lto_codegen_write_merged_modules(lto_code_gen_t cg, const char* path)
-{
-  return cg->writeMergedModules(path, sLastErrorString);
-}
-
-
-//
-// Generates code for all added modules into one native object file.
-// On sucess returns a pointer to a generated mach-o/ELF buffer and
-// length set to the buffer size.  The buffer is owned by the 
-// lto_code_gen_t and will be freed when lto_codegen_dispose()
-// is called, or lto_codegen_compile() is called again.
-// On failure, returns NULL (check lto_get_error_message() for details).
-//
-extern const void*
-lto_codegen_compile(lto_code_gen_t cg, size_t* length)
-{
-  return cg->compile(length, sLastErrorString);
-}
-
-
-//
-// Used to pass extra options to the code generator
-//
-extern void
-lto_codegen_debug_options(lto_code_gen_t cg, const char * opt)
-{
-  cg->setCodeGenDebugOptions(opt);
-}
diff --git a/libclamav/c++/llvm/tools/lto/lto.exports b/libclamav/c++/llvm/tools/lto/lto.exports
deleted file mode 100644
index 01f43d1..0000000
--- a/libclamav/c++/llvm/tools/lto/lto.exports
+++ /dev/null
@@ -1,24 +0,0 @@
-_lto_get_error_message
-_lto_get_version
-_lto_module_create
-_lto_module_create_from_memory
-_lto_module_get_num_symbols
-_lto_module_get_symbol_attribute
-_lto_module_get_symbol_name
-_lto_module_get_target_triple
-_lto_module_is_object_file
-_lto_module_is_object_file_for_target
-_lto_module_is_object_file_in_memory
-_lto_module_is_object_file_in_memory_for_target
-_lto_module_dispose
-_lto_codegen_add_module
-_lto_codegen_add_must_preserve_symbol
-_lto_codegen_compile
-_lto_codegen_create
-_lto_codegen_dispose
-_lto_codegen_set_debug_model
-_lto_codegen_set_pic_model
-_lto_codegen_write_merged_modules
-_lto_codegen_debug_options
-_lto_codegen_set_assembler_path
-
diff --git a/libclamav/c++/llvm/tools/opt/AnalysisWrappers.cpp b/libclamav/c++/llvm/tools/opt/AnalysisWrappers.cpp
deleted file mode 100644
index 18360f8..0000000
--- a/libclamav/c++/llvm/tools/opt/AnalysisWrappers.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//===- AnalysisWrappers.cpp - Wrappers around non-pass analyses -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines pass wrappers around LLVM analyses that don't make sense to
-// be passes.  It provides a nice standard pass interface to these classes so
-// that they can be printed out by analyze.
-//
-// These classes are separated out of analyze.cpp so that it is more clear which
-// code is the integral part of the analyze tool, and which part of the code is
-// just making it so more passes are available.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Support/CallSite.h"
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Support/raw_ostream.h"
-#include <iostream>
-using namespace llvm;
-
-namespace {
-  /// ExternalFunctionsPassedConstants - This pass prints out call sites to
-  /// external functions that are called with constant arguments.  This can be
-  /// useful when looking for standard library functions we should constant fold
-  /// or handle in alias analyses.
-  struct ExternalFunctionsPassedConstants : public ModulePass {
-    static char ID; // Pass ID, replacement for typeid
-    ExternalFunctionsPassedConstants() : ModulePass(&ID) {}
-    virtual bool runOnModule(Module &M) {
-      for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
-        if (!I->isDeclaration()) continue;
-        
-        bool PrintedFn = false;
-        for (Value::use_iterator UI = I->use_begin(), E = I->use_end();
-             UI != E; ++UI) {
-          Instruction *User = dyn_cast<Instruction>(*UI);
-          if (!User) continue;
-          
-          CallSite CS = CallSite::get(User);
-          if (!CS.getInstruction()) continue;
-          
-          for (CallSite::arg_iterator AI = CS.arg_begin(),
-               E = CS.arg_end(); AI != E; ++AI) {
-            if (!isa<Constant>(*AI)) continue;
-
-            if (!PrintedFn) {
-              errs() << "Function '" << I->getName() << "':\n";
-              PrintedFn = true;
-            }
-            errs() << *User;
-            break;
-          }
-        }
-      }
-
-      return false;
-    }
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-    }
-  };
-
-  char ExternalFunctionsPassedConstants::ID = 0;
-  RegisterPass<ExternalFunctionsPassedConstants>
-  P1("print-externalfnconstants",
-     "Print external fn callsites passed constants");
-
-  struct CallGraphPrinter : public ModulePass {
-    static char ID; // Pass ID, replacement for typeid
-    CallGraphPrinter() : ModulePass(&ID) {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-      AU.addRequiredTransitive<CallGraph>();
-    }
-    virtual bool runOnModule(Module &M) {
-      getAnalysis<CallGraph>().print(errs(), &M);
-      return false;
-    }
-  };
-
-  char CallGraphPrinter::ID = 0;
-  RegisterPass<CallGraphPrinter>
-    P2("print-callgraph", "Print a call graph");
-}
diff --git a/libclamav/c++/llvm/tools/opt/CMakeLists.txt b/libclamav/c++/llvm/tools/opt/CMakeLists.txt
deleted file mode 100644
index efcca80..0000000
--- a/libclamav/c++/llvm/tools/opt/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-set(LLVM_REQUIRES_EH 1)
-set(LLVM_LINK_COMPONENTS bitreader bitwriter instrumentation scalaropts ipo)
-
-add_llvm_tool(opt
-  AnalysisWrappers.cpp
-  GraphPrinters.cpp
-  PrintSCC.cpp
-  opt.cpp
-  )
diff --git a/libclamav/c++/llvm/tools/opt/GraphPrinters.cpp b/libclamav/c++/llvm/tools/opt/GraphPrinters.cpp
deleted file mode 100644
index 1ae6be2..0000000
--- a/libclamav/c++/llvm/tools/opt/GraphPrinters.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//===- GraphPrinters.cpp - DOT printers for various graph types -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines several printers for various different types of graphs used
-// by the LLVM infrastructure.  It uses the generic graph interface to convert
-// the graph into a .dot graph.  These graphs can then be processed with the
-// "dot" tool to convert them to postscript or some other suitable format.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/GraphWriter.h"
-#include "llvm/Pass.h"
-#include "llvm/Value.h"
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Analysis/Dominators.h"
-#include <iostream>
-#include <fstream>
-using namespace llvm;
-
-template<typename GraphType>
-static void WriteGraphToFile(std::ostream &O, const std::string &GraphName,
-                             const GraphType &GT) {
-  std::string Filename = GraphName + ".dot";
-  O << "Writing '" << Filename << "'...";
-  std::string ErrInfo;
-  raw_fd_ostream F(Filename.c_str(), ErrInfo);
-
-  if (ErrInfo.empty())
-    WriteGraph(F, GT);
-  else
-    O << "  error opening file for writing!";
-  O << "\n";
-}
-
-
-//===----------------------------------------------------------------------===//
-//                              Call Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-  template<>
-  struct DOTGraphTraits<CallGraph*> : public DefaultDOTGraphTraits {
-    static std::string getGraphName(CallGraph *F) {
-      return "Call Graph";
-    }
-
-    static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph,
-                                    bool ShortNames) {
-      if (Node->getFunction())
-        return ((Value*)Node->getFunction())->getName();
-      else
-        return "Indirect call node";
-    }
-  };
-}
-
-
-namespace {
-  struct CallGraphPrinter : public ModulePass {
-    static char ID; // Pass ID, replacement for typeid
-    CallGraphPrinter() : ModulePass(&ID) {}
-
-    virtual bool runOnModule(Module &M) {
-      WriteGraphToFile(std::cerr, "callgraph", &getAnalysis<CallGraph>());
-      return false;
-    }
-
-    void print(raw_ostream &OS, const llvm::Module*) const {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<CallGraph>();
-      AU.setPreservesAll();
-    }
-  };
-
-  char CallGraphPrinter::ID = 0;
-  RegisterPass<CallGraphPrinter> P2("dot-callgraph",
-                                    "Print Call Graph to 'dot' file");
-}
-
-//===----------------------------------------------------------------------===//
-//                            DomInfoPrinter Pass
-//===----------------------------------------------------------------------===//
-
-namespace {
-  class DomInfoPrinter : public FunctionPass {
-  public:
-    static char ID; // Pass identification, replacement for typeid
-    DomInfoPrinter() : FunctionPass(&ID) {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-      AU.addRequired<DominatorTree>();
-      AU.addRequired<DominanceFrontier>();
-
-    }
-
-    virtual bool runOnFunction(Function &F) {
-      DominatorTree &DT = getAnalysis<DominatorTree>();
-      DT.dump();
-      DominanceFrontier &DF = getAnalysis<DominanceFrontier>();
-      DF.dump();
-      return false;
-    }
-  };
-
-  char DomInfoPrinter::ID = 0;
-  static RegisterPass<DomInfoPrinter>
-  DIP("print-dom-info", "Dominator Info Printer", true, true);
-}
diff --git a/libclamav/c++/llvm/tools/opt/Makefile b/libclamav/c++/llvm/tools/opt/Makefile
deleted file mode 100644
index 0afb002..0000000
--- a/libclamav/c++/llvm/tools/opt/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- tools/opt/Makefile ----------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-TOOLNAME = opt
-REQUIRES_EH := 1
-
-LINK_COMPONENTS := bitreader bitwriter instrumentation scalaropts ipo
-
-include $(LEVEL)/Makefile.common
diff --git a/libclamav/c++/llvm/tools/opt/PrintSCC.cpp b/libclamav/c++/llvm/tools/opt/PrintSCC.cpp
deleted file mode 100644
index 66709ff..0000000
--- a/libclamav/c++/llvm/tools/opt/PrintSCC.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//===- PrintSCC.cpp - Enumerate SCCs in some key graphs -------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides passes to print out SCCs in a CFG or a CallGraph.
-// Normally, you would not use these passes; instead, you would use the
-// scc_iterator directly to enumerate SCCs and process them in some way.  These
-// passes serve three purposes:
-//
-// (1) As a reference for how to use the scc_iterator.
-// (2) To print out the SCCs for a CFG or a CallGraph:
-//       analyze -print-cfg-sccs            to print the SCCs in each CFG of a module.
-//       analyze -print-cfg-sccs -stats     to print the #SCCs and the maximum SCC size.
-//       analyze -print-cfg-sccs -debug > /dev/null to watch the algorithm in action.
-//
-//     and similarly:
-//       analyze -print-callgraph-sccs [-stats] [-debug] to print SCCs in the CallGraph
-//
-// (3) To test the scc_iterator.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Pass.h"
-#include "llvm/Module.h"
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Support/CFG.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/SCCIterator.h"
-using namespace llvm;
-
-namespace {
-  struct CFGSCC : public FunctionPass {
-    static char ID;  // Pass identification, replacement for typeid
-    CFGSCC() : FunctionPass(&ID) {}
-    bool runOnFunction(Function& func);
-
-    void print(raw_ostream &O, const Module* = 0) const { }
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-    }
-  };
-
-  struct CallGraphSCC : public ModulePass {
-    static char ID;  // Pass identification, replacement for typeid
-    CallGraphSCC() : ModulePass(&ID) {}
-
-    // run - Print out SCCs in the call graph for the specified module.
-    bool runOnModule(Module &M);
-
-    void print(raw_ostream &O, const Module* = 0) const { }
-
-    // getAnalysisUsage - This pass requires the CallGraph.
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-      AU.addRequired<CallGraph>();
-    }
-  };
-
-  char CFGSCC::ID = 0;
-  RegisterPass<CFGSCC>
-  Y("print-cfg-sccs", "Print SCCs of each function CFG");
-
-  char CallGraphSCC::ID = 0;
-  RegisterPass<CallGraphSCC>
-  Z("print-callgraph-sccs", "Print SCCs of the Call Graph");
-}
-
-bool CFGSCC::runOnFunction(Function &F) {
-  unsigned sccNum = 0;
-  outs() << "SCCs for Function " << F.getName() << " in PostOrder:";
-  for (scc_iterator<Function*> SCCI = scc_begin(&F),
-         E = scc_end(&F); SCCI != E; ++SCCI) {
-    std::vector<BasicBlock*> &nextSCC = *SCCI;
-    outs() << "\nSCC #" << ++sccNum << " : ";
-    for (std::vector<BasicBlock*>::const_iterator I = nextSCC.begin(),
-           E = nextSCC.end(); I != E; ++I)
-      outs() << (*I)->getName() << ", ";
-    if (nextSCC.size() == 1 && SCCI.hasLoop())
-      outs() << " (Has self-loop).";
-  }
-  outs() << "\n";
-
-  return true;
-}
-
-
-// run - Print out SCCs in the call graph for the specified module.
-bool CallGraphSCC::runOnModule(Module &M) {
-  CallGraphNode* rootNode = getAnalysis<CallGraph>().getRoot();
-  unsigned sccNum = 0;
-  outs() << "SCCs for the program in PostOrder:";
-  for (scc_iterator<CallGraphNode*> SCCI = scc_begin(rootNode),
-         E = scc_end(rootNode); SCCI != E; ++SCCI) {
-    const std::vector<CallGraphNode*> &nextSCC = *SCCI;
-    outs() << "\nSCC #" << ++sccNum << " : ";
-    for (std::vector<CallGraphNode*>::const_iterator I = nextSCC.begin(),
-           E = nextSCC.end(); I != E; ++I)
-      outs() << ((*I)->getFunction() ? (*I)->getFunction()->getNameStr()
-                 : std::string("Indirect CallGraph node")) << ", ";
-    if (nextSCC.size() == 1 && SCCI.hasLoop())
-      outs() << " (Has self-loop).";
-  }
-  outs() << "\n";
-
-  return true;
-}
diff --git a/libclamav/c++/llvm/tools/opt/opt.cpp b/libclamav/c++/llvm/tools/opt/opt.cpp
deleted file mode 100644
index d8bfd61..0000000
--- a/libclamav/c++/llvm/tools/opt/opt.cpp
+++ /dev/null
@@ -1,524 +0,0 @@
-//===- opt.cpp - The LLVM Modular Optimizer -------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Optimizations may be specified an arbitrary number of times on the command
-// line, They are run in the order specified.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/PassManager.h"
-#include "llvm/CallGraphSCCPass.h"
-#include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Assembly/PrintModulePass.h"
-#include "llvm/Analysis/Verifier.h"
-#include "llvm/Analysis/LoopPass.h"
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Target/TargetData.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Support/PassNameParser.h"
-#include "llvm/System/Signals.h"
-#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/PluginLoader.h"
-#include "llvm/Support/StandardPasses.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/LinkAllPasses.h"
-#include "llvm/LinkAllVMCore.h"
-#include <memory>
-#include <algorithm>
-using namespace llvm;
-
-// The OptimizationList is automatically populated with registered Passes by the
-// PassNameParser.
-//
-static cl::list<const PassInfo*, bool, PassNameParser>
-PassList(cl::desc("Optimizations available:"));
-
-// Other command line options...
-//
-static cl::opt<std::string>
-InputFilename(cl::Positional, cl::desc("<input bitcode file>"),
-    cl::init("-"), cl::value_desc("filename"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Override output filename"),
-               cl::value_desc("filename"), cl::init("-"));
-
-static cl::opt<bool>
-Force("f", cl::desc("Enable binary output on terminals"));
-
-static cl::opt<bool>
-PrintEachXForm("p", cl::desc("Print module after each transformation"));
-
-static cl::opt<bool>
-NoOutput("disable-output",
-         cl::desc("Do not write result bitcode file"), cl::Hidden);
-
-static cl::opt<bool>
-NoVerify("disable-verify", cl::desc("Do not verify result module"), cl::Hidden);
-
-static cl::opt<bool>
-VerifyEach("verify-each", cl::desc("Verify after each transform"));
-
-static cl::opt<bool>
-StripDebug("strip-debug",
-           cl::desc("Strip debugger symbol info from translation unit"));
-
-static cl::opt<bool>
-DisableInline("disable-inlining", cl::desc("Do not run the inliner pass"));
-
-static cl::opt<bool>
-DisableOptimizations("disable-opt",
-                     cl::desc("Do not run any optimization passes"));
-
-static cl::opt<bool>
-DisableInternalize("disable-internalize",
-                   cl::desc("Do not mark all symbols as internal"));
-
-static cl::opt<bool>
-StandardCompileOpts("std-compile-opts",
-                   cl::desc("Include the standard compile time optimizations"));
-
-static cl::opt<bool>
-StandardLinkOpts("std-link-opts",
-                 cl::desc("Include the standard link time optimizations"));
-
-static cl::opt<bool>
-OptLevelO1("O1",
-           cl::desc("Optimization level 1. Similar to llvm-gcc -O1"));
-
-static cl::opt<bool>
-OptLevelO2("O2",
-           cl::desc("Optimization level 2. Similar to llvm-gcc -O2"));
-
-static cl::opt<bool>
-OptLevelO3("O3",
-           cl::desc("Optimization level 3. Similar to llvm-gcc -O3"));
-
-static cl::opt<bool>
-UnitAtATime("funit-at-a-time",
-            cl::desc("Enable IPO. This is same as llvm-gcc's -funit-at-a-time"),
-	    cl::init(true));
-
-static cl::opt<bool>
-DisableSimplifyLibCalls("disable-simplify-libcalls",
-                        cl::desc("Disable simplify-libcalls"));
-
-static cl::opt<bool>
-Quiet("q", cl::desc("Obsolete option"), cl::Hidden);
-
-static cl::alias
-QuietA("quiet", cl::desc("Alias for -q"), cl::aliasopt(Quiet));
-
-static cl::opt<bool>
-AnalyzeOnly("analyze", cl::desc("Only perform analysis, no optimization"));
-
-// ---------- Define Printers for module and function passes ------------
-namespace {
-
-struct CallGraphSCCPassPrinter : public CallGraphSCCPass {
-  static char ID;
-  const PassInfo *PassToPrint;
-  CallGraphSCCPassPrinter(const PassInfo *PI) :
-    CallGraphSCCPass(&ID), PassToPrint(PI) {}
-
-  virtual bool runOnSCC(std::vector<CallGraphNode *>&SCC) {
-    if (!Quiet) {
-      outs() << "Printing analysis '" << PassToPrint->getPassName() << "':\n";
-
-      for (unsigned i = 0, e = SCC.size(); i != e; ++i) {
-        Function *F = SCC[i]->getFunction();
-        if (F) {
-          getAnalysisID<Pass>(PassToPrint).print(outs(), F->getParent());
-        }
-      }
-    }
-    // Get and print pass...
-    return false;
-  }
-
-  virtual const char *getPassName() const { return "'Pass' Printer"; }
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.addRequiredID(PassToPrint);
-    AU.setPreservesAll();
-  }
-};
-
-char CallGraphSCCPassPrinter::ID = 0;
-
-struct ModulePassPrinter : public ModulePass {
-  static char ID;
-  const PassInfo *PassToPrint;
-  ModulePassPrinter(const PassInfo *PI) : ModulePass(&ID),
-                                          PassToPrint(PI) {}
-
-  virtual bool runOnModule(Module &M) {
-    if (!Quiet) {
-      outs() << "Printing analysis '" << PassToPrint->getPassName() << "':\n";
-      getAnalysisID<Pass>(PassToPrint).print(outs(), &M);
-    }
-
-    // Get and print pass...
-    return false;
-  }
-
-  virtual const char *getPassName() const { return "'Pass' Printer"; }
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.addRequiredID(PassToPrint);
-    AU.setPreservesAll();
-  }
-};
-
-char ModulePassPrinter::ID = 0;
-struct FunctionPassPrinter : public FunctionPass {
-  const PassInfo *PassToPrint;
-  static char ID;
-  FunctionPassPrinter(const PassInfo *PI) : FunctionPass(&ID),
-                                            PassToPrint(PI) {}
-
-  virtual bool runOnFunction(Function &F) {
-    if (!Quiet) {
-      outs() << "Printing analysis '" << PassToPrint->getPassName()
-              << "' for function '" << F.getName() << "':\n";
-    }
-    // Get and print pass...
-    getAnalysisID<Pass>(PassToPrint).print(outs(), F.getParent());
-    return false;
-  }
-
-  virtual const char *getPassName() const { return "FunctionPass Printer"; }
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.addRequiredID(PassToPrint);
-    AU.setPreservesAll();
-  }
-};
-
-char FunctionPassPrinter::ID = 0;
-
-struct LoopPassPrinter : public LoopPass {
-  static char ID;
-  const PassInfo *PassToPrint;
-  LoopPassPrinter(const PassInfo *PI) :
-    LoopPass(&ID), PassToPrint(PI) {}
-
-  virtual bool runOnLoop(Loop *L, LPPassManager &LPM) {
-    if (!Quiet) {
-      outs() << "Printing analysis '" << PassToPrint->getPassName() << "':\n";
-      getAnalysisID<Pass>(PassToPrint).print(outs(),
-                                  L->getHeader()->getParent()->getParent());
-    }
-    // Get and print pass...
-    return false;
-  }
-
-  virtual const char *getPassName() const { return "'Pass' Printer"; }
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.addRequiredID(PassToPrint);
-    AU.setPreservesAll();
-  }
-};
-
-char LoopPassPrinter::ID = 0;
-
-struct BasicBlockPassPrinter : public BasicBlockPass {
-  const PassInfo *PassToPrint;
-  static char ID;
-  BasicBlockPassPrinter(const PassInfo *PI)
-    : BasicBlockPass(&ID), PassToPrint(PI) {}
-
-  virtual bool runOnBasicBlock(BasicBlock &BB) {
-    if (!Quiet) {
-      outs() << "Printing Analysis info for BasicBlock '" << BB.getName()
-             << "': Pass " << PassToPrint->getPassName() << ":\n";
-    }
-
-    // Get and print pass...
-    getAnalysisID<Pass>(PassToPrint).print(outs(), BB.getParent()->getParent());
-    return false;
-  }
-
-  virtual const char *getPassName() const { return "BasicBlockPass Printer"; }
-
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.addRequiredID(PassToPrint);
-    AU.setPreservesAll();
-  }
-};
-
-char BasicBlockPassPrinter::ID = 0;
-inline void addPass(PassManager &PM, Pass *P) {
-  // Add the pass to the pass manager...
-  PM.add(P);
-
-  // If we are verifying all of the intermediate steps, add the verifier...
-  if (VerifyEach) PM.add(createVerifierPass());
-}
-
-/// AddOptimizationPasses - This routine adds optimization passes
-/// based on selected optimization level, OptLevel. This routine
-/// duplicates llvm-gcc behaviour.
-///
-/// OptLevel - Optimization Level
-void AddOptimizationPasses(PassManager &MPM, FunctionPassManager &FPM,
-                           unsigned OptLevel) {
-  createStandardFunctionPasses(&FPM, OptLevel);
-
-  llvm::Pass *InliningPass = OptLevel > 1 ? createFunctionInliningPass() : 0;
-  createStandardModulePasses(&MPM, OptLevel,
-                             /*OptimizeSize=*/ false,
-                             UnitAtATime,
-                             /*UnrollLoops=*/ OptLevel > 1,
-                             !DisableSimplifyLibCalls,
-                             /*HaveExceptions=*/ true,
-                             InliningPass);
-}
-
-void AddStandardCompilePasses(PassManager &PM) {
-  PM.add(createVerifierPass());                  // Verify that input is correct
-
-  addPass(PM, createLowerSetJmpPass());          // Lower llvm.setjmp/.longjmp
-
-  // If the -strip-debug command line option was specified, do it.
-  if (StripDebug)
-    addPass(PM, createStripSymbolsPass(true));
-
-  if (DisableOptimizations) return;
-
-  llvm::Pass *InliningPass = !DisableInline ? createFunctionInliningPass() : 0;
-
-  // -std-compile-opts adds the same module passes as -O3.
-  createStandardModulePasses(&PM, 3,
-                             /*OptimizeSize=*/ false,
-                             /*UnitAtATime=*/ true,
-                             /*UnrollLoops=*/ true,
-                             /*SimplifyLibCalls=*/ true,
-                             /*HaveExceptions=*/ true,
-                             InliningPass);
-}
-
-void AddStandardLinkPasses(PassManager &PM) {
-  PM.add(createVerifierPass());                  // Verify that input is correct
-
-  // If the -strip-debug command line option was specified, do it.
-  if (StripDebug)
-    addPass(PM, createStripSymbolsPass(true));
-
-  if (DisableOptimizations) return;
-
-  createStandardLTOPasses(&PM, /*Internalize=*/ !DisableInternalize,
-                          /*RunInliner=*/ !DisableInline,
-                          /*VerifyEach=*/ VerifyEach);
-}
-
-} // anonymous namespace
-
-
-//===----------------------------------------------------------------------===//
-// main for opt
-//
-int main(int argc, char **argv) {
-  llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  LLVMContext &Context = getGlobalContext();
-  try {
-    cl::ParseCommandLineOptions(argc, argv,
-      "llvm .bc -> .bc modular optimizer and analysis printer\n");
-    sys::PrintStackTraceOnErrorSignal();
-
-    // Allocate a full target machine description only if necessary.
-    // FIXME: The choice of target should be controllable on the command line.
-    std::auto_ptr<TargetMachine> target;
-
-    std::string ErrorMessage;
-
-    // Load the input module...
-    std::auto_ptr<Module> M;
-    if (MemoryBuffer *Buffer
-          = MemoryBuffer::getFileOrSTDIN(InputFilename, &ErrorMessage)) {
-      M.reset(ParseBitcodeFile(Buffer, Context, &ErrorMessage));
-      delete Buffer;
-    }
-
-    if (M.get() == 0) {
-      errs() << argv[0] << ": ";
-      if (ErrorMessage.size())
-        errs() << ErrorMessage << "\n";
-      else
-        errs() << "bitcode didn't read correctly.\n";
-      return 1;
-    }
-
-    // Figure out what stream we are supposed to write to...
-    // FIXME: outs() is not binary!
-    raw_ostream *Out = &outs();  // Default to printing to stdout...
-    if (OutputFilename != "-") {
-      std::string ErrorInfo;
-      Out = new raw_fd_ostream(OutputFilename.c_str(), ErrorInfo,
-                               raw_fd_ostream::F_Binary);
-      if (!ErrorInfo.empty()) {
-        errs() << ErrorInfo << '\n';
-        delete Out;
-        return 1;
-      }
-
-      // Make sure that the Output file gets unlinked from the disk if we get a
-      // SIGINT
-      sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-    }
-
-    // If the output is set to be emitted to standard out, and standard out is a
-    // console, print out a warning message and refuse to do it.  We don't
-    // impress anyone by spewing tons of binary goo to a terminal.
-    if (!Force && !NoOutput && CheckBitcodeOutputToConsole(*Out, !Quiet))
-      NoOutput = true;
-
-    // Create a PassManager to hold and optimize the collection of passes we are
-    // about to build...
-    //
-    PassManager Passes;
-
-    // Add an appropriate TargetData instance for this module...
-    Passes.add(new TargetData(M.get()));
-
-    FunctionPassManager *FPasses = NULL;
-    if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
-      FPasses = new FunctionPassManager(new ExistingModuleProvider(M.get()));
-      FPasses->add(new TargetData(M.get()));
-    }
-
-    // If the -strip-debug command line option was specified, add it.  If
-    // -std-compile-opts was also specified, it will handle StripDebug.
-    if (StripDebug && !StandardCompileOpts)
-      addPass(Passes, createStripSymbolsPass(true));
-
-    // Create a new optimization pass for each one specified on the command line
-    for (unsigned i = 0; i < PassList.size(); ++i) {
-      // Check to see if -std-compile-opts was specified before this option.  If
-      // so, handle it.
-      if (StandardCompileOpts &&
-          StandardCompileOpts.getPosition() < PassList.getPosition(i)) {
-        AddStandardCompilePasses(Passes);
-        StandardCompileOpts = false;
-      }
-
-      if (StandardLinkOpts &&
-          StandardLinkOpts.getPosition() < PassList.getPosition(i)) {
-        AddStandardLinkPasses(Passes);
-        StandardLinkOpts = false;
-      }
-
-      if (OptLevelO1 && OptLevelO1.getPosition() < PassList.getPosition(i)) {
-        AddOptimizationPasses(Passes, *FPasses, 1);
-        OptLevelO1 = false;
-      }
-
-      if (OptLevelO2 && OptLevelO2.getPosition() < PassList.getPosition(i)) {
-        AddOptimizationPasses(Passes, *FPasses, 2);
-        OptLevelO2 = false;
-      }
-
-      if (OptLevelO3 && OptLevelO3.getPosition() < PassList.getPosition(i)) {
-        AddOptimizationPasses(Passes, *FPasses, 3);
-        OptLevelO3 = false;
-      }
-
-      const PassInfo *PassInf = PassList[i];
-      Pass *P = 0;
-      if (PassInf->getNormalCtor())
-        P = PassInf->getNormalCtor()();
-      else
-        errs() << argv[0] << ": cannot create pass: "
-               << PassInf->getPassName() << "\n";
-      if (P) {
-        bool isBBPass = dynamic_cast<BasicBlockPass*>(P) != 0;
-        bool isLPass = !isBBPass && dynamic_cast<LoopPass*>(P) != 0;
-        bool isFPass = !isLPass && dynamic_cast<FunctionPass*>(P) != 0;
-        bool isCGSCCPass = !isFPass && dynamic_cast<CallGraphSCCPass*>(P) != 0;
-
-        addPass(Passes, P);
-
-        if (AnalyzeOnly) {
-          if (isBBPass)
-            Passes.add(new BasicBlockPassPrinter(PassInf));
-          else if (isLPass)
-            Passes.add(new LoopPassPrinter(PassInf));
-          else if (isFPass)
-            Passes.add(new FunctionPassPrinter(PassInf));
-          else if (isCGSCCPass)
-            Passes.add(new CallGraphSCCPassPrinter(PassInf));
-          else
-            Passes.add(new ModulePassPrinter(PassInf));
-        }
-      }
-
-      if (PrintEachXForm)
-        Passes.add(createPrintModulePass(&errs()));
-    }
-
-    // If -std-compile-opts was specified at the end of the pass list, add them.
-    if (StandardCompileOpts) {
-      AddStandardCompilePasses(Passes);
-      StandardCompileOpts = false;
-    }
-
-    if (StandardLinkOpts) {
-      AddStandardLinkPasses(Passes);
-      StandardLinkOpts = false;
-    }
-
-    if (OptLevelO1) {
-      AddOptimizationPasses(Passes, *FPasses, 1);
-    }
-
-    if (OptLevelO2) {
-      AddOptimizationPasses(Passes, *FPasses, 2);
-    }
-
-    if (OptLevelO3) {
-      AddOptimizationPasses(Passes, *FPasses, 3);
-    }
-
-    if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
-      FPasses->doInitialization();
-      for (Module::iterator I = M.get()->begin(), E = M.get()->end();
-           I != E; ++I)
-        FPasses->run(*I);
-    }
-
-    // Check that the module is well formed on completion of optimization
-    if (!NoVerify && !VerifyEach)
-      Passes.add(createVerifierPass());
-
-    // Write bitcode out to disk or outs() as the last step...
-    if (!NoOutput && !AnalyzeOnly)
-      Passes.add(createBitcodeWriterPass(*Out));
-
-    // Now that we have all of the passes ready, run them.
-    Passes.run(*M.get());
-
-    // Delete the raw_fd_ostream.
-    if (Out != &outs())
-      delete Out;
-    return 0;
-
-  } catch (const std::string& msg) {
-    errs() << argv[0] << ": " << msg << "\n";
-  } catch (...) {
-    errs() << argv[0] << ": Unexpected unknown exception occurred.\n";
-  }
-  llvm_shutdown();
-  return 1;
-}
diff --git a/libclamav/c++/llvm/website/index.html b/libclamav/c++/llvm/website/index.html
deleted file mode 100644
index c428559..0000000
--- a/libclamav/c++/llvm/website/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-                      "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-  <title>LLVM Core Website</title>
-  <link rel="stylesheet" href="llvm.css" type="text/css">
-</head>
-<body>
-
-<div class="doc_title">LLVM Core Web Site</div>
-  <p>This is just a place holder for now.</p>
-</div>
-
-<!-- *********************************************************************** -->
-
-<hr>
-<address>
-  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
-  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
-  <a href="http://validator.w3.org/check/referer"><img
-  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
-
-  <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2007-07-09 01:04:31 -0700 (Mon, 09 Jul 2007) $
-</address>
-</body></html>
diff --git a/libclamav/c++/llvm/win32/Analysis/Analysis.vcproj b/libclamav/c++/llvm/win32/Analysis/Analysis.vcproj
deleted file mode 100644
index e116aa3..0000000
--- a/libclamav/c++/llvm/win32/Analysis/Analysis.vcproj
+++ /dev/null
@@ -1,573 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Analysis"
-	ProjectGUID="{0622E827-8464-489D-8B1C-B0B496F35C08}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Analysis.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Analysis.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Analysis.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Analysis.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Analysis\AliasAnalysis.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\AliasAnalysisCounter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\AliasAnalysisEvaluator.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\AliasDebugger.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\AliasSetTracker.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\Analysis.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\BasicAliasAnalysis.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\CFGPrinter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\ConstantFolding.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\DbgInfoPrinter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\DebugInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\InstCount.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\Interval.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\IntervalPartition.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\LibCallAliasAnalysis.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\LibCallSemantics.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\LoopInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\LoopPass.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\LoopVR.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\MemoryDependenceAnalysis.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\PostDominators.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\ProfileInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\ProfileInfoLoader.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\ProfileInfoLoaderPass.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\ScalarEvolution.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\ScalarEvolutionExpander.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\SparsePropagation.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\Trace.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Analysis\ValueTracking.cpp"
-				>
-			</File>
-			<Filter
-				Name="IPA"
-				>
-				<File
-					RelativePath="..\..\lib\Analysis\Ipa\Andersens.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Analysis\Ipa\CallGraph.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Analysis\Ipa\CallGraphSCCPass.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Analysis\CaptureTracking.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Analysis\Ipa\FindUsedTypes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Analysis\Ipa\GlobalsModRef.cpp"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\AliasAnalysis.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\AliasSetTracker.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\CallGraph.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\CFGPrinter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ConstantFolding.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ConstantsScanner.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\DominatorInternals.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\Dominators.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ET-Forest.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\FindUsedTypes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\Interval.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\IntervalIterator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\IntervalPartition.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\LoadValueNumbering.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\LoopInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\LoopPass.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\LoopVR.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\Passes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\PostDominators.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ProfileInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ProfileInfoLoader.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ProfileInfoTypes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ScalarEvolution.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ScalarEvolutionExpander.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ScalarEvolutionExpressions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\Trace.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\ValueNumbering.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Analysis\Verifier.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Archive/Archive.vcproj b/libclamav/c++/llvm/win32/Archive/Archive.vcproj
deleted file mode 100644
index efd2f37..0000000
--- a/libclamav/c++/llvm/win32/Archive/Archive.vcproj
+++ /dev/null
@@ -1,337 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Archive"
-	ProjectGUID="{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Archive.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Archive.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Archive.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Archive.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Archive\Archive.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Archive\ArchiveInternals.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Archive\ArchiveReader.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Archive\ArchiveWriter.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Bytecode\Archive.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/AsmParser/AsmParser.vcproj b/libclamav/c++/llvm/win32/AsmParser/AsmParser.vcproj
deleted file mode 100644
index 96ca6d1..0000000
--- a/libclamav/c++/llvm/win32/AsmParser/AsmParser.vcproj
+++ /dev/null
@@ -1,346 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="AsmParser"
-	ProjectGUID="{3DC216F5-1DDD-478A-84F8-C124E5C31982}"
-	RootNamespace="AsmParser"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\lib\AsmParser"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/AsmParser.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\lib\AsmParser"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/AsmParser.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\lib\AsmParser"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/AsmParser.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\lib\AsmParser"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/AsmParser.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\AsmParser\LLLexer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\AsmParser\LLParser.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\AsmParser\Parser.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\lib\AsmParser\LLLexer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Assembly\Parser.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\AsmParser\ParserInternals.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Generated Files"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Bitcode/Bitcode.vcproj b/libclamav/c++/llvm/win32/Bitcode/Bitcode.vcproj
deleted file mode 100644
index 06bc4f0..0000000
--- a/libclamav/c++/llvm/win32/Bitcode/Bitcode.vcproj
+++ /dev/null
@@ -1,422 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Bitcode"
-	ProjectGUID="{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_DEBUG;_LIB;__STDC_LIMIT_MACROS;WIN32"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Bitcode.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_DEBUG;_LIB;__STDC_LIMIT_MACROS;WIN32"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Bitcode.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Bitcode.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Bitcode.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<Filter
-				Name="Reader"
-				>
-				<File
-					RelativePath="..\..\lib\Bitcode\Reader\BitcodeReader.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Reader\BitcodeReader.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Reader\BitReader.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Reader\Deserialize.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Reader\DeserializeAPFloat.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Reader\DeserializeAPInt.cpp"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="Writer"
-				>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\BitcodeWriter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\BitcodeWriterPass.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\BitWriter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\Serialize.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\SerializeAPFloat.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\SerializeAPInt.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\ValueEnumerator.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Bitcode\Writer\ValueEnumerator.h"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\Archive.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\Bitcodes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\BitstreamReader.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\BitstreamWriter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\Deserialize.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\LLVMBitCodes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\ReaderWriter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\Serialization.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\SerializationFwd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Bitcode\Serialize.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/CBackend/CBackend.vcproj b/libclamav/c++/llvm/win32/CBackend/CBackend.vcproj
deleted file mode 100644
index 1404759..0000000
--- a/libclamav/c++/llvm/win32/CBackend/CBackend.vcproj
+++ /dev/null
@@ -1,325 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="CBackend"
-	ProjectGUID="{057777CD-DED5-46DF-BF9A-6B76DE212549}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CBackend.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CBackend.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CBackend.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CBackend.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Target\CBackend\CBackend.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\lib\Target\CBackend\CTargetMachine.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/CodeGen/CodeGen.vcproj b/libclamav/c++/llvm/win32/CodeGen/CodeGen.vcproj
deleted file mode 100644
index d7c9138..0000000
--- a/libclamav/c++/llvm/win32/CodeGen/CodeGen.vcproj
+++ /dev/null
@@ -1,849 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="CodeGen"
-	ProjectGUID="{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CodeGen.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CodeGen.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CodeGen.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/CodeGen.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\CodeGen\BranchFolding.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\DeadMachineInstructionElim.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\DwarfEHPrepare.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\ELFWriter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\ELFWriter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\GCMetadata.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\GCMetadataPrinter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\GCStrategy.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\IfConversion.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\IntrinsicLowering.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LatencyPriorityQueue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LiveInterval.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LiveIntervalAnalysis.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LiveStackAnalysis.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LiveVariables.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LLVMTargetMachine.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LoopAligner.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\LowerSubregs.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineBasicBlock.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineDominators.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineFunction.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineInstr.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineLICM.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineLoopInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineModuleInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachinePassRegistry.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineRegisterInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachineSink.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachOWriter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\MachOWriter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\OcamlGC.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\Passes.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PBQP.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PHIElimination.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PostRASchedulerList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PreAllocSplitting.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PrologEpilogInserter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PseudoSourceValue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\RegAllocBigBlock.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\RegAllocLinearScan.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\RegAllocLocal.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\RegAllocPBQP.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\RegAllocSimple.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\RegisterCoalescer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\RegisterScavenging.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\ScheduleDAG.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\ScheduleDAGEmit.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\ScheduleDAGInstrs.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\ScheduleDAGPrinter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\ShadowStackGC.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\SimpleRegisterCoalescing.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\StackProtector.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\StackSlotColoring.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\StrongPHIElimination.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\TargetInstrInfoImpl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\TwoAddressInstructionPass.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\UnreachableBlockElim.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\VirtRegMap.cpp"
-				>
-			</File>
-			<Filter
-				Name="SelectionDAG"
-				>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\CallingConvLower.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\DAGCombiner.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\FastISel.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\LegalizeDAG.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\LegalizeFloatTypes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\LegalizeIntegerTypes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\LegalizeTypes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\LegalizeTypesGeneric.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\LegalizeVectorTypes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\ScheduleDAGFast.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\ScheduleDAGList.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\ScheduleDAGRRList.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\ScheduleDAGSDNodes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\ScheduleDAGSDNodesEmit.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\SelectionDAG.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\SelectionDAGBuild.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\SelectionDAGBuild.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\SelectionDAGISel.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\SelectionDAGPrinter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\SelectionDAG\TargetLowering.cpp"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="AsmPrinter"
-				>
-				<File
-					RelativePath="..\..\lib\CodeGen\AsmPrinter\AsmPrinter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\AsmPrinter\DwarfWriter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\CodeGen\AsmPrinter\OcamlGCPrinter.cpp"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\AsmPrinter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\BreakCriticalMachineEdge.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\CallingConvLower.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\Collector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\CollectorMetadata.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\Collectors.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\DwarfWriter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\FileWriters.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\InstrScheduling.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\IntrinsicLowering.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\SelectionDAG\LegalizeTypes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\LinkAllCodegenComponents.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\LiveInterval.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\LiveIntervalAnalysis.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\LiveVariables.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineBasicBlock.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineCodeEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineConstantPool.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineDominators.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineFrameInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineFunction.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineFunctionPass.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineInstr.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineInstrBuilder.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineJumpTableInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineLocation.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineLoopInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineModuleInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineOperand.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachinePassRegistry.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineRegisterInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachineRelocation.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\MachORelocation.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\Passes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PBQP.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\PhysRegTracker.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\RegAllocRegistry.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\RegisterCoalescer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\RegisterScavenging.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\RuntimeLibcalls.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\SchedGraphCommon.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\ScheduleDAG.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\SchedulerRegistry.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\SelectionDAG.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\SelectionDAGISel.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\SelectionDAGNodes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\SelectionDAG\SimpleBBISel.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\SimpleRegisterCoalescing.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CodeGen\ValueTypes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\CodeGen\VirtRegMap.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Configure/Configure.vcproj b/libclamav/c++/llvm/win32/Configure/Configure.vcproj
deleted file mode 100644
index 6e504b0..0000000
--- a/libclamav/c++/llvm/win32/Configure/Configure.vcproj
+++ /dev/null
@@ -1,319 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Configure"
-	ProjectGUID="{19514E48-456C-4B9D-8637-F2285476461E}"
-	RootNamespace="Configure"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Configure|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/Configure.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/Configure.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Configure|x64"
-			OutputDirectory="$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_CONSOLE"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/Configure.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/Configure.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Config\config.h.in"
-				>
-				<FileConfiguration
-					Name="Configure|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\Config\config.h"
-						CommandLine="copy &quot;$(InputPath)&quot;+&quot;$(ProjectDir)..\config.h&quot;  &quot;$(ProjectDir)..\llvm\Config\config.h&quot;&#x0D;&#x0A;"
-						AdditionalDependencies="&quot;$(ProjectDir)..\config.h&quot;"
-						Outputs="&quot;$(ProjectDir)..\llvm\Config\config.h&quot;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Configure|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\Config\config.h"
-						CommandLine="copy &quot;$(InputPath)&quot;+&quot;$(ProjectDir)..\config.h&quot;  &quot;$(ProjectDir)..\llvm\Config\config.h&quot;&#x0D;&#x0A;"
-						AdditionalDependencies="&quot;$(ProjectDir)..\config.h&quot;"
-						Outputs="&quot;$(ProjectDir)..\llvm\Config\config.h&quot;"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\DataTypes.h.in"
-				>
-				<FileConfiguration
-					Name="Configure|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\Support\DataTypes.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\Support\DataTypes.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\Support\DataTypes.h&quot;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Configure|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\Support\DataTypes.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\Support\DataTypes.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\Support\DataTypes.h&quot;"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\hash_map.h.in"
-				>
-				<FileConfiguration
-					Name="Configure|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\ADT\hash_map.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\ADT\hash_map.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\ADT\hash_map.h&quot;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Configure|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\ADT\hash_map.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\ADT\hash_map.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\ADT\hash_map.h&quot;"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\hash_set.h.in"
-				>
-				<FileConfiguration
-					Name="Configure|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\ADT\hash_set.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\ADT\hash_set.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\ADT\hash_set.h&quot;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Configure|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\ADT\hash_set.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\ADT\hash_set.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\ADT\hash_set.h&quot;"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\iterator.h.in"
-				>
-				<FileConfiguration
-					Name="Configure|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\ADT\iterator.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\ADT\iterator.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\ADT\iterator.h&quot;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Configure|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Generating $(ProjectDir)..\llvm\ADT\iterator.h"
-						CommandLine="copy &quot;$(InputPath)&quot; &quot;$(ProjectDir)..\llvm\ADT\iterator.h&quot;&#x0D;&#x0A;"
-						Outputs="&quot;$(ProjectDir)..\llvm\ADT\iterator.h&quot;"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/ExecutionEngine/ExecutionEngine.vcproj b/libclamav/c++/llvm/win32/ExecutionEngine/ExecutionEngine.vcproj
deleted file mode 100644
index b86db6f..0000000
--- a/libclamav/c++/llvm/win32/ExecutionEngine/ExecutionEngine.vcproj
+++ /dev/null
@@ -1,429 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="ExecutionEngine"
-	ProjectGUID="{76295AE8-A083-460E-9F80-6F2B8923264A}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/ExecutionEngine.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/ExecutionEngine.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/ExecutionEngine.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/ExecutionEngine.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\ExecutionEngine.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\ExecutionEngineBindings.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\ExecutionEngine\ExecutionEngine.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ExecutionEngine\GenericValue.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="JIT"
-			>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Jit\Intercept.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Jit\JIT.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ExecutionEngine\JIT.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Jit\JIT.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\JIT\JITDwarfEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\JIT\JITDwarfEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Jit\JITEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\JIT\JITMemoryManager.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ExecutionEngine\JITMemoryManager.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Jit\TargetSelect.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Interpreter"
-			>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Interpreter\Execution.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Interpreter\ExternalFunctions.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4190"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4190"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4190"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4190"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Interpreter\Interpreter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\ExecutionEngine\Interpreter\Interpreter.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Fibonacci/Fibonacci.vcproj b/libclamav/c++/llvm/win32/Fibonacci/Fibonacci.vcproj
deleted file mode 100644
index a257563..0000000
--- a/libclamav/c++/llvm/win32/Fibonacci/Fibonacci.vcproj
+++ /dev/null
@@ -1,386 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Fibonacci"
-	ProjectGUID="{48FB551D-E37E-42EC-BC97-FF7219774867}"
-	RootNamespace="Fibonacci"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/Fibonacci.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/Fibonacci.pdb"
-				SubSystem="1"
-				OptimizeReferences="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/Fibonacci.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/Fibonacci.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/Fibonacci.pdb"
-				SubSystem="1"
-				OptimizeReferences="0"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/Fibonacci.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\examples\Fibonacci\fibonacci.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Linker/Linker.vcproj b/libclamav/c++/llvm/win32/Linker/Linker.vcproj
deleted file mode 100644
index e88566a..0000000
--- a/libclamav/c++/llvm/win32/Linker/Linker.vcproj
+++ /dev/null
@@ -1,337 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Linker"
-	ProjectGUID="{342CF48F-760A-4040-A9A1-7D75AA2471CE}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Linker.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Linker.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Linker.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Linker.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Linker\LinkArchives.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Linker\Linker.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Linker\LinkItems.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Linker\LinkModules.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Linker.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Support/Support.vcproj b/libclamav/c++/llvm/win32/Support/Support.vcproj
deleted file mode 100644
index 027668d..0000000
--- a/libclamav/c++/llvm/win32/Support/Support.vcproj
+++ /dev/null
@@ -1,743 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="support"
-	ProjectGUID="{28AA9146-3482-4F41-9CC6-407B1D258508}"
-	RootNamespace="support"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/support.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/support.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/support.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/support.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Support\Allocator.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\Annotation.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\APFloat.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\APInt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\APSInt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\CommandLine.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\ConstantRange.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\Debug.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\Dwarf.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\FileUtilities.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\FoldingSet.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\GraphWriter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\IsInf.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\IsNAN.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\ManagedStatic.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\MemoryBuffer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\PluginLoader.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\raw_ostream.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\SlowOperationInformer.cpp"
-				>
-				<FileConfiguration
-					Name="Release|x64"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\SmallPtrSet.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\Statistic.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\Streams.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\StringExtras.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\StringMap.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\StringPool.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\SystemUtils.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Support\Timer.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Support\AIXDataTypesFix.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Alignment.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\AlignOf.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Allocator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Annotation.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\CallSite.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Casting.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\CFG.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\CHelpers.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\CommandLine.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Compiler.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\ConstantRange.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Debug.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\DOTGraphTraits.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Dwarf.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\ELF.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\FileUtilities.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\GetElementPtrTypeIterator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\GraphWriter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\InstIterator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\InstVisitor.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\LeakDetector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Linker.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\MallocAllocator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\ManagedStatic.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Mangler.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\MathExtras.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\MemoryBuffer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\OutputBuffer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\PassNameParser.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\PatternMatch.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\PluginLoader.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Registry.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\SlowOperationInformer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\StableBasicBlockNumbering.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Streams.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\StringPool.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\SystemUtils.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\ThreadSupport-NoSupport.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\ThreadSupport-PThreads.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\Timer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\type_traits.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="ADT"
-			>
-			<File
-				RelativePath="..\..\include\llvm\ADT\APInt.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\APSInt.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\BitVector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Support\DataTypes.h.in"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\DenseMap.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\DenseSet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\DepthFirstIterator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\EquivalenceClasses.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\FoldingSet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\GraphTraits.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\hash_map"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\hash_set"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\HashExtras.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\ilist"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\ImmutableMap.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\ImmutableSet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\IndexedMap.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\iterator"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\PostOrderIterator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\PriorityQueue.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\SCCIterator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\SetOperations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\SetVector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\SmallPtrSet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\SmallSet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\SmallString.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\SmallVector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\Statistic.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\STLExtras.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\StringExtras.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ADT\StringMap.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\Tree.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\UniqueVector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Adt\VectorExtras.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/System/System.vcproj b/libclamav/c++/llvm/win32/System/System.vcproj
deleted file mode 100644
index f72a754..0000000
--- a/libclamav/c++/llvm/win32/System/System.vcproj
+++ /dev/null
@@ -1,462 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="System"
-	ProjectGUID="{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}"
-	RootNamespace="System"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/System.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/System.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/System.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\System\Alarm.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Disassembler.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\DynamicLibrary.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Host.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\IncludeFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Memory.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Mutex.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Path.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Process.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Program.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Signals.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\TimeValue.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\System\Alarm.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Disassembler.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\DynamicLibrary.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Host.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\IncludeFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\MappedFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Memory.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Mutex.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Path.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Process.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Program.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\Signals.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\System\TimeValue.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Win32"
-			>
-			<File
-				RelativePath="..\..\lib\System\Win32\Alarm.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\DynamicLibrary.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\MappedFile.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\Memory.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\Mutex.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\Path.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\Process.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\Program.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\Signals.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\TimeValue.inc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\System\Win32\Win32.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/TableGen/TableGen.vcproj b/libclamav/c++/llvm/win32/TableGen/TableGen.vcproj
deleted file mode 100644
index 4dd1899..0000000
--- a/libclamav/c++/llvm/win32/TableGen/TableGen.vcproj
+++ /dev/null
@@ -1,538 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="TableGen"
-	ProjectGUID="{339C2249-26B6-4172-B484-85653029AF57}"
-	RootNamespace="TableGen"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\utils\tablegen"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)\TableGen.exe"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/TableGen.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\utils\tablegen"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)\TableGen.exe"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/TableGen.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\utils\tablegen"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)\TableGen.exe"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories=""
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;..;..\..\utils\tablegen"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)\TableGen.exe"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories=""
-				IgnoreAllDefaultLibraries="false"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\utils\TableGen\AsmWriterEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CallingConvEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeEmitterGen.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenDAGPatterns.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenInstruction.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenTarget.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\DAGISelEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\FastISelEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\InstrEnumEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\InstrInfoEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\IntrinsicEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\LLVMCConfigurationEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\Record.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\RegisterInfoEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\SubtargetEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TableGen.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TableGenBackend.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TGLexer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TGParser.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TGValueTypes.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\utils\TableGen\AsmWriterEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CallingConvEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeEmitterGen.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenDAGPatterns.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenInstruction.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenIntrinsics.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenRegisters.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\CodeGenTarget.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\DAGISelEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\FastISelEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\InstrEnumEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\InstrInfoEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\IntrinsicEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\Record.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\RegisterInfoEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\SubtargetEmitter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TableGenBackend.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TGLexer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\utils\TableGen\TGParser.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Target/Target.vcproj b/libclamav/c++/llvm/win32/Target/Target.vcproj
deleted file mode 100644
index 05eea5b..0000000
--- a/libclamav/c++/llvm/win32/Target/Target.vcproj
+++ /dev/null
@@ -1,433 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Target"
-	ProjectGUID="{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Target.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Target.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Target.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Target.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Target\DarwinTargetAsmInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\ELFTargetAsmInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\SubtargetFeature.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\Target.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetAsmInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetData.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetFrameInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetInstrInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetMachine.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetMachineRegistry.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetMachOWriterInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetRegisterInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetSubtarget.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Target\SubtargetFeature.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetAsmInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetData.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetELFWriterInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetFrameInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetInstrDesc.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetInstrInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetInstrItineraries.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetJITInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetLowering.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetMachine.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetMachineRegistry.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetMachOWriterInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetOptions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetRegisterInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Target\TargetSubtarget.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/Transforms/Transforms.vcproj b/libclamav/c++/llvm/win32/Transforms/Transforms.vcproj
deleted file mode 100644
index 2554a4e..0000000
--- a/libclamav/c++/llvm/win32/Transforms/Transforms.vcproj
+++ /dev/null
@@ -1,759 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="Transforms"
-	ProjectGUID="{C59374C1-9FC0-4147-B836-327DFDC52D99}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Transforms.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Transforms.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Transforms.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/Transforms.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Transforms\IPO\MergeFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Transforms\Scalar\SimplifyHalfPowrLibCalls.cpp"
-				>
-			</File>
-			<Filter
-				Name="Instrumentation"
-				>
-				<File
-					RelativePath="..\..\lib\Transforms\Instrumentation\BlockProfiling.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Instrumentation\EdgeProfiling.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Instrumentation\ProfilingUtils.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Instrumentation\ProfilingUtils.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Instrumentation\RSProfiling.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Instrumentation\RSProfiling.h"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="IPO"
-				>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\ArgumentPromotion.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\ConstantMerge.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\DeadArgumentElimination.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\DeadTypeElimination.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\IPO\ExtractGV.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\IPO\FunctionAttrs.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\GlobalDCE.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\GlobalOpt.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\IndMemRemoval.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\IPO\InlineAlways.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\Inliner.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\InlineSimple.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\Internalize.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\IPConstantPropagation.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\LoopExtractor.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\LowerSetJmp.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\IPO\PartialSpecialization.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\PruneEH.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\RaiseAllocations.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\IPO\StripDeadPrototypes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Ipo\StripSymbols.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\IPO\StructRetPromotion.cpp"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="Scalar"
-				>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\ADCE.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\BasicBlockPlacement.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\CodeGenPrepare.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\CondPropagate.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\ConstantProp.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\DCE.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\DeadStoreElimination.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\GVN.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\GVNPRE.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\IndVarSimplify.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\InstructionCombining.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\JumpThreading.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\LICM.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\LoopDeletion.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\LoopIndexSplit.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\LoopRotation.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\LoopStrengthReduce.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\LoopUnroll.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\LoopUnswitch.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\MemCpyOptimizer.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\PredicateSimplifier.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\Reassociate.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\Reg2Mem.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\Scalar.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\ScalarReplAggregates.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\SCCP.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\SimplifyCFGPass.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\SimplifyLibCalls.cpp"
-					>
-					<FileConfiguration
-						Name="Debug|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)\$(InputName)1.obj"
-							XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Release|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)\$(InputName)1.obj"
-							XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
-						/>
-					</FileConfiguration>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\TailDuplication.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Scalar\TailRecursionElimination.cpp"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="Utils"
-				>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\BasicBlockUtils.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\BasicInliner.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\BreakCriticalEdges.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\CloneFunction.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\CloneLoop.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\CloneModule.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\CloneTrace.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\CodeExtractor.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\DemoteRegToStack.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\InlineCost.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\InlineFunction.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\InstructionNamer.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\LCSSA.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\Local.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\LoopSimplify.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\LowerAllocations.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\LowerInvoke.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\LowerSwitch.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\Mem2Reg.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\PromoteMemoryToRegister.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\SimplifyCFG.cpp"
-					>
-					<FileConfiguration
-						Name="Debug|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)/$(InputName)1.obj"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Debug|x64"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)/$(InputName)1.obj"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Release|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)/$(InputName)1.obj"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Release|x64"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)/$(InputName)1.obj"
-						/>
-					</FileConfiguration>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\UnifyFunctionExitNodes.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\UnrollLoop.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Transforms\Utils\ValueMapper.cpp"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Utils\BasicBlockUtils.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Utils\Cloning.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Utils\FunctionUtils.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Instrumentation.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\IPO.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Utils\Local.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Utils\PromoteMemToReg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Scalar.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Utils\UnifyFunctionExitNodes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Transforms\Utils\ValueMapper.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/VMCore/VMCore.vcproj b/libclamav/c++/llvm/win32/VMCore/VMCore.vcproj
deleted file mode 100644
index 4accd55..0000000
--- a/libclamav/c++/llvm/win32/VMCore/VMCore.vcproj
+++ /dev/null
@@ -1,650 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="VMCore"
-	ProjectGUID="{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}"
-	RootNamespace="VMCore"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/VMCore.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/VMCore.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/VMCore.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/VMCore.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\VMCore\AsmWriter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Attributes.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\AutoUpgrade.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\BasicBlock.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\ConstantFold.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Constants.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Core.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Dominators.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Function.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Globals.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\InlineAsm.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Instruction.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Instructions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\IntrinsicInst.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Intrinsics.td"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) code emitter with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-intrinsic -I ..\..\include $(InputPath) -o $(ProjectDir)..\llvm\intrinsics.gen&#x0D;&#x0A;"
-						AdditionalDependencies="$(ProjectDir)..\$(IntDir)\TableGen.exe;$(InputDir)IntrinsicsX86.td;$(InputDir)IntrinsicsPowerPC.td"
-						Outputs="$(ProjectDir)..\llvm\intrinsics.gen"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) code emitter with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-intrinsic -I ..\..\include $(InputPath) -o $(ProjectDir)..\llvm\intrinsics.gen&#x0D;&#x0A;"
-						AdditionalDependencies="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe;$(InputDir)IntrinsicsX86.td"
-						Outputs="$(ProjectDir)..\llvm\intrinsics.gen"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) code emitter with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-intrinsic -I ..\..\include $(InputPath) -o $(ProjectDir)..\llvm\intrinsics.gen&#x0D;&#x0A;"
-						AdditionalDependencies="$(ProjectDir)..\$(IntDir)\TableGen.exe;$(InputDir)IntrinsicsX86.td;$(InputDir)IntrinsicsPowerPC.td"
-						Outputs="$(ProjectDir)..\llvm\intrinsics.gen"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) code emitter with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-intrinsic -I ..\..\include $(InputPath) -o $(ProjectDir)..\llvm\intrinsics.gen&#x0D;&#x0A;"
-						AdditionalDependencies="$(ProjectDir)..\$(IntDir)\TableGen.exe;$(InputDir)IntrinsicsX86.td"
-						Outputs="$(ProjectDir)..\llvm\intrinsics.gen"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\LeakDetector.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Mangler.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Module.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\ModuleProvider.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Pass.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\PassManager.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\PrintModulePass.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Type.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\TypeSymbolTable.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Use.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Value.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\ValueSymbolTable.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\ValueTypes.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\Verifier.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\include\llvm\AbstractTypeUser.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Argument.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Assembly\AsmAnnotationWriter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\BasicBlock.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\CallGraphSCCPass.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Constant.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\ConstantFold.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Constants.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\DerivedTypes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Function.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\GlobalAlias.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\GlobalValue.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\GlobalVariable.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\InlineAsm.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\InstrTypes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Instruction.def"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Instruction.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Instructions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\IntrinsicInst.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Intrinsics.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\IntrinsicsPowerPC.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\IntrinsicsX86.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Linker.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Module.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ModuleProvider.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ParameterAttributes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Pass.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\PassAnalysisSupport.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\PassManager.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\PassManagers.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\PassSupport.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Assembly\PrintModulePass.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\SymbolTableListTraits.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\VMCore\SymbolTableListTraitsImpl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Type.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\TypeSymbolTable.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Use.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\User.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Value.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\ValueSymbolTable.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\include\llvm\Assembly\Writer.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Generated Tablegen Files"
-			>
-			<File
-				RelativePath="..\llvm\intrinsics.gen"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/bugpoint/bugpoint.vcproj b/libclamav/c++/llvm/win32/bugpoint/bugpoint.vcproj
deleted file mode 100644
index 1c8a7d7..0000000
--- a/libclamav/c++/llvm/win32/bugpoint/bugpoint.vcproj
+++ /dev/null
@@ -1,429 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="bugpoint"
-	ProjectGUID="{57249192-8E29-4D85-8B7A-FEFF1760B1DA}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/bugpoint.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/bugpoint.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/bugpoint.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/bugpoint.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/bugpoint.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/bugpoint.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\bugpoint\BugDriver.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\bugpoint.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\CrashDebugger.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\ExecutionDriver.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\ExtractFunction.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\FindBugs.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\Miscompilation.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\OptimizerDriver.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\TestPasses.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\ToolRunner.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\tools\bugpoint\BugDriver.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\ListReducer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\bugpoint\ToolRunner.h"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/clang.sln b/libclamav/c++/llvm/win32/clang.sln
deleted file mode 100644
index 1c6967f..0000000
--- a/libclamav/c++/llvm/win32/clang.sln
+++ /dev/null
@@ -1,591 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "support", "Support\Support.vcproj", "{28AA9146-3482-4F41-9CC6-407B1D258508}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TableGen", "TableGen\TableGen.vcproj", "{339C2249-26B6-4172-B484-85653029AF57}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Fibonacci", "Fibonacci\Fibonacci.vcproj", "{48FB551D-E37E-42EC-BC97-FF7219774867}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{76295AE8-A083-460E-9F80-6F2B8923264A} = {76295AE8-A083-460E-9F80-6F2B8923264A}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C} = {144EEBF6-8C9B-4473-B715-2C821666AF6C}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExecutionEngine", "ExecutionEngine\ExecutionEngine.vcproj", "{76295AE8-A083-460E-9F80-6F2B8923264A}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VMCore", "VMCore\VMCore.vcproj", "{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Target", "Target\Target.vcproj", "{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodeGen", "CodeGen\CodeGen.vcproj", "{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "System", "System\System.vcproj", "{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Analysis", "Analysis\Analysis.vcproj", "{0622E827-8464-489D-8B1C-B0B496F35C08}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x86", "x86\x86.vcproj", "{144EEBF6-8C9B-4473-B715-2C821666AF6C}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Transforms", "Transforms\Transforms.vcproj", "{C59374C1-9FC0-4147-B836-327DFDC52D99}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Configure", "Configure\Configure.vcproj", "{19514E48-456C-4B9D-8637-F2285476461E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lli", "lli\lli.vcproj", "{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{76295AE8-A083-460E-9F80-6F2B8923264A} = {76295AE8-A083-460E-9F80-6F2B8923264A}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C} = {144EEBF6-8C9B-4473-B715-2C821666AF6C}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llc", "llc\llc.vcproj", "{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{057777CD-DED5-46DF-BF9A-6B76DE212549} = {057777CD-DED5-46DF-BF9A-6B76DE212549}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C} = {144EEBF6-8C9B-4473-B715-2C821666AF6C}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-dis", "llvm-dis\llvm-dis.vcproj", "{B13476BC-30AB-4EA0-BC1E-212C0A459405}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-as", "llvm-as\llvm-as.vcproj", "{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982} = {3DC216F5-1DDD-478A-84F8-C124E5C31982}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AsmParser", "AsmParser\AsmParser.vcproj", "{3DC216F5-1DDD-478A-84F8-C124E5C31982}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-ar", "llvm-ar\llvm-ar.vcproj", "{0FF2B75C-49C1-4B49-A44A-531C93000296}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-ranlib", "llvm-ranlib\llvm-ranlib.vcproj", "{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-link", "llvm-link\llvm-link.vcproj", "{5E249789-49E1-4600-B12B-8AD2BB6439B2}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE} = {342CF48F-760A-4040-A9A1-7D75AA2471CE}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Linker", "Linker\Linker.vcproj", "{342CF48F-760A-4040-A9A1-7D75AA2471CE}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CBackend", "CBackend\CBackend.vcproj", "{057777CD-DED5-46DF-BF9A-6B76DE212549}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opt", "opt\opt.vcproj", "{006D8B41-C3C7-4448-85E1-AF8907E591E5}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-bcanalyzer", "llvm-bcanalyzer\llvm-bcanalyzer.vcproj", "{E0B1E329-BE3E-456D-B372-5F397BE42C84}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-ld", "llvm-ld\llvm-ld.vcproj", "{64D8AA46-88DB-41F4-B837-053AE02406B8}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE} = {342CF48F-760A-4040-A9A1-7D75AA2471CE}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-nm", "llvm-nm\llvm-nm.vcproj", "{5FF862CE-80A0-4B48-A80B-68AE325A0432}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-prof", "llvm-prof\llvm-prof.vcproj", "{ACBE81D9-64B1-4133-823A-807A4E60B454}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bugpoint", "bugpoint\bugpoint.vcproj", "{57249192-8E29-4D85-8B7A-FEFF1760B1DA}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE} = {342CF48F-760A-4040-A9A1-7D75AA2471CE}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982} = {3DC216F5-1DDD-478A-84F8-C124E5C31982}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Bitcode", "Bitcode\Bitcode.vcproj", "{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}"
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Archive", "Archive\Archive.vcproj", "{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}"
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LLVM", "LLVM", "{455BCF47-13B6-451E-8321-8ED9C4866BAA}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Clang", "Clang", "{DAC2AB11-F09C-454B-86FD-9BDBBA25827F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangLex", "..\tools\clang\win32\clangLex\clangLex.vcproj", "{030F6909-B2FA-4E53-BEA7-9A559CFC2F73}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangParse", "..\tools\clang\win32\clangParse\clangParse.vcproj", "{05DF3074-11AF-491A-B078-83BD2EDC31F6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangAST", "..\tools\clang\win32\clangAST\clangAST.vcproj", "{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangSema", "..\tools\clang\win32\clangSema\clangSema.vcproj", "{4727E8B7-AA99-41C9-AB09-A8A862595DB7}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangCodeGen", "..\tools\clang\win32\clangCodeGen\clangCodeGen.vcproj", "{4CEC5897-D957-47E7-A6AE-2021D4F44A8F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangDriver", "..\tools\clang\win32\clangDriver\clangDriver.vcproj", "{7E7DA455-C276-4B93-8D02-8F7E2F629BAF}"
-	ProjectSection(ProjectDependencies) = postProject
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73} = {030F6909-B2FA-4E53-BEA7-9A559CFC2F73}
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0} = {6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6} = {05DF3074-11AF-491A-B078-83BD2EDC31F6}
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB} = {298B4876-6EF1-4E80-85D7-72F80693BBEB}
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F} = {4CEC5897-D957-47E7-A6AE-2021D4F44A8F}
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D} = {F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7} = {4727E8B7-AA99-41C9-AB09-A8A862595DB7}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD} = {5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4} = {AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangBasic", "..\tools\clang\win32\clangBasic\clangBasic.vcproj", "{298B4876-6EF1-4E80-85D7-72F80693BBEB}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangAnalysis", "..\tools\clang\win32\clangAnalysis\clangAnalysis.vcproj", "{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangRewrite", "..\tools\clang\win32\clangRewrite\clangRewrite.vcproj", "{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clangLibDriver", "..\tools\clang\win32\clangLibDriver\clangLibDriver.vcproj", "{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Configure|Win32 = Configure|Win32
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Configure|Win32.ActiveCfg = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Configure|Win32.Build.0 = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Debug|Win32.ActiveCfg = Debug|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Debug|Win32.Build.0 = Debug|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Release|Win32.ActiveCfg = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Release|Win32.Build.0 = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Configure|Win32.ActiveCfg = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Configure|Win32.Build.0 = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Debug|Win32.ActiveCfg = Debug|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Debug|Win32.Build.0 = Debug|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Release|Win32.ActiveCfg = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Release|Win32.Build.0 = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Configure|Win32.ActiveCfg = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Configure|Win32.Build.0 = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Debug|Win32.ActiveCfg = Debug|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Debug|Win32.Build.0 = Debug|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Release|Win32.ActiveCfg = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Release|Win32.Build.0 = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Configure|Win32.ActiveCfg = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Configure|Win32.Build.0 = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Debug|Win32.Build.0 = Debug|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Release|Win32.ActiveCfg = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Release|Win32.Build.0 = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Configure|Win32.ActiveCfg = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Configure|Win32.Build.0 = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Debug|Win32.ActiveCfg = Debug|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Debug|Win32.Build.0 = Debug|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Release|Win32.ActiveCfg = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Release|Win32.Build.0 = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Configure|Win32.ActiveCfg = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Configure|Win32.Build.0 = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Debug|Win32.Build.0 = Debug|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Release|Win32.ActiveCfg = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Release|Win32.Build.0 = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Configure|Win32.ActiveCfg = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Configure|Win32.Build.0 = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Debug|Win32.ActiveCfg = Debug|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Debug|Win32.Build.0 = Debug|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Release|Win32.ActiveCfg = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Release|Win32.Build.0 = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Configure|Win32.ActiveCfg = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Configure|Win32.Build.0 = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Debug|Win32.Build.0 = Debug|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Release|Win32.ActiveCfg = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Release|Win32.Build.0 = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Configure|Win32.ActiveCfg = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Configure|Win32.Build.0 = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Debug|Win32.Build.0 = Debug|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Release|Win32.ActiveCfg = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Release|Win32.Build.0 = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Configure|Win32.ActiveCfg = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Configure|Win32.Build.0 = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Debug|Win32.ActiveCfg = Debug|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Debug|Win32.Build.0 = Debug|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Release|Win32.ActiveCfg = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Release|Win32.Build.0 = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Configure|Win32.ActiveCfg = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Configure|Win32.Build.0 = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Debug|Win32.Build.0 = Debug|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Release|Win32.ActiveCfg = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Release|Win32.Build.0 = Release|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Configure|Win32.ActiveCfg = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Configure|Win32.Build.0 = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Debug|Win32.ActiveCfg = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Debug|Win32.Build.0 = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Release|Win32.ActiveCfg = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Release|Win32.Build.0 = Configure|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Configure|Win32.ActiveCfg = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Configure|Win32.Build.0 = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Debug|Win32.Build.0 = Debug|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Release|Win32.ActiveCfg = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Release|Win32.Build.0 = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Configure|Win32.ActiveCfg = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Configure|Win32.Build.0 = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Debug|Win32.Build.0 = Debug|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Release|Win32.ActiveCfg = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Release|Win32.Build.0 = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Configure|Win32.ActiveCfg = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Configure|Win32.Build.0 = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Debug|Win32.ActiveCfg = Debug|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Debug|Win32.Build.0 = Debug|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Release|Win32.ActiveCfg = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Release|Win32.Build.0 = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Configure|Win32.ActiveCfg = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Configure|Win32.Build.0 = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Debug|Win32.Build.0 = Debug|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Release|Win32.ActiveCfg = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Release|Win32.Build.0 = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Configure|Win32.ActiveCfg = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Configure|Win32.Build.0 = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Debug|Win32.Build.0 = Debug|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Release|Win32.ActiveCfg = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Release|Win32.Build.0 = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Configure|Win32.ActiveCfg = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Configure|Win32.Build.0 = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Debug|Win32.Build.0 = Debug|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Release|Win32.ActiveCfg = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Release|Win32.Build.0 = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Configure|Win32.ActiveCfg = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Configure|Win32.Build.0 = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Debug|Win32.Build.0 = Debug|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Release|Win32.ActiveCfg = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Release|Win32.Build.0 = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Configure|Win32.ActiveCfg = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Configure|Win32.Build.0 = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Debug|Win32.Build.0 = Debug|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Release|Win32.ActiveCfg = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Release|Win32.Build.0 = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Configure|Win32.ActiveCfg = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Configure|Win32.Build.0 = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Debug|Win32.ActiveCfg = Debug|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Debug|Win32.Build.0 = Debug|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Release|Win32.ActiveCfg = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Release|Win32.Build.0 = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Configure|Win32.ActiveCfg = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Configure|Win32.Build.0 = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Debug|Win32.ActiveCfg = Debug|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Debug|Win32.Build.0 = Debug|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Release|Win32.ActiveCfg = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Release|Win32.Build.0 = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Configure|Win32.ActiveCfg = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Configure|Win32.Build.0 = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Debug|Win32.ActiveCfg = Debug|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Debug|Win32.Build.0 = Debug|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Release|Win32.ActiveCfg = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Release|Win32.Build.0 = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Configure|Win32.ActiveCfg = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Configure|Win32.Build.0 = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Debug|Win32.ActiveCfg = Debug|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Debug|Win32.Build.0 = Debug|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Release|Win32.ActiveCfg = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Release|Win32.Build.0 = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Configure|Win32.ActiveCfg = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Configure|Win32.Build.0 = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Debug|Win32.ActiveCfg = Debug|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Debug|Win32.Build.0 = Debug|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Release|Win32.ActiveCfg = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Release|Win32.Build.0 = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Configure|Win32.ActiveCfg = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Configure|Win32.Build.0 = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Debug|Win32.Build.0 = Debug|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Release|Win32.ActiveCfg = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Release|Win32.Build.0 = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Configure|Win32.ActiveCfg = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Configure|Win32.Build.0 = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Debug|Win32.ActiveCfg = Debug|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Debug|Win32.Build.0 = Debug|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Release|Win32.ActiveCfg = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Release|Win32.Build.0 = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Configure|Win32.ActiveCfg = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Configure|Win32.Build.0 = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Debug|Win32.ActiveCfg = Debug|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Debug|Win32.Build.0 = Debug|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Release|Win32.ActiveCfg = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Release|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Configure|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Configure|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Debug|Win32.Build.0 = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Release|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Release|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Configure|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Configure|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Debug|Win32.Build.0 = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Release|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Release|Win32.Build.0 = Release|Win32
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73}.Configure|Win32.ActiveCfg = Release|Win32
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73}.Configure|Win32.Build.0 = Release|Win32
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73}.Debug|Win32.ActiveCfg = Debug|Win32
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73}.Debug|Win32.Build.0 = Debug|Win32
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73}.Release|Win32.ActiveCfg = Release|Win32
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73}.Release|Win32.Build.0 = Release|Win32
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6}.Configure|Win32.ActiveCfg = Release|Win32
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6}.Configure|Win32.Build.0 = Release|Win32
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6}.Debug|Win32.Build.0 = Debug|Win32
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6}.Release|Win32.ActiveCfg = Release|Win32
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6}.Release|Win32.Build.0 = Release|Win32
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}.Configure|Win32.ActiveCfg = Release|Win32
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}.Configure|Win32.Build.0 = Release|Win32
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}.Debug|Win32.Build.0 = Debug|Win32
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}.Release|Win32.ActiveCfg = Release|Win32
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD}.Release|Win32.Build.0 = Release|Win32
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7}.Configure|Win32.ActiveCfg = Release|Win32
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7}.Configure|Win32.Build.0 = Release|Win32
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7}.Debug|Win32.Build.0 = Debug|Win32
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7}.Release|Win32.ActiveCfg = Release|Win32
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7}.Release|Win32.Build.0 = Release|Win32
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F}.Configure|Win32.ActiveCfg = Release|Win32
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F}.Configure|Win32.Build.0 = Release|Win32
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F}.Debug|Win32.Build.0 = Debug|Win32
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F}.Release|Win32.ActiveCfg = Release|Win32
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F}.Release|Win32.Build.0 = Release|Win32
-		{7E7DA455-C276-4B93-8D02-8F7E2F629BAF}.Configure|Win32.ActiveCfg = Release|Win32
-		{7E7DA455-C276-4B93-8D02-8F7E2F629BAF}.Configure|Win32.Build.0 = Release|Win32
-		{7E7DA455-C276-4B93-8D02-8F7E2F629BAF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{7E7DA455-C276-4B93-8D02-8F7E2F629BAF}.Debug|Win32.Build.0 = Debug|Win32
-		{7E7DA455-C276-4B93-8D02-8F7E2F629BAF}.Release|Win32.ActiveCfg = Release|Win32
-		{7E7DA455-C276-4B93-8D02-8F7E2F629BAF}.Release|Win32.Build.0 = Release|Win32
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB}.Configure|Win32.ActiveCfg = Release|Win32
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB}.Configure|Win32.Build.0 = Release|Win32
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB}.Debug|Win32.ActiveCfg = Debug|Win32
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB}.Debug|Win32.Build.0 = Debug|Win32
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB}.Release|Win32.ActiveCfg = Release|Win32
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB}.Release|Win32.Build.0 = Release|Win32
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}.Configure|Win32.ActiveCfg = Release|Win32
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}.Configure|Win32.Build.0 = Release|Win32
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}.Debug|Win32.Build.0 = Debug|Win32
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}.Release|Win32.ActiveCfg = Release|Win32
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0}.Release|Win32.Build.0 = Release|Win32
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}.Configure|Win32.ActiveCfg = Release|Win32
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}.Configure|Win32.Build.0 = Release|Win32
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}.Debug|Win32.Build.0 = Debug|Win32
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}.Release|Win32.ActiveCfg = Release|Win32
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D}.Release|Win32.Build.0 = Release|Win32
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}.Configure|Win32.ActiveCfg = Release|Win32
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}.Configure|Win32.Build.0 = Release|Win32
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}.Debug|Win32.Build.0 = Debug|Win32
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}.Release|Win32.ActiveCfg = Release|Win32
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{339C2249-26B6-4172-B484-85653029AF57} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{48FB551D-E37E-42EC-BC97-FF7219774867} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{76295AE8-A083-460E-9F80-6F2B8923264A} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{0FF2B75C-49C1-4B49-A44A-531C93000296} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{057777CD-DED5-46DF-BF9A-6B76DE212549} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{64D8AA46-88DB-41F4-B837-053AE02406B8} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{ACBE81D9-64B1-4133-823A-807A4E60B454} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {455BCF47-13B6-451E-8321-8ED9C4866BAA}
-		{030F6909-B2FA-4E53-BEA7-9A559CFC2F73} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{05DF3074-11AF-491A-B078-83BD2EDC31F6} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{5125C3DB-FBD6-4BF8-8D8B-CE51D6E93BCD} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{4727E8B7-AA99-41C9-AB09-A8A862595DB7} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{4CEC5897-D957-47E7-A6AE-2021D4F44A8F} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{7E7DA455-C276-4B93-8D02-8F7E2F629BAF} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{298B4876-6EF1-4E80-85D7-72F80693BBEB} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{6C98551A-4C36-4E74-8419-4D3EEEC9D8E0} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{F9FBDDA2-9EE1-473C-A456-BE20B7B2439D} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-		{AECB78DF-C319-4D49-B2FD-F98F62EBBDF4} = {DAC2AB11-F09C-454B-86FD-9BDBBA25827F}
-	EndGlobalSection
-	GlobalSection(DPCodeReviewSolutionGUID) = preSolution
-		DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
-	EndGlobalSection
-EndGlobal
diff --git a/libclamav/c++/llvm/win32/common.vsprops b/libclamav/c++/llvm/win32/common.vsprops
deleted file mode 100644
index 80eb042..0000000
--- a/libclamav/c++/llvm/win32/common.vsprops
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="common"
-	>
-	<Tool
-		Name="VCCLCompilerTool"
-		PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
-	/>
-</VisualStudioPropertySheet>
diff --git a/libclamav/c++/llvm/win32/config.h b/libclamav/c++/llvm/win32/config.h
deleted file mode 100644
index 62d4c05..0000000
--- a/libclamav/c++/llvm/win32/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* This file is appended to config.h.in to form the Windows version of
- * config.h */
-
-#define PACKAGE_NAME "LLVM (win32 vc8.0)" 
-#define PACKAGE_VERSION 2.4
-#define PACKAGE_STRING "llvm 2.6svn"
-#define LLVM_HOSTTRIPLE "i686-pc-win32"
-#define HAVE_WINDOWS_H 1 
-#define HAVE_LIMITS_H 1 
-#define HAVE_SYS_STAT_H 1 
-#define HAVE_STDLIB_H 1 
-#define HAVE_STDIO_H 1 
-#define HAVE_STRING_H 1 
-#define HAVE_CEILF 1 
-#define HAVE_FLOORF 1 
-#define SHLIBEXT ".lib" 
-#define error_t int 
-#define HAVE_ERRNO_H 1 
-#define LTDL_DLOPEN_DEPLIBS 1 
-#define LTDL_OBJDIR "_libs" 
-#define LTDL_SHLIBPATH_VAR "PATH" 
-#define LTDL_SHLIB_EXT ".dll" 
-#define LTDL_SYSSEARCHPATH "" 
-#define LLVM_ON_WIN32 1 
-
-#define strtoll _strtoi64
-#define strtoull _strtoui64
-#define stricmp _stricmp
-#define strdup _strdup
-
diff --git a/libclamav/c++/llvm/win32/dobison.cmd b/libclamav/c++/llvm/win32/dobison.cmd
deleted file mode 100755
index 03d56ab..0000000
--- a/libclamav/c++/llvm/win32/dobison.cmd
+++ /dev/null
@@ -1,29 +0,0 @@
- at echo off
-rem dobison.cmd prefix mode target source
-rem   prefix - passed to bison as -p<prefix>
-rem   mode - either debug or release
-rem   target - generated parser file name without extension
-rem   source - input to bison
-rem   headercopydir - directory to receive a copy of the header
-
-if "%2"=="debug" (set flags=-tvdo) else (set flags=-vdo)
-
-rem Test for presence of bison.
-bison --help >NUL
-if errorlevel 1 goto nobison
-
-rem Run bison.
-echo bison -p%1 %flags%%3.cpp %4
-echo move %3.hpp %3.h
-bison -p%1 %flags%%3.cpp %4 && move %3.hpp %3.h
-echo copy %3.h %5
-copy %3.h %5
-exit
-
-:nobison
-echo Bison not found.  Using pre-generated files.
-copy %~pn4.cpp.cvs .\%3.cpp
-copy %~pn4.cpp.cvs %5\%3.cpp
-copy %~pn4.h.cvs .\%3.h
-copy %~pn4.h.cvs %5\%3.h
-exit
diff --git a/libclamav/c++/llvm/win32/doflex.cmd b/libclamav/c++/llvm/win32/doflex.cmd
deleted file mode 100755
index 8f32fbd..0000000
--- a/libclamav/c++/llvm/win32/doflex.cmd
+++ /dev/null
@@ -1,20 +0,0 @@
- at echo off
-rem doflex.cmd prefix mode target source
-rem   mode - either debug or release
-rem   target - generated parser file name without extension
-rem   source - input to bison
-
-if "%1"=="debug" (set flags=-t) else (set flags=-t)
-
-rem Test for presence of flex.
-flex --help >NUL
-if errorlevel 1 goto noflex
-
-rem Run flex.
-flex %flags% >%2.cpp %3
-exit
-
-:noflex
-echo Flex not found.  Using pre-generated files.
-copy %~pn3.cpp.cvs %2.cpp
-exit
diff --git a/libclamav/c++/llvm/win32/llc/llc.vcproj b/libclamav/c++/llvm/win32/llc/llc.vcproj
deleted file mode 100644
index 2ce6f46..0000000
--- a/libclamav/c++/llvm/win32/llc/llc.vcproj
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llc"
-	ProjectGUID="{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj $(ProjectDir)..\CBackend\$(IntDir)\CBackend.obj"
-				OutputFile="$(OutDir)/llc.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llc.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj $(ProjectDir)..\CBackend\$(IntDir)\CBackend.obj"
-				OutputFile="$(OutDir)/llc.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj $(ProjectDir)..\CBackend\$(IntDir)\CBackend.obj"
-				OutputFile="$(OutDir)/llc.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llc.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj $(ProjectDir)..\CBackend\$(IntDir)\CBackend.obj"
-				OutputFile="$(OutDir)/llc.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llc\llc.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/lli/lli.vcproj b/libclamav/c++/llvm/win32/lli/lli.vcproj
deleted file mode 100644
index 0bcee7e..0000000
--- a/libclamav/c++/llvm/win32/lli/lli.vcproj
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="lli"
-	ProjectGUID="{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/lli.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/lli.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/lli.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/lli.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/lli.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="$(ProjectDir)..\X86\$(IntDir)\X86TargetMachine.obj"
-				OutputFile="$(OutDir)/lli.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\lli\lli.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-ar/llvm-ar.vcproj b/libclamav/c++/llvm/win32/llvm-ar/llvm-ar.vcproj
deleted file mode 100644
index 1235ef1..0000000
--- a/libclamav/c++/llvm/win32/llvm-ar/llvm-ar.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-ar"
-	ProjectGUID="{0FF2B75C-49C1-4B49-A44A-531C93000296}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ar.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-ar.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ar.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ar.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-ar.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ar.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-ar\llvm-ar.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-as/llvm-as.vcproj b/libclamav/c++/llvm/win32/llvm-as/llvm-as.vcproj
deleted file mode 100644
index e650706..0000000
--- a/libclamav/c++/llvm/win32/llvm-as/llvm-as.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-as"
-	ProjectGUID="{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-as.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-as.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-as.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-as.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-as.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-as.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-as\llvm-as.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj b/libclamav/c++/llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj
deleted file mode 100644
index 18254c7..0000000
--- a/libclamav/c++/llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-bcanalyzer"
-	ProjectGUID="{E0B1E329-BE3E-456D-B372-5F397BE42C84}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-bcanalyzer.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-bcanalyzer.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-bcanalyzer.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-bcanalyzer.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-bcanalyzer.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-bcanalyzer.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-bcanalyzer\llvm-bcanalyzer.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-dis/llvm-dis.vcproj b/libclamav/c++/llvm/win32/llvm-dis/llvm-dis.vcproj
deleted file mode 100644
index be2261b..0000000
--- a/libclamav/c++/llvm/win32/llvm-dis/llvm-dis.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-dis"
-	ProjectGUID="{B13476BC-30AB-4EA0-BC1E-212C0A459405}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-dis.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-dis.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-dis.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-dis.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-dis.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-dis.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-dis\llvm-dis.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-ld/llvm-ld.vcproj b/libclamav/c++/llvm/win32/llvm-ld/llvm-ld.vcproj
deleted file mode 100644
index a2b4a54..0000000
--- a/libclamav/c++/llvm/win32/llvm-ld/llvm-ld.vcproj
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-ld"
-	ProjectGUID="{64D8AA46-88DB-41F4-B837-053AE02406B8}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ld.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-ld.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ld.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ld.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-ld.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ld.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-ld\llvm-ld.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\llvm-ld\Optimize.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-link/llvm-link.vcproj b/libclamav/c++/llvm/win32/llvm-link/llvm-link.vcproj
deleted file mode 100644
index 2624698..0000000
--- a/libclamav/c++/llvm/win32/llvm-link/llvm-link.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-link"
-	ProjectGUID="{5E249789-49E1-4600-B12B-8AD2BB6439B2}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-link.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-link.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-link.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-link.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-link.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-link.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-link\llvm-link.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-nm/llvm-nm.vcproj b/libclamav/c++/llvm/win32/llvm-nm/llvm-nm.vcproj
deleted file mode 100644
index 3c402a0..0000000
--- a/libclamav/c++/llvm/win32/llvm-nm/llvm-nm.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-nm"
-	ProjectGUID="{5FF862CE-80A0-4B48-A80B-68AE325A0432}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-nm.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-nm.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-nm.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-nm.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-nm.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-nm.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-nm\llvm-nm.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-prof/llvm-prof.vcproj b/libclamav/c++/llvm/win32/llvm-prof/llvm-prof.vcproj
deleted file mode 100644
index 77608ab..0000000
--- a/libclamav/c++/llvm/win32/llvm-prof/llvm-prof.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-prof"
-	ProjectGUID="{ACBE81D9-64B1-4133-823A-807A4E60B454}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-prof.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-prof.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-prof.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-prof.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-prof.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-prof.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-prof\llvm-prof.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm-ranlib/llvm-ranlib.vcproj b/libclamav/c++/llvm/win32/llvm-ranlib/llvm-ranlib.vcproj
deleted file mode 100644
index 2398ece..0000000
--- a/libclamav/c++/llvm/win32/llvm-ranlib/llvm-ranlib.vcproj
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="llvm-ranlib"
-	ProjectGUID="{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ranlib.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-ranlib.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ranlib.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ranlib.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/llvm-ranlib.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/llvm-ranlib.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\llvm-ranlib\llvm-ranlib.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/llvm.sln b/libclamav/c++/llvm/win32/llvm.sln
deleted file mode 100644
index 8aab563..0000000
--- a/libclamav/c++/llvm/win32/llvm.sln
+++ /dev/null
@@ -1,719 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "support", "Support\Support.vcproj", "{28AA9146-3482-4F41-9CC6-407B1D258508}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TableGen", "TableGen\TableGen.vcproj", "{339C2249-26B6-4172-B484-85653029AF57}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Fibonacci", "Fibonacci\Fibonacci.vcproj", "{48FB551D-E37E-42EC-BC97-FF7219774867}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C} = {144EEBF6-8C9B-4473-B715-2C821666AF6C}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{76295AE8-A083-460E-9F80-6F2B8923264A} = {76295AE8-A083-460E-9F80-6F2B8923264A}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExecutionEngine", "ExecutionEngine\ExecutionEngine.vcproj", "{76295AE8-A083-460E-9F80-6F2B8923264A}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VMCore", "VMCore\VMCore.vcproj", "{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Target", "Target\Target.vcproj", "{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodeGen", "CodeGen\CodeGen.vcproj", "{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "System", "System\System.vcproj", "{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Analysis", "Analysis\Analysis.vcproj", "{0622E827-8464-489D-8B1C-B0B496F35C08}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x86", "x86\x86.vcproj", "{144EEBF6-8C9B-4473-B715-2C821666AF6C}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Transforms", "Transforms\Transforms.vcproj", "{C59374C1-9FC0-4147-B836-327DFDC52D99}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{339C2249-26B6-4172-B484-85653029AF57} = {339C2249-26B6-4172-B484-85653029AF57}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Configure", "Configure\Configure.vcproj", "{19514E48-456C-4B9D-8637-F2285476461E}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lli", "lli\lli.vcproj", "{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C} = {144EEBF6-8C9B-4473-B715-2C821666AF6C}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{76295AE8-A083-460E-9F80-6F2B8923264A} = {76295AE8-A083-460E-9F80-6F2B8923264A}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llc", "llc\llc.vcproj", "{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C} = {144EEBF6-8C9B-4473-B715-2C821666AF6C}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{057777CD-DED5-46DF-BF9A-6B76DE212549} = {057777CD-DED5-46DF-BF9A-6B76DE212549}
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897} = {08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-dis", "llvm-dis\llvm-dis.vcproj", "{B13476BC-30AB-4EA0-BC1E-212C0A459405}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-as", "llvm-as\llvm-as.vcproj", "{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982} = {3DC216F5-1DDD-478A-84F8-C124E5C31982}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AsmParser", "AsmParser\AsmParser.vcproj", "{3DC216F5-1DDD-478A-84F8-C124E5C31982}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-ar", "llvm-ar\llvm-ar.vcproj", "{0FF2B75C-49C1-4B49-A44A-531C93000296}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-ranlib", "llvm-ranlib\llvm-ranlib.vcproj", "{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-link", "llvm-link\llvm-link.vcproj", "{5E249789-49E1-4600-B12B-8AD2BB6439B2}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE} = {342CF48F-760A-4040-A9A1-7D75AA2471CE}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Linker", "Linker\Linker.vcproj", "{342CF48F-760A-4040-A9A1-7D75AA2471CE}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CBackend", "CBackend\CBackend.vcproj", "{057777CD-DED5-46DF-BF9A-6B76DE212549}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opt", "opt\opt.vcproj", "{006D8B41-C3C7-4448-85E1-AF8907E591E5}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-bcanalyzer", "llvm-bcanalyzer\llvm-bcanalyzer.vcproj", "{E0B1E329-BE3E-456D-B372-5F397BE42C84}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-ld", "llvm-ld\llvm-ld.vcproj", "{64D8AA46-88DB-41F4-B837-053AE02406B8}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE} = {342CF48F-760A-4040-A9A1-7D75AA2471CE}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-nm", "llvm-nm\llvm-nm.vcproj", "{5FF862CE-80A0-4B48-A80B-68AE325A0432}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm-prof", "llvm-prof\llvm-prof.vcproj", "{ACBE81D9-64B1-4133-823A-807A4E60B454}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bugpoint", "bugpoint\bugpoint.vcproj", "{57249192-8E29-4D85-8B7A-FEFF1760B1DA}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982} = {3DC216F5-1DDD-478A-84F8-C124E5C31982}
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489} = {0F8407F3-FA23-4CF1-83A9-DCBE0B361489}
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{C59374C1-9FC0-4147-B836-327DFDC52D99} = {C59374C1-9FC0-4147-B836-327DFDC52D99}
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4} = {059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE} = {342CF48F-760A-4040-A9A1-7D75AA2471CE}
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62} = {F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-		{0622E827-8464-489D-8B1C-B0B496F35C08} = {0622E827-8464-489D-8B1C-B0B496F35C08}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Bitcode", "Bitcode\Bitcode.vcproj", "{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{28AA9146-3482-4F41-9CC6-407B1D258508} = {28AA9146-3482-4F41-9CC6-407B1D258508}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Archive", "Archive\Archive.vcproj", "{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB} = {45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}
-		{19514E48-456C-4B9D-8637-F2285476461E} = {19514E48-456C-4B9D-8637-F2285476461E}
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Configure|Win32 = Configure|Win32
-		Configure|x64 = Configure|x64
-		Debug|Win32 = Debug|Win32
-		Debug|x64 = Debug|x64
-		Release|Win32 = Release|Win32
-		Release|x64 = Release|x64
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Configure|Win32.ActiveCfg = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Configure|Win32.Build.0 = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Configure|x64.ActiveCfg = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Debug|Win32.ActiveCfg = Debug|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Debug|Win32.Build.0 = Debug|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Debug|x64.ActiveCfg = Debug|x64
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Debug|x64.Build.0 = Debug|x64
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Release|Win32.ActiveCfg = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Release|Win32.Build.0 = Release|Win32
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Release|x64.ActiveCfg = Release|x64
-		{28AA9146-3482-4F41-9CC6-407B1D258508}.Release|x64.Build.0 = Release|x64
-		{339C2249-26B6-4172-B484-85653029AF57}.Configure|Win32.ActiveCfg = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Configure|Win32.Build.0 = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Configure|x64.ActiveCfg = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Debug|Win32.ActiveCfg = Debug|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Debug|Win32.Build.0 = Debug|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Debug|x64.ActiveCfg = Debug|x64
-		{339C2249-26B6-4172-B484-85653029AF57}.Debug|x64.Build.0 = Debug|x64
-		{339C2249-26B6-4172-B484-85653029AF57}.Release|Win32.ActiveCfg = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Release|Win32.Build.0 = Release|Win32
-		{339C2249-26B6-4172-B484-85653029AF57}.Release|x64.ActiveCfg = Release|x64
-		{339C2249-26B6-4172-B484-85653029AF57}.Release|x64.Build.0 = Release|x64
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Configure|Win32.ActiveCfg = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Configure|Win32.Build.0 = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Configure|x64.ActiveCfg = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Debug|Win32.ActiveCfg = Debug|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Debug|Win32.Build.0 = Debug|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Debug|x64.ActiveCfg = Debug|x64
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Debug|x64.Build.0 = Debug|x64
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Release|Win32.ActiveCfg = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Release|Win32.Build.0 = Release|Win32
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Release|x64.ActiveCfg = Release|x64
-		{48FB551D-E37E-42EC-BC97-FF7219774867}.Release|x64.Build.0 = Release|x64
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Configure|Win32.ActiveCfg = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Configure|Win32.Build.0 = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Configure|x64.ActiveCfg = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Debug|Win32.ActiveCfg = Debug|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Debug|Win32.Build.0 = Debug|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Debug|x64.ActiveCfg = Debug|x64
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Debug|x64.Build.0 = Debug|x64
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Release|Win32.ActiveCfg = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Release|Win32.Build.0 = Release|Win32
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Release|x64.ActiveCfg = Release|x64
-		{76295AE8-A083-460E-9F80-6F2B8923264A}.Release|x64.Build.0 = Release|x64
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Configure|Win32.ActiveCfg = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Configure|Win32.Build.0 = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Configure|x64.ActiveCfg = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Debug|Win32.ActiveCfg = Debug|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Debug|Win32.Build.0 = Debug|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Debug|x64.ActiveCfg = Debug|x64
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Debug|x64.Build.0 = Debug|x64
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Release|Win32.ActiveCfg = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Release|Win32.Build.0 = Release|Win32
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Release|x64.ActiveCfg = Release|x64
-		{45CD78D7-C5D9-47FE-AD12-F3251EEDAFFB}.Release|x64.Build.0 = Release|x64
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Configure|Win32.ActiveCfg = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Configure|Win32.Build.0 = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Configure|x64.ActiveCfg = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Debug|Win32.ActiveCfg = Debug|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Debug|Win32.Build.0 = Debug|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Debug|x64.ActiveCfg = Debug|x64
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Debug|x64.Build.0 = Debug|x64
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Release|Win32.ActiveCfg = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Release|Win32.Build.0 = Release|Win32
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Release|x64.ActiveCfg = Release|x64
-		{059FBAB8-C76D-48A0-AA75-3C57BD3EAFE4}.Release|x64.Build.0 = Release|x64
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Configure|Win32.ActiveCfg = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Configure|Win32.Build.0 = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Configure|x64.ActiveCfg = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Debug|Win32.ActiveCfg = Debug|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Debug|Win32.Build.0 = Debug|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Debug|x64.ActiveCfg = Debug|x64
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Debug|x64.Build.0 = Debug|x64
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Release|Win32.ActiveCfg = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Release|Win32.Build.0 = Release|Win32
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Release|x64.ActiveCfg = Release|x64
-		{08CEB1BB-C2A4-4587-B9A9-AEDB8FB44897}.Release|x64.Build.0 = Release|x64
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Configure|Win32.ActiveCfg = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Configure|Win32.Build.0 = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Configure|x64.ActiveCfg = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Debug|Win32.Build.0 = Debug|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Debug|x64.ActiveCfg = Debug|x64
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Debug|x64.Build.0 = Debug|x64
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Release|Win32.ActiveCfg = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Release|Win32.Build.0 = Release|Win32
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Release|x64.ActiveCfg = Release|x64
-		{0F8407F3-FA23-4CF1-83A9-DCBE0B361489}.Release|x64.Build.0 = Release|x64
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Configure|Win32.ActiveCfg = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Configure|Win32.Build.0 = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Configure|x64.ActiveCfg = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Debug|Win32.Build.0 = Debug|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Debug|x64.ActiveCfg = Debug|x64
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Debug|x64.Build.0 = Debug|x64
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Release|Win32.ActiveCfg = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Release|Win32.Build.0 = Release|Win32
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Release|x64.ActiveCfg = Release|x64
-		{0622E827-8464-489D-8B1C-B0B496F35C08}.Release|x64.Build.0 = Release|x64
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Configure|Win32.ActiveCfg = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Configure|Win32.Build.0 = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Configure|x64.ActiveCfg = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Debug|Win32.ActiveCfg = Debug|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Debug|Win32.Build.0 = Debug|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Debug|x64.ActiveCfg = Debug|x64
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Debug|x64.Build.0 = Debug|x64
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Release|Win32.ActiveCfg = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Release|Win32.Build.0 = Release|Win32
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Release|x64.ActiveCfg = Release|x64
-		{144EEBF6-8C9B-4473-B715-2C821666AF6C}.Release|x64.Build.0 = Release|x64
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Configure|Win32.ActiveCfg = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Configure|Win32.Build.0 = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Configure|x64.ActiveCfg = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Debug|Win32.Build.0 = Debug|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Debug|x64.ActiveCfg = Debug|x64
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Debug|x64.Build.0 = Debug|x64
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Release|Win32.ActiveCfg = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Release|Win32.Build.0 = Release|Win32
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Release|x64.ActiveCfg = Release|x64
-		{C59374C1-9FC0-4147-B836-327DFDC52D99}.Release|x64.Build.0 = Release|x64
-		{19514E48-456C-4B9D-8637-F2285476461E}.Configure|Win32.ActiveCfg = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Configure|Win32.Build.0 = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Configure|x64.ActiveCfg = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Debug|Win32.ActiveCfg = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Debug|Win32.Build.0 = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Debug|x64.ActiveCfg = Configure|x64
-		{19514E48-456C-4B9D-8637-F2285476461E}.Debug|x64.Build.0 = Configure|x64
-		{19514E48-456C-4B9D-8637-F2285476461E}.Release|Win32.ActiveCfg = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Release|Win32.Build.0 = Configure|Win32
-		{19514E48-456C-4B9D-8637-F2285476461E}.Release|x64.ActiveCfg = Configure|x64
-		{19514E48-456C-4B9D-8637-F2285476461E}.Release|x64.Build.0 = Configure|x64
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Configure|Win32.ActiveCfg = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Configure|Win32.Build.0 = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Configure|x64.ActiveCfg = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Debug|Win32.Build.0 = Debug|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Debug|x64.ActiveCfg = Debug|x64
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Debug|x64.Build.0 = Debug|x64
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Release|Win32.ActiveCfg = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Release|Win32.Build.0 = Release|Win32
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Release|x64.ActiveCfg = Release|x64
-		{FB6FFD68-C1E4-4DCF-AB02-36D205D5263E}.Release|x64.Build.0 = Release|x64
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Configure|Win32.ActiveCfg = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Configure|Win32.Build.0 = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Configure|x64.ActiveCfg = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Debug|Win32.Build.0 = Debug|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Debug|x64.ActiveCfg = Debug|x64
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Debug|x64.Build.0 = Debug|x64
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Release|Win32.ActiveCfg = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Release|Win32.Build.0 = Release|Win32
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Release|x64.ActiveCfg = Release|x64
-		{ADE86BDC-B04C-43DF-B9BB-90492C7B14AC}.Release|x64.Build.0 = Release|x64
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Configure|Win32.ActiveCfg = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Configure|Win32.Build.0 = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Configure|x64.ActiveCfg = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Debug|Win32.ActiveCfg = Debug|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Debug|Win32.Build.0 = Debug|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Debug|x64.ActiveCfg = Debug|x64
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Debug|x64.Build.0 = Debug|x64
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Release|Win32.ActiveCfg = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Release|Win32.Build.0 = Release|Win32
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Release|x64.ActiveCfg = Release|x64
-		{B13476BC-30AB-4EA0-BC1E-212C0A459405}.Release|x64.Build.0 = Release|x64
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Configure|Win32.ActiveCfg = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Configure|Win32.Build.0 = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Configure|x64.ActiveCfg = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Debug|Win32.ActiveCfg = Debug|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Debug|Win32.Build.0 = Debug|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Debug|x64.ActiveCfg = Debug|x64
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Debug|x64.Build.0 = Debug|x64
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Release|Win32.ActiveCfg = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Release|Win32.Build.0 = Release|Win32
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Release|x64.ActiveCfg = Release|x64
-		{4FBC40A5-E626-4A6C-A9D3-FAE5C28D30CC}.Release|x64.Build.0 = Release|x64
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Configure|Win32.ActiveCfg = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Configure|Win32.Build.0 = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Configure|x64.ActiveCfg = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Debug|Win32.Build.0 = Debug|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Debug|x64.ActiveCfg = Debug|x64
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Debug|x64.Build.0 = Debug|x64
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Release|Win32.ActiveCfg = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Release|Win32.Build.0 = Release|Win32
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Release|x64.ActiveCfg = Release|x64
-		{3DC216F5-1DDD-478A-84F8-C124E5C31982}.Release|x64.Build.0 = Release|x64
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Configure|Win32.ActiveCfg = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Configure|Win32.Build.0 = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Configure|x64.ActiveCfg = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Debug|Win32.ActiveCfg = Debug|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Debug|Win32.Build.0 = Debug|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Debug|x64.ActiveCfg = Debug|x64
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Debug|x64.Build.0 = Debug|x64
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Release|Win32.ActiveCfg = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Release|Win32.Build.0 = Release|Win32
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Release|x64.ActiveCfg = Release|x64
-		{0FF2B75C-49C1-4B49-A44A-531C93000296}.Release|x64.Build.0 = Release|x64
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Configure|Win32.ActiveCfg = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Configure|Win32.Build.0 = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Configure|x64.ActiveCfg = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Debug|Win32.ActiveCfg = Debug|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Debug|Win32.Build.0 = Debug|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Debug|x64.ActiveCfg = Debug|x64
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Debug|x64.Build.0 = Debug|x64
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Release|Win32.ActiveCfg = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Release|Win32.Build.0 = Release|Win32
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Release|x64.ActiveCfg = Release|x64
-		{BB16C7EE-B4ED-4714-B5ED-B775C62A6612}.Release|x64.Build.0 = Release|x64
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Configure|Win32.ActiveCfg = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Configure|Win32.Build.0 = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Configure|x64.ActiveCfg = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Debug|Win32.Build.0 = Debug|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Debug|x64.ActiveCfg = Debug|x64
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Debug|x64.Build.0 = Debug|x64
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Release|Win32.ActiveCfg = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Release|Win32.Build.0 = Release|Win32
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Release|x64.ActiveCfg = Release|x64
-		{5E249789-49E1-4600-B12B-8AD2BB6439B2}.Release|x64.Build.0 = Release|x64
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Configure|Win32.ActiveCfg = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Configure|Win32.Build.0 = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Configure|x64.ActiveCfg = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Debug|Win32.ActiveCfg = Debug|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Debug|Win32.Build.0 = Debug|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Debug|x64.ActiveCfg = Debug|x64
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Debug|x64.Build.0 = Debug|x64
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Release|Win32.ActiveCfg = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Release|Win32.Build.0 = Release|Win32
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Release|x64.ActiveCfg = Release|x64
-		{342CF48F-760A-4040-A9A1-7D75AA2471CE}.Release|x64.Build.0 = Release|x64
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Configure|Win32.ActiveCfg = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Configure|Win32.Build.0 = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Configure|x64.ActiveCfg = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Debug|Win32.ActiveCfg = Debug|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Debug|Win32.Build.0 = Debug|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Debug|x64.ActiveCfg = Debug|x64
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Debug|x64.Build.0 = Debug|x64
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Release|Win32.ActiveCfg = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Release|Win32.Build.0 = Release|Win32
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Release|x64.ActiveCfg = Release|x64
-		{057777CD-DED5-46DF-BF9A-6B76DE212549}.Release|x64.Build.0 = Release|x64
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Configure|Win32.ActiveCfg = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Configure|Win32.Build.0 = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Configure|x64.ActiveCfg = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Debug|Win32.ActiveCfg = Debug|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Debug|Win32.Build.0 = Debug|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Debug|x64.ActiveCfg = Debug|x64
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Debug|x64.Build.0 = Debug|x64
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Release|Win32.ActiveCfg = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Release|Win32.Build.0 = Release|Win32
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Release|x64.ActiveCfg = Release|x64
-		{006D8B41-C3C7-4448-85E1-AF8907E591E5}.Release|x64.Build.0 = Release|x64
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Configure|Win32.ActiveCfg = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Configure|Win32.Build.0 = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Configure|x64.ActiveCfg = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Debug|Win32.ActiveCfg = Debug|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Debug|Win32.Build.0 = Debug|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Debug|x64.ActiveCfg = Debug|x64
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Debug|x64.Build.0 = Debug|x64
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Release|Win32.ActiveCfg = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Release|Win32.Build.0 = Release|Win32
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Release|x64.ActiveCfg = Release|x64
-		{E0B1E329-BE3E-456D-B372-5F397BE42C84}.Release|x64.Build.0 = Release|x64
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Configure|Win32.ActiveCfg = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Configure|Win32.Build.0 = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Configure|x64.ActiveCfg = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Debug|Win32.ActiveCfg = Debug|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Debug|Win32.Build.0 = Debug|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Debug|x64.ActiveCfg = Debug|x64
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Debug|x64.Build.0 = Debug|x64
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Release|Win32.ActiveCfg = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Release|Win32.Build.0 = Release|Win32
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Release|x64.ActiveCfg = Release|x64
-		{64D8AA46-88DB-41F4-B837-053AE02406B8}.Release|x64.Build.0 = Release|x64
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Configure|Win32.ActiveCfg = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Configure|Win32.Build.0 = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Configure|x64.ActiveCfg = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Debug|Win32.Build.0 = Debug|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Debug|x64.ActiveCfg = Debug|x64
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Debug|x64.Build.0 = Debug|x64
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Release|Win32.ActiveCfg = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Release|Win32.Build.0 = Release|Win32
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Release|x64.ActiveCfg = Release|x64
-		{5FF862CE-80A0-4B48-A80B-68AE325A0432}.Release|x64.Build.0 = Release|x64
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Configure|Win32.ActiveCfg = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Configure|Win32.Build.0 = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Configure|x64.ActiveCfg = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Debug|Win32.ActiveCfg = Debug|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Debug|Win32.Build.0 = Debug|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Debug|x64.ActiveCfg = Debug|x64
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Debug|x64.Build.0 = Debug|x64
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Release|Win32.ActiveCfg = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Release|Win32.Build.0 = Release|Win32
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Release|x64.ActiveCfg = Release|x64
-		{ACBE81D9-64B1-4133-823A-807A4E60B454}.Release|x64.Build.0 = Release|x64
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Configure|Win32.ActiveCfg = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Configure|Win32.Build.0 = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Configure|x64.ActiveCfg = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Debug|Win32.ActiveCfg = Debug|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Debug|Win32.Build.0 = Debug|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Debug|x64.ActiveCfg = Debug|x64
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Debug|x64.Build.0 = Debug|x64
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Release|Win32.ActiveCfg = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Release|Win32.Build.0 = Release|Win32
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Release|x64.ActiveCfg = Release|x64
-		{57249192-8E29-4D85-8B7A-FEFF1760B1DA}.Release|x64.Build.0 = Release|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Configure|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Configure|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Configure|x64.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Debug|Win32.Build.0 = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Debug|x64.ActiveCfg = Debug|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Debug|x64.Build.0 = Debug|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Release|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Release|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Release|x64.ActiveCfg = Release|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D62}.Release|x64.Build.0 = Release|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Configure|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Configure|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Configure|x64.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Debug|Win32.Build.0 = Debug|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Debug|x64.ActiveCfg = Debug|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Debug|x64.Build.0 = Debug|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Release|Win32.ActiveCfg = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Release|Win32.Build.0 = Release|Win32
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Release|x64.ActiveCfg = Release|x64
-		{F1EFF064-8869-4DFF-8E1A-CD8F4A5F8D61}.Release|x64.Build.0 = Release|x64
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(DPCodeReviewSolutionGUID) = preSolution
-		DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
-	EndGlobalSection
-EndGlobal
diff --git a/libclamav/c++/llvm/win32/opt/opt.vcproj b/libclamav/c++/llvm/win32/opt/opt.vcproj
deleted file mode 100644
index 8ef1629..0000000
--- a/libclamav/c++/llvm/win32/opt/opt.vcproj
+++ /dev/null
@@ -1,393 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="opt"
-	ProjectGUID="{006D8B41-C3C7-4448-85E1-AF8907E591E5}"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="4"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/opt.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/opt.pdb"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/opt.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/opt.exe"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/opt.pdb"
-				SubSystem="1"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="1"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				OutputFile="$(OutDir)/opt.exe"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="17"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\tools\opt\AnalysisWrappers.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\opt\GraphPrinters.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\opt\opt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\tools\opt\PrintSCC.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/llvm/win32/unistd.h b/libclamav/c++/llvm/win32/unistd.h
deleted file mode 100644
index 412afcc..0000000
--- a/libclamav/c++/llvm/win32/unistd.h
+++ /dev/null
@@ -1 +0,0 @@
-// This file has to be here because it's #included from the auto generated FileLexer.cpp
diff --git a/libclamav/c++/llvm/win32/x86/x86.vcproj b/libclamav/c++/llvm/win32/x86/x86.vcproj
deleted file mode 100644
index b5d10e8..0000000
--- a/libclamav/c++/llvm/win32/x86/x86.vcproj
+++ /dev/null
@@ -1,620 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="x86"
-	ProjectGUID="{144EEBF6-8C9B-4473-B715-2C821666AF6C}"
-	RootNamespace="x86"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-		<Platform
-			Name="x64"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops;..\common.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=".;..\..\include;..;..\..\lib\Target\X86"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/x86.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=".;..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				BrowseInformation="1"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/x86.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=".;..\..\include;..;..\..\lib\Target\X86"
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/x86.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|x64"
-			OutputDirectory="$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)"
-			IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
-			ConfigurationType="4"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-				TargetEnvironment="3"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=".;..\..\include;.."
-				PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS"
-				StringPooling="true"
-				RuntimeLibrary="2"
-				ForceConformanceInForLoopScope="true"
-				RuntimeTypeInfo="true"
-				UsePrecompiledHeader="0"
-				ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="false"
-				DebugInformationFormat="3"
-				DisableSpecificWarnings="4355,4146,4800"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)/x86.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86.td"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) register names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterNames.inc&#x0D;&#x0A;echo Building $(InputFileName) register information header with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc-header -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.h.inc&#x0D;&#x0A;echo Building $(InputFileName) register information implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrNames.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer #1 with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -asmwriternum=1 -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter1.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction selector implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-dag-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenDAGISel.inc&#x0D;&#x0A;echo Building $(InputFileName) subtarget information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-subtarget -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenSubtarget.inc&#x0D;&#x0A;echo Building $(InputFileName) calling convention information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-callingconv -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenCallingConv.inc&#x0D;&#x0A;echo Building $(InputFileName) Fast instruction selection with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-fast-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenFastISel.inc&#x0D;&#x0A;"
-						AdditionalDependencies="$(InputDir)X86InstrInfo.td;$(InputDir)X86RegisterInfo.td;$(InputDir)X86InstrFPStack.td;$(InputDir)X86InstrMMX.td;$(InputDir)X86InstrSSE.td;$(InputDir)X86CallingConv.td;$(InputDir)..\Target.td;$(InputDir)..\TargetSchedule.td;$(InputDir)..\TargetScheduleDAG.td;$(ProjectDir)..\$(IntDir)\TableGen.exe"
-						Outputs="X86GenRegisterNames.inc;X86GenRegisterInfo.h.inc;X86GenRegisterInfo.inc;X86GenInstrNames.inc;X86GenInstrInfo.inc;X86GenAsmWriter.inc;X86GenAsmWriter1.inc;X86GenDAGISel.inc;X86GenSubtarget.inc;X86GenCallingConv.inc;X86GenFastISel.inc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) register names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterNames.inc&#x0D;&#x0A;echo Building $(InputFileName) register information header with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc-header -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.h.inc&#x0D;&#x0A;echo Building $(InputFileName) register information implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrNames.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer #1 with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -asmwriternum=1 -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter1.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction selector implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-dag-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenDAGISel.inc&#x0D;&#x0A;echo Building $(InputFileName) subtarget information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-subtarget -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenSubtarget.inc&#x0D;&#x0A;echo Building $(InputFileName) calling convention information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-callingconv -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenCallingConv.inc&#x0D;&#x0A;echo Building $(InputFileName) Fast instruction selection with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-fast-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenFastISel.inc&#x0D;&#x0A;"
-						AdditionalDependencies="$(InputDir)X86InstrInfo.td;$(InputDir)X86RegisterInfo.td;$(InputDir)X86InstrFPStack.td;$(InputDir)X86InstrMMX.td;$(InputDir)X86InstrSSE.td;$(InputDir)X86CallingConv.td;$(InputDir)..\Target.td;$(InputDir)..\TargetSchedule.td;$(InputDir)..\TargetScheduleDAG.td;$(ProjectDir)..\$(IntDir)\TableGen.exe"
-						Outputs="X86GenRegisterNames.inc;X86GenRegisterInfo.h.inc;X86GenRegisterInfo.inc;X86GenInstrNames.inc;X86GenInstrInfo.inc;X86GenAsmWriter.inc;X86GenAsmWriter1.inc;X86GenDAGISel.inc;X86GenSubtarget.inc;X86GenCallingConv.inc;X86GenFastISel.inc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) register names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterNames.inc&#x0D;&#x0A;echo Building $(InputFileName) register information header with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc-header -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.h.inc&#x0D;&#x0A;echo Building $(InputFileName) register information implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrNames.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer #1 with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -asmwriternum=1 -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter1.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction selector implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-dag-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenDAGISel.inc&#x0D;&#x0A;echo Building $(InputFileName) subtarget information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-subtarget -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenSubtarget.inc&#x0D;&#x0A;echo Building $(InputFileName) calling convention information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-callingconv -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenCallingConv.inc&#x0D;&#x0A;echo Building $(InputFileName) Fast instruction selection with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-fast-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenFastISel.inc&#x0D;&#x0A;"
-						AdditionalDependencies="$(InputDir)X86InstrInfo.td;$(InputDir)X86RegisterInfo.td;$(InputDir)X86InstrFPStack.td;$(InputDir)X86InstrMMX.td;$(InputDir)X86InstrSSE.td;$(InputDir)X86CallingConv.td;$(InputDir)..\Target.td;$(InputDir)..\TargetSchedule.td;$(InputDir)..\TargetScheduleDAG.td;$(ProjectDir)..\$(IntDir)\TableGen.exe"
-						Outputs="X86GenRegisterNames.inc;X86GenRegisterInfo.h.inc;X86GenRegisterInfo.inc;X86GenInstrNames.inc;X86GenInstrInfo.inc;X86GenAsmWriter.inc;X86GenAsmWriter1.inc;X86GenDAGISel.inc;X86GenSubtarget.inc;X86GenCallingConv.inc;X86GenFastISel.inc"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Performing TableGen Step"
-						CommandLine="echo Building $(InputFileName) register names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterNames.inc&#x0D;&#x0A;echo Building $(InputFileName) register information header with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc-header -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.h.inc&#x0D;&#x0A;echo Building $(InputFileName) register information implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-register-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenRegisterInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction names with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-enums -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrNames.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-instr-desc -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenInstrInfo.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter.inc&#x0D;&#x0A;echo Building $(InputFileName) assembly writer #1 with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-asm-writer -asmwriternum=1 -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenAsmWriter1.inc&#x0D;&#x0A;echo Building $(InputFileName) instruction selector implementation with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-dag-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenDAGISel.inc&#x0D;&#x0A;echo Building $(InputFileName) subtarget information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-subtarget -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenSubtarget.inc&#x0D;&#x0A;echo Building $(InputFileName) calling convention information with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-callingconv -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenCallingConv.inc&#x0D;&#x0A;echo Building $(InputFileName) Fast instruction selection with tblgen&#x0D;&#x0A;$(ProjectDir)..\bin\$(PlatformName)\$(ConfigurationName)\TableGen.exe -gen-fast-isel -I ..\..\lib\Target -I ..\..\lib\Target\X86 -I ..\..\include $(InputPath) -o X86GenFastISel.inc&#x0D;&#x0A;"
-						AdditionalDependencies="$(InputDir)X86InstrInfo.td;$(InputDir)X86RegisterInfo.td;$(InputDir)X86InstrFPStack.td;$(InputDir)X86InstrMMX.td;$(InputDir)X86InstrSSE.td;$(InputDir)X86CallingConv.td;$(InputDir)..\Target.td;$(InputDir)..\TargetSchedule.td;$(InputDir)..\TargetScheduleDAG.td;$(ProjectDir)..\$(IntDir)\TableGen.exe"
-						Outputs="X86GenRegisterNames.inc;X86GenRegisterInfo.h.inc;X86GenRegisterInfo.inc;X86GenInstrNames.inc;X86GenInstrInfo.inc;X86GenAsmWriter.inc;X86GenAsmWriter1.inc;X86GenDAGISel.inc;X86GenSubtarget.inc;X86GenCallingConv.inc;X86GenFastISel.inc"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86CodeEmitter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86COFF.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86CompilationCallback_Win64.asm"
-				>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="ml64.exe /c /nologo /Fo &quot;$(IntDir)X86CompilationCallback_Win64.obj&quot; /Zi $(InputPath)&#x0D;&#x0A;"
-						Outputs="&quot;$(IntDir)X86CompilationCallback_Win64.obj&quot;"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						CommandLine="ml64.exe /c /nologo /Fo &quot;$(IntDir)X86CompilationCallback_Win64.obj&quot; /Zi $(InputPath)&#x0D;&#x0A;"
-						Outputs="&quot;$(IntDir)X86CompilationCallback_Win64.obj&quot;"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86ELFWriterInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86ELFWriterInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86FastISel.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86FastISel.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86FloatingPoint.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86FloatingPointRegKill.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrFormats.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrX86-64.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86ISelDAGToDAG.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86ISelLowering.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86JITInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86RegisterInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86Relocations.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86Subtarget.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86TargetAsmInfo.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86TargetMachine.cpp"
-				>
-			</File>
-			<Filter
-				Name="AsmPrinter"
-				>
-				<File
-					RelativePath="..\..\lib\Target\X86\AsmPrinter\X86AsmPrinter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Target\X86\AsmPrinter\X86AsmPrinter.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Target\X86\AsmPrinter\X86ATTAsmPrinter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Target\X86\AsmPrinter\X86ATTAsmPrinter.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Target\X86\AsmPrinter\X86IntelAsmPrinter.cpp"
-					>
-				</File>
-				<File
-					RelativePath="..\..\lib\Target\X86\AsmPrinter\X86IntelAsmPrinter.h"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\lib\Target\Target.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetSchedule.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\TargetSelectionDAG.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86ATTAsmPrinter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86CallingConv.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrBuilder.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrFPStack.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrInfo.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrMMX.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86InstrSSE.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86IntelAsmPrinter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86ISelLowering.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86JITInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86MachineFunctionInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86RegisterInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86RegisterInfo.td"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86Subtarget.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86TargetAsmInfo.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\lib\Target\X86\X86TargetMachine.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Generated Tablegen Files"
-			>
-			<File
-				RelativePath=".\X86GenAsmWriter.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenAsmWriter1.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenDAGISel.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenFastISel.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenInstrInfo.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenInstrNames.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenRegisterInfo.h.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenRegisterInfo.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenRegisterNames.inc"
-				>
-			</File>
-			<File
-				RelativePath=".\X86GenSubtarget.inc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/libclamav/c++/strip-llvm.sh b/libclamav/c++/strip-llvm.sh
new file mode 100755
index 0000000..85e23b0
--- /dev/null
+++ b/libclamav/c++/strip-llvm.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+# Remove directories we don't use
+
+for i in llvm/bindings/ llvm/examples/ llvm/projects/ llvm/runtime/\
+    llvm/website llvm/win32 llvm/Xcode llvm/lib/Archive\
+    llvm/lib/CompilerDriver/ llvm/lib/Debugger/ llvm/lib/Linker/\
+    llvm/lib/Target/Alpha/ llvm/lib/Target/Blackfin/ llvm/lib/Target/CBackend/\
+    llvm/lib/Target/CellSPU/ llvm/lib/Target/CppBackend/ llvm/lib/Target/Mips\
+    llvm/lib/Target/MSIL llvm/lib/Target/MSP430/ llvm/lib/Target/PIC16\
+    llvm/lib/Target/Sparc/ llvm/lib/Target/SystemZ llvm/lib/Target/XCore\
+    llvm/test/Archive/ llvm/test/Bindings/ llvm/test/Bitcode/ llvm/test/DebugInfo/\
+    llvm/test/FrontendAda/ llvm/test/FrontendC llvm/test/FrontendC++/\
+    llvm/test/FrontendFortran/ llvm/test/FrontendObjC\
+    llvm/test/FrontendObjC++ llvm/test/Linker/ llvm/test/LLVMC\
+    llvm/test/MC llvm/test/Transforms\
+    llvm/test/BugPoint llvm/test/CodeGen/CPP llvm/test/CodeGen/Mips\
+    llvm/test/CodeGen/Alpha llvm/test/CodeGen/PIC16 llvm/test/CodeGen/SPARC\
+    llvm/test/CodeGen/XCore llvm/test/CodeGen/MSP430\
+    llvm/test/CodeGen/CellSPU llvm/test/CodeGen/CBackend\
+    llvm/test/CodeGen/SystemZ llvm/test/CodeGen/Blackfin\
+    llvm/tools/bugpoint llvm/tools/gold llvm/tools/llvm-ar\
+    llvm/tools/llvm-bcanalyzer llvm/tools/llvm-db llvm/tools/llvm-dis\
+    llvm/tools/llvm-extract llvm/tools/llvm-ld llvm/tools/llvm-link llvm/tools/llvm-mc\
+    llvm/tools/llvm-nm llvm/tools/llvm-prof llvm/tools/llvm-ranlib\
+    llvm/tools/llvm-stub llvm/tools/lto llvm/tools/opt
+    do
+	git rm -rf $i;
+done
+# LLVM's config.status depends on these files existing
+mkdir -p llvm/lib/Target/PIC16/AsmPrinter llvm/lib/Target/MSP430/AsmPrinter
+touch llvm/lib/Target/PIC16/AsmPrinter/Makefile llvm/lib/Target/MSP430/AsmPrinter/Makefile
+git add -f llvm/lib/Target/PIC16/AsmPrinter/Makefile llvm/lib/Target/MSP430/AsmPrinter/Makefile

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list